@modusoperandi/licit 1.4.2 → 1.4.6

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 (228) hide show
  1. package/BlockquoteInsertNewLineCommand.js.flow +70 -70
  2. package/BlockquoteNodeSpec.js.flow +29 -29
  3. package/BlockquoteToggleCommand.js.flow +56 -56
  4. package/BookmarkNodeSpec.js.flow +39 -39
  5. package/BulletListNodeSpec.js.flow +61 -61
  6. package/CZIProseMirror.js.flow +90 -90
  7. package/CodeBlockCommand.js.flow +65 -65
  8. package/CodeBlockNodeSpec.js.flow +24 -24
  9. package/CodeMarkSpec.js.flow +14 -14
  10. package/ContentPlaceholderPlugin.js.flow +183 -183
  11. package/CursorPlaceholderPlugin.js.flow +113 -113
  12. package/DocLayoutCommand.js.flow +97 -97
  13. package/DocNodeSpec.js.flow +62 -62
  14. package/EMMarkSpec.js.flow +39 -39
  15. package/EditorCommands.js.flow +124 -124
  16. package/EditorKeyMap.js.flow +173 -173
  17. package/EditorMarks.js +4 -2
  18. package/EditorMarks.js.flow +77 -74
  19. package/EditorNodes.js.flow +55 -55
  20. package/EditorPageLayoutPlugin.js.flow +67 -67
  21. package/EditorPlugins.js.flow +8 -8
  22. package/EditorSchema.js.flow +12 -12
  23. package/EditorState.js.flow +7 -7
  24. package/FontSizeMarkSpec.js.flow +54 -54
  25. package/FontTypeMarkSpec.js.flow +89 -89
  26. package/HTMLMutator.js.flow +58 -58
  27. package/HangingIndentMarkSpec.js +34 -0
  28. package/HangingIndentMarkSpec.js.flow +30 -0
  29. package/HardBreakNodeSpec.js.flow +15 -15
  30. package/HeadingNodeSpec.js.flow +42 -42
  31. package/HistoryRedoCommand.js.flow +41 -41
  32. package/HistoryUndoCommand.js.flow +41 -41
  33. package/HorizontalRuleCommand.js.flow +71 -71
  34. package/HorizontalRuleNodeSpec.js.flow +39 -39
  35. package/ImageUploadPlaceholderPlugin.js.flow +187 -187
  36. package/LICENSE +22 -22
  37. package/LinkMarkSpec.js +4 -2
  38. package/LinkMarkSpec.js.flow +38 -37
  39. package/LinkSetURLCommand.js +1 -1
  40. package/LinkSetURLCommand.js.flow +129 -129
  41. package/LinkTooltipPlugin.js +32 -38
  42. package/LinkTooltipPlugin.js.flow +204 -217
  43. package/ListItemInsertNewLineCommand.js.flow +76 -76
  44. package/ListItemMergeCommand.js.flow +197 -197
  45. package/ListItemNodeSpec.js.flow +52 -52
  46. package/ListSplitCommand.js.flow +54 -54
  47. package/ListToggleCommand.js.flow +99 -99
  48. package/MarkNames.js +2 -1
  49. package/MarkNames.js.flow +20 -19
  50. package/MarksClearCommand.js.flow +66 -66
  51. package/NodeNames.js.flow +23 -23
  52. package/OrderedListNodeSpec.js.flow +131 -131
  53. package/OverrideMarkSpec.js.flow +49 -49
  54. package/ParagraphNodeSpec.js +21 -2
  55. package/ParagraphNodeSpec.js.flow +233 -215
  56. package/ParagraphSpacingCommand.js.flow +139 -139
  57. package/PrintCommand.js.flow +53 -53
  58. package/SelectionPlaceholderPlugin.js.flow +129 -129
  59. package/SpacerMarkSpec.js.flow +47 -47
  60. package/StrikeMarkSpec.js.flow +24 -24
  61. package/StrongMarkSpec.js.flow +39 -39
  62. package/StyleView.js.flow +18 -18
  63. package/TableBackgroundColorCommand.js.flow +79 -79
  64. package/TableBorderColorCommand.js +5 -3
  65. package/TableBorderColorCommand.js.flow +108 -106
  66. package/TableCellColorCommand.js.flow +73 -73
  67. package/TableCellMenuPlugin.js.flow +129 -129
  68. package/TableInsertCommand.js.flow +117 -117
  69. package/TableMergeCellsCommand.js.flow +113 -113
  70. package/TableNodesSpecs.js.flow +144 -144
  71. package/TablePlugins.js.flow +14 -14
  72. package/TableResizePlugin.js.flow +636 -636
  73. package/TextColorMarkSpec.js.flow +40 -40
  74. package/TextHighlightMarkSpec.js.flow +47 -47
  75. package/TextInsertTabSpaceCommand.js +0 -3
  76. package/TextInsertTabSpaceCommand.js.flow +103 -106
  77. package/TextNoWrapMarkSpec.js.flow +14 -14
  78. package/TextNodeSpec.js.flow +7 -7
  79. package/TextSelectionMarkSpec.js.flow +24 -24
  80. package/TextSubMarkSpec.js.flow +28 -28
  81. package/TextSuperMarkSpec.js.flow +28 -28
  82. package/TextUnderlineMarkSpec.js.flow +24 -24
  83. package/Types.js.flow +77 -77
  84. package/WebFontLoader.js.flow +22 -22
  85. package/blockQuoteInputRule.js.flow +36 -36
  86. package/bom.xml +8645 -8637
  87. package/browser.js.flow +7 -7
  88. package/buildEditorPlugins.js.flow +48 -48
  89. package/buildInputRules.js.flow +85 -85
  90. package/client/CollabConnector.js.flow +90 -90
  91. package/client/EditorConnection.js.flow +324 -324
  92. package/client/Licit.js +40 -40
  93. package/client/Licit.js.flow +649 -648
  94. package/client/Licit.test.js.flow +104 -104
  95. package/client/Reporter.js.flow +35 -35
  96. package/client/SimpleConnector.js.flow +61 -61
  97. package/client/http.js.flow +60 -60
  98. package/client/licit.css +12 -12
  99. package/client/throttle.js.flow +27 -27
  100. package/convertFromDOMElement.js.flow +33 -33
  101. package/convertFromHTML.js.flow +15 -15
  102. package/convertFromJSON.js.flow +53 -53
  103. package/convertToCSSPTValue.js.flow +19 -19
  104. package/convertToJSON.js.flow +7 -7
  105. package/createCommand.js.flow +62 -62
  106. package/createEditorKeyMap.js.flow +87 -87
  107. package/createEmptyEditorState.js.flow +29 -29
  108. package/createTableResizingPlugin.js.flow +86 -86
  109. package/findActionableCell.js.flow +74 -74
  110. package/findActiveMark.js.flow +32 -32
  111. package/hyphenize.js.flow +17 -17
  112. package/index.d.ts +167 -167
  113. package/index.js.flow +10 -10
  114. package/insertTable.js.flow +54 -54
  115. package/isEditorStateEmpty.js.flow +32 -32
  116. package/isTableNode.js.flow +15 -15
  117. package/joinDown.js.flow +25 -25
  118. package/joinListNode.js.flow +55 -55
  119. package/joinUp.js.flow +37 -37
  120. package/keymaps.js.flow +175 -175
  121. package/lookUpElement.js.flow +14 -14
  122. package/nodeAt.js.flow +12 -12
  123. package/normalizeHTML.js.flow +80 -80
  124. package/package.json +152 -152
  125. package/patchAnchorElements.js.flow +38 -38
  126. package/patchBreakElements.js.flow +22 -22
  127. package/patchElementInlineStyles.js.flow +92 -92
  128. package/patchListElements.js.flow +275 -275
  129. package/patchMathElements.js.flow +58 -58
  130. package/patchParagraphElements.js.flow +20 -20
  131. package/patchStyleElements.js.flow +197 -197
  132. package/patchTableElements.js.flow +88 -88
  133. package/rebaseDocWithSteps.js.flow +42 -42
  134. package/sanitizeURL.js.flow +13 -13
  135. package/splitListItem.js.flow +191 -191
  136. package/styles.css +46 -46
  137. package/toClosestFontPtSize.js.flow +22 -22
  138. package/toSafeHTMLDocument.js.flow +9 -9
  139. package/toggleBlockquote.js.flow +101 -101
  140. package/toggleCodeBlock.js.flow +102 -102
  141. package/ui/AlertInfo.js.flow +63 -63
  142. package/ui/BookmarkNodeView.js.flow +64 -64
  143. package/ui/CommandButton.js.flow +68 -68
  144. package/ui/CommandMenu.js.flow +74 -74
  145. package/ui/CommandMenuButton.js.flow +128 -128
  146. package/ui/CustomEditorView.js.flow +29 -29
  147. package/ui/CustomMenu.js.flow +14 -14
  148. package/ui/CustomMenuItem.js.flow +35 -35
  149. package/ui/CustomNodeView.js.flow +207 -207
  150. package/ui/CustomRadioButton.js.flow +63 -63
  151. package/ui/DocLayoutEditor.js.flow +130 -130
  152. package/ui/Editor.js.flow +281 -281
  153. package/ui/EditorFrameset.js.flow +79 -79
  154. package/ui/EditorToolbar.js.flow +197 -197
  155. package/ui/EditorToolbarConfig.js.flow +162 -162
  156. package/ui/FontSizeCommandMenuButton.js.flow +66 -66
  157. package/ui/FontTypeCommandMenuButton.js.flow +60 -60
  158. package/ui/Frag.js.flow +11 -11
  159. package/ui/Icon.js +1 -1
  160. package/ui/Icon.js.flow +82 -82
  161. package/ui/ImageInlineEditor.js.flow +66 -66
  162. package/ui/KeyCodes.js.flow +12 -12
  163. package/ui/LinkTooltip.js.flow +51 -51
  164. package/ui/LinkURLEditor.js.flow +227 -227
  165. package/ui/ListItemNodeView.js.flow +101 -101
  166. package/ui/ListTypeButton.js.flow +121 -121
  167. package/ui/ListTypeCommandButton.js.flow +85 -85
  168. package/ui/ListTypeMenu.js.flow +78 -78
  169. package/ui/LoadingIndicator.js.flow +19 -19
  170. package/ui/PasteMenu.js.flow +52 -52
  171. package/ui/ResizeObserver.js.flow +105 -105
  172. package/ui/RichTextEditor.js.flow +133 -133
  173. package/ui/SelectionObserver.js.flow +134 -134
  174. package/ui/TableCellMenu.js.flow +49 -49
  175. package/ui/TableGridSizeEditor.js.flow +185 -185
  176. package/ui/TableNodeView.js.flow +36 -36
  177. package/ui/bindScrollHandler.js.flow +46 -46
  178. package/ui/canUseCSSFont.js.flow +42 -42
  179. package/ui/czi-body-layout-editor.css +16 -16
  180. package/ui/czi-bookmark-view.css +10 -10
  181. package/ui/czi-cursor-placeholder.css +36 -36
  182. package/ui/czi-custom-menu-button.css +18 -18
  183. package/ui/czi-custom-menu-item.css +30 -30
  184. package/ui/czi-custom-menu.css +8 -8
  185. package/ui/czi-custom-radio-button.css +80 -80
  186. package/ui/czi-custom-scrollbar.css +21 -21
  187. package/ui/czi-editor-frameset.css +81 -81
  188. package/ui/czi-editor-toolbar.css +122 -122
  189. package/ui/czi-editor.css +239 -216
  190. package/ui/czi-form.css +201 -201
  191. package/ui/czi-frag.css +3 -3
  192. package/ui/czi-heading.css +40 -40
  193. package/ui/czi-icon.css +72 -72
  194. package/ui/czi-image-resize-box.css +165 -165
  195. package/ui/czi-image-upload-editor.css +57 -57
  196. package/ui/czi-image-upload-placeholder.css +50 -50
  197. package/ui/czi-image-url-editor.css +38 -38
  198. package/ui/czi-image-view.css +121 -121
  199. package/ui/czi-indent.css +137 -137
  200. package/ui/czi-inline-editor.css +20 -20
  201. package/ui/czi-link-tooltip.css +112 -112
  202. package/ui/czi-list.css +406 -406
  203. package/ui/czi-loading-indicator.css +66 -66
  204. package/ui/czi-math-view.css +62 -62
  205. package/ui/czi-selection-placeholder.css +24 -24
  206. package/ui/czi-table-cell-menu.css +16 -16
  207. package/ui/czi-table-grid-size-editor.css +37 -37
  208. package/ui/czi-table.css +89 -89
  209. package/ui/czi-vars.css +47 -45
  210. package/ui/findActiveFontSize.js.flow +55 -55
  211. package/ui/findActiveFontType.js.flow +35 -35
  212. package/ui/fonts.css +460 -460
  213. package/ui/handleEditorDrop.js.flow +28 -28
  214. package/ui/handleEditorKeyDown.js.flow +39 -39
  215. package/ui/handleEditorPaste.js.flow +33 -33
  216. package/ui/htmlElementToRect.js.flow +18 -18
  217. package/ui/icon-font.css +9 -9
  218. package/ui/injectStyleSheet.js.flow +40 -40
  219. package/ui/isElementFullyVisible.js.flow +14 -14
  220. package/ui/isOffline.js.flow +8 -8
  221. package/ui/isReactClass.js.flow +12 -12
  222. package/ui/listType.css +21 -21
  223. package/ui/resolveImage.js.flow +121 -121
  224. package/ui/toCSSColor.js.flow +51 -51
  225. package/ui/toCSSLineSpacing.js.flow +53 -53
  226. package/ui/toHexColor.js.flow +26 -26
  227. package/ui/uuid.js.flow +9 -9
  228. package/uuid.js.flow +9 -9
@@ -1,15 +1,15 @@
1
- // @flow
2
-
3
- import { Schema } from 'prosemirror-model';
4
- import { EditorState, Plugin } from 'prosemirror-state';
5
- import convertFromDOMElement from './convertFromDOMElement.js';
6
-
7
- export default function convertFromHTML(
8
- html: string,
9
- schema: Schema,
10
- plugins: Array<Plugin>
11
- ): EditorState {
12
- const root = document.createElement('html');
13
- root.innerHTML = html || ' ';
14
- return convertFromDOMElement(root, schema, plugins);
15
- }
1
+ // @flow
2
+
3
+ import { Schema } from 'prosemirror-model';
4
+ import { EditorState, Plugin } from 'prosemirror-state';
5
+ import convertFromDOMElement from './convertFromDOMElement.js';
6
+
7
+ export default function convertFromHTML(
8
+ html: string,
9
+ schema: Schema,
10
+ plugins: Array<Plugin>
11
+ ): EditorState {
12
+ const root = document.createElement('html');
13
+ root.innerHTML = html || ' ';
14
+ return convertFromDOMElement(root, schema, plugins);
15
+ }
@@ -1,53 +1,53 @@
1
- // @flow
2
-
3
- import { Schema } from 'prosemirror-model';
4
- import { EditorState, Plugin } from 'prosemirror-state';
5
- import createEmptyEditorState from './createEmptyEditorState.js';
6
-
7
- export default function convertFromJSON(
8
- json: Object | string,
9
- schema: ?Schema,
10
- defaultSchema: Schema,
11
- effectivePlugins: Array<Plugin>
12
- ): EditorState {
13
- const editorSchema = schema || defaultSchema;
14
- let error = false;
15
-
16
- if (typeof json === 'string') {
17
- try {
18
- json = JSON.parse(json);
19
- } catch (ex) {
20
- console.error('convertFromJSON:', ex);
21
- error = true;
22
- }
23
- }
24
-
25
- if (!json || typeof json !== 'object') {
26
- console.error('convertFromJSON: invalid object', json);
27
- error = true;
28
- }
29
-
30
- if (error) {
31
- // Use the effectivePlugins, editor hangs, b'coz of missing default core plugins
32
- return createEmptyEditorState(schema, defaultSchema, effectivePlugins);
33
- }
34
-
35
- // Handle gracefully when error thrown on invalid json
36
- let doc = null;
37
-
38
- try {
39
- if (undefined === json.content) {
40
- json.content = [{ type: 'paragraph' }];
41
- }
42
- doc = editorSchema.nodeFromJSON(json);
43
- } catch (error) {
44
- console.error('Failed to convert JSON to valid ProseMirror: ', error);
45
- return null;
46
- }
47
-
48
- return EditorState.create({
49
- doc: doc,
50
- schema: editorSchema,
51
- plugins: effectivePlugins,
52
- });
53
- }
1
+ // @flow
2
+
3
+ import { Schema } from 'prosemirror-model';
4
+ import { EditorState, Plugin } from 'prosemirror-state';
5
+ import createEmptyEditorState from './createEmptyEditorState.js';
6
+
7
+ export default function convertFromJSON(
8
+ json: Object | string,
9
+ schema: ?Schema,
10
+ defaultSchema: Schema,
11
+ effectivePlugins: Array<Plugin>
12
+ ): EditorState {
13
+ const editorSchema = schema || defaultSchema;
14
+ let error = false;
15
+
16
+ if (typeof json === 'string') {
17
+ try {
18
+ json = JSON.parse(json);
19
+ } catch (ex) {
20
+ console.error('convertFromJSON:', ex);
21
+ error = true;
22
+ }
23
+ }
24
+
25
+ if (!json || typeof json !== 'object') {
26
+ console.error('convertFromJSON: invalid object', json);
27
+ error = true;
28
+ }
29
+
30
+ if (error) {
31
+ // Use the effectivePlugins, editor hangs, b'coz of missing default core plugins
32
+ return createEmptyEditorState(schema, defaultSchema, effectivePlugins);
33
+ }
34
+
35
+ // Handle gracefully when error thrown on invalid json
36
+ let doc = null;
37
+
38
+ try {
39
+ if (undefined === json.content) {
40
+ json.content = [{ type: 'paragraph' }];
41
+ }
42
+ doc = editorSchema.nodeFromJSON(json);
43
+ } catch (error) {
44
+ console.error('Failed to convert JSON to valid ProseMirror: ', error);
45
+ return null;
46
+ }
47
+
48
+ return EditorState.create({
49
+ doc: doc,
50
+ schema: editorSchema,
51
+ plugins: effectivePlugins,
52
+ });
53
+ }
@@ -1,19 +1,19 @@
1
- // @flow
2
-
3
- export const PX_TO_PT_RATIO = 0.75292857;
4
- export const PT_TO_PX_RATIO = 1 / PX_TO_PT_RATIO;
5
-
6
- export default function convertToCSSPTValue(styleValue: string): number {
7
- const unit = styleValue.slice(-2).toLowerCase(); // Extract the last two characters for the unit
8
- const value = Number(styleValue.slice(0, -2)); // Extract and convert the number part
9
-
10
- if (!value || (unit !== 'px' && unit !== 'pt')) {
11
- return 0;
12
- }
13
-
14
- if (unit === 'px') {
15
- return PX_TO_PT_RATIO * value;
16
- }
17
-
18
- return value; // If 'pt', return the value unchanged
19
- }
1
+ // @flow
2
+
3
+ export const PX_TO_PT_RATIO = 0.75292857;
4
+ export const PT_TO_PX_RATIO = 1 / PX_TO_PT_RATIO;
5
+
6
+ export default function convertToCSSPTValue(styleValue: string): number {
7
+ const unit = styleValue.slice(-2).toLowerCase(); // Extract the last two characters for the unit
8
+ const value = Number(styleValue.slice(0, -2)); // Extract and convert the number part
9
+
10
+ if (!value || (unit !== 'px' && unit !== 'pt')) {
11
+ return 0;
12
+ }
13
+
14
+ if (unit === 'px') {
15
+ return PX_TO_PT_RATIO * value;
16
+ }
17
+
18
+ return value; // If 'pt', return the value unchanged
19
+ }
@@ -1,7 +1,7 @@
1
- // @flow
2
-
3
- import { EditorState } from 'prosemirror-state';
4
-
5
- export default function convertToJSON(editorState: EditorState): Object {
6
- return editorState.doc.toJSON();
7
- }
1
+ // @flow
2
+
3
+ import { EditorState } from 'prosemirror-state';
4
+
5
+ export default function convertToJSON(editorState: EditorState): Object {
6
+ return editorState.doc.toJSON();
7
+ }
@@ -1,62 +1,62 @@
1
- // @flow
2
-
3
- import { EditorState } from 'prosemirror-state';
4
- import { Transform } from 'prosemirror-transform';
5
- import { EditorView } from 'prosemirror-view';
6
- import * as React from 'react';
7
- import { UICommand } from '@modusoperandi/licit-doc-attrs-step';
8
-
9
- type ExecuteCall = (
10
- state: EditorState,
11
- dispatch?: ?(tr: Transform) => void,
12
- view?: ?EditorView
13
- ) => boolean;
14
-
15
- export default function createCommand(execute: ExecuteCall): UICommand {
16
- class CustomCommand extends UICommand {
17
- isEnabled = (state: EditorState): boolean => {
18
- return this.execute(state);
19
- };
20
-
21
- execute = (
22
- state: EditorState,
23
- dispatch: ?(tr: Transform) => void,
24
- view: ?EditorView
25
- ): boolean => {
26
- const tr = state.tr;
27
- let endTr = tr;
28
- execute(
29
- state,
30
- (nextTr) => {
31
- endTr = nextTr;
32
- dispatch && dispatch(endTr);
33
- },
34
- view
35
- );
36
- return endTr.docChanged || tr !== endTr;
37
- };
38
-
39
- waitForUserInput = (
40
- _state: EditorState,
41
- _dispatch: ?(tr: Transform) => void,
42
- _view: ?EditorView,
43
- _event: ?React.SyntheticEvent
44
- ): Promise<undefined> => {
45
- return Promise.resolve(undefined);
46
- };
47
-
48
- executeWithUserInput = (
49
- _state: EditorState,
50
- _dispatch: ?(tr: Transform) => void,
51
- _view: ?EditorView,
52
- _inputs: ?string
53
- ): boolean => {
54
- return false;
55
- };
56
-
57
- cancel(): void {
58
- return null;
59
- }
60
- }
61
- return new CustomCommand();
62
- }
1
+ // @flow
2
+
3
+ import { EditorState } from 'prosemirror-state';
4
+ import { Transform } from 'prosemirror-transform';
5
+ import { EditorView } from 'prosemirror-view';
6
+ import * as React from 'react';
7
+ import { UICommand } from '@modusoperandi/licit-doc-attrs-step';
8
+
9
+ type ExecuteCall = (
10
+ state: EditorState,
11
+ dispatch?: ?(tr: Transform) => void,
12
+ view?: ?EditorView
13
+ ) => boolean;
14
+
15
+ export default function createCommand(execute: ExecuteCall): UICommand {
16
+ class CustomCommand extends UICommand {
17
+ isEnabled = (state: EditorState): boolean => {
18
+ return this.execute(state);
19
+ };
20
+
21
+ execute = (
22
+ state: EditorState,
23
+ dispatch: ?(tr: Transform) => void,
24
+ view: ?EditorView
25
+ ): boolean => {
26
+ const tr = state.tr;
27
+ let endTr = tr;
28
+ execute(
29
+ state,
30
+ (nextTr) => {
31
+ endTr = nextTr;
32
+ dispatch && dispatch(endTr);
33
+ },
34
+ view
35
+ );
36
+ return endTr.docChanged || tr !== endTr;
37
+ };
38
+
39
+ waitForUserInput = (
40
+ _state: EditorState,
41
+ _dispatch: ?(tr: Transform) => void,
42
+ _view: ?EditorView,
43
+ _event: ?React.SyntheticEvent
44
+ ): Promise<undefined> => {
45
+ return Promise.resolve(undefined);
46
+ };
47
+
48
+ executeWithUserInput = (
49
+ _state: EditorState,
50
+ _dispatch: ?(tr: Transform) => void,
51
+ _view: ?EditorView,
52
+ _inputs: ?string
53
+ ): boolean => {
54
+ return false;
55
+ };
56
+
57
+ cancel(): void {
58
+ return null;
59
+ }
60
+ }
61
+ return new CustomCommand();
62
+ }
@@ -1,87 +1,87 @@
1
- // @flow
2
-
3
- import { EditorState } from 'prosemirror-state';
4
- import { Transform } from 'prosemirror-transform';
5
- import { EditorView } from 'prosemirror-view';
6
-
7
- import * as EditorCommands from './EditorCommands.js';
8
- import * as EditorKeyMap from './EditorKeyMap.js';
9
- import { UICommand } from '@modusoperandi/licit-doc-attrs-step';
10
- import type {
11
- UserKeyCommand,
12
- UserKeyMap,
13
- } from '@modusoperandi/licit-doc-attrs-step';
14
-
15
- const {
16
- KEY_BACK_DELETE,
17
- KEY_FORWARD_DELETE,
18
- KEY_INSERT_NEW_LINE_IN_BLOCKQUOTE,
19
- KEY_REDO,
20
- KEY_SPLIT_LIST_ITEM,
21
- KEY_TAB_SHIFT,
22
- KEY_TAB,
23
- KEY_TOGGLE_BOLD,
24
- KEY_TOGGLE_ITALIC,
25
- KEY_TOGGLE_UNDERLINE,
26
- KEY_UNDO,
27
- } = EditorKeyMap;
28
-
29
- const {
30
- BLOCKQUOTE_INSERT_NEW_LINE,
31
- EM,
32
- HISTORY_REDO,
33
- HISTORY_UNDO,
34
- INDENT_LESS,
35
- INDENT_MORE,
36
- LIST_ITEM_MERGE_DOWN,
37
- LIST_ITEM_MERGE_UP,
38
- LIST_SPLIT,
39
- TABLE_MOVE_TO_NEXT_CELL,
40
- TABLE_MOVE_TO_PREV_CELL,
41
- TEXT_INSERT_TAB_SPACE,
42
- STRONG,
43
- UNDERLINE,
44
- } = EditorCommands;
45
-
46
- function bindCommands(...commands: Array<UICommand>): UserKeyCommand {
47
- return function (
48
- state: EditorState,
49
- dispatch: ?(tr: Transform) => void,
50
- view: ?EditorView
51
- ): boolean {
52
- return commands.some((cmd) => {
53
- if (cmd.isEnabled(state, view, '')) {
54
- cmd.execute(state, dispatch, view);
55
- return true;
56
- }
57
- return false;
58
- });
59
- };
60
- }
61
-
62
- export default function createEditorKeyMap(): UserKeyMap {
63
- const result = {
64
- [KEY_BACK_DELETE.common]: LIST_ITEM_MERGE_UP.execute,
65
- [KEY_FORWARD_DELETE.common]: LIST_ITEM_MERGE_DOWN.execute,
66
- [KEY_REDO.common]: HISTORY_REDO.execute,
67
- [KEY_SPLIT_LIST_ITEM.common]: LIST_SPLIT.execute,
68
- [KEY_TAB.common]: bindCommands(
69
- TABLE_MOVE_TO_NEXT_CELL,
70
- TEXT_INSERT_TAB_SPACE,
71
- INDENT_MORE
72
- ),
73
- [KEY_TAB_SHIFT.common]: bindCommands(
74
- TABLE_MOVE_TO_PREV_CELL,
75
- TEXT_INSERT_TAB_SPACE,
76
- INDENT_LESS
77
- ),
78
- [KEY_TOGGLE_BOLD.common]: STRONG.execute,
79
- [KEY_TOGGLE_ITALIC.common]: EM.execute,
80
- [KEY_TOGGLE_UNDERLINE.common]: UNDERLINE.execute,
81
- [KEY_UNDO.common]: HISTORY_UNDO.execute,
82
- [KEY_INSERT_NEW_LINE_IN_BLOCKQUOTE.common]:
83
- BLOCKQUOTE_INSERT_NEW_LINE.execute,
84
- };
85
-
86
- return result;
87
- }
1
+ // @flow
2
+
3
+ import { EditorState } from 'prosemirror-state';
4
+ import { Transform } from 'prosemirror-transform';
5
+ import { EditorView } from 'prosemirror-view';
6
+
7
+ import * as EditorCommands from './EditorCommands.js';
8
+ import * as EditorKeyMap from './EditorKeyMap.js';
9
+ import { UICommand } from '@modusoperandi/licit-doc-attrs-step';
10
+ import type {
11
+ UserKeyCommand,
12
+ UserKeyMap,
13
+ } from '@modusoperandi/licit-doc-attrs-step';
14
+
15
+ const {
16
+ KEY_BACK_DELETE,
17
+ KEY_FORWARD_DELETE,
18
+ KEY_INSERT_NEW_LINE_IN_BLOCKQUOTE,
19
+ KEY_REDO,
20
+ KEY_SPLIT_LIST_ITEM,
21
+ KEY_TAB_SHIFT,
22
+ KEY_TAB,
23
+ KEY_TOGGLE_BOLD,
24
+ KEY_TOGGLE_ITALIC,
25
+ KEY_TOGGLE_UNDERLINE,
26
+ KEY_UNDO,
27
+ } = EditorKeyMap;
28
+
29
+ const {
30
+ BLOCKQUOTE_INSERT_NEW_LINE,
31
+ EM,
32
+ HISTORY_REDO,
33
+ HISTORY_UNDO,
34
+ INDENT_LESS,
35
+ INDENT_MORE,
36
+ LIST_ITEM_MERGE_DOWN,
37
+ LIST_ITEM_MERGE_UP,
38
+ LIST_SPLIT,
39
+ TABLE_MOVE_TO_NEXT_CELL,
40
+ TABLE_MOVE_TO_PREV_CELL,
41
+ TEXT_INSERT_TAB_SPACE,
42
+ STRONG,
43
+ UNDERLINE,
44
+ } = EditorCommands;
45
+
46
+ function bindCommands(...commands: Array<UICommand>): UserKeyCommand {
47
+ return function (
48
+ state: EditorState,
49
+ dispatch: ?(tr: Transform) => void,
50
+ view: ?EditorView
51
+ ): boolean {
52
+ return commands.some((cmd) => {
53
+ if (cmd.isEnabled(state, view, '')) {
54
+ cmd.execute(state, dispatch, view);
55
+ return true;
56
+ }
57
+ return false;
58
+ });
59
+ };
60
+ }
61
+
62
+ export default function createEditorKeyMap(): UserKeyMap {
63
+ const result = {
64
+ [KEY_BACK_DELETE.common]: LIST_ITEM_MERGE_UP.execute,
65
+ [KEY_FORWARD_DELETE.common]: LIST_ITEM_MERGE_DOWN.execute,
66
+ [KEY_REDO.common]: HISTORY_REDO.execute,
67
+ [KEY_SPLIT_LIST_ITEM.common]: LIST_SPLIT.execute,
68
+ [KEY_TAB.common]: bindCommands(
69
+ TABLE_MOVE_TO_NEXT_CELL,
70
+ TEXT_INSERT_TAB_SPACE,
71
+ INDENT_MORE
72
+ ),
73
+ [KEY_TAB_SHIFT.common]: bindCommands(
74
+ TABLE_MOVE_TO_PREV_CELL,
75
+ TEXT_INSERT_TAB_SPACE,
76
+ INDENT_LESS
77
+ ),
78
+ [KEY_TOGGLE_BOLD.common]: STRONG.execute,
79
+ [KEY_TOGGLE_ITALIC.common]: EM.execute,
80
+ [KEY_TOGGLE_UNDERLINE.common]: UNDERLINE.execute,
81
+ [KEY_UNDO.common]: HISTORY_UNDO.execute,
82
+ [KEY_INSERT_NEW_LINE_IN_BLOCKQUOTE.common]:
83
+ BLOCKQUOTE_INSERT_NEW_LINE.execute,
84
+ };
85
+
86
+ return result;
87
+ }
@@ -1,29 +1,29 @@
1
- // @flow
2
-
3
- import { Schema } from 'prosemirror-model';
4
- import { EditorState, Plugin } from 'prosemirror-state';
5
- import convertFromJSON from './convertFromJSON.js';
6
- import EditorSchema from './EditorSchema.js';
7
-
8
- export const EMPTY_DOC_JSON = {
9
- type: 'doc',
10
- content: [
11
- {
12
- type: 'paragraph',
13
- }, // [FS] IRAD-1710 2022-03-04 - No text content needed
14
- ],
15
- };
16
-
17
- export default function createEmptyEditorState(
18
- schema: ?Schema,
19
- defaultSchema: ?Schema,
20
- plugins: Array<Plugin>
21
- ): EditorState {
22
- // TODO: Check if schema support doc and paragraph nodes.
23
- return convertFromJSON(
24
- EMPTY_DOC_JSON,
25
- schema,
26
- defaultSchema || EditorSchema,
27
- plugins
28
- );
29
- }
1
+ // @flow
2
+
3
+ import { Schema } from 'prosemirror-model';
4
+ import { EditorState, Plugin } from 'prosemirror-state';
5
+ import convertFromJSON from './convertFromJSON.js';
6
+ import EditorSchema from './EditorSchema.js';
7
+
8
+ export const EMPTY_DOC_JSON = {
9
+ type: 'doc',
10
+ content: [
11
+ {
12
+ type: 'paragraph',
13
+ }, // [FS] IRAD-1710 2022-03-04 - No text content needed
14
+ ],
15
+ };
16
+
17
+ export default function createEmptyEditorState(
18
+ schema: ?Schema,
19
+ defaultSchema: ?Schema,
20
+ plugins: Array<Plugin>
21
+ ): EditorState {
22
+ // TODO: Check if schema support doc and paragraph nodes.
23
+ return convertFromJSON(
24
+ EMPTY_DOC_JSON,
25
+ schema,
26
+ defaultSchema || EditorSchema,
27
+ plugins
28
+ );
29
+ }