@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,9 +1,9 @@
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; }
5
- function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
6
- function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
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
+ function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
6
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
7
7
  function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
8
8
  import { Node } from 'prosemirror-model';
9
9
  import { Decoration, EditorView } from 'prosemirror-view';
@@ -28,7 +28,7 @@ var ListItemNodeView = /*#__PURE__*/function () {
28
28
  }
29
29
 
30
30
  // This implements the `NodeView` interface.
31
- _createClass(ListItemNodeView, [{
31
+ return _createClass(ListItemNodeView, [{
32
32
  key: "update",
33
33
  value: function update(node, decorations) {
34
34
  return this._updateDOM(node);
@@ -87,6 +87,5 @@ var ListItemNodeView = /*#__PURE__*/function () {
87
87
  return true;
88
88
  }
89
89
  }]);
90
- return ListItemNodeView;
91
90
  }();
92
91
  export default ListItemNodeView;
@@ -1,98 +1,98 @@
1
- // @flow
2
-
3
- import { Node } from 'prosemirror-model';
4
- import { Decoration, EditorView } from 'prosemirror-view';
5
- import { MARK_TEXT_COLOR, MARK_FONT_SIZE } from '../MarkNames.js';
6
-
7
- // This implements the `NodeView` interface
8
- // https://prosemirror.net/docs/ref/#view.NodeView
9
- class ListItemNodeView {
10
- // This implements the `NodeView` interface
11
- // The outer DOM node that represents the list item element.
12
- dom: HTMLLIElement;
13
-
14
- // This implements the `NodeView` interface.
15
- // The DOM node that should hold the node's content.
16
- contentDOM: HTMLLIElement;
17
-
18
- _nodeUpdated: ?Node;
19
-
20
- constructor(
21
- node: Node,
22
- editorView: EditorView,
23
- getPos: () => number,
24
- decorations: Array<Decoration>
25
- ) {
26
- const dom = document.createElement('li');
27
- this.dom = dom;
28
- this.contentDOM = dom;
29
- this._updateDOM(node);
30
- }
31
-
32
- // This implements the `NodeView` interface.
33
- update(node: Node, decorations: Array<Decoration>): boolean {
34
- return this._updateDOM(node);
35
- }
36
-
37
- _updateDOM(node: Node): boolean {
38
- if (this._nodeUpdated === node) {
39
- return false;
40
- }
41
-
42
- this._nodeUpdated = node;
43
-
44
- const dom = this.dom;
45
- // According to `ListItemNodeSpec`, a valid list item has the following
46
- // structure: `li > paragraph > text`.
47
- const paragraph = node.firstChild;
48
- const initialContent = paragraph ? paragraph.firstChild : null;
49
-
50
- // This resolves the styles for the counter by examines the marks for the
51
- // first text node of the list item.
52
- const marks =
53
- initialContent && initialContent.isText && initialContent.textContent
54
- ? initialContent.marks
55
- : null;
56
-
57
- let cssColor;
58
- let cssFontSize;
59
- let cssText = '';
60
- if (Array.isArray(marks)) {
61
- marks.forEach((mark) => {
62
- const { attrs, type } = mark;
63
- switch (type.name) {
64
- case MARK_TEXT_COLOR:
65
- cssColor = attrs.color;
66
- break;
67
- case MARK_FONT_SIZE:
68
- cssFontSize = attrs.pt;
69
- break;
70
- }
71
- });
72
- }
73
-
74
- // The counter of the list item is a pseudo-element that uses
75
- // the CSS variables (e.g `--czi-list-style-color`) for styling.
76
- // This defines the CSS variables scoped for the pseudo-element.
77
- // See `src/ui/czi-list.css` for more details.
78
- if (cssColor) {
79
- cssText += `--czi-list-style-color: ${cssColor};`;
80
- }
81
-
82
- if (cssFontSize) {
83
- cssText += `--czi-list-style-font-size: ${cssFontSize}pt;`;
84
- }
85
-
86
- dom.style.cssText = cssText;
87
-
88
- const { align } = node.attrs;
89
- if (align) {
90
- dom.setAttribute('data-align', align);
91
- } else {
92
- dom.removeAttribute('data-align');
93
- }
94
- return true;
95
- }
96
- }
97
-
98
- export default ListItemNodeView;
1
+ // @flow
2
+
3
+ import { Node } from 'prosemirror-model';
4
+ import { Decoration, EditorView } from 'prosemirror-view';
5
+ import { MARK_TEXT_COLOR, MARK_FONT_SIZE } from '../MarkNames.js';
6
+
7
+ // This implements the `NodeView` interface
8
+ // https://prosemirror.net/docs/ref/#view.NodeView
9
+ class ListItemNodeView {
10
+ // This implements the `NodeView` interface
11
+ // The outer DOM node that represents the list item element.
12
+ dom: HTMLLIElement;
13
+
14
+ // This implements the `NodeView` interface.
15
+ // The DOM node that should hold the node's content.
16
+ contentDOM: HTMLLIElement;
17
+
18
+ _nodeUpdated: ?Node;
19
+
20
+ constructor(
21
+ node: Node,
22
+ editorView: EditorView,
23
+ getPos: () => number,
24
+ decorations: Array<Decoration>
25
+ ) {
26
+ const dom = document.createElement('li');
27
+ this.dom = dom;
28
+ this.contentDOM = dom;
29
+ this._updateDOM(node);
30
+ }
31
+
32
+ // This implements the `NodeView` interface.
33
+ update(node: Node, decorations: Array<Decoration>): boolean {
34
+ return this._updateDOM(node);
35
+ }
36
+
37
+ _updateDOM(node: Node): boolean {
38
+ if (this._nodeUpdated === node) {
39
+ return false;
40
+ }
41
+
42
+ this._nodeUpdated = node;
43
+
44
+ const dom = this.dom;
45
+ // According to `ListItemNodeSpec`, a valid list item has the following
46
+ // structure: `li > paragraph > text`.
47
+ const paragraph = node.firstChild;
48
+ const initialContent = paragraph ? paragraph.firstChild : null;
49
+
50
+ // This resolves the styles for the counter by examines the marks for the
51
+ // first text node of the list item.
52
+ const marks =
53
+ initialContent && initialContent.isText && initialContent.textContent
54
+ ? initialContent.marks
55
+ : null;
56
+
57
+ let cssColor;
58
+ let cssFontSize;
59
+ let cssText = '';
60
+ if (Array.isArray(marks)) {
61
+ marks.forEach((mark) => {
62
+ const { attrs, type } = mark;
63
+ switch (type.name) {
64
+ case MARK_TEXT_COLOR:
65
+ cssColor = attrs.color;
66
+ break;
67
+ case MARK_FONT_SIZE:
68
+ cssFontSize = attrs.pt;
69
+ break;
70
+ }
71
+ });
72
+ }
73
+
74
+ // The counter of the list item is a pseudo-element that uses
75
+ // the CSS variables (e.g `--czi-list-style-color`) for styling.
76
+ // This defines the CSS variables scoped for the pseudo-element.
77
+ // See `src/ui/czi-list.css` for more details.
78
+ if (cssColor) {
79
+ cssText += `--czi-list-style-color: ${cssColor};`;
80
+ }
81
+
82
+ if (cssFontSize) {
83
+ cssText += `--czi-list-style-font-size: ${cssFontSize}pt;`;
84
+ }
85
+
86
+ dom.style.cssText = cssText;
87
+
88
+ const { align } = node.attrs;
89
+ if (align) {
90
+ dom.setAttribute('data-align', align);
91
+ } else {
92
+ dom.removeAttribute('data-align');
93
+ }
94
+ return true;
95
+ }
96
+ }
97
+
98
+ export default ListItemNodeView;
@@ -1,18 +1,18 @@
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 ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
3
3
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
4
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
5
- 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); } }
6
- function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
4
+ function _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); }
5
+ 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); } }
6
+ function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; }
7
7
  function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }
8
- 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); }
8
+ 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); }
9
+ function _assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; }
9
10
  function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
10
- function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
11
- function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
12
- 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); }
13
- function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
14
- 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; }
15
- function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
11
+ function _getPrototypeOf(t) { return _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, _getPrototypeOf(t); }
12
+ 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); }
13
+ function _setPrototypeOf(t, e) { return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) { return t.__proto__ = e, t; }, _setPrototypeOf(t, e); }
14
+ 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; }
15
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
16
16
  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); }
17
17
  // [FS] IRAD-1039 2020-09-23
18
18
  // Command button to handle different type of list types
@@ -22,14 +22,12 @@ import { EditorState } from 'prosemirror-state';
22
22
  import { Transform } from 'prosemirror-transform';
23
23
  import { EditorView } from 'prosemirror-view';
24
24
  import * as React from 'react';
25
- import { CustomButton } from '@modusoperandi/licit-ui-commands';
25
+ import { CustomButton, createPopUp } from '@modusoperandi/licit-ui-commands';
26
26
  import { UICommand } from '@modusoperandi/licit-doc-attrs-step';
27
- import { createPopUp } from '@modusoperandi/licit-ui-commands';
28
27
  import uuid from './uuid.js';
29
28
  import ListTypeMenu from './ListTypeMenu.js';
30
29
  import './czi-custom-menu-button.css';
31
30
  var ListTypeButton = /*#__PURE__*/function (_React$PureComponent) {
32
- _inherits(ListTypeButton, _React$PureComponent);
33
31
  function ListTypeButton() {
34
32
  var _this;
35
33
  _classCallCheck(this, ListTypeButton);
@@ -37,25 +35,25 @@ var ListTypeButton = /*#__PURE__*/function (_React$PureComponent) {
37
35
  args[_key] = arguments[_key];
38
36
  }
39
37
  _this = _callSuper(this, ListTypeButton, [].concat(args));
40
- _defineProperty(_assertThisInitialized(_this), "props", void 0);
41
- _defineProperty(_assertThisInitialized(_this), "_menu", null);
42
- _defineProperty(_assertThisInitialized(_this), "_id", uuid());
43
- _defineProperty(_assertThisInitialized(_this), "state", {
38
+ _defineProperty(_this, "props", void 0);
39
+ _defineProperty(_this, "_menu", null);
40
+ _defineProperty(_this, "_id", uuid());
41
+ _defineProperty(_this, "state", {
44
42
  expanded: false
45
43
  });
46
- _defineProperty(_assertThisInitialized(_this), "_onClick", function () {
44
+ _defineProperty(_this, "_onClick", function () {
47
45
  var expanded = !_this.state.expanded;
48
46
  _this.setState({
49
47
  expanded: expanded
50
48
  });
51
49
  expanded ? _this._showMenu() : _this._hideMenu();
52
50
  });
53
- _defineProperty(_assertThisInitialized(_this), "_hideMenu", function () {
51
+ _defineProperty(_this, "_hideMenu", function () {
54
52
  var menu = _this._menu;
55
53
  _this._menu = null;
56
- menu && menu.close();
54
+ menu === null || menu === void 0 || menu.close();
57
55
  });
58
- _defineProperty(_assertThisInitialized(_this), "_showMenu", function () {
56
+ _defineProperty(_this, "_showMenu", function () {
59
57
  var menu = _this._menu;
60
58
  var menuProps = _objectSpread(_objectSpread({}, _this.props), {}, {
61
59
  onCommand: _this._onCommand
@@ -69,13 +67,13 @@ var ListTypeButton = /*#__PURE__*/function (_React$PureComponent) {
69
67
  });
70
68
  }
71
69
  });
72
- _defineProperty(_assertThisInitialized(_this), "_onCommand", function () {
70
+ _defineProperty(_this, "_onCommand", function () {
73
71
  _this.setState({
74
72
  expanded: false
75
73
  });
76
74
  _this._hideMenu();
77
75
  });
78
- _defineProperty(_assertThisInitialized(_this), "_onClose", function () {
76
+ _defineProperty(_this, "_onClose", function () {
79
77
  if (_this._menu) {
80
78
  _this.setState({
81
79
  expanded: false
@@ -85,7 +83,8 @@ var ListTypeButton = /*#__PURE__*/function (_React$PureComponent) {
85
83
  });
86
84
  return _this;
87
85
  }
88
- _createClass(ListTypeButton, [{
86
+ _inherits(ListTypeButton, _React$PureComponent);
87
+ return _createClass(ListTypeButton, [{
89
88
  key: "render",
90
89
  value: function render() {
91
90
  // editorState,
@@ -99,11 +98,9 @@ var ListTypeButton = /*#__PURE__*/function (_React$PureComponent) {
99
98
  title = _this$props.title;
100
99
  var enabled = !disabled && commandGroups.some(function (group, ii) {
101
100
  return Object.keys(group).some(function (label) {
102
- // const command = group[label];
103
101
  var disabledVal = true;
104
102
  try {
105
103
  disabledVal = false;
106
- // !editorView || !command.isEnabled(editorState, editorView);
107
104
  } catch (ex) {
108
105
  disabledVal = false;
109
106
  }
@@ -131,6 +128,5 @@ var ListTypeButton = /*#__PURE__*/function (_React$PureComponent) {
131
128
  this._hideMenu();
132
129
  }
133
130
  }]);
134
- return ListTypeButton;
135
131
  }(React.PureComponent);
136
132
  export default ListTypeButton;
@@ -1,131 +1,128 @@
1
- // @flow
2
- // [FS] IRAD-1039 2020-09-23
3
- // Command button to handle different type of list types
4
- // Need to add Icons instead of label
5
-
6
- import cx from 'classnames';
7
- import { EditorState } from 'prosemirror-state';
8
- import { Transform } from 'prosemirror-transform';
9
- import { EditorView } from 'prosemirror-view';
10
- import * as React from 'react';
11
- import { CustomButton } from '@modusoperandi/licit-ui-commands';
12
- import { UICommand } from '@modusoperandi/licit-doc-attrs-step';
13
- import { createPopUp } from '@modusoperandi/licit-ui-commands';
14
- import uuid from './uuid.js';
15
- import ListTypeMenu from './ListTypeMenu.js';
16
- import './czi-custom-menu-button.css';
17
-
18
- class ListTypeButton extends React.PureComponent<any, any> {
19
- props: {
20
- className?: ?string,
21
- commandGroups: Array<{ [string]: UICommand }>,
22
- disabled?: ?boolean,
23
- dispatch: (tr: Transform) => void,
24
- editorState: EditorState,
25
- editorView: ?EditorView,
26
- icon?: string | React.Element<any> | null,
27
- label?: string | React.Element<any> | null,
28
- title?: ?string,
29
- };
30
-
31
- _menu = null;
32
- _id = uuid();
33
-
34
- state = {
35
- expanded: false,
36
- };
37
-
38
- render(): React.Element<any> {
39
- // editorState,
40
- // editorView,
41
- const {
42
- className,
43
- label,
44
- commandGroups,
45
- icon,
46
- disabled,
47
- title,
48
- } = this.props;
49
- const enabled =
50
- !disabled &&
51
- commandGroups.some((group, ii) => {
52
- return Object.keys(group).some((label) => {
53
- // const command = group[label];
54
- let disabledVal = true;
55
- try {
56
- disabledVal = false;
57
- // !editorView || !command.isEnabled(editorState, editorView);
58
- } catch (ex) {
59
- disabledVal = false;
60
- }
61
- return !disabledVal;
62
- });
63
- });
64
-
65
- const { expanded } = this.state;
66
- const buttonClassName = cx(className, {
67
- 'czi-custom-menu-button': true,
68
- expanded,
69
- });
70
-
71
- return (
72
- <CustomButton
73
- className={buttonClassName}
74
- disabled={!enabled}
75
- icon={icon}
76
- id={this._id}
77
- label={label}
78
- onClick={this._onClick}
79
- title={title}
80
- />
81
- );
82
- }
83
-
84
- componentWillUnmount(): void {
85
- this._hideMenu();
86
- }
87
-
88
- _onClick = (): void => {
89
- const expanded = !this.state.expanded;
90
- this.setState({
91
- expanded,
92
- });
93
- expanded ? this._showMenu() : this._hideMenu();
94
- };
95
-
96
- _hideMenu = (): void => {
97
- const menu = this._menu;
98
- this._menu = null;
99
- menu && menu.close();
100
- };
101
-
102
- _showMenu = (): void => {
103
- const menu = this._menu;
104
- const menuProps = {
105
- ...this.props,
106
- onCommand: this._onCommand,
107
- };
108
- if (menu) {
109
- menu.update(menuProps);
110
- } else {
111
- this._menu = createPopUp(ListTypeMenu, menuProps, {
112
- anchor: document.getElementById(this._id),
113
- onClose: this._onClose,
114
- });
115
- }
116
- };
117
-
118
- _onCommand = (): void => {
119
- this.setState({ expanded: false });
120
- this._hideMenu();
121
- };
122
-
123
- _onClose = (): void => {
124
- if (this._menu) {
125
- this.setState({ expanded: false });
126
- this._menu = null;
127
- }
128
- };
129
- }
130
-
131
- export default ListTypeButton;
1
+ // @flow
2
+ // [FS] IRAD-1039 2020-09-23
3
+ // Command button to handle different type of list types
4
+ // Need to add Icons instead of label
5
+
6
+ import cx from 'classnames';
7
+ import { EditorState } from 'prosemirror-state';
8
+ import { Transform } from 'prosemirror-transform';
9
+ import { EditorView } from 'prosemirror-view';
10
+ import * as React from 'react';
11
+ import { CustomButton, createPopUp } from '@modusoperandi/licit-ui-commands';
12
+ import { UICommand } from '@modusoperandi/licit-doc-attrs-step';
13
+ import uuid from './uuid.js';
14
+ import ListTypeMenu from './ListTypeMenu.js';
15
+ import './czi-custom-menu-button.css';
16
+
17
+ class ListTypeButton extends React.PureComponent<any, any> {
18
+ props: {
19
+ className?: ?string,
20
+ commandGroups: Array<{ [string]: UICommand }>,
21
+ disabled?: ?boolean,
22
+ dispatch: (tr: Transform) => void,
23
+ editorState: EditorState,
24
+ editorView: ?EditorView,
25
+ icon?: string | React.Element<any> | null,
26
+ label?: string | React.Element<any> | null,
27
+ title?: ?string,
28
+ };
29
+
30
+ _menu = null;
31
+ _id = uuid();
32
+
33
+ state = {
34
+ expanded: false,
35
+ };
36
+
37
+ render(): React.Element<any> {
38
+ // editorState,
39
+ // editorView,
40
+ const {
41
+ className,
42
+ label,
43
+ commandGroups,
44
+ icon,
45
+ disabled,
46
+ title,
47
+ } = this.props;
48
+ const enabled =
49
+ !disabled &&
50
+ commandGroups.some((group, ii) => {
51
+ return Object.keys(group).some((label) => {
52
+ let disabledVal = true;
53
+ try {
54
+ disabledVal = false;
55
+ } catch (ex) {
56
+ disabledVal = false;
57
+ }
58
+ return !disabledVal;
59
+ });
60
+ });
61
+
62
+ const { expanded } = this.state;
63
+ const buttonClassName = cx(className, {
64
+ 'czi-custom-menu-button': true,
65
+ expanded,
66
+ });
67
+
68
+ return (
69
+ <CustomButton
70
+ className={buttonClassName}
71
+ disabled={!enabled}
72
+ icon={icon}
73
+ id={this._id}
74
+ label={label}
75
+ onClick={this._onClick}
76
+ title={title}
77
+ />
78
+ );
79
+ }
80
+
81
+ componentWillUnmount(): void {
82
+ this._hideMenu();
83
+ }
84
+
85
+ _onClick = (): void => {
86
+ const expanded = !this.state.expanded;
87
+ this.setState({
88
+ expanded,
89
+ });
90
+ expanded ? this._showMenu() : this._hideMenu();
91
+ };
92
+
93
+ _hideMenu = (): void => {
94
+ const menu = this._menu;
95
+ this._menu = null;
96
+ menu?.close();
97
+ };
98
+
99
+ _showMenu = (): void => {
100
+ const menu = this._menu;
101
+ const menuProps = {
102
+ ...this.props,
103
+ onCommand: this._onCommand,
104
+ };
105
+ if (menu) {
106
+ menu.update(menuProps);
107
+ } else {
108
+ this._menu = createPopUp(ListTypeMenu, menuProps, {
109
+ anchor: document.getElementById(this._id),
110
+ onClose: this._onClose,
111
+ });
112
+ }
113
+ };
114
+
115
+ _onCommand = (): void => {
116
+ this.setState({ expanded: false });
117
+ this._hideMenu();
118
+ };
119
+
120
+ _onClose = (): void => {
121
+ if (this._menu) {
122
+ this.setState({ expanded: false });
123
+ this._menu = null;
124
+ }
125
+ };
126
+ }
127
+
128
+ export default ListTypeButton;