phx-react 1.3.1799 → 1.3.1800
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/bullet.js +3 -3
- package/dist/cjs/components/TextEditorV2/plugins/ToolbarPlugin/components/bullet.js.map +1 -1
- package/dist/cjs/components/TextEditorV2/plugins/ToolbarPlugin/components/font-size.d.ts +11 -1
- package/dist/cjs/components/TextEditorV2/plugins/ToolbarPlugin/components/font-size.js +100 -4
- package/dist/cjs/components/TextEditorV2/plugins/ToolbarPlugin/components/font-size.js.map +1 -1
- package/dist/cjs/components/TextEditorV2/plugins/ToolbarPlugin/components/heading.d.ts +44 -2
- package/dist/cjs/components/TextEditorV2/plugins/ToolbarPlugin/components/heading.js +105 -16
- package/dist/cjs/components/TextEditorV2/plugins/ToolbarPlugin/components/heading.js.map +1 -1
- package/dist/cjs/components/TextEditorV2/plugins/ToolbarPlugin/components/number-bullet.js +3 -3
- package/dist/cjs/components/TextEditorV2/plugins/ToolbarPlugin/components/number-bullet.js.map +1 -1
- package/dist/cjs/components/TextEditorV2/plugins/ToolbarPlugin/index.js +24 -5
- package/dist/cjs/components/TextEditorV2/plugins/ToolbarPlugin/index.js.map +1 -1
- package/dist/esm/components/TextEditorV2/plugins/ToolbarPlugin/components/bullet.js +3 -3
- package/dist/esm/components/TextEditorV2/plugins/ToolbarPlugin/components/bullet.js.map +1 -1
- package/dist/esm/components/TextEditorV2/plugins/ToolbarPlugin/components/font-size.d.ts +11 -1
- package/dist/esm/components/TextEditorV2/plugins/ToolbarPlugin/components/font-size.js +101 -5
- package/dist/esm/components/TextEditorV2/plugins/ToolbarPlugin/components/font-size.js.map +1 -1
- package/dist/esm/components/TextEditorV2/plugins/ToolbarPlugin/components/heading.d.ts +44 -2
- package/dist/esm/components/TextEditorV2/plugins/ToolbarPlugin/components/heading.js +102 -17
- package/dist/esm/components/TextEditorV2/plugins/ToolbarPlugin/components/heading.js.map +1 -1
- package/dist/esm/components/TextEditorV2/plugins/ToolbarPlugin/components/number-bullet.js +3 -3
- package/dist/esm/components/TextEditorV2/plugins/ToolbarPlugin/components/number-bullet.js.map +1 -1
- package/dist/esm/components/TextEditorV2/plugins/ToolbarPlugin/index.js +25 -6
- package/dist/esm/components/TextEditorV2/plugins/ToolbarPlugin/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -10,12 +10,12 @@ function Bullet({ editor, isActive }) {
|
|
|
10
10
|
return (react_1.default.createElement("div", { className: 'flex items-center gap-x-2' },
|
|
11
11
|
react_1.default.createElement("button", { type: 'button', "data-color-button": 'true', className: (0, types_1.classNames)('p-1 rounded-md duration-200 cursor-pointer', isActive ? 'bg-gray-200' : 'hover:bg-gray-200'), onClick: () => {
|
|
12
12
|
if (!isActive) {
|
|
13
|
-
const
|
|
13
|
+
const preservedHeading = (0, heading_1.preserveHeadingFontSizeForList)(editor);
|
|
14
14
|
editor.dispatchCommand(list_1.INSERT_UNORDERED_LIST_COMMAND, undefined);
|
|
15
|
-
if (
|
|
15
|
+
if (preservedHeading !== null) {
|
|
16
16
|
queueMicrotask(() => {
|
|
17
17
|
editor.update(() => {
|
|
18
|
-
(0, heading_1.applyListItemFontSize)(
|
|
18
|
+
(0, heading_1.applyListItemFontSize)(preservedHeading.fontSize, preservedHeading.headingTag);
|
|
19
19
|
});
|
|
20
20
|
});
|
|
21
21
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bullet.js","sourceRoot":"","sources":["../../../../../../../src/components/TextEditorV2/plugins/ToolbarPlugin/components/bullet.tsx"],"names":[],"mappings":";;AAWA,yBAqEC;;AAhFD,wCAAkF;AAElF,0DAAyB;AACzB,6CAA8C;AAC9C,uCAKkB;AAElB,SAAwB,MAAM,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAgD;IAC/F,OAAO,CACL,uCAAK,SAAS,EAAC,2BAA2B;QACxC,0CACE,IAAI,EAAC,QAAQ,uBACK,MAAM,EACxB,SAAS,EAAE,IAAA,kBAAU,EACnB,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,
|
|
1
|
+
{"version":3,"file":"bullet.js","sourceRoot":"","sources":["../../../../../../../src/components/TextEditorV2/plugins/ToolbarPlugin/components/bullet.tsx"],"names":[],"mappings":";;AAWA,yBAqEC;;AAhFD,wCAAkF;AAElF,0DAAyB;AACzB,6CAA8C;AAC9C,uCAKkB;AAElB,SAAwB,MAAM,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAgD;IAC/F,OAAO,CACL,uCAAK,SAAS,EAAC,2BAA2B;QACxC,0CACE,IAAI,EAAC,QAAQ,uBACK,MAAM,EACxB,SAAS,EAAE,IAAA,kBAAU,EACnB,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,gBAAgB,GAAG,IAAA,wCAA8B,EAAC,MAAM,CAAC,CAAA;oBAE/D,MAAM,CAAC,eAAe,CAAC,oCAA6B,EAAE,SAAS,CAAC,CAAA;oBAEhE,IAAI,gBAAgB,KAAK,IAAI,EAAE,CAAC;wBAC9B,cAAc,CAAC,GAAG,EAAE;4BAClB,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE;gCACjB,IAAA,+BAAqB,EAAC,gBAAgB,CAAC,QAAQ,EAAE,gBAAgB,CAAC,UAAU,CAAC,CAAA;4BAC/E,CAAC,CAAC,CAAA;wBACJ,CAAC,CAAC,CAAA;oBACJ,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACN,MAAM,UAAU,GAAG,IAAA,mCAAyB,EAAC,MAAM,CAAC,CAAA;oBAEpD,MAAM,CAAC,eAAe,CAAC,0BAAmB,EAAE,SAAS,CAAC,CAAA;oBAEtD,IAAI,UAAU,KAAK,IAAI,EAAE,CAAC;wBACxB,cAAc,CAAC,GAAG,EAAE;4BAClB,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE;gCACjB,IAAA,qCAA2B,EAAC,UAAU,CAAC,CAAA;4BACzC,CAAC,CAAC,CAAA;wBACJ,CAAC,CAAC,CAAA;oBACJ,CAAC;gBACH,CAAC;YACH,CAAC;YAED;gBACE,uCAAK,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,OAAO,EAAC,WAAW,EAAC,IAAI,EAAC,MAAM,EAAC,KAAK,EAAC,4BAA4B;oBAC5F,wCACE,CAAC,EAAC,uGAAuG,EACzG,IAAI,EAAC,SAAS,GACR;oBACR,wCACE,CAAC,EAAC,6GAA6G,EAC/G,IAAI,EAAC,SAAS,GACR;oBACR,wCACE,CAAC,EAAC,gHAAgH,EAClH,IAAI,EAAC,SAAS,GACR;oBACR,wCACE,CAAC,EAAC,0JAA0J,EAC5J,IAAI,EAAC,SAAS,GACR;oBACR,wCACE,CAAC,EAAC,4JAA4J,EAC9J,IAAI,EAAC,SAAS,GACR;oBACR,wCACE,CAAC,EAAC,mKAAmK,EACrK,IAAI,EAAC,SAAS,GACR,CACJ,CACD,CACA,CACL,CACP,CAAA;AACH,CAAC"}
|
|
@@ -1,6 +1,16 @@
|
|
|
1
1
|
import { LexicalEditor } from 'lexical';
|
|
2
2
|
import React from 'react';
|
|
3
|
-
|
|
3
|
+
import { type HeadingTagType } from '@lexical/rich-text';
|
|
4
|
+
/**
|
|
5
|
+
* Renders controls for applying inline font size to the current selection.
|
|
6
|
+
* @param props Font size control props.
|
|
7
|
+
* @param props.fontSize Current selected font size.
|
|
8
|
+
* @param props.editor Active Lexical editor.
|
|
9
|
+
* @param props.listHeadingTag Current list heading type that should survive font-size changes.
|
|
10
|
+
* @returns Font size toolbar controls.
|
|
11
|
+
*/
|
|
12
|
+
export default function FontSize({ fontSize, editor, listHeadingTag, }: {
|
|
4
13
|
fontSize: number | null;
|
|
5
14
|
editor: LexicalEditor;
|
|
15
|
+
listHeadingTag: HeadingTagType | null;
|
|
6
16
|
}): React.JSX.Element;
|
|
@@ -2,10 +2,102 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.default = FontSize;
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
|
+
const list_1 = require("@lexical/list");
|
|
6
|
+
const utils_1 = require("@lexical/utils");
|
|
5
7
|
const lexical_1 = require("lexical");
|
|
6
8
|
const react_1 = tslib_1.__importStar(require("react"));
|
|
7
9
|
const selection_1 = require("@lexical/selection");
|
|
8
|
-
|
|
10
|
+
const heading_1 = require("./heading");
|
|
11
|
+
/**
|
|
12
|
+
* Finds the list item that owns a node.
|
|
13
|
+
* @param node Node inside or equal to a list item.
|
|
14
|
+
* @returns Matching list item, or null when the node is not in a list item.
|
|
15
|
+
*/
|
|
16
|
+
function getListItemNode(node) {
|
|
17
|
+
return (0, list_1.$isListItemNode)(node) ? node : (0, utils_1.$findMatchingParent)(node, (parent) => (0, list_1.$isListItemNode)(parent));
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Gets selected list items from the current range.
|
|
21
|
+
* @param selection Current range selection.
|
|
22
|
+
* @returns Unique list item nodes touched by the selection.
|
|
23
|
+
*/
|
|
24
|
+
function getSelectedListItems(selection) {
|
|
25
|
+
const listItemNodes = new Set();
|
|
26
|
+
const selectedNodes = [selection.anchor.getNode(), selection.focus.getNode(), ...selection.getNodes()];
|
|
27
|
+
for (const node of selectedNodes) {
|
|
28
|
+
const listItemNode = getListItemNode(node);
|
|
29
|
+
if (listItemNode !== null) {
|
|
30
|
+
listItemNodes.add(listItemNode);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
return listItemNodes;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Reads heading metadata from selected list items.
|
|
37
|
+
* @param selection Current range selection.
|
|
38
|
+
* @returns Selected list heading tag, or null when the selection is normal list text.
|
|
39
|
+
*/
|
|
40
|
+
function getSelectedListHeadingTag(selection) {
|
|
41
|
+
for (const listItemNode of getSelectedListItems(selection)) {
|
|
42
|
+
const headingTag = (0, heading_1.getListItemHeadingTag)(listItemNode);
|
|
43
|
+
if (headingTag !== null) {
|
|
44
|
+
return headingTag;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
return null;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Applies font size to selected list items and their marker style.
|
|
51
|
+
* @param listItemNodes List items touched by the selection.
|
|
52
|
+
* @param fontSize Font size to apply.
|
|
53
|
+
* @param headingTag Heading type to preserve, or null for normal list text.
|
|
54
|
+
* @param shouldApplyMarkerStyle True when the list marker should receive the selected size.
|
|
55
|
+
*/
|
|
56
|
+
function applyListItemFontSize(listItemNodes, fontSize, headingTag, shouldApplyMarkerStyle) {
|
|
57
|
+
for (const listItemNode of listItemNodes) {
|
|
58
|
+
(0, heading_1.setListItemHeadingTag)(listItemNode.getKey(), headingTag);
|
|
59
|
+
if (!shouldApplyMarkerStyle) {
|
|
60
|
+
continue;
|
|
61
|
+
}
|
|
62
|
+
const listItemStyle = {
|
|
63
|
+
...(0, selection_1.getStyleObjectFromCSS)(listItemNode.getTextStyle()),
|
|
64
|
+
'font-size': fontSize,
|
|
65
|
+
};
|
|
66
|
+
if (headingTag === null) {
|
|
67
|
+
delete listItemStyle['--phx-list-heading'];
|
|
68
|
+
}
|
|
69
|
+
else {
|
|
70
|
+
listItemStyle['--phx-list-heading'] = headingTag;
|
|
71
|
+
}
|
|
72
|
+
listItemNode.setTextStyle((0, selection_1.getCSSFromStyleObject)(listItemStyle));
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Gets the active range selection, restoring the previous range when toolbar focus cleared it.
|
|
77
|
+
* @returns Current or restored range selection, or a root-end selection as a final fallback.
|
|
78
|
+
*/
|
|
79
|
+
function getActiveRangeSelection() {
|
|
80
|
+
const selection = (0, lexical_1.$getSelection)();
|
|
81
|
+
if ((0, lexical_1.$isRangeSelection)(selection)) {
|
|
82
|
+
return selection;
|
|
83
|
+
}
|
|
84
|
+
const previousSelection = (0, lexical_1.$getPreviousSelection)();
|
|
85
|
+
if ((0, lexical_1.$isRangeSelection)(previousSelection)) {
|
|
86
|
+
const restoredSelection = previousSelection.clone();
|
|
87
|
+
(0, lexical_1.$setSelection)(restoredSelection);
|
|
88
|
+
return restoredSelection;
|
|
89
|
+
}
|
|
90
|
+
return (0, lexical_1.$getRoot)().selectEnd();
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Renders controls for applying inline font size to the current selection.
|
|
94
|
+
* @param props Font size control props.
|
|
95
|
+
* @param props.fontSize Current selected font size.
|
|
96
|
+
* @param props.editor Active Lexical editor.
|
|
97
|
+
* @param props.listHeadingTag Current list heading type that should survive font-size changes.
|
|
98
|
+
* @returns Font size toolbar controls.
|
|
99
|
+
*/
|
|
100
|
+
function FontSize({ fontSize, editor, listHeadingTag, }) {
|
|
9
101
|
const FONT_SIZES = [
|
|
10
102
|
12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 32, 36, 40, 44, 48, 52, 56, 60, 64, 72,
|
|
11
103
|
80, 96,
|
|
@@ -20,11 +112,15 @@ function FontSize({ fontSize, editor }) {
|
|
|
20
112
|
const handleChangeSize = (nextSize) => {
|
|
21
113
|
const nextFontSize = `${nextSize}px`;
|
|
22
114
|
editor.update(() => {
|
|
23
|
-
const
|
|
24
|
-
const
|
|
115
|
+
const rangeSelection = getActiveRangeSelection();
|
|
116
|
+
const selectedListItems = getSelectedListItems(rangeSelection);
|
|
117
|
+
const selectedListHeadingTag = listHeadingTag !== null && listHeadingTag !== void 0 ? listHeadingTag : getSelectedListHeadingTag(rangeSelection);
|
|
25
118
|
(0, selection_1.$patchStyleText)(rangeSelection, {
|
|
26
119
|
'font-size': nextFontSize,
|
|
27
120
|
});
|
|
121
|
+
if (selectedListItems.size > 0) {
|
|
122
|
+
applyListItemFontSize(selectedListItems, nextFontSize, selectedListHeadingTag, !rangeSelection.isCollapsed());
|
|
123
|
+
}
|
|
28
124
|
if (rangeSelection.isCollapsed()) {
|
|
29
125
|
const anchorNode = rangeSelection.anchor.getNode();
|
|
30
126
|
const targetNode = (0, lexical_1.$isElementNode)(anchorNode)
|
|
@@ -52,7 +148,7 @@ function FontSize({ fontSize, editor }) {
|
|
|
52
148
|
}
|
|
53
149
|
});
|
|
54
150
|
setShowDropDown(false);
|
|
55
|
-
editor.focus(
|
|
151
|
+
editor.focus();
|
|
56
152
|
};
|
|
57
153
|
const handleIncre = (value) => {
|
|
58
154
|
if (!hasFontSize) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"font-size.js","sourceRoot":"","sources":["../../../../../../../src/components/TextEditorV2/plugins/ToolbarPlugin/components/font-size.tsx"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"font-size.js","sourceRoot":"","sources":["../../../../../../../src/components/TextEditorV2/plugins/ToolbarPlugin/components/font-size.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,37 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { HeadingTagType } from '@lexical/rich-text';
|
|
3
|
+
import { type ListItemNode } from '@lexical/list';
|
|
3
4
|
import { LexicalEditor } from 'lexical';
|
|
4
5
|
export declare const DEFAULT_HEADING_FONT_SIZES: Record<HeadingTagType, string>;
|
|
6
|
+
type ListItemBlockType = HeadingTagType | 'paragraph';
|
|
7
|
+
type PreservedListBlock = {
|
|
8
|
+
fontSize: string;
|
|
9
|
+
headingTag: HeadingTagType | null;
|
|
10
|
+
};
|
|
11
|
+
/**
|
|
12
|
+
* Stores block metadata for a list item during the current editor session.
|
|
13
|
+
* @param listItemKey List item node key.
|
|
14
|
+
* @param headingTag Heading type to store, or null to mark the list item as normal text.
|
|
15
|
+
*/
|
|
16
|
+
export declare function setListItemHeadingTag(listItemKey: string, headingTag: HeadingTagType | null): void;
|
|
17
|
+
/**
|
|
18
|
+
* Gets the heading tag stored on a list item style.
|
|
19
|
+
* @param style List item text style.
|
|
20
|
+
* @returns Matching heading tag, or null when the style is normal text.
|
|
21
|
+
*/
|
|
22
|
+
export declare function getListItemHeadingTagFromStyle(style: string): HeadingTagType | null;
|
|
23
|
+
/**
|
|
24
|
+
* Gets the block type stored for a list item.
|
|
25
|
+
* @param listItemNode List item whose block metadata should be read.
|
|
26
|
+
* @returns Matching block type, or null when no metadata can be inferred.
|
|
27
|
+
*/
|
|
28
|
+
export declare function getListItemBlockType(listItemNode: ListItemNode): ListItemBlockType | null;
|
|
29
|
+
/**
|
|
30
|
+
* Gets the heading type stored for a list item.
|
|
31
|
+
* @param listItemNode List item whose heading metadata should be read.
|
|
32
|
+
* @returns Matching heading tag, or null when the list item is normal text.
|
|
33
|
+
*/
|
|
34
|
+
export declare function getListItemHeadingTag(listItemNode: ListItemNode): HeadingTagType | null;
|
|
5
35
|
/**
|
|
6
36
|
* Gets the heading tag represented by the current selected list item font size.
|
|
7
37
|
* @param editor Active Lexical editor.
|
|
@@ -13,9 +43,21 @@ export declare function getSelectedListHeadingTag(editor: LexicalEditor): Headin
|
|
|
13
43
|
* @param headingTag Heading tag to apply.
|
|
14
44
|
*/
|
|
15
45
|
export declare function applyHeadingTypeToSelection(headingTag: HeadingTagType): void;
|
|
16
|
-
|
|
17
|
-
|
|
46
|
+
/**
|
|
47
|
+
* Preserves block metadata before converting selected content to a list item.
|
|
48
|
+
* @param editor Active Lexical editor.
|
|
49
|
+
* @returns Preserved font size and heading tag, or paragraph metadata when no heading is selected.
|
|
50
|
+
*/
|
|
51
|
+
export declare function preserveHeadingFontSizeForList(editor: LexicalEditor): PreservedListBlock | null;
|
|
52
|
+
/**
|
|
53
|
+
* Applies font size and optional heading metadata to selected list items.
|
|
54
|
+
* @param defaultFontSize Font size to apply to the list item content.
|
|
55
|
+
* @param headingTag Heading type to preserve on the list item, or null to reset to normal text.
|
|
56
|
+
* @returns True when at least one list item was updated.
|
|
57
|
+
*/
|
|
58
|
+
export declare function applyListItemFontSize(defaultFontSize: string, headingTag?: HeadingTagType | null): boolean;
|
|
18
59
|
export default function HeaderDropdown({ editor, value }: {
|
|
19
60
|
editor: LexicalEditor;
|
|
20
61
|
value: string;
|
|
21
62
|
}): React.JSX.Element;
|
|
63
|
+
export {};
|
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.DEFAULT_HEADING_FONT_SIZES = void 0;
|
|
4
|
+
exports.setListItemHeadingTag = setListItemHeadingTag;
|
|
5
|
+
exports.getListItemHeadingTagFromStyle = getListItemHeadingTagFromStyle;
|
|
6
|
+
exports.getListItemBlockType = getListItemBlockType;
|
|
7
|
+
exports.getListItemHeadingTag = getListItemHeadingTag;
|
|
4
8
|
exports.getSelectedListHeadingTag = getSelectedListHeadingTag;
|
|
5
9
|
exports.applyHeadingTypeToSelection = applyHeadingTypeToSelection;
|
|
6
10
|
exports.preserveHeadingFontSizeForList = preserveHeadingFontSizeForList;
|
|
@@ -21,6 +25,29 @@ exports.DEFAULT_HEADING_FONT_SIZES = {
|
|
|
21
25
|
h5: '18px',
|
|
22
26
|
h6: '16px',
|
|
23
27
|
};
|
|
28
|
+
const LIST_HEADING_STYLE_PROPERTY = '--phx-list-heading';
|
|
29
|
+
const listItemBlockTypeByKey = new Map();
|
|
30
|
+
/**
|
|
31
|
+
* Checks whether a style value is a supported heading tag.
|
|
32
|
+
* @param value Style value to test.
|
|
33
|
+
* @returns True when the value is a heading tag.
|
|
34
|
+
*/
|
|
35
|
+
function isHeadingTag(value) {
|
|
36
|
+
return value !== undefined && value in exports.DEFAULT_HEADING_FONT_SIZES;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Stores block metadata for a list item during the current editor session.
|
|
40
|
+
* @param listItemKey List item node key.
|
|
41
|
+
* @param headingTag Heading type to store, or null to mark the list item as normal text.
|
|
42
|
+
*/
|
|
43
|
+
function setListItemHeadingTag(listItemKey, headingTag) {
|
|
44
|
+
if (headingTag === null) {
|
|
45
|
+
listItemBlockTypeByKey.set(listItemKey, 'paragraph');
|
|
46
|
+
}
|
|
47
|
+
else {
|
|
48
|
+
listItemBlockTypeByKey.set(listItemKey, headingTag);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
24
51
|
/**
|
|
25
52
|
* Applies the heading font size to every text node inside an element.
|
|
26
53
|
* @param node Element whose text descendants should receive the font size.
|
|
@@ -51,6 +78,42 @@ function getListItemNode(node) {
|
|
|
51
78
|
function getHeadingNode(node) {
|
|
52
79
|
return (0, rich_text_1.$isHeadingNode)(node) ? node : (0, utils_1.$findMatchingParent)(node, (parent) => (0, rich_text_1.$isHeadingNode)(parent));
|
|
53
80
|
}
|
|
81
|
+
/**
|
|
82
|
+
* Gets the heading tag stored on a list item style.
|
|
83
|
+
* @param style List item text style.
|
|
84
|
+
* @returns Matching heading tag, or null when the style is normal text.
|
|
85
|
+
*/
|
|
86
|
+
function getListItemHeadingTagFromStyle(style) {
|
|
87
|
+
const styleObject = (0, selection_1.getStyleObjectFromCSS)(style);
|
|
88
|
+
const storedHeadingTag = styleObject[LIST_HEADING_STYLE_PROPERTY];
|
|
89
|
+
if (isHeadingTag(storedHeadingTag)) {
|
|
90
|
+
return storedHeadingTag;
|
|
91
|
+
}
|
|
92
|
+
const listItemFontSize = styleObject['font-size'];
|
|
93
|
+
const headingEntry = Object.entries(exports.DEFAULT_HEADING_FONT_SIZES).find(([, fontSize]) => fontSize === listItemFontSize);
|
|
94
|
+
return headingEntry !== undefined ? headingEntry[0] : null;
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Gets the block type stored for a list item.
|
|
98
|
+
* @param listItemNode List item whose block metadata should be read.
|
|
99
|
+
* @returns Matching block type, or null when no metadata can be inferred.
|
|
100
|
+
*/
|
|
101
|
+
function getListItemBlockType(listItemNode) {
|
|
102
|
+
const storedBlockType = listItemBlockTypeByKey.get(listItemNode.getKey());
|
|
103
|
+
if (storedBlockType !== undefined) {
|
|
104
|
+
return storedBlockType;
|
|
105
|
+
}
|
|
106
|
+
return getListItemHeadingTagFromStyle(listItemNode.getTextStyle());
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Gets the heading type stored for a list item.
|
|
110
|
+
* @param listItemNode List item whose heading metadata should be read.
|
|
111
|
+
* @returns Matching heading tag, or null when the list item is normal text.
|
|
112
|
+
*/
|
|
113
|
+
function getListItemHeadingTag(listItemNode) {
|
|
114
|
+
const blockType = getListItemBlockType(listItemNode);
|
|
115
|
+
return blockType === 'paragraph' ? null : blockType;
|
|
116
|
+
}
|
|
54
117
|
/**
|
|
55
118
|
* Checks whether the current range is only part of one top-level block.
|
|
56
119
|
* @param selection Current range selection.
|
|
@@ -85,10 +148,9 @@ function getSelectedListHeadingTag(editor) {
|
|
|
85
148
|
if (listItemNode === null) {
|
|
86
149
|
continue;
|
|
87
150
|
}
|
|
88
|
-
const
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
selectedHeadingTag = headingEntry[0];
|
|
151
|
+
const headingTag = getListItemHeadingTag(listItemNode);
|
|
152
|
+
if (headingTag !== null) {
|
|
153
|
+
selectedHeadingTag = headingTag;
|
|
92
154
|
return;
|
|
93
155
|
}
|
|
94
156
|
}
|
|
@@ -106,13 +168,19 @@ function applyHeadingTypeToSelection(headingTag) {
|
|
|
106
168
|
}
|
|
107
169
|
(0, selection_1.$setBlocksType)(selection, () => (0, rich_text_1.$createHeadingNode)(headingTag), (prevNode) => applyHeadingFontSize(prevNode, exports.DEFAULT_HEADING_FONT_SIZES[headingTag]));
|
|
108
170
|
}
|
|
171
|
+
/**
|
|
172
|
+
* Preserves block metadata before converting selected content to a list item.
|
|
173
|
+
* @param editor Active Lexical editor.
|
|
174
|
+
* @returns Preserved font size and heading tag, or paragraph metadata when no heading is selected.
|
|
175
|
+
*/
|
|
109
176
|
function preserveHeadingFontSizeForList(editor) {
|
|
110
|
-
let
|
|
177
|
+
let preservedBlock = null;
|
|
111
178
|
editor.update(() => {
|
|
112
179
|
const selection = (0, lexical_1.$getSelection)();
|
|
113
180
|
if (!(0, lexical_1.$isRangeSelection)(selection)) {
|
|
114
181
|
return;
|
|
115
182
|
}
|
|
183
|
+
const selectionFontSize = (0, selection_1.$getSelectionStyleValueForProperty)(selection, 'font-size', '14px');
|
|
116
184
|
const headingNodes = new Set();
|
|
117
185
|
const selectedNodes = [selection.anchor.getNode(), selection.focus.getNode(), ...selection.getNodes()];
|
|
118
186
|
for (const node of selectedNodes) {
|
|
@@ -122,19 +190,29 @@ function preserveHeadingFontSizeForList(editor) {
|
|
|
122
190
|
}
|
|
123
191
|
}
|
|
124
192
|
for (const headingNode of headingNodes) {
|
|
125
|
-
const
|
|
126
|
-
|
|
193
|
+
const headingTag = headingNode.getTag();
|
|
194
|
+
const headingFontSize = exports.DEFAULT_HEADING_FONT_SIZES[headingTag];
|
|
195
|
+
preservedBlock = { fontSize: headingFontSize, headingTag };
|
|
127
196
|
applyHeadingFontSize(headingNode, headingFontSize);
|
|
128
197
|
}
|
|
129
|
-
if (
|
|
198
|
+
if (preservedBlock === null) {
|
|
199
|
+
preservedBlock = { fontSize: selectionFontSize, headingTag: null };
|
|
200
|
+
}
|
|
201
|
+
if (preservedBlock !== null) {
|
|
130
202
|
(0, selection_1.$patchStyleText)(selection, {
|
|
131
|
-
'font-size':
|
|
203
|
+
'font-size': preservedBlock.fontSize,
|
|
132
204
|
});
|
|
133
205
|
}
|
|
134
206
|
});
|
|
135
|
-
return
|
|
207
|
+
return preservedBlock;
|
|
136
208
|
}
|
|
137
|
-
|
|
209
|
+
/**
|
|
210
|
+
* Applies font size and optional heading metadata to selected list items.
|
|
211
|
+
* @param defaultFontSize Font size to apply to the list item content.
|
|
212
|
+
* @param headingTag Heading type to preserve on the list item, or null to reset to normal text.
|
|
213
|
+
* @returns True when at least one list item was updated.
|
|
214
|
+
*/
|
|
215
|
+
function applyListItemFontSize(defaultFontSize, headingTag) {
|
|
138
216
|
const selection = (0, lexical_1.$getSelection)();
|
|
139
217
|
if (!(0, lexical_1.$isRangeSelection)(selection)) {
|
|
140
218
|
return false;
|
|
@@ -151,11 +229,22 @@ function applyListItemFontSize(defaultFontSize) {
|
|
|
151
229
|
return false;
|
|
152
230
|
}
|
|
153
231
|
for (const listItemNode of listItemNodes) {
|
|
154
|
-
|
|
155
|
-
listItemNode.setTextStyle((0, selection_1.getCSSFromStyleObject)({
|
|
232
|
+
const listItemStyle = {
|
|
156
233
|
...(0, selection_1.getStyleObjectFromCSS)(listItemNode.getTextStyle()),
|
|
157
234
|
'font-size': defaultFontSize,
|
|
158
|
-
}
|
|
235
|
+
};
|
|
236
|
+
if (headingTag !== undefined) {
|
|
237
|
+
if (headingTag === null) {
|
|
238
|
+
setListItemHeadingTag(listItemNode.getKey(), null);
|
|
239
|
+
delete listItemStyle[LIST_HEADING_STYLE_PROPERTY];
|
|
240
|
+
}
|
|
241
|
+
else {
|
|
242
|
+
setListItemHeadingTag(listItemNode.getKey(), headingTag);
|
|
243
|
+
listItemStyle[LIST_HEADING_STYLE_PROPERTY] = headingTag;
|
|
244
|
+
}
|
|
245
|
+
}
|
|
246
|
+
applyHeadingFontSize(listItemNode, defaultFontSize);
|
|
247
|
+
listItemNode.setTextStyle((0, selection_1.getCSSFromStyleObject)(listItemStyle));
|
|
159
248
|
}
|
|
160
249
|
(0, selection_1.$patchStyleText)(selection, {
|
|
161
250
|
'font-size': defaultFontSize,
|
|
@@ -203,7 +292,7 @@ function HeaderDropdown({ editor, value }) {
|
|
|
203
292
|
});
|
|
204
293
|
return;
|
|
205
294
|
}
|
|
206
|
-
if (applyListItemFontSize('14px')) {
|
|
295
|
+
if (applyListItemFontSize('14px', null)) {
|
|
207
296
|
return;
|
|
208
297
|
}
|
|
209
298
|
(0, selection_1.$setBlocksType)(selection, () => (0, lexical_1.$createParagraphNode)(), (prevNode) => applyHeadingFontSize(prevNode, '14px'));
|
|
@@ -231,7 +320,7 @@ function HeaderDropdown({ editor, value }) {
|
|
|
231
320
|
});
|
|
232
321
|
return;
|
|
233
322
|
}
|
|
234
|
-
if (applyListItemFontSize(exports.DEFAULT_HEADING_FONT_SIZES[headingTag])) {
|
|
323
|
+
if (applyListItemFontSize(exports.DEFAULT_HEADING_FONT_SIZES[headingTag], headingTag)) {
|
|
235
324
|
return;
|
|
236
325
|
}
|
|
237
326
|
(0, selection_1.$setBlocksType)(selection, () => (0, rich_text_1.$createHeadingNode)(headingTag), (prevNode) => applyHeadingFontSize(prevNode, exports.DEFAULT_HEADING_FONT_SIZES[headingTag]));
|
|
@@ -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":"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"}
|
|
@@ -10,12 +10,12 @@ function NumberBullet({ editor, isActive }) {
|
|
|
10
10
|
return (react_1.default.createElement("div", { className: 'flex items-center gap-x-2' },
|
|
11
11
|
react_1.default.createElement("button", { type: 'button', "data-color-button": 'true', className: (0, types_1.classNames)('p-1 rounded-md duration-200 cursor-pointer', isActive ? 'bg-gray-200' : 'hover:bg-gray-200'), onClick: () => {
|
|
12
12
|
if (!isActive) {
|
|
13
|
-
const
|
|
13
|
+
const preservedHeading = (0, heading_1.preserveHeadingFontSizeForList)(editor);
|
|
14
14
|
editor.dispatchCommand(list_1.INSERT_ORDERED_LIST_COMMAND, undefined);
|
|
15
|
-
if (
|
|
15
|
+
if (preservedHeading !== null) {
|
|
16
16
|
queueMicrotask(() => {
|
|
17
17
|
editor.update(() => {
|
|
18
|
-
(0, heading_1.applyListItemFontSize)(
|
|
18
|
+
(0, heading_1.applyListItemFontSize)(preservedHeading.fontSize, preservedHeading.headingTag);
|
|
19
19
|
});
|
|
20
20
|
});
|
|
21
21
|
}
|
package/dist/cjs/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":";;AAWA,+BAsEC;;AAjFD,wCAAgF;AAEhF,0DAAyB;AACzB,6CAA8C;AAC9C,uCAKkB;AAElB,SAAwB,YAAY,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAgD;IACrG,OAAO,CACL,uCAAK,SAAS,EAAC,2BAA2B;QACxC,0CACE,IAAI,EAAC,QAAQ,uBACK,MAAM,EACxB,SAAS,EAAE,IAAA,kBAAU,EACnB,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,
|
|
1
|
+
{"version":3,"file":"number-bullet.js","sourceRoot":"","sources":["../../../../../../../src/components/TextEditorV2/plugins/ToolbarPlugin/components/number-bullet.tsx"],"names":[],"mappings":";;AAWA,+BAsEC;;AAjFD,wCAAgF;AAEhF,0DAAyB;AACzB,6CAA8C;AAC9C,uCAKkB;AAElB,SAAwB,YAAY,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAgD;IACrG,OAAO,CACL,uCAAK,SAAS,EAAC,2BAA2B;QACxC,0CACE,IAAI,EAAC,QAAQ,uBACK,MAAM,EACxB,SAAS,EAAE,IAAA,kBAAU,EACnB,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,gBAAgB,GAAG,IAAA,wCAA8B,EAAC,MAAM,CAAC,CAAA;oBAE/D,MAAM,CAAC,eAAe,CAAC,kCAA2B,EAAE,SAAS,CAAC,CAAA;oBAE9D,IAAI,gBAAgB,KAAK,IAAI,EAAE,CAAC;wBAC9B,cAAc,CAAC,GAAG,EAAE;4BAClB,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE;gCACjB,IAAA,+BAAqB,EAAC,gBAAgB,CAAC,QAAQ,EAAE,gBAAgB,CAAC,UAAU,CAAC,CAAA;4BAC/E,CAAC,CAAC,CAAA;wBACJ,CAAC,CAAC,CAAA;oBACJ,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACN,MAAM,UAAU,GAAG,IAAA,mCAAyB,EAAC,MAAM,CAAC,CAAA;oBAEpD,MAAM,CAAC,eAAe,CAAC,0BAAmB,EAAE,SAAS,CAAC,CAAA;oBAEtD,IAAI,UAAU,KAAK,IAAI,EAAE,CAAC;wBACxB,cAAc,CAAC,GAAG,EAAE;4BAClB,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE;gCACjB,IAAA,qCAA2B,EAAC,UAAU,CAAC,CAAA;4BACzC,CAAC,CAAC,CAAA;wBACJ,CAAC,CAAC,CAAA;oBACJ,CAAC;gBACH,CAAC;YACH,CAAC;YAED;gBACE,uCAAK,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,OAAO,EAAC,WAAW,EAAC,IAAI,EAAC,MAAM,EAAC,KAAK,EAAC,4BAA4B;oBAC5F,wCACE,CAAC,EAAC,2aAA2a,EAC7a,IAAI,EAAC,SAAS,GACR;oBACR,wCACE,CAAC,EAAC,+KAA+K,EACjL,IAAI,EAAC,SAAS,GACR;oBACR,wCACE,CAAC,EAAC,oLAAoL,EACtL,IAAI,EAAC,SAAS,GACR;oBACR,wCACE,CAAC,EAAC,qLAAqL,EACvL,IAAI,EAAC,SAAS,GACR;oBACR,wCACE,CAAC,EAAC,2iBAA2iB,EAC7iB,IAAI,EAAC,SAAS,GACR;oBACR,wCACE,CAAC,EAAC,guBAAguB,EACluB,IAAI,EAAC,SAAS,GACR,CACJ,CACD,CACA;QACT,uCAAK,SAAS,EAAC,yBAAyB,GAAO,CAC3C,CACP,CAAA;AACH,CAAC"}
|
|
@@ -41,11 +41,29 @@ const blockTypeToBlockName = {
|
|
|
41
41
|
paragraph: 'Normal',
|
|
42
42
|
quote: 'Quote',
|
|
43
43
|
};
|
|
44
|
+
/**
|
|
45
|
+
* Checks whether a block type is a heading type.
|
|
46
|
+
* @param value Block type to test.
|
|
47
|
+
* @returns True when the value is a heading block type.
|
|
48
|
+
*/
|
|
49
|
+
function isHeadingBlockType(value) {
|
|
50
|
+
return value in heading_1.DEFAULT_HEADING_FONT_SIZES;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Gets the fallback block type represented by a list item font size.
|
|
54
|
+
* @param fontSize Font size from the selected list item.
|
|
55
|
+
* @returns Matching heading type, or paragraph when there is no match.
|
|
56
|
+
*/
|
|
44
57
|
function getBlockTypeFromFontSize(fontSize) {
|
|
45
58
|
var _a;
|
|
46
59
|
const headingType = (_a = Object.entries(heading_1.DEFAULT_HEADING_FONT_SIZES).find(([, size]) => size === fontSize)) === null || _a === void 0 ? void 0 : _a[0];
|
|
47
60
|
return headingType !== undefined ? headingType : 'paragraph';
|
|
48
61
|
}
|
|
62
|
+
/**
|
|
63
|
+
* Reads font size from a serialized style string.
|
|
64
|
+
* @param style Serialized CSS style string.
|
|
65
|
+
* @returns Font size value when present.
|
|
66
|
+
*/
|
|
49
67
|
function getFontSizeFromStyle(style) {
|
|
50
68
|
return (0, selection_1.getStyleObjectFromCSS)(style)['font-size'];
|
|
51
69
|
}
|
|
@@ -118,20 +136,20 @@ function ToolbarPlugin({ apiCdnUpload, disabled, }) {
|
|
|
118
136
|
const listItemFontSize = (0, list_1.$isListItemNode)(listItemNode)
|
|
119
137
|
? getFontSizeFromStyle(listItemNode.getTextStyle())
|
|
120
138
|
: undefined;
|
|
139
|
+
const listItemBlockType = (0, list_1.$isListItemNode)(listItemNode) ? (0, heading_1.getListItemBlockType)(listItemNode) : null;
|
|
121
140
|
// @ts-ignore
|
|
122
141
|
const type = parentList ? parentList.getListType() : element.getListType();
|
|
123
|
-
if (listItemFontSize !== undefined) {
|
|
142
|
+
if (listItemFontSize !== undefined && !selection.isCollapsed()) {
|
|
124
143
|
selectionFontSize = listItemFontSize;
|
|
125
144
|
}
|
|
126
145
|
setListBlockType(type);
|
|
127
|
-
setBlockType(getBlockTypeFromFontSize(selectionFontSize));
|
|
146
|
+
setBlockType(listItemBlockType !== null && listItemBlockType !== void 0 ? listItemBlockType : getBlockTypeFromFontSize(selectionFontSize));
|
|
128
147
|
}
|
|
129
148
|
else {
|
|
130
149
|
setListBlockType(null);
|
|
131
150
|
const type = (0, rich_text_1.$isHeadingNode)(element) ? element.getTag() : element.getType();
|
|
132
151
|
if (type in blockTypeToBlockName) {
|
|
133
|
-
|
|
134
|
-
setBlockType(type === 'paragraph' && fontSizeBlockType !== 'paragraph' ? fontSizeBlockType : type);
|
|
152
|
+
setBlockType(type);
|
|
135
153
|
}
|
|
136
154
|
}
|
|
137
155
|
}
|
|
@@ -183,11 +201,12 @@ function ToolbarPlugin({ apiCdnUpload, disabled, }) {
|
|
|
183
201
|
}
|
|
184
202
|
}, [activeEditor, disabled]);
|
|
185
203
|
const parsedFontSize = parseInt(fontSize, 10);
|
|
204
|
+
const activeListHeadingTag = listBlockType !== null && isHeadingBlockType(blockType) ? blockType : null;
|
|
186
205
|
return (React.createElement("div", { className: 'flex relative flex-wrap gap-1 p-2 bg-gray-100 border-b border-gray-300' },
|
|
187
206
|
disabled && React.createElement("div", { className: 'cursor-not-allowed z-20 absolute inset-0 bg-gray-200 opacity-20' }),
|
|
188
207
|
React.createElement(DisabledToolbarGroup, { disabled: isImageSelected }, blockType in blockTypeToBlockName && activeEditor === editor && (React.createElement(heading_1.default, { value: blockType, editor: activeEditor }))),
|
|
189
208
|
React.createElement(DisabledToolbarGroup, { disabled: isImageSelected },
|
|
190
|
-
React.createElement(font_size_1.default, { editor: activeEditor, fontSize: Number.isNaN(parsedFontSize) ? null : parsedFontSize })),
|
|
209
|
+
React.createElement(font_size_1.default, { editor: activeEditor, fontSize: Number.isNaN(parsedFontSize) ? null : parsedFontSize, listHeadingTag: activeListHeadingTag })),
|
|
191
210
|
React.createElement(DisabledToolbarGroup, { disabled: isImageSelected },
|
|
192
211
|
React.createElement(bold_text_1.default, { isActive: isBold, editor: activeEditor })),
|
|
193
212
|
React.createElement(DisabledToolbarGroup, { disabled: isImageSelected },
|