@modusoperandi/licit 0.1.9 → 0.13.2
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/.github/workflows/build.yml +1 -7
- package/.github/workflows/lint.yml +1 -1
- package/README.md +1 -1
- package/babel.config.json +54 -0
- package/dist/BlockquoteNodeSpec.js +2 -2
- package/dist/CZIProseMirror.js +4 -4
- package/dist/CodeBlockCommand.js +2 -2
- package/dist/CodeBlockCommand.js.flow +1 -1
- package/dist/CursorPlaceholderPlugin.js +2 -2
- package/dist/DocLayoutCommand.js +2 -4
- package/dist/DocLayoutCommand.js.flow +1 -1
- package/dist/DocNodeSpec.js +1 -1
- package/dist/EditorCommands.js +23 -35
- package/dist/EditorCommands.js.flow +7 -7
- package/dist/EditorKeyMap.js +3 -3
- package/dist/FontTypeMarkSpec.js +1 -1
- package/dist/HeadingNodeSpec.js +2 -2
- package/dist/ImageSourceCommand.js +2 -4
- package/dist/ImageSourceCommand.js.flow +1 -1
- package/dist/ImageUploadPlaceholderPlugin.js +1 -1
- package/dist/LinkSetURLCommand.js +4 -8
- package/dist/LinkSetURLCommand.js.flow +3 -3
- package/dist/LinkTooltipPlugin.js +9 -15
- package/dist/LinkTooltipPlugin.js.flow +5 -5
- package/dist/ListToggleCommand.js +5 -11
- package/dist/ListToggleCommand.js.flow +3 -3
- package/dist/MarkNames.js +1 -1
- package/dist/MarksClearCommand.js +3 -3
- package/dist/MarksClearCommand.js.flow +1 -1
- package/dist/MathEditCommand.js +2 -2
- package/dist/MathEditCommand.js.flow +1 -1
- package/dist/ParagraphNodeSpec.js +3 -4
- package/dist/ParagraphNodeSpec.js.flow +2 -6
- package/dist/ParagraphSpacingCommand.js +3 -3
- package/dist/SelectionPlaceholderPlugin.js +2 -2
- package/dist/SpacerMarkSpec.js +1 -1
- package/dist/TableBackgroundColorCommand.js +3 -7
- package/dist/TableBackgroundColorCommand.js.flow +3 -3
- package/dist/TableBorderColorCommand.js +3 -7
- package/dist/TableBorderColorCommand.js.flow +3 -3
- package/dist/TableCellColorCommand.js +3 -7
- package/dist/TableCellColorCommand.js.flow +3 -3
- package/dist/TableCellMenuPlugin.js +4 -6
- package/dist/TableCellMenuPlugin.js.flow +3 -3
- package/dist/TableInsertCommand.js +3 -5
- package/dist/TableInsertCommand.js.flow +2 -2
- package/dist/TableResizePlugin.js +2 -2
- package/dist/TextInsertTabSpaceCommand.js +2 -4
- package/dist/TextInsertTabSpaceCommand.js.flow +1 -1
- package/dist/Types.js +1 -1
- package/dist/bom.xml +4970 -4167
- package/dist/client/CollabConnector.js +17 -2
- package/dist/client/CollabConnector.js.flow +17 -2
- package/dist/client/EditorConnection.js +15 -4
- package/dist/client/EditorConnection.js.flow +14 -3
- package/dist/client/Licit.js +73 -58
- package/dist/client/Licit.js.flow +101 -85
- package/dist/client/Licit.test.js +18 -17
- package/dist/client/Licit.test.js.flow +13 -11
- package/dist/client/SimpleConnector.js +4 -2
- package/dist/client/SimpleConnector.js.flow +3 -1
- package/dist/client/http.js +3 -3
- package/dist/convertToCSSPTValue.js +1 -1
- package/dist/createEmptyEditorState.js +1 -1
- package/dist/index.js +16 -16
- package/dist/joinListNode.js +2 -2
- package/dist/joinListNode.js.flow +1 -1
- package/dist/keymaps.js +2 -2
- package/dist/patchStyleElements.js +3 -3
- package/dist/patchStyleElements.js.flow +1 -1
- package/dist/splitListItem.js +2 -2
- package/dist/styles.css +2 -2
- package/dist/styles0.css +3 -3
- package/dist/toggleBlockquote.js +6 -14
- package/dist/toggleBlockquote.js.flow +4 -4
- package/dist/toggleCodeBlock.js +4 -10
- package/dist/toggleCodeBlock.js.flow +3 -3
- package/dist/ui/AlertInfo.js +2 -2
- package/dist/ui/CommandButton.js +2 -4
- package/dist/ui/CommandButton.js.flow +1 -1
- package/dist/ui/CommandMenuButton.js +5 -7
- package/dist/ui/CommandMenuButton.js.flow +2 -2
- package/dist/ui/CustomMenuItem.js +3 -5
- package/dist/ui/CustomMenuItem.js.flow +1 -1
- package/dist/ui/CustomNodeView.js +3 -3
- package/dist/ui/CustomRadioButton.js +8 -6
- package/dist/ui/CustomRadioButton.js.flow +3 -3
- package/dist/ui/DocLayoutEditor.js +5 -7
- package/dist/ui/DocLayoutEditor.js.flow +2 -2
- package/dist/ui/Editor.js +1 -2
- package/dist/ui/Editor.js.flow +1 -2
- package/dist/ui/EditorFrameset.js +1 -1
- package/dist/ui/EditorToolbar.js +4 -4
- package/dist/ui/EditorToolbar.js.flow +1 -1
- package/dist/ui/EditorToolbarConfig.js +1 -1
- package/dist/ui/FontSizeCommandMenuButton.js +3 -3
- package/dist/ui/FontSizeCommandMenuButton.js.flow +1 -1
- package/dist/ui/FontTypeCommandMenuButton.js +3 -3
- package/dist/ui/FontTypeCommandMenuButton.js.flow +1 -1
- package/dist/ui/ImageAlignEditor.js +5 -5
- package/dist/ui/ImageAlignEditor.js.flow +1 -1
- package/dist/ui/ImageInlineEditor.js +5 -5
- package/dist/ui/ImageInlineEditor.js.flow +1 -1
- package/dist/ui/ImageNodeView.js +5 -7
- package/dist/ui/ImageNodeView.js.flow +2 -2
- package/dist/ui/ImageResizeBox.js +4 -4
- package/dist/ui/ImageResizeBox.js.flow +1 -1
- package/dist/ui/ImageURLEditor.js +6 -8
- package/dist/ui/ImageURLEditor.js.flow +2 -2
- package/dist/ui/ImageUploadEditor.js +3 -5
- package/dist/ui/ImageUploadEditor.js.flow +2 -2
- package/dist/ui/LinkTooltip.js +4 -4
- package/dist/ui/LinkTooltip.js.flow +1 -1
- package/dist/ui/LinkURLEditor.js +4 -6
- package/dist/ui/LinkURLEditor.js.flow +2 -2
- package/dist/ui/ListTypeButton.js +5 -7
- package/dist/ui/ListTypeButton.js.flow +2 -2
- package/dist/ui/MathEditor.js +4 -6
- package/dist/ui/MathEditor.js.flow +2 -2
- package/dist/ui/MathInlineEditor.js +7 -9
- package/dist/ui/MathInlineEditor.js.flow +2 -2
- package/dist/ui/MathNodeView.js +5 -7
- package/dist/ui/MathNodeView.js.flow +2 -2
- package/dist/ui/ResizeObserver.js +1 -1
- package/dist/ui/TableGridSizeEditor.js +7 -9
- package/dist/ui/TableGridSizeEditor.js.flow +2 -2
- package/dist/ui/czi-link-tooltip.css +1 -1
- package/dist/ui/czi-vars.css +1 -45
- package/dist/ui/findActiveFontType.js +1 -1
- package/dist/ui/htmlElementToRect.js +1 -1
- package/dist/ui/isElementFullyVisible.js +2 -2
- package/dist/ui/isElementFullyVisible.js.flow +1 -1
- package/dist/ui/mathquill-editor/MathQuillEditorSymbols.js +1 -1
- package/dist/ui/mathquill-editor/MathQuillEditorSymbolsPanel.js +2 -2
- package/dist/ui/mathquill-editor/MathQuillEditorSymbolsPanel.js.flow +1 -1
- package/dist/ui/resolveImage.js +3 -3
- package/dist/ui/toCSSColor.js +1 -1
- package/dist/ui/toCSSLineSpacing.js +1 -36
- package/dist/ui/toCSSLineSpacing.js.flow +0 -27
- package/flow-typed/@modusoperandilicit-ui-commands.js +5 -0
- package/jest.config.js +207 -0
- package/lint.sh +0 -0
- package/node_modules/prosemirror-utils/LICENSE +13 -0
- package/{dist/ui/PopUpTypes.js.flow → node_modules/prosemirror-utils/README.md} +0 -0
- package/node_modules/prosemirror-utils/dist/helpers.js +119 -0
- package/node_modules/prosemirror-utils/dist/index.js +17 -0
- package/node_modules/prosemirror-utils/dist/index.js.map +1 -0
- package/node_modules/prosemirror-utils/dist/node.js +106 -0
- package/node_modules/prosemirror-utils/dist/selection.js +168 -0
- package/node_modules/prosemirror-utils/dist/transforms.js +257 -0
- package/node_modules/prosemirror-utils/package.json +81 -0
- package/node_modules/prosemirror-utils/typings.d.ts +79 -0
- package/package.json +14 -8
- package/scripts/build_bin.py +0 -0
- package/scripts/ci_check_dist.sh +0 -0
- package/src/CodeBlockCommand.js +1 -1
- package/src/DocLayoutCommand.js +1 -1
- package/src/EditorCommands.js +7 -7
- package/src/ImageSourceCommand.js +1 -1
- package/src/LinkSetURLCommand.js +3 -3
- package/src/LinkTooltipPlugin.js +5 -5
- package/src/ListToggleCommand.js +3 -3
- package/src/MarksClearCommand.js +1 -1
- package/src/MathEditCommand.js +1 -1
- package/src/ParagraphNodeSpec.js +2 -6
- package/src/TableBackgroundColorCommand.js +3 -3
- package/src/TableBorderColorCommand.js +3 -3
- package/src/TableCellColorCommand.js +3 -3
- package/src/TableCellMenuPlugin.js +3 -3
- package/src/TableInsertCommand.js +2 -2
- package/src/TextInsertTabSpaceCommand.js +1 -1
- package/src/client/CollabConnector.js +17 -2
- package/src/client/EditorConnection.js +14 -3
- package/src/client/Licit.js +101 -85
- package/src/client/Licit.test.js +13 -11
- package/src/client/SimpleConnector.js +3 -1
- package/src/joinListNode.js +1 -1
- package/src/patchStyleElements.js +1 -1
- package/src/styles.css +2 -2
- package/src/styles0.css +3 -3
- package/src/toggleBlockquote.js +4 -4
- package/src/toggleCodeBlock.js +3 -3
- package/src/ui/CommandButton.js +1 -1
- package/src/ui/CommandMenuButton.js +2 -2
- package/src/ui/CustomMenuItem.js +1 -1
- package/src/ui/CustomRadioButton.js +3 -3
- package/src/ui/DocLayoutEditor.js +2 -2
- package/src/ui/Editor.js +1 -2
- package/src/ui/EditorToolbar.js +1 -1
- package/src/ui/FontSizeCommandMenuButton.js +1 -1
- package/src/ui/FontTypeCommandMenuButton.js +1 -1
- package/src/ui/ImageAlignEditor.js +1 -1
- package/src/ui/ImageInlineEditor.js +1 -1
- package/src/ui/ImageNodeView.js +2 -2
- package/src/ui/ImageResizeBox.js +1 -1
- package/src/ui/ImageURLEditor.js +2 -2
- package/src/ui/ImageUploadEditor.js +2 -2
- package/src/ui/LinkTooltip.js +1 -1
- package/src/ui/LinkURLEditor.js +2 -2
- package/src/ui/ListTypeButton.js +2 -2
- package/src/ui/MathEditor.js +2 -2
- package/src/ui/MathInlineEditor.js +2 -2
- package/src/ui/MathNodeView.js +2 -2
- package/src/ui/TableGridSizeEditor.js +2 -2
- package/src/ui/czi-link-tooltip.css +1 -1
- package/src/ui/czi-vars.css +1 -45
- package/src/ui/isElementFullyVisible.js +1 -1
- package/src/ui/mathquill-editor/MathQuillEditorSymbolsPanel.js +1 -1
- package/src/ui/toCSSLineSpacing.js +0 -27
- package/build_customstyle_server.py +0 -7
- package/dist/FontSizeCommand.js +0 -80
- package/dist/FontSizeCommand.js.flow +0 -57
- package/dist/FontTypeCommand.js +0 -137
- package/dist/FontTypeCommand.js.flow +0 -100
- package/dist/HeadingCommand.js +0 -65
- package/dist/HeadingCommand.js.flow +0 -51
- package/dist/IndentCommand.js +0 -57
- package/dist/IndentCommand.js.flow +0 -41
- package/dist/MarkToggleCommand.js +0 -90
- package/dist/MarkToggleCommand.js.flow +0 -66
- package/dist/TextAlignCommand.js +0 -151
- package/dist/TextAlignCommand.js.flow +0 -122
- package/dist/TextColorCommand.js +0 -114
- package/dist/TextColorCommand.js.flow +0 -87
- package/dist/TextHighlightCommand.js +0 -118
- package/dist/TextHighlightCommand.js.flow +0 -91
- package/dist/TextLineSpacingCommand.js +0 -177
- package/dist/TextLineSpacingCommand.js.flow +0 -157
- package/dist/applyMark.js +0 -84
- package/dist/applyMark.js.flow +0 -61
- package/dist/clearMarks.js +0 -160
- package/dist/clearMarks.js.flow +0 -128
- package/dist/compareNumber.js +0 -18
- package/dist/compareNumber.js.flow +0 -11
- package/dist/consolidateListNodes.js +0 -291
- package/dist/consolidateListNodes.js.flow +0 -281
- package/dist/coverage/lcov-report/block-navigation.js +0 -77
- package/dist/coverage/lcov-report/block-navigation.js.flow +0 -79
- package/dist/coverage/lcov-report/prettify.js +0 -994
- package/dist/coverage/lcov-report/prettify.js.flow +0 -2
- package/dist/coverage/lcov-report/sorter.js +0 -187
- package/dist/coverage/lcov-report/sorter.js.flow +0 -170
- package/dist/findNodesWithSameMark.js +0 -89
- package/dist/findNodesWithSameMark.js.flow +0 -89
- package/dist/isBulletListNode.js +0 -14
- package/dist/isBulletListNode.js.flow +0 -9
- package/dist/isInsideListItem.js +0 -19
- package/dist/isInsideListItem.js.flow +0 -13
- package/dist/isListNode.js +0 -22
- package/dist/isListNode.js.flow +0 -13
- package/dist/isNodeSelectionForNodeType.js +0 -19
- package/dist/isNodeSelectionForNodeType.js.flow +0 -15
- package/dist/isOrderedListNode.js +0 -14
- package/dist/isOrderedListNode.js.flow +0 -9
- package/dist/isTextStyleMarkCommandEnabled.js +0 -59
- package/dist/isTextStyleMarkCommandEnabled.js.flow +0 -49
- package/dist/noop.js +0 -11
- package/dist/noop.js.flow +0 -5
- package/dist/toggleHeading.js +0 -135
- package/dist/toggleHeading.js.flow +0 -113
- package/dist/toggleList.js +0 -431
- package/dist/toggleList.js.flow +0 -450
- package/dist/transformAndPreserveTextSelection.js +0 -173
- package/dist/transformAndPreserveTextSelection.js.flow +0 -151
- package/dist/ui/ColorEditor.js +0 -118
- package/dist/ui/ColorEditor.js.flow +0 -101
- package/dist/ui/CustomButton.js +0 -62
- package/dist/ui/CustomButton.js.flow +0 -33
- package/dist/ui/PointerSurface.js +0 -173
- package/dist/ui/PointerSurface.js.flow +0 -141
- package/dist/ui/PopUp.js +0 -129
- package/dist/ui/PopUp.js.flow +0 -77
- package/dist/ui/PopUpManager.js +0 -266
- package/dist/ui/PopUpManager.js.flow +0 -213
- package/dist/ui/PopUpPosition.js +0 -156
- package/dist/ui/PopUpPosition.js.flow +0 -104
- package/dist/ui/PopUpTypes.js +0 -1
- package/dist/ui/TooltipSurface.js +0 -99
- package/dist/ui/TooltipSurface.js.flow +0 -76
- package/dist/ui/clamp.js +0 -18
- package/dist/ui/clamp.js.flow +0 -11
- package/dist/ui/createPopUp.js +0 -199
- package/dist/ui/createPopUp.js.flow +0 -205
- package/dist/ui/czi-animations.css +0 -15
- package/dist/ui/czi-color-editor.css +0 -56
- package/dist/ui/czi-custom-button.css +0 -93
- package/dist/ui/czi-pop-up.css +0 -32
- package/dist/ui/czi-tooltip-surface.css +0 -45
- package/dist/ui/preventEventDefault.js +0 -10
- package/dist/ui/preventEventDefault.js.flow +0 -5
- package/dist/ui/rects.js +0 -58
- package/dist/ui/rects.js.flow +0 -47
- package/dist/updateIndentLevel.js +0 -232
- package/dist/updateIndentLevel.js.flow +0 -211
- package/flow-typed/@molicit-citation.js +0 -5
- package/licit/server/customstyles/start.js +0 -184
- package/run_customstyle_server.py +0 -20
- package/src/FontSizeCommand.js +0 -57
- package/src/FontTypeCommand.js +0 -100
- package/src/HeadingCommand.js +0 -51
- package/src/IndentCommand.js +0 -41
- package/src/MarkToggleCommand.js +0 -66
- package/src/TextAlignCommand.js +0 -122
- package/src/TextColorCommand.js +0 -87
- package/src/TextHighlightCommand.js +0 -91
- package/src/TextLineSpacingCommand.js +0 -157
- package/src/applyMark.js +0 -61
- package/src/clearMarks.js +0 -128
- package/src/compareNumber.js +0 -11
- package/src/consolidateListNodes.js +0 -281
- package/src/findNodesWithSameMark.js +0 -89
- package/src/isBulletListNode.js +0 -9
- package/src/isInsideListItem.js +0 -13
- package/src/isListNode.js +0 -13
- package/src/isNodeSelectionForNodeType.js +0 -15
- package/src/isOrderedListNode.js +0 -9
- package/src/isTextStyleMarkCommandEnabled.js +0 -49
- package/src/noop.js +0 -5
- package/src/toggleHeading.js +0 -113
- package/src/toggleList.js +0 -450
- package/src/transformAndPreserveTextSelection.js +0 -151
- package/src/ui/ColorEditor.js +0 -101
- package/src/ui/CustomButton.js +0 -33
- package/src/ui/PointerSurface.js +0 -141
- package/src/ui/PopUp.js +0 -77
- package/src/ui/PopUpManager.js +0 -213
- package/src/ui/PopUpPosition.js +0 -104
- package/src/ui/PopUpTypes.js +0 -0
- package/src/ui/TooltipSurface.js +0 -76
- package/src/ui/clamp.js +0 -11
- package/src/ui/createPopUp.js +0 -205
- package/src/ui/czi-animations.css +0 -15
- package/src/ui/czi-color-editor.css +0 -56
- package/src/ui/czi-custom-button.css +0 -93
- package/src/ui/czi-pop-up.css +0 -32
- package/src/ui/czi-tooltip-surface.css +0 -45
- package/src/ui/preventEventDefault.js +0 -5
- package/src/ui/rects.js +0 -47
- package/src/updateIndentLevel.js +0 -211
- package/utils/build_customstyle_server.js +0 -72
|
@@ -1,151 +0,0 @@
|
|
|
1
|
-
import { Fragment, Schema } from 'prosemirror-model';
|
|
2
|
-
import { TextSelection } from 'prosemirror-state';
|
|
3
|
-
import { Transform } from 'prosemirror-transform';
|
|
4
|
-
|
|
5
|
-
import { MARK_TEXT_SELECTION } from './MarkNames';
|
|
6
|
-
import { PARAGRAPH, TEXT } from './NodeNames';
|
|
7
|
-
import applyMark from './applyMark';
|
|
8
|
-
import uuid from './ui/uuid';
|
|
9
|
-
|
|
10
|
-
export type SelectionMemo = {
|
|
11
|
-
schema: Schema,
|
|
12
|
-
tr: Transform,
|
|
13
|
-
};
|
|
14
|
-
|
|
15
|
-
// Text used to create temporary selection.
|
|
16
|
-
// This assumes that no user could enter such string manually.
|
|
17
|
-
const PLACEHOLDER_TEXT = `[\u200b\u2800PLACEHOLDER_TEXT_${uuid()}\u2800\u200b]`;
|
|
18
|
-
|
|
19
|
-
// Perform the transform without losing the perceived text selection.
|
|
20
|
-
// The way it works is that this will annotate teh current selection with
|
|
21
|
-
// temporary marks and restores the selection with those marks after performing
|
|
22
|
-
// the transform.
|
|
23
|
-
export default function transformAndPreserveTextSelection(
|
|
24
|
-
tr: Transform,
|
|
25
|
-
schema: Schema,
|
|
26
|
-
fn: (memo: SelectionMemo) => Transform
|
|
27
|
-
): Transform {
|
|
28
|
-
if (tr.getMeta('dryrun')) {
|
|
29
|
-
// There's no need to preserve the selection in dryrun mode.
|
|
30
|
-
return fn({ tr, schema });
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
const { selection, doc } = tr;
|
|
34
|
-
const markType = schema.marks[MARK_TEXT_SELECTION];
|
|
35
|
-
if (!markType || !selection || !doc) {
|
|
36
|
-
return tr;
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
if (!(selection instanceof TextSelection)) {
|
|
40
|
-
return tr;
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
const { from, to } = selection;
|
|
44
|
-
|
|
45
|
-
// Mark current selection so that we could resume the selection later
|
|
46
|
-
// after changing the whole list.
|
|
47
|
-
let fromOffset = 0;
|
|
48
|
-
let toOffset = 0;
|
|
49
|
-
let placeholderTextNode;
|
|
50
|
-
|
|
51
|
-
if (from === to) {
|
|
52
|
-
if (from === 0) {
|
|
53
|
-
return tr;
|
|
54
|
-
}
|
|
55
|
-
// Selection is collapsed, create a temporary selection that the marks can
|
|
56
|
-
// be applied to.
|
|
57
|
-
const currentNode = tr.doc.nodeAt(from);
|
|
58
|
-
const prevNode = tr.doc.nodeAt(from - 1);
|
|
59
|
-
const nextNode = tr.doc.nodeAt(from + 1);
|
|
60
|
-
|
|
61
|
-
if (
|
|
62
|
-
!currentNode &&
|
|
63
|
-
prevNode &&
|
|
64
|
-
prevNode.type.name === PARAGRAPH &&
|
|
65
|
-
!prevNode.firstChild
|
|
66
|
-
) {
|
|
67
|
-
// The selection is at a paragraph node which has no content.
|
|
68
|
-
// Create a temporary text and move selection into that text.
|
|
69
|
-
placeholderTextNode = schema.text(PLACEHOLDER_TEXT);
|
|
70
|
-
tr = tr.insert(from, Fragment.from(placeholderTextNode));
|
|
71
|
-
toOffset = 1;
|
|
72
|
-
} else if (!currentNode && prevNode && prevNode.type.name === TEXT) {
|
|
73
|
-
// The selection is at the end of the text node. Select the last
|
|
74
|
-
// character instead.
|
|
75
|
-
fromOffset = -1;
|
|
76
|
-
} else if (prevNode && currentNode && currentNode.type === prevNode.type) {
|
|
77
|
-
// Ensure that the mark is applied to the same type of node.
|
|
78
|
-
fromOffset = -1;
|
|
79
|
-
} else if (nextNode && currentNode && currentNode.type === nextNode.type) {
|
|
80
|
-
toOffset = 1;
|
|
81
|
-
} else if (nextNode) {
|
|
82
|
-
// Could not find the same type of node, assume the next node is safe to use.
|
|
83
|
-
toOffset = 1;
|
|
84
|
-
} else if (prevNode) {
|
|
85
|
-
// Could not find the same type of node, assume the next node is safe to use.
|
|
86
|
-
fromOffset = -1;
|
|
87
|
-
} else {
|
|
88
|
-
// Selection can't be safely preserved.
|
|
89
|
-
return tr;
|
|
90
|
-
}
|
|
91
|
-
tr = tr.setSelection(
|
|
92
|
-
// [FS] IRAD-1005 2020-07-29
|
|
93
|
-
// Upgrade outdated packages.
|
|
94
|
-
// reset selection using the latest doc.
|
|
95
|
-
// This fixes IRAD-1023
|
|
96
|
-
TextSelection.create(tr.doc, from + fromOffset, to + toOffset)
|
|
97
|
-
);
|
|
98
|
-
}
|
|
99
|
-
|
|
100
|
-
// This is an unique ID (by reference).
|
|
101
|
-
const id = {};
|
|
102
|
-
const findMark = (mark) => mark.attrs.id === id;
|
|
103
|
-
|
|
104
|
-
const findMarkRange = () => {
|
|
105
|
-
let markFrom = 0;
|
|
106
|
-
let markTo = 0;
|
|
107
|
-
tr.doc.descendants((node, pos) => {
|
|
108
|
-
if (node.marks && node.marks.find(findMark)) {
|
|
109
|
-
markFrom = markFrom === 0 ? pos : markFrom;
|
|
110
|
-
markTo = pos + node.nodeSize;
|
|
111
|
-
}
|
|
112
|
-
return true;
|
|
113
|
-
});
|
|
114
|
-
return {
|
|
115
|
-
from: markFrom,
|
|
116
|
-
to: markTo,
|
|
117
|
-
};
|
|
118
|
-
};
|
|
119
|
-
|
|
120
|
-
// TODO: This has side-effect. It will cause `tr.docChanged` to be `true`.
|
|
121
|
-
// No matter whether `fn({tr, schema})` did change the doc or not.
|
|
122
|
-
tr = applyMark(tr, schema, markType, { id });
|
|
123
|
-
tr = fn({ tr, schema });
|
|
124
|
-
|
|
125
|
-
const markRange = findMarkRange();
|
|
126
|
-
const selectionRange = {
|
|
127
|
-
from: Math.max(0, markRange.from - fromOffset),
|
|
128
|
-
to: Math.max(0, markRange.to - toOffset),
|
|
129
|
-
};
|
|
130
|
-
|
|
131
|
-
selectionRange.to = Math.max(0, selectionRange.from, selectionRange.to);
|
|
132
|
-
|
|
133
|
-
tr = tr.removeMark(markRange.from, markRange.to, markType);
|
|
134
|
-
|
|
135
|
-
if (placeholderTextNode) {
|
|
136
|
-
tr.doc.descendants((node, pos) => {
|
|
137
|
-
if (node.type.name === TEXT && node.text === PLACEHOLDER_TEXT) {
|
|
138
|
-
tr = tr.delete(pos, pos + PLACEHOLDER_TEXT.length);
|
|
139
|
-
placeholderTextNode = null;
|
|
140
|
-
return false;
|
|
141
|
-
}
|
|
142
|
-
return true;
|
|
143
|
-
});
|
|
144
|
-
}
|
|
145
|
-
|
|
146
|
-
tr = tr.setSelection(
|
|
147
|
-
TextSelection.create(tr.doc, selectionRange.from, selectionRange.to)
|
|
148
|
-
);
|
|
149
|
-
|
|
150
|
-
return tr;
|
|
151
|
-
}
|
package/dist/ui/ColorEditor.js
DELETED
|
@@ -1,118 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.default = void 0;
|
|
7
|
-
|
|
8
|
-
var _color = _interopRequireDefault(require("color"));
|
|
9
|
-
|
|
10
|
-
var React = _interopRequireWildcard(require("react"));
|
|
11
|
-
|
|
12
|
-
var _CustomButton = _interopRequireDefault(require("./CustomButton"));
|
|
13
|
-
|
|
14
|
-
var _clamp = _interopRequireDefault(require("./clamp"));
|
|
15
|
-
|
|
16
|
-
require("./czi-color-editor.css");
|
|
17
|
-
|
|
18
|
-
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
19
|
-
|
|
20
|
-
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
21
|
-
|
|
22
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
23
|
-
|
|
24
|
-
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
25
|
-
|
|
26
|
-
function generateGreyColors(count) {
|
|
27
|
-
let cc = 255;
|
|
28
|
-
const interval = cc / count;
|
|
29
|
-
const colors = [];
|
|
30
|
-
|
|
31
|
-
while (cc > 0) {
|
|
32
|
-
const color = (0, _color.default)({
|
|
33
|
-
r: cc,
|
|
34
|
-
g: cc,
|
|
35
|
-
b: cc
|
|
36
|
-
});
|
|
37
|
-
cc -= interval;
|
|
38
|
-
cc = Math.floor(cc);
|
|
39
|
-
colors.unshift(color);
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
return colors;
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
function generateRainbowColors(count, saturation, lightness) {
|
|
46
|
-
const colors = [];
|
|
47
|
-
const interval = 360 / count;
|
|
48
|
-
const ss = (0, _clamp.default)(0, saturation, 100);
|
|
49
|
-
const ll = (0, _clamp.default)(0, lightness, 100);
|
|
50
|
-
let hue = 0;
|
|
51
|
-
|
|
52
|
-
while (hue < 360) {
|
|
53
|
-
const hsl = `hsl(${hue},${ss}%,${ll}%)`;
|
|
54
|
-
const color = (0, _color.default)(hsl);
|
|
55
|
-
colors.unshift(color);
|
|
56
|
-
hue += interval;
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
return colors;
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
class ColorEditor extends React.PureComponent {
|
|
63
|
-
constructor() {
|
|
64
|
-
super(...arguments);
|
|
65
|
-
|
|
66
|
-
_defineProperty(this, "props", void 0);
|
|
67
|
-
|
|
68
|
-
_defineProperty(this, "_renderColor", (color, index) => {
|
|
69
|
-
const selectedColor = this.props.hex;
|
|
70
|
-
const hex = color.hex().toLowerCase();
|
|
71
|
-
const style = {
|
|
72
|
-
backgroundColor: hex
|
|
73
|
-
};
|
|
74
|
-
const active = selectedColor && selectedColor.toLowerCase() === hex;
|
|
75
|
-
return /*#__PURE__*/React.createElement(_CustomButton.default, {
|
|
76
|
-
active: active,
|
|
77
|
-
className: "czi-color-editor-cell",
|
|
78
|
-
key: `${hex}-${index}`,
|
|
79
|
-
label: "",
|
|
80
|
-
onClick: this._onSelectColor,
|
|
81
|
-
style: style,
|
|
82
|
-
value: hex
|
|
83
|
-
});
|
|
84
|
-
});
|
|
85
|
-
|
|
86
|
-
_defineProperty(this, "_onSelectColor", hex => {
|
|
87
|
-
this.props.close(hex);
|
|
88
|
-
});
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
render() {
|
|
92
|
-
const renderColor = this._renderColor;
|
|
93
|
-
const selectedColor = this.props.hex;
|
|
94
|
-
return /*#__PURE__*/React.createElement("div", {
|
|
95
|
-
className: "czi-color-editor"
|
|
96
|
-
}, /*#__PURE__*/React.createElement("div", {
|
|
97
|
-
className: "czi-color-editor-section"
|
|
98
|
-
}, /*#__PURE__*/React.createElement(_CustomButton.default, {
|
|
99
|
-
active: !selectedColor,
|
|
100
|
-
className: "czi-color-editor-color-transparent",
|
|
101
|
-
label: "Transparent",
|
|
102
|
-
onClick: this._onSelectColor,
|
|
103
|
-
value: "rgba(0,0,0,0)"
|
|
104
|
-
})), /*#__PURE__*/React.createElement("div", {
|
|
105
|
-
className: "czi-color-editor-section"
|
|
106
|
-
}, generateGreyColors(10).map(renderColor)), /*#__PURE__*/React.createElement("div", {
|
|
107
|
-
className: "czi-color-editor-section"
|
|
108
|
-
}, generateRainbowColors(10, 90, 50).map(renderColor)), /*#__PURE__*/React.createElement("div", {
|
|
109
|
-
className: "czi-color-editor-section"
|
|
110
|
-
}, generateRainbowColors(30, 70, 70).map(renderColor)), /*#__PURE__*/React.createElement("div", {
|
|
111
|
-
className: "czi-color-editor-section"
|
|
112
|
-
}, generateRainbowColors(30, 90, 30).map(renderColor)));
|
|
113
|
-
}
|
|
114
|
-
|
|
115
|
-
}
|
|
116
|
-
|
|
117
|
-
var _default = ColorEditor;
|
|
118
|
-
exports.default = _default;
|
|
@@ -1,101 +0,0 @@
|
|
|
1
|
-
// @flow
|
|
2
|
-
|
|
3
|
-
import Color from 'color';
|
|
4
|
-
import * as React from 'react';
|
|
5
|
-
|
|
6
|
-
import CustomButton from './CustomButton';
|
|
7
|
-
import clamp from './clamp';
|
|
8
|
-
|
|
9
|
-
import './czi-color-editor.css';
|
|
10
|
-
|
|
11
|
-
function generateGreyColors(count: number): Array<Color> {
|
|
12
|
-
let cc = 255;
|
|
13
|
-
const interval = cc / count;
|
|
14
|
-
const colors = [];
|
|
15
|
-
while (cc > 0) {
|
|
16
|
-
const color = Color({ r: cc, g: cc, b: cc });
|
|
17
|
-
cc -= interval;
|
|
18
|
-
cc = Math.floor(cc);
|
|
19
|
-
colors.unshift(color);
|
|
20
|
-
}
|
|
21
|
-
return colors;
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
function generateRainbowColors(
|
|
25
|
-
count: number,
|
|
26
|
-
saturation: number,
|
|
27
|
-
lightness: number
|
|
28
|
-
): Array<Color> {
|
|
29
|
-
const colors = [];
|
|
30
|
-
const interval = 360 / count;
|
|
31
|
-
const ss = clamp(0, saturation, 100);
|
|
32
|
-
const ll = clamp(0, lightness, 100);
|
|
33
|
-
let hue = 0;
|
|
34
|
-
while (hue < 360) {
|
|
35
|
-
const hsl = `hsl(${hue},${ss}%,${ll}%)`;
|
|
36
|
-
const color = Color(hsl);
|
|
37
|
-
colors.unshift(color);
|
|
38
|
-
hue += interval;
|
|
39
|
-
}
|
|
40
|
-
return colors;
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
class ColorEditor extends React.PureComponent<any, any> {
|
|
44
|
-
props: {
|
|
45
|
-
close: (?string) => void,
|
|
46
|
-
hex?: ?string,
|
|
47
|
-
};
|
|
48
|
-
|
|
49
|
-
render(): React.Element<any> {
|
|
50
|
-
const renderColor = this._renderColor;
|
|
51
|
-
const selectedColor = this.props.hex;
|
|
52
|
-
return (
|
|
53
|
-
<div className="czi-color-editor">
|
|
54
|
-
<div className="czi-color-editor-section">
|
|
55
|
-
<CustomButton
|
|
56
|
-
active={!selectedColor}
|
|
57
|
-
className="czi-color-editor-color-transparent"
|
|
58
|
-
label="Transparent"
|
|
59
|
-
onClick={this._onSelectColor}
|
|
60
|
-
value="rgba(0,0,0,0)"
|
|
61
|
-
/>
|
|
62
|
-
</div>
|
|
63
|
-
<div className="czi-color-editor-section">
|
|
64
|
-
{generateGreyColors(10).map(renderColor)}
|
|
65
|
-
</div>
|
|
66
|
-
<div className="czi-color-editor-section">
|
|
67
|
-
{generateRainbowColors(10, 90, 50).map(renderColor)}
|
|
68
|
-
</div>
|
|
69
|
-
<div className="czi-color-editor-section">
|
|
70
|
-
{generateRainbowColors(30, 70, 70).map(renderColor)}
|
|
71
|
-
</div>
|
|
72
|
-
<div className="czi-color-editor-section">
|
|
73
|
-
{generateRainbowColors(30, 90, 30).map(renderColor)}
|
|
74
|
-
</div>
|
|
75
|
-
</div>
|
|
76
|
-
);
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
_renderColor = (color: Color, index: number): React.Element<any> => {
|
|
80
|
-
const selectedColor = this.props.hex;
|
|
81
|
-
const hex = color.hex().toLowerCase();
|
|
82
|
-
const style = { backgroundColor: hex };
|
|
83
|
-
const active = selectedColor && selectedColor.toLowerCase() === hex;
|
|
84
|
-
return (
|
|
85
|
-
<CustomButton
|
|
86
|
-
active={active}
|
|
87
|
-
className="czi-color-editor-cell"
|
|
88
|
-
key={`${hex}-${index}`}
|
|
89
|
-
label=""
|
|
90
|
-
onClick={this._onSelectColor}
|
|
91
|
-
style={style}
|
|
92
|
-
value={hex}
|
|
93
|
-
/>
|
|
94
|
-
);
|
|
95
|
-
};
|
|
96
|
-
|
|
97
|
-
_onSelectColor = (hex: string): void => {
|
|
98
|
-
this.props.close(hex);
|
|
99
|
-
};
|
|
100
|
-
}
|
|
101
|
-
export default ColorEditor;
|
package/dist/ui/CustomButton.js
DELETED
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.default = void 0;
|
|
7
|
-
|
|
8
|
-
require("./czi-custom-button.css");
|
|
9
|
-
|
|
10
|
-
var _PointerSurface = _interopRequireWildcard(require("./PointerSurface"));
|
|
11
|
-
|
|
12
|
-
var React = _interopRequireWildcard(require("react"));
|
|
13
|
-
|
|
14
|
-
var _TooltipSurface = _interopRequireDefault(require("./TooltipSurface"));
|
|
15
|
-
|
|
16
|
-
var _classnames = _interopRequireDefault(require("classnames"));
|
|
17
|
-
|
|
18
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
19
|
-
|
|
20
|
-
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
21
|
-
|
|
22
|
-
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
23
|
-
|
|
24
|
-
function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
25
|
-
|
|
26
|
-
function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
|
|
27
|
-
|
|
28
|
-
function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
|
|
29
|
-
|
|
30
|
-
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
31
|
-
|
|
32
|
-
class CustomButton extends React.PureComponent {
|
|
33
|
-
constructor() {
|
|
34
|
-
super(...arguments);
|
|
35
|
-
|
|
36
|
-
_defineProperty(this, "props", void 0);
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
render() {
|
|
40
|
-
const _this$props = this.props,
|
|
41
|
-
{
|
|
42
|
-
icon,
|
|
43
|
-
label,
|
|
44
|
-
className,
|
|
45
|
-
title
|
|
46
|
-
} = _this$props,
|
|
47
|
-
pointerProps = _objectWithoutProperties(_this$props, ["icon", "label", "className", "title"]);
|
|
48
|
-
|
|
49
|
-
const klass = (0, _classnames.default)(className, 'czi-custom-button', {
|
|
50
|
-
'use-icon': !!icon
|
|
51
|
-
});
|
|
52
|
-
return /*#__PURE__*/React.createElement(_TooltipSurface.default, {
|
|
53
|
-
tooltip: title
|
|
54
|
-
}, /*#__PURE__*/React.createElement(_PointerSurface.default, _extends({}, pointerProps, {
|
|
55
|
-
className: klass
|
|
56
|
-
}), icon, label));
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
var _default = CustomButton;
|
|
62
|
-
exports.default = _default;
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
// @flow
|
|
2
|
-
|
|
3
|
-
import './czi-custom-button.css';
|
|
4
|
-
import PointerSurface from './PointerSurface';
|
|
5
|
-
import * as React from 'react';
|
|
6
|
-
import TooltipSurface from './TooltipSurface';
|
|
7
|
-
import cx from 'classnames';
|
|
8
|
-
|
|
9
|
-
import type { PointerSurfaceProps } from './PointerSurface';
|
|
10
|
-
|
|
11
|
-
class CustomButton extends React.PureComponent<any, any> {
|
|
12
|
-
props: PointerSurfaceProps & {
|
|
13
|
-
icon?: string | React.Element<any> | null,
|
|
14
|
-
label?: string | React.Element<any> | null,
|
|
15
|
-
};
|
|
16
|
-
|
|
17
|
-
render(): React.Element<any> {
|
|
18
|
-
const { icon, label, className, title, ...pointerProps } = this.props;
|
|
19
|
-
const klass = cx(className, 'czi-custom-button', {
|
|
20
|
-
'use-icon': !!icon,
|
|
21
|
-
});
|
|
22
|
-
return (
|
|
23
|
-
<TooltipSurface tooltip={title}>
|
|
24
|
-
<PointerSurface {...pointerProps} className={klass}>
|
|
25
|
-
{icon}
|
|
26
|
-
{label}
|
|
27
|
-
</PointerSurface>
|
|
28
|
-
</TooltipSurface>
|
|
29
|
-
);
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
export default CustomButton;
|
|
@@ -1,173 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.bpfrpt_proptype_PointerSurfaceProps = exports.default = void 0;
|
|
7
|
-
|
|
8
|
-
var _classnames = _interopRequireDefault(require("classnames"));
|
|
9
|
-
|
|
10
|
-
var React = _interopRequireWildcard(require("react"));
|
|
11
|
-
|
|
12
|
-
var _preventEventDefault = _interopRequireDefault(require("./preventEventDefault"));
|
|
13
|
-
|
|
14
|
-
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
15
|
-
|
|
16
|
-
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
17
|
-
|
|
18
|
-
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
19
|
-
|
|
20
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
21
|
-
|
|
22
|
-
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
23
|
-
|
|
24
|
-
var bpfrpt_proptype_PointerSurfaceProps = {
|
|
25
|
-
"active": _propTypes.default.bool,
|
|
26
|
-
"children": _propTypes.default.any,
|
|
27
|
-
"className": _propTypes.default.string,
|
|
28
|
-
"disabled": _propTypes.default.bool,
|
|
29
|
-
"id": _propTypes.default.string,
|
|
30
|
-
"onClick": _propTypes.default.func,
|
|
31
|
-
"onMouseEnter": _propTypes.default.func,
|
|
32
|
-
"style": _propTypes.default.object,
|
|
33
|
-
"title": _propTypes.default.string,
|
|
34
|
-
"value": _propTypes.default.any
|
|
35
|
-
};
|
|
36
|
-
exports.bpfrpt_proptype_PointerSurfaceProps = bpfrpt_proptype_PointerSurfaceProps;
|
|
37
|
-
|
|
38
|
-
class PointerSurface extends React.PureComponent {
|
|
39
|
-
constructor() {
|
|
40
|
-
super(...arguments);
|
|
41
|
-
|
|
42
|
-
_defineProperty(this, "props", void 0);
|
|
43
|
-
|
|
44
|
-
_defineProperty(this, "_clicked", false);
|
|
45
|
-
|
|
46
|
-
_defineProperty(this, "_mul", false);
|
|
47
|
-
|
|
48
|
-
_defineProperty(this, "_pressedTarget", null);
|
|
49
|
-
|
|
50
|
-
_defineProperty(this, "_unmounted", false);
|
|
51
|
-
|
|
52
|
-
_defineProperty(this, "state", {
|
|
53
|
-
pressed: false
|
|
54
|
-
});
|
|
55
|
-
|
|
56
|
-
_defineProperty(this, "_onMouseEnter", e => {
|
|
57
|
-
this._pressedTarget = null;
|
|
58
|
-
e.preventDefault();
|
|
59
|
-
const {
|
|
60
|
-
onMouseEnter,
|
|
61
|
-
value
|
|
62
|
-
} = this.props;
|
|
63
|
-
onMouseEnter && onMouseEnter(value, e);
|
|
64
|
-
});
|
|
65
|
-
|
|
66
|
-
_defineProperty(this, "_onMouseLeave", e => {
|
|
67
|
-
this._pressedTarget = null;
|
|
68
|
-
const mouseUpEvent = e;
|
|
69
|
-
|
|
70
|
-
this._onMouseUpCapture(mouseUpEvent);
|
|
71
|
-
});
|
|
72
|
-
|
|
73
|
-
_defineProperty(this, "_onMouseDown", e => {
|
|
74
|
-
e.preventDefault();
|
|
75
|
-
this._pressedTarget = null;
|
|
76
|
-
this._clicked = false;
|
|
77
|
-
|
|
78
|
-
if (e.which === 3 || e.button == 2) {
|
|
79
|
-
// right click.
|
|
80
|
-
return;
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
this.setState({
|
|
84
|
-
pressed: true
|
|
85
|
-
});
|
|
86
|
-
this._pressedTarget = e.currentTarget;
|
|
87
|
-
this._clicked = false;
|
|
88
|
-
|
|
89
|
-
if (!this._mul) {
|
|
90
|
-
document.addEventListener('mouseup', this._onMouseUpCapture, true);
|
|
91
|
-
this._mul = true;
|
|
92
|
-
}
|
|
93
|
-
});
|
|
94
|
-
|
|
95
|
-
_defineProperty(this, "_onMouseUp", e => {
|
|
96
|
-
e.preventDefault();
|
|
97
|
-
|
|
98
|
-
if (this._clicked || e.type === 'keypress') {
|
|
99
|
-
const {
|
|
100
|
-
onClick,
|
|
101
|
-
value,
|
|
102
|
-
disabled
|
|
103
|
-
} = this.props;
|
|
104
|
-
!disabled && onClick && onClick(value, e);
|
|
105
|
-
}
|
|
106
|
-
|
|
107
|
-
this._pressedTarget = null;
|
|
108
|
-
this._clicked = false;
|
|
109
|
-
});
|
|
110
|
-
|
|
111
|
-
_defineProperty(this, "_onMouseUpCapture", e => {
|
|
112
|
-
if (this._mul) {
|
|
113
|
-
this._mul = false;
|
|
114
|
-
document.removeEventListener('mouseup', this._onMouseUpCapture, true);
|
|
115
|
-
}
|
|
116
|
-
|
|
117
|
-
const target = e.target;
|
|
118
|
-
this._clicked = this._pressedTarget instanceof HTMLElement && target instanceof HTMLElement && (target === this._pressedTarget || target.contains(this._pressedTarget) || this._pressedTarget.contains(target));
|
|
119
|
-
this.setState({
|
|
120
|
-
pressed: false
|
|
121
|
-
});
|
|
122
|
-
});
|
|
123
|
-
}
|
|
124
|
-
|
|
125
|
-
render() {
|
|
126
|
-
const {
|
|
127
|
-
className,
|
|
128
|
-
disabled,
|
|
129
|
-
active,
|
|
130
|
-
id,
|
|
131
|
-
style,
|
|
132
|
-
title,
|
|
133
|
-
children
|
|
134
|
-
} = this.props;
|
|
135
|
-
const {
|
|
136
|
-
pressed
|
|
137
|
-
} = this.state;
|
|
138
|
-
const buttonClassName = (0, _classnames.default)(className, {
|
|
139
|
-
active: active,
|
|
140
|
-
disabled: disabled,
|
|
141
|
-
pressed: pressed
|
|
142
|
-
});
|
|
143
|
-
return /*#__PURE__*/React.createElement("span", {
|
|
144
|
-
"aria-disabled": disabled,
|
|
145
|
-
"aria-pressed": pressed,
|
|
146
|
-
className: buttonClassName,
|
|
147
|
-
disabled: disabled,
|
|
148
|
-
id: id,
|
|
149
|
-
onKeyPress: disabled ? _preventEventDefault.default : this._onMouseUp,
|
|
150
|
-
onMouseDown: disabled ? _preventEventDefault.default : this._onMouseDown,
|
|
151
|
-
onMouseEnter: disabled ? _preventEventDefault.default : this._onMouseEnter,
|
|
152
|
-
onMouseLeave: disabled ? null : this._onMouseLeave,
|
|
153
|
-
onMouseUp: disabled ? _preventEventDefault.default : this._onMouseUp,
|
|
154
|
-
role: "button",
|
|
155
|
-
style: style,
|
|
156
|
-
tabIndex: disabled ? null : 0,
|
|
157
|
-
title: title
|
|
158
|
-
}, children);
|
|
159
|
-
}
|
|
160
|
-
|
|
161
|
-
componentWillUnmount() {
|
|
162
|
-
this._unmounted = true;
|
|
163
|
-
|
|
164
|
-
if (this._mul) {
|
|
165
|
-
this._mul = false;
|
|
166
|
-
document.removeEventListener('mouseup', this._onMouseUpCapture, true);
|
|
167
|
-
}
|
|
168
|
-
}
|
|
169
|
-
|
|
170
|
-
}
|
|
171
|
-
|
|
172
|
-
var _default = PointerSurface;
|
|
173
|
-
exports.default = _default;
|