@modusoperandi/licit 0.1.9 → 0.13.2

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 (340) hide show
  1. package/.github/workflows/build.yml +1 -7
  2. package/.github/workflows/lint.yml +1 -1
  3. package/README.md +1 -1
  4. package/babel.config.json +54 -0
  5. package/dist/BlockquoteNodeSpec.js +2 -2
  6. package/dist/CZIProseMirror.js +4 -4
  7. package/dist/CodeBlockCommand.js +2 -2
  8. package/dist/CodeBlockCommand.js.flow +1 -1
  9. package/dist/CursorPlaceholderPlugin.js +2 -2
  10. package/dist/DocLayoutCommand.js +2 -4
  11. package/dist/DocLayoutCommand.js.flow +1 -1
  12. package/dist/DocNodeSpec.js +1 -1
  13. package/dist/EditorCommands.js +23 -35
  14. package/dist/EditorCommands.js.flow +7 -7
  15. package/dist/EditorKeyMap.js +3 -3
  16. package/dist/FontTypeMarkSpec.js +1 -1
  17. package/dist/HeadingNodeSpec.js +2 -2
  18. package/dist/ImageSourceCommand.js +2 -4
  19. package/dist/ImageSourceCommand.js.flow +1 -1
  20. package/dist/ImageUploadPlaceholderPlugin.js +1 -1
  21. package/dist/LinkSetURLCommand.js +4 -8
  22. package/dist/LinkSetURLCommand.js.flow +3 -3
  23. package/dist/LinkTooltipPlugin.js +9 -15
  24. package/dist/LinkTooltipPlugin.js.flow +5 -5
  25. package/dist/ListToggleCommand.js +5 -11
  26. package/dist/ListToggleCommand.js.flow +3 -3
  27. package/dist/MarkNames.js +1 -1
  28. package/dist/MarksClearCommand.js +3 -3
  29. package/dist/MarksClearCommand.js.flow +1 -1
  30. package/dist/MathEditCommand.js +2 -2
  31. package/dist/MathEditCommand.js.flow +1 -1
  32. package/dist/ParagraphNodeSpec.js +3 -4
  33. package/dist/ParagraphNodeSpec.js.flow +2 -6
  34. package/dist/ParagraphSpacingCommand.js +3 -3
  35. package/dist/SelectionPlaceholderPlugin.js +2 -2
  36. package/dist/SpacerMarkSpec.js +1 -1
  37. package/dist/TableBackgroundColorCommand.js +3 -7
  38. package/dist/TableBackgroundColorCommand.js.flow +3 -3
  39. package/dist/TableBorderColorCommand.js +3 -7
  40. package/dist/TableBorderColorCommand.js.flow +3 -3
  41. package/dist/TableCellColorCommand.js +3 -7
  42. package/dist/TableCellColorCommand.js.flow +3 -3
  43. package/dist/TableCellMenuPlugin.js +4 -6
  44. package/dist/TableCellMenuPlugin.js.flow +3 -3
  45. package/dist/TableInsertCommand.js +3 -5
  46. package/dist/TableInsertCommand.js.flow +2 -2
  47. package/dist/TableResizePlugin.js +2 -2
  48. package/dist/TextInsertTabSpaceCommand.js +2 -4
  49. package/dist/TextInsertTabSpaceCommand.js.flow +1 -1
  50. package/dist/Types.js +1 -1
  51. package/dist/bom.xml +4970 -4167
  52. package/dist/client/CollabConnector.js +17 -2
  53. package/dist/client/CollabConnector.js.flow +17 -2
  54. package/dist/client/EditorConnection.js +15 -4
  55. package/dist/client/EditorConnection.js.flow +14 -3
  56. package/dist/client/Licit.js +73 -58
  57. package/dist/client/Licit.js.flow +101 -85
  58. package/dist/client/Licit.test.js +18 -17
  59. package/dist/client/Licit.test.js.flow +13 -11
  60. package/dist/client/SimpleConnector.js +4 -2
  61. package/dist/client/SimpleConnector.js.flow +3 -1
  62. package/dist/client/http.js +3 -3
  63. package/dist/convertToCSSPTValue.js +1 -1
  64. package/dist/createEmptyEditorState.js +1 -1
  65. package/dist/index.js +16 -16
  66. package/dist/joinListNode.js +2 -2
  67. package/dist/joinListNode.js.flow +1 -1
  68. package/dist/keymaps.js +2 -2
  69. package/dist/patchStyleElements.js +3 -3
  70. package/dist/patchStyleElements.js.flow +1 -1
  71. package/dist/splitListItem.js +2 -2
  72. package/dist/styles.css +2 -2
  73. package/dist/styles0.css +3 -3
  74. package/dist/toggleBlockquote.js +6 -14
  75. package/dist/toggleBlockquote.js.flow +4 -4
  76. package/dist/toggleCodeBlock.js +4 -10
  77. package/dist/toggleCodeBlock.js.flow +3 -3
  78. package/dist/ui/AlertInfo.js +2 -2
  79. package/dist/ui/CommandButton.js +2 -4
  80. package/dist/ui/CommandButton.js.flow +1 -1
  81. package/dist/ui/CommandMenuButton.js +5 -7
  82. package/dist/ui/CommandMenuButton.js.flow +2 -2
  83. package/dist/ui/CustomMenuItem.js +3 -5
  84. package/dist/ui/CustomMenuItem.js.flow +1 -1
  85. package/dist/ui/CustomNodeView.js +3 -3
  86. package/dist/ui/CustomRadioButton.js +8 -6
  87. package/dist/ui/CustomRadioButton.js.flow +3 -3
  88. package/dist/ui/DocLayoutEditor.js +5 -7
  89. package/dist/ui/DocLayoutEditor.js.flow +2 -2
  90. package/dist/ui/Editor.js +1 -2
  91. package/dist/ui/Editor.js.flow +1 -2
  92. package/dist/ui/EditorFrameset.js +1 -1
  93. package/dist/ui/EditorToolbar.js +4 -4
  94. package/dist/ui/EditorToolbar.js.flow +1 -1
  95. package/dist/ui/EditorToolbarConfig.js +1 -1
  96. package/dist/ui/FontSizeCommandMenuButton.js +3 -3
  97. package/dist/ui/FontSizeCommandMenuButton.js.flow +1 -1
  98. package/dist/ui/FontTypeCommandMenuButton.js +3 -3
  99. package/dist/ui/FontTypeCommandMenuButton.js.flow +1 -1
  100. package/dist/ui/ImageAlignEditor.js +5 -5
  101. package/dist/ui/ImageAlignEditor.js.flow +1 -1
  102. package/dist/ui/ImageInlineEditor.js +5 -5
  103. package/dist/ui/ImageInlineEditor.js.flow +1 -1
  104. package/dist/ui/ImageNodeView.js +5 -7
  105. package/dist/ui/ImageNodeView.js.flow +2 -2
  106. package/dist/ui/ImageResizeBox.js +4 -4
  107. package/dist/ui/ImageResizeBox.js.flow +1 -1
  108. package/dist/ui/ImageURLEditor.js +6 -8
  109. package/dist/ui/ImageURLEditor.js.flow +2 -2
  110. package/dist/ui/ImageUploadEditor.js +3 -5
  111. package/dist/ui/ImageUploadEditor.js.flow +2 -2
  112. package/dist/ui/LinkTooltip.js +4 -4
  113. package/dist/ui/LinkTooltip.js.flow +1 -1
  114. package/dist/ui/LinkURLEditor.js +4 -6
  115. package/dist/ui/LinkURLEditor.js.flow +2 -2
  116. package/dist/ui/ListTypeButton.js +5 -7
  117. package/dist/ui/ListTypeButton.js.flow +2 -2
  118. package/dist/ui/MathEditor.js +4 -6
  119. package/dist/ui/MathEditor.js.flow +2 -2
  120. package/dist/ui/MathInlineEditor.js +7 -9
  121. package/dist/ui/MathInlineEditor.js.flow +2 -2
  122. package/dist/ui/MathNodeView.js +5 -7
  123. package/dist/ui/MathNodeView.js.flow +2 -2
  124. package/dist/ui/ResizeObserver.js +1 -1
  125. package/dist/ui/TableGridSizeEditor.js +7 -9
  126. package/dist/ui/TableGridSizeEditor.js.flow +2 -2
  127. package/dist/ui/czi-link-tooltip.css +1 -1
  128. package/dist/ui/czi-vars.css +1 -45
  129. package/dist/ui/findActiveFontType.js +1 -1
  130. package/dist/ui/htmlElementToRect.js +1 -1
  131. package/dist/ui/isElementFullyVisible.js +2 -2
  132. package/dist/ui/isElementFullyVisible.js.flow +1 -1
  133. package/dist/ui/mathquill-editor/MathQuillEditorSymbols.js +1 -1
  134. package/dist/ui/mathquill-editor/MathQuillEditorSymbolsPanel.js +2 -2
  135. package/dist/ui/mathquill-editor/MathQuillEditorSymbolsPanel.js.flow +1 -1
  136. package/dist/ui/resolveImage.js +3 -3
  137. package/dist/ui/toCSSColor.js +1 -1
  138. package/dist/ui/toCSSLineSpacing.js +1 -36
  139. package/dist/ui/toCSSLineSpacing.js.flow +0 -27
  140. package/flow-typed/@modusoperandilicit-ui-commands.js +5 -0
  141. package/jest.config.js +207 -0
  142. package/lint.sh +0 -0
  143. package/node_modules/prosemirror-utils/LICENSE +13 -0
  144. package/{dist/ui/PopUpTypes.js.flow → node_modules/prosemirror-utils/README.md} +0 -0
  145. package/node_modules/prosemirror-utils/dist/helpers.js +119 -0
  146. package/node_modules/prosemirror-utils/dist/index.js +17 -0
  147. package/node_modules/prosemirror-utils/dist/index.js.map +1 -0
  148. package/node_modules/prosemirror-utils/dist/node.js +106 -0
  149. package/node_modules/prosemirror-utils/dist/selection.js +168 -0
  150. package/node_modules/prosemirror-utils/dist/transforms.js +257 -0
  151. package/node_modules/prosemirror-utils/package.json +81 -0
  152. package/node_modules/prosemirror-utils/typings.d.ts +79 -0
  153. package/package.json +14 -8
  154. package/scripts/build_bin.py +0 -0
  155. package/scripts/ci_check_dist.sh +0 -0
  156. package/src/CodeBlockCommand.js +1 -1
  157. package/src/DocLayoutCommand.js +1 -1
  158. package/src/EditorCommands.js +7 -7
  159. package/src/ImageSourceCommand.js +1 -1
  160. package/src/LinkSetURLCommand.js +3 -3
  161. package/src/LinkTooltipPlugin.js +5 -5
  162. package/src/ListToggleCommand.js +3 -3
  163. package/src/MarksClearCommand.js +1 -1
  164. package/src/MathEditCommand.js +1 -1
  165. package/src/ParagraphNodeSpec.js +2 -6
  166. package/src/TableBackgroundColorCommand.js +3 -3
  167. package/src/TableBorderColorCommand.js +3 -3
  168. package/src/TableCellColorCommand.js +3 -3
  169. package/src/TableCellMenuPlugin.js +3 -3
  170. package/src/TableInsertCommand.js +2 -2
  171. package/src/TextInsertTabSpaceCommand.js +1 -1
  172. package/src/client/CollabConnector.js +17 -2
  173. package/src/client/EditorConnection.js +14 -3
  174. package/src/client/Licit.js +101 -85
  175. package/src/client/Licit.test.js +13 -11
  176. package/src/client/SimpleConnector.js +3 -1
  177. package/src/joinListNode.js +1 -1
  178. package/src/patchStyleElements.js +1 -1
  179. package/src/styles.css +2 -2
  180. package/src/styles0.css +3 -3
  181. package/src/toggleBlockquote.js +4 -4
  182. package/src/toggleCodeBlock.js +3 -3
  183. package/src/ui/CommandButton.js +1 -1
  184. package/src/ui/CommandMenuButton.js +2 -2
  185. package/src/ui/CustomMenuItem.js +1 -1
  186. package/src/ui/CustomRadioButton.js +3 -3
  187. package/src/ui/DocLayoutEditor.js +2 -2
  188. package/src/ui/Editor.js +1 -2
  189. package/src/ui/EditorToolbar.js +1 -1
  190. package/src/ui/FontSizeCommandMenuButton.js +1 -1
  191. package/src/ui/FontTypeCommandMenuButton.js +1 -1
  192. package/src/ui/ImageAlignEditor.js +1 -1
  193. package/src/ui/ImageInlineEditor.js +1 -1
  194. package/src/ui/ImageNodeView.js +2 -2
  195. package/src/ui/ImageResizeBox.js +1 -1
  196. package/src/ui/ImageURLEditor.js +2 -2
  197. package/src/ui/ImageUploadEditor.js +2 -2
  198. package/src/ui/LinkTooltip.js +1 -1
  199. package/src/ui/LinkURLEditor.js +2 -2
  200. package/src/ui/ListTypeButton.js +2 -2
  201. package/src/ui/MathEditor.js +2 -2
  202. package/src/ui/MathInlineEditor.js +2 -2
  203. package/src/ui/MathNodeView.js +2 -2
  204. package/src/ui/TableGridSizeEditor.js +2 -2
  205. package/src/ui/czi-link-tooltip.css +1 -1
  206. package/src/ui/czi-vars.css +1 -45
  207. package/src/ui/isElementFullyVisible.js +1 -1
  208. package/src/ui/mathquill-editor/MathQuillEditorSymbolsPanel.js +1 -1
  209. package/src/ui/toCSSLineSpacing.js +0 -27
  210. package/build_customstyle_server.py +0 -7
  211. package/dist/FontSizeCommand.js +0 -80
  212. package/dist/FontSizeCommand.js.flow +0 -57
  213. package/dist/FontTypeCommand.js +0 -137
  214. package/dist/FontTypeCommand.js.flow +0 -100
  215. package/dist/HeadingCommand.js +0 -65
  216. package/dist/HeadingCommand.js.flow +0 -51
  217. package/dist/IndentCommand.js +0 -57
  218. package/dist/IndentCommand.js.flow +0 -41
  219. package/dist/MarkToggleCommand.js +0 -90
  220. package/dist/MarkToggleCommand.js.flow +0 -66
  221. package/dist/TextAlignCommand.js +0 -151
  222. package/dist/TextAlignCommand.js.flow +0 -122
  223. package/dist/TextColorCommand.js +0 -114
  224. package/dist/TextColorCommand.js.flow +0 -87
  225. package/dist/TextHighlightCommand.js +0 -118
  226. package/dist/TextHighlightCommand.js.flow +0 -91
  227. package/dist/TextLineSpacingCommand.js +0 -177
  228. package/dist/TextLineSpacingCommand.js.flow +0 -157
  229. package/dist/applyMark.js +0 -84
  230. package/dist/applyMark.js.flow +0 -61
  231. package/dist/clearMarks.js +0 -160
  232. package/dist/clearMarks.js.flow +0 -128
  233. package/dist/compareNumber.js +0 -18
  234. package/dist/compareNumber.js.flow +0 -11
  235. package/dist/consolidateListNodes.js +0 -291
  236. package/dist/consolidateListNodes.js.flow +0 -281
  237. package/dist/coverage/lcov-report/block-navigation.js +0 -77
  238. package/dist/coverage/lcov-report/block-navigation.js.flow +0 -79
  239. package/dist/coverage/lcov-report/prettify.js +0 -994
  240. package/dist/coverage/lcov-report/prettify.js.flow +0 -2
  241. package/dist/coverage/lcov-report/sorter.js +0 -187
  242. package/dist/coverage/lcov-report/sorter.js.flow +0 -170
  243. package/dist/findNodesWithSameMark.js +0 -89
  244. package/dist/findNodesWithSameMark.js.flow +0 -89
  245. package/dist/isBulletListNode.js +0 -14
  246. package/dist/isBulletListNode.js.flow +0 -9
  247. package/dist/isInsideListItem.js +0 -19
  248. package/dist/isInsideListItem.js.flow +0 -13
  249. package/dist/isListNode.js +0 -22
  250. package/dist/isListNode.js.flow +0 -13
  251. package/dist/isNodeSelectionForNodeType.js +0 -19
  252. package/dist/isNodeSelectionForNodeType.js.flow +0 -15
  253. package/dist/isOrderedListNode.js +0 -14
  254. package/dist/isOrderedListNode.js.flow +0 -9
  255. package/dist/isTextStyleMarkCommandEnabled.js +0 -59
  256. package/dist/isTextStyleMarkCommandEnabled.js.flow +0 -49
  257. package/dist/noop.js +0 -11
  258. package/dist/noop.js.flow +0 -5
  259. package/dist/toggleHeading.js +0 -135
  260. package/dist/toggleHeading.js.flow +0 -113
  261. package/dist/toggleList.js +0 -431
  262. package/dist/toggleList.js.flow +0 -450
  263. package/dist/transformAndPreserveTextSelection.js +0 -173
  264. package/dist/transformAndPreserveTextSelection.js.flow +0 -151
  265. package/dist/ui/ColorEditor.js +0 -118
  266. package/dist/ui/ColorEditor.js.flow +0 -101
  267. package/dist/ui/CustomButton.js +0 -62
  268. package/dist/ui/CustomButton.js.flow +0 -33
  269. package/dist/ui/PointerSurface.js +0 -173
  270. package/dist/ui/PointerSurface.js.flow +0 -141
  271. package/dist/ui/PopUp.js +0 -129
  272. package/dist/ui/PopUp.js.flow +0 -77
  273. package/dist/ui/PopUpManager.js +0 -266
  274. package/dist/ui/PopUpManager.js.flow +0 -213
  275. package/dist/ui/PopUpPosition.js +0 -156
  276. package/dist/ui/PopUpPosition.js.flow +0 -104
  277. package/dist/ui/PopUpTypes.js +0 -1
  278. package/dist/ui/TooltipSurface.js +0 -99
  279. package/dist/ui/TooltipSurface.js.flow +0 -76
  280. package/dist/ui/clamp.js +0 -18
  281. package/dist/ui/clamp.js.flow +0 -11
  282. package/dist/ui/createPopUp.js +0 -199
  283. package/dist/ui/createPopUp.js.flow +0 -205
  284. package/dist/ui/czi-animations.css +0 -15
  285. package/dist/ui/czi-color-editor.css +0 -56
  286. package/dist/ui/czi-custom-button.css +0 -93
  287. package/dist/ui/czi-pop-up.css +0 -32
  288. package/dist/ui/czi-tooltip-surface.css +0 -45
  289. package/dist/ui/preventEventDefault.js +0 -10
  290. package/dist/ui/preventEventDefault.js.flow +0 -5
  291. package/dist/ui/rects.js +0 -58
  292. package/dist/ui/rects.js.flow +0 -47
  293. package/dist/updateIndentLevel.js +0 -232
  294. package/dist/updateIndentLevel.js.flow +0 -211
  295. package/flow-typed/@molicit-citation.js +0 -5
  296. package/licit/server/customstyles/start.js +0 -184
  297. package/run_customstyle_server.py +0 -20
  298. package/src/FontSizeCommand.js +0 -57
  299. package/src/FontTypeCommand.js +0 -100
  300. package/src/HeadingCommand.js +0 -51
  301. package/src/IndentCommand.js +0 -41
  302. package/src/MarkToggleCommand.js +0 -66
  303. package/src/TextAlignCommand.js +0 -122
  304. package/src/TextColorCommand.js +0 -87
  305. package/src/TextHighlightCommand.js +0 -91
  306. package/src/TextLineSpacingCommand.js +0 -157
  307. package/src/applyMark.js +0 -61
  308. package/src/clearMarks.js +0 -128
  309. package/src/compareNumber.js +0 -11
  310. package/src/consolidateListNodes.js +0 -281
  311. package/src/findNodesWithSameMark.js +0 -89
  312. package/src/isBulletListNode.js +0 -9
  313. package/src/isInsideListItem.js +0 -13
  314. package/src/isListNode.js +0 -13
  315. package/src/isNodeSelectionForNodeType.js +0 -15
  316. package/src/isOrderedListNode.js +0 -9
  317. package/src/isTextStyleMarkCommandEnabled.js +0 -49
  318. package/src/noop.js +0 -5
  319. package/src/toggleHeading.js +0 -113
  320. package/src/toggleList.js +0 -450
  321. package/src/transformAndPreserveTextSelection.js +0 -151
  322. package/src/ui/ColorEditor.js +0 -101
  323. package/src/ui/CustomButton.js +0 -33
  324. package/src/ui/PointerSurface.js +0 -141
  325. package/src/ui/PopUp.js +0 -77
  326. package/src/ui/PopUpManager.js +0 -213
  327. package/src/ui/PopUpPosition.js +0 -104
  328. package/src/ui/PopUpTypes.js +0 -0
  329. package/src/ui/TooltipSurface.js +0 -76
  330. package/src/ui/clamp.js +0 -11
  331. package/src/ui/createPopUp.js +0 -205
  332. package/src/ui/czi-animations.css +0 -15
  333. package/src/ui/czi-color-editor.css +0 -56
  334. package/src/ui/czi-custom-button.css +0 -93
  335. package/src/ui/czi-pop-up.css +0 -32
  336. package/src/ui/czi-tooltip-surface.css +0 -45
  337. package/src/ui/preventEventDefault.js +0 -5
  338. package/src/ui/rects.js +0 -47
  339. package/src/updateIndentLevel.js +0 -211
  340. package/utils/build_customstyle_server.js +0 -72
package/dist/ui/rects.js DELETED
@@ -1,58 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.isCollapsed = isCollapsed;
7
- exports.isIntersected = isIntersected;
8
- exports.fromXY = fromXY;
9
- exports.fromHTMlElement = fromHTMlElement;
10
- exports.bpfrpt_proptype_Rect = void 0;
11
-
12
- var _propTypes = _interopRequireDefault(require("prop-types"));
13
-
14
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15
-
16
- var bpfrpt_proptype_Rect = {
17
- "h": _propTypes.default.number.isRequired,
18
- "w": _propTypes.default.number.isRequired,
19
- "x": _propTypes.default.number.isRequired,
20
- "y": _propTypes.default.number.isRequired
21
- };
22
- exports.bpfrpt_proptype_Rect = bpfrpt_proptype_Rect;
23
-
24
- function isCollapsed(rect) {
25
- return rect.w === 0 || rect.h === 0;
26
- }
27
-
28
- function isIntersected(r1, r2, padding) {
29
- const pp = padding || 0;
30
- return !(r2.x - pp > r1.x + r1.w + pp || r2.x + r2.w + pp < r1.x - pp || r2.y - pp > r1.y + r1.h + pp || r2.y + r2.h + pp < r1.y - pp);
31
- }
32
-
33
- function fromXY(x, y, padding) {
34
- padding = padding || 0;
35
- return {
36
- x: x - padding,
37
- y: y - padding,
38
- w: padding * 2,
39
- h: padding * 2
40
- };
41
- }
42
-
43
- function fromHTMlElement(el) {
44
- const display = document.defaultView.getComputedStyle(el).display;
45
-
46
- if (display === 'contents' && el.children.length === 1) {
47
- // el has no layout at all, use its children instead.
48
- return fromHTMlElement(el.children[0]);
49
- }
50
-
51
- const rect = el.getBoundingClientRect();
52
- return {
53
- x: rect.left,
54
- y: rect.top,
55
- w: rect.width,
56
- h: rect.height
57
- };
58
- }
@@ -1,47 +0,0 @@
1
- // @flow
2
-
3
- export type Rect = {
4
- h: number,
5
- w: number,
6
- x: number,
7
- y: number,
8
- };
9
-
10
- export function isCollapsed(rect: Rect): boolean {
11
- return rect.w === 0 || rect.h === 0;
12
- }
13
-
14
- export function isIntersected(r1: Rect, r2: Rect, padding: ?number): boolean {
15
- const pp = padding || 0;
16
- return !(
17
- r2.x - pp > r1.x + r1.w + pp ||
18
- r2.x + r2.w + pp < r1.x - pp ||
19
- r2.y - pp > r1.y + r1.h + pp ||
20
- r2.y + r2.h + pp < r1.y - pp
21
- );
22
- }
23
-
24
- export function fromXY(x: number, y: number, padding: ?number): Rect {
25
- padding = padding || 0;
26
- return {
27
- x: x - padding,
28
- y: y - padding,
29
- w: padding * 2,
30
- h: padding * 2,
31
- };
32
- }
33
-
34
- export function fromHTMlElement(el: HTMLElement): Rect {
35
- const display = document.defaultView.getComputedStyle(el).display;
36
- if (display === 'contents' && el.children.length === 1) {
37
- // el has no layout at all, use its children instead.
38
- return fromHTMlElement(el.children[0]);
39
- }
40
- const rect = el.getBoundingClientRect();
41
- return {
42
- x: rect.left,
43
- y: rect.top,
44
- w: rect.width,
45
- h: rect.height,
46
- };
47
- }
@@ -1,232 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = updateIndentLevel;
7
-
8
- var _clamp = _interopRequireDefault(require("./ui/clamp"));
9
-
10
- var _compareNumber = _interopRequireDefault(require("./compareNumber"));
11
-
12
- var _consolidateListNodes = _interopRequireDefault(require("./consolidateListNodes"));
13
-
14
- var _isListNode = _interopRequireDefault(require("./isListNode"));
15
-
16
- var _transformAndPreserveTextSelection = _interopRequireDefault(require("./transformAndPreserveTextSelection"));
17
-
18
- var _prosemirrorState = require("prosemirror-state");
19
-
20
- var _NodeNames = require("./NodeNames");
21
-
22
- var _prosemirrorModel = require("prosemirror-model");
23
-
24
- var _ParagraphNodeSpec = require("./ParagraphNodeSpec");
25
-
26
- var _prosemirrorTransform = require("prosemirror-transform");
27
-
28
- var _prosemirrorView = require("prosemirror-view");
29
-
30
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
31
-
32
- 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; }
33
-
34
- 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; }
35
-
36
- 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; }
37
-
38
- function updateIndentLevel(state, tr, schema, delta, view) {
39
- const {
40
- doc,
41
- selection
42
- } = tr;
43
-
44
- if (!doc || !selection) {
45
- return {
46
- tr,
47
- docChanged: false
48
- };
49
- }
50
-
51
- if (!(selection instanceof _prosemirrorState.TextSelection || selection instanceof _prosemirrorState.AllSelection)) {
52
- return {
53
- tr,
54
- docChanged: false
55
- };
56
- }
57
-
58
- const {
59
- nodes
60
- } = schema;
61
- const {
62
- from,
63
- to
64
- } = selection;
65
- const listNodePoses = [];
66
- const blockquote = nodes[_NodeNames.BLOCKQUOTE];
67
- const heading = nodes[_NodeNames.HEADING];
68
- const paragraph = nodes[_NodeNames.PARAGRAPH];
69
- doc.nodesBetween(from, to, (node, pos) => {
70
- const nodeType = node.type;
71
-
72
- if (nodeType === paragraph || nodeType === heading || nodeType === blockquote) {
73
- tr = setNodeIndentMarkup(state, tr, pos, delta, view).tr;
74
- return false;
75
- } else if ((0, _isListNode.default)(node)) {
76
- // List is tricky, we'll handle it later.
77
- listNodePoses.push(pos);
78
- return false;
79
- }
80
-
81
- return true;
82
- });
83
-
84
- if (!listNodePoses.length) {
85
- return {
86
- tr,
87
- docChanged: true
88
- };
89
- }
90
-
91
- tr = (0, _transformAndPreserveTextSelection.default)(tr, schema, memo => {
92
- const {
93
- schema
94
- } = memo;
95
- let tr2 = memo.tr;
96
- listNodePoses.sort(_compareNumber.default).reverse().forEach(pos => {
97
- tr2 = setListNodeIndent(state, tr2, schema, pos, delta);
98
- });
99
- tr2 = (0, _consolidateListNodes.default)(tr2);
100
- return tr2;
101
- });
102
- return {
103
- tr,
104
- docChanged: true
105
- };
106
- }
107
-
108
- function setListNodeIndent(state, tr, schema, pos, delta) {
109
- const listItem = schema.nodes[_NodeNames.LIST_ITEM];
110
-
111
- if (!listItem) {
112
- return tr;
113
- }
114
-
115
- const {
116
- doc,
117
- selection
118
- } = tr;
119
-
120
- if (!doc) {
121
- return tr;
122
- }
123
-
124
- const listNode = doc.nodeAt(pos);
125
-
126
- if (!listNode) {
127
- return tr;
128
- }
129
-
130
- const indentNew = (0, _clamp.default)(_ParagraphNodeSpec.MIN_INDENT_LEVEL, listNode.attrs.indent + delta, _ParagraphNodeSpec.MAX_INDENT_LEVEL);
131
-
132
- if (indentNew === listNode.attrs.indent) {
133
- return tr;
134
- }
135
-
136
- const {
137
- from,
138
- to
139
- } = selection; // [FS] IRAD-947 2020-05-19
140
- // Fix for Multi-level lists lose multi-levels when indenting/de-indenting
141
- // Earlier they checked the to postion value to >= pos + listNode.nodeSize
142
- // It wont satisfy the list hve childrens
143
-
144
- if (from <= pos && to >= pos) {
145
- return setNodeIndentMarkup(state, tr, pos, delta).tr;
146
- }
147
-
148
- const listNodeType = listNode.type; // listNode is partially selected.
149
-
150
- const itemsBefore = [];
151
- const itemsSelected = [];
152
- const itemsAfter = [];
153
- doc.nodesBetween(pos, pos + listNode.nodeSize, (itemNode, itemPos) => {
154
- if (itemNode.type === listNodeType) {
155
- return true;
156
- }
157
-
158
- if (itemNode.type === listItem) {
159
- const listItemNode = listItem.create(itemNode.attrs, itemNode.content, itemNode.marks);
160
-
161
- if (itemPos + itemNode.nodeSize <= from) {
162
- itemsBefore.push(listItemNode);
163
- } else if (itemPos > to) {
164
- itemsAfter.push(listItemNode);
165
- } else {
166
- itemsSelected.push(listItemNode);
167
- }
168
-
169
- return false;
170
- }
171
-
172
- return true;
173
- });
174
- tr = tr.delete(pos, pos + listNode.nodeSize);
175
-
176
- if (itemsAfter.length) {
177
- const listNodeNew = listNodeType.create(listNode.attrs, _prosemirrorModel.Fragment.from(itemsAfter));
178
- tr = tr.insert(pos, _prosemirrorModel.Fragment.from(listNodeNew));
179
- }
180
-
181
- if (itemsSelected.length) {
182
- const listNodeAttrs = _objectSpread(_objectSpread({}, listNode.attrs), {}, {
183
- indent: indentNew
184
- });
185
-
186
- const listNodeNew = listNodeType.create(listNodeAttrs, _prosemirrorModel.Fragment.from(itemsSelected));
187
- tr = tr.insert(pos, _prosemirrorModel.Fragment.from(listNodeNew));
188
- }
189
-
190
- if (itemsBefore.length) {
191
- const listNodeNew = listNodeType.create(listNode.attrs, _prosemirrorModel.Fragment.from(itemsBefore));
192
- tr = tr.insert(pos, _prosemirrorModel.Fragment.from(listNodeNew));
193
- }
194
-
195
- return tr;
196
- }
197
-
198
- function setNodeIndentMarkup(state, tr, pos, delta, view) {
199
- const retVal = true;
200
-
201
- if (!tr.doc) {
202
- return tr;
203
- }
204
-
205
- const node = tr.doc.nodeAt(pos);
206
-
207
- if (!node) {
208
- return {
209
- tr,
210
- docChanged: retVal
211
- };
212
- }
213
-
214
- const indent = (0, _clamp.default)(_ParagraphNodeSpec.MIN_INDENT_LEVEL, (node.attrs.indent || 0) + delta, _ParagraphNodeSpec.MAX_INDENT_LEVEL);
215
-
216
- if (indent === node.attrs.indent) {
217
- return {
218
- tr,
219
- docChanged: false
220
- };
221
- }
222
-
223
- const nodeAttrs = _objectSpread(_objectSpread({}, node.attrs), {}, {
224
- indent
225
- });
226
-
227
- tr = tr.setNodeMarkup(pos, node.type, nodeAttrs, node.marks);
228
- return {
229
- tr,
230
- docChanged: true
231
- };
232
- }
@@ -1,211 +0,0 @@
1
- // @flow
2
- import clamp from './ui/clamp';
3
- import compareNumber from './compareNumber';
4
- import consolidateListNodes from './consolidateListNodes';
5
- import isListNode from './isListNode';
6
- import transformAndPreserveTextSelection from './transformAndPreserveTextSelection';
7
- import { EditorState, AllSelection, TextSelection } from 'prosemirror-state';
8
- import { BLOCKQUOTE, HEADING, LIST_ITEM, PARAGRAPH } from './NodeNames';
9
- import { Fragment, Schema } from 'prosemirror-model';
10
- import { MAX_INDENT_LEVEL, MIN_INDENT_LEVEL } from './ParagraphNodeSpec';
11
- import { Transform } from 'prosemirror-transform';
12
- import { EditorView } from 'prosemirror-view';
13
-
14
- export default function updateIndentLevel(
15
- state: EditorState,
16
- tr: Transform,
17
- schema: Schema,
18
- delta: number,
19
- view: EditorView
20
- ): Transform {
21
- const { doc, selection } = tr;
22
- if (!doc || !selection) {
23
- return { tr, docChanged: false };
24
- }
25
-
26
- if (
27
- !(selection instanceof TextSelection || selection instanceof AllSelection)
28
- ) {
29
- return { tr, docChanged: false };
30
- }
31
-
32
- const { nodes } = schema;
33
- const { from, to } = selection;
34
- const listNodePoses = [];
35
- const blockquote = nodes[BLOCKQUOTE];
36
- const heading = nodes[HEADING];
37
- const paragraph = nodes[PARAGRAPH];
38
-
39
- doc.nodesBetween(from, to, (node, pos) => {
40
- const nodeType = node.type;
41
- if (
42
- nodeType === paragraph ||
43
- nodeType === heading ||
44
- nodeType === blockquote
45
- ) {
46
- tr = setNodeIndentMarkup(state, tr, pos, delta, view).tr;
47
- return false;
48
- } else if (isListNode(node)) {
49
- // List is tricky, we'll handle it later.
50
- listNodePoses.push(pos);
51
- return false;
52
- }
53
- return true;
54
- });
55
-
56
- if (!listNodePoses.length) {
57
- return { tr, docChanged: true };
58
- }
59
-
60
- tr = transformAndPreserveTextSelection(tr, schema, (memo) => {
61
- const { schema } = memo;
62
- let tr2 = memo.tr;
63
- listNodePoses
64
- .sort(compareNumber)
65
- .reverse()
66
- .forEach((pos) => {
67
- tr2 = setListNodeIndent(state, tr2, schema, pos, delta);
68
- });
69
- tr2 = consolidateListNodes(tr2);
70
- return tr2;
71
- });
72
-
73
- return { tr, docChanged: true };
74
- }
75
-
76
- function setListNodeIndent(
77
- state: EditorState,
78
- tr: Transform,
79
- schema: Schema,
80
- pos: number,
81
- delta: number
82
- ): Transform {
83
- const listItem = schema.nodes[LIST_ITEM];
84
- if (!listItem) {
85
- return tr;
86
- }
87
-
88
- const { doc, selection } = tr;
89
- if (!doc) {
90
- return tr;
91
- }
92
-
93
- const listNode = doc.nodeAt(pos);
94
- if (!listNode) {
95
- return tr;
96
- }
97
-
98
- const indentNew = clamp(
99
- MIN_INDENT_LEVEL,
100
- listNode.attrs.indent + delta,
101
- MAX_INDENT_LEVEL
102
- );
103
- if (indentNew === listNode.attrs.indent) {
104
- return tr;
105
- }
106
-
107
- const { from, to } = selection;
108
-
109
- // [FS] IRAD-947 2020-05-19
110
- // Fix for Multi-level lists lose multi-levels when indenting/de-indenting
111
- // Earlier they checked the to postion value to >= pos + listNode.nodeSize
112
- // It wont satisfy the list hve childrens
113
-
114
- if (from <= pos && to >= pos) {
115
- return setNodeIndentMarkup(state, tr, pos, delta).tr;
116
- }
117
-
118
- const listNodeType = listNode.type;
119
-
120
- // listNode is partially selected.
121
- const itemsBefore = [];
122
- const itemsSelected = [];
123
- const itemsAfter = [];
124
-
125
- doc.nodesBetween(pos, pos + listNode.nodeSize, (itemNode, itemPos) => {
126
- if (itemNode.type === listNodeType) {
127
- return true;
128
- }
129
-
130
- if (itemNode.type === listItem) {
131
- const listItemNode = listItem.create(
132
- itemNode.attrs,
133
- itemNode.content,
134
- itemNode.marks
135
- );
136
- if (itemPos + itemNode.nodeSize <= from) {
137
- itemsBefore.push(listItemNode);
138
- } else if (itemPos > to) {
139
- itemsAfter.push(listItemNode);
140
- } else {
141
- itemsSelected.push(listItemNode);
142
- }
143
- return false;
144
- }
145
-
146
- return true;
147
- });
148
-
149
- tr = tr.delete(pos, pos + listNode.nodeSize);
150
- if (itemsAfter.length) {
151
- const listNodeNew = listNodeType.create(
152
- listNode.attrs,
153
- Fragment.from(itemsAfter)
154
- );
155
- tr = tr.insert(pos, Fragment.from(listNodeNew));
156
- }
157
-
158
- if (itemsSelected.length) {
159
- const listNodeAttrs = {
160
- ...listNode.attrs,
161
- indent: indentNew,
162
- };
163
- const listNodeNew = listNodeType.create(
164
- listNodeAttrs,
165
- Fragment.from(itemsSelected)
166
- );
167
- tr = tr.insert(pos, Fragment.from(listNodeNew));
168
- }
169
-
170
- if (itemsBefore.length) {
171
- const listNodeNew = listNodeType.create(
172
- listNode.attrs,
173
- Fragment.from(itemsBefore)
174
- );
175
- tr = tr.insert(pos, Fragment.from(listNodeNew));
176
- }
177
-
178
- return tr;
179
- }
180
-
181
- function setNodeIndentMarkup(
182
- state: EditorState,
183
- tr: Transform,
184
- pos: number,
185
- delta: number,
186
- view: EditorView
187
- ): Transform {
188
- const retVal = true;
189
- if (!tr.doc) {
190
- return tr;
191
- }
192
- const node = tr.doc.nodeAt(pos);
193
- if (!node) {
194
- return { tr, docChanged: retVal };
195
- }
196
- const indent = clamp(
197
- MIN_INDENT_LEVEL,
198
- (node.attrs.indent || 0) + delta,
199
- MAX_INDENT_LEVEL
200
- );
201
-
202
- if (indent === node.attrs.indent) {
203
- return { tr, docChanged: false };
204
- }
205
- const nodeAttrs = {
206
- ...node.attrs,
207
- indent,
208
- };
209
- tr = tr.setNodeMarkup(pos, node.type, nodeAttrs, node.marks);
210
- return { tr, docChanged: true };
211
- }
@@ -1,5 +0,0 @@
1
- // @flow
2
-
3
- declare module '@mo/licit-citation' {
4
- declare module.exports: any;
5
- }