@modusoperandi/licit 1.0.5 → 1.0.8

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 (253) 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 -18
  10. package/ContentPlaceholderPlugin.js.flow +10 -14
  11. package/CursorPlaceholderPlugin.js +8 -9
  12. package/CursorPlaceholderPlugin.js.flow +0 -2
  13. package/DocLayoutCommand.js +10 -12
  14. package/DocLayoutCommand.js.flow +1 -3
  15. package/EditorKeyMap.js +0 -1
  16. package/EditorKeyMap.js.flow +0 -2
  17. package/EditorMarks.js +1 -1
  18. package/EditorNodes.js +1 -2
  19. package/EditorNodes.js.flow +0 -1
  20. package/EditorPageLayoutPlugin.js +8 -8
  21. package/FontTypeMarkSpec.js +1 -1
  22. package/FontTypeMarkSpec.js.flow +1 -1
  23. package/HTMLMutator.js +6 -7
  24. package/HTMLMutator.js.flow +2 -3
  25. package/HeadingNodeSpec.js +2 -12
  26. package/HeadingNodeSpec.js.flow +4 -14
  27. package/HistoryRedoCommand.js +9 -9
  28. package/HistoryUndoCommand.js +9 -9
  29. package/HorizontalRuleCommand.js +9 -9
  30. package/ImageUploadPlaceholderPlugin.js +14 -18
  31. package/ImageUploadPlaceholderPlugin.js.flow +6 -11
  32. package/LinkMarkSpec.js +6 -1
  33. package/LinkMarkSpec.js.flow +5 -0
  34. package/LinkSetURLCommand.js +126 -55
  35. package/LinkSetURLCommand.js.flow +61 -37
  36. package/LinkTooltipPlugin.js +119 -31
  37. package/LinkTooltipPlugin.js.flow +91 -22
  38. package/ListItemInsertNewLineCommand.js +10 -11
  39. package/ListItemInsertNewLineCommand.js.flow +1 -2
  40. package/ListItemMergeCommand.js +17 -16
  41. package/ListItemMergeCommand.js.flow +4 -6
  42. package/ListSplitCommand.js +9 -9
  43. package/ListToggleCommand.js +9 -9
  44. package/MarksClearCommand.js +9 -9
  45. package/MathEditCommand.js +10 -11
  46. package/MathEditCommand.js.flow +1 -2
  47. package/OrderedListNodeSpec.js +1 -1
  48. package/ParagraphNodeSpec.js +11 -2
  49. package/ParagraphNodeSpec.js.flow +9 -2
  50. package/ParagraphSpacingCommand.js +13 -14
  51. package/ParagraphSpacingCommand.js.flow +4 -9
  52. package/PrintCommand.js +9 -9
  53. package/SelectionPlaceholderPlugin.js +8 -9
  54. package/SelectionPlaceholderPlugin.js.flow +0 -2
  55. package/SpacerMarkSpec.js +1 -1
  56. package/StyleView.js +3 -4
  57. package/StyleView.js.flow +0 -1
  58. package/TableBackgroundColorCommand.js +13 -16
  59. package/TableBackgroundColorCommand.js.flow +14 -18
  60. package/TableBorderColorCommand.js +13 -16
  61. package/TableBorderColorCommand.js.flow +14 -20
  62. package/TableCellColorCommand.js +11 -13
  63. package/TableCellColorCommand.js.flow +2 -4
  64. package/TableCellMenuPlugin.js +16 -16
  65. package/TableCellMenuPlugin.js.flow +5 -8
  66. package/TableInsertCommand.js +12 -15
  67. package/TableInsertCommand.js.flow +3 -6
  68. package/TableMergeCellsCommand.js +13 -12
  69. package/TableMergeCellsCommand.js.flow +4 -3
  70. package/TableNodesSpecs.js +4 -2
  71. package/TableNodesSpecs.js.flow +4 -2
  72. package/TableResizePlugin.js +18 -18
  73. package/TableResizePlugin.js.flow +2 -3
  74. package/TextInsertTabSpaceCommand.js +9 -9
  75. package/Types.js +1 -0
  76. package/Types.js.flow +2 -5
  77. package/WebFontLoader.js +4 -4
  78. package/bom.xml +20047 -28206
  79. package/buildEditorPlugins.js +4 -4
  80. package/buildInputRules.js +8 -4
  81. package/buildInputRules.js.flow +8 -4
  82. package/client/CollabConnector.js +9 -9
  83. package/client/EditorConnection.js +8 -6
  84. package/client/EditorConnection.js.flow +3 -2
  85. package/client/Licit.js +22 -59
  86. package/client/Licit.js.flow +12 -45
  87. package/client/Licit.test.js +49 -39
  88. package/client/Licit.test.js.flow +40 -34
  89. package/client/Reporter.js +3 -3
  90. package/client/SimpleConnector.js +4 -4
  91. package/client/http.js +0 -6
  92. package/client/http.js.flow +0 -8
  93. package/client/throttle.js +8 -2
  94. package/client/throttle.js.flow +2 -2
  95. package/convertFromDOMElement.js +2 -4
  96. package/convertFromDOMElement.js.flow +2 -5
  97. package/convertFromHTML.js +2 -3
  98. package/convertFromHTML.js.flow +2 -4
  99. package/convertFromJSON.js +1 -2
  100. package/convertFromJSON.js.flow +1 -2
  101. package/convertToCSSPTValue.js +6 -10
  102. package/convertToCSSPTValue.js.flow +8 -11
  103. package/createCommand.js +9 -9
  104. package/createEditorKeyMap.js +1 -1
  105. package/createEmptyEditorState.js +2 -3
  106. package/createEmptyEditorState.js.flow +2 -4
  107. package/createTableResizingPlugin.js +6 -6
  108. package/createTableResizingPlugin.js.flow +1 -1
  109. package/findActiveMark.js +1 -1
  110. package/findActiveMark.js.flow +1 -1
  111. package/insertTable.js +0 -3
  112. package/insertTable.js.flow +0 -2
  113. package/joinDown.js +1 -3
  114. package/joinDown.js.flow +1 -3
  115. package/joinUp.js +1 -3
  116. package/joinUp.js.flow +1 -3
  117. package/lookUpElement.js +2 -1
  118. package/lookUpElement.js.flow +1 -1
  119. package/normalizeHTML.js +3 -1
  120. package/normalizeHTML.js.flow +3 -1
  121. package/package.json +23 -17
  122. package/patchAnchorElements.js +1 -1
  123. package/patchAnchorElements.js.flow +1 -1
  124. package/patchBreakElements.js +3 -2
  125. package/patchBreakElements.js.flow +2 -2
  126. package/patchElementInlineStyles.js +1 -1
  127. package/patchElementInlineStyles.js.flow +1 -1
  128. package/patchListElements.js +6 -7
  129. package/patchListElements.js.flow +7 -8
  130. package/patchMathElements.js +5 -7
  131. package/patchMathElements.js.flow +2 -4
  132. package/patchStyleElements.js +1 -1
  133. package/patchStyleElements.js.flow +7 -6
  134. package/patchTableElements.js +2 -3
  135. package/patchTableElements.js.flow +2 -3
  136. package/sanitizeURL.js +1 -1
  137. package/sanitizeURL.js.flow +1 -1
  138. package/splitListItem.js +2 -2
  139. package/splitListItem.js.flow +1 -1
  140. package/styles.css +32 -3
  141. package/toggleBlockquote.js +4 -5
  142. package/toggleBlockquote.js.flow +5 -12
  143. package/toggleCodeBlock.js +6 -6
  144. package/toggleCodeBlock.js.flow +10 -10
  145. package/ui/AlertInfo.js +9 -10
  146. package/ui/AlertInfo.js.flow +0 -1
  147. package/ui/BookmarkNodeView.js +13 -13
  148. package/ui/BookmarkNodeView.js.flow +0 -2
  149. package/ui/CommandButton.js +9 -9
  150. package/ui/CommandMenu.js +12 -12
  151. package/ui/CommandMenu.js.flow +1 -1
  152. package/ui/CommandMenuButton.js +11 -13
  153. package/ui/CommandMenuButton.js.flow +2 -5
  154. package/ui/CustomEditorView.js +13 -12
  155. package/ui/CustomEditorView.js.flow +1 -0
  156. package/ui/CustomMenu.js +8 -10
  157. package/ui/CustomMenu.js.flow +0 -3
  158. package/ui/CustomMenuItem.js +10 -11
  159. package/ui/CustomMenuItem.js.flow +0 -1
  160. package/ui/CustomNodeView.js +27 -16
  161. package/ui/CustomNodeView.js.flow +16 -9
  162. package/ui/CustomRadioButton.js +13 -16
  163. package/ui/CustomRadioButton.js.flow +2 -4
  164. package/ui/DocLayoutEditor.js +10 -13
  165. package/ui/DocLayoutEditor.js.flow +1 -5
  166. package/ui/Editor.js +16 -16
  167. package/ui/Editor.js.flow +7 -12
  168. package/ui/EditorFrameset.js +9 -10
  169. package/ui/EditorFrameset.js.flow +0 -2
  170. package/ui/EditorToolbar.js +24 -30
  171. package/ui/EditorToolbar.js.flow +22 -43
  172. package/ui/EditorToolbarConfig.js +5 -5
  173. package/ui/EditorToolbarConfig.js.flow +1 -1
  174. package/ui/FontSizeCommandMenuButton.js +10 -10
  175. package/ui/FontSizeCommandMenuButton.js.flow +1 -1
  176. package/ui/FontTypeCommandMenuButton.js +11 -12
  177. package/ui/FontTypeCommandMenuButton.js.flow +4 -5
  178. package/ui/Frag.js +8 -9
  179. package/ui/Frag.js.flow +0 -2
  180. package/ui/Icon.js +12 -18
  181. package/ui/Icon.js.flow +0 -7
  182. package/ui/ImageInlineEditor.js +9 -10
  183. package/ui/ImageInlineEditor.js.flow +0 -1
  184. package/ui/LinkTooltip.js +62 -28
  185. package/ui/LinkTooltip.js.flow +55 -24
  186. package/ui/LinkURLEditor.js +151 -36
  187. package/ui/LinkURLEditor.js.flow +176 -54
  188. package/ui/ListItemNodeView.js +4 -4
  189. package/ui/ListTypeButton.js +11 -15
  190. package/ui/ListTypeButton.js.flow +2 -6
  191. package/ui/ListTypeCommandButton.js +10 -10
  192. package/ui/ListTypeCommandButton.js.flow +1 -1
  193. package/ui/ListTypeMenu.js +11 -12
  194. package/ui/ListTypeMenu.js.flow +1 -2
  195. package/ui/LoadingIndicator.js +8 -9
  196. package/ui/LoadingIndicator.js.flow +0 -1
  197. package/ui/MathEditor.js +10 -15
  198. package/ui/MathEditor.js.flow +1 -9
  199. package/ui/MathInlineEditor.js +13 -14
  200. package/ui/MathInlineEditor.js.flow +3 -5
  201. package/ui/MathNodeView.js +16 -16
  202. package/ui/MathNodeView.js.flow +10 -21
  203. package/ui/PasteMenu.js +11 -15
  204. package/ui/PasteMenu.js.flow +0 -5
  205. package/ui/ResizeObserver.js +4 -4
  206. package/ui/ResizeObserver.js.flow +3 -4
  207. package/ui/RichTextEditor.js +9 -9
  208. package/ui/SelectionObserver.js +6 -6
  209. package/ui/SelectionObserver.js.flow +2 -2
  210. package/ui/TableCellMenu.js +9 -10
  211. package/ui/TableCellMenu.js.flow +0 -2
  212. package/ui/TableGridSizeEditor.js +12 -15
  213. package/ui/TableGridSizeEditor.js.flow +7 -6
  214. package/ui/TableNodeView.js +15 -13
  215. package/ui/TableNodeView.js.flow +3 -3
  216. package/ui/bindScrollHandler.js +2 -1
  217. package/ui/bindScrollHandler.js.flow +1 -1
  218. package/ui/canUseCSSFont.js +5 -4
  219. package/ui/canUseCSSFont.js.flow +4 -5
  220. package/ui/czi-editor.css +1 -4
  221. package/ui/czi-form.css +102 -8
  222. package/ui/czi-image-view.css +1 -5
  223. package/ui/czi-link-tooltip.css +41 -0
  224. package/ui/czi-list.css +0 -4
  225. package/ui/czi-loading-indicator.css +1 -46
  226. package/ui/czi-table-cell-menu.css +3 -1
  227. package/ui/findActiveFontSize.js +2 -1
  228. package/ui/findActiveFontSize.js.flow +1 -4
  229. package/ui/findActiveFontType.js +4 -3
  230. package/ui/findActiveFontType.js.flow +3 -6
  231. package/ui/handleEditorDrop.js +1 -1
  232. package/ui/handleEditorDrop.js.flow +1 -1
  233. package/ui/handleEditorKeyDown.js +1 -1
  234. package/ui/handleEditorKeyDown.js.flow +1 -1
  235. package/ui/handleEditorPaste.js +1 -1
  236. package/ui/handleEditorPaste.js.flow +1 -1
  237. package/ui/injectStyleSheet.js +2 -2
  238. package/ui/injectStyleSheet.js.flow +2 -4
  239. package/ui/isElementFullyVisible.js +1 -10
  240. package/ui/isElementFullyVisible.js.flow +1 -13
  241. package/ui/mathquill-editor/MathQuillEditor.js +12 -14
  242. package/ui/mathquill-editor/MathQuillEditor.js.flow +0 -2
  243. package/ui/mathquill-editor/MathQuillEditorSymbolsPanel.js +9 -10
  244. package/ui/mathquill-editor/MathQuillEditorSymbolsPanel.js.flow +0 -1
  245. package/ui/mathquill-editor/mathquill-import-kludge.js +1 -9
  246. package/ui/mathquill-editor/mathquill-import-kludge.js.flow +0 -9
  247. package/ui/renderLaTeXAsHTML.js +3 -7
  248. package/ui/renderLaTeXAsHTML.js.flow +0 -4
  249. package/ui/resolveImage.js +4 -5
  250. package/ui/resolveImage.js.flow +3 -5
  251. package/ui/toCSSLineSpacing.js +2 -3
  252. package/ui/toCSSLineSpacing.js.flow +2 -4
  253. package/styles0.css +0 -29
package/ui/LinkTooltip.js CHANGED
@@ -1,28 +1,28 @@
1
1
  function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
2
2
  function _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(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
4
- function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
5
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
6
- 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); } }
7
- function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
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 _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); }
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; }
8
8
  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; }
9
+ 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); }
10
+ function _assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; }
11
11
  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
- 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; }
12
+ function _getPrototypeOf(t) { return _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, _getPrototypeOf(t); }
13
+ 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); }
14
+ function _setPrototypeOf(t, e) { return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) { return t.__proto__ = e, t; }, _setPrototypeOf(t, e); }
15
+ 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; }
16
16
  function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
17
17
  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); }
18
18
  import { EditorView } from 'prosemirror-view';
19
+ import { TextSelection } from 'prosemirror-state';
19
20
  import * as React from 'react';
20
21
  import scrollIntoView from 'smooth-scroll-into-view-if-needed';
21
22
  import sanitizeURL from '../sanitizeURL.js';
22
23
  import { CustomButton } from '@modusoperandi/licit-ui-commands';
23
- import './czi-link-tooltip.css';
24
24
  function isBookMarkHref(href) {
25
- return !!href && href.indexOf('#') === 0 && href.length >= 2;
25
+ return !!href && href.startsWith('#') && href.length >= 2;
26
26
  }
27
27
  var LinkTooltip = /*#__PURE__*/function (_React$PureComponent) {
28
28
  function LinkTooltip() {
@@ -33,9 +33,17 @@ var LinkTooltip = /*#__PURE__*/function (_React$PureComponent) {
33
33
  }
34
34
  _this = _callSuper(this, LinkTooltip, [].concat(args));
35
35
  _defineProperty(_this, "props", void 0);
36
- _defineProperty(_this, "_unmounted", false);
37
- _defineProperty(_this, "state", {
38
- hidden: false
36
+ _defineProperty(_this, "jumpLink", function (view, tocItemPos, href, selectionId) {
37
+ if (selectionId || selectionId === 0 && tocItemPos) {
38
+ _this.jumpInnerLink(view, tocItemPos);
39
+ } else {
40
+ _this._openLink(href);
41
+ }
42
+ });
43
+ _defineProperty(_this, "jumpInnerLink", function (view, tocItemPos) {
44
+ var transaction = view.state.tr;
45
+ var tr = transaction.setSelection(TextSelection.create(transaction.doc, tocItemPos + 1));
46
+ view.dispatch(tr.scrollIntoView(true));
39
47
  });
40
48
  _defineProperty(_this, "_openLink", function (href) {
41
49
  if (isBookMarkHref(href)) {
@@ -46,15 +54,13 @@ var LinkTooltip = /*#__PURE__*/function (_React$PureComponent) {
46
54
  onCancel = _this$props.onCancel,
47
55
  editorView = _this$props.editorView;
48
56
  onCancel(editorView);
49
- _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
57
+ _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
50
58
  return _regeneratorRuntime().wrap(function _callee$(_context) {
51
59
  while (1) switch (_context.prev = _context.next) {
52
60
  case 0:
53
61
  _context.next = 2;
54
62
  return scrollIntoView(el, {
55
63
  scrollMode: 'if-needed',
56
- // block: 'nearest',
57
- // inline: 'nearest',
58
64
  behavior: 'smooth'
59
65
  });
60
66
  case 2:
@@ -67,7 +73,19 @@ var LinkTooltip = /*#__PURE__*/function (_React$PureComponent) {
67
73
  return;
68
74
  }
69
75
  if (href) {
70
- window.open(sanitizeURL(href));
76
+ var _this$props$editorVie;
77
+ var url = sanitizeURL(href);
78
+ var popupString;
79
+ if (_this.props.editorView.editable) {
80
+ popupString = 'Any unsaved changes will be lost';
81
+ } else {
82
+ popupString = '';
83
+ }
84
+ if ((_this$props$editorVie = _this.props.editorView) !== null && _this$props$editorVie !== void 0 && (_this$props$editorVie = _this$props$editorVie.runtime) !== null && _this$props$editorVie !== void 0 && _this$props$editorVie.openLinkDialog) {
85
+ _this.props.editorView.runtime.openLinkDialog(url, popupString);
86
+ } else {
87
+ window.open(url);
88
+ }
71
89
  }
72
90
  });
73
91
  return _this;
@@ -76,14 +94,25 @@ var LinkTooltip = /*#__PURE__*/function (_React$PureComponent) {
76
94
  return _createClass(LinkTooltip, [{
77
95
  key: "render",
78
96
  value: function render() {
97
+ var _this2 = this;
79
98
  var _this$props2 = this.props,
80
99
  href = _this$props2.href,
81
100
  editorView = _this$props2.editorView,
82
101
  onEdit = _this$props2.onEdit,
83
- onRemove = _this$props2.onRemove;
102
+ onRemove = _this$props2.onRemove,
103
+ tocItemPos_ = _this$props2.tocItemPos_,
104
+ selectionId_ = _this$props2.selectionId_;
84
105
  // [FS] IRAD-1013 2020-07-09
85
- // Change button in "Apply Link" missing in LICIT.
86
-
106
+ var getLabel = function getLabel() {
107
+ if (tocItemPos_ && selectionId_) {
108
+ return tocItemPos_.textContent === '' ? 'Reference not found' : tocItemPos_.textContent;
109
+ } else if (!tocItemPos_ && selectionId_) {
110
+ return 'Reference not found';
111
+ }
112
+ return href;
113
+ };
114
+ var label = getLabel();
115
+ var isRemoved = label === 'Reference not found';
87
116
  return /*#__PURE__*/React.createElement("div", {
88
117
  className: "czi-link-tooltip"
89
118
  }, /*#__PURE__*/React.createElement("div", {
@@ -91,12 +120,17 @@ var LinkTooltip = /*#__PURE__*/function (_React$PureComponent) {
91
120
  }, /*#__PURE__*/React.createElement("div", {
92
121
  className: "czi-link-tooltip-row"
93
122
  }, /*#__PURE__*/React.createElement(CustomButton, {
94
- className: "czi-link-tooltip-href",
95
- label: href,
96
- onClick: this._openLink,
123
+ className: "czi-link-tooltip-href ".concat(isRemoved ? 'red-text disabled' : ''),
124
+ label: label,
125
+ onClick: !isRemoved ? function () {
126
+ return _this2.jumpLink(editorView, tocItemPos_ === null || tocItemPos_ === void 0 ? void 0 : tocItemPos_.position, href, selectionId_);
127
+ } : undefined,
128
+ style: {
129
+ color: isRemoved ? 'red' : undefined
130
+ },
97
131
  target: "new",
98
- title: href,
99
- value: href
132
+ title: label,
133
+ value: label
100
134
  }), /*#__PURE__*/React.createElement(CustomButton, {
101
135
  label: "Change",
102
136
  onClick: onEdit,
@@ -1,16 +1,15 @@
1
1
  // @flow
2
2
 
3
3
  import { EditorView } from 'prosemirror-view';
4
+ import { TextSelection } from 'prosemirror-state';
4
5
  import * as React from 'react';
5
6
  import scrollIntoView from 'smooth-scroll-into-view-if-needed';
6
7
 
7
8
  import sanitizeURL from '../sanitizeURL.js';
8
9
  import { CustomButton } from '@modusoperandi/licit-ui-commands';
9
10
 
10
- import './czi-link-tooltip.css';
11
-
12
11
  function isBookMarkHref(href: string): boolean {
13
- return !!href && href.indexOf('#') === 0 && href.length >= 2;
12
+ return !!href && href.startsWith('#') && href.length >= 2;
14
13
  }
15
14
 
16
15
  class LinkTooltip extends React.PureComponent<any, any> {
@@ -22,41 +21,62 @@ class LinkTooltip extends React.PureComponent<any, any> {
22
21
  onRemove: (view: EditorView) => void,
23
22
  };
24
23
 
25
- _unmounted = false;
26
-
27
- state = {
28
- hidden: false,
29
- };
30
-
31
24
  render(): React.Element<any> {
32
- const { href, editorView, onEdit, onRemove } = this.props;
25
+ const { href, editorView, onEdit, onRemove, tocItemPos_, selectionId_ } =
26
+ this.props;
33
27
  // [FS] IRAD-1013 2020-07-09
34
- // Change button in "Apply Link" missing in LICIT.
28
+ const getLabel = () => {
29
+ if (tocItemPos_ && selectionId_) {
30
+ return tocItemPos_.textContent === '' ? 'Reference not found' : tocItemPos_.textContent;
31
+ }else if(!tocItemPos_ && selectionId_){
32
+ return 'Reference not found';
33
+ }
34
+ return href;
35
+ };
36
+
37
+ const label = getLabel();
38
+ const isRemoved = label === 'Reference not found';
35
39
 
36
40
  return (
37
41
  <div className="czi-link-tooltip">
38
42
  <div className="czi-link-tooltip-body">
39
43
  <div className="czi-link-tooltip-row">
40
44
  <CustomButton
41
- className="czi-link-tooltip-href"
42
- label={href}
43
- onClick={this._openLink}
45
+ className={`czi-link-tooltip-href ${isRemoved ? 'red-text disabled' : ''}`}
46
+ label={label}
47
+ onClick={!isRemoved ? () =>
48
+ this.jumpLink(editorView, tocItemPos_?.position, href, selectionId_)
49
+ : undefined
50
+ }
51
+ style={{ color: isRemoved ? 'red' : undefined }}
44
52
  target="new"
45
- title={href}
46
- value={href}
53
+ title={label}
54
+ value={label}
47
55
  />
48
56
  <CustomButton label="Change" onClick={onEdit} value={editorView} />
49
- <CustomButton
50
- label="Remove"
51
- onClick={onRemove}
52
- value={editorView}
53
- />
57
+ <CustomButton label="Remove" onClick={onRemove} value={editorView} />
54
58
  </div>
55
59
  </div>
56
60
  </div>
57
61
  );
58
62
  }
59
63
 
64
+ jumpLink = (view: EditorView, tocItemPos, href, selectionId): void => {
65
+ if (selectionId || (selectionId === 0 && tocItemPos)) {
66
+ this.jumpInnerLink(view, tocItemPos);
67
+ } else {
68
+ this._openLink(href);
69
+ }
70
+ };
71
+
72
+ jumpInnerLink = (view: EditorView, tocItemPos): void => {
73
+ const transaction = view.state.tr;
74
+ const tr = transaction.setSelection(
75
+ TextSelection.create(transaction.doc, tocItemPos + 1)
76
+ );
77
+ view.dispatch(tr.scrollIntoView(true));
78
+ };
79
+
60
80
  _openLink = (href: string): void => {
61
81
  if (isBookMarkHref(href)) {
62
82
  const id = href.substr(1);
@@ -68,8 +88,6 @@ class LinkTooltip extends React.PureComponent<any, any> {
68
88
  // https://www.npmjs.com/package/smooth-scroll-into-view-if-needed
69
89
  await scrollIntoView(el, {
70
90
  scrollMode: 'if-needed',
71
- // block: 'nearest',
72
- // inline: 'nearest',
73
91
  behavior: 'smooth',
74
92
  });
75
93
  })();
@@ -77,7 +95,20 @@ class LinkTooltip extends React.PureComponent<any, any> {
77
95
  return;
78
96
  }
79
97
  if (href) {
80
- window.open(sanitizeURL(href));
98
+ const url = sanitizeURL(href);
99
+ let popupString;
100
+
101
+ if (this.props.editorView.editable) {
102
+ popupString = 'Any unsaved changes will be lost';
103
+ } else {
104
+ popupString = '';
105
+ }
106
+
107
+ if (this.props.editorView?.runtime?.openLinkDialog) {
108
+ this.props.editorView.runtime.openLinkDialog(url, popupString);
109
+ } else {
110
+ window.open(url);
111
+ }
81
112
  }
82
113
  };
83
114
  }
@@ -1,25 +1,26 @@
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 * as React from 'react';
16
16
  import PropTypes from 'prop-types';
17
17
  import sanitizeURL from '../sanitizeURL.js';
18
- import { CustomButton } from '@modusoperandi/licit-ui-commands';
18
+ import { CustomButton, preventEventDefault } from '@modusoperandi/licit-ui-commands';
19
19
  import { ENTER } from './KeyCodes.js';
20
- import { preventEventDefault } from '@modusoperandi/licit-ui-commands';
21
- import './czi-form.css';
22
- import './czi-image-url-editor.css';
20
+ import uuid from '../uuid.js';
21
+ import { EditorView } from 'prosemirror-view';
22
+ import { INNER_LINK } from '../Types.js';
23
+ import { Tooltip as ReactTooltip } from 'react-tooltip';
23
24
  var BAD_CHARACTER_PATTER = /\s/;
24
25
  var LinkURLEditor = /*#__PURE__*/function (_React$PureComponent) {
25
26
  function LinkURLEditor() {
@@ -30,7 +31,47 @@ var LinkURLEditor = /*#__PURE__*/function (_React$PureComponent) {
30
31
  }
31
32
  _this = _callSuper(this, LinkURLEditor, [].concat(args));
32
33
  _defineProperty(_this, "state", {
33
- url: _this.props.href
34
+ url: _this.props.href_,
35
+ TOCselectedNode_: _this.props.TOCselectedNode_,
36
+ view_: _this.props.view_,
37
+ selectionId: _this.props.selectionId_
38
+ });
39
+ _defineProperty(_this, "openForm", function (formName) {
40
+ var i;
41
+ var tabcontent = document.getElementsByClassName('tabcontent');
42
+ for (i = 0; i < tabcontent.length; i++) {
43
+ tabcontent[i].style.display = 'none';
44
+ }
45
+ var tablinks = document.getElementsByClassName('tablinks');
46
+ for (i = 0; i < tablinks.length; i++) {
47
+ tablinks[i].classList.remove('active');
48
+ }
49
+ var selectedTab = document.getElementById(formName);
50
+ if (selectedTab) {
51
+ selectedTab.style.display = 'block';
52
+ }
53
+ var clickedButton = document.querySelector(".tablinks[data-form=\"".concat(formName, "\"]"));
54
+ if (clickedButton) {
55
+ clickedButton.classList.add('active');
56
+ }
57
+ });
58
+ _defineProperty(_this, "handleOptionChange", function (textContent_, tocNodePosition_, view) {
59
+ var _TocNode$attrs;
60
+ var tr = view.state.tr;
61
+ var TocNode = view.state.doc.nodeAt(tocNodePosition_);
62
+ var textContent;
63
+ if (!(TocNode !== null && TocNode !== void 0 && (_TocNode$attrs = TocNode.attrs) !== null && _TocNode$attrs !== void 0 && _TocNode$attrs.innerLink)) {
64
+ var nodeUUID = uuid();
65
+ var texthash = '#';
66
+ var nodeAttrs = TocNode.attrs;
67
+ var nodeconcat_UUID = texthash.concat(nodeUUID);
68
+ nodeAttrs.innerLink = nodeconcat_UUID;
69
+ tr.setNodeMarkup(tocNodePosition_, undefined, nodeAttrs);
70
+ textContent = nodeconcat_UUID.concat(INNER_LINK, textContent_);
71
+ } else {
72
+ textContent = TocNode.attrs.innerLink.concat(INNER_LINK, textContent_);
73
+ }
74
+ _this.props.close(textContent);
34
75
  });
35
76
  _defineProperty(_this, "_onKeyDown", function (e) {
36
77
  if (e.keyCode === ENTER) {
@@ -57,14 +98,36 @@ var LinkURLEditor = /*#__PURE__*/function (_React$PureComponent) {
57
98
  }
58
99
  _inherits(LinkURLEditor, _React$PureComponent);
59
100
  return _createClass(LinkURLEditor, [{
101
+ key: "componentDidMount",
102
+ value: function componentDidMount() {
103
+ var selectionId = this.state.selectionId;
104
+ var defaultTab = selectionId ? 'innerlink' : 'webpage';
105
+ var selectedTab = this.props.selectedTab || defaultTab;
106
+ this.openForm(selectedTab);
107
+ }
108
+ }, {
60
109
  key: "render",
61
110
  value: function render() {
62
- var href = this.props.href;
63
- var url = this.state.url;
111
+ var _this2 = this;
112
+ var _this$state = this.state,
113
+ url = _this$state.url,
114
+ TOCselectedNode_ = _this$state.TOCselectedNode_,
115
+ view_ = _this$state.view_,
116
+ selectionId = _this$state.selectionId;
117
+ var isTOCValid = function isTOCValid() {
118
+ if (!TOCselectedNode_ || TOCselectedNode_.length === 0) {
119
+ return false;
120
+ }
121
+ return TOCselectedNode_.some(function (item) {
122
+ return item.node_ && item.node_.textContent.trim() !== '';
123
+ });
124
+ };
125
+ var isValid = isTOCValid();
126
+ console.log('isTOCValid:', isValid);
64
127
  var error = url ? BAD_CHARACTER_PATTER.test(url) : false;
65
128
  var label = 'Apply';
66
- var disabled = !!error;
67
- if (href) {
129
+ var disabled;
130
+ if (this.props.href) {
68
131
  label = url ? 'Apply' : 'Remove';
69
132
  disabled = error;
70
133
  } else {
@@ -72,17 +135,39 @@ var LinkURLEditor = /*#__PURE__*/function (_React$PureComponent) {
72
135
  }
73
136
  return /*#__PURE__*/React.createElement("div", {
74
137
  className: "czi-image-url-editor"
75
- }, /*#__PURE__*/React.createElement("form", {
138
+ }, /*#__PURE__*/React.createElement("div", {
76
139
  className: "czi-form",
140
+ style: {
141
+ padding: '10px',
142
+ display: 'flex'
143
+ }
144
+ }, /*#__PURE__*/React.createElement("div", {
145
+ className: "tab"
146
+ }, /*#__PURE__*/React.createElement("button", {
147
+ className: "tablinks",
148
+ "data-form": "webpage",
149
+ onClick: function onClick() {
150
+ return _this2.openForm('webpage');
151
+ }
152
+ }, "Existing Web Page"), /*#__PURE__*/React.createElement("button", {
153
+ className: "tablinks",
154
+ "data-form": "innerlink",
155
+ onClick: function onClick() {
156
+ return _this2.openForm('innerlink');
157
+ }
158
+ }, "Place in this Document")), /*#__PURE__*/React.createElement("div", {
159
+ className: "tabcontent",
160
+ id: "webpage"
161
+ }, /*#__PURE__*/React.createElement("form", {
77
162
  onSubmit: preventEventDefault
78
- }, /*#__PURE__*/React.createElement("fieldset", null, /*#__PURE__*/React.createElement("legend", null, "Add a Link"), /*#__PURE__*/React.createElement("input", {
163
+ }, /*#__PURE__*/React.createElement("fieldset", null, /*#__PURE__*/React.createElement("label", null, "Add a Link : "), /*#__PURE__*/React.createElement("input", {
79
164
  autoFocus: true,
80
165
  onChange: this._onURLChange,
81
166
  onKeyDown: this._onKeyDown,
82
167
  placeholder: "Paste a URL",
83
168
  spellCheck: false,
84
169
  type: "text",
85
- value: url || ''
170
+ value: selectionId ? null : url
86
171
  })), /*#__PURE__*/React.createElement("div", {
87
172
  className: "czi-form-buttons"
88
173
  }, /*#__PURE__*/React.createElement(CustomButton, {
@@ -92,22 +177,52 @@ var LinkURLEditor = /*#__PURE__*/function (_React$PureComponent) {
92
177
  active: true,
93
178
  disabled: disabled,
94
179
  label: label,
95
- onClick: this._apply
96
- }))));
180
+ onClick: function onClick() {
181
+ _this2._apply();
182
+ }
183
+ })))), !isValid ? /*#__PURE__*/React.createElement("div", {
184
+ className: "tabcontent",
185
+ id: "innerlink"
186
+ }, /*#__PURE__*/React.createElement("p", null, "No TOC styles"), /*#__PURE__*/React.createElement("div", {
187
+ className: "czi-form-buttons"
188
+ }, /*#__PURE__*/React.createElement(CustomButton, {
189
+ label: "Cancel",
190
+ onClick: this._cancel
191
+ }))) : /*#__PURE__*/React.createElement("div", {
192
+ className: "tabcontent",
193
+ id: "innerlink"
194
+ }, /*#__PURE__*/React.createElement("form", {
195
+ action: "#"
196
+ }, /*#__PURE__*/React.createElement("label", null, "Select the Inner Link"), /*#__PURE__*/React.createElement("br", null), /*#__PURE__*/React.createElement("select", {
197
+ defaultValue: TOCselectedNode_.some(function (res) {
198
+ return res.node_.textContent === url;
199
+ }) ? url : null,
200
+ id: "toc",
201
+ name: "toccontents",
202
+ size: "3"
203
+ }, TOCselectedNode_ === null || TOCselectedNode_ === void 0 ? void 0 : TOCselectedNode_.filter(function (res) {
204
+ return res.node_.textContent.trim() !== '';
205
+ }).map(function (res, index) {
206
+ return /*#__PURE__*/React.createElement("option", {
207
+ "data-tooltip-content": res.node_.textContent,
208
+ "data-tooltip-id": "select-toc-tooltip",
209
+ key: index,
210
+ onClick: function onClick() {
211
+ _this2.handleOptionChange(res.node_.textContent, res.pos_, view_);
212
+ },
213
+ value: res.node_.textContent
214
+ }, res.node_.textContent);
215
+ })), /*#__PURE__*/React.createElement(ReactTooltip, {
216
+ effect: "solid",
217
+ id: "select-toc-tooltip",
218
+ place: "bottom"
219
+ }), /*#__PURE__*/React.createElement("br", null), /*#__PURE__*/React.createElement("div", {
220
+ className: "czi-form-buttons"
221
+ }, /*#__PURE__*/React.createElement(CustomButton, {
222
+ label: "Cancel",
223
+ onClick: this._cancel
224
+ }))))));
97
225
  }
98
226
  }]);
99
227
  }(React.PureComponent);
100
- // [FS] IRAD-1005 2020-07-07
101
- // Upgrade outdated packages.
102
- // To take care of the property type declaration.
103
- _defineProperty(LinkURLEditor, "propsTypes", {
104
- href: PropTypes.string,
105
- close: function close(props, propName) {
106
- var fn = props[propName];
107
- if (!fn.prototype || typeof fn.prototype.constructor !== 'function' && fn.prototype.constructor.length !== 1) {
108
- return new Error(propName + 'must be a function with 1 arg of type string');
109
- }
110
- return null;
111
- }
112
- });
113
228
  export default LinkURLEditor;