@modusoperandi/licit 1.0.4 → 1.0.7

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 (360) hide show
  1. package/BlockquoteInsertNewLineCommand.js +16 -18
  2. package/BlockquoteInsertNewLineCommand.js.flow +76 -77
  3. package/BlockquoteNodeSpec.js +3 -4
  4. package/BlockquoteNodeSpec.js.flow +29 -30
  5. package/BlockquoteToggleCommand.js +16 -17
  6. package/BlockquoteToggleCommand.js.flow +56 -56
  7. package/BookmarkNodeSpec.js +2 -2
  8. package/BookmarkNodeSpec.js.flow +39 -39
  9. package/BulletListNodeSpec.js.flow +61 -61
  10. package/CZIProseMirror.js.flow +90 -90
  11. package/CodeBlockCommand.js +17 -18
  12. package/CodeBlockCommand.js.flow +65 -65
  13. package/CodeBlockNodeSpec.js.flow +24 -24
  14. package/CodeMarkSpec.js.flow +14 -14
  15. package/ContentPlaceholderPlugin.js +20 -21
  16. package/ContentPlaceholderPlugin.js.flow +185 -187
  17. package/CursorPlaceholderPlugin.js +11 -11
  18. package/CursorPlaceholderPlugin.js.flow +115 -115
  19. package/DocLayoutCommand.js +18 -21
  20. package/DocLayoutCommand.js.flow +97 -99
  21. package/DocNodeSpec.js.flow +64 -64
  22. package/EMMarkSpec.js.flow +14 -14
  23. package/EditorCommands.js.flow +126 -126
  24. package/EditorKeyMap.js +0 -1
  25. package/EditorKeyMap.js.flow +185 -187
  26. package/EditorMarks.js +2 -2
  27. package/EditorMarks.js.flow +71 -71
  28. package/EditorNodes.js +2 -3
  29. package/EditorNodes.js.flow +58 -59
  30. package/EditorPageLayoutPlugin.js +10 -10
  31. package/EditorPageLayoutPlugin.js.flow +67 -67
  32. package/EditorPlugins.js.flow +8 -8
  33. package/EditorSchema.js.flow +12 -12
  34. package/EditorState.js.flow +7 -7
  35. package/FontSizeMarkSpec.js.flow +49 -49
  36. package/FontTypeMarkSpec.js +1 -1
  37. package/FontTypeMarkSpec.js.flow +80 -80
  38. package/HTMLMutator.js +6 -7
  39. package/HTMLMutator.js.flow +59 -59
  40. package/HardBreakNodeSpec.js.flow +15 -15
  41. package/HeadingNodeSpec.js +3 -13
  42. package/HeadingNodeSpec.js.flow +42 -52
  43. package/HistoryRedoCommand.js +15 -16
  44. package/HistoryRedoCommand.js.flow +41 -41
  45. package/HistoryUndoCommand.js +15 -16
  46. package/HistoryUndoCommand.js.flow +41 -41
  47. package/HorizontalRuleCommand.js +15 -16
  48. package/HorizontalRuleCommand.js.flow +71 -71
  49. package/HorizontalRuleNodeSpec.js.flow +39 -39
  50. package/ImageUploadPlaceholderPlugin.js +15 -17
  51. package/ImageUploadPlaceholderPlugin.js.flow +190 -192
  52. package/LinkMarkSpec.js +6 -1
  53. package/LinkMarkSpec.js.flow +37 -32
  54. package/LinkSetURLCommand.js +130 -60
  55. package/LinkSetURLCommand.js.flow +141 -117
  56. package/LinkTooltipPlugin.js +122 -34
  57. package/LinkTooltipPlugin.js.flow +261 -190
  58. package/ListItemInsertNewLineCommand.js +16 -18
  59. package/ListItemInsertNewLineCommand.js.flow +76 -77
  60. package/ListItemMergeCommand.js +24 -24
  61. package/ListItemMergeCommand.js.flow +198 -199
  62. package/ListItemNodeSpec.js.flow +52 -52
  63. package/ListSplitCommand.js +15 -16
  64. package/ListSplitCommand.js.flow +54 -54
  65. package/ListToggleCommand.js +19 -20
  66. package/ListToggleCommand.js.flow +99 -99
  67. package/MarkNames.js.flow +18 -18
  68. package/MarksClearCommand.js +17 -18
  69. package/MarksClearCommand.js.flow +65 -65
  70. package/MathEditCommand.js +17 -19
  71. package/MathEditCommand.js.flow +119 -120
  72. package/MathNodeSpec.js.flow +46 -46
  73. package/NodeNames.js.flow +23 -23
  74. package/OrderedListNodeSpec.js +2 -2
  75. package/OrderedListNodeSpec.js.flow +132 -132
  76. package/ParagraphNodeSpec.js +11 -2
  77. package/ParagraphNodeSpec.js.flow +163 -156
  78. package/ParagraphSpacingCommand.js +21 -23
  79. package/ParagraphSpacingCommand.js.flow +139 -144
  80. package/PrintCommand.js +17 -18
  81. package/PrintCommand.js.flow +53 -53
  82. package/SelectionPlaceholderPlugin.js +11 -11
  83. package/SelectionPlaceholderPlugin.js.flow +131 -131
  84. package/SpacerMarkSpec.js +2 -2
  85. package/SpacerMarkSpec.js.flow +47 -47
  86. package/StrikeMarkSpec.js.flow +21 -21
  87. package/StrongMarkSpec.js.flow +25 -25
  88. package/StyleView.js +5 -7
  89. package/StyleView.js.flow +18 -19
  90. package/TableBackgroundColorCommand.js +34 -23
  91. package/TableBackgroundColorCommand.js.flow +80 -75
  92. package/TableBorderColorCommand.js +34 -23
  93. package/TableBorderColorCommand.js.flow +81 -75
  94. package/TableCellColorCommand.js +20 -21
  95. package/TableCellColorCommand.js.flow +74 -75
  96. package/TableCellMenuPlugin.js +19 -19
  97. package/TableCellMenuPlugin.js.flow +130 -132
  98. package/TableInsertCommand.js +19 -22
  99. package/TableInsertCommand.js.flow +118 -120
  100. package/TableMergeCellsCommand.js +19 -19
  101. package/TableMergeCellsCommand.js.flow +113 -112
  102. package/TableNodesSpecs.js +4 -2
  103. package/TableNodesSpecs.js.flow +80 -78
  104. package/TablePlugins.js.flow +14 -14
  105. package/TableResizePlugin.js +20 -20
  106. package/TableResizePlugin.js.flow +631 -631
  107. package/TextColorMarkSpec.js.flow +35 -35
  108. package/TextHighlightMarkSpec.js.flow +38 -38
  109. package/TextInsertTabSpaceCommand.js +15 -16
  110. package/TextInsertTabSpaceCommand.js.flow +106 -106
  111. package/TextNoWrapMarkSpec.js.flow +14 -14
  112. package/TextNodeSpec.js.flow +7 -7
  113. package/TextSelectionMarkSpec.js.flow +24 -24
  114. package/TextSubMarkSpec.js.flow +20 -20
  115. package/TextSuperMarkSpec.js.flow +20 -20
  116. package/TextUnderlineMarkSpec.js.flow +27 -27
  117. package/Types.js +6 -0
  118. package/Types.js.flow +77 -75
  119. package/WebFontLoader.js +6 -7
  120. package/WebFontLoader.js.flow +22 -22
  121. package/blockQuoteInputRule.js.flow +36 -36
  122. package/bom.xml +17223 -25722
  123. package/browser.js.flow +7 -7
  124. package/buildEditorPlugins.js +6 -7
  125. package/buildEditorPlugins.js.flow +49 -49
  126. package/buildInputRules.js +8 -4
  127. package/buildInputRules.js.flow +85 -81
  128. package/client/CollabConnector.js +20 -20
  129. package/client/CollabConnector.js.flow +90 -90
  130. package/client/EditorConnection.js +10 -9
  131. package/client/EditorConnection.js.flow +324 -323
  132. package/client/Licit.js +78 -115
  133. package/client/Licit.js.flow +611 -643
  134. package/client/Licit.test.js +49 -39
  135. package/client/Licit.test.js.flow +104 -98
  136. package/client/Reporter.js +5 -6
  137. package/client/Reporter.js.flow +37 -37
  138. package/client/SimpleConnector.js +5 -5
  139. package/client/SimpleConnector.js.flow +61 -61
  140. package/client/http.js +0 -6
  141. package/client/http.js.flow +62 -70
  142. package/client/licit.css +12 -12
  143. package/client/throttle.js +8 -2
  144. package/client/throttle.js.flow +27 -27
  145. package/convertFromDOMElement.js +2 -4
  146. package/convertFromDOMElement.js.flow +33 -36
  147. package/convertFromHTML.js +2 -3
  148. package/convertFromHTML.js.flow +15 -17
  149. package/convertFromJSON.js +1 -2
  150. package/convertFromJSON.js.flow +55 -56
  151. package/convertToCSSPTValue.js +6 -10
  152. package/convertToCSSPTValue.js.flow +19 -22
  153. package/convertToJSON.js.flow +7 -7
  154. package/createCommand.js +16 -17
  155. package/createCommand.js.flow +62 -62
  156. package/createEditorKeyMap.js +2 -2
  157. package/createEditorKeyMap.js.flow +94 -94
  158. package/createEmptyEditorState.js +2 -3
  159. package/createEmptyEditorState.js.flow +29 -31
  160. package/createTableResizingPlugin.js +6 -6
  161. package/createTableResizingPlugin.js.flow +86 -86
  162. package/findActionableCell.js.flow +74 -74
  163. package/findActiveMark.js +1 -1
  164. package/findActiveMark.js.flow +32 -32
  165. package/hyphenize.js.flow +17 -17
  166. package/index.d.ts +165 -165
  167. package/index.js.flow +10 -10
  168. package/insertTable.js +0 -3
  169. package/insertTable.js.flow +54 -56
  170. package/isEditorStateEmpty.js.flow +32 -32
  171. package/isTableNode.js.flow +15 -15
  172. package/joinDown.js +1 -3
  173. package/joinDown.js.flow +25 -27
  174. package/joinListNode.js.flow +55 -55
  175. package/joinUp.js +1 -3
  176. package/joinUp.js.flow +37 -39
  177. package/keymaps.js.flow +185 -185
  178. package/lookUpElement.js +2 -1
  179. package/lookUpElement.js.flow +14 -14
  180. package/nodeAt.js.flow +12 -12
  181. package/normalizeHTML.js +3 -1
  182. package/normalizeHTML.js.flow +80 -78
  183. package/package.json +162 -156
  184. package/patchAnchorElements.js +1 -1
  185. package/patchAnchorElements.js.flow +38 -38
  186. package/patchBreakElements.js +3 -2
  187. package/patchBreakElements.js.flow +22 -22
  188. package/patchElementInlineStyles.js +1 -1
  189. package/patchElementInlineStyles.js.flow +92 -92
  190. package/patchListElements.js +4 -4
  191. package/patchListElements.js.flow +276 -276
  192. package/patchMathElements.js +5 -7
  193. package/patchMathElements.js.flow +58 -60
  194. package/patchParagraphElements.js.flow +20 -20
  195. package/patchStyleElements.js +1 -1
  196. package/patchStyleElements.js.flow +197 -196
  197. package/patchTableElements.js +2 -3
  198. package/patchTableElements.js.flow +88 -89
  199. package/rebaseDocWithSteps.js.flow +42 -42
  200. package/sanitizeURL.js +1 -1
  201. package/sanitizeURL.js.flow +13 -13
  202. package/splitListItem.js +3 -3
  203. package/splitListItem.js.flow +191 -191
  204. package/styles.css +19 -19
  205. package/styles0.css +29 -29
  206. package/toClosestFontPtSize.js.flow +22 -22
  207. package/toSafeHTMLDocument.js.flow +9 -9
  208. package/toggleBlockquote.js +4 -5
  209. package/toggleBlockquote.js.flow +101 -108
  210. package/toggleCodeBlock.js +6 -6
  211. package/toggleCodeBlock.js.flow +102 -102
  212. package/ui/AlertInfo.js +15 -16
  213. package/ui/AlertInfo.js.flow +64 -64
  214. package/ui/BookmarkNodeView.js +20 -21
  215. package/ui/BookmarkNodeView.js.flow +66 -66
  216. package/ui/CommandButton.js +15 -16
  217. package/ui/CommandButton.js.flow +68 -68
  218. package/ui/CommandMenu.js +19 -20
  219. package/ui/CommandMenu.js.flow +75 -75
  220. package/ui/CommandMenuButton.js +23 -25
  221. package/ui/CommandMenuButton.js.flow +130 -131
  222. package/ui/CustomEditorView.js +20 -20
  223. package/ui/CustomEditorView.js.flow +29 -28
  224. package/ui/CustomMenu.js +11 -12
  225. package/ui/CustomMenu.js.flow +17 -17
  226. package/ui/CustomMenuItem.js +16 -18
  227. package/ui/CustomMenuItem.js.flow +36 -36
  228. package/ui/CustomNodeView.js +29 -19
  229. package/ui/CustomNodeView.js.flow +207 -200
  230. package/ui/CustomRadioButton.js +18 -21
  231. package/ui/CustomRadioButton.js.flow +64 -65
  232. package/ui/DocLayoutEditor.js +18 -20
  233. package/ui/DocLayoutEditor.js.flow +145 -146
  234. package/ui/Editor.js +30 -28
  235. package/ui/Editor.js.flow +287 -288
  236. package/ui/EditorFrameset.js +13 -14
  237. package/ui/EditorFrameset.js.flow +81 -81
  238. package/ui/EditorToolbar.js +36 -42
  239. package/ui/EditorToolbar.js.flow +199 -218
  240. package/ui/EditorToolbarConfig.js +5 -5
  241. package/ui/EditorToolbarConfig.js.flow +164 -164
  242. package/ui/FontSizeCommandMenuButton.js +14 -15
  243. package/ui/FontSizeCommandMenuButton.js.flow +66 -66
  244. package/ui/FontTypeCommandMenuButton.js +15 -17
  245. package/ui/FontTypeCommandMenuButton.js.flow +60 -61
  246. package/ui/Frag.js +11 -12
  247. package/ui/Frag.js.flow +13 -13
  248. package/ui/Icon.js +21 -24
  249. package/ui/Icon.js.flow +89 -89
  250. package/ui/ImageInlineEditor.js +14 -15
  251. package/ui/ImageInlineEditor.js.flow +67 -67
  252. package/ui/KeyCodes.js.flow +12 -12
  253. package/ui/LinkTooltip.js +68 -34
  254. package/ui/LinkTooltip.js.flow +118 -85
  255. package/ui/LinkURLEditor.js +160 -43
  256. package/ui/LinkURLEditor.js.flow +243 -117
  257. package/ui/ListItemNodeView.js +6 -7
  258. package/ui/ListItemNodeView.js.flow +98 -98
  259. package/ui/ListTypeButton.js +23 -27
  260. package/ui/ListTypeButton.js.flow +128 -131
  261. package/ui/ListTypeCommandButton.js +14 -15
  262. package/ui/ListTypeCommandButton.js.flow +85 -85
  263. package/ui/ListTypeMenu.js +21 -22
  264. package/ui/ListTypeMenu.js.flow +70 -70
  265. package/ui/LoadingIndicator.js +11 -12
  266. package/ui/LoadingIndicator.js.flow +20 -20
  267. package/ui/MathEditor.js +17 -22
  268. package/ui/MathEditor.js.flow +72 -78
  269. package/ui/MathInlineEditor.js +20 -21
  270. package/ui/MathInlineEditor.js.flow +101 -102
  271. package/ui/MathNodeView.js +29 -30
  272. package/ui/MathNodeView.js.flow +176 -186
  273. package/ui/PasteMenu.js +19 -23
  274. package/ui/PasteMenu.js.flow +53 -57
  275. package/ui/ResizeObserver.js +1 -1
  276. package/ui/ResizeObserver.js.flow +106 -106
  277. package/ui/RichTextEditor.js +17 -18
  278. package/ui/RichTextEditor.js.flow +133 -133
  279. package/ui/SelectionObserver.js +8 -9
  280. package/ui/SelectionObserver.js.flow +134 -134
  281. package/ui/TableCellMenu.js +14 -15
  282. package/ui/TableCellMenu.js.flow +51 -51
  283. package/ui/TableGridSizeEditor.js +30 -33
  284. package/ui/TableGridSizeEditor.js.flow +187 -184
  285. package/ui/TableNodeView.js +18 -17
  286. package/ui/TableNodeView.js.flow +25 -25
  287. package/ui/bindScrollHandler.js +2 -1
  288. package/ui/bindScrollHandler.js.flow +46 -46
  289. package/ui/canUseCSSFont.js +5 -4
  290. package/ui/canUseCSSFont.js.flow +42 -43
  291. package/ui/czi-body-layout-editor.css +16 -16
  292. package/ui/czi-bookmark-view.css +10 -10
  293. package/ui/czi-cursor-placeholder.css +36 -36
  294. package/ui/czi-custom-menu-button.css +18 -18
  295. package/ui/czi-custom-menu-item.css +30 -30
  296. package/ui/czi-custom-menu.css +8 -8
  297. package/ui/czi-custom-radio-button.css +80 -80
  298. package/ui/czi-custom-scrollbar.css +21 -21
  299. package/ui/czi-editor-frameset.css +81 -81
  300. package/ui/czi-editor-toolbar.css +122 -122
  301. package/ui/czi-editor.css +217 -220
  302. package/ui/czi-form.css +201 -107
  303. package/ui/czi-frag.css +3 -3
  304. package/ui/czi-heading.css +40 -40
  305. package/ui/czi-icon.css +72 -72
  306. package/ui/czi-image-resize-box.css +165 -165
  307. package/ui/czi-image-upload-editor.css +57 -57
  308. package/ui/czi-image-upload-placeholder.css +50 -50
  309. package/ui/czi-image-url-editor.css +38 -38
  310. package/ui/czi-image-view.css +121 -125
  311. package/ui/czi-indent.css +137 -137
  312. package/ui/czi-inline-editor.css +20 -20
  313. package/ui/czi-link-tooltip.css +112 -71
  314. package/ui/czi-list.css +406 -410
  315. package/ui/czi-loading-indicator.css +66 -111
  316. package/ui/czi-math-view.css +62 -62
  317. package/ui/czi-selection-placeholder.css +24 -24
  318. package/ui/czi-table-cell-menu.css +16 -14
  319. package/ui/czi-table-grid-size-editor.css +37 -37
  320. package/ui/czi-table.css +87 -87
  321. package/ui/czi-vars.css +2 -2
  322. package/ui/findActiveFontSize.js +2 -1
  323. package/ui/findActiveFontSize.js.flow +55 -58
  324. package/ui/findActiveFontType.js +4 -3
  325. package/ui/findActiveFontType.js.flow +35 -38
  326. package/ui/fonts.css +460 -460
  327. package/ui/handleEditorDrop.js +1 -1
  328. package/ui/handleEditorDrop.js.flow +28 -28
  329. package/ui/handleEditorKeyDown.js +1 -1
  330. package/ui/handleEditorKeyDown.js.flow +39 -39
  331. package/ui/handleEditorPaste.js +1 -1
  332. package/ui/handleEditorPaste.js.flow +33 -33
  333. package/ui/htmlElementToRect.js.flow +18 -18
  334. package/ui/icon-font.css +9 -9
  335. package/ui/injectStyleSheet.js +2 -2
  336. package/ui/injectStyleSheet.js.flow +40 -42
  337. package/ui/isElementFullyVisible.js +1 -10
  338. package/ui/isElementFullyVisible.js.flow +14 -26
  339. package/ui/isOffline.js.flow +8 -8
  340. package/ui/isReactClass.js.flow +12 -12
  341. package/ui/listType.css +21 -21
  342. package/ui/mathquill-editor/MathQuillEditor.js +27 -30
  343. package/ui/mathquill-editor/MathQuillEditor.js.flow +158 -159
  344. package/ui/mathquill-editor/MathQuillEditorSymbols.js.flow +483 -483
  345. package/ui/mathquill-editor/MathQuillEditorSymbolsPanel.js +14 -15
  346. package/ui/mathquill-editor/MathQuillEditorSymbolsPanel.js.flow +50 -50
  347. package/ui/mathquill-editor/czi-mathquill-editor-symbols-panel.css +39 -39
  348. package/ui/mathquill-editor/czi-mathquill-editor.css +50 -50
  349. package/ui/mathquill-editor/mathquill-import-kludge.js +1 -8
  350. package/ui/mathquill-editor/mathquill-import-kludge.js.flow +17 -24
  351. package/ui/renderLaTeXAsHTML.js +4 -4
  352. package/ui/renderLaTeXAsHTML.js.flow +46 -46
  353. package/ui/resolveImage.js +5 -6
  354. package/ui/resolveImage.js.flow +121 -123
  355. package/ui/toCSSColor.js.flow +51 -51
  356. package/ui/toCSSLineSpacing.js +2 -3
  357. package/ui/toCSSLineSpacing.js.flow +53 -55
  358. package/ui/toHexColor.js.flow +26 -26
  359. package/ui/uuid.js.flow +9 -9
  360. package/uuid.js.flow +9 -9
package/browser.js.flow CHANGED
@@ -1,7 +1,7 @@
1
- // @flow
2
-
3
- const browser = {
4
- isMac: () => true,
5
- };
6
-
7
- export default browser;
1
+ // @flow
2
+
3
+ const browser = {
4
+ isMac: () => true,
5
+ };
6
+
7
+ export default browser;
@@ -1,9 +1,9 @@
1
1
  function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
2
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
3
- function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }
4
- function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
5
- function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
6
- function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
2
+ function _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); }
3
+ function _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } }
4
+ function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; }
5
+ function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
6
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
7
7
  function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
8
8
  import { baseKeymap } from 'prosemirror-commands';
9
9
  import { dropCursor } from 'prosemirror-dropcursor';
@@ -31,7 +31,7 @@ var DefaultEditorPlugins = /*#__PURE__*/function () {
31
31
  // [FS] IRAD-1005 2020-07-07
32
32
  // Upgrade outdated packages.
33
33
  // set plugin keys so that to avoid duplicate key error when keys are assigned automatically.
34
- _createClass(DefaultEditorPlugins, [{
34
+ return _createClass(DefaultEditorPlugins, [{
35
35
  key: "setPluginKey",
36
36
  value: function setPluginKey(plugin, key) {
37
37
  plugin.spec.key = new PluginKey(key + 'Plugin');
@@ -44,6 +44,5 @@ var DefaultEditorPlugins = /*#__PURE__*/function () {
44
44
  return this.plugins;
45
45
  }
46
46
  }]);
47
- return DefaultEditorPlugins;
48
47
  }();
49
48
  export { DefaultEditorPlugins as default };
@@ -1,49 +1,49 @@
1
- // @flow
2
- import {baseKeymap} from 'prosemirror-commands';
3
- import {dropCursor} from 'prosemirror-dropcursor';
4
- import {gapCursor} from 'prosemirror-gapcursor';
5
- import {history} from 'prosemirror-history';
6
- import {keymap} from 'prosemirror-keymap';
7
- import {Schema} from 'prosemirror-model';
8
- import {Plugin, PluginKey} from 'prosemirror-state';
9
- import ContentPlaceholderPlugin from './ContentPlaceholderPlugin.js';
10
- import CursorPlaceholderPlugin from './CursorPlaceholderPlugin.js';
11
- import EditorPageLayoutPlugin from './EditorPageLayoutPlugin.js';
12
- import LinkTooltipPlugin from './LinkTooltipPlugin.js';
13
- import SelectionPlaceholderPlugin from './SelectionPlaceholderPlugin.js';
14
- import TablePlugins from './TablePlugins.js';
15
- import buildInputRules from './buildInputRules.js';
16
- import createEditorKeyMap from './createEditorKeyMap.js';
17
-
18
- // Creates the default plugin for the editor.
19
- export default class DefaultEditorPlugins {
20
- plugins: Array<Plugin>;
21
-
22
- constructor(schema: Schema) {
23
- this.plugins = [
24
- new ContentPlaceholderPlugin(),
25
- new CursorPlaceholderPlugin(),
26
- new EditorPageLayoutPlugin(),
27
- new LinkTooltipPlugin(),
28
- new SelectionPlaceholderPlugin(),
29
- this.setPluginKey(buildInputRules(schema), 'InputRules'),
30
- this.setPluginKey(dropCursor(), 'DropCursor'),
31
- this.setPluginKey(gapCursor(), 'GapCursor'),
32
- history(),
33
- this.setPluginKey(keymap(createEditorKeyMap()), 'EditorKeyMap'),
34
- this.setPluginKey(keymap(baseKeymap), 'BaseKeymap'),
35
- ].concat(TablePlugins);
36
- }
37
- // [FS] IRAD-1005 2020-07-07
38
- // Upgrade outdated packages.
39
- // set plugin keys so that to avoid duplicate key error when keys are assigned automatically.
40
- setPluginKey(plugin: Plugin, key: string) {
41
- plugin.spec.key = new PluginKey(key + 'Plugin');
42
- plugin.key = plugin.spec.key.key;
43
- return plugin;
44
- }
45
-
46
- get(): Array<Plugin> {
47
- return this.plugins;
48
- }
49
- }
1
+ // @flow
2
+ import {baseKeymap} from 'prosemirror-commands';
3
+ import {dropCursor} from 'prosemirror-dropcursor';
4
+ import {gapCursor} from 'prosemirror-gapcursor';
5
+ import {history} from 'prosemirror-history';
6
+ import {keymap} from 'prosemirror-keymap';
7
+ import {Schema} from 'prosemirror-model';
8
+ import {Plugin, PluginKey} from 'prosemirror-state';
9
+ import ContentPlaceholderPlugin from './ContentPlaceholderPlugin.js';
10
+ import CursorPlaceholderPlugin from './CursorPlaceholderPlugin.js';
11
+ import EditorPageLayoutPlugin from './EditorPageLayoutPlugin.js';
12
+ import LinkTooltipPlugin from './LinkTooltipPlugin.js';
13
+ import SelectionPlaceholderPlugin from './SelectionPlaceholderPlugin.js';
14
+ import TablePlugins from './TablePlugins.js';
15
+ import buildInputRules from './buildInputRules.js';
16
+ import createEditorKeyMap from './createEditorKeyMap.js';
17
+
18
+ // Creates the default plugin for the editor.
19
+ export default class DefaultEditorPlugins {
20
+ plugins: Array<Plugin>;
21
+
22
+ constructor(schema: Schema) {
23
+ this.plugins = [
24
+ new ContentPlaceholderPlugin(),
25
+ new CursorPlaceholderPlugin(),
26
+ new EditorPageLayoutPlugin(),
27
+ new LinkTooltipPlugin(),
28
+ new SelectionPlaceholderPlugin(),
29
+ this.setPluginKey(buildInputRules(schema), 'InputRules'),
30
+ this.setPluginKey(dropCursor(), 'DropCursor'),
31
+ this.setPluginKey(gapCursor(), 'GapCursor'),
32
+ history(),
33
+ this.setPluginKey(keymap(createEditorKeyMap()), 'EditorKeyMap'),
34
+ this.setPluginKey(keymap(baseKeymap), 'BaseKeymap'),
35
+ ].concat(TablePlugins);
36
+ }
37
+ // [FS] IRAD-1005 2020-07-07
38
+ // Upgrade outdated packages.
39
+ // set plugin keys so that to avoid duplicate key error when keys are assigned automatically.
40
+ setPluginKey(plugin: Plugin, key: string) {
41
+ plugin.spec.key = new PluginKey(key + 'Plugin');
42
+ plugin.key = plugin.spec.key.key;
43
+ return plugin;
44
+ }
45
+
46
+ get(): Array<Plugin> {
47
+ return this.plugins;
48
+ }
49
+ }
@@ -55,16 +55,20 @@ export default function buildInputRules(schema) {
55
55
  if (schema.nodes.blockquote) {
56
56
  rules.push(blockQuoteInputRule());
57
57
  }
58
- if (type = schema.nodes.ordered_list) {
58
+ type = schema.nodes.ordered_list;
59
+ if (type) {
59
60
  rules.push(orderedListRule(type));
60
61
  }
61
- if (type = schema.nodes.bullet_list) {
62
+ type = schema.nodes.bullet_list;
63
+ if (type) {
62
64
  rules.push(bulletListRule(type));
63
65
  }
64
- if (type = schema.nodes.code_block) {
66
+ type = schema.nodes.code_block;
67
+ if (type) {
65
68
  rules.push(codeBlockRule(type));
66
69
  }
67
- if (type = schema.nodes.heading) {
70
+ type = schema.nodes.heading;
71
+ if (type) {
68
72
  rules.push(headingRule(type, 6));
69
73
  }
70
74
  return inputRules({
@@ -1,81 +1,85 @@
1
- // @flow
2
-
3
- import {
4
- InputRule,
5
- ellipsis,
6
- emDash,
7
- inputRules,
8
- smartQuotes,
9
- textblockTypeInputRule,
10
- wrappingInputRule,
11
- } from 'prosemirror-inputrules';
12
- import { NodeType, Schema } from 'prosemirror-model';
13
-
14
- import blockQuoteInputRule from './blockQuoteInputRule.js';
15
-
16
- // This file is forked from
17
- // // https://github.com/ProseMirror/prosemirror-example-setup/blob/master/src/inputrules.js
18
-
19
- // : (NodeType) → InputRule
20
- // Given a list node type, returns an input rule that turns a number
21
- // followed by a dot at the start of a textblock into an ordered list.
22
- function orderedListRule(nodeType: NodeType): InputRule {
23
- return wrappingInputRule(
24
- /^(\d+)\.\s$/,
25
- nodeType,
26
- (match) => ({ order: +match[1] }),
27
- (match, node) => node.childCount + node.attrs.order == +match[1]
28
- );
29
- }
30
-
31
- // : (NodeType) → InputRule
32
- // Given a list node type, returns an input rule that turns a bullet
33
- // (dash, plush, or asterisk) at the start of a textblock into a
34
- // bullet list.
35
- function bulletListRule(nodeType: NodeType): InputRule {
36
- return wrappingInputRule(/^\s*([-+*])\s$/, nodeType);
37
- }
38
-
39
- // : (NodeType) → InputRule
40
- // Given a code block node type, returns an input rule that turns a
41
- // textblock starting with three backticks into a code block.
42
- function codeBlockRule(nodeType: NodeType): InputRule {
43
- return textblockTypeInputRule(/^```$/, nodeType);
44
- }
45
-
46
- // : (NodeType, number) → InputRule
47
- // Given a node type and a maximum level, creates an input rule that
48
- // turns up to that number of `#` characters followed by a space at
49
- // the start of a textblock into a heading whose level corresponds to
50
- // the number of `#` signs.
51
- function headingRule(nodeType: NodeType, maxLevel: number): InputRule {
52
- return textblockTypeInputRule(
53
- new RegExp('^(#{1,' + maxLevel + '})\\s$'),
54
- nodeType,
55
- (match) => ({ level: match[1].length })
56
- );
57
- }
58
-
59
- // : (Schema) → Plugin
60
- // A set of input rules for creating the basic block quotes, lists,
61
- // code blocks, and heading.
62
- export default function buildInputRules(schema: Schema) {
63
- const rules = smartQuotes.concat(ellipsis, emDash);
64
- let type;
65
- if (schema.nodes.blockquote) {
66
- rules.push(blockQuoteInputRule());
67
- }
68
- if ((type = schema.nodes.ordered_list)) {
69
- rules.push(orderedListRule(type));
70
- }
71
- if ((type = schema.nodes.bullet_list)) {
72
- rules.push(bulletListRule(type));
73
- }
74
- if ((type = schema.nodes.code_block)) {
75
- rules.push(codeBlockRule(type));
76
- }
77
- if ((type = schema.nodes.heading)) {
78
- rules.push(headingRule(type, 6));
79
- }
80
- return inputRules({ rules });
81
- }
1
+ // @flow
2
+
3
+ import {
4
+ InputRule,
5
+ ellipsis,
6
+ emDash,
7
+ inputRules,
8
+ smartQuotes,
9
+ textblockTypeInputRule,
10
+ wrappingInputRule,
11
+ } from 'prosemirror-inputrules';
12
+ import { NodeType, Schema } from 'prosemirror-model';
13
+
14
+ import blockQuoteInputRule from './blockQuoteInputRule.js';
15
+
16
+ // This file is forked from
17
+ // // https://github.com/ProseMirror/prosemirror-example-setup/blob/master/src/inputrules.js
18
+
19
+ // : (NodeType) → InputRule
20
+ // Given a list node type, returns an input rule that turns a number
21
+ // followed by a dot at the start of a textblock into an ordered list.
22
+ function orderedListRule(nodeType: NodeType): InputRule {
23
+ return wrappingInputRule(
24
+ /^(\d+)\.\s$/,
25
+ nodeType,
26
+ (match) => ({ order: +match[1] }),
27
+ (match, node) => node.childCount + node.attrs.order == +match[1]
28
+ );
29
+ }
30
+
31
+ // : (NodeType) → InputRule
32
+ // Given a list node type, returns an input rule that turns a bullet
33
+ // (dash, plush, or asterisk) at the start of a textblock into a
34
+ // bullet list.
35
+ function bulletListRule(nodeType: NodeType): InputRule {
36
+ return wrappingInputRule(/^\s*([-+*])\s$/, nodeType);
37
+ }
38
+
39
+ // : (NodeType) → InputRule
40
+ // Given a code block node type, returns an input rule that turns a
41
+ // textblock starting with three backticks into a code block.
42
+ function codeBlockRule(nodeType: NodeType): InputRule {
43
+ return textblockTypeInputRule(/^```$/, nodeType);
44
+ }
45
+
46
+ // : (NodeType, number) → InputRule
47
+ // Given a node type and a maximum level, creates an input rule that
48
+ // turns up to that number of `#` characters followed by a space at
49
+ // the start of a textblock into a heading whose level corresponds to
50
+ // the number of `#` signs.
51
+ function headingRule(nodeType: NodeType, maxLevel: number): InputRule {
52
+ return textblockTypeInputRule(
53
+ new RegExp('^(#{1,' + maxLevel + '})\\s$'),
54
+ nodeType,
55
+ (match) => ({ level: match[1].length })
56
+ );
57
+ }
58
+
59
+ // : (Schema) → Plugin
60
+ // A set of input rules for creating the basic block quotes, lists,
61
+ // code blocks, and heading.
62
+ export default function buildInputRules(schema: Schema) {
63
+ const rules = smartQuotes.concat(ellipsis, emDash);
64
+ let type;
65
+ if (schema.nodes.blockquote) {
66
+ rules.push(blockQuoteInputRule());
67
+ }
68
+ type = schema.nodes.ordered_list;
69
+ if (type) {
70
+ rules.push(orderedListRule(type));
71
+ }
72
+ type = schema.nodes.bullet_list;
73
+ if (type) {
74
+ rules.push(bulletListRule(type));
75
+ }
76
+ type = schema.nodes.code_block;
77
+ if (type) {
78
+ rules.push(codeBlockRule(type));
79
+ }
80
+ type = schema.nodes.heading;
81
+ if (type) {
82
+ rules.push(headingRule(type, 6));
83
+ }
84
+ return inputRules({ rules });
85
+ }
@@ -1,16 +1,16 @@
1
1
  function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
2
- function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }
3
- function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
4
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
2
+ function _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } }
3
+ function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; }
4
+ function _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); }
5
5
  function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }
6
- function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); }
6
+ function _possibleConstructorReturn(t, e) { if (e && ("object" == _typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return _assertThisInitialized(t); }
7
+ function _assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; }
7
8
  function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
8
- function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
9
- function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
10
- function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }
11
- function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
12
- function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
13
- function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
9
+ function _getPrototypeOf(t) { return _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, _getPrototypeOf(t); }
10
+ function _inherits(t, e) { if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function"); t.prototype = Object.create(e && e.prototype, { constructor: { value: t, writable: !0, configurable: !0 } }), Object.defineProperty(t, "prototype", { writable: !1 }), e && _setPrototypeOf(t, e); }
11
+ function _setPrototypeOf(t, e) { return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) { return t.__proto__ = e, t; }, _setPrototypeOf(t, e); }
12
+ function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
13
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
14
14
  function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
15
15
  import { Transform } from 'prosemirror-transform';
16
16
  import { Schema } from 'prosemirror-model';
@@ -20,17 +20,16 @@ import EditorConnection from './EditorConnection.js';
20
20
  import Reporter from './Reporter.js';
21
21
  import ReactDOM from 'react-dom';
22
22
  var CollabConnector = /*#__PURE__*/function (_SimpleConnector) {
23
- _inherits(CollabConnector, _SimpleConnector);
24
23
  function CollabConnector(editorState, setState, config, _schema, plugins, onReady) {
25
24
  var _this;
26
25
  _classCallCheck(this, CollabConnector);
27
26
  _this = _callSuper(this, CollabConnector, [editorState, setState]);
28
- _defineProperty(_assertThisInitialized(_this), "_clientID", void 0);
29
- _defineProperty(_assertThisInitialized(_this), "_connected", void 0);
30
- _defineProperty(_assertThisInitialized(_this), "_connection", void 0);
31
- _defineProperty(_assertThisInitialized(_this), "_docID", void 0);
32
- _defineProperty(_assertThisInitialized(_this), "_stepKeys", void 0);
33
- _defineProperty(_assertThisInitialized(_this), "cleanUp", function () {
27
+ _defineProperty(_this, "_clientID", void 0);
28
+ _defineProperty(_this, "_connected", void 0);
29
+ _defineProperty(_this, "_connection", void 0);
30
+ _defineProperty(_this, "_docID", void 0);
31
+ _defineProperty(_this, "_stepKeys", void 0);
32
+ _defineProperty(_this, "cleanUp", function () {
34
33
  // remove collab plugin
35
34
  if (_this._connection) {
36
35
  var cpIdx = _this._editorState.plugins.findIndex(function (plugin) {
@@ -42,7 +41,7 @@ var CollabConnector = /*#__PURE__*/function (_SimpleConnector) {
42
41
  _this._connection.close();
43
42
  }
44
43
  });
45
- _defineProperty(_assertThisInitialized(_this), "onEdit", function (transaction) {
44
+ _defineProperty(_this, "onEdit", function (transaction) {
46
45
  if (!_this._connection.ready) {
47
46
  console.warn('not ready');
48
47
  return;
@@ -56,10 +55,10 @@ var CollabConnector = /*#__PURE__*/function (_SimpleConnector) {
56
55
  });
57
56
  // FS IRAD-1040 2020-09-02
58
57
  // Send the modified schema to server
59
- _defineProperty(_assertThisInitialized(_this), "updateSchema", function (schema, data) {
58
+ _defineProperty(_this, "updateSchema", function (schema, data) {
60
59
  _this._connection.updateSchema(schema, data, _this._dataDefined);
61
60
  });
62
- _defineProperty(_assertThisInitialized(_this), "updateContent", function (data) {
61
+ _defineProperty(_this, "updateContent", function (data) {
63
62
  _this._connection.start(data, _this._dataDefined);
64
63
  });
65
64
  var docID = config.docID,
@@ -79,6 +78,7 @@ var CollabConnector = /*#__PURE__*/function (_SimpleConnector) {
79
78
  };
80
79
  return _this;
81
80
  }
81
+ _inherits(CollabConnector, _SimpleConnector);
82
82
  return _createClass(CollabConnector);
83
83
  }(SimpleConnector);
84
84
  export default CollabConnector;
@@ -1,90 +1,90 @@
1
- // @flow
2
-
3
- import { Transform } from 'prosemirror-transform';
4
- import { Schema } from 'prosemirror-model';
5
- import { Plugin, EditorState } from 'prosemirror-state';
6
- import SimpleConnector from './SimpleConnector.js';
7
- import type { SetStateCall } from './SimpleConnector.js';
8
- import EditorConnection from './EditorConnection.js';
9
- import Reporter from './Reporter.js';
10
- import ReactDOM from 'react-dom';
11
-
12
- type IdStrict = string;
13
-
14
- class CollabConnector extends SimpleConnector {
15
- _clientID: string;
16
- _connected: boolean;
17
- _connection: EditorConnection;
18
- _docID: IdStrict;
19
- _stepKeys: Object;
20
-
21
- constructor(
22
- editorState: EditorState,
23
- setState: SetStateCall,
24
- config: {
25
- docID: IdStrict,
26
- collabServiceURL: string,
27
- },
28
- schema: Schema,
29
- plugins: Array<Plugin>,
30
- onReady: Function
31
- ) {
32
- super(editorState, setState);
33
- const { docID, collabServiceURL } = config;
34
- this._docID = docID;
35
-
36
- // [FS] IRAD-1553 2021-08-26
37
- // Configurable Collaboration Service URL.
38
- const url = collabServiceURL + '/docs/' + docID;
39
- this._connection = new EditorConnection(
40
- onReady,
41
- new Reporter(),
42
- url,
43
- plugins,
44
- schema
45
- );
46
-
47
- this._connection.view = {
48
- updateState: (s) => {
49
- setState({ editorState: s }, () => {});
50
- },
51
- };
52
- }
53
-
54
- cleanUp = () => {
55
- // remove collab plugin
56
- if (this._connection) {
57
- const cpIdx = this._editorState.plugins.findIndex((plugin) => {
58
- return 'collab$' === plugin.spec.key.key;
59
- });
60
-
61
- if (-1 != cpIdx) {
62
- this._editorState.plugins.splice(cpIdx, 1);
63
- }
64
-
65
- this._connection.close();
66
- }
67
- };
68
-
69
- onEdit = (transaction: Transform): void => {
70
- if (!this._connection.ready) {
71
- console.warn('not ready');
72
- return;
73
- }
74
- ReactDOM.unstable_batchedUpdates(() => {
75
- this._connection.dispatch({ type: 'transaction', transaction });
76
- });
77
- };
78
-
79
- // FS IRAD-1040 2020-09-02
80
- // Send the modified schema to server
81
- updateSchema = (schema: Schema, data: any) => {
82
- this._connection.updateSchema(schema, data, this._dataDefined);
83
- };
84
-
85
- updateContent = (data: any) => {
86
- this._connection.start(data, this._dataDefined);
87
- };
88
- }
89
-
90
- export default CollabConnector;
1
+ // @flow
2
+
3
+ import { Transform } from 'prosemirror-transform';
4
+ import { Schema } from 'prosemirror-model';
5
+ import { Plugin, EditorState } from 'prosemirror-state';
6
+ import SimpleConnector from './SimpleConnector.js';
7
+ import type { SetStateCall } from './SimpleConnector.js';
8
+ import EditorConnection from './EditorConnection.js';
9
+ import Reporter from './Reporter.js';
10
+ import ReactDOM from 'react-dom';
11
+
12
+ type IdStrict = string;
13
+
14
+ class CollabConnector extends SimpleConnector {
15
+ _clientID: string;
16
+ _connected: boolean;
17
+ _connection: EditorConnection;
18
+ _docID: IdStrict;
19
+ _stepKeys: Object;
20
+
21
+ constructor(
22
+ editorState: EditorState,
23
+ setState: SetStateCall,
24
+ config: {
25
+ docID: IdStrict,
26
+ collabServiceURL: string,
27
+ },
28
+ schema: Schema,
29
+ plugins: Array<Plugin>,
30
+ onReady: Function
31
+ ) {
32
+ super(editorState, setState);
33
+ const { docID, collabServiceURL } = config;
34
+ this._docID = docID;
35
+
36
+ // [FS] IRAD-1553 2021-08-26
37
+ // Configurable Collaboration Service URL.
38
+ const url = collabServiceURL + '/docs/' + docID;
39
+ this._connection = new EditorConnection(
40
+ onReady,
41
+ new Reporter(),
42
+ url,
43
+ plugins,
44
+ schema
45
+ );
46
+
47
+ this._connection.view = {
48
+ updateState: (s) => {
49
+ setState({ editorState: s }, () => {});
50
+ },
51
+ };
52
+ }
53
+
54
+ cleanUp = () => {
55
+ // remove collab plugin
56
+ if (this._connection) {
57
+ const cpIdx = this._editorState.plugins.findIndex((plugin) => {
58
+ return 'collab$' === plugin.spec.key.key;
59
+ });
60
+
61
+ if (-1 != cpIdx) {
62
+ this._editorState.plugins.splice(cpIdx, 1);
63
+ }
64
+
65
+ this._connection.close();
66
+ }
67
+ };
68
+
69
+ onEdit = (transaction: Transform): void => {
70
+ if (!this._connection.ready) {
71
+ console.warn('not ready');
72
+ return;
73
+ }
74
+ ReactDOM.unstable_batchedUpdates(() => {
75
+ this._connection.dispatch({ type: 'transaction', transaction });
76
+ });
77
+ };
78
+
79
+ // FS IRAD-1040 2020-09-02
80
+ // Send the modified schema to server
81
+ updateSchema = (schema: Schema, data: any) => {
82
+ this._connection.updateSchema(schema, data, this._dataDefined);
83
+ };
84
+
85
+ updateContent = (data: any) => {
86
+ this._connection.start(data, this._dataDefined);
87
+ };
88
+ }
89
+
90
+ export default CollabConnector;