@modusoperandi/licit 1.4.3 → 1.4.6
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.flow +70 -70
- package/BlockquoteNodeSpec.js.flow +29 -29
- package/BlockquoteToggleCommand.js.flow +56 -56
- package/BookmarkNodeSpec.js.flow +39 -39
- package/BulletListNodeSpec.js.flow +61 -61
- package/CZIProseMirror.js.flow +90 -90
- package/CodeBlockCommand.js.flow +65 -65
- package/CodeBlockNodeSpec.js.flow +24 -24
- package/CodeMarkSpec.js.flow +14 -14
- package/ContentPlaceholderPlugin.js.flow +183 -183
- package/CursorPlaceholderPlugin.js.flow +113 -113
- package/DocLayoutCommand.js.flow +97 -97
- package/DocNodeSpec.js.flow +62 -62
- package/EMMarkSpec.js.flow +39 -39
- package/EditorCommands.js.flow +124 -124
- package/EditorKeyMap.js.flow +173 -173
- package/EditorMarks.js +4 -2
- package/EditorMarks.js.flow +77 -74
- package/EditorNodes.js.flow +55 -55
- 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 +54 -54
- package/FontTypeMarkSpec.js.flow +89 -89
- package/HTMLMutator.js.flow +58 -58
- package/HangingIndentMarkSpec.js +34 -0
- package/HangingIndentMarkSpec.js.flow +30 -0
- package/HardBreakNodeSpec.js.flow +15 -15
- package/HeadingNodeSpec.js.flow +42 -42
- package/HistoryRedoCommand.js.flow +41 -41
- package/HistoryUndoCommand.js.flow +41 -41
- package/HorizontalRuleCommand.js.flow +71 -71
- package/HorizontalRuleNodeSpec.js.flow +39 -39
- package/ImageUploadPlaceholderPlugin.js.flow +187 -187
- package/LICENSE +22 -22
- package/LinkMarkSpec.js +4 -2
- package/LinkMarkSpec.js.flow +38 -37
- package/LinkSetURLCommand.js.flow +129 -129
- package/LinkTooltipPlugin.js +31 -37
- package/LinkTooltipPlugin.js.flow +204 -217
- package/ListItemInsertNewLineCommand.js.flow +76 -76
- package/ListItemMergeCommand.js.flow +197 -197
- package/ListItemNodeSpec.js.flow +52 -52
- package/ListSplitCommand.js.flow +54 -54
- package/ListToggleCommand.js.flow +99 -99
- package/MarkNames.js +2 -1
- package/MarkNames.js.flow +20 -19
- package/MarksClearCommand.js.flow +66 -66
- package/NodeNames.js.flow +23 -23
- package/OrderedListNodeSpec.js.flow +131 -131
- package/OverrideMarkSpec.js.flow +49 -49
- package/ParagraphNodeSpec.js +21 -2
- package/ParagraphNodeSpec.js.flow +233 -215
- package/ParagraphSpacingCommand.js.flow +139 -139
- package/PrintCommand.js.flow +53 -53
- package/SelectionPlaceholderPlugin.js.flow +129 -129
- package/SpacerMarkSpec.js.flow +47 -47
- package/StrikeMarkSpec.js.flow +24 -24
- package/StrongMarkSpec.js.flow +39 -39
- package/StyleView.js.flow +18 -18
- package/TableBackgroundColorCommand.js.flow +79 -79
- package/TableBorderColorCommand.js +5 -3
- package/TableBorderColorCommand.js.flow +108 -106
- package/TableCellColorCommand.js.flow +73 -73
- package/TableCellMenuPlugin.js.flow +129 -129
- package/TableInsertCommand.js.flow +117 -117
- package/TableMergeCellsCommand.js.flow +113 -113
- package/TableNodesSpecs.js.flow +144 -144
- package/TablePlugins.js.flow +14 -14
- package/TableResizePlugin.js.flow +636 -636
- package/TextColorMarkSpec.js.flow +40 -40
- package/TextHighlightMarkSpec.js.flow +47 -47
- package/TextInsertTabSpaceCommand.js +0 -3
- package/TextInsertTabSpaceCommand.js.flow +103 -106
- package/TextNoWrapMarkSpec.js.flow +14 -14
- package/TextNodeSpec.js.flow +7 -7
- package/TextSelectionMarkSpec.js.flow +24 -24
- package/TextSubMarkSpec.js.flow +28 -28
- package/TextSuperMarkSpec.js.flow +28 -28
- package/TextUnderlineMarkSpec.js.flow +24 -24
- package/Types.js.flow +77 -77
- package/WebFontLoader.js.flow +22 -22
- package/blockQuoteInputRule.js.flow +36 -36
- package/bom.xml +8573 -8650
- package/browser.js.flow +7 -7
- package/buildEditorPlugins.js.flow +48 -48
- package/buildInputRules.js.flow +85 -85
- package/client/CollabConnector.js.flow +90 -90
- package/client/EditorConnection.js.flow +324 -324
- package/client/Licit.js +39 -39
- package/client/Licit.js.flow +649 -649
- package/client/Licit.test.js.flow +104 -104
- package/client/Reporter.js.flow +35 -35
- package/client/SimpleConnector.js.flow +61 -61
- package/client/http.js.flow +60 -60
- package/client/licit.css +12 -12
- package/client/throttle.js.flow +27 -27
- package/convertFromDOMElement.js.flow +33 -33
- package/convertFromHTML.js.flow +15 -15
- package/convertFromJSON.js.flow +53 -53
- package/convertToCSSPTValue.js.flow +19 -19
- package/convertToJSON.js.flow +7 -7
- package/createCommand.js.flow +62 -62
- package/createEditorKeyMap.js.flow +87 -87
- package/createEmptyEditorState.js.flow +29 -29
- package/createTableResizingPlugin.js.flow +86 -86
- package/findActionableCell.js.flow +74 -74
- package/findActiveMark.js.flow +32 -32
- package/hyphenize.js.flow +17 -17
- package/index.d.ts +167 -167
- package/index.js.flow +10 -10
- package/insertTable.js.flow +54 -54
- package/isEditorStateEmpty.js.flow +32 -32
- package/isTableNode.js.flow +15 -15
- package/joinDown.js.flow +25 -25
- package/joinListNode.js.flow +55 -55
- package/joinUp.js.flow +37 -37
- package/keymaps.js.flow +175 -175
- package/lookUpElement.js.flow +14 -14
- package/nodeAt.js.flow +12 -12
- package/normalizeHTML.js.flow +80 -80
- package/package.json +152 -152
- package/patchAnchorElements.js.flow +38 -38
- package/patchBreakElements.js.flow +22 -22
- package/patchElementInlineStyles.js.flow +92 -92
- package/patchListElements.js.flow +275 -275
- package/patchMathElements.js.flow +58 -58
- package/patchParagraphElements.js.flow +20 -20
- package/patchStyleElements.js.flow +197 -197
- package/patchTableElements.js.flow +88 -88
- package/rebaseDocWithSteps.js.flow +42 -42
- package/sanitizeURL.js.flow +13 -13
- package/splitListItem.js.flow +191 -191
- package/styles.css +46 -46
- package/toClosestFontPtSize.js.flow +22 -22
- package/toSafeHTMLDocument.js.flow +9 -9
- package/toggleBlockquote.js.flow +101 -101
- package/toggleCodeBlock.js.flow +102 -102
- package/ui/AlertInfo.js.flow +63 -63
- package/ui/BookmarkNodeView.js.flow +64 -64
- package/ui/CommandButton.js.flow +68 -68
- package/ui/CommandMenu.js.flow +74 -74
- package/ui/CommandMenuButton.js.flow +128 -128
- package/ui/CustomEditorView.js.flow +29 -29
- package/ui/CustomMenu.js.flow +14 -14
- package/ui/CustomMenuItem.js.flow +35 -35
- package/ui/CustomNodeView.js.flow +207 -207
- package/ui/CustomRadioButton.js.flow +63 -63
- package/ui/DocLayoutEditor.js.flow +130 -130
- package/ui/Editor.js.flow +281 -281
- package/ui/EditorFrameset.js.flow +79 -79
- package/ui/EditorToolbar.js.flow +197 -197
- package/ui/EditorToolbarConfig.js.flow +162 -162
- package/ui/FontSizeCommandMenuButton.js.flow +66 -66
- package/ui/FontTypeCommandMenuButton.js.flow +60 -60
- package/ui/Frag.js.flow +11 -11
- package/ui/Icon.js.flow +82 -82
- package/ui/ImageInlineEditor.js.flow +66 -66
- package/ui/KeyCodes.js.flow +12 -12
- package/ui/LinkTooltip.js.flow +51 -51
- package/ui/LinkURLEditor.js.flow +227 -227
- package/ui/ListItemNodeView.js.flow +101 -101
- package/ui/ListTypeButton.js.flow +121 -121
- package/ui/ListTypeCommandButton.js.flow +85 -85
- package/ui/ListTypeMenu.js.flow +78 -78
- package/ui/LoadingIndicator.js.flow +19 -19
- package/ui/PasteMenu.js.flow +52 -52
- package/ui/ResizeObserver.js.flow +105 -105
- package/ui/RichTextEditor.js.flow +133 -133
- package/ui/SelectionObserver.js.flow +134 -134
- package/ui/TableCellMenu.js.flow +49 -49
- package/ui/TableGridSizeEditor.js.flow +185 -185
- package/ui/TableNodeView.js.flow +36 -36
- package/ui/bindScrollHandler.js.flow +46 -46
- package/ui/canUseCSSFont.js.flow +42 -42
- 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 +239 -216
- package/ui/czi-form.css +201 -201
- 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 -121
- package/ui/czi-indent.css +137 -137
- package/ui/czi-inline-editor.css +20 -20
- package/ui/czi-link-tooltip.css +112 -112
- package/ui/czi-list.css +406 -406
- package/ui/czi-loading-indicator.css +66 -66
- package/ui/czi-math-view.css +62 -62
- package/ui/czi-selection-placeholder.css +24 -24
- package/ui/czi-table-cell-menu.css +16 -16
- package/ui/czi-table-grid-size-editor.css +37 -37
- package/ui/czi-table.css +89 -89
- package/ui/czi-vars.css +47 -45
- package/ui/findActiveFontSize.js.flow +55 -55
- package/ui/findActiveFontType.js.flow +35 -35
- package/ui/fonts.css +460 -460
- package/ui/handleEditorDrop.js.flow +28 -28
- package/ui/handleEditorKeyDown.js.flow +39 -39
- 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.flow +40 -40
- package/ui/isElementFullyVisible.js.flow +14 -14
- package/ui/isOffline.js.flow +8 -8
- package/ui/isReactClass.js.flow +12 -12
- package/ui/listType.css +21 -21
- package/ui/resolveImage.js.flow +121 -121
- package/ui/toCSSColor.js.flow +51 -51
- package/ui/toCSSLineSpacing.js.flow +53 -53
- package/ui/toHexColor.js.flow +26 -26
- package/ui/uuid.js.flow +9 -9
- package/uuid.js.flow +9 -9
|
@@ -1,92 +1,92 @@
|
|
|
1
|
-
// @flow
|
|
2
|
-
|
|
3
|
-
import hyphenize from './hyphenize.js';
|
|
4
|
-
|
|
5
|
-
const BLOCK_TAG_SELECTOR = 'p,h1,h2,h3,h4,h5,h6,li'.replace(
|
|
6
|
-
/\w+/g,
|
|
7
|
-
(m) => `${m}[style]`
|
|
8
|
-
);
|
|
9
|
-
|
|
10
|
-
export default function patchElementInlineStyles(doc: Document): void {
|
|
11
|
-
// Ensure that inline-styles can be correctly translated as inline marks.
|
|
12
|
-
// Workaround to patch inline styles added to block tags.
|
|
13
|
-
const bEls = Array.from(doc.querySelectorAll(BLOCK_TAG_SELECTOR));
|
|
14
|
-
bEls.forEach(patchBlockElement);
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
const NODE_TYPE_TEXT = 3;
|
|
18
|
-
const NODE_TYPE_ELEMENT = 1;
|
|
19
|
-
const INLINE_STYLE_NAMES = [
|
|
20
|
-
'backgroundColor',
|
|
21
|
-
'color',
|
|
22
|
-
'fontFamily',
|
|
23
|
-
'fontSize',
|
|
24
|
-
'fontStyle',
|
|
25
|
-
'fontWeight',
|
|
26
|
-
'textDecoration',
|
|
27
|
-
'textIndent',
|
|
28
|
-
];
|
|
29
|
-
|
|
30
|
-
const INLINE_ELEMENT_NODE_NAMES = new Set([
|
|
31
|
-
'A',
|
|
32
|
-
'B',
|
|
33
|
-
'EM',
|
|
34
|
-
'I',
|
|
35
|
-
'SPAN',
|
|
36
|
-
'STRONG',
|
|
37
|
-
'U',
|
|
38
|
-
]);
|
|
39
|
-
|
|
40
|
-
function patchBlockElement(el: HTMLElement): void {
|
|
41
|
-
INLINE_STYLE_NAMES.forEach((name) => patchBlockElementStyle(el, name));
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
// Move the specified inline style of the element to its child nodes. This
|
|
45
|
-
// assumes that its child nodes are inline elements.
|
|
46
|
-
function patchBlockElementStyle(
|
|
47
|
-
el: HTMLElement,
|
|
48
|
-
inlineStyleName: string
|
|
49
|
-
): void {
|
|
50
|
-
const element: any = el;
|
|
51
|
-
const elementStyle = element.style;
|
|
52
|
-
const value = elementStyle?.[inlineStyleName];
|
|
53
|
-
|
|
54
|
-
if (inlineStyleName === 'textIndent' && value) {
|
|
55
|
-
// This is the workaround to fix the issue that people with mix both
|
|
56
|
-
// text-indent and margin-left together.
|
|
57
|
-
// For instance, `margin-left: -100px` and `text-indent: 100px` shall
|
|
58
|
-
// offset each other.
|
|
59
|
-
const marginLeft = elementStyle.marginLeft || '';
|
|
60
|
-
if (value === '-' + marginLeft || marginLeft === '-' + value) {
|
|
61
|
-
elementStyle.marginLeft = '';
|
|
62
|
-
elementStyle.textIndent = '';
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
if (!value) {
|
|
67
|
-
return;
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
// Remove the style.
|
|
71
|
-
elementStyle[inlineStyleName] = '';
|
|
72
|
-
|
|
73
|
-
const childNodes = Array.from(element.childNodes);
|
|
74
|
-
childNodes.forEach((node) => {
|
|
75
|
-
const { nodeType, style, nodeName, ownerDocument, parentElement } = node;
|
|
76
|
-
|
|
77
|
-
if (nodeType === NODE_TYPE_ELEMENT) {
|
|
78
|
-
if (INLINE_ELEMENT_NODE_NAMES.has(nodeName)) {
|
|
79
|
-
const cssText =
|
|
80
|
-
`${hyphenize(inlineStyleName)}: ${value};` + style.cssText;
|
|
81
|
-
style.cssText = cssText;
|
|
82
|
-
}
|
|
83
|
-
} else if (nodeType === NODE_TYPE_TEXT) {
|
|
84
|
-
if (ownerDocument && parentElement) {
|
|
85
|
-
const span: any = ownerDocument.createElement('span');
|
|
86
|
-
span.style[inlineStyleName] = value;
|
|
87
|
-
parentElement.insertBefore(span, node);
|
|
88
|
-
span.appendChild(node);
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
});
|
|
92
|
-
}
|
|
1
|
+
// @flow
|
|
2
|
+
|
|
3
|
+
import hyphenize from './hyphenize.js';
|
|
4
|
+
|
|
5
|
+
const BLOCK_TAG_SELECTOR = 'p,h1,h2,h3,h4,h5,h6,li'.replace(
|
|
6
|
+
/\w+/g,
|
|
7
|
+
(m) => `${m}[style]`
|
|
8
|
+
);
|
|
9
|
+
|
|
10
|
+
export default function patchElementInlineStyles(doc: Document): void {
|
|
11
|
+
// Ensure that inline-styles can be correctly translated as inline marks.
|
|
12
|
+
// Workaround to patch inline styles added to block tags.
|
|
13
|
+
const bEls = Array.from(doc.querySelectorAll(BLOCK_TAG_SELECTOR));
|
|
14
|
+
bEls.forEach(patchBlockElement);
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
const NODE_TYPE_TEXT = 3;
|
|
18
|
+
const NODE_TYPE_ELEMENT = 1;
|
|
19
|
+
const INLINE_STYLE_NAMES = [
|
|
20
|
+
'backgroundColor',
|
|
21
|
+
'color',
|
|
22
|
+
'fontFamily',
|
|
23
|
+
'fontSize',
|
|
24
|
+
'fontStyle',
|
|
25
|
+
'fontWeight',
|
|
26
|
+
'textDecoration',
|
|
27
|
+
'textIndent',
|
|
28
|
+
];
|
|
29
|
+
|
|
30
|
+
const INLINE_ELEMENT_NODE_NAMES = new Set([
|
|
31
|
+
'A',
|
|
32
|
+
'B',
|
|
33
|
+
'EM',
|
|
34
|
+
'I',
|
|
35
|
+
'SPAN',
|
|
36
|
+
'STRONG',
|
|
37
|
+
'U',
|
|
38
|
+
]);
|
|
39
|
+
|
|
40
|
+
function patchBlockElement(el: HTMLElement): void {
|
|
41
|
+
INLINE_STYLE_NAMES.forEach((name) => patchBlockElementStyle(el, name));
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
// Move the specified inline style of the element to its child nodes. This
|
|
45
|
+
// assumes that its child nodes are inline elements.
|
|
46
|
+
function patchBlockElementStyle(
|
|
47
|
+
el: HTMLElement,
|
|
48
|
+
inlineStyleName: string
|
|
49
|
+
): void {
|
|
50
|
+
const element: any = el;
|
|
51
|
+
const elementStyle = element.style;
|
|
52
|
+
const value = elementStyle?.[inlineStyleName];
|
|
53
|
+
|
|
54
|
+
if (inlineStyleName === 'textIndent' && value) {
|
|
55
|
+
// This is the workaround to fix the issue that people with mix both
|
|
56
|
+
// text-indent and margin-left together.
|
|
57
|
+
// For instance, `margin-left: -100px` and `text-indent: 100px` shall
|
|
58
|
+
// offset each other.
|
|
59
|
+
const marginLeft = elementStyle.marginLeft || '';
|
|
60
|
+
if (value === '-' + marginLeft || marginLeft === '-' + value) {
|
|
61
|
+
elementStyle.marginLeft = '';
|
|
62
|
+
elementStyle.textIndent = '';
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
if (!value) {
|
|
67
|
+
return;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
// Remove the style.
|
|
71
|
+
elementStyle[inlineStyleName] = '';
|
|
72
|
+
|
|
73
|
+
const childNodes = Array.from(element.childNodes);
|
|
74
|
+
childNodes.forEach((node) => {
|
|
75
|
+
const { nodeType, style, nodeName, ownerDocument, parentElement } = node;
|
|
76
|
+
|
|
77
|
+
if (nodeType === NODE_TYPE_ELEMENT) {
|
|
78
|
+
if (INLINE_ELEMENT_NODE_NAMES.has(nodeName)) {
|
|
79
|
+
const cssText =
|
|
80
|
+
`${hyphenize(inlineStyleName)}: ${value};` + style.cssText;
|
|
81
|
+
style.cssText = cssText;
|
|
82
|
+
}
|
|
83
|
+
} else if (nodeType === NODE_TYPE_TEXT) {
|
|
84
|
+
if (ownerDocument && parentElement) {
|
|
85
|
+
const span: any = ownerDocument.createElement('span');
|
|
86
|
+
span.style[inlineStyleName] = value;
|
|
87
|
+
parentElement.insertBefore(span, node);
|
|
88
|
+
span.appendChild(node);
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
});
|
|
92
|
+
}
|