@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
|
@@ -1,61 +1,61 @@
|
|
|
1
|
-
// @flow
|
|
2
|
-
|
|
3
|
-
import { Node } from 'prosemirror-model';
|
|
4
|
-
|
|
5
|
-
import { ATTRIBUTE_LIST_STYLE_TYPE } from './ListItemNodeSpec.js';
|
|
6
|
-
import { LIST_ITEM } from './NodeNames.js';
|
|
7
|
-
import { ATTRIBUTE_INDENT, MIN_INDENT_LEVEL } from './ParagraphNodeSpec.js';
|
|
8
|
-
|
|
9
|
-
import type { NodeSpec } from './Types.js';
|
|
10
|
-
|
|
11
|
-
const AUTO_LIST_STYLE_TYPES = ['disc', 'square', 'circle'];
|
|
12
|
-
|
|
13
|
-
const BulletListNodeSpec: NodeSpec = {
|
|
14
|
-
attrs: {
|
|
15
|
-
id: { default: null },
|
|
16
|
-
indent: { default: 0 },
|
|
17
|
-
listStyleType: { default: null },
|
|
18
|
-
},
|
|
19
|
-
group: 'block',
|
|
20
|
-
content: LIST_ITEM + '+',
|
|
21
|
-
parseDOM: [
|
|
22
|
-
{
|
|
23
|
-
tag: 'ul',
|
|
24
|
-
getAttrs(dom: HTMLElement) {
|
|
25
|
-
const listStyleType =
|
|
26
|
-
dom.getAttribute(ATTRIBUTE_LIST_STYLE_TYPE) || null;
|
|
27
|
-
|
|
28
|
-
const indent = dom.hasAttribute(ATTRIBUTE_INDENT)
|
|
29
|
-
? parseInt(dom.getAttribute(ATTRIBUTE_INDENT), 10)
|
|
30
|
-
: MIN_INDENT_LEVEL;
|
|
31
|
-
return {
|
|
32
|
-
indent,
|
|
33
|
-
listStyleType,
|
|
34
|
-
};
|
|
35
|
-
},
|
|
36
|
-
},
|
|
37
|
-
],
|
|
38
|
-
|
|
39
|
-
toDOM(node: Node) {
|
|
40
|
-
const { indent, listStyleType } = node.attrs;
|
|
41
|
-
const attrs = {};
|
|
42
|
-
// [FS] IRAD-947 2020-05-26
|
|
43
|
-
// Bullet list type changing fix
|
|
44
|
-
attrs[ATTRIBUTE_INDENT] = indent;
|
|
45
|
-
if (listStyleType) {
|
|
46
|
-
attrs[ATTRIBUTE_LIST_STYLE_TYPE] = listStyleType;
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
let htmlListStyleType = listStyleType;
|
|
50
|
-
|
|
51
|
-
if (!htmlListStyleType || htmlListStyleType === 'disc') {
|
|
52
|
-
htmlListStyleType =
|
|
53
|
-
AUTO_LIST_STYLE_TYPES[indent % AUTO_LIST_STYLE_TYPES.length];
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
attrs.type = htmlListStyleType;
|
|
57
|
-
return ['ul', attrs, 0];
|
|
58
|
-
},
|
|
59
|
-
};
|
|
60
|
-
|
|
61
|
-
export default BulletListNodeSpec;
|
|
1
|
+
// @flow
|
|
2
|
+
|
|
3
|
+
import { Node } from 'prosemirror-model';
|
|
4
|
+
|
|
5
|
+
import { ATTRIBUTE_LIST_STYLE_TYPE } from './ListItemNodeSpec.js';
|
|
6
|
+
import { LIST_ITEM } from './NodeNames.js';
|
|
7
|
+
import { ATTRIBUTE_INDENT, MIN_INDENT_LEVEL } from './ParagraphNodeSpec.js';
|
|
8
|
+
|
|
9
|
+
import type { NodeSpec } from './Types.js';
|
|
10
|
+
|
|
11
|
+
const AUTO_LIST_STYLE_TYPES = ['disc', 'square', 'circle'];
|
|
12
|
+
|
|
13
|
+
const BulletListNodeSpec: NodeSpec = {
|
|
14
|
+
attrs: {
|
|
15
|
+
id: { default: null },
|
|
16
|
+
indent: { default: 0 },
|
|
17
|
+
listStyleType: { default: null },
|
|
18
|
+
},
|
|
19
|
+
group: 'block',
|
|
20
|
+
content: LIST_ITEM + '+',
|
|
21
|
+
parseDOM: [
|
|
22
|
+
{
|
|
23
|
+
tag: 'ul',
|
|
24
|
+
getAttrs(dom: HTMLElement) {
|
|
25
|
+
const listStyleType =
|
|
26
|
+
dom.getAttribute(ATTRIBUTE_LIST_STYLE_TYPE) || null;
|
|
27
|
+
|
|
28
|
+
const indent = dom.hasAttribute(ATTRIBUTE_INDENT)
|
|
29
|
+
? parseInt(dom.getAttribute(ATTRIBUTE_INDENT), 10)
|
|
30
|
+
: MIN_INDENT_LEVEL;
|
|
31
|
+
return {
|
|
32
|
+
indent,
|
|
33
|
+
listStyleType,
|
|
34
|
+
};
|
|
35
|
+
},
|
|
36
|
+
},
|
|
37
|
+
],
|
|
38
|
+
|
|
39
|
+
toDOM(node: Node) {
|
|
40
|
+
const { indent, listStyleType } = node.attrs;
|
|
41
|
+
const attrs = {};
|
|
42
|
+
// [FS] IRAD-947 2020-05-26
|
|
43
|
+
// Bullet list type changing fix
|
|
44
|
+
attrs[ATTRIBUTE_INDENT] = indent;
|
|
45
|
+
if (listStyleType) {
|
|
46
|
+
attrs[ATTRIBUTE_LIST_STYLE_TYPE] = listStyleType;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
let htmlListStyleType = listStyleType;
|
|
50
|
+
|
|
51
|
+
if (!htmlListStyleType || htmlListStyleType === 'disc') {
|
|
52
|
+
htmlListStyleType =
|
|
53
|
+
AUTO_LIST_STYLE_TYPES[indent % AUTO_LIST_STYLE_TYPES.length];
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
attrs.type = htmlListStyleType;
|
|
57
|
+
return ['ul', attrs, 0];
|
|
58
|
+
},
|
|
59
|
+
};
|
|
60
|
+
|
|
61
|
+
export default BulletListNodeSpec;
|
package/CZIProseMirror.js.flow
CHANGED
|
@@ -1,90 +1,90 @@
|
|
|
1
|
-
// @flow
|
|
2
|
-
|
|
3
|
-
import { EditorView } from 'prosemirror-view';
|
|
4
|
-
|
|
5
|
-
import convertToJSON from './convertToJSON.js';
|
|
6
|
-
import CustomEditorView from './ui/CustomEditorView.js';
|
|
7
|
-
import { UICommand } from '@modusoperandi/licit-doc-attrs-step';
|
|
8
|
-
|
|
9
|
-
const commandsRegistery = new Map();
|
|
10
|
-
const viewsRegistery = new Map();
|
|
11
|
-
|
|
12
|
-
// This file exports methods to help developer to debug editor from web
|
|
13
|
-
// inspector. To use this, add the following lines to export the utility.
|
|
14
|
-
//
|
|
15
|
-
// import * as CZIProseMirror from 'czi-prosemirror/dist/CZIProseMirror';
|
|
16
|
-
// window.CZIProseMirror = CZIProseMirror;
|
|
17
|
-
|
|
18
|
-
export function registeryKeys(): Array<string> {
|
|
19
|
-
return Array.from(viewsRegistery.keys());
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
export function exportJSON(id: ?string): Object {
|
|
23
|
-
if (!id && viewsRegistery.size) {
|
|
24
|
-
id = registeryKeys()[0];
|
|
25
|
-
console.log(`use default editor id "${id}"`);
|
|
26
|
-
}
|
|
27
|
-
const view = viewsRegistery.get(String(id));
|
|
28
|
-
if (!view) {
|
|
29
|
-
if (!id) {
|
|
30
|
-
id = '';
|
|
31
|
-
}
|
|
32
|
-
throw new Error(`view ${id} does not exist`);
|
|
33
|
-
}
|
|
34
|
-
return convertToJSON(view.state);
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
export function registerEditorView(id: string, view: EditorView): void {
|
|
38
|
-
if (viewsRegistery.has(id)) {
|
|
39
|
-
throw new Error(`view ${id} already registered`);
|
|
40
|
-
}
|
|
41
|
-
if (!(view instanceof CustomEditorView)) {
|
|
42
|
-
throw new Error(`invalid view ${id}`);
|
|
43
|
-
}
|
|
44
|
-
if (!id) {
|
|
45
|
-
throw new Error('id is required');
|
|
46
|
-
}
|
|
47
|
-
viewsRegistery.set(id, view);
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
export function releaseEditorView(id: string): void {
|
|
51
|
-
if (!viewsRegistery.has(id)) {
|
|
52
|
-
throw new Error(`view ${id} was released`);
|
|
53
|
-
}
|
|
54
|
-
viewsRegistery.delete(id);
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
export function findEditorView(id: string): ?EditorView {
|
|
58
|
-
return viewsRegistery.get(id) || null;
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
export function executeCommand(name: string, viewID: ?string): boolean {
|
|
62
|
-
const command = commandsRegistery.get(name);
|
|
63
|
-
if (command) {
|
|
64
|
-
const view = viewID
|
|
65
|
-
? viewsRegistery.get(viewID)
|
|
66
|
-
: Array.from(viewsRegistery.values())[0];
|
|
67
|
-
if (view) {
|
|
68
|
-
try {
|
|
69
|
-
return command.execute(view.state, view.dispatch, view, null);
|
|
70
|
-
} catch (ex) {
|
|
71
|
-
console.warn(ex);
|
|
72
|
-
return false;
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
return false;
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
export function registerCommand(name: string, command: UICommand): void {
|
|
80
|
-
if (!(command instanceof UICommand)) {
|
|
81
|
-
throw new Error(`invalid command ${name}`);
|
|
82
|
-
}
|
|
83
|
-
if (!name) {
|
|
84
|
-
throw new Error('invalid command name');
|
|
85
|
-
}
|
|
86
|
-
if (commandsRegistery.has(name)) {
|
|
87
|
-
throw new Error(`command ${name} already registered`);
|
|
88
|
-
}
|
|
89
|
-
commandsRegistery.set(name, command);
|
|
90
|
-
}
|
|
1
|
+
// @flow
|
|
2
|
+
|
|
3
|
+
import { EditorView } from 'prosemirror-view';
|
|
4
|
+
|
|
5
|
+
import convertToJSON from './convertToJSON.js';
|
|
6
|
+
import CustomEditorView from './ui/CustomEditorView.js';
|
|
7
|
+
import { UICommand } from '@modusoperandi/licit-doc-attrs-step';
|
|
8
|
+
|
|
9
|
+
const commandsRegistery = new Map();
|
|
10
|
+
const viewsRegistery = new Map();
|
|
11
|
+
|
|
12
|
+
// This file exports methods to help developer to debug editor from web
|
|
13
|
+
// inspector. To use this, add the following lines to export the utility.
|
|
14
|
+
//
|
|
15
|
+
// import * as CZIProseMirror from 'czi-prosemirror/dist/CZIProseMirror';
|
|
16
|
+
// window.CZIProseMirror = CZIProseMirror;
|
|
17
|
+
|
|
18
|
+
export function registeryKeys(): Array<string> {
|
|
19
|
+
return Array.from(viewsRegistery.keys());
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
export function exportJSON(id: ?string): Object {
|
|
23
|
+
if (!id && viewsRegistery.size) {
|
|
24
|
+
id = registeryKeys()[0];
|
|
25
|
+
console.log(`use default editor id "${id}"`);
|
|
26
|
+
}
|
|
27
|
+
const view = viewsRegistery.get(String(id));
|
|
28
|
+
if (!view) {
|
|
29
|
+
if (!id) {
|
|
30
|
+
id = '';
|
|
31
|
+
}
|
|
32
|
+
throw new Error(`view ${id} does not exist`);
|
|
33
|
+
}
|
|
34
|
+
return convertToJSON(view.state);
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
export function registerEditorView(id: string, view: EditorView): void {
|
|
38
|
+
if (viewsRegistery.has(id)) {
|
|
39
|
+
throw new Error(`view ${id} already registered`);
|
|
40
|
+
}
|
|
41
|
+
if (!(view instanceof CustomEditorView)) {
|
|
42
|
+
throw new Error(`invalid view ${id}`);
|
|
43
|
+
}
|
|
44
|
+
if (!id) {
|
|
45
|
+
throw new Error('id is required');
|
|
46
|
+
}
|
|
47
|
+
viewsRegistery.set(id, view);
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
export function releaseEditorView(id: string): void {
|
|
51
|
+
if (!viewsRegistery.has(id)) {
|
|
52
|
+
throw new Error(`view ${id} was released`);
|
|
53
|
+
}
|
|
54
|
+
viewsRegistery.delete(id);
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
export function findEditorView(id: string): ?EditorView {
|
|
58
|
+
return viewsRegistery.get(id) || null;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
export function executeCommand(name: string, viewID: ?string): boolean {
|
|
62
|
+
const command = commandsRegistery.get(name);
|
|
63
|
+
if (command) {
|
|
64
|
+
const view = viewID
|
|
65
|
+
? viewsRegistery.get(viewID)
|
|
66
|
+
: Array.from(viewsRegistery.values())[0];
|
|
67
|
+
if (view) {
|
|
68
|
+
try {
|
|
69
|
+
return command.execute(view.state, view.dispatch, view, null);
|
|
70
|
+
} catch (ex) {
|
|
71
|
+
console.warn(ex);
|
|
72
|
+
return false;
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
return false;
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
export function registerCommand(name: string, command: UICommand): void {
|
|
80
|
+
if (!(command instanceof UICommand)) {
|
|
81
|
+
throw new Error(`invalid command ${name}`);
|
|
82
|
+
}
|
|
83
|
+
if (!name) {
|
|
84
|
+
throw new Error('invalid command name');
|
|
85
|
+
}
|
|
86
|
+
if (commandsRegistery.has(name)) {
|
|
87
|
+
throw new Error(`command ${name} already registered`);
|
|
88
|
+
}
|
|
89
|
+
commandsRegistery.set(name, command);
|
|
90
|
+
}
|
package/CodeBlockCommand.js
CHANGED
|
@@ -1,16 +1,16 @@
|
|
|
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(
|
|
2
|
+
function _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); }
|
|
3
|
+
function _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } }
|
|
4
|
+
function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; }
|
|
5
5
|
function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }
|
|
6
|
-
function _possibleConstructorReturn(
|
|
6
|
+
function _possibleConstructorReturn(t, e) { if (e && ("object" == _typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return _assertThisInitialized(t); }
|
|
7
|
+
function _assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; }
|
|
7
8
|
function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
|
|
8
|
-
function _getPrototypeOf(
|
|
9
|
-
function
|
|
10
|
-
function
|
|
11
|
-
function
|
|
12
|
-
function
|
|
13
|
-
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
|
|
9
|
+
function _getPrototypeOf(t) { return _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, _getPrototypeOf(t); }
|
|
10
|
+
function _inherits(t, e) { if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function"); t.prototype = Object.create(e && e.prototype, { constructor: { value: t, writable: !0, configurable: !0 } }), Object.defineProperty(t, "prototype", { writable: !1 }), e && _setPrototypeOf(t, e); }
|
|
11
|
+
function _setPrototypeOf(t, e) { return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) { return t.__proto__ = e, t; }, _setPrototypeOf(t, e); }
|
|
12
|
+
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
13
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
|
|
14
14
|
function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
15
15
|
import { EditorState } from 'prosemirror-state';
|
|
16
16
|
import { Transform } from 'prosemirror-transform';
|
|
@@ -22,7 +22,6 @@ import { noop } from '@modusoperandi/licit-ui-commands';
|
|
|
22
22
|
import toggleCodeBlock from './toggleCodeBlock';
|
|
23
23
|
import { UICommand } from '@modusoperandi/licit-doc-attrs-step';
|
|
24
24
|
var CodeBlockCommand = /*#__PURE__*/function (_UICommand) {
|
|
25
|
-
_inherits(CodeBlockCommand, _UICommand);
|
|
26
25
|
function CodeBlockCommand() {
|
|
27
26
|
var _this;
|
|
28
27
|
_classCallCheck(this, CodeBlockCommand);
|
|
@@ -30,11 +29,11 @@ var CodeBlockCommand = /*#__PURE__*/function (_UICommand) {
|
|
|
30
29
|
args[_key] = arguments[_key];
|
|
31
30
|
}
|
|
32
31
|
_this = _callSuper(this, CodeBlockCommand, [].concat(args));
|
|
33
|
-
_defineProperty(
|
|
32
|
+
_defineProperty(_this, "isActive", function (state) {
|
|
34
33
|
var result = _this._findCodeBlock(state);
|
|
35
|
-
return !!(result && result.node);
|
|
34
|
+
return !!(result !== null && result !== void 0 && result.node);
|
|
36
35
|
});
|
|
37
|
-
_defineProperty(
|
|
36
|
+
_defineProperty(_this, "execute", function (state, dispatch, view) {
|
|
38
37
|
var selection = state.selection,
|
|
39
38
|
schema = state.schema;
|
|
40
39
|
var tr = state.tr;
|
|
@@ -47,15 +46,16 @@ var CodeBlockCommand = /*#__PURE__*/function (_UICommand) {
|
|
|
47
46
|
return false;
|
|
48
47
|
}
|
|
49
48
|
});
|
|
50
|
-
_defineProperty(
|
|
49
|
+
_defineProperty(_this, "waitForUserInput", function (_state, _dispatch, _view, _event) {
|
|
51
50
|
return Promise.resolve(undefined);
|
|
52
51
|
});
|
|
53
|
-
_defineProperty(
|
|
52
|
+
_defineProperty(_this, "executeWithUserInput", function (_state, _dispatch, _view, _inputs) {
|
|
54
53
|
return false;
|
|
55
54
|
});
|
|
56
55
|
return _this;
|
|
57
56
|
}
|
|
58
|
-
|
|
57
|
+
_inherits(CodeBlockCommand, _UICommand);
|
|
58
|
+
return _createClass(CodeBlockCommand, [{
|
|
59
59
|
key: "_findCodeBlock",
|
|
60
60
|
value: function _findCodeBlock(state) {
|
|
61
61
|
var codeBlock = state.schema.nodes[CODE_BLOCK];
|
|
@@ -68,6 +68,5 @@ var CodeBlockCommand = /*#__PURE__*/function (_UICommand) {
|
|
|
68
68
|
return null;
|
|
69
69
|
}
|
|
70
70
|
}]);
|
|
71
|
-
return CodeBlockCommand;
|
|
72
71
|
}(UICommand);
|
|
73
72
|
export default CodeBlockCommand;
|
package/CodeBlockCommand.js.flow
CHANGED
|
@@ -1,65 +1,65 @@
|
|
|
1
|
-
// @flow
|
|
2
|
-
|
|
3
|
-
import { EditorState } from 'prosemirror-state';
|
|
4
|
-
import { Transform } from 'prosemirror-transform';
|
|
5
|
-
import { findParentNodeOfType } from 'prosemirror-utils';
|
|
6
|
-
import { EditorView } from 'prosemirror-view';
|
|
7
|
-
import * as React from 'react';
|
|
8
|
-
import { CODE_BLOCK } from './NodeNames';
|
|
9
|
-
import { noop } from '@modusoperandi/licit-ui-commands';
|
|
10
|
-
import toggleCodeBlock from './toggleCodeBlock';
|
|
11
|
-
import { UICommand } from '@modusoperandi/licit-doc-attrs-step';
|
|
12
|
-
|
|
13
|
-
class CodeBlockCommand extends UICommand {
|
|
14
|
-
isActive = (state: EditorState): boolean => {
|
|
15
|
-
const result = this._findCodeBlock(state);
|
|
16
|
-
return !!
|
|
17
|
-
};
|
|
18
|
-
|
|
19
|
-
execute = (
|
|
20
|
-
state: EditorState,
|
|
21
|
-
dispatch: ?(tr: Transform) => void,
|
|
22
|
-
view: ?EditorView
|
|
23
|
-
): boolean => {
|
|
24
|
-
const { selection, schema } = state;
|
|
25
|
-
let { tr } = state;
|
|
26
|
-
tr = tr.setSelection(selection);
|
|
27
|
-
tr = toggleCodeBlock(tr, schema);
|
|
28
|
-
if (tr.docChanged) {
|
|
29
|
-
dispatch && dispatch(tr);
|
|
30
|
-
return true;
|
|
31
|
-
} else {
|
|
32
|
-
return false;
|
|
33
|
-
}
|
|
34
|
-
};
|
|
35
|
-
|
|
36
|
-
_findCodeBlock(state: EditorState): ?Object {
|
|
37
|
-
const codeBlock = state.schema.nodes[CODE_BLOCK];
|
|
38
|
-
const findCodeBlock = codeBlock ? findParentNodeOfType(codeBlock) : noop;
|
|
39
|
-
return findCodeBlock(state.selection);
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
waitForUserInput = (
|
|
43
|
-
_state: EditorState,
|
|
44
|
-
_dispatch: ?(tr: Transform) => void,
|
|
45
|
-
_view: ?EditorView,
|
|
46
|
-
_event: ?React.SyntheticEvent
|
|
47
|
-
): Promise<undefined> => {
|
|
48
|
-
return Promise.resolve(undefined);
|
|
49
|
-
};
|
|
50
|
-
|
|
51
|
-
executeWithUserInput = (
|
|
52
|
-
_state: EditorState,
|
|
53
|
-
_dispatch: ?(tr: Transform) => void,
|
|
54
|
-
_view: ?EditorView,
|
|
55
|
-
_inputs: ?string
|
|
56
|
-
): boolean => {
|
|
57
|
-
return false;
|
|
58
|
-
};
|
|
59
|
-
|
|
60
|
-
cancel(): void {
|
|
61
|
-
return null;
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
export default CodeBlockCommand;
|
|
1
|
+
// @flow
|
|
2
|
+
|
|
3
|
+
import { EditorState } from 'prosemirror-state';
|
|
4
|
+
import { Transform } from 'prosemirror-transform';
|
|
5
|
+
import { findParentNodeOfType } from 'prosemirror-utils';
|
|
6
|
+
import { EditorView } from 'prosemirror-view';
|
|
7
|
+
import * as React from 'react';
|
|
8
|
+
import { CODE_BLOCK } from './NodeNames';
|
|
9
|
+
import { noop } from '@modusoperandi/licit-ui-commands';
|
|
10
|
+
import toggleCodeBlock from './toggleCodeBlock';
|
|
11
|
+
import { UICommand } from '@modusoperandi/licit-doc-attrs-step';
|
|
12
|
+
|
|
13
|
+
class CodeBlockCommand extends UICommand {
|
|
14
|
+
isActive = (state: EditorState): boolean => {
|
|
15
|
+
const result = this._findCodeBlock(state);
|
|
16
|
+
return !!result?.node;
|
|
17
|
+
};
|
|
18
|
+
|
|
19
|
+
execute = (
|
|
20
|
+
state: EditorState,
|
|
21
|
+
dispatch: ?(tr: Transform) => void,
|
|
22
|
+
view: ?EditorView
|
|
23
|
+
): boolean => {
|
|
24
|
+
const { selection, schema } = state;
|
|
25
|
+
let { tr } = state;
|
|
26
|
+
tr = tr.setSelection(selection);
|
|
27
|
+
tr = toggleCodeBlock(tr, schema);
|
|
28
|
+
if (tr.docChanged) {
|
|
29
|
+
dispatch && dispatch(tr);
|
|
30
|
+
return true;
|
|
31
|
+
} else {
|
|
32
|
+
return false;
|
|
33
|
+
}
|
|
34
|
+
};
|
|
35
|
+
|
|
36
|
+
_findCodeBlock(state: EditorState): ?Object {
|
|
37
|
+
const codeBlock = state.schema.nodes[CODE_BLOCK];
|
|
38
|
+
const findCodeBlock = codeBlock ? findParentNodeOfType(codeBlock) : noop;
|
|
39
|
+
return findCodeBlock(state.selection);
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
waitForUserInput = (
|
|
43
|
+
_state: EditorState,
|
|
44
|
+
_dispatch: ?(tr: Transform) => void,
|
|
45
|
+
_view: ?EditorView,
|
|
46
|
+
_event: ?React.SyntheticEvent
|
|
47
|
+
): Promise<undefined> => {
|
|
48
|
+
return Promise.resolve(undefined);
|
|
49
|
+
};
|
|
50
|
+
|
|
51
|
+
executeWithUserInput = (
|
|
52
|
+
_state: EditorState,
|
|
53
|
+
_dispatch: ?(tr: Transform) => void,
|
|
54
|
+
_view: ?EditorView,
|
|
55
|
+
_inputs: ?string
|
|
56
|
+
): boolean => {
|
|
57
|
+
return false;
|
|
58
|
+
};
|
|
59
|
+
|
|
60
|
+
cancel(): void {
|
|
61
|
+
return null;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
export default CodeBlockCommand;
|
|
@@ -1,24 +1,24 @@
|
|
|
1
|
-
// @flow
|
|
2
|
-
|
|
3
|
-
const PRE_DOM = ['pre', ['code', 0]];
|
|
4
|
-
|
|
5
|
-
// https://github.com/ProseMirror/prosemirror-schema-basic/blob/master/src/schema-basic.js
|
|
6
|
-
// :: NodeSpec A code listing. Disallows marks or non-text inline
|
|
7
|
-
// nodes by default. Represented as a `<pre>` element with a
|
|
8
|
-
// `<code>` element inside of it.
|
|
9
|
-
const CodeBlockNodeSpec = {
|
|
10
|
-
attrs: {
|
|
11
|
-
id: { default: null },
|
|
12
|
-
},
|
|
13
|
-
content: 'inline*',
|
|
14
|
-
group: 'block',
|
|
15
|
-
marks: '_',
|
|
16
|
-
code: true,
|
|
17
|
-
defining: true,
|
|
18
|
-
parseDOM: [{ tag: 'pre', preserveWhitespace: 'full' }],
|
|
19
|
-
toDOM() {
|
|
20
|
-
return PRE_DOM;
|
|
21
|
-
},
|
|
22
|
-
};
|
|
23
|
-
|
|
24
|
-
export default CodeBlockNodeSpec;
|
|
1
|
+
// @flow
|
|
2
|
+
|
|
3
|
+
const PRE_DOM = ['pre', ['code', 0]];
|
|
4
|
+
|
|
5
|
+
// https://github.com/ProseMirror/prosemirror-schema-basic/blob/master/src/schema-basic.js
|
|
6
|
+
// :: NodeSpec A code listing. Disallows marks or non-text inline
|
|
7
|
+
// nodes by default. Represented as a `<pre>` element with a
|
|
8
|
+
// `<code>` element inside of it.
|
|
9
|
+
const CodeBlockNodeSpec = {
|
|
10
|
+
attrs: {
|
|
11
|
+
id: { default: null },
|
|
12
|
+
},
|
|
13
|
+
content: 'inline*',
|
|
14
|
+
group: 'block',
|
|
15
|
+
marks: '_',
|
|
16
|
+
code: true,
|
|
17
|
+
defining: true,
|
|
18
|
+
parseDOM: [{ tag: 'pre', preserveWhitespace: 'full' }],
|
|
19
|
+
toDOM() {
|
|
20
|
+
return PRE_DOM;
|
|
21
|
+
},
|
|
22
|
+
};
|
|
23
|
+
|
|
24
|
+
export default CodeBlockNodeSpec;
|
package/CodeMarkSpec.js.flow
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
// @flow
|
|
2
|
-
|
|
3
|
-
import type { MarkSpec } from './Types.js';
|
|
4
|
-
|
|
5
|
-
const CODE_DOM = ['code', 0];
|
|
6
|
-
|
|
7
|
-
const CodeMarkSpec: MarkSpec = {
|
|
8
|
-
parseDOM: [{ tag: 'code' }],
|
|
9
|
-
toDOM() {
|
|
10
|
-
return CODE_DOM;
|
|
11
|
-
},
|
|
12
|
-
};
|
|
13
|
-
|
|
14
|
-
export default CodeMarkSpec;
|
|
1
|
+
// @flow
|
|
2
|
+
|
|
3
|
+
import type { MarkSpec } from './Types.js';
|
|
4
|
+
|
|
5
|
+
const CODE_DOM = ['code', 0];
|
|
6
|
+
|
|
7
|
+
const CodeMarkSpec: MarkSpec = {
|
|
8
|
+
parseDOM: [{ tag: 'code' }],
|
|
9
|
+
toDOM() {
|
|
10
|
+
return CODE_DOM;
|
|
11
|
+
},
|
|
12
|
+
};
|
|
13
|
+
|
|
14
|
+
export default CodeMarkSpec;
|