@modusoperandi/licit 0.14.18 → 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 (1063) 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 +42 -33
  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 -50
  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/dependabot.yml +0 -17
  319. package/.github/workflows/build.yml +0 -29
  320. package/.github/workflows/lint.yml +0 -30
  321. package/.prettierignore +0 -6
  322. package/.prettierrc +0 -5
  323. package/.stylelintignore +0 -2
  324. package/.stylelintrc.json +0 -14
  325. package/.travis.yml +0 -18
  326. package/CODEOWNERS +0 -40
  327. package/LICENSE +0 -22
  328. package/README.md +0 -304
  329. package/_config.yml +0 -1
  330. package/babel.config.json +0 -50
  331. package/build_collab_server.py +0 -7
  332. package/build_image_server.py +0 -7
  333. package/dist/BlockquoteInsertNewLineCommand.js +0 -65
  334. package/dist/BlockquoteInsertNewLineCommand.js.flow +0 -55
  335. package/dist/BlockquoteNodeSpec.js +0 -37
  336. package/dist/BlockquoteNodeSpec.js.flow +0 -30
  337. package/dist/BlockquoteToggleCommand.js +0 -41
  338. package/dist/BlockquoteToggleCommand.js.flow +0 -34
  339. package/dist/BookmarkNodeSpec.js +0 -50
  340. package/dist/BookmarkNodeSpec.js.flow +0 -39
  341. package/dist/BulletListNodeSpec.js +0 -59
  342. package/dist/BulletListNodeSpec.js.flow +0 -61
  343. package/dist/CZIProseMirror.js +0 -91
  344. package/dist/CZIProseMirror.js.flow +0 -90
  345. package/dist/CodeBlockCommand.js +0 -51
  346. package/dist/CodeBlockCommand.js.flow +0 -43
  347. package/dist/CodeBlockNodeSpec.js +0 -33
  348. package/dist/CodeMarkSpec.js +0 -18
  349. package/dist/CodeMarkSpec.js.flow +0 -14
  350. package/dist/ContentPlaceholderPlugin.js +0 -164
  351. package/dist/ContentPlaceholderPlugin.js.flow +0 -187
  352. package/dist/CursorPlaceholderPlugin.js +0 -114
  353. package/dist/DocLayoutCommand.js +0 -88
  354. package/dist/DocLayoutCommand.js.flow +0 -94
  355. package/dist/DocNodeSpec.js +0 -79
  356. package/dist/DocNodeSpec.js.flow +0 -64
  357. package/dist/EMMarkSpec.js +0 -22
  358. package/dist/EMMarkSpec.js.flow +0 -14
  359. package/dist/EditorCommands.js +0 -175
  360. package/dist/EditorCommands.js.flow +0 -124
  361. package/dist/EditorKeyMap.js +0 -112
  362. package/dist/EditorKeyMap.js.flow +0 -187
  363. package/dist/EditorMarks.js +0 -80
  364. package/dist/EditorMarks.js.flow +0 -71
  365. package/dist/EditorNodes.js +0 -68
  366. package/dist/EditorNodes.js.flow +0 -59
  367. package/dist/EditorPageLayoutPlugin.js +0 -72
  368. package/dist/EditorPageLayoutPlugin.js.flow +0 -67
  369. package/dist/EditorPlugins.js +0 -13
  370. package/dist/EditorPlugins.js.flow +0 -8
  371. package/dist/EditorSchema.js +0 -16
  372. package/dist/EditorSchema.js.flow +0 -12
  373. package/dist/EditorState.js +0 -10
  374. package/dist/FontSizeMarkSpec.js +0 -47
  375. package/dist/FontSizeMarkSpec.js.flow +0 -49
  376. package/dist/FontTypeMarkSpec.js +0 -74
  377. package/dist/FontTypeMarkSpec.js.flow +0 -80
  378. package/dist/HTMLMutator.js +0 -58
  379. package/dist/HTMLMutator.js.flow +0 -59
  380. package/dist/HardBreakNodeSpec.js +0 -20
  381. package/dist/HeadingNodeSpec.js +0 -64
  382. package/dist/HistoryRedoCommand.js +0 -24
  383. package/dist/HistoryRedoCommand.js.flow +0 -20
  384. package/dist/HistoryUndoCommand.js +0 -24
  385. package/dist/HistoryUndoCommand.js.flow +0 -20
  386. package/dist/HorizontalRuleCommand.js +0 -58
  387. package/dist/HorizontalRuleCommand.js.flow +0 -49
  388. package/dist/HorizontalRuleNodeSpec.js +0 -38
  389. package/dist/ImageUploadPlaceholderPlugin.js +0 -176
  390. package/dist/ImageUploadPlaceholderPlugin.js.flow +0 -192
  391. package/dist/LinkMarkSpec.js +0 -41
  392. package/dist/LinkMarkSpec.js.flow +0 -32
  393. package/dist/LinkSetURLCommand.js +0 -100
  394. package/dist/LinkSetURLCommand.js.flow +0 -103
  395. package/dist/LinkTooltipPlugin.js +0 -180
  396. package/dist/LinkTooltipPlugin.js.flow +0 -192
  397. package/dist/ListItemInsertNewLineCommand.js +0 -65
  398. package/dist/ListItemInsertNewLineCommand.js.flow +0 -55
  399. package/dist/ListItemMergeCommand.js +0 -183
  400. package/dist/ListItemMergeCommand.js.flow +0 -177
  401. package/dist/ListItemNodeSpec.js +0 -57
  402. package/dist/ListItemNodeSpec.js.flow +0 -52
  403. package/dist/ListSplitCommand.js +0 -36
  404. package/dist/ListSplitCommand.js.flow +0 -32
  405. package/dist/ListToggleCommand.js +0 -81
  406. package/dist/ListToggleCommand.js.flow +0 -77
  407. package/dist/MarkNames.js +0 -37
  408. package/dist/MarksClearCommand.js +0 -42
  409. package/dist/MarksClearCommand.js.flow +0 -42
  410. package/dist/MathEditCommand.js +0 -108
  411. package/dist/MathEditCommand.js.flow +0 -110
  412. package/dist/MathNodeSpec.js +0 -57
  413. package/dist/MathNodeSpec.js.flow +0 -46
  414. package/dist/NodeNames.js +0 -47
  415. package/dist/OrderedListNodeSpec.js +0 -125
  416. package/dist/OrderedListNodeSpec.js.flow +0 -132
  417. package/dist/ParagraphNodeSpec.js +0 -151
  418. package/dist/ParagraphNodeSpec.js.flow +0 -156
  419. package/dist/ParagraphSpacingCommand.js +0 -106
  420. package/dist/ParagraphSpacingCommand.js.flow +0 -121
  421. package/dist/PrintCommand.js +0 -33
  422. package/dist/PrintCommand.js.flow +0 -31
  423. package/dist/SelectionPlaceholderPlugin.js +0 -111
  424. package/dist/SpacerMarkSpec.js +0 -50
  425. package/dist/SpacerMarkSpec.js.flow +0 -47
  426. package/dist/StrikeMarkSpec.js +0 -24
  427. package/dist/StrikeMarkSpec.js.flow +0 -21
  428. package/dist/StrongMarkSpec.js +0 -29
  429. package/dist/StrongMarkSpec.js.flow +0 -25
  430. package/dist/StyleView.js +0 -23
  431. package/dist/TableBackgroundColorCommand.js +0 -65
  432. package/dist/TableBorderColorCommand.js +0 -65
  433. package/dist/TableCellColorCommand.js +0 -62
  434. package/dist/TableCellColorCommand.js.flow +0 -71
  435. package/dist/TableCellMenuPlugin.js +0 -129
  436. package/dist/TableCellMenuPlugin.js.flow +0 -132
  437. package/dist/TableInsertCommand.js +0 -117
  438. package/dist/TableInsertCommand.js.flow +0 -112
  439. package/dist/TableMergeCellsCommand.js +0 -97
  440. package/dist/TableMergeCellsCommand.js.flow +0 -90
  441. package/dist/TableNodesSpecs.js +0 -91
  442. package/dist/TableNodesSpecs.js.flow +0 -78
  443. package/dist/TablePlugins.js +0 -14
  444. package/dist/TablePlugins.js.flow +0 -14
  445. package/dist/TableResizePlugin.js +0 -543
  446. package/dist/TableResizePlugin.js.flow +0 -632
  447. package/dist/TextColorMarkSpec.js +0 -39
  448. package/dist/TextColorMarkSpec.js.flow +0 -35
  449. package/dist/TextHighlightMarkSpec.js +0 -42
  450. package/dist/TextHighlightMarkSpec.js.flow +0 -38
  451. package/dist/TextInsertTabSpaceCommand.js +0 -78
  452. package/dist/TextInsertTabSpaceCommand.js.flow +0 -83
  453. package/dist/TextNoWrapMarkSpec.js +0 -18
  454. package/dist/TextNoWrapMarkSpec.js.flow +0 -14
  455. package/dist/TextNodeSpec.js +0 -11
  456. package/dist/TextSelectionMarkSpec.js +0 -25
  457. package/dist/TextSelectionMarkSpec.js.flow +0 -24
  458. package/dist/TextSubMarkSpec.js +0 -22
  459. package/dist/TextSubMarkSpec.js.flow +0 -20
  460. package/dist/TextSuperMarkSpec.js +0 -22
  461. package/dist/TextSuperMarkSpec.js.flow +0 -20
  462. package/dist/TextUnderlineMarkSpec.js +0 -28
  463. package/dist/TextUnderlineMarkSpec.js.flow +0 -27
  464. package/dist/Types.js +0 -81
  465. package/dist/WebFontLoader.js +0 -28
  466. package/dist/blockQuoteInputRule.js +0 -35
  467. package/dist/blockQuoteInputRule.js.flow +0 -36
  468. package/dist/bom.xml +0 -68332
  469. package/dist/browser.js +0 -11
  470. package/dist/buildEditorPlugins.js +0 -44
  471. package/dist/buildEditorPlugins.js.flow +0 -49
  472. package/dist/buildInputRules.js +0 -72
  473. package/dist/buildInputRules.js.flow +0 -81
  474. package/dist/client/CollabConnector.js +0 -80
  475. package/dist/client/CollabConnector.js.flow +0 -90
  476. package/dist/client/EditorConnection.js +0 -290
  477. package/dist/client/EditorConnection.js.flow +0 -323
  478. package/dist/client/Licit.js +0 -621
  479. package/dist/client/Licit.js.flow +0 -708
  480. package/dist/client/Licit.test.js +0 -98
  481. package/dist/client/Licit.test.js.flow +0 -98
  482. package/dist/client/Reporter.js +0 -36
  483. package/dist/client/SimpleConnector.js +0 -59
  484. package/dist/client/http.js +0 -101
  485. package/dist/client/throttle.js +0 -26
  486. package/dist/convertFromDOMElement.js +0 -31
  487. package/dist/convertFromDOMElement.js.flow +0 -36
  488. package/dist/convertFromHTML.js +0 -15
  489. package/dist/convertFromHTML.js.flow +0 -17
  490. package/dist/convertFromJSON.js +0 -45
  491. package/dist/convertFromJSON.js.flow +0 -56
  492. package/dist/convertToCSSPTValue.js +0 -27
  493. package/dist/convertToJSON.js +0 -10
  494. package/dist/createCommand.js +0 -33
  495. package/dist/createCommand.js.flow +0 -40
  496. package/dist/createEditorKeyMap.js +0 -80
  497. package/dist/createEditorKeyMap.js.flow +0 -94
  498. package/dist/createEmptyEditorState.js +0 -24
  499. package/dist/createEmptyEditorState.js.flow +0 -31
  500. package/dist/createTableResizingPlugin.js +0 -79
  501. package/dist/findActionableCell.js +0 -65
  502. package/dist/findActionableCell.js.flow +0 -74
  503. package/dist/findActiveMark.js +0 -29
  504. package/dist/fonts/aclonica/Aclonica.woff2 +0 -0
  505. package/dist/fonts/acme/Acme.woff2 +0 -0
  506. package/dist/fonts/alegreya/Alegreya-Regular-C.woff2 +0 -0
  507. package/dist/fonts/alegreya/Alegreya-Regular-CE.woff2 +0 -0
  508. package/dist/fonts/alegreya/Alegreya-Regular-G.woff2 +0 -0
  509. package/dist/fonts/alegreya/Alegreya-Regular-GE.woff2 +0 -0
  510. package/dist/fonts/alegreya/Alegreya-Regular-L.woff2 +0 -0
  511. package/dist/fonts/alegreya/Alegreya-Regular-LE.woff2 +0 -0
  512. package/dist/fonts/alegreya/Alegreya-Regular-V.woff2 +0 -0
  513. package/dist/fonts/arial-black/ArialBlack-G.woff2 +0 -0
  514. package/dist/fonts/arial-black/ArialBlack-L.woff2 +0 -0
  515. package/dist/fonts/arial-black/ArialBlack-LE.woff2 +0 -0
  516. package/dist/fonts/courier-new/CourierNew-L.woff2 +0 -0
  517. package/dist/fonts/georgia/Georgia-C.woff2 +0 -0
  518. package/dist/fonts/georgia/Georgia-CE.woff2 +0 -0
  519. package/dist/fonts/georgia/Georgia-G.woff2 +0 -0
  520. package/dist/fonts/georgia/Georgia-GE.woff2 +0 -0
  521. package/dist/fonts/georgia/Georgia-L.woff2 +0 -0
  522. package/dist/fonts/georgia/Georgia-LE.woff2 +0 -0
  523. package/dist/fonts/material-icons/MaterialIcons-Regular.ttf +0 -0
  524. package/dist/fonts/tahoma/Tahoma-C.woff2 +0 -0
  525. package/dist/fonts/tahoma/Tahoma-CE.woff2 +0 -0
  526. package/dist/fonts/tahoma/Tahoma-G.woff2 +0 -0
  527. package/dist/fonts/tahoma/Tahoma-GE.woff2 +0 -0
  528. package/dist/fonts/tahoma/Tahoma-L.woff2 +0 -0
  529. package/dist/fonts/tahoma/Tahoma-LE.woff2 +0 -0
  530. package/dist/fonts/times/Times-L.woff2 +0 -0
  531. package/dist/fonts/times/Times-LE.woff2 +0 -0
  532. package/dist/fonts/times-new-roman/TimesNewRoman-C.woff2 +0 -0
  533. package/dist/fonts/times-new-roman/TimesNewRoman-CE.woff2 +0 -0
  534. package/dist/fonts/times-new-roman/TimesNewRoman-G.woff2 +0 -0
  535. package/dist/fonts/times-new-roman/TimesNewRoman-GE.woff2 +0 -0
  536. package/dist/fonts/times-new-roman/TimesNewRoman-L.woff2 +0 -0
  537. package/dist/fonts/times-new-roman/TimesNewRoman-LE.woff2 +0 -0
  538. package/dist/fonts/times-new-roman/TimesNewRoman-V.woff2 +0 -0
  539. package/dist/fonts/verdana/Verdana-C.woff2 +0 -0
  540. package/dist/fonts/verdana/Verdana-CE.woff2 +0 -0
  541. package/dist/fonts/verdana/Verdana-G.woff2 +0 -0
  542. package/dist/fonts/verdana/Verdana-GE.woff2 +0 -0
  543. package/dist/fonts/verdana/Verdana-L.woff2 +0 -0
  544. package/dist/fonts/verdana/Verdana-LE.woff2 +0 -0
  545. package/dist/fonts/verdana/Verdana-V.woff2 +0 -0
  546. package/dist/hyphenize.js +0 -20
  547. package/dist/index.js +0 -80
  548. package/dist/insertTable.js +0 -50
  549. package/dist/insertTable.js.flow +0 -56
  550. package/dist/isEditorStateEmpty.js +0 -38
  551. package/dist/isTableNode.js +0 -12
  552. package/dist/joinDown.js +0 -28
  553. package/dist/joinListNode.js +0 -38
  554. package/dist/joinUp.js +0 -33
  555. package/dist/keymaps.js +0 -106
  556. package/dist/lookUpElement.js +0 -15
  557. package/dist/nodeAt.js +0 -15
  558. package/dist/normalizeHTML.js +0 -70
  559. package/dist/normalizeHTML.js.flow +0 -78
  560. package/dist/patchAnchorElements.js +0 -37
  561. package/dist/patchAnchorElements.js.flow +0 -38
  562. package/dist/patchBreakElements.js +0 -28
  563. package/dist/patchElementInlineStyles.js +0 -70
  564. package/dist/patchElementInlineStyles.js.flow +0 -92
  565. package/dist/patchListElements.js +0 -248
  566. package/dist/patchListElements.js.flow +0 -276
  567. package/dist/patchMathElements.js +0 -69
  568. package/dist/patchParagraphElements.js +0 -21
  569. package/dist/patchParagraphElements.js.flow +0 -20
  570. package/dist/patchStyleElements.js +0 -162
  571. package/dist/patchStyleElements.js.flow +0 -194
  572. package/dist/patchTableElements.js +0 -98
  573. package/dist/patchTableElements.js.flow +0 -89
  574. package/dist/rebaseDocWithSteps.js +0 -32
  575. package/dist/sanitizeURL.js +0 -16
  576. package/dist/splitListItem.js +0 -180
  577. package/dist/splitListItem.js.flow +0 -191
  578. package/dist/styles.css +0 -19
  579. package/dist/styles0.css +0 -29
  580. package/dist/toClosestFontPtSize.js +0 -25
  581. package/dist/toClosestFontPtSize.js.flow +0 -22
  582. package/dist/toSafeHTMLDocument.js +0 -13
  583. package/dist/toggleBlockquote.js +0 -86
  584. package/dist/toggleBlockquote.js.flow +0 -91
  585. package/dist/toggleCodeBlock.js +0 -89
  586. package/dist/ui/AlertInfo.js +0 -59
  587. package/dist/ui/BookmarkNodeView.js +0 -77
  588. package/dist/ui/BookmarkNodeView.js.flow +0 -66
  589. package/dist/ui/CommandButton.js +0 -65
  590. package/dist/ui/CommandMenu.js +0 -83
  591. package/dist/ui/CommandMenu.js.flow +0 -75
  592. package/dist/ui/CommandMenuButton.js +0 -120
  593. package/dist/ui/CommandMenuButton.js.flow +0 -131
  594. package/dist/ui/CustomEditorView.js +0 -34
  595. package/dist/ui/CustomEditorView.js.flow +0 -28
  596. package/dist/ui/CustomMenu.js +0 -23
  597. package/dist/ui/CustomMenuItem.js +0 -43
  598. package/dist/ui/CustomNodeView.js +0 -193
  599. package/dist/ui/CustomNodeView.js.flow +0 -200
  600. package/dist/ui/CustomRadioButton.js +0 -67
  601. package/dist/ui/CustomRadioButton.js.flow +0 -65
  602. package/dist/ui/DocLayoutEditor.js +0 -142
  603. package/dist/ui/DocLayoutEditor.js.flow +0 -146
  604. package/dist/ui/Editor.js +0 -289
  605. package/dist/ui/Editor.js.flow +0 -288
  606. package/dist/ui/EditorFrameset.js +0 -86
  607. package/dist/ui/EditorToolbar.js +0 -206
  608. package/dist/ui/EditorToolbar.js.flow +0 -211
  609. package/dist/ui/EditorToolbarConfig.js +0 -148
  610. package/dist/ui/EditorToolbarConfig.js.flow +0 -164
  611. package/dist/ui/FontSizeCommandMenuButton.js +0 -57
  612. package/dist/ui/FontSizeCommandMenuButton.js.flow +0 -66
  613. package/dist/ui/FontTypeCommandMenuButton.js +0 -55
  614. package/dist/ui/FontTypeCommandMenuButton.js.flow +0 -49
  615. package/dist/ui/Frag.js +0 -19
  616. package/dist/ui/Icon.js +0 -104
  617. package/dist/ui/Icon.js.flow +0 -89
  618. package/dist/ui/ImageInlineEditor.js +0 -76
  619. package/dist/ui/KeyCodes.js +0 -23
  620. package/dist/ui/LinkTooltip.js +0 -92
  621. package/dist/ui/LinkTooltip.js.flow +0 -85
  622. package/dist/ui/LinkURLEditor.js +0 -107
  623. package/dist/ui/LinkURLEditor.js.flow +0 -111
  624. package/dist/ui/ListItemNodeView.js +0 -91
  625. package/dist/ui/ListItemNodeView.js.flow +0 -98
  626. package/dist/ui/ListTypeButton.js +0 -123
  627. package/dist/ui/ListTypeButton.js.flow +0 -131
  628. package/dist/ui/ListTypeCommandButton.js +0 -81
  629. package/dist/ui/ListTypeCommandButton.js.flow +0 -85
  630. package/dist/ui/ListTypeMenu.js +0 -72
  631. package/dist/ui/ListTypeMenu.js.flow +0 -70
  632. package/dist/ui/LoadingIndicator.js +0 -28
  633. package/dist/ui/MathEditor.js +0 -80
  634. package/dist/ui/MathEditor.js.flow +0 -78
  635. package/dist/ui/MathInlineEditor.js +0 -111
  636. package/dist/ui/MathInlineEditor.js.flow +0 -102
  637. package/dist/ui/MathNodeView.js +0 -190
  638. package/dist/ui/MathNodeView.js.flow +0 -175
  639. package/dist/ui/PasteMenu.js +0 -56
  640. package/dist/ui/ResizeObserver.js +0 -94
  641. package/dist/ui/RichTextEditor.js +0 -121
  642. package/dist/ui/RichTextEditor.js.flow +0 -133
  643. package/dist/ui/SelectionObserver.js +0 -116
  644. package/dist/ui/TableCellMenu.js +0 -53
  645. package/dist/ui/TableCellMenu.js.flow +0 -51
  646. package/dist/ui/TableGridSizeEditor.js +0 -191
  647. package/dist/ui/TableGridSizeEditor.js.flow +0 -184
  648. package/dist/ui/TableNodeView.js +0 -31
  649. package/dist/ui/bindScrollHandler.js +0 -39
  650. package/dist/ui/canUseCSSFont.js +0 -37
  651. package/dist/ui/czi-link-tooltip.css +0 -71
  652. package/dist/ui/czi-table.css +0 -86
  653. package/dist/ui/czi-vars.css +0 -2
  654. package/dist/ui/findActiveFontSize.js +0 -61
  655. package/dist/ui/findActiveFontSize.js.flow +0 -58
  656. package/dist/ui/findActiveFontType.js +0 -42
  657. package/dist/ui/findActiveFontType.js.flow +0 -38
  658. package/dist/ui/handleEditorDrop.js +0 -33
  659. package/dist/ui/handleEditorDrop.js.flow +0 -28
  660. package/dist/ui/handleEditorKeyDown.js +0 -29
  661. package/dist/ui/handleEditorKeyDown.js.flow +0 -39
  662. package/dist/ui/handleEditorPaste.js +0 -30
  663. package/dist/ui/handleEditorPaste.js.flow +0 -33
  664. package/dist/ui/htmlElementToRect.js +0 -25
  665. package/dist/ui/injectStyleSheet.js +0 -46
  666. package/dist/ui/isElementFullyVisible.js +0 -29
  667. package/dist/ui/isOffline.js +0 -12
  668. package/dist/ui/isReactClass.js +0 -16
  669. package/dist/ui/mathquill-editor/MathQuillEditor.js +0 -148
  670. package/dist/ui/mathquill-editor/MathQuillEditor.js.flow +0 -159
  671. package/dist/ui/mathquill-editor/MathQuillEditorSymbols.js +0 -488
  672. package/dist/ui/mathquill-editor/MathQuillEditorSymbolsPanel.js +0 -60
  673. package/dist/ui/mathquill-editor/MathQuillEditorSymbolsPanel.js.flow +0 -48
  674. package/dist/ui/mathquill-editor/mathquill-import-kludge.js +0 -30
  675. package/dist/ui/mathquill-editor/mathquill-import-kludge.js.flow +0 -24
  676. package/dist/ui/renderLaTeXAsHTML.js +0 -45
  677. package/dist/ui/renderLaTeXAsHTML.js.flow +0 -46
  678. package/dist/ui/resolveImage.js +0 -125
  679. package/dist/ui/toCSSColor.js +0 -52
  680. package/dist/ui/toCSSLineSpacing.js +0 -59
  681. package/dist/ui/toHexColor.js +0 -29
  682. package/dist/ui/uuid.js +0 -12
  683. package/dist/uuid.js +0 -12
  684. package/flow-typed/@modusoperandilicit-customstyles.js +0 -5
  685. package/flow-typed/@modusoperandilicit-doc-attrs-step.js +0 -5
  686. package/flow-typed/@modusoperandilicit-ui-commands.js +0 -5
  687. package/flow-typed/create-emotion.js +0 -5
  688. package/flow-typed/docs-editor.js +0 -3
  689. package/flow-typed/draft-convert.js +0 -3
  690. package/flow-typed/draft-js.js +0 -3
  691. package/flow-typed/flatted.js +0 -5
  692. package/flow-typed/jquery.js +0 -5
  693. package/flow-typed/katex.js +0 -7
  694. package/flow-typed/mathquill.js +0 -5
  695. package/flow-typed/prosemirror-collab.js +0 -5
  696. package/flow-typed/prosemirror-commands.js +0 -5
  697. package/flow-typed/prosemirror-dev-tools.js +0 -5
  698. package/flow-typed/prosemirror-dropcursor.js +0 -5
  699. package/flow-typed/prosemirror-gapcursor.js +0 -5
  700. package/flow-typed/prosemirror-history.js +0 -5
  701. package/flow-typed/prosemirror-inputrules.js +0 -5
  702. package/flow-typed/prosemirror-keymap.js +0 -5
  703. package/flow-typed/prosemirror-model.js +0 -5
  704. package/flow-typed/prosemirror-state.js +0 -5
  705. package/flow-typed/prosemirror-tables.js +0 -5
  706. package/flow-typed/prosemirror-transform.js +0 -5
  707. package/flow-typed/prosemirror-utils.js +0 -5
  708. package/flow-typed/prosemirror-view.js +0 -5
  709. package/flow-typed/resize-observer-polyfill.js +0 -5
  710. package/flow-typed/uuid.js +0 -5
  711. package/jest.config.js +0 -207
  712. package/jest.setup.js +0 -5
  713. package/licit/client/CustomLicitRuntime.js +0 -298
  714. package/licit/client/CustomStyleRuntime.js +0 -136
  715. package/licit/client/index.js +0 -367
  716. package/licit/index.html +0 -11
  717. package/licit/server/collab/instance.js +0 -236
  718. package/licit/server/collab/route.js +0 -69
  719. package/licit/server/collab/server.js +0 -317
  720. package/licit/server/collab/start.js +0 -13
  721. package/licit/server/image/start.js +0 -58
  722. package/lint.sh +0 -4
  723. package/run_collab_server.py +0 -21
  724. package/run_image_server.py +0 -20
  725. package/run_web_server.py +0 -25
  726. package/scripts/build_bin.js +0 -10
  727. package/scripts/build_bin.py +0 -103
  728. package/scripts/ci_check_dist.sh +0 -14
  729. package/scripts/env.js +0 -6
  730. package/scripts/webserver.js +0 -35
  731. package/sonar-project.properties +0 -12
  732. package/src/BlockquoteInsertNewLineCommand.js +0 -55
  733. package/src/BlockquoteNodeSpec.js +0 -30
  734. package/src/BlockquoteToggleCommand.js +0 -34
  735. package/src/BookmarkNodeSpec.js +0 -39
  736. package/src/BulletListNodeSpec.js +0 -61
  737. package/src/CZIProseMirror.js +0 -90
  738. package/src/CodeBlockCommand.js +0 -43
  739. package/src/CodeBlockNodeSpec.js +0 -24
  740. package/src/CodeMarkSpec.js +0 -14
  741. package/src/ContentPlaceholderPlugin.js +0 -187
  742. package/src/CursorPlaceholderPlugin.js +0 -115
  743. package/src/DocLayoutCommand.js +0 -94
  744. package/src/DocNodeSpec.js +0 -64
  745. package/src/EMMarkSpec.js +0 -14
  746. package/src/EditorCommands.js +0 -124
  747. package/src/EditorKeyMap.js +0 -187
  748. package/src/EditorMarks.js +0 -71
  749. package/src/EditorNodes.js +0 -59
  750. package/src/EditorPageLayoutPlugin.js +0 -67
  751. package/src/EditorPlugins.js +0 -8
  752. package/src/EditorSchema.js +0 -12
  753. package/src/EditorState.js +0 -7
  754. package/src/FontSizeMarkSpec.js +0 -49
  755. package/src/FontTypeMarkSpec.js +0 -80
  756. package/src/HTMLMutator.js +0 -59
  757. package/src/HardBreakNodeSpec.js +0 -15
  758. package/src/HeadingNodeSpec.js +0 -52
  759. package/src/HistoryRedoCommand.js +0 -20
  760. package/src/HistoryUndoCommand.js +0 -20
  761. package/src/HorizontalRuleCommand.js +0 -49
  762. package/src/HorizontalRuleNodeSpec.js +0 -39
  763. package/src/ImageUploadPlaceholderPlugin.js +0 -192
  764. package/src/LinkMarkSpec.js +0 -32
  765. package/src/LinkSetURLCommand.js +0 -103
  766. package/src/LinkTooltipPlugin.js +0 -192
  767. package/src/ListItemInsertNewLineCommand.js +0 -55
  768. package/src/ListItemMergeCommand.js +0 -177
  769. package/src/ListItemNodeSpec.js +0 -52
  770. package/src/ListSplitCommand.js +0 -32
  771. package/src/ListToggleCommand.js +0 -77
  772. package/src/MarkNames.js +0 -18
  773. package/src/MarksClearCommand.js +0 -42
  774. package/src/MathEditCommand.js +0 -110
  775. package/src/MathNodeSpec.js +0 -46
  776. package/src/NodeNames.js +0 -23
  777. package/src/OrderedListNodeSpec.js +0 -132
  778. package/src/ParagraphNodeSpec.js +0 -156
  779. package/src/ParagraphSpacingCommand.js +0 -121
  780. package/src/PrintCommand.js +0 -31
  781. package/src/SelectionPlaceholderPlugin.js +0 -131
  782. package/src/SpacerMarkSpec.js +0 -47
  783. package/src/StrikeMarkSpec.js +0 -21
  784. package/src/StrongMarkSpec.js +0 -25
  785. package/src/StyleView.js +0 -19
  786. package/src/TableBackgroundColorCommand.js +0 -75
  787. package/src/TableBorderColorCommand.js +0 -75
  788. package/src/TableCellColorCommand.js +0 -71
  789. package/src/TableCellMenuPlugin.js +0 -132
  790. package/src/TableInsertCommand.js +0 -112
  791. package/src/TableMergeCellsCommand.js +0 -90
  792. package/src/TableNodesSpecs.js +0 -78
  793. package/src/TablePlugins.js +0 -14
  794. package/src/TableResizePlugin.js +0 -632
  795. package/src/TextColorMarkSpec.js +0 -35
  796. package/src/TextHighlightMarkSpec.js +0 -38
  797. package/src/TextInsertTabSpaceCommand.js +0 -83
  798. package/src/TextNoWrapMarkSpec.js +0 -14
  799. package/src/TextNodeSpec.js +0 -7
  800. package/src/TextSelectionMarkSpec.js +0 -24
  801. package/src/TextSubMarkSpec.js +0 -20
  802. package/src/TextSuperMarkSpec.js +0 -20
  803. package/src/TextUnderlineMarkSpec.js +0 -27
  804. package/src/Types.js +0 -75
  805. package/src/WebFontLoader.js +0 -22
  806. package/src/blockQuoteInputRule.js +0 -36
  807. package/src/browser.js +0 -7
  808. package/src/buildEditorPlugins.js +0 -49
  809. package/src/buildInputRules.js +0 -81
  810. package/src/client/CollabConnector.js +0 -90
  811. package/src/client/EditorConnection.js +0 -323
  812. package/src/client/Licit.js +0 -708
  813. package/src/client/Licit.test.js +0 -98
  814. package/src/client/Reporter.js +0 -37
  815. package/src/client/SimpleConnector.js +0 -61
  816. package/src/client/http.js +0 -70
  817. package/src/client/licit.css +0 -12
  818. package/src/client/throttle.js +0 -27
  819. package/src/convertFromDOMElement.js +0 -36
  820. package/src/convertFromHTML.js +0 -17
  821. package/src/convertFromJSON.js +0 -56
  822. package/src/convertToCSSPTValue.js +0 -22
  823. package/src/convertToJSON.js +0 -7
  824. package/src/createCommand.js +0 -40
  825. package/src/createEditorKeyMap.js +0 -94
  826. package/src/createEmptyEditorState.js +0 -31
  827. package/src/createTableResizingPlugin.js +0 -86
  828. package/src/findActionableCell.js +0 -74
  829. package/src/findActiveMark.js +0 -32
  830. package/src/hyphenize.js +0 -17
  831. package/src/index.js +0 -10
  832. package/src/insertTable.js +0 -56
  833. package/src/isEditorStateEmpty.js +0 -32
  834. package/src/isTableNode.js +0 -15
  835. package/src/joinDown.js +0 -27
  836. package/src/joinListNode.js +0 -55
  837. package/src/joinUp.js +0 -39
  838. package/src/keymaps.js +0 -185
  839. package/src/lookUpElement.js +0 -14
  840. package/src/nodeAt.js +0 -12
  841. package/src/normalizeHTML.js +0 -78
  842. package/src/patchAnchorElements.js +0 -38
  843. package/src/patchBreakElements.js +0 -22
  844. package/src/patchElementInlineStyles.js +0 -92
  845. package/src/patchListElements.js +0 -276
  846. package/src/patchMathElements.js +0 -60
  847. package/src/patchParagraphElements.js +0 -20
  848. package/src/patchStyleElements.js +0 -194
  849. package/src/patchTableElements.js +0 -89
  850. package/src/rebaseDocWithSteps.js +0 -42
  851. package/src/sanitizeURL.js +0 -13
  852. package/src/splitListItem.js +0 -191
  853. package/src/styles.css +0 -19
  854. package/src/styles0.css +0 -29
  855. package/src/toClosestFontPtSize.js +0 -22
  856. package/src/toSafeHTMLDocument.js +0 -9
  857. package/src/toggleBlockquote.js +0 -91
  858. package/src/toggleCodeBlock.js +0 -102
  859. package/src/ui/AlertInfo.js +0 -64
  860. package/src/ui/BookmarkNodeView.js +0 -66
  861. package/src/ui/CommandButton.js +0 -68
  862. package/src/ui/CommandMenu.js +0 -75
  863. package/src/ui/CommandMenuButton.js +0 -131
  864. package/src/ui/CustomEditorView.js +0 -28
  865. package/src/ui/CustomMenu.js +0 -17
  866. package/src/ui/CustomMenuItem.js +0 -36
  867. package/src/ui/CustomNodeView.js +0 -200
  868. package/src/ui/CustomRadioButton.js +0 -65
  869. package/src/ui/DocLayoutEditor.js +0 -146
  870. package/src/ui/Editor.js +0 -288
  871. package/src/ui/EditorFrameset.js +0 -81
  872. package/src/ui/EditorToolbar.js +0 -211
  873. package/src/ui/EditorToolbarConfig.js +0 -164
  874. package/src/ui/FontSizeCommandMenuButton.js +0 -66
  875. package/src/ui/FontTypeCommandMenuButton.js +0 -49
  876. package/src/ui/Frag.js +0 -13
  877. package/src/ui/Icon.js +0 -89
  878. package/src/ui/ImageInlineEditor.js +0 -67
  879. package/src/ui/KeyCodes.js +0 -12
  880. package/src/ui/LinkTooltip.js +0 -85
  881. package/src/ui/LinkURLEditor.js +0 -111
  882. package/src/ui/ListItemNodeView.js +0 -98
  883. package/src/ui/ListTypeButton.js +0 -131
  884. package/src/ui/ListTypeCommandButton.js +0 -85
  885. package/src/ui/ListTypeMenu.js +0 -70
  886. package/src/ui/LoadingIndicator.js +0 -20
  887. package/src/ui/MathEditor.js +0 -78
  888. package/src/ui/MathInlineEditor.js +0 -102
  889. package/src/ui/MathNodeView.js +0 -175
  890. package/src/ui/PasteMenu.js +0 -57
  891. package/src/ui/ResizeObserver.js +0 -106
  892. package/src/ui/RichTextEditor.js +0 -133
  893. package/src/ui/SelectionObserver.js +0 -134
  894. package/src/ui/TableCellMenu.js +0 -51
  895. package/src/ui/TableGridSizeEditor.js +0 -184
  896. package/src/ui/TableNodeView.js +0 -25
  897. package/src/ui/bindScrollHandler.js +0 -46
  898. package/src/ui/canUseCSSFont.js +0 -43
  899. package/src/ui/czi-body-layout-editor.css +0 -16
  900. package/src/ui/czi-bookmark-view.css +0 -10
  901. package/src/ui/czi-cursor-placeholder.css +0 -36
  902. package/src/ui/czi-custom-menu-button.css +0 -18
  903. package/src/ui/czi-custom-menu-item.css +0 -30
  904. package/src/ui/czi-custom-menu.css +0 -8
  905. package/src/ui/czi-custom-radio-button.css +0 -80
  906. package/src/ui/czi-custom-scrollbar.css +0 -21
  907. package/src/ui/czi-editor-frameset.css +0 -81
  908. package/src/ui/czi-editor-toolbar.css +0 -122
  909. package/src/ui/czi-editor.css +0 -220
  910. package/src/ui/czi-form.css +0 -107
  911. package/src/ui/czi-frag.css +0 -3
  912. package/src/ui/czi-heading.css +0 -40
  913. package/src/ui/czi-icon.css +0 -72
  914. package/src/ui/czi-image-resize-box.css +0 -165
  915. package/src/ui/czi-image-upload-editor.css +0 -57
  916. package/src/ui/czi-image-upload-placeholder.css +0 -50
  917. package/src/ui/czi-image-url-editor.css +0 -38
  918. package/src/ui/czi-image-view.css +0 -125
  919. package/src/ui/czi-indent.css +0 -137
  920. package/src/ui/czi-inline-editor.css +0 -20
  921. package/src/ui/czi-link-tooltip.css +0 -71
  922. package/src/ui/czi-list.css +0 -410
  923. package/src/ui/czi-loading-indicator.css +0 -111
  924. package/src/ui/czi-math-view.css +0 -62
  925. package/src/ui/czi-selection-placeholder.css +0 -24
  926. package/src/ui/czi-table-cell-menu.css +0 -14
  927. package/src/ui/czi-table-grid-size-editor.css +0 -37
  928. package/src/ui/czi-table.css +0 -86
  929. package/src/ui/czi-vars.css +0 -2
  930. package/src/ui/findActiveFontSize.js +0 -58
  931. package/src/ui/findActiveFontType.js +0 -38
  932. package/src/ui/fonts.css +0 -471
  933. package/src/ui/handleEditorDrop.js +0 -28
  934. package/src/ui/handleEditorKeyDown.js +0 -39
  935. package/src/ui/handleEditorPaste.js +0 -33
  936. package/src/ui/htmlElementToRect.js +0 -18
  937. package/src/ui/icon-font.css +0 -10
  938. package/src/ui/injectStyleSheet.js +0 -42
  939. package/src/ui/isElementFullyVisible.js +0 -26
  940. package/src/ui/isOffline.js +0 -8
  941. package/src/ui/isReactClass.js +0 -12
  942. package/src/ui/listType.css +0 -21
  943. package/src/ui/mathquill-editor/MathQuillEditor.js +0 -159
  944. package/src/ui/mathquill-editor/MathQuillEditorSymbols.js +0 -483
  945. package/src/ui/mathquill-editor/MathQuillEditorSymbolsPanel.js +0 -48
  946. package/src/ui/mathquill-editor/czi-mathquill-editor-symbols-panel.css +0 -39
  947. package/src/ui/mathquill-editor/czi-mathquill-editor.css +0 -50
  948. package/src/ui/mathquill-editor/mathquill-import-kludge.js +0 -24
  949. package/src/ui/renderLaTeXAsHTML.js +0 -46
  950. package/src/ui/resolveImage.js +0 -123
  951. package/src/ui/toCSSColor.js +0 -51
  952. package/src/ui/toCSSLineSpacing.js +0 -55
  953. package/src/ui/toHexColor.js +0 -26
  954. package/src/ui/uuid.js +0 -9
  955. package/src/uuid.js +0 -9
  956. package/style-service.Dockerfile +0 -26
  957. package/utils/build_bin.js +0 -9
  958. package/utils/build_image_server.js +0 -72
  959. package/utils/build_licit_collab_server.js +0 -76
  960. package/utils/build_web_server.js +0 -37
  961. package/utils/env.js +0 -6
  962. package/webpack.config.js +0 -128
  963. /package/{dist/CodeBlockNodeSpec.js.flow → CodeBlockNodeSpec.js.flow} +0 -0
  964. /package/{dist/CursorPlaceholderPlugin.js.flow → CursorPlaceholderPlugin.js.flow} +0 -0
  965. /package/{dist/EditorState.js.flow → EditorState.js.flow} +0 -0
  966. /package/{dist/HardBreakNodeSpec.js.flow → HardBreakNodeSpec.js.flow} +0 -0
  967. /package/{dist/HeadingNodeSpec.js.flow → HeadingNodeSpec.js.flow} +0 -0
  968. /package/{dist/HorizontalRuleNodeSpec.js.flow → HorizontalRuleNodeSpec.js.flow} +0 -0
  969. /package/{dist/MarkNames.js.flow → MarkNames.js.flow} +0 -0
  970. /package/{dist/NodeNames.js.flow → NodeNames.js.flow} +0 -0
  971. /package/{dist/SelectionPlaceholderPlugin.js.flow → SelectionPlaceholderPlugin.js.flow} +0 -0
  972. /package/{dist/StyleView.js.flow → StyleView.js.flow} +0 -0
  973. /package/{dist/TableBackgroundColorCommand.js.flow → TableBackgroundColorCommand.js.flow} +0 -0
  974. /package/{dist/TableBorderColorCommand.js.flow → TableBorderColorCommand.js.flow} +0 -0
  975. /package/{dist/TextNodeSpec.js.flow → TextNodeSpec.js.flow} +0 -0
  976. /package/{dist/Types.js.flow → Types.js.flow} +0 -0
  977. /package/{dist/WebFontLoader.js.flow → WebFontLoader.js.flow} +0 -0
  978. /package/{dist/browser.js.flow → browser.js.flow} +0 -0
  979. /package/{dist/client → client}/Reporter.js.flow +0 -0
  980. /package/{dist/client → client}/SimpleConnector.js.flow +0 -0
  981. /package/{dist/client → client}/http.js.flow +0 -0
  982. /package/{dist/client → client}/licit.css +0 -0
  983. /package/{dist/client → client}/throttle.js.flow +0 -0
  984. /package/{dist/convertToCSSPTValue.js.flow → convertToCSSPTValue.js.flow} +0 -0
  985. /package/{dist/convertToJSON.js.flow → convertToJSON.js.flow} +0 -0
  986. /package/{dist/createTableResizingPlugin.js.flow → createTableResizingPlugin.js.flow} +0 -0
  987. /package/{dist/findActiveMark.js.flow → findActiveMark.js.flow} +0 -0
  988. /package/{dist/hyphenize.js.flow → hyphenize.js.flow} +0 -0
  989. /package/{dist/index.js.flow → index.js.flow} +0 -0
  990. /package/{dist/isEditorStateEmpty.js.flow → isEditorStateEmpty.js.flow} +0 -0
  991. /package/{dist/isTableNode.js.flow → isTableNode.js.flow} +0 -0
  992. /package/{dist/joinDown.js.flow → joinDown.js.flow} +0 -0
  993. /package/{dist/joinListNode.js.flow → joinListNode.js.flow} +0 -0
  994. /package/{dist/joinUp.js.flow → joinUp.js.flow} +0 -0
  995. /package/{dist/keymaps.js.flow → keymaps.js.flow} +0 -0
  996. /package/{dist/lookUpElement.js.flow → lookUpElement.js.flow} +0 -0
  997. /package/{dist/nodeAt.js.flow → nodeAt.js.flow} +0 -0
  998. /package/{dist/patchBreakElements.js.flow → patchBreakElements.js.flow} +0 -0
  999. /package/{dist/patchMathElements.js.flow → patchMathElements.js.flow} +0 -0
  1000. /package/{dist/rebaseDocWithSteps.js.flow → rebaseDocWithSteps.js.flow} +0 -0
  1001. /package/{dist/sanitizeURL.js.flow → sanitizeURL.js.flow} +0 -0
  1002. /package/{dist/toSafeHTMLDocument.js.flow → toSafeHTMLDocument.js.flow} +0 -0
  1003. /package/{dist/toggleCodeBlock.js.flow → toggleCodeBlock.js.flow} +0 -0
  1004. /package/{dist/ui → ui}/AlertInfo.js.flow +0 -0
  1005. /package/{dist/ui → ui}/CommandButton.js.flow +0 -0
  1006. /package/{dist/ui → ui}/CustomMenu.js.flow +0 -0
  1007. /package/{dist/ui → ui}/CustomMenuItem.js.flow +0 -0
  1008. /package/{dist/ui → ui}/EditorFrameset.js.flow +0 -0
  1009. /package/{dist/ui → ui}/Frag.js.flow +0 -0
  1010. /package/{dist/ui → ui}/ImageInlineEditor.js.flow +0 -0
  1011. /package/{dist/ui → ui}/KeyCodes.js.flow +0 -0
  1012. /package/{dist/ui → ui}/LoadingIndicator.js.flow +0 -0
  1013. /package/{dist/ui → ui}/PasteMenu.js.flow +0 -0
  1014. /package/{dist/ui → ui}/ResizeObserver.js.flow +0 -0
  1015. /package/{dist/ui → ui}/SelectionObserver.js.flow +0 -0
  1016. /package/{dist/ui → ui}/TableNodeView.js.flow +0 -0
  1017. /package/{dist/ui → ui}/bindScrollHandler.js.flow +0 -0
  1018. /package/{dist/ui → ui}/canUseCSSFont.js.flow +0 -0
  1019. /package/{dist/ui → ui}/czi-body-layout-editor.css +0 -0
  1020. /package/{dist/ui → ui}/czi-bookmark-view.css +0 -0
  1021. /package/{dist/ui → ui}/czi-cursor-placeholder.css +0 -0
  1022. /package/{dist/ui → ui}/czi-custom-menu-button.css +0 -0
  1023. /package/{dist/ui → ui}/czi-custom-menu-item.css +0 -0
  1024. /package/{dist/ui → ui}/czi-custom-menu.css +0 -0
  1025. /package/{dist/ui → ui}/czi-custom-radio-button.css +0 -0
  1026. /package/{dist/ui → ui}/czi-custom-scrollbar.css +0 -0
  1027. /package/{dist/ui → ui}/czi-editor-frameset.css +0 -0
  1028. /package/{dist/ui → ui}/czi-editor-toolbar.css +0 -0
  1029. /package/{dist/ui → ui}/czi-editor.css +0 -0
  1030. /package/{dist/ui → ui}/czi-form.css +0 -0
  1031. /package/{dist/ui → ui}/czi-frag.css +0 -0
  1032. /package/{dist/ui → ui}/czi-heading.css +0 -0
  1033. /package/{dist/ui → ui}/czi-icon.css +0 -0
  1034. /package/{dist/ui → ui}/czi-image-resize-box.css +0 -0
  1035. /package/{dist/ui → ui}/czi-image-upload-editor.css +0 -0
  1036. /package/{dist/ui → ui}/czi-image-upload-placeholder.css +0 -0
  1037. /package/{dist/ui → ui}/czi-image-url-editor.css +0 -0
  1038. /package/{dist/ui → ui}/czi-image-view.css +0 -0
  1039. /package/{dist/ui → ui}/czi-indent.css +0 -0
  1040. /package/{dist/ui → ui}/czi-inline-editor.css +0 -0
  1041. /package/{dist/ui → ui}/czi-list.css +0 -0
  1042. /package/{dist/ui → ui}/czi-loading-indicator.css +0 -0
  1043. /package/{dist/ui → ui}/czi-math-view.css +0 -0
  1044. /package/{dist/ui → ui}/czi-selection-placeholder.css +0 -0
  1045. /package/{dist/ui → ui}/czi-table-cell-menu.css +0 -0
  1046. /package/{dist/ui → ui}/czi-table-grid-size-editor.css +0 -0
  1047. /package/{dist/ui → ui}/fonts.css +0 -0
  1048. /package/{dist/ui → ui}/htmlElementToRect.js.flow +0 -0
  1049. /package/{dist/ui → ui}/icon-font.css +0 -0
  1050. /package/{dist/ui → ui}/injectStyleSheet.js.flow +0 -0
  1051. /package/{dist/ui → ui}/isElementFullyVisible.js.flow +0 -0
  1052. /package/{dist/ui → ui}/isOffline.js.flow +0 -0
  1053. /package/{dist/ui → ui}/isReactClass.js.flow +0 -0
  1054. /package/{dist/ui → ui}/listType.css +0 -0
  1055. /package/{dist/ui → ui}/mathquill-editor/MathQuillEditorSymbols.js.flow +0 -0
  1056. /package/{dist/ui → ui}/mathquill-editor/czi-mathquill-editor-symbols-panel.css +0 -0
  1057. /package/{dist/ui → ui}/mathquill-editor/czi-mathquill-editor.css +0 -0
  1058. /package/{dist/ui → ui}/resolveImage.js.flow +0 -0
  1059. /package/{dist/ui → ui}/toCSSColor.js.flow +0 -0
  1060. /package/{dist/ui → ui}/toCSSLineSpacing.js.flow +0 -0
  1061. /package/{dist/ui → ui}/toHexColor.js.flow +0 -0
  1062. /package/{dist/ui → ui}/uuid.js.flow +0 -0
  1063. /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,10 +1,12 @@
1
1
  {
2
2
  "name": "@modusoperandi/licit",
3
- "version": "0.14.18",
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"
@@ -19,16 +21,15 @@
19
21
  "build:fonts": "mkdirp ./dist/fonts && cp -r fonts/* dist/fonts",
20
22
  "build:babel": "babel src --out-dir dist",
21
23
  "build:flow": "flow-copy-source -v -i '**/__tests__/**' src dist",
22
- "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/",
23
25
  "build:licit": "node utils/build_bin.js",
24
26
  "ci:bom": "cyclonedx-npm --ignore-npm-errors --short-PURLs --output-format XML --output-file dist/bom.xml",
25
- "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",
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",
26
28
  "flow": "flow --show-all-errors",
27
29
  "lint:css": "stylelint \"**/*.css\"",
28
30
  "lint:js": "eslint \"src/**/*.js\" \"licit/**/*.js\"",
29
31
  "lint": "npm run lint:css & npm run lint:js",
30
32
  "start": "node scripts/webserver.js",
31
- "prepare": "npm run build:dist",
32
33
  "prebuild:style-service-docker": "node utils/build_customstyle_server.js",
33
34
  "build:style-service-docker": "docker build . -f style-service.Dockerfile -t style-service:latest"
34
35
  },
@@ -56,24 +57,25 @@
56
57
  "@babel/preset-react": "^7.18.6",
57
58
  "@cyclonedx/cyclonedx-npm": "^1.11.0",
58
59
  "babel-jest": "^29.2.0",
59
- "babel-loader": "8.2.5",
60
- "babel-plugin-flow-react-proptypes": "26.0.0",
61
- "babel-plugin-transform-react-remove-prop-types": "0.4.24",
62
- "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",
63
64
  "copy-webpack-plugin": "^11.0.0",
64
- "css-loader": "6.7.3",
65
+ "css-loader": "^6.9.1",
66
+ "copyfiles": "^2.4.1",
65
67
  "enzyme": "^3.11.0",
66
68
  "eslint": "^8.25.0",
67
- "eslint-config-prettier": "^8.5.0",
69
+ "eslint-config-prettier": "^9.0.0",
68
70
  "eslint-plugin-jest": "^27.1.2",
69
71
  "eslint-plugin-prettier": "^4.2.1",
70
- "eslint-plugin-react": "7.33.2",
72
+ "eslint-plugin-react": "^7.33.2",
71
73
  "exports-loader": "^1.1.0",
72
74
  "file-loader": "^6.2.0",
73
- "flow-bin": "0.128.0",
74
- "flow-copy-source": "2.0.9",
75
- "flow-webpack-plugin": "1.2.0",
76
- "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",
77
79
  "html-webpack-inline-source-plugin": "1.0.0-beta.2",
78
80
  "html-webpack-plugin": "^5.5.0",
79
81
  "husky": "^8.0.1",
@@ -83,39 +85,46 @@
83
85
  "jest-prosemirror": "^1.0.3",
84
86
  "jest-sonar-reporter": "^2.0.0",
85
87
  "lint-staged": "^13.0.3",
86
- "mkdirp": "^1.0.4",
88
+ "mkdirp": "^3.0.1",
87
89
  "prettier": "^2.1.2",
88
90
  "stylelint": "^15.6.0",
89
91
  "stylelint-config-standard": "^33.0.0",
90
- "stylelint-prettier": "^2.0.0",
92
+ "stylelint-prettier": "^3.0.0",
91
93
  "terser-webpack-plugin": "^3.1.0",
92
94
  "webpack": "^5.74.0",
93
- "webpack-cli": "^4.10.0",
95
+ "webpack-cli": "^5.1.4",
94
96
  "webpack-dev-server": "^4.11.1",
95
- "write-file-webpack-plugin": "4.5.1"
97
+ "write-file-webpack-plugin": "^4.5.1"
96
98
  },
97
99
  "dependencies": {
98
- "@modusoperandi/licit-ui-commands": "^0.1.17",
99
- "@wojtekmaj/enzyme-adapter-react-17": "^0.6.7",
100
+ "@cfaester/enzyme-adapter-react-18": "^0.7.1",
100
101
  "body-parser": "^1.19.0",
101
102
  "cors": "^2.8.5",
102
103
  "express": "^4.17.1",
103
104
  "flatted": "^3.1.0",
104
105
  "flow-typed": "^3.3.1",
105
106
  "formidable": "^1.2.2",
106
- "invariant": "2.2.4",
107
+ "invariant": "^2.2.4",
107
108
  "jquery": "^3.5.1",
108
- "katex": "0.11.1",
109
+ "katex": "^0.11.1",
109
110
  "mv": "^2.1.1",
110
- "node-mathquill": "0.10.2",
111
- "prosemirror-collab": "1.2.2",
112
- "prosemirror-dev-tools": "3.0.2",
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",
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",
117
118
  "url": "^0.11.0"
118
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
+ },
119
128
  "importSort": {
120
129
  ".js": {
121
130
  "parser": "babylon",
@@ -138,4 +147,4 @@
138
147
  "prettier --write"
139
148
  ]
140
149
  }
141
- }
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
+ }
@@ -0,0 +1,65 @@
1
+ import hyphenize from './hyphenize.js';
2
+ var BLOCK_TAG_SELECTOR = 'p,h1,h2,h3,h4,h5,h6,li'.replace(/\w+/g, function (m) {
3
+ return "".concat(m, "[style]");
4
+ });
5
+ export default function patchElementInlineStyles(doc) {
6
+ // Ensure that inline-styles can be correctly translated as inline marks.
7
+ // Workaround to patch inline styles added to block tags.
8
+ var bEls = Array.from(doc.querySelectorAll(BLOCK_TAG_SELECTOR));
9
+ bEls.forEach(patchBlockElement);
10
+ }
11
+ var NODE_TYPE_TEXT = 3;
12
+ var NODE_TYPE_ELEMENT = 1;
13
+ var INLINE_STYLE_NAMES = ['backgroundColor', 'color', 'fontFamily', 'fontSize', 'fontStyle', 'fontWeight', 'textDecoration', 'textIndent'];
14
+ var INLINE_ELEMENT_NODE_NAMES = new Set(['A', 'B', 'EM', 'I', 'SPAN', 'STRONG', 'U']);
15
+ function patchBlockElement(el) {
16
+ INLINE_STYLE_NAMES.forEach(function (name) {
17
+ return patchBlockElementStyle(el, name);
18
+ });
19
+ }
20
+
21
+ // Move the specified inline style of the element to its child nodes. This
22
+ // assumes that its child nodes are inline elements.
23
+ function patchBlockElementStyle(el, inlineStyleName) {
24
+ var element = el;
25
+ var elementStyle = element.style;
26
+ var value = elementStyle && elementStyle[inlineStyleName];
27
+ if (inlineStyleName === 'textIndent' && value) {
28
+ // This is the workaround to fix the issue that people with mix both
29
+ // text-indent and margin-left together.
30
+ // For instance, `margin-left: -100px` and `text-indent: 100px` shall
31
+ // offset each other.
32
+ var marginLeft = elementStyle.marginLeft || '';
33
+ if (value === '-' + marginLeft || marginLeft === '-' + value) {
34
+ elementStyle.marginLeft = '';
35
+ elementStyle.textIndent = '';
36
+ }
37
+ }
38
+ if (!value) {
39
+ return;
40
+ }
41
+
42
+ // Remove the style.
43
+ elementStyle[inlineStyleName] = '';
44
+ var childNodes = Array.from(element.childNodes);
45
+ childNodes.forEach(function (node) {
46
+ var nodeType = node.nodeType,
47
+ style = node.style,
48
+ nodeName = node.nodeName,
49
+ ownerDocument = node.ownerDocument,
50
+ parentElement = node.parentElement;
51
+ if (nodeType === NODE_TYPE_ELEMENT) {
52
+ if (INLINE_ELEMENT_NODE_NAMES.has(nodeName)) {
53
+ var cssText = "".concat(hyphenize(inlineStyleName), ": ").concat(value, ";") + style.cssText;
54
+ style.cssText = cssText;
55
+ }
56
+ } else if (nodeType === NODE_TYPE_TEXT) {
57
+ if (ownerDocument && parentElement) {
58
+ var span = ownerDocument.createElement('span');
59
+ span.style[inlineStyleName] = value;
60
+ parentElement.insertBefore(span, node);
61
+ span.appendChild(node);
62
+ }
63
+ }
64
+ });
65
+ }