@worktile/theia 2.5.2 → 3.0.0-next.2

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 (198) hide show
  1. package/bundles/worktile-theia.umd.js +4947 -4554
  2. package/bundles/worktile-theia.umd.js.map +1 -1
  3. package/constants/toolbar.d.ts +0 -1
  4. package/core/create-plugin.d.ts +2 -0
  5. package/core/create-toolbar.d.ts +5 -0
  6. package/core/index.d.ts +4 -0
  7. package/core/utils/flatten-deep-plugins.d.ts +6 -0
  8. package/core/utils/get-plugin-options.d.ts +2 -0
  9. package/core/utils/get-plugin.d.ts +2 -0
  10. package/core/utils/get-plugins-by-key.d.ts +2 -0
  11. package/core/utils/get-plugins.d.ts +2 -0
  12. package/core/utils/index.d.ts +7 -0
  13. package/core/utils/merge-options.d.ts +2 -0
  14. package/core/utils/override-plugins-by-key.d.ts +5 -0
  15. package/core/with-theia.d.ts +4 -0
  16. package/editor.component.d.ts +4 -6
  17. package/editor.module.d.ts +2 -2
  18. package/esm2015/components/toolbar-item/toolbar-item.component.js +1 -1
  19. package/esm2015/constants/toolbar.js +1 -2
  20. package/esm2015/core/create-plugin.js +6 -0
  21. package/esm2015/core/create-toolbar.js +57 -0
  22. package/esm2015/core/index.js +5 -0
  23. package/esm2015/core/utils/flatten-deep-plugins.js +36 -0
  24. package/esm2015/core/utils/get-plugin-options.js +3 -0
  25. package/esm2015/core/utils/get-plugin.js +3 -0
  26. package/esm2015/core/utils/get-plugins-by-key.js +8 -0
  27. package/esm2015/core/utils/get-plugins.js +5 -0
  28. package/esm2015/core/utils/index.js +8 -0
  29. package/esm2015/core/utils/merge-options.js +15 -0
  30. package/esm2015/core/utils/override-plugins-by-key.js +27 -0
  31. package/esm2015/core/with-theia.js +36 -0
  32. package/esm2015/editor.component.js +27 -40
  33. package/esm2015/interfaces/editor.js +2 -2
  34. package/esm2015/interfaces/index.js +3 -1
  35. package/esm2015/interfaces/plugins/index.js +5 -0
  36. package/esm2015/interfaces/plugins/no-infer.js +2 -0
  37. package/esm2015/interfaces/plugins/plugin-key.js +40 -0
  38. package/esm2015/interfaces/plugins/plugins.js +2 -0
  39. package/esm2015/interfaces/plugins/with-override.js +2 -0
  40. package/esm2015/interfaces/toolbar.js +1 -1
  41. package/esm2015/interfaces/utility/index.js +4 -0
  42. package/esm2015/interfaces/utility/nested-structure-by-key.js +2 -0
  43. package/esm2015/interfaces/utility/override-by-key.js +2 -0
  44. package/esm2015/interfaces/utility/types.js +2 -0
  45. package/esm2015/plugins/align/align.editor.js +3 -3
  46. package/esm2015/plugins/align/align.plugin.js +41 -2
  47. package/esm2015/plugins/autoformat/autoformat.plugin.js +19 -13
  48. package/esm2015/plugins/blockquote/blockquote.editor.js +9 -16
  49. package/esm2015/plugins/blockquote/blockquote.plugin.js +23 -4
  50. package/esm2015/plugins/code/code.editor.js +4 -15
  51. package/esm2015/plugins/code/code.plugin.js +22 -2
  52. package/esm2015/plugins/color/color.plugin.js +25 -0
  53. package/esm2015/plugins/common/auto-insert-data..js +14 -9
  54. package/esm2015/plugins/common/block-card.plugin.js +9 -3
  55. package/esm2015/plugins/common/get-fragment.plugin.js +10 -2
  56. package/esm2015/plugins/common/history.plugin.js +7 -1
  57. package/esm2015/plugins/common/move-selection.plugin.js +9 -3
  58. package/esm2015/plugins/common/remove-empty.plugin.js +7 -1
  59. package/esm2015/plugins/common/remove-void.plugin.js +8 -2
  60. package/esm2015/plugins/common/reset-type.plugin.js +7 -1
  61. package/esm2015/plugins/common/transforms.plugin.js +8 -2
  62. package/esm2015/plugins/deserializers/deserialize-html.plugin.js +10 -5
  63. package/esm2015/plugins/deserializers/deserialize-md.plugin.js +11 -5
  64. package/esm2015/plugins/font-size/font-size.editor.js +29 -3
  65. package/esm2015/plugins/heading/heading.editor.js +22 -4
  66. package/esm2015/plugins/heading/heading.plugin.js +60 -2
  67. package/esm2015/plugins/hr/hr.plugin.js +21 -1
  68. package/esm2015/plugins/image/image.plugin.js +24 -3
  69. package/esm2015/plugins/indent/indent.editor.js +18 -16
  70. package/esm2015/plugins/indent/indent.plugin.js +50 -9
  71. package/esm2015/plugins/index.js +70 -126
  72. package/esm2015/plugins/inline-code/inline-code.plugin.js +19 -2
  73. package/esm2015/plugins/link/link.plugin.js +21 -7
  74. package/esm2015/plugins/list/list.editor.js +3 -3
  75. package/esm2015/plugins/list/list.plugin.js +46 -3
  76. package/esm2015/plugins/mark/mark.plugin.js +44 -2
  77. package/esm2015/plugins/node-id/node-id.plugin.js +21 -5
  78. package/esm2015/plugins/normalizers/insert-paragraph-nodes.js +10 -2
  79. package/esm2015/plugins/normalizers/remove-empty-nodes.js +1 -1
  80. package/esm2015/plugins/normalizers/trailing-node.plugin.js +27 -18
  81. package/esm2015/plugins/paint-format/paint-format.editor.js +60 -4
  82. package/esm2015/plugins/quick-insert/components/quick-toolbar/quick-toolbar.component.js +7 -4
  83. package/esm2015/plugins/quick-insert/quick-insert.editor.js +4 -4
  84. package/esm2015/plugins/quick-insert/quick-insert.plugin.js +23 -16
  85. package/esm2015/plugins/soft-break/soft-break.plugin.js +22 -3
  86. package/esm2015/plugins/table/components/table.component.js +4 -5
  87. package/esm2015/plugins/table/table.plugin.js +26 -7
  88. package/esm2015/plugins/table/transforms/insert-table.js +2 -2
  89. package/esm2015/plugins/todo-item/todo-item.editor.js +4 -4
  90. package/esm2015/plugins/todo-item/todo-item.plugin.js +21 -2
  91. package/esm2015/plugins/vertical-align/vertical-align.editor.js +40 -1
  92. package/esm2015/public-api.js +2 -1
  93. package/esm2015/queries/index.js +3 -5
  94. package/esm2015/queries/is-contain-nested-type.js +29 -0
  95. package/esm2015/transforms/insert-element-next.js +11 -11
  96. package/esm2015/transforms/insert-element.js +1 -1
  97. package/esm2015/utils/index.js +5 -1
  98. package/fesm2015/worktile-theia.js +6624 -6253
  99. package/fesm2015/worktile-theia.js.map +1 -1
  100. package/interfaces/editor.d.ts +14 -12
  101. package/interfaces/index.d.ts +2 -0
  102. package/interfaces/plugins/index.d.ts +4 -0
  103. package/interfaces/plugins/no-infer.d.ts +1 -0
  104. package/interfaces/plugins/plugin-key.d.ts +48 -0
  105. package/interfaces/plugins/plugins.d.ts +39 -0
  106. package/interfaces/plugins/with-override.d.ts +7 -0
  107. package/interfaces/toolbar.d.ts +0 -1
  108. package/interfaces/utility/index.d.ts +3 -0
  109. package/interfaces/utility/nested-structure-by-key.d.ts +3 -0
  110. package/interfaces/utility/override-by-key.d.ts +3 -0
  111. package/interfaces/utility/types.d.ts +1 -0
  112. package/package.json +1 -1
  113. package/plugins/align/align.editor.d.ts +1 -1
  114. package/plugins/align/align.plugin.d.ts +2 -1
  115. package/plugins/autoformat/autoformat.plugin.d.ts +2 -1
  116. package/plugins/blockquote/blockquote.plugin.d.ts +2 -2
  117. package/plugins/code/code.plugin.d.ts +2 -2
  118. package/plugins/color/color.plugin.d.ts +1 -0
  119. package/plugins/common/auto-insert-data..d.ts +2 -3
  120. package/plugins/common/block-card.plugin.d.ts +2 -2
  121. package/plugins/common/get-fragment.plugin.d.ts +5 -1
  122. package/plugins/common/history.plugin.d.ts +4 -3
  123. package/plugins/common/move-selection.plugin.d.ts +2 -2
  124. package/plugins/common/remove-empty.plugin.d.ts +2 -2
  125. package/plugins/common/remove-void.plugin.d.ts +2 -1
  126. package/plugins/common/reset-type.plugin.d.ts +2 -2
  127. package/plugins/common/transforms.plugin.d.ts +2 -1
  128. package/plugins/deserializers/deserialize-html.plugin.d.ts +2 -2
  129. package/plugins/deserializers/deserialize-md.plugin.d.ts +2 -2
  130. package/plugins/font-size/font-size.editor.d.ts +3 -2
  131. package/plugins/heading/heading.editor.d.ts +4 -1
  132. package/plugins/heading/heading.plugin.d.ts +7 -2
  133. package/plugins/hr/hr.plugin.d.ts +2 -2
  134. package/plugins/image/image.plugin.d.ts +7 -2
  135. package/plugins/indent/indent.editor.d.ts +2 -2
  136. package/plugins/indent/indent.plugin.d.ts +7 -3
  137. package/plugins/index.d.ts +1 -5
  138. package/plugins/inline-code/inline-code.plugin.d.ts +2 -2
  139. package/plugins/link/link.plugin.d.ts +2 -2
  140. package/plugins/list/list.plugin.d.ts +2 -2
  141. package/plugins/mark/mark.plugin.d.ts +2 -1
  142. package/plugins/node-id/node-id.plugin.d.ts +2 -3
  143. package/plugins/normalizers/insert-paragraph-nodes.d.ts +6 -2
  144. package/plugins/normalizers/trailing-node.plugin.d.ts +2 -1
  145. package/plugins/paint-format/paint-format.editor.d.ts +1 -0
  146. package/plugins/quick-insert/components/quick-toolbar/quick-toolbar.component.d.ts +2 -3
  147. package/plugins/quick-insert/quick-insert.editor.d.ts +1 -1
  148. package/plugins/quick-insert/quick-insert.plugin.d.ts +5 -1
  149. package/plugins/soft-break/soft-break.plugin.d.ts +3 -2
  150. package/plugins/table/components/table.component.d.ts +2 -2
  151. package/plugins/table/table.plugin.d.ts +2 -2
  152. package/plugins/todo-item/todo-item.plugin.d.ts +2 -2
  153. package/plugins/vertical-align/vertical-align.editor.d.ts +1 -0
  154. package/public-api.d.ts +1 -0
  155. package/queries/index.d.ts +2 -4
  156. package/queries/is-contain-nested-type.d.ts +2 -0
  157. package/transforms/insert-element-next.d.ts +1 -1
  158. package/utils/index.d.ts +4 -0
  159. package/esm2015/plugins/align/options.js +0 -37
  160. package/esm2015/plugins/blockquote/options.js +0 -13
  161. package/esm2015/plugins/code/options.js +0 -13
  162. package/esm2015/plugins/color/options.js +0 -20
  163. package/esm2015/plugins/font-size/options.js +0 -25
  164. package/esm2015/plugins/heading/options.js +0 -54
  165. package/esm2015/plugins/hr/options.js +0 -13
  166. package/esm2015/plugins/image/options.js +0 -12
  167. package/esm2015/plugins/indent/options.js +0 -28
  168. package/esm2015/plugins/inline-code/options.js +0 -14
  169. package/esm2015/plugins/link/options.js +0 -12
  170. package/esm2015/plugins/list/options.js +0 -19
  171. package/esm2015/plugins/mark/options.js +0 -37
  172. package/esm2015/plugins/paint-format/options.js +0 -57
  173. package/esm2015/plugins/table/options.js +0 -14
  174. package/esm2015/plugins/todo-item/options.js +0 -12
  175. package/esm2015/plugins/vertical-align/options.js +0 -39
  176. package/esm2015/queries/anchor-inline.js +0 -5
  177. package/esm2015/queries/get-children.js +0 -14
  178. package/esm2015/queries/is-empty-content.js +0 -15
  179. package/plugins/align/options.d.ts +0 -2
  180. package/plugins/blockquote/options.d.ts +0 -2
  181. package/plugins/code/options.d.ts +0 -2
  182. package/plugins/color/options.d.ts +0 -2
  183. package/plugins/font-size/options.d.ts +0 -2
  184. package/plugins/heading/options.d.ts +0 -2
  185. package/plugins/hr/options.d.ts +0 -2
  186. package/plugins/image/options.d.ts +0 -2
  187. package/plugins/indent/options.d.ts +0 -2
  188. package/plugins/inline-code/options.d.ts +0 -2
  189. package/plugins/link/options.d.ts +0 -2
  190. package/plugins/list/options.d.ts +0 -2
  191. package/plugins/mark/options.d.ts +0 -2
  192. package/plugins/paint-format/options.d.ts +0 -2
  193. package/plugins/table/options.d.ts +0 -2
  194. package/plugins/todo-item/options.d.ts +0 -2
  195. package/plugins/vertical-align/options.d.ts +0 -2
  196. package/queries/anchor-inline.d.ts +0 -2
  197. package/queries/get-children.d.ts +0 -6
  198. package/queries/is-empty-content.d.ts +0 -2
@@ -24,8 +24,13 @@ import { TheBulletedListComponent } from './components/bulleted-list.component';
24
24
  import { TheListItemComponent } from './components/list-item.component';
25
25
  import { extractFragment } from '../../utils/fragment';
26
26
  import { isSelectionInSameListItem } from './queries/is-selection-in-same-list-item';
27
- export const withList = ({ validLiChildrenTypes } = {}) => (editor) => {
27
+ import { createPluginFactory, getPluginOptions } from '../../core';
28
+ import { PluginKeys } from '../../interfaces';
29
+ import { ListEditor } from './list.editor';
30
+ export const withList = (editor) => {
31
+ var _a, _b;
28
32
  const { insertBreak, deleteBackward, onKeydown, insertData, setFragmentData, renderElement } = editor;
33
+ const validLiChildrenTypes = (_b = (_a = getPluginOptions(editor, PluginKeys.list)) === null || _a === void 0 ? void 0 : _a.validLiChildrenTypes) !== null && _b !== void 0 ? _b : [];
29
34
  const resetBlockTypesListRule = {
30
35
  types: [ElementKinds.listItem],
31
36
  defaultType: ElementKinds.paragraph,
@@ -174,7 +179,6 @@ export const withList = ({ validLiChildrenTypes } = {}) => (editor) => {
174
179
  const endPoint = Editor.end(editor, listItemPath);
175
180
  const isInFirstChild = !isListNested(editor, listPath) && TheQueries.isFirstChild(listItemPath);
176
181
  const to = isInFirstChild ? listPath : Path.next(Path.parent(beforePoint.path));
177
- // TODO: types
178
182
  Transforms.moveNodes(editor, {
179
183
  at: Editor.range(editor, startPoint, endPoint),
180
184
  to,
@@ -235,4 +239,43 @@ export const withList = ({ validLiChildrenTypes } = {}) => (editor) => {
235
239
  };
236
240
  return editor;
237
241
  };
238
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC5wbHVnaW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9zcmMvcGx1Z2lucy9saXN0L2xpc3QucGx1Z2luLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQXFCLE1BQU0sT0FBTyxDQUFDO0FBQzFFLE9BQU8sRUFBRSxhQUFhLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzVELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNyRSxPQUFPLEtBQUssVUFBVSxNQUFNLGVBQWUsQ0FBQztBQUM1QyxPQUFPLEtBQUssYUFBYSxNQUFNLGtCQUFrQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUMzQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDaEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNqRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNqRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNqRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsdUJBQXVCLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNoSCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUN2RixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDL0QsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGdDQUFnQyxD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QUFDO0lBQ2xDLENBQUMsQ0FBQztJQUVGLE9BQU8sTUFBTSxDQUFDO0FBQ2xCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRyYW5zZm9ybXMsIE5vZGUsIEVkaXRvciwgUGF0aCwgQW5jZXN0b3IsIEVsZW1lbnQgfSBmcm9tICdzbGF0ZSc7XG5pbXBvcnQgeyBBbmd1bGFyRWRpdG9yLCBnZXRQbGFpblRleHQgfSBmcm9tICdzbGF0ZS1hbmd1bGFyJztcbmltcG9ydCB7IENMSVBCT0FSRF9GT1JNQVRfS0VZLCBFbGVtZW50S2luZHMgfSBmcm9tICcuLi8uLi9jb25zdGFudHMnO1xuaW1wb3J0ICogYXMgVGhlUXVlcmllcyBmcm9tICcuLi8uLi9xdWVyaWVzJztcbmltcG9ydCAqIGFzIFRoZVRyYW5zZm9ybXMgZnJvbSAnLi4vLi4vdHJhbnNmb3Jtcyc7XG5pbXBvcnQgeyBpc0xpc3QgfSBmcm9tICcuL3F1ZXJpZXMvaXMtbGlzdCc7XG5pbXBvcnQgeyBpc0luTGlzdCB9IGZyb20gJy4vcXVlcmllcy9pcy1pbi1saXN0JztcbmltcG9ydCB7IGlzTGlzdE5lc3RlZCB9IGZyb20gJy4vcXVlcmllcy9pcy1saXN0LW5lc3RlZCc7XG5pbXBvcnQgeyBnZXRMaXN0VHlwZXMgfSBmcm9tICcuL3F1ZXJpZXMvZ2V0LWxpc3QtdHlwZXMnO1xuaW1wb3J0IHsgZ2V0U3RhcnRMaXN0SXRlbSB9IGZyb20gJy4vcXVlcmllcy9nZXQtc3RhcnQtbGlzdC1pdGVtJztcbmltcG9ydCB7IGlzU2luZ2xlTGlzdEl0ZW0gfSBmcm9tICcuL3F1ZXJpZXMvaXMtc2luZ2xlLWxpc3QtaXRlbSc7XG5pbXBvcnQgeyBnZXRMaXN0SXRlbUVudHJ5IH0gZnJvbSAnLi9xdWVyaWVzL2dldC1saXN0LWl0ZW0tZW50cnknO1xuaW1wb3J0IHsgaGFzTGlzdEluTGlzdEl0ZW0sIGhhc1N0YWJsZUxpc3RJbkxpc3RJdGVtLCBoYXNTdGFibGVMaXN0SXRlbSB9IGZyb20gJy4vcXVlcmllcy9oYXMtbGlzdC1pbi1saXN0LWl0ZW0nO1xuaW1wb3J0IHsgaXNTZWxlY3Rpb25BdExpc3RJdGVtU3RhcnQgfSBmcm9tICcuL3F1ZXJpZXMvaXMtc2VsZWN0aW9uLWF0LWxpc3QtaXRlbS1zdGFydCc7XG5pbXBvcnQgeyBpbnNlcnRMaXN0RGF0YSB9IGZyb20gJy4vdHJhbnNmb3Jtcy9pbnNlcnQtbGlzdC1kYXRhJztcbmltcG9ydCB7IG1vdmVMaXN0SXRlbVVwIH0gZnJvbSAnLi90cmFuc2Zvcm1zL21vdmUtbGlzdC1pdGVtLXVwJztcbmltcG9ydCB7IGluc2VydExpc3RJdGVtIH0gZnJvbSAnLi90cmFuc2Zvcm1zL2luc2VydC1saXN0LWl0ZW0nO1xuaW1wb3J0IHsgdW53cmFwTGlzdCB9IGZyb20gJy4vdHJhbnNmb3Jtcy91bndyYXAtbGlzdCc7XG5pbXBvcnQgeyBtb3ZlTGlzdEl0ZW1TdWJsaXN0SXRlbXNUb0xpc3RJdGVtU3VibGlzdCB9IGZyb20gJy4vdHJhbnNmb3Jtcy9tb3ZlLWxpc3QtaXRlbS1zdWJsaXN0LWl0ZW1zLXRvLWxpc3QtaXRlbS1zdWJsaXN0JztcbmltcG9ydCB7IGdldExpc3ROb3JtYWxpemVyIH0gZnJvbSAnLi9ub3JtYWxpemVycy9nZXQtbGlzdC1ub3JtYWxpemVyJztcbmltcG9ydCB7IG9uS2V5RG93bkxpc3QgfSBmcm9tICcuL29uLWtleS1kb3duLWxpc3QnO1xuaW1wb3J0IHsgV2l0aExpc3RPcHRpb25zIH0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQgeyBUaGVOdW1iZXJlZExpc3RDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvbnVtYmVyZWQtbGlzdC5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGhlQnVsbGV0ZWRMaXN0Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2J1bGxldGVkLWxpc3QuY29tcG9uZW50JztcbmltcG9ydCB7IFRoZUxpc3RJdGVtQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2xpc3QtaXRlbS5jb21wb25lbnQnO1xuaW1wb3J0IHsgZXh0cmFjdEZyYWdtZW50IH0gZnJvbSAnLi4vLi4vdXRpbHMvZnJhZ21lbnQnO1xuaW1wb3J0IHsgaXNTZWxlY3Rpb25JblNhbWVMaXN0SXRlbSB9IGZyb20gJy4vcXVlcmllcy9pcy1zZWxlY3Rpb24taW4tc2FtZS1saXN0LWl0ZW0nO1xuXG5leHBvcnQgY29uc3Qgd2l0aExpc3QgPVxuICAgICh7IHZhbGlkTGlDaGlsZHJlblR5cGVzIH06IFdpdGhMaXN0T3B0aW9ucyA9IHt9KSA9PlxuICAgIChlZGl0b3I6IEVkaXRvcikgPT4ge1xuICAgICAgICBjb25zdCB7IGluc2VydEJyZWFrLCBkZWxldGVCYWNrd2FyZCwgb25LZXlkb3duLCBpbnNlcnREYXRhLCBzZXRGcmFnbWVudERhdGEsIHJlbmRlckVsZW1lbnQgfSA9IGVkaXRvcjtcblxuICAgICAgICBjb25zdCByZXNldEJsb2NrVHlwZXNMaXN0UnVsZSA9IHtcbiAgICAgICAgICAgIHR5cGVzOiBbRWxlbWVudEtpbmRzLmxpc3RJdGVtXSxcbiAgICAgICAgICAgIGRlZmF1bHRUeXBlOiBFbGVtZW50S2luZHMucGFyYWdyYXBoLFxuICAgICAgICAgICAgb25SZXNldDogKF9lZGl0b3I6IEVkaXRvcikgPT4gdW53cmFwTGlzdChfZWRpdG9yKVxuICAgICAgICB9O1xuXG4gICAgICAgIGVkaXRvci5pbnNlcnRCcmVhayA9ICgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IG5vZGUgPSBUaGVRdWVyaWVzLmFuY2hvckJsb2NrKGVkaXRvcik7XG5cbiAgICAgICAgICAgIGlmICghbm9kZSkge1xuICAgICAgICAgICAgICAgIGluc2VydEJyZWFrKCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25zdCBpc1ZvaWQgPSBFZGl0b3IuaXNWb2lkKGVkaXRvciwgbm9kZSk7XG4gICAgICAgICAgICBpZiAoaXNWb2lkKSB7XG4gICAgICAgICAgICAgICAgaW5zZXJ0QnJlYWsoKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBsaXN0RW50cnkgPSBnZXRMaXN0SXRlbUVudHJ5KGVkaXRvciwge30pO1xuICAgICAgICAgICAgaWYgKGxpc3RFbnRyeSkge1xuICAgICAgICAgICAgICAgIGxldCBtb3ZlZDogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbiAgICAgICAgICAgICAgICBjb25zdCB7IGxpc3QsIGxpc3RJdGVtIH0gPSBsaXN0RW50cnk7XG4gICAgICAgICAgICAgICAgY29uc3QgW2xpc3RJdGVtTm9kZSwgbGlzdEl0ZW1QYXRoXSA9IGxpc3RJdGVtO1xuICAgICAgICAgICAgICAgIGNvbnN0IGN1cnNvciA9IGVkaXRvci5zZWxlY3Rpb24uZm9jdXM7XG4gICAgICAgICAgICAgICAgY29uc3QgaXNTdGFydCA9IEVkaXRvci5pc1N0YXJ0KGVkaXRvciwgY3Vyc29yLCBsaXN0SXRlbVBhdGgpO1xuXG4gICAgICAgICAgICAgICAgLy8gZGVwcmVjYXRlZFxuICAgICAgICAgICAgICAgIC8vIOWmguaenOacieWtkOe6p1xuICAgICAgICAgICAgICAgIGlmIChoYXNMaXN0SW5MaXN0SXRlbShsaXN0SXRlbU5vZGUpKSB7XG4gICAgICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgICAgICAgKiBJZiBzZWxlY3Rpb24gaXMgYXQgdGhlIGVuZCBvZiBsaSxcbiAgICAgICAgICAgICAgICAgICAgICogaW5zZXJ0IGJlbG93IGxpIHdoZXJlIGNoaWxkcmVuIHdpbGwgYmUgbW92ZWQuXG4gICAgICAgICAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgICAgICAgICBpZiAoRWRpdG9yLmlzRW5kKGVkaXRvciwgY3Vyc29yLCBsaXN0SXRlbVBhdGgpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gVHJhbnNmb3Jtcy5pbnNlcnROb2RlcyhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlZGl0b3IsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBFbGVtZW50S2luZHMubGlzdEl0ZW0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoaWxkcmVuOiBbeyB0eXBlOiBFbGVtZW50S2luZHMucGFyYWdyYXBoLCBjaGlsZHJlbjogW3sgdGV4dDogJycgfV0gfV1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgYXQ6IFBhdGgubmV4dChsaXN0SXRlbVBhdGgpLCBzZWxlY3Q6IHRydWUgfVxuICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgICAgICAgKiDlpoLmnpzpgInljLrmmK/lnKhsaXN0SXRlbeeahOW8gOWktO+8jOWImeWcqGxpc3RJdGVt5LiK5pa55o+S5YWlXG4gICAgICAgICAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgICAgICAgICBpZiAoaXNTdGFydCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFRyYW5zZm9ybXMuaW5zZXJ0Tm9kZXMoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZWRpdG9yLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogRWxlbWVudEtpbmRzLmxpc3RJdGVtLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGlsZHJlbjogW3sgdHlwZTogRWxlbWVudEtpbmRzLnBhcmFncmFwaCwgY2hpbGRyZW46IFt7IHRleHQ6ICcnIH1dIH1dXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IGF0OiBsaXN0SXRlbVBhdGggfVxuICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC8vIOWmguaenOmAieaLqeeahGxpc3RJdGVt5Li656m65YiZ5bCG5YW25ZCR5LiK56e75YqoXG4gICAgICAgICAgICAgICAgaWYgKGlzU3RhcnQgJiYgVGhlUXVlcmllcy5pc0Jsb2NrQWJvdmVFbXB0eShlZGl0b3IpKSB7XG4gICAgICAgICAgICAgICAgICAgIG1vdmVkID0gbW92ZUxpc3RJdGVtVXAoZWRpdG9yLCB7IGxpc3QsIGxpc3RJdGVtIH0pO1xuICAgICAgICAgICAgICAgICAgICBpZiAobW92ZWQpIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBjb25zdCBkaWRSZXNldCA9IFRoZVRyYW5zZm9ybXMub25LZXlEb3duUmVzZXRCbG9ja1R5cGUoe1xuICAgICAgICAgICAgICAgICAgICBydWxlczogW1xuICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLnJlc2V0QmxvY2tUeXBlc0xpc3RSdWxlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByZWRpY2F0ZTogKCkgPT4gIW1vdmVkICYmIGlzU3RhcnQgJiYgVGhlUXVlcmllcy5pc0Jsb2NrQWJvdmVFbXB0eShlZGl0b3IpXG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIF1cbiAgICAgICAgICAgICAgICB9KShudWxsLCBlZGl0b3IpO1xuICAgICAgICAgICAgICAgIGlmIChkaWRSZXNldCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAgICogQWRkIGEgbmV3IGxpc3QgaXRlbSBpZiBzZWxlY3Rpb24gaXMgaW4gYSBMSVNUX0lURU0gPiBwLnR5cGUuXG4gICAgICAgICAgICAgICAgICovXG4gICAgICAgICAgICAgICAgaWYgKCFtb3ZlZCkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBpbnNlcnRlZCA9IGluc2VydExpc3RJdGVtKGVkaXRvcik7XG4gICAgICAgICAgICAgICAgICAgIGlmIChpbnNlcnRlZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpbnNlcnRCcmVhaygpO1xuICAgICAgICB9O1xuXG4gICAgICAgIGVkaXRvci5zZXRGcmFnbWVudERhdGEgPSB1bml0ID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHsgc2VsZWN0aW9uIH0gPSBlZGl0b3I7XG4gICAgICAgICAgICBjb25zdCBbc3RhcnRdID0gRWRpdG9yLmVkZ2VzKGVkaXRvciwgc2VsZWN0aW9uKTtcbiAgICAgICAgICAgIGlmIChpc0luTGlzdChlZGl0b3IsIHN0YXJ0KSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGZyYWdtZW50RGF0YSA9IGVkaXRvci5nZXRGcmFnbWVudCgpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGZyYWdtZW50RWxlbWVudCA9IGZyYWdtZW50RGF0YVswXSBhcyBFbGVtZW50O1xuICAgICAgICAgICAgICAgIGlmIChnZXRMaXN0VHlwZXMoKS5pbmNsdWRlcyhmcmFnbWVudEVsZW1lbnQudHlwZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RhcnROb2RlcyA9IGdldFN0YXJ0TGlzdEl0ZW0oW2ZyYWdtZW50RWxlbWVudC5jaGlsZHJlblswXV0gYXMgRWxlbWVudFtdKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hpbGRyZW4gPSBzdGFydE5vZGVzLmNvbmNhdCgoZnJhZ21lbnRFbGVtZW50LmNoaWxkcmVuIGFzIEVsZW1lbnRbXSkuc2xpY2UoMSkpO1xuICAgICAgICAgICAgICAgICAgICBsZXQgZnJhZ21lbnROb2RlcyA9IFtcbiAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuLi5mcmFnbWVudEVsZW1lbnQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hpbGRyZW5cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgXSBhcyBOb2RlW107XG4gICAgICAgICAgICAgICAgICAgIGlmIChpc1NlbGVjdGlvbkluU2FtZUxpc3RJdGVtKGVkaXRvcikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIOS7heS7heWkjeWItuWIl+ihqOS4reeahOWGheWuuVxuICAgICAgICAgICAgICAgICAgICAgICAgZnJhZ21lbnROb2RlcyA9IGNoaWxkcmVuWzBdLmNoaWxkcmVuO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGZyYWdtZW50ID0gZnJhZ21lbnROb2Rlcy5jb25jYXQoZnJhZ21lbnREYXRhLnNsaWNlKDEpKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZG9tUmFuZ2UgPSBBbmd1bGFyRWRpdG9yLnRvRE9NUmFuZ2UoZWRpdG9yLCBzZWxlY3Rpb24pO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBjb250ZW50cyA9IGRvbVJhbmdlLmNsb25lQ29udGVudHMoKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RyaW5nT2JqID0gSlNPTi5zdHJpbmdpZnkoZnJhZ21lbnQpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBlbmNvZGVkID0gd2luZG93LmJ0b2EoZW5jb2RlVVJJQ29tcG9uZW50KHN0cmluZ09iaikpO1xuICAgICAgICAgICAgICAgICAgICB1bml0LnNldERhdGEoYGFwcGxpY2F0aW9uLyR7Q0xJUEJPQVJEX0ZPUk1BVF9LRVl9YCwgZW5jb2RlZCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgICAgICAgICAgICAgICAgICBkaXYuYXBwZW5kQ2hpbGQoY29udGVudHMpO1xuICAgICAgICAgICAgICAgICAgICBkaXYuc2V0QXR0cmlidXRlKCdoaWRkZW4nLCAndHJ1ZScpO1xuICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGRpdik7XG4gICAgICAgICAgICAgICAgICAgIHVuaXQuc2V0RGF0YSgndGV4dC9odG1sJywgZGl2LmlubmVySFRNTCk7XG4gICAgICAgICAgICAgICAgICAgIHVuaXQuc2V0RGF0YSgndGV4dC9wbGFpbicsIGdldFBsYWluVGV4dChkaXYpKTtcbiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChkaXYpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgc2V0RnJhZ21lbnREYXRhKHVuaXQpO1xuICAgICAgICB9O1xuXG4gICAgICAgIGVkaXRvci5kZWxldGVCYWNrd2FyZCA9IHVuaXQgPT4ge1xuICAgICAgICAgICAgY29uc3QgcmVzID0gZ2V0TGlzdEl0ZW1FbnRyeShlZGl0b3IsIHt9KTtcblxuICAgICAgICAgICAgaWYgKHJlcyAmJiBpc1NlbGVjdGlvbkF0TGlzdEl0ZW1TdGFydChlZGl0b3IpKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgeyBsaXN0LCBsaXN0SXRlbSB9ID0gcmVzO1xuICAgICAgICAgICAgICAgIGNvbnN0IFssIGxpc3RQYXRoXSA9IGxpc3Q7XG4gICAgICAgICAgICAgICAgY29uc3QgW2xpc3RJdGVtTm9kZSwgbGlzdEl0ZW1QYXRoXSA9IGxpc3RJdGVtO1xuXG4gICAgICAgICAgICAgICAgY29uc3QgcHJldmlvdXNMaXN0SXRlbVBhdGggPSBUaGVRdWVyaWVzLmdldFByZXZpb3VzUGF0aChsaXN0SXRlbVBhdGgpO1xuXG4gICAgICAgICAgICAgICAgaWYgKHByZXZpb3VzTGlzdEl0ZW1QYXRoKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGJlZm9yZVBvaW50ID0gRWRpdG9yLmJlZm9yZShlZGl0b3IsIGxpc3RJdGVtUGF0aCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHBhcmVudFBhdGggPSBQYXRoLnBhcmVudChiZWZvcmVQb2ludC5wYXRoKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcGFyZW50Tm9kZSA9IE5vZGUuZ2V0KGVkaXRvciwgcGFyZW50UGF0aCk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChFZGl0b3IuaXNWb2lkKGVkaXRvciwgcGFyZW50Tm9kZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIEVkaXRvci53aXRob3V0Tm9ybWFsaXppbmcoZWRpdG9yLCAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgVGhlVHJhbnNmb3Jtcy51bndyYXBOb2Rlc0J5VHlwZShlZGl0b3IsIFtFbGVtZW50S2luZHMuYnVsbGV0ZWRMaXN0LCBFbGVtZW50S2luZHMubnVtYmVyZWRMaXN0XSwge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcGxpdDogdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRoZVRyYW5zZm9ybXMudW53cmFwTm9kZXNCeVR5cGUoZWRpdG9yLCBFbGVtZW50S2luZHMubGlzdEl0ZW0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBpZiAocHJldmlvdXNMaXN0SXRlbVBhdGggJiYgaGFzU3RhYmxlTGlzdEluTGlzdEl0ZW0obGlzdEl0ZW1Ob2RlKSkge1xuICAgICAgICAgICAgICAgICAgICBFZGl0b3Iud2l0aG91dE5vcm1hbGl6aW5nKGVkaXRvciwgKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGVsZXRlQmFja3dhcmQodW5pdCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBbcHJldmlvdXNMaXN0SXRlbU5vZGVdID0gRWRpdG9yLm5vZGUoZWRpdG9yLCBwcmV2aW91c0xpc3RJdGVtUGF0aCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBtb3ZlTGlzdEl0ZW1TdWJsaXN0SXRlbXNUb0xpc3RJdGVtU3VibGlzdChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlZGl0b3IsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmcm9tTGlzdEl0ZW06IGxpc3RJdGVtLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b0xpc3RJdGVtOiBbcHJldmlvdXNMaXN0SXRlbU5vZGUgYXMgQW5jZXN0b3IsIHByZXZpb3VzTGlzdEl0ZW1QYXRoXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnQ6IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7fVxuICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAvLyBtb3ZlIGxpc3RJdGVtIGNoaWxkcmVuIHRvIGJlZm9yZSBsaXN0SXRlbVxuICAgICAgICAgICAgICAgIGlmIChsaXN0SXRlbU5vZGUuY2hpbGRyZW4ubGVuZ3RoID4gMSkge1xuICAgICAgICAgICAgICAgICAgICBFZGl0b3Iud2l0aG91dE5vcm1hbGl6aW5nKGVkaXRvciwgKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgYmVmb3JlUGF0aFJlZiA9IEVkaXRvci5wYXRoUmVmKGVkaXRvciwgbGlzdEl0ZW1QYXRoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGJlZm9yZVBvaW50ID0gRWRpdG9yLmJlZm9yZShlZGl0b3IsIGxpc3RJdGVtUGF0aCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdGFydFBvaW50ID0gRWRpdG9yLnN0YXJ0KGVkaXRvciwgbGlzdEl0ZW1QYXRoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGVuZFBvaW50ID0gRWRpdG9yLmVuZChlZGl0b3IsIGxpc3RJdGVtUGF0aCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBpc0luRmlyc3RDaGlsZCA9ICFpc0xpc3ROZXN0ZWQoZWRpdG9yLCBsaXN0UGF0aCkgJiYgVGhlUXVlcmllcy5pc0ZpcnN0Q2hpbGQobGlzdEl0ZW1QYXRoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHRvID0gaXNJbkZpcnN0Q2hpbGQgPyBsaXN0UGF0aCA6IFBhdGgubmV4dChQYXRoLnBhcmVudChiZWZvcmVQb2ludC5wYXRoKSk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRPRE86IHR5cGVzXG4gICAgICAgICAgICAgICAgICAgICAgICBUcmFuc2Zvcm1zLm1vdmVOb2RlcyhlZGl0b3IsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdDogRWRpdG9yLnJhbmdlKGVkaXRvciwgc3RhcnRQb2ludCwgZW5kUG9pbnQpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdGNoOiBub2RlID0+IGxpc3RJdGVtTm9kZS5jaGlsZHJlbi5pbmNsdWRlcyhub2RlIGFzIGFueSlcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgVHJhbnNmb3Jtcy5kZWxldGUoZWRpdG9yLCB7IGF0OiBiZWZvcmVQYXRoUmVmLnVucmVmKCkgfSk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghaXNJbkZpcnN0Q2hpbGQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWxldGVCYWNrd2FyZCh1bml0KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAvLyBkZXByZWNhdGVkXG4gICAgICAgICAgICAgICAgaWYgKCFpc0xpc3ROZXN0ZWQoZWRpdG9yLCBsaXN0UGF0aCkgJiYgVGhlUXVlcmllcy5pc0ZpcnN0Q2hpbGQobGlzdEl0ZW1QYXRoKSkge1xuICAgICAgICAgICAgICAgICAgICB1bndyYXBMaXN0KGVkaXRvcik7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGRlbGV0ZUJhY2t3YXJkKHVuaXQpO1xuICAgICAgICB9O1xuXG4gICAgICAgIGVkaXRvci5pbnNlcnREYXRhID0gKGRhdGE6IERhdGFUcmFuc2ZlcikgPT4ge1xuICAgICAgICAgICAgY29uc3QgdGV4dCA9IGRhdGEuZ2V0RGF0YSgndGV4dC9wbGFpbicpO1xuICAgICAgICAgICAgY29uc3QgZnJhZ21lbnQgPSBleHRyYWN0RnJhZ21lbnQoZGF0YSk7XG4gICAgICAgICAgICBjb25zdCBhYm92ZUVudHJ5ID0gRWRpdG9yLmFib3ZlKGVkaXRvciwge1xuICAgICAgICAgICAgICAgIG1hdGNoOiBuID0+IEVkaXRvci5pc0Jsb2NrKGVkaXRvciwgbikgJiYgbi50eXBlID09PSBFbGVtZW50S2luZHMubGlzdEl0ZW1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgaWYgKGZyYWdtZW50KSB7XG4gICAgICAgICAgICAgICAgY29uc3QgcmVzID0gZ2V0TGlzdEl0ZW1FbnRyeShlZGl0b3IsIHt9KTtcbiAgICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgICAgIGZyYWdtZW50Lmxlbmd0aCA9PT0gMSAmJlxuICAgICAgICAgICAgICAgICAgICBpc0xpc3QoZnJhZ21lbnRbMF0gYXMgRWxlbWVudCkgJiZcbiAgICAgICAgICAgICAgICAgICAgYWJvdmVFbnRyeSAmJlxuICAgICAgICAgICAgICAgICAgICAhaXNTaW5nbGVMaXN0SXRlbShmcmFnbWVudFswXSkgJiZcbiAgICAgICAgICAgICAgICAgICAgaGFzU3RhYmxlTGlzdEl0ZW0ocmVzLmxpc3RJdGVtWzBdKVxuICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgICBpbnNlcnRMaXN0RGF0YShlZGl0b3IsIHsgZnJvbUxpc3Q6IGZyYWdtZW50WzBdIGFzIEVsZW1lbnQsIHRvTGlzdEl0ZW1FbnRyeTogYWJvdmVFbnRyeSB9KTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaW5zZXJ0RGF0YShkYXRhKTtcbiAgICAgICAgfTtcblxuICAgICAgICBlZGl0b3Iub25LZXlkb3duID0gKGV2ZW50OiBLZXlib2FyZEV2ZW50KSA9PiB7XG4gICAgICAgICAgICBjb25zdCBpc0NvbnRpbnVlID0gIW9uS2V5RG93bkxpc3QoZXZlbnQsIGVkaXRvcik7XG4gICAgICAgICAgICBpZiAoaXNDb250aW51ZSkge1xuICAgICAgICAgICAgICAgIG9uS2V5ZG93bihldmVudCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG5cbiAgICAgICAgZWRpdG9yLm5vcm1hbGl6ZU5vZGUgPSBnZXRMaXN0Tm9ybWFsaXplcihlZGl0b3IsIHsgdmFsaWRMaUNoaWxkcmVuVHlwZXM6IHZhbGlkTGlDaGlsZHJlblR5cGVzIH0pO1xuXG4gICAgICAgIGVkaXRvci5yZW5kZXJFbGVtZW50ID0gKGVsZW1lbnQ6IEVsZW1lbnQpID0+IHtcbiAgICAgICAgICAgIGlmIChlbGVtZW50LnR5cGUgPT09IEVsZW1lbnRLaW5kcy5udW1iZXJlZExpc3QpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gVGhlTnVtYmVyZWRMaXN0Q29tcG9uZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGVsZW1lbnQudHlwZSA9PT0gRWxlbWVudEtpbmRzLmJ1bGxldGVkTGlzdCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBUaGVCdWxsZXRlZExpc3RDb21wb25lbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZWxlbWVudC50eXBlID09PSBFbGVtZW50S2luZHMubGlzdEl0ZW0pIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gVGhlTGlzdEl0ZW1Db21wb25lbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gcmVuZGVyRWxlbWVudChlbGVtZW50KTtcbiAgICAgICAgfTtcblxuICAgICAgICByZXR1cm4gZWRpdG9yO1xuICAgIH07XG4iXX0=
242
+ const listOptions = {
243
+ validLiChildrenTypes: [ElementKinds.image],
244
+ allowParentTypes: [ElementKinds.listItem, ElementKinds.tableCell, ElementKinds.blockquote]
245
+ };
246
+ export const createListPlugin = createPluginFactory({
247
+ key: PluginKeys.list,
248
+ withOverrides: withList,
249
+ plugins: [
250
+ {
251
+ key: PluginKeys.numberedList,
252
+ options: listOptions
253
+ },
254
+ {
255
+ key: PluginKeys.bulletedList,
256
+ options: listOptions
257
+ }
258
+ ],
259
+ nestedStructureByKey: {
260
+ [ElementKinds.bulletedList]: [ElementKinds.listItem],
261
+ [ElementKinds.numberedList]: [ElementKinds.listItem]
262
+ },
263
+ toolbarItems: [
264
+ {
265
+ key: ElementKinds.numberedList,
266
+ icon: 'list-ordered',
267
+ name: '有序列表',
268
+ execute: editor => ListEditor.toggleList(editor, ElementKinds.numberedList),
269
+ active: editor => ListEditor.isActive(editor, ElementKinds.numberedList)
270
+ },
271
+ {
272
+ key: ElementKinds.bulletedList,
273
+ icon: 'list-bullet',
274
+ name: '无序列表',
275
+ execute: editor => ListEditor.toggleList(editor, ElementKinds.bulletedList),
276
+ active: editor => ListEditor.isActive(editor, ElementKinds.bulletedList)
277
+ }
278
+ ],
279
+ options: listOptions
280
+ });
281
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC5wbHVnaW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9zcmMvcGx1Z2lucy9saXN0L2xpc3QucGx1Z2luLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQXFCLE1BQU0sT0FBTyxDQUFDO0FBQzFFLE9BQU8sRUFBRSxhQUFhLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzVELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNyRSxPQUFPLEtBQUssVUFBVSxNQUFNLGVBQWUsQ0FBQztBQUM1QyxPQUFPLEtBQUssYUFBYSxNQUFNLGtCQUFrQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUMzQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDaEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNqRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNqRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNqRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsdUJBQXVCLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNoSCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUN2RixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDL0QsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGdDQUFnQyxD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QU0sQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsWUFBWSxDQUFDLFlBQVksQ0FBQztZQUMzRSxNQUFNLEVBQUUsTUFBTSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxZQUFZLENBQUMsWUFBWSxDQUFDO1NBQzNFO1FBQ0Q7WUFDSSxHQUFHLEVBQUUsWUFBWSxDQUFDLFlBQVk7WUFDOUIsSUFBSSxFQUFFLGFBQWE7WUFDbkIsSUFBSSxFQUFFLE1BQU07WUFDWixPQUFPLEVBQUUsTUFBTSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxZQUFZLENBQUMsWUFBWSxDQUFDO1lBQzNFLE1BQU0sRUFBRSxNQUFNLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLFlBQVksQ0FBQyxZQUFZLENBQUM7U0FDM0U7S0FDSjtJQUNELE9BQU8sRUFBRSxXQUFXO0NBQ3ZCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRyYW5zZm9ybXMsIE5vZGUsIEVkaXRvciwgUGF0aCwgQW5jZXN0b3IsIEVsZW1lbnQgfSBmcm9tICdzbGF0ZSc7XG5pbXBvcnQgeyBBbmd1bGFyRWRpdG9yLCBnZXRQbGFpblRleHQgfSBmcm9tICdzbGF0ZS1hbmd1bGFyJztcbmltcG9ydCB7IENMSVBCT0FSRF9GT1JNQVRfS0VZLCBFbGVtZW50S2luZHMgfSBmcm9tICcuLi8uLi9jb25zdGFudHMnO1xuaW1wb3J0ICogYXMgVGhlUXVlcmllcyBmcm9tICcuLi8uLi9xdWVyaWVzJztcbmltcG9ydCAqIGFzIFRoZVRyYW5zZm9ybXMgZnJvbSAnLi4vLi4vdHJhbnNmb3Jtcyc7XG5pbXBvcnQgeyBpc0xpc3QgfSBmcm9tICcuL3F1ZXJpZXMvaXMtbGlzdCc7XG5pbXBvcnQgeyBpc0luTGlzdCB9IGZyb20gJy4vcXVlcmllcy9pcy1pbi1saXN0JztcbmltcG9ydCB7IGlzTGlzdE5lc3RlZCB9IGZyb20gJy4vcXVlcmllcy9pcy1saXN0LW5lc3RlZCc7XG5pbXBvcnQgeyBnZXRMaXN0VHlwZXMgfSBmcm9tICcuL3F1ZXJpZXMvZ2V0LWxpc3QtdHlwZXMnO1xuaW1wb3J0IHsgZ2V0U3RhcnRMaXN0SXRlbSB9IGZyb20gJy4vcXVlcmllcy9nZXQtc3RhcnQtbGlzdC1pdGVtJztcbmltcG9ydCB7IGlzU2luZ2xlTGlzdEl0ZW0gfSBmcm9tICcuL3F1ZXJpZXMvaXMtc2luZ2xlLWxpc3QtaXRlbSc7XG5pbXBvcnQgeyBnZXRMaXN0SXRlbUVudHJ5IH0gZnJvbSAnLi9xdWVyaWVzL2dldC1saXN0LWl0ZW0tZW50cnknO1xuaW1wb3J0IHsgaGFzTGlzdEluTGlzdEl0ZW0sIGhhc1N0YWJsZUxpc3RJbkxpc3RJdGVtLCBoYXNTdGFibGVMaXN0SXRlbSB9IGZyb20gJy4vcXVlcmllcy9oYXMtbGlzdC1pbi1saXN0LWl0ZW0nO1xuaW1wb3J0IHsgaXNTZWxlY3Rpb25BdExpc3RJdGVtU3RhcnQgfSBmcm9tICcuL3F1ZXJpZXMvaXMtc2VsZWN0aW9uLWF0LWxpc3QtaXRlbS1zdGFydCc7XG5pbXBvcnQgeyBpbnNlcnRMaXN0RGF0YSB9IGZyb20gJy4vdHJhbnNmb3Jtcy9pbnNlcnQtbGlzdC1kYXRhJztcbmltcG9ydCB7IG1vdmVMaXN0SXRlbVVwIH0gZnJvbSAnLi90cmFuc2Zvcm1zL21vdmUtbGlzdC1pdGVtLXVwJztcbmltcG9ydCB7IGluc2VydExpc3RJdGVtIH0gZnJvbSAnLi90cmFuc2Zvcm1zL2luc2VydC1saXN0LWl0ZW0nO1xuaW1wb3J0IHsgdW53cmFwTGlzdCB9IGZyb20gJy4vdHJhbnNmb3Jtcy91bndyYXAtbGlzdCc7XG5pbXBvcnQgeyBtb3ZlTGlzdEl0ZW1TdWJsaXN0SXRlbXNUb0xpc3RJdGVtU3VibGlzdCB9IGZyb20gJy4vdHJhbnNmb3Jtcy9tb3ZlLWxpc3QtaXRlbS1zdWJsaXN0LWl0ZW1zLXRvLWxpc3QtaXRlbS1zdWJsaXN0JztcbmltcG9ydCB7IGdldExpc3ROb3JtYWxpemVyIH0gZnJvbSAnLi9ub3JtYWxpemVycy9nZXQtbGlzdC1ub3JtYWxpemVyJztcbmltcG9ydCB7IG9uS2V5RG93bkxpc3QgfSBmcm9tICcuL29uLWtleS1kb3duLWxpc3QnO1xuaW1wb3J0IHsgV2l0aExpc3RPcHRpb25zIH0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQgeyBUaGVOdW1iZXJlZExpc3RDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvbnVtYmVyZWQtbGlzdC5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGhlQnVsbGV0ZWRMaXN0Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2J1bGxldGVkLWxpc3QuY29tcG9uZW50JztcbmltcG9ydCB7IFRoZUxpc3RJdGVtQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2xpc3QtaXRlbS5jb21wb25lbnQnO1xuaW1wb3J0IHsgZXh0cmFjdEZyYWdtZW50IH0gZnJvbSAnLi4vLi4vdXRpbHMvZnJhZ21lbnQnO1xuaW1wb3J0IHsgaXNTZWxlY3Rpb25JblNhbWVMaXN0SXRlbSB9IGZyb20gJy4vcXVlcmllcy9pcy1zZWxlY3Rpb24taW4tc2FtZS1saXN0LWl0ZW0nO1xuaW1wb3J0IHsgY3JlYXRlUGx1Z2luRmFjdG9yeSwgZ2V0UGx1Z2luT3B0aW9ucyB9IGZyb20gJy4uLy4uL2NvcmUnO1xuaW1wb3J0IHsgUGx1Z2luS2V5cyB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgTGlzdEVkaXRvciB9IGZyb20gJy4vbGlzdC5lZGl0b3InO1xuXG5leHBvcnQgY29uc3Qgd2l0aExpc3QgPSA8VCBleHRlbmRzIEVkaXRvcj4oZWRpdG9yOiBUKTogVCA9PiB7XG4gICAgY29uc3QgeyBpbnNlcnRCcmVhaywgZGVsZXRlQmFja3dhcmQsIG9uS2V5ZG93biwgaW5zZXJ0RGF0YSwgc2V0RnJhZ21lbnREYXRhLCByZW5kZXJFbGVtZW50IH0gPSBlZGl0b3I7XG5cbiAgICBjb25zdCB2YWxpZExpQ2hpbGRyZW5UeXBlcyA9IGdldFBsdWdpbk9wdGlvbnM8V2l0aExpc3RPcHRpb25zPihlZGl0b3IsIFBsdWdpbktleXMubGlzdCk/LnZhbGlkTGlDaGlsZHJlblR5cGVzID8/IFtdO1xuXG4gICAgY29uc3QgcmVzZXRCbG9ja1R5cGVzTGlzdFJ1bGUgPSB7XG4gICAgICAgIHR5cGVzOiBbRWxlbWVudEtpbmRzLmxpc3RJdGVtXSxcbiAgICAgICAgZGVmYXVsdFR5cGU6IEVsZW1lbnRLaW5kcy5wYXJhZ3JhcGgsXG4gICAgICAgIG9uUmVzZXQ6IChfZWRpdG9yOiBFZGl0b3IpID0+IHVud3JhcExpc3QoX2VkaXRvcilcbiAgICB9O1xuXG4gICAgZWRpdG9yLmluc2VydEJyZWFrID0gKCkgPT4ge1xuICAgICAgICBjb25zdCBub2RlID0gVGhlUXVlcmllcy5hbmNob3JCbG9jayhlZGl0b3IpO1xuXG4gICAgICAgIGlmICghbm9kZSkge1xuICAgICAgICAgICAgaW5zZXJ0QnJlYWsoKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGlzVm9pZCA9IEVkaXRvci5pc1ZvaWQoZWRpdG9yLCBub2RlKTtcbiAgICAgICAgaWYgKGlzVm9pZCkge1xuICAgICAgICAgICAgaW5zZXJ0QnJlYWsoKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBsaXN0RW50cnkgPSBnZXRMaXN0SXRlbUVudHJ5KGVkaXRvciwge30pO1xuICAgICAgICBpZiAobGlzdEVudHJ5KSB7XG4gICAgICAgICAgICBsZXQgbW92ZWQ6IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG4gICAgICAgICAgICBjb25zdCB7IGxpc3QsIGxpc3RJdGVtIH0gPSBsaXN0RW50cnk7XG4gICAgICAgICAgICBjb25zdCBbbGlzdEl0ZW1Ob2RlLCBsaXN0SXRlbVBhdGhdID0gbGlzdEl0ZW07XG4gICAgICAgICAgICBjb25zdCBjdXJzb3IgPSBlZGl0b3Iuc2VsZWN0aW9uLmZvY3VzO1xuICAgICAgICAgICAgY29uc3QgaXNTdGFydCA9IEVkaXRvci5pc1N0YXJ0KGVkaXRvciwgY3Vyc29yLCBsaXN0SXRlbVBhdGgpO1xuXG4gICAgICAgICAgICAvLyBkZXByZWNhdGVkXG4gICAgICAgICAgICAvLyDlpoLmnpzmnInlrZDnuqdcbiAgICAgICAgICAgIGlmIChoYXNMaXN0SW5MaXN0SXRlbShsaXN0SXRlbU5vZGUpKSB7XG4gICAgICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgICAgICogSWYgc2VsZWN0aW9uIGlzIGF0IHRoZSBlbmQgb2YgbGksXG4gICAgICAgICAgICAgICAgICogaW5zZXJ0IGJlbG93IGxpIHdoZXJlIGNoaWxkcmVuIHdpbGwgYmUgbW92ZWQuXG4gICAgICAgICAgICAgICAgICovXG4gICAgICAgICAgICAgICAgaWYgKEVkaXRvci5pc0VuZChlZGl0b3IsIGN1cnNvciwgbGlzdEl0ZW1QYXRoKSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gVHJhbnNmb3Jtcy5pbnNlcnROb2RlcyhcbiAgICAgICAgICAgICAgICAgICAgICAgIGVkaXRvcixcbiAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBFbGVtZW50S2luZHMubGlzdEl0ZW0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hpbGRyZW46IFt7IHR5cGU6IEVsZW1lbnRLaW5kcy5wYXJhZ3JhcGgsIGNoaWxkcmVuOiBbeyB0ZXh0OiAnJyB9XSB9XVxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHsgYXQ6IFBhdGgubmV4dChsaXN0SXRlbVBhdGgpLCBzZWxlY3Q6IHRydWUgfVxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC8qKlxuICAgICAgICAgICAgICAgICAqIOWmguaenOmAieWMuuaYr+WcqGxpc3RJdGVt55qE5byA5aS077yM5YiZ5ZyobGlzdEl0ZW3kuIrmlrnmj5LlhaVcbiAgICAgICAgICAgICAgICAgKi9cbiAgICAgICAgICAgICAgICBpZiAoaXNTdGFydCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gVHJhbnNmb3Jtcy5pbnNlcnROb2RlcyhcbiAgICAgICAgICAgICAgICAgICAgICAgIGVkaXRvcixcbiAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBFbGVtZW50S2luZHMubGlzdEl0ZW0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hpbGRyZW46IFt7IHR5cGU6IEVsZW1lbnRLaW5kcy5wYXJhZ3JhcGgsIGNoaWxkcmVuOiBbeyB0ZXh0OiAnJyB9XSB9XVxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHsgYXQ6IGxpc3RJdGVtUGF0aCB9XG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyDlpoLmnpzpgInmi6nnmoRsaXN0SXRlbeS4uuepuuWImeWwhuWFtuWQkeS4iuenu+WKqFxuICAgICAgICAgICAgaWYgKGlzU3RhcnQgJiYgVGhlUXVlcmllcy5pc0Jsb2NrQWJvdmVFbXB0eShlZGl0b3IpKSB7XG4gICAgICAgICAgICAgICAgbW92ZWQgPSBtb3ZlTGlzdEl0ZW1VcChlZGl0b3IsIHsgbGlzdCwgbGlzdEl0ZW0gfSk7XG4gICAgICAgICAgICAgICAgaWYgKG1vdmVkKSByZXR1cm47XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbnN0IGRpZFJlc2V0ID0gVGhlVHJhbnNmb3Jtcy5vbktleURvd25SZXNldEJsb2NrVHlwZSh7XG4gICAgICAgICAgICAgICAgcnVsZXM6IFtcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgLi4ucmVzZXRCbG9ja1R5cGVzTGlzdFJ1bGUsXG4gICAgICAgICAgICAgICAgICAgICAgICBwcmVkaWNhdGU6ICgpID0+ICFtb3ZlZCAmJiBpc1N0YXJ0ICYmIFRoZVF1ZXJpZXMuaXNCbG9ja0Fib3ZlRW1wdHkoZWRpdG9yKVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgfSkobnVsbCwgZWRpdG9yKTtcbiAgICAgICAgICAgIGlmIChkaWRSZXNldCkge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiBBZGQgYSBuZXcgbGlzdCBpdGVtIGlmIHNlbGVjdGlvbiBpcyBpbiBhIExJU1RfSVRFTSA+IHAudHlwZS5cbiAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgaWYgKCFtb3ZlZCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGluc2VydGVkID0gaW5zZXJ0TGlzdEl0ZW0oZWRpdG9yKTtcbiAgICAgICAgICAgICAgICBpZiAoaW5zZXJ0ZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGluc2VydEJyZWFrKCk7XG4gICAgfTtcblxuICAgIGVkaXRvci5zZXRGcmFnbWVudERhdGEgPSB1bml0ID0+IHtcbiAgICAgICAgY29uc3QgeyBzZWxlY3Rpb24gfSA9IGVkaXRvcjtcbiAgICAgICAgY29uc3QgW3N0YXJ0XSA9IEVkaXRvci5lZGdlcyhlZGl0b3IsIHNlbGVjdGlvbik7XG4gICAgICAgIGlmIChpc0luTGlzdChlZGl0b3IsIHN0YXJ0KSkge1xuICAgICAgICAgICAgY29uc3QgZnJhZ21lbnREYXRhID0gZWRpdG9yLmdldEZyYWdtZW50KCk7XG4gICAgICAgICAgICBjb25zdCBmcmFnbWVudEVsZW1lbnQgPSBmcmFnbWVudERhdGFbMF0gYXMgRWxlbWVudDtcbiAgICAgICAgICAgIGlmIChnZXRMaXN0VHlwZXMoKS5pbmNsdWRlcyhmcmFnbWVudEVsZW1lbnQudHlwZSkpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBzdGFydE5vZGVzID0gZ2V0U3RhcnRMaXN0SXRlbShbZnJhZ21lbnRFbGVtZW50LmNoaWxkcmVuWzBdXSBhcyBFbGVtZW50W10pO1xuICAgICAgICAgICAgICAgIGNvbnN0IGNoaWxkcmVuID0gc3RhcnROb2Rlcy5jb25jYXQoKGZyYWdtZW50RWxlbWVudC5jaGlsZHJlbiBhcyBFbGVtZW50W10pLnNsaWNlKDEpKTtcbiAgICAgICAgICAgICAgICBsZXQgZnJhZ21lbnROb2RlcyA9IFtcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgLi4uZnJhZ21lbnRFbGVtZW50LFxuICAgICAgICAgICAgICAgICAgICAgICAgY2hpbGRyZW5cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIF0gYXMgTm9kZVtdO1xuICAgICAgICAgICAgICAgIGlmIChpc1NlbGVjdGlvbkluU2FtZUxpc3RJdGVtKGVkaXRvcikpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8g5LuF5LuF5aSN5Yi25YiX6KGo5Lit55qE5YaF5a65XG4gICAgICAgICAgICAgICAgICAgIGZyYWdtZW50Tm9kZXMgPSBjaGlsZHJlblswXS5jaGlsZHJlbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY29uc3QgZnJhZ21lbnQgPSBmcmFnbWVudE5vZGVzLmNvbmNhdChmcmFnbWVudERhdGEuc2xpY2UoMSkpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGRvbVJhbmdlID0gQW5ndWxhckVkaXRvci50b0RPTVJhbmdlKGVkaXRvciwgc2VsZWN0aW9uKTtcbiAgICAgICAgICAgICAgICBjb25zdCBjb250ZW50cyA9IGRvbVJhbmdlLmNsb25lQ29udGVudHMoKTtcbiAgICAgICAgICAgICAgICBjb25zdCBzdHJpbmdPYmogPSBKU09OLnN0cmluZ2lmeShmcmFnbWVudCk7XG4gICAgICAgICAgICAgICAgY29uc3QgZW5jb2RlZCA9IHdpbmRvdy5idG9hKGVuY29kZVVSSUNvbXBvbmVudChzdHJpbmdPYmopKTtcbiAgICAgICAgICAgICAgICB1bml0LnNldERhdGEoYGFwcGxpY2F0aW9uLyR7Q0xJUEJPQVJEX0ZPUk1BVF9LRVl9YCwgZW5jb2RlZCk7XG4gICAgICAgICAgICAgICAgY29uc3QgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgICAgICAgICAgICAgZGl2LmFwcGVuZENoaWxkKGNvbnRlbnRzKTtcbiAgICAgICAgICAgICAgICBkaXYuc2V0QXR0cmlidXRlKCdoaWRkZW4nLCAndHJ1ZScpO1xuICAgICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZGl2KTtcbiAgICAgICAgICAgICAgICB1bml0LnNldERhdGEoJ3RleHQvaHRtbCcsIGRpdi5pbm5lckhUTUwpO1xuICAgICAgICAgICAgICAgIHVuaXQuc2V0RGF0YSgndGV4dC9wbGFpbicsIGdldFBsYWluVGV4dChkaXYpKTtcbiAgICAgICAgICAgICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGRpdik7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHNldEZyYWdtZW50RGF0YSh1bml0KTtcbiAgICB9O1xuXG4gICAgZWRpdG9yLmRlbGV0ZUJhY2t3YXJkID0gdW5pdCA9PiB7XG4gICAgICAgIGNvbnN0IHJlcyA9IGdldExpc3RJdGVtRW50cnkoZWRpdG9yLCB7fSk7XG5cbiAgICAgICAgaWYgKHJlcyAmJiBpc1NlbGVjdGlvbkF0TGlzdEl0ZW1TdGFydChlZGl0b3IpKSB7XG4gICAgICAgICAgICBjb25zdCB7IGxpc3QsIGxpc3RJdGVtIH0gPSByZXM7XG4gICAgICAgICAgICBjb25zdCBbLCBsaXN0UGF0aF0gPSBsaXN0O1xuICAgICAgICAgICAgY29uc3QgW2xpc3RJdGVtTm9kZSwgbGlzdEl0ZW1QYXRoXSA9IGxpc3RJdGVtO1xuXG4gICAgICAgICAgICBjb25zdCBwcmV2aW91c0xpc3RJdGVtUGF0aCA9IFRoZVF1ZXJpZXMuZ2V0UHJldmlvdXNQYXRoKGxpc3RJdGVtUGF0aCk7XG5cbiAgICAgICAgICAgIGlmIChwcmV2aW91c0xpc3RJdGVtUGF0aCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGJlZm9yZVBvaW50ID0gRWRpdG9yLmJlZm9yZShlZGl0b3IsIGxpc3RJdGVtUGF0aCk7XG4gICAgICAgICAgICAgICAgY29uc3QgcGFyZW50UGF0aCA9IFBhdGgucGFyZW50KGJlZm9yZVBvaW50LnBhdGgpO1xuICAgICAgICAgICAgICAgIGNvbnN0IHBhcmVudE5vZGUgPSBOb2RlLmdldChlZGl0b3IsIHBhcmVudFBhdGgpO1xuICAgICAgICAgICAgICAgIGlmIChFZGl0b3IuaXNWb2lkKGVkaXRvciwgcGFyZW50Tm9kZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgRWRpdG9yLndpdGhvdXROb3JtYWxpemluZyhlZGl0b3IsICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIFRoZVRyYW5zZm9ybXMudW53cmFwTm9kZXNCeVR5cGUoZWRpdG9yLCBbRWxlbWVudEtpbmRzLmJ1bGxldGVkTGlzdCwgRWxlbWVudEtpbmRzLm51bWJlcmVkTGlzdF0sIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcGxpdDogdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBUaGVUcmFuc2Zvcm1zLnVud3JhcE5vZGVzQnlUeXBlKGVkaXRvciwgRWxlbWVudEtpbmRzLmxpc3RJdGVtKTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChwcmV2aW91c0xpc3RJdGVtUGF0aCAmJiBoYXNTdGFibGVMaXN0SW5MaXN0SXRlbShsaXN0SXRlbU5vZGUpKSB7XG4gICAgICAgICAgICAgICAgRWRpdG9yLndpdGhvdXROb3JtYWxpemluZyhlZGl0b3IsICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgZGVsZXRlQmFja3dhcmQodW5pdCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IFtwcmV2aW91c0xpc3RJdGVtTm9kZV0gPSBFZGl0b3Iubm9kZShlZGl0b3IsIHByZXZpb3VzTGlzdEl0ZW1QYXRoKTtcbiAgICAgICAgICAgICAgICAgICAgbW92ZUxpc3RJdGVtU3VibGlzdEl0ZW1zVG9MaXN0SXRlbVN1Ymxpc3QoXG4gICAgICAgICAgICAgICAgICAgICAgICBlZGl0b3IsXG4gICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZnJvbUxpc3RJdGVtOiBsaXN0SXRlbSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b0xpc3RJdGVtOiBbcHJldmlvdXNMaXN0SXRlbU5vZGUgYXMgQW5jZXN0b3IsIHByZXZpb3VzTGlzdEl0ZW1QYXRoXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydDogZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICB7fVxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gbW92ZSBsaXN0SXRlbSBjaGlsZHJlbiB0byBiZWZvcmUgbGlzdEl0ZW1cbiAgICAgICAgICAgIGlmIChsaXN0SXRlbU5vZGUuY2hpbGRyZW4ubGVuZ3RoID4gMSkge1xuICAgICAgICAgICAgICAgIEVkaXRvci53aXRob3V0Tm9ybWFsaXppbmcoZWRpdG9yLCAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGJlZm9yZVBhdGhSZWYgPSBFZGl0b3IucGF0aFJlZihlZGl0b3IsIGxpc3RJdGVtUGF0aCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGJlZm9yZVBvaW50ID0gRWRpdG9yLmJlZm9yZShlZGl0b3IsIGxpc3RJdGVtUGF0aCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0YXJ0UG9pbnQgPSBFZGl0b3Iuc3RhcnQoZWRpdG9yLCBsaXN0SXRlbVBhdGgpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBlbmRQb2ludCA9IEVkaXRvci5lbmQoZWRpdG9yLCBsaXN0SXRlbVBhdGgpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBpc0luRmlyc3RDaGlsZCA9ICFpc0xpc3ROZXN0ZWQoZWRpdG9yLCBsaXN0UGF0aCkgJiYgVGhlUXVlcmllcy5pc0ZpcnN0Q2hpbGQobGlzdEl0ZW1QYXRoKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdG8gPSBpc0luRmlyc3RDaGlsZCA/IGxpc3RQYXRoIDogUGF0aC5uZXh0KFBhdGgucGFyZW50KGJlZm9yZVBvaW50LnBhdGgpKTtcblxuICAgICAgICAgICAgICAgICAgICBUcmFuc2Zvcm1zLm1vdmVOb2RlcyhlZGl0b3IsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGF0OiBFZGl0b3IucmFuZ2UoZWRpdG9yLCBzdGFydFBvaW50LCBlbmRQb2ludCksXG4gICAgICAgICAgICAgICAgICAgICAgICB0byxcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hdGNoOiBub2RlID0+IGxpc3RJdGVtTm9kZS5jaGlsZHJlbi5pbmNsdWRlcyhub2RlIGFzIGFueSlcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIFRyYW5zZm9ybXMuZGVsZXRlKGVkaXRvciwgeyBhdDogYmVmb3JlUGF0aFJlZi51bnJlZigpIH0pO1xuXG4gICAgICAgICAgICAgICAgICAgIGlmICghaXNJbkZpcnN0Q2hpbGQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRlbGV0ZUJhY2t3YXJkKHVuaXQpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBkZXByZWNhdGVkXG4gICAgICAgICAgICBpZiAoIWlzTGlzdE5lc3RlZChlZGl0b3IsIGxpc3RQYXRoKSAmJiBUaGVRdWVyaWVzLmlzRmlyc3RDaGlsZChsaXN0SXRlbVBhdGgpKSB7XG4gICAgICAgICAgICAgICAgdW53cmFwTGlzdChlZGl0b3IpO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGRlbGV0ZUJhY2t3YXJkKHVuaXQpO1xuICAgIH07XG5cbiAgICBlZGl0b3IuaW5zZXJ0RGF0YSA9IChkYXRhOiBEYXRhVHJhbnNmZXIpID0+IHtcbiAgICAgICAgY29uc3QgdGV4dCA9IGRhdGEuZ2V0RGF0YSgndGV4dC9wbGFpbicpO1xuICAgICAgICBjb25zdCBmcmFnbWVudCA9IGV4dHJhY3RGcmFnbWVudChkYXRhKTtcbiAgICAgICAgY29uc3QgYWJvdmVFbnRyeSA9IEVkaXRvci5hYm92ZShlZGl0b3IsIHtcbiAgICAgICAgICAgIG1hdGNoOiBuID0+IEVkaXRvci5pc0Jsb2NrKGVkaXRvciwgbikgJiYgbi50eXBlID09PSBFbGVtZW50S2luZHMubGlzdEl0ZW1cbiAgICAgICAgfSk7XG4gICAgICAgIGlmIChmcmFnbWVudCkge1xuICAgICAgICAgICAgY29uc3QgcmVzID0gZ2V0TGlzdEl0ZW1FbnRyeShlZGl0b3IsIHt9KTtcbiAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICBmcmFnbWVudC5sZW5ndGggPT09IDEgJiZcbiAgICAgICAgICAgICAgICBpc0xpc3QoZnJhZ21lbnRbMF0gYXMgRWxlbWVudCkgJiZcbiAgICAgICAgICAgICAgICBhYm92ZUVudHJ5ICYmXG4gICAgICAgICAgICAgICAgIWlzU2luZ2xlTGlzdEl0ZW0oZnJhZ21lbnRbMF0pICYmXG4gICAgICAgICAgICAgICAgaGFzU3RhYmxlTGlzdEl0ZW0ocmVzLmxpc3RJdGVtWzBdKVxuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgaW5zZXJ0TGlzdERhdGEoZWRpdG9yLCB7IGZyb21MaXN0OiBmcmFnbWVudFswXSBhcyBFbGVtZW50LCB0b0xpc3RJdGVtRW50cnk6IGFib3ZlRW50cnkgfSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaW5zZXJ0RGF0YShkYXRhKTtcbiAgICB9O1xuXG4gICAgZWRpdG9yLm9uS2V5ZG93biA9IChldmVudDogS2V5Ym9hcmRFdmVudCkgPT4ge1xuICAgICAgICBjb25zdCBpc0NvbnRpbnVlID0gIW9uS2V5RG93bkxpc3QoZXZlbnQsIGVkaXRvcik7XG4gICAgICAgIGlmIChpc0NvbnRpbnVlKSB7XG4gICAgICAgICAgICBvbktleWRvd24oZXZlbnQpO1xuICAgICAgICB9XG4gICAgfTtcblxuICAgIGVkaXRvci5ub3JtYWxpemVOb2RlID0gZ2V0TGlzdE5vcm1hbGl6ZXIoZWRpdG9yLCB7IHZhbGlkTGlDaGlsZHJlblR5cGVzOiB2YWxpZExpQ2hpbGRyZW5UeXBlcyB9KTtcblxuICAgIGVkaXRvci5yZW5kZXJFbGVtZW50ID0gKGVsZW1lbnQ6IEVsZW1lbnQpID0+IHtcbiAgICAgICAgaWYgKGVsZW1lbnQudHlwZSA9PT0gRWxlbWVudEtpbmRzLm51bWJlcmVkTGlzdCkge1xuICAgICAgICAgICAgcmV0dXJuIFRoZU51bWJlcmVkTGlzdENvbXBvbmVudDtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZWxlbWVudC50eXBlID09PSBFbGVtZW50S2luZHMuYnVsbGV0ZWRMaXN0KSB7XG4gICAgICAgICAgICByZXR1cm4gVGhlQnVsbGV0ZWRMaXN0Q29tcG9uZW50O1xuICAgICAgICB9XG4gICAgICAgIGlmIChlbGVtZW50LnR5cGUgPT09IEVsZW1lbnRLaW5kcy5saXN0SXRlbSkge1xuICAgICAgICAgICAgcmV0dXJuIFRoZUxpc3RJdGVtQ29tcG9uZW50O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZW5kZXJFbGVtZW50KGVsZW1lbnQpO1xuICAgIH07XG5cbiAgICByZXR1cm4gZWRpdG9yO1xufTtcblxuY29uc3QgbGlzdE9wdGlvbnMgPSB7XG4gICAgdmFsaWRMaUNoaWxkcmVuVHlwZXM6IFtFbGVtZW50S2luZHMuaW1hZ2VdLFxuICAgIGFsbG93UGFyZW50VHlwZXM6IFtFbGVtZW50S2luZHMubGlzdEl0ZW0sIEVsZW1lbnRLaW5kcy50YWJsZUNlbGwsIEVsZW1lbnRLaW5kcy5ibG9ja3F1b3RlXVxufTtcblxuZXhwb3J0IGNvbnN0IGNyZWF0ZUxpc3RQbHVnaW4gPSBjcmVhdGVQbHVnaW5GYWN0b3J5PFdpdGhMaXN0T3B0aW9ucz4oe1xuICAgIGtleTogUGx1Z2luS2V5cy5saXN0LFxuICAgIHdpdGhPdmVycmlkZXM6IHdpdGhMaXN0LFxuICAgIHBsdWdpbnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAga2V5OiBQbHVnaW5LZXlzLm51bWJlcmVkTGlzdCxcbiAgICAgICAgICAgIG9wdGlvbnM6IGxpc3RPcHRpb25zXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIGtleTogUGx1Z2luS2V5cy5idWxsZXRlZExpc3QsXG4gICAgICAgICAgICBvcHRpb25zOiBsaXN0T3B0aW9uc1xuICAgICAgICB9XG4gICAgXSxcbiAgICBuZXN0ZWRTdHJ1Y3R1cmVCeUtleToge1xuICAgICAgICBbRWxlbWVudEtpbmRzLmJ1bGxldGVkTGlzdF06IFtFbGVtZW50S2luZHMubGlzdEl0ZW1dLFxuICAgICAgICBbRWxlbWVudEtpbmRzLm51bWJlcmVkTGlzdF06IFtFbGVtZW50S2luZHMubGlzdEl0ZW1dXG4gICAgfSxcbiAgICB0b29sYmFySXRlbXM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAga2V5OiBFbGVtZW50S2luZHMubnVtYmVyZWRMaXN0LFxuICAgICAgICAgICAgaWNvbjogJ2xpc3Qtb3JkZXJlZCcsXG4gICAgICAgICAgICBuYW1lOiAn5pyJ5bqP5YiX6KGoJyxcbiAgICAgICAgICAgIGV4ZWN1dGU6IGVkaXRvciA9PiBMaXN0RWRpdG9yLnRvZ2dsZUxpc3QoZWRpdG9yLCBFbGVtZW50S2luZHMubnVtYmVyZWRMaXN0KSxcbiAgICAgICAgICAgIGFjdGl2ZTogZWRpdG9yID0+IExpc3RFZGl0b3IuaXNBY3RpdmUoZWRpdG9yLCBFbGVtZW50S2luZHMubnVtYmVyZWRMaXN0KVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBrZXk6IEVsZW1lbnRLaW5kcy5idWxsZXRlZExpc3QsXG4gICAgICAgICAgICBpY29uOiAnbGlzdC1idWxsZXQnLFxuICAgICAgICAgICAgbmFtZTogJ+aXoOW6j+WIl+ihqCcsXG4gICAgICAgICAgICBleGVjdXRlOiBlZGl0b3IgPT4gTGlzdEVkaXRvci50b2dnbGVMaXN0KGVkaXRvciwgRWxlbWVudEtpbmRzLmJ1bGxldGVkTGlzdCksXG4gICAgICAgICAgICBhY3RpdmU6IGVkaXRvciA9PiBMaXN0RWRpdG9yLmlzQWN0aXZlKGVkaXRvciwgRWxlbWVudEtpbmRzLmJ1bGxldGVkTGlzdClcbiAgICAgICAgfVxuICAgIF0sXG4gICAgb3B0aW9uczogbGlzdE9wdGlvbnNcbn0pO1xuIl19
@@ -1,5 +1,10 @@
1
1
  import { Editor, Range, Text, Transforms } from 'slate';
2
- export const withMark = () => (editor) => {
2
+ import { MarkTypes } from '../../constants';
3
+ import { PluginKeys } from '../../interfaces';
4
+ import { createPluginFactory } from '../../core';
5
+ import { CONTROL_KEY } from '../../utils';
6
+ import { MarkEditor } from './mark.editor';
7
+ export const withMark = (editor) => {
3
8
  const e = editor;
4
9
  e.removeMark = (key, shouldChange = true) => {
5
10
  const { selection } = e;
@@ -54,4 +59,41 @@ export const withMark = () => (editor) => {
54
59
  };
55
60
  return e;
56
61
  };
57
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFyay5wbHVnaW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9zcmMvcGx1Z2lucy9tYXJrL21hcmsucGx1Z2luLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsTUFBTSxPQUFPLENBQUM7QUFHeEQsTUFBTSxDQUFDLE1BQU0sUUFBUSxHQUNqQixHQUFHLEVBQUUsQ0FDTCxDQUFtQixNQUFTLEVBQUUsRUFBRTtJQUM1QixNQUFNLENBQUMsR0FBRyxNQUF3QixDQUFDO0lBRW5DLENBQUMsQ0FBQyxVQUFVLEdBQUcsQ0FBQyxHQUFXLEVBQUUsWUFBWSxHQUFHLElBQUksRUFBRSxFQUFFO1FBQ2hELE1BQU0sRUFBRSxTQUFTLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDeEIsSUFBSSxTQUFTLEVBQUU7WUFDWCxJQUFJLEtBQUssQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLEVBQUU7Z0JBQzdCLFVBQVUsQ0FBQyxVQUFVLENBQUMsQ0FBQyxFQUFFLEdBQUcsRUFBRTtvQkFDMUIsS0FBSyxFQUFFLElBQUksQ0FBQyxNQUFNO29CQUNsQixLQUFLLEVBQUUsSUFBSTtpQkFDZCxDQUFDLENBQUM7YUFDTjtpQkFBTTtnQkFDSCxNQUFNLEtBQUsscUJBQVEsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFFLENBQUM7Z0JBQzdDLE9BQU8sS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUNsQixNQUFNLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztnQkFDckIsTUFBTSxJQUFJLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsU0FBUyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDckQsSUFBSSxJQUFJLEtBQUssRUFBRSxFQUFFO29CQUNiLE1BQU0sQ0FBQyxjQUFjLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxDQUFDO29CQUNyQyxDQUFDLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxDQUFDO29CQUNqQixNQUFNLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztvQkFDckIsTUFBTSxDQUFDLGNBQWMsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUM7aUJBQ3ZDO3FCQUFNO29CQUNILFVBQVUsQ0FBQyxVQUFVLENBQUMsQ0FBQyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxTQUFTLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7aUJBQ2hFO2dCQUNELElBQUksWUFBWSxFQUFFO29CQUNkLE1BQU0sQ0FBQyxRQUFRLEVBQUUsQ0FBQztpQkFDckI7YUFDSjtTQUNKO0lBQ0wsQ0FBQyxDQUFDO0lBRUYsQ0FBQyxDQUFDLE9BQU8sR0FBRyxDQUFDLEdBQVcsRUFBRSxLQUFVLEVBQUUsRUFBRTtRQUNwQyxNQUFNLEVBQUUsU0FBUyxFQUFFLEdBQUcsTUFBTSxDQUFDO1FBRTdCLElBQUksU0FBUyxFQUFFO1lBQ1gsSUFBSSxLQUFLLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxFQUFFO2dCQUM3QixVQUFVLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQzthQUNqRjtpQkFBTTtnQkFDSCxNQUFNLEtBQUssbUNBQ0osQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxLQUMxQixDQUFDLEdBQUcsQ0FBQyxFQUFFLEtBQUssR0FDZixDQUFDO2dCQUNGLE1BQU0sQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO2dCQUNyQixNQUFNLElBQUksR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxTQUFTLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUNyRCxJQUFJLElBQUksS0FBSyxFQUFFLEVBQUU7b0JBQ2IsTUFBTSxDQUFDLGNBQWMsQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLENBQUM7b0JBQ3JDLENBQUMsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLENBQUM7b0JBQ2pCLE1BQU0sQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO29CQUNyQixNQUFNLENBQUMsY0FBYyxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQztpQkFDdkM7cUJBQU07b0JBQ0gsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFNBQVMsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztpQkFDM0U7YUFDSjtTQUNKO0lBQ0wsQ0FBQyxDQUFDO0lBRUYsT0FBTyxDQUFDLENBQUM7QUFDYixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFZGl0b3IsIFJhbmdlLCBUZXh0LCBUcmFuc2Zvcm1zIH0gZnJvbSAnc2xhdGUnO1xuaW1wb3J0IHsgTWFya0VkaXRvciB9IGZyb20gJy4vbWFyay5lZGl0b3InO1xuXG5leHBvcnQgY29uc3Qgd2l0aE1hcmsgPVxuICAgICgpID0+XG4gICAgPFQgZXh0ZW5kcyBFZGl0b3I+KGVkaXRvcjogVCkgPT4ge1xuICAgICAgICBjb25zdCBlID0gZWRpdG9yIGFzIFQgJiBNYXJrRWRpdG9yO1xuXG4gICAgICAgIGUucmVtb3ZlTWFyayA9IChrZXk6IHN0cmluZywgc2hvdWxkQ2hhbmdlID0gdHJ1ZSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgeyBzZWxlY3Rpb24gfSA9IGU7XG4gICAgICAgICAgICBpZiAoc2VsZWN0aW9uKSB7XG4gICAgICAgICAgICAgICAgaWYgKFJhbmdlLmlzRXhwYW5kZWQoc2VsZWN0aW9uKSkge1xuICAgICAgICAgICAgICAgICAgICBUcmFuc2Zvcm1zLnVuc2V0Tm9kZXMoZSwga2V5LCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBtYXRjaDogVGV4dC5pc1RleHQsXG4gICAgICAgICAgICAgICAgICAgICAgICBzcGxpdDogdHJ1ZVxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBtYXJrcyA9IHsgLi4uKEVkaXRvci5tYXJrcyhlKSB8fCB7fSkgfTtcbiAgICAgICAgICAgICAgICAgICAgZGVsZXRlIG1hcmtzW2tleV07XG4gICAgICAgICAgICAgICAgICAgIGVkaXRvci5tYXJrcyA9IG1hcmtzO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB0ZXh0ID0gRWRpdG9yLnN0cmluZyhlLCBzZWxlY3Rpb24uYW5jaG9yLnBhdGgpO1xuICAgICAgICAgICAgICAgICAgICBpZiAodGV4dCAhPT0gJycpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIEVkaXRvci5zZXROb3JtYWxpemluZyhlZGl0b3IsIGZhbHNlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGUuaW5zZXJ0VGV4dCgnJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICBlZGl0b3IubWFya3MgPSBtYXJrcztcbiAgICAgICAgICAgICAgICAgICAgICAgIEVkaXRvci5zZXROb3JtYWxpemluZyhlZGl0b3IsIHRydWUpO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgVHJhbnNmb3Jtcy51bnNldE5vZGVzKGUsIGtleSwgeyBhdDogc2VsZWN0aW9uLmFuY2hvci5wYXRoIH0pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGlmIChzaG91bGRDaGFuZ2UpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVkaXRvci5vbkNoYW5nZSgpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuXG4gICAgICAgIGUuYWRkTWFyayA9IChrZXk6IHN0cmluZywgdmFsdWU6IGFueSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgeyBzZWxlY3Rpb24gfSA9IGVkaXRvcjtcblxuICAgICAgICAgICAgaWYgKHNlbGVjdGlvbikge1xuICAgICAgICAgICAgICAgIGlmIChSYW5nZS5pc0V4cGFuZGVkKHNlbGVjdGlvbikpIHtcbiAgICAgICAgICAgICAgICAgICAgVHJhbnNmb3Jtcy5zZXROb2RlcyhlLCB7IFtrZXldOiB2YWx1ZSB9LCB7IG1hdGNoOiBUZXh0LmlzVGV4dCwgc3BsaXQ6IHRydWUgfSk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbWFya3MgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAuLi4oRWRpdG9yLm1hcmtzKGUpIHx8IHt9KSxcbiAgICAgICAgICAgICAgICAgICAgICAgIFtrZXldOiB2YWx1ZVxuICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICBlZGl0b3IubWFya3MgPSBtYXJrcztcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdGV4dCA9IEVkaXRvci5zdHJpbmcoZSwgc2VsZWN0aW9uLmFuY2hvci5wYXRoKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRleHQgIT09ICcnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBFZGl0b3Iuc2V0Tm9ybWFsaXppbmcoZWRpdG9yLCBmYWxzZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBlLmluc2VydFRleHQoJycpO1xuICAgICAgICAgICAgICAgICAgICAgICAgZWRpdG9yLm1hcmtzID0gbWFya3M7XG4gICAgICAgICAgICAgICAgICAgICAgICBFZGl0b3Iuc2V0Tm9ybWFsaXppbmcoZWRpdG9yLCB0cnVlKTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIFRyYW5zZm9ybXMuc2V0Tm9kZXMoZSwgeyBba2V5XTogdmFsdWUgfSwgeyBhdDogc2VsZWN0aW9uLmFuY2hvci5wYXRoIH0pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuXG4gICAgICAgIHJldHVybiBlO1xuICAgIH07XG4iXX0=
62
+ export const createMarkPlugin = createPluginFactory({
63
+ key: PluginKeys.mark,
64
+ withOverrides: withMark,
65
+ toolbarItems: [
66
+ {
67
+ key: MarkTypes.bold,
68
+ icon: 'bold',
69
+ name: '加粗',
70
+ shortcutKey: `${CONTROL_KEY}+B`,
71
+ execute: editor => MarkEditor.toggleMark(editor, MarkTypes.bold),
72
+ active: editor => MarkEditor.isMarkActive(editor, MarkTypes.bold)
73
+ },
74
+ {
75
+ key: MarkTypes.italic,
76
+ icon: 'italic',
77
+ name: '斜体',
78
+ shortcutKey: `${CONTROL_KEY}+I`,
79
+ execute: editor => MarkEditor.toggleMark(editor, MarkTypes.italic),
80
+ active: editor => MarkEditor.isMarkActive(editor, MarkTypes.italic)
81
+ },
82
+ {
83
+ key: MarkTypes.strike,
84
+ icon: 'strike',
85
+ name: '删除线',
86
+ execute: editor => MarkEditor.toggleMark(editor, MarkTypes.strike),
87
+ active: editor => MarkEditor.isMarkActive(editor, MarkTypes.strike)
88
+ },
89
+ {
90
+ key: MarkTypes.underline,
91
+ icon: 'underline',
92
+ name: '下划线',
93
+ shortcutKey: `${CONTROL_KEY}+U`,
94
+ execute: editor => MarkEditor.toggleMark(editor, MarkTypes.underline),
95
+ active: editor => MarkEditor.isMarkActive(editor, MarkTypes.underline)
96
+ }
97
+ ]
98
+ });
99
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFyay5wbHVnaW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9zcmMvcGx1Z2lucy9tYXJrL21hcmsucGx1Z2luLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsTUFBTSxPQUFPLENBQUM7QUFDeEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzVDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUM5QyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDakQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUMxQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE1BQU0sQ0FBQyxNQUFNLFFBQVEsR0FBRyxDQUFnQyxNQUFTLEVBQUssRUFBRTtJQUNwRSxNQUFNLENBQUMsR0FBRyxNQUFNLENBQUM7SUFFakIsQ0FBQyxDQUFDLFVBQVUsR0FBRyxDQUFDLEdBQVcsRUFBRSxZQUFZLEdBQUcsSUFBSSxFQUFFLEVBQUU7UUFDaEQsTUFBTSxFQUFFLFNBQVMsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUN4QixJQUFJLFNBQVMsRUFBRTtZQUNYLElBQUksS0FBSyxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsRUFBRTtnQkFDN0IsVUFBVSxDQUFDLFVBQVUsQ0FBQyxDQUFDLEVBQUUsR0FBRyxFQUFFO29CQUMxQixLQUFLLEVBQUUsSUFBSSxDQUFDLE1BQU07b0JBQ2xCLEtBQUssRUFBRSxJQUFJO2lCQUNkLENBQUMsQ0FBQzthQUNOO2lCQUFNO2dCQUNILE1BQU0sS0FBSyxxQkFBUSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUUsQ0FBQztnQkFDN0Ms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QyxFQUFFLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQyxNQUFNLEVBQUUsU0FBUyxDQUFDLFNBQVMsQ0FBQztTQUN6RTtLQUNKO0NBQ0osQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRWRpdG9yLCBSYW5nZSwgVGV4dCwgVHJhbnNmb3JtcyB9IGZyb20gJ3NsYXRlJztcbmltcG9ydCB7IE1hcmtUeXBlcyB9IGZyb20gJy4uLy4uL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBQbHVnaW5LZXlzIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBjcmVhdGVQbHVnaW5GYWN0b3J5IH0gZnJvbSAnLi4vLi4vY29yZSc7XG5pbXBvcnQgeyBDT05UUk9MX0tFWSB9IGZyb20gJy4uLy4uL3V0aWxzJztcbmltcG9ydCB7IE1hcmtFZGl0b3IgfSBmcm9tICcuL21hcmsuZWRpdG9yJztcblxuZXhwb3J0IGNvbnN0IHdpdGhNYXJrID0gPFQgZXh0ZW5kcyBFZGl0b3IgJiBNYXJrRWRpdG9yPihlZGl0b3I6IFQpOiBUID0+IHtcbiAgICBjb25zdCBlID0gZWRpdG9yO1xuXG4gICAgZS5yZW1vdmVNYXJrID0gKGtleTogc3RyaW5nLCBzaG91bGRDaGFuZ2UgPSB0cnVlKSA9PiB7XG4gICAgICAgIGNvbnN0IHsgc2VsZWN0aW9uIH0gPSBlO1xuICAgICAgICBpZiAoc2VsZWN0aW9uKSB7XG4gICAgICAgICAgICBpZiAoUmFuZ2UuaXNFeHBhbmRlZChzZWxlY3Rpb24pKSB7XG4gICAgICAgICAgICAgICAgVHJhbnNmb3Jtcy51bnNldE5vZGVzKGUsIGtleSwge1xuICAgICAgICAgICAgICAgICAgICBtYXRjaDogVGV4dC5pc1RleHQsXG4gICAgICAgICAgICAgICAgICAgIHNwbGl0OiB0cnVlXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGNvbnN0IG1hcmtzID0geyAuLi4oRWRpdG9yLm1hcmtzKGUpIHx8IHt9KSB9O1xuICAgICAgICAgICAgICAgIGRlbGV0ZSBtYXJrc1trZXldO1xuICAgICAgICAgICAgICAgIGVkaXRvci5tYXJrcyA9IG1hcmtzO1xuICAgICAgICAgICAgICAgIGNvbnN0IHRleHQgPSBFZGl0b3Iuc3RyaW5nKGUsIHNlbGVjdGlvbi5hbmNob3IucGF0aCk7XG4gICAgICAgICAgICAgICAgaWYgKHRleHQgIT09ICcnKSB7XG4gICAgICAgICAgICAgICAgICAgIEVkaXRvci5zZXROb3JtYWxpemluZyhlZGl0b3IsIGZhbHNlKTtcbiAgICAgICAgICAgICAgICAgICAgZS5pbnNlcnRUZXh0KCcnKTtcbiAgICAgICAgICAgICAgICAgICAgZWRpdG9yLm1hcmtzID0gbWFya3M7XG4gICAgICAgICAgICAgICAgICAgIEVkaXRvci5zZXROb3JtYWxpemluZyhlZGl0b3IsIHRydWUpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIFRyYW5zZm9ybXMudW5zZXROb2RlcyhlLCBrZXksIHsgYXQ6IHNlbGVjdGlvbi5hbmNob3IucGF0aCB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKHNob3VsZENoYW5nZSkge1xuICAgICAgICAgICAgICAgICAgICBlZGl0b3Iub25DaGFuZ2UoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgZS5hZGRNYXJrID0gKGtleTogc3RyaW5nLCB2YWx1ZTogYW55KSA9PiB7XG4gICAgICAgIGNvbnN0IHsgc2VsZWN0aW9uIH0gPSBlZGl0b3I7XG5cbiAgICAgICAgaWYgKHNlbGVjdGlvbikge1xuICAgICAgICAgICAgaWYgKFJhbmdlLmlzRXhwYW5kZWQoc2VsZWN0aW9uKSkge1xuICAgICAgICAgICAgICAgIFRyYW5zZm9ybXMuc2V0Tm9kZXMoZSwgeyBba2V5XTogdmFsdWUgfSwgeyBtYXRjaDogVGV4dC5pc1RleHQsIHNwbGl0OiB0cnVlIH0pO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBjb25zdCBtYXJrcyA9IHtcbiAgICAgICAgICAgICAgICAgICAgLi4uKEVkaXRvci5tYXJrcyhlKSB8fCB7fSksXG4gICAgICAgICAgICAgICAgICAgIFtrZXldOiB2YWx1ZVxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgZWRpdG9yLm1hcmtzID0gbWFya3M7XG4gICAgICAgICAgICAgICAgY29uc3QgdGV4dCA9IEVkaXRvci5zdHJpbmcoZSwgc2VsZWN0aW9uLmFuY2hvci5wYXRoKTtcbiAgICAgICAgICAgICAgICBpZiAodGV4dCAhPT0gJycpIHtcbiAgICAgICAgICAgICAgICAgICAgRWRpdG9yLnNldE5vcm1hbGl6aW5nKGVkaXRvciwgZmFsc2UpO1xuICAgICAgICAgICAgICAgICAgICBlLmluc2VydFRleHQoJycpO1xuICAgICAgICAgICAgICAgICAgICBlZGl0b3IubWFya3MgPSBtYXJrcztcbiAgICAgICAgICAgICAgICAgICAgRWRpdG9yLnNldE5vcm1hbGl6aW5nKGVkaXRvciwgdHJ1ZSk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgVHJhbnNmb3Jtcy5zZXROb2RlcyhlLCB7IFtrZXldOiB2YWx1ZSB9LCB7IGF0OiBzZWxlY3Rpb24uYW5jaG9yLnBhdGggfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfTtcblxuICAgIHJldHVybiBlO1xufTtcblxuZXhwb3J0IGNvbnN0IGNyZWF0ZU1hcmtQbHVnaW4gPSBjcmVhdGVQbHVnaW5GYWN0b3J5KHtcbiAgICBrZXk6IFBsdWdpbktleXMubWFyayxcbiAgICB3aXRoT3ZlcnJpZGVzOiB3aXRoTWFyayxcbiAgICB0b29sYmFySXRlbXM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAga2V5OiBNYXJrVHlwZXMuYm9sZCxcbiAgICAgICAgICAgIGljb246ICdib2xkJyxcbiAgICAgICAgICAgIG5hbWU6ICfliqDnspcnLFxuICAgICAgICAgICAgc2hvcnRjdXRLZXk6IGAke0NPTlRST0xfS0VZfStCYCxcbiAgICAgICAgICAgIGV4ZWN1dGU6IGVkaXRvciA9PiBNYXJrRWRpdG9yLnRvZ2dsZU1hcmsoZWRpdG9yLCBNYXJrVHlwZXMuYm9sZCksXG4gICAgICAgICAgICBhY3RpdmU6IGVkaXRvciA9PiBNYXJrRWRpdG9yLmlzTWFya0FjdGl2ZShlZGl0b3IsIE1hcmtUeXBlcy5ib2xkKVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBrZXk6IE1hcmtUeXBlcy5pdGFsaWMsXG4gICAgICAgICAgICBpY29uOiAnaXRhbGljJyxcbiAgICAgICAgICAgIG5hbWU6ICfmlpzkvZMnLFxuICAgICAgICAgICAgc2hvcnRjdXRLZXk6IGAke0NPTlRST0xfS0VZfStJYCxcbiAgICAgICAgICAgIGV4ZWN1dGU6IGVkaXRvciA9PiBNYXJrRWRpdG9yLnRvZ2dsZU1hcmsoZWRpdG9yLCBNYXJrVHlwZXMuaXRhbGljKSxcbiAgICAgICAgICAgIGFjdGl2ZTogZWRpdG9yID0+IE1hcmtFZGl0b3IuaXNNYXJrQWN0aXZlKGVkaXRvciwgTWFya1R5cGVzLml0YWxpYylcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAga2V5OiBNYXJrVHlwZXMuc3RyaWtlLFxuICAgICAgICAgICAgaWNvbjogJ3N0cmlrZScsXG4gICAgICAgICAgICBuYW1lOiAn5Yig6Zmk57q/JyxcbiAgICAgICAgICAgIGV4ZWN1dGU6IGVkaXRvciA9PiBNYXJrRWRpdG9yLnRvZ2dsZU1hcmsoZWRpdG9yLCBNYXJrVHlwZXMuc3RyaWtlKSxcbiAgICAgICAgICAgIGFjdGl2ZTogZWRpdG9yID0+IE1hcmtFZGl0b3IuaXNNYXJrQWN0aXZlKGVkaXRvciwgTWFya1R5cGVzLnN0cmlrZSlcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAga2V5OiBNYXJrVHlwZXMudW5kZXJsaW5lLFxuICAgICAgICAgICAgaWNvbjogJ3VuZGVybGluZScsXG4gICAgICAgICAgICBuYW1lOiAn5LiL5YiS57q/JyxcbiAgICAgICAgICAgIHNob3J0Y3V0S2V5OiBgJHtDT05UUk9MX0tFWX0rVWAsXG4gICAgICAgICAgICBleGVjdXRlOiBlZGl0b3IgPT4gTWFya0VkaXRvci50b2dnbGVNYXJrKGVkaXRvciwgTWFya1R5cGVzLnVuZGVybGluZSksXG4gICAgICAgICAgICBhY3RpdmU6IGVkaXRvciA9PiBNYXJrRWRpdG9yLmlzTWFya0FjdGl2ZShlZGl0b3IsIE1hcmtUeXBlcy51bmRlcmxpbmUpXG4gICAgICAgIH1cbiAgICBdXG59KTtcbiJdfQ==
@@ -1,10 +1,18 @@
1
1
  import { Element } from 'slate';
2
- import * as TheQueries from '../../queries';
3
- import * as TheTransforms from '../../transforms';
2
+ import { PluginKeys } from '../../interfaces';
4
3
  import { _ } from '../../utils/lodash';
5
4
  import { deleteElementKey } from '../../utils/fragment';
6
- export const withNodeID = ({ idKey = 'id', idCreator = () => Date.now(), filterText = true, filter = () => true } = {}) => (e) => {
5
+ import { createPluginFactory, getPluginOptions } from '../../core';
6
+ import { ELEMENT_UNIQUE_ID } from '../../constants';
7
+ import { idCreator } from '../../utils';
8
+ import * as TheQueries from '../../queries';
9
+ import * as TheTransforms from '../../transforms';
10
+ export const withNodeID = (e) => {
7
11
  const editor = e;
12
+ let props = { idKey: 'id', idCreator: () => Date.now(), filterText: true, filter: () => true };
13
+ const options = getPluginOptions(editor, PluginKeys.nodeID);
14
+ props = Object.assign(Object.assign({}, props), options);
15
+ const { idKey, idCreator, filterText, filter } = props;
8
16
  const { apply, getFragment } = editor;
9
17
  const idPropsCreator = () => ({ [idKey]: idCreator() });
10
18
  editor.removedIDs = new Set();
@@ -24,7 +32,7 @@ export const withNodeID = ({ idKey = 'id', idCreator = () => Date.now(), filterT
24
32
  node,
25
33
  source: idPropsCreator,
26
34
  query: {
27
- filter: newFilter,
35
+ filter: newFilter
28
36
  }
29
37
  });
30
38
  return apply(Object.assign(Object.assign({}, operation), { node }));
@@ -50,4 +58,12 @@ export const withNodeID = ({ idKey = 'id', idCreator = () => Date.now(), filterT
50
58
  };
51
59
  return editor;
52
60
  };
53
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZS1pZC5wbHVnaW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9zcmMvcGx1Z2lucy9ub2RlLWlkL25vZGUtaWQucGx1Z2luLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBYSxPQUFPLEVBQXVDLE1BQU0sT0FBTyxDQUFDO0FBQ2hGLE9BQU8sS0FBSyxVQUFVLE1BQU0sZUFBZSxDQUFDO0FBQzVDLE9BQU8sS0FBSyxhQUFhLE1BQU0sa0JBQWtCLENBQUM7QUFFbEQsT0FBTyxFQUFFLENBQUMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBV3hELE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FDbkIsQ0FBQyxFQUFFLEtBQUssR0FBRyxJQUFJLEVBQUUsU0FBUyxHQUFHLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsRUFBRSxVQUFVLEdBQUcsSUFBSSxFQUFFLE1BQU0sR0FBRyxHQUFHLEVBQUUsQ0FBQyxJQUFJLEtBQXNCLEVBQUUsRUFBRSxFQUFFLENBQ2pILENBQW1CLENBQUksRUFBRSxFQUFFO0lBQ3ZCLE1BQU0sTUFBTSxHQUFHLENBQWlDLENBQUM7SUFFakQsTUFBTSxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsR0FBRyxNQUFNLENBQUM7SUFFdEMsTUFBTSxjQUFjLEdBQUcsR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLEVBQUUsU0FBUyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBRXhELE1BQU0sQ0FBQyxVQUFVLEdBQUcsSUFBSSxHQUFHLEVBQUUsQ0FBQztJQUU5QixNQUFNLENBQUMsS0FBSyxHQUFHLENBQUMsU0FBb0IsRUFBRSxFQUFFO1FBQ3BDLElBQUksU0FBUyxDQUFDLElBQUksS0FBSyxhQUFhLEVBQUU7WUFDbEMsTUFBTSxTQUFTLEdBQUcsQ0FBQyxLQUFzQixFQUFFLEVBQUU7Z0JBQ3pDLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxLQUFLLENBQUM7Z0JBQ3RCLE9BQU8sTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLFVBQVUsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNuRyxDQUFDLENBQUM7WUFFRixzQ0FBc0M7WUFDdEMsSUFBSSxJQUFJLEdBQUcsU0FBUyxDQUFDLElBQUksQ0FBQztZQUMxQixJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsRUFBRTtnQkFDNUIsSUFBSSxHQUFHLENBQUMsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7YUFDNUI7WUFFRCw0REFBNEQ7WUFDNUQsYUFBYSxDQUFDLGdCQUFnQixDQUFDO2dCQUMzQixJQUFJO2dCQUNKLE1BQU0sRUFBRSxjQUFjO2dCQUN0QixLQUFLLEVBQUU7b0JBQ0gsTUFBTSxFQUFFLFNBQVM7aUJBQ3BCO2FBQ0osQ0FBQyxDQUFDO1lBRUgsT0FBTyxLQUFLLGlDQUNMLFNBQVMsS0FDWixJQUFJLElBQ04sQ0FBQztTQUNOO1FBRUQsSUFBSSxTQUFTLENBQUMsSUFBSSxLQUFLLFlBQVksSUFBSSxDQUFDLENBQUMsVUFBVSxJQUFLLFNBQVMsQ0FBQyxVQUFzQixDQUFDLElBQUksQ0FBQyxFQUFFO1lBQzVGLElBQUksRUFBRSxHQUFHLFNBQVMsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDckMsSUFBSSxNQUFNLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRTtnQkFDM0IsTUFBTSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUM7YUFDaEM7aUJBQU07Z0JBQ0gsRUFBRSxHQUFHLFNBQVMsRUFBRSxDQUFDO2FBQ3BCO1lBRUQsT0FBTyxLQUFLLGlDQUNMLFNBQVMsS0FDWixVQUFVLGtDQUNILFNBQVMsQ0FBQyxVQUFVLEtBQ3ZCLENBQUMsS0FBSyxDQUFDLEVBQUUsRUFBRSxPQUVqQixDQUFDO1NBQ047UUFFRCxJQUFJLFNBQVMsQ0FBQyxJQUFJLEtBQUssWUFBWSxJQUFJLENBQUMsQ0FBQyxVQUFVLElBQUssU0FBUyxDQUFDLFVBQXNCLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDNUYsTUFBTSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUUsU0FBUyxDQUFDLFVBQXNCLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztTQUNuRTtRQUVELE9BQU8sS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQzVCLENBQUMsQ0FBQztJQUVGLE1BQU0sQ0FBQyxXQUFXLEdBQUcsR0FBRyxFQUFFO1FBQ3RCLE1BQU0sUUFBUSxHQUFHLENBQUMsQ0FBQyxTQUFTLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztRQUM1QyxPQUFPLGdCQUFnQixDQUFDLFFBQVEsRUFBRSxLQUFLLENBQWlCLENBQUM7SUFDN0QsQ0FBQyxDQUFBO0lBRUQsT0FBTyxNQUFNLENBQUM7QUFDbEIsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTm9kZUVudHJ5LCBFbGVtZW50LCBOb2RlLCBFZGl0b3IsIE9wZXJhdGlvbiwgRGVzY2VuZGFudCB9IGZyb20gJ3NsYXRlJztcbmltcG9ydCAqIGFzIFRoZVF1ZXJpZXMgZnJvbSAnLi4vLi4vcXVlcmllcyc7XG5pbXBvcnQgKiBhcyBUaGVUcmFuc2Zvcm1zIGZyb20gJy4uLy4uL3RyYW5zZm9ybXMnO1xuaW1wb3J0IHsgUXVlcnlPcHRpb25zIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBfIH0gZnJvbSAnLi4vLi4vdXRpbHMvbG9kYXNoJztcbmltcG9ydCB7IGRlbGV0ZUVsZW1lbnRLZXkgfSBmcm9tICcuLi8uLi91dGlscy9mcmFnbWVudCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgV2l0aE5vZGVJRFByb3BzIGV4dGVuZHMgUXVlcnlPcHRpb25zIHtcbiAgICAvLyBLZXkgdXNlZCBmb3IgdGhlIGlkLiBEZWZhdWx0IGlzIGBpZGAuXG4gICAgaWRLZXk/OiBzdHJpbmc7XG4gICAgLy8gSUQgZmFjdG9yeSwgZS5nLiBgdXVpZGBcbiAgICBpZENyZWF0b3I/OiAoKSA9PiB2b2lkO1xuICAgIC8vIEZpbHRlciBgVGV4dGAgbm9kZXMuXG4gICAgZmlsdGVyVGV4dD86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBjb25zdCB3aXRoTm9kZUlEID1cbiAgICAoeyBpZEtleSA9ICdpZCcsIGlkQ3JlYXRvciA9ICgpID0+IERhdGUubm93KCksIGZpbHRlclRleHQgPSB0cnVlLCBmaWx0ZXIgPSAoKSA9PiB0cnVlIH06IFdpdGhOb2RlSURQcm9wcyA9IHt9KSA9PlxuICAgIDxUIGV4dGVuZHMgRWRpdG9yPihlOiBUKSA9PiB7XG4gICAgICAgIGNvbnN0IGVkaXRvciA9IGUgYXMgVCAmIHsgcmVtb3ZlZElEczogU2V0PGFueT4gfTtcblxuICAgICAgICBjb25zdCB7IGFwcGx5LCBnZXRGcmFnbWVudCB9ID0gZWRpdG9yO1xuXG4gICAgICAgIGNvbnN0IGlkUHJvcHNDcmVhdG9yID0gKCkgPT4gKHsgW2lkS2V5XTogaWRDcmVhdG9yKCkgfSk7XG5cbiAgICAgICAgZWRpdG9yLnJlbW92ZWRJRHMgPSBuZXcgU2V0KCk7XG5cbiAgICAgICAgZWRpdG9yLmFwcGx5ID0gKG9wZXJhdGlvbjogT3BlcmF0aW9uKSA9PiB7XG4gICAgICAgICAgICBpZiAob3BlcmF0aW9uLnR5cGUgPT09ICdpbnNlcnRfbm9kZScpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBuZXdGaWx0ZXIgPSAoZW50cnk6IE5vZGVFbnRyeTxOb2RlPikgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBbX25vZGVdID0gZW50cnk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBmaWx0ZXIoZW50cnkpICYmIGZpbHRlclRleHQgPyBFbGVtZW50LmlzRWxlbWVudChfbm9kZSkgOiBUaGVRdWVyaWVzLmlzRGVzY2VuZGFudChfbm9kZSk7XG4gICAgICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgICAgIC8vIGZpeCBjYW4gbm90IGZpbmQgcGF0aCBieSBvcmlnbiBub2RlXG4gICAgICAgICAgICAgICAgbGV0IG5vZGUgPSBvcGVyYXRpb24ubm9kZTtcbiAgICAgICAgICAgICAgICBpZiAoIU9iamVjdC5pc0V4dGVuc2libGUobm9kZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgbm9kZSA9IF8uY2xvbmVEZWVwKG5vZGUpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC8vIGl0IHdpbGwgbm90IG92ZXJ3cml0ZSBpZHMgb25jZSBpdCdzIHNldCBhcyBpdCdzIHJlYWQtb25seVxuICAgICAgICAgICAgICAgIFRoZVRyYW5zZm9ybXMubWVyZ2VEZWVwVG9Ob2Rlcyh7XG4gICAgICAgICAgICAgICAgICAgIG5vZGUsXG4gICAgICAgICAgICAgICAgICAgIHNvdXJjZTogaWRQcm9wc0NyZWF0b3IsXG4gICAgICAgICAgICAgICAgICAgIHF1ZXJ5OiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXI6IG5ld0ZpbHRlcixcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgICAgcmV0dXJuIGFwcGx5KHtcbiAgICAgICAgICAgICAgICAgICAgLi4ub3BlcmF0aW9uLFxuICAgICAgICAgICAgICAgICAgICBub2RlXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChvcGVyYXRpb24udHlwZSA9PT0gJ3NwbGl0X25vZGUnICYmICghZmlsdGVyVGV4dCB8fCAob3BlcmF0aW9uLnByb3BlcnRpZXMgYXMgRWxlbWVudCkudHlwZSkpIHtcbiAgICAgICAgICAgICAgICBsZXQgaWQgPSBvcGVyYXRpb24ucHJvcGVydGllc1tpZEtleV07XG4gICAgICAgICAgICAgICAgaWYgKGVkaXRvci5yZW1vdmVkSURzLmhhcyhpZCkpIHtcbiAgICAgICAgICAgICAgICAgICAgZWRpdG9yLnJlbW92ZWRJRHMuZGVsZXRlKGlkKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBpZCA9IGlkQ3JlYXRvcigpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHJldHVybiBhcHBseSh7XG4gICAgICAgICAgICAgICAgICAgIC4uLm9wZXJhdGlvbixcbiAgICAgICAgICAgICAgICAgICAgcHJvcGVydGllczoge1xuICAgICAgICAgICAgICAgICAgICAgICAgLi4ub3BlcmF0aW9uLnByb3BlcnRpZXMsXG4gICAgICAgICAgICAgICAgICAgICAgICBbaWRLZXldOiBpZFxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChvcGVyYXRpb24udHlwZSA9PT0gJ21lcmdlX25vZGUnICYmICghZmlsdGVyVGV4dCB8fCAob3BlcmF0aW9uLnByb3BlcnRpZXMgYXMgRWxlbWVudCkudHlwZSkpIHtcbiAgICAgICAgICAgICAgICBlZGl0b3IucmVtb3ZlZElEcy5hZGQoKG9wZXJhdGlvbi5wcm9wZXJ0aWVzIGFzIEVsZW1lbnQpW2lkS2V5XSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBhcHBseShvcGVyYXRpb24pO1xuICAgICAgICB9O1xuXG4gICAgICAgIGVkaXRvci5nZXRGcmFnbWVudCA9ICgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGZyYWdtZW50ID0gXy5jbG9uZURlZXAoZ2V0RnJhZ21lbnQoKSk7XG4gICAgICAgICAgICByZXR1cm4gZGVsZXRlRWxlbWVudEtleShmcmFnbWVudCwgaWRLZXkpIGFzIERlc2NlbmRhbnRbXTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBlZGl0b3I7XG4gICAgfTtcbiJdfQ==
61
+ export const createNodeIDPlugin = createPluginFactory({
62
+ key: PluginKeys.nodeID,
63
+ withOverrides: withNodeID,
64
+ options: {
65
+ idKey: ELEMENT_UNIQUE_ID,
66
+ idCreator
67
+ }
68
+ });
69
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZS1pZC5wbHVnaW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9zcmMvcGx1Z2lucy9ub2RlLWlkL25vZGUtaWQucGx1Z2luLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBYSxPQUFPLEVBQXVDLE1BQU0sT0FBTyxDQUFDO0FBQ2hGLE9BQU8sRUFBRSxVQUFVLEVBQWdCLE1BQU0sa0JBQWtCLENBQUM7QUFDNUQsT0FBTyxFQUFFLENBQUMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUNuRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3hDLE9BQU8sS0FBSyxVQUFVLE1BQU0sZUFBZSxDQUFDO0FBQzVDLE9BQU8sS0FBSyxhQUFhLE1BQU0sa0JBQWtCLENBQUM7QUFXbEQsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHLENBQW1CLENBQUksRUFBSyxFQUFFO0lBQ3BELE1BQU0sTUFBTSxHQUFHLENBQWlDLENBQUM7SUFFakQsSUFBSSxLQUFLLEdBQW9CLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ2hILE1BQU0sT0FBTyxHQUFHLGdCQUFnQixDQUFrQixNQUFNLEVBQUUsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzdFLEtBQUssbUNBQVEsS0FBSyxHQUFLLE9BQU8sQ0FBRSxDQUFDO0lBQ2pD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QW1CLENBQWtCO0lBQ25FLEdBQUcsRUFBRSxVQUFVLENBQUMsTUFBTTtJQUN0QixhQUFhLEVBQUUsVUFBVTtJQUN6QixPQUFPLEVBQUU7UUFDTCxLQUFLLEVBQUUsaUJBQWlCO1FBQ3hCLFNBQVM7S0FDWjtDQUNKLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5vZGVFbnRyeSwgRWxlbWVudCwgTm9kZSwgRWRpdG9yLCBPcGVyYXRpb24sIERlc2NlbmRhbnQgfSBmcm9tICdzbGF0ZSc7XG5pbXBvcnQgeyBQbHVnaW5LZXlzLCBRdWVyeU9wdGlvbnMgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IF8gfSBmcm9tICcuLi8uLi91dGlscy9sb2Rhc2gnO1xuaW1wb3J0IHsgZGVsZXRlRWxlbWVudEtleSB9IGZyb20gJy4uLy4uL3V0aWxzL2ZyYWdtZW50JztcbmltcG9ydCB7IGNyZWF0ZVBsdWdpbkZhY3RvcnksIGdldFBsdWdpbk9wdGlvbnMgfSBmcm9tICcuLi8uLi9jb3JlJztcbmltcG9ydCB7IEVMRU1FTlRfVU5JUVVFX0lEIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzJztcbmltcG9ydCB7IGlkQ3JlYXRvciB9IGZyb20gJy4uLy4uL3V0aWxzJztcbmltcG9ydCAqIGFzIFRoZVF1ZXJpZXMgZnJvbSAnLi4vLi4vcXVlcmllcyc7XG5pbXBvcnQgKiBhcyBUaGVUcmFuc2Zvcm1zIGZyb20gJy4uLy4uL3RyYW5zZm9ybXMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFdpdGhOb2RlSURQcm9wcyBleHRlbmRzIFF1ZXJ5T3B0aW9ucyB7XG4gICAgLy8gS2V5IHVzZWQgZm9yIHRoZSBpZC4gRGVmYXVsdCBpcyBgaWRgLlxuICAgIGlkS2V5Pzogc3RyaW5nO1xuICAgIC8vIElEIGZhY3RvcnksIGUuZy4gYHV1aWRgXG4gICAgaWRDcmVhdG9yPzogKCkgPT4gdm9pZDtcbiAgICAvLyBGaWx0ZXIgYFRleHRgIG5vZGVzLlxuICAgIGZpbHRlclRleHQ/OiBib29sZWFuO1xufVxuXG5leHBvcnQgY29uc3Qgd2l0aE5vZGVJRCA9IDxUIGV4dGVuZHMgRWRpdG9yPihlOiBUKTogVCA9PiB7XG4gICAgY29uc3QgZWRpdG9yID0gZSBhcyBUICYgeyByZW1vdmVkSURzOiBTZXQ8YW55PiB9O1xuXG4gICAgbGV0IHByb3BzOiBXaXRoTm9kZUlEUHJvcHMgPSB7IGlkS2V5OiAnaWQnLCBpZENyZWF0b3I6ICgpID0+IERhdGUubm93KCksIGZpbHRlclRleHQ6IHRydWUsIGZpbHRlcjogKCkgPT4gdHJ1ZSB9O1xuICAgIGNvbnN0IG9wdGlvbnMgPSBnZXRQbHVnaW5PcHRpb25zPFdpdGhOb2RlSURQcm9wcz4oZWRpdG9yLCBQbHVnaW5LZXlzLm5vZGVJRCk7XG4gICAgcHJvcHMgPSB7IC4uLnByb3BzLCAuLi5vcHRpb25zIH07XG4gICAgY29uc3QgeyBpZEtleSwgaWRDcmVhdG9yLCBmaWx0ZXJUZXh0LCBmaWx0ZXIgfSA9IHByb3BzO1xuXG4gICAgY29uc3QgeyBhcHBseSwgZ2V0RnJhZ21lbnQgfSA9IGVkaXRvcjtcblxuICAgIGNvbnN0IGlkUHJvcHNDcmVhdG9yID0gKCkgPT4gKHsgW2lkS2V5XTogaWRDcmVhdG9yKCkgfSk7XG5cbiAgICBlZGl0b3IucmVtb3ZlZElEcyA9IG5ldyBTZXQoKTtcblxuICAgIGVkaXRvci5hcHBseSA9IChvcGVyYXRpb246IE9wZXJhdGlvbikgPT4ge1xuICAgICAgICBpZiAob3BlcmF0aW9uLnR5cGUgPT09ICdpbnNlcnRfbm9kZScpIHtcbiAgICAgICAgICAgIGNvbnN0IG5ld0ZpbHRlciA9IChlbnRyeTogTm9kZUVudHJ5PE5vZGU+KSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgW19ub2RlXSA9IGVudHJ5O1xuICAgICAgICAgICAgICAgIHJldHVybiBmaWx0ZXIoZW50cnkpICYmIGZpbHRlclRleHQgPyBFbGVtZW50LmlzRWxlbWVudChfbm9kZSkgOiBUaGVRdWVyaWVzLmlzRGVzY2VuZGFudChfbm9kZSk7XG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICAvLyBmaXggY2FuIG5vdCBmaW5kIHBhdGggYnkgb3JpZ24gbm9kZVxuICAgICAgICAgICAgbGV0IG5vZGUgPSBvcGVyYXRpb24ubm9kZTtcbiAgICAgICAgICAgIGlmICghT2JqZWN0LmlzRXh0ZW5zaWJsZShub2RlKSkge1xuICAgICAgICAgICAgICAgIG5vZGUgPSBfLmNsb25lRGVlcChub2RlKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gaXQgd2lsbCBub3Qgb3ZlcndyaXRlIGlkcyBvbmNlIGl0J3Mgc2V0IGFzIGl0J3MgcmVhZC1vbmx5XG4gICAgICAgICAgICBUaGVUcmFuc2Zvcm1zLm1lcmdlRGVlcFRvTm9kZXMoe1xuICAgICAgICAgICAgICAgIG5vZGUsXG4gICAgICAgICAgICAgICAgc291cmNlOiBpZFByb3BzQ3JlYXRvcixcbiAgICAgICAgICAgICAgICBxdWVyeToge1xuICAgICAgICAgICAgICAgICAgICBmaWx0ZXI6IG5ld0ZpbHRlclxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICByZXR1cm4gYXBwbHkoe1xuICAgICAgICAgICAgICAgIC4uLm9wZXJhdGlvbixcbiAgICAgICAgICAgICAgICBub2RlXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChvcGVyYXRpb24udHlwZSA9PT0gJ3NwbGl0X25vZGUnICYmICghZmlsdGVyVGV4dCB8fCAob3BlcmF0aW9uLnByb3BlcnRpZXMgYXMgRWxlbWVudCkudHlwZSkpIHtcbiAgICAgICAgICAgIGxldCBpZCA9IG9wZXJhdGlvbi5wcm9wZXJ0aWVzW2lkS2V5XTtcbiAgICAgICAgICAgIGlmIChlZGl0b3IucmVtb3ZlZElEcy5oYXMoaWQpKSB7XG4gICAgICAgICAgICAgICAgZWRpdG9yLnJlbW92ZWRJRHMuZGVsZXRlKGlkKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgaWQgPSBpZENyZWF0b3IoKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIGFwcGx5KHtcbiAgICAgICAgICAgICAgICAuLi5vcGVyYXRpb24sXG4gICAgICAgICAgICAgICAgcHJvcGVydGllczoge1xuICAgICAgICAgICAgICAgICAgICAuLi5vcGVyYXRpb24ucHJvcGVydGllcyxcbiAgICAgICAgICAgICAgICAgICAgW2lkS2V5XTogaWRcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChvcGVyYXRpb24udHlwZSA9PT0gJ21lcmdlX25vZGUnICYmICghZmlsdGVyVGV4dCB8fCAob3BlcmF0aW9uLnByb3BlcnRpZXMgYXMgRWxlbWVudCkudHlwZSkpIHtcbiAgICAgICAgICAgIGVkaXRvci5yZW1vdmVkSURzLmFkZCgob3BlcmF0aW9uLnByb3BlcnRpZXMgYXMgRWxlbWVudClbaWRLZXldKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBhcHBseShvcGVyYXRpb24pO1xuICAgIH07XG5cbiAgICBlZGl0b3IuZ2V0RnJhZ21lbnQgPSAoKSA9PiB7XG4gICAgICAgIGNvbnN0IGZyYWdtZW50ID0gXy5jbG9uZURlZXAoZ2V0RnJhZ21lbnQoKSk7XG4gICAgICAgIHJldHVybiBkZWxldGVFbGVtZW50S2V5KGZyYWdtZW50LCBpZEtleSkgYXMgRGVzY2VuZGFudFtdO1xuICAgIH07XG5cbiAgICByZXR1cm4gZWRpdG9yO1xufTtcblxuZXhwb3J0IGNvbnN0IGNyZWF0ZU5vZGVJRFBsdWdpbiA9IGNyZWF0ZVBsdWdpbkZhY3Rvcnk8V2l0aE5vZGVJRFByb3BzPih7XG4gICAga2V5OiBQbHVnaW5LZXlzLm5vZGVJRCxcbiAgICB3aXRoT3ZlcnJpZGVzOiB3aXRoTm9kZUlELFxuICAgIG9wdGlvbnM6IHtcbiAgICAgICAgaWRLZXk6IEVMRU1FTlRfVU5JUVVFX0lELFxuICAgICAgICBpZENyZWF0b3JcbiAgICB9XG59KTtcbiJdfQ==
@@ -1,8 +1,12 @@
1
1
  import { Transforms, Element, Text, Editor } from 'slate';
2
+ import { PluginKeys } from '../../interfaces';
3
+ import { createPluginFactory, getPluginOptions } from '../../core';
2
4
  import { createEmptyParagraph } from '../../utils/create-empty-paragraph';
3
5
  import * as TheQueries from '../../queries';
4
- export const withInsertParagraphNodes = (types = []) => (editor) => {
6
+ export const withInsertParagraphNodes = (editor) => {
7
+ var _a, _b;
5
8
  const { normalizeNode } = editor;
9
+ const types = (_b = (_a = getPluginOptions(editor, PluginKeys.insertParagraphNodes)) === null || _a === void 0 ? void 0 : _a.types) !== null && _b !== void 0 ? _b : [];
6
10
  editor.normalizeNode = ([currentNode, currentPath]) => {
7
11
  if (Text.isText(currentNode) && currentPath.length) {
8
12
  const [node] = Editor.parent(editor, currentPath);
@@ -18,4 +22,8 @@ export const withInsertParagraphNodes = (types = []) => (editor) => {
18
22
  };
19
23
  return editor;
20
24
  };
21
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5zZXJ0LXBhcmFncmFwaC1ub2Rlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3NyYy9wbHVnaW5zL25vcm1hbGl6ZXJzL2luc2VydC1wYXJhZ3JhcGgtbm9kZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxNQUFNLE9BQU8sQ0FBQztBQUMxRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUcxRSxPQUFPLEtBQUssVUFBVSxNQUFNLGVBQWUsQ0FBQztBQUc1QyxNQUFNLENBQUMsTUFBTSx3QkFBd0IsR0FDakMsQ0FBQyxRQUE4QixFQUFFLEVBQUUsRUFBRSxDQUNyQyxDQUFxQyxNQUFTLEVBQUUsRUFBRTtJQUM5QyxNQUFNLEVBQUUsYUFBYSxFQUFFLEdBQUcsTUFBTSxDQUFDO0lBQ2pDLE1BQU0sQ0FBQyxhQUFhLEdBQUcsQ0FBQyxDQUFDLFdBQVcsRUFBRSxXQUFXLENBQUMsRUFBRSxFQUFFO1FBQ2xELElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsSUFBSSxXQUFXLENBQUMsTUFBTSxFQUFFO1lBQ2hELE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxXQUFXLENBQUMsQ0FBQztZQUNsRCxNQUFNLGVBQWUsR0FBRyxDQUFDLEdBQUcsS0FBSyxFQUFFLEdBQUcsVUFBVSxDQUFDLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7WUFDN0UsSUFBSSxPQUFPLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLGVBQWUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFO2dCQUNoRSxNQUFNLFNBQVMsR0FBRyxvQkFBb0IsRUFBRSxDQUFDO2dCQUN4QyxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBVSxDQUFDLElBQUksR0FBRyxXQUFXLENBQUMsSUFBSSxDQUFDO2dCQUN4RCxVQUFVLENBQUMsV0FBVyxDQUFDLE1BQU0sRUFBRSxTQUFTLEVBQUUsRUFBRSxFQUFFLEVBQUUsV0FBVyxFQUFFLENBQUMsQ0FBQztnQkFDL0QsT0FBTzthQUNWO1NBQ0o7UUFDRCxPQUFPLGFBQWEsQ0FBQyxDQUFDLFdBQVcsRUFBRSxXQUFXLENBQUMsQ0FBQyxDQUFDO0lBQ3JELENBQUMsQ0FBQztJQUVGLE9BQU8sTUFBTSxDQUFDO0FBQ2xCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRyYW5zZm9ybXMsIEVsZW1lbnQsIFRleHQsIEVkaXRvciB9IGZyb20gJ3NsYXRlJztcbmltcG9ydCB7IGNyZWF0ZUVtcHR5UGFyYWdyYXBoIH0gZnJvbSAnLi4vLi4vdXRpbHMvY3JlYXRlLWVtcHR5LXBhcmFncmFwaCc7XG5pbXBvcnQgeyBFbGVtZW50S2luZHMgfSBmcm9tICcuLi8uLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgVHJhbnNmb3JtRWRpdG9yIH0gZnJvbSAnLi4vY29tbW9uL3RyYW5zZm9ybXMucGx1Z2luJztcbmltcG9ydCAqIGFzIFRoZVF1ZXJpZXMgZnJvbSAnLi4vLi4vcXVlcmllcyc7XG5pbXBvcnQgeyBDdXN0b21FbGVtZW50S2luZHMgfSBmcm9tICcuLi8uLi9jdXN0b20tdHlwZXMnO1xuXG5leHBvcnQgY29uc3Qgd2l0aEluc2VydFBhcmFncmFwaE5vZGVzID1cbiAgICAodHlwZXM6IEN1c3RvbUVsZW1lbnRLaW5kc1tdID0gW10pID0+XG4gICAgPFQgZXh0ZW5kcyBFZGl0b3IgJiBUcmFuc2Zvcm1FZGl0b3I+KGVkaXRvcjogVCkgPT4ge1xuICAgICAgICBjb25zdCB7IG5vcm1hbGl6ZU5vZGUgfSA9IGVkaXRvcjtcbiAgICAgICAgZWRpdG9yLm5vcm1hbGl6ZU5vZGUgPSAoW2N1cnJlbnROb2RlLCBjdXJyZW50UGF0aF0pID0+IHtcbiAgICAgICAgICAgIGlmIChUZXh0LmlzVGV4dChjdXJyZW50Tm9kZSkgJiYgY3VycmVudFBhdGgubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgW25vZGVdID0gRWRpdG9yLnBhcmVudChlZGl0b3IsIGN1cnJlbnRQYXRoKTtcbiAgICAgICAgICAgICAgICBjb25zdCBjb250YWluZXJCbG9ja3MgPSBbLi4udHlwZXMsIC4uLlRoZVF1ZXJpZXMuZ2V0Q29udGFpbmVyQmxvY2tzKGVkaXRvcildO1xuICAgICAgICAgICAgICAgIGlmIChFbGVtZW50LmlzRWxlbWVudChub2RlKSAmJiBjb250YWluZXJCbG9ja3MuaW5jbHVkZXMobm9kZS50eXBlKSkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBwYXJhZ3JhcGggPSBjcmVhdGVFbXB0eVBhcmFncmFwaCgpO1xuICAgICAgICAgICAgICAgICAgICAocGFyYWdyYXBoLmNoaWxkcmVuWzBdIGFzIFRleHQpLnRleHQgPSBjdXJyZW50Tm9kZS50ZXh0O1xuICAgICAgICAgICAgICAgICAgICBUcmFuc2Zvcm1zLmluc2VydE5vZGVzKGVkaXRvciwgcGFyYWdyYXBoLCB7IGF0OiBjdXJyZW50UGF0aCB9KTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBub3JtYWxpemVOb2RlKFtjdXJyZW50Tm9kZSwgY3VycmVudFBhdGhdKTtcbiAgICAgICAgfTtcblxuICAgICAgICByZXR1cm4gZWRpdG9yO1xuICAgIH07XG4iXX0=
25
+ export const createInsertParagraphNodesPlugin = createPluginFactory({
26
+ key: PluginKeys.insertParagraphNodes,
27
+ withOverrides: withInsertParagraphNodes
28
+ });
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5zZXJ0LXBhcmFncmFwaC1ub2Rlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3NyYy9wbHVnaW5zL25vcm1hbGl6ZXJzL2luc2VydC1wYXJhZ3JhcGgtbm9kZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxNQUFNLE9BQU8sQ0FBQztBQUMxRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFOUMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLGdCQUFnQixFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ25FLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBRTFFLE9BQU8sS0FBSyxVQUFVLE1BQU0sZUFBZSxDQUFDO0FBTTVDLE1BQU0sQ0FBQyxNQUFNLHdCQUF3QixHQUFHLENBQXFDLE1BQVMsRUFBSyxFQUFFOztJQUN6RixNQUFNLEVBQUUsYUFBYSxFQUFFLEdBQUcsTUFBTSxDQUFDO0lBQ2pDLE1BQU0sS0FBSyxHQUFHLE1BQUEsTUFBQSxnQkFBZ0IsQ0FBOEIsTUFBTSxFQUFFLFVBQVUsQ0FBQyxvQkFBb0IsQ0FBQywwQ0FBRSxLQUFLLG1DQUFJLEVBQUUsQ0FBQztJQUVsSCxNQUFNLENBQUMsYUFBYSxHQUFHLENBQUMsQ0FBQyxXQUFXLEVBQUUsV0FBVyxDQUFDLEVBQUUsRUFBRTtRQUNsRCxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLElBQUksV0FBVyxDQUFDLE1BQU0sRUFBRTtZQUNoRCxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsV0FBVyxDQUFDLENBQUM7WUFDbEQsTUFBTSxlQUFlLEdBQUcsQ0FBQyxHQUFHLEtBQUssRUFBRSxHQUFHLFVBQVUsQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO1lBQzdFLElBQUksT0FBTyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxlQUFlLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRTtnQkFDaEUsTUFBTSxTQUFTLEdBQUcsb0JBQW9CLEVBQUUsQ0FBQztnQkFDeEMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQVUsQ0FBQyxJQUFJLEdBQUcsV0FBVyxDQUFDLElBQUksQ0FBQztnQkFDeEQsVUFBVSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEVBQUUsU0FBUyxFQUFFLEVBQUUsRUFBRSxFQUFFLFdBQVcsRUFBRSxDQUFDLENBQUM7Z0JBQy9ELE9BQU87YUFDVjtTQUNKO1FBQ0QsT0FBTyxhQUFhLENBQUMsQ0FBQyxXQUFXLEVBQUUsV0FBVyxDQUFDLENBQUMsQ0FBQztJQUNyRCxDQUFDLENBQUM7SUFFRixPQUFPLE1BQU0sQ0FBQztBQUNsQixDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxnQ0FBZ0MsR0FBRyxtQkFBbUIsQ0FBOEI7SUFDN0YsR0FBRyxFQUFFLFVBQVUsQ0FBQyxvQkFBb0I7SUFDcEMsYUFBYSxFQUFFLHdCQUF3QjtDQUMxQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUcmFuc2Zvcm1zLCBFbGVtZW50LCBUZXh0LCBFZGl0b3IgfSBmcm9tICdzbGF0ZSc7XG5pbXBvcnQgeyBQbHVnaW5LZXlzIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBDdXN0b21FbGVtZW50S2luZHMgfSBmcm9tICcuLi8uLi9jdXN0b20tdHlwZXMnO1xuaW1wb3J0IHsgY3JlYXRlUGx1Z2luRmFjdG9yeSwgZ2V0UGx1Z2luT3B0aW9ucyB9IGZyb20gJy4uLy4uL2NvcmUnO1xuaW1wb3J0IHsgY3JlYXRlRW1wdHlQYXJhZ3JhcGggfSBmcm9tICcuLi8uLi91dGlscy9jcmVhdGUtZW1wdHktcGFyYWdyYXBoJztcbmltcG9ydCB7IFRyYW5zZm9ybUVkaXRvciB9IGZyb20gJy4uL2NvbW1vbi90cmFuc2Zvcm1zLnBsdWdpbic7XG5pbXBvcnQgKiBhcyBUaGVRdWVyaWVzIGZyb20gJy4uLy4uL3F1ZXJpZXMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEluc2VydFBhcmFncmFwaE5vZGVzT3B0aW9ucyB7XG4gICAgdHlwZXM6IEN1c3RvbUVsZW1lbnRLaW5kc1tdO1xufVxuXG5leHBvcnQgY29uc3Qgd2l0aEluc2VydFBhcmFncmFwaE5vZGVzID0gPFQgZXh0ZW5kcyBFZGl0b3IgJiBUcmFuc2Zvcm1FZGl0b3I+KGVkaXRvcjogVCk6IFQgPT4ge1xuICAgIGNvbnN0IHsgbm9ybWFsaXplTm9kZSB9ID0gZWRpdG9yO1xuICAgIGNvbnN0IHR5cGVzID0gZ2V0UGx1Z2luT3B0aW9uczxJbnNlcnRQYXJhZ3JhcGhOb2Rlc09wdGlvbnM+KGVkaXRvciwgUGx1Z2luS2V5cy5pbnNlcnRQYXJhZ3JhcGhOb2Rlcyk/LnR5cGVzID8/IFtdO1xuXG4gICAgZWRpdG9yLm5vcm1hbGl6ZU5vZGUgPSAoW2N1cnJlbnROb2RlLCBjdXJyZW50UGF0aF0pID0+IHtcbiAgICAgICAgaWYgKFRleHQuaXNUZXh0KGN1cnJlbnROb2RlKSAmJiBjdXJyZW50UGF0aC5sZW5ndGgpIHtcbiAgICAgICAgICAgIGNvbnN0IFtub2RlXSA9IEVkaXRvci5wYXJlbnQoZWRpdG9yLCBjdXJyZW50UGF0aCk7XG4gICAgICAgICAgICBjb25zdCBjb250YWluZXJCbG9ja3MgPSBbLi4udHlwZXMsIC4uLlRoZVF1ZXJpZXMuZ2V0Q29udGFpbmVyQmxvY2tzKGVkaXRvcildO1xuICAgICAgICAgICAgaWYgKEVsZW1lbnQuaXNFbGVtZW50KG5vZGUpICYmIGNvbnRhaW5lckJsb2Nrcy5pbmNsdWRlcyhub2RlLnR5cGUpKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgcGFyYWdyYXBoID0gY3JlYXRlRW1wdHlQYXJhZ3JhcGgoKTtcbiAgICAgICAgICAgICAgICAocGFyYWdyYXBoLmNoaWxkcmVuWzBdIGFzIFRleHQpLnRleHQgPSBjdXJyZW50Tm9kZS50ZXh0O1xuICAgICAgICAgICAgICAgIFRyYW5zZm9ybXMuaW5zZXJ0Tm9kZXMoZWRpdG9yLCBwYXJhZ3JhcGgsIHsgYXQ6IGN1cnJlbnRQYXRoIH0pO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbm9ybWFsaXplTm9kZShbY3VycmVudE5vZGUsIGN1cnJlbnRQYXRoXSk7XG4gICAgfTtcblxuICAgIHJldHVybiBlZGl0b3I7XG59O1xuXG5leHBvcnQgY29uc3QgY3JlYXRlSW5zZXJ0UGFyYWdyYXBoTm9kZXNQbHVnaW4gPSBjcmVhdGVQbHVnaW5GYWN0b3J5PEluc2VydFBhcmFncmFwaE5vZGVzT3B0aW9ucz4oe1xuICAgIGtleTogUGx1Z2luS2V5cy5pbnNlcnRQYXJhZ3JhcGhOb2RlcyxcbiAgICB3aXRoT3ZlcnJpZGVzOiB3aXRoSW5zZXJ0UGFyYWdyYXBoTm9kZXNcbn0pO1xuIl19
@@ -15,4 +15,4 @@ export const withRemoveEmptyNodes = (options) => (editor) => {
15
15
  };
16
16
  return editor;
17
17
  };
18
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVtb3ZlLWVtcHR5LW5vZGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvc3JjL3BsdWdpbnMvbm9ybWFsaXplcnMvcmVtb3ZlLWVtcHR5LW5vZGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxJQUFJLEVBQWEsVUFBVSxFQUFXLE1BQU0sT0FBTyxDQUFDO0FBQzdELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUVuRDs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUFHLENBQUMsT0FBb0MsRUFBRSxFQUFFLENBQUMsQ0FBc0IsTUFBUyxFQUFFLEVBQUU7SUFDN0csTUFBTSxLQUFLLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUV0QyxNQUFNLEVBQUUsYUFBYSxFQUFFLEdBQUcsTUFBTSxDQUFDO0lBRWpDLE1BQU0sQ0FBQyxhQUFhLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxJQUFJLENBQXFCLEVBQUUsRUFBRTtRQUN4RCxJQUFJLElBQUksQ0FBQyxJQUFJLElBQUksS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBYyxDQUFDLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFFOUUsVUFBVSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztZQUM3QyxPQUFPO1NBQ1Y7UUFFRCxhQUFhLENBQUMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUNoQyxDQUFDLENBQUM7SUFFRixPQUFPLE1BQU0sQ0FBQztBQUNsQixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUaGVFZGl0b3IgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IE5vZGUsIE5vZGVFbnRyeSwgVHJhbnNmb3JtcywgRWxlbWVudCB9IGZyb20gJ3NsYXRlJztcbmltcG9ydCB7IGNhc3RBcnJheSB9IGZyb20gJy4uLy4uL3V0aWxzL2Nhc3QtYXJyYXknO1xuXG4vKipcbiAqIFJlbW92ZSBub2RlcyB3aXRoIGVtcHR5IHRleHQuXG4gKi9cbmV4cG9ydCBjb25zdCB3aXRoUmVtb3ZlRW1wdHlOb2RlcyA9IChvcHRpb25zOiB7IHR5cGU6IHN0cmluZyB8IHN0cmluZ1tdIH0pID0+IDxUIGV4dGVuZHMgVGhlRWRpdG9yPihlZGl0b3I6IFQpID0+IHtcbiAgICBjb25zdCB0eXBlcyA9IGNhc3RBcnJheShvcHRpb25zLnR5cGUpO1xuXG4gICAgY29uc3QgeyBub3JtYWxpemVOb2RlIH0gPSBlZGl0b3I7XG5cbiAgICBlZGl0b3Iubm9ybWFsaXplTm9kZSA9IChbbm9kZSwgcGF0aF06IE5vZGVFbnRyeTxFbGVtZW50PikgPT4ge1xuICAgICAgICBpZiAobm9kZS50eXBlICYmIHR5cGVzLmluY2x1ZGVzKG5vZGUudHlwZSBhcyBzdHJpbmcpICYmIE5vZGUuc3RyaW5nKG5vZGUpID09PSAnJykge1xuXG4gICAgICAgICAgICBUcmFuc2Zvcm1zLnJlbW92ZU5vZGVzKGVkaXRvciwgeyBhdDogcGF0aCB9KTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIG5vcm1hbGl6ZU5vZGUoW25vZGUsIHBhdGhdKTtcbiAgICB9O1xuXG4gICAgcmV0dXJuIGVkaXRvcjtcbn07XG4iXX0=
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVtb3ZlLWVtcHR5LW5vZGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvc3JjL3BsdWdpbnMvbm9ybWFsaXplcnMvcmVtb3ZlLWVtcHR5LW5vZGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxJQUFJLEVBQWEsVUFBVSxFQUFXLE1BQU0sT0FBTyxDQUFDO0FBQzdELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUVuRDs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUM3QixDQUFDLE9BQW9DLEVBQUUsRUFBRSxDQUN6QyxDQUFzQixNQUFTLEVBQUUsRUFBRTtJQUMvQixNQUFNLEtBQUssR0FBRyxTQUFTLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBRXRDLE1BQU0sRUFBRSxhQUFhLEVBQUUsR0FBRyxNQUFNLENBQUM7SUFFakMsTUFBTSxDQUFDLGFBQWEsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBcUIsRUFBRSxFQUFFO1FBQ3hELElBQUksSUFBSSxDQUFDLElBQUksSUFBSSxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFjLENBQUMsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUM5RSxVQUFVLENBQUMsV0FBVyxDQUFDLE1BQU0sRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1lBQzdDLE9BQU87U0FDVjtRQUVELGFBQWEsQ0FBQyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQ2hDLENBQUMsQ0FBQztJQUVGLE9BQU8sTUFBTSxDQUFDO0FBQ2xCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRoZUVkaXRvciB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgTm9kZSwgTm9kZUVudHJ5LCBUcmFuc2Zvcm1zLCBFbGVtZW50IH0gZnJvbSAnc2xhdGUnO1xuaW1wb3J0IHsgY2FzdEFycmF5IH0gZnJvbSAnLi4vLi4vdXRpbHMvY2FzdC1hcnJheSc7XG5cbi8qKlxuICogUmVtb3ZlIG5vZGVzIHdpdGggZW1wdHkgdGV4dC5cbiAqL1xuZXhwb3J0IGNvbnN0IHdpdGhSZW1vdmVFbXB0eU5vZGVzID1cbiAgICAob3B0aW9uczogeyB0eXBlOiBzdHJpbmcgfCBzdHJpbmdbXSB9KSA9PlxuICAgIDxUIGV4dGVuZHMgVGhlRWRpdG9yPihlZGl0b3I6IFQpID0+IHtcbiAgICAgICAgY29uc3QgdHlwZXMgPSBjYXN0QXJyYXkob3B0aW9ucy50eXBlKTtcblxuICAgICAgICBjb25zdCB7IG5vcm1hbGl6ZU5vZGUgfSA9IGVkaXRvcjtcblxuICAgICAgICBlZGl0b3Iubm9ybWFsaXplTm9kZSA9IChbbm9kZSwgcGF0aF06IE5vZGVFbnRyeTxFbGVtZW50PikgPT4ge1xuICAgICAgICAgICAgaWYgKG5vZGUudHlwZSAmJiB0eXBlcy5pbmNsdWRlcyhub2RlLnR5cGUgYXMgc3RyaW5nKSAmJiBOb2RlLnN0cmluZyhub2RlKSA9PT0gJycpIHtcbiAgICAgICAgICAgICAgICBUcmFuc2Zvcm1zLnJlbW92ZU5vZGVzKGVkaXRvciwgeyBhdDogcGF0aCB9KTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIG5vcm1hbGl6ZU5vZGUoW25vZGUsIHBhdGhdKTtcbiAgICAgICAgfTtcblxuICAgICAgICByZXR1cm4gZWRpdG9yO1xuICAgIH07XG4iXX0=
@@ -1,25 +1,34 @@
1
1
  import { __rest } from "tslib";
2
2
  import { Path, Element } from 'slate';
3
+ import { PluginKeys } from '../../interfaces';
3
4
  import { ElementKinds } from '../../constants';
5
+ import { createPluginFactory, getPluginOptions } from '../../core';
4
6
  import * as TheQueries from '../../queries';
5
- export const withTrailingNode = (_a = {}) => {
6
- var { type = ElementKinds.paragraph, level = 1 } = _a, query = __rest(_a, ["type", "level"]);
7
- return (editor) => {
8
- const { normalizeNode } = editor;
9
- editor.normalizeNode = ([currentNode, currentPath]) => {
10
- if (!currentPath.length) {
11
- const entry = TheQueries.getLastNode(editor, level);
12
- const [lastNode, lastPath] = entry;
13
- if (Element.isElement(lastNode) && lastNode.type !== type && TheQueries.isNodeType(entry, query)) {
14
- editor.insertNodes({
15
- type,
16
- children: [{ text: '' }]
17
- }, { at: Path.next(lastPath) });
18
- }
7
+ export const withTrailingNode = (editor) => {
8
+ const { normalizeNode } = editor;
9
+ const options = getPluginOptions(editor, PluginKeys.trailingNode);
10
+ const { type, level } = options, query = __rest(options, ["type", "level"]);
11
+ editor.normalizeNode = ([currentNode, currentPath]) => {
12
+ if (!currentPath.length) {
13
+ const entry = TheQueries.getLastNode(editor, level);
14
+ const [lastNode, lastPath] = entry;
15
+ if (Element.isElement(lastNode) && lastNode.type !== type && TheQueries.isNodeType(entry, query)) {
16
+ editor.insertNodes({
17
+ type,
18
+ children: [{ text: '' }]
19
+ }, { at: Path.next(lastPath) });
19
20
  }
20
- return normalizeNode([currentNode, currentPath]);
21
- };
22
- return editor;
21
+ }
22
+ return normalizeNode([currentNode, currentPath]);
23
23
  };
24
+ return editor;
24
25
  };
25
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhaWxpbmctbm9kZS5wbHVnaW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9zcmMvcGx1Z2lucy9ub3JtYWxpemVycy90cmFpbGluZy1ub2RlLnBsdWdpbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFVLElBQUksRUFBRSxPQUFPLEVBQVEsTUFBTSxPQUFPLENBQUM7QUFFcEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRS9DLE9BQU8sS0FBSyxVQUFVLE1BQU0sZUFBZSxDQUFDO0FBUTVDLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUN6QixDQUFDLEtBQTJFLEVBQUUsRUFBRSxFQUFFO1FBQWpGLEVBQUUsSUFBSSxHQUFHLFlBQVksQ0FBQyxTQUFTLEVBQUUsS0FBSyxHQUFHLENBQUMsT0FBbUMsRUFBOUIsS0FBSyxjQUFwRCxpQkFBc0QsQ0FBRjtJQUNyRCxPQUFBLENBQXFDLE1BQVMsRUFBRSxFQUFFO1FBQzlDLE1BQU0sRUFBRSxhQUFhLEVBQUUsR0FBRyxNQUFNLENBQUM7UUFFakMsTUFBTSxDQUFDLGFBQWEsR0FBRyxDQUFDLENBQUMsV0FBVyxFQUFFLFdBQVcsQ0FBQyxFQUFFLEVBQUU7WUFDbEQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEVBQUU7Z0JBQ3JCLE1BQU0sS0FBSyxHQUFHLFVBQVUsQ0FBQyxXQUFXLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxDQUFDO2dCQUNwRCxNQUFNLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxHQUFHLEtBQUssQ0FBQztnQkFFbkMsSUFBSSxPQUFPLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxJQUFJLFFBQVEsQ0FBQyxJQUFJLEtBQUssSUFBSSxJQUFJLFVBQVUsQ0FBQyxVQUFVLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxFQUFFO29CQUM5RixNQUFNLENBQUMsV0FBVyxDQUNkO3dCQUNJLElBQUk7d0JBQ0osUUFBUSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUM7cUJBQ25CLEVBQ1QsRUFBRSxFQUFFLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUM5QixDQUFDO2lCQUNMO2FBQ0o7WUFFRCxPQUFPLGFBQWEsQ0FBQyxDQUFDLFdBQVcsRUFBRSxXQUFXLENBQUMsQ0FBQyxDQUFDO1FBQ3JELENBQUMsQ0FBQztRQUVGLE9BQU8sTUFBTSxDQUFDO0lBQ2xCLENBQUMsQ0FBQTtDQUFBLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFZGl0b3IsIFBhdGgsIEVsZW1lbnQsIE5vZGUgfSBmcm9tICdzbGF0ZSc7XG5pbXBvcnQgeyBRdWVyeU9wdGlvbnMgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IEVsZW1lbnRLaW5kcyB9IGZyb20gJy4uLy4uL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBUcmFuc2Zvcm1FZGl0b3IgfSBmcm9tICcuLi9jb21tb24vdHJhbnNmb3Jtcy5wbHVnaW4nO1xuaW1wb3J0ICogYXMgVGhlUXVlcmllcyBmcm9tICcuLi8uLi9xdWVyaWVzJztcbmltcG9ydCB7IEN1c3RvbUVsZW1lbnRLaW5kcyB9IGZyb20gJy4uLy4uL2N1c3RvbS10eXBlcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgV2l0aFRyYWlsaW5nTm9kZSBleHRlbmRzIFF1ZXJ5T3B0aW9ucyB7XG4gICAgdHlwZT86IEN1c3RvbUVsZW1lbnRLaW5kcztcbiAgICBsZXZlbD86IG51bWJlcjtcbn1cblxuZXhwb3J0IGNvbnN0IHdpdGhUcmFpbGluZ05vZGUgPVxuICAgICh7IHR5cGUgPSBFbGVtZW50S2luZHMucGFyYWdyYXBoLCBsZXZlbCA9IDEsIC4uLnF1ZXJ5IH06IFdpdGhUcmFpbGluZ05vZGUgPSB7fSkgPT5cbiAgICA8VCBleHRlbmRzIEVkaXRvciAmIFRyYW5zZm9ybUVkaXRvcj4oZWRpdG9yOiBUKSA9PiB7XG4gICAgICAgIGNvbnN0IHsgbm9ybWFsaXplTm9kZSB9ID0gZWRpdG9yO1xuXG4gICAgICAgIGVkaXRvci5ub3JtYWxpemVOb2RlID0gKFtjdXJyZW50Tm9kZSwgY3VycmVudFBhdGhdKSA9PiB7XG4gICAgICAgICAgICBpZiAoIWN1cnJlbnRQYXRoLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGVudHJ5ID0gVGhlUXVlcmllcy5nZXRMYXN0Tm9kZShlZGl0b3IsIGxldmVsKTtcbiAgICAgICAgICAgICAgICBjb25zdCBbbGFzdE5vZGUsIGxhc3RQYXRoXSA9IGVudHJ5O1xuXG4gICAgICAgICAgICAgICAgaWYgKEVsZW1lbnQuaXNFbGVtZW50KGxhc3ROb2RlKSAmJiBsYXN0Tm9kZS50eXBlICE9PSB0eXBlICYmIFRoZVF1ZXJpZXMuaXNOb2RlVHlwZShlbnRyeSwgcXVlcnkpKSB7XG4gICAgICAgICAgICAgICAgICAgIGVkaXRvci5pbnNlcnROb2RlcyhcbiAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoaWxkcmVuOiBbeyB0ZXh0OiAnJyB9XVxuICAgICAgICAgICAgICAgICAgICAgICAgfSBhcyBOb2RlLFxuICAgICAgICAgICAgICAgICAgICAgICAgeyBhdDogUGF0aC5uZXh0KGxhc3RQYXRoKSB9XG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gbm9ybWFsaXplTm9kZShbY3VycmVudE5vZGUsIGN1cnJlbnRQYXRoXSk7XG4gICAgICAgIH07XG5cbiAgICAgICAgcmV0dXJuIGVkaXRvcjtcbiAgICB9O1xuIl19
26
+ export const createTrailingNodePlugin = createPluginFactory({
27
+ key: PluginKeys.trailingNode,
28
+ withOverrides: withTrailingNode,
29
+ options: {
30
+ type: ElementKinds.paragraph,
31
+ level: 0
32
+ }
33
+ });
34
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhaWxpbmctbm9kZS5wbHVnaW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9zcmMvcGx1Z2lucy9ub3JtYWxpemVycy90cmFpbGluZy1ub2RlLnBsdWdpbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFVLElBQUksRUFBRSxPQUFPLEVBQVEsTUFBTSxPQUFPLENBQUM7QUFDcEQsT0FBTyxFQUFFLFVBQVUsRUFBZ0IsTUFBTSxrQkFBa0IsQ0FBQztBQUM1RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFHL0MsT0FBTyxFQUFFLG1CQUFtQixFQUFFLGdCQUFnQixFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ25FLE9BQU8sS0FBSyxVQUFVLE1BQU0sZUFBZSxDQUFDO0FBTzVDLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLENBQXFDLE1BQVMsRUFBRSxFQUFFO0lBQzlFLE1BQU0sRUFBRSxhQUFhLEVBQUUsR0FBRyxNQUFNLENBQUM7SUFFakMsTUFBTSxPQUFPLEdBQUcsZ0JBQWdCLENBQW1CLE1BQU0sRUFBRSxVQUFVLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDcEYsTUFBTSxFQUFFLElBQUksRUFBRSxLQUFLLEtBQWUsT0FBTyxFQUFqQixLQUFLLFVBQUssT0FBTyxFQUFuQyxpQkFBeUIsQ0FBVSxDQUFDO0lBRTFDLE1BQU0sQ0FBQyxhQUFhLEdBQUcsQ0FBQyxDQUFDLFdBQVcsRUFBRSxXQUFXLENBQUMsRUFBRSxFQUFFO1FBQ2xELElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxFQUFFO1lBQ3JCLE1BQU0sS0FBSyxHQUFHLFVBQVUsQ0FBQyxXQUFXLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQ3BELE1BQU0sQ0FBQyxRQUFRLEVBQUUsUUFBUSxDQUFDLEdBQUcsS0FBSyxDQUFDO1lBRW5DLElBQUksT0FBTyxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsSUFBSSxRQUFRLENBQUMsSUFBSSxLQUFLLElBQUksSUFBSSxVQUFVLENBQUMsVUFBVSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsRUFBRTtnQkFDOUYsTUFBTSxDQUFDLFdBQVcsQ0FDZDtvQkFDSSxJQUFJO29CQUNKLFFBQVEsRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDO2lCQUNuQixFQUNULEVBQUUsRUFBRSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FDOUIsQ0FBQzthQUNMO1NBQ0o7UUFFRCxPQUFPLGFBQWEsQ0FBQyxDQUFDLFdBQVcsRUFBRSxXQUFXLENBQUMsQ0FBQyxDQUFDO0lBQ3JELENBQUMsQ0FBQztJQUVGLE9BQU8sTUFBTSxDQUFDO0FBQ2xCLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLHdCQUF3QixHQUFHLG1CQUFtQixDQUFDO0lBQ3hELEdBQUcsRUFBRSxVQUFVLENBQUMsWUFBWTtJQUM1QixhQUFhLEVBQUUsZ0JBQWdCO0lBQy9CLE9BQU8sRUFBRTtRQUNMLElBQUksRUFBRSxZQUFZLENBQUMsU0FBUztRQUM1QixLQUFLLEVBQUUsQ0FBQztLQUNYO0NBQ0osQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRWRpdG9yLCBQYXRoLCBFbGVtZW50LCBOb2RlIH0gZnJvbSAnc2xhdGUnO1xuaW1wb3J0IHsgUGx1Z2luS2V5cywgUXVlcnlPcHRpb25zIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBFbGVtZW50S2luZHMgfSBmcm9tICcuLi8uLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgVHJhbnNmb3JtRWRpdG9yIH0gZnJvbSAnLi4vY29tbW9uL3RyYW5zZm9ybXMucGx1Z2luJztcbmltcG9ydCB7IEN1c3RvbUVsZW1lbnRLaW5kcyB9IGZyb20gJy4uLy4uL2N1c3RvbS10eXBlcyc7XG5pbXBvcnQgeyBjcmVhdGVQbHVnaW5GYWN0b3J5LCBnZXRQbHVnaW5PcHRpb25zIH0gZnJvbSAnLi4vLi4vY29yZSc7XG5pbXBvcnQgKiBhcyBUaGVRdWVyaWVzIGZyb20gJy4uLy4uL3F1ZXJpZXMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFdpdGhUcmFpbGluZ05vZGUgZXh0ZW5kcyBRdWVyeU9wdGlvbnMge1xuICAgIHR5cGU/OiBDdXN0b21FbGVtZW50S2luZHM7XG4gICAgbGV2ZWw/OiBudW1iZXI7XG59XG5cbmV4cG9ydCBjb25zdCB3aXRoVHJhaWxpbmdOb2RlID0gPFQgZXh0ZW5kcyBFZGl0b3IgJiBUcmFuc2Zvcm1FZGl0b3I+KGVkaXRvcjogVCkgPT4ge1xuICAgIGNvbnN0IHsgbm9ybWFsaXplTm9kZSB9ID0gZWRpdG9yO1xuXG4gICAgY29uc3Qgb3B0aW9ucyA9IGdldFBsdWdpbk9wdGlvbnM8V2l0aFRyYWlsaW5nTm9kZT4oZWRpdG9yLCBQbHVnaW5LZXlzLnRyYWlsaW5nTm9kZSk7XG4gICAgY29uc3QgeyB0eXBlLCBsZXZlbCwgLi4ucXVlcnkgfSA9IG9wdGlvbnM7XG5cbiAgICBlZGl0b3Iubm9ybWFsaXplTm9kZSA9IChbY3VycmVudE5vZGUsIGN1cnJlbnRQYXRoXSkgPT4ge1xuICAgICAgICBpZiAoIWN1cnJlbnRQYXRoLmxlbmd0aCkge1xuICAgICAgICAgICAgY29uc3QgZW50cnkgPSBUaGVRdWVyaWVzLmdldExhc3ROb2RlKGVkaXRvciwgbGV2ZWwpO1xuICAgICAgICAgICAgY29uc3QgW2xhc3ROb2RlLCBsYXN0UGF0aF0gPSBlbnRyeTtcblxuICAgICAgICAgICAgaWYgKEVsZW1lbnQuaXNFbGVtZW50KGxhc3ROb2RlKSAmJiBsYXN0Tm9kZS50eXBlICE9PSB0eXBlICYmIFRoZVF1ZXJpZXMuaXNOb2RlVHlwZShlbnRyeSwgcXVlcnkpKSB7XG4gICAgICAgICAgICAgICAgZWRpdG9yLmluc2VydE5vZGVzKFxuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlLFxuICAgICAgICAgICAgICAgICAgICAgICAgY2hpbGRyZW46IFt7IHRleHQ6ICcnIH1dXG4gICAgICAgICAgICAgICAgICAgIH0gYXMgTm9kZSxcbiAgICAgICAgICAgICAgICAgICAgeyBhdDogUGF0aC5uZXh0KGxhc3RQYXRoKSB9XG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBub3JtYWxpemVOb2RlKFtjdXJyZW50Tm9kZSwgY3VycmVudFBhdGhdKTtcbiAgICB9O1xuXG4gICAgcmV0dXJuIGVkaXRvcjtcbn07XG5cbmV4cG9ydCBjb25zdCBjcmVhdGVUcmFpbGluZ05vZGVQbHVnaW4gPSBjcmVhdGVQbHVnaW5GYWN0b3J5KHtcbiAgICBrZXk6IFBsdWdpbktleXMudHJhaWxpbmdOb2RlLFxuICAgIHdpdGhPdmVycmlkZXM6IHdpdGhUcmFpbGluZ05vZGUsXG4gICAgb3B0aW9uczoge1xuICAgICAgICB0eXBlOiBFbGVtZW50S2luZHMucGFyYWdyYXBoLFxuICAgICAgICBsZXZlbDogMFxuICAgIH1cbn0pO1xuIl19
@@ -1,10 +1,13 @@
1
1
  import { take, skip, filter } from 'rxjs/operators';
2
- import { Range } from 'slate';
2
+ import { Editor, Range } from 'slate';
3
3
  import { HistoryEditor } from 'slate-history';
4
4
  import { EDITOR_TO_ELEMENT } from 'slate-angular';
5
- import { TheEditor } from '../../interfaces';
5
+ import { PluginKeys, TheEditor } from '../../interfaces';
6
6
  import { TheContextService } from '../../services/context.service';
7
- import { MarkProps } from '../../constants/node-types';
7
+ import { MarkProps, ToolbarActionTypes } from '../../constants';
8
+ import { createPluginFactory } from '../../core';
9
+ import { CONTROL_KEY } from '../../utils';
10
+ import { TableEditor } from '../table/table.editor';
8
11
  import * as TheQueries from '../../queries';
9
12
  import * as TheTransforms from '../../transforms';
10
13
  export const PaintFormatEditor = {
@@ -64,4 +67,57 @@ export const PaintFormatEditor = {
64
67
  editor.onChange();
65
68
  }
66
69
  };
67
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFpbnQtZm9ybWF0LmVkaXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3NyYy9wbHVnaW5zL3BhaW50LWZvcm1hdC9wYWludC1mb3JtYXQuZWRpdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxPQUFPLENBQUM7QUFDOUIsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN2RCxPQUFPLEtBQUssVUFBVSxNQUFNLGVBQWUsQ0FBQztBQUM1QyxPQUFPLEtBQUssYUFBYSxNQUFNLGtCQUFrQixDQUFDO0FBRWxELE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHO0lBQzdCLFdBQVcsQ0FBQyxNQUFpQjtRQUN6QixNQUFNLGNBQWMsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQzlELE1BQU0sR0FBRyxHQUFHLEVBQUUsQ0FBQztRQUNmLEtBQUssTUFBTSxHQUFHLElBQUksU0FBUyxFQUFFO1lBQ3pCLE1BQU0sQ0FBQyxHQUFHLGNBQWMsQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDdEQsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsSUFBSSxJQUFJLENBQUM7U0FDeEI7UUFDRCxNQUFNLEtBQUssR0FBRyxVQUFVLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzdDLElBQUksS0FBSyxJQUFJLEtBQUssQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxFQUFFO1lBQzlDLHVDQUF1QztZQUN2QyxhQUFhLENBQUMsYUFBYSxDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUU7Z0JBQ3JDLE1BQU0sSUFBSSxHQUFHLFNBQVMsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxDQUFDO2dCQUMvQyxhQUFhLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDOUMsQ0FBQyxDQUFDLENBQUM7U0FDTjthQUFNO1lBQ0gsYUFBYSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDLENBQUM7U0FDdkM7UUFDRCxpQkFBaUIsQ0FBQyx1QkFBdUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUN0RCxDQUFDO0lBQ0QsUUFBUSxDQUFDLE1BQWlCO1FBQ3RCLE1BQU0sY0FBYyxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDOUQsTUFBTSxHQUFHLEdBQUcsY0FBYyxDQUFDLGlCQUFpQixDQUFDLFFBQVEsQ0FBQztRQUN0RCxPQUFPLEdBQUcsQ0FBQztJQUNmLENBQUM7SUFDRCxpQkFBaUIsQ0FBQyxNQUFpQjtRQUMvQixNQUFNLGNBQWMsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQzlELElBQUksY0FBYyxDQUFDLGlCQUFpQixDQUFDLFFBQVEsRUFBRTtZQUMzQyxPQUFPLGlCQUFpQixDQUFDLHVCQUF1QixDQUFDLE1BQU0sQ0FBQyxDQUFDO1NBQzVEO1FBQ0QsY0FBYyxDQUFDLGlCQUFpQixHQUFHO1lBQy9CLFFBQVEsRUFBRSxJQUFJO1lBQ2QsS0FBSyxFQUFFLFVBQVUsQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLENBQUM7U0FDOUMsQ0FBQztRQUNGLE1BQU0sT0FBTyxHQUFHLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUM5QyxPQUFPLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUN2QyxjQUFjLENBQUMsVUFBVTthQUNwQixJQUFJLENBQ0QsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUNQLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLE1BQWlCLENBQUMsQ0FBQyxFQUMxRCxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQ1Y7YUFDQSxTQUFTLENBQUMsQ0FBQyxLQUFpQixFQUFFLEVBQUU7WUFDN0IsSUFBSSxjQUFjLENBQUMsaUJBQWlCLENBQUMsUUFBUSxFQUFFO2dCQUMzQyxpQkFBaUIsQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUM7YUFDekM7UUFDTCxDQUFDLENBQUMsQ0FBQztRQUNQLE1BQU0sQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBQ0QsdUJBQXVCLENBQUMsTUFBaUI7UUFDckMsTUFBTSxjQUFjLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUM5RCxjQUFjLENBQUMsaUJBQWlCLEdBQUc7WUFDL0IsUUFBUSxFQUFFLEtBQUs7WUFDZixLQUFLLEVBQUUsRUFBRTtTQUNaLENBQUM7UUFDRixNQUFNLE9BQU8sR0FBRyxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDOUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDMUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ3RCLENBQUM7Q0FDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdGFrZSwgc2tpcCwgZmlsdGVyIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgUmFuZ2UgfSBmcm9tICdzbGF0ZSc7XG5pbXBvcnQgeyBIaXN0b3J5RWRpdG9yIH0gZnJvbSAnc2xhdGUtaGlzdG9yeSc7XG5pbXBvcnQgeyBFRElUT1JfVE9fRUxFTUVOVCB9IGZyb20gJ3NsYXRlLWFuZ3VsYXInO1xuaW1wb3J0IHsgVGhlRWRpdG9yIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBUaGVDb250ZXh0U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2NvbnRleHQuc2VydmljZSc7XG5pbXBvcnQgeyBNYXJrUHJvcHMgfSBmcm9tICcuLi8uLi9jb25zdGFudHMvbm9kZS10eXBlcyc7XG5pbXBvcnQgKiBhcyBUaGVRdWVyaWVzIGZyb20gJy4uLy4uL3F1ZXJpZXMnO1xuaW1wb3J0ICogYXMgVGhlVHJhbnNmb3JtcyBmcm9tICcuLi8uLi90cmFuc2Zvcm1zJztcblxuZXhwb3J0IGNvbnN0IFBhaW50Rm9ybWF0RWRpdG9yID0ge1xuICAgIGZvcm1hdEJydXNoKGVkaXRvcjogVGhlRWRpdG9yKSB7XG4gICAgICAgIGNvbnN0IGNvbnRleHRTZXJ2aWNlID0gZWRpdG9yLmluamVjdG9yLmdldChUaGVDb250ZXh0U2VydmljZSk7XG4gICAgICAgIGNvbnN0IG9iaiA9IHt9O1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBvZiBNYXJrUHJvcHMpIHtcbiAgICAgICAgICAgIGNvbnN0IGsgPSBjb250ZXh0U2VydmljZS5wYWludEZvcm1hdFN0YXR1cy5tYXJrc1trZXldO1xuICAgICAgICAgICAgb2JqW2tleV0gPSBrIHx8IG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgYmxvY2sgPSBUaGVRdWVyaWVzLmFuY2hvckJsb2NrKGVkaXRvcik7XG4gICAgICAgIGlmIChibG9jayAmJiBSYW5nZS5pc0NvbGxhcHNlZChlZGl0b3Iuc2VsZWN0aW9uKSkge1xuICAgICAgICAgICAgLy8gVE9ETzo6IOWcqOaSpOmUgOaXtuaciWJ1Zywg5Li05pe25L2/55Sod2l0aG91dFNhdmluZ+WkhOeQhlxuICAgICAgICAgICAgSGlzdG9yeUVkaXRvci53aXRob3V0U2F2aW5nKGVkaXRvciwgKCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHBhdGggPSBUaGVFZGl0b3IuZmluZFBhdGgoZWRpdG9yLCBibG9jayk7XG4gICAgICAgICAgICAgICAgVGhlVHJhbnNmb3Jtcy5zZXRNYXJrcyhlZGl0b3IsIG9iaiwgcGF0aCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIFRoZVRyYW5zZm9ybXMuc2V0TWFya3MoZWRpdG9yLCBvYmopO1xuICAgICAgICB9XG4gICAgICAgIFBhaW50Rm9ybWF0RWRpdG9yLmNhbmNlbEZvcm1hdEJydXNoU3RhdHVzKGVkaXRvcik7XG4gICAgfSxcbiAgICBpc0FjdGl2ZShlZGl0b3I6IFRoZUVkaXRvcikge1xuICAgICAgICBjb25zdCBjb250ZXh0U2VydmljZSA9IGVkaXRvci5pbmplY3Rvci5nZXQoVGhlQ29udGV4dFNlcnZpY2UpO1xuICAgICAgICBjb25zdCByZXMgPSBjb250ZXh0U2VydmljZS5wYWludEZvcm1hdFN0YXR1cy5pc0FjdGl2ZTtcbiAgICAgICAgcmV0dXJuIHJlcztcbiAgICB9LFxuICAgIGVuYWJsZUZvcm1hdEJydXNoKGVkaXRvcjogVGhlRWRpdG9yKSB7XG4gICAgICAgIGNvbnN0IGNvbnRleHRTZXJ2aWNlID0gZWRpdG9yLmluamVjdG9yLmdldChUaGVDb250ZXh0U2VydmljZSk7XG4gICAgICAgIGlmIChjb250ZXh0U2VydmljZS5wYWludEZvcm1hdFN0YXR1cy5pc0FjdGl2ZSkge1xuICAgICAgICAgICAgcmV0dXJuIFBhaW50Rm9ybWF0RWRpdG9yLmNhbmNlbEZvcm1hdEJydXNoU3RhdHVzKGVkaXRvcik7XG4gICAgICAgIH1cbiAgICAgICAgY29udGV4dFNlcnZpY2UucGFpbnRGb3JtYXRTdGF0dXMgPSB7XG4gICAgICAgICAgICBpc0FjdGl2ZTogdHJ1ZSxcbiAgICAgICAgICAgIG1hcmtzOiBUaGVRdWVyaWVzLmdldFNlbGVjdGlvbk1hcmtzKGVkaXRvcilcbiAgICAgICAgfTtcbiAgICAgICAgY29uc3QgZWxlbWVudCA9IEVESVRPUl9UT19FTEVNRU5ULmdldChlZGl0b3IpO1xuICAgICAgICBlbGVtZW50LmNsYXNzTGlzdC5hZGQoJ3BvaW50ZXItcGFpbnQnKTtcbiAgICAgICAgY29udGV4dFNlcnZpY2Uub25Nb3VzZVVwJFxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgc2tpcCgxKSxcbiAgICAgICAgICAgICAgICBmaWx0ZXIoZXZlbnQgPT4gZWxlbWVudC5jb250YWlucyhldmVudC50YXJnZXQgYXMgRWxlbWVudCkpLFxuICAgICAgICAgICAgICAgIHRha2UoMSlcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKGV2ZW50OiBNb3VzZUV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGNvbnRleHRTZXJ2aWNlLnBhaW50Rm9ybWF0U3RhdHVzLmlzQWN0aXZlKSB7XG4gICAgICAgICAgICAgICAgICAgIFBhaW50Rm9ybWF0RWRpdG9yLmZvcm1hdEJydXNoKGVkaXRvcik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIGVkaXRvci5vbkNoYW5nZSgpO1xuICAgIH0sXG4gICAgY2FuY2VsRm9ybWF0QnJ1c2hTdGF0dXMoZWRpdG9yOiBUaGVFZGl0b3IpIHtcbiAgICAgICAgY29uc3QgY29udGV4dFNlcnZpY2UgPSBlZGl0b3IuaW5qZWN0b3IuZ2V0KFRoZUNvbnRleHRTZXJ2aWNlKTtcbiAgICAgICAgY29udGV4dFNlcnZpY2UucGFpbnRGb3JtYXRTdGF0dXMgPSB7XG4gICAgICAgICAgICBpc0FjdGl2ZTogZmFsc2UsXG4gICAgICAgICAgICBtYXJrczoge31cbiAgICAgICAgfTtcbiAgICAgICAgY29uc3QgZWxlbWVudCA9IEVESVRPUl9UT19FTEVNRU5ULmdldChlZGl0b3IpO1xuICAgICAgICBlbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoJ3BvaW50ZXItcGFpbnQnKTtcbiAgICAgICAgZWRpdG9yLm9uQ2hhbmdlKCk7XG4gICAgfVxufTtcbiJdfQ==
70
+ export const createPaintFormatPlugin = createPluginFactory({
71
+ key: PluginKeys.paintFormat,
72
+ toolbarItems: [
73
+ {
74
+ key: ToolbarActionTypes.undo,
75
+ icon: 'undo',
76
+ name: '撤销',
77
+ shortcutKey: `${CONTROL_KEY}+Z`,
78
+ execute: (editor) => editor.undo()
79
+ },
80
+ {
81
+ key: ToolbarActionTypes.redo,
82
+ icon: 'redo',
83
+ name: '重做',
84
+ shortcutKey: `${CONTROL_KEY}+Shift+Z`,
85
+ execute: (editor) => editor.redo()
86
+ },
87
+ {
88
+ key: ToolbarActionTypes.paintformat,
89
+ icon: 'paintformat',
90
+ name: '格式刷',
91
+ execute: PaintFormatEditor.enableFormatBrush,
92
+ active: PaintFormatEditor.isActive
93
+ },
94
+ {
95
+ key: ToolbarActionTypes.clean,
96
+ icon: 'clean',
97
+ name: '清除格式',
98
+ execute: (editor) => {
99
+ const { selection } = editor;
100
+ if (!selection) {
101
+ return;
102
+ }
103
+ if (TableEditor.clearMark(editor)) {
104
+ return;
105
+ }
106
+ if (Range.isCollapsed(selection)) {
107
+ const marks = Editor.marks(editor);
108
+ for (const key of Object.keys(marks)) {
109
+ Editor.removeMark(editor, key);
110
+ }
111
+ }
112
+ else {
113
+ const unsetMarks = {};
114
+ MarkProps.forEach(key => {
115
+ unsetMarks[key] = null;
116
+ });
117
+ TheTransforms.setMarks(editor, unsetMarks);
118
+ }
119
+ }
120
+ }
121
+ ]
122
+ });
123
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFpbnQtZm9ybWF0LmVkaXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3NyYy9wbHVnaW5zL3BhaW50LWZvcm1hdC9wYWludC1mb3JtYXQuZWRpdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sT0FBTyxDQUFDO0FBQ3RDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2xELE9BQU8sRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDekQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDbkUsT0FBTyxFQUFFLFNBQVMsRUFBYSxrQkFBa0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUNqRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzFDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNwRCxPQUFPLEtBQUssVUFBVSxNQUFNLGVBQWUsQ0FBQztBQUM1QyxPQUFPLEtBQUssYUFBYSxNQUFNLGtCQUFrQixDQUFDO0FBRWxELE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHO0lBQzdCLFdBQVcsQ0FBQyxNQUFpQjtRQUN6QixNQUFNLGNBQWMsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQzlELE1BQU0sR0FBRyxHQUFHLEVBQUUsQ0FBQztRQUNmLEtBQUssTUFBTSxHQUFHLElBQUks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T0FBTztpQkFDVjtnQkFFRCxJQUFJLEtBQUssQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLEVBQUU7b0JBQzlCLE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7b0JBQ25DLEtBQUssTUFBTSxHQUFHLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRTt3QkFDbEMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDLENBQUM7cUJBQ2xDO2lCQUNKO3FCQUFNO29CQUNILE1BQU0sVUFBVSxHQUEyQyxFQUFFLENBQUM7b0JBQzlELFNBQVMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUU7d0JBQ3BCLFVBQVUsQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUM7b0JBQzNCLENBQUMsQ0FBQyxDQUFDO29CQUNILGFBQWEsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLFVBQVUsQ0FBQyxDQUFDO2lCQUM5QztZQUNMLENBQUM7U0FDSjtLQUNKO0NBQ0osQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdGFrZSwgc2tpcCwgZmlsdGVyIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgRWRpdG9yLCBSYW5nZSB9IGZyb20gJ3NsYXRlJztcbmltcG9ydCB7IEhpc3RvcnlFZGl0b3IgfSBmcm9tICdzbGF0ZS1oaXN0b3J5JztcbmltcG9ydCB7IEVESVRPUl9UT19FTEVNRU5UIH0gZnJvbSAnc2xhdGUtYW5ndWxhcic7XG5pbXBvcnQgeyBQbHVnaW5LZXlzLCBUaGVFZGl0b3IgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IFRoZUNvbnRleHRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvY29udGV4dC5zZXJ2aWNlJztcbmltcG9ydCB7IE1hcmtQcm9wcywgTWFya1R5cGVzLCBUb29sYmFyQWN0aW9uVHlwZXMgfSBmcm9tICcuLi8uLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgY3JlYXRlUGx1Z2luRmFjdG9yeSB9IGZyb20gJy4uLy4uL2NvcmUnO1xuaW1wb3J0IHsgQ09OVFJPTF9LRVkgfSBmcm9tICcuLi8uLi91dGlscyc7XG5pbXBvcnQgeyBUYWJsZUVkaXRvciB9IGZyb20gJy4uL3RhYmxlL3RhYmxlLmVkaXRvcic7XG5pbXBvcnQgKiBhcyBUaGVRdWVyaWVzIGZyb20gJy4uLy4uL3F1ZXJpZXMnO1xuaW1wb3J0ICogYXMgVGhlVHJhbnNmb3JtcyBmcm9tICcuLi8uLi90cmFuc2Zvcm1zJztcblxuZXhwb3J0IGNvbnN0IFBhaW50Rm9ybWF0RWRpdG9yID0ge1xuICAgIGZvcm1hdEJydXNoKGVkaXRvcjogVGhlRWRpdG9yKSB7XG4gICAgICAgIGNvbnN0IGNvbnRleHRTZXJ2aWNlID0gZWRpdG9yLmluamVjdG9yLmdldChUaGVDb250ZXh0U2VydmljZSk7XG4gICAgICAgIGNvbnN0IG9iaiA9IHt9O1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBvZiBNYXJrUHJvcHMpIHtcbiAgICAgICAgICAgIGNvbnN0IGsgPSBjb250ZXh0U2VydmljZS5wYWludEZvcm1hdFN0YXR1cy5tYXJrc1trZXldO1xuICAgICAgICAgICAgb2JqW2tleV0gPSBrIHx8IG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgYmxvY2sgPSBUaGVRdWVyaWVzLmFuY2hvckJsb2NrKGVkaXRvcik7XG4gICAgICAgIGlmIChibG9jayAmJiBSYW5nZS5pc0NvbGxhcHNlZChlZGl0b3Iuc2VsZWN0aW9uKSkge1xuICAgICAgICAgICAgLy8gVE9ETzo6IOWcqOaSpOmUgOaXtuaciWJ1Zywg5Li05pe25L2/55Sod2l0aG91dFNhdmluZ+WkhOeQhlxuICAgICAgICAgICAgSGlzdG9yeUVkaXRvci53aXRob3V0U2F2aW5nKGVkaXRvciwgKCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHBhdGggPSBUaGVFZGl0b3IuZmluZFBhdGgoZWRpdG9yLCBibG9jayk7XG4gICAgICAgICAgICAgICAgVGhlVHJhbnNmb3Jtcy5zZXRNYXJrcyhlZGl0b3IsIG9iaiwgcGF0aCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIFRoZVRyYW5zZm9ybXMuc2V0TWFya3MoZWRpdG9yLCBvYmopO1xuICAgICAgICB9XG4gICAgICAgIFBhaW50Rm9ybWF0RWRpdG9yLmNhbmNlbEZvcm1hdEJydXNoU3RhdHVzKGVkaXRvcik7XG4gICAgfSxcbiAgICBpc0FjdGl2ZShlZGl0b3I6IFRoZUVkaXRvcikge1xuICAgICAgICBjb25zdCBjb250ZXh0U2VydmljZSA9IGVkaXRvci5pbmplY3Rvci5nZXQoVGhlQ29udGV4dFNlcnZpY2UpO1xuICAgICAgICBjb25zdCByZXMgPSBjb250ZXh0U2VydmljZS5wYWludEZvcm1hdFN0YXR1cy5pc0FjdGl2ZTtcbiAgICAgICAgcmV0dXJuIHJlcztcbiAgICB9LFxuICAgIGVuYWJsZUZvcm1hdEJydXNoKGVkaXRvcjogVGhlRWRpdG9yKSB7XG4gICAgICAgIGNvbnN0IGNvbnRleHRTZXJ2aWNlID0gZWRpdG9yLmluamVjdG9yLmdldChUaGVDb250ZXh0U2VydmljZSk7XG4gICAgICAgIGlmIChjb250ZXh0U2VydmljZS5wYWludEZvcm1hdFN0YXR1cy5pc0FjdGl2ZSkge1xuICAgICAgICAgICAgcmV0dXJuIFBhaW50Rm9ybWF0RWRpdG9yLmNhbmNlbEZvcm1hdEJydXNoU3RhdHVzKGVkaXRvcik7XG4gICAgICAgIH1cbiAgICAgICAgY29udGV4dFNlcnZpY2UucGFpbnRGb3JtYXRTdGF0dXMgPSB7XG4gICAgICAgICAgICBpc0FjdGl2ZTogdHJ1ZSxcbiAgICAgICAgICAgIG1hcmtzOiBUaGVRdWVyaWVzLmdldFNlbGVjdGlvbk1hcmtzKGVkaXRvcilcbiAgICAgICAgfTtcbiAgICAgICAgY29uc3QgZWxlbWVudCA9IEVESVRPUl9UT19FTEVNRU5ULmdldChlZGl0b3IpO1xuICAgICAgICBlbGVtZW50LmNsYXNzTGlzdC5hZGQoJ3BvaW50ZXItcGFpbnQnKTtcbiAgICAgICAgY29udGV4dFNlcnZpY2Uub25Nb3VzZVVwJFxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgc2tpcCgxKSxcbiAgICAgICAgICAgICAgICBmaWx0ZXIoZXZlbnQgPT4gZWxlbWVudC5jb250YWlucyhldmVudC50YXJnZXQgYXMgRWxlbWVudCkpLFxuICAgICAgICAgICAgICAgIHRha2UoMSlcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKGV2ZW50OiBNb3VzZUV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGNvbnRleHRTZXJ2aWNlLnBhaW50Rm9ybWF0U3RhdHVzLmlzQWN0aXZlKSB7XG4gICAgICAgICAgICAgICAgICAgIFBhaW50Rm9ybWF0RWRpdG9yLmZvcm1hdEJydXNoKGVkaXRvcik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIGVkaXRvci5vbkNoYW5nZSgpO1xuICAgIH0sXG4gICAgY2FuY2VsRm9ybWF0QnJ1c2hTdGF0dXMoZWRpdG9yOiBUaGVFZGl0b3IpIHtcbiAgICAgICAgY29uc3QgY29udGV4dFNlcnZpY2UgPSBlZGl0b3IuaW5qZWN0b3IuZ2V0KFRoZUNvbnRleHRTZXJ2aWNlKTtcbiAgICAgICAgY29udGV4dFNlcnZpY2UucGFpbnRGb3JtYXRTdGF0dXMgPSB7XG4gICAgICAgICAgICBpc0FjdGl2ZTogZmFsc2UsXG4gICAgICAgICAgICBtYXJrczoge31cbiAgICAgICAgfTtcbiAgICAgICAgY29uc3QgZWxlbWVudCA9IEVESVRPUl9UT19FTEVNRU5ULmdldChlZGl0b3IpO1xuICAgICAgICBlbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoJ3BvaW50ZXItcGFpbnQnKTtcbiAgICAgICAgZWRpdG9yLm9uQ2hhbmdlKCk7XG4gICAgfVxufTtcblxuZXhwb3J0IGNvbnN0IGNyZWF0ZVBhaW50Rm9ybWF0UGx1Z2luID0gY3JlYXRlUGx1Z2luRmFjdG9yeSh7XG4gICAga2V5OiBQbHVnaW5LZXlzLnBhaW50Rm9ybWF0LFxuICAgIHRvb2xiYXJJdGVtczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBrZXk6IFRvb2xiYXJBY3Rpb25UeXBlcy51bmRvLFxuICAgICAgICAgICAgaWNvbjogJ3VuZG8nLFxuICAgICAgICAgICAgbmFtZTogJ+aSpOmUgCcsXG4gICAgICAgICAgICBzaG9ydGN1dEtleTogYCR7Q09OVFJPTF9LRVl9K1pgLFxuICAgICAgICAgICAgZXhlY3V0ZTogKGVkaXRvcjogVGhlRWRpdG9yKSA9PiBlZGl0b3IudW5kbygpXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIGtleTogVG9vbGJhckFjdGlvblR5cGVzLnJlZG8sXG4gICAgICAgICAgICBpY29uOiAncmVkbycsXG4gICAgICAgICAgICBuYW1lOiAn6YeN5YGaJyxcbiAgICAgICAgICAgIHNob3J0Y3V0S2V5OiBgJHtDT05UUk9MX0tFWX0rU2hpZnQrWmAsXG4gICAgICAgICAgICBleGVjdXRlOiAoZWRpdG9yOiBUaGVFZGl0b3IpID0+IGVkaXRvci5yZWRvKClcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAga2V5OiBUb29sYmFyQWN0aW9uVHlwZXMucGFpbnRmb3JtYXQsXG4gICAgICAgICAgICBpY29uOiAncGFpbnRmb3JtYXQnLFxuICAgICAgICAgICAgbmFtZTogJ+agvOW8j+WItycsXG4gICAgICAgICAgICBleGVjdXRlOiBQYWludEZvcm1hdEVkaXRvci5lbmFibGVGb3JtYXRCcnVzaCxcbiAgICAgICAgICAgIGFjdGl2ZTogUGFpbnRGb3JtYXRFZGl0b3IuaXNBY3RpdmVcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAga2V5OiBUb29sYmFyQWN0aW9uVHlwZXMuY2xlYW4sXG4gICAgICAgICAgICBpY29uOiAnY2xlYW4nLFxuICAgICAgICAgICAgbmFtZTogJ+a4hemZpOagvOW8jycsXG4gICAgICAgICAgICBleGVjdXRlOiAoZWRpdG9yOiBUaGVFZGl0b3IpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCB7IHNlbGVjdGlvbiB9ID0gZWRpdG9yO1xuICAgICAgICAgICAgICAgIGlmICghc2VsZWN0aW9uKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBpZiAoVGFibGVFZGl0b3IuY2xlYXJNYXJrKGVkaXRvcikpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGlmIChSYW5nZS5pc0NvbGxhcHNlZChzZWxlY3Rpb24pKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG1hcmtzID0gRWRpdG9yLm1hcmtzKGVkaXRvcik7XG4gICAgICAgICAgICAgICAgICAgIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKG1hcmtzKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgRWRpdG9yLnJlbW92ZU1hcmsoZWRpdG9yLCBrZXkpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zZXRNYXJrczogeyBba2V5IGluIE1hcmtUeXBlc10/OiBudWxsIHwgc3RyaW5nIH0gPSB7fTtcbiAgICAgICAgICAgICAgICAgICAgTWFya1Byb3BzLmZvckVhY2goa2V5ID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHVuc2V0TWFya3Nba2V5XSA9IG51bGw7XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICBUaGVUcmFuc2Zvcm1zLnNldE1hcmtzKGVkaXRvciwgdW5zZXRNYXJrcyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgXVxufSk7XG4iXX0=