@expensify/react-native-live-markdown 0.1.116 → 0.1.117
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/lib/commonjs/MarkdownTextInput.js +2 -4
- package/lib/commonjs/MarkdownTextInput.js.map +1 -1
- package/lib/commonjs/MarkdownTextInput.web.js +105 -149
- package/lib/commonjs/MarkdownTextInput.web.js.map +1 -1
- package/lib/commonjs/styleUtils.js.map +1 -1
- package/lib/commonjs/web/utils/blockUtils.js +77 -0
- package/lib/commonjs/web/utils/blockUtils.js.map +1 -0
- package/lib/commonjs/web/utils/browserUtils.js +18 -0
- package/lib/commonjs/web/utils/browserUtils.js.map +1 -0
- package/lib/commonjs/web/utils/cursorUtils.js +111 -0
- package/lib/commonjs/web/utils/cursorUtils.js.map +1 -0
- package/lib/commonjs/web/utils/inputUtils.js +108 -0
- package/lib/commonjs/web/utils/inputUtils.js.map +1 -0
- package/lib/commonjs/web/utils/parserUtils.js +266 -0
- package/lib/commonjs/web/utils/parserUtils.js.map +1 -0
- package/lib/commonjs/web/utils/treeUtils.js +85 -0
- package/lib/commonjs/web/utils/treeUtils.js.map +1 -0
- package/lib/commonjs/web/utils/webStyleUtils.js +51 -0
- package/lib/commonjs/web/utils/webStyleUtils.js.map +1 -0
- package/lib/module/MarkdownTextInput.js +2 -2
- package/lib/module/MarkdownTextInput.js.map +1 -1
- package/lib/module/MarkdownTextInput.web.js +101 -145
- package/lib/module/MarkdownTextInput.web.js.map +1 -1
- package/lib/module/styleUtils.js.map +1 -1
- package/lib/module/web/utils/blockUtils.js +72 -0
- package/lib/module/web/utils/blockUtils.js.map +1 -0
- package/lib/module/web/utils/browserUtils.js +12 -0
- package/lib/module/web/utils/browserUtils.js.map +1 -0
- package/lib/module/web/utils/cursorUtils.js +102 -0
- package/lib/module/web/utils/cursorUtils.js.map +1 -0
- package/lib/module/web/utils/inputUtils.js +99 -0
- package/lib/module/web/utils/inputUtils.js.map +1 -0
- package/lib/module/web/utils/parserUtils.js +260 -0
- package/lib/module/web/utils/parserUtils.js.map +1 -0
- package/lib/module/web/utils/treeUtils.js +78 -0
- package/lib/module/web/utils/treeUtils.js.map +1 -0
- package/lib/module/web/utils/webStyleUtils.js +45 -0
- package/lib/module/web/utils/webStyleUtils.js.map +1 -0
- package/lib/typescript/src/MarkdownTextInput.d.ts +1 -2
- package/lib/typescript/src/MarkdownTextInput.d.ts.map +1 -1
- package/lib/typescript/src/MarkdownTextInput.web.d.ts +9 -3
- package/lib/typescript/src/MarkdownTextInput.web.d.ts.map +1 -1
- package/lib/typescript/src/styleUtils.d.ts +1 -2
- package/lib/typescript/src/styleUtils.d.ts.map +1 -1
- package/lib/typescript/src/web/utils/blockUtils.d.ts +5 -0
- package/lib/typescript/src/web/utils/blockUtils.d.ts.map +1 -0
- package/lib/typescript/src/web/utils/browserUtils.d.ts +12 -0
- package/lib/typescript/src/web/utils/browserUtils.d.ts.map +1 -0
- package/lib/typescript/src/web/utils/cursorUtils.d.ts +12 -0
- package/lib/typescript/src/web/utils/cursorUtils.d.ts.map +1 -0
- package/lib/typescript/src/web/utils/inputUtils.d.ts +9 -0
- package/lib/typescript/src/web/utils/inputUtils.d.ts.map +1 -0
- package/lib/typescript/src/web/utils/parserUtils.d.ts +22 -0
- package/lib/typescript/src/web/utils/parserUtils.d.ts.map +1 -0
- package/lib/typescript/src/web/utils/treeUtils.d.ts +17 -0
- package/lib/typescript/src/web/utils/treeUtils.d.ts.map +1 -0
- package/lib/typescript/src/web/utils/webStyleUtils.d.ts +6 -0
- package/lib/typescript/src/web/utils/webStyleUtils.d.ts.map +1 -0
- package/package.json +1 -1
- package/src/MarkdownTextInput.tsx +4 -7
- package/src/MarkdownTextInput.web.tsx +142 -171
- package/src/styleUtils.ts +1 -3
- package/src/web/utils/blockUtils.ts +72 -0
- package/src/web/utils/browserUtils.ts +13 -0
- package/src/web/utils/cursorUtils.ts +116 -0
- package/src/web/utils/inputUtils.ts +106 -0
- package/src/web/utils/parserUtils.ts +302 -0
- package/src/web/utils/treeUtils.ts +103 -0
- package/src/web/utils/webStyleUtils.ts +54 -0
- package/lib/commonjs/web/browserUtils.js +0 -16
- package/lib/commonjs/web/browserUtils.js.map +0 -1
- package/lib/commonjs/web/cursorUtils.js +0 -167
- package/lib/commonjs/web/cursorUtils.js.map +0 -1
- package/lib/commonjs/web/parserUtils.js +0 -214
- package/lib/commonjs/web/parserUtils.js.map +0 -1
- package/lib/module/web/browserUtils.js +0 -11
- package/lib/module/web/browserUtils.js.map +0 -1
- package/lib/module/web/cursorUtils.js +0 -154
- package/lib/module/web/cursorUtils.js.map +0 -1
- package/lib/module/web/parserUtils.js +0 -206
- package/lib/module/web/parserUtils.js.map +0 -1
- package/lib/typescript/src/web/browserUtils.d.ts +0 -10
- package/lib/typescript/src/web/browserUtils.d.ts.map +0 -1
- package/lib/typescript/src/web/cursorUtils.d.ts +0 -12
- package/lib/typescript/src/web/cursorUtils.d.ts.map +0 -1
- package/lib/typescript/src/web/parserUtils.d.ts +0 -17
- package/lib/typescript/src/web/parserUtils.d.ts.map +0 -1
- package/src/web/browserUtils.ts +0 -11
- package/src/web/cursorUtils.ts +0 -177
- package/src/web/parserUtils.ts +0 -228
|
@@ -2,88 +2,15 @@
|
|
|
2
2
|
|
|
3
3
|
import React, { useEffect, useRef, useCallback, useMemo, useLayoutEffect } from 'react';
|
|
4
4
|
import { StyleSheet } from 'react-native';
|
|
5
|
-
import
|
|
6
|
-
import * as CursorUtils from './web/cursorUtils';
|
|
7
|
-
import * as StyleUtils from './styleUtils';
|
|
8
|
-
import './web/MarkdownTextInput.css';
|
|
5
|
+
import { updateInputStructure } from './web/utils/parserUtils';
|
|
9
6
|
import InputHistory from './web/InputHistory';
|
|
7
|
+
import { getCurrentCursorPosition, removeSelection, setCursorPosition } from './web/utils/cursorUtils';
|
|
8
|
+
import './web/MarkdownTextInput.css';
|
|
9
|
+
import { getElementHeight, getPlaceholderValue, isEventComposing, normalizeValue, parseInnerHTMLToText } from './web/utils/inputUtils';
|
|
10
|
+
import { parseToReactDOMStyle, processMarkdownStyle } from './web/utils/webStyleUtils';
|
|
10
11
|
require('../parser/react-native-live-markdown-parser.js');
|
|
11
12
|
const useClientEffect = typeof window === 'undefined' ? useEffect : useLayoutEffect;
|
|
12
|
-
let createReactDOMStyle;
|
|
13
|
-
try {
|
|
14
|
-
createReactDOMStyle =
|
|
15
|
-
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
|
16
|
-
require('react-native-web/dist/exports/StyleSheet/compiler/createReactDOMStyle').default;
|
|
17
|
-
} catch (e) {
|
|
18
|
-
throw new Error('[react-native-live-markdown] Function `createReactDOMStyle` from react-native-web not found. Please make sure that you are using React Native Web 0.18 or newer.');
|
|
19
|
-
}
|
|
20
|
-
let preprocessStyle;
|
|
21
|
-
try {
|
|
22
|
-
preprocessStyle =
|
|
23
|
-
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
|
24
|
-
require('react-native-web/dist/exports/StyleSheet/preprocess').default;
|
|
25
|
-
} catch (e) {
|
|
26
|
-
throw new Error('[react-native-live-markdown] Function `preprocessStyle` from react-native-web not found.');
|
|
27
|
-
}
|
|
28
|
-
let dangerousStyleValue;
|
|
29
|
-
try {
|
|
30
|
-
dangerousStyleValue =
|
|
31
|
-
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
|
32
|
-
require('react-native-web/dist/modules/setValueForStyles/dangerousStyleValue').default;
|
|
33
|
-
} catch (e) {
|
|
34
|
-
throw new Error('[react-native-live-markdown] Function `dangerousStyleValue` from react-native-web not found.');
|
|
35
|
-
}
|
|
36
13
|
let focusTimeout = null;
|
|
37
|
-
|
|
38
|
-
// Removes one '\n' from the end of the string that were added by contentEditable div
|
|
39
|
-
function normalizeValue(value) {
|
|
40
|
-
return value.replace(/\n$/, '');
|
|
41
|
-
}
|
|
42
|
-
// Adds one '\n' at the end of the string if it's missing
|
|
43
|
-
function denormalizeValue(value) {
|
|
44
|
-
return value.endsWith('\n') ? `${value}\n` : value;
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
// If an Input Method Editor is processing key input, the 'keyCode' is 229.
|
|
48
|
-
// https://www.w3.org/TR/uievents/#determine-keydown-keyup-keyCode
|
|
49
|
-
function isEventComposing(nativeEvent) {
|
|
50
|
-
return nativeEvent.isComposing || nativeEvent.keyCode === 229;
|
|
51
|
-
}
|
|
52
|
-
const ZERO_WIDTH_SPACE = '\u200B';
|
|
53
|
-
function getPlaceholderValue(placeholder) {
|
|
54
|
-
if (!placeholder) {
|
|
55
|
-
return ZERO_WIDTH_SPACE;
|
|
56
|
-
}
|
|
57
|
-
return placeholder.length ? placeholder : ZERO_WIDTH_SPACE;
|
|
58
|
-
}
|
|
59
|
-
function processUnitsInMarkdownStyle(input) {
|
|
60
|
-
const output = JSON.parse(JSON.stringify(input));
|
|
61
|
-
Object.keys(output).forEach(key => {
|
|
62
|
-
const obj = output[key];
|
|
63
|
-
Object.keys(obj).forEach(prop => {
|
|
64
|
-
obj[prop] = dangerousStyleValue(prop, obj[prop], false);
|
|
65
|
-
});
|
|
66
|
-
});
|
|
67
|
-
return output;
|
|
68
|
-
}
|
|
69
|
-
function processMarkdownStyle(input) {
|
|
70
|
-
return processUnitsInMarkdownStyle(StyleUtils.mergeMarkdownStyleWithDefault(input));
|
|
71
|
-
}
|
|
72
|
-
function getElementHeight(node, styles, numberOfLines) {
|
|
73
|
-
if (numberOfLines) {
|
|
74
|
-
const tempElement = document.createElement('div');
|
|
75
|
-
tempElement.setAttribute('contenteditable', 'true');
|
|
76
|
-
Object.assign(tempElement.style, styles);
|
|
77
|
-
tempElement.innerText = Array(numberOfLines).fill('A').join('\n');
|
|
78
|
-
if (node.parentElement) {
|
|
79
|
-
node.parentElement.appendChild(tempElement);
|
|
80
|
-
const height = tempElement.clientHeight;
|
|
81
|
-
node.parentElement.removeChild(tempElement);
|
|
82
|
-
return height ? `${height}px` : 'auto';
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
return styles.height ? `${styles.height}px` : 'auto';
|
|
86
|
-
}
|
|
87
14
|
const MarkdownTextInput = /*#__PURE__*/React.forwardRef(({
|
|
88
15
|
accessibilityLabel,
|
|
89
16
|
accessibilityLabelledBy,
|
|
@@ -118,13 +45,13 @@ const MarkdownTextInput = /*#__PURE__*/React.forwardRef(({
|
|
|
118
45
|
inputMode
|
|
119
46
|
}, ref) => {
|
|
120
47
|
const compositionRef = useRef(false);
|
|
121
|
-
const pasteRef = useRef(false);
|
|
122
48
|
const divRef = useRef(null);
|
|
123
49
|
const currentlyFocusedField = useRef(null);
|
|
124
50
|
const contentSelection = useRef(null);
|
|
125
51
|
const className = `react-native-live-markdown-input-${multiline ? 'multiline' : 'singleline'}`;
|
|
126
52
|
const history = useRef();
|
|
127
|
-
const dimensions =
|
|
53
|
+
const dimensions = useRef(null);
|
|
54
|
+
const pasteContent = useRef(null);
|
|
128
55
|
if (!history.current) {
|
|
129
56
|
history.current = new InputHistory(100, 150, value || '');
|
|
130
57
|
}
|
|
@@ -134,7 +61,7 @@ const MarkdownTextInput = /*#__PURE__*/React.forwardRef(({
|
|
|
134
61
|
const heightSafePlaceholder = useMemo(() => getPlaceholderValue(placeholder), [placeholder]);
|
|
135
62
|
const setEventProps = useCallback(e => {
|
|
136
63
|
if (divRef.current) {
|
|
137
|
-
const text =
|
|
64
|
+
const text = divRef.current.value;
|
|
138
65
|
if (e.target) {
|
|
139
66
|
// TODO: change the logic here so every event have value property
|
|
140
67
|
e.target.value = text;
|
|
@@ -145,30 +72,36 @@ const MarkdownTextInput = /*#__PURE__*/React.forwardRef(({
|
|
|
145
72
|
}
|
|
146
73
|
return e;
|
|
147
74
|
}, []);
|
|
148
|
-
const parseText = useCallback((target, text, customMarkdownStyles, cursorPosition = null, shouldAddToHistory = true) => {
|
|
75
|
+
const parseText = useCallback((target, text, customMarkdownStyles, cursorPosition = null, shouldAddToHistory = true, shouldForceDOMUpdate = false) => {
|
|
76
|
+
if (!divRef.current) {
|
|
77
|
+
return {
|
|
78
|
+
text: text || '',
|
|
79
|
+
cursorPosition: null
|
|
80
|
+
};
|
|
81
|
+
}
|
|
149
82
|
if (text === null) {
|
|
150
83
|
return {
|
|
151
|
-
text:
|
|
84
|
+
text: divRef.current.value,
|
|
152
85
|
cursorPosition: null
|
|
153
86
|
};
|
|
154
87
|
}
|
|
155
|
-
const parsedText =
|
|
88
|
+
const parsedText = updateInputStructure(target, text, cursorPosition, customMarkdownStyles, !multiline, shouldForceDOMUpdate);
|
|
89
|
+
divRef.current.value = parsedText.text;
|
|
156
90
|
if (history.current && shouldAddToHistory) {
|
|
157
|
-
|
|
158
|
-
history.current.throttledAdd(normalizeValue(parsedText.text), parsedText.cursorPosition);
|
|
91
|
+
history.current.throttledAdd(parsedText.text, parsedText.cursorPosition);
|
|
159
92
|
}
|
|
160
93
|
return parsedText;
|
|
161
94
|
}, [multiline]);
|
|
162
95
|
const processedMarkdownStyle = useMemo(() => {
|
|
163
96
|
const newMarkdownStyle = processMarkdownStyle(markdownStyle);
|
|
164
97
|
if (divRef.current) {
|
|
165
|
-
parseText(divRef.current, divRef.current.
|
|
98
|
+
parseText(divRef.current, divRef.current.value, newMarkdownStyle, null, false);
|
|
166
99
|
}
|
|
167
100
|
return newMarkdownStyle;
|
|
168
101
|
}, [markdownStyle, parseText]);
|
|
169
102
|
const inputStyles = useMemo(() => StyleSheet.flatten([styles.defaultInputStyles, flattenedStyle && {
|
|
170
103
|
caretColor: flattenedStyle.color || 'black'
|
|
171
|
-
}, disabled && styles.disabledInputStyles,
|
|
104
|
+
}, disabled && styles.disabledInputStyles, parseToReactDOMStyle(flattenedStyle)]), [flattenedStyle, disabled]);
|
|
172
105
|
const undo = useCallback(target => {
|
|
173
106
|
if (!history.current) {
|
|
174
107
|
return {
|
|
@@ -177,7 +110,7 @@ const MarkdownTextInput = /*#__PURE__*/React.forwardRef(({
|
|
|
177
110
|
};
|
|
178
111
|
}
|
|
179
112
|
const item = history.current.undo();
|
|
180
|
-
const undoValue = item ?
|
|
113
|
+
const undoValue = item ? item.text : null;
|
|
181
114
|
return parseText(target, undoValue, processedMarkdownStyle, item ? item.cursorPosition : null, false);
|
|
182
115
|
}, [parseText, processedMarkdownStyle]);
|
|
183
116
|
const redo = useCallback(target => {
|
|
@@ -188,18 +121,10 @@ const MarkdownTextInput = /*#__PURE__*/React.forwardRef(({
|
|
|
188
121
|
};
|
|
189
122
|
}
|
|
190
123
|
const item = history.current.redo();
|
|
191
|
-
const redoValue = item ?
|
|
124
|
+
const redoValue = item ? item.text : null;
|
|
192
125
|
return parseText(target, redoValue, processedMarkdownStyle, item ? item.cursorPosition : null, false);
|
|
193
126
|
}, [parseText, processedMarkdownStyle]);
|
|
194
127
|
|
|
195
|
-
// We have to process value property since contentEditable div adds one additional '\n' at the end of the text if we are entering new line
|
|
196
|
-
const processedValue = useMemo(() => {
|
|
197
|
-
if (value && value[value.length - 1] === '\n') {
|
|
198
|
-
return `${value}\n`;
|
|
199
|
-
}
|
|
200
|
-
return value;
|
|
201
|
-
}, [value]);
|
|
202
|
-
|
|
203
128
|
// Placeholder text color logic
|
|
204
129
|
const updateTextColor = useCallback((node, text) => {
|
|
205
130
|
// eslint-disable-next-line no-param-reassign -- we need to change the style of the node, so we need to modify it
|
|
@@ -226,7 +151,7 @@ const MarkdownTextInput = /*#__PURE__*/React.forwardRef(({
|
|
|
226
151
|
if (!divRef.current) {
|
|
227
152
|
return;
|
|
228
153
|
}
|
|
229
|
-
const newSelection = predefinedSelection ||
|
|
154
|
+
const newSelection = predefinedSelection || getCurrentCursorPosition(divRef.current);
|
|
230
155
|
if (newSelection && (!contentSelection.current || contentSelection.current.start !== newSelection.start || contentSelection.current.end !== newSelection.end)) {
|
|
231
156
|
updateRefSelectionVariables(newSelection);
|
|
232
157
|
contentSelection.current = newSelection;
|
|
@@ -257,22 +182,29 @@ const MarkdownTextInput = /*#__PURE__*/React.forwardRef(({
|
|
|
257
182
|
}
|
|
258
183
|
}, [multiline, onContentSizeChange]);
|
|
259
184
|
const handleOnChangeText = useCallback(e => {
|
|
260
|
-
if (!divRef.current || !(e.target instanceof HTMLElement)) {
|
|
185
|
+
if (!divRef.current || !(e.target instanceof HTMLElement) || !contentSelection.current) {
|
|
261
186
|
return;
|
|
262
187
|
}
|
|
188
|
+
const nativeEvent = e.nativeEvent;
|
|
189
|
+
const inputType = nativeEvent.inputType;
|
|
190
|
+
updateTextColor(divRef.current, e.target.textContent ?? '');
|
|
191
|
+
const previousText = divRef.current.value;
|
|
192
|
+
const parsedText = normalizeValue(inputType === 'pasteText' ? pasteContent.current || '' : parseInnerHTMLToText(e.target));
|
|
193
|
+
if (pasteContent.current) {
|
|
194
|
+
pasteContent.current = null;
|
|
195
|
+
}
|
|
263
196
|
const prevSelection = contentSelection.current ?? {
|
|
264
197
|
start: 0,
|
|
265
198
|
end: 0
|
|
266
199
|
};
|
|
267
|
-
const
|
|
268
|
-
const changedText = e.target.innerText;
|
|
200
|
+
const newCursorPosition = Math.max(Math.max(contentSelection.current.end, 0) + (parsedText.length - previousText.length), 0);
|
|
269
201
|
if (compositionRef.current) {
|
|
270
|
-
|
|
202
|
+
divRef.current.value = parsedText;
|
|
203
|
+
compositionRef.current = false;
|
|
204
|
+
contentSelection.current.end = newCursorPosition;
|
|
271
205
|
return;
|
|
272
206
|
}
|
|
273
207
|
let newInputUpdate;
|
|
274
|
-
const nativeEvent = e.nativeEvent;
|
|
275
|
-
const inputType = nativeEvent.inputType;
|
|
276
208
|
switch (inputType) {
|
|
277
209
|
case 'historyUndo':
|
|
278
210
|
newInputUpdate = undo(divRef.current);
|
|
@@ -280,33 +212,24 @@ const MarkdownTextInput = /*#__PURE__*/React.forwardRef(({
|
|
|
280
212
|
case 'historyRedo':
|
|
281
213
|
newInputUpdate = redo(divRef.current);
|
|
282
214
|
break;
|
|
283
|
-
case 'insertFromPaste':
|
|
284
|
-
// if there is no newline at the end of the copied text, contentEditable adds invisible <br> tag at the end of the text, so we need to normalize it
|
|
285
|
-
if (changedText.length > 2 && changedText[changedText.length - 2] !== '\n' && changedText[changedText.length - 1] === '\n') {
|
|
286
|
-
newInputUpdate = parseText(divRef.current, normalizeValue(changedText), processedMarkdownStyle);
|
|
287
|
-
break;
|
|
288
|
-
}
|
|
289
|
-
newInputUpdate = parseText(divRef.current, changedText, processedMarkdownStyle);
|
|
290
|
-
break;
|
|
291
215
|
default:
|
|
292
|
-
newInputUpdate = parseText(divRef.current,
|
|
216
|
+
newInputUpdate = parseText(divRef.current, parsedText, processedMarkdownStyle, newCursorPosition, true, !inputType);
|
|
293
217
|
}
|
|
294
218
|
const {
|
|
295
219
|
text,
|
|
296
220
|
cursorPosition
|
|
297
221
|
} = newInputUpdate;
|
|
298
|
-
const normalizedText = normalizeValue(text);
|
|
299
|
-
if (pasteRef !== null && pasteRef !== void 0 && pasteRef.current) {
|
|
300
|
-
pasteRef.current = false;
|
|
301
|
-
updateSelection(e);
|
|
302
|
-
}
|
|
303
222
|
updateTextColor(divRef.current, text);
|
|
223
|
+
updateSelection(e, {
|
|
224
|
+
start: cursorPosition ?? 0,
|
|
225
|
+
end: cursorPosition ?? 0
|
|
226
|
+
});
|
|
304
227
|
if (onChange) {
|
|
305
228
|
const event = e;
|
|
306
229
|
setEventProps(event);
|
|
307
230
|
|
|
308
231
|
// The new text is between the prev start selection and the new end selection, can be empty
|
|
309
|
-
const addedText =
|
|
232
|
+
const addedText = text.slice(prevSelection.start, cursorPosition ?? 0);
|
|
310
233
|
// The length of the text that replaced the before text
|
|
311
234
|
const count = addedText.length;
|
|
312
235
|
// The start index of the replacement operation
|
|
@@ -316,7 +239,7 @@ const MarkdownTextInput = /*#__PURE__*/React.forwardRef(({
|
|
|
316
239
|
let before = prevSelectionRange;
|
|
317
240
|
if (prevSelectionRange === 0 && (inputType === 'deleteContentBackward' || inputType === 'deleteContentForward')) {
|
|
318
241
|
// its possible the user pressed a delete key without a selection range, so we need to adjust the before value to have the length of the deleted text
|
|
319
|
-
before =
|
|
242
|
+
before = previousText.length - text.length;
|
|
320
243
|
}
|
|
321
244
|
if (inputType === 'deleteContentBackward') {
|
|
322
245
|
// When the user does a backspace delete he expects the content before the cursor to be removed.
|
|
@@ -331,17 +254,31 @@ const MarkdownTextInput = /*#__PURE__*/React.forwardRef(({
|
|
|
331
254
|
onChange(event);
|
|
332
255
|
}
|
|
333
256
|
if (onChangeText) {
|
|
334
|
-
onChangeText(
|
|
257
|
+
onChangeText(text);
|
|
335
258
|
}
|
|
336
259
|
handleContentSizeChange();
|
|
337
|
-
}, [updateTextColor,
|
|
260
|
+
}, [updateTextColor, updateSelection, onChange, onChangeText, handleContentSizeChange, undo, redo, parseText, processedMarkdownStyle, setEventProps]);
|
|
261
|
+
const insertText = useCallback((e, text) => {
|
|
262
|
+
if (!contentSelection.current || !divRef.current) {
|
|
263
|
+
return;
|
|
264
|
+
}
|
|
265
|
+
const previousText = divRef.current.value;
|
|
266
|
+
const newText = `${divRef.current.value.substring(0, contentSelection.current.start)}${text}${divRef.current.value.substring(contentSelection.current.end)}`;
|
|
267
|
+
if (previousText === newText) {
|
|
268
|
+
document.execCommand('delete');
|
|
269
|
+
}
|
|
270
|
+
pasteContent.current = newText;
|
|
271
|
+
e.nativeEvent.inputType = 'pasteText';
|
|
272
|
+
handleOnChangeText(e);
|
|
273
|
+
updateSelection(e);
|
|
274
|
+
}, [handleOnChangeText, updateSelection]);
|
|
338
275
|
const handleKeyPress = useCallback(e => {
|
|
339
276
|
if (!divRef.current) {
|
|
340
277
|
return;
|
|
341
278
|
}
|
|
342
279
|
const hostNode = e.target;
|
|
343
280
|
e.stopPropagation();
|
|
344
|
-
if (e.key === 'z' && e.metaKey) {
|
|
281
|
+
if (e.key === 'z' && (e.ctrlKey || e.metaKey)) {
|
|
345
282
|
e.preventDefault();
|
|
346
283
|
const nativeEvent = e.nativeEvent;
|
|
347
284
|
if (e.shiftKey) {
|
|
@@ -372,14 +309,13 @@ const MarkdownTextInput = /*#__PURE__*/React.forwardRef(({
|
|
|
372
309
|
} else if (multiline) {
|
|
373
310
|
// We need to change normal behavior of "Enter" key to insert a line breaks, to prevent wrapping contentEditable text in <div> tags.
|
|
374
311
|
// Thanks to that in every situation we have proper amount of new lines in our parsed text. Without it pressing enter in empty lines will add 2 more new lines.
|
|
375
|
-
|
|
376
|
-
CursorUtils.scrollCursorIntoView(divRef.current);
|
|
312
|
+
insertText(e, '\n');
|
|
377
313
|
}
|
|
378
314
|
if (!e.shiftKey && (shouldBlurOnSubmit && hostNode !== null || !multiline)) {
|
|
379
315
|
setTimeout(() => divRef.current && divRef.current.blur(), 0);
|
|
380
316
|
}
|
|
381
317
|
}
|
|
382
|
-
}, [multiline, blurOnSubmit, setEventProps, onKeyPress, updateSelection, handleOnChangeText, onSubmitEditing]);
|
|
318
|
+
}, [multiline, blurOnSubmit, setEventProps, onKeyPress, updateSelection, handleOnChangeText, onSubmitEditing, insertText]);
|
|
383
319
|
const handleFocus = useCallback(event => {
|
|
384
320
|
const e = event;
|
|
385
321
|
const hostNode = e.target;
|
|
@@ -387,10 +323,10 @@ const MarkdownTextInput = /*#__PURE__*/React.forwardRef(({
|
|
|
387
323
|
setEventProps(e);
|
|
388
324
|
if (divRef.current) {
|
|
389
325
|
if (contentSelection.current) {
|
|
390
|
-
|
|
326
|
+
setCursorPosition(divRef.current, contentSelection.current.start, contentSelection.current.end);
|
|
391
327
|
} else {
|
|
392
|
-
const valueLength = value ? value.length : divRef.current.
|
|
393
|
-
|
|
328
|
+
const valueLength = value ? value.length : divRef.current.value.length;
|
|
329
|
+
setCursorPosition(divRef.current, valueLength, null);
|
|
394
330
|
}
|
|
395
331
|
updateSelection(event, contentSelection.current);
|
|
396
332
|
}
|
|
@@ -400,7 +336,7 @@ const MarkdownTextInput = /*#__PURE__*/React.forwardRef(({
|
|
|
400
336
|
}
|
|
401
337
|
if (hostNode !== null) {
|
|
402
338
|
if (clearTextOnFocus && divRef.current) {
|
|
403
|
-
divRef.current.
|
|
339
|
+
divRef.current.textContent = '';
|
|
404
340
|
}
|
|
405
341
|
if (selectTextOnFocus) {
|
|
406
342
|
// Safari requires selection to occur in a setTimeout
|
|
@@ -418,7 +354,7 @@ const MarkdownTextInput = /*#__PURE__*/React.forwardRef(({
|
|
|
418
354
|
}, [clearTextOnFocus, onFocus, selectTextOnFocus, setEventProps, updateSelection, value]);
|
|
419
355
|
const handleBlur = useCallback(event => {
|
|
420
356
|
const e = event;
|
|
421
|
-
|
|
357
|
+
removeSelection();
|
|
422
358
|
currentlyFocusedField.current = null;
|
|
423
359
|
if (onBlur) {
|
|
424
360
|
setEventProps(e);
|
|
@@ -430,19 +366,36 @@ const MarkdownTextInput = /*#__PURE__*/React.forwardRef(({
|
|
|
430
366
|
if (!onClick || !divRef.current) {
|
|
431
367
|
return;
|
|
432
368
|
}
|
|
433
|
-
e.target.value =
|
|
369
|
+
e.target.value = divRef.current.value;
|
|
434
370
|
onClick(e);
|
|
435
371
|
}, [onClick, updateSelection]);
|
|
372
|
+
const handleCopy = useCallback(e => {
|
|
373
|
+
var _divRef$current;
|
|
374
|
+
if (!divRef.current || !contentSelection.current) {
|
|
375
|
+
return;
|
|
376
|
+
}
|
|
377
|
+
e.preventDefault();
|
|
378
|
+
const text = (_divRef$current = divRef.current) === null || _divRef$current === void 0 ? void 0 : _divRef$current.value.substring(contentSelection.current.start, contentSelection.current.end);
|
|
379
|
+
e.clipboardData.setData('text/plain', text ?? '');
|
|
380
|
+
}, []);
|
|
381
|
+
const handleCut = useCallback(e => {
|
|
382
|
+
if (!divRef.current || !contentSelection.current) {
|
|
383
|
+
return;
|
|
384
|
+
}
|
|
385
|
+
handleCopy(e);
|
|
386
|
+
if (contentSelection.current.start !== contentSelection.current.end) {
|
|
387
|
+
document.execCommand('delete');
|
|
388
|
+
}
|
|
389
|
+
}, [handleCopy]);
|
|
436
390
|
const handlePaste = useCallback(e => {
|
|
437
|
-
|
|
438
|
-
if (e.isDefaultPrevented()) {
|
|
391
|
+
if (e.isDefaultPrevented() || !divRef.current || !contentSelection.current) {
|
|
439
392
|
return;
|
|
440
393
|
}
|
|
441
394
|
e.preventDefault();
|
|
442
395
|
const clipboardData = e.clipboardData;
|
|
443
396
|
const text = clipboardData.getData('text/plain');
|
|
444
|
-
|
|
445
|
-
}, []);
|
|
397
|
+
insertText(e, text);
|
|
398
|
+
}, [insertText]);
|
|
446
399
|
const startComposition = useCallback(() => {
|
|
447
400
|
compositionRef.current = true;
|
|
448
401
|
}, []);
|
|
@@ -455,12 +408,12 @@ const MarkdownTextInput = /*#__PURE__*/React.forwardRef(({
|
|
|
455
408
|
if (r) {
|
|
456
409
|
r.isFocused = () => document.activeElement === r;
|
|
457
410
|
r.clear = () => {
|
|
458
|
-
r.
|
|
411
|
+
r.textContent = '';
|
|
459
412
|
updateTextColor(r, '');
|
|
460
413
|
};
|
|
461
414
|
if (value === '' || value === undefined) {
|
|
462
415
|
// update to placeholder color when value is empty
|
|
463
|
-
updateTextColor(r, r.
|
|
416
|
+
updateTextColor(r, r.textContent ?? '');
|
|
464
417
|
}
|
|
465
418
|
}
|
|
466
419
|
if (ref) {
|
|
@@ -474,17 +427,18 @@ const MarkdownTextInput = /*#__PURE__*/React.forwardRef(({
|
|
|
474
427
|
divRef.current = r;
|
|
475
428
|
};
|
|
476
429
|
useClientEffect(function parseAndStyleValue() {
|
|
477
|
-
if (!divRef.current ||
|
|
430
|
+
if (!divRef.current || value === divRef.current.value) {
|
|
478
431
|
return;
|
|
479
432
|
}
|
|
480
433
|
if (value === undefined) {
|
|
481
|
-
parseText(divRef.current, divRef.current.
|
|
434
|
+
parseText(divRef.current, divRef.current.value, processedMarkdownStyle);
|
|
482
435
|
return;
|
|
483
436
|
}
|
|
484
|
-
const
|
|
485
|
-
|
|
437
|
+
const normalizedValue = normalizeValue(value);
|
|
438
|
+
divRef.current.value = normalizedValue;
|
|
439
|
+
parseText(divRef.current, normalizedValue, processedMarkdownStyle);
|
|
486
440
|
updateTextColor(divRef.current, value);
|
|
487
|
-
}, [multiline, processedMarkdownStyle,
|
|
441
|
+
}, [multiline, processedMarkdownStyle, value]);
|
|
488
442
|
useClientEffect(function adjustHeight() {
|
|
489
443
|
if (!divRef.current || !multiline) {
|
|
490
444
|
return;
|
|
@@ -517,7 +471,7 @@ const MarkdownTextInput = /*#__PURE__*/React.forwardRef(({
|
|
|
517
471
|
};
|
|
518
472
|
contentSelection.current = newSelection;
|
|
519
473
|
updateRefSelectionVariables(newSelection);
|
|
520
|
-
|
|
474
|
+
setCursorPosition(divRef.current, newSelection.start, newSelection.end);
|
|
521
475
|
}, [selection, updateRefSelectionVariables]);
|
|
522
476
|
return (
|
|
523
477
|
/*#__PURE__*/
|
|
@@ -543,6 +497,8 @@ const MarkdownTextInput = /*#__PURE__*/React.forwardRef(({
|
|
|
543
497
|
onClick: handleClick,
|
|
544
498
|
onFocus: handleFocus,
|
|
545
499
|
onBlur: handleBlur,
|
|
500
|
+
onCopy: handleCopy,
|
|
501
|
+
onCut: handleCut,
|
|
546
502
|
onPaste: handlePaste,
|
|
547
503
|
placeholder: heightSafePlaceholder,
|
|
548
504
|
spellCheck: spellCheck,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useEffect","useRef","useCallback","useMemo","useLayoutEffect","StyleSheet","ParseUtils","CursorUtils","StyleUtils","InputHistory","require","useClientEffect","window","createReactDOMStyle","default","e","Error","preprocessStyle","dangerousStyleValue","focusTimeout","normalizeValue","value","replace","denormalizeValue","endsWith","isEventComposing","nativeEvent","isComposing","keyCode","ZERO_WIDTH_SPACE","getPlaceholderValue","placeholder","length","processUnitsInMarkdownStyle","input","output","JSON","parse","stringify","Object","keys","forEach","key","obj","prop","processMarkdownStyle","mergeMarkdownStyleWithDefault","getElementHeight","node","styles","numberOfLines","tempElement","document","createElement","setAttribute","assign","style","innerText","Array","fill","join","parentElement","appendChild","height","clientHeight","removeChild","MarkdownTextInput","forwardRef","accessibilityLabel","accessibilityLabelledBy","accessibilityRole","autoCapitalize","autoCorrect","blurOnSubmit","clearTextOnFocus","dir","disabled","multiline","markdownStyle","onBlur","onChange","onChangeText","onClick","onFocus","onKeyPress","onSelectionChange","onSubmitEditing","placeholderTextColor","selectTextOnFocus","spellCheck","selection","autoFocus","onContentSizeChange","id","inputMode","ref","compositionRef","pasteRef","divRef","currentlyFocusedField","contentSelection","className","history","dimensions","current","flattenedStyle","flatten","heightSafePlaceholder","setEventProps","text","target","parseText","customMarkdownStyles","cursorPosition","shouldAddToHistory","parsedText","throttledAdd","processedMarkdownStyle","newMarkdownStyle","inputStyles","defaultInputStyles","caretColor","color","disabledInputStyles","undo","item","undoValue","redo","redoValue","processedValue","updateTextColor","String","handleSelectionChange","event","updateRefSelectionVariables","newSelection","start","end","markdownHTMLInput","selectionStart","selectionEnd","updateSelection","predefinedSelection","getCurrentCursorPosition","handleContentSizeChange","_dimensions$current","offsetWidth","newWidth","offsetHeight","newHeight","width","contentSize","handleOnChangeText","HTMLElement","prevSelection","prevTextLength","getPrevTextLength","changedText","newInputUpdate","inputType","normalizedText","addedText","slice","count","prevSelectionRange","before","Math","max","handleKeyPress","hostNode","stopPropagation","metaKey","preventDefault","shiftKey","blurOnSubmitDefault","shouldBlurOnSubmit","isDefaultPrevented","execCommand","scrollCursorIntoView","setTimeout","blur","handleFocus","setCursorPosition","valueLength","clearTimeout","handleBlur","removeSelection","handleClick","handlePaste","clipboardData","getData","startComposition","endComposition","setRef","currentRef","r","isFocused","activeElement","clear","undefined","parseAndStyleValue","adjustHeight","elementHeight","maxHeight","focus","contentEditable","role","onKeyDown","onCompositionStart","onCompositionEnd","onKeyUp","onInput","onPaste","create","borderColor","borderWidth","borderStyle","fontFamily","boxSizing","whiteSpace","overflowY","overflowX","overflowWrap","opacity","cursor"],"sourceRoot":"../../src","sources":["MarkdownTextInput.web.tsx"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["React","useEffect","useRef","useCallback","useMemo","useLayoutEffect","StyleSheet","updateInputStructure","InputHistory","getCurrentCursorPosition","removeSelection","setCursorPosition","getElementHeight","getPlaceholderValue","isEventComposing","normalizeValue","parseInnerHTMLToText","parseToReactDOMStyle","processMarkdownStyle","require","useClientEffect","window","focusTimeout","MarkdownTextInput","forwardRef","accessibilityLabel","accessibilityLabelledBy","accessibilityRole","autoCapitalize","autoCorrect","blurOnSubmit","clearTextOnFocus","dir","disabled","numberOfLines","multiline","markdownStyle","onBlur","onChange","onChangeText","onClick","onFocus","onKeyPress","onSelectionChange","onSubmitEditing","placeholder","placeholderTextColor","selectTextOnFocus","spellCheck","selection","style","value","autoFocus","onContentSizeChange","id","inputMode","ref","compositionRef","divRef","currentlyFocusedField","contentSelection","className","history","dimensions","pasteContent","current","flattenedStyle","flatten","heightSafePlaceholder","setEventProps","e","text","target","nativeEvent","parseText","customMarkdownStyles","cursorPosition","shouldAddToHistory","shouldForceDOMUpdate","parsedText","throttledAdd","processedMarkdownStyle","newMarkdownStyle","inputStyles","styles","defaultInputStyles","caretColor","color","disabledInputStyles","undo","item","undoValue","redo","redoValue","updateTextColor","node","String","handleSelectionChange","event","updateRefSelectionVariables","newSelection","start","end","markdownHTMLInput","selectionStart","selectionEnd","updateSelection","predefinedSelection","handleContentSizeChange","_dimensions$current","offsetWidth","newWidth","offsetHeight","newHeight","height","width","contentSize","handleOnChangeText","HTMLElement","inputType","textContent","previousText","prevSelection","newCursorPosition","Math","max","length","newInputUpdate","addedText","slice","count","prevSelectionRange","before","insertText","newText","substring","document","execCommand","handleKeyPress","hostNode","stopPropagation","key","ctrlKey","metaKey","preventDefault","shiftKey","blurOnSubmitDefault","shouldBlurOnSubmit","isComposing","isDefaultPrevented","setTimeout","blur","handleFocus","valueLength","clearTimeout","handleBlur","handleClick","handleCopy","_divRef$current","clipboardData","setData","handleCut","handlePaste","getData","startComposition","endComposition","setRef","currentRef","r","isFocused","activeElement","clear","undefined","parseAndStyleValue","normalizedValue","adjustHeight","elementHeight","maxHeight","focus","createElement","contentEditable","role","onKeyDown","onCompositionStart","onCompositionEnd","onKeyUp","onInput","onCopy","onCut","onPaste","create","borderColor","borderWidth","borderStyle","fontFamily","boxSizing","whiteSpace","overflowY","overflowX","overflowWrap","opacity","cursor"],"sourceRoot":"../../src","sources":["MarkdownTextInput.web.tsx"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Platform","FONT_FAMILY_MONOSPACE","select","ios","default","makeDefaultMarkdownStyle","syntax","color","link","h1","fontSize","emoji","blockquote","borderColor","borderWidth","marginLeft","paddingLeft","code","fontFamily","backgroundColor","pre","mentionHere","mentionUser","mentionReport","mergeMarkdownStyleWithDefault","input","output","undefined","Object","keys","forEach","key","assign"],"sourceRoot":"../../src","sources":["styleUtils.ts"],"mappings":"AAAA,SAAQA,QAAQ,QAAO,cAAc;
|
|
1
|
+
{"version":3,"names":["Platform","FONT_FAMILY_MONOSPACE","select","ios","default","makeDefaultMarkdownStyle","syntax","color","link","h1","fontSize","emoji","blockquote","borderColor","borderWidth","marginLeft","paddingLeft","code","fontFamily","backgroundColor","pre","mentionHere","mentionUser","mentionReport","mergeMarkdownStyleWithDefault","input","output","undefined","Object","keys","forEach","key","assign"],"sourceRoot":"../../src","sources":["styleUtils.ts"],"mappings":"AAAA,SAAQA,QAAQ,QAAO,cAAc;AAOrC,MAAMC,qBAAqB,GAAGD,QAAQ,CAACE,MAAM,CAAC;EAC5CC,GAAG,EAAE,SAAS;EACdC,OAAO,EAAE;AACX,CAAC,CAAC;AAEF,SAASC,wBAAwBA,CAAA,EAAkB;EACjD,OAAO;IACLC,MAAM,EAAE;MACNC,KAAK,EAAE;IACT,CAAC;IACDC,IAAI,EAAE;MACJD,KAAK,EAAE;IACT,CAAC;IACDE,EAAE,EAAE;MACFC,QAAQ,EAAE;IACZ,CAAC;IACDC,KAAK,EAAE;MACLD,QAAQ,EAAE;IACZ,CAAC;IACDE,UAAU,EAAE;MACVC,WAAW,EAAE,MAAM;MACnBC,WAAW,EAAE,CAAC;MACdC,UAAU,EAAE,CAAC;MACbC,WAAW,EAAE;IACf,CAAC;IACDC,IAAI,EAAE;MACJC,UAAU,EAAEjB,qBAAqB;MACjCS,QAAQ,EAAE,EAAE;MACZH,KAAK,EAAE,OAAO;MACdY,eAAe,EAAE;IACnB,CAAC;IACDC,GAAG,EAAE;MACHF,UAAU,EAAEjB,qBAAqB;MACjCS,QAAQ,EAAE,EAAE;MACZH,KAAK,EAAE,OAAO;MACdY,eAAe,EAAE;IACnB,CAAC;IACDE,WAAW,EAAE;MACXd,KAAK,EAAE,OAAO;MACdY,eAAe,EAAE;IACnB,CAAC;IACDG,WAAW,EAAE;MACXf,KAAK,EAAE,MAAM;MACbY,eAAe,EAAE;IACnB,CAAC;IACDI,aAAa,EAAE;MACbhB,KAAK,EAAE,KAAK;MACZY,eAAe,EAAE;IACnB;EACF,CAAC;AACH;AAEA,SAASK,6BAA6BA,CAACC,KAAuC,EAAiB;EAC7F,MAAMC,MAAM,GAAGrB,wBAAwB,CAAC,CAAC;EAEzC,IAAIoB,KAAK,KAAKE,SAAS,EAAE;IACvBC,MAAM,CAACC,IAAI,CAACJ,KAAK,CAAC,CAACK,OAAO,CAAEC,GAAG,IAAK;MAClC,IAAI,EAAEA,GAAG,IAAIL,MAAM,CAAC,EAAE;QACpB;MACF;MACAE,MAAM,CAACI,MAAM,CAACN,MAAM,CAACK,GAAG,CAAwB,EAAEN,KAAK,CAACM,GAAG,CAAwB,CAAC;IACtF,CAAC,CAAC;EACJ;EAEA,OAAOL,MAAM;AACf;AAIA,SAAQF,6BAA6B"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
function addStyleToBlock(targetElement, type, markdownStyle) {
|
|
2
|
+
const node = targetElement;
|
|
3
|
+
switch (type) {
|
|
4
|
+
case 'line':
|
|
5
|
+
Object.assign(node.style, {
|
|
6
|
+
display: 'block',
|
|
7
|
+
margin: '0',
|
|
8
|
+
padding: '0'
|
|
9
|
+
});
|
|
10
|
+
break;
|
|
11
|
+
case 'syntax':
|
|
12
|
+
Object.assign(node.style, markdownStyle.syntax);
|
|
13
|
+
break;
|
|
14
|
+
case 'bold':
|
|
15
|
+
node.style.fontWeight = 'bold';
|
|
16
|
+
break;
|
|
17
|
+
case 'italic':
|
|
18
|
+
node.style.fontStyle = 'italic';
|
|
19
|
+
break;
|
|
20
|
+
case 'strikethrough':
|
|
21
|
+
node.style.textDecoration = 'line-through';
|
|
22
|
+
break;
|
|
23
|
+
case 'emoji':
|
|
24
|
+
Object.assign(node.style, {
|
|
25
|
+
...markdownStyle.emoji,
|
|
26
|
+
verticalAlign: 'middle'
|
|
27
|
+
});
|
|
28
|
+
break;
|
|
29
|
+
case 'mention-here':
|
|
30
|
+
Object.assign(node.style, markdownStyle.mentionHere);
|
|
31
|
+
break;
|
|
32
|
+
case 'mention-user':
|
|
33
|
+
Object.assign(node.style, markdownStyle.mentionUser);
|
|
34
|
+
break;
|
|
35
|
+
case 'mention-report':
|
|
36
|
+
Object.assign(node.style, markdownStyle.mentionReport);
|
|
37
|
+
break;
|
|
38
|
+
case 'link':
|
|
39
|
+
Object.assign(node.style, {
|
|
40
|
+
...markdownStyle.link,
|
|
41
|
+
textDecoration: 'underline'
|
|
42
|
+
});
|
|
43
|
+
break;
|
|
44
|
+
case 'code':
|
|
45
|
+
Object.assign(node.style, markdownStyle.code);
|
|
46
|
+
break;
|
|
47
|
+
case 'pre':
|
|
48
|
+
Object.assign(node.style, markdownStyle.pre);
|
|
49
|
+
break;
|
|
50
|
+
case 'blockquote':
|
|
51
|
+
Object.assign(node.style, {
|
|
52
|
+
...markdownStyle.blockquote,
|
|
53
|
+
borderLeftStyle: 'solid',
|
|
54
|
+
display: 'inline-block',
|
|
55
|
+
maxWidth: '100%',
|
|
56
|
+
boxSizing: 'border-box'
|
|
57
|
+
});
|
|
58
|
+
break;
|
|
59
|
+
case 'h1':
|
|
60
|
+
Object.assign(node.style, {
|
|
61
|
+
...markdownStyle.h1,
|
|
62
|
+
fontWeight: 'bold'
|
|
63
|
+
});
|
|
64
|
+
break;
|
|
65
|
+
default:
|
|
66
|
+
break;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
// eslint-disable-next-line import/prefer-default-export
|
|
71
|
+
export { addStyleToBlock };
|
|
72
|
+
//# sourceMappingURL=blockUtils.js.map
|