@modusoperandi/licit 1.0.3 → 1.0.5
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 +7 -8
- package/BlockquoteInsertNewLineCommand.js.flow +77 -77
- package/BlockquoteNodeSpec.js +1 -1
- package/BlockquoteNodeSpec.js.flow +30 -30
- package/BlockquoteToggleCommand.js +8 -9
- package/BlockquoteToggleCommand.js.flow +56 -56
- package/BookmarkNodeSpec.js +1 -1
- package/BookmarkNodeSpec.js.flow +39 -39
- package/BulletListNodeSpec.js.flow +61 -61
- package/CZIProseMirror.js.flow +90 -90
- package/CodeBlockCommand.js +8 -9
- package/CodeBlockCommand.js.flow +65 -65
- package/CodeBlockNodeSpec.js.flow +24 -24
- package/CodeMarkSpec.js.flow +14 -14
- package/ContentPlaceholderPlugin.js +3 -4
- package/ContentPlaceholderPlugin.js.flow +187 -187
- package/CursorPlaceholderPlugin.js +4 -4
- package/CursorPlaceholderPlugin.js.flow +115 -115
- package/DocLayoutCommand.js +9 -10
- package/DocLayoutCommand.js.flow +99 -99
- package/DocNodeSpec.js.flow +64 -64
- package/EMMarkSpec.js.flow +14 -14
- package/EditorCommands.js.flow +126 -126
- package/EditorKeyMap.js.flow +187 -187
- package/EditorMarks.js +1 -1
- package/EditorMarks.js.flow +71 -71
- package/EditorNodes.js +1 -1
- package/EditorNodes.js.flow +59 -59
- package/EditorPageLayoutPlugin.js +2 -2
- 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.flow +80 -80
- package/HTMLMutator.js +2 -3
- package/HTMLMutator.js.flow +59 -59
- package/HardBreakNodeSpec.js.flow +15 -15
- package/HeadingNodeSpec.js +1 -1
- package/HeadingNodeSpec.js.flow +52 -52
- package/HistoryRedoCommand.js +7 -8
- package/HistoryRedoCommand.js.flow +41 -41
- package/HistoryUndoCommand.js +7 -8
- package/HistoryUndoCommand.js.flow +41 -41
- package/HorizontalRuleCommand.js +7 -8
- package/HorizontalRuleCommand.js.flow +71 -71
- package/HorizontalRuleNodeSpec.js.flow +39 -39
- package/ImageUploadPlaceholderPlugin.js +2 -2
- package/ImageUploadPlaceholderPlugin.js.flow +192 -192
- package/LinkMarkSpec.js.flow +32 -32
- package/LinkSetURLCommand.js +8 -9
- package/LinkSetURLCommand.js.flow +117 -117
- package/LinkTooltipPlugin.js +3 -4
- package/LinkTooltipPlugin.js.flow +190 -190
- package/ListItemInsertNewLineCommand.js +7 -8
- package/ListItemInsertNewLineCommand.js.flow +77 -77
- package/ListItemMergeCommand.js +9 -10
- package/ListItemMergeCommand.js.flow +199 -199
- package/ListItemNodeSpec.js.flow +52 -52
- package/ListSplitCommand.js +7 -8
- package/ListSplitCommand.js.flow +54 -54
- package/ListToggleCommand.js +11 -12
- package/ListToggleCommand.js.flow +99 -99
- package/MarkNames.js.flow +18 -18
- package/MarksClearCommand.js +9 -10
- package/MarksClearCommand.js.flow +65 -65
- package/MathEditCommand.js +8 -9
- package/MathEditCommand.js.flow +120 -120
- package/MathNodeSpec.js.flow +46 -46
- package/NodeNames.js.flow +23 -23
- package/OrderedListNodeSpec.js +1 -1
- package/OrderedListNodeSpec.js.flow +132 -132
- package/ParagraphNodeSpec.js.flow +156 -156
- package/ParagraphSpacingCommand.js +9 -10
- package/ParagraphSpacingCommand.js.flow +144 -144
- package/PrintCommand.js +9 -10
- package/PrintCommand.js.flow +53 -53
- package/SelectionPlaceholderPlugin.js +4 -4
- package/SelectionPlaceholderPlugin.js.flow +131 -131
- package/SpacerMarkSpec.js +1 -1
- package/SpacerMarkSpec.js.flow +47 -47
- package/StrikeMarkSpec.js.flow +21 -21
- package/StrongMarkSpec.js.flow +25 -25
- package/StyleView.js +2 -3
- package/StyleView.js.flow +19 -19
- package/TableBackgroundColorCommand.js +25 -12
- package/TableBackgroundColorCommand.js.flow +83 -75
- package/TableBorderColorCommand.js +25 -12
- package/TableBorderColorCommand.js.flow +86 -75
- package/TableCellColorCommand.js +11 -11
- package/TableCellColorCommand.js.flow +75 -75
- package/TableCellMenuPlugin.js +3 -4
- package/TableCellMenuPlugin.js.flow +132 -132
- package/TableInsertCommand.js +9 -10
- package/TableInsertCommand.js.flow +120 -120
- package/TableMergeCellsCommand.js +7 -8
- package/TableMergeCellsCommand.js.flow +112 -112
- package/TableNodesSpecs.js.flow +78 -78
- package/TablePlugins.js.flow +14 -14
- package/TableResizePlugin.js +6 -6
- package/TableResizePlugin.js.flow +631 -632
- package/TextColorMarkSpec.js.flow +35 -35
- package/TextHighlightMarkSpec.js.flow +38 -38
- package/TextInsertTabSpaceCommand.js +7 -8
- 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 +5 -0
- package/Types.js.flow +80 -75
- package/WebFontLoader.js +2 -3
- package/WebFontLoader.js.flow +22 -22
- package/blockQuoteInputRule.js.flow +36 -36
- package/bom.xml +8533 -8895
- package/browser.js.flow +7 -7
- package/buildEditorPlugins.js +2 -3
- package/buildEditorPlugins.js.flow +49 -49
- package/buildInputRules.js.flow +81 -81
- package/client/CollabConnector.js +12 -12
- package/client/CollabConnector.js.flow +90 -90
- package/client/EditorConnection.js +2 -3
- package/client/EditorConnection.js.flow +323 -323
- package/client/Licit.js +59 -60
- package/client/Licit.js.flow +643 -643
- package/client/Licit.test.js +2 -2
- package/client/Licit.test.js.flow +98 -98
- package/client/Reporter.js +2 -3
- package/client/Reporter.js.flow +37 -37
- package/client/SimpleConnector.js +1 -1
- package/client/SimpleConnector.js.flow +61 -61
- package/client/http.js.flow +70 -70
- package/client/licit.css +12 -12
- package/client/throttle.js.flow +27 -27
- package/convertFromDOMElement.js.flow +36 -36
- package/convertFromHTML.js.flow +17 -17
- package/convertFromJSON.js.flow +56 -56
- package/convertToCSSPTValue.js.flow +22 -22
- package/convertToJSON.js.flow +7 -7
- package/createCommand.js +8 -9
- package/createCommand.js.flow +62 -62
- package/createEditorKeyMap.js +1 -1
- package/createEditorKeyMap.js.flow +94 -94
- package/createEmptyEditorState.js.flow +31 -31
- 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 +165 -165
- package/index.js.flow +10 -10
- package/insertTable.js.flow +56 -56
- package/isEditorStateEmpty.js.flow +32 -32
- package/isTableNode.js.flow +15 -15
- package/joinDown.js.flow +27 -27
- package/joinListNode.js.flow +55 -55
- package/joinUp.js.flow +39 -39
- package/keymaps.js.flow +185 -185
- package/lookUpElement.js.flow +14 -14
- package/nodeAt.js.flow +12 -12
- package/normalizeHTML.js.flow +78 -78
- package/package.json +156 -155
- package/patchAnchorElements.js.flow +38 -38
- package/patchBreakElements.js.flow +22 -22
- package/patchElementInlineStyles.js.flow +92 -92
- package/patchListElements.js.flow +276 -276
- package/patchMathElements.js.flow +60 -60
- package/patchParagraphElements.js.flow +20 -20
- package/patchStyleElements.js.flow +196 -196
- package/patchTableElements.js.flow +89 -89
- package/rebaseDocWithSteps.js.flow +42 -42
- package/sanitizeURL.js.flow +13 -13
- package/splitListItem.js +1 -1
- 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.flow +108 -108
- package/toggleCodeBlock.js.flow +102 -102
- package/ui/AlertInfo.js +7 -8
- package/ui/AlertInfo.js.flow +64 -64
- package/ui/BookmarkNodeView.js +8 -10
- package/ui/BookmarkNodeView.js.flow +66 -66
- package/ui/CommandButton.js +7 -8
- package/ui/CommandButton.js.flow +68 -68
- package/ui/CommandMenu.js +8 -9
- package/ui/CommandMenu.js.flow +75 -75
- package/ui/CommandMenuButton.js +13 -14
- package/ui/CommandMenuButton.js.flow +131 -131
- package/ui/CustomEditorView.js +8 -9
- package/ui/CustomEditorView.js.flow +28 -28
- package/ui/CustomMenu.js +3 -4
- package/ui/CustomMenu.js.flow +17 -17
- package/ui/CustomMenuItem.js +6 -8
- package/ui/CustomMenuItem.js.flow +36 -36
- package/ui/CustomNodeView.js +2 -3
- package/ui/CustomNodeView.js.flow +200 -200
- package/ui/CustomRadioButton.js +6 -7
- package/ui/CustomRadioButton.js.flow +65 -65
- package/ui/DocLayoutEditor.js +9 -10
- package/ui/DocLayoutEditor.js.flow +146 -146
- package/ui/Editor.js +15 -16
- package/ui/Editor.js.flow +288 -288
- package/ui/EditorFrameset.js +5 -6
- package/ui/EditorFrameset.js.flow +81 -81
- package/ui/EditorToolbar.js +13 -14
- package/ui/EditorToolbar.js.flow +218 -218
- package/ui/EditorToolbarConfig.js.flow +164 -164
- package/ui/FontSizeCommandMenuButton.js +5 -6
- package/ui/FontSizeCommandMenuButton.js.flow +66 -66
- package/ui/FontTypeCommandMenuButton.js +5 -6
- package/ui/FontTypeCommandMenuButton.js.flow +61 -61
- package/ui/Frag.js +3 -4
- package/ui/Frag.js.flow +13 -13
- package/ui/Icon.js +9 -12
- package/ui/Icon.js.flow +89 -89
- package/ui/ImageInlineEditor.js +6 -7
- package/ui/ImageInlineEditor.js.flow +67 -67
- package/ui/KeyCodes.js.flow +12 -12
- package/ui/LinkTooltip.js +9 -10
- package/ui/LinkTooltip.js.flow +85 -85
- package/ui/LinkURLEditor.js +9 -10
- package/ui/LinkURLEditor.js.flow +117 -117
- package/ui/ListItemNodeView.js +2 -3
- package/ui/ListItemNodeView.js.flow +98 -98
- package/ui/ListTypeButton.js +13 -14
- package/ui/ListTypeButton.js.flow +131 -131
- package/ui/ListTypeCommandButton.js +5 -6
- package/ui/ListTypeCommandButton.js.flow +85 -85
- package/ui/ListTypeMenu.js +11 -12
- package/ui/ListTypeMenu.js.flow +70 -70
- package/ui/LoadingIndicator.js +3 -4
- package/ui/LoadingIndicator.js.flow +20 -20
- package/ui/MathEditor.js +10 -11
- package/ui/MathEditor.js.flow +78 -78
- package/ui/MathInlineEditor.js +8 -9
- package/ui/MathInlineEditor.js.flow +102 -102
- package/ui/MathNodeView.js +14 -16
- package/ui/MathNodeView.js.flow +186 -186
- package/ui/PasteMenu.js +10 -11
- package/ui/PasteMenu.js.flow +57 -57
- package/ui/ResizeObserver.js.flow +106 -106
- package/ui/RichTextEditor.js +9 -10
- package/ui/RichTextEditor.js.flow +133 -133
- package/ui/SelectionObserver.js +2 -3
- package/ui/SelectionObserver.js.flow +134 -134
- package/ui/TableCellMenu.js +6 -7
- package/ui/TableCellMenu.js.flow +51 -51
- package/ui/TableGridSizeEditor.js +19 -21
- package/ui/TableGridSizeEditor.js.flow +184 -184
- package/ui/TableNodeView.js +3 -4
- package/ui/TableNodeView.js.flow +25 -25
- package/ui/bindScrollHandler.js.flow +46 -46
- package/ui/canUseCSSFont.js.flow +43 -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 +220 -220
- package/ui/czi-form.css +107 -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 +125 -125
- package/ui/czi-indent.css +137 -137
- package/ui/czi-inline-editor.css +20 -20
- package/ui/czi-link-tooltip.css +71 -71
- package/ui/czi-list.css +410 -410
- package/ui/czi-loading-indicator.css +111 -111
- package/ui/czi-math-view.css +62 -62
- package/ui/czi-selection-placeholder.css +24 -24
- package/ui/czi-table-cell-menu.css +14 -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.flow +58 -58
- package/ui/findActiveFontType.js.flow +38 -38
- 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 +42 -42
- package/ui/isElementFullyVisible.js.flow +26 -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 +15 -17
- package/ui/mathquill-editor/MathQuillEditor.js.flow +159 -159
- package/ui/mathquill-editor/MathQuillEditorSymbols.js.flow +483 -483
- package/ui/mathquill-editor/MathQuillEditorSymbolsPanel.js +6 -7
- 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.flow +24 -24
- package/ui/renderLaTeXAsHTML.js +1 -1
- package/ui/renderLaTeXAsHTML.js.flow +46 -46
- package/ui/resolveImage.js +1 -1
- package/ui/resolveImage.js.flow +123 -123
- package/ui/toCSSColor.js.flow +51 -51
- package/ui/toCSSLineSpacing.js.flow +55 -55
- package/ui/toHexColor.js.flow +26 -26
- package/ui/uuid.js.flow +9 -9
- package/uuid.js.flow +9 -9
package/ui/LinkURLEditor.js.flow
CHANGED
|
@@ -1,117 +1,117 @@
|
|
|
1
|
-
// @flow
|
|
2
|
-
|
|
3
|
-
import * as React from 'react';
|
|
4
|
-
import PropTypes from 'prop-types';
|
|
5
|
-
|
|
6
|
-
import sanitizeURL from '../sanitizeURL.js';
|
|
7
|
-
import {
|
|
8
|
-
CustomButton
|
|
9
|
-
} from '@modusoperandi/licit-ui-commands';
|
|
10
|
-
import {
|
|
11
|
-
ENTER
|
|
12
|
-
} from './KeyCodes.js';
|
|
13
|
-
import {
|
|
14
|
-
preventEventDefault
|
|
15
|
-
} from '@modusoperandi/licit-ui-commands';
|
|
16
|
-
|
|
17
|
-
import './czi-form.css';
|
|
18
|
-
import './czi-image-url-editor.css';
|
|
19
|
-
|
|
20
|
-
const BAD_CHARACTER_PATTER = /\s/;
|
|
21
|
-
|
|
22
|
-
class LinkURLEditor extends React.PureComponent<any, any> {
|
|
23
|
-
// [FS] IRAD-1005 2020-07-07
|
|
24
|
-
// Upgrade outdated packages.
|
|
25
|
-
// To take care of the property type declaration.
|
|
26
|
-
static propsTypes = {
|
|
27
|
-
href: PropTypes.string,
|
|
28
|
-
close: function (props: any, propName: string) {
|
|
29
|
-
const fn = props[propName];
|
|
30
|
-
if (
|
|
31
|
-
!fn.prototype ||
|
|
32
|
-
(typeof fn.prototype.constructor !== 'function' &&
|
|
33
|
-
fn.prototype.constructor.length !== 1)
|
|
34
|
-
) {
|
|
35
|
-
return new Error(
|
|
36
|
-
propName + 'must be a function with 1 arg of type string'
|
|
37
|
-
);
|
|
38
|
-
}
|
|
39
|
-
return null;
|
|
40
|
-
},
|
|
41
|
-
};
|
|
42
|
-
|
|
43
|
-
state = {
|
|
44
|
-
url: this.props.href,
|
|
45
|
-
};
|
|
46
|
-
|
|
47
|
-
render(): React.Element<any> {
|
|
48
|
-
const { href } = this.props;
|
|
49
|
-
const { url } = this.state;
|
|
50
|
-
|
|
51
|
-
const error = url ? BAD_CHARACTER_PATTER.test(url) : false;
|
|
52
|
-
|
|
53
|
-
let label = 'Apply';
|
|
54
|
-
let disabled = !!error;
|
|
55
|
-
if (href) {
|
|
56
|
-
label = url ? 'Apply' : 'Remove';
|
|
57
|
-
disabled = error;
|
|
58
|
-
} else {
|
|
59
|
-
disabled = error || !url;
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
return (
|
|
63
|
-
<div className="czi-image-url-editor">
|
|
64
|
-
<form className="czi-form" onSubmit={preventEventDefault}>
|
|
65
|
-
<fieldset>
|
|
66
|
-
<legend>Add a Link</legend>
|
|
67
|
-
<input
|
|
68
|
-
autoFocus={true}
|
|
69
|
-
onChange={this._onURLChange}
|
|
70
|
-
onKeyDown={this._onKeyDown}
|
|
71
|
-
placeholder="Paste a URL"
|
|
72
|
-
spellCheck={false}
|
|
73
|
-
type="text"
|
|
74
|
-
value={url || ''}
|
|
75
|
-
/>
|
|
76
|
-
</fieldset>
|
|
77
|
-
<div className="czi-form-buttons">
|
|
78
|
-
<CustomButton label="Cancel" onClick={this._cancel} />
|
|
79
|
-
<CustomButton
|
|
80
|
-
active={true}
|
|
81
|
-
disabled={disabled}
|
|
82
|
-
label={label}
|
|
83
|
-
onClick={this._apply}
|
|
84
|
-
/>
|
|
85
|
-
</div>
|
|
86
|
-
</form>
|
|
87
|
-
</div>
|
|
88
|
-
);
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
_onKeyDown = (e: any) => {
|
|
92
|
-
if (e.keyCode === ENTER) {
|
|
93
|
-
e.preventDefault();
|
|
94
|
-
this._apply();
|
|
95
|
-
}
|
|
96
|
-
};
|
|
97
|
-
|
|
98
|
-
_onURLChange = (e: SyntheticInputEvent<>) => {
|
|
99
|
-
const url = e.target.value;
|
|
100
|
-
this.setState({
|
|
101
|
-
url,
|
|
102
|
-
});
|
|
103
|
-
};
|
|
104
|
-
|
|
105
|
-
_cancel = (): void => {
|
|
106
|
-
this.props.close();
|
|
107
|
-
};
|
|
108
|
-
|
|
109
|
-
_apply = (): void => {
|
|
110
|
-
const { url } = this.state;
|
|
111
|
-
if (url && !BAD_CHARACTER_PATTER.test(url)) {
|
|
112
|
-
this.props.close(sanitizeURL(url));
|
|
113
|
-
}
|
|
114
|
-
};
|
|
115
|
-
}
|
|
116
|
-
|
|
117
|
-
export default LinkURLEditor;
|
|
1
|
+
// @flow
|
|
2
|
+
|
|
3
|
+
import * as React from 'react';
|
|
4
|
+
import PropTypes from 'prop-types';
|
|
5
|
+
|
|
6
|
+
import sanitizeURL from '../sanitizeURL.js';
|
|
7
|
+
import {
|
|
8
|
+
CustomButton
|
|
9
|
+
} from '@modusoperandi/licit-ui-commands';
|
|
10
|
+
import {
|
|
11
|
+
ENTER
|
|
12
|
+
} from './KeyCodes.js';
|
|
13
|
+
import {
|
|
14
|
+
preventEventDefault
|
|
15
|
+
} from '@modusoperandi/licit-ui-commands';
|
|
16
|
+
|
|
17
|
+
import './czi-form.css';
|
|
18
|
+
import './czi-image-url-editor.css';
|
|
19
|
+
|
|
20
|
+
const BAD_CHARACTER_PATTER = /\s/;
|
|
21
|
+
|
|
22
|
+
class LinkURLEditor extends React.PureComponent<any, any> {
|
|
23
|
+
// [FS] IRAD-1005 2020-07-07
|
|
24
|
+
// Upgrade outdated packages.
|
|
25
|
+
// To take care of the property type declaration.
|
|
26
|
+
static propsTypes = {
|
|
27
|
+
href: PropTypes.string,
|
|
28
|
+
close: function (props: any, propName: string) {
|
|
29
|
+
const fn = props[propName];
|
|
30
|
+
if (
|
|
31
|
+
!fn.prototype ||
|
|
32
|
+
(typeof fn.prototype.constructor !== 'function' &&
|
|
33
|
+
fn.prototype.constructor.length !== 1)
|
|
34
|
+
) {
|
|
35
|
+
return new Error(
|
|
36
|
+
propName + 'must be a function with 1 arg of type string'
|
|
37
|
+
);
|
|
38
|
+
}
|
|
39
|
+
return null;
|
|
40
|
+
},
|
|
41
|
+
};
|
|
42
|
+
|
|
43
|
+
state = {
|
|
44
|
+
url: this.props.href,
|
|
45
|
+
};
|
|
46
|
+
|
|
47
|
+
render(): React.Element<any> {
|
|
48
|
+
const { href } = this.props;
|
|
49
|
+
const { url } = this.state;
|
|
50
|
+
|
|
51
|
+
const error = url ? BAD_CHARACTER_PATTER.test(url) : false;
|
|
52
|
+
|
|
53
|
+
let label = 'Apply';
|
|
54
|
+
let disabled = !!error;
|
|
55
|
+
if (href) {
|
|
56
|
+
label = url ? 'Apply' : 'Remove';
|
|
57
|
+
disabled = error;
|
|
58
|
+
} else {
|
|
59
|
+
disabled = error || !url;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
return (
|
|
63
|
+
<div className="czi-image-url-editor">
|
|
64
|
+
<form className="czi-form" onSubmit={preventEventDefault}>
|
|
65
|
+
<fieldset>
|
|
66
|
+
<legend>Add a Link</legend>
|
|
67
|
+
<input
|
|
68
|
+
autoFocus={true}
|
|
69
|
+
onChange={this._onURLChange}
|
|
70
|
+
onKeyDown={this._onKeyDown}
|
|
71
|
+
placeholder="Paste a URL"
|
|
72
|
+
spellCheck={false}
|
|
73
|
+
type="text"
|
|
74
|
+
value={url || ''}
|
|
75
|
+
/>
|
|
76
|
+
</fieldset>
|
|
77
|
+
<div className="czi-form-buttons">
|
|
78
|
+
<CustomButton label="Cancel" onClick={this._cancel} />
|
|
79
|
+
<CustomButton
|
|
80
|
+
active={true}
|
|
81
|
+
disabled={disabled}
|
|
82
|
+
label={label}
|
|
83
|
+
onClick={this._apply}
|
|
84
|
+
/>
|
|
85
|
+
</div>
|
|
86
|
+
</form>
|
|
87
|
+
</div>
|
|
88
|
+
);
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
_onKeyDown = (e: any) => {
|
|
92
|
+
if (e.keyCode === ENTER) {
|
|
93
|
+
e.preventDefault();
|
|
94
|
+
this._apply();
|
|
95
|
+
}
|
|
96
|
+
};
|
|
97
|
+
|
|
98
|
+
_onURLChange = (e: SyntheticInputEvent<>) => {
|
|
99
|
+
const url = e.target.value;
|
|
100
|
+
this.setState({
|
|
101
|
+
url,
|
|
102
|
+
});
|
|
103
|
+
};
|
|
104
|
+
|
|
105
|
+
_cancel = (): void => {
|
|
106
|
+
this.props.close();
|
|
107
|
+
};
|
|
108
|
+
|
|
109
|
+
_apply = (): void => {
|
|
110
|
+
const { url } = this.state;
|
|
111
|
+
if (url && !BAD_CHARACTER_PATTER.test(url)) {
|
|
112
|
+
this.props.close(sanitizeURL(url));
|
|
113
|
+
}
|
|
114
|
+
};
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
export default LinkURLEditor;
|
package/ui/ListItemNodeView.js
CHANGED
|
@@ -3,7 +3,7 @@ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Cons
|
|
|
3
3
|
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }
|
|
4
4
|
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
|
|
5
5
|
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
6
|
-
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i :
|
|
6
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
|
|
7
7
|
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); }
|
|
8
8
|
import { Node } from 'prosemirror-model';
|
|
9
9
|
import { Decoration, EditorView } from 'prosemirror-view';
|
|
@@ -28,7 +28,7 @@ var ListItemNodeView = /*#__PURE__*/function () {
|
|
|
28
28
|
}
|
|
29
29
|
|
|
30
30
|
// This implements the `NodeView` interface.
|
|
31
|
-
_createClass(ListItemNodeView, [{
|
|
31
|
+
return _createClass(ListItemNodeView, [{
|
|
32
32
|
key: "update",
|
|
33
33
|
value: function update(node, decorations) {
|
|
34
34
|
return this._updateDOM(node);
|
|
@@ -87,6 +87,5 @@ var ListItemNodeView = /*#__PURE__*/function () {
|
|
|
87
87
|
return true;
|
|
88
88
|
}
|
|
89
89
|
}]);
|
|
90
|
-
return ListItemNodeView;
|
|
91
90
|
}();
|
|
92
91
|
export default ListItemNodeView;
|
|
@@ -1,98 +1,98 @@
|
|
|
1
|
-
// @flow
|
|
2
|
-
|
|
3
|
-
import { Node } from 'prosemirror-model';
|
|
4
|
-
import { Decoration, EditorView } from 'prosemirror-view';
|
|
5
|
-
import { MARK_TEXT_COLOR, MARK_FONT_SIZE } from '../MarkNames.js';
|
|
6
|
-
|
|
7
|
-
// This implements the `NodeView` interface
|
|
8
|
-
// https://prosemirror.net/docs/ref/#view.NodeView
|
|
9
|
-
class ListItemNodeView {
|
|
10
|
-
// This implements the `NodeView` interface
|
|
11
|
-
// The outer DOM node that represents the list item element.
|
|
12
|
-
dom: HTMLLIElement;
|
|
13
|
-
|
|
14
|
-
// This implements the `NodeView` interface.
|
|
15
|
-
// The DOM node that should hold the node's content.
|
|
16
|
-
contentDOM: HTMLLIElement;
|
|
17
|
-
|
|
18
|
-
_nodeUpdated: ?Node;
|
|
19
|
-
|
|
20
|
-
constructor(
|
|
21
|
-
node: Node,
|
|
22
|
-
editorView: EditorView,
|
|
23
|
-
getPos: () => number,
|
|
24
|
-
decorations: Array<Decoration>
|
|
25
|
-
) {
|
|
26
|
-
const dom = document.createElement('li');
|
|
27
|
-
this.dom = dom;
|
|
28
|
-
this.contentDOM = dom;
|
|
29
|
-
this._updateDOM(node);
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
// This implements the `NodeView` interface.
|
|
33
|
-
update(node: Node, decorations: Array<Decoration>): boolean {
|
|
34
|
-
return this._updateDOM(node);
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
_updateDOM(node: Node): boolean {
|
|
38
|
-
if (this._nodeUpdated === node) {
|
|
39
|
-
return false;
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
this._nodeUpdated = node;
|
|
43
|
-
|
|
44
|
-
const dom = this.dom;
|
|
45
|
-
// According to `ListItemNodeSpec`, a valid list item has the following
|
|
46
|
-
// structure: `li > paragraph > text`.
|
|
47
|
-
const paragraph = node.firstChild;
|
|
48
|
-
const initialContent = paragraph ? paragraph.firstChild : null;
|
|
49
|
-
|
|
50
|
-
// This resolves the styles for the counter by examines the marks for the
|
|
51
|
-
// first text node of the list item.
|
|
52
|
-
const marks =
|
|
53
|
-
initialContent && initialContent.isText && initialContent.textContent
|
|
54
|
-
? initialContent.marks
|
|
55
|
-
: null;
|
|
56
|
-
|
|
57
|
-
let cssColor;
|
|
58
|
-
let cssFontSize;
|
|
59
|
-
let cssText = '';
|
|
60
|
-
if (Array.isArray(marks)) {
|
|
61
|
-
marks.forEach((mark) => {
|
|
62
|
-
const { attrs, type } = mark;
|
|
63
|
-
switch (type.name) {
|
|
64
|
-
case MARK_TEXT_COLOR:
|
|
65
|
-
cssColor = attrs.color;
|
|
66
|
-
break;
|
|
67
|
-
case MARK_FONT_SIZE:
|
|
68
|
-
cssFontSize = attrs.pt;
|
|
69
|
-
break;
|
|
70
|
-
}
|
|
71
|
-
});
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
// The counter of the list item is a pseudo-element that uses
|
|
75
|
-
// the CSS variables (e.g `--czi-list-style-color`) for styling.
|
|
76
|
-
// This defines the CSS variables scoped for the pseudo-element.
|
|
77
|
-
// See `src/ui/czi-list.css` for more details.
|
|
78
|
-
if (cssColor) {
|
|
79
|
-
cssText += `--czi-list-style-color: ${cssColor};`;
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
if (cssFontSize) {
|
|
83
|
-
cssText += `--czi-list-style-font-size: ${cssFontSize}pt;`;
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
dom.style.cssText = cssText;
|
|
87
|
-
|
|
88
|
-
const { align } = node.attrs;
|
|
89
|
-
if (align) {
|
|
90
|
-
dom.setAttribute('data-align', align);
|
|
91
|
-
} else {
|
|
92
|
-
dom.removeAttribute('data-align');
|
|
93
|
-
}
|
|
94
|
-
return true;
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
|
-
|
|
98
|
-
export default ListItemNodeView;
|
|
1
|
+
// @flow
|
|
2
|
+
|
|
3
|
+
import { Node } from 'prosemirror-model';
|
|
4
|
+
import { Decoration, EditorView } from 'prosemirror-view';
|
|
5
|
+
import { MARK_TEXT_COLOR, MARK_FONT_SIZE } from '../MarkNames.js';
|
|
6
|
+
|
|
7
|
+
// This implements the `NodeView` interface
|
|
8
|
+
// https://prosemirror.net/docs/ref/#view.NodeView
|
|
9
|
+
class ListItemNodeView {
|
|
10
|
+
// This implements the `NodeView` interface
|
|
11
|
+
// The outer DOM node that represents the list item element.
|
|
12
|
+
dom: HTMLLIElement;
|
|
13
|
+
|
|
14
|
+
// This implements the `NodeView` interface.
|
|
15
|
+
// The DOM node that should hold the node's content.
|
|
16
|
+
contentDOM: HTMLLIElement;
|
|
17
|
+
|
|
18
|
+
_nodeUpdated: ?Node;
|
|
19
|
+
|
|
20
|
+
constructor(
|
|
21
|
+
node: Node,
|
|
22
|
+
editorView: EditorView,
|
|
23
|
+
getPos: () => number,
|
|
24
|
+
decorations: Array<Decoration>
|
|
25
|
+
) {
|
|
26
|
+
const dom = document.createElement('li');
|
|
27
|
+
this.dom = dom;
|
|
28
|
+
this.contentDOM = dom;
|
|
29
|
+
this._updateDOM(node);
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
// This implements the `NodeView` interface.
|
|
33
|
+
update(node: Node, decorations: Array<Decoration>): boolean {
|
|
34
|
+
return this._updateDOM(node);
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
_updateDOM(node: Node): boolean {
|
|
38
|
+
if (this._nodeUpdated === node) {
|
|
39
|
+
return false;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
this._nodeUpdated = node;
|
|
43
|
+
|
|
44
|
+
const dom = this.dom;
|
|
45
|
+
// According to `ListItemNodeSpec`, a valid list item has the following
|
|
46
|
+
// structure: `li > paragraph > text`.
|
|
47
|
+
const paragraph = node.firstChild;
|
|
48
|
+
const initialContent = paragraph ? paragraph.firstChild : null;
|
|
49
|
+
|
|
50
|
+
// This resolves the styles for the counter by examines the marks for the
|
|
51
|
+
// first text node of the list item.
|
|
52
|
+
const marks =
|
|
53
|
+
initialContent && initialContent.isText && initialContent.textContent
|
|
54
|
+
? initialContent.marks
|
|
55
|
+
: null;
|
|
56
|
+
|
|
57
|
+
let cssColor;
|
|
58
|
+
let cssFontSize;
|
|
59
|
+
let cssText = '';
|
|
60
|
+
if (Array.isArray(marks)) {
|
|
61
|
+
marks.forEach((mark) => {
|
|
62
|
+
const { attrs, type } = mark;
|
|
63
|
+
switch (type.name) {
|
|
64
|
+
case MARK_TEXT_COLOR:
|
|
65
|
+
cssColor = attrs.color;
|
|
66
|
+
break;
|
|
67
|
+
case MARK_FONT_SIZE:
|
|
68
|
+
cssFontSize = attrs.pt;
|
|
69
|
+
break;
|
|
70
|
+
}
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
// The counter of the list item is a pseudo-element that uses
|
|
75
|
+
// the CSS variables (e.g `--czi-list-style-color`) for styling.
|
|
76
|
+
// This defines the CSS variables scoped for the pseudo-element.
|
|
77
|
+
// See `src/ui/czi-list.css` for more details.
|
|
78
|
+
if (cssColor) {
|
|
79
|
+
cssText += `--czi-list-style-color: ${cssColor};`;
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
if (cssFontSize) {
|
|
83
|
+
cssText += `--czi-list-style-font-size: ${cssFontSize}pt;`;
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
dom.style.cssText = cssText;
|
|
87
|
+
|
|
88
|
+
const { align } = node.attrs;
|
|
89
|
+
if (align) {
|
|
90
|
+
dom.setAttribute('data-align', align);
|
|
91
|
+
} else {
|
|
92
|
+
dom.removeAttribute('data-align');
|
|
93
|
+
}
|
|
94
|
+
return true;
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
export default ListItemNodeView;
|
package/ui/ListTypeButton.js
CHANGED
|
@@ -6,13 +6,13 @@ function _defineProperties(target, props) { for (var i = 0; i < props.length; i+
|
|
|
6
6
|
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
|
|
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
8
|
function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); }
|
|
9
|
+
function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
|
|
9
10
|
function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
|
|
10
11
|
function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
|
|
11
|
-
function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
|
|
12
12
|
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }
|
|
13
13
|
function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
|
|
14
14
|
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
15
|
-
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i :
|
|
15
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
|
|
16
16
|
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); }
|
|
17
17
|
// [FS] IRAD-1039 2020-09-23
|
|
18
18
|
// Command button to handle different type of list types
|
|
@@ -29,7 +29,6 @@ import uuid from './uuid.js';
|
|
|
29
29
|
import ListTypeMenu from './ListTypeMenu.js';
|
|
30
30
|
import './czi-custom-menu-button.css';
|
|
31
31
|
var ListTypeButton = /*#__PURE__*/function (_React$PureComponent) {
|
|
32
|
-
_inherits(ListTypeButton, _React$PureComponent);
|
|
33
32
|
function ListTypeButton() {
|
|
34
33
|
var _this;
|
|
35
34
|
_classCallCheck(this, ListTypeButton);
|
|
@@ -37,25 +36,25 @@ var ListTypeButton = /*#__PURE__*/function (_React$PureComponent) {
|
|
|
37
36
|
args[_key] = arguments[_key];
|
|
38
37
|
}
|
|
39
38
|
_this = _callSuper(this, ListTypeButton, [].concat(args));
|
|
40
|
-
_defineProperty(
|
|
41
|
-
_defineProperty(
|
|
42
|
-
_defineProperty(
|
|
43
|
-
_defineProperty(
|
|
39
|
+
_defineProperty(_this, "props", void 0);
|
|
40
|
+
_defineProperty(_this, "_menu", null);
|
|
41
|
+
_defineProperty(_this, "_id", uuid());
|
|
42
|
+
_defineProperty(_this, "state", {
|
|
44
43
|
expanded: false
|
|
45
44
|
});
|
|
46
|
-
_defineProperty(
|
|
45
|
+
_defineProperty(_this, "_onClick", function () {
|
|
47
46
|
var expanded = !_this.state.expanded;
|
|
48
47
|
_this.setState({
|
|
49
48
|
expanded: expanded
|
|
50
49
|
});
|
|
51
50
|
expanded ? _this._showMenu() : _this._hideMenu();
|
|
52
51
|
});
|
|
53
|
-
_defineProperty(
|
|
52
|
+
_defineProperty(_this, "_hideMenu", function () {
|
|
54
53
|
var menu = _this._menu;
|
|
55
54
|
_this._menu = null;
|
|
56
55
|
menu && menu.close();
|
|
57
56
|
});
|
|
58
|
-
_defineProperty(
|
|
57
|
+
_defineProperty(_this, "_showMenu", function () {
|
|
59
58
|
var menu = _this._menu;
|
|
60
59
|
var menuProps = _objectSpread(_objectSpread({}, _this.props), {}, {
|
|
61
60
|
onCommand: _this._onCommand
|
|
@@ -69,13 +68,13 @@ var ListTypeButton = /*#__PURE__*/function (_React$PureComponent) {
|
|
|
69
68
|
});
|
|
70
69
|
}
|
|
71
70
|
});
|
|
72
|
-
_defineProperty(
|
|
71
|
+
_defineProperty(_this, "_onCommand", function () {
|
|
73
72
|
_this.setState({
|
|
74
73
|
expanded: false
|
|
75
74
|
});
|
|
76
75
|
_this._hideMenu();
|
|
77
76
|
});
|
|
78
|
-
_defineProperty(
|
|
77
|
+
_defineProperty(_this, "_onClose", function () {
|
|
79
78
|
if (_this._menu) {
|
|
80
79
|
_this.setState({
|
|
81
80
|
expanded: false
|
|
@@ -85,7 +84,8 @@ var ListTypeButton = /*#__PURE__*/function (_React$PureComponent) {
|
|
|
85
84
|
});
|
|
86
85
|
return _this;
|
|
87
86
|
}
|
|
88
|
-
|
|
87
|
+
_inherits(ListTypeButton, _React$PureComponent);
|
|
88
|
+
return _createClass(ListTypeButton, [{
|
|
89
89
|
key: "render",
|
|
90
90
|
value: function render() {
|
|
91
91
|
// editorState,
|
|
@@ -131,6 +131,5 @@ var ListTypeButton = /*#__PURE__*/function (_React$PureComponent) {
|
|
|
131
131
|
this._hideMenu();
|
|
132
132
|
}
|
|
133
133
|
}]);
|
|
134
|
-
return ListTypeButton;
|
|
135
134
|
}(React.PureComponent);
|
|
136
135
|
export default ListTypeButton;
|