@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.
Files changed (236) hide show
  1. package/BlockquoteInsertNewLineCommand.js +10 -11
  2. package/BlockquoteInsertNewLineCommand.js.flow +1 -2
  3. package/BlockquoteNodeSpec.js +2 -3
  4. package/BlockquoteNodeSpec.js.flow +1 -2
  5. package/BlockquoteToggleCommand.js +9 -9
  6. package/BookmarkNodeSpec.js +1 -1
  7. package/CodeBlockCommand.js +10 -10
  8. package/CodeBlockCommand.js.flow +1 -1
  9. package/ContentPlaceholderPlugin.js +17 -17
  10. package/ContentPlaceholderPlugin.js.flow +10 -12
  11. package/CursorPlaceholderPlugin.js +8 -8
  12. package/DocLayoutCommand.js +10 -12
  13. package/DocLayoutCommand.js.flow +1 -3
  14. package/EditorKeyMap.js +0 -1
  15. package/EditorKeyMap.js.flow +0 -2
  16. package/EditorMarks.js +1 -1
  17. package/EditorNodes.js +1 -2
  18. package/EditorNodes.js.flow +0 -1
  19. package/EditorPageLayoutPlugin.js +8 -8
  20. package/FontTypeMarkSpec.js +1 -1
  21. package/FontTypeMarkSpec.js.flow +1 -1
  22. package/HTMLMutator.js +4 -4
  23. package/HeadingNodeSpec.js +2 -12
  24. package/HeadingNodeSpec.js.flow +4 -14
  25. package/HistoryRedoCommand.js +9 -9
  26. package/HistoryUndoCommand.js +9 -9
  27. package/HorizontalRuleCommand.js +9 -9
  28. package/ImageUploadPlaceholderPlugin.js +13 -15
  29. package/ImageUploadPlaceholderPlugin.js.flow +5 -7
  30. package/LinkMarkSpec.js +6 -1
  31. package/LinkMarkSpec.js.flow +5 -0
  32. package/LinkSetURLCommand.js +126 -55
  33. package/LinkSetURLCommand.js.flow +61 -37
  34. package/LinkTooltipPlugin.js +119 -30
  35. package/LinkTooltipPlugin.js.flow +91 -20
  36. package/ListItemInsertNewLineCommand.js +10 -11
  37. package/ListItemInsertNewLineCommand.js.flow +1 -2
  38. package/ListItemMergeCommand.js +16 -15
  39. package/ListItemMergeCommand.js.flow +3 -4
  40. package/ListSplitCommand.js +9 -9
  41. package/ListToggleCommand.js +9 -9
  42. package/MarksClearCommand.js +9 -9
  43. package/MathEditCommand.js +10 -11
  44. package/MathEditCommand.js.flow +1 -2
  45. package/OrderedListNodeSpec.js +1 -1
  46. package/ParagraphNodeSpec.js +11 -2
  47. package/ParagraphNodeSpec.js.flow +9 -2
  48. package/ParagraphSpacingCommand.js +13 -14
  49. package/ParagraphSpacingCommand.js.flow +4 -9
  50. package/PrintCommand.js +9 -9
  51. package/SelectionPlaceholderPlugin.js +8 -8
  52. package/SpacerMarkSpec.js +1 -1
  53. package/StyleView.js +3 -4
  54. package/StyleView.js.flow +0 -1
  55. package/TableBackgroundColorCommand.js +12 -14
  56. package/TableBackgroundColorCommand.js.flow +2 -5
  57. package/TableBorderColorCommand.js +12 -14
  58. package/TableBorderColorCommand.js.flow +2 -7
  59. package/TableCellColorCommand.js +10 -11
  60. package/TableCellColorCommand.js.flow +1 -2
  61. package/TableCellMenuPlugin.js +16 -15
  62. package/TableCellMenuPlugin.js.flow +5 -7
  63. package/TableInsertCommand.js +11 -13
  64. package/TableInsertCommand.js.flow +2 -4
  65. package/TableMergeCellsCommand.js +13 -12
  66. package/TableMergeCellsCommand.js.flow +4 -3
  67. package/TableNodesSpecs.js +4 -2
  68. package/TableNodesSpecs.js.flow +4 -2
  69. package/TableResizePlugin.js +17 -16
  70. package/TableResizePlugin.js.flow +1 -1
  71. package/TextInsertTabSpaceCommand.js +9 -9
  72. package/Types.js +1 -0
  73. package/Types.js.flow +2 -5
  74. package/WebFontLoader.js +4 -4
  75. package/bom.xml +17623 -24512
  76. package/buildEditorPlugins.js +4 -4
  77. package/buildInputRules.js +8 -4
  78. package/buildInputRules.js.flow +8 -4
  79. package/client/CollabConnector.js +9 -9
  80. package/client/EditorConnection.js +8 -6
  81. package/client/EditorConnection.js.flow +3 -2
  82. package/client/Licit.js +22 -58
  83. package/client/Licit.js.flow +12 -44
  84. package/client/Licit.test.js +49 -39
  85. package/client/Licit.test.js.flow +40 -34
  86. package/client/Reporter.js +3 -3
  87. package/client/SimpleConnector.js +4 -4
  88. package/client/http.js +0 -6
  89. package/client/http.js.flow +0 -8
  90. package/client/throttle.js +8 -2
  91. package/client/throttle.js.flow +2 -2
  92. package/convertFromDOMElement.js +2 -4
  93. package/convertFromDOMElement.js.flow +2 -5
  94. package/convertFromHTML.js +2 -3
  95. package/convertFromHTML.js.flow +2 -4
  96. package/convertFromJSON.js +1 -2
  97. package/convertFromJSON.js.flow +1 -2
  98. package/convertToCSSPTValue.js +6 -10
  99. package/convertToCSSPTValue.js.flow +8 -11
  100. package/createCommand.js +9 -9
  101. package/createEditorKeyMap.js +1 -1
  102. package/createEmptyEditorState.js +2 -3
  103. package/createEmptyEditorState.js.flow +2 -4
  104. package/createTableResizingPlugin.js +6 -6
  105. package/createTableResizingPlugin.js.flow +1 -1
  106. package/findActiveMark.js +1 -1
  107. package/findActiveMark.js.flow +1 -1
  108. package/insertTable.js +0 -3
  109. package/insertTable.js.flow +0 -2
  110. package/joinDown.js +1 -3
  111. package/joinDown.js.flow +1 -3
  112. package/joinUp.js +1 -3
  113. package/joinUp.js.flow +1 -3
  114. package/lookUpElement.js +2 -1
  115. package/lookUpElement.js.flow +1 -1
  116. package/normalizeHTML.js +3 -1
  117. package/normalizeHTML.js.flow +3 -1
  118. package/package.json +21 -16
  119. package/patchAnchorElements.js +1 -1
  120. package/patchAnchorElements.js.flow +1 -1
  121. package/patchBreakElements.js +3 -2
  122. package/patchBreakElements.js.flow +2 -2
  123. package/patchElementInlineStyles.js +1 -1
  124. package/patchElementInlineStyles.js.flow +1 -1
  125. package/patchListElements.js +4 -4
  126. package/patchListElements.js.flow +5 -5
  127. package/patchMathElements.js +5 -7
  128. package/patchMathElements.js.flow +2 -4
  129. package/patchStyleElements.js +1 -1
  130. package/patchStyleElements.js.flow +7 -6
  131. package/patchTableElements.js +2 -3
  132. package/patchTableElements.js.flow +2 -3
  133. package/sanitizeURL.js +1 -1
  134. package/sanitizeURL.js.flow +1 -1
  135. package/splitListItem.js +2 -2
  136. package/splitListItem.js.flow +1 -1
  137. package/toggleBlockquote.js +4 -5
  138. package/toggleBlockquote.js.flow +5 -12
  139. package/toggleCodeBlock.js +6 -6
  140. package/toggleCodeBlock.js.flow +10 -10
  141. package/ui/AlertInfo.js +9 -9
  142. package/ui/BookmarkNodeView.js +13 -12
  143. package/ui/CommandButton.js +9 -9
  144. package/ui/CommandMenu.js +12 -12
  145. package/ui/CommandMenu.js.flow +1 -1
  146. package/ui/CommandMenuButton.js +11 -12
  147. package/ui/CommandMenuButton.js.flow +2 -3
  148. package/ui/CustomEditorView.js +13 -12
  149. package/ui/CustomEditorView.js.flow +1 -0
  150. package/ui/CustomMenu.js +8 -8
  151. package/ui/CustomMenuItem.js +10 -10
  152. package/ui/CustomNodeView.js +27 -16
  153. package/ui/CustomNodeView.js.flow +16 -9
  154. package/ui/CustomRadioButton.js +13 -15
  155. package/ui/CustomRadioButton.js.flow +2 -3
  156. package/ui/DocLayoutEditor.js +10 -11
  157. package/ui/DocLayoutEditor.js.flow +1 -2
  158. package/ui/Editor.js +16 -13
  159. package/ui/Editor.js.flow +7 -8
  160. package/ui/EditorFrameset.js +9 -9
  161. package/ui/EditorToolbar.js +24 -29
  162. package/ui/EditorToolbar.js.flow +22 -41
  163. package/ui/EditorToolbarConfig.js +5 -5
  164. package/ui/EditorToolbarConfig.js.flow +1 -1
  165. package/ui/FontSizeCommandMenuButton.js +10 -10
  166. package/ui/FontSizeCommandMenuButton.js.flow +1 -1
  167. package/ui/FontTypeCommandMenuButton.js +11 -12
  168. package/ui/FontTypeCommandMenuButton.js.flow +4 -5
  169. package/ui/Frag.js +8 -8
  170. package/ui/Icon.js +12 -12
  171. package/ui/ImageInlineEditor.js +9 -9
  172. package/ui/LinkTooltip.js +62 -27
  173. package/ui/LinkTooltip.js.flow +55 -22
  174. package/ui/LinkURLEditor.js +152 -34
  175. package/ui/LinkURLEditor.js.flow +177 -51
  176. package/ui/ListItemNodeView.js +4 -4
  177. package/ui/ListTypeButton.js +11 -14
  178. package/ui/ListTypeButton.js.flow +2 -5
  179. package/ui/ListTypeCommandButton.js +10 -10
  180. package/ui/ListTypeCommandButton.js.flow +1 -1
  181. package/ui/ListTypeMenu.js +11 -11
  182. package/ui/ListTypeMenu.js.flow +1 -1
  183. package/ui/LoadingIndicator.js +8 -8
  184. package/ui/MathEditor.js +10 -14
  185. package/ui/MathEditor.js.flow +1 -7
  186. package/ui/MathInlineEditor.js +13 -13
  187. package/ui/MathInlineEditor.js.flow +3 -4
  188. package/ui/MathNodeView.js +16 -15
  189. package/ui/MathNodeView.js.flow +10 -20
  190. package/ui/PasteMenu.js +11 -14
  191. package/ui/PasteMenu.js.flow +0 -4
  192. package/ui/ResizeObserver.js +1 -1
  193. package/ui/ResizeObserver.js.flow +1 -1
  194. package/ui/RichTextEditor.js +9 -9
  195. package/ui/SelectionObserver.js +6 -6
  196. package/ui/SelectionObserver.js.flow +2 -2
  197. package/ui/TableCellMenu.js +9 -9
  198. package/ui/TableGridSizeEditor.js +11 -12
  199. package/ui/TableGridSizeEditor.js.flow +6 -3
  200. package/ui/TableNodeView.js +15 -13
  201. package/ui/TableNodeView.js.flow +3 -3
  202. package/ui/bindScrollHandler.js +2 -1
  203. package/ui/bindScrollHandler.js.flow +1 -1
  204. package/ui/canUseCSSFont.js +5 -4
  205. package/ui/canUseCSSFont.js.flow +4 -5
  206. package/ui/czi-editor.css +1 -4
  207. package/ui/czi-form.css +102 -8
  208. package/ui/czi-image-view.css +1 -5
  209. package/ui/czi-link-tooltip.css +41 -0
  210. package/ui/czi-list.css +0 -4
  211. package/ui/czi-loading-indicator.css +1 -46
  212. package/ui/czi-table-cell-menu.css +3 -1
  213. package/ui/findActiveFontSize.js +2 -1
  214. package/ui/findActiveFontSize.js.flow +1 -4
  215. package/ui/findActiveFontType.js +4 -3
  216. package/ui/findActiveFontType.js.flow +3 -6
  217. package/ui/handleEditorDrop.js +1 -1
  218. package/ui/handleEditorDrop.js.flow +1 -1
  219. package/ui/handleEditorKeyDown.js +1 -1
  220. package/ui/handleEditorKeyDown.js.flow +1 -1
  221. package/ui/handleEditorPaste.js +1 -1
  222. package/ui/handleEditorPaste.js.flow +1 -1
  223. package/ui/injectStyleSheet.js +2 -2
  224. package/ui/injectStyleSheet.js.flow +2 -4
  225. package/ui/isElementFullyVisible.js +1 -10
  226. package/ui/isElementFullyVisible.js.flow +1 -13
  227. package/ui/mathquill-editor/MathQuillEditor.js +12 -13
  228. package/ui/mathquill-editor/MathQuillEditor.js.flow +0 -1
  229. package/ui/mathquill-editor/MathQuillEditorSymbolsPanel.js +9 -9
  230. package/ui/mathquill-editor/mathquill-import-kludge.js +1 -8
  231. package/ui/mathquill-editor/mathquill-import-kludge.js.flow +0 -7
  232. package/ui/renderLaTeXAsHTML.js +3 -3
  233. package/ui/resolveImage.js +4 -5
  234. package/ui/resolveImage.js.flow +3 -5
  235. package/ui/toCSSLineSpacing.js +2 -3
  236. 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
- waitForUserInput = (
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
- LinkURLEditor,
71
- { href },
72
- {
73
- modal: true,
74
- onClose: (val) => {
75
- if (this._popUp) {
76
- this._popUp = null;
77
- resolve(val);
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
- href: ?string
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 (href !== undefined) {
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 = href ? { href } : null;
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;
@@ -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 _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 _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
- function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
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(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
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(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); }
10
- function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
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(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
13
- 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); }
14
- function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
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 { atAnchorTopCenter } from '@modusoperandi/licit-ui-commands';
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
- var href = result.mark.attrs.href;
78
- _this._editor = createPopUp(LinkURLEditor, {
79
- href: href
80
- }, {
81
- onClose: function onClose(value) {
82
- _this._editor = null;
83
- _this._onEditEnd(view, selection, value);
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, href) {
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 (href !== undefined) {
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 && popup.close();
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
- this._popup && this._popup.close();
180
- this._editor && this._editor.close();
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 { EditorState, Plugin, PluginKey } from 'prosemirror-state';
4
- import { TextSelection } from 'prosemirror-state';
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 { applyMark } from '@modusoperandi/licit-ui-commands';
10
- import { findNodesWithSameMark } from '@modusoperandi/licit-ui-commands';
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 { atAnchorTopCenter } from '@modusoperandi/licit-ui-commands';
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 && popup.close();
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 && this._popup.close();
100
- this._editor && this._editor.close();
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
- const href = result.mark.attrs.href;
129
- this._editor = createPopUp(
130
- LinkURLEditor,
131
- { href },
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
- href: ?string
206
+ url: ?string
149
207
  ): void => {
150
208
  const { state, dispatch } = view;
151
209
  let tr = hideSelectionPlaceholder(state);
152
210
 
153
- if (href !== undefined) {
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
- const attrs = href ? { href } : null;
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(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
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
- function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
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(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; }
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(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
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
- function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
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; }
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';