phx-react 1.3.1793 → 1.3.1795
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/dist/cjs/components/Breadcrumb/Breadcrumb.js +1 -1
- package/dist/cjs/components/Breadcrumb/Breadcrumb.js.map +1 -1
- package/dist/cjs/components/TextEditorV2/constants.d.ts +1 -1
- package/dist/cjs/components/TextEditorV2/constants.js +187 -1
- package/dist/cjs/components/TextEditorV2/constants.js.map +1 -1
- package/dist/cjs/components/TextEditorV2/editor.js +4 -1
- package/dist/cjs/components/TextEditorV2/editor.js.map +1 -1
- package/dist/cjs/components/TextEditorV2/nodes/ImageNode.d.ts +99 -3
- package/dist/cjs/components/TextEditorV2/nodes/ImageNode.js +143 -9
- package/dist/cjs/components/TextEditorV2/nodes/ImageNode.js.map +1 -1
- package/dist/cjs/components/TextEditorV2/nodes/InlineImageComponent.d.ts +5 -5
- package/dist/cjs/components/TextEditorV2/nodes/InlineImageComponent.js +66 -66
- package/dist/cjs/components/TextEditorV2/nodes/InlineImageComponent.js.map +1 -1
- package/dist/cjs/components/TextEditorV2/nodes/InlineImageNode.d.ts +90 -1
- package/dist/cjs/components/TextEditorV2/nodes/InlineImageNode.js +128 -5
- package/dist/cjs/components/TextEditorV2/nodes/InlineImageNode.js.map +1 -1
- package/dist/cjs/components/TextEditorV2/nodes/MentionNode.js +2 -0
- package/dist/cjs/components/TextEditorV2/nodes/MentionNode.js.map +1 -1
- package/dist/cjs/components/TextEditorV2/plugins/ImagesPlugin/index.js +1 -0
- package/dist/cjs/components/TextEditorV2/plugins/ImagesPlugin/index.js.map +1 -1
- package/dist/cjs/components/TextEditorV2/plugins/InlineImagePlugin/index.d.ts +9 -0
- package/dist/cjs/components/TextEditorV2/plugins/InlineImagePlugin/index.js +71 -1
- package/dist/cjs/components/TextEditorV2/plugins/InlineImagePlugin/index.js.map +1 -1
- package/dist/cjs/components/TextEditorV2/plugins/PreserveFontSizeOnEnterPlugin/index.d.ts +4 -0
- package/dist/cjs/components/TextEditorV2/plugins/PreserveFontSizeOnEnterPlugin/index.js +37 -0
- package/dist/cjs/components/TextEditorV2/plugins/PreserveFontSizeOnEnterPlugin/index.js.map +1 -1
- package/dist/cjs/components/TextEditorV2/plugins/ToolbarPlugin/components/bullet.js +8 -0
- package/dist/cjs/components/TextEditorV2/plugins/ToolbarPlugin/components/bullet.js.map +1 -1
- package/dist/cjs/components/TextEditorV2/plugins/ToolbarPlugin/components/heading.d.ts +11 -0
- package/dist/cjs/components/TextEditorV2/plugins/ToolbarPlugin/components/heading.js +41 -0
- package/dist/cjs/components/TextEditorV2/plugins/ToolbarPlugin/components/heading.js.map +1 -1
- package/dist/cjs/components/TextEditorV2/plugins/ToolbarPlugin/components/number-bullet.js +8 -0
- package/dist/cjs/components/TextEditorV2/plugins/ToolbarPlugin/components/number-bullet.js.map +1 -1
- package/dist/cjs/components/TextEditorV2/plugins/ToolbarPlugin/components/text-align.d.ts +7 -1
- package/dist/cjs/components/TextEditorV2/plugins/ToolbarPlugin/components/text-align.js +47 -3
- package/dist/cjs/components/TextEditorV2/plugins/ToolbarPlugin/components/text-align.js.map +1 -1
- package/dist/cjs/components/TextEditorV2/plugins/ToolbarPlugin/index.js +42 -12
- package/dist/cjs/components/TextEditorV2/plugins/ToolbarPlugin/index.js.map +1 -1
- package/dist/cjs/components/TextEditorV2/style.js +139 -0
- package/dist/cjs/components/TextEditorV2/style.js.map +1 -1
- package/dist/cjs/components/TextEditorV2/ui/ImageResizer.js +1 -1
- package/dist/cjs/components/TextEditorV2/ui/ImageResizer.js.map +1 -1
- package/dist/esm/components/Breadcrumb/Breadcrumb.js +1 -1
- package/dist/esm/components/Breadcrumb/Breadcrumb.js.map +1 -1
- package/dist/esm/components/TextEditorV2/constants.d.ts +1 -1
- package/dist/esm/components/TextEditorV2/constants.js +187 -1
- package/dist/esm/components/TextEditorV2/constants.js.map +1 -1
- package/dist/esm/components/TextEditorV2/editor.js +4 -1
- package/dist/esm/components/TextEditorV2/editor.js.map +1 -1
- package/dist/esm/components/TextEditorV2/nodes/ImageNode.d.ts +99 -3
- package/dist/esm/components/TextEditorV2/nodes/ImageNode.js +143 -9
- package/dist/esm/components/TextEditorV2/nodes/ImageNode.js.map +1 -1
- package/dist/esm/components/TextEditorV2/nodes/InlineImageComponent.d.ts +5 -5
- package/dist/esm/components/TextEditorV2/nodes/InlineImageComponent.js +66 -65
- package/dist/esm/components/TextEditorV2/nodes/InlineImageComponent.js.map +1 -1
- package/dist/esm/components/TextEditorV2/nodes/InlineImageNode.d.ts +90 -1
- package/dist/esm/components/TextEditorV2/nodes/InlineImageNode.js +128 -5
- package/dist/esm/components/TextEditorV2/nodes/InlineImageNode.js.map +1 -1
- package/dist/esm/components/TextEditorV2/nodes/MentionNode.js +2 -0
- package/dist/esm/components/TextEditorV2/nodes/MentionNode.js.map +1 -1
- package/dist/esm/components/TextEditorV2/plugins/ImagesPlugin/index.js +1 -0
- package/dist/esm/components/TextEditorV2/plugins/ImagesPlugin/index.js.map +1 -1
- package/dist/esm/components/TextEditorV2/plugins/InlineImagePlugin/index.d.ts +9 -0
- package/dist/esm/components/TextEditorV2/plugins/InlineImagePlugin/index.js +71 -1
- package/dist/esm/components/TextEditorV2/plugins/InlineImagePlugin/index.js.map +1 -1
- package/dist/esm/components/TextEditorV2/plugins/PreserveFontSizeOnEnterPlugin/index.d.ts +4 -0
- package/dist/esm/components/TextEditorV2/plugins/PreserveFontSizeOnEnterPlugin/index.js +37 -0
- package/dist/esm/components/TextEditorV2/plugins/PreserveFontSizeOnEnterPlugin/index.js.map +1 -1
- package/dist/esm/components/TextEditorV2/plugins/ToolbarPlugin/components/bullet.js +9 -1
- package/dist/esm/components/TextEditorV2/plugins/ToolbarPlugin/components/bullet.js.map +1 -1
- package/dist/esm/components/TextEditorV2/plugins/ToolbarPlugin/components/heading.d.ts +11 -0
- package/dist/esm/components/TextEditorV2/plugins/ToolbarPlugin/components/heading.js +39 -0
- package/dist/esm/components/TextEditorV2/plugins/ToolbarPlugin/components/heading.js.map +1 -1
- package/dist/esm/components/TextEditorV2/plugins/ToolbarPlugin/components/number-bullet.js +9 -1
- package/dist/esm/components/TextEditorV2/plugins/ToolbarPlugin/components/number-bullet.js.map +1 -1
- package/dist/esm/components/TextEditorV2/plugins/ToolbarPlugin/components/text-align.d.ts +7 -1
- package/dist/esm/components/TextEditorV2/plugins/ToolbarPlugin/components/text-align.js +48 -4
- package/dist/esm/components/TextEditorV2/plugins/ToolbarPlugin/components/text-align.js.map +1 -1
- package/dist/esm/components/TextEditorV2/plugins/ToolbarPlugin/index.js +43 -13
- package/dist/esm/components/TextEditorV2/plugins/ToolbarPlugin/index.js.map +1 -1
- package/dist/esm/components/TextEditorV2/style.js +139 -0
- package/dist/esm/components/TextEditorV2/style.js.map +1 -1
- package/dist/esm/components/TextEditorV2/ui/ImageResizer.js +1 -1
- package/dist/esm/components/TextEditorV2/ui/ImageResizer.js.map +1 -1
- package/package.json +1 -1
|
@@ -10,23 +10,44 @@ import { PHXUploadFile } from '../../../UploadFile';
|
|
|
10
10
|
import { PHXSelect } from '../../../Select';
|
|
11
11
|
import { PHXInput } from '../../../Input';
|
|
12
12
|
import { PHXCheckbox } from '../../../Checkbox';
|
|
13
|
+
/**
|
|
14
|
+
* Gets the DOM selection for a target window when DOM APIs are available.
|
|
15
|
+
* @param targetWindow Window to read selection from.
|
|
16
|
+
* @returns DOM selection, or null when unavailable.
|
|
17
|
+
*/
|
|
13
18
|
const getDOMSelection = (targetWindow) => CAN_USE_DOM ? (targetWindow || window).getSelection() : null;
|
|
14
19
|
export const INSERT_INLINE_IMAGE_COMMAND = createCommand('INSERT_INLINE_IMAGE_COMMAND');
|
|
20
|
+
/**
|
|
21
|
+
* Renders the modal used to insert an inline image.
|
|
22
|
+
* @param props Insert inline image modal props.
|
|
23
|
+
* @returns Inline image insert modal element.
|
|
24
|
+
*/
|
|
15
25
|
export function InsertInlineImageModal({ activeEditor, setShow, show, }) {
|
|
16
26
|
const [cdnLink, setCdnLink] = useState('');
|
|
17
|
-
let position = '
|
|
27
|
+
let position = 'center';
|
|
18
28
|
let altText = 'photo';
|
|
19
29
|
let fileName = '';
|
|
20
30
|
let showCaption = false;
|
|
31
|
+
/**
|
|
32
|
+
* Hides the modal and resets local upload state.
|
|
33
|
+
*/
|
|
21
34
|
const onHide = () => {
|
|
22
35
|
setShow(false);
|
|
23
36
|
setCdnLink('');
|
|
24
37
|
fileName = '';
|
|
25
38
|
};
|
|
39
|
+
/**
|
|
40
|
+
* Stores uploaded file metadata returned from the CDN uploader.
|
|
41
|
+
* @param fileUpload Uploaded file object.
|
|
42
|
+
* @param linkCdn CDN URLs returned by the uploader.
|
|
43
|
+
*/
|
|
26
44
|
const handleListenUpload = (fileUpload, linkCdn) => {
|
|
27
45
|
fileName = fileUpload.name;
|
|
28
46
|
setCdnLink(linkCdn[0]);
|
|
29
47
|
};
|
|
48
|
+
/**
|
|
49
|
+
* Dispatches the inline image insert command with the current modal values.
|
|
50
|
+
*/
|
|
30
51
|
const handleSubmit = () => {
|
|
31
52
|
activeEditor.dispatchCommand(INSERT_INLINE_IMAGE_COMMAND, {
|
|
32
53
|
altText,
|
|
@@ -36,9 +57,17 @@ export function InsertInlineImageModal({ activeEditor, setShow, show, }) {
|
|
|
36
57
|
});
|
|
37
58
|
onHide();
|
|
38
59
|
};
|
|
60
|
+
/**
|
|
61
|
+
* Updates caption visibility from the checkbox field.
|
|
62
|
+
* @param e Checkbox change event.
|
|
63
|
+
*/
|
|
39
64
|
const handleShowCaptionChange = (e) => {
|
|
40
65
|
showCaption = e.target.checked;
|
|
41
66
|
};
|
|
67
|
+
/**
|
|
68
|
+
* Updates the selected inline image position.
|
|
69
|
+
* @param e Select change event.
|
|
70
|
+
*/
|
|
42
71
|
const handlePositionChange = (e) => {
|
|
43
72
|
position = e.target.value;
|
|
44
73
|
};
|
|
@@ -50,10 +79,15 @@ export function InsertInlineImageModal({ activeEditor, setShow, show, }) {
|
|
|
50
79
|
border: '1px gray solid',
|
|
51
80
|
} },
|
|
52
81
|
React.createElement("option", { value: 'left' }, "Left"),
|
|
82
|
+
React.createElement("option", { value: 'center' }, "Center"),
|
|
53
83
|
React.createElement("option", { value: 'right' }, "Right"),
|
|
54
84
|
React.createElement("option", { value: 'full' }, "Full Width")),
|
|
55
85
|
React.createElement(PHXCheckbox, { key: 'show_cation', onChange: handleShowCaptionChange, title: 'Show Caption' }))));
|
|
56
86
|
}
|
|
87
|
+
/**
|
|
88
|
+
* Registers inline image insertion and drag/drop behavior with Lexical.
|
|
89
|
+
* @returns Null because the plugin renders no UI.
|
|
90
|
+
*/
|
|
57
91
|
export default function InlineImagePlugin() {
|
|
58
92
|
const [editor] = useLexicalComposerContext();
|
|
59
93
|
useEffect(() => {
|
|
@@ -72,6 +106,11 @@ export default function InlineImagePlugin() {
|
|
|
72
106
|
return null;
|
|
73
107
|
}
|
|
74
108
|
const TRANSPARENT_IMAGE = 'data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7';
|
|
109
|
+
/**
|
|
110
|
+
* Starts dragging the currently selected inline image.
|
|
111
|
+
* @param event Drag start event from Lexical.
|
|
112
|
+
* @returns True when drag data was written.
|
|
113
|
+
*/
|
|
75
114
|
function onDragStart(event) {
|
|
76
115
|
const img = document.createElement('img');
|
|
77
116
|
img.src = TRANSPARENT_IMAGE;
|
|
@@ -91,6 +130,7 @@ function onDragStart(event) {
|
|
|
91
130
|
caption: node.__caption,
|
|
92
131
|
height: node.__height,
|
|
93
132
|
key: node.getKey(),
|
|
133
|
+
position: node.__position,
|
|
94
134
|
showCaption: node.__showCaption,
|
|
95
135
|
src: node.__src,
|
|
96
136
|
width: node.__width,
|
|
@@ -99,6 +139,11 @@ function onDragStart(event) {
|
|
|
99
139
|
}));
|
|
100
140
|
return true;
|
|
101
141
|
}
|
|
142
|
+
/**
|
|
143
|
+
* Handles drag over behavior for selected inline images.
|
|
144
|
+
* @param event Drag over event from Lexical.
|
|
145
|
+
* @returns True when an inline image is being dragged.
|
|
146
|
+
*/
|
|
102
147
|
function onDragover(event) {
|
|
103
148
|
const node = getImageNodeInSelection();
|
|
104
149
|
if (!node) {
|
|
@@ -109,6 +154,12 @@ function onDragover(event) {
|
|
|
109
154
|
}
|
|
110
155
|
return true;
|
|
111
156
|
}
|
|
157
|
+
/**
|
|
158
|
+
* Drops the dragged inline image into a valid editor location.
|
|
159
|
+
* @param event Drop event from Lexical.
|
|
160
|
+
* @param editor Active Lexical editor.
|
|
161
|
+
* @returns True when a selected inline image handled the drop.
|
|
162
|
+
*/
|
|
112
163
|
function onDrop(event, editor) {
|
|
113
164
|
const node = getImageNodeInSelection();
|
|
114
165
|
if (!node) {
|
|
@@ -131,6 +182,10 @@ function onDrop(event, editor) {
|
|
|
131
182
|
}
|
|
132
183
|
return true;
|
|
133
184
|
}
|
|
185
|
+
/**
|
|
186
|
+
* Gets the selected inline image node.
|
|
187
|
+
* @returns Selected inline image node, or null when selection is not an inline image.
|
|
188
|
+
*/
|
|
134
189
|
function getImageNodeInSelection() {
|
|
135
190
|
const selection = $getSelection();
|
|
136
191
|
if (!$isNodeSelection(selection)) {
|
|
@@ -140,6 +195,11 @@ function getImageNodeInSelection() {
|
|
|
140
195
|
const node = nodes[0];
|
|
141
196
|
return $isInlineImageNode(node) ? node : null;
|
|
142
197
|
}
|
|
198
|
+
/**
|
|
199
|
+
* Reads inline image payload from drag data.
|
|
200
|
+
* @param event Drag event carrying data transfer payload.
|
|
201
|
+
* @returns Inline image payload, or null when drag data is not an image payload.
|
|
202
|
+
*/
|
|
143
203
|
function getDragImageData(event) {
|
|
144
204
|
var _a;
|
|
145
205
|
const dragData = (_a = event.dataTransfer) === null || _a === void 0 ? void 0 : _a.getData('application/x-lexical-drag');
|
|
@@ -152,6 +212,11 @@ function getDragImageData(event) {
|
|
|
152
212
|
}
|
|
153
213
|
return data;
|
|
154
214
|
}
|
|
215
|
+
/**
|
|
216
|
+
* Checks whether an inline image can be dropped on the current event target.
|
|
217
|
+
* @param event Drag event to inspect.
|
|
218
|
+
* @returns True when the target is a valid editor drop location.
|
|
219
|
+
*/
|
|
155
220
|
function canDropImage(event) {
|
|
156
221
|
const target = event.target;
|
|
157
222
|
return !!(target &&
|
|
@@ -160,6 +225,11 @@ function canDropImage(event) {
|
|
|
160
225
|
target.parentElement &&
|
|
161
226
|
target.parentElement.closest('div.ContentEditable__root'));
|
|
162
227
|
}
|
|
228
|
+
/**
|
|
229
|
+
* Gets the DOM range at the drag event location.
|
|
230
|
+
* @param event Drag event to inspect.
|
|
231
|
+
* @returns DOM range for the drop location.
|
|
232
|
+
*/
|
|
163
233
|
function getDragSelection(event) {
|
|
164
234
|
let range;
|
|
165
235
|
const target = event.target;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../src/components/TextEditorV2/plugins/InlineImagePlugin/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,MAAM,uCAAuC,CAAA;AACjF,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AAClE,OAAO,EACL,oBAAoB,EACpB,qBAAqB,EACrB,aAAa,EACb,YAAY,EACZ,gBAAgB,EAChB,mBAAmB,EACnB,aAAa,EACb,uBAAuB,EACvB,qBAAqB,EACrB,oBAAoB,EACpB,aAAa,EACb,gBAAgB,EAChB,iBAAiB,EACjB,YAAY,GAGb,MAAM,SAAS,CAAA;AAChB,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAC3C,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B,OAAO,EACL,sBAAsB,EACtB,kBAAkB,EAClB,eAAe,GAEhB,MAAM,6BAA6B,CAAA;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAA;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAI/C,MAAM,eAAe,GAAG,CAAC,YAA2B,EAAoB,EAAE,CACxE,WAAW,CAAC,CAAC,CAAC,CAAC,YAAY,IAAI,MAAM,CAAC,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,IAAI,CAAA;AAE9D,MAAM,CAAC,MAAM,2BAA2B,GACtC,aAAa,CAAC,6BAA6B,CAAC,CAAA;AAE9C,MAAM,UAAU,sBAAsB,CAAC,EACrC,YAAY,EACZ,OAAO,EACP,IAAI,GAKL;IACC,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAS,EAAE,CAAC,CAAA;IAClD,IAAI,QAAQ,GAAa,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../src/components/TextEditorV2/plugins/InlineImagePlugin/index.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,21 @@
|
|
|
1
1
|
import { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext';
|
|
2
2
|
import { $getSelection, $isElementNode, $isRangeSelection, $isTextNode, COMMAND_PRIORITY_CRITICAL, INSERT_PARAGRAPH_COMMAND, } from 'lexical';
|
|
3
|
+
import { $isListItemNode } from '@lexical/list';
|
|
3
4
|
import { $getSelectionStyleValueForProperty, $patchStyleText, getCSSFromStyleObject, getStyleObjectFromCSS, } from '@lexical/selection';
|
|
4
5
|
import { useEffect } from 'react';
|
|
6
|
+
/**
|
|
7
|
+
* Extracts font size from a CSS style string.
|
|
8
|
+
* @param style CSS style text to parse.
|
|
9
|
+
* @returns Font size value, or an empty string when absent.
|
|
10
|
+
*/
|
|
5
11
|
function getFontSizeFromStyle(style) {
|
|
6
12
|
var _a;
|
|
7
13
|
return ((_a = getStyleObjectFromCSS(style)) === null || _a === void 0 ? void 0 : _a['font-size']) || '';
|
|
8
14
|
}
|
|
15
|
+
/**
|
|
16
|
+
* Gets the font size that should be preserved for a collapsed selection.
|
|
17
|
+
* @returns Font size value, or an empty string when no font size is available.
|
|
18
|
+
*/
|
|
9
19
|
function getCollapsedSelectionFontSize() {
|
|
10
20
|
const selection = $getSelection();
|
|
11
21
|
if (!$isRangeSelection(selection) || !selection.isCollapsed()) {
|
|
@@ -32,6 +42,30 @@ function getCollapsedSelectionFontSize() {
|
|
|
32
42
|
}
|
|
33
43
|
return '';
|
|
34
44
|
}
|
|
45
|
+
/**
|
|
46
|
+
* Checks whether the current selection is inside an empty list item.
|
|
47
|
+
* @returns True when the collapsed selection is in an empty list item.
|
|
48
|
+
*/
|
|
49
|
+
function isSelectionInEmptyListItem() {
|
|
50
|
+
const selection = $getSelection();
|
|
51
|
+
if (!$isRangeSelection(selection) || !selection.isCollapsed()) {
|
|
52
|
+
return false;
|
|
53
|
+
}
|
|
54
|
+
const anchorNode = selection.anchor.getNode();
|
|
55
|
+
if ($isListItemNode(anchorNode) && anchorNode.getChildrenSize() === 0) {
|
|
56
|
+
return true;
|
|
57
|
+
}
|
|
58
|
+
if (!$isTextNode(anchorNode)) {
|
|
59
|
+
return false;
|
|
60
|
+
}
|
|
61
|
+
const parent = anchorNode.getParent();
|
|
62
|
+
return ($isListItemNode(parent) &&
|
|
63
|
+
parent.getChildren().every((node) => $isTextNode(node) && node.getTextContent().trim() === ''));
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Preserves font size when inserting a paragraph with Enter.
|
|
67
|
+
* @returns Null because the plugin renders no UI.
|
|
68
|
+
*/
|
|
35
69
|
export default function PreserveFontSizeOnEnterPlugin() {
|
|
36
70
|
const [editor] = useLexicalComposerContext();
|
|
37
71
|
useEffect(() => {
|
|
@@ -41,6 +75,9 @@ export default function PreserveFontSizeOnEnterPlugin() {
|
|
|
41
75
|
if (!$isRangeSelection(selection) || !selection.isCollapsed() || !fontSize) {
|
|
42
76
|
return false;
|
|
43
77
|
}
|
|
78
|
+
if (isSelectionInEmptyListItem()) {
|
|
79
|
+
return false;
|
|
80
|
+
}
|
|
44
81
|
const insertedBlock = selection.insertParagraph();
|
|
45
82
|
if ($isElementNode(insertedBlock)) {
|
|
46
83
|
const insertedBlockKey = insertedBlock.getKey();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../src/components/TextEditorV2/plugins/PreserveFontSizeOnEnterPlugin/index.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../src/components/TextEditorV2/plugins/PreserveFontSizeOnEnterPlugin/index.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { INSERT_UNORDERED_LIST_COMMAND, REMOVE_LIST_COMMAND } from '@lexical/list';
|
|
2
2
|
import React from 'react';
|
|
3
3
|
import { classNames } from '../../../../types';
|
|
4
|
-
import { applyListItemFontSize, preserveHeadingFontSizeForList } from './heading';
|
|
4
|
+
import { applyHeadingTypeToSelection, applyListItemFontSize, getSelectedListHeadingTag, preserveHeadingFontSizeForList, } from './heading';
|
|
5
5
|
export default function Bullet({ editor, isActive }) {
|
|
6
6
|
return (React.createElement("div", { className: 'flex items-center gap-x-2' },
|
|
7
7
|
React.createElement("button", { type: 'button', "data-color-button": 'true', className: classNames('p-1 rounded-md duration-200 cursor-pointer', isActive ? 'bg-gray-200' : 'hover:bg-gray-200'), onClick: () => {
|
|
@@ -17,7 +17,15 @@ export default function Bullet({ editor, isActive }) {
|
|
|
17
17
|
}
|
|
18
18
|
}
|
|
19
19
|
else {
|
|
20
|
+
const headingTag = getSelectedListHeadingTag(editor);
|
|
20
21
|
editor.dispatchCommand(REMOVE_LIST_COMMAND, undefined);
|
|
22
|
+
if (headingTag !== null) {
|
|
23
|
+
queueMicrotask(() => {
|
|
24
|
+
editor.update(() => {
|
|
25
|
+
applyHeadingTypeToSelection(headingTag);
|
|
26
|
+
});
|
|
27
|
+
});
|
|
28
|
+
}
|
|
21
29
|
}
|
|
22
30
|
} },
|
|
23
31
|
React.createElement("span", null,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bullet.js","sourceRoot":"","sources":["../../../../../../../src/components/TextEditorV2/plugins/ToolbarPlugin/components/bullet.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,6BAA6B,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAA;AAElF,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAC9C,OAAO,
|
|
1
|
+
{"version":3,"file":"bullet.js","sourceRoot":"","sources":["../../../../../../../src/components/TextEditorV2/plugins/ToolbarPlugin/components/bullet.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,6BAA6B,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAA;AAElF,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAC9C,OAAO,EACL,2BAA2B,EAC3B,qBAAqB,EACrB,yBAAyB,EACzB,8BAA8B,GAC/B,MAAM,WAAW,CAAA;AAElB,MAAM,CAAC,OAAO,UAAU,MAAM,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAgD;IAC/F,OAAO,CACL,6BAAK,SAAS,EAAC,2BAA2B;QACxC,gCACE,IAAI,EAAC,QAAQ,uBACK,MAAM,EACxB,SAAS,EAAE,UAAU,CACnB,4CAA4C,EAC5C,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,mBAAmB,CAC/C,EACD,OAAO,EAAE,GAAG,EAAE;gBACZ,IAAI,CAAC,QAAQ,EAAE,CAAC;oBACd,MAAM,iBAAiB,GAAG,8BAA8B,CAAC,MAAM,CAAC,CAAA;oBAEhE,MAAM,CAAC,eAAe,CAAC,6BAA6B,EAAE,SAAS,CAAC,CAAA;oBAEhE,IAAI,iBAAiB,KAAK,IAAI,EAAE,CAAC;wBAC/B,cAAc,CAAC,GAAG,EAAE;4BAClB,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE;gCACjB,qBAAqB,CAAC,iBAAiB,CAAC,CAAA;4BAC1C,CAAC,CAAC,CAAA;wBACJ,CAAC,CAAC,CAAA;oBACJ,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACN,MAAM,UAAU,GAAG,yBAAyB,CAAC,MAAM,CAAC,CAAA;oBAEpD,MAAM,CAAC,eAAe,CAAC,mBAAmB,EAAE,SAAS,CAAC,CAAA;oBAEtD,IAAI,UAAU,KAAK,IAAI,EAAE,CAAC;wBACxB,cAAc,CAAC,GAAG,EAAE;4BAClB,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE;gCACjB,2BAA2B,CAAC,UAAU,CAAC,CAAA;4BACzC,CAAC,CAAC,CAAA;wBACJ,CAAC,CAAC,CAAA;oBACJ,CAAC;gBACH,CAAC;YACH,CAAC;YAED;gBACE,6BAAK,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,OAAO,EAAC,WAAW,EAAC,IAAI,EAAC,MAAM,EAAC,KAAK,EAAC,4BAA4B;oBAC5F,8BACE,CAAC,EAAC,uGAAuG,EACzG,IAAI,EAAC,SAAS,GACR;oBACR,8BACE,CAAC,EAAC,6GAA6G,EAC/G,IAAI,EAAC,SAAS,GACR;oBACR,8BACE,CAAC,EAAC,gHAAgH,EAClH,IAAI,EAAC,SAAS,GACR;oBACR,8BACE,CAAC,EAAC,0JAA0J,EAC5J,IAAI,EAAC,SAAS,GACR;oBACR,8BACE,CAAC,EAAC,4JAA4J,EAC9J,IAAI,EAAC,SAAS,GACR;oBACR,8BACE,CAAC,EAAC,mKAAmK,EACrK,IAAI,EAAC,SAAS,GACR,CACJ,CACD,CACA,CACL,CACP,CAAA;AACH,CAAC"}
|
|
@@ -2,6 +2,17 @@ import React from 'react';
|
|
|
2
2
|
import { HeadingTagType } from '@lexical/rich-text';
|
|
3
3
|
import { LexicalEditor } from 'lexical';
|
|
4
4
|
export declare const DEFAULT_HEADING_FONT_SIZES: Record<HeadingTagType, string>;
|
|
5
|
+
/**
|
|
6
|
+
* Gets the heading tag represented by the current selected list item font size.
|
|
7
|
+
* @param editor Active Lexical editor.
|
|
8
|
+
* @returns Matching heading tag, or null when the selected list item is normal text.
|
|
9
|
+
*/
|
|
10
|
+
export declare function getSelectedListHeadingTag(editor: LexicalEditor): HeadingTagType | null;
|
|
11
|
+
/**
|
|
12
|
+
* Converts the current selected blocks to a heading tag while preserving heading font size.
|
|
13
|
+
* @param headingTag Heading tag to apply.
|
|
14
|
+
*/
|
|
15
|
+
export declare function applyHeadingTypeToSelection(headingTag: HeadingTagType): void;
|
|
5
16
|
export declare function preserveHeadingFontSizeForList(editor: LexicalEditor): null;
|
|
6
17
|
export declare function applyListItemFontSize(defaultFontSize: string): boolean;
|
|
7
18
|
export default function HeaderDropdown({ editor, value }: {
|
|
@@ -27,6 +27,45 @@ function getListItemNode(node) {
|
|
|
27
27
|
function getHeadingNode(node) {
|
|
28
28
|
return $isHeadingNode(node) ? node : $findMatchingParent(node, (parent) => $isHeadingNode(parent));
|
|
29
29
|
}
|
|
30
|
+
/**
|
|
31
|
+
* Gets the heading tag represented by the current selected list item font size.
|
|
32
|
+
* @param editor Active Lexical editor.
|
|
33
|
+
* @returns Matching heading tag, or null when the selected list item is normal text.
|
|
34
|
+
*/
|
|
35
|
+
export function getSelectedListHeadingTag(editor) {
|
|
36
|
+
let selectedHeadingTag = null;
|
|
37
|
+
editor.getEditorState().read(() => {
|
|
38
|
+
const selection = $getSelection();
|
|
39
|
+
if (!$isRangeSelection(selection)) {
|
|
40
|
+
return;
|
|
41
|
+
}
|
|
42
|
+
const selectedNodes = [selection.anchor.getNode(), selection.focus.getNode(), ...selection.getNodes()];
|
|
43
|
+
for (const node of selectedNodes) {
|
|
44
|
+
const listItemNode = getListItemNode(node);
|
|
45
|
+
if (listItemNode === null) {
|
|
46
|
+
continue;
|
|
47
|
+
}
|
|
48
|
+
const listItemFontSize = getStyleObjectFromCSS(listItemNode.getTextStyle())['font-size'];
|
|
49
|
+
const headingEntry = Object.entries(DEFAULT_HEADING_FONT_SIZES).find(([, fontSize]) => fontSize === listItemFontSize);
|
|
50
|
+
if (headingEntry !== undefined) {
|
|
51
|
+
selectedHeadingTag = headingEntry[0];
|
|
52
|
+
return;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
});
|
|
56
|
+
return selectedHeadingTag;
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Converts the current selected blocks to a heading tag while preserving heading font size.
|
|
60
|
+
* @param headingTag Heading tag to apply.
|
|
61
|
+
*/
|
|
62
|
+
export function applyHeadingTypeToSelection(headingTag) {
|
|
63
|
+
const selection = $getSelection();
|
|
64
|
+
if (!$isRangeSelection(selection)) {
|
|
65
|
+
return;
|
|
66
|
+
}
|
|
67
|
+
$setBlocksType(selection, () => $createHeadingNode(headingTag), (prevNode) => applyHeadingFontSize(prevNode, DEFAULT_HEADING_FONT_SIZES[headingTag]));
|
|
68
|
+
}
|
|
30
69
|
export function preserveHeadingFontSizeForList(editor) {
|
|
31
70
|
let preservedFontSize = null;
|
|
32
71
|
editor.update(() => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"heading.js","sourceRoot":"","sources":["../../../../../../../src/components/TextEditorV2/plugins/ToolbarPlugin/components/heading.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"heading.js","sourceRoot":"","sources":["../../../../../../../src/components/TextEditorV2/plugins/ToolbarPlugin/components/heading.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAA;AAClH,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EACL,kBAAkB,EAClB,gBAAgB,EAChB,cAAc,GAGf,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EAAE,eAAe,EAAqB,MAAM,eAAe,CAAA;AAClE,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAA;AACpD,OAAO,EACL,oBAAoB,EACpB,aAAa,EACb,iBAAiB,GAIlB,MAAM,SAAS,CAAA;AAEhB,MAAM,CAAC,MAAM,0BAA0B,GAAmC;IACxE,EAAE,EAAE,MAAM;IACV,EAAE,EAAE,MAAM;IACV,EAAE,EAAE,MAAM;IACV,EAAE,EAAE,MAAM;IACV,EAAE,EAAE,MAAM;IACV,EAAE,EAAE,MAAM;CACX,CAAA;AAED,SAAS,oBAAoB,CAAC,IAAiB,EAAE,eAAuB;IACtE,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,eAAe,EAAE,EAAE,CAAC;QAC9C,MAAM,MAAM,GAAG,qBAAqB,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAA;QAEzD,QAAQ,CAAC,QAAQ,CACf,qBAAqB,CAAC;YACpB,GAAG,MAAM;YACT,WAAW,EAAE,eAAe;SAC7B,CAAC,CACH,CAAA;IACH,CAAC;AACH,CAAC;AAED,SAAS,eAAe,CAAC,IAAiB;IACxC,OAAO,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,mBAAmB,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAA;AACtG,CAAC;AAED,SAAS,cAAc,CAAC,IAAiB;IACvC,OAAO,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,mBAAmB,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAA;AACpG,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,yBAAyB,CAAC,MAAqB;IAC7D,IAAI,kBAAkB,GAA0B,IAAI,CAAA;IAEpD,MAAM,CAAC,cAAc,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE;QAChC,MAAM,SAAS,GAAG,aAAa,EAAE,CAAA;QAEjC,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,EAAE,CAAC;YAClC,OAAM;QACR,CAAC;QAED,MAAM,aAAa,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,SAAS,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,GAAG,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAA;QAEtG,KAAK,MAAM,IAAI,IAAI,aAAa,EAAE,CAAC;YACjC,MAAM,YAAY,GAAG,eAAe,CAAC,IAAI,CAAC,CAAA;YAE1C,IAAI,YAAY,KAAK,IAAI,EAAE,CAAC;gBAC1B,SAAQ;YACV,CAAC;YAED,MAAM,gBAAgB,GAAG,qBAAqB,CAAC,YAAY,CAAC,YAAY,EAAE,CAAC,CAAC,WAAW,CAAC,CAAA;YACxF,MAAM,YAAY,GAAG,MAAM,CAAC,OAAO,CAAC,0BAA0B,CAAC,CAAC,IAAI,CAClE,CAAC,CAAC,EAAE,QAAQ,CAAC,EAAE,EAAE,CAAC,QAAQ,KAAK,gBAAgB,CAChD,CAAA;YAED,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;gBAC/B,kBAAkB,GAAG,YAAY,CAAC,CAAC,CAAmB,CAAA;gBACtD,OAAM;YACR,CAAC;QACH,CAAC;IACH,CAAC,CAAC,CAAA;IAEF,OAAO,kBAAkB,CAAA;AAC3B,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,2BAA2B,CAAC,UAA0B;IACpE,MAAM,SAAS,GAAG,aAAa,EAAE,CAAA;IAEjC,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,EAAE,CAAC;QAClC,OAAM;IACR,CAAC;IAED,cAAc,CACZ,SAAS,EACT,GAAG,EAAE,CAAC,kBAAkB,CAAC,UAAU,CAAC,EACpC,CAAC,QAAQ,EAAE,EAAE,CAAC,oBAAoB,CAAC,QAAQ,EAAE,0BAA0B,CAAC,UAAU,CAAC,CAAC,CACrF,CAAA;AACH,CAAC;AAED,MAAM,UAAU,8BAA8B,CAAC,MAAqB;IAClE,IAAI,iBAAiB,GAAkB,IAAI,CAAA;IAE3C,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE;QACjB,MAAM,SAAS,GAAG,aAAa,EAAE,CAAA;QAEjC,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,EAAE,CAAC;YAClC,OAAM;QACR,CAAC;QAED,MAAM,YAAY,GAAG,IAAI,GAAG,EAAe,CAAA;QAC3C,MAAM,aAAa,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,SAAS,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,GAAG,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAA;QAEtG,KAAK,MAAM,IAAI,IAAI,aAAa,EAAE,CAAC;YACjC,MAAM,WAAW,GAAG,cAAc,CAAC,IAAI,CAAC,CAAA;YAExC,IAAI,WAAW,KAAK,IAAI,EAAE,CAAC;gBACzB,YAAY,CAAC,GAAG,CAAC,WAAW,CAAC,CAAA;YAC/B,CAAC;QACH,CAAC;QAED,KAAK,MAAM,WAAW,IAAI,YAAY,EAAE,CAAC;YACvC,MAAM,eAAe,GAAG,0BAA0B,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,CAAA;YAExE,iBAAiB,GAAG,eAAe,CAAA;YACnC,oBAAoB,CAAC,WAAW,EAAE,eAAe,CAAC,CAAA;QACpD,CAAC;QAED,IAAI,iBAAiB,KAAK,IAAI,EAAE,CAAC;YAC/B,eAAe,CAAC,SAAS,EAAE;gBACzB,WAAW,EAAE,iBAAiB;aAC/B,CAAC,CAAA;QACJ,CAAC;IACH,CAAC,CAAC,CAAA;IAEF,OAAO,iBAAiB,CAAA;AAC1B,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,eAAuB;IAC3D,MAAM,SAAS,GAAG,aAAa,EAAE,CAAA;IAEjC,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,EAAE,CAAC;QAClC,OAAO,KAAK,CAAA;IACd,CAAC;IAED,MAAM,aAAa,GAAG,IAAI,GAAG,EAAgB,CAAA;IAC7C,MAAM,aAAa,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,SAAS,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,GAAG,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAA;IAEtG,KAAK,MAAM,IAAI,IAAI,aAAa,EAAE,CAAC;QACjC,MAAM,YAAY,GAAG,eAAe,CAAC,IAAI,CAAC,CAAA;QAE1C,IAAI,YAAY,KAAK,IAAI,EAAE,CAAC;YAC1B,aAAa,CAAC,GAAG,CAAC,YAAY,CAAC,CAAA;QACjC,CAAC;IACH,CAAC;IAED,IAAI,aAAa,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;QAC7B,OAAO,KAAK,CAAA;IACd,CAAC;IAED,KAAK,MAAM,YAAY,IAAI,aAAa,EAAE,CAAC;QACzC,oBAAoB,CAAC,YAAY,EAAE,eAAe,CAAC,CAAA;QACnD,YAAY,CAAC,YAAY,CACvB,qBAAqB,CAAC;YACpB,GAAG,qBAAqB,CAAC,YAAY,CAAC,YAAY,EAAE,CAAC;YACrD,WAAW,EAAE,eAAe;SAC7B,CAAC,CACH,CAAA;IACH,CAAC;IAED,eAAe,CAAC,SAAS,EAAE;QACzB,WAAW,EAAE,eAAe;KAC7B,CAAC,CAAA;IAEF,OAAO,IAAI,CAAA;AACb,CAAC;AAED,MAAM,CAAC,OAAO,UAAU,cAAc,CAAC,EAAE,MAAM,EAAE,KAAK,EAA4C;IAChG,MAAM,WAAW,GAAG;QAClB;YACE,IAAI,EAAE,SAAS;YACf,KAAK,EAAE,WAAW;SACnB;QACD;YACE,IAAI,EAAE,WAAW;YACjB,KAAK,EAAE,IAAI;SACZ;QACD;YACE,IAAI,EAAE,WAAW;YACjB,KAAK,EAAE,IAAI;SACZ;QACD;YACE,IAAI,EAAE,WAAW;YACjB,KAAK,EAAE,IAAI;SACZ;QACD;YACE,IAAI,EAAE,WAAW;YACjB,KAAK,EAAE,IAAI;SACZ;QACD;YACE,IAAI,EAAE,OAAO;YACb,KAAK,EAAE,OAAO;SACf;KACF,CAAA;IAED,MAAM,gBAAgB,GAAG,CAAC,SAAiB,EAAE,EAAE;QAC7C,IAAI,SAAS,KAAK,WAAW,EAAE,CAAC;YAC9B,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE;gBACjB,IAAI,qBAAqB,CAAC,MAAM,CAAC,EAAE,CAAC;oBAClC,OAAM;gBACR,CAAC;gBAED,MAAM,SAAS,GAAQ,aAAa,EAAE,CAAA;gBACtC,cAAc,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,oBAAoB,EAAE,CAAC,CAAA;gBACvD,eAAe,CAAC,SAAS,EAAE;oBACzB,WAAW,EAAE,MAAM;iBACpB,CAAC,CAAA;YACJ,CAAC,CAAC,CAAA;QACJ,CAAC;aAAM,IAAI,SAAS,KAAK,OAAO,EAAE,CAAC;YACjC,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE;gBACjB,MAAM,SAAS,GAAQ,aAAa,EAAE,CAAA;gBACtC,cAAc,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,gBAAgB,EAAE,CAAC,CAAA;YACrD,CAAC,CAAC,CAAA;QACJ,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE;gBACjB,MAAM,SAAS,GAAQ,aAAa,EAAE,CAAA;gBACtC,MAAM,UAAU,GAAG,SAA2B,CAAA;gBAE9C,IAAI,qBAAqB,CAAC,0BAA0B,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC;oBAClE,OAAM;gBACR,CAAC;gBAED,cAAc,CACZ,SAAS,EACT,GAAG,EAAE,CAAC,kBAAkB,CAAC,UAAU,CAAC,EACpC,CAAC,QAAQ,EAAE,EAAE,CAAC,oBAAoB,CAAC,QAAQ,EAAE,0BAA0B,CAAC,UAAU,CAAC,CAAC,CACrF,CAAA;YACH,CAAC,CAAC,CAAA;QACJ,CAAC;IACH,CAAC,CAAA;IAED,OAAO,CACL,6BAAK,SAAS,EAAC,2BAA2B;QACxC,gCACE,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE;gBACd,gBAAgB,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;YAClC,CAAC,EACD,SAAS,EAAC,mIAAmI,EAC7I,KAAK,EAAE,KAAK,IAEX,WAAW,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE;YAClC,OAAO,CACL,gCAAQ,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,IACrC,OAAO,CAAC,IAAI,CACN,CACV,CAAA;QACH,CAAC,CAAC,CACK;QACT,6BAAK,SAAS,EAAC,yBAAyB,GAAO,CAC3C,CACP,CAAA;AACH,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { INSERT_ORDERED_LIST_COMMAND, REMOVE_LIST_COMMAND } from '@lexical/list';
|
|
2
2
|
import React from 'react';
|
|
3
3
|
import { classNames } from '../../../../types';
|
|
4
|
-
import { applyListItemFontSize, preserveHeadingFontSizeForList } from './heading';
|
|
4
|
+
import { applyHeadingTypeToSelection, applyListItemFontSize, getSelectedListHeadingTag, preserveHeadingFontSizeForList, } from './heading';
|
|
5
5
|
export default function NumberBullet({ editor, isActive }) {
|
|
6
6
|
return (React.createElement("div", { className: 'flex items-center gap-x-2' },
|
|
7
7
|
React.createElement("button", { type: 'button', "data-color-button": 'true', className: classNames('p-1 rounded-md duration-200 cursor-pointer', isActive ? 'bg-gray-200' : 'hover:bg-gray-200'), onClick: () => {
|
|
@@ -17,7 +17,15 @@ export default function NumberBullet({ editor, isActive }) {
|
|
|
17
17
|
}
|
|
18
18
|
}
|
|
19
19
|
else {
|
|
20
|
+
const headingTag = getSelectedListHeadingTag(editor);
|
|
20
21
|
editor.dispatchCommand(REMOVE_LIST_COMMAND, undefined);
|
|
22
|
+
if (headingTag !== null) {
|
|
23
|
+
queueMicrotask(() => {
|
|
24
|
+
editor.update(() => {
|
|
25
|
+
applyHeadingTypeToSelection(headingTag);
|
|
26
|
+
});
|
|
27
|
+
});
|
|
28
|
+
}
|
|
21
29
|
}
|
|
22
30
|
} },
|
|
23
31
|
React.createElement("span", null,
|
package/dist/esm/components/TextEditorV2/plugins/ToolbarPlugin/components/number-bullet.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"number-bullet.js","sourceRoot":"","sources":["../../../../../../../src/components/TextEditorV2/plugins/ToolbarPlugin/components/number-bullet.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,2BAA2B,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAA;AAEhF,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAC9C,OAAO,
|
|
1
|
+
{"version":3,"file":"number-bullet.js","sourceRoot":"","sources":["../../../../../../../src/components/TextEditorV2/plugins/ToolbarPlugin/components/number-bullet.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,2BAA2B,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAA;AAEhF,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAC9C,OAAO,EACL,2BAA2B,EAC3B,qBAAqB,EACrB,yBAAyB,EACzB,8BAA8B,GAC/B,MAAM,WAAW,CAAA;AAElB,MAAM,CAAC,OAAO,UAAU,YAAY,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAgD;IACrG,OAAO,CACL,6BAAK,SAAS,EAAC,2BAA2B;QACxC,gCACE,IAAI,EAAC,QAAQ,uBACK,MAAM,EACxB,SAAS,EAAE,UAAU,CACnB,4CAA4C,EAC5C,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,mBAAmB,CAC/C,EACD,OAAO,EAAE,GAAG,EAAE;gBACZ,IAAI,CAAC,QAAQ,EAAE,CAAC;oBACd,MAAM,iBAAiB,GAAG,8BAA8B,CAAC,MAAM,CAAC,CAAA;oBAEhE,MAAM,CAAC,eAAe,CAAC,2BAA2B,EAAE,SAAS,CAAC,CAAA;oBAE9D,IAAI,iBAAiB,KAAK,IAAI,EAAE,CAAC;wBAC/B,cAAc,CAAC,GAAG,EAAE;4BAClB,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE;gCACjB,qBAAqB,CAAC,iBAAiB,CAAC,CAAA;4BAC1C,CAAC,CAAC,CAAA;wBACJ,CAAC,CAAC,CAAA;oBACJ,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACN,MAAM,UAAU,GAAG,yBAAyB,CAAC,MAAM,CAAC,CAAA;oBAEpD,MAAM,CAAC,eAAe,CAAC,mBAAmB,EAAE,SAAS,CAAC,CAAA;oBAEtD,IAAI,UAAU,KAAK,IAAI,EAAE,CAAC;wBACxB,cAAc,CAAC,GAAG,EAAE;4BAClB,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE;gCACjB,2BAA2B,CAAC,UAAU,CAAC,CAAA;4BACzC,CAAC,CAAC,CAAA;wBACJ,CAAC,CAAC,CAAA;oBACJ,CAAC;gBACH,CAAC;YACH,CAAC;YAED;gBACE,6BAAK,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,OAAO,EAAC,WAAW,EAAC,IAAI,EAAC,MAAM,EAAC,KAAK,EAAC,4BAA4B;oBAC5F,8BACE,CAAC,EAAC,2aAA2a,EAC7a,IAAI,EAAC,SAAS,GACR;oBACR,8BACE,CAAC,EAAC,+KAA+K,EACjL,IAAI,EAAC,SAAS,GACR;oBACR,8BACE,CAAC,EAAC,oLAAoL,EACtL,IAAI,EAAC,SAAS,GACR;oBACR,8BACE,CAAC,EAAC,qLAAqL,EACvL,IAAI,EAAC,SAAS,GACR;oBACR,8BACE,CAAC,EAAC,2iBAA2iB,EAC7iB,IAAI,EAAC,SAAS,GACR;oBACR,8BACE,CAAC,EAAC,guBAAguB,EACluB,IAAI,EAAC,SAAS,GACR,CACJ,CACD,CACA;QACT,6BAAK,SAAS,EAAC,yBAAyB,GAAO,CAC3C,CACP,CAAA;AACH,CAAC"}
|
|
@@ -1,6 +1,12 @@
|
|
|
1
1
|
import { ElementFormatType, LexicalEditor } from 'lexical';
|
|
2
2
|
import React from 'react';
|
|
3
|
-
|
|
3
|
+
/**
|
|
4
|
+
* Renders toolbar controls for text and image alignment.
|
|
5
|
+
* @param props Text alignment toolbar props.
|
|
6
|
+
* @returns Text alignment toolbar element.
|
|
7
|
+
*/
|
|
8
|
+
export default function TextAlign({ editor, isImageSelected, value, }: {
|
|
4
9
|
editor: LexicalEditor;
|
|
10
|
+
isImageSelected: boolean;
|
|
5
11
|
value: ElementFormatType;
|
|
6
12
|
}): React.JSX.Element;
|
|
@@ -1,7 +1,44 @@
|
|
|
1
|
-
import { FORMAT_ELEMENT_COMMAND } from 'lexical';
|
|
1
|
+
import { $getNodeByKey, $getSelection, $isNodeSelection, FORMAT_ELEMENT_COMMAND, } from 'lexical';
|
|
2
2
|
import React from 'react';
|
|
3
3
|
import { classNames } from '../../../../types';
|
|
4
|
-
|
|
4
|
+
import { $isImageNode } from '../../../nodes/ImageNode';
|
|
5
|
+
import { $isInlineImageNode } from '../../../nodes/InlineImageNode';
|
|
6
|
+
/**
|
|
7
|
+
* Applies alignment directly to selected image nodes.
|
|
8
|
+
* @param editor Active Lexical editor.
|
|
9
|
+
* @param value Requested alignment value.
|
|
10
|
+
* @returns True when at least one selected image was formatted.
|
|
11
|
+
*/
|
|
12
|
+
function formatSelectedImage(editor, value) {
|
|
13
|
+
if (value !== 'left' && value !== 'center' && value !== 'right') {
|
|
14
|
+
return false;
|
|
15
|
+
}
|
|
16
|
+
let formatted = false;
|
|
17
|
+
editor.update(() => {
|
|
18
|
+
const selection = $getSelection();
|
|
19
|
+
if (!$isNodeSelection(selection)) {
|
|
20
|
+
return;
|
|
21
|
+
}
|
|
22
|
+
for (const selectedNode of selection.getNodes()) {
|
|
23
|
+
const node = $getNodeByKey(selectedNode.getKey());
|
|
24
|
+
if ($isImageNode(node)) {
|
|
25
|
+
node.setPosition(value);
|
|
26
|
+
formatted = true;
|
|
27
|
+
}
|
|
28
|
+
if ($isInlineImageNode(node)) {
|
|
29
|
+
node.update({ position: value });
|
|
30
|
+
formatted = true;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
});
|
|
34
|
+
return formatted;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Renders toolbar controls for text and image alignment.
|
|
38
|
+
* @param props Text alignment toolbar props.
|
|
39
|
+
* @returns Text alignment toolbar element.
|
|
40
|
+
*/
|
|
41
|
+
export default function TextAlign({ editor, isImageSelected, value, }) {
|
|
5
42
|
const data = [
|
|
6
43
|
{
|
|
7
44
|
icon: (React.createElement("svg", { width: '20', height: '20', viewBox: '0 0 20 20', fill: 'none', xmlns: 'http://www.w3.org/2000/svg' },
|
|
@@ -38,8 +75,15 @@ export default function TextAlign({ editor, value }) {
|
|
|
38
75
|
];
|
|
39
76
|
return (React.createElement("div", { className: 'flex items-center gap-x-2' },
|
|
40
77
|
data.map((button, index) => {
|
|
41
|
-
|
|
42
|
-
|
|
78
|
+
const isDisabled = isImageSelected && button.value === 'justify';
|
|
79
|
+
return (React.createElement("button", { key: index, type: 'button', "data-color-button": 'true', disabled: isDisabled, className: classNames('p-1 rounded-md duration-200 cursor-pointer', isDisabled ? 'cursor-not-allowed opacity-40' : '', value === button.value ? 'bg-gray-200' : 'hover:bg-gray-200'), onClick: () => {
|
|
80
|
+
if (isDisabled) {
|
|
81
|
+
return;
|
|
82
|
+
}
|
|
83
|
+
const format = button.value;
|
|
84
|
+
if (!formatSelectedImage(editor, format)) {
|
|
85
|
+
editor.dispatchCommand(FORMAT_ELEMENT_COMMAND, format);
|
|
86
|
+
}
|
|
43
87
|
} }, button.icon));
|
|
44
88
|
}),
|
|
45
89
|
React.createElement("div", { className: 'w-[1px] h-5 bg-gray-300' })));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"text-align.js","sourceRoot":"","sources":["../../../../../../../src/components/TextEditorV2/plugins/ToolbarPlugin/components/text-align.tsx"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"text-align.js","sourceRoot":"","sources":["../../../../../../../src/components/TextEditorV2/plugins/ToolbarPlugin/components/text-align.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EACb,aAAa,EACb,gBAAgB,EAEhB,sBAAsB,GAEvB,MAAM,SAAS,CAAA;AAChB,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AACvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAA;AAInE;;;;;GAKG;AACH,SAAS,mBAAmB,CAAC,MAAqB,EAAE,KAAwB;IAC1E,IAAI,KAAK,KAAK,MAAM,IAAI,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,OAAO,EAAE,CAAC;QAChE,OAAO,KAAK,CAAA;IACd,CAAC;IAED,IAAI,SAAS,GAAG,KAAK,CAAA;IACrB,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE;QACjB,MAAM,SAAS,GAAG,aAAa,EAAE,CAAA;QACjC,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,EAAE,CAAC;YACjC,OAAM;QACR,CAAC;QAED,KAAK,MAAM,YAAY,IAAI,SAAS,CAAC,QAAQ,EAAE,EAAE,CAAC;YAChD,MAAM,IAAI,GAAG,aAAa,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC,CAAA;YACjD,IAAI,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC;gBACvB,IAAI,CAAC,WAAW,CAAC,KAAuB,CAAC,CAAA;gBACzC,SAAS,GAAG,IAAI,CAAA;YAClB,CAAC;YACD,IAAI,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC7B,IAAI,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,KAAuB,EAAE,CAAC,CAAA;gBAClD,SAAS,GAAG,IAAI,CAAA;YAClB,CAAC;QACH,CAAC;IACH,CAAC,CAAC,CAAA;IAEF,OAAO,SAAS,CAAA;AAClB,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,OAAO,UAAU,SAAS,CAAC,EAChC,MAAM,EACN,eAAe,EACf,KAAK,GAKN;IACC,MAAM,IAAI,GAAG;QACX;YACE,IAAI,EAAE,CACJ,6BAAK,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,OAAO,EAAC,WAAW,EAAC,IAAI,EAAC,MAAM,EAAC,KAAK,EAAC,4BAA4B;gBAC5F,8BACE,CAAC,EAAC,2IAA2I,EAC7I,IAAI,EAAC,SAAS,GACR;gBACR,8BACE,CAAC,EAAC,gJAAgJ,EAClJ,IAAI,EAAC,SAAS,GACR;gBACR,8BACE,CAAC,EAAC,oJAAoJ,EACtJ,IAAI,EAAC,SAAS,GACR;gBACR,8BACE,CAAC,EAAC,yJAAyJ,EAC3J,IAAI,EAAC,SAAS,GACR,CACJ,CACP;YACD,KAAK,EAAE,MAAM;SACd;QACD;YACE,IAAI,EAAE,CACJ,6BAAK,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,OAAO,EAAC,WAAW,EAAC,IAAI,EAAC,MAAM,EAAC,KAAK,EAAC,4BAA4B;gBAC5F,8BACE,QAAQ,EAAC,SAAS,EAClB,QAAQ,EAAC,SAAS,EAClB,CAAC,EAAC,2IAA2I,EAC7I,IAAI,EAAC,SAAS,GACR;gBACR,8BACE,QAAQ,EAAC,SAAS,EAClB,QAAQ,EAAC,SAAS,EAClB,CAAC,EAAC,oJAAoJ,EACtJ,IAAI,EAAC,SAAS,GACR;gBACR,8BACE,QAAQ,EAAC,SAAS,EAClB,QAAQ,EAAC,SAAS,EAClB,CAAC,EAAC,oJAAoJ,EACtJ,IAAI,EAAC,SAAS,GACR;gBACR,8BACE,QAAQ,EAAC,SAAS,EAClB,QAAQ,EAAC,SAAS,EAClB,CAAC,EAAC,6JAA6J,EAC/J,IAAI,EAAC,SAAS,GACR,CACJ,CACP;YACD,KAAK,EAAE,QAAQ;SAChB;QACD;YACE,IAAI,EAAE,CACJ,6BAAK,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,OAAO,EAAC,WAAW,EAAC,IAAI,EAAC,MAAM,EAAC,KAAK,EAAC,4BAA4B;gBAC5F,8BACE,CAAC,EAAC,2IAA2I,EAC7I,IAAI,EAAC,SAAS,GACR;gBACR,8BACE,CAAC,EAAC,mJAAmJ,EACrJ,IAAI,EAAC,SAAS,GACR;gBACR,8BACE,CAAC,EAAC,oJAAoJ,EACtJ,IAAI,EAAC,SAAS,GACR;gBACR,8BACE,CAAC,EAAC,4JAA4J,EAC9J,IAAI,EAAC,SAAS,GACR,CACJ,CACP;YACD,KAAK,EAAE,OAAO;SACf;QACD;YACE,IAAI,EAAE,CACJ,6BAAK,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,OAAO,EAAC,WAAW,EAAC,IAAI,EAAC,MAAM,EAAC,KAAK,EAAC,4BAA4B;gBAC5F,8BACE,CAAC,EAAC,2IAA2I,EAC7I,IAAI,EAAC,SAAS,GACR;gBACR,8BACE,CAAC,EAAC,6IAA6I,EAC/I,IAAI,EAAC,SAAS,GACR;gBACR,8BACE,CAAC,EAAC,oJAAoJ,EACtJ,IAAI,EAAC,SAAS,GACR;gBACR,8BACE,CAAC,EAAC,sJAAsJ,EACxJ,IAAI,EAAC,SAAS,GACR,CACJ,CACP;YACD,KAAK,EAAE,SAAS;SACjB;KACF,CAAA;IACD,OAAO,CACL,6BAAK,SAAS,EAAC,2BAA2B;QACvC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;YAC1B,MAAM,UAAU,GAAG,eAAe,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS,CAAA;YAChE,OAAO,CACL,gCACE,GAAG,EAAE,KAAK,EACV,IAAI,EAAC,QAAQ,uBACK,MAAM,EACxB,QAAQ,EAAE,UAAU,EACpB,SAAS,EAAE,UAAU,CACnB,4CAA4C,EAC5C,UAAU,CAAC,CAAC,CAAC,+BAA+B,CAAC,CAAC,CAAC,EAAE,EACjD,KAAK,KAAK,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,mBAAmB,CAC7D,EACD,OAAO,EAAE,GAAG,EAAE;oBACZ,IAAI,UAAU,EAAE,CAAC;wBACf,OAAM;oBACR,CAAC;oBACD,MAAM,MAAM,GAAG,MAAM,CAAC,KAA0B,CAAA;oBAChD,IAAI,CAAC,mBAAmB,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC;wBACzC,MAAM,CAAC,eAAe,CAAC,sBAAsB,EAAE,MAAM,CAAC,CAAA;oBACxD,CAAC;gBACH,CAAC,IAEA,MAAM,CAAC,IAAI,CACL,CACV,CAAA;QACH,CAAC,CAAC;QACF,6BAAK,SAAS,EAAC,yBAAyB,GAAO,CAC3C,CACP,CAAA;AACH,CAAC"}
|