@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.
- package/BlockquoteInsertNewLineCommand.js +16 -18
- package/BlockquoteInsertNewLineCommand.js.flow +76 -77
- package/BlockquoteNodeSpec.js +3 -4
- package/BlockquoteNodeSpec.js.flow +29 -30
- package/BlockquoteToggleCommand.js +16 -17
- package/BlockquoteToggleCommand.js.flow +56 -56
- package/BookmarkNodeSpec.js +2 -2
- package/BookmarkNodeSpec.js.flow +39 -39
- package/BulletListNodeSpec.js.flow +61 -61
- package/CZIProseMirror.js.flow +90 -90
- package/CodeBlockCommand.js +17 -18
- package/CodeBlockCommand.js.flow +65 -65
- package/CodeBlockNodeSpec.js.flow +24 -24
- package/CodeMarkSpec.js.flow +14 -14
- package/ContentPlaceholderPlugin.js +20 -21
- package/ContentPlaceholderPlugin.js.flow +185 -187
- package/CursorPlaceholderPlugin.js +11 -11
- package/CursorPlaceholderPlugin.js.flow +115 -115
- package/DocLayoutCommand.js +18 -21
- package/DocLayoutCommand.js.flow +97 -99
- package/DocNodeSpec.js.flow +64 -64
- package/EMMarkSpec.js.flow +14 -14
- package/EditorCommands.js.flow +126 -126
- package/EditorKeyMap.js +0 -1
- package/EditorKeyMap.js.flow +185 -187
- package/EditorMarks.js +2 -2
- package/EditorMarks.js.flow +71 -71
- package/EditorNodes.js +2 -3
- package/EditorNodes.js.flow +58 -59
- package/EditorPageLayoutPlugin.js +10 -10
- package/EditorPageLayoutPlugin.js.flow +67 -67
- package/EditorPlugins.js.flow +8 -8
- package/EditorSchema.js.flow +12 -12
- package/EditorState.js.flow +7 -7
- package/FontSizeMarkSpec.js.flow +49 -49
- package/FontTypeMarkSpec.js +1 -1
- package/FontTypeMarkSpec.js.flow +80 -80
- package/HTMLMutator.js +6 -7
- package/HTMLMutator.js.flow +59 -59
- package/HardBreakNodeSpec.js.flow +15 -15
- package/HeadingNodeSpec.js +3 -13
- package/HeadingNodeSpec.js.flow +42 -52
- package/HistoryRedoCommand.js +15 -16
- package/HistoryRedoCommand.js.flow +41 -41
- package/HistoryUndoCommand.js +15 -16
- package/HistoryUndoCommand.js.flow +41 -41
- package/HorizontalRuleCommand.js +15 -16
- package/HorizontalRuleCommand.js.flow +71 -71
- package/HorizontalRuleNodeSpec.js.flow +39 -39
- package/ImageUploadPlaceholderPlugin.js +15 -17
- package/ImageUploadPlaceholderPlugin.js.flow +190 -192
- package/LinkMarkSpec.js +6 -1
- package/LinkMarkSpec.js.flow +37 -32
- package/LinkSetURLCommand.js +130 -60
- package/LinkSetURLCommand.js.flow +141 -117
- package/LinkTooltipPlugin.js +122 -34
- package/LinkTooltipPlugin.js.flow +261 -190
- package/ListItemInsertNewLineCommand.js +16 -18
- package/ListItemInsertNewLineCommand.js.flow +76 -77
- package/ListItemMergeCommand.js +24 -24
- package/ListItemMergeCommand.js.flow +198 -199
- package/ListItemNodeSpec.js.flow +52 -52
- package/ListSplitCommand.js +15 -16
- package/ListSplitCommand.js.flow +54 -54
- package/ListToggleCommand.js +19 -20
- package/ListToggleCommand.js.flow +99 -99
- package/MarkNames.js.flow +18 -18
- package/MarksClearCommand.js +17 -18
- package/MarksClearCommand.js.flow +65 -65
- package/MathEditCommand.js +17 -19
- package/MathEditCommand.js.flow +119 -120
- package/MathNodeSpec.js.flow +46 -46
- package/NodeNames.js.flow +23 -23
- package/OrderedListNodeSpec.js +2 -2
- package/OrderedListNodeSpec.js.flow +132 -132
- package/ParagraphNodeSpec.js +11 -2
- package/ParagraphNodeSpec.js.flow +163 -156
- package/ParagraphSpacingCommand.js +21 -23
- package/ParagraphSpacingCommand.js.flow +139 -144
- package/PrintCommand.js +17 -18
- package/PrintCommand.js.flow +53 -53
- package/SelectionPlaceholderPlugin.js +11 -11
- package/SelectionPlaceholderPlugin.js.flow +131 -131
- package/SpacerMarkSpec.js +2 -2
- package/SpacerMarkSpec.js.flow +47 -47
- package/StrikeMarkSpec.js.flow +21 -21
- package/StrongMarkSpec.js.flow +25 -25
- package/StyleView.js +5 -7
- package/StyleView.js.flow +18 -19
- package/TableBackgroundColorCommand.js +34 -23
- package/TableBackgroundColorCommand.js.flow +80 -75
- package/TableBorderColorCommand.js +34 -23
- package/TableBorderColorCommand.js.flow +81 -75
- package/TableCellColorCommand.js +20 -21
- package/TableCellColorCommand.js.flow +74 -75
- package/TableCellMenuPlugin.js +19 -19
- package/TableCellMenuPlugin.js.flow +130 -132
- package/TableInsertCommand.js +19 -22
- package/TableInsertCommand.js.flow +118 -120
- package/TableMergeCellsCommand.js +19 -19
- package/TableMergeCellsCommand.js.flow +113 -112
- package/TableNodesSpecs.js +4 -2
- package/TableNodesSpecs.js.flow +80 -78
- package/TablePlugins.js.flow +14 -14
- package/TableResizePlugin.js +20 -20
- package/TableResizePlugin.js.flow +631 -631
- package/TextColorMarkSpec.js.flow +35 -35
- package/TextHighlightMarkSpec.js.flow +38 -38
- package/TextInsertTabSpaceCommand.js +15 -16
- package/TextInsertTabSpaceCommand.js.flow +106 -106
- package/TextNoWrapMarkSpec.js.flow +14 -14
- package/TextNodeSpec.js.flow +7 -7
- package/TextSelectionMarkSpec.js.flow +24 -24
- package/TextSubMarkSpec.js.flow +20 -20
- package/TextSuperMarkSpec.js.flow +20 -20
- package/TextUnderlineMarkSpec.js.flow +27 -27
- package/Types.js +6 -0
- package/Types.js.flow +77 -75
- package/WebFontLoader.js +6 -7
- package/WebFontLoader.js.flow +22 -22
- package/blockQuoteInputRule.js.flow +36 -36
- package/bom.xml +17223 -25722
- package/browser.js.flow +7 -7
- package/buildEditorPlugins.js +6 -7
- package/buildEditorPlugins.js.flow +49 -49
- package/buildInputRules.js +8 -4
- package/buildInputRules.js.flow +85 -81
- package/client/CollabConnector.js +20 -20
- package/client/CollabConnector.js.flow +90 -90
- package/client/EditorConnection.js +10 -9
- package/client/EditorConnection.js.flow +324 -323
- package/client/Licit.js +78 -115
- package/client/Licit.js.flow +611 -643
- package/client/Licit.test.js +49 -39
- package/client/Licit.test.js.flow +104 -98
- package/client/Reporter.js +5 -6
- package/client/Reporter.js.flow +37 -37
- package/client/SimpleConnector.js +5 -5
- package/client/SimpleConnector.js.flow +61 -61
- package/client/http.js +0 -6
- package/client/http.js.flow +62 -70
- package/client/licit.css +12 -12
- package/client/throttle.js +8 -2
- package/client/throttle.js.flow +27 -27
- package/convertFromDOMElement.js +2 -4
- package/convertFromDOMElement.js.flow +33 -36
- package/convertFromHTML.js +2 -3
- package/convertFromHTML.js.flow +15 -17
- package/convertFromJSON.js +1 -2
- package/convertFromJSON.js.flow +55 -56
- package/convertToCSSPTValue.js +6 -10
- package/convertToCSSPTValue.js.flow +19 -22
- package/convertToJSON.js.flow +7 -7
- package/createCommand.js +16 -17
- package/createCommand.js.flow +62 -62
- package/createEditorKeyMap.js +2 -2
- package/createEditorKeyMap.js.flow +94 -94
- package/createEmptyEditorState.js +2 -3
- package/createEmptyEditorState.js.flow +29 -31
- package/createTableResizingPlugin.js +6 -6
- package/createTableResizingPlugin.js.flow +86 -86
- package/findActionableCell.js.flow +74 -74
- package/findActiveMark.js +1 -1
- package/findActiveMark.js.flow +32 -32
- package/hyphenize.js.flow +17 -17
- package/index.d.ts +165 -165
- package/index.js.flow +10 -10
- package/insertTable.js +0 -3
- package/insertTable.js.flow +54 -56
- package/isEditorStateEmpty.js.flow +32 -32
- package/isTableNode.js.flow +15 -15
- package/joinDown.js +1 -3
- package/joinDown.js.flow +25 -27
- package/joinListNode.js.flow +55 -55
- package/joinUp.js +1 -3
- package/joinUp.js.flow +37 -39
- package/keymaps.js.flow +185 -185
- package/lookUpElement.js +2 -1
- package/lookUpElement.js.flow +14 -14
- package/nodeAt.js.flow +12 -12
- package/normalizeHTML.js +3 -1
- package/normalizeHTML.js.flow +80 -78
- package/package.json +162 -156
- package/patchAnchorElements.js +1 -1
- package/patchAnchorElements.js.flow +38 -38
- package/patchBreakElements.js +3 -2
- package/patchBreakElements.js.flow +22 -22
- package/patchElementInlineStyles.js +1 -1
- package/patchElementInlineStyles.js.flow +92 -92
- package/patchListElements.js +4 -4
- package/patchListElements.js.flow +276 -276
- package/patchMathElements.js +5 -7
- package/patchMathElements.js.flow +58 -60
- package/patchParagraphElements.js.flow +20 -20
- package/patchStyleElements.js +1 -1
- package/patchStyleElements.js.flow +197 -196
- package/patchTableElements.js +2 -3
- package/patchTableElements.js.flow +88 -89
- package/rebaseDocWithSteps.js.flow +42 -42
- package/sanitizeURL.js +1 -1
- package/sanitizeURL.js.flow +13 -13
- package/splitListItem.js +3 -3
- package/splitListItem.js.flow +191 -191
- package/styles.css +19 -19
- package/styles0.css +29 -29
- package/toClosestFontPtSize.js.flow +22 -22
- package/toSafeHTMLDocument.js.flow +9 -9
- package/toggleBlockquote.js +4 -5
- package/toggleBlockquote.js.flow +101 -108
- package/toggleCodeBlock.js +6 -6
- package/toggleCodeBlock.js.flow +102 -102
- package/ui/AlertInfo.js +15 -16
- package/ui/AlertInfo.js.flow +64 -64
- package/ui/BookmarkNodeView.js +20 -21
- package/ui/BookmarkNodeView.js.flow +66 -66
- package/ui/CommandButton.js +15 -16
- package/ui/CommandButton.js.flow +68 -68
- package/ui/CommandMenu.js +19 -20
- package/ui/CommandMenu.js.flow +75 -75
- package/ui/CommandMenuButton.js +23 -25
- package/ui/CommandMenuButton.js.flow +130 -131
- package/ui/CustomEditorView.js +20 -20
- package/ui/CustomEditorView.js.flow +29 -28
- package/ui/CustomMenu.js +11 -12
- package/ui/CustomMenu.js.flow +17 -17
- package/ui/CustomMenuItem.js +16 -18
- package/ui/CustomMenuItem.js.flow +36 -36
- package/ui/CustomNodeView.js +29 -19
- package/ui/CustomNodeView.js.flow +207 -200
- package/ui/CustomRadioButton.js +18 -21
- package/ui/CustomRadioButton.js.flow +64 -65
- package/ui/DocLayoutEditor.js +18 -20
- package/ui/DocLayoutEditor.js.flow +145 -146
- package/ui/Editor.js +30 -28
- package/ui/Editor.js.flow +287 -288
- package/ui/EditorFrameset.js +13 -14
- package/ui/EditorFrameset.js.flow +81 -81
- package/ui/EditorToolbar.js +36 -42
- package/ui/EditorToolbar.js.flow +199 -218
- package/ui/EditorToolbarConfig.js +5 -5
- package/ui/EditorToolbarConfig.js.flow +164 -164
- package/ui/FontSizeCommandMenuButton.js +14 -15
- package/ui/FontSizeCommandMenuButton.js.flow +66 -66
- package/ui/FontTypeCommandMenuButton.js +15 -17
- package/ui/FontTypeCommandMenuButton.js.flow +60 -61
- package/ui/Frag.js +11 -12
- package/ui/Frag.js.flow +13 -13
- package/ui/Icon.js +21 -24
- package/ui/Icon.js.flow +89 -89
- package/ui/ImageInlineEditor.js +14 -15
- package/ui/ImageInlineEditor.js.flow +67 -67
- package/ui/KeyCodes.js.flow +12 -12
- package/ui/LinkTooltip.js +68 -34
- package/ui/LinkTooltip.js.flow +118 -85
- package/ui/LinkURLEditor.js +160 -43
- package/ui/LinkURLEditor.js.flow +243 -117
- package/ui/ListItemNodeView.js +6 -7
- package/ui/ListItemNodeView.js.flow +98 -98
- package/ui/ListTypeButton.js +23 -27
- package/ui/ListTypeButton.js.flow +128 -131
- package/ui/ListTypeCommandButton.js +14 -15
- package/ui/ListTypeCommandButton.js.flow +85 -85
- package/ui/ListTypeMenu.js +21 -22
- package/ui/ListTypeMenu.js.flow +70 -70
- package/ui/LoadingIndicator.js +11 -12
- package/ui/LoadingIndicator.js.flow +20 -20
- package/ui/MathEditor.js +17 -22
- package/ui/MathEditor.js.flow +72 -78
- package/ui/MathInlineEditor.js +20 -21
- package/ui/MathInlineEditor.js.flow +101 -102
- package/ui/MathNodeView.js +29 -30
- package/ui/MathNodeView.js.flow +176 -186
- package/ui/PasteMenu.js +19 -23
- package/ui/PasteMenu.js.flow +53 -57
- package/ui/ResizeObserver.js +1 -1
- package/ui/ResizeObserver.js.flow +106 -106
- package/ui/RichTextEditor.js +17 -18
- package/ui/RichTextEditor.js.flow +133 -133
- package/ui/SelectionObserver.js +8 -9
- package/ui/SelectionObserver.js.flow +134 -134
- package/ui/TableCellMenu.js +14 -15
- package/ui/TableCellMenu.js.flow +51 -51
- package/ui/TableGridSizeEditor.js +30 -33
- package/ui/TableGridSizeEditor.js.flow +187 -184
- package/ui/TableNodeView.js +18 -17
- package/ui/TableNodeView.js.flow +25 -25
- package/ui/bindScrollHandler.js +2 -1
- package/ui/bindScrollHandler.js.flow +46 -46
- package/ui/canUseCSSFont.js +5 -4
- package/ui/canUseCSSFont.js.flow +42 -43
- package/ui/czi-body-layout-editor.css +16 -16
- package/ui/czi-bookmark-view.css +10 -10
- package/ui/czi-cursor-placeholder.css +36 -36
- package/ui/czi-custom-menu-button.css +18 -18
- package/ui/czi-custom-menu-item.css +30 -30
- package/ui/czi-custom-menu.css +8 -8
- package/ui/czi-custom-radio-button.css +80 -80
- package/ui/czi-custom-scrollbar.css +21 -21
- package/ui/czi-editor-frameset.css +81 -81
- package/ui/czi-editor-toolbar.css +122 -122
- package/ui/czi-editor.css +217 -220
- package/ui/czi-form.css +201 -107
- package/ui/czi-frag.css +3 -3
- package/ui/czi-heading.css +40 -40
- package/ui/czi-icon.css +72 -72
- package/ui/czi-image-resize-box.css +165 -165
- package/ui/czi-image-upload-editor.css +57 -57
- package/ui/czi-image-upload-placeholder.css +50 -50
- package/ui/czi-image-url-editor.css +38 -38
- package/ui/czi-image-view.css +121 -125
- package/ui/czi-indent.css +137 -137
- package/ui/czi-inline-editor.css +20 -20
- package/ui/czi-link-tooltip.css +112 -71
- package/ui/czi-list.css +406 -410
- package/ui/czi-loading-indicator.css +66 -111
- package/ui/czi-math-view.css +62 -62
- package/ui/czi-selection-placeholder.css +24 -24
- package/ui/czi-table-cell-menu.css +16 -14
- package/ui/czi-table-grid-size-editor.css +37 -37
- package/ui/czi-table.css +87 -87
- package/ui/czi-vars.css +2 -2
- package/ui/findActiveFontSize.js +2 -1
- package/ui/findActiveFontSize.js.flow +55 -58
- package/ui/findActiveFontType.js +4 -3
- package/ui/findActiveFontType.js.flow +35 -38
- package/ui/fonts.css +460 -460
- package/ui/handleEditorDrop.js +1 -1
- package/ui/handleEditorDrop.js.flow +28 -28
- package/ui/handleEditorKeyDown.js +1 -1
- package/ui/handleEditorKeyDown.js.flow +39 -39
- package/ui/handleEditorPaste.js +1 -1
- package/ui/handleEditorPaste.js.flow +33 -33
- package/ui/htmlElementToRect.js.flow +18 -18
- package/ui/icon-font.css +9 -9
- package/ui/injectStyleSheet.js +2 -2
- package/ui/injectStyleSheet.js.flow +40 -42
- package/ui/isElementFullyVisible.js +1 -10
- package/ui/isElementFullyVisible.js.flow +14 -26
- package/ui/isOffline.js.flow +8 -8
- package/ui/isReactClass.js.flow +12 -12
- package/ui/listType.css +21 -21
- package/ui/mathquill-editor/MathQuillEditor.js +27 -30
- package/ui/mathquill-editor/MathQuillEditor.js.flow +158 -159
- package/ui/mathquill-editor/MathQuillEditorSymbols.js.flow +483 -483
- package/ui/mathquill-editor/MathQuillEditorSymbolsPanel.js +14 -15
- package/ui/mathquill-editor/MathQuillEditorSymbolsPanel.js.flow +50 -50
- package/ui/mathquill-editor/czi-mathquill-editor-symbols-panel.css +39 -39
- package/ui/mathquill-editor/czi-mathquill-editor.css +50 -50
- package/ui/mathquill-editor/mathquill-import-kludge.js +1 -8
- package/ui/mathquill-editor/mathquill-import-kludge.js.flow +17 -24
- package/ui/renderLaTeXAsHTML.js +4 -4
- package/ui/renderLaTeXAsHTML.js.flow +46 -46
- package/ui/resolveImage.js +5 -6
- package/ui/resolveImage.js.flow +121 -123
- package/ui/toCSSColor.js.flow +51 -51
- package/ui/toCSSLineSpacing.js +2 -3
- package/ui/toCSSLineSpacing.js.flow +53 -55
- package/ui/toHexColor.js.flow +26 -26
- package/ui/uuid.js.flow +9 -9
- package/uuid.js.flow +9 -9
package/ui/ListItemNodeView.js
CHANGED
|
@@ -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(
|
|
3
|
-
function _defineProperties(
|
|
4
|
-
function _createClass(
|
|
5
|
-
function _defineProperty(
|
|
6
|
-
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? 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;
|
package/ui/ListTypeButton.js
CHANGED
|
@@ -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(
|
|
5
|
-
function _defineProperties(
|
|
6
|
-
function _createClass(
|
|
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(
|
|
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(
|
|
11
|
-
function
|
|
12
|
-
function
|
|
13
|
-
function
|
|
14
|
-
function
|
|
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(
|
|
41
|
-
_defineProperty(
|
|
42
|
-
_defineProperty(
|
|
43
|
-
_defineProperty(
|
|
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(
|
|
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(
|
|
51
|
+
_defineProperty(_this, "_hideMenu", function () {
|
|
54
52
|
var menu = _this._menu;
|
|
55
53
|
_this._menu = null;
|
|
56
|
-
menu
|
|
54
|
+
menu === null || menu === void 0 || menu.close();
|
|
57
55
|
});
|
|
58
|
-
_defineProperty(
|
|
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(
|
|
70
|
+
_defineProperty(_this, "_onCommand", function () {
|
|
73
71
|
_this.setState({
|
|
74
72
|
expanded: false
|
|
75
73
|
});
|
|
76
74
|
_this._hideMenu();
|
|
77
75
|
});
|
|
78
|
-
_defineProperty(
|
|
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
|
-
|
|
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
|
|
14
|
-
import
|
|
15
|
-
import
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
//
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
disabledVal = false;
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
this.
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
}
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
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;
|