@modusoperandi/licit 1.0.4 → 1.0.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (360) hide show
  1. package/BlockquoteInsertNewLineCommand.js +16 -18
  2. package/BlockquoteInsertNewLineCommand.js.flow +76 -77
  3. package/BlockquoteNodeSpec.js +3 -4
  4. package/BlockquoteNodeSpec.js.flow +29 -30
  5. package/BlockquoteToggleCommand.js +16 -17
  6. package/BlockquoteToggleCommand.js.flow +56 -56
  7. package/BookmarkNodeSpec.js +2 -2
  8. package/BookmarkNodeSpec.js.flow +39 -39
  9. package/BulletListNodeSpec.js.flow +61 -61
  10. package/CZIProseMirror.js.flow +90 -90
  11. package/CodeBlockCommand.js +17 -18
  12. package/CodeBlockCommand.js.flow +65 -65
  13. package/CodeBlockNodeSpec.js.flow +24 -24
  14. package/CodeMarkSpec.js.flow +14 -14
  15. package/ContentPlaceholderPlugin.js +20 -21
  16. package/ContentPlaceholderPlugin.js.flow +185 -187
  17. package/CursorPlaceholderPlugin.js +11 -11
  18. package/CursorPlaceholderPlugin.js.flow +115 -115
  19. package/DocLayoutCommand.js +18 -21
  20. package/DocLayoutCommand.js.flow +97 -99
  21. package/DocNodeSpec.js.flow +64 -64
  22. package/EMMarkSpec.js.flow +14 -14
  23. package/EditorCommands.js.flow +126 -126
  24. package/EditorKeyMap.js +0 -1
  25. package/EditorKeyMap.js.flow +185 -187
  26. package/EditorMarks.js +2 -2
  27. package/EditorMarks.js.flow +71 -71
  28. package/EditorNodes.js +2 -3
  29. package/EditorNodes.js.flow +58 -59
  30. package/EditorPageLayoutPlugin.js +10 -10
  31. package/EditorPageLayoutPlugin.js.flow +67 -67
  32. package/EditorPlugins.js.flow +8 -8
  33. package/EditorSchema.js.flow +12 -12
  34. package/EditorState.js.flow +7 -7
  35. package/FontSizeMarkSpec.js.flow +49 -49
  36. package/FontTypeMarkSpec.js +1 -1
  37. package/FontTypeMarkSpec.js.flow +80 -80
  38. package/HTMLMutator.js +6 -7
  39. package/HTMLMutator.js.flow +59 -59
  40. package/HardBreakNodeSpec.js.flow +15 -15
  41. package/HeadingNodeSpec.js +3 -13
  42. package/HeadingNodeSpec.js.flow +42 -52
  43. package/HistoryRedoCommand.js +15 -16
  44. package/HistoryRedoCommand.js.flow +41 -41
  45. package/HistoryUndoCommand.js +15 -16
  46. package/HistoryUndoCommand.js.flow +41 -41
  47. package/HorizontalRuleCommand.js +15 -16
  48. package/HorizontalRuleCommand.js.flow +71 -71
  49. package/HorizontalRuleNodeSpec.js.flow +39 -39
  50. package/ImageUploadPlaceholderPlugin.js +15 -17
  51. package/ImageUploadPlaceholderPlugin.js.flow +190 -192
  52. package/LinkMarkSpec.js +6 -1
  53. package/LinkMarkSpec.js.flow +37 -32
  54. package/LinkSetURLCommand.js +130 -60
  55. package/LinkSetURLCommand.js.flow +141 -117
  56. package/LinkTooltipPlugin.js +122 -34
  57. package/LinkTooltipPlugin.js.flow +261 -190
  58. package/ListItemInsertNewLineCommand.js +16 -18
  59. package/ListItemInsertNewLineCommand.js.flow +76 -77
  60. package/ListItemMergeCommand.js +24 -24
  61. package/ListItemMergeCommand.js.flow +198 -199
  62. package/ListItemNodeSpec.js.flow +52 -52
  63. package/ListSplitCommand.js +15 -16
  64. package/ListSplitCommand.js.flow +54 -54
  65. package/ListToggleCommand.js +19 -20
  66. package/ListToggleCommand.js.flow +99 -99
  67. package/MarkNames.js.flow +18 -18
  68. package/MarksClearCommand.js +17 -18
  69. package/MarksClearCommand.js.flow +65 -65
  70. package/MathEditCommand.js +17 -19
  71. package/MathEditCommand.js.flow +119 -120
  72. package/MathNodeSpec.js.flow +46 -46
  73. package/NodeNames.js.flow +23 -23
  74. package/OrderedListNodeSpec.js +2 -2
  75. package/OrderedListNodeSpec.js.flow +132 -132
  76. package/ParagraphNodeSpec.js +11 -2
  77. package/ParagraphNodeSpec.js.flow +163 -156
  78. package/ParagraphSpacingCommand.js +21 -23
  79. package/ParagraphSpacingCommand.js.flow +139 -144
  80. package/PrintCommand.js +17 -18
  81. package/PrintCommand.js.flow +53 -53
  82. package/SelectionPlaceholderPlugin.js +11 -11
  83. package/SelectionPlaceholderPlugin.js.flow +131 -131
  84. package/SpacerMarkSpec.js +2 -2
  85. package/SpacerMarkSpec.js.flow +47 -47
  86. package/StrikeMarkSpec.js.flow +21 -21
  87. package/StrongMarkSpec.js.flow +25 -25
  88. package/StyleView.js +5 -7
  89. package/StyleView.js.flow +18 -19
  90. package/TableBackgroundColorCommand.js +34 -23
  91. package/TableBackgroundColorCommand.js.flow +80 -75
  92. package/TableBorderColorCommand.js +34 -23
  93. package/TableBorderColorCommand.js.flow +81 -75
  94. package/TableCellColorCommand.js +20 -21
  95. package/TableCellColorCommand.js.flow +74 -75
  96. package/TableCellMenuPlugin.js +19 -19
  97. package/TableCellMenuPlugin.js.flow +130 -132
  98. package/TableInsertCommand.js +19 -22
  99. package/TableInsertCommand.js.flow +118 -120
  100. package/TableMergeCellsCommand.js +19 -19
  101. package/TableMergeCellsCommand.js.flow +113 -112
  102. package/TableNodesSpecs.js +4 -2
  103. package/TableNodesSpecs.js.flow +80 -78
  104. package/TablePlugins.js.flow +14 -14
  105. package/TableResizePlugin.js +20 -20
  106. package/TableResizePlugin.js.flow +631 -631
  107. package/TextColorMarkSpec.js.flow +35 -35
  108. package/TextHighlightMarkSpec.js.flow +38 -38
  109. package/TextInsertTabSpaceCommand.js +15 -16
  110. package/TextInsertTabSpaceCommand.js.flow +106 -106
  111. package/TextNoWrapMarkSpec.js.flow +14 -14
  112. package/TextNodeSpec.js.flow +7 -7
  113. package/TextSelectionMarkSpec.js.flow +24 -24
  114. package/TextSubMarkSpec.js.flow +20 -20
  115. package/TextSuperMarkSpec.js.flow +20 -20
  116. package/TextUnderlineMarkSpec.js.flow +27 -27
  117. package/Types.js +6 -0
  118. package/Types.js.flow +77 -75
  119. package/WebFontLoader.js +6 -7
  120. package/WebFontLoader.js.flow +22 -22
  121. package/blockQuoteInputRule.js.flow +36 -36
  122. package/bom.xml +17223 -25722
  123. package/browser.js.flow +7 -7
  124. package/buildEditorPlugins.js +6 -7
  125. package/buildEditorPlugins.js.flow +49 -49
  126. package/buildInputRules.js +8 -4
  127. package/buildInputRules.js.flow +85 -81
  128. package/client/CollabConnector.js +20 -20
  129. package/client/CollabConnector.js.flow +90 -90
  130. package/client/EditorConnection.js +10 -9
  131. package/client/EditorConnection.js.flow +324 -323
  132. package/client/Licit.js +78 -115
  133. package/client/Licit.js.flow +611 -643
  134. package/client/Licit.test.js +49 -39
  135. package/client/Licit.test.js.flow +104 -98
  136. package/client/Reporter.js +5 -6
  137. package/client/Reporter.js.flow +37 -37
  138. package/client/SimpleConnector.js +5 -5
  139. package/client/SimpleConnector.js.flow +61 -61
  140. package/client/http.js +0 -6
  141. package/client/http.js.flow +62 -70
  142. package/client/licit.css +12 -12
  143. package/client/throttle.js +8 -2
  144. package/client/throttle.js.flow +27 -27
  145. package/convertFromDOMElement.js +2 -4
  146. package/convertFromDOMElement.js.flow +33 -36
  147. package/convertFromHTML.js +2 -3
  148. package/convertFromHTML.js.flow +15 -17
  149. package/convertFromJSON.js +1 -2
  150. package/convertFromJSON.js.flow +55 -56
  151. package/convertToCSSPTValue.js +6 -10
  152. package/convertToCSSPTValue.js.flow +19 -22
  153. package/convertToJSON.js.flow +7 -7
  154. package/createCommand.js +16 -17
  155. package/createCommand.js.flow +62 -62
  156. package/createEditorKeyMap.js +2 -2
  157. package/createEditorKeyMap.js.flow +94 -94
  158. package/createEmptyEditorState.js +2 -3
  159. package/createEmptyEditorState.js.flow +29 -31
  160. package/createTableResizingPlugin.js +6 -6
  161. package/createTableResizingPlugin.js.flow +86 -86
  162. package/findActionableCell.js.flow +74 -74
  163. package/findActiveMark.js +1 -1
  164. package/findActiveMark.js.flow +32 -32
  165. package/hyphenize.js.flow +17 -17
  166. package/index.d.ts +165 -165
  167. package/index.js.flow +10 -10
  168. package/insertTable.js +0 -3
  169. package/insertTable.js.flow +54 -56
  170. package/isEditorStateEmpty.js.flow +32 -32
  171. package/isTableNode.js.flow +15 -15
  172. package/joinDown.js +1 -3
  173. package/joinDown.js.flow +25 -27
  174. package/joinListNode.js.flow +55 -55
  175. package/joinUp.js +1 -3
  176. package/joinUp.js.flow +37 -39
  177. package/keymaps.js.flow +185 -185
  178. package/lookUpElement.js +2 -1
  179. package/lookUpElement.js.flow +14 -14
  180. package/nodeAt.js.flow +12 -12
  181. package/normalizeHTML.js +3 -1
  182. package/normalizeHTML.js.flow +80 -78
  183. package/package.json +162 -156
  184. package/patchAnchorElements.js +1 -1
  185. package/patchAnchorElements.js.flow +38 -38
  186. package/patchBreakElements.js +3 -2
  187. package/patchBreakElements.js.flow +22 -22
  188. package/patchElementInlineStyles.js +1 -1
  189. package/patchElementInlineStyles.js.flow +92 -92
  190. package/patchListElements.js +4 -4
  191. package/patchListElements.js.flow +276 -276
  192. package/patchMathElements.js +5 -7
  193. package/patchMathElements.js.flow +58 -60
  194. package/patchParagraphElements.js.flow +20 -20
  195. package/patchStyleElements.js +1 -1
  196. package/patchStyleElements.js.flow +197 -196
  197. package/patchTableElements.js +2 -3
  198. package/patchTableElements.js.flow +88 -89
  199. package/rebaseDocWithSteps.js.flow +42 -42
  200. package/sanitizeURL.js +1 -1
  201. package/sanitizeURL.js.flow +13 -13
  202. package/splitListItem.js +3 -3
  203. package/splitListItem.js.flow +191 -191
  204. package/styles.css +19 -19
  205. package/styles0.css +29 -29
  206. package/toClosestFontPtSize.js.flow +22 -22
  207. package/toSafeHTMLDocument.js.flow +9 -9
  208. package/toggleBlockquote.js +4 -5
  209. package/toggleBlockquote.js.flow +101 -108
  210. package/toggleCodeBlock.js +6 -6
  211. package/toggleCodeBlock.js.flow +102 -102
  212. package/ui/AlertInfo.js +15 -16
  213. package/ui/AlertInfo.js.flow +64 -64
  214. package/ui/BookmarkNodeView.js +20 -21
  215. package/ui/BookmarkNodeView.js.flow +66 -66
  216. package/ui/CommandButton.js +15 -16
  217. package/ui/CommandButton.js.flow +68 -68
  218. package/ui/CommandMenu.js +19 -20
  219. package/ui/CommandMenu.js.flow +75 -75
  220. package/ui/CommandMenuButton.js +23 -25
  221. package/ui/CommandMenuButton.js.flow +130 -131
  222. package/ui/CustomEditorView.js +20 -20
  223. package/ui/CustomEditorView.js.flow +29 -28
  224. package/ui/CustomMenu.js +11 -12
  225. package/ui/CustomMenu.js.flow +17 -17
  226. package/ui/CustomMenuItem.js +16 -18
  227. package/ui/CustomMenuItem.js.flow +36 -36
  228. package/ui/CustomNodeView.js +29 -19
  229. package/ui/CustomNodeView.js.flow +207 -200
  230. package/ui/CustomRadioButton.js +18 -21
  231. package/ui/CustomRadioButton.js.flow +64 -65
  232. package/ui/DocLayoutEditor.js +18 -20
  233. package/ui/DocLayoutEditor.js.flow +145 -146
  234. package/ui/Editor.js +30 -28
  235. package/ui/Editor.js.flow +287 -288
  236. package/ui/EditorFrameset.js +13 -14
  237. package/ui/EditorFrameset.js.flow +81 -81
  238. package/ui/EditorToolbar.js +36 -42
  239. package/ui/EditorToolbar.js.flow +199 -218
  240. package/ui/EditorToolbarConfig.js +5 -5
  241. package/ui/EditorToolbarConfig.js.flow +164 -164
  242. package/ui/FontSizeCommandMenuButton.js +14 -15
  243. package/ui/FontSizeCommandMenuButton.js.flow +66 -66
  244. package/ui/FontTypeCommandMenuButton.js +15 -17
  245. package/ui/FontTypeCommandMenuButton.js.flow +60 -61
  246. package/ui/Frag.js +11 -12
  247. package/ui/Frag.js.flow +13 -13
  248. package/ui/Icon.js +21 -24
  249. package/ui/Icon.js.flow +89 -89
  250. package/ui/ImageInlineEditor.js +14 -15
  251. package/ui/ImageInlineEditor.js.flow +67 -67
  252. package/ui/KeyCodes.js.flow +12 -12
  253. package/ui/LinkTooltip.js +68 -34
  254. package/ui/LinkTooltip.js.flow +118 -85
  255. package/ui/LinkURLEditor.js +160 -43
  256. package/ui/LinkURLEditor.js.flow +243 -117
  257. package/ui/ListItemNodeView.js +6 -7
  258. package/ui/ListItemNodeView.js.flow +98 -98
  259. package/ui/ListTypeButton.js +23 -27
  260. package/ui/ListTypeButton.js.flow +128 -131
  261. package/ui/ListTypeCommandButton.js +14 -15
  262. package/ui/ListTypeCommandButton.js.flow +85 -85
  263. package/ui/ListTypeMenu.js +21 -22
  264. package/ui/ListTypeMenu.js.flow +70 -70
  265. package/ui/LoadingIndicator.js +11 -12
  266. package/ui/LoadingIndicator.js.flow +20 -20
  267. package/ui/MathEditor.js +17 -22
  268. package/ui/MathEditor.js.flow +72 -78
  269. package/ui/MathInlineEditor.js +20 -21
  270. package/ui/MathInlineEditor.js.flow +101 -102
  271. package/ui/MathNodeView.js +29 -30
  272. package/ui/MathNodeView.js.flow +176 -186
  273. package/ui/PasteMenu.js +19 -23
  274. package/ui/PasteMenu.js.flow +53 -57
  275. package/ui/ResizeObserver.js +1 -1
  276. package/ui/ResizeObserver.js.flow +106 -106
  277. package/ui/RichTextEditor.js +17 -18
  278. package/ui/RichTextEditor.js.flow +133 -133
  279. package/ui/SelectionObserver.js +8 -9
  280. package/ui/SelectionObserver.js.flow +134 -134
  281. package/ui/TableCellMenu.js +14 -15
  282. package/ui/TableCellMenu.js.flow +51 -51
  283. package/ui/TableGridSizeEditor.js +30 -33
  284. package/ui/TableGridSizeEditor.js.flow +187 -184
  285. package/ui/TableNodeView.js +18 -17
  286. package/ui/TableNodeView.js.flow +25 -25
  287. package/ui/bindScrollHandler.js +2 -1
  288. package/ui/bindScrollHandler.js.flow +46 -46
  289. package/ui/canUseCSSFont.js +5 -4
  290. package/ui/canUseCSSFont.js.flow +42 -43
  291. package/ui/czi-body-layout-editor.css +16 -16
  292. package/ui/czi-bookmark-view.css +10 -10
  293. package/ui/czi-cursor-placeholder.css +36 -36
  294. package/ui/czi-custom-menu-button.css +18 -18
  295. package/ui/czi-custom-menu-item.css +30 -30
  296. package/ui/czi-custom-menu.css +8 -8
  297. package/ui/czi-custom-radio-button.css +80 -80
  298. package/ui/czi-custom-scrollbar.css +21 -21
  299. package/ui/czi-editor-frameset.css +81 -81
  300. package/ui/czi-editor-toolbar.css +122 -122
  301. package/ui/czi-editor.css +217 -220
  302. package/ui/czi-form.css +201 -107
  303. package/ui/czi-frag.css +3 -3
  304. package/ui/czi-heading.css +40 -40
  305. package/ui/czi-icon.css +72 -72
  306. package/ui/czi-image-resize-box.css +165 -165
  307. package/ui/czi-image-upload-editor.css +57 -57
  308. package/ui/czi-image-upload-placeholder.css +50 -50
  309. package/ui/czi-image-url-editor.css +38 -38
  310. package/ui/czi-image-view.css +121 -125
  311. package/ui/czi-indent.css +137 -137
  312. package/ui/czi-inline-editor.css +20 -20
  313. package/ui/czi-link-tooltip.css +112 -71
  314. package/ui/czi-list.css +406 -410
  315. package/ui/czi-loading-indicator.css +66 -111
  316. package/ui/czi-math-view.css +62 -62
  317. package/ui/czi-selection-placeholder.css +24 -24
  318. package/ui/czi-table-cell-menu.css +16 -14
  319. package/ui/czi-table-grid-size-editor.css +37 -37
  320. package/ui/czi-table.css +87 -87
  321. package/ui/czi-vars.css +2 -2
  322. package/ui/findActiveFontSize.js +2 -1
  323. package/ui/findActiveFontSize.js.flow +55 -58
  324. package/ui/findActiveFontType.js +4 -3
  325. package/ui/findActiveFontType.js.flow +35 -38
  326. package/ui/fonts.css +460 -460
  327. package/ui/handleEditorDrop.js +1 -1
  328. package/ui/handleEditorDrop.js.flow +28 -28
  329. package/ui/handleEditorKeyDown.js +1 -1
  330. package/ui/handleEditorKeyDown.js.flow +39 -39
  331. package/ui/handleEditorPaste.js +1 -1
  332. package/ui/handleEditorPaste.js.flow +33 -33
  333. package/ui/htmlElementToRect.js.flow +18 -18
  334. package/ui/icon-font.css +9 -9
  335. package/ui/injectStyleSheet.js +2 -2
  336. package/ui/injectStyleSheet.js.flow +40 -42
  337. package/ui/isElementFullyVisible.js +1 -10
  338. package/ui/isElementFullyVisible.js.flow +14 -26
  339. package/ui/isOffline.js.flow +8 -8
  340. package/ui/isReactClass.js.flow +12 -12
  341. package/ui/listType.css +21 -21
  342. package/ui/mathquill-editor/MathQuillEditor.js +27 -30
  343. package/ui/mathquill-editor/MathQuillEditor.js.flow +158 -159
  344. package/ui/mathquill-editor/MathQuillEditorSymbols.js.flow +483 -483
  345. package/ui/mathquill-editor/MathQuillEditorSymbolsPanel.js +14 -15
  346. package/ui/mathquill-editor/MathQuillEditorSymbolsPanel.js.flow +50 -50
  347. package/ui/mathquill-editor/czi-mathquill-editor-symbols-panel.css +39 -39
  348. package/ui/mathquill-editor/czi-mathquill-editor.css +50 -50
  349. package/ui/mathquill-editor/mathquill-import-kludge.js +1 -8
  350. package/ui/mathquill-editor/mathquill-import-kludge.js.flow +17 -24
  351. package/ui/renderLaTeXAsHTML.js +4 -4
  352. package/ui/renderLaTeXAsHTML.js.flow +46 -46
  353. package/ui/resolveImage.js +5 -6
  354. package/ui/resolveImage.js.flow +121 -123
  355. package/ui/toCSSColor.js.flow +51 -51
  356. package/ui/toCSSLineSpacing.js +2 -3
  357. package/ui/toCSSLineSpacing.js.flow +53 -55
  358. package/ui/toHexColor.js.flow +26 -26
  359. package/ui/uuid.js.flow +9 -9
  360. package/uuid.js.flow +9 -9
@@ -1,55 +1,55 @@
1
- // @flow
2
-
3
- import { Schema } from 'prosemirror-model';
4
- import { TextSelection } from 'prosemirror-state';
5
- import { Transform } from 'prosemirror-transform';
6
-
7
- import { isListNode } from '@modusoperandi/licit-ui-commands';
8
- import joinDown from './joinDown';
9
- import joinUp from './joinUp';
10
-
11
- export default function joinListNode(
12
- tr: Transform,
13
- schema: Schema,
14
- listNodePos: number
15
- ): Transform {
16
- if (!tr.doc || !tr.selection) {
17
- return tr;
18
- }
19
- const node = tr.doc.nodeAt(listNodePos);
20
- if (!isListNode(node)) {
21
- return tr;
22
- }
23
- const initialSelection = tr.selection;
24
- const listFromPos = listNodePos;
25
- const listToPos = listFromPos + node.nodeSize;
26
- const $fromPos = tr.doc.resolve(listFromPos);
27
- const $toPos = tr.doc.resolve(listToPos);
28
-
29
- let selectionOffset = 0;
30
- if (
31
- $toPos.nodeAfter &&
32
- $toPos.nodeAfter.type === node.type &&
33
- $toPos.nodeAfter.attrs.level === node.attrs.level
34
- ) {
35
- tr = joinDown(tr);
36
- }
37
-
38
- if (
39
- $fromPos.nodeBefore &&
40
- $fromPos.nodeBefore.type === node.type &&
41
- $fromPos.nodeBefore.attrs.level === node.attrs.level
42
- ) {
43
- selectionOffset -= 2;
44
- tr = joinUp(tr);
45
- }
46
-
47
- const selection = TextSelection.create(
48
- tr.doc,
49
- initialSelection.from + selectionOffset,
50
- initialSelection.to + selectionOffset
51
- );
52
-
53
- tr = tr.setSelection(selection);
54
- return tr;
55
- }
1
+ // @flow
2
+
3
+ import { Schema } from 'prosemirror-model';
4
+ import { TextSelection } from 'prosemirror-state';
5
+ import { Transform } from 'prosemirror-transform';
6
+
7
+ import { isListNode } from '@modusoperandi/licit-ui-commands';
8
+ import joinDown from './joinDown';
9
+ import joinUp from './joinUp';
10
+
11
+ export default function joinListNode(
12
+ tr: Transform,
13
+ schema: Schema,
14
+ listNodePos: number
15
+ ): Transform {
16
+ if (!tr.doc || !tr.selection) {
17
+ return tr;
18
+ }
19
+ const node = tr.doc.nodeAt(listNodePos);
20
+ if (!isListNode(node)) {
21
+ return tr;
22
+ }
23
+ const initialSelection = tr.selection;
24
+ const listFromPos = listNodePos;
25
+ const listToPos = listFromPos + node.nodeSize;
26
+ const $fromPos = tr.doc.resolve(listFromPos);
27
+ const $toPos = tr.doc.resolve(listToPos);
28
+
29
+ let selectionOffset = 0;
30
+ if (
31
+ $toPos.nodeAfter &&
32
+ $toPos.nodeAfter.type === node.type &&
33
+ $toPos.nodeAfter.attrs.level === node.attrs.level
34
+ ) {
35
+ tr = joinDown(tr);
36
+ }
37
+
38
+ if (
39
+ $fromPos.nodeBefore &&
40
+ $fromPos.nodeBefore.type === node.type &&
41
+ $fromPos.nodeBefore.attrs.level === node.attrs.level
42
+ ) {
43
+ selectionOffset -= 2;
44
+ tr = joinUp(tr);
45
+ }
46
+
47
+ const selection = TextSelection.create(
48
+ tr.doc,
49
+ initialSelection.from + selectionOffset,
50
+ initialSelection.to + selectionOffset
51
+ );
52
+
53
+ tr = tr.setSelection(selection);
54
+ return tr;
55
+ }
package/joinUp.js CHANGED
@@ -1,8 +1,6 @@
1
1
  // https://github.com/ProseMirror/prosemirror-commands/blob/master/src/commands.js
2
2
  import { NodeSelection } from 'prosemirror-state';
3
- import { Transform } from 'prosemirror-transform';
4
- import { canJoin } from 'prosemirror-transform';
5
- import { joinPoint } from 'prosemirror-transform';
3
+ import { Transform, canJoin, joinPoint } from 'prosemirror-transform';
6
4
 
7
5
  // Join the selected block or, if there is a text selection, the
8
6
  // closest ancestor block of the selection that can be joined, with
package/joinUp.js.flow CHANGED
@@ -1,39 +1,37 @@
1
- // @flow
2
- // https://github.com/ProseMirror/prosemirror-commands/blob/master/src/commands.js
3
-
4
- import { NodeSelection } from 'prosemirror-state';
5
- import { Transform } from 'prosemirror-transform';
6
- import { canJoin } from 'prosemirror-transform';
7
- import { joinPoint } from 'prosemirror-transform';
8
-
9
- // Join the selected block or, if there is a text selection, the
10
- // closest ancestor block of the selection that can be joined, with
11
- // the sibling above it.
12
- export default function joinUp(tr: Transform): Transform {
13
- const sel = tr.selection;
14
- const nodeSel = sel instanceof NodeSelection;
15
- let point;
16
- if (nodeSel) {
17
- if (sel.node.isTextblock || !canJoin(tr.doc, sel.from)) {
18
- return tr;
19
- }
20
- point = sel.from;
21
- } else {
22
- point = joinPoint(tr.doc, sel.from, -1);
23
- if (point === null || point === undefined) {
24
- return tr;
25
- }
26
- }
27
-
28
- tr = tr.join(point);
29
- if (nodeSel) {
30
- tr = tr.setSelection(
31
- NodeSelection.create(
32
- tr.doc,
33
- point - tr.doc.resolve(point).nodeBefore.nodeSize
34
- )
35
- );
36
- }
37
-
38
- return tr;
39
- }
1
+ // @flow
2
+ // https://github.com/ProseMirror/prosemirror-commands/blob/master/src/commands.js
3
+
4
+ import { NodeSelection } from 'prosemirror-state';
5
+ import { Transform, canJoin, 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: Transform): Transform {
11
+ const sel = tr.selection;
12
+ const nodeSel = sel instanceof NodeSelection;
13
+ let 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
+
26
+ tr = tr.join(point);
27
+ if (nodeSel) {
28
+ tr = tr.setSelection(
29
+ NodeSelection.create(
30
+ tr.doc,
31
+ point - tr.doc.resolve(point).nodeBefore.nodeSize
32
+ )
33
+ );
34
+ }
35
+
36
+ return tr;
37
+ }
package/keymaps.js.flow CHANGED
@@ -1,185 +1,185 @@
1
- // @flow
2
-
3
- import Keymap from 'browserkeymap';
4
-
5
- import browser from './browser';
6
-
7
- import {
8
- makeKeyMap,
9
- makeKeyMapWithCommon,
10
- } from '@modusoperandi/licit-doc-attrs-step';
11
-
12
- // https://tinyurl.com/ybwf3wex
13
-
14
- export function tooltip(keymap: ?Keymap): ?string {
15
- if (keymap) {
16
- let shortcut;
17
- if (browser.isMac()) {
18
- shortcut = keymap.mac
19
- .replace(/Cmd/i, '⌘')
20
- .replace(/Shift/i, '⇧')
21
- .replace(/Ctrl/i, '^')
22
- .replace(/Alt/i, '⌥');
23
- } else {
24
- shortcut = keymap.windows;
25
- }
26
- return `${keymap.description} (${shortcut})`;
27
- }
28
- return null;
29
- }
30
-
31
- export const KEY_BACK_DELETE = makeKeyMapWithCommon('', 'Backspace');
32
- export const KEY_FORWARD_DELETE = makeKeyMapWithCommon('', 'Delete');
33
- export const KEY_INSERT_HORIZONTAL_RULE = makeKeyMapWithCommon(
34
- 'Insert horizontal rule',
35
- 'Mod-Shift--'
36
- );
37
- export const KEY_INSERT_NEW_LINE = makeKeyMapWithCommon(
38
- 'Insert new line',
39
- 'Shift-Enter'
40
- );
41
- export const KEY_INSERT_NEW_LINE_IN_BLOCKQUOTE = makeKeyMapWithCommon(
42
- 'Insert new line in blockquote',
43
- 'Shift-Enter'
44
- );
45
- export const KEY_INSERT_NEW_LINE_IN_LIST_ITEM = makeKeyMapWithCommon(
46
- 'Insert new line in list item',
47
- 'Shift-Enter'
48
- );
49
- export const KEY_REDO = makeKeyMapWithCommon('Redo', 'Mod-Shift-z');
50
- export const KEY_SET_NORMAL_TEXT = makeKeyMap(
51
- 'Normal text',
52
- 'Ctrl-0',
53
- 'Cmd-Alt-0'
54
- );
55
- export const KEY_SHIFT_BACKSPACE = makeKeyMapWithCommon(
56
- 'Shift Backspace',
57
- 'Shift-Backspace'
58
- );
59
- export const KEY_SPLIT_CODEBLOCK = makeKeyMapWithCommon(
60
- 'Split code block',
61
- 'Enter'
62
- );
63
- export const KEY_SPLIT_LIST_ITEM = makeKeyMapWithCommon(
64
- 'Split list item',
65
- 'Enter'
66
- );
67
- export const KEY_TAB = makeKeyMapWithCommon('', 'Tab');
68
- export const KEY_TAB_SHIFT = makeKeyMapWithCommon('', 'Shift-Tab');
69
- export const KEY_TOGGLE_BLOCK_QUOTE = makeKeyMap(
70
- 'Block quote',
71
- 'Ctrl-7',
72
- 'Cmd-Alt-7'
73
- );
74
- export const KEY_TOGGLE_BOLD = makeKeyMapWithCommon('Toggle bold', 'Mod-b');
75
- export const KEY_TOGGLE_BULLET_LIST = makeKeyMapWithCommon(
76
- 'Toggle bullet list',
77
- 'Mod-Shift-b'
78
- );
79
- export const KEY_TOGGLE_CODE_BLOCK = makeKeyMap(
80
- 'Code block',
81
- 'Ctrl-8',
82
- 'Cmd-Alt-8'
83
- );
84
- export const KEY_TOGGLE_HEADING_1 = makeKeyMap(
85
- 'Heading 1',
86
- 'Ctrl-1',
87
- 'Cmd-Alt-1'
88
- );
89
- export const KEY_TOGGLE_HEADING_2 = makeKeyMap(
90
- 'Heading 2',
91
- 'Ctrl-2',
92
- 'Cmd-Alt-2'
93
- );
94
- export const KEY_TOGGLE_HEADING_3 = makeKeyMap(
95
- 'Heading 3',
96
- 'Ctrl-3',
97
- 'Cmd-Alt-3'
98
- );
99
- export const KEY_TOGGLE_HEADING_4 = makeKeyMap(
100
- 'Heading 4',
101
- 'Ctrl-4',
102
- 'Cmd-Alt-4'
103
- );
104
- export const KEY_TOGGLE_HEADING_5 = makeKeyMap(
105
- 'Heading 5',
106
- 'Ctrl-5',
107
- 'Cmd-Alt-5'
108
- );
109
- export const KEY_TOGGLE_HEADING_6 = makeKeyMap(
110
- 'Heading 5',
111
- 'Ctrl-6',
112
- 'Cmd-Alt-6'
113
- );
114
- export const KEY_TOGGLE_ITALIC = makeKeyMapWithCommon('Toggle italic', 'Mod-i');
115
- export const KEY_TOGGLE_MONOSPACE = makeKeyMapWithCommon(
116
- 'Toggle monospace',
117
- 'Mod-Shift-m'
118
- );
119
- export const KEY_TOGGLE_ORDERED_LIST = makeKeyMapWithCommon(
120
- 'Toggle ordered list',
121
- 'Mod-Shift-l'
122
- );
123
- export const KEY_TOGGLE_STRIKETHROUGH = makeKeyMapWithCommon(
124
- 'Toggle strikethrough',
125
- 'Mod-Shift-s'
126
- );
127
- export const KEY_TOGGLE_UNDERLINE = makeKeyMapWithCommon(
128
- 'Toggle underline',
129
- 'Mod-u'
130
- );
131
- export const KEY_UNDO = makeKeyMapWithCommon('Undo', 'Mod-z');
132
-
133
- export const ALL_KEYS = [
134
- KEY_BACK_DELETE,
135
- KEY_FORWARD_DELETE,
136
- KEY_INSERT_HORIZONTAL_RULE,
137
- KEY_INSERT_NEW_LINE,
138
- KEY_INSERT_NEW_LINE_IN_BLOCKQUOTE,
139
- KEY_INSERT_NEW_LINE_IN_LIST_ITEM,
140
- KEY_SET_NORMAL_TEXT,
141
- KEY_SHIFT_BACKSPACE,
142
- KEY_SPLIT_LIST_ITEM,
143
- KEY_TAB_SHIFT,
144
- KEY_TAB,
145
- KEY_TOGGLE_BLOCK_QUOTE,
146
- KEY_TOGGLE_BOLD,
147
- KEY_TOGGLE_BULLET_LIST,
148
- KEY_TOGGLE_BULLET_LIST,
149
- KEY_TOGGLE_CODE_BLOCK,
150
- KEY_TOGGLE_HEADING_1,
151
- KEY_TOGGLE_HEADING_2,
152
- KEY_TOGGLE_HEADING_3,
153
- KEY_TOGGLE_HEADING_4,
154
- KEY_TOGGLE_HEADING_5,
155
- KEY_TOGGLE_HEADING_6,
156
- KEY_TOGGLE_ITALIC,
157
- KEY_TOGGLE_MONOSPACE,
158
- KEY_TOGGLE_ORDERED_LIST,
159
- KEY_TOGGLE_STRIKETHROUGH,
160
- KEY_TOGGLE_UNDERLINE,
161
- KEY_UNDO,
162
- ];
163
-
164
- export function findKeymapByDescription(description: string): ?Keymap {
165
- const matches = ALL_KEYS.filter((keymap) => {
166
- return keymap.description.toUpperCase() === description.toUpperCase();
167
- });
168
- return matches[0];
169
- }
170
-
171
- export function findShortcutByDescription(description: string): ?string {
172
- const keymap = findKeymapByDescription(description);
173
- if (keymap) {
174
- return findShortcutByKeymap(keymap);
175
- }
176
- return null;
177
- }
178
-
179
- export function findShortcutByKeymap(keymap: Keymap): ?string {
180
- if (browser.isMac()) {
181
- return keymap.mac;
182
- }
183
-
184
- return keymap.windows;
185
- }
1
+ // @flow
2
+
3
+ import Keymap from 'browserkeymap';
4
+
5
+ import browser from './browser';
6
+
7
+ import {
8
+ makeKeyMap,
9
+ makeKeyMapWithCommon,
10
+ } from '@modusoperandi/licit-doc-attrs-step';
11
+
12
+ // https://tinyurl.com/ybwf3wex
13
+
14
+ export function tooltip(keymap: ?Keymap): ?string {
15
+ if (keymap) {
16
+ let shortcut;
17
+ if (browser.isMac()) {
18
+ shortcut = keymap.mac
19
+ .replace(/Cmd/i, '⌘')
20
+ .replace(/Shift/i, '⇧')
21
+ .replace(/Ctrl/i, '^')
22
+ .replace(/Alt/i, '⌥');
23
+ } else {
24
+ shortcut = keymap.windows;
25
+ }
26
+ return `${keymap.description} (${shortcut})`;
27
+ }
28
+ return null;
29
+ }
30
+
31
+ export const KEY_BACK_DELETE = makeKeyMapWithCommon('', 'Backspace');
32
+ export const KEY_FORWARD_DELETE = makeKeyMapWithCommon('', 'Delete');
33
+ export const KEY_INSERT_HORIZONTAL_RULE = makeKeyMapWithCommon(
34
+ 'Insert horizontal rule',
35
+ 'Mod-Shift--'
36
+ );
37
+ export const KEY_INSERT_NEW_LINE = makeKeyMapWithCommon(
38
+ 'Insert new line',
39
+ 'Shift-Enter'
40
+ );
41
+ export const KEY_INSERT_NEW_LINE_IN_BLOCKQUOTE = makeKeyMapWithCommon(
42
+ 'Insert new line in blockquote',
43
+ 'Shift-Enter'
44
+ );
45
+ export const KEY_INSERT_NEW_LINE_IN_LIST_ITEM = makeKeyMapWithCommon(
46
+ 'Insert new line in list item',
47
+ 'Shift-Enter'
48
+ );
49
+ export const KEY_REDO = makeKeyMapWithCommon('Redo', 'Mod-Shift-z');
50
+ export const KEY_SET_NORMAL_TEXT = makeKeyMap(
51
+ 'Normal text',
52
+ 'Ctrl-0',
53
+ 'Cmd-Alt-0'
54
+ );
55
+ export const KEY_SHIFT_BACKSPACE = makeKeyMapWithCommon(
56
+ 'Shift Backspace',
57
+ 'Shift-Backspace'
58
+ );
59
+ export const KEY_SPLIT_CODEBLOCK = makeKeyMapWithCommon(
60
+ 'Split code block',
61
+ 'Enter'
62
+ );
63
+ export const KEY_SPLIT_LIST_ITEM = makeKeyMapWithCommon(
64
+ 'Split list item',
65
+ 'Enter'
66
+ );
67
+ export const KEY_TAB = makeKeyMapWithCommon('', 'Tab');
68
+ export const KEY_TAB_SHIFT = makeKeyMapWithCommon('', 'Shift-Tab');
69
+ export const KEY_TOGGLE_BLOCK_QUOTE = makeKeyMap(
70
+ 'Block quote',
71
+ 'Ctrl-7',
72
+ 'Cmd-Alt-7'
73
+ );
74
+ export const KEY_TOGGLE_BOLD = makeKeyMapWithCommon('Toggle bold', 'Mod-b');
75
+ export const KEY_TOGGLE_BULLET_LIST = makeKeyMapWithCommon(
76
+ 'Toggle bullet list',
77
+ 'Mod-Shift-b'
78
+ );
79
+ export const KEY_TOGGLE_CODE_BLOCK = makeKeyMap(
80
+ 'Code block',
81
+ 'Ctrl-8',
82
+ 'Cmd-Alt-8'
83
+ );
84
+ export const KEY_TOGGLE_HEADING_1 = makeKeyMap(
85
+ 'Heading 1',
86
+ 'Ctrl-1',
87
+ 'Cmd-Alt-1'
88
+ );
89
+ export const KEY_TOGGLE_HEADING_2 = makeKeyMap(
90
+ 'Heading 2',
91
+ 'Ctrl-2',
92
+ 'Cmd-Alt-2'
93
+ );
94
+ export const KEY_TOGGLE_HEADING_3 = makeKeyMap(
95
+ 'Heading 3',
96
+ 'Ctrl-3',
97
+ 'Cmd-Alt-3'
98
+ );
99
+ export const KEY_TOGGLE_HEADING_4 = makeKeyMap(
100
+ 'Heading 4',
101
+ 'Ctrl-4',
102
+ 'Cmd-Alt-4'
103
+ );
104
+ export const KEY_TOGGLE_HEADING_5 = makeKeyMap(
105
+ 'Heading 5',
106
+ 'Ctrl-5',
107
+ 'Cmd-Alt-5'
108
+ );
109
+ export const KEY_TOGGLE_HEADING_6 = makeKeyMap(
110
+ 'Heading 5',
111
+ 'Ctrl-6',
112
+ 'Cmd-Alt-6'
113
+ );
114
+ export const KEY_TOGGLE_ITALIC = makeKeyMapWithCommon('Toggle italic', 'Mod-i');
115
+ export const KEY_TOGGLE_MONOSPACE = makeKeyMapWithCommon(
116
+ 'Toggle monospace',
117
+ 'Mod-Shift-m'
118
+ );
119
+ export const KEY_TOGGLE_ORDERED_LIST = makeKeyMapWithCommon(
120
+ 'Toggle ordered list',
121
+ 'Mod-Shift-l'
122
+ );
123
+ export const KEY_TOGGLE_STRIKETHROUGH = makeKeyMapWithCommon(
124
+ 'Toggle strikethrough',
125
+ 'Mod-Shift-s'
126
+ );
127
+ export const KEY_TOGGLE_UNDERLINE = makeKeyMapWithCommon(
128
+ 'Toggle underline',
129
+ 'Mod-u'
130
+ );
131
+ export const KEY_UNDO = makeKeyMapWithCommon('Undo', 'Mod-z');
132
+
133
+ export const ALL_KEYS = [
134
+ KEY_BACK_DELETE,
135
+ KEY_FORWARD_DELETE,
136
+ KEY_INSERT_HORIZONTAL_RULE,
137
+ KEY_INSERT_NEW_LINE,
138
+ KEY_INSERT_NEW_LINE_IN_BLOCKQUOTE,
139
+ KEY_INSERT_NEW_LINE_IN_LIST_ITEM,
140
+ KEY_SET_NORMAL_TEXT,
141
+ KEY_SHIFT_BACKSPACE,
142
+ KEY_SPLIT_LIST_ITEM,
143
+ KEY_TAB_SHIFT,
144
+ KEY_TAB,
145
+ KEY_TOGGLE_BLOCK_QUOTE,
146
+ KEY_TOGGLE_BOLD,
147
+ KEY_TOGGLE_BULLET_LIST,
148
+ KEY_TOGGLE_BULLET_LIST,
149
+ KEY_TOGGLE_CODE_BLOCK,
150
+ KEY_TOGGLE_HEADING_1,
151
+ KEY_TOGGLE_HEADING_2,
152
+ KEY_TOGGLE_HEADING_3,
153
+ KEY_TOGGLE_HEADING_4,
154
+ KEY_TOGGLE_HEADING_5,
155
+ KEY_TOGGLE_HEADING_6,
156
+ KEY_TOGGLE_ITALIC,
157
+ KEY_TOGGLE_MONOSPACE,
158
+ KEY_TOGGLE_ORDERED_LIST,
159
+ KEY_TOGGLE_STRIKETHROUGH,
160
+ KEY_TOGGLE_UNDERLINE,
161
+ KEY_UNDO,
162
+ ];
163
+
164
+ export function findKeymapByDescription(description: string): ?Keymap {
165
+ const matches = ALL_KEYS.filter((keymap) => {
166
+ return keymap.description.toUpperCase() === description.toUpperCase();
167
+ });
168
+ return matches[0];
169
+ }
170
+
171
+ export function findShortcutByDescription(description: string): ?string {
172
+ const keymap = findKeymapByDescription(description);
173
+ if (keymap) {
174
+ return findShortcutByKeymap(keymap);
175
+ }
176
+ return null;
177
+ }
178
+
179
+ export function findShortcutByKeymap(keymap: Keymap): ?string {
180
+ if (browser.isMac()) {
181
+ return keymap.mac;
182
+ }
183
+
184
+ return keymap.windows;
185
+ }
package/lookUpElement.js CHANGED
@@ -1,5 +1,6 @@
1
1
  export default function lookUpElement(el, predict) {
2
- while (el && el.nodeName) {
2
+ while ((_el = el) !== null && _el !== void 0 && _el.nodeName) {
3
+ var _el;
3
4
  if (predict(el)) {
4
5
  return el;
5
6
  }
@@ -1,14 +1,14 @@
1
- // @flow
2
-
3
- export default function lookUpElement(
4
- el: ?Element,
5
- predict: (el: Element) => boolean
6
- ): ?Element {
7
- while (el && el.nodeName) {
8
- if (predict(el)) {
9
- return el;
10
- }
11
- el = el.parentElement;
12
- }
13
- return null;
14
- }
1
+ // @flow
2
+
3
+ export default function lookUpElement(
4
+ el: ?Element,
5
+ predict: (el: Element) => boolean
6
+ ): ?Element {
7
+ while (el?.nodeName) {
8
+ if (predict(el)) {
9
+ return el;
10
+ }
11
+ el = el.parentElement;
12
+ }
13
+ return null;
14
+ }
package/nodeAt.js.flow CHANGED
@@ -1,12 +1,12 @@
1
- // @flow
2
-
3
- import { Node } from 'prosemirror-model';
4
-
5
- export default function nodeAt(doc: Node, pos: number): ?Node {
6
- if (pos < 0 || pos > doc.content.size) {
7
- // Exit here or error will be thrown:
8
- // e.g. RangeError: Position outside of fragment.
9
- return null;
10
- }
11
- return doc.nodeAt(pos);
12
- }
1
+ // @flow
2
+
3
+ import { Node } from 'prosemirror-model';
4
+
5
+ export default function nodeAt(doc: Node, pos: number): ?Node {
6
+ if (pos < 0 || pos > doc.content.size) {
7
+ // Exit here or error will be thrown:
8
+ // e.g. RangeError: Position outside of fragment.
9
+ return null;
10
+ }
11
+ return doc.nodeAt(pos);
12
+ }
package/normalizeHTML.js CHANGED
@@ -13,7 +13,7 @@ var LONG_UNDERLINE_PATTERN = /_+/g;
13
13
 
14
14
  // This is a workround to convert "&nbsp;&nbsp;......&nbsp;" into wider tab
15
15
  // tab spacers. For every 6 "&nbsp;", they will be converted into tab spacers.
16
- var LONG_TAB_SPACE_PATTERN = /(\&nbsp;){6}/g;
16
+ var LONG_TAB_SPACE_PATTERN = /(&nbsp;){6}/g;
17
17
  var TAB_SPACER_HTML = new Array(6).join("<span ".concat(DOM_ATTRIBUTE_SIZE, "=\"").concat(SPACER_SIZE_TAB, "\">").concat(HAIR_SPACE_CHAR, "</span>"));
18
18
  function replaceNOBR(matched) {
19
19
  // This is a workround to convert "_______" into none-wrapped text
@@ -31,6 +31,8 @@ export default function normalizeHTML(html) {
31
31
 
32
32
  // Convert every two consecutive "&nbsp;" into a spacer tab.
33
33
  html = html.replace(LONG_TAB_SPACE_PATTERN, TAB_SPACER_HTML);
34
+ // fix for jspdf copy paste text, from jspdf its always getting transparent
35
+ html = html.replace(/color:\s*transparent;/g, 'color: black;');
34
36
  var doc = toSafeHTMLDocument(html);
35
37
  if (doc) {
36
38
  // styles.