@modusoperandi/licit 0.1.7 → 0.1.10

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 (693) hide show
  1. package/.babelrc +54 -54
  2. package/.dockerignore +4 -4
  3. package/.eslintignore +3 -3
  4. package/.eslintrc.js +80 -80
  5. package/.flowconfig +37 -37
  6. package/.github/workflows/build.yml +35 -30
  7. package/.github/workflows/lint.yml +30 -30
  8. package/.prettierignore +5 -5
  9. package/.prettierrc +4 -4
  10. package/.stylelintignore +1 -1
  11. package/.stylelintrc.json +13 -13
  12. package/.travis.yml +18 -18
  13. package/CODEOWNERS +40 -40
  14. package/LICENSE +22 -22
  15. package/README.md +286 -285
  16. package/build_collab_server.py +7 -7
  17. package/build_customstyle_server.py +7 -7
  18. package/build_image_server.py +7 -7
  19. package/dist/BlockquoteInsertNewLineCommand.js.flow +55 -55
  20. package/dist/BlockquoteNodeSpec.js +2 -2
  21. package/dist/BlockquoteNodeSpec.js.flow +30 -30
  22. package/dist/BlockquoteToggleCommand.js.flow +34 -34
  23. package/dist/BookmarkNodeSpec.js.flow +39 -39
  24. package/dist/BulletListNodeSpec.js.flow +61 -61
  25. package/dist/CZIProseMirror.js +4 -4
  26. package/dist/CZIProseMirror.js.flow +90 -90
  27. package/dist/CodeBlockCommand.js.flow +43 -43
  28. package/dist/CodeBlockNodeSpec.js.flow +24 -24
  29. package/dist/CodeMarkSpec.js.flow +14 -14
  30. package/dist/ContentPlaceholderPlugin.js.flow +187 -187
  31. package/dist/CursorPlaceholderPlugin.js +2 -2
  32. package/dist/CursorPlaceholderPlugin.js.flow +115 -115
  33. package/dist/DocLayoutCommand.js.flow +94 -94
  34. package/dist/DocNodeSpec.js +1 -1
  35. package/dist/DocNodeSpec.js.flow +64 -64
  36. package/dist/EMMarkSpec.js.flow +14 -14
  37. package/dist/EditorCommands.js +1 -1
  38. package/dist/EditorCommands.js.flow +128 -128
  39. package/dist/EditorKeyMap.js +3 -3
  40. package/dist/EditorKeyMap.js.flow +187 -187
  41. package/dist/EditorMarks.js.flow +71 -71
  42. package/dist/EditorNodes.js.flow +60 -60
  43. package/dist/EditorPageLayoutPlugin.js.flow +67 -67
  44. package/dist/EditorPlugins.js.flow +8 -8
  45. package/dist/EditorSchema.js.flow +12 -12
  46. package/dist/EditorState.js.flow +7 -7
  47. package/dist/FontSizeCommand.js.flow +57 -57
  48. package/dist/FontSizeMarkSpec.js.flow +49 -49
  49. package/dist/FontTypeCommand.js.flow +100 -100
  50. package/dist/FontTypeMarkSpec.js +1 -1
  51. package/dist/FontTypeMarkSpec.js.flow +80 -80
  52. package/dist/HTMLMutator.js.flow +59 -59
  53. package/dist/HardBreakNodeSpec.js.flow +15 -15
  54. package/dist/HeadingCommand.js.flow +51 -51
  55. package/dist/HeadingNodeSpec.js +2 -2
  56. package/dist/HeadingNodeSpec.js.flow +54 -54
  57. package/dist/HistoryRedoCommand.js.flow +20 -20
  58. package/dist/HistoryUndoCommand.js.flow +20 -20
  59. package/dist/HorizontalRuleCommand.js.flow +49 -49
  60. package/dist/HorizontalRuleNodeSpec.js.flow +39 -39
  61. package/dist/ImageFromURLCommand.js.flow +14 -14
  62. package/dist/ImageNodeSpec.js.flow +90 -90
  63. package/dist/ImageSourceCommand.js.flow +117 -117
  64. package/dist/ImageUploadCommand.js.flow +36 -36
  65. package/dist/ImageUploadPlaceholderPlugin.js +1 -1
  66. package/dist/ImageUploadPlaceholderPlugin.js.flow +192 -192
  67. package/dist/IndentCommand.js.flow +41 -41
  68. package/dist/LinkMarkSpec.js.flow +32 -32
  69. package/dist/LinkSetURLCommand.js.flow +103 -103
  70. package/dist/LinkTooltipPlugin.js.flow +203 -203
  71. package/dist/ListItemInsertNewLineCommand.js.flow +55 -55
  72. package/dist/ListItemMergeCommand.js.flow +177 -177
  73. package/dist/ListItemNodeSpec.js.flow +51 -51
  74. package/dist/ListSplitCommand.js.flow +32 -32
  75. package/dist/ListToggleCommand.js +1 -1
  76. package/dist/ListToggleCommand.js.flow +77 -77
  77. package/dist/MarkNames.js +1 -1
  78. package/dist/MarkNames.js.flow +18 -18
  79. package/dist/MarkToggleCommand.js.flow +66 -66
  80. package/dist/MarksClearCommand.js.flow +42 -42
  81. package/dist/MathEditCommand.js.flow +110 -110
  82. package/dist/MathNodeSpec.js.flow +46 -46
  83. package/dist/NodeNames.js.flow +23 -23
  84. package/dist/OrderedListNodeSpec.js.flow +132 -132
  85. package/dist/ParagraphNodeSpec.js +2 -1
  86. package/dist/ParagraphNodeSpec.js.flow +160 -160
  87. package/dist/ParagraphSpacingCommand.js +3 -3
  88. package/dist/ParagraphSpacingCommand.js.flow +121 -121
  89. package/dist/PrintCommand.js.flow +31 -31
  90. package/dist/SelectionPlaceholderPlugin.js +2 -2
  91. package/dist/SelectionPlaceholderPlugin.js.flow +131 -131
  92. package/dist/SpacerMarkSpec.js +1 -1
  93. package/dist/SpacerMarkSpec.js.flow +47 -47
  94. package/dist/StrikeMarkSpec.js.flow +21 -21
  95. package/dist/StrongMarkSpec.js.flow +25 -25
  96. package/dist/StyleView.js.flow +19 -19
  97. package/dist/TableBackgroundColorCommand.js.flow +75 -75
  98. package/dist/TableBorderColorCommand.js.flow +75 -75
  99. package/dist/TableCellColorCommand.js.flow +71 -71
  100. package/dist/TableCellMenuPlugin.js.flow +125 -125
  101. package/dist/TableInsertCommand.js.flow +112 -112
  102. package/dist/TableMergeCellsCommand.js.flow +90 -90
  103. package/dist/TableNodesSpecs.js.flow +78 -78
  104. package/dist/TablePlugins.js.flow +14 -14
  105. package/dist/TableResizePlugin.js +2 -2
  106. package/dist/TableResizePlugin.js.flow +631 -631
  107. package/dist/TextAlignCommand.js +3 -3
  108. package/dist/TextAlignCommand.js.flow +122 -122
  109. package/dist/TextColorCommand.js.flow +87 -87
  110. package/dist/TextColorMarkSpec.js.flow +35 -35
  111. package/dist/TextHighlightCommand.js.flow +91 -91
  112. package/dist/TextHighlightMarkSpec.js.flow +38 -38
  113. package/dist/TextInsertTabSpaceCommand.js.flow +83 -83
  114. package/dist/TextLineSpacingCommand.js +3 -3
  115. package/dist/TextLineSpacingCommand.js.flow +157 -157
  116. package/dist/TextNoWrapMarkSpec.js.flow +14 -14
  117. package/dist/TextNodeSpec.js.flow +7 -7
  118. package/dist/TextSelectionMarkSpec.js.flow +24 -24
  119. package/dist/TextSubMarkSpec.js.flow +20 -20
  120. package/dist/TextSuperMarkSpec.js.flow +20 -20
  121. package/dist/TextUnderlineMarkSpec.js.flow +27 -27
  122. package/dist/Types.js +1 -1
  123. package/dist/Types.js.flow +75 -75
  124. package/dist/WebFontLoader.js.flow +22 -22
  125. package/dist/applyMark.js.flow +61 -61
  126. package/dist/blockQuoteInputRule.js.flow +36 -36
  127. package/dist/bom.xml +3710 -4585
  128. package/dist/browser.js.flow +7 -7
  129. package/dist/buildEditorPlugins.js.flow +51 -51
  130. package/dist/buildInputRules.js.flow +81 -81
  131. package/dist/clearMarks.js +1 -1
  132. package/dist/clearMarks.js.flow +128 -128
  133. package/dist/client/CollabConnector.js +2 -2
  134. package/dist/client/CollabConnector.js.flow +71 -70
  135. package/dist/client/EditorConnection.js.flow +307 -307
  136. package/dist/client/Licit.js +167 -83
  137. package/dist/client/Licit.js.flow +578 -491
  138. package/dist/client/Licit.test.js +16 -15
  139. package/dist/client/Licit.test.js.flow +67 -65
  140. package/dist/client/Reporter.js.flow +37 -37
  141. package/dist/client/SimpleConnector.js +1 -1
  142. package/dist/client/SimpleConnector.js.flow +53 -53
  143. package/dist/client/http.js +3 -3
  144. package/dist/client/http.js.flow +66 -66
  145. package/dist/client/licit.css +12 -12
  146. package/dist/client/throttle.js.flow +27 -27
  147. package/dist/compareNumber.js.flow +11 -11
  148. package/dist/consolidateListNodes.js +29 -29
  149. package/dist/consolidateListNodes.js.flow +281 -281
  150. package/dist/convertFromDOMElement.js.flow +36 -36
  151. package/dist/convertFromHTML.js.flow +19 -19
  152. package/dist/convertFromJSON.js.flow +78 -78
  153. package/dist/convertToCSSPTValue.js +1 -1
  154. package/dist/convertToCSSPTValue.js.flow +22 -22
  155. package/dist/convertToJSON.js.flow +7 -7
  156. package/dist/createCommand.js.flow +40 -40
  157. package/dist/createEditorKeyMap.js.flow +94 -94
  158. package/dist/createEmptyEditorState.js +4 -7
  159. package/dist/createEmptyEditorState.js.flow +35 -41
  160. package/dist/createTableResizingPlugin.js.flow +86 -86
  161. package/dist/findActionableCell.js.flow +74 -74
  162. package/dist/findActiveMark.js.flow +32 -32
  163. package/dist/findNodesWithSameMark.js.flow +89 -89
  164. package/dist/hyphenize.js.flow +17 -17
  165. package/dist/index.js +16 -16
  166. package/dist/index.js.flow +10 -10
  167. package/dist/insertTable.js.flow +56 -56
  168. package/dist/isBulletListNode.js.flow +9 -9
  169. package/dist/isEditorStateEmpty.js.flow +32 -32
  170. package/dist/isInsideListItem.js.flow +13 -13
  171. package/dist/isListNode.js.flow +13 -13
  172. package/dist/isNodeSelectionForNodeType.js.flow +15 -15
  173. package/dist/isOrderedListNode.js.flow +9 -9
  174. package/dist/isTableNode.js.flow +15 -15
  175. package/dist/isTextStyleMarkCommandEnabled.js.flow +49 -49
  176. package/dist/joinDown.js.flow +27 -27
  177. package/dist/joinListNode.js.flow +55 -55
  178. package/dist/joinUp.js.flow +39 -39
  179. package/dist/keymaps.js +2 -2
  180. package/dist/keymaps.js.flow +185 -185
  181. package/dist/lookUpElement.js.flow +14 -14
  182. package/dist/nodeAt.js.flow +12 -12
  183. package/dist/noop.js.flow +5 -5
  184. package/dist/normalizeHTML.js.flow +78 -78
  185. package/dist/patchAnchorElements.js.flow +38 -38
  186. package/dist/patchBreakElements.js.flow +22 -22
  187. package/dist/patchElementInlineStyles.js.flow +92 -92
  188. package/dist/patchListElements.js.flow +276 -276
  189. package/dist/patchMathElements.js.flow +60 -60
  190. package/dist/patchParagraphElements.js.flow +20 -20
  191. package/dist/patchStyleElements.js +1 -1
  192. package/dist/patchStyleElements.js.flow +194 -194
  193. package/dist/patchTableElements.js.flow +89 -89
  194. package/dist/rebaseDocWithSteps.js.flow +42 -42
  195. package/dist/sanitizeURL.js.flow +13 -13
  196. package/dist/splitListItem.js +2 -2
  197. package/dist/splitListItem.js.flow +191 -191
  198. package/dist/styles.css +19 -19
  199. package/dist/styles0.css +29 -29
  200. package/dist/toClosestFontPtSize.js.flow +22 -22
  201. package/dist/toSafeHTMLDocument.js.flow +9 -9
  202. package/dist/toggleBlockquote.js.flow +91 -91
  203. package/dist/toggleCodeBlock.js.flow +102 -102
  204. package/dist/toggleHeading.js +2 -2
  205. package/dist/toggleHeading.js.flow +113 -113
  206. package/dist/toggleList.js +2 -2
  207. package/dist/toggleList.js.flow +450 -450
  208. package/dist/transformAndPreserveTextSelection.js +1 -1
  209. package/dist/transformAndPreserveTextSelection.js.flow +151 -151
  210. package/dist/ui/AlertInfo.js +3 -3
  211. package/dist/ui/AlertInfo.js.flow +64 -64
  212. package/dist/ui/BookmarkNodeView.js.flow +66 -66
  213. package/dist/ui/ColorEditor.js.flow +101 -101
  214. package/dist/ui/CommandButton.js.flow +68 -68
  215. package/dist/ui/CommandMenu.js.flow +75 -75
  216. package/dist/ui/CommandMenuButton.js +2 -2
  217. package/dist/ui/CommandMenuButton.js.flow +131 -131
  218. package/dist/ui/CustomButton.js +3 -1
  219. package/dist/ui/CustomButton.js.flow +33 -33
  220. package/dist/ui/CustomEditorView.js.flow +28 -28
  221. package/dist/ui/CustomMenu.js.flow +17 -17
  222. package/dist/ui/CustomMenuItem.js.flow +36 -36
  223. package/dist/ui/CustomNodeView.js +3 -3
  224. package/dist/ui/CustomNodeView.js.flow +200 -200
  225. package/dist/ui/CustomRadioButton.js +3 -1
  226. package/dist/ui/CustomRadioButton.js.flow +65 -65
  227. package/dist/ui/DocLayoutEditor.js +1 -1
  228. package/dist/ui/DocLayoutEditor.js.flow +146 -146
  229. package/dist/ui/Editor.js +1 -2
  230. package/dist/ui/Editor.js.flow +290 -291
  231. package/dist/ui/EditorFrameset.js +1 -1
  232. package/dist/ui/EditorFrameset.js.flow +81 -81
  233. package/dist/ui/EditorToolbar.js +2 -2
  234. package/dist/ui/EditorToolbar.js.flow +211 -211
  235. package/dist/ui/EditorToolbarConfig.js +1 -1
  236. package/dist/ui/EditorToolbarConfig.js.flow +172 -172
  237. package/dist/ui/FontSizeCommandMenuButton.js.flow +66 -66
  238. package/dist/ui/FontTypeCommandMenuButton.js.flow +49 -49
  239. package/dist/ui/Frag.js.flow +13 -13
  240. package/dist/ui/Icon.js.flow +89 -89
  241. package/dist/ui/ImageAlignEditor.js +1 -1
  242. package/dist/ui/ImageAlignEditor.js.flow +60 -60
  243. package/dist/ui/ImageInlineEditor.js +1 -1
  244. package/dist/ui/ImageInlineEditor.js.flow +67 -67
  245. package/dist/ui/ImageNodeView.js +3 -13
  246. package/dist/ui/ImageNodeView.js.flow +404 -416
  247. package/dist/ui/ImageResizeBox.js +1 -1
  248. package/dist/ui/ImageResizeBox.js.flow +219 -219
  249. package/dist/ui/ImageURLEditor.js +2 -2
  250. package/dist/ui/ImageURLEditor.js.flow +119 -119
  251. package/dist/ui/ImageUploadEditor.js.flow +117 -117
  252. package/dist/ui/KeyCodes.js.flow +12 -12
  253. package/dist/ui/LinkTooltip.js.flow +85 -85
  254. package/dist/ui/LinkURLEditor.js.flow +111 -111
  255. package/dist/ui/ListItemNodeView.js.flow +98 -98
  256. package/dist/ui/ListTypeButton.js +2 -2
  257. package/dist/ui/ListTypeButton.js.flow +131 -131
  258. package/dist/ui/ListTypeCommandButton.js.flow +85 -85
  259. package/dist/ui/ListTypeMenu.js.flow +70 -70
  260. package/dist/ui/LoadingIndicator.js.flow +20 -20
  261. package/dist/ui/MathEditor.js.flow +78 -78
  262. package/dist/ui/MathInlineEditor.js +3 -3
  263. package/dist/ui/MathInlineEditor.js.flow +102 -102
  264. package/dist/ui/MathNodeView.js +2 -2
  265. package/dist/ui/MathNodeView.js.flow +175 -175
  266. package/dist/ui/PasteMenu.js.flow +57 -57
  267. package/dist/ui/PointerSurface.js +1 -1
  268. package/dist/ui/PointerSurface.js.flow +141 -141
  269. package/dist/ui/PopUp.js +1 -1
  270. package/dist/ui/PopUp.js.flow +77 -77
  271. package/dist/ui/PopUpManager.js +1 -1
  272. package/dist/ui/PopUpManager.js.flow +213 -213
  273. package/dist/ui/PopUpPosition.js +3 -3
  274. package/dist/ui/PopUpPosition.js.flow +104 -104
  275. package/dist/ui/ResizeObserver.js +1 -1
  276. package/dist/ui/ResizeObserver.js.flow +106 -106
  277. package/dist/ui/RichTextEditor.js.flow +133 -133
  278. package/dist/ui/SelectionObserver.js.flow +134 -134
  279. package/dist/ui/TableCellMenu.js.flow +38 -38
  280. package/dist/ui/TableGridSizeEditor.js +1 -1
  281. package/dist/ui/TableGridSizeEditor.js.flow +184 -184
  282. package/dist/ui/TableNodeView.js.flow +22 -22
  283. package/dist/ui/TooltipSurface.js.flow +76 -76
  284. package/dist/ui/bindScrollHandler.js.flow +46 -46
  285. package/dist/ui/canUseCSSFont.js.flow +43 -43
  286. package/dist/ui/clamp.js.flow +11 -11
  287. package/dist/ui/createPopUp.js +1 -1
  288. package/dist/ui/createPopUp.js.flow +205 -205
  289. package/dist/ui/czi-animations.css +15 -15
  290. package/dist/ui/czi-body-layout-editor.css +16 -16
  291. package/dist/ui/czi-bookmark-view.css +10 -10
  292. package/dist/ui/czi-color-editor.css +56 -56
  293. package/dist/ui/czi-cursor-placeholder.css +36 -36
  294. package/dist/ui/czi-custom-button.css +93 -93
  295. package/dist/ui/czi-custom-menu-button.css +18 -18
  296. package/dist/ui/czi-custom-menu-item.css +30 -30
  297. package/dist/ui/czi-custom-menu.css +8 -8
  298. package/dist/ui/czi-custom-radio-button.css +80 -80
  299. package/dist/ui/czi-custom-scrollbar.css +21 -21
  300. package/dist/ui/czi-editor-frameset.css +81 -81
  301. package/dist/ui/czi-editor-toolbar.css +122 -122
  302. package/dist/ui/czi-editor.css +220 -220
  303. package/dist/ui/czi-form.css +104 -104
  304. package/dist/ui/czi-frag.css +3 -3
  305. package/dist/ui/czi-heading.css +40 -40
  306. package/dist/ui/czi-icon.css +72 -72
  307. package/dist/ui/czi-image-resize-box.css +165 -165
  308. package/dist/ui/czi-image-upload-editor.css +57 -57
  309. package/dist/ui/czi-image-upload-placeholder.css +50 -50
  310. package/dist/ui/czi-image-url-editor.css +38 -38
  311. package/dist/ui/czi-image-view.css +125 -125
  312. package/dist/ui/czi-indent.css +137 -137
  313. package/dist/ui/czi-inline-editor.css +20 -20
  314. package/dist/ui/czi-link-tooltip.css +71 -71
  315. package/dist/ui/czi-list.css +410 -410
  316. package/dist/ui/czi-loading-indicator.css +111 -111
  317. package/dist/ui/czi-math-view.css +62 -62
  318. package/dist/ui/czi-pop-up.css +32 -32
  319. package/dist/ui/czi-selection-placeholder.css +24 -24
  320. package/dist/ui/czi-table-cell-menu.css +14 -14
  321. package/dist/ui/czi-table-grid-size-editor.css +37 -37
  322. package/dist/ui/czi-table.css +86 -86
  323. package/dist/ui/czi-tooltip-surface.css +45 -45
  324. package/dist/ui/czi-vars.css +46 -46
  325. package/dist/ui/findActiveFontSize.js.flow +58 -58
  326. package/dist/ui/findActiveFontType.js +1 -1
  327. package/dist/ui/findActiveFontType.js.flow +38 -38
  328. package/dist/ui/fonts.css +471 -471
  329. package/dist/ui/handleEditorDrop.js.flow +28 -28
  330. package/dist/ui/handleEditorKeyDown.js.flow +39 -39
  331. package/dist/ui/handleEditorPaste.js.flow +33 -33
  332. package/dist/ui/htmlElementToRect.js +1 -1
  333. package/dist/ui/htmlElementToRect.js.flow +18 -18
  334. package/dist/ui/icon-font.css +10 -10
  335. package/dist/ui/injectStyleSheet.js.flow +42 -42
  336. package/dist/ui/isElementFullyVisible.js.flow +23 -23
  337. package/dist/ui/isOffline.js.flow +8 -8
  338. package/dist/ui/isReactClass.js.flow +12 -12
  339. package/dist/ui/listType.css +21 -21
  340. package/dist/ui/mathquill-editor/MathQuillEditor.js.flow +159 -159
  341. package/dist/ui/mathquill-editor/MathQuillEditorSymbols.js +1 -1
  342. package/dist/ui/mathquill-editor/MathQuillEditorSymbols.js.flow +483 -483
  343. package/dist/ui/mathquill-editor/MathQuillEditorSymbolsPanel.js.flow +48 -48
  344. package/dist/ui/mathquill-editor/czi-mathquill-editor-symbols-panel.css +39 -39
  345. package/dist/ui/mathquill-editor/czi-mathquill-editor.css +50 -50
  346. package/dist/ui/mathquill-editor/mathquill-import-kludge.js.flow +24 -24
  347. package/dist/ui/preventEventDefault.js.flow +5 -5
  348. package/dist/ui/rects.js +3 -3
  349. package/dist/ui/rects.js.flow +47 -47
  350. package/dist/ui/renderLaTeXAsHTML.js.flow +46 -46
  351. package/dist/ui/resolveImage.js +3 -3
  352. package/dist/ui/resolveImage.js.flow +123 -123
  353. package/dist/ui/toCSSColor.js +1 -1
  354. package/dist/ui/toCSSColor.js.flow +51 -51
  355. package/dist/ui/toCSSLineSpacing.js +1 -1
  356. package/dist/ui/toCSSLineSpacing.js.flow +82 -82
  357. package/dist/ui/toHexColor.js.flow +26 -26
  358. package/dist/ui/uuid.js.flow +9 -9
  359. package/dist/updateIndentLevel.js +2 -2
  360. package/dist/updateIndentLevel.js.flow +211 -211
  361. package/dist/uuid.js.flow +9 -9
  362. package/flow-typed/@modusoperandilicit-customstyles.js +5 -5
  363. package/flow-typed/@modusoperandilicit-doc-attrs-step.js +5 -5
  364. package/flow-typed/@molicit-citation.js +5 -5
  365. package/flow-typed/create-emotion.js +5 -5
  366. package/flow-typed/docs-editor.js +3 -3
  367. package/flow-typed/draft-convert.js +3 -3
  368. package/flow-typed/draft-js.js +3 -3
  369. package/flow-typed/flatted.js +5 -5
  370. package/flow-typed/jquery.js +5 -5
  371. package/flow-typed/katex.js +6 -6
  372. package/flow-typed/mathquill.js +5 -5
  373. package/flow-typed/prosemirror-collab.js +5 -5
  374. package/flow-typed/prosemirror-commands.js +5 -5
  375. package/flow-typed/prosemirror-dev-tools.js +5 -5
  376. package/flow-typed/prosemirror-dropcursor.js +5 -5
  377. package/flow-typed/prosemirror-gapcursor.js +5 -5
  378. package/flow-typed/prosemirror-history.js +5 -5
  379. package/flow-typed/prosemirror-inputrules.js +5 -5
  380. package/flow-typed/prosemirror-keymap.js +5 -5
  381. package/flow-typed/prosemirror-model.js +5 -5
  382. package/flow-typed/prosemirror-state.js +5 -5
  383. package/flow-typed/prosemirror-tables.js +5 -5
  384. package/flow-typed/prosemirror-transform.js +5 -5
  385. package/flow-typed/prosemirror-utils.js +5 -5
  386. package/flow-typed/prosemirror-view.js +5 -5
  387. package/flow-typed/resize-observer-polyfill.js +5 -5
  388. package/flow-typed/uuid.js +5 -5
  389. package/jest.setup.js +5 -5
  390. package/licit/client/CustomLicitRuntime.js +95 -95
  391. package/licit/client/CustomStyleRuntime.js +136 -136
  392. package/licit/client/index.js +366 -366
  393. package/licit/index.html +11 -11
  394. package/licit/server/collab/instance.js +221 -221
  395. package/licit/server/collab/route.js +69 -69
  396. package/licit/server/collab/server.js +297 -297
  397. package/licit/server/collab/start.js +13 -13
  398. package/licit/server/customstyles/start.js +184 -184
  399. package/licit/server/image/start.js +58 -58
  400. package/lint.sh +4 -4
  401. package/package.json +165 -165
  402. package/run_collab_server.py +21 -21
  403. package/run_customstyle_server.py +20 -20
  404. package/run_image_server.py +20 -20
  405. package/run_web_server.py +25 -25
  406. package/scripts/build_bin.js +10 -10
  407. package/scripts/build_bin.py +103 -103
  408. package/scripts/ci_check_dist.sh +13 -13
  409. package/scripts/env.js +6 -6
  410. package/scripts/webserver.js +35 -35
  411. package/sonar-project.properties +11 -11
  412. package/src/BlockquoteInsertNewLineCommand.js +55 -55
  413. package/src/BlockquoteNodeSpec.js +30 -30
  414. package/src/BlockquoteToggleCommand.js +34 -34
  415. package/src/BookmarkNodeSpec.js +39 -39
  416. package/src/BulletListNodeSpec.js +61 -61
  417. package/src/CZIProseMirror.js +90 -90
  418. package/src/CodeBlockCommand.js +43 -43
  419. package/src/CodeBlockNodeSpec.js +24 -24
  420. package/src/CodeMarkSpec.js +14 -14
  421. package/src/ContentPlaceholderPlugin.js +187 -187
  422. package/src/CursorPlaceholderPlugin.js +115 -115
  423. package/src/DocLayoutCommand.js +94 -94
  424. package/src/DocNodeSpec.js +64 -64
  425. package/src/EMMarkSpec.js +14 -14
  426. package/src/EditorCommands.js +128 -128
  427. package/src/EditorKeyMap.js +187 -187
  428. package/src/EditorMarks.js +71 -71
  429. package/src/EditorNodes.js +60 -60
  430. package/src/EditorPageLayoutPlugin.js +67 -67
  431. package/src/EditorPlugins.js +8 -8
  432. package/src/EditorSchema.js +12 -12
  433. package/src/EditorState.js +7 -7
  434. package/src/FontSizeCommand.js +57 -57
  435. package/src/FontSizeMarkSpec.js +49 -49
  436. package/src/FontTypeCommand.js +100 -100
  437. package/src/FontTypeMarkSpec.js +80 -80
  438. package/src/HTMLMutator.js +59 -59
  439. package/src/HardBreakNodeSpec.js +15 -15
  440. package/src/HeadingCommand.js +51 -51
  441. package/src/HeadingNodeSpec.js +54 -54
  442. package/src/HistoryRedoCommand.js +20 -20
  443. package/src/HistoryUndoCommand.js +20 -20
  444. package/src/HorizontalRuleCommand.js +49 -49
  445. package/src/HorizontalRuleNodeSpec.js +39 -39
  446. package/src/ImageFromURLCommand.js +14 -14
  447. package/src/ImageNodeSpec.js +90 -90
  448. package/src/ImageSourceCommand.js +117 -117
  449. package/src/ImageUploadCommand.js +36 -36
  450. package/src/ImageUploadPlaceholderPlugin.js +192 -192
  451. package/src/IndentCommand.js +41 -41
  452. package/src/LinkMarkSpec.js +32 -32
  453. package/src/LinkSetURLCommand.js +103 -103
  454. package/src/LinkTooltipPlugin.js +203 -203
  455. package/src/ListItemInsertNewLineCommand.js +55 -55
  456. package/src/ListItemMergeCommand.js +177 -177
  457. package/src/ListItemNodeSpec.js +51 -51
  458. package/src/ListSplitCommand.js +32 -32
  459. package/src/ListToggleCommand.js +77 -77
  460. package/src/MarkNames.js +18 -18
  461. package/src/MarkToggleCommand.js +66 -66
  462. package/src/MarksClearCommand.js +42 -42
  463. package/src/MathEditCommand.js +110 -110
  464. package/src/MathNodeSpec.js +46 -46
  465. package/src/NodeNames.js +23 -23
  466. package/src/OrderedListNodeSpec.js +132 -132
  467. package/src/ParagraphNodeSpec.js +160 -160
  468. package/src/ParagraphSpacingCommand.js +121 -121
  469. package/src/PrintCommand.js +31 -31
  470. package/src/SelectionPlaceholderPlugin.js +131 -131
  471. package/src/SpacerMarkSpec.js +47 -47
  472. package/src/StrikeMarkSpec.js +21 -21
  473. package/src/StrongMarkSpec.js +25 -25
  474. package/src/StyleView.js +19 -19
  475. package/src/TableBackgroundColorCommand.js +75 -75
  476. package/src/TableBorderColorCommand.js +75 -75
  477. package/src/TableCellColorCommand.js +71 -71
  478. package/src/TableCellMenuPlugin.js +125 -125
  479. package/src/TableInsertCommand.js +112 -112
  480. package/src/TableMergeCellsCommand.js +90 -90
  481. package/src/TableNodesSpecs.js +78 -78
  482. package/src/TablePlugins.js +14 -14
  483. package/src/TableResizePlugin.js +631 -631
  484. package/src/TextAlignCommand.js +122 -122
  485. package/src/TextColorCommand.js +87 -87
  486. package/src/TextColorMarkSpec.js +35 -35
  487. package/src/TextHighlightCommand.js +91 -91
  488. package/src/TextHighlightMarkSpec.js +38 -38
  489. package/src/TextInsertTabSpaceCommand.js +83 -83
  490. package/src/TextLineSpacingCommand.js +157 -157
  491. package/src/TextNoWrapMarkSpec.js +14 -14
  492. package/src/TextNodeSpec.js +7 -7
  493. package/src/TextSelectionMarkSpec.js +24 -24
  494. package/src/TextSubMarkSpec.js +20 -20
  495. package/src/TextSuperMarkSpec.js +20 -20
  496. package/src/TextUnderlineMarkSpec.js +27 -27
  497. package/src/Types.js +75 -75
  498. package/src/WebFontLoader.js +22 -22
  499. package/src/applyMark.js +61 -61
  500. package/src/blockQuoteInputRule.js +36 -36
  501. package/src/browser.js +7 -7
  502. package/src/buildEditorPlugins.js +51 -51
  503. package/src/buildInputRules.js +81 -81
  504. package/src/clearMarks.js +128 -128
  505. package/src/client/CollabConnector.js +71 -70
  506. package/src/client/EditorConnection.js +307 -307
  507. package/src/client/Licit.js +578 -491
  508. package/src/client/Licit.test.js +67 -65
  509. package/src/client/Reporter.js +37 -37
  510. package/src/client/SimpleConnector.js +53 -53
  511. package/src/client/http.js +66 -66
  512. package/src/client/licit.css +12 -12
  513. package/src/client/throttle.js +27 -27
  514. package/src/compareNumber.js +11 -11
  515. package/src/consolidateListNodes.js +281 -281
  516. package/src/convertFromDOMElement.js +36 -36
  517. package/src/convertFromHTML.js +19 -19
  518. package/src/convertFromJSON.js +78 -78
  519. package/src/convertToCSSPTValue.js +22 -22
  520. package/src/convertToJSON.js +7 -7
  521. package/src/createCommand.js +40 -40
  522. package/src/createEditorKeyMap.js +94 -94
  523. package/src/createEmptyEditorState.js +35 -41
  524. package/src/createTableResizingPlugin.js +86 -86
  525. package/src/findActionableCell.js +74 -74
  526. package/src/findActiveMark.js +32 -32
  527. package/src/findNodesWithSameMark.js +89 -89
  528. package/src/hyphenize.js +17 -17
  529. package/src/index.js +10 -10
  530. package/src/insertTable.js +56 -56
  531. package/src/isBulletListNode.js +9 -9
  532. package/src/isEditorStateEmpty.js +32 -32
  533. package/src/isInsideListItem.js +13 -13
  534. package/src/isListNode.js +13 -13
  535. package/src/isNodeSelectionForNodeType.js +15 -15
  536. package/src/isOrderedListNode.js +9 -9
  537. package/src/isTableNode.js +15 -15
  538. package/src/isTextStyleMarkCommandEnabled.js +49 -49
  539. package/src/joinDown.js +27 -27
  540. package/src/joinListNode.js +55 -55
  541. package/src/joinUp.js +39 -39
  542. package/src/keymaps.js +185 -185
  543. package/src/lookUpElement.js +14 -14
  544. package/src/nodeAt.js +12 -12
  545. package/src/noop.js +5 -5
  546. package/src/normalizeHTML.js +78 -78
  547. package/src/patchAnchorElements.js +38 -38
  548. package/src/patchBreakElements.js +22 -22
  549. package/src/patchElementInlineStyles.js +92 -92
  550. package/src/patchListElements.js +276 -276
  551. package/src/patchMathElements.js +60 -60
  552. package/src/patchParagraphElements.js +20 -20
  553. package/src/patchStyleElements.js +194 -194
  554. package/src/patchTableElements.js +89 -89
  555. package/src/rebaseDocWithSteps.js +42 -42
  556. package/src/sanitizeURL.js +13 -13
  557. package/src/splitListItem.js +191 -191
  558. package/src/styles.css +19 -19
  559. package/src/styles0.css +29 -29
  560. package/src/toClosestFontPtSize.js +22 -22
  561. package/src/toSafeHTMLDocument.js +9 -9
  562. package/src/toggleBlockquote.js +91 -91
  563. package/src/toggleCodeBlock.js +102 -102
  564. package/src/toggleHeading.js +113 -113
  565. package/src/toggleList.js +450 -450
  566. package/src/transformAndPreserveTextSelection.js +151 -151
  567. package/src/ui/AlertInfo.js +64 -64
  568. package/src/ui/BookmarkNodeView.js +66 -66
  569. package/src/ui/ColorEditor.js +101 -101
  570. package/src/ui/CommandButton.js +68 -68
  571. package/src/ui/CommandMenu.js +75 -75
  572. package/src/ui/CommandMenuButton.js +131 -131
  573. package/src/ui/CustomButton.js +33 -33
  574. package/src/ui/CustomEditorView.js +28 -28
  575. package/src/ui/CustomMenu.js +17 -17
  576. package/src/ui/CustomMenuItem.js +36 -36
  577. package/src/ui/CustomNodeView.js +200 -200
  578. package/src/ui/CustomRadioButton.js +65 -65
  579. package/src/ui/DocLayoutEditor.js +146 -146
  580. package/src/ui/Editor.js +290 -291
  581. package/src/ui/EditorFrameset.js +81 -81
  582. package/src/ui/EditorToolbar.js +211 -211
  583. package/src/ui/EditorToolbarConfig.js +172 -172
  584. package/src/ui/FontSizeCommandMenuButton.js +66 -66
  585. package/src/ui/FontTypeCommandMenuButton.js +49 -49
  586. package/src/ui/Frag.js +13 -13
  587. package/src/ui/Icon.js +89 -89
  588. package/src/ui/ImageAlignEditor.js +60 -60
  589. package/src/ui/ImageInlineEditor.js +67 -67
  590. package/src/ui/ImageNodeView.js +404 -416
  591. package/src/ui/ImageResizeBox.js +219 -219
  592. package/src/ui/ImageURLEditor.js +119 -119
  593. package/src/ui/ImageUploadEditor.js +117 -117
  594. package/src/ui/KeyCodes.js +12 -12
  595. package/src/ui/LinkTooltip.js +85 -85
  596. package/src/ui/LinkURLEditor.js +111 -111
  597. package/src/ui/ListItemNodeView.js +98 -98
  598. package/src/ui/ListTypeButton.js +131 -131
  599. package/src/ui/ListTypeCommandButton.js +85 -85
  600. package/src/ui/ListTypeMenu.js +70 -70
  601. package/src/ui/LoadingIndicator.js +20 -20
  602. package/src/ui/MathEditor.js +78 -78
  603. package/src/ui/MathInlineEditor.js +102 -102
  604. package/src/ui/MathNodeView.js +175 -175
  605. package/src/ui/PasteMenu.js +57 -57
  606. package/src/ui/PointerSurface.js +141 -141
  607. package/src/ui/PopUp.js +77 -77
  608. package/src/ui/PopUpManager.js +213 -213
  609. package/src/ui/PopUpPosition.js +104 -104
  610. package/src/ui/ResizeObserver.js +106 -106
  611. package/src/ui/RichTextEditor.js +133 -133
  612. package/src/ui/SelectionObserver.js +134 -134
  613. package/src/ui/TableCellMenu.js +38 -38
  614. package/src/ui/TableGridSizeEditor.js +184 -184
  615. package/src/ui/TableNodeView.js +22 -22
  616. package/src/ui/TooltipSurface.js +76 -76
  617. package/src/ui/bindScrollHandler.js +46 -46
  618. package/src/ui/canUseCSSFont.js +43 -43
  619. package/src/ui/clamp.js +11 -11
  620. package/src/ui/createPopUp.js +205 -205
  621. package/src/ui/czi-animations.css +15 -15
  622. package/src/ui/czi-body-layout-editor.css +16 -16
  623. package/src/ui/czi-bookmark-view.css +10 -10
  624. package/src/ui/czi-color-editor.css +56 -56
  625. package/src/ui/czi-cursor-placeholder.css +36 -36
  626. package/src/ui/czi-custom-button.css +93 -93
  627. package/src/ui/czi-custom-menu-button.css +18 -18
  628. package/src/ui/czi-custom-menu-item.css +30 -30
  629. package/src/ui/czi-custom-menu.css +8 -8
  630. package/src/ui/czi-custom-radio-button.css +80 -80
  631. package/src/ui/czi-custom-scrollbar.css +21 -21
  632. package/src/ui/czi-editor-frameset.css +81 -81
  633. package/src/ui/czi-editor-toolbar.css +122 -122
  634. package/src/ui/czi-editor.css +220 -220
  635. package/src/ui/czi-form.css +104 -104
  636. package/src/ui/czi-frag.css +3 -3
  637. package/src/ui/czi-heading.css +40 -40
  638. package/src/ui/czi-icon.css +72 -72
  639. package/src/ui/czi-image-resize-box.css +165 -165
  640. package/src/ui/czi-image-upload-editor.css +57 -57
  641. package/src/ui/czi-image-upload-placeholder.css +50 -50
  642. package/src/ui/czi-image-url-editor.css +38 -38
  643. package/src/ui/czi-image-view.css +125 -125
  644. package/src/ui/czi-indent.css +137 -137
  645. package/src/ui/czi-inline-editor.css +20 -20
  646. package/src/ui/czi-link-tooltip.css +71 -71
  647. package/src/ui/czi-list.css +410 -410
  648. package/src/ui/czi-loading-indicator.css +111 -111
  649. package/src/ui/czi-math-view.css +62 -62
  650. package/src/ui/czi-pop-up.css +32 -32
  651. package/src/ui/czi-selection-placeholder.css +24 -24
  652. package/src/ui/czi-table-cell-menu.css +14 -14
  653. package/src/ui/czi-table-grid-size-editor.css +37 -37
  654. package/src/ui/czi-table.css +86 -86
  655. package/src/ui/czi-tooltip-surface.css +45 -45
  656. package/src/ui/czi-vars.css +46 -46
  657. package/src/ui/findActiveFontSize.js +58 -58
  658. package/src/ui/findActiveFontType.js +38 -38
  659. package/src/ui/fonts.css +471 -471
  660. package/src/ui/handleEditorDrop.js +28 -28
  661. package/src/ui/handleEditorKeyDown.js +39 -39
  662. package/src/ui/handleEditorPaste.js +33 -33
  663. package/src/ui/htmlElementToRect.js +18 -18
  664. package/src/ui/icon-font.css +10 -10
  665. package/src/ui/injectStyleSheet.js +42 -42
  666. package/src/ui/isElementFullyVisible.js +23 -23
  667. package/src/ui/isOffline.js +8 -8
  668. package/src/ui/isReactClass.js +12 -12
  669. package/src/ui/listType.css +21 -21
  670. package/src/ui/mathquill-editor/MathQuillEditor.js +159 -159
  671. package/src/ui/mathquill-editor/MathQuillEditorSymbols.js +483 -483
  672. package/src/ui/mathquill-editor/MathQuillEditorSymbolsPanel.js +48 -48
  673. package/src/ui/mathquill-editor/czi-mathquill-editor-symbols-panel.css +39 -39
  674. package/src/ui/mathquill-editor/czi-mathquill-editor.css +50 -50
  675. package/src/ui/mathquill-editor/mathquill-import-kludge.js +24 -24
  676. package/src/ui/preventEventDefault.js +5 -5
  677. package/src/ui/rects.js +47 -47
  678. package/src/ui/renderLaTeXAsHTML.js +46 -46
  679. package/src/ui/resolveImage.js +123 -123
  680. package/src/ui/toCSSColor.js +51 -51
  681. package/src/ui/toCSSLineSpacing.js +82 -82
  682. package/src/ui/toHexColor.js +26 -26
  683. package/src/ui/uuid.js +9 -9
  684. package/src/updateIndentLevel.js +211 -211
  685. package/src/uuid.js +9 -9
  686. package/style-service.Dockerfile +26 -26
  687. package/utils/build_bin.js +9 -9
  688. package/utils/build_customstyle_server.js +71 -71
  689. package/utils/build_image_server.js +71 -71
  690. package/utils/build_licit_collab_server.js +75 -75
  691. package/utils/build_web_server.js +40 -40
  692. package/utils/env.js +6 -6
  693. package/webpack.config.js +126 -126
@@ -15,6 +15,10 @@ var _prosemirrorView = require("prosemirror-view");
15
15
 
16
16
  var React = _interopRequireWildcard(require("react"));
17
17
 
18
+ var _reactDom = _interopRequireDefault(require("react-dom"));
19
+
20
+ var _flatted = require("flatted");
21
+
18
22
  var _convertFromJSON = _interopRequireDefault(require("../convertFromJSON"));
19
23
 
20
24
  var _RichTextEditor = _interopRequireDefault(require("../ui/RichTextEditor"));
@@ -55,30 +59,30 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope
55
59
 
56
60
  const ATTR_OBJID = 'objectId';
57
61
  const ATTR_OBJMETADATA = 'objectMetaData';
58
- /**
59
- * LICIT properties:
60
- * docID {string} [] Collaborative Doument ID
61
- * collabServiceURL {string} [/collaboration-service] Collaboration Service URL
62
- * debug {boolean} [false] To enable/disable ProseMirror Debug Tools, available only in development.
63
- * width {string} [100%] Width of the editor.
64
- * height {string} [100%] Height of the editor.
65
- * readOnly {boolean} [false] To enable/disable editing mode.
66
- * onChange {@callback} [null] Fires after each significant change.
67
- * @param data {JSON} Modified document data.
68
- * onReady {@callback} [null] Fires when the editor is fully ready.
69
- * @param ref {LICIT} Rerefence of the editor.
70
- * data {JSON} [null] Document data to be loaded into the editor.
71
- * disabled {boolean} [false] Disable the editor.
72
- * embedded {boolean} [false] Disable/Enable inline behaviour.
73
- * plugins [plugins] External Plugins into the editor.
62
+ /**
63
+ * LICIT properties:
64
+ * docID {string} [] Collaborative Doument ID
65
+ * collabServiceURL {string} [/collaboration-service] Collaboration Service URL
66
+ * debug {boolean} [false] To enable/disable ProseMirror Debug Tools, available only in development.
67
+ * width {string} [100%] Width of the editor.
68
+ * height {string} [100%] Height of the editor.
69
+ * readOnly {boolean} [false] To enable/disable editing mode.
70
+ * onChange {@callback} [null] Fires after each significant change.
71
+ * @param data {JSON} Modified document data.
72
+ * onReady {@callback} [null] Fires when the editor is fully ready.
73
+ * @param ref {LICIT} Rerefence of the editor.
74
+ * data {JSON} [null] Document data to be loaded into the editor.
75
+ * disabled {boolean} [false] Disable the editor.
76
+ * embedded {boolean} [false] Disable/Enable inline behaviour.
77
+ * plugins [plugins] External Plugins into the editor.
74
78
  */
75
79
 
76
80
  class Licit extends React.Component {
77
81
  // This will be handy in updating document's content.
78
82
  // Flag to decide whether to skip shouldComponentUpdate
79
83
 
80
- /**
81
- * Provides access to prosemirror view.
84
+ /**
85
+ * Provides access to prosemirror view.
82
86
  */
83
87
  get editorView() {
84
88
  return this._editorView;
@@ -104,21 +108,25 @@ class Licit extends React.Component {
104
108
 
105
109
  _defineProperty(this, "_defaultEditorPlugins", void 0);
106
110
 
111
+ _defineProperty(this, "_devTools", void 0);
112
+
113
+ _defineProperty(this, "_applyDevTools", void 0);
114
+
107
115
  _defineProperty(this, "_popUp", null);
108
116
 
109
117
  _defineProperty(this, "setContent", function () {
110
118
  let content = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
111
-
119
+ // [FS] IRAD-1571 2021-09-27
120
+ // dispatch a transaction that MUST start from the view�s current state;
121
+ const editorState = _this._editorView.state;
112
122
  const {
113
123
  doc,
114
124
  schema
115
- } = _this._connector.getState();
116
-
125
+ } = editorState;
117
126
  let {
118
127
  tr
119
- } = _this._connector.getState();
120
-
121
- const document = content ? schema.nodeFromJSON(content) : schema.nodeFromJSON(_createEmptyEditorState.EMPTY_DOC_JSON);
128
+ } = editorState;
129
+ const document = schema.nodeFromJSON(content ? content : _createEmptyEditorState.EMPTY_DOC_JSON);
122
130
 
123
131
  const selection = _prosemirrorState.TextSelection.create(doc, 0, doc.content.size);
124
132
 
@@ -136,10 +144,10 @@ class Licit extends React.Component {
136
144
  const {
137
145
  transaction
138
146
  } = data;
139
- /*
140
- ** ProseMirror Debug Tool's Snapshot creates a new state and sets that to editor view's state.
141
- ** This results in the connector's state as an orphan and thus transaction mismatch error.
142
- ** To resolve check and update the connector's state to keep in sync.
147
+ /*
148
+ ** ProseMirror Debug Tool's Snapshot creates a new state and sets that to editor view's state.
149
+ ** This results in the connector's state as an orphan and thus transaction mismatch error.
150
+ ** To resolve check and update the connector's state to keep in sync.
143
151
  */
144
152
 
145
153
  if (this._editorView) {
@@ -165,14 +173,7 @@ class Licit extends React.Component {
165
173
 
166
174
  if (transaction.docChanged) {
167
175
  const docJson = transaction.doc.toJSON();
168
- let isEmpty = false;
169
-
170
- if (docJson.content && docJson.content.length === 1) {
171
- if (!docJson.content[0].content || docJson.content[0].content && docJson.content[0].content[0].text && '' === docJson.content[0].content[0].text.trim()) {
172
- isEmpty = true;
173
- }
174
- } // setCFlags is/was always the opposite of isEmpty.
175
-
176
+ const isEmpty = this.isDocEmpty(docJson); // setCFlags is/was always the opposite of isEmpty.
176
177
 
177
178
  if (isEmpty) {
178
179
  this.resetCounters(transaction);
@@ -198,28 +199,36 @@ class Licit extends React.Component {
198
199
  } = editorView;
199
200
  this._editorView = editorView;
200
201
  const tr = state.tr;
201
- const doc = state.doc;
202
- const trx = tr.setSelection(_prosemirrorState.TextSelection.create(doc, 0, doc.content.size));
203
- dispatch(trx.scrollIntoView());
204
- editorView.focus();
202
+ const doc = state.doc; // [FS] IRAD-1710 2022-03-04
205
203
 
206
- if (this.state.onReadyCB) {
207
- this.state.onReadyCB(this);
208
- }
204
+ if (!this.isDocEmpty(doc.toJSON())) {
205
+ const trx = tr.setSelection(_prosemirrorState.TextSelection.create(doc, 0, doc.content.size));
206
+ dispatch(trx.scrollIntoView());
207
+ } // [FS] IRAD-1578 2021-09-27
208
+ // In collab mode, fire onRead only after getting the response from collab server.
209
209
 
210
- if (this.state.debug) {
211
- // import dynamically
212
- Promise.resolve().then(() => _interopRequireWildcard(require('prosemirror-dev-tools'))).then(prosemirrorDevTools => {
213
- window.debugProseMirror = () => {
214
- prosemirrorDevTools.applyDevTools(editorView);
215
- };
216
210
 
217
- window.debugProseMirror();
218
- });
211
+ if (this.state.onReadyCB && this.state.docID === '') {
212
+ editorView.focus();
213
+ this.state.onReadyCB(this);
219
214
  }
215
+
216
+ this.initDevTool(this.state.debug, editorView);
220
217
  });
221
218
 
222
219
  _defineProperty(this, "setProps", props => {
220
+ // [FS] IRAD-1571 2021-10-08
221
+ // Since the debug lies outside the editor,
222
+ // any change to debug tool must be refreshed here.
223
+ if (this.state.debug !== props.debug) {
224
+ // change in debug flag.
225
+ if (props.debug) {
226
+ this.initDevTool(true, this._editorView);
227
+ } else {
228
+ this.destroyDevTool();
229
+ }
230
+ }
231
+
223
232
  if (this.state.readOnly) {
224
233
  // It should be possible to load content into the editor in readonly as well.
225
234
  // It should not be necessary to make the component writable any time during the process
@@ -290,7 +299,8 @@ class Licit extends React.Component {
290
299
  this._connector = collaborative ? new _CollabConnector.default(editorState, setState, {
291
300
  docID,
292
301
  collabServiceURL
293
- }, this._defaultEditorSchema, this._defaultEditorPlugins) : new _SimpleConnector.default(editorState, setState); // FS IRAD-989 2020-18-06
302
+ }, this._defaultEditorSchema, this._defaultEditorPlugins, // [FS] IRAD-1578 2021-09-27
303
+ this.onReady.bind(this)) : new _SimpleConnector.default(editorState, setState); // FS IRAD-989 2020-18-06
294
304
  // updating properties should automatically render the changes
295
305
 
296
306
  this.state = {
@@ -314,6 +324,19 @@ class Licit extends React.Component {
314
324
  // Use known editorState to update schema.
315
325
  this._connector.updateSchema(editorState.schema);
316
326
  }
327
+ } // [FS] IRAD-1578 2021-09-27
328
+
329
+
330
+ onReady(state) {
331
+ const collabEditing = this.state.docID !== '';
332
+
333
+ if (collabEditing) {
334
+ this._editorView && this._editorView.focus();
335
+
336
+ if (this.state.onReadyCB) {
337
+ this.state.onReadyCB(this);
338
+ }
339
+ }
317
340
  } // [FS] IRAD-1067 2020-09-19
318
341
  // Alert funtion to show document is corrupted
319
342
 
@@ -403,14 +426,15 @@ class Licit extends React.Component {
403
426
  // Only interested if properties are set from outside.
404
427
  if (!this._skipSCU) {
405
428
  this._skipSCU = false;
406
- let dataChanged = false; // Compare data, if found difference, update editorState
407
-
408
- if (this.state.data !== nextState.data) {
409
- dataChanged = true;
410
- } else if (null === nextState.data) {
411
- if (this.state.editorState.doc.textContent && 0 < this.state.editorState.doc.textContent.trim().length) {
412
- dataChanged = true;
413
- }
429
+ let dataChanged = false; // [FS] IRAD-1571 2021-09-27
430
+ // dispatch a transaction that MUST start from the view�s current state;
431
+ // [FS] IRAD-1589 2021-10-04
432
+ // Do a proper circular JSON comparison.
433
+
434
+ if ((0, _flatted.stringify)(this.state.data) !== (0, _flatted.stringify)(nextState.data)) {
435
+ const editorState = this._editorView.state;
436
+ const nextDoc = editorState.schema.nodeFromJSON(nextState.data ? nextState.data : _createEmptyEditorState.EMPTY_DOC_JSON);
437
+ dataChanged = !nextDoc.eq(editorState.doc);
414
438
  }
415
439
 
416
440
  if (dataChanged) {
@@ -421,9 +445,7 @@ class Licit extends React.Component {
421
445
  if (this.state.docID !== nextState.docID) {
422
446
  // Collaborative mode changed
423
447
  const collabEditing = nextState.docID !== '';
424
-
425
- const editorState = this._connector.getState();
426
-
448
+ const editorState = this._editorView.state;
427
449
  const setState = this.setState.bind(this);
428
450
  const docID = nextState.docID || '';
429
451
  const collabServiceURL = nextState.collabServiceURL || '/collaboration-service'; // create new connector
@@ -431,7 +453,8 @@ class Licit extends React.Component {
431
453
  this._connector = collabEditing ? new _CollabConnector.default(editorState, setState, {
432
454
  docID,
433
455
  collabServiceURL
434
- }, this._defaultEditorSchema, this._defaultEditorPlugins) : new _SimpleConnector.default(editorState, setState);
456
+ }, this._defaultEditorSchema, this._defaultEditorPlugins, // [FS] IRAD-1578 2021-09-27
457
+ this.onReady.bind(this)) : new _SimpleConnector.default(editorState, setState);
435
458
  }
436
459
  }
437
460
 
@@ -464,8 +487,22 @@ class Licit extends React.Component {
464
487
  });
465
488
  }
466
489
 
467
- // [FS] IRAD-1173 2021-02-25
490
+ isDocEmpty(docJson) {
491
+ let isEmpty = false;
492
+
493
+ if (docJson.content && docJson.content.length === 1) {
494
+ if (!docJson.content[0].content || docJson.content[0].content && // [FS] IRAD-1710 2022-03-04
495
+ // Empty if no content OR when the one & only text content is empty.
496
+ 1 === docJson.content[0].content.length && 'text' === docJson.content[0].content[0].type && docJson.content[0].content[0].text && '' === docJson.content[0].content[0].text) {
497
+ isEmpty = true;
498
+ }
499
+ }
500
+
501
+ return isEmpty;
502
+ } // [FS] IRAD-1173 2021-02-25
468
503
  // Bug fix: Transaction mismatch error when a dialog is opened and keep typing.
504
+
505
+
469
506
  closeOpenedPopupModels() {
470
507
  const element = document.getElementsByClassName('czi-pop-up-element')[0];
471
508
 
@@ -474,29 +511,76 @@ class Licit extends React.Component {
474
511
  }
475
512
  }
476
513
 
477
- componentWillUnmount() {
514
+ initDevTool(debug, editorView) {
515
+ // [FS] IRAD-1575 2021-09-27
516
+ if (debug) {
517
+ if (!this._devTools) {
518
+ this._devTools = new Promise(async (resolve, reject) => {
519
+ try {
520
+ // Method is exported as both the default and named, Using named
521
+ // for clarity and future proofing.
522
+ const {
523
+ applyDevTools
524
+ } = await Promise.resolve().then(() => _interopRequireWildcard(require('prosemirror-dev-tools'))); // got the pm dev tools instance.
525
+
526
+ this._applyDevTools = applyDevTools; // Attach debug tools to current editor instance.
527
+
528
+ this._applyDevTools(editorView);
529
+
530
+ resolve(() => {
531
+ // [FS] IRAD-1571 2021-10-08
532
+ // Prosemirror Dev Tools handles as if one only instance is used in a page and
533
+ // hence handling removal here gracefully.
534
+ const place = document.querySelector('.'.concat('__prosemirror-dev-tools__'));
535
+
536
+ if (place) {
537
+ _reactDom.default.unmountComponentAtNode(place);
538
+
539
+ place.innerHTML = '';
540
+ }
541
+ });
542
+ } catch (error) {
543
+ reject();
544
+ }
545
+ });
546
+ } // Attach debug tools to current editor instance.
547
+
548
+
549
+ if (this._devTools && this._applyDevTools) {
550
+ this._applyDevTools(editorView);
551
+ }
552
+ }
553
+ }
554
+
555
+ destroyDevTool() {
478
556
  // [FS] IRAD-1569 2021-09-15
479
557
  // Unmount dev tools when component is destroyed,
480
558
  // so that toggle effect is not occuring when the document is retrieved each time.
481
- if (this.state.debug) {
482
- // unmount dev
483
- window.debugProseMirror();
559
+ if (this._devTools) {
560
+ // Call the applyDevTools method again to trigger DOM removal
561
+ // prosemirror-dev-tools has outstanding pull-requests that affect
562
+ // dom removal. this may need to be addressed once those have been merged.
563
+ this._devTools.then(removeDevTools => removeDevTools());
484
564
  }
485
565
  }
486
- /**
487
- * LICIT properties:
488
- * docID {number} [0] Collaborative Doument ID
489
- * debug {boolean} [false] To enable/disable ProseMirror Debug Tools, available only in development.
490
- * width {string} [100%] Width of the editor.
491
- * height {height} [100%] Height of the editor.
492
- * readOnly {boolean} [false] To enable/disable editing mode.
493
- * onChange {@callback} [null] Fires after each significant change.
494
- * @param data {JSON} Modified document data.
495
- * onReady {@callback} [null] Fires when the editor is fully ready.
496
- * @param ref {LICIT} Rerefence of the editor.
497
- * data {JSON} [null] Document data to be loaded into the editor.
498
- * disabled {boolean} [false] Disable the editor.
499
- * embedded {boolean} [false] Disable/Enable inline behaviour.
566
+
567
+ componentWillUnmount() {
568
+ this.destroyDevTool();
569
+ }
570
+ /**
571
+ * LICIT properties:
572
+ * docID {number} [0] Collaborative Doument ID
573
+ * debug {boolean} [false] To enable/disable ProseMirror Debug Tools, available only in development.
574
+ * width {string} [100%] Width of the editor.
575
+ * height {height} [100%] Height of the editor.
576
+ * readOnly {boolean} [false] To enable/disable editing mode.
577
+ * onChange {@callback} [null] Fires after each significant change.
578
+ * @param data {JSON} Modified document data.
579
+ * onReady {@callback} [null] Fires when the editor is fully ready.
580
+ * @param ref {LICIT} Rerefence of the editor.
581
+ * data {JSON} [null] Document data to be loaded into the editor.
582
+ * disabled {boolean} [false] Disable the editor.
583
+ * embedded {boolean} [false] Disable/Enable inline behaviour.
500
584
  */
501
585
 
502
586