@modusoperandi/licit 1.0.4 → 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 +3 -4
- package/TableResizePlugin.js.flow +631 -631
- 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 +21569 -23179
- 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
package/browser.js.flow
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
// @flow
|
|
2
|
-
|
|
3
|
-
const browser = {
|
|
4
|
-
isMac: () => true,
|
|
5
|
-
};
|
|
6
|
-
|
|
7
|
-
export default browser;
|
|
1
|
+
// @flow
|
|
2
|
+
|
|
3
|
+
const browser = {
|
|
4
|
+
isMac: () => true,
|
|
5
|
+
};
|
|
6
|
+
|
|
7
|
+
export default browser;
|
package/buildEditorPlugins.js
CHANGED
|
@@ -3,7 +3,7 @@ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Cons
|
|
|
3
3
|
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }
|
|
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 _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; }
|
|
6
|
-
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i :
|
|
6
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
|
|
7
7
|
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); }
|
|
8
8
|
import { baseKeymap } from 'prosemirror-commands';
|
|
9
9
|
import { dropCursor } from 'prosemirror-dropcursor';
|
|
@@ -31,7 +31,7 @@ var DefaultEditorPlugins = /*#__PURE__*/function () {
|
|
|
31
31
|
// [FS] IRAD-1005 2020-07-07
|
|
32
32
|
// Upgrade outdated packages.
|
|
33
33
|
// set plugin keys so that to avoid duplicate key error when keys are assigned automatically.
|
|
34
|
-
_createClass(DefaultEditorPlugins, [{
|
|
34
|
+
return _createClass(DefaultEditorPlugins, [{
|
|
35
35
|
key: "setPluginKey",
|
|
36
36
|
value: function setPluginKey(plugin, key) {
|
|
37
37
|
plugin.spec.key = new PluginKey(key + 'Plugin');
|
|
@@ -44,6 +44,5 @@ var DefaultEditorPlugins = /*#__PURE__*/function () {
|
|
|
44
44
|
return this.plugins;
|
|
45
45
|
}
|
|
46
46
|
}]);
|
|
47
|
-
return DefaultEditorPlugins;
|
|
48
47
|
}();
|
|
49
48
|
export { DefaultEditorPlugins as default };
|
|
@@ -1,49 +1,49 @@
|
|
|
1
|
-
// @flow
|
|
2
|
-
import {baseKeymap} from 'prosemirror-commands';
|
|
3
|
-
import {dropCursor} from 'prosemirror-dropcursor';
|
|
4
|
-
import {gapCursor} from 'prosemirror-gapcursor';
|
|
5
|
-
import {history} from 'prosemirror-history';
|
|
6
|
-
import {keymap} from 'prosemirror-keymap';
|
|
7
|
-
import {Schema} from 'prosemirror-model';
|
|
8
|
-
import {Plugin, PluginKey} from 'prosemirror-state';
|
|
9
|
-
import ContentPlaceholderPlugin from './ContentPlaceholderPlugin.js';
|
|
10
|
-
import CursorPlaceholderPlugin from './CursorPlaceholderPlugin.js';
|
|
11
|
-
import EditorPageLayoutPlugin from './EditorPageLayoutPlugin.js';
|
|
12
|
-
import LinkTooltipPlugin from './LinkTooltipPlugin.js';
|
|
13
|
-
import SelectionPlaceholderPlugin from './SelectionPlaceholderPlugin.js';
|
|
14
|
-
import TablePlugins from './TablePlugins.js';
|
|
15
|
-
import buildInputRules from './buildInputRules.js';
|
|
16
|
-
import createEditorKeyMap from './createEditorKeyMap.js';
|
|
17
|
-
|
|
18
|
-
// Creates the default plugin for the editor.
|
|
19
|
-
export default class DefaultEditorPlugins {
|
|
20
|
-
plugins: Array<Plugin>;
|
|
21
|
-
|
|
22
|
-
constructor(schema: Schema) {
|
|
23
|
-
this.plugins = [
|
|
24
|
-
new ContentPlaceholderPlugin(),
|
|
25
|
-
new CursorPlaceholderPlugin(),
|
|
26
|
-
new EditorPageLayoutPlugin(),
|
|
27
|
-
new LinkTooltipPlugin(),
|
|
28
|
-
new SelectionPlaceholderPlugin(),
|
|
29
|
-
this.setPluginKey(buildInputRules(schema), 'InputRules'),
|
|
30
|
-
this.setPluginKey(dropCursor(), 'DropCursor'),
|
|
31
|
-
this.setPluginKey(gapCursor(), 'GapCursor'),
|
|
32
|
-
history(),
|
|
33
|
-
this.setPluginKey(keymap(createEditorKeyMap()), 'EditorKeyMap'),
|
|
34
|
-
this.setPluginKey(keymap(baseKeymap), 'BaseKeymap'),
|
|
35
|
-
].concat(TablePlugins);
|
|
36
|
-
}
|
|
37
|
-
// [FS] IRAD-1005 2020-07-07
|
|
38
|
-
// Upgrade outdated packages.
|
|
39
|
-
// set plugin keys so that to avoid duplicate key error when keys are assigned automatically.
|
|
40
|
-
setPluginKey(plugin: Plugin, key: string) {
|
|
41
|
-
plugin.spec.key = new PluginKey(key + 'Plugin');
|
|
42
|
-
plugin.key = plugin.spec.key.key;
|
|
43
|
-
return plugin;
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
get(): Array<Plugin> {
|
|
47
|
-
return this.plugins;
|
|
48
|
-
}
|
|
49
|
-
}
|
|
1
|
+
// @flow
|
|
2
|
+
import {baseKeymap} from 'prosemirror-commands';
|
|
3
|
+
import {dropCursor} from 'prosemirror-dropcursor';
|
|
4
|
+
import {gapCursor} from 'prosemirror-gapcursor';
|
|
5
|
+
import {history} from 'prosemirror-history';
|
|
6
|
+
import {keymap} from 'prosemirror-keymap';
|
|
7
|
+
import {Schema} from 'prosemirror-model';
|
|
8
|
+
import {Plugin, PluginKey} from 'prosemirror-state';
|
|
9
|
+
import ContentPlaceholderPlugin from './ContentPlaceholderPlugin.js';
|
|
10
|
+
import CursorPlaceholderPlugin from './CursorPlaceholderPlugin.js';
|
|
11
|
+
import EditorPageLayoutPlugin from './EditorPageLayoutPlugin.js';
|
|
12
|
+
import LinkTooltipPlugin from './LinkTooltipPlugin.js';
|
|
13
|
+
import SelectionPlaceholderPlugin from './SelectionPlaceholderPlugin.js';
|
|
14
|
+
import TablePlugins from './TablePlugins.js';
|
|
15
|
+
import buildInputRules from './buildInputRules.js';
|
|
16
|
+
import createEditorKeyMap from './createEditorKeyMap.js';
|
|
17
|
+
|
|
18
|
+
// Creates the default plugin for the editor.
|
|
19
|
+
export default class DefaultEditorPlugins {
|
|
20
|
+
plugins: Array<Plugin>;
|
|
21
|
+
|
|
22
|
+
constructor(schema: Schema) {
|
|
23
|
+
this.plugins = [
|
|
24
|
+
new ContentPlaceholderPlugin(),
|
|
25
|
+
new CursorPlaceholderPlugin(),
|
|
26
|
+
new EditorPageLayoutPlugin(),
|
|
27
|
+
new LinkTooltipPlugin(),
|
|
28
|
+
new SelectionPlaceholderPlugin(),
|
|
29
|
+
this.setPluginKey(buildInputRules(schema), 'InputRules'),
|
|
30
|
+
this.setPluginKey(dropCursor(), 'DropCursor'),
|
|
31
|
+
this.setPluginKey(gapCursor(), 'GapCursor'),
|
|
32
|
+
history(),
|
|
33
|
+
this.setPluginKey(keymap(createEditorKeyMap()), 'EditorKeyMap'),
|
|
34
|
+
this.setPluginKey(keymap(baseKeymap), 'BaseKeymap'),
|
|
35
|
+
].concat(TablePlugins);
|
|
36
|
+
}
|
|
37
|
+
// [FS] IRAD-1005 2020-07-07
|
|
38
|
+
// Upgrade outdated packages.
|
|
39
|
+
// set plugin keys so that to avoid duplicate key error when keys are assigned automatically.
|
|
40
|
+
setPluginKey(plugin: Plugin, key: string) {
|
|
41
|
+
plugin.spec.key = new PluginKey(key + 'Plugin');
|
|
42
|
+
plugin.key = plugin.spec.key.key;
|
|
43
|
+
return plugin;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
get(): Array<Plugin> {
|
|
47
|
+
return this.plugins;
|
|
48
|
+
}
|
|
49
|
+
}
|
package/buildInputRules.js.flow
CHANGED
|
@@ -1,81 +1,81 @@
|
|
|
1
|
-
// @flow
|
|
2
|
-
|
|
3
|
-
import {
|
|
4
|
-
InputRule,
|
|
5
|
-
ellipsis,
|
|
6
|
-
emDash,
|
|
7
|
-
inputRules,
|
|
8
|
-
smartQuotes,
|
|
9
|
-
textblockTypeInputRule,
|
|
10
|
-
wrappingInputRule,
|
|
11
|
-
} from 'prosemirror-inputrules';
|
|
12
|
-
import { NodeType, Schema } from 'prosemirror-model';
|
|
13
|
-
|
|
14
|
-
import blockQuoteInputRule from './blockQuoteInputRule.js';
|
|
15
|
-
|
|
16
|
-
// This file is forked from
|
|
17
|
-
// // https://github.com/ProseMirror/prosemirror-example-setup/blob/master/src/inputrules.js
|
|
18
|
-
|
|
19
|
-
// : (NodeType) → InputRule
|
|
20
|
-
// Given a list node type, returns an input rule that turns a number
|
|
21
|
-
// followed by a dot at the start of a textblock into an ordered list.
|
|
22
|
-
function orderedListRule(nodeType: NodeType): InputRule {
|
|
23
|
-
return wrappingInputRule(
|
|
24
|
-
/^(\d+)\.\s$/,
|
|
25
|
-
nodeType,
|
|
26
|
-
(match) => ({ order: +match[1] }),
|
|
27
|
-
(match, node) => node.childCount + node.attrs.order == +match[1]
|
|
28
|
-
);
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
// : (NodeType) → InputRule
|
|
32
|
-
// Given a list node type, returns an input rule that turns a bullet
|
|
33
|
-
// (dash, plush, or asterisk) at the start of a textblock into a
|
|
34
|
-
// bullet list.
|
|
35
|
-
function bulletListRule(nodeType: NodeType): InputRule {
|
|
36
|
-
return wrappingInputRule(/^\s*([-+*])\s$/, nodeType);
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
// : (NodeType) → InputRule
|
|
40
|
-
// Given a code block node type, returns an input rule that turns a
|
|
41
|
-
// textblock starting with three backticks into a code block.
|
|
42
|
-
function codeBlockRule(nodeType: NodeType): InputRule {
|
|
43
|
-
return textblockTypeInputRule(/^```$/, nodeType);
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
// : (NodeType, number) → InputRule
|
|
47
|
-
// Given a node type and a maximum level, creates an input rule that
|
|
48
|
-
// turns up to that number of `#` characters followed by a space at
|
|
49
|
-
// the start of a textblock into a heading whose level corresponds to
|
|
50
|
-
// the number of `#` signs.
|
|
51
|
-
function headingRule(nodeType: NodeType, maxLevel: number): InputRule {
|
|
52
|
-
return textblockTypeInputRule(
|
|
53
|
-
new RegExp('^(#{1,' + maxLevel + '})\\s$'),
|
|
54
|
-
nodeType,
|
|
55
|
-
(match) => ({ level: match[1].length })
|
|
56
|
-
);
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
// : (Schema) → Plugin
|
|
60
|
-
// A set of input rules for creating the basic block quotes, lists,
|
|
61
|
-
// code blocks, and heading.
|
|
62
|
-
export default function buildInputRules(schema: Schema) {
|
|
63
|
-
const rules = smartQuotes.concat(ellipsis, emDash);
|
|
64
|
-
let type;
|
|
65
|
-
if (schema.nodes.blockquote) {
|
|
66
|
-
rules.push(blockQuoteInputRule());
|
|
67
|
-
}
|
|
68
|
-
if ((type = schema.nodes.ordered_list)) {
|
|
69
|
-
rules.push(orderedListRule(type));
|
|
70
|
-
}
|
|
71
|
-
if ((type = schema.nodes.bullet_list)) {
|
|
72
|
-
rules.push(bulletListRule(type));
|
|
73
|
-
}
|
|
74
|
-
if ((type = schema.nodes.code_block)) {
|
|
75
|
-
rules.push(codeBlockRule(type));
|
|
76
|
-
}
|
|
77
|
-
if ((type = schema.nodes.heading)) {
|
|
78
|
-
rules.push(headingRule(type, 6));
|
|
79
|
-
}
|
|
80
|
-
return inputRules({ rules });
|
|
81
|
-
}
|
|
1
|
+
// @flow
|
|
2
|
+
|
|
3
|
+
import {
|
|
4
|
+
InputRule,
|
|
5
|
+
ellipsis,
|
|
6
|
+
emDash,
|
|
7
|
+
inputRules,
|
|
8
|
+
smartQuotes,
|
|
9
|
+
textblockTypeInputRule,
|
|
10
|
+
wrappingInputRule,
|
|
11
|
+
} from 'prosemirror-inputrules';
|
|
12
|
+
import { NodeType, Schema } from 'prosemirror-model';
|
|
13
|
+
|
|
14
|
+
import blockQuoteInputRule from './blockQuoteInputRule.js';
|
|
15
|
+
|
|
16
|
+
// This file is forked from
|
|
17
|
+
// // https://github.com/ProseMirror/prosemirror-example-setup/blob/master/src/inputrules.js
|
|
18
|
+
|
|
19
|
+
// : (NodeType) → InputRule
|
|
20
|
+
// Given a list node type, returns an input rule that turns a number
|
|
21
|
+
// followed by a dot at the start of a textblock into an ordered list.
|
|
22
|
+
function orderedListRule(nodeType: NodeType): InputRule {
|
|
23
|
+
return wrappingInputRule(
|
|
24
|
+
/^(\d+)\.\s$/,
|
|
25
|
+
nodeType,
|
|
26
|
+
(match) => ({ order: +match[1] }),
|
|
27
|
+
(match, node) => node.childCount + node.attrs.order == +match[1]
|
|
28
|
+
);
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
// : (NodeType) → InputRule
|
|
32
|
+
// Given a list node type, returns an input rule that turns a bullet
|
|
33
|
+
// (dash, plush, or asterisk) at the start of a textblock into a
|
|
34
|
+
// bullet list.
|
|
35
|
+
function bulletListRule(nodeType: NodeType): InputRule {
|
|
36
|
+
return wrappingInputRule(/^\s*([-+*])\s$/, nodeType);
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
// : (NodeType) → InputRule
|
|
40
|
+
// Given a code block node type, returns an input rule that turns a
|
|
41
|
+
// textblock starting with three backticks into a code block.
|
|
42
|
+
function codeBlockRule(nodeType: NodeType): InputRule {
|
|
43
|
+
return textblockTypeInputRule(/^```$/, nodeType);
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
// : (NodeType, number) → InputRule
|
|
47
|
+
// Given a node type and a maximum level, creates an input rule that
|
|
48
|
+
// turns up to that number of `#` characters followed by a space at
|
|
49
|
+
// the start of a textblock into a heading whose level corresponds to
|
|
50
|
+
// the number of `#` signs.
|
|
51
|
+
function headingRule(nodeType: NodeType, maxLevel: number): InputRule {
|
|
52
|
+
return textblockTypeInputRule(
|
|
53
|
+
new RegExp('^(#{1,' + maxLevel + '})\\s$'),
|
|
54
|
+
nodeType,
|
|
55
|
+
(match) => ({ level: match[1].length })
|
|
56
|
+
);
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
// : (Schema) → Plugin
|
|
60
|
+
// A set of input rules for creating the basic block quotes, lists,
|
|
61
|
+
// code blocks, and heading.
|
|
62
|
+
export default function buildInputRules(schema: Schema) {
|
|
63
|
+
const rules = smartQuotes.concat(ellipsis, emDash);
|
|
64
|
+
let type;
|
|
65
|
+
if (schema.nodes.blockquote) {
|
|
66
|
+
rules.push(blockQuoteInputRule());
|
|
67
|
+
}
|
|
68
|
+
if ((type = schema.nodes.ordered_list)) {
|
|
69
|
+
rules.push(orderedListRule(type));
|
|
70
|
+
}
|
|
71
|
+
if ((type = schema.nodes.bullet_list)) {
|
|
72
|
+
rules.push(bulletListRule(type));
|
|
73
|
+
}
|
|
74
|
+
if ((type = schema.nodes.code_block)) {
|
|
75
|
+
rules.push(codeBlockRule(type));
|
|
76
|
+
}
|
|
77
|
+
if ((type = schema.nodes.heading)) {
|
|
78
|
+
rules.push(headingRule(type, 6));
|
|
79
|
+
}
|
|
80
|
+
return inputRules({ rules });
|
|
81
|
+
}
|
|
@@ -4,13 +4,13 @@ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _d
|
|
|
4
4
|
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
|
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 { Transform } from 'prosemirror-transform';
|
|
16
16
|
import { Schema } from 'prosemirror-model';
|
|
@@ -20,17 +20,16 @@ import EditorConnection from './EditorConnection.js';
|
|
|
20
20
|
import Reporter from './Reporter.js';
|
|
21
21
|
import ReactDOM from 'react-dom';
|
|
22
22
|
var CollabConnector = /*#__PURE__*/function (_SimpleConnector) {
|
|
23
|
-
_inherits(CollabConnector, _SimpleConnector);
|
|
24
23
|
function CollabConnector(editorState, setState, config, _schema, plugins, onReady) {
|
|
25
24
|
var _this;
|
|
26
25
|
_classCallCheck(this, CollabConnector);
|
|
27
26
|
_this = _callSuper(this, CollabConnector, [editorState, setState]);
|
|
28
|
-
_defineProperty(
|
|
29
|
-
_defineProperty(
|
|
30
|
-
_defineProperty(
|
|
31
|
-
_defineProperty(
|
|
32
|
-
_defineProperty(
|
|
33
|
-
_defineProperty(
|
|
27
|
+
_defineProperty(_this, "_clientID", void 0);
|
|
28
|
+
_defineProperty(_this, "_connected", void 0);
|
|
29
|
+
_defineProperty(_this, "_connection", void 0);
|
|
30
|
+
_defineProperty(_this, "_docID", void 0);
|
|
31
|
+
_defineProperty(_this, "_stepKeys", void 0);
|
|
32
|
+
_defineProperty(_this, "cleanUp", function () {
|
|
34
33
|
// remove collab plugin
|
|
35
34
|
if (_this._connection) {
|
|
36
35
|
var cpIdx = _this._editorState.plugins.findIndex(function (plugin) {
|
|
@@ -42,7 +41,7 @@ var CollabConnector = /*#__PURE__*/function (_SimpleConnector) {
|
|
|
42
41
|
_this._connection.close();
|
|
43
42
|
}
|
|
44
43
|
});
|
|
45
|
-
_defineProperty(
|
|
44
|
+
_defineProperty(_this, "onEdit", function (transaction) {
|
|
46
45
|
if (!_this._connection.ready) {
|
|
47
46
|
console.warn('not ready');
|
|
48
47
|
return;
|
|
@@ -56,10 +55,10 @@ var CollabConnector = /*#__PURE__*/function (_SimpleConnector) {
|
|
|
56
55
|
});
|
|
57
56
|
// FS IRAD-1040 2020-09-02
|
|
58
57
|
// Send the modified schema to server
|
|
59
|
-
_defineProperty(
|
|
58
|
+
_defineProperty(_this, "updateSchema", function (schema, data) {
|
|
60
59
|
_this._connection.updateSchema(schema, data, _this._dataDefined);
|
|
61
60
|
});
|
|
62
|
-
_defineProperty(
|
|
61
|
+
_defineProperty(_this, "updateContent", function (data) {
|
|
63
62
|
_this._connection.start(data, _this._dataDefined);
|
|
64
63
|
});
|
|
65
64
|
var docID = config.docID,
|
|
@@ -79,6 +78,7 @@ var CollabConnector = /*#__PURE__*/function (_SimpleConnector) {
|
|
|
79
78
|
};
|
|
80
79
|
return _this;
|
|
81
80
|
}
|
|
81
|
+
_inherits(CollabConnector, _SimpleConnector);
|
|
82
82
|
return _createClass(CollabConnector);
|
|
83
83
|
}(SimpleConnector);
|
|
84
84
|
export default CollabConnector;
|
|
@@ -1,90 +1,90 @@
|
|
|
1
|
-
// @flow
|
|
2
|
-
|
|
3
|
-
import { Transform } from 'prosemirror-transform';
|
|
4
|
-
import { Schema } from 'prosemirror-model';
|
|
5
|
-
import { Plugin, EditorState } from 'prosemirror-state';
|
|
6
|
-
import SimpleConnector from './SimpleConnector.js';
|
|
7
|
-
import type { SetStateCall } from './SimpleConnector.js';
|
|
8
|
-
import EditorConnection from './EditorConnection.js';
|
|
9
|
-
import Reporter from './Reporter.js';
|
|
10
|
-
import ReactDOM from 'react-dom';
|
|
11
|
-
|
|
12
|
-
type IdStrict = string;
|
|
13
|
-
|
|
14
|
-
class CollabConnector extends SimpleConnector {
|
|
15
|
-
_clientID: string;
|
|
16
|
-
_connected: boolean;
|
|
17
|
-
_connection: EditorConnection;
|
|
18
|
-
_docID: IdStrict;
|
|
19
|
-
_stepKeys: Object;
|
|
20
|
-
|
|
21
|
-
constructor(
|
|
22
|
-
editorState: EditorState,
|
|
23
|
-
setState: SetStateCall,
|
|
24
|
-
config: {
|
|
25
|
-
docID: IdStrict,
|
|
26
|
-
collabServiceURL: string,
|
|
27
|
-
},
|
|
28
|
-
schema: Schema,
|
|
29
|
-
plugins: Array<Plugin>,
|
|
30
|
-
onReady: Function
|
|
31
|
-
) {
|
|
32
|
-
super(editorState, setState);
|
|
33
|
-
const { docID, collabServiceURL } = config;
|
|
34
|
-
this._docID = docID;
|
|
35
|
-
|
|
36
|
-
// [FS] IRAD-1553 2021-08-26
|
|
37
|
-
// Configurable Collaboration Service URL.
|
|
38
|
-
const url = collabServiceURL + '/docs/' + docID;
|
|
39
|
-
this._connection = new EditorConnection(
|
|
40
|
-
onReady,
|
|
41
|
-
new Reporter(),
|
|
42
|
-
url,
|
|
43
|
-
plugins,
|
|
44
|
-
schema
|
|
45
|
-
);
|
|
46
|
-
|
|
47
|
-
this._connection.view = {
|
|
48
|
-
updateState: (s) => {
|
|
49
|
-
setState({ editorState: s }, () => {});
|
|
50
|
-
},
|
|
51
|
-
};
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
cleanUp = () => {
|
|
55
|
-
// remove collab plugin
|
|
56
|
-
if (this._connection) {
|
|
57
|
-
const cpIdx = this._editorState.plugins.findIndex((plugin) => {
|
|
58
|
-
return 'collab$' === plugin.spec.key.key;
|
|
59
|
-
});
|
|
60
|
-
|
|
61
|
-
if (-1 != cpIdx) {
|
|
62
|
-
this._editorState.plugins.splice(cpIdx, 1);
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
this._connection.close();
|
|
66
|
-
}
|
|
67
|
-
};
|
|
68
|
-
|
|
69
|
-
onEdit = (transaction: Transform): void => {
|
|
70
|
-
if (!this._connection.ready) {
|
|
71
|
-
console.warn('not ready');
|
|
72
|
-
return;
|
|
73
|
-
}
|
|
74
|
-
ReactDOM.unstable_batchedUpdates(() => {
|
|
75
|
-
this._connection.dispatch({ type: 'transaction', transaction });
|
|
76
|
-
});
|
|
77
|
-
};
|
|
78
|
-
|
|
79
|
-
// FS IRAD-1040 2020-09-02
|
|
80
|
-
// Send the modified schema to server
|
|
81
|
-
updateSchema = (schema: Schema, data: any) => {
|
|
82
|
-
this._connection.updateSchema(schema, data, this._dataDefined);
|
|
83
|
-
};
|
|
84
|
-
|
|
85
|
-
updateContent = (data: any) => {
|
|
86
|
-
this._connection.start(data, this._dataDefined);
|
|
87
|
-
};
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
export default CollabConnector;
|
|
1
|
+
// @flow
|
|
2
|
+
|
|
3
|
+
import { Transform } from 'prosemirror-transform';
|
|
4
|
+
import { Schema } from 'prosemirror-model';
|
|
5
|
+
import { Plugin, EditorState } from 'prosemirror-state';
|
|
6
|
+
import SimpleConnector from './SimpleConnector.js';
|
|
7
|
+
import type { SetStateCall } from './SimpleConnector.js';
|
|
8
|
+
import EditorConnection from './EditorConnection.js';
|
|
9
|
+
import Reporter from './Reporter.js';
|
|
10
|
+
import ReactDOM from 'react-dom';
|
|
11
|
+
|
|
12
|
+
type IdStrict = string;
|
|
13
|
+
|
|
14
|
+
class CollabConnector extends SimpleConnector {
|
|
15
|
+
_clientID: string;
|
|
16
|
+
_connected: boolean;
|
|
17
|
+
_connection: EditorConnection;
|
|
18
|
+
_docID: IdStrict;
|
|
19
|
+
_stepKeys: Object;
|
|
20
|
+
|
|
21
|
+
constructor(
|
|
22
|
+
editorState: EditorState,
|
|
23
|
+
setState: SetStateCall,
|
|
24
|
+
config: {
|
|
25
|
+
docID: IdStrict,
|
|
26
|
+
collabServiceURL: string,
|
|
27
|
+
},
|
|
28
|
+
schema: Schema,
|
|
29
|
+
plugins: Array<Plugin>,
|
|
30
|
+
onReady: Function
|
|
31
|
+
) {
|
|
32
|
+
super(editorState, setState);
|
|
33
|
+
const { docID, collabServiceURL } = config;
|
|
34
|
+
this._docID = docID;
|
|
35
|
+
|
|
36
|
+
// [FS] IRAD-1553 2021-08-26
|
|
37
|
+
// Configurable Collaboration Service URL.
|
|
38
|
+
const url = collabServiceURL + '/docs/' + docID;
|
|
39
|
+
this._connection = new EditorConnection(
|
|
40
|
+
onReady,
|
|
41
|
+
new Reporter(),
|
|
42
|
+
url,
|
|
43
|
+
plugins,
|
|
44
|
+
schema
|
|
45
|
+
);
|
|
46
|
+
|
|
47
|
+
this._connection.view = {
|
|
48
|
+
updateState: (s) => {
|
|
49
|
+
setState({ editorState: s }, () => {});
|
|
50
|
+
},
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
cleanUp = () => {
|
|
55
|
+
// remove collab plugin
|
|
56
|
+
if (this._connection) {
|
|
57
|
+
const cpIdx = this._editorState.plugins.findIndex((plugin) => {
|
|
58
|
+
return 'collab$' === plugin.spec.key.key;
|
|
59
|
+
});
|
|
60
|
+
|
|
61
|
+
if (-1 != cpIdx) {
|
|
62
|
+
this._editorState.plugins.splice(cpIdx, 1);
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
this._connection.close();
|
|
66
|
+
}
|
|
67
|
+
};
|
|
68
|
+
|
|
69
|
+
onEdit = (transaction: Transform): void => {
|
|
70
|
+
if (!this._connection.ready) {
|
|
71
|
+
console.warn('not ready');
|
|
72
|
+
return;
|
|
73
|
+
}
|
|
74
|
+
ReactDOM.unstable_batchedUpdates(() => {
|
|
75
|
+
this._connection.dispatch({ type: 'transaction', transaction });
|
|
76
|
+
});
|
|
77
|
+
};
|
|
78
|
+
|
|
79
|
+
// FS IRAD-1040 2020-09-02
|
|
80
|
+
// Send the modified schema to server
|
|
81
|
+
updateSchema = (schema: Schema, data: any) => {
|
|
82
|
+
this._connection.updateSchema(schema, data, this._dataDefined);
|
|
83
|
+
};
|
|
84
|
+
|
|
85
|
+
updateContent = (data: any) => {
|
|
86
|
+
this._connection.start(data, this._dataDefined);
|
|
87
|
+
};
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
export default CollabConnector;
|
|
@@ -3,7 +3,7 @@ function _defineProperties(target, props) { for (var i = 0; i < props.length; i+
|
|
|
3
3
|
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
|
|
4
4
|
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
|
5
5
|
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; }
|
|
6
|
-
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i :
|
|
6
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
|
|
7
7
|
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); }
|
|
8
8
|
import { collab, getVersion, receiveTransaction, sendableSteps } from 'prosemirror-collab';
|
|
9
9
|
import { Plugin, EditorState } from 'prosemirror-state';
|
|
@@ -110,7 +110,7 @@ var EditorConnection = /*#__PURE__*/function () {
|
|
|
110
110
|
}
|
|
111
111
|
|
|
112
112
|
// [FS] IRAD-1040 2020-09-08
|
|
113
|
-
_createClass(EditorConnection, [{
|
|
113
|
+
return _createClass(EditorConnection, [{
|
|
114
114
|
key: "getEffectiveSchema",
|
|
115
115
|
value: function getEffectiveSchema() {
|
|
116
116
|
return null != this.schema ? this.schema : this.defaultSchema;
|
|
@@ -309,7 +309,6 @@ var EditorConnection = /*#__PURE__*/function () {
|
|
|
309
309
|
this.view = window.view = view;
|
|
310
310
|
}
|
|
311
311
|
}]);
|
|
312
|
-
return EditorConnection;
|
|
313
312
|
}();
|
|
314
313
|
function repeat(val, n) {
|
|
315
314
|
var result = [];
|