@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,19 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.default = isNodeSelectionForNodeType;
|
|
7
|
-
|
|
8
|
-
var _prosemirrorState = require("prosemirror-state");
|
|
9
|
-
|
|
10
|
-
var _prosemirrorModel = require("prosemirror-model");
|
|
11
|
-
|
|
12
|
-
// Whether the selection is a node for the node type provided.
|
|
13
|
-
function isNodeSelectionForNodeType(selection, nodeType) {
|
|
14
|
-
if (selection instanceof _prosemirrorState.NodeSelection) {
|
|
15
|
-
return selection.node.type === nodeType;
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
return false;
|
|
19
|
-
}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
// @flow
|
|
2
|
-
|
|
3
|
-
import { Selection, NodeSelection } from 'prosemirror-state';
|
|
4
|
-
import { NodeType } from 'prosemirror-model';
|
|
5
|
-
|
|
6
|
-
// Whether the selection is a node for the node type provided.
|
|
7
|
-
export default function isNodeSelectionForNodeType(
|
|
8
|
-
selection: Selection,
|
|
9
|
-
nodeType: NodeType
|
|
10
|
-
): boolean {
|
|
11
|
-
if (selection instanceof NodeSelection) {
|
|
12
|
-
return selection.node.type === nodeType;
|
|
13
|
-
}
|
|
14
|
-
return false;
|
|
15
|
-
}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.default = isOrderedListNode;
|
|
7
|
-
|
|
8
|
-
var _prosemirrorModel = require("prosemirror-model");
|
|
9
|
-
|
|
10
|
-
var _NodeNames = require("./NodeNames");
|
|
11
|
-
|
|
12
|
-
function isOrderedListNode(node) {
|
|
13
|
-
return node.type.name === _NodeNames.ORDERED_LIST;
|
|
14
|
-
}
|
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.default = isTextStyleMarkCommandEnabled;
|
|
7
|
-
|
|
8
|
-
var _isNodeSelectionForNodeType = _interopRequireDefault(require("./isNodeSelectionForNodeType"));
|
|
9
|
-
|
|
10
|
-
var _prosemirrorState = require("prosemirror-state");
|
|
11
|
-
|
|
12
|
-
var _NodeNames = require("./NodeNames");
|
|
13
|
-
|
|
14
|
-
var _MarkNames = require("./MarkNames");
|
|
15
|
-
|
|
16
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
17
|
-
|
|
18
|
-
const VALID_MATH_MARK_NAMES = new Set([_MarkNames.MARK_FONT_SIZE, _MarkNames.MARK_TEXT_COLOR]); // Whether the command for apply specific text style mark is enabled.
|
|
19
|
-
|
|
20
|
-
function isTextStyleMarkCommandEnabled(state, markName) {
|
|
21
|
-
const {
|
|
22
|
-
selection,
|
|
23
|
-
schema,
|
|
24
|
-
tr
|
|
25
|
-
} = state;
|
|
26
|
-
const markType = schema.marks[markName];
|
|
27
|
-
|
|
28
|
-
if (!markType) {
|
|
29
|
-
return false;
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
const mathNodeType = schema.nodes[_NodeNames.MATH];
|
|
33
|
-
|
|
34
|
-
if (mathNodeType && VALID_MATH_MARK_NAMES.has(markName) && (0, _isNodeSelectionForNodeType.default)(selection, mathNodeType)) {
|
|
35
|
-
// A math node is selected.
|
|
36
|
-
return true;
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
if (!(selection instanceof _prosemirrorState.TextSelection || selection instanceof _prosemirrorState.AllSelection)) {
|
|
40
|
-
// Could be a NodeSelection or CellSelection.
|
|
41
|
-
return false;
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
const {
|
|
45
|
-
from,
|
|
46
|
-
to
|
|
47
|
-
} = state.selection;
|
|
48
|
-
|
|
49
|
-
if (to === from + 1) {
|
|
50
|
-
const node = tr.doc.nodeAt(from);
|
|
51
|
-
|
|
52
|
-
if (node.isAtom && !node.isText && node.isLeaf) {
|
|
53
|
-
// An atomic node (e.g. Image) is selected.
|
|
54
|
-
return false;
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
return true;
|
|
59
|
-
}
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
// @flow
|
|
2
|
-
|
|
3
|
-
import isNodeSelectionForNodeType from './isNodeSelectionForNodeType';
|
|
4
|
-
import { EditorState } from 'prosemirror-state';
|
|
5
|
-
import { MATH } from './NodeNames';
|
|
6
|
-
import { AllSelection, TextSelection } from 'prosemirror-state';
|
|
7
|
-
import { MARK_FONT_SIZE, MARK_TEXT_COLOR } from './MarkNames';
|
|
8
|
-
|
|
9
|
-
const VALID_MATH_MARK_NAMES = new Set([MARK_FONT_SIZE, MARK_TEXT_COLOR]);
|
|
10
|
-
|
|
11
|
-
// Whether the command for apply specific text style mark is enabled.
|
|
12
|
-
export default function isTextStyleMarkCommandEnabled(
|
|
13
|
-
state: EditorState,
|
|
14
|
-
markName: string
|
|
15
|
-
): boolean {
|
|
16
|
-
const { selection, schema, tr } = state;
|
|
17
|
-
const markType = schema.marks[markName];
|
|
18
|
-
if (!markType) {
|
|
19
|
-
return false;
|
|
20
|
-
}
|
|
21
|
-
const mathNodeType = schema.nodes[MATH];
|
|
22
|
-
if (
|
|
23
|
-
mathNodeType &&
|
|
24
|
-
VALID_MATH_MARK_NAMES.has(markName) &&
|
|
25
|
-
isNodeSelectionForNodeType(selection, mathNodeType)
|
|
26
|
-
) {
|
|
27
|
-
// A math node is selected.
|
|
28
|
-
return true;
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
if (
|
|
32
|
-
!(selection instanceof TextSelection || selection instanceof AllSelection)
|
|
33
|
-
) {
|
|
34
|
-
// Could be a NodeSelection or CellSelection.
|
|
35
|
-
return false;
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
const { from, to } = state.selection;
|
|
39
|
-
|
|
40
|
-
if (to === from + 1) {
|
|
41
|
-
const node = tr.doc.nodeAt(from);
|
|
42
|
-
if (node.isAtom && !node.isText && node.isLeaf) {
|
|
43
|
-
// An atomic node (e.g. Image) is selected.
|
|
44
|
-
return false;
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
return true;
|
|
49
|
-
}
|
package/dist/noop.js
DELETED
package/dist/noop.js.flow
DELETED
package/dist/toggleHeading.js
DELETED
|
@@ -1,135 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.default = toggleHeading;
|
|
7
|
-
|
|
8
|
-
var _prosemirrorModel = require("prosemirror-model");
|
|
9
|
-
|
|
10
|
-
var _prosemirrorTransform = require("prosemirror-transform");
|
|
11
|
-
|
|
12
|
-
var _NodeNames = require("./NodeNames");
|
|
13
|
-
|
|
14
|
-
var _compareNumber = _interopRequireDefault(require("./compareNumber"));
|
|
15
|
-
|
|
16
|
-
var _isInsideListItem = _interopRequireDefault(require("./isInsideListItem"));
|
|
17
|
-
|
|
18
|
-
var _isListNode = _interopRequireDefault(require("./isListNode"));
|
|
19
|
-
|
|
20
|
-
var _clearMarks = require("./clearMarks");
|
|
21
|
-
|
|
22
|
-
var _toggleList = require("./toggleList");
|
|
23
|
-
|
|
24
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
25
|
-
|
|
26
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
|
|
27
|
-
|
|
28
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(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
|
-
function toggleHeading(tr, schema, level) {
|
|
33
|
-
const {
|
|
34
|
-
nodes
|
|
35
|
-
} = schema;
|
|
36
|
-
const {
|
|
37
|
-
selection,
|
|
38
|
-
doc
|
|
39
|
-
} = tr;
|
|
40
|
-
const blockquote = nodes[_NodeNames.BLOCKQUOTE];
|
|
41
|
-
const heading = nodes[_NodeNames.HEADING];
|
|
42
|
-
const listItem = nodes[_NodeNames.LIST_ITEM];
|
|
43
|
-
const paragraph = nodes[_NodeNames.PARAGRAPH];
|
|
44
|
-
|
|
45
|
-
if (!selection || !doc || !heading || !paragraph || !listItem || !blockquote) {
|
|
46
|
-
return tr;
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
const {
|
|
50
|
-
from,
|
|
51
|
-
to
|
|
52
|
-
} = tr.selection;
|
|
53
|
-
let startWithHeadingBlock = null;
|
|
54
|
-
const poses = [];
|
|
55
|
-
doc.nodesBetween(from, to, (node, pos, parentNode) => {
|
|
56
|
-
const nodeType = node.type;
|
|
57
|
-
const parentNodeType = parentNode.type;
|
|
58
|
-
|
|
59
|
-
if (startWithHeadingBlock === null) {
|
|
60
|
-
startWithHeadingBlock = nodeType === heading && node.attrs.level === level;
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
if (parentNodeType !== listItem) {
|
|
64
|
-
poses.push(pos);
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
return !(0, _isListNode.default)(node);
|
|
68
|
-
}); // Update from the bottom to avoid disruptive changes in pos.
|
|
69
|
-
|
|
70
|
-
poses.sort(_compareNumber.default).reverse().forEach(pos => {
|
|
71
|
-
tr = setHeadingNode(tr, schema, pos, startWithHeadingBlock ? null : level);
|
|
72
|
-
});
|
|
73
|
-
return tr;
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
function setHeadingNode(tr, schema, pos, level) {
|
|
77
|
-
const {
|
|
78
|
-
nodes
|
|
79
|
-
} = schema;
|
|
80
|
-
const heading = nodes[_NodeNames.HEADING];
|
|
81
|
-
const paragraph = nodes[_NodeNames.PARAGRAPH];
|
|
82
|
-
const blockquote = nodes[_NodeNames.BLOCKQUOTE];
|
|
83
|
-
|
|
84
|
-
if (pos >= tr.doc.content.size) {
|
|
85
|
-
// Workaround to handle the edge case that pos was shifted caused by `toggleList`.
|
|
86
|
-
return tr;
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
const node = tr.doc.nodeAt(pos);
|
|
90
|
-
|
|
91
|
-
if (!node || !heading || !paragraph || !blockquote) {
|
|
92
|
-
return tr;
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
const nodeType = node.type;
|
|
96
|
-
|
|
97
|
-
if ((0, _isInsideListItem.default)(tr.doc, pos)) {
|
|
98
|
-
return tr;
|
|
99
|
-
} else if ((0, _isListNode.default)(node)) {
|
|
100
|
-
// Toggle list
|
|
101
|
-
if (level !== null) {
|
|
102
|
-
tr = (0, _toggleList.unwrapNodesFromList)(tr, schema, pos, paragraphNode => {
|
|
103
|
-
const {
|
|
104
|
-
content,
|
|
105
|
-
marks,
|
|
106
|
-
attrs
|
|
107
|
-
} = paragraphNode;
|
|
108
|
-
|
|
109
|
-
const headingAttrs = _objectSpread(_objectSpread({}, attrs), {}, {
|
|
110
|
-
level
|
|
111
|
-
});
|
|
112
|
-
|
|
113
|
-
return heading.create(headingAttrs, content, marks);
|
|
114
|
-
});
|
|
115
|
-
}
|
|
116
|
-
} else if (nodeType === heading) {
|
|
117
|
-
// Toggle heading
|
|
118
|
-
if (level === null) {
|
|
119
|
-
tr = tr.setNodeMarkup(pos, paragraph, node.attrs, node.marks);
|
|
120
|
-
} else {
|
|
121
|
-
tr = tr.setNodeMarkup(pos, heading, _objectSpread(_objectSpread({}, node.attrs), {}, {
|
|
122
|
-
level
|
|
123
|
-
}), node.marks);
|
|
124
|
-
}
|
|
125
|
-
} else if (level && nodeType === paragraph || nodeType === blockquote) {
|
|
126
|
-
// [FS] IRAD-948 2020-05-22
|
|
127
|
-
// Clear Header formatting
|
|
128
|
-
tr = (0, _clearMarks.clearMarks)(tr, schema);
|
|
129
|
-
tr = tr.setNodeMarkup(pos, heading, _objectSpread(_objectSpread({}, node.attrs), {}, {
|
|
130
|
-
level
|
|
131
|
-
}), node.marks);
|
|
132
|
-
}
|
|
133
|
-
|
|
134
|
-
return tr;
|
|
135
|
-
}
|
|
@@ -1,113 +0,0 @@
|
|
|
1
|
-
// @flow
|
|
2
|
-
|
|
3
|
-
import { Schema } from 'prosemirror-model';
|
|
4
|
-
import { Transform } from 'prosemirror-transform';
|
|
5
|
-
|
|
6
|
-
import { BLOCKQUOTE, HEADING, LIST_ITEM, PARAGRAPH } from './NodeNames';
|
|
7
|
-
import compareNumber from './compareNumber';
|
|
8
|
-
import isInsideListItem from './isInsideListItem';
|
|
9
|
-
import isListNode from './isListNode';
|
|
10
|
-
import { clearMarks } from './clearMarks';
|
|
11
|
-
import { unwrapNodesFromList } from './toggleList';
|
|
12
|
-
|
|
13
|
-
export default function toggleHeading(
|
|
14
|
-
tr: Transform,
|
|
15
|
-
schema: Schema,
|
|
16
|
-
level: number
|
|
17
|
-
): Transform {
|
|
18
|
-
const { nodes } = schema;
|
|
19
|
-
const { selection, doc } = tr;
|
|
20
|
-
|
|
21
|
-
const blockquote = nodes[BLOCKQUOTE];
|
|
22
|
-
const heading = nodes[HEADING];
|
|
23
|
-
const listItem = nodes[LIST_ITEM];
|
|
24
|
-
const paragraph = nodes[PARAGRAPH];
|
|
25
|
-
|
|
26
|
-
if (
|
|
27
|
-
!selection ||
|
|
28
|
-
!doc ||
|
|
29
|
-
!heading ||
|
|
30
|
-
!paragraph ||
|
|
31
|
-
!listItem ||
|
|
32
|
-
!blockquote
|
|
33
|
-
) {
|
|
34
|
-
return tr;
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
const { from, to } = tr.selection;
|
|
38
|
-
let startWithHeadingBlock = null;
|
|
39
|
-
const poses = [];
|
|
40
|
-
doc.nodesBetween(from, to, (node, pos, parentNode) => {
|
|
41
|
-
const nodeType = node.type;
|
|
42
|
-
const parentNodeType = parentNode.type;
|
|
43
|
-
|
|
44
|
-
if (startWithHeadingBlock === null) {
|
|
45
|
-
startWithHeadingBlock =
|
|
46
|
-
nodeType === heading && node.attrs.level === level;
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
if (parentNodeType !== listItem) {
|
|
50
|
-
poses.push(pos);
|
|
51
|
-
}
|
|
52
|
-
return !isListNode(node);
|
|
53
|
-
});
|
|
54
|
-
// Update from the bottom to avoid disruptive changes in pos.
|
|
55
|
-
poses
|
|
56
|
-
.sort(compareNumber)
|
|
57
|
-
.reverse()
|
|
58
|
-
.forEach((pos) => {
|
|
59
|
-
tr = setHeadingNode(
|
|
60
|
-
tr,
|
|
61
|
-
schema,
|
|
62
|
-
pos,
|
|
63
|
-
startWithHeadingBlock ? null : level
|
|
64
|
-
);
|
|
65
|
-
});
|
|
66
|
-
return tr;
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
function setHeadingNode(
|
|
70
|
-
tr: Transform,
|
|
71
|
-
schema: Schema,
|
|
72
|
-
pos: number,
|
|
73
|
-
level: ?number
|
|
74
|
-
): Transform {
|
|
75
|
-
const { nodes } = schema;
|
|
76
|
-
const heading = nodes[HEADING];
|
|
77
|
-
const paragraph = nodes[PARAGRAPH];
|
|
78
|
-
const blockquote = nodes[BLOCKQUOTE];
|
|
79
|
-
if (pos >= tr.doc.content.size) {
|
|
80
|
-
// Workaround to handle the edge case that pos was shifted caused by `toggleList`.
|
|
81
|
-
return tr;
|
|
82
|
-
}
|
|
83
|
-
const node = tr.doc.nodeAt(pos);
|
|
84
|
-
if (!node || !heading || !paragraph || !blockquote) {
|
|
85
|
-
return tr;
|
|
86
|
-
}
|
|
87
|
-
const nodeType = node.type;
|
|
88
|
-
if (isInsideListItem(tr.doc, pos)) {
|
|
89
|
-
return tr;
|
|
90
|
-
} else if (isListNode(node)) {
|
|
91
|
-
// Toggle list
|
|
92
|
-
if (level !== null) {
|
|
93
|
-
tr = unwrapNodesFromList(tr, schema, pos, (paragraphNode) => {
|
|
94
|
-
const { content, marks, attrs } = paragraphNode;
|
|
95
|
-
const headingAttrs = { ...attrs, level };
|
|
96
|
-
return heading.create(headingAttrs, content, marks);
|
|
97
|
-
});
|
|
98
|
-
}
|
|
99
|
-
} else if (nodeType === heading) {
|
|
100
|
-
// Toggle heading
|
|
101
|
-
if (level === null) {
|
|
102
|
-
tr = tr.setNodeMarkup(pos, paragraph, node.attrs, node.marks);
|
|
103
|
-
} else {
|
|
104
|
-
tr = tr.setNodeMarkup(pos, heading, { ...node.attrs, level }, node.marks);
|
|
105
|
-
}
|
|
106
|
-
} else if ((level && nodeType === paragraph) || nodeType === blockquote) {
|
|
107
|
-
// [FS] IRAD-948 2020-05-22
|
|
108
|
-
// Clear Header formatting
|
|
109
|
-
tr = clearMarks(tr, schema);
|
|
110
|
-
tr = tr.setNodeMarkup(pos, heading, { ...node.attrs, level }, node.marks);
|
|
111
|
-
}
|
|
112
|
-
return tr;
|
|
113
|
-
}
|