@modusoperandi/licit 0.1.7 → 0.1.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (693) hide show
  1. package/.babelrc +54 -54
  2. package/.dockerignore +4 -4
  3. package/.eslintignore +3 -3
  4. package/.eslintrc.js +80 -80
  5. package/.flowconfig +37 -37
  6. package/.github/workflows/build.yml +35 -30
  7. package/.github/workflows/lint.yml +30 -30
  8. package/.prettierignore +5 -5
  9. package/.prettierrc +4 -4
  10. package/.stylelintignore +1 -1
  11. package/.stylelintrc.json +13 -13
  12. package/.travis.yml +18 -18
  13. package/CODEOWNERS +40 -40
  14. package/LICENSE +22 -22
  15. package/README.md +286 -285
  16. package/build_collab_server.py +7 -7
  17. package/build_customstyle_server.py +7 -7
  18. package/build_image_server.py +7 -7
  19. package/dist/BlockquoteInsertNewLineCommand.js.flow +55 -55
  20. package/dist/BlockquoteNodeSpec.js +2 -2
  21. package/dist/BlockquoteNodeSpec.js.flow +30 -30
  22. package/dist/BlockquoteToggleCommand.js.flow +34 -34
  23. package/dist/BookmarkNodeSpec.js.flow +39 -39
  24. package/dist/BulletListNodeSpec.js.flow +61 -61
  25. package/dist/CZIProseMirror.js +4 -4
  26. package/dist/CZIProseMirror.js.flow +90 -90
  27. package/dist/CodeBlockCommand.js.flow +43 -43
  28. package/dist/CodeBlockNodeSpec.js.flow +24 -24
  29. package/dist/CodeMarkSpec.js.flow +14 -14
  30. package/dist/ContentPlaceholderPlugin.js.flow +187 -187
  31. package/dist/CursorPlaceholderPlugin.js +2 -2
  32. package/dist/CursorPlaceholderPlugin.js.flow +115 -115
  33. package/dist/DocLayoutCommand.js.flow +94 -94
  34. package/dist/DocNodeSpec.js +1 -1
  35. package/dist/DocNodeSpec.js.flow +64 -64
  36. package/dist/EMMarkSpec.js.flow +14 -14
  37. package/dist/EditorCommands.js +1 -1
  38. package/dist/EditorCommands.js.flow +128 -128
  39. package/dist/EditorKeyMap.js +3 -3
  40. package/dist/EditorKeyMap.js.flow +187 -187
  41. package/dist/EditorMarks.js.flow +71 -71
  42. package/dist/EditorNodes.js.flow +60 -60
  43. package/dist/EditorPageLayoutPlugin.js.flow +67 -67
  44. package/dist/EditorPlugins.js.flow +8 -8
  45. package/dist/EditorSchema.js.flow +12 -12
  46. package/dist/EditorState.js.flow +7 -7
  47. package/dist/FontSizeCommand.js.flow +57 -57
  48. package/dist/FontSizeMarkSpec.js.flow +49 -49
  49. package/dist/FontTypeCommand.js.flow +100 -100
  50. package/dist/FontTypeMarkSpec.js +1 -1
  51. package/dist/FontTypeMarkSpec.js.flow +80 -80
  52. package/dist/HTMLMutator.js.flow +59 -59
  53. package/dist/HardBreakNodeSpec.js.flow +15 -15
  54. package/dist/HeadingCommand.js.flow +51 -51
  55. package/dist/HeadingNodeSpec.js +2 -2
  56. package/dist/HeadingNodeSpec.js.flow +54 -54
  57. package/dist/HistoryRedoCommand.js.flow +20 -20
  58. package/dist/HistoryUndoCommand.js.flow +20 -20
  59. package/dist/HorizontalRuleCommand.js.flow +49 -49
  60. package/dist/HorizontalRuleNodeSpec.js.flow +39 -39
  61. package/dist/ImageFromURLCommand.js.flow +14 -14
  62. package/dist/ImageNodeSpec.js.flow +90 -90
  63. package/dist/ImageSourceCommand.js.flow +117 -117
  64. package/dist/ImageUploadCommand.js.flow +36 -36
  65. package/dist/ImageUploadPlaceholderPlugin.js +1 -1
  66. package/dist/ImageUploadPlaceholderPlugin.js.flow +192 -192
  67. package/dist/IndentCommand.js.flow +41 -41
  68. package/dist/LinkMarkSpec.js.flow +32 -32
  69. package/dist/LinkSetURLCommand.js.flow +103 -103
  70. package/dist/LinkTooltipPlugin.js.flow +203 -203
  71. package/dist/ListItemInsertNewLineCommand.js.flow +55 -55
  72. package/dist/ListItemMergeCommand.js.flow +177 -177
  73. package/dist/ListItemNodeSpec.js.flow +51 -51
  74. package/dist/ListSplitCommand.js.flow +32 -32
  75. package/dist/ListToggleCommand.js +1 -1
  76. package/dist/ListToggleCommand.js.flow +77 -77
  77. package/dist/MarkNames.js +1 -1
  78. package/dist/MarkNames.js.flow +18 -18
  79. package/dist/MarkToggleCommand.js.flow +66 -66
  80. package/dist/MarksClearCommand.js.flow +42 -42
  81. package/dist/MathEditCommand.js.flow +110 -110
  82. package/dist/MathNodeSpec.js.flow +46 -46
  83. package/dist/NodeNames.js.flow +23 -23
  84. package/dist/OrderedListNodeSpec.js.flow +132 -132
  85. package/dist/ParagraphNodeSpec.js +2 -1
  86. package/dist/ParagraphNodeSpec.js.flow +160 -160
  87. package/dist/ParagraphSpacingCommand.js +3 -3
  88. package/dist/ParagraphSpacingCommand.js.flow +121 -121
  89. package/dist/PrintCommand.js.flow +31 -31
  90. package/dist/SelectionPlaceholderPlugin.js +2 -2
  91. package/dist/SelectionPlaceholderPlugin.js.flow +131 -131
  92. package/dist/SpacerMarkSpec.js +1 -1
  93. package/dist/SpacerMarkSpec.js.flow +47 -47
  94. package/dist/StrikeMarkSpec.js.flow +21 -21
  95. package/dist/StrongMarkSpec.js.flow +25 -25
  96. package/dist/StyleView.js.flow +19 -19
  97. package/dist/TableBackgroundColorCommand.js.flow +75 -75
  98. package/dist/TableBorderColorCommand.js.flow +75 -75
  99. package/dist/TableCellColorCommand.js.flow +71 -71
  100. package/dist/TableCellMenuPlugin.js.flow +125 -125
  101. package/dist/TableInsertCommand.js.flow +112 -112
  102. package/dist/TableMergeCellsCommand.js.flow +90 -90
  103. package/dist/TableNodesSpecs.js.flow +78 -78
  104. package/dist/TablePlugins.js.flow +14 -14
  105. package/dist/TableResizePlugin.js +2 -2
  106. package/dist/TableResizePlugin.js.flow +631 -631
  107. package/dist/TextAlignCommand.js +3 -3
  108. package/dist/TextAlignCommand.js.flow +122 -122
  109. package/dist/TextColorCommand.js.flow +87 -87
  110. package/dist/TextColorMarkSpec.js.flow +35 -35
  111. package/dist/TextHighlightCommand.js.flow +91 -91
  112. package/dist/TextHighlightMarkSpec.js.flow +38 -38
  113. package/dist/TextInsertTabSpaceCommand.js.flow +83 -83
  114. package/dist/TextLineSpacingCommand.js +3 -3
  115. package/dist/TextLineSpacingCommand.js.flow +157 -157
  116. package/dist/TextNoWrapMarkSpec.js.flow +14 -14
  117. package/dist/TextNodeSpec.js.flow +7 -7
  118. package/dist/TextSelectionMarkSpec.js.flow +24 -24
  119. package/dist/TextSubMarkSpec.js.flow +20 -20
  120. package/dist/TextSuperMarkSpec.js.flow +20 -20
  121. package/dist/TextUnderlineMarkSpec.js.flow +27 -27
  122. package/dist/Types.js +1 -1
  123. package/dist/Types.js.flow +75 -75
  124. package/dist/WebFontLoader.js.flow +22 -22
  125. package/dist/applyMark.js.flow +61 -61
  126. package/dist/blockQuoteInputRule.js.flow +36 -36
  127. package/dist/bom.xml +3710 -4585
  128. package/dist/browser.js.flow +7 -7
  129. package/dist/buildEditorPlugins.js.flow +51 -51
  130. package/dist/buildInputRules.js.flow +81 -81
  131. package/dist/clearMarks.js +1 -1
  132. package/dist/clearMarks.js.flow +128 -128
  133. package/dist/client/CollabConnector.js +2 -2
  134. package/dist/client/CollabConnector.js.flow +71 -70
  135. package/dist/client/EditorConnection.js.flow +307 -307
  136. package/dist/client/Licit.js +167 -83
  137. package/dist/client/Licit.js.flow +578 -491
  138. package/dist/client/Licit.test.js +16 -15
  139. package/dist/client/Licit.test.js.flow +67 -65
  140. package/dist/client/Reporter.js.flow +37 -37
  141. package/dist/client/SimpleConnector.js +1 -1
  142. package/dist/client/SimpleConnector.js.flow +53 -53
  143. package/dist/client/http.js +3 -3
  144. package/dist/client/http.js.flow +66 -66
  145. package/dist/client/licit.css +12 -12
  146. package/dist/client/throttle.js.flow +27 -27
  147. package/dist/compareNumber.js.flow +11 -11
  148. package/dist/consolidateListNodes.js +29 -29
  149. package/dist/consolidateListNodes.js.flow +281 -281
  150. package/dist/convertFromDOMElement.js.flow +36 -36
  151. package/dist/convertFromHTML.js.flow +19 -19
  152. package/dist/convertFromJSON.js.flow +78 -78
  153. package/dist/convertToCSSPTValue.js +1 -1
  154. package/dist/convertToCSSPTValue.js.flow +22 -22
  155. package/dist/convertToJSON.js.flow +7 -7
  156. package/dist/createCommand.js.flow +40 -40
  157. package/dist/createEditorKeyMap.js.flow +94 -94
  158. package/dist/createEmptyEditorState.js +4 -7
  159. package/dist/createEmptyEditorState.js.flow +35 -41
  160. package/dist/createTableResizingPlugin.js.flow +86 -86
  161. package/dist/findActionableCell.js.flow +74 -74
  162. package/dist/findActiveMark.js.flow +32 -32
  163. package/dist/findNodesWithSameMark.js.flow +89 -89
  164. package/dist/hyphenize.js.flow +17 -17
  165. package/dist/index.js +16 -16
  166. package/dist/index.js.flow +10 -10
  167. package/dist/insertTable.js.flow +56 -56
  168. package/dist/isBulletListNode.js.flow +9 -9
  169. package/dist/isEditorStateEmpty.js.flow +32 -32
  170. package/dist/isInsideListItem.js.flow +13 -13
  171. package/dist/isListNode.js.flow +13 -13
  172. package/dist/isNodeSelectionForNodeType.js.flow +15 -15
  173. package/dist/isOrderedListNode.js.flow +9 -9
  174. package/dist/isTableNode.js.flow +15 -15
  175. package/dist/isTextStyleMarkCommandEnabled.js.flow +49 -49
  176. package/dist/joinDown.js.flow +27 -27
  177. package/dist/joinListNode.js.flow +55 -55
  178. package/dist/joinUp.js.flow +39 -39
  179. package/dist/keymaps.js +2 -2
  180. package/dist/keymaps.js.flow +185 -185
  181. package/dist/lookUpElement.js.flow +14 -14
  182. package/dist/nodeAt.js.flow +12 -12
  183. package/dist/noop.js.flow +5 -5
  184. package/dist/normalizeHTML.js.flow +78 -78
  185. package/dist/patchAnchorElements.js.flow +38 -38
  186. package/dist/patchBreakElements.js.flow +22 -22
  187. package/dist/patchElementInlineStyles.js.flow +92 -92
  188. package/dist/patchListElements.js.flow +276 -276
  189. package/dist/patchMathElements.js.flow +60 -60
  190. package/dist/patchParagraphElements.js.flow +20 -20
  191. package/dist/patchStyleElements.js +1 -1
  192. package/dist/patchStyleElements.js.flow +194 -194
  193. package/dist/patchTableElements.js.flow +89 -89
  194. package/dist/rebaseDocWithSteps.js.flow +42 -42
  195. package/dist/sanitizeURL.js.flow +13 -13
  196. package/dist/splitListItem.js +2 -2
  197. package/dist/splitListItem.js.flow +191 -191
  198. package/dist/styles.css +19 -19
  199. package/dist/styles0.css +29 -29
  200. package/dist/toClosestFontPtSize.js.flow +22 -22
  201. package/dist/toSafeHTMLDocument.js.flow +9 -9
  202. package/dist/toggleBlockquote.js.flow +91 -91
  203. package/dist/toggleCodeBlock.js.flow +102 -102
  204. package/dist/toggleHeading.js +2 -2
  205. package/dist/toggleHeading.js.flow +113 -113
  206. package/dist/toggleList.js +2 -2
  207. package/dist/toggleList.js.flow +450 -450
  208. package/dist/transformAndPreserveTextSelection.js +1 -1
  209. package/dist/transformAndPreserveTextSelection.js.flow +151 -151
  210. package/dist/ui/AlertInfo.js +3 -3
  211. package/dist/ui/AlertInfo.js.flow +64 -64
  212. package/dist/ui/BookmarkNodeView.js.flow +66 -66
  213. package/dist/ui/ColorEditor.js.flow +101 -101
  214. package/dist/ui/CommandButton.js.flow +68 -68
  215. package/dist/ui/CommandMenu.js.flow +75 -75
  216. package/dist/ui/CommandMenuButton.js +2 -2
  217. package/dist/ui/CommandMenuButton.js.flow +131 -131
  218. package/dist/ui/CustomButton.js +3 -1
  219. package/dist/ui/CustomButton.js.flow +33 -33
  220. package/dist/ui/CustomEditorView.js.flow +28 -28
  221. package/dist/ui/CustomMenu.js.flow +17 -17
  222. package/dist/ui/CustomMenuItem.js.flow +36 -36
  223. package/dist/ui/CustomNodeView.js +3 -3
  224. package/dist/ui/CustomNodeView.js.flow +200 -200
  225. package/dist/ui/CustomRadioButton.js +3 -1
  226. package/dist/ui/CustomRadioButton.js.flow +65 -65
  227. package/dist/ui/DocLayoutEditor.js +1 -1
  228. package/dist/ui/DocLayoutEditor.js.flow +146 -146
  229. package/dist/ui/Editor.js +1 -2
  230. package/dist/ui/Editor.js.flow +290 -291
  231. package/dist/ui/EditorFrameset.js +1 -1
  232. package/dist/ui/EditorFrameset.js.flow +81 -81
  233. package/dist/ui/EditorToolbar.js +2 -2
  234. package/dist/ui/EditorToolbar.js.flow +211 -211
  235. package/dist/ui/EditorToolbarConfig.js +1 -1
  236. package/dist/ui/EditorToolbarConfig.js.flow +172 -172
  237. package/dist/ui/FontSizeCommandMenuButton.js.flow +66 -66
  238. package/dist/ui/FontTypeCommandMenuButton.js.flow +49 -49
  239. package/dist/ui/Frag.js.flow +13 -13
  240. package/dist/ui/Icon.js.flow +89 -89
  241. package/dist/ui/ImageAlignEditor.js +1 -1
  242. package/dist/ui/ImageAlignEditor.js.flow +60 -60
  243. package/dist/ui/ImageInlineEditor.js +1 -1
  244. package/dist/ui/ImageInlineEditor.js.flow +67 -67
  245. package/dist/ui/ImageNodeView.js +3 -13
  246. package/dist/ui/ImageNodeView.js.flow +404 -416
  247. package/dist/ui/ImageResizeBox.js +1 -1
  248. package/dist/ui/ImageResizeBox.js.flow +219 -219
  249. package/dist/ui/ImageURLEditor.js +2 -2
  250. package/dist/ui/ImageURLEditor.js.flow +119 -119
  251. package/dist/ui/ImageUploadEditor.js.flow +117 -117
  252. package/dist/ui/KeyCodes.js.flow +12 -12
  253. package/dist/ui/LinkTooltip.js.flow +85 -85
  254. package/dist/ui/LinkURLEditor.js.flow +111 -111
  255. package/dist/ui/ListItemNodeView.js.flow +98 -98
  256. package/dist/ui/ListTypeButton.js +2 -2
  257. package/dist/ui/ListTypeButton.js.flow +131 -131
  258. package/dist/ui/ListTypeCommandButton.js.flow +85 -85
  259. package/dist/ui/ListTypeMenu.js.flow +70 -70
  260. package/dist/ui/LoadingIndicator.js.flow +20 -20
  261. package/dist/ui/MathEditor.js.flow +78 -78
  262. package/dist/ui/MathInlineEditor.js +3 -3
  263. package/dist/ui/MathInlineEditor.js.flow +102 -102
  264. package/dist/ui/MathNodeView.js +2 -2
  265. package/dist/ui/MathNodeView.js.flow +175 -175
  266. package/dist/ui/PasteMenu.js.flow +57 -57
  267. package/dist/ui/PointerSurface.js +1 -1
  268. package/dist/ui/PointerSurface.js.flow +141 -141
  269. package/dist/ui/PopUp.js +1 -1
  270. package/dist/ui/PopUp.js.flow +77 -77
  271. package/dist/ui/PopUpManager.js +1 -1
  272. package/dist/ui/PopUpManager.js.flow +213 -213
  273. package/dist/ui/PopUpPosition.js +3 -3
  274. package/dist/ui/PopUpPosition.js.flow +104 -104
  275. package/dist/ui/ResizeObserver.js +1 -1
  276. package/dist/ui/ResizeObserver.js.flow +106 -106
  277. package/dist/ui/RichTextEditor.js.flow +133 -133
  278. package/dist/ui/SelectionObserver.js.flow +134 -134
  279. package/dist/ui/TableCellMenu.js.flow +38 -38
  280. package/dist/ui/TableGridSizeEditor.js +1 -1
  281. package/dist/ui/TableGridSizeEditor.js.flow +184 -184
  282. package/dist/ui/TableNodeView.js.flow +22 -22
  283. package/dist/ui/TooltipSurface.js.flow +76 -76
  284. package/dist/ui/bindScrollHandler.js.flow +46 -46
  285. package/dist/ui/canUseCSSFont.js.flow +43 -43
  286. package/dist/ui/clamp.js.flow +11 -11
  287. package/dist/ui/createPopUp.js +1 -1
  288. package/dist/ui/createPopUp.js.flow +205 -205
  289. package/dist/ui/czi-animations.css +15 -15
  290. package/dist/ui/czi-body-layout-editor.css +16 -16
  291. package/dist/ui/czi-bookmark-view.css +10 -10
  292. package/dist/ui/czi-color-editor.css +56 -56
  293. package/dist/ui/czi-cursor-placeholder.css +36 -36
  294. package/dist/ui/czi-custom-button.css +93 -93
  295. package/dist/ui/czi-custom-menu-button.css +18 -18
  296. package/dist/ui/czi-custom-menu-item.css +30 -30
  297. package/dist/ui/czi-custom-menu.css +8 -8
  298. package/dist/ui/czi-custom-radio-button.css +80 -80
  299. package/dist/ui/czi-custom-scrollbar.css +21 -21
  300. package/dist/ui/czi-editor-frameset.css +81 -81
  301. package/dist/ui/czi-editor-toolbar.css +122 -122
  302. package/dist/ui/czi-editor.css +220 -220
  303. package/dist/ui/czi-form.css +104 -104
  304. package/dist/ui/czi-frag.css +3 -3
  305. package/dist/ui/czi-heading.css +40 -40
  306. package/dist/ui/czi-icon.css +72 -72
  307. package/dist/ui/czi-image-resize-box.css +165 -165
  308. package/dist/ui/czi-image-upload-editor.css +57 -57
  309. package/dist/ui/czi-image-upload-placeholder.css +50 -50
  310. package/dist/ui/czi-image-url-editor.css +38 -38
  311. package/dist/ui/czi-image-view.css +125 -125
  312. package/dist/ui/czi-indent.css +137 -137
  313. package/dist/ui/czi-inline-editor.css +20 -20
  314. package/dist/ui/czi-link-tooltip.css +71 -71
  315. package/dist/ui/czi-list.css +410 -410
  316. package/dist/ui/czi-loading-indicator.css +111 -111
  317. package/dist/ui/czi-math-view.css +62 -62
  318. package/dist/ui/czi-pop-up.css +32 -32
  319. package/dist/ui/czi-selection-placeholder.css +24 -24
  320. package/dist/ui/czi-table-cell-menu.css +14 -14
  321. package/dist/ui/czi-table-grid-size-editor.css +37 -37
  322. package/dist/ui/czi-table.css +86 -86
  323. package/dist/ui/czi-tooltip-surface.css +45 -45
  324. package/dist/ui/czi-vars.css +46 -46
  325. package/dist/ui/findActiveFontSize.js.flow +58 -58
  326. package/dist/ui/findActiveFontType.js +1 -1
  327. package/dist/ui/findActiveFontType.js.flow +38 -38
  328. package/dist/ui/fonts.css +471 -471
  329. package/dist/ui/handleEditorDrop.js.flow +28 -28
  330. package/dist/ui/handleEditorKeyDown.js.flow +39 -39
  331. package/dist/ui/handleEditorPaste.js.flow +33 -33
  332. package/dist/ui/htmlElementToRect.js +1 -1
  333. package/dist/ui/htmlElementToRect.js.flow +18 -18
  334. package/dist/ui/icon-font.css +10 -10
  335. package/dist/ui/injectStyleSheet.js.flow +42 -42
  336. package/dist/ui/isElementFullyVisible.js.flow +23 -23
  337. package/dist/ui/isOffline.js.flow +8 -8
  338. package/dist/ui/isReactClass.js.flow +12 -12
  339. package/dist/ui/listType.css +21 -21
  340. package/dist/ui/mathquill-editor/MathQuillEditor.js.flow +159 -159
  341. package/dist/ui/mathquill-editor/MathQuillEditorSymbols.js +1 -1
  342. package/dist/ui/mathquill-editor/MathQuillEditorSymbols.js.flow +483 -483
  343. package/dist/ui/mathquill-editor/MathQuillEditorSymbolsPanel.js.flow +48 -48
  344. package/dist/ui/mathquill-editor/czi-mathquill-editor-symbols-panel.css +39 -39
  345. package/dist/ui/mathquill-editor/czi-mathquill-editor.css +50 -50
  346. package/dist/ui/mathquill-editor/mathquill-import-kludge.js.flow +24 -24
  347. package/dist/ui/preventEventDefault.js.flow +5 -5
  348. package/dist/ui/rects.js +3 -3
  349. package/dist/ui/rects.js.flow +47 -47
  350. package/dist/ui/renderLaTeXAsHTML.js.flow +46 -46
  351. package/dist/ui/resolveImage.js +3 -3
  352. package/dist/ui/resolveImage.js.flow +123 -123
  353. package/dist/ui/toCSSColor.js +1 -1
  354. package/dist/ui/toCSSColor.js.flow +51 -51
  355. package/dist/ui/toCSSLineSpacing.js +1 -1
  356. package/dist/ui/toCSSLineSpacing.js.flow +82 -82
  357. package/dist/ui/toHexColor.js.flow +26 -26
  358. package/dist/ui/uuid.js.flow +9 -9
  359. package/dist/updateIndentLevel.js +2 -2
  360. package/dist/updateIndentLevel.js.flow +211 -211
  361. package/dist/uuid.js.flow +9 -9
  362. package/flow-typed/@modusoperandilicit-customstyles.js +5 -5
  363. package/flow-typed/@modusoperandilicit-doc-attrs-step.js +5 -5
  364. package/flow-typed/@molicit-citation.js +5 -5
  365. package/flow-typed/create-emotion.js +5 -5
  366. package/flow-typed/docs-editor.js +3 -3
  367. package/flow-typed/draft-convert.js +3 -3
  368. package/flow-typed/draft-js.js +3 -3
  369. package/flow-typed/flatted.js +5 -5
  370. package/flow-typed/jquery.js +5 -5
  371. package/flow-typed/katex.js +6 -6
  372. package/flow-typed/mathquill.js +5 -5
  373. package/flow-typed/prosemirror-collab.js +5 -5
  374. package/flow-typed/prosemirror-commands.js +5 -5
  375. package/flow-typed/prosemirror-dev-tools.js +5 -5
  376. package/flow-typed/prosemirror-dropcursor.js +5 -5
  377. package/flow-typed/prosemirror-gapcursor.js +5 -5
  378. package/flow-typed/prosemirror-history.js +5 -5
  379. package/flow-typed/prosemirror-inputrules.js +5 -5
  380. package/flow-typed/prosemirror-keymap.js +5 -5
  381. package/flow-typed/prosemirror-model.js +5 -5
  382. package/flow-typed/prosemirror-state.js +5 -5
  383. package/flow-typed/prosemirror-tables.js +5 -5
  384. package/flow-typed/prosemirror-transform.js +5 -5
  385. package/flow-typed/prosemirror-utils.js +5 -5
  386. package/flow-typed/prosemirror-view.js +5 -5
  387. package/flow-typed/resize-observer-polyfill.js +5 -5
  388. package/flow-typed/uuid.js +5 -5
  389. package/jest.setup.js +5 -5
  390. package/licit/client/CustomLicitRuntime.js +95 -95
  391. package/licit/client/CustomStyleRuntime.js +136 -136
  392. package/licit/client/index.js +366 -366
  393. package/licit/index.html +11 -11
  394. package/licit/server/collab/instance.js +221 -221
  395. package/licit/server/collab/route.js +69 -69
  396. package/licit/server/collab/server.js +297 -297
  397. package/licit/server/collab/start.js +13 -13
  398. package/licit/server/customstyles/start.js +184 -184
  399. package/licit/server/image/start.js +58 -58
  400. package/lint.sh +4 -4
  401. package/package.json +165 -165
  402. package/run_collab_server.py +21 -21
  403. package/run_customstyle_server.py +20 -20
  404. package/run_image_server.py +20 -20
  405. package/run_web_server.py +25 -25
  406. package/scripts/build_bin.js +10 -10
  407. package/scripts/build_bin.py +103 -103
  408. package/scripts/ci_check_dist.sh +13 -13
  409. package/scripts/env.js +6 -6
  410. package/scripts/webserver.js +35 -35
  411. package/sonar-project.properties +11 -11
  412. package/src/BlockquoteInsertNewLineCommand.js +55 -55
  413. package/src/BlockquoteNodeSpec.js +30 -30
  414. package/src/BlockquoteToggleCommand.js +34 -34
  415. package/src/BookmarkNodeSpec.js +39 -39
  416. package/src/BulletListNodeSpec.js +61 -61
  417. package/src/CZIProseMirror.js +90 -90
  418. package/src/CodeBlockCommand.js +43 -43
  419. package/src/CodeBlockNodeSpec.js +24 -24
  420. package/src/CodeMarkSpec.js +14 -14
  421. package/src/ContentPlaceholderPlugin.js +187 -187
  422. package/src/CursorPlaceholderPlugin.js +115 -115
  423. package/src/DocLayoutCommand.js +94 -94
  424. package/src/DocNodeSpec.js +64 -64
  425. package/src/EMMarkSpec.js +14 -14
  426. package/src/EditorCommands.js +128 -128
  427. package/src/EditorKeyMap.js +187 -187
  428. package/src/EditorMarks.js +71 -71
  429. package/src/EditorNodes.js +60 -60
  430. package/src/EditorPageLayoutPlugin.js +67 -67
  431. package/src/EditorPlugins.js +8 -8
  432. package/src/EditorSchema.js +12 -12
  433. package/src/EditorState.js +7 -7
  434. package/src/FontSizeCommand.js +57 -57
  435. package/src/FontSizeMarkSpec.js +49 -49
  436. package/src/FontTypeCommand.js +100 -100
  437. package/src/FontTypeMarkSpec.js +80 -80
  438. package/src/HTMLMutator.js +59 -59
  439. package/src/HardBreakNodeSpec.js +15 -15
  440. package/src/HeadingCommand.js +51 -51
  441. package/src/HeadingNodeSpec.js +54 -54
  442. package/src/HistoryRedoCommand.js +20 -20
  443. package/src/HistoryUndoCommand.js +20 -20
  444. package/src/HorizontalRuleCommand.js +49 -49
  445. package/src/HorizontalRuleNodeSpec.js +39 -39
  446. package/src/ImageFromURLCommand.js +14 -14
  447. package/src/ImageNodeSpec.js +90 -90
  448. package/src/ImageSourceCommand.js +117 -117
  449. package/src/ImageUploadCommand.js +36 -36
  450. package/src/ImageUploadPlaceholderPlugin.js +192 -192
  451. package/src/IndentCommand.js +41 -41
  452. package/src/LinkMarkSpec.js +32 -32
  453. package/src/LinkSetURLCommand.js +103 -103
  454. package/src/LinkTooltipPlugin.js +203 -203
  455. package/src/ListItemInsertNewLineCommand.js +55 -55
  456. package/src/ListItemMergeCommand.js +177 -177
  457. package/src/ListItemNodeSpec.js +51 -51
  458. package/src/ListSplitCommand.js +32 -32
  459. package/src/ListToggleCommand.js +77 -77
  460. package/src/MarkNames.js +18 -18
  461. package/src/MarkToggleCommand.js +66 -66
  462. package/src/MarksClearCommand.js +42 -42
  463. package/src/MathEditCommand.js +110 -110
  464. package/src/MathNodeSpec.js +46 -46
  465. package/src/NodeNames.js +23 -23
  466. package/src/OrderedListNodeSpec.js +132 -132
  467. package/src/ParagraphNodeSpec.js +160 -160
  468. package/src/ParagraphSpacingCommand.js +121 -121
  469. package/src/PrintCommand.js +31 -31
  470. package/src/SelectionPlaceholderPlugin.js +131 -131
  471. package/src/SpacerMarkSpec.js +47 -47
  472. package/src/StrikeMarkSpec.js +21 -21
  473. package/src/StrongMarkSpec.js +25 -25
  474. package/src/StyleView.js +19 -19
  475. package/src/TableBackgroundColorCommand.js +75 -75
  476. package/src/TableBorderColorCommand.js +75 -75
  477. package/src/TableCellColorCommand.js +71 -71
  478. package/src/TableCellMenuPlugin.js +125 -125
  479. package/src/TableInsertCommand.js +112 -112
  480. package/src/TableMergeCellsCommand.js +90 -90
  481. package/src/TableNodesSpecs.js +78 -78
  482. package/src/TablePlugins.js +14 -14
  483. package/src/TableResizePlugin.js +631 -631
  484. package/src/TextAlignCommand.js +122 -122
  485. package/src/TextColorCommand.js +87 -87
  486. package/src/TextColorMarkSpec.js +35 -35
  487. package/src/TextHighlightCommand.js +91 -91
  488. package/src/TextHighlightMarkSpec.js +38 -38
  489. package/src/TextInsertTabSpaceCommand.js +83 -83
  490. package/src/TextLineSpacingCommand.js +157 -157
  491. package/src/TextNoWrapMarkSpec.js +14 -14
  492. package/src/TextNodeSpec.js +7 -7
  493. package/src/TextSelectionMarkSpec.js +24 -24
  494. package/src/TextSubMarkSpec.js +20 -20
  495. package/src/TextSuperMarkSpec.js +20 -20
  496. package/src/TextUnderlineMarkSpec.js +27 -27
  497. package/src/Types.js +75 -75
  498. package/src/WebFontLoader.js +22 -22
  499. package/src/applyMark.js +61 -61
  500. package/src/blockQuoteInputRule.js +36 -36
  501. package/src/browser.js +7 -7
  502. package/src/buildEditorPlugins.js +51 -51
  503. package/src/buildInputRules.js +81 -81
  504. package/src/clearMarks.js +128 -128
  505. package/src/client/CollabConnector.js +71 -70
  506. package/src/client/EditorConnection.js +307 -307
  507. package/src/client/Licit.js +578 -491
  508. package/src/client/Licit.test.js +67 -65
  509. package/src/client/Reporter.js +37 -37
  510. package/src/client/SimpleConnector.js +53 -53
  511. package/src/client/http.js +66 -66
  512. package/src/client/licit.css +12 -12
  513. package/src/client/throttle.js +27 -27
  514. package/src/compareNumber.js +11 -11
  515. package/src/consolidateListNodes.js +281 -281
  516. package/src/convertFromDOMElement.js +36 -36
  517. package/src/convertFromHTML.js +19 -19
  518. package/src/convertFromJSON.js +78 -78
  519. package/src/convertToCSSPTValue.js +22 -22
  520. package/src/convertToJSON.js +7 -7
  521. package/src/createCommand.js +40 -40
  522. package/src/createEditorKeyMap.js +94 -94
  523. package/src/createEmptyEditorState.js +35 -41
  524. package/src/createTableResizingPlugin.js +86 -86
  525. package/src/findActionableCell.js +74 -74
  526. package/src/findActiveMark.js +32 -32
  527. package/src/findNodesWithSameMark.js +89 -89
  528. package/src/hyphenize.js +17 -17
  529. package/src/index.js +10 -10
  530. package/src/insertTable.js +56 -56
  531. package/src/isBulletListNode.js +9 -9
  532. package/src/isEditorStateEmpty.js +32 -32
  533. package/src/isInsideListItem.js +13 -13
  534. package/src/isListNode.js +13 -13
  535. package/src/isNodeSelectionForNodeType.js +15 -15
  536. package/src/isOrderedListNode.js +9 -9
  537. package/src/isTableNode.js +15 -15
  538. package/src/isTextStyleMarkCommandEnabled.js +49 -49
  539. package/src/joinDown.js +27 -27
  540. package/src/joinListNode.js +55 -55
  541. package/src/joinUp.js +39 -39
  542. package/src/keymaps.js +185 -185
  543. package/src/lookUpElement.js +14 -14
  544. package/src/nodeAt.js +12 -12
  545. package/src/noop.js +5 -5
  546. package/src/normalizeHTML.js +78 -78
  547. package/src/patchAnchorElements.js +38 -38
  548. package/src/patchBreakElements.js +22 -22
  549. package/src/patchElementInlineStyles.js +92 -92
  550. package/src/patchListElements.js +276 -276
  551. package/src/patchMathElements.js +60 -60
  552. package/src/patchParagraphElements.js +20 -20
  553. package/src/patchStyleElements.js +194 -194
  554. package/src/patchTableElements.js +89 -89
  555. package/src/rebaseDocWithSteps.js +42 -42
  556. package/src/sanitizeURL.js +13 -13
  557. package/src/splitListItem.js +191 -191
  558. package/src/styles.css +19 -19
  559. package/src/styles0.css +29 -29
  560. package/src/toClosestFontPtSize.js +22 -22
  561. package/src/toSafeHTMLDocument.js +9 -9
  562. package/src/toggleBlockquote.js +91 -91
  563. package/src/toggleCodeBlock.js +102 -102
  564. package/src/toggleHeading.js +113 -113
  565. package/src/toggleList.js +450 -450
  566. package/src/transformAndPreserveTextSelection.js +151 -151
  567. package/src/ui/AlertInfo.js +64 -64
  568. package/src/ui/BookmarkNodeView.js +66 -66
  569. package/src/ui/ColorEditor.js +101 -101
  570. package/src/ui/CommandButton.js +68 -68
  571. package/src/ui/CommandMenu.js +75 -75
  572. package/src/ui/CommandMenuButton.js +131 -131
  573. package/src/ui/CustomButton.js +33 -33
  574. package/src/ui/CustomEditorView.js +28 -28
  575. package/src/ui/CustomMenu.js +17 -17
  576. package/src/ui/CustomMenuItem.js +36 -36
  577. package/src/ui/CustomNodeView.js +200 -200
  578. package/src/ui/CustomRadioButton.js +65 -65
  579. package/src/ui/DocLayoutEditor.js +146 -146
  580. package/src/ui/Editor.js +290 -291
  581. package/src/ui/EditorFrameset.js +81 -81
  582. package/src/ui/EditorToolbar.js +211 -211
  583. package/src/ui/EditorToolbarConfig.js +172 -172
  584. package/src/ui/FontSizeCommandMenuButton.js +66 -66
  585. package/src/ui/FontTypeCommandMenuButton.js +49 -49
  586. package/src/ui/Frag.js +13 -13
  587. package/src/ui/Icon.js +89 -89
  588. package/src/ui/ImageAlignEditor.js +60 -60
  589. package/src/ui/ImageInlineEditor.js +67 -67
  590. package/src/ui/ImageNodeView.js +404 -416
  591. package/src/ui/ImageResizeBox.js +219 -219
  592. package/src/ui/ImageURLEditor.js +119 -119
  593. package/src/ui/ImageUploadEditor.js +117 -117
  594. package/src/ui/KeyCodes.js +12 -12
  595. package/src/ui/LinkTooltip.js +85 -85
  596. package/src/ui/LinkURLEditor.js +111 -111
  597. package/src/ui/ListItemNodeView.js +98 -98
  598. package/src/ui/ListTypeButton.js +131 -131
  599. package/src/ui/ListTypeCommandButton.js +85 -85
  600. package/src/ui/ListTypeMenu.js +70 -70
  601. package/src/ui/LoadingIndicator.js +20 -20
  602. package/src/ui/MathEditor.js +78 -78
  603. package/src/ui/MathInlineEditor.js +102 -102
  604. package/src/ui/MathNodeView.js +175 -175
  605. package/src/ui/PasteMenu.js +57 -57
  606. package/src/ui/PointerSurface.js +141 -141
  607. package/src/ui/PopUp.js +77 -77
  608. package/src/ui/PopUpManager.js +213 -213
  609. package/src/ui/PopUpPosition.js +104 -104
  610. package/src/ui/ResizeObserver.js +106 -106
  611. package/src/ui/RichTextEditor.js +133 -133
  612. package/src/ui/SelectionObserver.js +134 -134
  613. package/src/ui/TableCellMenu.js +38 -38
  614. package/src/ui/TableGridSizeEditor.js +184 -184
  615. package/src/ui/TableNodeView.js +22 -22
  616. package/src/ui/TooltipSurface.js +76 -76
  617. package/src/ui/bindScrollHandler.js +46 -46
  618. package/src/ui/canUseCSSFont.js +43 -43
  619. package/src/ui/clamp.js +11 -11
  620. package/src/ui/createPopUp.js +205 -205
  621. package/src/ui/czi-animations.css +15 -15
  622. package/src/ui/czi-body-layout-editor.css +16 -16
  623. package/src/ui/czi-bookmark-view.css +10 -10
  624. package/src/ui/czi-color-editor.css +56 -56
  625. package/src/ui/czi-cursor-placeholder.css +36 -36
  626. package/src/ui/czi-custom-button.css +93 -93
  627. package/src/ui/czi-custom-menu-button.css +18 -18
  628. package/src/ui/czi-custom-menu-item.css +30 -30
  629. package/src/ui/czi-custom-menu.css +8 -8
  630. package/src/ui/czi-custom-radio-button.css +80 -80
  631. package/src/ui/czi-custom-scrollbar.css +21 -21
  632. package/src/ui/czi-editor-frameset.css +81 -81
  633. package/src/ui/czi-editor-toolbar.css +122 -122
  634. package/src/ui/czi-editor.css +220 -220
  635. package/src/ui/czi-form.css +104 -104
  636. package/src/ui/czi-frag.css +3 -3
  637. package/src/ui/czi-heading.css +40 -40
  638. package/src/ui/czi-icon.css +72 -72
  639. package/src/ui/czi-image-resize-box.css +165 -165
  640. package/src/ui/czi-image-upload-editor.css +57 -57
  641. package/src/ui/czi-image-upload-placeholder.css +50 -50
  642. package/src/ui/czi-image-url-editor.css +38 -38
  643. package/src/ui/czi-image-view.css +125 -125
  644. package/src/ui/czi-indent.css +137 -137
  645. package/src/ui/czi-inline-editor.css +20 -20
  646. package/src/ui/czi-link-tooltip.css +71 -71
  647. package/src/ui/czi-list.css +410 -410
  648. package/src/ui/czi-loading-indicator.css +111 -111
  649. package/src/ui/czi-math-view.css +62 -62
  650. package/src/ui/czi-pop-up.css +32 -32
  651. package/src/ui/czi-selection-placeholder.css +24 -24
  652. package/src/ui/czi-table-cell-menu.css +14 -14
  653. package/src/ui/czi-table-grid-size-editor.css +37 -37
  654. package/src/ui/czi-table.css +86 -86
  655. package/src/ui/czi-tooltip-surface.css +45 -45
  656. package/src/ui/czi-vars.css +46 -46
  657. package/src/ui/findActiveFontSize.js +58 -58
  658. package/src/ui/findActiveFontType.js +38 -38
  659. package/src/ui/fonts.css +471 -471
  660. package/src/ui/handleEditorDrop.js +28 -28
  661. package/src/ui/handleEditorKeyDown.js +39 -39
  662. package/src/ui/handleEditorPaste.js +33 -33
  663. package/src/ui/htmlElementToRect.js +18 -18
  664. package/src/ui/icon-font.css +10 -10
  665. package/src/ui/injectStyleSheet.js +42 -42
  666. package/src/ui/isElementFullyVisible.js +23 -23
  667. package/src/ui/isOffline.js +8 -8
  668. package/src/ui/isReactClass.js +12 -12
  669. package/src/ui/listType.css +21 -21
  670. package/src/ui/mathquill-editor/MathQuillEditor.js +159 -159
  671. package/src/ui/mathquill-editor/MathQuillEditorSymbols.js +483 -483
  672. package/src/ui/mathquill-editor/MathQuillEditorSymbolsPanel.js +48 -48
  673. package/src/ui/mathquill-editor/czi-mathquill-editor-symbols-panel.css +39 -39
  674. package/src/ui/mathquill-editor/czi-mathquill-editor.css +50 -50
  675. package/src/ui/mathquill-editor/mathquill-import-kludge.js +24 -24
  676. package/src/ui/preventEventDefault.js +5 -5
  677. package/src/ui/rects.js +47 -47
  678. package/src/ui/renderLaTeXAsHTML.js +46 -46
  679. package/src/ui/resolveImage.js +123 -123
  680. package/src/ui/toCSSColor.js +51 -51
  681. package/src/ui/toCSSLineSpacing.js +82 -82
  682. package/src/ui/toHexColor.js +26 -26
  683. package/src/ui/uuid.js +9 -9
  684. package/src/updateIndentLevel.js +211 -211
  685. package/src/uuid.js +9 -9
  686. package/style-service.Dockerfile +26 -26
  687. package/utils/build_bin.js +9 -9
  688. package/utils/build_customstyle_server.js +71 -71
  689. package/utils/build_image_server.js +71 -71
  690. package/utils/build_licit_collab_server.js +75 -75
  691. package/utils/build_web_server.js +40 -40
  692. package/utils/env.js +6 -6
  693. package/webpack.config.js +126 -126
@@ -1,42 +1,42 @@
1
- // @flow
2
-
3
- import { Step } from 'prosemirror-transform';
4
- import EditorSchema from './EditorSchema';
5
-
6
- type RebaseResult = {
7
- docJSON: Object,
8
- stepsJSON: Array<Object>,
9
- };
10
-
11
- export default function rebaseDocWithSteps(
12
- clientID: string,
13
- docJSON: Object,
14
- stepsJSON: Array<Object>
15
- ): Promise<RebaseResult> {
16
- return new Promise((resolve, reject) => {
17
- // TODO: Move this into a separate server request.
18
- let docNode = EditorSchema.nodeFromJSON(docJSON);
19
-
20
- const steps = stepsJSON.map((step) => {
21
- const result = Step.fromJSON(EditorSchema, step);
22
- result.clientID = clientID;
23
- return result;
24
- });
25
-
26
- steps.forEach((step) => {
27
- const result = step.apply(docNode);
28
- docNode = result.doc;
29
- });
30
-
31
- const newDocJSON = docNode.toJSON();
32
-
33
- const newStepsJSON = steps.map((step) => {
34
- return step.toJSON();
35
- });
36
-
37
- resolve({
38
- docJSON: newDocJSON,
39
- stepsJSON: newStepsJSON,
40
- });
41
- });
42
- }
1
+ // @flow
2
+
3
+ import { Step } from 'prosemirror-transform';
4
+ import EditorSchema from './EditorSchema';
5
+
6
+ type RebaseResult = {
7
+ docJSON: Object,
8
+ stepsJSON: Array<Object>,
9
+ };
10
+
11
+ export default function rebaseDocWithSteps(
12
+ clientID: string,
13
+ docJSON: Object,
14
+ stepsJSON: Array<Object>
15
+ ): Promise<RebaseResult> {
16
+ return new Promise((resolve, reject) => {
17
+ // TODO: Move this into a separate server request.
18
+ let docNode = EditorSchema.nodeFromJSON(docJSON);
19
+
20
+ const steps = stepsJSON.map((step) => {
21
+ const result = Step.fromJSON(EditorSchema, step);
22
+ result.clientID = clientID;
23
+ return result;
24
+ });
25
+
26
+ steps.forEach((step) => {
27
+ const result = step.apply(docNode);
28
+ docNode = result.doc;
29
+ });
30
+
31
+ const newDocJSON = docNode.toJSON();
32
+
33
+ const newStepsJSON = steps.map((step) => {
34
+ return step.toJSON();
35
+ });
36
+
37
+ resolve({
38
+ docJSON: newDocJSON,
39
+ stepsJSON: newStepsJSON,
40
+ });
41
+ });
42
+ }
@@ -1,13 +1,13 @@
1
- // @flow
2
-
3
- const HTTP_PREFIX = /^http(s?):*\/\//i;
4
-
5
- export default function sanitizeURL(url: ?string): string {
6
- if (!url) {
7
- return 'http://';
8
- }
9
- if (HTTP_PREFIX.test(url)) {
10
- return url;
11
- }
12
- return 'http://' + url;
13
- }
1
+ // @flow
2
+
3
+ const HTTP_PREFIX = /^http(s?):*\/\//i;
4
+
5
+ export default function sanitizeURL(url: ?string): string {
6
+ if (!url) {
7
+ return 'http://';
8
+ }
9
+ if (HTTP_PREFIX.test(url)) {
10
+ return url;
11
+ }
12
+ return 'http://' + url;
13
+ }
@@ -19,9 +19,9 @@ var _prosemirrorUtils = require("prosemirror-utils");
19
19
 
20
20
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
21
21
 
22
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
22
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
23
23
 
24
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
24
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
25
25
 
26
26
  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
27
27
 
@@ -1,191 +1,191 @@
1
- // @flow
2
-
3
- import uuid from './ui/uuid';
4
- import { Fragment, Schema } from 'prosemirror-model';
5
- import { TextSelection } from 'prosemirror-state';
6
- import { Transform, canSplit } from 'prosemirror-transform';
7
- import { LIST_ITEM, ORDERED_LIST, BULLET_LIST, PARAGRAPH } from './NodeNames';
8
- import { findParentNodeOfType } from 'prosemirror-utils';
9
-
10
- // Splits a list item by the current cursor's position.
11
- // Some examples:
12
- //
13
- // - split before item's text:
14
- // - before:
15
- // 1. <cursor>AA
16
- // 2. BB
17
- // 3. CC
18
- // - after:
19
- // 1. <cursor>
20
- // 2. AA
21
- // 3. BB
22
- // 4. CC
23
- //
24
- // - split between item's text:
25
- // - before:
26
- // 1. AA
27
- // 2. B<cursor>B
28
- // 3. CC
29
- // - after:
30
- // 1. AA
31
- // 2. B
32
- // 3. B
33
- // 4. CC
34
- //
35
- // - split after item's text:
36
- // - before:
37
- // 1. AA
38
- // 2. BB<cursor>
39
- // 3. CC
40
- // - after:
41
- // 1. AA
42
- // 2. BB
43
- // 3. <cursor>
44
- // 4. CC
45
- //
46
- // - split at item with empty content:
47
- // - before:
48
- // 1. AA
49
- // 2. <cursor>
50
- // 3. CC
51
- // - after:
52
- // 1. AA
53
- // <cursor>
54
- // 2. BB
55
- // 3. CC
56
- //
57
- export default function splitListItem(
58
- tr: Transform,
59
- schema: Schema
60
- ): Transform {
61
- const nodeType = schema.nodes[LIST_ITEM];
62
- if (!nodeType) {
63
- return tr;
64
- }
65
-
66
- const { selection } = tr;
67
- if (!selection) {
68
- return tr;
69
- }
70
-
71
- const { $from, $to, node } = selection;
72
- if ((node && node.isBlock) || $from.depth < 2 || !$from.sameParent($to)) {
73
- return tr;
74
- }
75
-
76
- const grandParent = $from.node(-1);
77
- if (grandParent.type !== nodeType) {
78
- return tr;
79
- }
80
-
81
- if ($from.parent.content.size == 0) {
82
- // In an empty list item.
83
- return splitEmptyListItem(tr, schema);
84
- }
85
-
86
- const nextType =
87
- $to.pos == $from.end()
88
- ? grandParent.contentMatchAt($from.indexAfter(-1)).defaultType
89
- : null;
90
-
91
- tr = tr.delete($from.pos, $to.pos);
92
- const types = nextType && [null, { type: nextType }];
93
- if (!canSplit(tr.doc, $from.pos, 2, types)) {
94
- return tr;
95
- }
96
-
97
- return tr.split($from.pos, 2, types);
98
- }
99
-
100
- // Splits an item with empty content:
101
- // - before:
102
- // 1. AA
103
- // 2. <cursor>
104
- // 3. CC
105
- // - after:
106
- // 1. AA
107
- // <cursor>
108
- // 2. BB
109
- // 3. CC
110
- function splitEmptyListItem(tr: Transform, schema: Schema): Transform {
111
- const listItemType = schema.nodes[LIST_ITEM];
112
- const orderedListType = schema.nodes[ORDERED_LIST];
113
- const bulletListType = schema.nodes[BULLET_LIST];
114
- const paragraphType = schema.nodes[PARAGRAPH];
115
- if (!listItemType || !paragraphType) {
116
- // Schema does not support the nodes expected.
117
- return tr;
118
- }
119
- const listItemFound = findParentNodeOfType(listItemType)(tr.selection);
120
- if (!listItemFound || listItemFound.node.textContent !== '') {
121
- // Cursor is not inside an empty list item.
122
- return tr;
123
- }
124
-
125
- const listFound =
126
- (orderedListType && findParentNodeOfType(orderedListType)(tr.selection)) ||
127
- (bulletListType && findParentNodeOfType(bulletListType)(tr.selection));
128
-
129
- if (!listFound) {
130
- // Cursor isn't inside an list.
131
- return tr;
132
- }
133
-
134
- const $listItemPos = tr.doc.resolve(listItemFound.pos);
135
- const listItemIndex = $listItemPos.index($listItemPos.depth);
136
- const listFoundNode = listFound.node;
137
- if (
138
- listFoundNode.childCount < 3 ||
139
- listItemIndex < 1 ||
140
- listItemIndex >= listFoundNode.childCount - 1
141
- ) {
142
- // - The list must have at least three list items
143
- // - The cursor must be after the first list item and before the last list
144
- // item.
145
- // If both conditions don't match, bails out, which will remove the empty
146
- // item.
147
- return tr;
148
- }
149
-
150
- // Find the name of the current list to split. If the name isn't available,
151
- // assigns a new name.
152
- let { name } = listFoundNode.attrs;
153
- if (!name) {
154
- name = uuid();
155
- tr = tr.setNodeMarkup(
156
- listFound.pos,
157
- listFoundNode.type,
158
- {
159
- ...listFoundNode.attrs,
160
- name,
161
- },
162
- listFoundNode.marks
163
- );
164
- }
165
-
166
- // We'll split the list into two lists.
167
- // the first list contains the items before the cursor, and the second
168
- // list contains the items after the cursor and the second list will "follow"
169
- // the first list by sharing the same counter variable.
170
- const sliceFrom = listItemFound.pos + listItemFound.node.nodeSize;
171
- const sliceTo = listFound.pos + listFound.node.nodeSize - 1;
172
- const slicedItems = tr.doc.slice(sliceFrom, sliceTo, false);
173
-
174
- const deleteFrom = listItemFound.pos;
175
- const deleteTo = listFound.pos + listFound.node.nodeSize;
176
- tr = tr.delete(deleteFrom, deleteTo);
177
- const sourceListNode = listFound.node;
178
- const listAttrs = { ...sourceListNode.attrs };
179
- if (orderedListType === sourceListNode.type) {
180
- listAttrs.counterReset = 'none';
181
- listAttrs.following = name;
182
- }
183
-
184
- const insertFrom = deleteFrom + 1;
185
- const listNode = sourceListNode.type.create(listAttrs, slicedItems.content);
186
- tr = tr.insert(insertFrom, listNode);
187
- const paragraph = paragraphType.create({}, Fragment.empty);
188
- tr = tr.insert(insertFrom, paragraph);
189
- tr = tr.setSelection(TextSelection.create(tr.doc, insertFrom));
190
- return tr;
191
- }
1
+ // @flow
2
+
3
+ import uuid from './ui/uuid';
4
+ import { Fragment, Schema } from 'prosemirror-model';
5
+ import { TextSelection } from 'prosemirror-state';
6
+ import { Transform, canSplit } from 'prosemirror-transform';
7
+ import { LIST_ITEM, ORDERED_LIST, BULLET_LIST, PARAGRAPH } from './NodeNames';
8
+ import { findParentNodeOfType } from 'prosemirror-utils';
9
+
10
+ // Splits a list item by the current cursor's position.
11
+ // Some examples:
12
+ //
13
+ // - split before item's text:
14
+ // - before:
15
+ // 1. <cursor>AA
16
+ // 2. BB
17
+ // 3. CC
18
+ // - after:
19
+ // 1. <cursor>
20
+ // 2. AA
21
+ // 3. BB
22
+ // 4. CC
23
+ //
24
+ // - split between item's text:
25
+ // - before:
26
+ // 1. AA
27
+ // 2. B<cursor>B
28
+ // 3. CC
29
+ // - after:
30
+ // 1. AA
31
+ // 2. B
32
+ // 3. B
33
+ // 4. CC
34
+ //
35
+ // - split after item's text:
36
+ // - before:
37
+ // 1. AA
38
+ // 2. BB<cursor>
39
+ // 3. CC
40
+ // - after:
41
+ // 1. AA
42
+ // 2. BB
43
+ // 3. <cursor>
44
+ // 4. CC
45
+ //
46
+ // - split at item with empty content:
47
+ // - before:
48
+ // 1. AA
49
+ // 2. <cursor>
50
+ // 3. CC
51
+ // - after:
52
+ // 1. AA
53
+ // <cursor>
54
+ // 2. BB
55
+ // 3. CC
56
+ //
57
+ export default function splitListItem(
58
+ tr: Transform,
59
+ schema: Schema
60
+ ): Transform {
61
+ const nodeType = schema.nodes[LIST_ITEM];
62
+ if (!nodeType) {
63
+ return tr;
64
+ }
65
+
66
+ const { selection } = tr;
67
+ if (!selection) {
68
+ return tr;
69
+ }
70
+
71
+ const { $from, $to, node } = selection;
72
+ if ((node && node.isBlock) || $from.depth < 2 || !$from.sameParent($to)) {
73
+ return tr;
74
+ }
75
+
76
+ const grandParent = $from.node(-1);
77
+ if (grandParent.type !== nodeType) {
78
+ return tr;
79
+ }
80
+
81
+ if ($from.parent.content.size == 0) {
82
+ // In an empty list item.
83
+ return splitEmptyListItem(tr, schema);
84
+ }
85
+
86
+ const nextType =
87
+ $to.pos == $from.end()
88
+ ? grandParent.contentMatchAt($from.indexAfter(-1)).defaultType
89
+ : null;
90
+
91
+ tr = tr.delete($from.pos, $to.pos);
92
+ const types = nextType && [null, { type: nextType }];
93
+ if (!canSplit(tr.doc, $from.pos, 2, types)) {
94
+ return tr;
95
+ }
96
+
97
+ return tr.split($from.pos, 2, types);
98
+ }
99
+
100
+ // Splits an item with empty content:
101
+ // - before:
102
+ // 1. AA
103
+ // 2. <cursor>
104
+ // 3. CC
105
+ // - after:
106
+ // 1. AA
107
+ // <cursor>
108
+ // 2. BB
109
+ // 3. CC
110
+ function splitEmptyListItem(tr: Transform, schema: Schema): Transform {
111
+ const listItemType = schema.nodes[LIST_ITEM];
112
+ const orderedListType = schema.nodes[ORDERED_LIST];
113
+ const bulletListType = schema.nodes[BULLET_LIST];
114
+ const paragraphType = schema.nodes[PARAGRAPH];
115
+ if (!listItemType || !paragraphType) {
116
+ // Schema does not support the nodes expected.
117
+ return tr;
118
+ }
119
+ const listItemFound = findParentNodeOfType(listItemType)(tr.selection);
120
+ if (!listItemFound || listItemFound.node.textContent !== '') {
121
+ // Cursor is not inside an empty list item.
122
+ return tr;
123
+ }
124
+
125
+ const listFound =
126
+ (orderedListType && findParentNodeOfType(orderedListType)(tr.selection)) ||
127
+ (bulletListType && findParentNodeOfType(bulletListType)(tr.selection));
128
+
129
+ if (!listFound) {
130
+ // Cursor isn't inside an list.
131
+ return tr;
132
+ }
133
+
134
+ const $listItemPos = tr.doc.resolve(listItemFound.pos);
135
+ const listItemIndex = $listItemPos.index($listItemPos.depth);
136
+ const listFoundNode = listFound.node;
137
+ if (
138
+ listFoundNode.childCount < 3 ||
139
+ listItemIndex < 1 ||
140
+ listItemIndex >= listFoundNode.childCount - 1
141
+ ) {
142
+ // - The list must have at least three list items
143
+ // - The cursor must be after the first list item and before the last list
144
+ // item.
145
+ // If both conditions don't match, bails out, which will remove the empty
146
+ // item.
147
+ return tr;
148
+ }
149
+
150
+ // Find the name of the current list to split. If the name isn't available,
151
+ // assigns a new name.
152
+ let { name } = listFoundNode.attrs;
153
+ if (!name) {
154
+ name = uuid();
155
+ tr = tr.setNodeMarkup(
156
+ listFound.pos,
157
+ listFoundNode.type,
158
+ {
159
+ ...listFoundNode.attrs,
160
+ name,
161
+ },
162
+ listFoundNode.marks
163
+ );
164
+ }
165
+
166
+ // We'll split the list into two lists.
167
+ // the first list contains the items before the cursor, and the second
168
+ // list contains the items after the cursor and the second list will "follow"
169
+ // the first list by sharing the same counter variable.
170
+ const sliceFrom = listItemFound.pos + listItemFound.node.nodeSize;
171
+ const sliceTo = listFound.pos + listFound.node.nodeSize - 1;
172
+ const slicedItems = tr.doc.slice(sliceFrom, sliceTo, false);
173
+
174
+ const deleteFrom = listItemFound.pos;
175
+ const deleteTo = listFound.pos + listFound.node.nodeSize;
176
+ tr = tr.delete(deleteFrom, deleteTo);
177
+ const sourceListNode = listFound.node;
178
+ const listAttrs = { ...sourceListNode.attrs };
179
+ if (orderedListType === sourceListNode.type) {
180
+ listAttrs.counterReset = 'none';
181
+ listAttrs.following = name;
182
+ }
183
+
184
+ const insertFrom = deleteFrom + 1;
185
+ const listNode = sourceListNode.type.create(listAttrs, slicedItems.content);
186
+ tr = tr.insert(insertFrom, listNode);
187
+ const paragraph = paragraphType.create({}, Fragment.empty);
188
+ tr = tr.insert(insertFrom, paragraph);
189
+ tr = tr.setSelection(TextSelection.create(tr.doc, insertFrom));
190
+ return tr;
191
+ }
package/dist/styles.css CHANGED
@@ -1,19 +1,19 @@
1
- @import './styles0.css';
2
- @import './ui/czi-loading-indicator.css';
3
- @import './ui/czi-math-view.css';
4
- @import './ui/czi-pop-up.css';
5
- @import './ui/czi-selection-placeholder.css';
6
- @import './ui/czi-table-cell-menu.css';
7
- @import './ui/czi-table-grid-size-editor.css';
8
- @import './ui/czi-tooltip-surface.css';
9
- @import './ui/mathquill-editor/czi-mathquill-editor.css';
10
- @import './ui/mathquill-editor/czi-mathquill-editor-symbols-panel.css';
11
- @import './client/licit.css';
12
-
13
- /* [FS] IRAD-1061 2020-09-19 */
14
-
15
- /* Now loaded locally, so that it work in closed network as well. */
16
- @import './ui/fonts.css';
17
- @import './ui/icon-font.css';
18
- @import '~node-mathquill/build/mathquill.css';
19
- @import '~katex/dist/katex.min.css';
1
+ @import './styles0.css';
2
+ @import './ui/czi-loading-indicator.css';
3
+ @import './ui/czi-math-view.css';
4
+ @import './ui/czi-pop-up.css';
5
+ @import './ui/czi-selection-placeholder.css';
6
+ @import './ui/czi-table-cell-menu.css';
7
+ @import './ui/czi-table-grid-size-editor.css';
8
+ @import './ui/czi-tooltip-surface.css';
9
+ @import './ui/mathquill-editor/czi-mathquill-editor.css';
10
+ @import './ui/mathquill-editor/czi-mathquill-editor-symbols-panel.css';
11
+ @import './client/licit.css';
12
+
13
+ /* [FS] IRAD-1061 2020-09-19 */
14
+
15
+ /* Now loaded locally, so that it work in closed network as well. */
16
+ @import './ui/fonts.css';
17
+ @import './ui/icon-font.css';
18
+ @import '~node-mathquill/build/mathquill.css';
19
+ @import '~katex/dist/katex.min.css';
package/dist/styles0.css CHANGED
@@ -1,29 +1,29 @@
1
- @import './ui/czi-vars.css';
2
- @import './ui/czi-heading.css';
3
- @import './ui/czi-indent.css';
4
- @import './ui/czi-list.css';
5
- @import './ui/czi-table.css';
6
- @import './ui/czi-custom-button.css';
7
- @import './ui/czi-animations.css';
8
- @import './ui/czi-color-editor.css';
9
- @import './ui/czi-bookmark-view.css';
10
- @import './ui/czi-body-layout-editor.css';
11
- @import './ui/czi-cursor-placeholder.css';
12
- @import './ui/czi-custom-menu.css';
13
- @import './ui/czi-custom-menu-button.css';
14
- @import './ui/czi-custom-menu-item.css';
15
- @import './ui/czi-custom-radio-button.css';
16
- @import './ui/czi-custom-scrollbar.css';
17
- @import './ui/czi-editor.css';
18
- @import './ui/czi-editor-frameset.css';
19
- @import './ui/czi-editor-toolbar.css';
20
- @import './ui/czi-form.css';
21
- @import './ui/czi-frag.css';
22
- @import './ui/czi-icon.css';
23
- @import './ui/czi-image-resize-box.css';
24
- @import './ui/czi-image-upload-editor.css';
25
- @import './ui/czi-image-upload-placeholder.css';
26
- @import './ui/czi-image-url-editor.css';
27
- @import './ui/czi-image-view.css';
28
- @import './ui/czi-inline-editor.css';
29
- @import './ui/czi-link-tooltip.css';
1
+ @import './ui/czi-vars.css';
2
+ @import './ui/czi-heading.css';
3
+ @import './ui/czi-indent.css';
4
+ @import './ui/czi-list.css';
5
+ @import './ui/czi-table.css';
6
+ @import './ui/czi-custom-button.css';
7
+ @import './ui/czi-animations.css';
8
+ @import './ui/czi-color-editor.css';
9
+ @import './ui/czi-bookmark-view.css';
10
+ @import './ui/czi-body-layout-editor.css';
11
+ @import './ui/czi-cursor-placeholder.css';
12
+ @import './ui/czi-custom-menu.css';
13
+ @import './ui/czi-custom-menu-button.css';
14
+ @import './ui/czi-custom-menu-item.css';
15
+ @import './ui/czi-custom-radio-button.css';
16
+ @import './ui/czi-custom-scrollbar.css';
17
+ @import './ui/czi-editor.css';
18
+ @import './ui/czi-editor-frameset.css';
19
+ @import './ui/czi-editor-toolbar.css';
20
+ @import './ui/czi-form.css';
21
+ @import './ui/czi-frag.css';
22
+ @import './ui/czi-icon.css';
23
+ @import './ui/czi-image-resize-box.css';
24
+ @import './ui/czi-image-upload-editor.css';
25
+ @import './ui/czi-image-upload-placeholder.css';
26
+ @import './ui/czi-image-url-editor.css';
27
+ @import './ui/czi-image-view.css';
28
+ @import './ui/czi-inline-editor.css';
29
+ @import './ui/czi-link-tooltip.css';
@@ -1,22 +1,22 @@
1
- // [FS-SEA][24-02-2020]
2
- // overrided the method form 'convertToCSSPTValue.js' file to avoid the compiling issue .
3
- // [FS][28-02-2020]
4
- // IRAD-893 - Copy Paste From External Source Not Working
5
- // removed {} from import, because convertToCSSPTValue is a default export function.
6
- import convertToCSSPTValue from './convertToCSSPTValue';
7
-
8
- export function toClosestFontPtSize(styleValue: string): number {
9
- // duplicated FONT_PT_SIZES(available in ./ui/FontSizeCommandMenuButton)
10
- const FONT_PT_SIZES = [8, 9, 10, 11, 12, 14, 18, 24, 30, 36, 48, 60, 72, 90];
11
- const originalPTValue = convertToCSSPTValue(styleValue);
12
-
13
- if (FONT_PT_SIZES.includes(originalPTValue)) {
14
- return originalPTValue;
15
- }
16
-
17
- return FONT_PT_SIZES.reduce((prev, curr) => {
18
- return Math.abs(curr - originalPTValue) < Math.abs(prev - originalPTValue)
19
- ? curr
20
- : prev;
21
- }, Number.NEGATIVE_INFINITY);
22
- }
1
+ // [FS-SEA][24-02-2020]
2
+ // overrided the method form 'convertToCSSPTValue.js' file to avoid the compiling issue .
3
+ // [FS][28-02-2020]
4
+ // IRAD-893 - Copy Paste From External Source Not Working
5
+ // removed {} from import, because convertToCSSPTValue is a default export function.
6
+ import convertToCSSPTValue from './convertToCSSPTValue';
7
+
8
+ export function toClosestFontPtSize(styleValue: string): number {
9
+ // duplicated FONT_PT_SIZES(available in ./ui/FontSizeCommandMenuButton)
10
+ const FONT_PT_SIZES = [8, 9, 10, 11, 12, 14, 18, 24, 30, 36, 48, 60, 72, 90];
11
+ const originalPTValue = convertToCSSPTValue(styleValue);
12
+
13
+ if (FONT_PT_SIZES.includes(originalPTValue)) {
14
+ return originalPTValue;
15
+ }
16
+
17
+ return FONT_PT_SIZES.reduce((prev, curr) => {
18
+ return Math.abs(curr - originalPTValue) < Math.abs(prev - originalPTValue)
19
+ ? curr
20
+ : prev;
21
+ }, Number.NEGATIVE_INFINITY);
22
+ }