@modusoperandi/licit 1.0.3 → 1.0.5
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.
- package/BlockquoteInsertNewLineCommand.js +7 -8
- package/BlockquoteInsertNewLineCommand.js.flow +77 -77
- package/BlockquoteNodeSpec.js +1 -1
- package/BlockquoteNodeSpec.js.flow +30 -30
- package/BlockquoteToggleCommand.js +8 -9
- package/BlockquoteToggleCommand.js.flow +56 -56
- package/BookmarkNodeSpec.js +1 -1
- package/BookmarkNodeSpec.js.flow +39 -39
- package/BulletListNodeSpec.js.flow +61 -61
- package/CZIProseMirror.js.flow +90 -90
- package/CodeBlockCommand.js +8 -9
- package/CodeBlockCommand.js.flow +65 -65
- package/CodeBlockNodeSpec.js.flow +24 -24
- package/CodeMarkSpec.js.flow +14 -14
- package/ContentPlaceholderPlugin.js +3 -4
- package/ContentPlaceholderPlugin.js.flow +187 -187
- package/CursorPlaceholderPlugin.js +4 -4
- package/CursorPlaceholderPlugin.js.flow +115 -115
- package/DocLayoutCommand.js +9 -10
- package/DocLayoutCommand.js.flow +99 -99
- package/DocNodeSpec.js.flow +64 -64
- package/EMMarkSpec.js.flow +14 -14
- package/EditorCommands.js.flow +126 -126
- package/EditorKeyMap.js.flow +187 -187
- package/EditorMarks.js +1 -1
- package/EditorMarks.js.flow +71 -71
- package/EditorNodes.js +1 -1
- package/EditorNodes.js.flow +59 -59
- package/EditorPageLayoutPlugin.js +2 -2
- package/EditorPageLayoutPlugin.js.flow +67 -67
- package/EditorPlugins.js.flow +8 -8
- package/EditorSchema.js.flow +12 -12
- package/EditorState.js.flow +7 -7
- package/FontSizeMarkSpec.js.flow +49 -49
- package/FontTypeMarkSpec.js.flow +80 -80
- package/HTMLMutator.js +2 -3
- package/HTMLMutator.js.flow +59 -59
- package/HardBreakNodeSpec.js.flow +15 -15
- package/HeadingNodeSpec.js +1 -1
- package/HeadingNodeSpec.js.flow +52 -52
- package/HistoryRedoCommand.js +7 -8
- package/HistoryRedoCommand.js.flow +41 -41
- package/HistoryUndoCommand.js +7 -8
- package/HistoryUndoCommand.js.flow +41 -41
- package/HorizontalRuleCommand.js +7 -8
- package/HorizontalRuleCommand.js.flow +71 -71
- package/HorizontalRuleNodeSpec.js.flow +39 -39
- package/ImageUploadPlaceholderPlugin.js +2 -2
- package/ImageUploadPlaceholderPlugin.js.flow +192 -192
- package/LinkMarkSpec.js.flow +32 -32
- package/LinkSetURLCommand.js +8 -9
- package/LinkSetURLCommand.js.flow +117 -117
- package/LinkTooltipPlugin.js +3 -4
- package/LinkTooltipPlugin.js.flow +190 -190
- package/ListItemInsertNewLineCommand.js +7 -8
- package/ListItemInsertNewLineCommand.js.flow +77 -77
- package/ListItemMergeCommand.js +9 -10
- package/ListItemMergeCommand.js.flow +199 -199
- package/ListItemNodeSpec.js.flow +52 -52
- package/ListSplitCommand.js +7 -8
- package/ListSplitCommand.js.flow +54 -54
- package/ListToggleCommand.js +11 -12
- package/ListToggleCommand.js.flow +99 -99
- package/MarkNames.js.flow +18 -18
- package/MarksClearCommand.js +9 -10
- package/MarksClearCommand.js.flow +65 -65
- package/MathEditCommand.js +8 -9
- package/MathEditCommand.js.flow +120 -120
- package/MathNodeSpec.js.flow +46 -46
- package/NodeNames.js.flow +23 -23
- package/OrderedListNodeSpec.js +1 -1
- package/OrderedListNodeSpec.js.flow +132 -132
- package/ParagraphNodeSpec.js.flow +156 -156
- package/ParagraphSpacingCommand.js +9 -10
- package/ParagraphSpacingCommand.js.flow +144 -144
- package/PrintCommand.js +9 -10
- package/PrintCommand.js.flow +53 -53
- package/SelectionPlaceholderPlugin.js +4 -4
- package/SelectionPlaceholderPlugin.js.flow +131 -131
- package/SpacerMarkSpec.js +1 -1
- package/SpacerMarkSpec.js.flow +47 -47
- package/StrikeMarkSpec.js.flow +21 -21
- package/StrongMarkSpec.js.flow +25 -25
- package/StyleView.js +2 -3
- package/StyleView.js.flow +19 -19
- package/TableBackgroundColorCommand.js +25 -12
- package/TableBackgroundColorCommand.js.flow +83 -75
- package/TableBorderColorCommand.js +25 -12
- package/TableBorderColorCommand.js.flow +86 -75
- package/TableCellColorCommand.js +11 -11
- package/TableCellColorCommand.js.flow +75 -75
- package/TableCellMenuPlugin.js +3 -4
- package/TableCellMenuPlugin.js.flow +132 -132
- package/TableInsertCommand.js +9 -10
- package/TableInsertCommand.js.flow +120 -120
- package/TableMergeCellsCommand.js +7 -8
- package/TableMergeCellsCommand.js.flow +112 -112
- package/TableNodesSpecs.js.flow +78 -78
- package/TablePlugins.js.flow +14 -14
- package/TableResizePlugin.js +6 -6
- package/TableResizePlugin.js.flow +631 -632
- package/TextColorMarkSpec.js.flow +35 -35
- package/TextHighlightMarkSpec.js.flow +38 -38
- package/TextInsertTabSpaceCommand.js +7 -8
- package/TextInsertTabSpaceCommand.js.flow +106 -106
- package/TextNoWrapMarkSpec.js.flow +14 -14
- package/TextNodeSpec.js.flow +7 -7
- package/TextSelectionMarkSpec.js.flow +24 -24
- package/TextSubMarkSpec.js.flow +20 -20
- package/TextSuperMarkSpec.js.flow +20 -20
- package/TextUnderlineMarkSpec.js.flow +27 -27
- package/Types.js +5 -0
- package/Types.js.flow +80 -75
- package/WebFontLoader.js +2 -3
- package/WebFontLoader.js.flow +22 -22
- package/blockQuoteInputRule.js.flow +36 -36
- package/bom.xml +8533 -8895
- package/browser.js.flow +7 -7
- package/buildEditorPlugins.js +2 -3
- package/buildEditorPlugins.js.flow +49 -49
- package/buildInputRules.js.flow +81 -81
- package/client/CollabConnector.js +12 -12
- package/client/CollabConnector.js.flow +90 -90
- package/client/EditorConnection.js +2 -3
- package/client/EditorConnection.js.flow +323 -323
- package/client/Licit.js +59 -60
- package/client/Licit.js.flow +643 -643
- package/client/Licit.test.js +2 -2
- package/client/Licit.test.js.flow +98 -98
- package/client/Reporter.js +2 -3
- package/client/Reporter.js.flow +37 -37
- package/client/SimpleConnector.js +1 -1
- package/client/SimpleConnector.js.flow +61 -61
- package/client/http.js.flow +70 -70
- package/client/licit.css +12 -12
- package/client/throttle.js.flow +27 -27
- package/convertFromDOMElement.js.flow +36 -36
- package/convertFromHTML.js.flow +17 -17
- package/convertFromJSON.js.flow +56 -56
- package/convertToCSSPTValue.js.flow +22 -22
- package/convertToJSON.js.flow +7 -7
- package/createCommand.js +8 -9
- package/createCommand.js.flow +62 -62
- package/createEditorKeyMap.js +1 -1
- package/createEditorKeyMap.js.flow +94 -94
- package/createEmptyEditorState.js.flow +31 -31
- package/createTableResizingPlugin.js.flow +86 -86
- package/findActionableCell.js.flow +74 -74
- package/findActiveMark.js.flow +32 -32
- package/hyphenize.js.flow +17 -17
- package/index.d.ts +165 -165
- package/index.js.flow +10 -10
- package/insertTable.js.flow +56 -56
- package/isEditorStateEmpty.js.flow +32 -32
- package/isTableNode.js.flow +15 -15
- package/joinDown.js.flow +27 -27
- package/joinListNode.js.flow +55 -55
- package/joinUp.js.flow +39 -39
- package/keymaps.js.flow +185 -185
- package/lookUpElement.js.flow +14 -14
- package/nodeAt.js.flow +12 -12
- package/normalizeHTML.js.flow +78 -78
- package/package.json +156 -155
- package/patchAnchorElements.js.flow +38 -38
- package/patchBreakElements.js.flow +22 -22
- package/patchElementInlineStyles.js.flow +92 -92
- package/patchListElements.js.flow +276 -276
- package/patchMathElements.js.flow +60 -60
- package/patchParagraphElements.js.flow +20 -20
- package/patchStyleElements.js.flow +196 -196
- package/patchTableElements.js.flow +89 -89
- package/rebaseDocWithSteps.js.flow +42 -42
- package/sanitizeURL.js.flow +13 -13
- package/splitListItem.js +1 -1
- package/splitListItem.js.flow +191 -191
- package/styles.css +19 -19
- package/styles0.css +29 -29
- package/toClosestFontPtSize.js.flow +22 -22
- package/toSafeHTMLDocument.js.flow +9 -9
- package/toggleBlockquote.js.flow +108 -108
- package/toggleCodeBlock.js.flow +102 -102
- package/ui/AlertInfo.js +7 -8
- package/ui/AlertInfo.js.flow +64 -64
- package/ui/BookmarkNodeView.js +8 -10
- package/ui/BookmarkNodeView.js.flow +66 -66
- package/ui/CommandButton.js +7 -8
- package/ui/CommandButton.js.flow +68 -68
- package/ui/CommandMenu.js +8 -9
- package/ui/CommandMenu.js.flow +75 -75
- package/ui/CommandMenuButton.js +13 -14
- package/ui/CommandMenuButton.js.flow +131 -131
- package/ui/CustomEditorView.js +8 -9
- package/ui/CustomEditorView.js.flow +28 -28
- package/ui/CustomMenu.js +3 -4
- package/ui/CustomMenu.js.flow +17 -17
- package/ui/CustomMenuItem.js +6 -8
- package/ui/CustomMenuItem.js.flow +36 -36
- package/ui/CustomNodeView.js +2 -3
- package/ui/CustomNodeView.js.flow +200 -200
- package/ui/CustomRadioButton.js +6 -7
- package/ui/CustomRadioButton.js.flow +65 -65
- package/ui/DocLayoutEditor.js +9 -10
- package/ui/DocLayoutEditor.js.flow +146 -146
- package/ui/Editor.js +15 -16
- package/ui/Editor.js.flow +288 -288
- package/ui/EditorFrameset.js +5 -6
- package/ui/EditorFrameset.js.flow +81 -81
- package/ui/EditorToolbar.js +13 -14
- package/ui/EditorToolbar.js.flow +218 -218
- package/ui/EditorToolbarConfig.js.flow +164 -164
- package/ui/FontSizeCommandMenuButton.js +5 -6
- package/ui/FontSizeCommandMenuButton.js.flow +66 -66
- package/ui/FontTypeCommandMenuButton.js +5 -6
- package/ui/FontTypeCommandMenuButton.js.flow +61 -61
- package/ui/Frag.js +3 -4
- package/ui/Frag.js.flow +13 -13
- package/ui/Icon.js +9 -12
- package/ui/Icon.js.flow +89 -89
- package/ui/ImageInlineEditor.js +6 -7
- package/ui/ImageInlineEditor.js.flow +67 -67
- package/ui/KeyCodes.js.flow +12 -12
- package/ui/LinkTooltip.js +9 -10
- package/ui/LinkTooltip.js.flow +85 -85
- package/ui/LinkURLEditor.js +9 -10
- package/ui/LinkURLEditor.js.flow +117 -117
- package/ui/ListItemNodeView.js +2 -3
- package/ui/ListItemNodeView.js.flow +98 -98
- package/ui/ListTypeButton.js +13 -14
- package/ui/ListTypeButton.js.flow +131 -131
- package/ui/ListTypeCommandButton.js +5 -6
- package/ui/ListTypeCommandButton.js.flow +85 -85
- package/ui/ListTypeMenu.js +11 -12
- package/ui/ListTypeMenu.js.flow +70 -70
- package/ui/LoadingIndicator.js +3 -4
- package/ui/LoadingIndicator.js.flow +20 -20
- package/ui/MathEditor.js +10 -11
- package/ui/MathEditor.js.flow +78 -78
- package/ui/MathInlineEditor.js +8 -9
- package/ui/MathInlineEditor.js.flow +102 -102
- package/ui/MathNodeView.js +14 -16
- package/ui/MathNodeView.js.flow +186 -186
- package/ui/PasteMenu.js +10 -11
- package/ui/PasteMenu.js.flow +57 -57
- package/ui/ResizeObserver.js.flow +106 -106
- package/ui/RichTextEditor.js +9 -10
- package/ui/RichTextEditor.js.flow +133 -133
- package/ui/SelectionObserver.js +2 -3
- package/ui/SelectionObserver.js.flow +134 -134
- package/ui/TableCellMenu.js +6 -7
- package/ui/TableCellMenu.js.flow +51 -51
- package/ui/TableGridSizeEditor.js +19 -21
- package/ui/TableGridSizeEditor.js.flow +184 -184
- package/ui/TableNodeView.js +3 -4
- package/ui/TableNodeView.js.flow +25 -25
- package/ui/bindScrollHandler.js.flow +46 -46
- package/ui/canUseCSSFont.js.flow +43 -43
- package/ui/czi-body-layout-editor.css +16 -16
- package/ui/czi-bookmark-view.css +10 -10
- package/ui/czi-cursor-placeholder.css +36 -36
- package/ui/czi-custom-menu-button.css +18 -18
- package/ui/czi-custom-menu-item.css +30 -30
- package/ui/czi-custom-menu.css +8 -8
- package/ui/czi-custom-radio-button.css +80 -80
- package/ui/czi-custom-scrollbar.css +21 -21
- package/ui/czi-editor-frameset.css +81 -81
- package/ui/czi-editor-toolbar.css +122 -122
- package/ui/czi-editor.css +220 -220
- package/ui/czi-form.css +107 -107
- package/ui/czi-frag.css +3 -3
- package/ui/czi-heading.css +40 -40
- package/ui/czi-icon.css +72 -72
- package/ui/czi-image-resize-box.css +165 -165
- package/ui/czi-image-upload-editor.css +57 -57
- package/ui/czi-image-upload-placeholder.css +50 -50
- package/ui/czi-image-url-editor.css +38 -38
- package/ui/czi-image-view.css +125 -125
- package/ui/czi-indent.css +137 -137
- package/ui/czi-inline-editor.css +20 -20
- package/ui/czi-link-tooltip.css +71 -71
- package/ui/czi-list.css +410 -410
- package/ui/czi-loading-indicator.css +111 -111
- package/ui/czi-math-view.css +62 -62
- package/ui/czi-selection-placeholder.css +24 -24
- package/ui/czi-table-cell-menu.css +14 -14
- package/ui/czi-table-grid-size-editor.css +37 -37
- package/ui/czi-table.css +87 -87
- package/ui/czi-vars.css +2 -2
- package/ui/findActiveFontSize.js.flow +58 -58
- package/ui/findActiveFontType.js.flow +38 -38
- package/ui/fonts.css +460 -460
- package/ui/handleEditorDrop.js.flow +28 -28
- package/ui/handleEditorKeyDown.js.flow +39 -39
- package/ui/handleEditorPaste.js.flow +33 -33
- package/ui/htmlElementToRect.js.flow +18 -18
- package/ui/icon-font.css +9 -9
- package/ui/injectStyleSheet.js.flow +42 -42
- package/ui/isElementFullyVisible.js.flow +26 -26
- package/ui/isOffline.js.flow +8 -8
- package/ui/isReactClass.js.flow +12 -12
- package/ui/listType.css +21 -21
- package/ui/mathquill-editor/MathQuillEditor.js +15 -17
- package/ui/mathquill-editor/MathQuillEditor.js.flow +159 -159
- package/ui/mathquill-editor/MathQuillEditorSymbols.js.flow +483 -483
- package/ui/mathquill-editor/MathQuillEditorSymbolsPanel.js +6 -7
- package/ui/mathquill-editor/MathQuillEditorSymbolsPanel.js.flow +50 -50
- package/ui/mathquill-editor/czi-mathquill-editor-symbols-panel.css +39 -39
- package/ui/mathquill-editor/czi-mathquill-editor.css +50 -50
- package/ui/mathquill-editor/mathquill-import-kludge.js.flow +24 -24
- package/ui/renderLaTeXAsHTML.js +1 -1
- package/ui/renderLaTeXAsHTML.js.flow +46 -46
- package/ui/resolveImage.js +1 -1
- package/ui/resolveImage.js.flow +123 -123
- package/ui/toCSSColor.js.flow +51 -51
- package/ui/toCSSLineSpacing.js.flow +55 -55
- package/ui/toHexColor.js.flow +26 -26
- package/ui/uuid.js.flow +9 -9
- package/uuid.js.flow +9 -9
|
@@ -1,36 +1,36 @@
|
|
|
1
|
-
// @flow
|
|
2
|
-
|
|
3
|
-
import { Schema } from 'prosemirror-model';
|
|
4
|
-
import { DOMParser } from 'prosemirror-model';
|
|
5
|
-
import { EditorState } from 'prosemirror-state';
|
|
6
|
-
import { Plugin } from 'prosemirror-state';
|
|
7
|
-
|
|
8
|
-
import { getAttrs } from './DocNodeSpec.js';
|
|
9
|
-
import EditorPlugins from './EditorPlugins.js';
|
|
10
|
-
import EditorSchema from './EditorSchema.js';
|
|
11
|
-
|
|
12
|
-
export default function convertFromDOMElement(
|
|
13
|
-
el: HTMLElement,
|
|
14
|
-
schema: Schema,
|
|
15
|
-
plugins: Array<Plugin>
|
|
16
|
-
): EditorState {
|
|
17
|
-
const effectiveSchema = schema || EditorSchema;
|
|
18
|
-
const effectivePlugins = plugins || EditorPlugins;
|
|
19
|
-
const bodyEl = el.querySelector('body');
|
|
20
|
-
|
|
21
|
-
// https://prosemirror.net/docs/ref/#model.ParseOptions.preserveWhitespace
|
|
22
|
-
const doc = DOMParser.fromSchema(effectiveSchema).parse(el, {
|
|
23
|
-
preserveWhitespace: true,
|
|
24
|
-
});
|
|
25
|
-
|
|
26
|
-
if (bodyEl) {
|
|
27
|
-
// Unfortunately the root node `doc` does not supoort `parseDOM`, thus
|
|
28
|
-
// we'd have to assign its `attrs` manually.
|
|
29
|
-
doc.attrs = getAttrs(bodyEl);
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
return EditorState.create({
|
|
33
|
-
doc,
|
|
34
|
-
plugins: effectivePlugins,
|
|
35
|
-
});
|
|
36
|
-
}
|
|
1
|
+
// @flow
|
|
2
|
+
|
|
3
|
+
import { Schema } from 'prosemirror-model';
|
|
4
|
+
import { DOMParser } from 'prosemirror-model';
|
|
5
|
+
import { EditorState } from 'prosemirror-state';
|
|
6
|
+
import { Plugin } from 'prosemirror-state';
|
|
7
|
+
|
|
8
|
+
import { getAttrs } from './DocNodeSpec.js';
|
|
9
|
+
import EditorPlugins from './EditorPlugins.js';
|
|
10
|
+
import EditorSchema from './EditorSchema.js';
|
|
11
|
+
|
|
12
|
+
export default function convertFromDOMElement(
|
|
13
|
+
el: HTMLElement,
|
|
14
|
+
schema: Schema,
|
|
15
|
+
plugins: Array<Plugin>
|
|
16
|
+
): EditorState {
|
|
17
|
+
const effectiveSchema = schema || EditorSchema;
|
|
18
|
+
const effectivePlugins = plugins || EditorPlugins;
|
|
19
|
+
const bodyEl = el.querySelector('body');
|
|
20
|
+
|
|
21
|
+
// https://prosemirror.net/docs/ref/#model.ParseOptions.preserveWhitespace
|
|
22
|
+
const doc = DOMParser.fromSchema(effectiveSchema).parse(el, {
|
|
23
|
+
preserveWhitespace: true,
|
|
24
|
+
});
|
|
25
|
+
|
|
26
|
+
if (bodyEl) {
|
|
27
|
+
// Unfortunately the root node `doc` does not supoort `parseDOM`, thus
|
|
28
|
+
// we'd have to assign its `attrs` manually.
|
|
29
|
+
doc.attrs = getAttrs(bodyEl);
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
return EditorState.create({
|
|
33
|
+
doc,
|
|
34
|
+
plugins: effectivePlugins,
|
|
35
|
+
});
|
|
36
|
+
}
|
package/convertFromHTML.js.flow
CHANGED
|
@@ -1,17 +1,17 @@
|
|
|
1
|
-
// @flow
|
|
2
|
-
|
|
3
|
-
import { Schema } from 'prosemirror-model';
|
|
4
|
-
import { EditorState } from 'prosemirror-state';
|
|
5
|
-
import { Plugin } from 'prosemirror-state';
|
|
6
|
-
|
|
7
|
-
import convertFromDOMElement from './convertFromDOMElement.js';
|
|
8
|
-
|
|
9
|
-
export default function convertFromHTML(
|
|
10
|
-
html: string,
|
|
11
|
-
schema: Schema,
|
|
12
|
-
plugins: Array<Plugin>
|
|
13
|
-
): EditorState {
|
|
14
|
-
const root = document.createElement('html');
|
|
15
|
-
root.innerHTML = html ? html : ' ';
|
|
16
|
-
return convertFromDOMElement(root, schema, plugins);
|
|
17
|
-
}
|
|
1
|
+
// @flow
|
|
2
|
+
|
|
3
|
+
import { Schema } from 'prosemirror-model';
|
|
4
|
+
import { EditorState } from 'prosemirror-state';
|
|
5
|
+
import { Plugin } from 'prosemirror-state';
|
|
6
|
+
|
|
7
|
+
import convertFromDOMElement from './convertFromDOMElement.js';
|
|
8
|
+
|
|
9
|
+
export default function convertFromHTML(
|
|
10
|
+
html: string,
|
|
11
|
+
schema: Schema,
|
|
12
|
+
plugins: Array<Plugin>
|
|
13
|
+
): EditorState {
|
|
14
|
+
const root = document.createElement('html');
|
|
15
|
+
root.innerHTML = html ? html : ' ';
|
|
16
|
+
return convertFromDOMElement(root, schema, plugins);
|
|
17
|
+
}
|
package/convertFromJSON.js.flow
CHANGED
|
@@ -1,56 +1,56 @@
|
|
|
1
|
-
// @flow
|
|
2
|
-
|
|
3
|
-
import { Schema } from 'prosemirror-model';
|
|
4
|
-
import { EditorState } from 'prosemirror-state';
|
|
5
|
-
import { Plugin } from 'prosemirror-state';
|
|
6
|
-
import createEmptyEditorState from './createEmptyEditorState.js';
|
|
7
|
-
|
|
8
|
-
export default function convertFromJSON(
|
|
9
|
-
json: Object | string,
|
|
10
|
-
schema: ?Schema,
|
|
11
|
-
defaultSchema: Schema,
|
|
12
|
-
effectivePlugins: Array<Plugin>
|
|
13
|
-
): EditorState {
|
|
14
|
-
const editorSchema = schema || defaultSchema;
|
|
15
|
-
let error = false;
|
|
16
|
-
|
|
17
|
-
if (typeof json === 'string') {
|
|
18
|
-
try {
|
|
19
|
-
json = JSON.parse(json);
|
|
20
|
-
} catch (ex) {
|
|
21
|
-
console.error('convertFromJSON:', ex);
|
|
22
|
-
error = true;
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
if (!json || typeof json !== 'object') {
|
|
27
|
-
console.error('convertFromJSON: invalid object', json);
|
|
28
|
-
error = true;
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
if(error) {
|
|
32
|
-
// [FS] IRAD-1455 2021-06-16
|
|
33
|
-
// Use the effectivePlugins, editor hangs, b'coz of missing default core plugins
|
|
34
|
-
return createEmptyEditorState(
|
|
35
|
-
schema,
|
|
36
|
-
defaultSchema,
|
|
37
|
-
effectivePlugins
|
|
38
|
-
);
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
// [FS] IRAD-1067 2020-09-19
|
|
42
|
-
// Handle gracefully when error thrown on invalid json
|
|
43
|
-
let doc = null;
|
|
44
|
-
|
|
45
|
-
try {
|
|
46
|
-
doc = editorSchema.nodeFromJSON(json);
|
|
47
|
-
} catch (error) {
|
|
48
|
-
return null;
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
return EditorState.create({
|
|
52
|
-
doc: doc,
|
|
53
|
-
schema: editorSchema,
|
|
54
|
-
plugins: effectivePlugins,
|
|
55
|
-
});
|
|
56
|
-
}
|
|
1
|
+
// @flow
|
|
2
|
+
|
|
3
|
+
import { Schema } from 'prosemirror-model';
|
|
4
|
+
import { EditorState } from 'prosemirror-state';
|
|
5
|
+
import { Plugin } from 'prosemirror-state';
|
|
6
|
+
import createEmptyEditorState from './createEmptyEditorState.js';
|
|
7
|
+
|
|
8
|
+
export default function convertFromJSON(
|
|
9
|
+
json: Object | string,
|
|
10
|
+
schema: ?Schema,
|
|
11
|
+
defaultSchema: Schema,
|
|
12
|
+
effectivePlugins: Array<Plugin>
|
|
13
|
+
): EditorState {
|
|
14
|
+
const editorSchema = schema || defaultSchema;
|
|
15
|
+
let error = false;
|
|
16
|
+
|
|
17
|
+
if (typeof json === 'string') {
|
|
18
|
+
try {
|
|
19
|
+
json = JSON.parse(json);
|
|
20
|
+
} catch (ex) {
|
|
21
|
+
console.error('convertFromJSON:', ex);
|
|
22
|
+
error = true;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
if (!json || typeof json !== 'object') {
|
|
27
|
+
console.error('convertFromJSON: invalid object', json);
|
|
28
|
+
error = true;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
if(error) {
|
|
32
|
+
// [FS] IRAD-1455 2021-06-16
|
|
33
|
+
// Use the effectivePlugins, editor hangs, b'coz of missing default core plugins
|
|
34
|
+
return createEmptyEditorState(
|
|
35
|
+
schema,
|
|
36
|
+
defaultSchema,
|
|
37
|
+
effectivePlugins
|
|
38
|
+
);
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
// [FS] IRAD-1067 2020-09-19
|
|
42
|
+
// Handle gracefully when error thrown on invalid json
|
|
43
|
+
let doc = null;
|
|
44
|
+
|
|
45
|
+
try {
|
|
46
|
+
doc = editorSchema.nodeFromJSON(json);
|
|
47
|
+
} catch (error) {
|
|
48
|
+
return null;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
return EditorState.create({
|
|
52
|
+
doc: doc,
|
|
53
|
+
schema: editorSchema,
|
|
54
|
+
plugins: effectivePlugins,
|
|
55
|
+
});
|
|
56
|
+
}
|
|
@@ -1,22 +1,22 @@
|
|
|
1
|
-
// @flow
|
|
2
|
-
|
|
3
|
-
const SIZE_PATTERN = /([\d\.]+)(px|pt)/i;
|
|
4
|
-
|
|
5
|
-
export const PX_TO_PT_RATIO = 0.75292857;
|
|
6
|
-
export const PT_TO_PX_RATIO = 1 / PX_TO_PT_RATIO;
|
|
7
|
-
|
|
8
|
-
export default function convertToCSSPTValue(styleValue: string): number {
|
|
9
|
-
const matches = styleValue.match(SIZE_PATTERN);
|
|
10
|
-
if (!matches) {
|
|
11
|
-
return 0;
|
|
12
|
-
}
|
|
13
|
-
let value = parseFloat(matches[1]);
|
|
14
|
-
const unit = matches[2];
|
|
15
|
-
if (!value || !unit) {
|
|
16
|
-
return 0;
|
|
17
|
-
}
|
|
18
|
-
if (unit === 'px') {
|
|
19
|
-
value = PX_TO_PT_RATIO * value;
|
|
20
|
-
}
|
|
21
|
-
return value;
|
|
22
|
-
}
|
|
1
|
+
// @flow
|
|
2
|
+
|
|
3
|
+
const SIZE_PATTERN = /([\d\.]+)(px|pt)/i;
|
|
4
|
+
|
|
5
|
+
export const PX_TO_PT_RATIO = 0.75292857;
|
|
6
|
+
export const PT_TO_PX_RATIO = 1 / PX_TO_PT_RATIO;
|
|
7
|
+
|
|
8
|
+
export default function convertToCSSPTValue(styleValue: string): number {
|
|
9
|
+
const matches = styleValue.match(SIZE_PATTERN);
|
|
10
|
+
if (!matches) {
|
|
11
|
+
return 0;
|
|
12
|
+
}
|
|
13
|
+
let value = parseFloat(matches[1]);
|
|
14
|
+
const unit = matches[2];
|
|
15
|
+
if (!value || !unit) {
|
|
16
|
+
return 0;
|
|
17
|
+
}
|
|
18
|
+
if (unit === 'px') {
|
|
19
|
+
value = PX_TO_PT_RATIO * value;
|
|
20
|
+
}
|
|
21
|
+
return value;
|
|
22
|
+
}
|
package/convertToJSON.js.flow
CHANGED
|
@@ -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
|
+
}
|
package/createCommand.js
CHANGED
|
@@ -4,13 +4,13 @@ function _defineProperties(target, props) { for (var i = 0; i < props.length; i+
|
|
|
4
4
|
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
|
|
5
5
|
function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }
|
|
6
6
|
function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); }
|
|
7
|
+
function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
|
|
7
8
|
function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
|
|
8
9
|
function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
|
|
9
|
-
function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
|
|
10
10
|
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }
|
|
11
11
|
function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
|
|
12
12
|
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
13
|
-
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i :
|
|
13
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
|
|
14
14
|
function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
15
15
|
import { EditorState } from 'prosemirror-state';
|
|
16
16
|
import { Transform } from 'prosemirror-transform';
|
|
@@ -19,7 +19,6 @@ import * as React from 'react';
|
|
|
19
19
|
import { UICommand } from '@modusoperandi/licit-doc-attrs-step';
|
|
20
20
|
export default function createCommand(execute) {
|
|
21
21
|
var CustomCommand = /*#__PURE__*/function (_UICommand) {
|
|
22
|
-
_inherits(CustomCommand, _UICommand);
|
|
23
22
|
function CustomCommand() {
|
|
24
23
|
var _this;
|
|
25
24
|
_classCallCheck(this, CustomCommand);
|
|
@@ -27,10 +26,10 @@ export default function createCommand(execute) {
|
|
|
27
26
|
args[_key] = arguments[_key];
|
|
28
27
|
}
|
|
29
28
|
_this = _callSuper(this, CustomCommand, [].concat(args));
|
|
30
|
-
_defineProperty(
|
|
29
|
+
_defineProperty(_this, "isEnabled", function (state) {
|
|
31
30
|
return _this.execute(state);
|
|
32
31
|
});
|
|
33
|
-
_defineProperty(
|
|
32
|
+
_defineProperty(_this, "execute", function (state, dispatch, view) {
|
|
34
33
|
var tr = state.tr;
|
|
35
34
|
var endTr = tr;
|
|
36
35
|
execute(state, function (nextTr) {
|
|
@@ -39,21 +38,21 @@ export default function createCommand(execute) {
|
|
|
39
38
|
}, view);
|
|
40
39
|
return endTr.docChanged || tr !== endTr;
|
|
41
40
|
});
|
|
42
|
-
_defineProperty(
|
|
41
|
+
_defineProperty(_this, "waitForUserInput", function (_state, _dispatch, _view, _event) {
|
|
43
42
|
return Promise.resolve(undefined);
|
|
44
43
|
});
|
|
45
|
-
_defineProperty(
|
|
44
|
+
_defineProperty(_this, "executeWithUserInput", function (_state, _dispatch, _view, _inputs) {
|
|
46
45
|
return false;
|
|
47
46
|
});
|
|
48
47
|
return _this;
|
|
49
48
|
}
|
|
50
|
-
|
|
49
|
+
_inherits(CustomCommand, _UICommand);
|
|
50
|
+
return _createClass(CustomCommand, [{
|
|
51
51
|
key: "cancel",
|
|
52
52
|
value: function cancel() {
|
|
53
53
|
return null;
|
|
54
54
|
}
|
|
55
55
|
}]);
|
|
56
|
-
return CustomCommand;
|
|
57
56
|
}(UICommand);
|
|
58
57
|
return new CustomCommand();
|
|
59
58
|
}
|
package/createCommand.js.flow
CHANGED
|
@@ -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
|
+
}
|
package/createEditorKeyMap.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
2
2
|
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
3
|
-
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i :
|
|
3
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
|
|
4
4
|
function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
5
5
|
import { EditorState } from 'prosemirror-state';
|
|
6
6
|
import { Transform } from 'prosemirror-transform';
|
|
@@ -1,94 +1,94 @@
|
|
|
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
|
-
// [FS][07-MAY-2020][IRAD-956]
|
|
19
|
-
// KEY_INSERT_NEW_LINE_IN_BLOCKQUOTE,
|
|
20
|
-
KEY_INSERT_NEW_LINE_IN_LIST_ITEM,
|
|
21
|
-
KEY_REDO,
|
|
22
|
-
KEY_SPLIT_LIST_ITEM,
|
|
23
|
-
KEY_TAB_SHIFT,
|
|
24
|
-
KEY_TAB,
|
|
25
|
-
KEY_TOGGLE_BOLD,
|
|
26
|
-
KEY_TOGGLE_ITALIC,
|
|
27
|
-
KEY_TOGGLE_UNDERLINE,
|
|
28
|
-
KEY_UNDO,
|
|
29
|
-
} = EditorKeyMap;
|
|
30
|
-
|
|
31
|
-
const {
|
|
32
|
-
// [FS][07-MAY-2020][IRAD-956]
|
|
33
|
-
// BLOCKQUOTE_INSERT_NEW_LINE,
|
|
34
|
-
EM,
|
|
35
|
-
HISTORY_REDO,
|
|
36
|
-
HISTORY_UNDO,
|
|
37
|
-
INDENT_LESS,
|
|
38
|
-
INDENT_MORE,
|
|
39
|
-
LIST_ITEM_INSERT_NEW_LINE,
|
|
40
|
-
LIST_ITEM_MERGE_DOWN,
|
|
41
|
-
LIST_ITEM_MERGE_UP,
|
|
42
|
-
LIST_SPLIT,
|
|
43
|
-
TABLE_MOVE_TO_NEXT_CELL,
|
|
44
|
-
TABLE_MOVE_TO_PREV_CELL,
|
|
45
|
-
TEXT_INSERT_TAB_SPACE,
|
|
46
|
-
STRONG,
|
|
47
|
-
UNDERLINE,
|
|
48
|
-
} = EditorCommands;
|
|
49
|
-
|
|
50
|
-
function bindCommands(...commands: Array<UICommand>): UserKeyCommand {
|
|
51
|
-
return function (
|
|
52
|
-
state: EditorState,
|
|
53
|
-
dispatch: ?(tr: Transform) => void,
|
|
54
|
-
view: ?EditorView
|
|
55
|
-
): boolean {
|
|
56
|
-
return commands.some((cmd) => {
|
|
57
|
-
if (cmd.isEnabled(state, view, '')) {
|
|
58
|
-
cmd.execute(state, dispatch, view);
|
|
59
|
-
return true;
|
|
60
|
-
}
|
|
61
|
-
return false;
|
|
62
|
-
});
|
|
63
|
-
};
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
export default function createEditorKeyMap(): UserKeyMap {
|
|
67
|
-
const result = {
|
|
68
|
-
[KEY_BACK_DELETE.common]: LIST_ITEM_MERGE_UP.execute,
|
|
69
|
-
[KEY_FORWARD_DELETE.common]: LIST_ITEM_MERGE_DOWN.execute,
|
|
70
|
-
[KEY_REDO.common]: HISTORY_REDO.execute,
|
|
71
|
-
[KEY_SPLIT_LIST_ITEM.common]: LIST_SPLIT.execute,
|
|
72
|
-
[KEY_TAB.common]: bindCommands(
|
|
73
|
-
TABLE_MOVE_TO_NEXT_CELL,
|
|
74
|
-
TEXT_INSERT_TAB_SPACE,
|
|
75
|
-
INDENT_MORE
|
|
76
|
-
),
|
|
77
|
-
[KEY_TAB_SHIFT.common]: bindCommands(
|
|
78
|
-
TABLE_MOVE_TO_PREV_CELL,
|
|
79
|
-
TEXT_INSERT_TAB_SPACE,
|
|
80
|
-
INDENT_LESS
|
|
81
|
-
),
|
|
82
|
-
[KEY_TOGGLE_BOLD.common]: STRONG.execute,
|
|
83
|
-
[KEY_TOGGLE_ITALIC.common]: EM.execute,
|
|
84
|
-
[KEY_TOGGLE_UNDERLINE.common]: UNDERLINE.execute,
|
|
85
|
-
[KEY_UNDO.common]: HISTORY_UNDO.execute,
|
|
86
|
-
// [FS][07-MAY-2020][IRAD-956]
|
|
87
|
-
// [KEY_INSERT_NEW_LINE_IN_BLOCKQUOTE.common]:
|
|
88
|
-
// BLOCKQUOTE_INSERT_NEW_LINE.execute,
|
|
89
|
-
[KEY_INSERT_NEW_LINE_IN_LIST_ITEM.common]:
|
|
90
|
-
LIST_ITEM_INSERT_NEW_LINE.execute,
|
|
91
|
-
};
|
|
92
|
-
|
|
93
|
-
return result;
|
|
94
|
-
}
|
|
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
|
+
// [FS][07-MAY-2020][IRAD-956]
|
|
19
|
+
// KEY_INSERT_NEW_LINE_IN_BLOCKQUOTE,
|
|
20
|
+
KEY_INSERT_NEW_LINE_IN_LIST_ITEM,
|
|
21
|
+
KEY_REDO,
|
|
22
|
+
KEY_SPLIT_LIST_ITEM,
|
|
23
|
+
KEY_TAB_SHIFT,
|
|
24
|
+
KEY_TAB,
|
|
25
|
+
KEY_TOGGLE_BOLD,
|
|
26
|
+
KEY_TOGGLE_ITALIC,
|
|
27
|
+
KEY_TOGGLE_UNDERLINE,
|
|
28
|
+
KEY_UNDO,
|
|
29
|
+
} = EditorKeyMap;
|
|
30
|
+
|
|
31
|
+
const {
|
|
32
|
+
// [FS][07-MAY-2020][IRAD-956]
|
|
33
|
+
// BLOCKQUOTE_INSERT_NEW_LINE,
|
|
34
|
+
EM,
|
|
35
|
+
HISTORY_REDO,
|
|
36
|
+
HISTORY_UNDO,
|
|
37
|
+
INDENT_LESS,
|
|
38
|
+
INDENT_MORE,
|
|
39
|
+
LIST_ITEM_INSERT_NEW_LINE,
|
|
40
|
+
LIST_ITEM_MERGE_DOWN,
|
|
41
|
+
LIST_ITEM_MERGE_UP,
|
|
42
|
+
LIST_SPLIT,
|
|
43
|
+
TABLE_MOVE_TO_NEXT_CELL,
|
|
44
|
+
TABLE_MOVE_TO_PREV_CELL,
|
|
45
|
+
TEXT_INSERT_TAB_SPACE,
|
|
46
|
+
STRONG,
|
|
47
|
+
UNDERLINE,
|
|
48
|
+
} = EditorCommands;
|
|
49
|
+
|
|
50
|
+
function bindCommands(...commands: Array<UICommand>): UserKeyCommand {
|
|
51
|
+
return function (
|
|
52
|
+
state: EditorState,
|
|
53
|
+
dispatch: ?(tr: Transform) => void,
|
|
54
|
+
view: ?EditorView
|
|
55
|
+
): boolean {
|
|
56
|
+
return commands.some((cmd) => {
|
|
57
|
+
if (cmd.isEnabled(state, view, '')) {
|
|
58
|
+
cmd.execute(state, dispatch, view);
|
|
59
|
+
return true;
|
|
60
|
+
}
|
|
61
|
+
return false;
|
|
62
|
+
});
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
export default function createEditorKeyMap(): UserKeyMap {
|
|
67
|
+
const result = {
|
|
68
|
+
[KEY_BACK_DELETE.common]: LIST_ITEM_MERGE_UP.execute,
|
|
69
|
+
[KEY_FORWARD_DELETE.common]: LIST_ITEM_MERGE_DOWN.execute,
|
|
70
|
+
[KEY_REDO.common]: HISTORY_REDO.execute,
|
|
71
|
+
[KEY_SPLIT_LIST_ITEM.common]: LIST_SPLIT.execute,
|
|
72
|
+
[KEY_TAB.common]: bindCommands(
|
|
73
|
+
TABLE_MOVE_TO_NEXT_CELL,
|
|
74
|
+
TEXT_INSERT_TAB_SPACE,
|
|
75
|
+
INDENT_MORE
|
|
76
|
+
),
|
|
77
|
+
[KEY_TAB_SHIFT.common]: bindCommands(
|
|
78
|
+
TABLE_MOVE_TO_PREV_CELL,
|
|
79
|
+
TEXT_INSERT_TAB_SPACE,
|
|
80
|
+
INDENT_LESS
|
|
81
|
+
),
|
|
82
|
+
[KEY_TOGGLE_BOLD.common]: STRONG.execute,
|
|
83
|
+
[KEY_TOGGLE_ITALIC.common]: EM.execute,
|
|
84
|
+
[KEY_TOGGLE_UNDERLINE.common]: UNDERLINE.execute,
|
|
85
|
+
[KEY_UNDO.common]: HISTORY_UNDO.execute,
|
|
86
|
+
// [FS][07-MAY-2020][IRAD-956]
|
|
87
|
+
// [KEY_INSERT_NEW_LINE_IN_BLOCKQUOTE.common]:
|
|
88
|
+
// BLOCKQUOTE_INSERT_NEW_LINE.execute,
|
|
89
|
+
[KEY_INSERT_NEW_LINE_IN_LIST_ITEM.common]:
|
|
90
|
+
LIST_ITEM_INSERT_NEW_LINE.execute,
|
|
91
|
+
};
|
|
92
|
+
|
|
93
|
+
return result;
|
|
94
|
+
}
|