@modusoperandi/licit 1.0.5 → 1.0.7
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 +10 -11
- package/BlockquoteInsertNewLineCommand.js.flow +1 -2
- package/BlockquoteNodeSpec.js +2 -3
- package/BlockquoteNodeSpec.js.flow +1 -2
- package/BlockquoteToggleCommand.js +9 -9
- package/BookmarkNodeSpec.js +1 -1
- package/CodeBlockCommand.js +10 -10
- package/CodeBlockCommand.js.flow +1 -1
- package/ContentPlaceholderPlugin.js +17 -17
- package/ContentPlaceholderPlugin.js.flow +10 -12
- package/CursorPlaceholderPlugin.js +8 -8
- package/DocLayoutCommand.js +10 -12
- package/DocLayoutCommand.js.flow +1 -3
- package/EditorKeyMap.js +0 -1
- package/EditorKeyMap.js.flow +0 -2
- package/EditorMarks.js +1 -1
- package/EditorNodes.js +1 -2
- package/EditorNodes.js.flow +0 -1
- package/EditorPageLayoutPlugin.js +8 -8
- package/FontTypeMarkSpec.js +1 -1
- package/FontTypeMarkSpec.js.flow +1 -1
- package/HTMLMutator.js +4 -4
- package/HeadingNodeSpec.js +2 -12
- package/HeadingNodeSpec.js.flow +4 -14
- package/HistoryRedoCommand.js +9 -9
- package/HistoryUndoCommand.js +9 -9
- package/HorizontalRuleCommand.js +9 -9
- package/ImageUploadPlaceholderPlugin.js +13 -15
- package/ImageUploadPlaceholderPlugin.js.flow +5 -7
- package/LinkMarkSpec.js +6 -1
- package/LinkMarkSpec.js.flow +5 -0
- package/LinkSetURLCommand.js +126 -55
- package/LinkSetURLCommand.js.flow +61 -37
- package/LinkTooltipPlugin.js +119 -30
- package/LinkTooltipPlugin.js.flow +91 -20
- package/ListItemInsertNewLineCommand.js +10 -11
- package/ListItemInsertNewLineCommand.js.flow +1 -2
- package/ListItemMergeCommand.js +16 -15
- package/ListItemMergeCommand.js.flow +3 -4
- package/ListSplitCommand.js +9 -9
- package/ListToggleCommand.js +9 -9
- package/MarksClearCommand.js +9 -9
- package/MathEditCommand.js +10 -11
- package/MathEditCommand.js.flow +1 -2
- package/OrderedListNodeSpec.js +1 -1
- package/ParagraphNodeSpec.js +11 -2
- package/ParagraphNodeSpec.js.flow +9 -2
- package/ParagraphSpacingCommand.js +13 -14
- package/ParagraphSpacingCommand.js.flow +4 -9
- package/PrintCommand.js +9 -9
- package/SelectionPlaceholderPlugin.js +8 -8
- package/SpacerMarkSpec.js +1 -1
- package/StyleView.js +3 -4
- package/StyleView.js.flow +0 -1
- package/TableBackgroundColorCommand.js +12 -14
- package/TableBackgroundColorCommand.js.flow +2 -5
- package/TableBorderColorCommand.js +12 -14
- package/TableBorderColorCommand.js.flow +2 -7
- package/TableCellColorCommand.js +10 -11
- package/TableCellColorCommand.js.flow +1 -2
- package/TableCellMenuPlugin.js +16 -15
- package/TableCellMenuPlugin.js.flow +5 -7
- package/TableInsertCommand.js +11 -13
- package/TableInsertCommand.js.flow +2 -4
- package/TableMergeCellsCommand.js +13 -12
- package/TableMergeCellsCommand.js.flow +4 -3
- package/TableNodesSpecs.js +4 -2
- package/TableNodesSpecs.js.flow +4 -2
- package/TableResizePlugin.js +17 -16
- package/TableResizePlugin.js.flow +1 -1
- package/TextInsertTabSpaceCommand.js +9 -9
- package/Types.js +1 -0
- package/Types.js.flow +2 -5
- package/WebFontLoader.js +4 -4
- package/bom.xml +17623 -24512
- package/buildEditorPlugins.js +4 -4
- package/buildInputRules.js +8 -4
- package/buildInputRules.js.flow +8 -4
- package/client/CollabConnector.js +9 -9
- package/client/EditorConnection.js +8 -6
- package/client/EditorConnection.js.flow +3 -2
- package/client/Licit.js +22 -58
- package/client/Licit.js.flow +12 -44
- package/client/Licit.test.js +49 -39
- package/client/Licit.test.js.flow +40 -34
- package/client/Reporter.js +3 -3
- package/client/SimpleConnector.js +4 -4
- package/client/http.js +0 -6
- package/client/http.js.flow +0 -8
- package/client/throttle.js +8 -2
- package/client/throttle.js.flow +2 -2
- package/convertFromDOMElement.js +2 -4
- package/convertFromDOMElement.js.flow +2 -5
- package/convertFromHTML.js +2 -3
- package/convertFromHTML.js.flow +2 -4
- package/convertFromJSON.js +1 -2
- package/convertFromJSON.js.flow +1 -2
- package/convertToCSSPTValue.js +6 -10
- package/convertToCSSPTValue.js.flow +8 -11
- package/createCommand.js +9 -9
- package/createEditorKeyMap.js +1 -1
- package/createEmptyEditorState.js +2 -3
- package/createEmptyEditorState.js.flow +2 -4
- package/createTableResizingPlugin.js +6 -6
- package/createTableResizingPlugin.js.flow +1 -1
- package/findActiveMark.js +1 -1
- package/findActiveMark.js.flow +1 -1
- package/insertTable.js +0 -3
- package/insertTable.js.flow +0 -2
- package/joinDown.js +1 -3
- package/joinDown.js.flow +1 -3
- package/joinUp.js +1 -3
- package/joinUp.js.flow +1 -3
- package/lookUpElement.js +2 -1
- package/lookUpElement.js.flow +1 -1
- package/normalizeHTML.js +3 -1
- package/normalizeHTML.js.flow +3 -1
- package/package.json +21 -16
- package/patchAnchorElements.js +1 -1
- package/patchAnchorElements.js.flow +1 -1
- package/patchBreakElements.js +3 -2
- package/patchBreakElements.js.flow +2 -2
- package/patchElementInlineStyles.js +1 -1
- package/patchElementInlineStyles.js.flow +1 -1
- package/patchListElements.js +4 -4
- package/patchListElements.js.flow +5 -5
- package/patchMathElements.js +5 -7
- package/patchMathElements.js.flow +2 -4
- package/patchStyleElements.js +1 -1
- package/patchStyleElements.js.flow +7 -6
- package/patchTableElements.js +2 -3
- package/patchTableElements.js.flow +2 -3
- package/sanitizeURL.js +1 -1
- package/sanitizeURL.js.flow +1 -1
- package/splitListItem.js +2 -2
- package/splitListItem.js.flow +1 -1
- package/toggleBlockquote.js +4 -5
- package/toggleBlockquote.js.flow +5 -12
- package/toggleCodeBlock.js +6 -6
- package/toggleCodeBlock.js.flow +10 -10
- package/ui/AlertInfo.js +9 -9
- package/ui/BookmarkNodeView.js +13 -12
- package/ui/CommandButton.js +9 -9
- package/ui/CommandMenu.js +12 -12
- package/ui/CommandMenu.js.flow +1 -1
- package/ui/CommandMenuButton.js +11 -12
- package/ui/CommandMenuButton.js.flow +2 -3
- package/ui/CustomEditorView.js +13 -12
- package/ui/CustomEditorView.js.flow +1 -0
- package/ui/CustomMenu.js +8 -8
- package/ui/CustomMenuItem.js +10 -10
- package/ui/CustomNodeView.js +27 -16
- package/ui/CustomNodeView.js.flow +16 -9
- package/ui/CustomRadioButton.js +13 -15
- package/ui/CustomRadioButton.js.flow +2 -3
- package/ui/DocLayoutEditor.js +10 -11
- package/ui/DocLayoutEditor.js.flow +1 -2
- package/ui/Editor.js +16 -13
- package/ui/Editor.js.flow +7 -8
- package/ui/EditorFrameset.js +9 -9
- package/ui/EditorToolbar.js +24 -29
- package/ui/EditorToolbar.js.flow +22 -41
- package/ui/EditorToolbarConfig.js +5 -5
- package/ui/EditorToolbarConfig.js.flow +1 -1
- package/ui/FontSizeCommandMenuButton.js +10 -10
- package/ui/FontSizeCommandMenuButton.js.flow +1 -1
- package/ui/FontTypeCommandMenuButton.js +11 -12
- package/ui/FontTypeCommandMenuButton.js.flow +4 -5
- package/ui/Frag.js +8 -8
- package/ui/Icon.js +12 -12
- package/ui/ImageInlineEditor.js +9 -9
- package/ui/LinkTooltip.js +62 -27
- package/ui/LinkTooltip.js.flow +55 -22
- package/ui/LinkURLEditor.js +152 -34
- package/ui/LinkURLEditor.js.flow +177 -51
- package/ui/ListItemNodeView.js +4 -4
- package/ui/ListTypeButton.js +11 -14
- package/ui/ListTypeButton.js.flow +2 -5
- package/ui/ListTypeCommandButton.js +10 -10
- package/ui/ListTypeCommandButton.js.flow +1 -1
- package/ui/ListTypeMenu.js +11 -11
- package/ui/ListTypeMenu.js.flow +1 -1
- package/ui/LoadingIndicator.js +8 -8
- package/ui/MathEditor.js +10 -14
- package/ui/MathEditor.js.flow +1 -7
- package/ui/MathInlineEditor.js +13 -13
- package/ui/MathInlineEditor.js.flow +3 -4
- package/ui/MathNodeView.js +16 -15
- package/ui/MathNodeView.js.flow +10 -20
- package/ui/PasteMenu.js +11 -14
- package/ui/PasteMenu.js.flow +0 -4
- package/ui/ResizeObserver.js +1 -1
- package/ui/ResizeObserver.js.flow +1 -1
- package/ui/RichTextEditor.js +9 -9
- package/ui/SelectionObserver.js +6 -6
- package/ui/SelectionObserver.js.flow +2 -2
- package/ui/TableCellMenu.js +9 -9
- package/ui/TableGridSizeEditor.js +11 -12
- package/ui/TableGridSizeEditor.js.flow +6 -3
- package/ui/TableNodeView.js +15 -13
- package/ui/TableNodeView.js.flow +3 -3
- package/ui/bindScrollHandler.js +2 -1
- package/ui/bindScrollHandler.js.flow +1 -1
- package/ui/canUseCSSFont.js +5 -4
- package/ui/canUseCSSFont.js.flow +4 -5
- package/ui/czi-editor.css +1 -4
- package/ui/czi-form.css +102 -8
- package/ui/czi-image-view.css +1 -5
- package/ui/czi-link-tooltip.css +41 -0
- package/ui/czi-list.css +0 -4
- package/ui/czi-loading-indicator.css +1 -46
- package/ui/czi-table-cell-menu.css +3 -1
- package/ui/findActiveFontSize.js +2 -1
- package/ui/findActiveFontSize.js.flow +1 -4
- package/ui/findActiveFontType.js +4 -3
- package/ui/findActiveFontType.js.flow +3 -6
- package/ui/handleEditorDrop.js +1 -1
- package/ui/handleEditorDrop.js.flow +1 -1
- package/ui/handleEditorKeyDown.js +1 -1
- package/ui/handleEditorKeyDown.js.flow +1 -1
- package/ui/handleEditorPaste.js +1 -1
- package/ui/handleEditorPaste.js.flow +1 -1
- package/ui/injectStyleSheet.js +2 -2
- package/ui/injectStyleSheet.js.flow +2 -4
- package/ui/isElementFullyVisible.js +1 -10
- package/ui/isElementFullyVisible.js.flow +1 -13
- package/ui/mathquill-editor/MathQuillEditor.js +12 -13
- package/ui/mathquill-editor/MathQuillEditor.js.flow +0 -1
- package/ui/mathquill-editor/MathQuillEditorSymbolsPanel.js +9 -9
- package/ui/mathquill-editor/mathquill-import-kludge.js +1 -8
- package/ui/mathquill-editor/mathquill-import-kludge.js.flow +0 -7
- package/ui/renderLaTeXAsHTML.js +3 -3
- package/ui/resolveImage.js +4 -5
- package/ui/resolveImage.js.flow +3 -5
- package/ui/toCSSLineSpacing.js +2 -3
- package/ui/toCSSLineSpacing.js.flow +2 -4
|
@@ -1,30 +1,22 @@
|
|
|
1
1
|
// @flow
|
|
2
2
|
|
|
3
|
-
import { EditorState } from 'prosemirror-state';
|
|
4
|
-
import { TextSelection } from 'prosemirror-state';
|
|
3
|
+
import { EditorState, TextSelection } from 'prosemirror-state';
|
|
5
4
|
import { Transform } from 'prosemirror-transform';
|
|
6
5
|
import { EditorView } from 'prosemirror-view';
|
|
7
6
|
|
|
8
|
-
import {
|
|
9
|
-
MARK_LINK
|
|
10
|
-
} from './MarkNames.js';
|
|
7
|
+
import { MARK_LINK } from './MarkNames.js';
|
|
11
8
|
import {
|
|
12
9
|
hideSelectionPlaceholder,
|
|
13
10
|
showSelectionPlaceholder,
|
|
14
11
|
} from './SelectionPlaceholderPlugin.js';
|
|
15
12
|
import {
|
|
16
|
-
applyMark
|
|
17
|
-
} from '@modusoperandi/licit-ui-commands';
|
|
18
|
-
import {
|
|
19
|
-
findNodesWithSameMark
|
|
13
|
+
applyMark, findNodesWithSameMark, createPopUp
|
|
20
14
|
} from '@modusoperandi/licit-ui-commands';
|
|
21
15
|
import LinkURLEditor from './ui/LinkURLEditor.js';
|
|
22
16
|
import {
|
|
23
17
|
UICommand
|
|
24
18
|
} from '@modusoperandi/licit-doc-attrs-step';
|
|
25
|
-
import {
|
|
26
|
-
createPopUp
|
|
27
|
-
} from '@modusoperandi/licit-ui-commands';
|
|
19
|
+
import { INNER_LINK } from './Types.js';
|
|
28
20
|
|
|
29
21
|
class LinkSetURLCommand extends UICommand {
|
|
30
22
|
_popUp = null;
|
|
@@ -43,16 +35,40 @@ class LinkSetURLCommand extends UICommand {
|
|
|
43
35
|
return from < to;
|
|
44
36
|
};
|
|
45
37
|
|
|
46
|
-
|
|
38
|
+
showTocList = async (view) => {
|
|
39
|
+
let storeTOCvalue = [];
|
|
40
|
+
const TOCselectedNode = [];
|
|
41
|
+
|
|
42
|
+
const stylePromise = view.runtime;
|
|
43
|
+
|
|
44
|
+
if (stylePromise === null || undefined) {
|
|
45
|
+
return TOCselectedNode;
|
|
46
|
+
}
|
|
47
|
+
const styles = await stylePromise.fetchStyles();
|
|
48
|
+
|
|
49
|
+
storeTOCvalue = styles
|
|
50
|
+
.filter((style) => style.styles.toc === true)
|
|
51
|
+
.map((style) => style.styleName);
|
|
52
|
+
|
|
53
|
+
view.state.tr.doc.descendants((node, pos) => {
|
|
54
|
+
if (node.attrs.styleName) {
|
|
55
|
+
for (let i = 0; i <= storeTOCvalue.length; i++) {
|
|
56
|
+
if (storeTOCvalue[i] === node.attrs.styleName) {
|
|
57
|
+
TOCselectedNode.push({ node_: node, pos_: pos });
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
});
|
|
62
|
+
|
|
63
|
+
return TOCselectedNode;
|
|
64
|
+
};
|
|
65
|
+
|
|
66
|
+
waitForUserInput = async (
|
|
47
67
|
state: EditorState,
|
|
48
68
|
dispatch: ?(tr: Transform) => void,
|
|
49
69
|
view: ?EditorView,
|
|
50
70
|
event: ?SyntheticEvent<>
|
|
51
71
|
): Promise<any> => {
|
|
52
|
-
if (this._popUp) {
|
|
53
|
-
return Promise.resolve(undefined);
|
|
54
|
-
}
|
|
55
|
-
|
|
56
72
|
if (dispatch) {
|
|
57
73
|
dispatch(showSelectionPlaceholder(state));
|
|
58
74
|
}
|
|
@@ -65,20 +81,23 @@ class LinkSetURLCommand extends UICommand {
|
|
|
65
81
|
const { from, to } = selection;
|
|
66
82
|
const result = findNodesWithSameMark(doc, from, to, markType);
|
|
67
83
|
const href = result ? result.mark.attrs.href : null;
|
|
84
|
+
const tocItemsNode = await this.showTocList(view);
|
|
85
|
+
const viewPops = {
|
|
86
|
+
href_: href,
|
|
87
|
+
TOCselectedNode_: tocItemsNode,
|
|
88
|
+
view_: view,
|
|
89
|
+
};
|
|
90
|
+
|
|
68
91
|
return new Promise((resolve) => {
|
|
69
|
-
this._popUp = createPopUp(
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
}
|
|
79
|
-
},
|
|
80
|
-
}
|
|
81
|
-
);
|
|
92
|
+
this._popUp = createPopUp(LinkURLEditor, viewPops, {
|
|
93
|
+
modal: true,
|
|
94
|
+
onClose: (val) => {
|
|
95
|
+
if (this._popUp) {
|
|
96
|
+
resolve(val);
|
|
97
|
+
this._popUp = null;
|
|
98
|
+
}
|
|
99
|
+
},
|
|
100
|
+
});
|
|
82
101
|
});
|
|
83
102
|
};
|
|
84
103
|
|
|
@@ -86,16 +105,25 @@ class LinkSetURLCommand extends UICommand {
|
|
|
86
105
|
state: EditorState,
|
|
87
106
|
dispatch: ?(tr: Transform) => void,
|
|
88
107
|
view: ?EditorView,
|
|
89
|
-
|
|
108
|
+
url: ?string
|
|
90
109
|
): boolean => {
|
|
91
110
|
if (dispatch) {
|
|
92
111
|
const { selection, schema } = state;
|
|
93
112
|
let { tr } = state;
|
|
94
113
|
tr = view ? hideSelectionPlaceholder(view.state) : tr;
|
|
95
114
|
tr = tr.setSelection(selection);
|
|
96
|
-
if (
|
|
115
|
+
if (url !== undefined) {
|
|
116
|
+
let selectionId;
|
|
117
|
+
let href;
|
|
118
|
+
if (url.includes(INNER_LINK)) {
|
|
119
|
+
selectionId = url.split(INNER_LINK)[0];
|
|
120
|
+
href = url.split(INNER_LINK)[1];
|
|
121
|
+
} else {
|
|
122
|
+
selectionId = null;
|
|
123
|
+
href = url;
|
|
124
|
+
}
|
|
97
125
|
const markType = schema.marks[MARK_LINK];
|
|
98
|
-
const attrs =
|
|
126
|
+
const attrs = url ? { href, selectionId } : null;
|
|
99
127
|
tr = applyMark(
|
|
100
128
|
tr.setSelection(state.selection),
|
|
101
129
|
schema,
|
|
@@ -108,10 +136,6 @@ class LinkSetURLCommand extends UICommand {
|
|
|
108
136
|
view && view.focus();
|
|
109
137
|
return true;
|
|
110
138
|
};
|
|
111
|
-
|
|
112
|
-
cancel(): void {
|
|
113
|
-
return null;
|
|
114
|
-
}
|
|
115
139
|
}
|
|
116
140
|
|
|
117
141
|
export default LinkSetURLCommand;
|
package/LinkTooltipPlugin.js
CHANGED
|
@@ -1,29 +1,29 @@
|
|
|
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
|
-
function
|
|
3
|
-
function
|
|
4
|
-
function
|
|
2
|
+
function _regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = "function" == typeof Symbol ? Symbol : {}, a = i.iterator || "@@iterator", c = i.asyncIterator || "@@asyncIterator", u = i.toStringTag || "@@toStringTag"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, ""); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, "_invoke", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: "normal", arg: t.call(e, r) }; } catch (t) { return { type: "throw", arg: t }; } } e.wrap = wrap; var h = "suspendedStart", l = "suspendedYield", f = "executing", s = "completed", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { ["next", "throw", "return"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if ("throw" !== c.type) { var u = c.arg, h = u.value; return h && "object" == _typeof(h) && n.call(h, "__await") ? e.resolve(h.__await).then(function (t) { invoke("next", t, i, a); }, function (t) { invoke("throw", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke("throw", t, i, a); }); } a(c.arg); } var r; o(this, "_invoke", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw Error("Generator is already running"); if (o === s) { if ("throw" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if ("next" === n.method) n.sent = n._sent = n.arg;else if ("throw" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else "return" === n.method && n.abrupt("return", n.arg); o = f; var p = tryCatch(e, r, n); if ("normal" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } "throw" === p.type && (o = s, n.method = "throw", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, "throw" === n && e.iterator["return"] && (r.method = "return", r.arg = t, maybeInvokeDelegate(e, r), "throw" === r.method) || "return" !== n && (r.method = "throw", r.arg = new TypeError("The iterator does not provide a '" + n + "' method")), y; var i = tryCatch(o, e.iterator, r.arg); if ("throw" === i.type) return r.method = "throw", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, "return" !== r.method && (r.method = "next", r.arg = t), r.delegate = null, y) : a : (r.method = "throw", r.arg = new TypeError("iterator result is not an object"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = "normal", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: "root" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || "" === e) { var r = e[a]; if (r) return r.call(e); if ("function" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + " is not iterable"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, "GeneratorFunction"), e.isGeneratorFunction = function (t) { var e = "function" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || "GeneratorFunction" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, "GeneratorFunction")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, "Generator"), define(g, a, function () { return this; }), define(g, "toString", function () { return "[object Generator]"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = "next", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) "t" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if ("throw" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = "throw", a.arg = e, r.next = n, o && (r.method = "next", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if ("root" === i.tryLoc) return handle("end"); if (i.tryLoc <= this.prev) { var c = n.call(i, "catchLoc"), u = n.call(i, "finallyLoc"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw Error("try statement without catch or finally"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, "finallyLoc") && this.prev < o.finallyLoc) { var i = o; break; } } i && ("break" === t || "continue" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = "next", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if ("throw" === t.type) throw t.arg; return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, "catch": function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if ("throw" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw Error("illegal catch attempt"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, "next" === this.method && (this.arg = t), y; } }, e; }
|
|
3
|
+
function asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); }
|
|
4
|
+
function _asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { asyncGeneratorStep(a, r, o, _next, _throw, "next", n); } function _throw(n) { asyncGeneratorStep(a, r, o, _next, _throw, "throw", n); } _next(void 0); }); }; }
|
|
5
|
+
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
6
|
+
function _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } }
|
|
7
|
+
function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; }
|
|
5
8
|
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
|
|
6
9
|
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); }
|
|
7
|
-
function _classCallCheck(
|
|
10
|
+
function _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); }
|
|
8
11
|
function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }
|
|
9
|
-
function _possibleConstructorReturn(
|
|
10
|
-
function _assertThisInitialized(
|
|
12
|
+
function _possibleConstructorReturn(t, e) { if (e && ("object" == _typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return _assertThisInitialized(t); }
|
|
13
|
+
function _assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; }
|
|
11
14
|
function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
|
|
12
|
-
function _getPrototypeOf(
|
|
13
|
-
function _inherits(
|
|
14
|
-
function _setPrototypeOf(
|
|
15
|
-
import { EditorState, Plugin, PluginKey } from 'prosemirror-state';
|
|
16
|
-
import { TextSelection } from 'prosemirror-state';
|
|
15
|
+
function _getPrototypeOf(t) { return _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, _getPrototypeOf(t); }
|
|
16
|
+
function _inherits(t, e) { if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function"); t.prototype = Object.create(e && e.prototype, { constructor: { value: t, writable: !0, configurable: !0 } }), Object.defineProperty(t, "prototype", { writable: !1 }), e && _setPrototypeOf(t, e); }
|
|
17
|
+
function _setPrototypeOf(t, e) { return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) { return t.__proto__ = e, t; }, _setPrototypeOf(t, e); }
|
|
18
|
+
import { EditorState, Plugin, PluginKey, TextSelection } from 'prosemirror-state';
|
|
17
19
|
import { EditorView } from 'prosemirror-view';
|
|
18
20
|
import { MARK_LINK } from './MarkNames.js';
|
|
19
21
|
import { hideSelectionPlaceholder } from './SelectionPlaceholderPlugin.js';
|
|
20
|
-
import { applyMark } from '@modusoperandi/licit-ui-commands';
|
|
21
|
-
import { findNodesWithSameMark } from '@modusoperandi/licit-ui-commands';
|
|
22
|
+
import { applyMark, findNodesWithSameMark, atAnchorTopCenter, createPopUp } from '@modusoperandi/licit-ui-commands';
|
|
22
23
|
import lookUpElement from './lookUpElement.js';
|
|
23
24
|
import LinkTooltip from './ui/LinkTooltip.js';
|
|
24
25
|
import LinkURLEditor from './ui/LinkURLEditor.js';
|
|
25
|
-
import {
|
|
26
|
-
import { createPopUp } from '@modusoperandi/licit-ui-commands';
|
|
26
|
+
import { INNER_LINK } from './Types.js';
|
|
27
27
|
import '@modusoperandi/licit-ui-commands/ui/czi-pop-up.css';
|
|
28
28
|
|
|
29
29
|
// https://prosemirror.net/examples/tooltip/
|
|
@@ -59,7 +59,55 @@ var LinkTooltipView = /*#__PURE__*/function () {
|
|
|
59
59
|
_this._editor = null;
|
|
60
60
|
_this._popup = null;
|
|
61
61
|
});
|
|
62
|
+
_defineProperty(this, "showTocList", /*#__PURE__*/function () {
|
|
63
|
+
var _ref = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee(view) {
|
|
64
|
+
var storeTOCvalue, TOCselectedNode, stylePromise, styles;
|
|
65
|
+
return _regeneratorRuntime().wrap(function _callee$(_context) {
|
|
66
|
+
while (1) switch (_context.prev = _context.next) {
|
|
67
|
+
case 0:
|
|
68
|
+
storeTOCvalue = [];
|
|
69
|
+
TOCselectedNode = [];
|
|
70
|
+
stylePromise = view.runtime;
|
|
71
|
+
if (!(stylePromise === null || undefined)) {
|
|
72
|
+
_context.next = 7;
|
|
73
|
+
break;
|
|
74
|
+
}
|
|
75
|
+
return _context.abrupt("return", TOCselectedNode);
|
|
76
|
+
case 7:
|
|
77
|
+
_context.next = 9;
|
|
78
|
+
return stylePromise.fetchStyles();
|
|
79
|
+
case 9:
|
|
80
|
+
styles = _context.sent;
|
|
81
|
+
storeTOCvalue = styles.filter(function (style) {
|
|
82
|
+
return style.styles.toc === true;
|
|
83
|
+
}).map(function (style) {
|
|
84
|
+
return style.styleName;
|
|
85
|
+
});
|
|
86
|
+
view.state.tr.doc.descendants(function (node, pos) {
|
|
87
|
+
if (node.attrs.styleName) {
|
|
88
|
+
for (var i = 0; i <= storeTOCvalue.length; i++) {
|
|
89
|
+
if (storeTOCvalue[i] === node.attrs.styleName) {
|
|
90
|
+
TOCselectedNode.push({
|
|
91
|
+
node_: node,
|
|
92
|
+
pos_: pos
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
});
|
|
98
|
+
return _context.abrupt("return", TOCselectedNode);
|
|
99
|
+
case 13:
|
|
100
|
+
case "end":
|
|
101
|
+
return _context.stop();
|
|
102
|
+
}
|
|
103
|
+
}, _callee);
|
|
104
|
+
}));
|
|
105
|
+
return function (_x) {
|
|
106
|
+
return _ref.apply(this, arguments);
|
|
107
|
+
};
|
|
108
|
+
}());
|
|
62
109
|
_defineProperty(this, "_onEdit", function (view) {
|
|
110
|
+
_this._popup.close();
|
|
63
111
|
if (_this._editor) {
|
|
64
112
|
return;
|
|
65
113
|
}
|
|
@@ -74,24 +122,32 @@ var LinkTooltipView = /*#__PURE__*/function () {
|
|
|
74
122
|
if (!result) {
|
|
75
123
|
return;
|
|
76
124
|
}
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
href
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
125
|
+
_this.showTocList(view).then(function (data) {
|
|
126
|
+
var tocItemsNode = data;
|
|
127
|
+
var href = result.mark.attrs.href;
|
|
128
|
+
var viewPops = {
|
|
129
|
+
selectionId_: result.mark.attrs.selectionId,
|
|
130
|
+
href_: href,
|
|
131
|
+
TOCselectedNode_: tocItemsNode,
|
|
132
|
+
view_: view
|
|
133
|
+
};
|
|
134
|
+
_this._editor = createPopUp(LinkURLEditor, viewPops, {
|
|
135
|
+
onClose: function onClose(value) {
|
|
136
|
+
_this._editor = null;
|
|
137
|
+
_this._onEditEnd(view, selection, value);
|
|
138
|
+
}
|
|
139
|
+
});
|
|
85
140
|
});
|
|
86
141
|
});
|
|
87
142
|
_defineProperty(this, "_onRemove", function (view) {
|
|
143
|
+
_this._popup.close();
|
|
88
144
|
_this._onEditEnd(view, view.state.selection, null);
|
|
89
145
|
});
|
|
90
|
-
_defineProperty(this, "_onEditEnd", function (view, initialSelection,
|
|
146
|
+
_defineProperty(this, "_onEditEnd", function (view, initialSelection, url) {
|
|
91
147
|
var state = view.state,
|
|
92
148
|
dispatch = view.dispatch;
|
|
93
149
|
var tr = hideSelectionPlaceholder(state);
|
|
94
|
-
if (
|
|
150
|
+
if (url !== undefined) {
|
|
95
151
|
var schema = state.schema;
|
|
96
152
|
var markType = schema.marks[MARK_LINK];
|
|
97
153
|
if (markType) {
|
|
@@ -99,8 +155,21 @@ var LinkTooltipView = /*#__PURE__*/function () {
|
|
|
99
155
|
if (result) {
|
|
100
156
|
var linkSelection = TextSelection.create(tr.doc, result.from.pos, result.to.pos + 1);
|
|
101
157
|
tr = tr.setSelection(linkSelection);
|
|
158
|
+
var selectionId;
|
|
159
|
+
var href;
|
|
160
|
+
if (url === null) {
|
|
161
|
+
selectionId = null;
|
|
162
|
+
href = null;
|
|
163
|
+
} else if (url.includes(INNER_LINK)) {
|
|
164
|
+
selectionId = url.split(INNER_LINK)[0];
|
|
165
|
+
href = url.split(INNER_LINK)[1];
|
|
166
|
+
} else {
|
|
167
|
+
selectionId = null;
|
|
168
|
+
href = url;
|
|
169
|
+
}
|
|
102
170
|
var attrs = href ? {
|
|
103
|
-
href: href
|
|
171
|
+
href: href,
|
|
172
|
+
selectionId: selectionId
|
|
104
173
|
} : null;
|
|
105
174
|
tr = applyMark(tr, schema, markType, attrs);
|
|
106
175
|
|
|
@@ -118,6 +187,22 @@ var LinkTooltipView = /*#__PURE__*/function () {
|
|
|
118
187
|
this.update(editorView, null);
|
|
119
188
|
}
|
|
120
189
|
return _createClass(LinkTooltipView, [{
|
|
190
|
+
key: "getInnerlinkSelected_position",
|
|
191
|
+
value: function getInnerlinkSelected_position(view, selectionId) {
|
|
192
|
+
var tocItemPos = null;
|
|
193
|
+
if (selectionId) {
|
|
194
|
+
view.state.tr.doc.descendants(function (node, pos) {
|
|
195
|
+
if (node.attrs.styleName && node.attrs.innerLink === selectionId) {
|
|
196
|
+
tocItemPos = {
|
|
197
|
+
position: pos,
|
|
198
|
+
textContent: node.textContent
|
|
199
|
+
};
|
|
200
|
+
}
|
|
201
|
+
});
|
|
202
|
+
}
|
|
203
|
+
return tocItemPos;
|
|
204
|
+
}
|
|
205
|
+
}, {
|
|
121
206
|
key: "update",
|
|
122
207
|
value: function update(view, lastState) {
|
|
123
208
|
if (view.readOnly) {
|
|
@@ -151,19 +236,22 @@ var LinkTooltipView = /*#__PURE__*/function () {
|
|
|
151
236
|
this.destroy();
|
|
152
237
|
return;
|
|
153
238
|
}
|
|
239
|
+
var tocItemPos = this.getInnerlinkSelected_position(view, result.mark.attrs.selectionId);
|
|
154
240
|
var popup = this._popup;
|
|
155
241
|
var viewPops = {
|
|
156
242
|
editorState: state,
|
|
157
243
|
editorView: view,
|
|
158
244
|
href: result.mark.attrs.href,
|
|
245
|
+
selectionId_: result.mark.attrs.selectionId,
|
|
159
246
|
onCancel: this._onCancel,
|
|
160
247
|
onEdit: this._onEdit,
|
|
161
|
-
onRemove: this._onRemove
|
|
248
|
+
onRemove: this._onRemove,
|
|
249
|
+
tocItemPos_: tocItemPos
|
|
162
250
|
};
|
|
163
251
|
if (popup && anchorEl === this._anchorEl) {
|
|
164
252
|
popup.update(viewPops);
|
|
165
253
|
} else {
|
|
166
|
-
popup
|
|
254
|
+
popup === null || popup === void 0 || popup.close();
|
|
167
255
|
this._anchorEl = anchorEl;
|
|
168
256
|
this._popup = createPopUp(LinkTooltip, viewPops, {
|
|
169
257
|
anchor: anchorEl,
|
|
@@ -176,8 +264,9 @@ var LinkTooltipView = /*#__PURE__*/function () {
|
|
|
176
264
|
}, {
|
|
177
265
|
key: "destroy",
|
|
178
266
|
value: function destroy() {
|
|
179
|
-
|
|
180
|
-
this.
|
|
267
|
+
var _this$_popup, _this$_editor;
|
|
268
|
+
(_this$_popup = this._popup) === null || _this$_popup === void 0 || _this$_popup.close();
|
|
269
|
+
(_this$_editor = this._editor) === null || _this$_editor === void 0 || _this$_editor.close();
|
|
181
270
|
}
|
|
182
271
|
}]);
|
|
183
272
|
}();
|
|
@@ -1,18 +1,25 @@
|
|
|
1
1
|
// @flow
|
|
2
2
|
|
|
3
|
-
import {
|
|
4
|
-
|
|
3
|
+
import {
|
|
4
|
+
EditorState,
|
|
5
|
+
Plugin,
|
|
6
|
+
PluginKey,
|
|
7
|
+
TextSelection,
|
|
8
|
+
} from 'prosemirror-state';
|
|
5
9
|
import { EditorView } from 'prosemirror-view';
|
|
6
10
|
|
|
7
11
|
import { MARK_LINK } from './MarkNames.js';
|
|
8
12
|
import { hideSelectionPlaceholder } from './SelectionPlaceholderPlugin.js';
|
|
9
|
-
import {
|
|
10
|
-
|
|
13
|
+
import {
|
|
14
|
+
applyMark,
|
|
15
|
+
findNodesWithSameMark,
|
|
16
|
+
atAnchorTopCenter,
|
|
17
|
+
createPopUp,
|
|
18
|
+
} from '@modusoperandi/licit-ui-commands';
|
|
11
19
|
import lookUpElement from './lookUpElement.js';
|
|
12
20
|
import LinkTooltip from './ui/LinkTooltip.js';
|
|
13
21
|
import LinkURLEditor from './ui/LinkURLEditor.js';
|
|
14
|
-
import {
|
|
15
|
-
import { createPopUp } from '@modusoperandi/licit-ui-commands';
|
|
22
|
+
import { INNER_LINK } from './Types.js';
|
|
16
23
|
|
|
17
24
|
import '@modusoperandi/licit-ui-commands/ui/czi-pop-up.css';
|
|
18
25
|
|
|
@@ -41,6 +48,18 @@ class LinkTooltipView {
|
|
|
41
48
|
this.update(editorView, null);
|
|
42
49
|
}
|
|
43
50
|
|
|
51
|
+
getInnerlinkSelected_position(view: EditorView, selectionId): void {
|
|
52
|
+
let tocItemPos = null;
|
|
53
|
+
if (selectionId) {
|
|
54
|
+
view.state.tr.doc.descendants((node, pos) => {
|
|
55
|
+
if (node.attrs.styleName && node.attrs.innerLink === selectionId) {
|
|
56
|
+
tocItemPos = { position: pos, textContent: node.textContent };
|
|
57
|
+
}
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
return tocItemPos;
|
|
61
|
+
}
|
|
62
|
+
|
|
44
63
|
update(view: EditorView, lastState: EditorState): void {
|
|
45
64
|
if (view.readOnly) {
|
|
46
65
|
this.destroy();
|
|
@@ -70,21 +89,26 @@ class LinkTooltipView {
|
|
|
70
89
|
this.destroy();
|
|
71
90
|
return;
|
|
72
91
|
}
|
|
73
|
-
|
|
92
|
+
const tocItemPos = this.getInnerlinkSelected_position(
|
|
93
|
+
view,
|
|
94
|
+
result.mark.attrs.selectionId
|
|
95
|
+
);
|
|
74
96
|
const popup = this._popup;
|
|
75
97
|
const viewPops = {
|
|
76
98
|
editorState: state,
|
|
77
99
|
editorView: view,
|
|
78
100
|
href: result.mark.attrs.href,
|
|
101
|
+
selectionId_: result.mark.attrs.selectionId,
|
|
79
102
|
onCancel: this._onCancel,
|
|
80
103
|
onEdit: this._onEdit,
|
|
81
104
|
onRemove: this._onRemove,
|
|
105
|
+
tocItemPos_: tocItemPos,
|
|
82
106
|
};
|
|
83
107
|
|
|
84
108
|
if (popup && anchorEl === this._anchorEl) {
|
|
85
109
|
popup.update(viewPops);
|
|
86
110
|
} else {
|
|
87
|
-
popup
|
|
111
|
+
popup?.close();
|
|
88
112
|
this._anchorEl = anchorEl;
|
|
89
113
|
this._popup = createPopUp(LinkTooltip, viewPops, {
|
|
90
114
|
anchor: anchorEl,
|
|
@@ -96,8 +120,8 @@ class LinkTooltipView {
|
|
|
96
120
|
}
|
|
97
121
|
|
|
98
122
|
destroy() {
|
|
99
|
-
this._popup
|
|
100
|
-
this._editor
|
|
123
|
+
this._popup?.close();
|
|
124
|
+
this._editor?.close();
|
|
101
125
|
}
|
|
102
126
|
|
|
103
127
|
_onCancel = (view: EditorView): void => {
|
|
@@ -111,7 +135,34 @@ class LinkTooltipView {
|
|
|
111
135
|
this._popup = null;
|
|
112
136
|
};
|
|
113
137
|
|
|
138
|
+
showTocList = async (view) => {
|
|
139
|
+
let storeTOCvalue = [];
|
|
140
|
+
const TOCselectedNode = [];
|
|
141
|
+
|
|
142
|
+
const stylePromise = view.runtime;
|
|
143
|
+
if (stylePromise === null || undefined) {
|
|
144
|
+
return TOCselectedNode;
|
|
145
|
+
} else {
|
|
146
|
+
const styles = await stylePromise.fetchStyles();
|
|
147
|
+
|
|
148
|
+
storeTOCvalue = styles
|
|
149
|
+
.filter((style) => style.styles.toc === true)
|
|
150
|
+
.map((style) => style.styleName);
|
|
151
|
+
view.state.tr.doc.descendants((node, pos) => {
|
|
152
|
+
if (node.attrs.styleName) {
|
|
153
|
+
for (let i = 0; i <= storeTOCvalue.length; i++) {
|
|
154
|
+
if (storeTOCvalue[i] === node.attrs.styleName) {
|
|
155
|
+
TOCselectedNode.push({ node_: node, pos_: pos });
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
});
|
|
160
|
+
return TOCselectedNode;
|
|
161
|
+
}
|
|
162
|
+
};
|
|
163
|
+
|
|
114
164
|
_onEdit = (view: EditorView): void => {
|
|
165
|
+
this._popup.close();
|
|
115
166
|
if (this._editor) {
|
|
116
167
|
return;
|
|
117
168
|
}
|
|
@@ -125,32 +176,39 @@ class LinkTooltipView {
|
|
|
125
176
|
return;
|
|
126
177
|
}
|
|
127
178
|
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
179
|
+
this.showTocList(view).then((data) => {
|
|
180
|
+
const tocItemsNode = data;
|
|
181
|
+
const href = result.mark.attrs.href;
|
|
182
|
+
const viewPops = {
|
|
183
|
+
selectionId_: result.mark.attrs.selectionId,
|
|
184
|
+
href_: href,
|
|
185
|
+
TOCselectedNode_: tocItemsNode,
|
|
186
|
+
view_: view,
|
|
187
|
+
};
|
|
188
|
+
|
|
189
|
+
this._editor = createPopUp(LinkURLEditor, viewPops, {
|
|
133
190
|
onClose: (value) => {
|
|
134
191
|
this._editor = null;
|
|
135
192
|
this._onEditEnd(view, selection, value);
|
|
136
193
|
},
|
|
137
|
-
}
|
|
138
|
-
);
|
|
194
|
+
});
|
|
195
|
+
});
|
|
139
196
|
};
|
|
140
197
|
|
|
141
198
|
_onRemove = (view: EditorView): void => {
|
|
199
|
+
this._popup.close();
|
|
142
200
|
this._onEditEnd(view, view.state.selection, null);
|
|
143
201
|
};
|
|
144
202
|
|
|
145
203
|
_onEditEnd = (
|
|
146
204
|
view: EditorView,
|
|
147
205
|
initialSelection: TextSelection,
|
|
148
|
-
|
|
206
|
+
url: ?string
|
|
149
207
|
): void => {
|
|
150
208
|
const { state, dispatch } = view;
|
|
151
209
|
let tr = hideSelectionPlaceholder(state);
|
|
152
210
|
|
|
153
|
-
if (
|
|
211
|
+
if (url !== undefined) {
|
|
154
212
|
const { schema } = state;
|
|
155
213
|
const markType = schema.marks[MARK_LINK];
|
|
156
214
|
if (markType) {
|
|
@@ -167,7 +225,20 @@ class LinkTooltipView {
|
|
|
167
225
|
result.to.pos + 1
|
|
168
226
|
);
|
|
169
227
|
tr = tr.setSelection(linkSelection);
|
|
170
|
-
|
|
228
|
+
let selectionId;
|
|
229
|
+
let href;
|
|
230
|
+
if (url === null) {
|
|
231
|
+
selectionId = null;
|
|
232
|
+
href = null;
|
|
233
|
+
} else if (url.includes(INNER_LINK)) {
|
|
234
|
+
selectionId = url.split(INNER_LINK)[0];
|
|
235
|
+
href = url.split(INNER_LINK)[1];
|
|
236
|
+
} else {
|
|
237
|
+
selectionId = null;
|
|
238
|
+
href = url;
|
|
239
|
+
}
|
|
240
|
+
|
|
241
|
+
const attrs = href ? { href, selectionId } : null;
|
|
171
242
|
tr = applyMark(tr, schema, markType, attrs);
|
|
172
243
|
|
|
173
244
|
// [FS] IRAD-1005 2020-07-09
|
|
@@ -1,20 +1,19 @@
|
|
|
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
|
-
function _classCallCheck(
|
|
3
|
-
function _defineProperties(
|
|
4
|
-
function _createClass(
|
|
2
|
+
function _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); }
|
|
3
|
+
function _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } }
|
|
4
|
+
function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; }
|
|
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
|
-
function _possibleConstructorReturn(
|
|
7
|
-
function _assertThisInitialized(
|
|
6
|
+
function _possibleConstructorReturn(t, e) { if (e && ("object" == _typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return _assertThisInitialized(t); }
|
|
7
|
+
function _assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; }
|
|
8
8
|
function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
|
|
9
|
-
function _getPrototypeOf(
|
|
10
|
-
function _inherits(
|
|
11
|
-
function _setPrototypeOf(
|
|
12
|
-
function _defineProperty(
|
|
9
|
+
function _getPrototypeOf(t) { return _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, _getPrototypeOf(t); }
|
|
10
|
+
function _inherits(t, e) { if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function"); t.prototype = Object.create(e && e.prototype, { constructor: { value: t, writable: !0, configurable: !0 } }), Object.defineProperty(t, "prototype", { writable: !1 }), e && _setPrototypeOf(t, e); }
|
|
11
|
+
function _setPrototypeOf(t, e) { return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) { return t.__proto__ = e, t; }, _setPrototypeOf(t, e); }
|
|
12
|
+
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
13
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 { Fragment, Schema } from 'prosemirror-model';
|
|
16
|
-
import { EditorState } from 'prosemirror-state';
|
|
17
|
-
import { TextSelection } from 'prosemirror-state';
|
|
16
|
+
import { EditorState, TextSelection } from 'prosemirror-state';
|
|
18
17
|
import { Transform } from 'prosemirror-transform';
|
|
19
18
|
import { findParentNodeOfType } from 'prosemirror-utils';
|
|
20
19
|
import { EditorView } from 'prosemirror-view';
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
// @flow
|
|
2
2
|
|
|
3
3
|
import { Fragment, Schema } from 'prosemirror-model';
|
|
4
|
-
import { EditorState } from 'prosemirror-state';
|
|
5
|
-
import { TextSelection } from 'prosemirror-state';
|
|
4
|
+
import { EditorState, TextSelection } from 'prosemirror-state';
|
|
6
5
|
import { Transform } from 'prosemirror-transform';
|
|
7
6
|
import { findParentNodeOfType } from 'prosemirror-utils';
|
|
8
7
|
import { EditorView } from 'prosemirror-view';
|