@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,184 +0,0 @@
1
- // @flow
2
- const express = require('express');
3
- const cors = require('cors');
4
- const fs = require('fs');
5
- const bodyParser = require('body-parser');
6
- const app = express();
7
- const PORT = process.env.PORT || 3000;
8
-
9
- //allow OPTIONS on all resources
10
- app.options('*', cors());
11
- app.use(cors());
12
- app.use(bodyParser.json());
13
- app.use(bodyParser.text());
14
-
15
- const JSONFILE = '../customstyles/styles.json';
16
- /** styles as map for fast lookup */
17
- const allStyles = readStyles();
18
- /** styles as sorted array for results */
19
- let sortedStyles = sortStyles();
20
-
21
- /**
22
- * Read styles from disk storage.
23
- *
24
- * @returns Dictionary of styles.
25
- */
26
- function readStyles() {
27
- try {
28
- //Made compatible with old and new JSON Format
29
- const json = fs.readFileSync(JSONFILE, 'utf-8');
30
- const obj = JSON.parse(json);
31
- let rawStyles = [];
32
- const {styles} = obj;
33
- if (styles) {
34
- // Add styles from incomming collection.
35
- Object.keys(styles).forEach((key) => rawStyles.push(styles[key]));
36
- } else {
37
- rawStyles = obj || [];
38
- }
39
-
40
- // Convert array into map.
41
- return rawStyles.reduce((out, style) => {
42
- if (style.styleName) {
43
- out[style.styleName.toUpperCase()] = style;
44
- }
45
- return out;
46
- }, {});
47
- } catch (err) {
48
- console.error('Failed to read style file.', JSONFILE, err);
49
- // Return empty object.
50
- return {};
51
- }
52
- }
53
-
54
- /**
55
- * Write styles to disk storage.
56
- */
57
- function writeStyles() {
58
- try {
59
- // Save the array
60
- const json = JSON.stringify(sortedStyles);
61
- fs.writeFileSync(JSONFILE, json, 'utf-8');
62
- } catch (err) {
63
- console.error('Failed to write style file', JSONFILE);
64
- }
65
- }
66
-
67
- /**
68
- * Convert map to a sorted array.
69
- */
70
- function sortStyles() {
71
- return Object.keys(allStyles)
72
- .sort()
73
- .map((key) => allStyles[key]);
74
- }
75
-
76
- // [FS] IRAD-1128 2020-12-24
77
- // read the custom style json file to return all styles.
78
- app.get('/styles/', function (req, res) {
79
- // Send the memory cache
80
- res.json(sortedStyles);
81
- });
82
-
83
- // [FS] IRAD-1128 2020-12-24
84
- // save the custom style to the json file.
85
- app.post('/styles/', function (req, res) {
86
- const name = req.body.styleName.toUpperCase();
87
- // Attach new or overwite existing style
88
- allStyles[name] = req.body;
89
- // Save changes
90
- sortedStyles = sortStyles();
91
- writeStyles();
92
-
93
- res.send(sortedStyles);
94
- });
95
-
96
- // [FS] IRAD-1128 2020-12-24
97
- // save the custom style to the json file.
98
- app.post('/styles/rename/', function (req, res) {
99
- const oldName = req.body.styleName.toUpperCase();
100
- const style = allStyles[oldName];
101
- if (style) {
102
- const newName = req.body.modifiedStyleName;
103
- style.styleName = newName;
104
- allStyles[newName.toUpperCase()] = style;
105
- delete allStyles[oldName];
106
-
107
- sortedStyles = sortStyles();
108
- writeStyles();
109
- }
110
-
111
- // Send the memory cache
112
- res.send(sortedStyles);
113
- });
114
-
115
- // [FS] IRAD-1128 2020-12-30
116
- // to remove the selected custom style from the json file.
117
- app.delete('/styles/:styleName', function (req, res) {
118
- const name = req.params.styleName.toUpperCase();
119
-
120
- if (allStyles.hasOwnProperty(name)) {
121
- delete allStyles[name];
122
- sortedStyles = sortStyles();
123
- writeStyles();
124
- }
125
-
126
- // Send the memory cache
127
- res.json(sortedStyles);
128
- });
129
-
130
- // Not used by the editor!
131
- // Responds with the current collection of styles as a map. This endpoint
132
- // provides a way to backup / migrate styles from one instance of the service to
133
- // another.
134
- //
135
- // json respone: { styles: {} }
136
- app.get('/bulk-export', (req, res) => {
137
- // Wrap map in object to match bulk-import expectations.
138
- res.json({
139
- styles: allStyles,
140
- });
141
- });
142
-
143
- // Not used by the editor!
144
- // Accepts a collection of styles previously exported. This endoint provides a
145
- // way to restore / migrate styles from one insdtance of the service to another.
146
- //
147
- // json body: { styles: {...}, replace?: true }
148
- //
149
- // The default behavior is to merge incomming styles with any existing ones.
150
- // Styles with same case-insensitvie name will be overwritten. Setting replace
151
- // to true will delete all existing styles and only the imported styles will be
152
- // retained..
153
- app.post('/bulk-import', (req, res) => {
154
- const {styles, replace} = req.json;
155
- if (styles) {
156
- if (replace) {
157
- // Delete all existing styles.
158
- Object.keys(allStyles).forEach((key) => delete allStyles[key]);
159
- }
160
- // Add styles from incomming collection.
161
- Object.keys(styles).forEach((key) => (allStyles[key] = styles[key]));
162
- sortedStyles = sortStyles();
163
- writeStyles();
164
- }
165
- // Respond with updated style data.
166
- return res.json({
167
- styles: allStyles,
168
- });
169
- });
170
-
171
- if (!module.parent) {
172
- const server = app.listen(PORT);
173
- console.log('Custom Style Server running on port ' + PORT + '!...');
174
-
175
- // Create shutdown method.
176
- const shutdown = () => {
177
- console.log('Beginning shutdown.');
178
- server.close(() => console.log('Shutdown complete.'));
179
- };
180
-
181
- // Listen for terminal events to trigger shutdown.
182
- process.on('SIGTERM', shutdown);
183
- process.on('SIGINT', shutdown);
184
- }
@@ -1,20 +0,0 @@
1
- #!/usr/bin/env python
2
- # -*- coding: utf-8 -*-
3
-
4
- import os
5
- import platform
6
- import socket
7
-
8
- # [FS] IRAD-991 2020-07-17
9
- # gracefully handling commands WRT OS.
10
- hostname = socket.gethostname()
11
- IPAddr = socket.gethostbyname(hostname)
12
- port = '3005'
13
-
14
- if platform.system()=="Windows": cmd = 'node servers/customstyles/run_customstyle_server.bundle.js ' + ' PORT=' + port + ' IP='+ IPAddr
15
- else: cmd = 'PORT=' + port + ' IP=' + IPAddr + ' node servers/customstyles/run_customstyle_server.bundle.js'
16
-
17
- print('=' * 80)
18
- print(cmd)
19
- print('=' * 80)
20
- os.system(cmd)
@@ -1,57 +0,0 @@
1
- // @flow
2
-
3
- import { UICommand } from '@modusoperandi/licit-doc-attrs-step';
4
- import applyMark from './applyMark';
5
- import isTextStyleMarkCommandEnabled from './isTextStyleMarkCommandEnabled';
6
- import { EditorState } from 'prosemirror-state';
7
- import { EditorView } from 'prosemirror-view';
8
- import { MARK_FONT_SIZE } from './MarkNames';
9
- import { Schema } from 'prosemirror-model';
10
- import { Transform } from 'prosemirror-transform';
11
-
12
- function setFontSize(tr: Transform, schema: Schema, pt: number): Transform {
13
- const markType = schema.marks[MARK_FONT_SIZE];
14
- if (!markType) {
15
- return tr;
16
- }
17
- const attrs = pt ? { pt } : null;
18
- tr = applyMark(tr, schema, markType, attrs);
19
- return tr;
20
- }
21
-
22
- class FontSizeCommand extends UICommand {
23
- _popUp = null;
24
- _pt = 0;
25
-
26
- constructor(pt: number) {
27
- super();
28
- this._pt = pt;
29
- }
30
-
31
- isEnabled = (state: EditorState): boolean => {
32
- return isTextStyleMarkCommandEnabled(state, MARK_FONT_SIZE);
33
- };
34
-
35
- execute = (
36
- state: EditorState,
37
- dispatch: ?(tr: Transform) => void,
38
- view: ?EditorView
39
- ): boolean => {
40
- const { schema } = state;
41
- // commnted selection because selection removes the storedMarks;
42
- // {selection}
43
- // const tr = setFontSize(state.tr.setSelection(selection), schema, this._pt);
44
- const tr = setFontSize(state.tr, schema, this._pt);
45
- if (tr.docChanged || tr.storedMarksSet) {
46
- // If selection is empty, the color is added to `storedMarks`, which
47
- // works like `toggleMark`
48
- // (see https://prosemirror.net/docs/ref/#commands.toggleMark).
49
- dispatch && dispatch(tr);
50
- return true;
51
- }
52
- return false;
53
- };
54
-
55
- }
56
-
57
- export default FontSizeCommand;
@@ -1,100 +0,0 @@
1
- // @flow
2
-
3
- import { Schema } from 'prosemirror-model';
4
- import { EditorState } from 'prosemirror-state';
5
- import { AllSelection, TextSelection } from 'prosemirror-state';
6
- import { Transform } from 'prosemirror-transform';
7
- import { EditorView } from 'prosemirror-view';
8
- import * as React from 'react';
9
-
10
- import { MARK_FONT_TYPE } from './MarkNames';
11
- import applyMark from './applyMark';
12
- import { UICommand } from '@modusoperandi/licit-doc-attrs-step';
13
-
14
- function setFontType(tr: Transform, schema: Schema, name: string): Transform {
15
- const markType = schema.marks[MARK_FONT_TYPE];
16
- if (!markType) {
17
- return tr;
18
- }
19
- const { selection } = tr;
20
- if (
21
- !(selection instanceof TextSelection || selection instanceof AllSelection)
22
- ) {
23
- return tr;
24
- }
25
- const attrs = name ? { name } : null;
26
- tr = applyMark(tr, schema, markType, attrs);
27
- return tr;
28
- }
29
-
30
- class FontTypeCommand extends UICommand {
31
- _label = null;
32
- _name = '';
33
- _popUp = null;
34
-
35
- constructor(name: string) {
36
- super();
37
- this._name = name;
38
- this._label = name ? (
39
- <span style={{ fontFamily: name }}>{name}</span>
40
- ) : null;
41
- }
42
-
43
- renderLabel = (state: EditorState): any => {
44
- return this._label;
45
- };
46
-
47
- isEnabled = (state: EditorState): boolean => {
48
- const { schema, selection, tr } = state;
49
- if (
50
- !(selection instanceof TextSelection || selection instanceof AllSelection)
51
- ) {
52
- return false;
53
- }
54
- const markType = schema.marks[MARK_FONT_TYPE];
55
- if (!markType) {
56
- return false;
57
- }
58
-
59
- const { from, to } = selection;
60
- if (to === from + 1) {
61
- const node = tr.doc.nodeAt(from);
62
- if (node.isAtom && !node.isText && node.isLeaf) {
63
- // An atomic node (e.g. Image) is selected.
64
- return false;
65
- }
66
- }
67
-
68
- return true;
69
- };
70
-
71
- execute = (
72
- state: EditorState,
73
- dispatch: ?(tr: Transform) => void,
74
- view: ?EditorView
75
- ): boolean => {
76
- const { schema } = state;
77
- // commnted selection because selection removes the storedMarks;
78
- // {selection}
79
-
80
- // const tr = setFontType(
81
- // state.tr.setSelection(selection),
82
- // schema,
83
- // this._name
84
- // );
85
-
86
- const tr = setFontType(state.tr, schema, this._name);
87
- if (tr.docChanged || tr.storedMarksSet) {
88
- // If selection is empty, the color is added to `storedMarks`, which
89
- // works like `toggleMark`
90
- // (see https://prosemirror.net/docs/ref/#commands.toggleMark).
91
- dispatch && dispatch(tr);
92
- return true;
93
- }
94
- return false;
95
- };
96
-
97
-
98
- }
99
-
100
- export default FontTypeCommand;
@@ -1,51 +0,0 @@
1
- // @flow
2
-
3
- import { EditorState } from 'prosemirror-state';
4
- import { Transform } from 'prosemirror-transform';
5
- import { findParentNodeOfType } from 'prosemirror-utils';
6
- import { EditorView } from 'prosemirror-view';
7
-
8
- import { HEADING } from './NodeNames';
9
- import noop from './noop';
10
- import toggleHeading from './toggleHeading';
11
- import { UICommand } from '@modusoperandi/licit-doc-attrs-step';
12
-
13
- class HeadingCommand extends UICommand {
14
- _level: number;
15
-
16
- constructor(level: number) {
17
- super();
18
- this._level = level;
19
- }
20
-
21
- isActive = (state: EditorState): boolean => {
22
- return true;
23
- };
24
-
25
- execute = (
26
- state: EditorState,
27
- dispatch: ?(tr: Transform) => void,
28
- view: ?EditorView
29
- ): boolean => {
30
- const { schema, selection } = state;
31
- const tr = toggleHeading(
32
- state.tr.setSelection(selection),
33
- schema,
34
- this._level
35
- );
36
- if (tr.docChanged) {
37
- dispatch && dispatch(tr);
38
- return true;
39
- } else {
40
- return false;
41
- }
42
- };
43
-
44
- _findHeading(state: EditorState): ?Object {
45
- const heading = state.schema.nodes[HEADING];
46
- const fn = heading ? findParentNodeOfType(heading) : noop;
47
- return fn(state.selection);
48
- }
49
- }
50
-
51
- export default HeadingCommand;
@@ -1,41 +0,0 @@
1
- // @flow
2
-
3
- import { EditorState } from 'prosemirror-state';
4
- import { Transform } from 'prosemirror-transform';
5
- import { EditorView } from 'prosemirror-view';
6
-
7
- import { UICommand } from '@modusoperandi/licit-doc-attrs-step';
8
- import updateIndentLevel from './updateIndentLevel';
9
-
10
- class IndentCommand extends UICommand {
11
- _delta: number;
12
-
13
- constructor(delta: number) {
14
- super();
15
- this._delta = delta;
16
- }
17
-
18
- isActive = (state: EditorState): boolean => {
19
- return false;
20
- };
21
-
22
- execute = (
23
- state: EditorState,
24
- dispatch: ?(tr: Transform) => void,
25
- view: ?EditorView
26
- ): boolean => {
27
- const { selection, schema } = state;
28
- let { tr } = state;
29
- tr = tr.setSelection(selection);
30
- const trx = updateIndentLevel(state, tr, schema, this._delta, view);
31
- if (trx.docChanged) {
32
- dispatch && dispatch(trx.tr);
33
- return true;
34
- } else {
35
- return false;
36
- }
37
- };
38
-
39
- }
40
-
41
- export default IndentCommand;
@@ -1,66 +0,0 @@
1
- // @flow
2
-
3
- import { toggleMark } from 'prosemirror-commands';
4
- import { EditorState, TextSelection } from 'prosemirror-state';
5
- import { Transform } from 'prosemirror-transform';
6
- import { EditorView } from 'prosemirror-view';
7
- import findNodesWithSameMark from './findNodesWithSameMark';
8
- import { UICommand } from '@modusoperandi/licit-doc-attrs-step';
9
-
10
- class MarkToggleCommand extends UICommand {
11
- _markName: string;
12
-
13
- constructor(markName: string) {
14
- super();
15
- this._markName = markName;
16
- }
17
-
18
- isActive = (state: EditorState): boolean => {
19
- const { schema, doc, selection } = state;
20
- const { from, to } = selection;
21
- const markType = schema.marks[this._markName];
22
- if (markType && from < to) {
23
- return !!findNodesWithSameMark(doc, from, to - 1, markType);
24
- }
25
- return false;
26
- };
27
-
28
- execute = (
29
- state: EditorState,
30
- dispatch: ?(tr: Transform) => void,
31
- view: ?EditorView
32
- ): boolean => {
33
- const { schema, selection, tr } = state;
34
- const markType = schema.marks[this._markName];
35
- if (!markType) {
36
- return false;
37
- }
38
-
39
- if (selection.empty && !(selection instanceof TextSelection)) {
40
- return false;
41
- }
42
-
43
- const { from, to } = selection;
44
- if (tr && to === from + 1) {
45
- const node = tr.doc.nodeAt(from);
46
- if (node.isAtom && !node.isText && node.isLeaf) {
47
- // An atomic node (e.g. Image) is selected.
48
- return false;
49
- }
50
- }
51
-
52
- // TODO: Replace `toggleMark` with transform that does not change scroll
53
- // position.
54
- return toggleMark(markType)(state, dispatch, view);
55
- };
56
-
57
-
58
-
59
-
60
- }
61
-
62
-
63
-
64
-
65
-
66
- export default MarkToggleCommand;
@@ -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;