@modusoperandi/licit 1.0.4 → 1.0.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/BlockquoteInsertNewLineCommand.js +16 -18
- package/BlockquoteInsertNewLineCommand.js.flow +76 -77
- package/BlockquoteNodeSpec.js +3 -4
- package/BlockquoteNodeSpec.js.flow +29 -30
- package/BlockquoteToggleCommand.js +16 -17
- package/BlockquoteToggleCommand.js.flow +56 -56
- package/BookmarkNodeSpec.js +2 -2
- package/BookmarkNodeSpec.js.flow +39 -39
- package/BulletListNodeSpec.js.flow +61 -61
- package/CZIProseMirror.js.flow +90 -90
- package/CodeBlockCommand.js +17 -18
- package/CodeBlockCommand.js.flow +65 -65
- package/CodeBlockNodeSpec.js.flow +24 -24
- package/CodeMarkSpec.js.flow +14 -14
- package/ContentPlaceholderPlugin.js +20 -21
- package/ContentPlaceholderPlugin.js.flow +185 -187
- package/CursorPlaceholderPlugin.js +11 -11
- package/CursorPlaceholderPlugin.js.flow +115 -115
- package/DocLayoutCommand.js +18 -21
- package/DocLayoutCommand.js.flow +97 -99
- package/DocNodeSpec.js.flow +64 -64
- package/EMMarkSpec.js.flow +14 -14
- package/EditorCommands.js.flow +126 -126
- package/EditorKeyMap.js +0 -1
- package/EditorKeyMap.js.flow +185 -187
- package/EditorMarks.js +2 -2
- package/EditorMarks.js.flow +71 -71
- package/EditorNodes.js +2 -3
- package/EditorNodes.js.flow +58 -59
- package/EditorPageLayoutPlugin.js +10 -10
- package/EditorPageLayoutPlugin.js.flow +67 -67
- package/EditorPlugins.js.flow +8 -8
- package/EditorSchema.js.flow +12 -12
- package/EditorState.js.flow +7 -7
- package/FontSizeMarkSpec.js.flow +49 -49
- package/FontTypeMarkSpec.js +1 -1
- package/FontTypeMarkSpec.js.flow +80 -80
- package/HTMLMutator.js +6 -7
- package/HTMLMutator.js.flow +59 -59
- package/HardBreakNodeSpec.js.flow +15 -15
- package/HeadingNodeSpec.js +3 -13
- package/HeadingNodeSpec.js.flow +42 -52
- package/HistoryRedoCommand.js +15 -16
- package/HistoryRedoCommand.js.flow +41 -41
- package/HistoryUndoCommand.js +15 -16
- package/HistoryUndoCommand.js.flow +41 -41
- package/HorizontalRuleCommand.js +15 -16
- package/HorizontalRuleCommand.js.flow +71 -71
- package/HorizontalRuleNodeSpec.js.flow +39 -39
- package/ImageUploadPlaceholderPlugin.js +15 -17
- package/ImageUploadPlaceholderPlugin.js.flow +190 -192
- package/LinkMarkSpec.js +6 -1
- package/LinkMarkSpec.js.flow +37 -32
- package/LinkSetURLCommand.js +130 -60
- package/LinkSetURLCommand.js.flow +141 -117
- package/LinkTooltipPlugin.js +122 -34
- package/LinkTooltipPlugin.js.flow +261 -190
- package/ListItemInsertNewLineCommand.js +16 -18
- package/ListItemInsertNewLineCommand.js.flow +76 -77
- package/ListItemMergeCommand.js +24 -24
- package/ListItemMergeCommand.js.flow +198 -199
- package/ListItemNodeSpec.js.flow +52 -52
- package/ListSplitCommand.js +15 -16
- package/ListSplitCommand.js.flow +54 -54
- package/ListToggleCommand.js +19 -20
- package/ListToggleCommand.js.flow +99 -99
- package/MarkNames.js.flow +18 -18
- package/MarksClearCommand.js +17 -18
- package/MarksClearCommand.js.flow +65 -65
- package/MathEditCommand.js +17 -19
- package/MathEditCommand.js.flow +119 -120
- package/MathNodeSpec.js.flow +46 -46
- package/NodeNames.js.flow +23 -23
- package/OrderedListNodeSpec.js +2 -2
- package/OrderedListNodeSpec.js.flow +132 -132
- package/ParagraphNodeSpec.js +11 -2
- package/ParagraphNodeSpec.js.flow +163 -156
- package/ParagraphSpacingCommand.js +21 -23
- package/ParagraphSpacingCommand.js.flow +139 -144
- package/PrintCommand.js +17 -18
- package/PrintCommand.js.flow +53 -53
- package/SelectionPlaceholderPlugin.js +11 -11
- package/SelectionPlaceholderPlugin.js.flow +131 -131
- package/SpacerMarkSpec.js +2 -2
- package/SpacerMarkSpec.js.flow +47 -47
- package/StrikeMarkSpec.js.flow +21 -21
- package/StrongMarkSpec.js.flow +25 -25
- package/StyleView.js +5 -7
- package/StyleView.js.flow +18 -19
- package/TableBackgroundColorCommand.js +34 -23
- package/TableBackgroundColorCommand.js.flow +80 -75
- package/TableBorderColorCommand.js +34 -23
- package/TableBorderColorCommand.js.flow +81 -75
- package/TableCellColorCommand.js +20 -21
- package/TableCellColorCommand.js.flow +74 -75
- package/TableCellMenuPlugin.js +19 -19
- package/TableCellMenuPlugin.js.flow +130 -132
- package/TableInsertCommand.js +19 -22
- package/TableInsertCommand.js.flow +118 -120
- package/TableMergeCellsCommand.js +19 -19
- package/TableMergeCellsCommand.js.flow +113 -112
- package/TableNodesSpecs.js +4 -2
- package/TableNodesSpecs.js.flow +80 -78
- package/TablePlugins.js.flow +14 -14
- package/TableResizePlugin.js +20 -20
- package/TableResizePlugin.js.flow +631 -631
- package/TextColorMarkSpec.js.flow +35 -35
- package/TextHighlightMarkSpec.js.flow +38 -38
- package/TextInsertTabSpaceCommand.js +15 -16
- package/TextInsertTabSpaceCommand.js.flow +106 -106
- package/TextNoWrapMarkSpec.js.flow +14 -14
- package/TextNodeSpec.js.flow +7 -7
- package/TextSelectionMarkSpec.js.flow +24 -24
- package/TextSubMarkSpec.js.flow +20 -20
- package/TextSuperMarkSpec.js.flow +20 -20
- package/TextUnderlineMarkSpec.js.flow +27 -27
- package/Types.js +6 -0
- package/Types.js.flow +77 -75
- package/WebFontLoader.js +6 -7
- package/WebFontLoader.js.flow +22 -22
- package/blockQuoteInputRule.js.flow +36 -36
- package/bom.xml +17223 -25722
- package/browser.js.flow +7 -7
- package/buildEditorPlugins.js +6 -7
- package/buildEditorPlugins.js.flow +49 -49
- package/buildInputRules.js +8 -4
- package/buildInputRules.js.flow +85 -81
- package/client/CollabConnector.js +20 -20
- package/client/CollabConnector.js.flow +90 -90
- package/client/EditorConnection.js +10 -9
- package/client/EditorConnection.js.flow +324 -323
- package/client/Licit.js +78 -115
- package/client/Licit.js.flow +611 -643
- package/client/Licit.test.js +49 -39
- package/client/Licit.test.js.flow +104 -98
- package/client/Reporter.js +5 -6
- package/client/Reporter.js.flow +37 -37
- package/client/SimpleConnector.js +5 -5
- package/client/SimpleConnector.js.flow +61 -61
- package/client/http.js +0 -6
- package/client/http.js.flow +62 -70
- package/client/licit.css +12 -12
- package/client/throttle.js +8 -2
- package/client/throttle.js.flow +27 -27
- package/convertFromDOMElement.js +2 -4
- package/convertFromDOMElement.js.flow +33 -36
- package/convertFromHTML.js +2 -3
- package/convertFromHTML.js.flow +15 -17
- package/convertFromJSON.js +1 -2
- package/convertFromJSON.js.flow +55 -56
- package/convertToCSSPTValue.js +6 -10
- package/convertToCSSPTValue.js.flow +19 -22
- package/convertToJSON.js.flow +7 -7
- package/createCommand.js +16 -17
- package/createCommand.js.flow +62 -62
- package/createEditorKeyMap.js +2 -2
- package/createEditorKeyMap.js.flow +94 -94
- package/createEmptyEditorState.js +2 -3
- package/createEmptyEditorState.js.flow +29 -31
- package/createTableResizingPlugin.js +6 -6
- package/createTableResizingPlugin.js.flow +86 -86
- package/findActionableCell.js.flow +74 -74
- package/findActiveMark.js +1 -1
- package/findActiveMark.js.flow +32 -32
- package/hyphenize.js.flow +17 -17
- package/index.d.ts +165 -165
- package/index.js.flow +10 -10
- package/insertTable.js +0 -3
- package/insertTable.js.flow +54 -56
- package/isEditorStateEmpty.js.flow +32 -32
- package/isTableNode.js.flow +15 -15
- package/joinDown.js +1 -3
- package/joinDown.js.flow +25 -27
- package/joinListNode.js.flow +55 -55
- package/joinUp.js +1 -3
- package/joinUp.js.flow +37 -39
- package/keymaps.js.flow +185 -185
- package/lookUpElement.js +2 -1
- package/lookUpElement.js.flow +14 -14
- package/nodeAt.js.flow +12 -12
- package/normalizeHTML.js +3 -1
- package/normalizeHTML.js.flow +80 -78
- package/package.json +162 -156
- package/patchAnchorElements.js +1 -1
- package/patchAnchorElements.js.flow +38 -38
- package/patchBreakElements.js +3 -2
- package/patchBreakElements.js.flow +22 -22
- package/patchElementInlineStyles.js +1 -1
- package/patchElementInlineStyles.js.flow +92 -92
- package/patchListElements.js +4 -4
- package/patchListElements.js.flow +276 -276
- package/patchMathElements.js +5 -7
- package/patchMathElements.js.flow +58 -60
- package/patchParagraphElements.js.flow +20 -20
- package/patchStyleElements.js +1 -1
- package/patchStyleElements.js.flow +197 -196
- package/patchTableElements.js +2 -3
- package/patchTableElements.js.flow +88 -89
- package/rebaseDocWithSteps.js.flow +42 -42
- package/sanitizeURL.js +1 -1
- package/sanitizeURL.js.flow +13 -13
- package/splitListItem.js +3 -3
- package/splitListItem.js.flow +191 -191
- package/styles.css +19 -19
- package/styles0.css +29 -29
- package/toClosestFontPtSize.js.flow +22 -22
- package/toSafeHTMLDocument.js.flow +9 -9
- package/toggleBlockquote.js +4 -5
- package/toggleBlockquote.js.flow +101 -108
- package/toggleCodeBlock.js +6 -6
- package/toggleCodeBlock.js.flow +102 -102
- package/ui/AlertInfo.js +15 -16
- package/ui/AlertInfo.js.flow +64 -64
- package/ui/BookmarkNodeView.js +20 -21
- package/ui/BookmarkNodeView.js.flow +66 -66
- package/ui/CommandButton.js +15 -16
- package/ui/CommandButton.js.flow +68 -68
- package/ui/CommandMenu.js +19 -20
- package/ui/CommandMenu.js.flow +75 -75
- package/ui/CommandMenuButton.js +23 -25
- package/ui/CommandMenuButton.js.flow +130 -131
- package/ui/CustomEditorView.js +20 -20
- package/ui/CustomEditorView.js.flow +29 -28
- package/ui/CustomMenu.js +11 -12
- package/ui/CustomMenu.js.flow +17 -17
- package/ui/CustomMenuItem.js +16 -18
- package/ui/CustomMenuItem.js.flow +36 -36
- package/ui/CustomNodeView.js +29 -19
- package/ui/CustomNodeView.js.flow +207 -200
- package/ui/CustomRadioButton.js +18 -21
- package/ui/CustomRadioButton.js.flow +64 -65
- package/ui/DocLayoutEditor.js +18 -20
- package/ui/DocLayoutEditor.js.flow +145 -146
- package/ui/Editor.js +30 -28
- package/ui/Editor.js.flow +287 -288
- package/ui/EditorFrameset.js +13 -14
- package/ui/EditorFrameset.js.flow +81 -81
- package/ui/EditorToolbar.js +36 -42
- package/ui/EditorToolbar.js.flow +199 -218
- package/ui/EditorToolbarConfig.js +5 -5
- package/ui/EditorToolbarConfig.js.flow +164 -164
- package/ui/FontSizeCommandMenuButton.js +14 -15
- package/ui/FontSizeCommandMenuButton.js.flow +66 -66
- package/ui/FontTypeCommandMenuButton.js +15 -17
- package/ui/FontTypeCommandMenuButton.js.flow +60 -61
- package/ui/Frag.js +11 -12
- package/ui/Frag.js.flow +13 -13
- package/ui/Icon.js +21 -24
- package/ui/Icon.js.flow +89 -89
- package/ui/ImageInlineEditor.js +14 -15
- package/ui/ImageInlineEditor.js.flow +67 -67
- package/ui/KeyCodes.js.flow +12 -12
- package/ui/LinkTooltip.js +68 -34
- package/ui/LinkTooltip.js.flow +118 -85
- package/ui/LinkURLEditor.js +160 -43
- package/ui/LinkURLEditor.js.flow +243 -117
- package/ui/ListItemNodeView.js +6 -7
- package/ui/ListItemNodeView.js.flow +98 -98
- package/ui/ListTypeButton.js +23 -27
- package/ui/ListTypeButton.js.flow +128 -131
- package/ui/ListTypeCommandButton.js +14 -15
- package/ui/ListTypeCommandButton.js.flow +85 -85
- package/ui/ListTypeMenu.js +21 -22
- package/ui/ListTypeMenu.js.flow +70 -70
- package/ui/LoadingIndicator.js +11 -12
- package/ui/LoadingIndicator.js.flow +20 -20
- package/ui/MathEditor.js +17 -22
- package/ui/MathEditor.js.flow +72 -78
- package/ui/MathInlineEditor.js +20 -21
- package/ui/MathInlineEditor.js.flow +101 -102
- package/ui/MathNodeView.js +29 -30
- package/ui/MathNodeView.js.flow +176 -186
- package/ui/PasteMenu.js +19 -23
- package/ui/PasteMenu.js.flow +53 -57
- package/ui/ResizeObserver.js +1 -1
- package/ui/ResizeObserver.js.flow +106 -106
- package/ui/RichTextEditor.js +17 -18
- package/ui/RichTextEditor.js.flow +133 -133
- package/ui/SelectionObserver.js +8 -9
- package/ui/SelectionObserver.js.flow +134 -134
- package/ui/TableCellMenu.js +14 -15
- package/ui/TableCellMenu.js.flow +51 -51
- package/ui/TableGridSizeEditor.js +30 -33
- package/ui/TableGridSizeEditor.js.flow +187 -184
- package/ui/TableNodeView.js +18 -17
- package/ui/TableNodeView.js.flow +25 -25
- package/ui/bindScrollHandler.js +2 -1
- package/ui/bindScrollHandler.js.flow +46 -46
- package/ui/canUseCSSFont.js +5 -4
- package/ui/canUseCSSFont.js.flow +42 -43
- package/ui/czi-body-layout-editor.css +16 -16
- package/ui/czi-bookmark-view.css +10 -10
- package/ui/czi-cursor-placeholder.css +36 -36
- package/ui/czi-custom-menu-button.css +18 -18
- package/ui/czi-custom-menu-item.css +30 -30
- package/ui/czi-custom-menu.css +8 -8
- package/ui/czi-custom-radio-button.css +80 -80
- package/ui/czi-custom-scrollbar.css +21 -21
- package/ui/czi-editor-frameset.css +81 -81
- package/ui/czi-editor-toolbar.css +122 -122
- package/ui/czi-editor.css +217 -220
- package/ui/czi-form.css +201 -107
- package/ui/czi-frag.css +3 -3
- package/ui/czi-heading.css +40 -40
- package/ui/czi-icon.css +72 -72
- package/ui/czi-image-resize-box.css +165 -165
- package/ui/czi-image-upload-editor.css +57 -57
- package/ui/czi-image-upload-placeholder.css +50 -50
- package/ui/czi-image-url-editor.css +38 -38
- package/ui/czi-image-view.css +121 -125
- package/ui/czi-indent.css +137 -137
- package/ui/czi-inline-editor.css +20 -20
- package/ui/czi-link-tooltip.css +112 -71
- package/ui/czi-list.css +406 -410
- package/ui/czi-loading-indicator.css +66 -111
- package/ui/czi-math-view.css +62 -62
- package/ui/czi-selection-placeholder.css +24 -24
- package/ui/czi-table-cell-menu.css +16 -14
- package/ui/czi-table-grid-size-editor.css +37 -37
- package/ui/czi-table.css +87 -87
- package/ui/czi-vars.css +2 -2
- package/ui/findActiveFontSize.js +2 -1
- package/ui/findActiveFontSize.js.flow +55 -58
- package/ui/findActiveFontType.js +4 -3
- package/ui/findActiveFontType.js.flow +35 -38
- package/ui/fonts.css +460 -460
- package/ui/handleEditorDrop.js +1 -1
- package/ui/handleEditorDrop.js.flow +28 -28
- package/ui/handleEditorKeyDown.js +1 -1
- package/ui/handleEditorKeyDown.js.flow +39 -39
- package/ui/handleEditorPaste.js +1 -1
- package/ui/handleEditorPaste.js.flow +33 -33
- package/ui/htmlElementToRect.js.flow +18 -18
- package/ui/icon-font.css +9 -9
- package/ui/injectStyleSheet.js +2 -2
- package/ui/injectStyleSheet.js.flow +40 -42
- package/ui/isElementFullyVisible.js +1 -10
- package/ui/isElementFullyVisible.js.flow +14 -26
- package/ui/isOffline.js.flow +8 -8
- package/ui/isReactClass.js.flow +12 -12
- package/ui/listType.css +21 -21
- package/ui/mathquill-editor/MathQuillEditor.js +27 -30
- package/ui/mathquill-editor/MathQuillEditor.js.flow +158 -159
- package/ui/mathquill-editor/MathQuillEditorSymbols.js.flow +483 -483
- package/ui/mathquill-editor/MathQuillEditorSymbolsPanel.js +14 -15
- package/ui/mathquill-editor/MathQuillEditorSymbolsPanel.js.flow +50 -50
- package/ui/mathquill-editor/czi-mathquill-editor-symbols-panel.css +39 -39
- package/ui/mathquill-editor/czi-mathquill-editor.css +50 -50
- package/ui/mathquill-editor/mathquill-import-kludge.js +1 -8
- package/ui/mathquill-editor/mathquill-import-kludge.js.flow +17 -24
- package/ui/renderLaTeXAsHTML.js +4 -4
- package/ui/renderLaTeXAsHTML.js.flow +46 -46
- package/ui/resolveImage.js +5 -6
- package/ui/resolveImage.js.flow +121 -123
- package/ui/toCSSColor.js.flow +51 -51
- package/ui/toCSSLineSpacing.js +2 -3
- package/ui/toCSSLineSpacing.js.flow +53 -55
- package/ui/toHexColor.js.flow +26 -26
- package/ui/uuid.js.flow +9 -9
- package/uuid.js.flow +9 -9
package/EditorNodes.js.flow
CHANGED
|
@@ -1,59 +1,58 @@
|
|
|
1
|
-
// @flow
|
|
2
|
-
|
|
3
|
-
import { Schema } from 'prosemirror-model';
|
|
4
|
-
import BlockquoteNodeSpec from './BlockquoteNodeSpec.js';
|
|
5
|
-
import BookmarkNodeSpec from './BookmarkNodeSpec.js';
|
|
6
|
-
import BulletListNodeSpec from './BulletListNodeSpec.js';
|
|
7
|
-
import DocNodeSpec from './DocNodeSpec.js';
|
|
8
|
-
import HardBreakNodeSpec from './HardBreakNodeSpec.js';
|
|
9
|
-
|
|
10
|
-
import
|
|
11
|
-
import
|
|
12
|
-
import
|
|
13
|
-
import
|
|
14
|
-
import
|
|
15
|
-
import
|
|
16
|
-
import
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
//
|
|
38
|
-
//
|
|
39
|
-
//
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
[
|
|
43
|
-
[
|
|
44
|
-
[
|
|
45
|
-
[
|
|
46
|
-
[
|
|
47
|
-
[
|
|
48
|
-
[
|
|
49
|
-
[
|
|
50
|
-
[
|
|
51
|
-
[
|
|
52
|
-
[
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
const
|
|
57
|
-
const
|
|
58
|
-
|
|
59
|
-
export default EditorNodes;
|
|
1
|
+
// @flow
|
|
2
|
+
|
|
3
|
+
import { Schema } from 'prosemirror-model';
|
|
4
|
+
import BlockquoteNodeSpec from './BlockquoteNodeSpec.js';
|
|
5
|
+
import BookmarkNodeSpec from './BookmarkNodeSpec.js';
|
|
6
|
+
import BulletListNodeSpec from './BulletListNodeSpec.js';
|
|
7
|
+
import DocNodeSpec from './DocNodeSpec.js';
|
|
8
|
+
import HardBreakNodeSpec from './HardBreakNodeSpec.js';
|
|
9
|
+
import HorizontalRuleNodeSpec from './HorizontalRuleNodeSpec.js';
|
|
10
|
+
import ListItemNodeSpec from './ListItemNodeSpec.js';
|
|
11
|
+
import MathNodeSpec from './MathNodeSpec.js';
|
|
12
|
+
import * as NodeNames from './NodeNames.js';
|
|
13
|
+
import OrderedListNodeSpec from './OrderedListNodeSpec.js';
|
|
14
|
+
import ParagraphNodeSpec from './ParagraphNodeSpec.js';
|
|
15
|
+
import TableNodesSpecs from './TableNodesSpecs.js';
|
|
16
|
+
import TextNodeSpec from './TextNodeSpec.js';
|
|
17
|
+
|
|
18
|
+
const {
|
|
19
|
+
BLOCKQUOTE,
|
|
20
|
+
BOOKMARK,
|
|
21
|
+
BULLET_LIST,
|
|
22
|
+
//CODE_BLOCK,
|
|
23
|
+
DOC,
|
|
24
|
+
HARD_BREAK,
|
|
25
|
+
HEADING,
|
|
26
|
+
HORIZONTAL_RULE,
|
|
27
|
+
LIST_ITEM,
|
|
28
|
+
MATH,
|
|
29
|
+
ORDERED_LIST,
|
|
30
|
+
PARAGRAPH,
|
|
31
|
+
TEXT,
|
|
32
|
+
} = NodeNames;
|
|
33
|
+
|
|
34
|
+
// https://github.com/ProseMirror/prosemirror-schema-basic/blob/master/src/schema-basic.js
|
|
35
|
+
|
|
36
|
+
// !! Be careful with the order of these nodes, which may effect the parsing
|
|
37
|
+
// outcome.!!
|
|
38
|
+
// [FS-SEA][06-04-2023]
|
|
39
|
+
// Changed HeadingNodeSpec to ParagraphNodeSpec for HEADING to handle Header as a paragraph
|
|
40
|
+
const nodes = {
|
|
41
|
+
[DOC]: DocNodeSpec,
|
|
42
|
+
[PARAGRAPH]: ParagraphNodeSpec,
|
|
43
|
+
[BLOCKQUOTE]: BlockquoteNodeSpec,
|
|
44
|
+
[HORIZONTAL_RULE]: HorizontalRuleNodeSpec,
|
|
45
|
+
[HEADING]: ParagraphNodeSpec,
|
|
46
|
+
[TEXT]: TextNodeSpec,
|
|
47
|
+
[MATH]: MathNodeSpec,
|
|
48
|
+
[HARD_BREAK]: HardBreakNodeSpec,
|
|
49
|
+
[BULLET_LIST]: BulletListNodeSpec,
|
|
50
|
+
[ORDERED_LIST]: OrderedListNodeSpec,
|
|
51
|
+
[LIST_ITEM]: ListItemNodeSpec,
|
|
52
|
+
[BOOKMARK]: BookmarkNodeSpec,
|
|
53
|
+
};
|
|
54
|
+
|
|
55
|
+
const marks = {};
|
|
56
|
+
const schema = new Schema({ nodes, marks });
|
|
57
|
+
const EditorNodes = schema.spec.nodes.append(TableNodesSpecs);
|
|
58
|
+
export default EditorNodes;
|
|
@@ -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 _defineProperties(
|
|
3
|
-
function _createClass(
|
|
4
|
-
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i :
|
|
2
|
+
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); } }
|
|
3
|
+
function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; }
|
|
4
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
|
|
5
5
|
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); }
|
|
6
|
-
function _classCallCheck(
|
|
6
|
+
function _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); }
|
|
7
7
|
function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }
|
|
8
|
-
function _possibleConstructorReturn(
|
|
9
|
-
function _assertThisInitialized(
|
|
8
|
+
function _possibleConstructorReturn(t, e) { if (e && ("object" == _typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return _assertThisInitialized(t); }
|
|
9
|
+
function _assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; }
|
|
10
10
|
function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
|
|
11
|
-
function _getPrototypeOf(
|
|
12
|
-
function _inherits(
|
|
13
|
-
function _setPrototypeOf(
|
|
11
|
+
function _getPrototypeOf(t) { return _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, _getPrototypeOf(t); }
|
|
12
|
+
function _inherits(t, e) { if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function"); t.prototype = Object.create(e && e.prototype, { constructor: { value: t, writable: !0, configurable: !0 } }), Object.defineProperty(t, "prototype", { writable: !1 }), e && _setPrototypeOf(t, e); }
|
|
13
|
+
function _setPrototypeOf(t, e) { return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) { return t.__proto__ = e, t; }, _setPrototypeOf(t, e); }
|
|
14
14
|
import { EditorState, Plugin, PluginKey } from 'prosemirror-state';
|
|
15
15
|
import { ATTRIBUTE_LAYOUT, LAYOUT } from './DocNodeSpec.js';
|
|
16
16
|
var SPEC = {
|
|
@@ -68,11 +68,11 @@ function renderAttributes(editorState) {
|
|
|
68
68
|
// Unfortunately the root node `doc` does not supoort `toDOM`, thus
|
|
69
69
|
// we'd have to assign its `attributes` manually.
|
|
70
70
|
var EditorPageLayoutPlugin = /*#__PURE__*/function (_Plugin) {
|
|
71
|
-
_inherits(EditorPageLayoutPlugin, _Plugin);
|
|
72
71
|
function EditorPageLayoutPlugin() {
|
|
73
72
|
_classCallCheck(this, EditorPageLayoutPlugin);
|
|
74
73
|
return _callSuper(this, EditorPageLayoutPlugin, [SPEC]);
|
|
75
74
|
}
|
|
75
|
+
_inherits(EditorPageLayoutPlugin, _Plugin);
|
|
76
76
|
return _createClass(EditorPageLayoutPlugin);
|
|
77
77
|
}(Plugin);
|
|
78
78
|
export default EditorPageLayoutPlugin;
|
|
@@ -1,67 +1,67 @@
|
|
|
1
|
-
// @flow
|
|
2
|
-
|
|
3
|
-
import { EditorState, Plugin, PluginKey } from 'prosemirror-state';
|
|
4
|
-
|
|
5
|
-
import { ATTRIBUTE_LAYOUT, LAYOUT } from './DocNodeSpec.js';
|
|
6
|
-
|
|
7
|
-
const SPEC = {
|
|
8
|
-
// [FS] IRAD-1005 2020-07-07
|
|
9
|
-
// Upgrade outdated packages.
|
|
10
|
-
key: new PluginKey('EditorPageLayoutPlugin'),
|
|
11
|
-
props: {
|
|
12
|
-
attributes: renderAttributes,
|
|
13
|
-
},
|
|
14
|
-
};
|
|
15
|
-
|
|
16
|
-
function renderAttributes(editorState: EditorState): Object {
|
|
17
|
-
const { doc } = editorState;
|
|
18
|
-
const attrs: Object = {
|
|
19
|
-
class: 'czi-prosemirror-editor',
|
|
20
|
-
};
|
|
21
|
-
|
|
22
|
-
const { width, padding, layout } = doc.attrs;
|
|
23
|
-
|
|
24
|
-
let style = '';
|
|
25
|
-
let computedLayout;
|
|
26
|
-
if (width) {
|
|
27
|
-
const inWidth = width / 72;
|
|
28
|
-
const cmWidth = inWidth * 2.54;
|
|
29
|
-
if (!computedLayout && inWidth >= 10.9 && inWidth <= 11.1) {
|
|
30
|
-
// Round up to letter size.
|
|
31
|
-
computedLayout = LAYOUT.US_LETTER_LANDSCAPE;
|
|
32
|
-
} else if (!computedLayout && inWidth >= 8.4 && inWidth <= 8.6) {
|
|
33
|
-
// Round up to letter size.
|
|
34
|
-
computedLayout = LAYOUT.US_LETTER_PORTRAIT;
|
|
35
|
-
} else if (!computedLayout && cmWidth >= 29.5 && cmWidth <= 30.1) {
|
|
36
|
-
// Round up to letter size.
|
|
37
|
-
computedLayout = LAYOUT.A4_LANDSCAPE;
|
|
38
|
-
} else if (!computedLayout && cmWidth >= 20.5 && cmWidth <= 21.5) {
|
|
39
|
-
// Round up to letter size.
|
|
40
|
-
computedLayout = LAYOUT.A4_PORTRAIT;
|
|
41
|
-
} else {
|
|
42
|
-
// Use custom width (e.g. imported from google doc).
|
|
43
|
-
style += `width: ${width}pt;`;
|
|
44
|
-
}
|
|
45
|
-
if (padding) {
|
|
46
|
-
style += `padding-left: ${padding}pt;`;
|
|
47
|
-
style += `padding-right: ${padding}pt;`;
|
|
48
|
-
}
|
|
49
|
-
attrs.style = style;
|
|
50
|
-
} else {
|
|
51
|
-
computedLayout = layout;
|
|
52
|
-
}
|
|
53
|
-
if (computedLayout) {
|
|
54
|
-
attrs[ATTRIBUTE_LAYOUT] = computedLayout;
|
|
55
|
-
}
|
|
56
|
-
return attrs;
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
// Unfortunately the root node `doc` does not supoort `toDOM`, thus
|
|
60
|
-
// we'd have to assign its `attributes` manually.
|
|
61
|
-
class EditorPageLayoutPlugin extends Plugin {
|
|
62
|
-
constructor() {
|
|
63
|
-
super(SPEC);
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
export default EditorPageLayoutPlugin;
|
|
1
|
+
// @flow
|
|
2
|
+
|
|
3
|
+
import { EditorState, Plugin, PluginKey } from 'prosemirror-state';
|
|
4
|
+
|
|
5
|
+
import { ATTRIBUTE_LAYOUT, LAYOUT } from './DocNodeSpec.js';
|
|
6
|
+
|
|
7
|
+
const SPEC = {
|
|
8
|
+
// [FS] IRAD-1005 2020-07-07
|
|
9
|
+
// Upgrade outdated packages.
|
|
10
|
+
key: new PluginKey('EditorPageLayoutPlugin'),
|
|
11
|
+
props: {
|
|
12
|
+
attributes: renderAttributes,
|
|
13
|
+
},
|
|
14
|
+
};
|
|
15
|
+
|
|
16
|
+
function renderAttributes(editorState: EditorState): Object {
|
|
17
|
+
const { doc } = editorState;
|
|
18
|
+
const attrs: Object = {
|
|
19
|
+
class: 'czi-prosemirror-editor',
|
|
20
|
+
};
|
|
21
|
+
|
|
22
|
+
const { width, padding, layout } = doc.attrs;
|
|
23
|
+
|
|
24
|
+
let style = '';
|
|
25
|
+
let computedLayout;
|
|
26
|
+
if (width) {
|
|
27
|
+
const inWidth = width / 72;
|
|
28
|
+
const cmWidth = inWidth * 2.54;
|
|
29
|
+
if (!computedLayout && inWidth >= 10.9 && inWidth <= 11.1) {
|
|
30
|
+
// Round up to letter size.
|
|
31
|
+
computedLayout = LAYOUT.US_LETTER_LANDSCAPE;
|
|
32
|
+
} else if (!computedLayout && inWidth >= 8.4 && inWidth <= 8.6) {
|
|
33
|
+
// Round up to letter size.
|
|
34
|
+
computedLayout = LAYOUT.US_LETTER_PORTRAIT;
|
|
35
|
+
} else if (!computedLayout && cmWidth >= 29.5 && cmWidth <= 30.1) {
|
|
36
|
+
// Round up to letter size.
|
|
37
|
+
computedLayout = LAYOUT.A4_LANDSCAPE;
|
|
38
|
+
} else if (!computedLayout && cmWidth >= 20.5 && cmWidth <= 21.5) {
|
|
39
|
+
// Round up to letter size.
|
|
40
|
+
computedLayout = LAYOUT.A4_PORTRAIT;
|
|
41
|
+
} else {
|
|
42
|
+
// Use custom width (e.g. imported from google doc).
|
|
43
|
+
style += `width: ${width}pt;`;
|
|
44
|
+
}
|
|
45
|
+
if (padding) {
|
|
46
|
+
style += `padding-left: ${padding}pt;`;
|
|
47
|
+
style += `padding-right: ${padding}pt;`;
|
|
48
|
+
}
|
|
49
|
+
attrs.style = style;
|
|
50
|
+
} else {
|
|
51
|
+
computedLayout = layout;
|
|
52
|
+
}
|
|
53
|
+
if (computedLayout) {
|
|
54
|
+
attrs[ATTRIBUTE_LAYOUT] = computedLayout;
|
|
55
|
+
}
|
|
56
|
+
return attrs;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
// Unfortunately the root node `doc` does not supoort `toDOM`, thus
|
|
60
|
+
// we'd have to assign its `attributes` manually.
|
|
61
|
+
class EditorPageLayoutPlugin extends Plugin {
|
|
62
|
+
constructor() {
|
|
63
|
+
super(SPEC);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
export default EditorPageLayoutPlugin;
|
package/EditorPlugins.js.flow
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
// @flow
|
|
2
|
-
|
|
3
|
-
import EditorSchema from './EditorSchema.js';
|
|
4
|
-
import DefaultEditorPlugins from './buildEditorPlugins.js';
|
|
5
|
-
|
|
6
|
-
// Plugin
|
|
7
|
-
const EditorPlugins = new DefaultEditorPlugins(EditorSchema);
|
|
8
|
-
export default EditorPlugins;
|
|
1
|
+
// @flow
|
|
2
|
+
|
|
3
|
+
import EditorSchema from './EditorSchema.js';
|
|
4
|
+
import DefaultEditorPlugins from './buildEditorPlugins.js';
|
|
5
|
+
|
|
6
|
+
// Plugin
|
|
7
|
+
const EditorPlugins = new DefaultEditorPlugins(EditorSchema);
|
|
8
|
+
export default EditorPlugins;
|
package/EditorSchema.js.flow
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
// @flow
|
|
2
|
-
|
|
3
|
-
import { Schema } from 'prosemirror-model';
|
|
4
|
-
|
|
5
|
-
import EditorMarks from './EditorMarks.js';
|
|
6
|
-
import EditorNodes from './EditorNodes.js';
|
|
7
|
-
|
|
8
|
-
const EditorSchema = new Schema({
|
|
9
|
-
nodes: EditorNodes,
|
|
10
|
-
marks: EditorMarks,
|
|
11
|
-
});
|
|
12
|
-
export default EditorSchema;
|
|
1
|
+
// @flow
|
|
2
|
+
|
|
3
|
+
import { Schema } from 'prosemirror-model';
|
|
4
|
+
|
|
5
|
+
import EditorMarks from './EditorMarks.js';
|
|
6
|
+
import EditorNodes from './EditorNodes.js';
|
|
7
|
+
|
|
8
|
+
const EditorSchema = new Schema({
|
|
9
|
+
nodes: EditorNodes,
|
|
10
|
+
marks: EditorMarks,
|
|
11
|
+
});
|
|
12
|
+
export default EditorSchema;
|
package/EditorState.js.flow
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
// @flow
|
|
2
|
-
|
|
3
|
-
import { EditorState } from 'prosemirror-state';
|
|
4
|
-
|
|
5
|
-
const ProseMirrorEditorState = EditorState;
|
|
6
|
-
|
|
7
|
-
export default ProseMirrorEditorState;
|
|
1
|
+
// @flow
|
|
2
|
+
|
|
3
|
+
import { EditorState } from 'prosemirror-state';
|
|
4
|
+
|
|
5
|
+
const ProseMirrorEditorState = EditorState;
|
|
6
|
+
|
|
7
|
+
export default ProseMirrorEditorState;
|
package/FontSizeMarkSpec.js.flow
CHANGED
|
@@ -1,49 +1,49 @@
|
|
|
1
|
-
// @flow
|
|
2
|
-
|
|
3
|
-
import { Node } from 'prosemirror-model';
|
|
4
|
-
|
|
5
|
-
import { toClosestFontPtSize } from './toClosestFontPtSize.js';
|
|
6
|
-
|
|
7
|
-
import type { MarkSpec } from './Types.js';
|
|
8
|
-
|
|
9
|
-
const FontSizeMarkSpec: MarkSpec = {
|
|
10
|
-
attrs: {
|
|
11
|
-
pt: { default: null },
|
|
12
|
-
},
|
|
13
|
-
inline: true,
|
|
14
|
-
group: 'inline',
|
|
15
|
-
parseDOM: [
|
|
16
|
-
{
|
|
17
|
-
style: 'font-size',
|
|
18
|
-
getAttrs: getAttrs,
|
|
19
|
-
},
|
|
20
|
-
],
|
|
21
|
-
toDOM(node: Node) {
|
|
22
|
-
const { pt } = node.attrs;
|
|
23
|
-
const domAttrs = pt
|
|
24
|
-
? {
|
|
25
|
-
style: `font-size: ${pt}pt;`,
|
|
26
|
-
class: 'czi-font-size-mark',
|
|
27
|
-
}
|
|
28
|
-
: null;
|
|
29
|
-
|
|
30
|
-
return ['span', domAttrs, 0];
|
|
31
|
-
},
|
|
32
|
-
};
|
|
33
|
-
|
|
34
|
-
function getAttrs(fontSize: string): Object {
|
|
35
|
-
const attrs = {};
|
|
36
|
-
if (!fontSize) {
|
|
37
|
-
return attrs;
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
const ptValue = toClosestFontPtSize(fontSize);
|
|
41
|
-
if (!ptValue) {
|
|
42
|
-
return attrs;
|
|
43
|
-
}
|
|
44
|
-
return {
|
|
45
|
-
pt: ptValue,
|
|
46
|
-
};
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
export default FontSizeMarkSpec;
|
|
1
|
+
// @flow
|
|
2
|
+
|
|
3
|
+
import { Node } from 'prosemirror-model';
|
|
4
|
+
|
|
5
|
+
import { toClosestFontPtSize } from './toClosestFontPtSize.js';
|
|
6
|
+
|
|
7
|
+
import type { MarkSpec } from './Types.js';
|
|
8
|
+
|
|
9
|
+
const FontSizeMarkSpec: MarkSpec = {
|
|
10
|
+
attrs: {
|
|
11
|
+
pt: { default: null },
|
|
12
|
+
},
|
|
13
|
+
inline: true,
|
|
14
|
+
group: 'inline',
|
|
15
|
+
parseDOM: [
|
|
16
|
+
{
|
|
17
|
+
style: 'font-size',
|
|
18
|
+
getAttrs: getAttrs,
|
|
19
|
+
},
|
|
20
|
+
],
|
|
21
|
+
toDOM(node: Node) {
|
|
22
|
+
const { pt } = node.attrs;
|
|
23
|
+
const domAttrs = pt
|
|
24
|
+
? {
|
|
25
|
+
style: `font-size: ${pt}pt;`,
|
|
26
|
+
class: 'czi-font-size-mark',
|
|
27
|
+
}
|
|
28
|
+
: null;
|
|
29
|
+
|
|
30
|
+
return ['span', domAttrs, 0];
|
|
31
|
+
},
|
|
32
|
+
};
|
|
33
|
+
|
|
34
|
+
function getAttrs(fontSize: string): Object {
|
|
35
|
+
const attrs = {};
|
|
36
|
+
if (!fontSize) {
|
|
37
|
+
return attrs;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
const ptValue = toClosestFontPtSize(fontSize);
|
|
41
|
+
if (!ptValue) {
|
|
42
|
+
return attrs;
|
|
43
|
+
}
|
|
44
|
+
return {
|
|
45
|
+
pt: ptValue,
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
export default FontSizeMarkSpec;
|
package/FontTypeMarkSpec.js
CHANGED
package/FontTypeMarkSpec.js.flow
CHANGED
|
@@ -1,80 +1,80 @@
|
|
|
1
|
-
// @flow
|
|
2
|
-
|
|
3
|
-
import { Node } from 'prosemirror-model';
|
|
4
|
-
import type { MarkSpec } from './Types.js';
|
|
5
|
-
|
|
6
|
-
// [FS] IRAD-1061 2020-09-19
|
|
7
|
-
// Now loaded locally, so that it work in closed network as well.
|
|
8
|
-
|
|
9
|
-
export const FONT_TYPE_NAMES = [
|
|
10
|
-
// SERIF
|
|
11
|
-
'Aclonica',
|
|
12
|
-
'Acme',
|
|
13
|
-
'Alegreya',
|
|
14
|
-
'Arial',
|
|
15
|
-
//'Arial',//??? - Commented out fonts that are not available to download using https://fonts.googleapis.com/css?family=
|
|
16
|
-
'Arial Black',
|
|
17
|
-
'Georgia',
|
|
18
|
-
'Tahoma',
|
|
19
|
-
'Times New Roman',
|
|
20
|
-
'Times',
|
|
21
|
-
'Verdana',
|
|
22
|
-
// MONOSPACE
|
|
23
|
-
'Courier New',
|
|
24
|
-
//'Lucida Console',//???
|
|
25
|
-
//'Monaco',//???
|
|
26
|
-
//'monospace',//???
|
|
27
|
-
];
|
|
28
|
-
|
|
29
|
-
// FS IRAD-988 2020-06-18
|
|
30
|
-
// Preload fonts that are listed by default,
|
|
31
|
-
// so that even if the font is not available locally, load from web.
|
|
32
|
-
export function preLoadFonts() {
|
|
33
|
-
FONT_TYPE_NAMES.forEach((name) => {
|
|
34
|
-
loadAndCacheFont(name);
|
|
35
|
-
});
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
// resolve each font after it is loaded.
|
|
39
|
-
const RESOLVED_FONT_NAMES = new Set([]);
|
|
40
|
-
|
|
41
|
-
function loadAndCacheFont(name) {
|
|
42
|
-
// Cache custom fonts
|
|
43
|
-
RESOLVED_FONT_NAMES.add(name);
|
|
44
|
-
// https://github.com/typekit/webfontloader
|
|
45
|
-
// [FS] IRAD-1061 2020-09-19
|
|
46
|
-
// Now loaded locally, so that it work in closed network as well.
|
|
47
|
-
//WebFontLoader.load({google: {families: [name]}});
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
const FontTypeMarkSpec: MarkSpec = {
|
|
51
|
-
attrs: {
|
|
52
|
-
name: '',
|
|
53
|
-
},
|
|
54
|
-
inline: true,
|
|
55
|
-
group: 'inline',
|
|
56
|
-
parseDOM: [
|
|
57
|
-
{
|
|
58
|
-
style: 'font-family',
|
|
59
|
-
getAttrs: (name) => {
|
|
60
|
-
return {
|
|
61
|
-
name: name ? name.replace(/[
|
|
62
|
-
};
|
|
63
|
-
},
|
|
64
|
-
},
|
|
65
|
-
],
|
|
66
|
-
|
|
67
|
-
toDOM(node: Node) {
|
|
68
|
-
const { name } = node.attrs;
|
|
69
|
-
const attrs = {};
|
|
70
|
-
if (name) {
|
|
71
|
-
if (!RESOLVED_FONT_NAMES.has(name)) {
|
|
72
|
-
loadAndCacheFont(name);
|
|
73
|
-
}
|
|
74
|
-
attrs.style = `font-family: ${name}`;
|
|
75
|
-
}
|
|
76
|
-
return ['span', attrs, 0];
|
|
77
|
-
},
|
|
78
|
-
};
|
|
79
|
-
|
|
80
|
-
export default FontTypeMarkSpec;
|
|
1
|
+
// @flow
|
|
2
|
+
|
|
3
|
+
import { Node } from 'prosemirror-model';
|
|
4
|
+
import type { MarkSpec } from './Types.js';
|
|
5
|
+
|
|
6
|
+
// [FS] IRAD-1061 2020-09-19
|
|
7
|
+
// Now loaded locally, so that it work in closed network as well.
|
|
8
|
+
|
|
9
|
+
export const FONT_TYPE_NAMES = [
|
|
10
|
+
// SERIF
|
|
11
|
+
'Aclonica',
|
|
12
|
+
'Acme',
|
|
13
|
+
'Alegreya',
|
|
14
|
+
'Arial',
|
|
15
|
+
//'Arial',//??? - Commented out fonts that are not available to download using https://fonts.googleapis.com/css?family=
|
|
16
|
+
'Arial Black',
|
|
17
|
+
'Georgia',
|
|
18
|
+
'Tahoma',
|
|
19
|
+
'Times New Roman',
|
|
20
|
+
'Times',
|
|
21
|
+
'Verdana',
|
|
22
|
+
// MONOSPACE
|
|
23
|
+
'Courier New',
|
|
24
|
+
//'Lucida Console',//???
|
|
25
|
+
//'Monaco',//???
|
|
26
|
+
//'monospace',//???
|
|
27
|
+
];
|
|
28
|
+
|
|
29
|
+
// FS IRAD-988 2020-06-18
|
|
30
|
+
// Preload fonts that are listed by default,
|
|
31
|
+
// so that even if the font is not available locally, load from web.
|
|
32
|
+
export function preLoadFonts() {
|
|
33
|
+
FONT_TYPE_NAMES.forEach((name) => {
|
|
34
|
+
loadAndCacheFont(name);
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
// resolve each font after it is loaded.
|
|
39
|
+
const RESOLVED_FONT_NAMES = new Set([]);
|
|
40
|
+
|
|
41
|
+
function loadAndCacheFont(name) {
|
|
42
|
+
// Cache custom fonts
|
|
43
|
+
RESOLVED_FONT_NAMES.add(name);
|
|
44
|
+
// https://github.com/typekit/webfontloader
|
|
45
|
+
// [FS] IRAD-1061 2020-09-19
|
|
46
|
+
// Now loaded locally, so that it work in closed network as well.
|
|
47
|
+
//WebFontLoader.load({google: {families: [name]}});
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
const FontTypeMarkSpec: MarkSpec = {
|
|
51
|
+
attrs: {
|
|
52
|
+
name: '',
|
|
53
|
+
},
|
|
54
|
+
inline: true,
|
|
55
|
+
group: 'inline',
|
|
56
|
+
parseDOM: [
|
|
57
|
+
{
|
|
58
|
+
style: 'font-family',
|
|
59
|
+
getAttrs: (name) => {
|
|
60
|
+
return {
|
|
61
|
+
name: name ? name.replace(/["']/g, '') : '',
|
|
62
|
+
};
|
|
63
|
+
},
|
|
64
|
+
},
|
|
65
|
+
],
|
|
66
|
+
|
|
67
|
+
toDOM(node: Node) {
|
|
68
|
+
const { name } = node.attrs;
|
|
69
|
+
const attrs = {};
|
|
70
|
+
if (name) {
|
|
71
|
+
if (!RESOLVED_FONT_NAMES.has(name)) {
|
|
72
|
+
loadAndCacheFont(name);
|
|
73
|
+
}
|
|
74
|
+
attrs.style = `font-family: ${name}`;
|
|
75
|
+
}
|
|
76
|
+
return ['span', attrs, 0];
|
|
77
|
+
},
|
|
78
|
+
};
|
|
79
|
+
|
|
80
|
+
export default FontTypeMarkSpec;
|