@modusoperandi/licit 0.14.17 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1062) hide show
  1. package/BlockquoteInsertNewLineCommand.js +87 -0
  2. package/BlockquoteInsertNewLineCommand.js.flow +77 -0
  3. package/BlockquoteNodeSpec.js +30 -0
  4. package/BlockquoteNodeSpec.js.flow +30 -0
  5. package/BlockquoteToggleCommand.js +63 -0
  6. package/BlockquoteToggleCommand.js.flow +56 -0
  7. package/BookmarkNodeSpec.js +40 -0
  8. package/BookmarkNodeSpec.js.flow +39 -0
  9. package/BulletListNodeSpec.js +51 -0
  10. package/BulletListNodeSpec.js.flow +61 -0
  11. package/CZIProseMirror.js +78 -0
  12. package/CZIProseMirror.js.flow +90 -0
  13. package/CodeBlockCommand.js +73 -0
  14. package/CodeBlockCommand.js.flow +65 -0
  15. package/CodeBlockNodeSpec.js +26 -0
  16. package/CodeMarkSpec.js +11 -0
  17. package/CodeMarkSpec.js.flow +14 -0
  18. package/ContentPlaceholderPlugin.js +186 -0
  19. package/ContentPlaceholderPlugin.js.flow +187 -0
  20. package/CursorPlaceholderPlugin.js +119 -0
  21. package/DocLayoutCommand.js +97 -0
  22. package/DocLayoutCommand.js.flow +99 -0
  23. package/DocNodeSpec.js +67 -0
  24. package/DocNodeSpec.js.flow +64 -0
  25. package/EMMarkSpec.js +15 -0
  26. package/EMMarkSpec.js.flow +14 -0
  27. package/EditorCommands.js +111 -0
  28. package/EditorCommands.js.flow +143 -0
  29. package/EditorKeyMap.js +74 -0
  30. package/EditorKeyMap.js.flow +187 -0
  31. package/EditorMarks.js +51 -0
  32. package/EditorMarks.js.flow +71 -0
  33. package/EditorNodes.js +47 -0
  34. package/EditorNodes.js.flow +59 -0
  35. package/EditorPageLayoutPlugin.js +78 -0
  36. package/EditorPageLayoutPlugin.js.flow +67 -0
  37. package/EditorPlugins.js +6 -0
  38. package/EditorPlugins.js.flow +8 -0
  39. package/EditorSchema.js +8 -0
  40. package/EditorSchema.js.flow +12 -0
  41. package/EditorState.js +3 -0
  42. package/FontSizeMarkSpec.js +38 -0
  43. package/FontSizeMarkSpec.js.flow +49 -0
  44. package/FontTypeMarkSpec.js +63 -0
  45. package/FontTypeMarkSpec.js.flow +80 -0
  46. package/HTMLMutator.js +67 -0
  47. package/HTMLMutator.js.flow +59 -0
  48. package/HardBreakNodeSpec.js +13 -0
  49. package/HeadingNodeSpec.js +57 -0
  50. package/HistoryRedoCommand.js +49 -0
  51. package/HistoryRedoCommand.js.flow +41 -0
  52. package/HistoryUndoCommand.js +49 -0
  53. package/HistoryUndoCommand.js.flow +41 -0
  54. package/HorizontalRuleCommand.js +78 -0
  55. package/HorizontalRuleCommand.js.flow +71 -0
  56. package/HorizontalRuleNodeSpec.js +31 -0
  57. package/ImageUploadPlaceholderPlugin.js +181 -0
  58. package/ImageUploadPlaceholderPlugin.js.flow +192 -0
  59. package/LinkMarkSpec.js +34 -0
  60. package/LinkMarkSpec.js.flow +32 -0
  61. package/LinkSetURLCommand.js +111 -0
  62. package/LinkSetURLCommand.js.flow +117 -0
  63. package/LinkTooltipPlugin.js +185 -0
  64. package/LinkTooltipPlugin.js.flow +190 -0
  65. package/ListItemInsertNewLineCommand.js +87 -0
  66. package/ListItemInsertNewLineCommand.js.flow +77 -0
  67. package/ListItemMergeCommand.js +191 -0
  68. package/ListItemMergeCommand.js.flow +199 -0
  69. package/ListItemNodeSpec.js +45 -0
  70. package/ListItemNodeSpec.js.flow +52 -0
  71. package/ListSplitCommand.js +55 -0
  72. package/ListSplitCommand.js.flow +54 -0
  73. package/ListToggleCommand.js +96 -0
  74. package/ListToggleCommand.js.flow +99 -0
  75. package/MarkNames.js +16 -0
  76. package/MarksClearCommand.js +65 -0
  77. package/MarksClearCommand.js.flow +65 -0
  78. package/MathEditCommand.js +116 -0
  79. package/MathEditCommand.js.flow +120 -0
  80. package/MathNodeSpec.js +49 -0
  81. package/MathNodeSpec.js.flow +46 -0
  82. package/NodeNames.js +21 -0
  83. package/OrderedListNodeSpec.js +117 -0
  84. package/OrderedListNodeSpec.js.flow +132 -0
  85. package/ParagraphNodeSpec.js +126 -0
  86. package/ParagraphNodeSpec.js.flow +156 -0
  87. package/ParagraphSpacingCommand.js +119 -0
  88. package/ParagraphSpacingCommand.js.flow +144 -0
  89. package/PrintCommand.js +58 -0
  90. package/PrintCommand.js.flow +53 -0
  91. package/SelectionPlaceholderPlugin.js +120 -0
  92. package/SpacerMarkSpec.js +39 -0
  93. package/SpacerMarkSpec.js.flow +47 -0
  94. package/StrikeMarkSpec.js +17 -0
  95. package/StrikeMarkSpec.js.flow +21 -0
  96. package/StrongMarkSpec.js +26 -0
  97. package/StrongMarkSpec.js.flow +25 -0
  98. package/StyleView.js +29 -0
  99. package/TableBackgroundColorCommand.js +81 -0
  100. package/TableBorderColorCommand.js +81 -0
  101. package/TableCellColorCommand.js +81 -0
  102. package/TableCellColorCommand.js.flow +75 -0
  103. package/TableCellMenuPlugin.js +137 -0
  104. package/TableCellMenuPlugin.js.flow +132 -0
  105. package/TableInsertCommand.js +124 -0
  106. package/TableInsertCommand.js.flow +120 -0
  107. package/TableMergeCellsCommand.js +116 -0
  108. package/TableMergeCellsCommand.js.flow +112 -0
  109. package/TableNodesSpecs.js +78 -0
  110. package/TableNodesSpecs.js.flow +78 -0
  111. package/TablePlugins.js +7 -0
  112. package/TablePlugins.js.flow +14 -0
  113. package/TableResizePlugin.js +542 -0
  114. package/TableResizePlugin.js.flow +632 -0
  115. package/TextColorMarkSpec.js +29 -0
  116. package/TextColorMarkSpec.js.flow +35 -0
  117. package/TextHighlightMarkSpec.js +31 -0
  118. package/TextHighlightMarkSpec.js.flow +38 -0
  119. package/TextInsertTabSpaceCommand.js +98 -0
  120. package/TextInsertTabSpaceCommand.js.flow +106 -0
  121. package/TextNoWrapMarkSpec.js +11 -0
  122. package/TextNoWrapMarkSpec.js.flow +14 -0
  123. package/TextNodeSpec.js +4 -0
  124. package/TextSelectionMarkSpec.js +18 -0
  125. package/TextSelectionMarkSpec.js.flow +24 -0
  126. package/TextSubMarkSpec.js +15 -0
  127. package/TextSubMarkSpec.js.flow +20 -0
  128. package/TextSuperMarkSpec.js +15 -0
  129. package/TextSuperMarkSpec.js.flow +20 -0
  130. package/TextUnderlineMarkSpec.js +21 -0
  131. package/TextUnderlineMarkSpec.js.flow +27 -0
  132. package/Types.js +72 -0
  133. package/WebFontLoader.js +32 -0
  134. package/blockQuoteInputRule.js +25 -0
  135. package/blockQuoteInputRule.js.flow +36 -0
  136. package/bom.xml +66662 -0
  137. package/browser.js +6 -0
  138. package/buildEditorPlugins.js +49 -0
  139. package/buildEditorPlugins.js.flow +49 -0
  140. package/buildInputRules.js +73 -0
  141. package/buildInputRules.js.flow +81 -0
  142. package/client/CollabConnector.js +85 -0
  143. package/client/CollabConnector.js.flow +90 -0
  144. package/client/EditorConnection.js +321 -0
  145. package/client/EditorConnection.js.flow +323 -0
  146. package/client/Licit.js +613 -0
  147. package/client/Licit.js.flow +643 -0
  148. package/client/Licit.test.js +104 -0
  149. package/client/Licit.test.js.flow +98 -0
  150. package/client/Reporter.js +50 -0
  151. package/client/SimpleConnector.js +55 -0
  152. package/client/http.js +90 -0
  153. package/client/throttle.js +20 -0
  154. package/convertFromDOMElement.js +26 -0
  155. package/convertFromDOMElement.js.flow +36 -0
  156. package/convertFromHTML.js +9 -0
  157. package/convertFromHTML.js.flow +17 -0
  158. package/convertFromJSON.js +40 -0
  159. package/convertFromJSON.js.flow +56 -0
  160. package/convertToCSSPTValue.js +18 -0
  161. package/convertToJSON.js +4 -0
  162. package/createCommand.js +59 -0
  163. package/createCommand.js.flow +62 -0
  164. package/createEditorKeyMap.js +54 -0
  165. package/createEditorKeyMap.js.flow +94 -0
  166. package/createEmptyEditorState.js +16 -0
  167. package/createEmptyEditorState.js.flow +31 -0
  168. package/createTableResizingPlugin.js +68 -0
  169. package/findActionableCell.js +53 -0
  170. package/findActionableCell.js.flow +74 -0
  171. package/findActiveMark.js +25 -0
  172. package/hyphenize.js +14 -0
  173. package/index.d.ts +6 -0
  174. package/index.js +8 -0
  175. package/insertTable.js +43 -0
  176. package/insertTable.js.flow +56 -0
  177. package/isEditorStateEmpty.js +28 -0
  178. package/isTableNode.js +6 -0
  179. package/joinDown.js +25 -0
  180. package/joinListNode.js +31 -0
  181. package/joinUp.js +30 -0
  182. package/keymaps.js +67 -0
  183. package/lookUpElement.js +9 -0
  184. package/nodeAt.js +9 -0
  185. package/normalizeHTML.js +63 -0
  186. package/normalizeHTML.js.flow +78 -0
  187. package/package.json +48 -34
  188. package/patchAnchorElements.js +29 -0
  189. package/patchAnchorElements.js.flow +38 -0
  190. package/patchBreakElements.js +20 -0
  191. package/patchElementInlineStyles.js +65 -0
  192. package/patchElementInlineStyles.js.flow +92 -0
  193. package/patchListElements.js +228 -0
  194. package/patchListElements.js.flow +276 -0
  195. package/patchMathElements.js +59 -0
  196. package/patchParagraphElements.js +13 -0
  197. package/patchParagraphElements.js.flow +20 -0
  198. package/patchStyleElements.js +152 -0
  199. package/patchStyleElements.js.flow +196 -0
  200. package/patchTableElements.js +86 -0
  201. package/patchTableElements.js.flow +89 -0
  202. package/rebaseDocWithSteps.js +25 -0
  203. package/sanitizeURL.js +10 -0
  204. package/splitListItem.js +170 -0
  205. package/splitListItem.js.flow +191 -0
  206. package/styles.css +19 -0
  207. package/styles0.css +29 -0
  208. package/toClosestFontPtSize.js +17 -0
  209. package/toClosestFontPtSize.js.flow +22 -0
  210. package/toSafeHTMLDocument.js +7 -0
  211. package/toggleBlockquote.js +75 -0
  212. package/toggleBlockquote.js.flow +108 -0
  213. package/toggleCodeBlock.js +75 -0
  214. package/ui/AlertInfo.js +69 -0
  215. package/ui/BookmarkNodeView.js +104 -0
  216. package/ui/BookmarkNodeView.js.flow +66 -0
  217. package/ui/CommandButton.js +76 -0
  218. package/ui/CommandMenu.js +94 -0
  219. package/ui/CommandMenu.js.flow +75 -0
  220. package/ui/CommandMenuButton.js +132 -0
  221. package/ui/CommandMenuButton.js.flow +131 -0
  222. package/ui/CustomEditorView.js +47 -0
  223. package/ui/CustomEditorView.js.flow +28 -0
  224. package/ui/CustomMenu.js +34 -0
  225. package/ui/CustomMenuItem.js +65 -0
  226. package/ui/CustomNodeView.js +237 -0
  227. package/ui/CustomNodeView.js.flow +200 -0
  228. package/ui/CustomRadioButton.js +78 -0
  229. package/ui/CustomRadioButton.js.flow +65 -0
  230. package/ui/DocLayoutEditor.js +147 -0
  231. package/ui/DocLayoutEditor.js.flow +146 -0
  232. package/ui/Editor.js +291 -0
  233. package/ui/Editor.js.flow +288 -0
  234. package/ui/EditorFrameset.js +96 -0
  235. package/ui/EditorToolbar.js +214 -0
  236. package/ui/EditorToolbar.js.flow +218 -0
  237. package/ui/EditorToolbarConfig.js +141 -0
  238. package/ui/EditorToolbarConfig.js.flow +164 -0
  239. package/ui/FontSizeCommandMenuButton.js +67 -0
  240. package/ui/FontSizeCommandMenuButton.js.flow +66 -0
  241. package/ui/FontTypeCommandMenuButton.js +65 -0
  242. package/ui/FontTypeCommandMenuButton.js.flow +61 -0
  243. package/ui/Frag.js +32 -0
  244. package/ui/Icon.js +145 -0
  245. package/ui/Icon.js.flow +89 -0
  246. package/ui/ImageInlineEditor.js +87 -0
  247. package/ui/KeyCodes.js +9 -0
  248. package/ui/LinkTooltip.js +113 -0
  249. package/ui/LinkTooltip.js.flow +85 -0
  250. package/ui/LinkURLEditor.js +114 -0
  251. package/ui/LinkURLEditor.js.flow +117 -0
  252. package/ui/ListItemNodeView.js +92 -0
  253. package/ui/ListItemNodeView.js.flow +98 -0
  254. package/ui/ListTypeButton.js +136 -0
  255. package/ui/ListTypeButton.js.flow +131 -0
  256. package/ui/ListTypeCommandButton.js +91 -0
  257. package/ui/ListTypeCommandButton.js.flow +85 -0
  258. package/ui/ListTypeMenu.js +85 -0
  259. package/ui/ListTypeMenu.js.flow +70 -0
  260. package/ui/LoadingIndicator.js +42 -0
  261. package/ui/MathEditor.js +92 -0
  262. package/ui/MathEditor.js.flow +78 -0
  263. package/ui/MathInlineEditor.js +123 -0
  264. package/ui/MathInlineEditor.js.flow +102 -0
  265. package/ui/MathNodeView.js +217 -0
  266. package/ui/MathNodeView.js.flow +186 -0
  267. package/ui/PasteMenu.js +74 -0
  268. package/ui/ResizeObserver.js +89 -0
  269. package/ui/RichTextEditor.js +125 -0
  270. package/ui/RichTextEditor.js.flow +133 -0
  271. package/ui/SelectionObserver.js +121 -0
  272. package/ui/TableCellMenu.js +64 -0
  273. package/ui/TableCellMenu.js.flow +51 -0
  274. package/ui/TableGridSizeEditor.js +212 -0
  275. package/ui/TableGridSizeEditor.js.flow +184 -0
  276. package/ui/TableNodeView.js +51 -0
  277. package/ui/bindScrollHandler.js +33 -0
  278. package/ui/canUseCSSFont.js +33 -0
  279. package/ui/czi-link-tooltip.css +71 -0
  280. package/ui/czi-table.css +87 -0
  281. package/ui/czi-vars.css +2 -0
  282. package/ui/findActiveFontSize.js +53 -0
  283. package/ui/findActiveFontSize.js.flow +58 -0
  284. package/ui/findActiveFontType.js +32 -0
  285. package/ui/findActiveFontType.js.flow +38 -0
  286. package/ui/handleEditorDrop.js +24 -0
  287. package/ui/handleEditorDrop.js.flow +28 -0
  288. package/ui/handleEditorKeyDown.js +20 -0
  289. package/ui/handleEditorKeyDown.js.flow +39 -0
  290. package/ui/handleEditorPaste.js +22 -0
  291. package/ui/handleEditorPaste.js.flow +33 -0
  292. package/ui/htmlElementToRect.js +17 -0
  293. package/ui/injectStyleSheet.js +37 -0
  294. package/ui/isElementFullyVisible.js +22 -0
  295. package/ui/isOffline.js +6 -0
  296. package/ui/isReactClass.js +10 -0
  297. package/ui/mathquill-editor/MathQuillEditor.js +187 -0
  298. package/ui/mathquill-editor/MathQuillEditor.js.flow +159 -0
  299. package/ui/mathquill-editor/MathQuillEditorSymbols.js +416 -0
  300. package/ui/mathquill-editor/MathQuillEditorSymbolsPanel.js +69 -0
  301. package/ui/mathquill-editor/MathQuillEditorSymbolsPanel.js.flow +50 -0
  302. package/ui/mathquill-editor/mathquill-import-kludge.js +21 -0
  303. package/ui/mathquill-editor/mathquill-import-kludge.js.flow +24 -0
  304. package/ui/renderLaTeXAsHTML.js +55 -0
  305. package/ui/renderLaTeXAsHTML.js.flow +46 -0
  306. package/ui/resolveImage.js +115 -0
  307. package/ui/toCSSColor.js +42 -0
  308. package/ui/toCSSLineSpacing.js +48 -0
  309. package/ui/toHexColor.js +22 -0
  310. package/ui/uuid.js +6 -0
  311. package/uuid.js +6 -0
  312. package/.babelrc +0 -54
  313. package/.dockerignore +0 -4
  314. package/.eslintignore +0 -3
  315. package/.eslintrc.js +0 -87
  316. package/.flowconfig +0 -37
  317. package/.gitattribute +0 -1
  318. package/.github/workflows/build.yml +0 -29
  319. package/.github/workflows/lint.yml +0 -30
  320. package/.prettierignore +0 -6
  321. package/.prettierrc +0 -5
  322. package/.stylelintignore +0 -2
  323. package/.stylelintrc.json +0 -14
  324. package/.travis.yml +0 -18
  325. package/CODEOWNERS +0 -40
  326. package/LICENSE +0 -22
  327. package/README.md +0 -304
  328. package/_config.yml +0 -1
  329. package/babel.config.json +0 -54
  330. package/build_collab_server.py +0 -7
  331. package/build_image_server.py +0 -7
  332. package/dist/BlockquoteInsertNewLineCommand.js +0 -65
  333. package/dist/BlockquoteInsertNewLineCommand.js.flow +0 -55
  334. package/dist/BlockquoteNodeSpec.js +0 -37
  335. package/dist/BlockquoteNodeSpec.js.flow +0 -30
  336. package/dist/BlockquoteToggleCommand.js +0 -41
  337. package/dist/BlockquoteToggleCommand.js.flow +0 -34
  338. package/dist/BookmarkNodeSpec.js +0 -50
  339. package/dist/BookmarkNodeSpec.js.flow +0 -39
  340. package/dist/BulletListNodeSpec.js +0 -59
  341. package/dist/BulletListNodeSpec.js.flow +0 -61
  342. package/dist/CZIProseMirror.js +0 -91
  343. package/dist/CZIProseMirror.js.flow +0 -90
  344. package/dist/CodeBlockCommand.js +0 -51
  345. package/dist/CodeBlockCommand.js.flow +0 -43
  346. package/dist/CodeBlockNodeSpec.js +0 -33
  347. package/dist/CodeMarkSpec.js +0 -18
  348. package/dist/CodeMarkSpec.js.flow +0 -14
  349. package/dist/ContentPlaceholderPlugin.js +0 -164
  350. package/dist/ContentPlaceholderPlugin.js.flow +0 -187
  351. package/dist/CursorPlaceholderPlugin.js +0 -114
  352. package/dist/DocLayoutCommand.js +0 -88
  353. package/dist/DocLayoutCommand.js.flow +0 -94
  354. package/dist/DocNodeSpec.js +0 -79
  355. package/dist/DocNodeSpec.js.flow +0 -64
  356. package/dist/EMMarkSpec.js +0 -22
  357. package/dist/EMMarkSpec.js.flow +0 -14
  358. package/dist/EditorCommands.js +0 -175
  359. package/dist/EditorCommands.js.flow +0 -124
  360. package/dist/EditorKeyMap.js +0 -112
  361. package/dist/EditorKeyMap.js.flow +0 -187
  362. package/dist/EditorMarks.js +0 -80
  363. package/dist/EditorMarks.js.flow +0 -71
  364. package/dist/EditorNodes.js +0 -68
  365. package/dist/EditorNodes.js.flow +0 -59
  366. package/dist/EditorPageLayoutPlugin.js +0 -72
  367. package/dist/EditorPageLayoutPlugin.js.flow +0 -67
  368. package/dist/EditorPlugins.js +0 -13
  369. package/dist/EditorPlugins.js.flow +0 -8
  370. package/dist/EditorSchema.js +0 -16
  371. package/dist/EditorSchema.js.flow +0 -12
  372. package/dist/EditorState.js +0 -10
  373. package/dist/FontSizeMarkSpec.js +0 -47
  374. package/dist/FontSizeMarkSpec.js.flow +0 -49
  375. package/dist/FontTypeMarkSpec.js +0 -74
  376. package/dist/FontTypeMarkSpec.js.flow +0 -80
  377. package/dist/HTMLMutator.js +0 -58
  378. package/dist/HTMLMutator.js.flow +0 -59
  379. package/dist/HardBreakNodeSpec.js +0 -20
  380. package/dist/HeadingNodeSpec.js +0 -64
  381. package/dist/HistoryRedoCommand.js +0 -24
  382. package/dist/HistoryRedoCommand.js.flow +0 -20
  383. package/dist/HistoryUndoCommand.js +0 -24
  384. package/dist/HistoryUndoCommand.js.flow +0 -20
  385. package/dist/HorizontalRuleCommand.js +0 -58
  386. package/dist/HorizontalRuleCommand.js.flow +0 -49
  387. package/dist/HorizontalRuleNodeSpec.js +0 -38
  388. package/dist/ImageUploadPlaceholderPlugin.js +0 -176
  389. package/dist/ImageUploadPlaceholderPlugin.js.flow +0 -192
  390. package/dist/LinkMarkSpec.js +0 -41
  391. package/dist/LinkMarkSpec.js.flow +0 -32
  392. package/dist/LinkSetURLCommand.js +0 -100
  393. package/dist/LinkSetURLCommand.js.flow +0 -103
  394. package/dist/LinkTooltipPlugin.js +0 -180
  395. package/dist/LinkTooltipPlugin.js.flow +0 -192
  396. package/dist/ListItemInsertNewLineCommand.js +0 -65
  397. package/dist/ListItemInsertNewLineCommand.js.flow +0 -55
  398. package/dist/ListItemMergeCommand.js +0 -183
  399. package/dist/ListItemMergeCommand.js.flow +0 -177
  400. package/dist/ListItemNodeSpec.js +0 -57
  401. package/dist/ListItemNodeSpec.js.flow +0 -52
  402. package/dist/ListSplitCommand.js +0 -36
  403. package/dist/ListSplitCommand.js.flow +0 -32
  404. package/dist/ListToggleCommand.js +0 -81
  405. package/dist/ListToggleCommand.js.flow +0 -77
  406. package/dist/MarkNames.js +0 -37
  407. package/dist/MarksClearCommand.js +0 -42
  408. package/dist/MarksClearCommand.js.flow +0 -42
  409. package/dist/MathEditCommand.js +0 -108
  410. package/dist/MathEditCommand.js.flow +0 -110
  411. package/dist/MathNodeSpec.js +0 -57
  412. package/dist/MathNodeSpec.js.flow +0 -46
  413. package/dist/NodeNames.js +0 -47
  414. package/dist/OrderedListNodeSpec.js +0 -125
  415. package/dist/OrderedListNodeSpec.js.flow +0 -132
  416. package/dist/ParagraphNodeSpec.js +0 -151
  417. package/dist/ParagraphNodeSpec.js.flow +0 -156
  418. package/dist/ParagraphSpacingCommand.js +0 -106
  419. package/dist/ParagraphSpacingCommand.js.flow +0 -121
  420. package/dist/PrintCommand.js +0 -33
  421. package/dist/PrintCommand.js.flow +0 -31
  422. package/dist/SelectionPlaceholderPlugin.js +0 -111
  423. package/dist/SpacerMarkSpec.js +0 -50
  424. package/dist/SpacerMarkSpec.js.flow +0 -47
  425. package/dist/StrikeMarkSpec.js +0 -24
  426. package/dist/StrikeMarkSpec.js.flow +0 -21
  427. package/dist/StrongMarkSpec.js +0 -29
  428. package/dist/StrongMarkSpec.js.flow +0 -25
  429. package/dist/StyleView.js +0 -23
  430. package/dist/TableBackgroundColorCommand.js +0 -65
  431. package/dist/TableBorderColorCommand.js +0 -65
  432. package/dist/TableCellColorCommand.js +0 -62
  433. package/dist/TableCellColorCommand.js.flow +0 -71
  434. package/dist/TableCellMenuPlugin.js +0 -129
  435. package/dist/TableCellMenuPlugin.js.flow +0 -132
  436. package/dist/TableInsertCommand.js +0 -117
  437. package/dist/TableInsertCommand.js.flow +0 -112
  438. package/dist/TableMergeCellsCommand.js +0 -97
  439. package/dist/TableMergeCellsCommand.js.flow +0 -90
  440. package/dist/TableNodesSpecs.js +0 -91
  441. package/dist/TableNodesSpecs.js.flow +0 -78
  442. package/dist/TablePlugins.js +0 -14
  443. package/dist/TablePlugins.js.flow +0 -14
  444. package/dist/TableResizePlugin.js +0 -543
  445. package/dist/TableResizePlugin.js.flow +0 -632
  446. package/dist/TextColorMarkSpec.js +0 -39
  447. package/dist/TextColorMarkSpec.js.flow +0 -35
  448. package/dist/TextHighlightMarkSpec.js +0 -42
  449. package/dist/TextHighlightMarkSpec.js.flow +0 -38
  450. package/dist/TextInsertTabSpaceCommand.js +0 -78
  451. package/dist/TextInsertTabSpaceCommand.js.flow +0 -83
  452. package/dist/TextNoWrapMarkSpec.js +0 -18
  453. package/dist/TextNoWrapMarkSpec.js.flow +0 -14
  454. package/dist/TextNodeSpec.js +0 -11
  455. package/dist/TextSelectionMarkSpec.js +0 -25
  456. package/dist/TextSelectionMarkSpec.js.flow +0 -24
  457. package/dist/TextSubMarkSpec.js +0 -22
  458. package/dist/TextSubMarkSpec.js.flow +0 -20
  459. package/dist/TextSuperMarkSpec.js +0 -22
  460. package/dist/TextSuperMarkSpec.js.flow +0 -20
  461. package/dist/TextUnderlineMarkSpec.js +0 -28
  462. package/dist/TextUnderlineMarkSpec.js.flow +0 -27
  463. package/dist/Types.js +0 -81
  464. package/dist/WebFontLoader.js +0 -28
  465. package/dist/blockQuoteInputRule.js +0 -35
  466. package/dist/blockQuoteInputRule.js.flow +0 -36
  467. package/dist/bom.xml +0 -14724
  468. package/dist/browser.js +0 -11
  469. package/dist/buildEditorPlugins.js +0 -44
  470. package/dist/buildEditorPlugins.js.flow +0 -49
  471. package/dist/buildInputRules.js +0 -72
  472. package/dist/buildInputRules.js.flow +0 -81
  473. package/dist/client/CollabConnector.js +0 -80
  474. package/dist/client/CollabConnector.js.flow +0 -90
  475. package/dist/client/EditorConnection.js +0 -290
  476. package/dist/client/EditorConnection.js.flow +0 -323
  477. package/dist/client/Licit.js +0 -621
  478. package/dist/client/Licit.js.flow +0 -708
  479. package/dist/client/Licit.test.js +0 -98
  480. package/dist/client/Licit.test.js.flow +0 -98
  481. package/dist/client/Reporter.js +0 -36
  482. package/dist/client/SimpleConnector.js +0 -59
  483. package/dist/client/http.js +0 -101
  484. package/dist/client/throttle.js +0 -26
  485. package/dist/convertFromDOMElement.js +0 -31
  486. package/dist/convertFromDOMElement.js.flow +0 -36
  487. package/dist/convertFromHTML.js +0 -15
  488. package/dist/convertFromHTML.js.flow +0 -17
  489. package/dist/convertFromJSON.js +0 -45
  490. package/dist/convertFromJSON.js.flow +0 -56
  491. package/dist/convertToCSSPTValue.js +0 -27
  492. package/dist/convertToJSON.js +0 -10
  493. package/dist/createCommand.js +0 -33
  494. package/dist/createCommand.js.flow +0 -40
  495. package/dist/createEditorKeyMap.js +0 -80
  496. package/dist/createEditorKeyMap.js.flow +0 -94
  497. package/dist/createEmptyEditorState.js +0 -24
  498. package/dist/createEmptyEditorState.js.flow +0 -31
  499. package/dist/createTableResizingPlugin.js +0 -79
  500. package/dist/findActionableCell.js +0 -65
  501. package/dist/findActionableCell.js.flow +0 -74
  502. package/dist/findActiveMark.js +0 -29
  503. package/dist/fonts/aclonica/Aclonica.woff2 +0 -0
  504. package/dist/fonts/acme/Acme.woff2 +0 -0
  505. package/dist/fonts/alegreya/Alegreya-Regular-C.woff2 +0 -0
  506. package/dist/fonts/alegreya/Alegreya-Regular-CE.woff2 +0 -0
  507. package/dist/fonts/alegreya/Alegreya-Regular-G.woff2 +0 -0
  508. package/dist/fonts/alegreya/Alegreya-Regular-GE.woff2 +0 -0
  509. package/dist/fonts/alegreya/Alegreya-Regular-L.woff2 +0 -0
  510. package/dist/fonts/alegreya/Alegreya-Regular-LE.woff2 +0 -0
  511. package/dist/fonts/alegreya/Alegreya-Regular-V.woff2 +0 -0
  512. package/dist/fonts/arial-black/ArialBlack-G.woff2 +0 -0
  513. package/dist/fonts/arial-black/ArialBlack-L.woff2 +0 -0
  514. package/dist/fonts/arial-black/ArialBlack-LE.woff2 +0 -0
  515. package/dist/fonts/courier-new/CourierNew-L.woff2 +0 -0
  516. package/dist/fonts/georgia/Georgia-C.woff2 +0 -0
  517. package/dist/fonts/georgia/Georgia-CE.woff2 +0 -0
  518. package/dist/fonts/georgia/Georgia-G.woff2 +0 -0
  519. package/dist/fonts/georgia/Georgia-GE.woff2 +0 -0
  520. package/dist/fonts/georgia/Georgia-L.woff2 +0 -0
  521. package/dist/fonts/georgia/Georgia-LE.woff2 +0 -0
  522. package/dist/fonts/material-icons/MaterialIcons-Regular.ttf +0 -0
  523. package/dist/fonts/tahoma/Tahoma-C.woff2 +0 -0
  524. package/dist/fonts/tahoma/Tahoma-CE.woff2 +0 -0
  525. package/dist/fonts/tahoma/Tahoma-G.woff2 +0 -0
  526. package/dist/fonts/tahoma/Tahoma-GE.woff2 +0 -0
  527. package/dist/fonts/tahoma/Tahoma-L.woff2 +0 -0
  528. package/dist/fonts/tahoma/Tahoma-LE.woff2 +0 -0
  529. package/dist/fonts/times/Times-L.woff2 +0 -0
  530. package/dist/fonts/times/Times-LE.woff2 +0 -0
  531. package/dist/fonts/times-new-roman/TimesNewRoman-C.woff2 +0 -0
  532. package/dist/fonts/times-new-roman/TimesNewRoman-CE.woff2 +0 -0
  533. package/dist/fonts/times-new-roman/TimesNewRoman-G.woff2 +0 -0
  534. package/dist/fonts/times-new-roman/TimesNewRoman-GE.woff2 +0 -0
  535. package/dist/fonts/times-new-roman/TimesNewRoman-L.woff2 +0 -0
  536. package/dist/fonts/times-new-roman/TimesNewRoman-LE.woff2 +0 -0
  537. package/dist/fonts/times-new-roman/TimesNewRoman-V.woff2 +0 -0
  538. package/dist/fonts/verdana/Verdana-C.woff2 +0 -0
  539. package/dist/fonts/verdana/Verdana-CE.woff2 +0 -0
  540. package/dist/fonts/verdana/Verdana-G.woff2 +0 -0
  541. package/dist/fonts/verdana/Verdana-GE.woff2 +0 -0
  542. package/dist/fonts/verdana/Verdana-L.woff2 +0 -0
  543. package/dist/fonts/verdana/Verdana-LE.woff2 +0 -0
  544. package/dist/fonts/verdana/Verdana-V.woff2 +0 -0
  545. package/dist/hyphenize.js +0 -20
  546. package/dist/index.js +0 -80
  547. package/dist/insertTable.js +0 -50
  548. package/dist/insertTable.js.flow +0 -56
  549. package/dist/isEditorStateEmpty.js +0 -38
  550. package/dist/isTableNode.js +0 -12
  551. package/dist/joinDown.js +0 -28
  552. package/dist/joinListNode.js +0 -38
  553. package/dist/joinUp.js +0 -33
  554. package/dist/keymaps.js +0 -106
  555. package/dist/lookUpElement.js +0 -15
  556. package/dist/nodeAt.js +0 -15
  557. package/dist/normalizeHTML.js +0 -70
  558. package/dist/normalizeHTML.js.flow +0 -78
  559. package/dist/patchAnchorElements.js +0 -37
  560. package/dist/patchAnchorElements.js.flow +0 -38
  561. package/dist/patchBreakElements.js +0 -28
  562. package/dist/patchElementInlineStyles.js +0 -70
  563. package/dist/patchElementInlineStyles.js.flow +0 -92
  564. package/dist/patchListElements.js +0 -248
  565. package/dist/patchListElements.js.flow +0 -276
  566. package/dist/patchMathElements.js +0 -69
  567. package/dist/patchParagraphElements.js +0 -21
  568. package/dist/patchParagraphElements.js.flow +0 -20
  569. package/dist/patchStyleElements.js +0 -162
  570. package/dist/patchStyleElements.js.flow +0 -194
  571. package/dist/patchTableElements.js +0 -98
  572. package/dist/patchTableElements.js.flow +0 -89
  573. package/dist/rebaseDocWithSteps.js +0 -32
  574. package/dist/sanitizeURL.js +0 -16
  575. package/dist/splitListItem.js +0 -180
  576. package/dist/splitListItem.js.flow +0 -191
  577. package/dist/styles.css +0 -19
  578. package/dist/styles0.css +0 -29
  579. package/dist/toClosestFontPtSize.js +0 -25
  580. package/dist/toClosestFontPtSize.js.flow +0 -22
  581. package/dist/toSafeHTMLDocument.js +0 -13
  582. package/dist/toggleBlockquote.js +0 -86
  583. package/dist/toggleBlockquote.js.flow +0 -91
  584. package/dist/toggleCodeBlock.js +0 -89
  585. package/dist/ui/AlertInfo.js +0 -59
  586. package/dist/ui/BookmarkNodeView.js +0 -77
  587. package/dist/ui/BookmarkNodeView.js.flow +0 -66
  588. package/dist/ui/CommandButton.js +0 -65
  589. package/dist/ui/CommandMenu.js +0 -83
  590. package/dist/ui/CommandMenu.js.flow +0 -75
  591. package/dist/ui/CommandMenuButton.js +0 -120
  592. package/dist/ui/CommandMenuButton.js.flow +0 -131
  593. package/dist/ui/CustomEditorView.js +0 -34
  594. package/dist/ui/CustomEditorView.js.flow +0 -28
  595. package/dist/ui/CustomMenu.js +0 -23
  596. package/dist/ui/CustomMenuItem.js +0 -43
  597. package/dist/ui/CustomNodeView.js +0 -193
  598. package/dist/ui/CustomNodeView.js.flow +0 -200
  599. package/dist/ui/CustomRadioButton.js +0 -67
  600. package/dist/ui/CustomRadioButton.js.flow +0 -65
  601. package/dist/ui/DocLayoutEditor.js +0 -142
  602. package/dist/ui/DocLayoutEditor.js.flow +0 -146
  603. package/dist/ui/Editor.js +0 -289
  604. package/dist/ui/Editor.js.flow +0 -288
  605. package/dist/ui/EditorFrameset.js +0 -86
  606. package/dist/ui/EditorToolbar.js +0 -206
  607. package/dist/ui/EditorToolbar.js.flow +0 -211
  608. package/dist/ui/EditorToolbarConfig.js +0 -148
  609. package/dist/ui/EditorToolbarConfig.js.flow +0 -164
  610. package/dist/ui/FontSizeCommandMenuButton.js +0 -57
  611. package/dist/ui/FontSizeCommandMenuButton.js.flow +0 -66
  612. package/dist/ui/FontTypeCommandMenuButton.js +0 -55
  613. package/dist/ui/FontTypeCommandMenuButton.js.flow +0 -49
  614. package/dist/ui/Frag.js +0 -19
  615. package/dist/ui/Icon.js +0 -104
  616. package/dist/ui/Icon.js.flow +0 -89
  617. package/dist/ui/ImageInlineEditor.js +0 -76
  618. package/dist/ui/KeyCodes.js +0 -23
  619. package/dist/ui/LinkTooltip.js +0 -92
  620. package/dist/ui/LinkTooltip.js.flow +0 -85
  621. package/dist/ui/LinkURLEditor.js +0 -107
  622. package/dist/ui/LinkURLEditor.js.flow +0 -111
  623. package/dist/ui/ListItemNodeView.js +0 -91
  624. package/dist/ui/ListItemNodeView.js.flow +0 -98
  625. package/dist/ui/ListTypeButton.js +0 -123
  626. package/dist/ui/ListTypeButton.js.flow +0 -131
  627. package/dist/ui/ListTypeCommandButton.js +0 -81
  628. package/dist/ui/ListTypeCommandButton.js.flow +0 -85
  629. package/dist/ui/ListTypeMenu.js +0 -72
  630. package/dist/ui/ListTypeMenu.js.flow +0 -70
  631. package/dist/ui/LoadingIndicator.js +0 -28
  632. package/dist/ui/MathEditor.js +0 -80
  633. package/dist/ui/MathEditor.js.flow +0 -78
  634. package/dist/ui/MathInlineEditor.js +0 -111
  635. package/dist/ui/MathInlineEditor.js.flow +0 -102
  636. package/dist/ui/MathNodeView.js +0 -190
  637. package/dist/ui/MathNodeView.js.flow +0 -175
  638. package/dist/ui/PasteMenu.js +0 -56
  639. package/dist/ui/ResizeObserver.js +0 -94
  640. package/dist/ui/RichTextEditor.js +0 -121
  641. package/dist/ui/RichTextEditor.js.flow +0 -133
  642. package/dist/ui/SelectionObserver.js +0 -116
  643. package/dist/ui/TableCellMenu.js +0 -53
  644. package/dist/ui/TableCellMenu.js.flow +0 -51
  645. package/dist/ui/TableGridSizeEditor.js +0 -191
  646. package/dist/ui/TableGridSizeEditor.js.flow +0 -184
  647. package/dist/ui/TableNodeView.js +0 -31
  648. package/dist/ui/bindScrollHandler.js +0 -39
  649. package/dist/ui/canUseCSSFont.js +0 -37
  650. package/dist/ui/czi-link-tooltip.css +0 -71
  651. package/dist/ui/czi-table.css +0 -86
  652. package/dist/ui/czi-vars.css +0 -2
  653. package/dist/ui/findActiveFontSize.js +0 -61
  654. package/dist/ui/findActiveFontSize.js.flow +0 -58
  655. package/dist/ui/findActiveFontType.js +0 -42
  656. package/dist/ui/findActiveFontType.js.flow +0 -38
  657. package/dist/ui/handleEditorDrop.js +0 -33
  658. package/dist/ui/handleEditorDrop.js.flow +0 -28
  659. package/dist/ui/handleEditorKeyDown.js +0 -29
  660. package/dist/ui/handleEditorKeyDown.js.flow +0 -39
  661. package/dist/ui/handleEditorPaste.js +0 -30
  662. package/dist/ui/handleEditorPaste.js.flow +0 -33
  663. package/dist/ui/htmlElementToRect.js +0 -25
  664. package/dist/ui/injectStyleSheet.js +0 -46
  665. package/dist/ui/isElementFullyVisible.js +0 -29
  666. package/dist/ui/isOffline.js +0 -12
  667. package/dist/ui/isReactClass.js +0 -16
  668. package/dist/ui/mathquill-editor/MathQuillEditor.js +0 -148
  669. package/dist/ui/mathquill-editor/MathQuillEditor.js.flow +0 -159
  670. package/dist/ui/mathquill-editor/MathQuillEditorSymbols.js +0 -488
  671. package/dist/ui/mathquill-editor/MathQuillEditorSymbolsPanel.js +0 -60
  672. package/dist/ui/mathquill-editor/MathQuillEditorSymbolsPanel.js.flow +0 -48
  673. package/dist/ui/mathquill-editor/mathquill-import-kludge.js +0 -30
  674. package/dist/ui/mathquill-editor/mathquill-import-kludge.js.flow +0 -24
  675. package/dist/ui/renderLaTeXAsHTML.js +0 -45
  676. package/dist/ui/renderLaTeXAsHTML.js.flow +0 -46
  677. package/dist/ui/resolveImage.js +0 -125
  678. package/dist/ui/toCSSColor.js +0 -52
  679. package/dist/ui/toCSSLineSpacing.js +0 -59
  680. package/dist/ui/toHexColor.js +0 -29
  681. package/dist/ui/uuid.js +0 -12
  682. package/dist/uuid.js +0 -12
  683. package/flow-typed/@modusoperandilicit-customstyles.js +0 -5
  684. package/flow-typed/@modusoperandilicit-doc-attrs-step.js +0 -5
  685. package/flow-typed/@modusoperandilicit-ui-commands.js +0 -5
  686. package/flow-typed/create-emotion.js +0 -5
  687. package/flow-typed/docs-editor.js +0 -3
  688. package/flow-typed/draft-convert.js +0 -3
  689. package/flow-typed/draft-js.js +0 -3
  690. package/flow-typed/flatted.js +0 -5
  691. package/flow-typed/jquery.js +0 -5
  692. package/flow-typed/katex.js +0 -7
  693. package/flow-typed/mathquill.js +0 -5
  694. package/flow-typed/prosemirror-collab.js +0 -5
  695. package/flow-typed/prosemirror-commands.js +0 -5
  696. package/flow-typed/prosemirror-dev-tools.js +0 -5
  697. package/flow-typed/prosemirror-dropcursor.js +0 -5
  698. package/flow-typed/prosemirror-gapcursor.js +0 -5
  699. package/flow-typed/prosemirror-history.js +0 -5
  700. package/flow-typed/prosemirror-inputrules.js +0 -5
  701. package/flow-typed/prosemirror-keymap.js +0 -5
  702. package/flow-typed/prosemirror-model.js +0 -5
  703. package/flow-typed/prosemirror-state.js +0 -5
  704. package/flow-typed/prosemirror-tables.js +0 -5
  705. package/flow-typed/prosemirror-transform.js +0 -5
  706. package/flow-typed/prosemirror-utils.js +0 -5
  707. package/flow-typed/prosemirror-view.js +0 -5
  708. package/flow-typed/resize-observer-polyfill.js +0 -5
  709. package/flow-typed/uuid.js +0 -5
  710. package/jest.config.js +0 -207
  711. package/jest.setup.js +0 -5
  712. package/licit/client/CustomLicitRuntime.js +0 -298
  713. package/licit/client/CustomStyleRuntime.js +0 -136
  714. package/licit/client/index.js +0 -367
  715. package/licit/index.html +0 -11
  716. package/licit/server/collab/instance.js +0 -236
  717. package/licit/server/collab/route.js +0 -69
  718. package/licit/server/collab/server.js +0 -317
  719. package/licit/server/collab/start.js +0 -13
  720. package/licit/server/image/start.js +0 -58
  721. package/lint.sh +0 -4
  722. package/run_collab_server.py +0 -21
  723. package/run_image_server.py +0 -20
  724. package/run_web_server.py +0 -25
  725. package/scripts/build_bin.js +0 -10
  726. package/scripts/build_bin.py +0 -103
  727. package/scripts/ci_check_dist.sh +0 -14
  728. package/scripts/env.js +0 -6
  729. package/scripts/webserver.js +0 -35
  730. package/sonar-project.properties +0 -12
  731. package/src/BlockquoteInsertNewLineCommand.js +0 -55
  732. package/src/BlockquoteNodeSpec.js +0 -30
  733. package/src/BlockquoteToggleCommand.js +0 -34
  734. package/src/BookmarkNodeSpec.js +0 -39
  735. package/src/BulletListNodeSpec.js +0 -61
  736. package/src/CZIProseMirror.js +0 -90
  737. package/src/CodeBlockCommand.js +0 -43
  738. package/src/CodeBlockNodeSpec.js +0 -24
  739. package/src/CodeMarkSpec.js +0 -14
  740. package/src/ContentPlaceholderPlugin.js +0 -187
  741. package/src/CursorPlaceholderPlugin.js +0 -115
  742. package/src/DocLayoutCommand.js +0 -94
  743. package/src/DocNodeSpec.js +0 -64
  744. package/src/EMMarkSpec.js +0 -14
  745. package/src/EditorCommands.js +0 -124
  746. package/src/EditorKeyMap.js +0 -187
  747. package/src/EditorMarks.js +0 -71
  748. package/src/EditorNodes.js +0 -59
  749. package/src/EditorPageLayoutPlugin.js +0 -67
  750. package/src/EditorPlugins.js +0 -8
  751. package/src/EditorSchema.js +0 -12
  752. package/src/EditorState.js +0 -7
  753. package/src/FontSizeMarkSpec.js +0 -49
  754. package/src/FontTypeMarkSpec.js +0 -80
  755. package/src/HTMLMutator.js +0 -59
  756. package/src/HardBreakNodeSpec.js +0 -15
  757. package/src/HeadingNodeSpec.js +0 -52
  758. package/src/HistoryRedoCommand.js +0 -20
  759. package/src/HistoryUndoCommand.js +0 -20
  760. package/src/HorizontalRuleCommand.js +0 -49
  761. package/src/HorizontalRuleNodeSpec.js +0 -39
  762. package/src/ImageUploadPlaceholderPlugin.js +0 -192
  763. package/src/LinkMarkSpec.js +0 -32
  764. package/src/LinkSetURLCommand.js +0 -103
  765. package/src/LinkTooltipPlugin.js +0 -192
  766. package/src/ListItemInsertNewLineCommand.js +0 -55
  767. package/src/ListItemMergeCommand.js +0 -177
  768. package/src/ListItemNodeSpec.js +0 -52
  769. package/src/ListSplitCommand.js +0 -32
  770. package/src/ListToggleCommand.js +0 -77
  771. package/src/MarkNames.js +0 -18
  772. package/src/MarksClearCommand.js +0 -42
  773. package/src/MathEditCommand.js +0 -110
  774. package/src/MathNodeSpec.js +0 -46
  775. package/src/NodeNames.js +0 -23
  776. package/src/OrderedListNodeSpec.js +0 -132
  777. package/src/ParagraphNodeSpec.js +0 -156
  778. package/src/ParagraphSpacingCommand.js +0 -121
  779. package/src/PrintCommand.js +0 -31
  780. package/src/SelectionPlaceholderPlugin.js +0 -131
  781. package/src/SpacerMarkSpec.js +0 -47
  782. package/src/StrikeMarkSpec.js +0 -21
  783. package/src/StrongMarkSpec.js +0 -25
  784. package/src/StyleView.js +0 -19
  785. package/src/TableBackgroundColorCommand.js +0 -75
  786. package/src/TableBorderColorCommand.js +0 -75
  787. package/src/TableCellColorCommand.js +0 -71
  788. package/src/TableCellMenuPlugin.js +0 -132
  789. package/src/TableInsertCommand.js +0 -112
  790. package/src/TableMergeCellsCommand.js +0 -90
  791. package/src/TableNodesSpecs.js +0 -78
  792. package/src/TablePlugins.js +0 -14
  793. package/src/TableResizePlugin.js +0 -632
  794. package/src/TextColorMarkSpec.js +0 -35
  795. package/src/TextHighlightMarkSpec.js +0 -38
  796. package/src/TextInsertTabSpaceCommand.js +0 -83
  797. package/src/TextNoWrapMarkSpec.js +0 -14
  798. package/src/TextNodeSpec.js +0 -7
  799. package/src/TextSelectionMarkSpec.js +0 -24
  800. package/src/TextSubMarkSpec.js +0 -20
  801. package/src/TextSuperMarkSpec.js +0 -20
  802. package/src/TextUnderlineMarkSpec.js +0 -27
  803. package/src/Types.js +0 -75
  804. package/src/WebFontLoader.js +0 -22
  805. package/src/blockQuoteInputRule.js +0 -36
  806. package/src/browser.js +0 -7
  807. package/src/buildEditorPlugins.js +0 -49
  808. package/src/buildInputRules.js +0 -81
  809. package/src/client/CollabConnector.js +0 -90
  810. package/src/client/EditorConnection.js +0 -323
  811. package/src/client/Licit.js +0 -708
  812. package/src/client/Licit.test.js +0 -98
  813. package/src/client/Reporter.js +0 -37
  814. package/src/client/SimpleConnector.js +0 -61
  815. package/src/client/http.js +0 -70
  816. package/src/client/licit.css +0 -12
  817. package/src/client/throttle.js +0 -27
  818. package/src/convertFromDOMElement.js +0 -36
  819. package/src/convertFromHTML.js +0 -17
  820. package/src/convertFromJSON.js +0 -56
  821. package/src/convertToCSSPTValue.js +0 -22
  822. package/src/convertToJSON.js +0 -7
  823. package/src/createCommand.js +0 -40
  824. package/src/createEditorKeyMap.js +0 -94
  825. package/src/createEmptyEditorState.js +0 -31
  826. package/src/createTableResizingPlugin.js +0 -86
  827. package/src/findActionableCell.js +0 -74
  828. package/src/findActiveMark.js +0 -32
  829. package/src/hyphenize.js +0 -17
  830. package/src/index.js +0 -10
  831. package/src/insertTable.js +0 -56
  832. package/src/isEditorStateEmpty.js +0 -32
  833. package/src/isTableNode.js +0 -15
  834. package/src/joinDown.js +0 -27
  835. package/src/joinListNode.js +0 -55
  836. package/src/joinUp.js +0 -39
  837. package/src/keymaps.js +0 -185
  838. package/src/lookUpElement.js +0 -14
  839. package/src/nodeAt.js +0 -12
  840. package/src/normalizeHTML.js +0 -78
  841. package/src/patchAnchorElements.js +0 -38
  842. package/src/patchBreakElements.js +0 -22
  843. package/src/patchElementInlineStyles.js +0 -92
  844. package/src/patchListElements.js +0 -276
  845. package/src/patchMathElements.js +0 -60
  846. package/src/patchParagraphElements.js +0 -20
  847. package/src/patchStyleElements.js +0 -194
  848. package/src/patchTableElements.js +0 -89
  849. package/src/rebaseDocWithSteps.js +0 -42
  850. package/src/sanitizeURL.js +0 -13
  851. package/src/splitListItem.js +0 -191
  852. package/src/styles.css +0 -19
  853. package/src/styles0.css +0 -29
  854. package/src/toClosestFontPtSize.js +0 -22
  855. package/src/toSafeHTMLDocument.js +0 -9
  856. package/src/toggleBlockquote.js +0 -91
  857. package/src/toggleCodeBlock.js +0 -102
  858. package/src/ui/AlertInfo.js +0 -64
  859. package/src/ui/BookmarkNodeView.js +0 -66
  860. package/src/ui/CommandButton.js +0 -68
  861. package/src/ui/CommandMenu.js +0 -75
  862. package/src/ui/CommandMenuButton.js +0 -131
  863. package/src/ui/CustomEditorView.js +0 -28
  864. package/src/ui/CustomMenu.js +0 -17
  865. package/src/ui/CustomMenuItem.js +0 -36
  866. package/src/ui/CustomNodeView.js +0 -200
  867. package/src/ui/CustomRadioButton.js +0 -65
  868. package/src/ui/DocLayoutEditor.js +0 -146
  869. package/src/ui/Editor.js +0 -288
  870. package/src/ui/EditorFrameset.js +0 -81
  871. package/src/ui/EditorToolbar.js +0 -211
  872. package/src/ui/EditorToolbarConfig.js +0 -164
  873. package/src/ui/FontSizeCommandMenuButton.js +0 -66
  874. package/src/ui/FontTypeCommandMenuButton.js +0 -49
  875. package/src/ui/Frag.js +0 -13
  876. package/src/ui/Icon.js +0 -89
  877. package/src/ui/ImageInlineEditor.js +0 -67
  878. package/src/ui/KeyCodes.js +0 -12
  879. package/src/ui/LinkTooltip.js +0 -85
  880. package/src/ui/LinkURLEditor.js +0 -111
  881. package/src/ui/ListItemNodeView.js +0 -98
  882. package/src/ui/ListTypeButton.js +0 -131
  883. package/src/ui/ListTypeCommandButton.js +0 -85
  884. package/src/ui/ListTypeMenu.js +0 -70
  885. package/src/ui/LoadingIndicator.js +0 -20
  886. package/src/ui/MathEditor.js +0 -78
  887. package/src/ui/MathInlineEditor.js +0 -102
  888. package/src/ui/MathNodeView.js +0 -175
  889. package/src/ui/PasteMenu.js +0 -57
  890. package/src/ui/ResizeObserver.js +0 -106
  891. package/src/ui/RichTextEditor.js +0 -133
  892. package/src/ui/SelectionObserver.js +0 -134
  893. package/src/ui/TableCellMenu.js +0 -51
  894. package/src/ui/TableGridSizeEditor.js +0 -184
  895. package/src/ui/TableNodeView.js +0 -25
  896. package/src/ui/bindScrollHandler.js +0 -46
  897. package/src/ui/canUseCSSFont.js +0 -43
  898. package/src/ui/czi-body-layout-editor.css +0 -16
  899. package/src/ui/czi-bookmark-view.css +0 -10
  900. package/src/ui/czi-cursor-placeholder.css +0 -36
  901. package/src/ui/czi-custom-menu-button.css +0 -18
  902. package/src/ui/czi-custom-menu-item.css +0 -30
  903. package/src/ui/czi-custom-menu.css +0 -8
  904. package/src/ui/czi-custom-radio-button.css +0 -80
  905. package/src/ui/czi-custom-scrollbar.css +0 -21
  906. package/src/ui/czi-editor-frameset.css +0 -81
  907. package/src/ui/czi-editor-toolbar.css +0 -122
  908. package/src/ui/czi-editor.css +0 -220
  909. package/src/ui/czi-form.css +0 -107
  910. package/src/ui/czi-frag.css +0 -3
  911. package/src/ui/czi-heading.css +0 -40
  912. package/src/ui/czi-icon.css +0 -72
  913. package/src/ui/czi-image-resize-box.css +0 -165
  914. package/src/ui/czi-image-upload-editor.css +0 -57
  915. package/src/ui/czi-image-upload-placeholder.css +0 -50
  916. package/src/ui/czi-image-url-editor.css +0 -38
  917. package/src/ui/czi-image-view.css +0 -125
  918. package/src/ui/czi-indent.css +0 -137
  919. package/src/ui/czi-inline-editor.css +0 -20
  920. package/src/ui/czi-link-tooltip.css +0 -71
  921. package/src/ui/czi-list.css +0 -410
  922. package/src/ui/czi-loading-indicator.css +0 -111
  923. package/src/ui/czi-math-view.css +0 -62
  924. package/src/ui/czi-selection-placeholder.css +0 -24
  925. package/src/ui/czi-table-cell-menu.css +0 -14
  926. package/src/ui/czi-table-grid-size-editor.css +0 -37
  927. package/src/ui/czi-table.css +0 -86
  928. package/src/ui/czi-vars.css +0 -2
  929. package/src/ui/findActiveFontSize.js +0 -58
  930. package/src/ui/findActiveFontType.js +0 -38
  931. package/src/ui/fonts.css +0 -471
  932. package/src/ui/handleEditorDrop.js +0 -28
  933. package/src/ui/handleEditorKeyDown.js +0 -39
  934. package/src/ui/handleEditorPaste.js +0 -33
  935. package/src/ui/htmlElementToRect.js +0 -18
  936. package/src/ui/icon-font.css +0 -10
  937. package/src/ui/injectStyleSheet.js +0 -42
  938. package/src/ui/isElementFullyVisible.js +0 -26
  939. package/src/ui/isOffline.js +0 -8
  940. package/src/ui/isReactClass.js +0 -12
  941. package/src/ui/listType.css +0 -21
  942. package/src/ui/mathquill-editor/MathQuillEditor.js +0 -159
  943. package/src/ui/mathquill-editor/MathQuillEditorSymbols.js +0 -483
  944. package/src/ui/mathquill-editor/MathQuillEditorSymbolsPanel.js +0 -48
  945. package/src/ui/mathquill-editor/czi-mathquill-editor-symbols-panel.css +0 -39
  946. package/src/ui/mathquill-editor/czi-mathquill-editor.css +0 -50
  947. package/src/ui/mathquill-editor/mathquill-import-kludge.js +0 -24
  948. package/src/ui/renderLaTeXAsHTML.js +0 -46
  949. package/src/ui/resolveImage.js +0 -123
  950. package/src/ui/toCSSColor.js +0 -51
  951. package/src/ui/toCSSLineSpacing.js +0 -55
  952. package/src/ui/toHexColor.js +0 -26
  953. package/src/ui/uuid.js +0 -9
  954. package/src/uuid.js +0 -9
  955. package/style-service.Dockerfile +0 -26
  956. package/utils/build_bin.js +0 -9
  957. package/utils/build_image_server.js +0 -72
  958. package/utils/build_licit_collab_server.js +0 -76
  959. package/utils/build_web_server.js +0 -37
  960. package/utils/env.js +0 -6
  961. package/webpack.config.js +0 -128
  962. /package/{dist/CodeBlockNodeSpec.js.flow → CodeBlockNodeSpec.js.flow} +0 -0
  963. /package/{dist/CursorPlaceholderPlugin.js.flow → CursorPlaceholderPlugin.js.flow} +0 -0
  964. /package/{dist/EditorState.js.flow → EditorState.js.flow} +0 -0
  965. /package/{dist/HardBreakNodeSpec.js.flow → HardBreakNodeSpec.js.flow} +0 -0
  966. /package/{dist/HeadingNodeSpec.js.flow → HeadingNodeSpec.js.flow} +0 -0
  967. /package/{dist/HorizontalRuleNodeSpec.js.flow → HorizontalRuleNodeSpec.js.flow} +0 -0
  968. /package/{dist/MarkNames.js.flow → MarkNames.js.flow} +0 -0
  969. /package/{dist/NodeNames.js.flow → NodeNames.js.flow} +0 -0
  970. /package/{dist/SelectionPlaceholderPlugin.js.flow → SelectionPlaceholderPlugin.js.flow} +0 -0
  971. /package/{dist/StyleView.js.flow → StyleView.js.flow} +0 -0
  972. /package/{dist/TableBackgroundColorCommand.js.flow → TableBackgroundColorCommand.js.flow} +0 -0
  973. /package/{dist/TableBorderColorCommand.js.flow → TableBorderColorCommand.js.flow} +0 -0
  974. /package/{dist/TextNodeSpec.js.flow → TextNodeSpec.js.flow} +0 -0
  975. /package/{dist/Types.js.flow → Types.js.flow} +0 -0
  976. /package/{dist/WebFontLoader.js.flow → WebFontLoader.js.flow} +0 -0
  977. /package/{dist/browser.js.flow → browser.js.flow} +0 -0
  978. /package/{dist/client → client}/Reporter.js.flow +0 -0
  979. /package/{dist/client → client}/SimpleConnector.js.flow +0 -0
  980. /package/{dist/client → client}/http.js.flow +0 -0
  981. /package/{dist/client → client}/licit.css +0 -0
  982. /package/{dist/client → client}/throttle.js.flow +0 -0
  983. /package/{dist/convertToCSSPTValue.js.flow → convertToCSSPTValue.js.flow} +0 -0
  984. /package/{dist/convertToJSON.js.flow → convertToJSON.js.flow} +0 -0
  985. /package/{dist/createTableResizingPlugin.js.flow → createTableResizingPlugin.js.flow} +0 -0
  986. /package/{dist/findActiveMark.js.flow → findActiveMark.js.flow} +0 -0
  987. /package/{dist/hyphenize.js.flow → hyphenize.js.flow} +0 -0
  988. /package/{dist/index.js.flow → index.js.flow} +0 -0
  989. /package/{dist/isEditorStateEmpty.js.flow → isEditorStateEmpty.js.flow} +0 -0
  990. /package/{dist/isTableNode.js.flow → isTableNode.js.flow} +0 -0
  991. /package/{dist/joinDown.js.flow → joinDown.js.flow} +0 -0
  992. /package/{dist/joinListNode.js.flow → joinListNode.js.flow} +0 -0
  993. /package/{dist/joinUp.js.flow → joinUp.js.flow} +0 -0
  994. /package/{dist/keymaps.js.flow → keymaps.js.flow} +0 -0
  995. /package/{dist/lookUpElement.js.flow → lookUpElement.js.flow} +0 -0
  996. /package/{dist/nodeAt.js.flow → nodeAt.js.flow} +0 -0
  997. /package/{dist/patchBreakElements.js.flow → patchBreakElements.js.flow} +0 -0
  998. /package/{dist/patchMathElements.js.flow → patchMathElements.js.flow} +0 -0
  999. /package/{dist/rebaseDocWithSteps.js.flow → rebaseDocWithSteps.js.flow} +0 -0
  1000. /package/{dist/sanitizeURL.js.flow → sanitizeURL.js.flow} +0 -0
  1001. /package/{dist/toSafeHTMLDocument.js.flow → toSafeHTMLDocument.js.flow} +0 -0
  1002. /package/{dist/toggleCodeBlock.js.flow → toggleCodeBlock.js.flow} +0 -0
  1003. /package/{dist/ui → ui}/AlertInfo.js.flow +0 -0
  1004. /package/{dist/ui → ui}/CommandButton.js.flow +0 -0
  1005. /package/{dist/ui → ui}/CustomMenu.js.flow +0 -0
  1006. /package/{dist/ui → ui}/CustomMenuItem.js.flow +0 -0
  1007. /package/{dist/ui → ui}/EditorFrameset.js.flow +0 -0
  1008. /package/{dist/ui → ui}/Frag.js.flow +0 -0
  1009. /package/{dist/ui → ui}/ImageInlineEditor.js.flow +0 -0
  1010. /package/{dist/ui → ui}/KeyCodes.js.flow +0 -0
  1011. /package/{dist/ui → ui}/LoadingIndicator.js.flow +0 -0
  1012. /package/{dist/ui → ui}/PasteMenu.js.flow +0 -0
  1013. /package/{dist/ui → ui}/ResizeObserver.js.flow +0 -0
  1014. /package/{dist/ui → ui}/SelectionObserver.js.flow +0 -0
  1015. /package/{dist/ui → ui}/TableNodeView.js.flow +0 -0
  1016. /package/{dist/ui → ui}/bindScrollHandler.js.flow +0 -0
  1017. /package/{dist/ui → ui}/canUseCSSFont.js.flow +0 -0
  1018. /package/{dist/ui → ui}/czi-body-layout-editor.css +0 -0
  1019. /package/{dist/ui → ui}/czi-bookmark-view.css +0 -0
  1020. /package/{dist/ui → ui}/czi-cursor-placeholder.css +0 -0
  1021. /package/{dist/ui → ui}/czi-custom-menu-button.css +0 -0
  1022. /package/{dist/ui → ui}/czi-custom-menu-item.css +0 -0
  1023. /package/{dist/ui → ui}/czi-custom-menu.css +0 -0
  1024. /package/{dist/ui → ui}/czi-custom-radio-button.css +0 -0
  1025. /package/{dist/ui → ui}/czi-custom-scrollbar.css +0 -0
  1026. /package/{dist/ui → ui}/czi-editor-frameset.css +0 -0
  1027. /package/{dist/ui → ui}/czi-editor-toolbar.css +0 -0
  1028. /package/{dist/ui → ui}/czi-editor.css +0 -0
  1029. /package/{dist/ui → ui}/czi-form.css +0 -0
  1030. /package/{dist/ui → ui}/czi-frag.css +0 -0
  1031. /package/{dist/ui → ui}/czi-heading.css +0 -0
  1032. /package/{dist/ui → ui}/czi-icon.css +0 -0
  1033. /package/{dist/ui → ui}/czi-image-resize-box.css +0 -0
  1034. /package/{dist/ui → ui}/czi-image-upload-editor.css +0 -0
  1035. /package/{dist/ui → ui}/czi-image-upload-placeholder.css +0 -0
  1036. /package/{dist/ui → ui}/czi-image-url-editor.css +0 -0
  1037. /package/{dist/ui → ui}/czi-image-view.css +0 -0
  1038. /package/{dist/ui → ui}/czi-indent.css +0 -0
  1039. /package/{dist/ui → ui}/czi-inline-editor.css +0 -0
  1040. /package/{dist/ui → ui}/czi-list.css +0 -0
  1041. /package/{dist/ui → ui}/czi-loading-indicator.css +0 -0
  1042. /package/{dist/ui → ui}/czi-math-view.css +0 -0
  1043. /package/{dist/ui → ui}/czi-selection-placeholder.css +0 -0
  1044. /package/{dist/ui → ui}/czi-table-cell-menu.css +0 -0
  1045. /package/{dist/ui → ui}/czi-table-grid-size-editor.css +0 -0
  1046. /package/{dist/ui → ui}/fonts.css +0 -0
  1047. /package/{dist/ui → ui}/htmlElementToRect.js.flow +0 -0
  1048. /package/{dist/ui → ui}/icon-font.css +0 -0
  1049. /package/{dist/ui → ui}/injectStyleSheet.js.flow +0 -0
  1050. /package/{dist/ui → ui}/isElementFullyVisible.js.flow +0 -0
  1051. /package/{dist/ui → ui}/isOffline.js.flow +0 -0
  1052. /package/{dist/ui → ui}/isReactClass.js.flow +0 -0
  1053. /package/{dist/ui → ui}/listType.css +0 -0
  1054. /package/{dist/ui → ui}/mathquill-editor/MathQuillEditorSymbols.js.flow +0 -0
  1055. /package/{dist/ui → ui}/mathquill-editor/czi-mathquill-editor-symbols-panel.css +0 -0
  1056. /package/{dist/ui → ui}/mathquill-editor/czi-mathquill-editor.css +0 -0
  1057. /package/{dist/ui → ui}/resolveImage.js.flow +0 -0
  1058. /package/{dist/ui → ui}/toCSSColor.js.flow +0 -0
  1059. /package/{dist/ui → ui}/toCSSLineSpacing.js.flow +0 -0
  1060. /package/{dist/ui → ui}/toHexColor.js.flow +0 -0
  1061. /package/{dist/ui → ui}/uuid.js.flow +0 -0
  1062. /package/{dist/uuid.js.flow → uuid.js.flow} +0 -0
@@ -0,0 +1,28 @@
1
+ import { EditorState } from 'prosemirror-state';
2
+ var ZERO_WIDTH_SPACE_CHAR = "\u200B";
3
+ export default function isEditorStateEmpty(editorState) {
4
+ var doc = editorState.doc;
5
+ var nodeSize = doc.nodeSize;
6
+ if (nodeSize < 2) {
7
+ var text = doc.textContent;
8
+ return !text || text === ' ';
9
+ } else if (nodeSize < 10) {
10
+ var isEmpty = true;
11
+ doc.nodesBetween(0, doc.nodeSize - 2, function (node, ii) {
12
+ if (isEmpty) {
13
+ var nodeType = node.type;
14
+ if (nodeType.isText) {
15
+ var _text = doc.textContent;
16
+ isEmpty = !_text || _text === ' ' || _text === ZERO_WIDTH_SPACE_CHAR;
17
+ } else if (nodeType.isAtom) {
18
+ // e.g. Image, Video...etc.
19
+ isEmpty = false;
20
+ }
21
+ }
22
+ return isEmpty;
23
+ });
24
+ return isEmpty;
25
+ } else {
26
+ return false;
27
+ }
28
+ }
package/isTableNode.js ADDED
@@ -0,0 +1,6 @@
1
+ import { Node } from 'prosemirror-model';
2
+ import { TABLE, TABLE_CELL, TABLE_HEADER, TABLE_ROW } from './NodeNames';
3
+ export default function isTableNode(node) {
4
+ var name = node instanceof Node ? node.type.name : null;
5
+ return name === TABLE || name === TABLE_ROW || name === TABLE_HEADER || name === TABLE_CELL;
6
+ }
package/joinDown.js ADDED
@@ -0,0 +1,25 @@
1
+ // https://github.com/ProseMirror/prosemirror-commands/blob/master/src/commands.js
2
+ import { NodeSelection } from 'prosemirror-state';
3
+ import { Transform } from 'prosemirror-transform';
4
+ import { canJoin } from 'prosemirror-transform';
5
+ import { joinPoint } from 'prosemirror-transform';
6
+
7
+ // Join the selected block, or the closest ancestor of the selection
8
+ // that can be joined, with the sibling after it.
9
+ export default function joinDown(tr) {
10
+ var sel = tr.selection;
11
+ var point;
12
+ if (sel instanceof NodeSelection) {
13
+ if (sel.node.isTextblock || !canJoin(tr.doc, sel.to)) {
14
+ return tr;
15
+ }
16
+ point = sel.to;
17
+ } else {
18
+ point = joinPoint(tr.doc, sel.to, 1);
19
+ if (point === null || point === undefined) {
20
+ return tr;
21
+ }
22
+ }
23
+ tr = tr.join(point);
24
+ return tr;
25
+ }
@@ -0,0 +1,31 @@
1
+ import { Schema } from 'prosemirror-model';
2
+ import { TextSelection } from 'prosemirror-state';
3
+ import { Transform } from 'prosemirror-transform';
4
+ import { isListNode } from '@modusoperandi/licit-ui-commands';
5
+ import joinDown from './joinDown';
6
+ import joinUp from './joinUp';
7
+ export default function joinListNode(tr, schema, listNodePos) {
8
+ if (!tr.doc || !tr.selection) {
9
+ return tr;
10
+ }
11
+ var node = tr.doc.nodeAt(listNodePos);
12
+ if (!isListNode(node)) {
13
+ return tr;
14
+ }
15
+ var initialSelection = tr.selection;
16
+ var listFromPos = listNodePos;
17
+ var listToPos = listFromPos + node.nodeSize;
18
+ var $fromPos = tr.doc.resolve(listFromPos);
19
+ var $toPos = tr.doc.resolve(listToPos);
20
+ var selectionOffset = 0;
21
+ if ($toPos.nodeAfter && $toPos.nodeAfter.type === node.type && $toPos.nodeAfter.attrs.level === node.attrs.level) {
22
+ tr = joinDown(tr);
23
+ }
24
+ if ($fromPos.nodeBefore && $fromPos.nodeBefore.type === node.type && $fromPos.nodeBefore.attrs.level === node.attrs.level) {
25
+ selectionOffset -= 2;
26
+ tr = joinUp(tr);
27
+ }
28
+ var selection = TextSelection.create(tr.doc, initialSelection.from + selectionOffset, initialSelection.to + selectionOffset);
29
+ tr = tr.setSelection(selection);
30
+ return tr;
31
+ }
package/joinUp.js ADDED
@@ -0,0 +1,30 @@
1
+ // https://github.com/ProseMirror/prosemirror-commands/blob/master/src/commands.js
2
+ import { NodeSelection } from 'prosemirror-state';
3
+ import { Transform } from 'prosemirror-transform';
4
+ import { canJoin } from 'prosemirror-transform';
5
+ import { joinPoint } from 'prosemirror-transform';
6
+
7
+ // Join the selected block or, if there is a text selection, the
8
+ // closest ancestor block of the selection that can be joined, with
9
+ // the sibling above it.
10
+ export default function joinUp(tr) {
11
+ var sel = tr.selection;
12
+ var nodeSel = sel instanceof NodeSelection;
13
+ var point;
14
+ if (nodeSel) {
15
+ if (sel.node.isTextblock || !canJoin(tr.doc, sel.from)) {
16
+ return tr;
17
+ }
18
+ point = sel.from;
19
+ } else {
20
+ point = joinPoint(tr.doc, sel.from, -1);
21
+ if (point === null || point === undefined) {
22
+ return tr;
23
+ }
24
+ }
25
+ tr = tr.join(point);
26
+ if (nodeSel) {
27
+ tr = tr.setSelection(NodeSelection.create(tr.doc, point - tr.doc.resolve(point).nodeBefore.nodeSize));
28
+ }
29
+ return tr;
30
+ }
package/keymaps.js ADDED
@@ -0,0 +1,67 @@
1
+ import Keymap from 'browserkeymap';
2
+ import browser from './browser';
3
+ import { makeKeyMap, makeKeyMapWithCommon } from '@modusoperandi/licit-doc-attrs-step';
4
+
5
+ // https://tinyurl.com/ybwf3wex
6
+
7
+ export function tooltip(keymap) {
8
+ if (keymap) {
9
+ var shortcut;
10
+ if (browser.isMac()) {
11
+ shortcut = keymap.mac.replace(/Cmd/i, '⌘').replace(/Shift/i, '⇧').replace(/Ctrl/i, '^').replace(/Alt/i, '⌥');
12
+ } else {
13
+ shortcut = keymap.windows;
14
+ }
15
+ return "".concat(keymap.description, " (").concat(shortcut, ")");
16
+ }
17
+ return null;
18
+ }
19
+ export var KEY_BACK_DELETE = makeKeyMapWithCommon('', 'Backspace');
20
+ export var KEY_FORWARD_DELETE = makeKeyMapWithCommon('', 'Delete');
21
+ export var KEY_INSERT_HORIZONTAL_RULE = makeKeyMapWithCommon('Insert horizontal rule', 'Mod-Shift--');
22
+ export var KEY_INSERT_NEW_LINE = makeKeyMapWithCommon('Insert new line', 'Shift-Enter');
23
+ export var KEY_INSERT_NEW_LINE_IN_BLOCKQUOTE = makeKeyMapWithCommon('Insert new line in blockquote', 'Shift-Enter');
24
+ export var KEY_INSERT_NEW_LINE_IN_LIST_ITEM = makeKeyMapWithCommon('Insert new line in list item', 'Shift-Enter');
25
+ export var KEY_REDO = makeKeyMapWithCommon('Redo', 'Mod-Shift-z');
26
+ export var KEY_SET_NORMAL_TEXT = makeKeyMap('Normal text', 'Ctrl-0', 'Cmd-Alt-0');
27
+ export var KEY_SHIFT_BACKSPACE = makeKeyMapWithCommon('Shift Backspace', 'Shift-Backspace');
28
+ export var KEY_SPLIT_CODEBLOCK = makeKeyMapWithCommon('Split code block', 'Enter');
29
+ export var KEY_SPLIT_LIST_ITEM = makeKeyMapWithCommon('Split list item', 'Enter');
30
+ export var KEY_TAB = makeKeyMapWithCommon('', 'Tab');
31
+ export var KEY_TAB_SHIFT = makeKeyMapWithCommon('', 'Shift-Tab');
32
+ export var KEY_TOGGLE_BLOCK_QUOTE = makeKeyMap('Block quote', 'Ctrl-7', 'Cmd-Alt-7');
33
+ export var KEY_TOGGLE_BOLD = makeKeyMapWithCommon('Toggle bold', 'Mod-b');
34
+ export var KEY_TOGGLE_BULLET_LIST = makeKeyMapWithCommon('Toggle bullet list', 'Mod-Shift-b');
35
+ export var KEY_TOGGLE_CODE_BLOCK = makeKeyMap('Code block', 'Ctrl-8', 'Cmd-Alt-8');
36
+ export var KEY_TOGGLE_HEADING_1 = makeKeyMap('Heading 1', 'Ctrl-1', 'Cmd-Alt-1');
37
+ export var KEY_TOGGLE_HEADING_2 = makeKeyMap('Heading 2', 'Ctrl-2', 'Cmd-Alt-2');
38
+ export var KEY_TOGGLE_HEADING_3 = makeKeyMap('Heading 3', 'Ctrl-3', 'Cmd-Alt-3');
39
+ export var KEY_TOGGLE_HEADING_4 = makeKeyMap('Heading 4', 'Ctrl-4', 'Cmd-Alt-4');
40
+ export var KEY_TOGGLE_HEADING_5 = makeKeyMap('Heading 5', 'Ctrl-5', 'Cmd-Alt-5');
41
+ export var KEY_TOGGLE_HEADING_6 = makeKeyMap('Heading 5', 'Ctrl-6', 'Cmd-Alt-6');
42
+ export var KEY_TOGGLE_ITALIC = makeKeyMapWithCommon('Toggle italic', 'Mod-i');
43
+ export var KEY_TOGGLE_MONOSPACE = makeKeyMapWithCommon('Toggle monospace', 'Mod-Shift-m');
44
+ export var KEY_TOGGLE_ORDERED_LIST = makeKeyMapWithCommon('Toggle ordered list', 'Mod-Shift-l');
45
+ export var KEY_TOGGLE_STRIKETHROUGH = makeKeyMapWithCommon('Toggle strikethrough', 'Mod-Shift-s');
46
+ export var KEY_TOGGLE_UNDERLINE = makeKeyMapWithCommon('Toggle underline', 'Mod-u');
47
+ export var KEY_UNDO = makeKeyMapWithCommon('Undo', 'Mod-z');
48
+ export var ALL_KEYS = [KEY_BACK_DELETE, KEY_FORWARD_DELETE, KEY_INSERT_HORIZONTAL_RULE, KEY_INSERT_NEW_LINE, KEY_INSERT_NEW_LINE_IN_BLOCKQUOTE, KEY_INSERT_NEW_LINE_IN_LIST_ITEM, KEY_SET_NORMAL_TEXT, KEY_SHIFT_BACKSPACE, KEY_SPLIT_LIST_ITEM, KEY_TAB_SHIFT, KEY_TAB, KEY_TOGGLE_BLOCK_QUOTE, KEY_TOGGLE_BOLD, KEY_TOGGLE_BULLET_LIST, KEY_TOGGLE_BULLET_LIST, KEY_TOGGLE_CODE_BLOCK, KEY_TOGGLE_HEADING_1, KEY_TOGGLE_HEADING_2, KEY_TOGGLE_HEADING_3, KEY_TOGGLE_HEADING_4, KEY_TOGGLE_HEADING_5, KEY_TOGGLE_HEADING_6, KEY_TOGGLE_ITALIC, KEY_TOGGLE_MONOSPACE, KEY_TOGGLE_ORDERED_LIST, KEY_TOGGLE_STRIKETHROUGH, KEY_TOGGLE_UNDERLINE, KEY_UNDO];
49
+ export function findKeymapByDescription(description) {
50
+ var matches = ALL_KEYS.filter(function (keymap) {
51
+ return keymap.description.toUpperCase() === description.toUpperCase();
52
+ });
53
+ return matches[0];
54
+ }
55
+ export function findShortcutByDescription(description) {
56
+ var keymap = findKeymapByDescription(description);
57
+ if (keymap) {
58
+ return findShortcutByKeymap(keymap);
59
+ }
60
+ return null;
61
+ }
62
+ export function findShortcutByKeymap(keymap) {
63
+ if (browser.isMac()) {
64
+ return keymap.mac;
65
+ }
66
+ return keymap.windows;
67
+ }
@@ -0,0 +1,9 @@
1
+ export default function lookUpElement(el, predict) {
2
+ while (el && el.nodeName) {
3
+ if (predict(el)) {
4
+ return el;
5
+ }
6
+ el = el.parentElement;
7
+ }
8
+ return null;
9
+ }
package/nodeAt.js ADDED
@@ -0,0 +1,9 @@
1
+ import { Node } from 'prosemirror-model';
2
+ export default function nodeAt(doc, pos) {
3
+ if (pos < 0 || pos > doc.content.size) {
4
+ // Exit here or error will be thrown:
5
+ // e.g. RangeError: Position outside of fragment.
6
+ return null;
7
+ }
8
+ return doc.nodeAt(pos);
9
+ }
@@ -0,0 +1,63 @@
1
+ import { DOM_ATTRIBUTE_SIZE, HAIR_SPACE_CHAR, SPACER_SIZE_TAB } from './SpacerMarkSpec.js';
2
+ import patchAnchorElements from './patchAnchorElements.js';
3
+ import patchBreakElements from './patchBreakElements.js';
4
+ import patchElementInlineStyles from './patchElementInlineStyles.js';
5
+ import patchListElements from './patchListElements.js';
6
+ import patchMathElements from './patchMathElements.js';
7
+ import patchParagraphElements from './patchParagraphElements.js';
8
+ import patchStyleElements from './patchStyleElements.js';
9
+ import patchTableElements from './patchTableElements.js';
10
+ import toSafeHTMLDocument from './toSafeHTMLDocument.js';
11
+ var HTML_BODY_PATTERN = /<body[\s>]/i;
12
+ var LONG_UNDERLINE_PATTERN = /_+/g;
13
+
14
+ // This is a workround to convert "&nbsp;&nbsp;......&nbsp;" into wider tab
15
+ // tab spacers. For every 6 "&nbsp;", they will be converted into tab spacers.
16
+ var LONG_TAB_SPACE_PATTERN = /(\&nbsp;){6}/g;
17
+ var TAB_SPACER_HTML = new Array(6).join("<span ".concat(DOM_ATTRIBUTE_SIZE, "=\"").concat(SPACER_SIZE_TAB, "\">").concat(HAIR_SPACE_CHAR, "</span>"));
18
+ function replaceNOBR(matched) {
19
+ // This is a workround to convert "_______" into none-wrapped text
20
+ // that apppears like a horizontal line.
21
+ if (matched && matched.length >= 20) {
22
+ // needs extra space after it so user can escape the <nobr />.
23
+ matched = "<nobr>".concat(String(matched), "</nobr> ");
24
+ }
25
+ return matched;
26
+ }
27
+ export default function normalizeHTML(html) {
28
+ var body = null;
29
+ var sourceIsPage = HTML_BODY_PATTERN.test(html);
30
+ html = html.replace(LONG_UNDERLINE_PATTERN, replaceNOBR);
31
+
32
+ // Convert every two consecutive "&nbsp;" into a spacer tab.
33
+ html = html.replace(LONG_TAB_SPACE_PATTERN, TAB_SPACER_HTML);
34
+ var doc = toSafeHTMLDocument(html);
35
+ if (doc) {
36
+ // styles.
37
+ patchStyleElements(doc);
38
+ patchElementInlineStyles(doc);
39
+ // contents.
40
+ patchAnchorElements(doc);
41
+ patchBreakElements(doc);
42
+ patchListElements(doc);
43
+ patchParagraphElements(doc);
44
+ patchTableElements(doc);
45
+ patchMathElements(doc);
46
+ body = doc.getElementsByTagName('body')[0];
47
+ if (body && sourceIsPage) {
48
+ // Source HTML contains <body />, assumes this to be a complete
49
+ // page HTML. Assume this <body /> may contain the style that indicates
50
+ // page's layout.
51
+ var frag = doc.createElement('html');
52
+ frag.appendChild(body);
53
+ return frag.innerHTML;
54
+ }
55
+ }
56
+ if (!body) {
57
+ // <body /> should alway be generated by doc.
58
+ return 'Unsupported HTML content';
59
+ }
60
+
61
+ // HTML snippet only.
62
+ return '<body>' + body.innerHTML + '</body>';
63
+ }
@@ -0,0 +1,78 @@
1
+ // @flow
2
+
3
+ import {
4
+ DOM_ATTRIBUTE_SIZE,
5
+ HAIR_SPACE_CHAR,
6
+ SPACER_SIZE_TAB,
7
+ } from './SpacerMarkSpec.js';
8
+ import patchAnchorElements from './patchAnchorElements.js';
9
+ import patchBreakElements from './patchBreakElements.js';
10
+ import patchElementInlineStyles from './patchElementInlineStyles.js';
11
+ import patchListElements from './patchListElements.js';
12
+ import patchMathElements from './patchMathElements.js';
13
+ import patchParagraphElements from './patchParagraphElements.js';
14
+ import patchStyleElements from './patchStyleElements.js';
15
+ import patchTableElements from './patchTableElements.js';
16
+ import toSafeHTMLDocument from './toSafeHTMLDocument.js';
17
+
18
+ const HTML_BODY_PATTERN = /<body[\s>]/i;
19
+ const LONG_UNDERLINE_PATTERN = /_+/g;
20
+
21
+ // This is a workround to convert "&nbsp;&nbsp;......&nbsp;" into wider tab
22
+ // tab spacers. For every 6 "&nbsp;", they will be converted into tab spacers.
23
+ const LONG_TAB_SPACE_PATTERN = /(\&nbsp;){6}/g;
24
+
25
+ const TAB_SPACER_HTML = new Array(6).join(
26
+ `<span ${DOM_ATTRIBUTE_SIZE}="${SPACER_SIZE_TAB}">${HAIR_SPACE_CHAR}</span>`
27
+ );
28
+
29
+ function replaceNOBR(matched: string): string {
30
+ // This is a workround to convert "_______" into none-wrapped text
31
+ // that apppears like a horizontal line.
32
+ if (matched && matched.length >= 20) {
33
+ // needs extra space after it so user can escape the <nobr />.
34
+ matched = `<nobr>${String(matched)}</nobr> `;
35
+ }
36
+ return matched;
37
+ }
38
+
39
+ export default function normalizeHTML(html: string): string {
40
+ let body: ?HTMLElement = null;
41
+
42
+ const sourceIsPage = HTML_BODY_PATTERN.test(html);
43
+ html = html.replace(LONG_UNDERLINE_PATTERN, replaceNOBR);
44
+
45
+ // Convert every two consecutive "&nbsp;" into a spacer tab.
46
+ html = html.replace(LONG_TAB_SPACE_PATTERN, TAB_SPACER_HTML);
47
+ const doc = toSafeHTMLDocument(html);
48
+ if (doc) {
49
+ // styles.
50
+ patchStyleElements(doc);
51
+ patchElementInlineStyles(doc);
52
+ // contents.
53
+ patchAnchorElements(doc);
54
+ patchBreakElements(doc);
55
+ patchListElements(doc);
56
+ patchParagraphElements(doc);
57
+ patchTableElements(doc);
58
+ patchMathElements(doc);
59
+ body = doc.getElementsByTagName('body')[0];
60
+
61
+ if (body && sourceIsPage) {
62
+ // Source HTML contains <body />, assumes this to be a complete
63
+ // page HTML. Assume this <body /> may contain the style that indicates
64
+ // page's layout.
65
+ const frag = doc.createElement('html');
66
+ frag.appendChild(body);
67
+ return frag.innerHTML;
68
+ }
69
+ }
70
+
71
+ if (!body) {
72
+ // <body /> should alway be generated by doc.
73
+ return 'Unsupported HTML content';
74
+ }
75
+
76
+ // HTML snippet only.
77
+ return '<body>' + body.innerHTML + '</body>';
78
+ }
package/package.json CHANGED
@@ -1,29 +1,35 @@
1
1
  {
2
2
  "name": "@modusoperandi/licit",
3
- "version": "0.14.17",
3
+ "version": "1.0.0",
4
+ "type": "module",
4
5
  "subversion": "1",
5
6
  "description": "Rich text editor built with React and ProseMirror",
6
- "main": "dist/index.js",
7
- "style": "dist/styles.css",
7
+ "main": "index.js",
8
+ "style": "styles.css",
9
+ "types": "index.d.ts",
8
10
  "repository": {
9
11
  "type": "git",
10
12
  "url": "git+https://github.com/MO-Movia/licit.git"
11
13
  },
12
14
  "scripts": {
13
15
  "test": "jest --coverage",
14
- "build:bom": "cyclonedx-bom -o dist/bom.xml",
16
+ "test:unit": "jest",
17
+ "test:coverage": "jest --coverage",
18
+ "build:bom": "cyclonedx-npm --ignore-npm-errors --short-PURLs --output-format XML --output-file dist/bom.xml",
15
19
  "build:clean": "rm -rf dist/ && rm -f modusoperandi-licit-*.*.*.tgz",
16
20
  "build:css": "cp src/ui/*.css dist/ui && cp src/ui/mathquill-editor/*.css dist/ui/mathquill-editor && cp src/client/*.css dist/client && cp src/*.css dist",
17
21
  "build:fonts": "mkdirp ./dist/fonts && cp -r fonts/* dist/fonts",
18
22
  "build:babel": "babel src --out-dir dist",
19
23
  "build:flow": "flow-copy-source -v -i '**/__tests__/**' src dist",
20
- "build:dist": "npm run build:clean && npm run build:babel && npm run build:flow && npm run build:css && npm run build:fonts && npm run build:bom",
24
+ "build:dist": "npm run build:clean && npm run build:babel && npm run build:flow && npm run build:css && npm run build:fonts && npm run build:bom && cp src/*.d.ts dist/",
21
25
  "build:licit": "node utils/build_bin.js",
26
+ "ci:bom": "cyclonedx-npm --ignore-npm-errors --short-PURLs --output-format XML --output-file dist/bom.xml",
27
+ "ci:build": "npm run build:clean && npm run build:babel && npm run build:flow && npm run build:css && npm run build:fonts && npm run build:bom && copyfiles --up 1 \"src/**/*.d.ts\" dist/ && copyfiles --up 1 \"src/**/*.css\" dist && copyfiles package.json dist",
22
28
  "flow": "flow --show-all-errors",
23
29
  "lint:css": "stylelint \"**/*.css\"",
24
30
  "lint:js": "eslint \"src/**/*.js\" \"licit/**/*.js\"",
31
+ "lint": "npm run lint:css & npm run lint:js",
25
32
  "start": "node scripts/webserver.js",
26
- "prepare": "npm run build:dist",
27
33
  "prebuild:style-service-docker": "node utils/build_customstyle_server.js",
28
34
  "build:style-service-docker": "docker build . -f style-service.Dockerfile -t style-service:latest"
29
35
  },
@@ -49,26 +55,27 @@
49
55
  "@babel/preset-env": "^7.19.4",
50
56
  "@babel/preset-flow": "^7.10.4",
51
57
  "@babel/preset-react": "^7.18.6",
52
- "@cyclonedx/bom": "^3.10.6",
58
+ "@cyclonedx/cyclonedx-npm": "^1.11.0",
53
59
  "babel-jest": "^29.2.0",
54
- "babel-loader": "8.2.5",
55
- "babel-plugin-flow-react-proptypes": "26.0.0",
56
- "babel-plugin-transform-react-remove-prop-types": "0.4.24",
57
- "clean-webpack-plugin": "4.0.0",
60
+ "babel-loader": "^8.2.5",
61
+ "babel-plugin-flow-react-proptypes": "^26.0.0",
62
+ "babel-plugin-transform-react-remove-prop-types": "^0.4.24",
63
+ "clean-webpack-plugin": "^4.0.0",
58
64
  "copy-webpack-plugin": "^11.0.0",
59
- "css-loader": "6.7.3",
65
+ "css-loader": "^6.9.1",
66
+ "copyfiles": "^2.4.1",
60
67
  "enzyme": "^3.11.0",
61
68
  "eslint": "^8.25.0",
62
- "eslint-config-prettier": "^8.5.0",
69
+ "eslint-config-prettier": "^9.0.0",
63
70
  "eslint-plugin-jest": "^27.1.2",
64
71
  "eslint-plugin-prettier": "^4.2.1",
65
- "eslint-plugin-react": "7.31.10",
72
+ "eslint-plugin-react": "^7.33.2",
66
73
  "exports-loader": "^1.1.0",
67
74
  "file-loader": "^6.2.0",
68
- "flow-bin": "0.128.0",
69
- "flow-copy-source": "2.0.9",
70
- "flow-webpack-plugin": "1.2.0",
71
- "html-loader": "1.1.0",
75
+ "flow-bin": "^0.228.0",
76
+ "flow-copy-source": "^2.0.9",
77
+ "flow-webpack-plugin": "^1.2.0",
78
+ "html-loader": "^1.1.0",
72
79
  "html-webpack-inline-source-plugin": "1.0.0-beta.2",
73
80
  "html-webpack-plugin": "^5.5.0",
74
81
  "husky": "^8.0.1",
@@ -78,39 +85,46 @@
78
85
  "jest-prosemirror": "^1.0.3",
79
86
  "jest-sonar-reporter": "^2.0.0",
80
87
  "lint-staged": "^13.0.3",
81
- "mkdirp": "^1.0.4",
88
+ "mkdirp": "^3.0.1",
82
89
  "prettier": "^2.1.2",
83
90
  "stylelint": "^15.6.0",
84
91
  "stylelint-config-standard": "^33.0.0",
85
- "stylelint-prettier": "^2.0.0",
92
+ "stylelint-prettier": "^3.0.0",
86
93
  "terser-webpack-plugin": "^3.1.0",
87
94
  "webpack": "^5.74.0",
88
- "webpack-cli": "^4.10.0",
95
+ "webpack-cli": "^5.1.4",
89
96
  "webpack-dev-server": "^4.11.1",
90
- "write-file-webpack-plugin": "4.5.1"
97
+ "write-file-webpack-plugin": "^4.5.1"
91
98
  },
92
99
  "dependencies": {
93
- "@modusoperandi/licit-ui-commands": "^0.1.16",
94
- "@wojtekmaj/enzyme-adapter-react-17": "^0.6.7",
100
+ "@cfaester/enzyme-adapter-react-18": "^0.7.1",
95
101
  "body-parser": "^1.19.0",
96
102
  "cors": "^2.8.5",
97
103
  "express": "^4.17.1",
98
104
  "flatted": "^3.1.0",
99
105
  "flow-typed": "^3.3.1",
100
106
  "formidable": "^1.2.2",
101
- "invariant": "2.2.4",
107
+ "invariant": "^2.2.4",
102
108
  "jquery": "^3.5.1",
103
- "katex": "0.11.1",
109
+ "katex": "^0.11.1",
104
110
  "mv": "^2.1.1",
105
- "node-mathquill": "0.10.2",
106
- "prosemirror-collab": "1.2.2",
107
- "prosemirror-dev-tools": "3.0.2",
108
- "prosemirror-tables": "1.2.5",
109
- "query-string": "6.13.1",
110
- "resize-observer-polyfill": "1.5.1",
111
- "smooth-scroll-into-view-if-needed": "1.1.28",
111
+ "node-mathquill": "^0.10.2",
112
+ "prosemirror-collab": "^1.3.1",
113
+ "prosemirror-tables": "^1.2.5",
114
+ "query-string": "^6.13.1",
115
+ "resize-observer-polyfill": "^1.5.1",
116
+ "smooth-scroll-into-view-if-needed": "^1.1.28",
117
+ "style-loader": "^3.3.3",
112
118
  "url": "^0.11.0"
113
119
  },
120
+ "peerDependencies": {
121
+ "@modusoperandi/licit-ui-commands": "^1.0.0",
122
+ "prosemirror-collab": "^1.2.2",
123
+ "prosemirror-tables": "^1.2.5"
124
+ },
125
+ "overrides": {
126
+ "semver": "^7.5.2"
127
+ },
114
128
  "importSort": {
115
129
  ".js": {
116
130
  "parser": "babylon",
@@ -133,4 +147,4 @@
133
147
  "prettier --write"
134
148
  ]
135
149
  }
136
- }
150
+ }
@@ -0,0 +1,29 @@
1
+ import { ATTRIBUTE_BOOKMARK_ID, ATTRIBUTE_BOOKMARK_VISIBLE } from './BookmarkNodeSpec.js';
2
+ var BLOCK_NODE_NAME_PATTERN = /(P|H1|H2|H3|H4|H5|H6)/;
3
+ export default function patchAnchorElements(doc) {
4
+ Array.from(doc.querySelectorAll('a[id]')).forEach(patchAnchorElement);
5
+ }
6
+ function patchAnchorElement(node) {
7
+ var id = node.id;
8
+ if (id && node.childElementCount === 0) {
9
+ // This looks like a bookmark generated from Google Doc, will render
10
+ // this as BookmarkNode.
11
+ node.setAttribute(ATTRIBUTE_BOOKMARK_ID, id);
12
+
13
+ // Google Doc always inject anchor links before <table />.
14
+ // <a id="t.3060ecccc199a88a1e4cc1252769f957b88f2207"></a>
15
+ // <a id="t.0"></a>
16
+ // <table class="c23">
17
+ // and these anchor link should not be visible.
18
+ var visible = node.id.indexOf('t.') !== 0;
19
+ visible && node.setAttribute(ATTRIBUTE_BOOKMARK_VISIBLE, 'true');
20
+ }
21
+ var nextNode = node.nextElementSibling;
22
+ if (!nextNode) {
23
+ return;
24
+ }
25
+ // If this is next to a block element, make that block element the bookmark.
26
+ if (BLOCK_NODE_NAME_PATTERN.test(nextNode.nodeName)) {
27
+ nextNode.insertBefore(node, nextNode.firstChild);
28
+ }
29
+ }
@@ -0,0 +1,38 @@
1
+ // @flow
2
+
3
+ import {
4
+ ATTRIBUTE_BOOKMARK_ID,
5
+ ATTRIBUTE_BOOKMARK_VISIBLE,
6
+ } from './BookmarkNodeSpec.js';
7
+
8
+ const BLOCK_NODE_NAME_PATTERN = /(P|H1|H2|H3|H4|H5|H6)/;
9
+
10
+ export default function patchAnchorElements(doc: Document): void {
11
+ Array.from(doc.querySelectorAll('a[id]')).forEach(patchAnchorElement);
12
+ }
13
+
14
+ function patchAnchorElement(node: HTMLElement): void {
15
+ const { id } = node;
16
+ if (id && node.childElementCount === 0) {
17
+ // This looks like a bookmark generated from Google Doc, will render
18
+ // this as BookmarkNode.
19
+ node.setAttribute(ATTRIBUTE_BOOKMARK_ID, id);
20
+
21
+ // Google Doc always inject anchor links before <table />.
22
+ // <a id="t.3060ecccc199a88a1e4cc1252769f957b88f2207"></a>
23
+ // <a id="t.0"></a>
24
+ // <table class="c23">
25
+ // and these anchor link should not be visible.
26
+ const visible = node.id.indexOf('t.') !== 0;
27
+
28
+ visible && node.setAttribute(ATTRIBUTE_BOOKMARK_VISIBLE, 'true');
29
+ }
30
+ const nextNode = node.nextElementSibling;
31
+ if (!nextNode) {
32
+ return;
33
+ }
34
+ // If this is next to a block element, make that block element the bookmark.
35
+ if (BLOCK_NODE_NAME_PATTERN.test(nextNode.nodeName)) {
36
+ nextNode.insertBefore(node, nextNode.firstChild);
37
+ }
38
+ }
@@ -0,0 +1,20 @@
1
+ export default function patchBreakElements(doc) {
2
+ // This is a workaround to handle HTML converted from DraftJS that
3
+ // `<div><span><br /></span><div>` becomes `<p><br /><br /></p>`.
4
+ // Block with single `<br />` inside should be collapsed into `<p />`.
5
+ var selector = 'div > span:only-child > br:only-child';
6
+ Array.from(doc.querySelectorAll(selector)).forEach(patchBreakElement);
7
+ }
8
+ function patchBreakElement(brElement) {
9
+ var ownerDocument = brElement.ownerDocument,
10
+ parentElement = brElement.parentElement;
11
+ if (!ownerDocument || !parentElement) {
12
+ return;
13
+ }
14
+ var div = brElement.parentElement && brElement.parentElement.parentElement;
15
+ if (!div) {
16
+ return;
17
+ }
18
+ var pp = ownerDocument.createElement('p');
19
+ div.parentElement && div.parentElement.replaceChild(pp, div);
20
+ }