@modusoperandi/licit 1.0.4 → 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 (360) hide show
  1. package/BlockquoteInsertNewLineCommand.js +16 -18
  2. package/BlockquoteInsertNewLineCommand.js.flow +76 -77
  3. package/BlockquoteNodeSpec.js +3 -4
  4. package/BlockquoteNodeSpec.js.flow +29 -30
  5. package/BlockquoteToggleCommand.js +16 -17
  6. package/BlockquoteToggleCommand.js.flow +56 -56
  7. package/BookmarkNodeSpec.js +2 -2
  8. package/BookmarkNodeSpec.js.flow +39 -39
  9. package/BulletListNodeSpec.js.flow +61 -61
  10. package/CZIProseMirror.js.flow +90 -90
  11. package/CodeBlockCommand.js +17 -18
  12. package/CodeBlockCommand.js.flow +65 -65
  13. package/CodeBlockNodeSpec.js.flow +24 -24
  14. package/CodeMarkSpec.js.flow +14 -14
  15. package/ContentPlaceholderPlugin.js +20 -21
  16. package/ContentPlaceholderPlugin.js.flow +185 -187
  17. package/CursorPlaceholderPlugin.js +11 -11
  18. package/CursorPlaceholderPlugin.js.flow +115 -115
  19. package/DocLayoutCommand.js +18 -21
  20. package/DocLayoutCommand.js.flow +97 -99
  21. package/DocNodeSpec.js.flow +64 -64
  22. package/EMMarkSpec.js.flow +14 -14
  23. package/EditorCommands.js.flow +126 -126
  24. package/EditorKeyMap.js +0 -1
  25. package/EditorKeyMap.js.flow +185 -187
  26. package/EditorMarks.js +2 -2
  27. package/EditorMarks.js.flow +71 -71
  28. package/EditorNodes.js +2 -3
  29. package/EditorNodes.js.flow +58 -59
  30. package/EditorPageLayoutPlugin.js +10 -10
  31. package/EditorPageLayoutPlugin.js.flow +67 -67
  32. package/EditorPlugins.js.flow +8 -8
  33. package/EditorSchema.js.flow +12 -12
  34. package/EditorState.js.flow +7 -7
  35. package/FontSizeMarkSpec.js.flow +49 -49
  36. package/FontTypeMarkSpec.js +1 -1
  37. package/FontTypeMarkSpec.js.flow +80 -80
  38. package/HTMLMutator.js +6 -7
  39. package/HTMLMutator.js.flow +59 -59
  40. package/HardBreakNodeSpec.js.flow +15 -15
  41. package/HeadingNodeSpec.js +3 -13
  42. package/HeadingNodeSpec.js.flow +42 -52
  43. package/HistoryRedoCommand.js +15 -16
  44. package/HistoryRedoCommand.js.flow +41 -41
  45. package/HistoryUndoCommand.js +15 -16
  46. package/HistoryUndoCommand.js.flow +41 -41
  47. package/HorizontalRuleCommand.js +15 -16
  48. package/HorizontalRuleCommand.js.flow +71 -71
  49. package/HorizontalRuleNodeSpec.js.flow +39 -39
  50. package/ImageUploadPlaceholderPlugin.js +15 -17
  51. package/ImageUploadPlaceholderPlugin.js.flow +190 -192
  52. package/LinkMarkSpec.js +6 -1
  53. package/LinkMarkSpec.js.flow +37 -32
  54. package/LinkSetURLCommand.js +130 -60
  55. package/LinkSetURLCommand.js.flow +141 -117
  56. package/LinkTooltipPlugin.js +122 -34
  57. package/LinkTooltipPlugin.js.flow +261 -190
  58. package/ListItemInsertNewLineCommand.js +16 -18
  59. package/ListItemInsertNewLineCommand.js.flow +76 -77
  60. package/ListItemMergeCommand.js +24 -24
  61. package/ListItemMergeCommand.js.flow +198 -199
  62. package/ListItemNodeSpec.js.flow +52 -52
  63. package/ListSplitCommand.js +15 -16
  64. package/ListSplitCommand.js.flow +54 -54
  65. package/ListToggleCommand.js +19 -20
  66. package/ListToggleCommand.js.flow +99 -99
  67. package/MarkNames.js.flow +18 -18
  68. package/MarksClearCommand.js +17 -18
  69. package/MarksClearCommand.js.flow +65 -65
  70. package/MathEditCommand.js +17 -19
  71. package/MathEditCommand.js.flow +119 -120
  72. package/MathNodeSpec.js.flow +46 -46
  73. package/NodeNames.js.flow +23 -23
  74. package/OrderedListNodeSpec.js +2 -2
  75. package/OrderedListNodeSpec.js.flow +132 -132
  76. package/ParagraphNodeSpec.js +11 -2
  77. package/ParagraphNodeSpec.js.flow +163 -156
  78. package/ParagraphSpacingCommand.js +21 -23
  79. package/ParagraphSpacingCommand.js.flow +139 -144
  80. package/PrintCommand.js +17 -18
  81. package/PrintCommand.js.flow +53 -53
  82. package/SelectionPlaceholderPlugin.js +11 -11
  83. package/SelectionPlaceholderPlugin.js.flow +131 -131
  84. package/SpacerMarkSpec.js +2 -2
  85. package/SpacerMarkSpec.js.flow +47 -47
  86. package/StrikeMarkSpec.js.flow +21 -21
  87. package/StrongMarkSpec.js.flow +25 -25
  88. package/StyleView.js +5 -7
  89. package/StyleView.js.flow +18 -19
  90. package/TableBackgroundColorCommand.js +34 -23
  91. package/TableBackgroundColorCommand.js.flow +80 -75
  92. package/TableBorderColorCommand.js +34 -23
  93. package/TableBorderColorCommand.js.flow +81 -75
  94. package/TableCellColorCommand.js +20 -21
  95. package/TableCellColorCommand.js.flow +74 -75
  96. package/TableCellMenuPlugin.js +19 -19
  97. package/TableCellMenuPlugin.js.flow +130 -132
  98. package/TableInsertCommand.js +19 -22
  99. package/TableInsertCommand.js.flow +118 -120
  100. package/TableMergeCellsCommand.js +19 -19
  101. package/TableMergeCellsCommand.js.flow +113 -112
  102. package/TableNodesSpecs.js +4 -2
  103. package/TableNodesSpecs.js.flow +80 -78
  104. package/TablePlugins.js.flow +14 -14
  105. package/TableResizePlugin.js +20 -20
  106. package/TableResizePlugin.js.flow +631 -631
  107. package/TextColorMarkSpec.js.flow +35 -35
  108. package/TextHighlightMarkSpec.js.flow +38 -38
  109. package/TextInsertTabSpaceCommand.js +15 -16
  110. package/TextInsertTabSpaceCommand.js.flow +106 -106
  111. package/TextNoWrapMarkSpec.js.flow +14 -14
  112. package/TextNodeSpec.js.flow +7 -7
  113. package/TextSelectionMarkSpec.js.flow +24 -24
  114. package/TextSubMarkSpec.js.flow +20 -20
  115. package/TextSuperMarkSpec.js.flow +20 -20
  116. package/TextUnderlineMarkSpec.js.flow +27 -27
  117. package/Types.js +6 -0
  118. package/Types.js.flow +77 -75
  119. package/WebFontLoader.js +6 -7
  120. package/WebFontLoader.js.flow +22 -22
  121. package/blockQuoteInputRule.js.flow +36 -36
  122. package/bom.xml +17223 -25722
  123. package/browser.js.flow +7 -7
  124. package/buildEditorPlugins.js +6 -7
  125. package/buildEditorPlugins.js.flow +49 -49
  126. package/buildInputRules.js +8 -4
  127. package/buildInputRules.js.flow +85 -81
  128. package/client/CollabConnector.js +20 -20
  129. package/client/CollabConnector.js.flow +90 -90
  130. package/client/EditorConnection.js +10 -9
  131. package/client/EditorConnection.js.flow +324 -323
  132. package/client/Licit.js +78 -115
  133. package/client/Licit.js.flow +611 -643
  134. package/client/Licit.test.js +49 -39
  135. package/client/Licit.test.js.flow +104 -98
  136. package/client/Reporter.js +5 -6
  137. package/client/Reporter.js.flow +37 -37
  138. package/client/SimpleConnector.js +5 -5
  139. package/client/SimpleConnector.js.flow +61 -61
  140. package/client/http.js +0 -6
  141. package/client/http.js.flow +62 -70
  142. package/client/licit.css +12 -12
  143. package/client/throttle.js +8 -2
  144. package/client/throttle.js.flow +27 -27
  145. package/convertFromDOMElement.js +2 -4
  146. package/convertFromDOMElement.js.flow +33 -36
  147. package/convertFromHTML.js +2 -3
  148. package/convertFromHTML.js.flow +15 -17
  149. package/convertFromJSON.js +1 -2
  150. package/convertFromJSON.js.flow +55 -56
  151. package/convertToCSSPTValue.js +6 -10
  152. package/convertToCSSPTValue.js.flow +19 -22
  153. package/convertToJSON.js.flow +7 -7
  154. package/createCommand.js +16 -17
  155. package/createCommand.js.flow +62 -62
  156. package/createEditorKeyMap.js +2 -2
  157. package/createEditorKeyMap.js.flow +94 -94
  158. package/createEmptyEditorState.js +2 -3
  159. package/createEmptyEditorState.js.flow +29 -31
  160. package/createTableResizingPlugin.js +6 -6
  161. package/createTableResizingPlugin.js.flow +86 -86
  162. package/findActionableCell.js.flow +74 -74
  163. package/findActiveMark.js +1 -1
  164. package/findActiveMark.js.flow +32 -32
  165. package/hyphenize.js.flow +17 -17
  166. package/index.d.ts +165 -165
  167. package/index.js.flow +10 -10
  168. package/insertTable.js +0 -3
  169. package/insertTable.js.flow +54 -56
  170. package/isEditorStateEmpty.js.flow +32 -32
  171. package/isTableNode.js.flow +15 -15
  172. package/joinDown.js +1 -3
  173. package/joinDown.js.flow +25 -27
  174. package/joinListNode.js.flow +55 -55
  175. package/joinUp.js +1 -3
  176. package/joinUp.js.flow +37 -39
  177. package/keymaps.js.flow +185 -185
  178. package/lookUpElement.js +2 -1
  179. package/lookUpElement.js.flow +14 -14
  180. package/nodeAt.js.flow +12 -12
  181. package/normalizeHTML.js +3 -1
  182. package/normalizeHTML.js.flow +80 -78
  183. package/package.json +162 -156
  184. package/patchAnchorElements.js +1 -1
  185. package/patchAnchorElements.js.flow +38 -38
  186. package/patchBreakElements.js +3 -2
  187. package/patchBreakElements.js.flow +22 -22
  188. package/patchElementInlineStyles.js +1 -1
  189. package/patchElementInlineStyles.js.flow +92 -92
  190. package/patchListElements.js +4 -4
  191. package/patchListElements.js.flow +276 -276
  192. package/patchMathElements.js +5 -7
  193. package/patchMathElements.js.flow +58 -60
  194. package/patchParagraphElements.js.flow +20 -20
  195. package/patchStyleElements.js +1 -1
  196. package/patchStyleElements.js.flow +197 -196
  197. package/patchTableElements.js +2 -3
  198. package/patchTableElements.js.flow +88 -89
  199. package/rebaseDocWithSteps.js.flow +42 -42
  200. package/sanitizeURL.js +1 -1
  201. package/sanitizeURL.js.flow +13 -13
  202. package/splitListItem.js +3 -3
  203. package/splitListItem.js.flow +191 -191
  204. package/styles.css +19 -19
  205. package/styles0.css +29 -29
  206. package/toClosestFontPtSize.js.flow +22 -22
  207. package/toSafeHTMLDocument.js.flow +9 -9
  208. package/toggleBlockquote.js +4 -5
  209. package/toggleBlockquote.js.flow +101 -108
  210. package/toggleCodeBlock.js +6 -6
  211. package/toggleCodeBlock.js.flow +102 -102
  212. package/ui/AlertInfo.js +15 -16
  213. package/ui/AlertInfo.js.flow +64 -64
  214. package/ui/BookmarkNodeView.js +20 -21
  215. package/ui/BookmarkNodeView.js.flow +66 -66
  216. package/ui/CommandButton.js +15 -16
  217. package/ui/CommandButton.js.flow +68 -68
  218. package/ui/CommandMenu.js +19 -20
  219. package/ui/CommandMenu.js.flow +75 -75
  220. package/ui/CommandMenuButton.js +23 -25
  221. package/ui/CommandMenuButton.js.flow +130 -131
  222. package/ui/CustomEditorView.js +20 -20
  223. package/ui/CustomEditorView.js.flow +29 -28
  224. package/ui/CustomMenu.js +11 -12
  225. package/ui/CustomMenu.js.flow +17 -17
  226. package/ui/CustomMenuItem.js +16 -18
  227. package/ui/CustomMenuItem.js.flow +36 -36
  228. package/ui/CustomNodeView.js +29 -19
  229. package/ui/CustomNodeView.js.flow +207 -200
  230. package/ui/CustomRadioButton.js +18 -21
  231. package/ui/CustomRadioButton.js.flow +64 -65
  232. package/ui/DocLayoutEditor.js +18 -20
  233. package/ui/DocLayoutEditor.js.flow +145 -146
  234. package/ui/Editor.js +30 -28
  235. package/ui/Editor.js.flow +287 -288
  236. package/ui/EditorFrameset.js +13 -14
  237. package/ui/EditorFrameset.js.flow +81 -81
  238. package/ui/EditorToolbar.js +36 -42
  239. package/ui/EditorToolbar.js.flow +199 -218
  240. package/ui/EditorToolbarConfig.js +5 -5
  241. package/ui/EditorToolbarConfig.js.flow +164 -164
  242. package/ui/FontSizeCommandMenuButton.js +14 -15
  243. package/ui/FontSizeCommandMenuButton.js.flow +66 -66
  244. package/ui/FontTypeCommandMenuButton.js +15 -17
  245. package/ui/FontTypeCommandMenuButton.js.flow +60 -61
  246. package/ui/Frag.js +11 -12
  247. package/ui/Frag.js.flow +13 -13
  248. package/ui/Icon.js +21 -24
  249. package/ui/Icon.js.flow +89 -89
  250. package/ui/ImageInlineEditor.js +14 -15
  251. package/ui/ImageInlineEditor.js.flow +67 -67
  252. package/ui/KeyCodes.js.flow +12 -12
  253. package/ui/LinkTooltip.js +68 -34
  254. package/ui/LinkTooltip.js.flow +118 -85
  255. package/ui/LinkURLEditor.js +160 -43
  256. package/ui/LinkURLEditor.js.flow +243 -117
  257. package/ui/ListItemNodeView.js +6 -7
  258. package/ui/ListItemNodeView.js.flow +98 -98
  259. package/ui/ListTypeButton.js +23 -27
  260. package/ui/ListTypeButton.js.flow +128 -131
  261. package/ui/ListTypeCommandButton.js +14 -15
  262. package/ui/ListTypeCommandButton.js.flow +85 -85
  263. package/ui/ListTypeMenu.js +21 -22
  264. package/ui/ListTypeMenu.js.flow +70 -70
  265. package/ui/LoadingIndicator.js +11 -12
  266. package/ui/LoadingIndicator.js.flow +20 -20
  267. package/ui/MathEditor.js +17 -22
  268. package/ui/MathEditor.js.flow +72 -78
  269. package/ui/MathInlineEditor.js +20 -21
  270. package/ui/MathInlineEditor.js.flow +101 -102
  271. package/ui/MathNodeView.js +29 -30
  272. package/ui/MathNodeView.js.flow +176 -186
  273. package/ui/PasteMenu.js +19 -23
  274. package/ui/PasteMenu.js.flow +53 -57
  275. package/ui/ResizeObserver.js +1 -1
  276. package/ui/ResizeObserver.js.flow +106 -106
  277. package/ui/RichTextEditor.js +17 -18
  278. package/ui/RichTextEditor.js.flow +133 -133
  279. package/ui/SelectionObserver.js +8 -9
  280. package/ui/SelectionObserver.js.flow +134 -134
  281. package/ui/TableCellMenu.js +14 -15
  282. package/ui/TableCellMenu.js.flow +51 -51
  283. package/ui/TableGridSizeEditor.js +30 -33
  284. package/ui/TableGridSizeEditor.js.flow +187 -184
  285. package/ui/TableNodeView.js +18 -17
  286. package/ui/TableNodeView.js.flow +25 -25
  287. package/ui/bindScrollHandler.js +2 -1
  288. package/ui/bindScrollHandler.js.flow +46 -46
  289. package/ui/canUseCSSFont.js +5 -4
  290. package/ui/canUseCSSFont.js.flow +42 -43
  291. package/ui/czi-body-layout-editor.css +16 -16
  292. package/ui/czi-bookmark-view.css +10 -10
  293. package/ui/czi-cursor-placeholder.css +36 -36
  294. package/ui/czi-custom-menu-button.css +18 -18
  295. package/ui/czi-custom-menu-item.css +30 -30
  296. package/ui/czi-custom-menu.css +8 -8
  297. package/ui/czi-custom-radio-button.css +80 -80
  298. package/ui/czi-custom-scrollbar.css +21 -21
  299. package/ui/czi-editor-frameset.css +81 -81
  300. package/ui/czi-editor-toolbar.css +122 -122
  301. package/ui/czi-editor.css +217 -220
  302. package/ui/czi-form.css +201 -107
  303. package/ui/czi-frag.css +3 -3
  304. package/ui/czi-heading.css +40 -40
  305. package/ui/czi-icon.css +72 -72
  306. package/ui/czi-image-resize-box.css +165 -165
  307. package/ui/czi-image-upload-editor.css +57 -57
  308. package/ui/czi-image-upload-placeholder.css +50 -50
  309. package/ui/czi-image-url-editor.css +38 -38
  310. package/ui/czi-image-view.css +121 -125
  311. package/ui/czi-indent.css +137 -137
  312. package/ui/czi-inline-editor.css +20 -20
  313. package/ui/czi-link-tooltip.css +112 -71
  314. package/ui/czi-list.css +406 -410
  315. package/ui/czi-loading-indicator.css +66 -111
  316. package/ui/czi-math-view.css +62 -62
  317. package/ui/czi-selection-placeholder.css +24 -24
  318. package/ui/czi-table-cell-menu.css +16 -14
  319. package/ui/czi-table-grid-size-editor.css +37 -37
  320. package/ui/czi-table.css +87 -87
  321. package/ui/czi-vars.css +2 -2
  322. package/ui/findActiveFontSize.js +2 -1
  323. package/ui/findActiveFontSize.js.flow +55 -58
  324. package/ui/findActiveFontType.js +4 -3
  325. package/ui/findActiveFontType.js.flow +35 -38
  326. package/ui/fonts.css +460 -460
  327. package/ui/handleEditorDrop.js +1 -1
  328. package/ui/handleEditorDrop.js.flow +28 -28
  329. package/ui/handleEditorKeyDown.js +1 -1
  330. package/ui/handleEditorKeyDown.js.flow +39 -39
  331. package/ui/handleEditorPaste.js +1 -1
  332. package/ui/handleEditorPaste.js.flow +33 -33
  333. package/ui/htmlElementToRect.js.flow +18 -18
  334. package/ui/icon-font.css +9 -9
  335. package/ui/injectStyleSheet.js +2 -2
  336. package/ui/injectStyleSheet.js.flow +40 -42
  337. package/ui/isElementFullyVisible.js +1 -10
  338. package/ui/isElementFullyVisible.js.flow +14 -26
  339. package/ui/isOffline.js.flow +8 -8
  340. package/ui/isReactClass.js.flow +12 -12
  341. package/ui/listType.css +21 -21
  342. package/ui/mathquill-editor/MathQuillEditor.js +27 -30
  343. package/ui/mathquill-editor/MathQuillEditor.js.flow +158 -159
  344. package/ui/mathquill-editor/MathQuillEditorSymbols.js.flow +483 -483
  345. package/ui/mathquill-editor/MathQuillEditorSymbolsPanel.js +14 -15
  346. package/ui/mathquill-editor/MathQuillEditorSymbolsPanel.js.flow +50 -50
  347. package/ui/mathquill-editor/czi-mathquill-editor-symbols-panel.css +39 -39
  348. package/ui/mathquill-editor/czi-mathquill-editor.css +50 -50
  349. package/ui/mathquill-editor/mathquill-import-kludge.js +1 -8
  350. package/ui/mathquill-editor/mathquill-import-kludge.js.flow +17 -24
  351. package/ui/renderLaTeXAsHTML.js +4 -4
  352. package/ui/renderLaTeXAsHTML.js.flow +46 -46
  353. package/ui/resolveImage.js +5 -6
  354. package/ui/resolveImage.js.flow +121 -123
  355. package/ui/toCSSColor.js.flow +51 -51
  356. package/ui/toCSSLineSpacing.js +2 -3
  357. package/ui/toCSSLineSpacing.js.flow +53 -55
  358. package/ui/toHexColor.js.flow +26 -26
  359. package/ui/uuid.js.flow +9 -9
  360. package/uuid.js.flow +9 -9
@@ -1,28 +1,31 @@
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); }
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; }
7
8
  function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
8
- function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
9
- function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
10
- 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; }
13
- function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
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
+ 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';
20
+ import uuid from '../uuid.js';
21
21
  import './czi-form.css';
22
22
  import './czi-image-url-editor.css';
23
+ import { EditorView } from 'prosemirror-view';
24
+ import { INNER_LINK } from '../Types.js';
25
+ import 'react-tooltip/dist/react-tooltip.css';
26
+ import { Tooltip as ReactTooltip } from 'react-tooltip';
23
27
  var BAD_CHARACTER_PATTER = /\s/;
24
28
  var LinkURLEditor = /*#__PURE__*/function (_React$PureComponent) {
25
- _inherits(LinkURLEditor, _React$PureComponent);
26
29
  function LinkURLEditor() {
27
30
  var _this;
28
31
  _classCallCheck(this, LinkURLEditor);
@@ -30,25 +33,65 @@ var LinkURLEditor = /*#__PURE__*/function (_React$PureComponent) {
30
33
  args[_key] = arguments[_key];
31
34
  }
32
35
  _this = _callSuper(this, LinkURLEditor, [].concat(args));
33
- _defineProperty(_assertThisInitialized(_this), "state", {
34
- url: _this.props.href
36
+ _defineProperty(_this, "state", {
37
+ url: _this.props.href_,
38
+ TOCselectedNode_: _this.props.TOCselectedNode_,
39
+ view_: _this.props.view_,
40
+ selectionId: _this.props.selectionId_
41
+ });
42
+ _defineProperty(_this, "openForm", function (formName) {
43
+ var i;
44
+ var tabcontent = document.getElementsByClassName('tabcontent');
45
+ for (i = 0; i < tabcontent.length; i++) {
46
+ tabcontent[i].style.display = 'none';
47
+ }
48
+ var tablinks = document.getElementsByClassName('tablinks');
49
+ for (i = 0; i < tablinks.length; i++) {
50
+ tablinks[i].classList.remove('active');
51
+ }
52
+ var selectedTab = document.getElementById(formName);
53
+ if (selectedTab) {
54
+ selectedTab.style.display = 'block';
55
+ }
56
+ var clickedButton = document.querySelector(".tablinks[data-form=\"".concat(formName, "\"]"));
57
+ if (clickedButton) {
58
+ clickedButton.classList.add('active');
59
+ }
35
60
  });
36
- _defineProperty(_assertThisInitialized(_this), "_onKeyDown", function (e) {
61
+ _defineProperty(_this, "handleOptionChange", function (textContent_, tocNodePosition_, view) {
62
+ var _TocNode$attrs;
63
+ var tr = view.state.tr;
64
+ var TocNode = view.state.doc.nodeAt(tocNodePosition_);
65
+ var textContent;
66
+ if (!(TocNode !== null && TocNode !== void 0 && (_TocNode$attrs = TocNode.attrs) !== null && _TocNode$attrs !== void 0 && _TocNode$attrs.innerLink)) {
67
+ var nodeUUID = uuid();
68
+ var texthash = '#';
69
+ var nodeAttrs = TocNode.attrs;
70
+ var nodeconcat_UUID = texthash.concat(nodeUUID);
71
+ nodeAttrs.innerLink = nodeconcat_UUID;
72
+ tr.setNodeMarkup(tocNodePosition_, undefined, nodeAttrs);
73
+ textContent = nodeconcat_UUID.concat(INNER_LINK, textContent_);
74
+ } else {
75
+ textContent = TocNode.attrs.innerLink.concat(INNER_LINK, textContent_);
76
+ }
77
+ _this.props.close(textContent);
78
+ });
79
+ _defineProperty(_this, "_onKeyDown", function (e) {
37
80
  if (e.keyCode === ENTER) {
38
81
  e.preventDefault();
39
82
  _this._apply();
40
83
  }
41
84
  });
42
- _defineProperty(_assertThisInitialized(_this), "_onURLChange", function (e) {
85
+ _defineProperty(_this, "_onURLChange", function (e) {
43
86
  var url = e.target.value;
44
87
  _this.setState({
45
88
  url: url
46
89
  });
47
90
  });
48
- _defineProperty(_assertThisInitialized(_this), "_cancel", function () {
91
+ _defineProperty(_this, "_cancel", function () {
49
92
  _this.props.close();
50
93
  });
51
- _defineProperty(_assertThisInitialized(_this), "_apply", function () {
94
+ _defineProperty(_this, "_apply", function () {
52
95
  var url = _this.state.url;
53
96
  if (url && !BAD_CHARACTER_PATTER.test(url)) {
54
97
  _this.props.close(sanitizeURL(url));
@@ -56,15 +99,38 @@ var LinkURLEditor = /*#__PURE__*/function (_React$PureComponent) {
56
99
  });
57
100
  return _this;
58
101
  }
59
- _createClass(LinkURLEditor, [{
102
+ _inherits(LinkURLEditor, _React$PureComponent);
103
+ return _createClass(LinkURLEditor, [{
104
+ key: "componentDidMount",
105
+ value: function componentDidMount() {
106
+ var selectionId = this.state.selectionId;
107
+ var defaultTab = selectionId ? 'innerlink' : 'webpage';
108
+ var selectedTab = this.props.selectedTab || defaultTab;
109
+ this.openForm(selectedTab);
110
+ }
111
+ }, {
60
112
  key: "render",
61
113
  value: function render() {
62
- var href = this.props.href;
63
- var url = this.state.url;
114
+ var _this2 = this;
115
+ var _this$state = this.state,
116
+ url = _this$state.url,
117
+ TOCselectedNode_ = _this$state.TOCselectedNode_,
118
+ view_ = _this$state.view_,
119
+ selectionId = _this$state.selectionId;
120
+ var isTOCValid = function isTOCValid() {
121
+ if (!TOCselectedNode_ || TOCselectedNode_.length === 0) {
122
+ return false;
123
+ }
124
+ return TOCselectedNode_.some(function (item) {
125
+ return item.node_ && item.node_.textContent.trim() !== '';
126
+ });
127
+ };
128
+ var isValid = isTOCValid();
129
+ console.log('isTOCValid:', isValid);
64
130
  var error = url ? BAD_CHARACTER_PATTER.test(url) : false;
65
131
  var label = 'Apply';
66
- var disabled = !!error;
67
- if (href) {
132
+ var disabled;
133
+ if (this.props.href) {
68
134
  label = url ? 'Apply' : 'Remove';
69
135
  disabled = error;
70
136
  } else {
@@ -72,17 +138,39 @@ var LinkURLEditor = /*#__PURE__*/function (_React$PureComponent) {
72
138
  }
73
139
  return /*#__PURE__*/React.createElement("div", {
74
140
  className: "czi-image-url-editor"
75
- }, /*#__PURE__*/React.createElement("form", {
141
+ }, /*#__PURE__*/React.createElement("div", {
76
142
  className: "czi-form",
143
+ style: {
144
+ padding: '10px',
145
+ display: 'flex'
146
+ }
147
+ }, /*#__PURE__*/React.createElement("div", {
148
+ className: "tab"
149
+ }, /*#__PURE__*/React.createElement("button", {
150
+ className: "tablinks",
151
+ "data-form": "webpage",
152
+ onClick: function onClick() {
153
+ return _this2.openForm('webpage');
154
+ }
155
+ }, "Existing Web Page"), /*#__PURE__*/React.createElement("button", {
156
+ className: "tablinks",
157
+ "data-form": "innerlink",
158
+ onClick: function onClick() {
159
+ return _this2.openForm('innerlink');
160
+ }
161
+ }, "Place in this Document")), /*#__PURE__*/React.createElement("div", {
162
+ className: "tabcontent",
163
+ id: "webpage"
164
+ }, /*#__PURE__*/React.createElement("form", {
77
165
  onSubmit: preventEventDefault
78
- }, /*#__PURE__*/React.createElement("fieldset", null, /*#__PURE__*/React.createElement("legend", null, "Add a Link"), /*#__PURE__*/React.createElement("input", {
166
+ }, /*#__PURE__*/React.createElement("fieldset", null, /*#__PURE__*/React.createElement("label", null, "Add a Link : "), /*#__PURE__*/React.createElement("input", {
79
167
  autoFocus: true,
80
168
  onChange: this._onURLChange,
81
169
  onKeyDown: this._onKeyDown,
82
170
  placeholder: "Paste a URL",
83
171
  spellCheck: false,
84
172
  type: "text",
85
- value: url || ''
173
+ value: selectionId ? null : url
86
174
  })), /*#__PURE__*/React.createElement("div", {
87
175
  className: "czi-form-buttons"
88
176
  }, /*#__PURE__*/React.createElement(CustomButton, {
@@ -92,23 +180,52 @@ var LinkURLEditor = /*#__PURE__*/function (_React$PureComponent) {
92
180
  active: true,
93
181
  disabled: disabled,
94
182
  label: label,
95
- onClick: this._apply
96
- }))));
183
+ onClick: function onClick() {
184
+ _this2._apply();
185
+ }
186
+ })))), !isValid ? /*#__PURE__*/React.createElement("div", {
187
+ className: "tabcontent",
188
+ id: "innerlink"
189
+ }, /*#__PURE__*/React.createElement("p", null, "No TOC styles"), /*#__PURE__*/React.createElement("div", {
190
+ className: "czi-form-buttons"
191
+ }, /*#__PURE__*/React.createElement(CustomButton, {
192
+ label: "Cancel",
193
+ onClick: this._cancel
194
+ }))) : /*#__PURE__*/React.createElement("div", {
195
+ className: "tabcontent",
196
+ id: "innerlink"
197
+ }, /*#__PURE__*/React.createElement("form", {
198
+ action: "#"
199
+ }, /*#__PURE__*/React.createElement("label", null, "Select the Inner Link"), /*#__PURE__*/React.createElement("br", null), /*#__PURE__*/React.createElement("select", {
200
+ defaultValue: TOCselectedNode_.some(function (res) {
201
+ return res.node_.textContent === url;
202
+ }) ? url : null,
203
+ id: "toc",
204
+ name: "toccontents",
205
+ size: "3"
206
+ }, TOCselectedNode_ === null || TOCselectedNode_ === void 0 ? void 0 : TOCselectedNode_.filter(function (res) {
207
+ return res.node_.textContent.trim() !== '';
208
+ }).map(function (res, index) {
209
+ return /*#__PURE__*/React.createElement("option", {
210
+ "data-tooltip-content": res.node_.textContent,
211
+ "data-tooltip-id": "select-toc-tooltip",
212
+ key: index,
213
+ onClick: function onClick() {
214
+ _this2.handleOptionChange(res.node_.textContent, res.pos_, view_);
215
+ },
216
+ value: res.node_.textContent
217
+ }, res.node_.textContent);
218
+ })), /*#__PURE__*/React.createElement(ReactTooltip, {
219
+ effect: "solid",
220
+ id: "select-toc-tooltip",
221
+ place: "bottom"
222
+ }), /*#__PURE__*/React.createElement("br", null), /*#__PURE__*/React.createElement("div", {
223
+ className: "czi-form-buttons"
224
+ }, /*#__PURE__*/React.createElement(CustomButton, {
225
+ label: "Cancel",
226
+ onClick: this._cancel
227
+ }))))));
97
228
  }
98
229
  }]);
99
- return LinkURLEditor;
100
230
  }(React.PureComponent);
101
- // [FS] IRAD-1005 2020-07-07
102
- // Upgrade outdated packages.
103
- // To take care of the property type declaration.
104
- _defineProperty(LinkURLEditor, "propsTypes", {
105
- href: PropTypes.string,
106
- close: function close(props, propName) {
107
- var fn = props[propName];
108
- if (!fn.prototype || typeof fn.prototype.constructor !== 'function' && fn.prototype.constructor.length !== 1) {
109
- return new Error(propName + 'must be a function with 1 arg of type string');
110
- }
111
- return null;
112
- }
113
- });
114
231
  export default LinkURLEditor;
@@ -1,117 +1,243 @@
1
- // @flow
2
-
3
- import * as React from 'react';
4
- import PropTypes from 'prop-types';
5
-
6
- import sanitizeURL from '../sanitizeURL.js';
7
- import {
8
- CustomButton
9
- } from '@modusoperandi/licit-ui-commands';
10
- import {
11
- ENTER
12
- } from './KeyCodes.js';
13
- import {
14
- preventEventDefault
15
- } from '@modusoperandi/licit-ui-commands';
16
-
17
- import './czi-form.css';
18
- import './czi-image-url-editor.css';
19
-
20
- const BAD_CHARACTER_PATTER = /\s/;
21
-
22
- class LinkURLEditor extends React.PureComponent<any, any> {
23
- // [FS] IRAD-1005 2020-07-07
24
- // Upgrade outdated packages.
25
- // To take care of the property type declaration.
26
- static propsTypes = {
27
- href: PropTypes.string,
28
- close: function (props: any, propName: string) {
29
- const fn = props[propName];
30
- if (
31
- !fn.prototype ||
32
- (typeof fn.prototype.constructor !== 'function' &&
33
- fn.prototype.constructor.length !== 1)
34
- ) {
35
- return new Error(
36
- propName + 'must be a function with 1 arg of type string'
37
- );
38
- }
39
- return null;
40
- },
41
- };
42
-
43
- state = {
44
- url: this.props.href,
45
- };
46
-
47
- render(): React.Element<any> {
48
- const { href } = this.props;
49
- const { url } = this.state;
50
-
51
- const error = url ? BAD_CHARACTER_PATTER.test(url) : false;
52
-
53
- let label = 'Apply';
54
- let disabled = !!error;
55
- if (href) {
56
- label = url ? 'Apply' : 'Remove';
57
- disabled = error;
58
- } else {
59
- disabled = error || !url;
60
- }
61
-
62
- return (
63
- <div className="czi-image-url-editor">
64
- <form className="czi-form" onSubmit={preventEventDefault}>
65
- <fieldset>
66
- <legend>Add a Link</legend>
67
- <input
68
- autoFocus={true}
69
- onChange={this._onURLChange}
70
- onKeyDown={this._onKeyDown}
71
- placeholder="Paste a URL"
72
- spellCheck={false}
73
- type="text"
74
- value={url || ''}
75
- />
76
- </fieldset>
77
- <div className="czi-form-buttons">
78
- <CustomButton label="Cancel" onClick={this._cancel} />
79
- <CustomButton
80
- active={true}
81
- disabled={disabled}
82
- label={label}
83
- onClick={this._apply}
84
- />
85
- </div>
86
- </form>
87
- </div>
88
- );
89
- }
90
-
91
- _onKeyDown = (e: any) => {
92
- if (e.keyCode === ENTER) {
93
- e.preventDefault();
94
- this._apply();
95
- }
96
- };
97
-
98
- _onURLChange = (e: SyntheticInputEvent<>) => {
99
- const url = e.target.value;
100
- this.setState({
101
- url,
102
- });
103
- };
104
-
105
- _cancel = (): void => {
106
- this.props.close();
107
- };
108
-
109
- _apply = (): void => {
110
- const { url } = this.state;
111
- if (url && !BAD_CHARACTER_PATTER.test(url)) {
112
- this.props.close(sanitizeURL(url));
113
- }
114
- };
115
- }
116
-
117
- export default LinkURLEditor;
1
+ // @flow
2
+
3
+ import * as React from 'react';
4
+ import PropTypes from 'prop-types';
5
+
6
+ import sanitizeURL from '../sanitizeURL.js';
7
+ import {
8
+ CustomButton,
9
+ preventEventDefault,
10
+ } from '@modusoperandi/licit-ui-commands';
11
+ import { ENTER } from './KeyCodes.js';
12
+ import uuid from '../uuid.js';
13
+
14
+ import './czi-form.css';
15
+ import './czi-image-url-editor.css';
16
+ import { EditorView } from 'prosemirror-view';
17
+ import { INNER_LINK } from '../Types.js';
18
+ import 'react-tooltip/dist/react-tooltip.css';
19
+ import { Tooltip as ReactTooltip } from 'react-tooltip';
20
+
21
+ const BAD_CHARACTER_PATTER = /\s/;
22
+
23
+ class LinkURLEditor extends React.PureComponent<any, any> {
24
+ static propTypes = {
25
+ href: PropTypes.string,
26
+ close: PropTypes.func.isRequired,
27
+ selectedTab: this.state?.selectedTab,
28
+ };
29
+
30
+ state = {
31
+ url: this.props.href_,
32
+ TOCselectedNode_: this.props.TOCselectedNode_,
33
+ view_: this.props.view_,
34
+ selectionId: this.props.selectionId_,
35
+ };
36
+
37
+ componentDidMount() {
38
+ const { selectionId } = this.state;
39
+ const defaultTab = selectionId ? 'innerlink' : 'webpage';
40
+
41
+ const selectedTab = this.props.selectedTab || defaultTab;
42
+ this.openForm(selectedTab);
43
+ }
44
+
45
+ openForm = (formName) => {
46
+ let i;
47
+ const tabcontent = document.getElementsByClassName('tabcontent');
48
+ for (i = 0; i < tabcontent.length; i++) {
49
+ tabcontent[i].style.display = 'none';
50
+ }
51
+
52
+ const tablinks = document.getElementsByClassName('tablinks');
53
+ for (i = 0; i < tablinks.length; i++) {
54
+ tablinks[i].classList.remove('active');
55
+ }
56
+
57
+ const selectedTab = document.getElementById(formName);
58
+ if (selectedTab) {
59
+ selectedTab.style.display = 'block';
60
+ }
61
+
62
+ const clickedButton = document.querySelector(
63
+ `.tablinks[data-form="${formName}"]`
64
+ );
65
+ if (clickedButton) {
66
+ clickedButton.classList.add('active');
67
+ }
68
+ };
69
+
70
+ render(): React.Element<any> {
71
+ const { url, TOCselectedNode_, view_, selectionId } =
72
+ this.state;
73
+
74
+ const isTOCValid = () => {
75
+ if (!TOCselectedNode_ || TOCselectedNode_.length === 0) {
76
+ return false;
77
+ }
78
+
79
+ return TOCselectedNode_.some(
80
+ item => item.node_ && item.node_.textContent.trim() !== ''
81
+ );
82
+ };
83
+ const isValid = isTOCValid();
84
+ console.log('isTOCValid:', isValid);
85
+
86
+ const error = url ? BAD_CHARACTER_PATTER.test(url) : false;
87
+
88
+ let label = 'Apply';
89
+ let disabled;
90
+ if (this.props.href) {
91
+ label = url ? 'Apply' : 'Remove';
92
+ disabled = error;
93
+ } else {
94
+ disabled = error || !url;
95
+ }
96
+
97
+ return (
98
+ <div className="czi-image-url-editor">
99
+ <div className="czi-form" style={{padding:'10px', display:'flex'}}>
100
+ <div className="tab">
101
+ <button
102
+ className="tablinks"
103
+ data-form="webpage"
104
+ onClick={() => this.openForm('webpage')}
105
+ >
106
+ Existing Web Page
107
+ </button>
108
+ <button
109
+ className="tablinks"
110
+ data-form="innerlink"
111
+ onClick={() => this.openForm('innerlink')}
112
+ >
113
+ Place in this Document
114
+ </button>
115
+ </div>
116
+
117
+ <div className="tabcontent" id="webpage">
118
+ <form onSubmit={preventEventDefault}>
119
+ <fieldset>
120
+ <label>Add a Link : </label>
121
+ <input
122
+ autoFocus={true}
123
+ onChange={this._onURLChange}
124
+ onKeyDown={this._onKeyDown}
125
+ placeholder="Paste a URL"
126
+ spellCheck={false}
127
+ type="text"
128
+ value={selectionId ? null : url}
129
+ />
130
+ </fieldset>
131
+ <div className="czi-form-buttons">
132
+ <CustomButton label="Cancel" onClick={this._cancel} />
133
+ <CustomButton
134
+ active={true}
135
+ disabled={disabled}
136
+ label={label}
137
+ onClick={() => {
138
+ this._apply();
139
+ }}
140
+ />
141
+ </div>
142
+ </form>
143
+ </div>
144
+ {!isValid ? (
145
+ <div className="tabcontent" id="innerlink" >
146
+ <p>No TOC styles</p>
147
+ <div className="czi-form-buttons">
148
+ <CustomButton label="Cancel" onClick={this._cancel} />
149
+ </div>
150
+ </div>
151
+ ) : (
152
+ <div className="tabcontent" id="innerlink">
153
+ <form action="#">
154
+ <label>Select the Inner Link</label>
155
+ <br></br>
156
+ <select
157
+ defaultValue={
158
+ TOCselectedNode_.some(res => res.node_.textContent === url) ? url : null
159
+ }
160
+ id="toc"
161
+ name="toccontents"
162
+ size="3"
163
+ >
164
+ {TOCselectedNode_?.filter(res => res.node_.textContent.trim() !== '').map((res, index) => (
165
+ <option
166
+ data-tooltip-content={res.node_.textContent}
167
+ data-tooltip-id="select-toc-tooltip"
168
+ key={index}
169
+ onClick={() => {
170
+ this.handleOptionChange(
171
+ res.node_.textContent,
172
+ res.pos_,
173
+ view_
174
+ );
175
+ }}
176
+ value={res.node_.textContent}
177
+ >
178
+ {res.node_.textContent}
179
+ </option>
180
+ ))}
181
+ </select>
182
+ <ReactTooltip
183
+ effect="solid"
184
+ id="select-toc-tooltip"
185
+ place="bottom"
186
+ />
187
+ <br></br>
188
+ <div className="czi-form-buttons">
189
+ <CustomButton label="Cancel" onClick={this._cancel} />
190
+ </div>
191
+ </form>
192
+ </div>
193
+ )}
194
+ </div>
195
+ </div>
196
+ );
197
+ }
198
+
199
+ handleOptionChange = (textContent_, tocNodePosition_, view: EditorView) => {
200
+ const tr = view.state.tr;
201
+ const TocNode = view.state.doc.nodeAt(tocNodePosition_);
202
+ let textContent;
203
+ if (!TocNode?.attrs?.innerLink) {
204
+ const nodeUUID = uuid();
205
+ const texthash = '#';
206
+ const nodeAttrs = TocNode.attrs;
207
+ const nodeconcat_UUID = texthash.concat(nodeUUID);
208
+ nodeAttrs.innerLink = nodeconcat_UUID;
209
+ tr.setNodeMarkup(tocNodePosition_, undefined, nodeAttrs);
210
+ textContent = nodeconcat_UUID.concat(INNER_LINK, textContent_);
211
+ } else {
212
+ textContent = TocNode.attrs.innerLink.concat(INNER_LINK, textContent_);
213
+ }
214
+ this.props.close(textContent);
215
+ };
216
+
217
+ _onKeyDown = (e: any) => {
218
+ if (e.keyCode === ENTER) {
219
+ e.preventDefault();
220
+ this._apply();
221
+ }
222
+ };
223
+
224
+ _onURLChange = (e: SyntheticInputEvent<>) => {
225
+ const url = e.target.value;
226
+ this.setState({
227
+ url,
228
+ });
229
+ };
230
+
231
+ _cancel = (): void => {
232
+ this.props.close();
233
+ };
234
+
235
+ _apply = (): void => {
236
+ const { url } = this.state;
237
+ if (url && !BAD_CHARACTER_PATTER.test(url)) {
238
+ this.props.close(sanitizeURL(url));
239
+ }
240
+ };
241
+ }
242
+
243
+ export default LinkURLEditor;