phx-react 1.3.1796 → 1.3.1797
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/TextEditorV2/plugins/ToolbarPlugin/components/heading.js +48 -1
- package/dist/cjs/components/TextEditorV2/plugins/ToolbarPlugin/components/heading.js.map +1 -1
- package/dist/esm/components/TextEditorV2/plugins/ToolbarPlugin/components/heading.js +48 -1
- package/dist/esm/components/TextEditorV2/plugins/ToolbarPlugin/components/heading.js.map +1 -1
- package/package.json +1 -1
|
@@ -21,6 +21,11 @@ exports.DEFAULT_HEADING_FONT_SIZES = {
|
|
|
21
21
|
h5: '18px',
|
|
22
22
|
h6: '16px',
|
|
23
23
|
};
|
|
24
|
+
/**
|
|
25
|
+
* Applies the heading font size to every text node inside an element.
|
|
26
|
+
* @param node Element whose text descendants should receive the font size.
|
|
27
|
+
* @param defaultFontSize Font size to write into each text node style.
|
|
28
|
+
*/
|
|
24
29
|
function applyHeadingFontSize(node, defaultFontSize) {
|
|
25
30
|
for (const textNode of node.getAllTextNodes()) {
|
|
26
31
|
const styles = (0, selection_1.getStyleObjectFromCSS)(textNode.getStyle());
|
|
@@ -30,12 +35,38 @@ function applyHeadingFontSize(node, defaultFontSize) {
|
|
|
30
35
|
}));
|
|
31
36
|
}
|
|
32
37
|
}
|
|
38
|
+
/**
|
|
39
|
+
* Finds the list item that owns a node.
|
|
40
|
+
* @param node Node inside or equal to a list item.
|
|
41
|
+
* @returns Matching list item, or null when the node is not in a list item.
|
|
42
|
+
*/
|
|
33
43
|
function getListItemNode(node) {
|
|
34
44
|
return (0, list_1.$isListItemNode)(node) ? node : (0, utils_1.$findMatchingParent)(node, (parent) => (0, list_1.$isListItemNode)(parent));
|
|
35
45
|
}
|
|
46
|
+
/**
|
|
47
|
+
* Finds the heading that owns a node.
|
|
48
|
+
* @param node Node inside or equal to a heading.
|
|
49
|
+
* @returns Matching heading, or null when the node is not in a heading.
|
|
50
|
+
*/
|
|
36
51
|
function getHeadingNode(node) {
|
|
37
52
|
return (0, rich_text_1.$isHeadingNode)(node) ? node : (0, utils_1.$findMatchingParent)(node, (parent) => (0, rich_text_1.$isHeadingNode)(parent));
|
|
38
53
|
}
|
|
54
|
+
/**
|
|
55
|
+
* Checks whether the current range is only part of one top-level block.
|
|
56
|
+
* @param selection Current range selection.
|
|
57
|
+
* @returns True when the selection should be formatted inline instead of changing the block type.
|
|
58
|
+
*/
|
|
59
|
+
function isPartialSelectionInsideSingleBlock(selection) {
|
|
60
|
+
if (selection.isCollapsed()) {
|
|
61
|
+
return false;
|
|
62
|
+
}
|
|
63
|
+
const anchorBlock = selection.anchor.getNode().getTopLevelElement();
|
|
64
|
+
const focusBlock = selection.focus.getNode().getTopLevelElement();
|
|
65
|
+
if (anchorBlock === null || focusBlock === null || !anchorBlock.is(focusBlock)) {
|
|
66
|
+
return false;
|
|
67
|
+
}
|
|
68
|
+
return selection.getTextContent().length < anchorBlock.getTextContent().length;
|
|
69
|
+
}
|
|
39
70
|
/**
|
|
40
71
|
* Gets the heading tag represented by the current selected list item font size.
|
|
41
72
|
* @param editor Active Lexical editor.
|
|
@@ -158,13 +189,23 @@ function HeaderDropdown({ editor, value }) {
|
|
|
158
189
|
value: 'quote',
|
|
159
190
|
},
|
|
160
191
|
];
|
|
192
|
+
/**
|
|
193
|
+
* Applies a paragraph, quote, or heading choice to the current editor selection.
|
|
194
|
+
* @param nextValue Selected dropdown value.
|
|
195
|
+
*/
|
|
161
196
|
const handleChangeFont = (nextValue) => {
|
|
162
197
|
if (nextValue === 'paragraph') {
|
|
163
198
|
editor.update(() => {
|
|
199
|
+
const selection = (0, lexical_1.$getSelection)();
|
|
200
|
+
if ((0, lexical_1.$isRangeSelection)(selection) && isPartialSelectionInsideSingleBlock(selection)) {
|
|
201
|
+
(0, selection_1.$patchStyleText)(selection, {
|
|
202
|
+
'font-size': '14px',
|
|
203
|
+
});
|
|
204
|
+
return;
|
|
205
|
+
}
|
|
164
206
|
if (applyListItemFontSize('14px')) {
|
|
165
207
|
return;
|
|
166
208
|
}
|
|
167
|
-
const selection = (0, lexical_1.$getSelection)();
|
|
168
209
|
(0, selection_1.$setBlocksType)(selection, () => (0, lexical_1.$createParagraphNode)(), (prevNode) => applyHeadingFontSize(prevNode, '14px'));
|
|
169
210
|
const nextSelection = (0, lexical_1.$getSelection)();
|
|
170
211
|
if ((0, lexical_1.$isRangeSelection)(nextSelection)) {
|
|
@@ -184,6 +225,12 @@ function HeaderDropdown({ editor, value }) {
|
|
|
184
225
|
editor.update(() => {
|
|
185
226
|
const selection = (0, lexical_1.$getSelection)();
|
|
186
227
|
const headingTag = nextValue;
|
|
228
|
+
if ((0, lexical_1.$isRangeSelection)(selection) && isPartialSelectionInsideSingleBlock(selection)) {
|
|
229
|
+
(0, selection_1.$patchStyleText)(selection, {
|
|
230
|
+
'font-size': exports.DEFAULT_HEADING_FONT_SIZES[headingTag],
|
|
231
|
+
});
|
|
232
|
+
return;
|
|
233
|
+
}
|
|
187
234
|
if (applyListItemFontSize(exports.DEFAULT_HEADING_FONT_SIZES[headingTag])) {
|
|
188
235
|
return;
|
|
189
236
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"heading.js","sourceRoot":"","sources":["../../../../../../../src/components/TextEditorV2/plugins/ToolbarPlugin/components/heading.tsx"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"heading.js","sourceRoot":"","sources":["../../../../../../../src/components/TextEditorV2/plugins/ToolbarPlugin/components/heading.tsx"],"names":[],"mappings":";;;AA2FA,8DAgCC;AAMD,kEAYC;AAED,wEAoCC;AAED,sDAqCC;AAED,iCAgHC;;AA5UD,kDAAkH;AAClH,0DAAyB;AACzB,kDAM2B;AAC3B,wCAAkE;AAClE,0CAAoD;AACpD,qCAQgB;AAEH,QAAA,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;;;;GAIG;AACH,SAAS,oBAAoB,CAAC,IAAiB,EAAE,eAAuB;IACtE,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,eAAe,EAAE,EAAE,CAAC;QAC9C,MAAM,MAAM,GAAG,IAAA,iCAAqB,EAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAA;QAEzD,QAAQ,CAAC,QAAQ,CACf,IAAA,iCAAqB,EAAC;YACpB,GAAG,MAAM;YACT,WAAW,EAAE,eAAe;SAC7B,CAAC,CACH,CAAA;IACH,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,SAAS,eAAe,CAAC,IAAiB;IACxC,OAAO,IAAA,sBAAe,EAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAA,2BAAmB,EAAC,IAAI,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,IAAA,sBAAe,EAAC,MAAM,CAAC,CAAC,CAAA;AACtG,CAAC;AAED;;;;GAIG;AACH,SAAS,cAAc,CAAC,IAAiB;IACvC,OAAO,IAAA,0BAAc,EAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAA,2BAAmB,EAAC,IAAI,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,IAAA,0BAAc,EAAC,MAAM,CAAC,CAAC,CAAA;AACpG,CAAC;AAED;;;;GAIG;AACH,SAAS,mCAAmC,CAAC,SAAyB;IACpE,IAAI,SAAS,CAAC,WAAW,EAAE,EAAE,CAAC;QAC5B,OAAO,KAAK,CAAA;IACd,CAAC;IAED,MAAM,WAAW,GAAG,SAAS,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,kBAAkB,EAAE,CAAA;IACnE,MAAM,UAAU,GAAG,SAAS,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,kBAAkB,EAAE,CAAA;IAEjE,IAAI,WAAW,KAAK,IAAI,IAAI,UAAU,KAAK,IAAI,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC;QAC/E,OAAO,KAAK,CAAA;IACd,CAAC;IAED,OAAO,SAAS,CAAC,cAAc,EAAE,CAAC,MAAM,GAAG,WAAW,CAAC,cAAc,EAAE,CAAC,MAAM,CAAA;AAChF,CAAC;AAED;;;;GAIG;AACH,SAAgB,yBAAyB,CAAC,MAAqB;IAC7D,IAAI,kBAAkB,GAA0B,IAAI,CAAA;IAEpD,MAAM,CAAC,cAAc,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE;QAChC,MAAM,SAAS,GAAG,IAAA,uBAAa,GAAE,CAAA;QAEjC,IAAI,CAAC,IAAA,2BAAiB,EAAC,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,IAAA,iCAAqB,EAAC,YAAY,CAAC,YAAY,EAAE,CAAC,CAAC,WAAW,CAAC,CAAA;YACxF,MAAM,YAAY,GAAG,MAAM,CAAC,OAAO,CAAC,kCAA0B,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,SAAgB,2BAA2B,CAAC,UAA0B;IACpE,MAAM,SAAS,GAAG,IAAA,uBAAa,GAAE,CAAA;IAEjC,IAAI,CAAC,IAAA,2BAAiB,EAAC,SAAS,CAAC,EAAE,CAAC;QAClC,OAAM;IACR,CAAC;IAED,IAAA,0BAAc,EACZ,SAAS,EACT,GAAG,EAAE,CAAC,IAAA,8BAAkB,EAAC,UAAU,CAAC,EACpC,CAAC,QAAQ,EAAE,EAAE,CAAC,oBAAoB,CAAC,QAAQ,EAAE,kCAA0B,CAAC,UAAU,CAAC,CAAC,CACrF,CAAA;AACH,CAAC;AAED,SAAgB,8BAA8B,CAAC,MAAqB;IAClE,IAAI,iBAAiB,GAAkB,IAAI,CAAA;IAE3C,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE;QACjB,MAAM,SAAS,GAAG,IAAA,uBAAa,GAAE,CAAA;QAEjC,IAAI,CAAC,IAAA,2BAAiB,EAAC,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,kCAA0B,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,IAAA,2BAAe,EAAC,SAAS,EAAE;gBACzB,WAAW,EAAE,iBAAiB;aAC/B,CAAC,CAAA;QACJ,CAAC;IACH,CAAC,CAAC,CAAA;IAEF,OAAO,iBAAiB,CAAA;AAC1B,CAAC;AAED,SAAgB,qBAAqB,CAAC,eAAuB;IAC3D,MAAM,SAAS,GAAG,IAAA,uBAAa,GAAE,CAAA;IAEjC,IAAI,CAAC,IAAA,2BAAiB,EAAC,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,IAAA,iCAAqB,EAAC;YACpB,GAAG,IAAA,iCAAqB,EAAC,YAAY,CAAC,YAAY,EAAE,CAAC;YACrD,WAAW,EAAE,eAAe;SAC7B,CAAC,CACH,CAAA;IACH,CAAC;IAED,IAAA,2BAAe,EAAC,SAAS,EAAE;QACzB,WAAW,EAAE,eAAe;KAC7B,CAAC,CAAA;IAEF,OAAO,IAAI,CAAA;AACb,CAAC;AAED,SAAwB,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;;;OAGG;IACH,MAAM,gBAAgB,GAAG,CAAC,SAAiB,EAAE,EAAE;QAC7C,IAAI,SAAS,KAAK,WAAW,EAAE,CAAC;YAC9B,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE;gBACjB,MAAM,SAAS,GAAG,IAAA,uBAAa,GAAE,CAAA;gBAEjC,IAAI,IAAA,2BAAiB,EAAC,SAAS,CAAC,IAAI,mCAAmC,CAAC,SAAS,CAAC,EAAE,CAAC;oBACnF,IAAA,2BAAe,EAAC,SAAS,EAAE;wBACzB,WAAW,EAAE,MAAM;qBACpB,CAAC,CAAA;oBACF,OAAM;gBACR,CAAC;gBAED,IAAI,qBAAqB,CAAC,MAAM,CAAC,EAAE,CAAC;oBAClC,OAAM;gBACR,CAAC;gBAED,IAAA,0BAAc,EACZ,SAAS,EACT,GAAG,EAAE,CAAC,IAAA,8BAAoB,GAAE,EAC5B,CAAC,QAAQ,EAAE,EAAE,CAAC,oBAAoB,CAAC,QAAQ,EAAE,MAAM,CAAC,CACrD,CAAA;gBAED,MAAM,aAAa,GAAG,IAAA,uBAAa,GAAE,CAAA;gBAErC,IAAI,IAAA,2BAAiB,EAAC,aAAa,CAAC,EAAE,CAAC;oBACrC,IAAA,2BAAe,EAAC,aAAa,EAAE;wBAC7B,WAAW,EAAE,MAAM;qBACpB,CAAC,CAAA;gBACJ,CAAC;YACH,CAAC,CAAC,CAAA;QACJ,CAAC;aAAM,IAAI,SAAS,KAAK,OAAO,EAAE,CAAC;YACjC,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE;gBACjB,MAAM,SAAS,GAAQ,IAAA,uBAAa,GAAE,CAAA;gBACtC,IAAA,0BAAc,EAAC,SAAS,EAAE,GAAG,EAAE,CAAC,IAAA,4BAAgB,GAAE,CAAC,CAAA;YACrD,CAAC,CAAC,CAAA;QACJ,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE;gBACjB,MAAM,SAAS,GAAG,IAAA,uBAAa,GAAE,CAAA;gBACjC,MAAM,UAAU,GAAG,SAA2B,CAAA;gBAE9C,IAAI,IAAA,2BAAiB,EAAC,SAAS,CAAC,IAAI,mCAAmC,CAAC,SAAS,CAAC,EAAE,CAAC;oBACnF,IAAA,2BAAe,EAAC,SAAS,EAAE;wBACzB,WAAW,EAAE,kCAA0B,CAAC,UAAU,CAAC;qBACpD,CAAC,CAAA;oBACF,OAAM;gBACR,CAAC;gBAED,IAAI,qBAAqB,CAAC,kCAA0B,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC;oBAClE,OAAM;gBACR,CAAC;gBAED,IAAA,0BAAc,EACZ,SAAS,EACT,GAAG,EAAE,CAAC,IAAA,8BAAkB,EAAC,UAAU,CAAC,EACpC,CAAC,QAAQ,EAAE,EAAE,CAAC,oBAAoB,CAAC,QAAQ,EAAE,kCAA0B,CAAC,UAAU,CAAC,CAAC,CACrF,CAAA;YACH,CAAC,CAAC,CAAA;QACJ,CAAC;IACH,CAAC,CAAA;IAED,OAAO,CACL,uCAAK,SAAS,EAAC,2BAA2B;QACxC,0CACE,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,0CAAQ,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,IACrC,OAAO,CAAC,IAAI,CACN,CACV,CAAA;QACH,CAAC,CAAC,CACK;QACT,uCAAK,SAAS,EAAC,yBAAyB,GAAO,CAC3C,CACP,CAAA;AACH,CAAC"}
|
|
@@ -12,6 +12,11 @@ export const DEFAULT_HEADING_FONT_SIZES = {
|
|
|
12
12
|
h5: '18px',
|
|
13
13
|
h6: '16px',
|
|
14
14
|
};
|
|
15
|
+
/**
|
|
16
|
+
* Applies the heading font size to every text node inside an element.
|
|
17
|
+
* @param node Element whose text descendants should receive the font size.
|
|
18
|
+
* @param defaultFontSize Font size to write into each text node style.
|
|
19
|
+
*/
|
|
15
20
|
function applyHeadingFontSize(node, defaultFontSize) {
|
|
16
21
|
for (const textNode of node.getAllTextNodes()) {
|
|
17
22
|
const styles = getStyleObjectFromCSS(textNode.getStyle());
|
|
@@ -21,12 +26,38 @@ function applyHeadingFontSize(node, defaultFontSize) {
|
|
|
21
26
|
}));
|
|
22
27
|
}
|
|
23
28
|
}
|
|
29
|
+
/**
|
|
30
|
+
* Finds the list item that owns a node.
|
|
31
|
+
* @param node Node inside or equal to a list item.
|
|
32
|
+
* @returns Matching list item, or null when the node is not in a list item.
|
|
33
|
+
*/
|
|
24
34
|
function getListItemNode(node) {
|
|
25
35
|
return $isListItemNode(node) ? node : $findMatchingParent(node, (parent) => $isListItemNode(parent));
|
|
26
36
|
}
|
|
37
|
+
/**
|
|
38
|
+
* Finds the heading that owns a node.
|
|
39
|
+
* @param node Node inside or equal to a heading.
|
|
40
|
+
* @returns Matching heading, or null when the node is not in a heading.
|
|
41
|
+
*/
|
|
27
42
|
function getHeadingNode(node) {
|
|
28
43
|
return $isHeadingNode(node) ? node : $findMatchingParent(node, (parent) => $isHeadingNode(parent));
|
|
29
44
|
}
|
|
45
|
+
/**
|
|
46
|
+
* Checks whether the current range is only part of one top-level block.
|
|
47
|
+
* @param selection Current range selection.
|
|
48
|
+
* @returns True when the selection should be formatted inline instead of changing the block type.
|
|
49
|
+
*/
|
|
50
|
+
function isPartialSelectionInsideSingleBlock(selection) {
|
|
51
|
+
if (selection.isCollapsed()) {
|
|
52
|
+
return false;
|
|
53
|
+
}
|
|
54
|
+
const anchorBlock = selection.anchor.getNode().getTopLevelElement();
|
|
55
|
+
const focusBlock = selection.focus.getNode().getTopLevelElement();
|
|
56
|
+
if (anchorBlock === null || focusBlock === null || !anchorBlock.is(focusBlock)) {
|
|
57
|
+
return false;
|
|
58
|
+
}
|
|
59
|
+
return selection.getTextContent().length < anchorBlock.getTextContent().length;
|
|
60
|
+
}
|
|
30
61
|
/**
|
|
31
62
|
* Gets the heading tag represented by the current selected list item font size.
|
|
32
63
|
* @param editor Active Lexical editor.
|
|
@@ -149,13 +180,23 @@ export default function HeaderDropdown({ editor, value }) {
|
|
|
149
180
|
value: 'quote',
|
|
150
181
|
},
|
|
151
182
|
];
|
|
183
|
+
/**
|
|
184
|
+
* Applies a paragraph, quote, or heading choice to the current editor selection.
|
|
185
|
+
* @param nextValue Selected dropdown value.
|
|
186
|
+
*/
|
|
152
187
|
const handleChangeFont = (nextValue) => {
|
|
153
188
|
if (nextValue === 'paragraph') {
|
|
154
189
|
editor.update(() => {
|
|
190
|
+
const selection = $getSelection();
|
|
191
|
+
if ($isRangeSelection(selection) && isPartialSelectionInsideSingleBlock(selection)) {
|
|
192
|
+
$patchStyleText(selection, {
|
|
193
|
+
'font-size': '14px',
|
|
194
|
+
});
|
|
195
|
+
return;
|
|
196
|
+
}
|
|
155
197
|
if (applyListItemFontSize('14px')) {
|
|
156
198
|
return;
|
|
157
199
|
}
|
|
158
|
-
const selection = $getSelection();
|
|
159
200
|
$setBlocksType(selection, () => $createParagraphNode(), (prevNode) => applyHeadingFontSize(prevNode, '14px'));
|
|
160
201
|
const nextSelection = $getSelection();
|
|
161
202
|
if ($isRangeSelection(nextSelection)) {
|
|
@@ -175,6 +216,12 @@ export default function HeaderDropdown({ editor, value }) {
|
|
|
175
216
|
editor.update(() => {
|
|
176
217
|
const selection = $getSelection();
|
|
177
218
|
const headingTag = nextValue;
|
|
219
|
+
if ($isRangeSelection(selection) && isPartialSelectionInsideSingleBlock(selection)) {
|
|
220
|
+
$patchStyleText(selection, {
|
|
221
|
+
'font-size': DEFAULT_HEADING_FONT_SIZES[headingTag],
|
|
222
|
+
});
|
|
223
|
+
return;
|
|
224
|
+
}
|
|
178
225
|
if (applyListItemFontSize(DEFAULT_HEADING_FONT_SIZES[headingTag])) {
|
|
179
226
|
return;
|
|
180
227
|
}
|
|
@@ -1 +1 @@
|
|
|
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,
|
|
1
|
+
{"version":3,"file":"heading.js","sourceRoot":"","sources":["../../../../../../../src/components/TextEditorV2/plugins/ToolbarPlugin/components/heading.tsx"],"names":[],"mappings":"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"}
|