@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
@@ -1,151 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.setTextAlign = setTextAlign;
7
- exports.default = void 0;
8
-
9
- var _prosemirrorModel = require("prosemirror-model");
10
-
11
- var _prosemirrorState = require("prosemirror-state");
12
-
13
- var _prosemirrorTransform = require("prosemirror-transform");
14
-
15
- var _prosemirrorView = require("prosemirror-view");
16
-
17
- var _NodeNames = require("./NodeNames");
18
-
19
- var _licitDocAttrsStep = require("@modusoperandi/licit-doc-attrs-step");
20
-
21
- 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
-
23
- 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
-
25
- 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; }
26
-
27
- function setTextAlign(tr, schema, alignment) {
28
- const {
29
- selection,
30
- doc
31
- } = tr;
32
-
33
- if (!selection || !doc) {
34
- return tr;
35
- }
36
-
37
- const {
38
- from,
39
- to
40
- } = selection;
41
- const {
42
- nodes
43
- } = schema;
44
- const blockquote = nodes[_NodeNames.BLOCKQUOTE];
45
- const listItem = nodes[_NodeNames.LIST_ITEM];
46
- const heading = nodes[_NodeNames.HEADING];
47
- const paragraph = nodes[_NodeNames.PARAGRAPH];
48
- const tasks = [];
49
- alignment = alignment || null;
50
- const allowedNodeTypes = new Set([blockquote, heading, listItem, paragraph]);
51
- doc.nodesBetween(from, to, (node, pos, parentNode) => {
52
- const nodeType = node.type;
53
- const align = node.attrs.align || null;
54
-
55
- if (align !== alignment && allowedNodeTypes.has(nodeType)) {
56
- tasks.push({
57
- node,
58
- pos,
59
- nodeType
60
- });
61
- }
62
-
63
- return true;
64
- });
65
-
66
- if (!tasks.length) {
67
- return tr;
68
- }
69
-
70
- tasks.forEach(job => {
71
- const {
72
- node,
73
- pos,
74
- nodeType
75
- } = job;
76
- let {
77
- attrs
78
- } = node;
79
-
80
- if (alignment) {
81
- attrs = _objectSpread(_objectSpread({}, attrs), {}, {
82
- align: alignment
83
- });
84
- } else {
85
- attrs = _objectSpread(_objectSpread({}, attrs), {}, {
86
- align: null
87
- });
88
- }
89
-
90
- tr = tr.setNodeMarkup(pos, nodeType, attrs, node.marks);
91
- });
92
- return tr;
93
- }
94
-
95
- class TextAlignCommand extends _licitDocAttrsStep.UICommand {
96
- constructor(alignment) {
97
- super();
98
-
99
- _defineProperty(this, "_alignment", void 0);
100
-
101
- _defineProperty(this, "isActive", state => {
102
- const {
103
- selection,
104
- doc
105
- } = state;
106
- const {
107
- from,
108
- to
109
- } = selection;
110
- let keepLooking = true;
111
- let active = false;
112
- doc.nodesBetween(from, to, (node, pos) => {
113
- if (keepLooking && node.attrs.align === this._alignment) {
114
- keepLooking = false;
115
- active = true;
116
- }
117
-
118
- return keepLooking;
119
- });
120
- return active;
121
- });
122
-
123
- _defineProperty(this, "isEnabled", state => {
124
- const {
125
- selection
126
- } = state;
127
- return selection instanceof _prosemirrorState.TextSelection || selection instanceof _prosemirrorState.AllSelection;
128
- });
129
-
130
- _defineProperty(this, "execute", (state, dispatch, view) => {
131
- const {
132
- schema,
133
- selection
134
- } = state;
135
- const tr = setTextAlign(state.tr.setSelection(selection), schema, this._alignment);
136
-
137
- if (tr.docChanged) {
138
- dispatch && dispatch(tr);
139
- return true;
140
- } else {
141
- return false;
142
- }
143
- });
144
-
145
- this._alignment = alignment;
146
- }
147
-
148
- }
149
-
150
- var _default = TextAlignCommand;
151
- exports.default = _default;
@@ -1,122 +0,0 @@
1
- // @flow
2
-
3
- import { Schema } from 'prosemirror-model';
4
- import { AllSelection, EditorState, TextSelection } from 'prosemirror-state';
5
- import { Transform } from 'prosemirror-transform';
6
- import { EditorView } from 'prosemirror-view';
7
-
8
- import { BLOCKQUOTE, HEADING, LIST_ITEM, PARAGRAPH } from './NodeNames';
9
- import { UICommand } from '@modusoperandi/licit-doc-attrs-step';
10
-
11
- export function setTextAlign(
12
- tr: Transform,
13
- schema: Schema,
14
- alignment: ?string
15
- ): Transform {
16
- const { selection, doc } = tr;
17
- if (!selection || !doc) {
18
- return tr;
19
- }
20
- const { from, to } = selection;
21
- const { nodes } = schema;
22
-
23
- const blockquote = nodes[BLOCKQUOTE];
24
- const listItem = nodes[LIST_ITEM];
25
- const heading = nodes[HEADING];
26
- const paragraph = nodes[PARAGRAPH];
27
-
28
- const tasks = [];
29
- alignment = alignment || null;
30
-
31
- const allowedNodeTypes = new Set([blockquote, heading, listItem, paragraph]);
32
-
33
- doc.nodesBetween(from, to, (node, pos, parentNode) => {
34
- const nodeType = node.type;
35
- const align = node.attrs.align || null;
36
- if (align !== alignment && allowedNodeTypes.has(nodeType)) {
37
- tasks.push({
38
- node,
39
- pos,
40
- nodeType,
41
- });
42
- }
43
- return true;
44
- });
45
-
46
- if (!tasks.length) {
47
- return tr;
48
- }
49
-
50
- tasks.forEach((job) => {
51
- const { node, pos, nodeType } = job;
52
- let { attrs } = node;
53
- if (alignment) {
54
- attrs = {
55
- ...attrs,
56
- align: alignment,
57
- };
58
- } else {
59
- attrs = {
60
- ...attrs,
61
- align: null,
62
- };
63
- }
64
- tr = tr.setNodeMarkup(pos, nodeType, attrs, node.marks);
65
- });
66
-
67
- return tr;
68
- }
69
-
70
- class TextAlignCommand extends UICommand {
71
- _alignment: string;
72
-
73
- constructor(alignment: string) {
74
- super();
75
- this._alignment = alignment;
76
- }
77
-
78
- isActive = (state: EditorState): boolean => {
79
- const { selection, doc } = state;
80
- const { from, to } = selection;
81
- let keepLooking = true;
82
- let active = false;
83
- doc.nodesBetween(from, to, (node, pos) => {
84
- if (keepLooking && node.attrs.align === this._alignment) {
85
- keepLooking = false;
86
- active = true;
87
- }
88
- return keepLooking;
89
- });
90
- return active;
91
- };
92
-
93
- isEnabled = (state: EditorState): boolean => {
94
- const { selection } = state;
95
- return (
96
- selection instanceof TextSelection || selection instanceof AllSelection
97
- );
98
- };
99
-
100
- execute = (
101
- state: EditorState,
102
- dispatch: ?(tr: Transform) => void,
103
- view: ?EditorView
104
- ): boolean => {
105
- const { schema, selection } = state;
106
- const tr = setTextAlign(
107
- state.tr.setSelection(selection),
108
- schema,
109
- this._alignment
110
- );
111
- if (tr.docChanged) {
112
- dispatch && dispatch(tr);
113
- return true;
114
- } else {
115
- return false;
116
- }
117
- };
118
-
119
-
120
- }
121
-
122
- export default TextAlignCommand;
@@ -1,114 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = void 0;
7
-
8
- var _ColorEditor = _interopRequireDefault(require("./ui/ColorEditor"));
9
-
10
- var _licitDocAttrsStep = require("@modusoperandi/licit-doc-attrs-step");
11
-
12
- var _applyMark = _interopRequireDefault(require("./applyMark"));
13
-
14
- var _createPopUp = _interopRequireDefault(require("./ui/createPopUp"));
15
-
16
- var _findNodesWithSameMark = _interopRequireDefault(require("./findNodesWithSameMark"));
17
-
18
- var _isTextStyleMarkCommandEnabled = _interopRequireDefault(require("./isTextStyleMarkCommandEnabled"));
19
-
20
- var _nullthrows = _interopRequireDefault(require("nullthrows"));
21
-
22
- var _prosemirrorState = require("prosemirror-state");
23
-
24
- var _prosemirrorView = require("prosemirror-view");
25
-
26
- var _MarkNames = require("./MarkNames");
27
-
28
- var _prosemirrorTransform = require("prosemirror-transform");
29
-
30
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
31
-
32
- 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; }
33
-
34
- class TextColorCommand extends _licitDocAttrsStep.UICommand {
35
- constructor(_color) {
36
- super();
37
-
38
- _defineProperty(this, "_popUp", null);
39
-
40
- _defineProperty(this, "_color", '');
41
-
42
- _defineProperty(this, "isEnabled", state => {
43
- return (0, _isTextStyleMarkCommandEnabled.default)(state, _MarkNames.MARK_TEXT_COLOR);
44
- });
45
-
46
- _defineProperty(this, "waitForUserInput", (state, dispatch, view, event) => {
47
- if (this._popUp) {
48
- return Promise.resolve(undefined);
49
- }
50
-
51
- const target = (0, _nullthrows.default)(event).currentTarget;
52
-
53
- if (!(target instanceof HTMLElement)) {
54
- return Promise.resolve(undefined);
55
- }
56
-
57
- const {
58
- doc,
59
- selection,
60
- schema
61
- } = state;
62
- const markType = schema.marks[_MarkNames.MARK_TEXT_COLOR];
63
- const anchor = event ? event.currentTarget : null;
64
- const {
65
- from,
66
- to
67
- } = selection;
68
- const result = (0, _findNodesWithSameMark.default)(doc, from, to, markType);
69
- const hex = result ? result.mark.attrs.color : null;
70
- return new Promise(resolve => {
71
- this._popUp = (0, _createPopUp.default)(_ColorEditor.default, {
72
- hex
73
- }, {
74
- anchor,
75
- onClose: val => {
76
- if (this._popUp) {
77
- this._popUp = null;
78
- resolve(val);
79
- }
80
- }
81
- });
82
- });
83
- });
84
-
85
- _defineProperty(this, "executeWithUserInput", (state, dispatch, view, color) => {
86
- if (dispatch && color !== undefined) {
87
- const {
88
- schema
89
- } = state;
90
- const markType = schema.marks[_MarkNames.MARK_TEXT_COLOR];
91
- const attrs = color ? {
92
- color
93
- } : null;
94
- const tr = (0, _applyMark.default)(state.tr, schema, markType, attrs);
95
-
96
- if (tr.docChanged || tr.storedMarksSet) {
97
- // If selection is empty, the color is added to `storedMarks`, which
98
- // works like `toggleMark`
99
- // (see https://prosemirror.net/docs/ref/#commands.toggleMark).
100
- dispatch(tr);
101
- return true;
102
- }
103
- }
104
-
105
- return false;
106
- });
107
-
108
- this._color = _color;
109
- }
110
-
111
- }
112
-
113
- var _default = TextColorCommand;
114
- exports.default = _default;
@@ -1,87 +0,0 @@
1
- // @flow
2
-
3
- import ColorEditor from './ui/ColorEditor';
4
- import { UICommand } from '@modusoperandi/licit-doc-attrs-step';
5
- import applyMark from './applyMark';
6
- import createPopUp from './ui/createPopUp';
7
- import findNodesWithSameMark from './findNodesWithSameMark';
8
- import isTextStyleMarkCommandEnabled from './isTextStyleMarkCommandEnabled';
9
- import nullthrows from 'nullthrows';
10
- import { EditorState } from 'prosemirror-state';
11
- import { EditorView } from 'prosemirror-view';
12
- import { MARK_TEXT_COLOR } from './MarkNames';
13
- import { Transform } from 'prosemirror-transform';
14
-
15
- class TextColorCommand extends UICommand {
16
- _popUp = null;
17
- _color = '';
18
-
19
- constructor(color: ?string) {
20
- super();
21
- this._color = color;
22
- }
23
- isEnabled = (state: EditorState): boolean => {
24
- return isTextStyleMarkCommandEnabled(state, MARK_TEXT_COLOR);
25
- };
26
-
27
- waitForUserInput = (
28
- state: EditorState,
29
- dispatch: ?(tr: Transform) => void,
30
- view: ?EditorView,
31
- event: ?SyntheticEvent<>
32
- ): Promise<any> => {
33
- if (this._popUp) {
34
- return Promise.resolve(undefined);
35
- }
36
- const target = nullthrows(event).currentTarget;
37
- if (!(target instanceof HTMLElement)) {
38
- return Promise.resolve(undefined);
39
- }
40
-
41
- const { doc, selection, schema } = state;
42
- const markType = schema.marks[MARK_TEXT_COLOR];
43
- const anchor = event ? event.currentTarget : null;
44
- const { from, to } = selection;
45
- const result = findNodesWithSameMark(doc, from, to, markType);
46
- const hex = result ? result.mark.attrs.color : null;
47
- return new Promise((resolve) => {
48
- this._popUp = createPopUp(
49
- ColorEditor,
50
- { hex },
51
- {
52
- anchor,
53
- onClose: (val) => {
54
- if (this._popUp) {
55
- this._popUp = null;
56
- resolve(val);
57
- }
58
- },
59
- }
60
- );
61
- });
62
- };
63
-
64
- executeWithUserInput = (
65
- state: EditorState,
66
- dispatch: ?(tr: Transform) => void,
67
- view: ?EditorView,
68
- color: ?string
69
- ): boolean => {
70
- if (dispatch && color !== undefined) {
71
- const { schema } = state;
72
- const markType = schema.marks[MARK_TEXT_COLOR];
73
- const attrs = color ? { color } : null;
74
- const tr = applyMark(state.tr, schema, markType, attrs);
75
- if (tr.docChanged || tr.storedMarksSet) {
76
- // If selection is empty, the color is added to `storedMarks`, which
77
- // works like `toggleMark`
78
- // (see https://prosemirror.net/docs/ref/#commands.toggleMark).
79
- dispatch(tr);
80
- return true;
81
- }
82
- }
83
- return false;
84
- };
85
- }
86
-
87
- export default TextColorCommand;
@@ -1,118 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = void 0;
7
-
8
- var _ColorEditor = _interopRequireDefault(require("./ui/ColorEditor"));
9
-
10
- var _licitDocAttrsStep = require("@modusoperandi/licit-doc-attrs-step");
11
-
12
- var _applyMark = _interopRequireDefault(require("./applyMark"));
13
-
14
- var _createPopUp = _interopRequireDefault(require("./ui/createPopUp"));
15
-
16
- var _findNodesWithSameMark = _interopRequireDefault(require("./findNodesWithSameMark"));
17
-
18
- var _isTextStyleMarkCommandEnabled = _interopRequireDefault(require("./isTextStyleMarkCommandEnabled"));
19
-
20
- var _nullthrows = _interopRequireDefault(require("nullthrows"));
21
-
22
- var _prosemirrorState = require("prosemirror-state");
23
-
24
- var _prosemirrorView = require("prosemirror-view");
25
-
26
- var _MarkNames = require("./MarkNames");
27
-
28
- var _prosemirrorTransform = require("prosemirror-transform");
29
-
30
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
31
-
32
- 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; }
33
-
34
- class TextHighlightCommand extends _licitDocAttrsStep.UICommand {
35
- constructor(_color) {
36
- super();
37
-
38
- _defineProperty(this, "_popUp", null);
39
-
40
- _defineProperty(this, "_color", '');
41
-
42
- _defineProperty(this, "isEnabled", state => {
43
- return (0, _isTextStyleMarkCommandEnabled.default)(state, _MarkNames.MARK_TEXT_HIGHLIGHT);
44
- });
45
-
46
- _defineProperty(this, "waitForUserInput", (state, dispatch, view, event) => {
47
- if (this._popUp) {
48
- return Promise.resolve(undefined);
49
- }
50
-
51
- const target = (0, _nullthrows.default)(event).currentTarget;
52
-
53
- if (!(target instanceof HTMLElement)) {
54
- return Promise.resolve(undefined);
55
- }
56
-
57
- const {
58
- doc,
59
- selection,
60
- schema
61
- } = state;
62
- const markType = schema.marks[_MarkNames.MARK_TEXT_HIGHLIGHT];
63
- const {
64
- from,
65
- to
66
- } = selection;
67
- const result = (0, _findNodesWithSameMark.default)(doc, from, to, markType);
68
- const hex = result ? result.mark.attrs.highlightColor : null;
69
- const anchor = event ? event.currentTarget : null;
70
- return new Promise(resolve => {
71
- this._popUp = (0, _createPopUp.default)(_ColorEditor.default, {
72
- hex
73
- }, {
74
- anchor,
75
- onClose: val => {
76
- if (this._popUp) {
77
- this._popUp = null;
78
- resolve(val);
79
- }
80
- }
81
- });
82
- });
83
- });
84
-
85
- _defineProperty(this, "executeWithUserInput", (state, dispatch, view, color) => {
86
- if (dispatch && color !== undefined) {
87
- const {
88
- schema
89
- } = state;
90
- let {
91
- tr
92
- } = state;
93
- const markType = schema.marks[_MarkNames.MARK_TEXT_HIGHLIGHT];
94
- const attrs = color ? {
95
- highlightColor: color
96
- } : null; // tr = applyMark(tr.setSelection(state.selection), schema, markType, attrs);
97
-
98
- tr = (0, _applyMark.default)(tr, schema, markType, attrs);
99
-
100
- if (tr.docChanged || tr.storedMarksSet) {
101
- // If selection is empty, the color is added to `storedMarks`, which
102
- // works like `toggleMark`
103
- // (see https://prosemirror.net/docs/ref/#commands.toggleMark).
104
- dispatch(tr);
105
- return true;
106
- }
107
- }
108
-
109
- return false;
110
- });
111
-
112
- this._color = _color;
113
- }
114
-
115
- }
116
-
117
- var _default = TextHighlightCommand;
118
- exports.default = _default;
@@ -1,91 +0,0 @@
1
- // @flow
2
-
3
- import ColorEditor from './ui/ColorEditor';
4
- import { UICommand } from '@modusoperandi/licit-doc-attrs-step';
5
- import applyMark from './applyMark';
6
- import createPopUp from './ui/createPopUp';
7
- import findNodesWithSameMark from './findNodesWithSameMark';
8
- import isTextStyleMarkCommandEnabled from './isTextStyleMarkCommandEnabled';
9
- import nullthrows from 'nullthrows';
10
- import { EditorState } from 'prosemirror-state';
11
- import { EditorView } from 'prosemirror-view';
12
- import { MARK_TEXT_HIGHLIGHT } from './MarkNames';
13
- import { Transform } from 'prosemirror-transform';
14
-
15
- class TextHighlightCommand extends UICommand {
16
- _popUp = null;
17
- _color = '';
18
-
19
- constructor(color: ?string) {
20
- super();
21
- this._color = color;
22
- }
23
- isEnabled = (state: EditorState): boolean => {
24
- return isTextStyleMarkCommandEnabled(state, MARK_TEXT_HIGHLIGHT);
25
- };
26
-
27
- waitForUserInput = (
28
- state: EditorState,
29
- dispatch: ?(tr: Transform) => void,
30
- view: ?EditorView,
31
- event: ?SyntheticEvent<>
32
- ): Promise<any> => {
33
- if (this._popUp) {
34
- return Promise.resolve(undefined);
35
- }
36
- const target = nullthrows(event).currentTarget;
37
- if (!(target instanceof HTMLElement)) {
38
- return Promise.resolve(undefined);
39
- }
40
-
41
- const { doc, selection, schema } = state;
42
- const markType = schema.marks[MARK_TEXT_HIGHLIGHT];
43
- const { from, to } = selection;
44
- const result = findNodesWithSameMark(doc, from, to, markType);
45
- const hex = result ? result.mark.attrs.highlightColor : null;
46
- const anchor = event ? event.currentTarget : null;
47
- return new Promise((resolve) => {
48
- this._popUp = createPopUp(
49
- ColorEditor,
50
- { hex },
51
- {
52
- anchor,
53
- onClose: (val) => {
54
- if (this._popUp) {
55
- this._popUp = null;
56
- resolve(val);
57
- }
58
- },
59
- }
60
- );
61
- });
62
- };
63
-
64
- executeWithUserInput = (
65
- state: EditorState,
66
- dispatch: ?(tr: Transform) => void,
67
- view: ?EditorView,
68
- color: ?string
69
- ): boolean => {
70
- if (dispatch && color !== undefined) {
71
- const { schema } = state;
72
- let { tr } = state;
73
- const markType = schema.marks[MARK_TEXT_HIGHLIGHT];
74
- const attrs = color ? { highlightColor: color } : null;
75
- // tr = applyMark(tr.setSelection(state.selection), schema, markType, attrs);
76
- tr = applyMark(tr, schema, markType, attrs);
77
- if (tr.docChanged || tr.storedMarksSet) {
78
- // If selection is empty, the color is added to `storedMarks`, which
79
- // works like `toggleMark`
80
- // (see https://prosemirror.net/docs/ref/#commands.toggleMark).
81
- dispatch(tr);
82
- return true;
83
- }
84
- }
85
- return false;
86
- };
87
-
88
-
89
- }
90
-
91
- export default TextHighlightCommand;