@webiny/lexical-nodes 5.44.1-beta.0 → 5.45.0-beta.0
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/FontColorNode.d.ts +6 -6
- package/FontColorNode.js +102 -145
- package/FontColorNode.js.map +1 -1
- package/HeadingNode.d.ts +29 -17
- package/HeadingNode.js +184 -152
- package/HeadingNode.js.map +1 -1
- package/ImageNode.d.ts +1 -11
- package/ImageNode.js +119 -190
- package/ImageNode.js.map +1 -1
- package/LinkNode.d.ts +2 -2
- package/LinkNode.js +249 -346
- package/LinkNode.js.map +1 -1
- package/ListItemNode.d.ts +4 -3
- package/ListItemNode.js +275 -354
- package/ListItemNode.js.map +1 -1
- package/ListNode.d.ts +28 -14
- package/ListNode.js +170 -209
- package/ListNode.js.map +1 -1
- package/ParagraphNode.d.ts +28 -16
- package/ParagraphNode.js +143 -179
- package/ParagraphNode.js.map +1 -1
- package/QuoteNode.d.ts +26 -19
- package/QuoteNode.js +102 -188
- package/QuoteNode.js.map +1 -1
- package/README.md +9 -4
- package/components/ImageNode/ImageComponent.d.ts +2 -7
- package/components/ImageNode/ImageComponent.js +72 -166
- package/components/ImageNode/ImageComponent.js.map +1 -1
- package/components/ImageNode/ImageResizer.d.ts +1 -8
- package/components/ImageNode/ImageResizer.js +74 -89
- package/components/ImageNode/ImageResizer.js.map +1 -1
- package/generateInitialLexicalValue.d.ts +4 -0
- package/generateInitialLexicalValue.js +27 -0
- package/generateInitialLexicalValue.js.map +1 -0
- package/index.d.ts +19 -23
- package/index.js +50 -233
- package/index.js.map +1 -1
- package/package.json +16 -20
- package/prepareLexicalState.d.ts +2 -0
- package/prepareLexicalState.js +53 -0
- package/prepareLexicalState.js.map +1 -0
- package/types.d.ts +4 -5
- package/types.js +1 -5
- package/types.js.map +1 -1
- package/utils/clearNodeFormating.d.ts +1 -1
- package/utils/clearNodeFormating.js +12 -18
- package/utils/clearNodeFormating.js.map +1 -1
- package/utils/formatList.d.ts +4 -4
- package/utils/formatList.js +171 -208
- package/utils/formatList.js.map +1 -1
- package/utils/formatToHeading.d.ts +2 -2
- package/utils/formatToHeading.js +8 -15
- package/utils/formatToHeading.js.map +1 -1
- package/utils/formatToParagraph.d.ts +1 -1
- package/utils/formatToParagraph.js +8 -16
- package/utils/formatToParagraph.js.map +1 -1
- package/utils/formatToQuote.d.ts +1 -1
- package/utils/formatToQuote.js +8 -15
- package/utils/formatToQuote.js.map +1 -1
- package/utils/getStyleId.d.ts +11 -0
- package/utils/getStyleId.js +14 -0
- package/utils/getStyleId.js.map +1 -0
- package/utils/listNode.d.ts +2 -2
- package/utils/listNode.js +37 -50
- package/utils/listNode.js.map +1 -1
- package/utils/toggleLink.d.ts +1 -1
- package/utils/toggleLink.js +41 -45
- package/utils/toggleLink.js.map +1 -1
- package/TypographyNode.d.ts +0 -39
- package/TypographyNode.js +0 -146
- package/TypographyNode.js.map +0 -1
- package/components/ImageNode/ContentEditable.css +0 -22
- package/components/ImageNode/ContentEditable.d.ts +0 -12
- package/components/ImageNode/ContentEditable.js +0 -26
- package/components/ImageNode/ContentEditable.js.map +0 -1
- package/components/ImageNode/ImageComponent.css +0 -43
- package/components/ImageNode/Placeholder.css +0 -20
- package/components/ImageNode/Placeholder.d.ts +0 -15
- package/components/ImageNode/Placeholder.js +0 -30
- package/components/ImageNode/Placeholder.js.map +0 -1
- package/components/ImageNode/SharedHistoryContext.d.ts +0 -10
- package/components/ImageNode/SharedHistoryContext.js +0 -27
- package/components/ImageNode/SharedHistoryContext.js.map +0 -1
package/ParagraphNode.js
CHANGED
|
@@ -1,194 +1,158 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
1
|
+
import { ParagraphNode as BaseParagraphNode, addClassNamesToElement } from "lexical";
|
|
2
|
+
import { Theme } from "@webiny/lexical-theme";
|
|
3
|
+
import { getStyleId } from "./utils/getStyleId.js";
|
|
4
|
+
function convertParagraphElement(element) {
|
|
5
|
+
const node = $createParagraphNode();
|
|
6
|
+
if (element.style) {
|
|
7
|
+
node.setFormat(element.style.textAlign);
|
|
8
|
+
}
|
|
9
|
+
return {
|
|
10
|
+
node
|
|
11
|
+
};
|
|
12
|
+
}
|
|
13
|
+
export class ParagraphNode extends BaseParagraphNode {
|
|
14
|
+
constructor(options = {}) {
|
|
15
|
+
const {
|
|
16
|
+
styleId,
|
|
17
|
+
key,
|
|
18
|
+
className
|
|
19
|
+
} = options;
|
|
20
|
+
super(key);
|
|
21
|
+
this.__styleId = styleId;
|
|
22
|
+
this.__className = className;
|
|
23
|
+
}
|
|
24
|
+
getStyleId() {
|
|
25
|
+
return this.__styleId;
|
|
26
|
+
}
|
|
27
|
+
setStyleId(styleId) {
|
|
28
|
+
this.__styleId = styleId;
|
|
29
|
+
}
|
|
30
|
+
setClassName(className) {
|
|
31
|
+
this.__className = className;
|
|
32
|
+
}
|
|
33
|
+
getClassName() {
|
|
34
|
+
return this.__className;
|
|
35
|
+
}
|
|
36
|
+
static getType() {
|
|
37
|
+
return "wby-paragraph";
|
|
38
|
+
}
|
|
39
|
+
static clone(node) {
|
|
40
|
+
return new ParagraphNode({
|
|
41
|
+
styleId: node.getStyleId(),
|
|
42
|
+
className: node.getClassName(),
|
|
43
|
+
key: node.__key
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
insertNewAfter(rangeSelection, restoreSelection) {
|
|
47
|
+
const newElement = $createParagraphNode();
|
|
48
|
+
newElement.setTextFormat(rangeSelection.format);
|
|
49
|
+
newElement.setTextStyle(rangeSelection.style);
|
|
50
|
+
const direction = this.getDirection();
|
|
51
|
+
newElement.setDirection(direction);
|
|
52
|
+
newElement.setFormat(this.getFormatType());
|
|
53
|
+
newElement.setStyle(this.getStyle());
|
|
54
|
+
this.insertAfter(newElement, restoreSelection);
|
|
55
|
+
return newElement;
|
|
56
|
+
}
|
|
57
|
+
createDOM(config) {
|
|
58
|
+
const element = super.createDOM(config);
|
|
59
|
+
return this.updateElementWithThemeClasses(element, Theme.from(config.theme));
|
|
60
|
+
}
|
|
61
|
+
exportDOM(editor) {
|
|
62
|
+
const base = super.exportDOM(editor);
|
|
63
|
+
const element = base.element;
|
|
64
|
+
if (element && this.__className) {
|
|
65
|
+
element.classList.add(this.__className);
|
|
59
66
|
}
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
+
return {
|
|
68
|
+
...base,
|
|
69
|
+
element
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
updateDOM(prevNode, dom, config) {
|
|
73
|
+
const prevTypoStyleId = prevNode.getStyleId();
|
|
74
|
+
const nextTypoStyleId = this.getStyleId();
|
|
75
|
+
if (!nextTypoStyleId) {
|
|
76
|
+
this.updateElementWithThemeClasses(dom, Theme.from(config.theme));
|
|
77
|
+
return false;
|
|
67
78
|
}
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
value: function setThemeStyles(styles) {
|
|
71
|
-
// getWritable() creates a clone of the node
|
|
72
|
-
// if needed, to ensure we don't try and mutate
|
|
73
|
-
// a stale version of this node.
|
|
74
|
-
var self = (0, _superPropGet2.default)(ParagraphNode, "getWritable", this, 3)([]);
|
|
75
|
-
self.__styles = (0, _toConsumableArray2.default)(styles);
|
|
76
|
-
return self;
|
|
79
|
+
if (prevTypoStyleId !== nextTypoStyleId && nextTypoStyleId) {
|
|
80
|
+
this.updateElementWithThemeClasses(dom, Theme.from(config.theme));
|
|
77
81
|
}
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
return element;
|
|
83
|
-
}
|
|
84
|
-
if (!this.hasTypographyStyle()) {
|
|
85
|
-
this.setDefaultTypography(theme.emotionMap);
|
|
86
|
-
}
|
|
87
|
-
var typoStyleId = this.getTypographyStyleId();
|
|
88
|
-
var themeClasses;
|
|
82
|
+
// Returning false tells Lexical that this node does not need its
|
|
83
|
+
// DOM element replacing with a new copy from createDOM.
|
|
84
|
+
return false;
|
|
85
|
+
}
|
|
89
86
|
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
}
|
|
102
|
-
}, {
|
|
103
|
-
key: "createDOM",
|
|
104
|
-
value: function createDOM(config) {
|
|
105
|
-
var element = (0, _superPropGet2.default)(ParagraphNode, "createDOM", this, 3)([config]);
|
|
106
|
-
return this.updateElementWithThemeClasses(element, config.theme);
|
|
107
|
-
}
|
|
108
|
-
}, {
|
|
109
|
-
key: "updateDOM",
|
|
110
|
-
value: function updateDOM(prevNode, dom, config) {
|
|
111
|
-
var prevTypoStyleId = prevNode.getTypographyStyleId();
|
|
112
|
-
var nextTypoStyleId = this.getTypographyStyleId();
|
|
113
|
-
if (!nextTypoStyleId) {
|
|
114
|
-
this.updateElementWithThemeClasses(dom, config.theme);
|
|
115
|
-
return false;
|
|
116
|
-
}
|
|
117
|
-
if (prevTypoStyleId !== nextTypoStyleId && nextTypoStyleId) {
|
|
118
|
-
this.updateElementWithThemeClasses(dom, config.theme);
|
|
119
|
-
}
|
|
120
|
-
// Returning false tells Lexical that this node does not need its
|
|
121
|
-
// DOM element replacing with a new copy from createDOM.
|
|
122
|
-
return false;
|
|
123
|
-
}
|
|
87
|
+
/*
|
|
88
|
+
* On copy/paste event this method will be executed in and create a node
|
|
89
|
+
* */
|
|
90
|
+
static importDOM() {
|
|
91
|
+
return {
|
|
92
|
+
p: () => ({
|
|
93
|
+
conversion: convertParagraphElement,
|
|
94
|
+
priority: 0
|
|
95
|
+
})
|
|
96
|
+
};
|
|
97
|
+
}
|
|
124
98
|
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
99
|
+
/*
|
|
100
|
+
* Serialize the JSON data back into a node
|
|
101
|
+
*/
|
|
102
|
+
static importJSON(serializedNode) {
|
|
103
|
+
const node = $createParagraphNode();
|
|
104
|
+
node.setFormat(serializedNode.format);
|
|
105
|
+
node.setIndent(serializedNode.indent);
|
|
106
|
+
node.setDirection(serializedNode.direction);
|
|
107
|
+
const styleId = getStyleId({
|
|
108
|
+
styleId: serializedNode.styleId,
|
|
109
|
+
styles: serializedNode.styles
|
|
110
|
+
});
|
|
111
|
+
node.setStyleId(styleId);
|
|
112
|
+
node.setClassName(serializedNode.className);
|
|
113
|
+
return node;
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
/*
|
|
117
|
+
* Serialize the node to JSON data representation.
|
|
118
|
+
* */
|
|
119
|
+
exportJSON() {
|
|
120
|
+
return {
|
|
121
|
+
...super.exportJSON(),
|
|
122
|
+
styleId: this.__styleId,
|
|
123
|
+
className: this.__className,
|
|
124
|
+
type: "wby-paragraph"
|
|
125
|
+
};
|
|
126
|
+
}
|
|
127
|
+
updateElementWithThemeClasses(element, theme) {
|
|
128
|
+
if (!this.__styleId || !this.__className) {
|
|
129
|
+
this.setDefaultTypography(theme, this.__styleId);
|
|
145
130
|
}
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
value: function clone(node) {
|
|
149
|
-
return new ParagraphNode(node.getTypographyStyleId(), node.__key);
|
|
131
|
+
if (this.__className) {
|
|
132
|
+
addClassNamesToElement(element, this.__className);
|
|
150
133
|
}
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
}
|
|
161
|
-
};
|
|
134
|
+
return element;
|
|
135
|
+
}
|
|
136
|
+
setDefaultTypography(theme, styleId) {
|
|
137
|
+
let typographyStyle = theme.getTypographyByTag("p");
|
|
138
|
+
if (styleId) {
|
|
139
|
+
const byStyleId = theme.getTypographyById(styleId);
|
|
140
|
+
if (byStyleId) {
|
|
141
|
+
typographyStyle = byStyleId;
|
|
142
|
+
}
|
|
162
143
|
}
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
*/
|
|
167
|
-
}, {
|
|
168
|
-
key: "importJSON",
|
|
169
|
-
value: function importJSON(serializedNode) {
|
|
170
|
-
var node = $createParagraphNode();
|
|
171
|
-
node.setFormat(serializedNode.format);
|
|
172
|
-
node.setIndent(serializedNode.indent);
|
|
173
|
-
node.setDirection(serializedNode.direction);
|
|
174
|
-
node.setThemeStyles(serializedNode.styles);
|
|
175
|
-
return node;
|
|
144
|
+
if (typographyStyle) {
|
|
145
|
+
this.__styleId = typographyStyle.id;
|
|
146
|
+
this.__className = typographyStyle.className;
|
|
176
147
|
}
|
|
177
|
-
}]);
|
|
178
|
-
}(_lexical.ParagraphNode);
|
|
179
|
-
function convertParagraphElement(element) {
|
|
180
|
-
var node = $createParagraphNode();
|
|
181
|
-
if (element.style) {
|
|
182
|
-
node.setFormat(element.style.textAlign);
|
|
183
148
|
}
|
|
184
|
-
return {
|
|
185
|
-
node: node
|
|
186
|
-
};
|
|
187
149
|
}
|
|
188
|
-
function $createParagraphNode(
|
|
189
|
-
return
|
|
150
|
+
export function $createParagraphNode(styleId) {
|
|
151
|
+
return new ParagraphNode({
|
|
152
|
+
styleId
|
|
153
|
+
});
|
|
190
154
|
}
|
|
191
|
-
function $isParagraphNode(node) {
|
|
155
|
+
export function $isParagraphNode(node) {
|
|
192
156
|
return node instanceof ParagraphNode;
|
|
193
157
|
}
|
|
194
158
|
|
package/ParagraphNode.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_lexical","require","_lexicalTheme","_utils","ParagraphNode","exports","_BaseParagraphNode","typographyStyleId","key","_this","_classCallCheck2","default","_callSuper2","_defineProperty2","__styles","push","styleId","type","_inherits2","_createClass2","value","setDefaultTypography","themeEmotionMap","typographyStyle","findTypographyStyleByHtmlTag","id","getTypographyStyleId","style","find","x","undefined","hasTypographyStyle","getThemeStyles","self","_superPropGet2","setThemeStyles","styles","_toConsumableArray2","updateElementWithThemeClasses","element","theme","emotionMap","typoStyleId","themeClasses","className","addClassNamesToElement","createDOM","config","updateDOM","prevNode","dom","prevTypoStyleId","nextTypoStyleId","exportJSON","_objectSpread2","version","getType","clone","node","__key","importDOM","p","conversion","convertParagraphElement","priority","importJSON","serializedNode","$createParagraphNode","setFormat","format","setIndent","indent","setDirection","direction","BaseParagraphNode","textAlign","$applyNodeReplacement","$isParagraphNode"],"sources":["ParagraphNode.ts"],"sourcesContent":["import {\n $applyNodeReplacement,\n DOMConversionMap,\n DOMConversionOutput,\n ElementFormatType,\n LexicalNode,\n NodeKey,\n ParagraphNode as BaseParagraphNode,\n SerializedParagraphNode as SerializedBaseParagraphNode,\n Spread\n} from \"lexical\";\nimport { EditorConfig } from \"lexical\";\nimport { EditorTheme, ThemeEmotionMap, findTypographyStyleByHtmlTag } from \"@webiny/lexical-theme\";\nimport { addClassNamesToElement } from \"@lexical/utils\";\nimport { TypographyStylesNode, ThemeStyleValue, TextNodeThemeStyles } from \"~/types\";\n\nexport type SerializeParagraphNode = Spread<\n {\n styles: ThemeStyleValue[];\n type: \"paragraph-element\";\n },\n SerializedBaseParagraphNode\n>;\n\nexport class ParagraphNode\n extends BaseParagraphNode\n implements TextNodeThemeStyles, TypographyStylesNode\n{\n __styles: ThemeStyleValue[] = [];\n\n constructor(typographyStyleId?: string, key?: NodeKey) {\n super(key);\n\n if (typographyStyleId) {\n this.__styles.push({ styleId: typographyStyleId, type: \"typography\" });\n }\n }\n\n protected setDefaultTypography(themeEmotionMap: ThemeEmotionMap) {\n const typographyStyle = findTypographyStyleByHtmlTag(\"p\", themeEmotionMap);\n if (typographyStyle) {\n this.__styles.push({ styleId: typographyStyle.id, type: \"typography\" });\n }\n }\n\n getTypographyStyleId(): string | undefined {\n const style = this.__styles.find(x => x.type === \"typography\");\n return style?.styleId || undefined;\n }\n\n private hasTypographyStyle(): boolean {\n return !!this.getTypographyStyleId();\n }\n\n getThemeStyles(): ThemeStyleValue[] {\n // getLatest() ensures we are getting the most\n // up-to-date value from the EditorState.\n const self = super.getLatest();\n return self.__styles;\n }\n\n setThemeStyles(styles: ThemeStyleValue[]) {\n // getWritable() creates a clone of the node\n // if needed, to ensure we don't try and mutate\n // a stale version of this node.\n const self = super.getWritable();\n self.__styles = [...styles];\n return self;\n }\n\n static override getType(): string {\n return \"paragraph-element\";\n }\n\n static override clone(node: ParagraphNode): ParagraphNode {\n return new ParagraphNode(node.getTypographyStyleId(), node.__key);\n }\n\n private updateElementWithThemeClasses(element: HTMLElement, theme: EditorTheme): HTMLElement {\n if (!theme?.emotionMap) {\n return element;\n }\n\n if (!this.hasTypographyStyle()) {\n this.setDefaultTypography(theme.emotionMap);\n }\n\n const typoStyleId = this.getTypographyStyleId();\n\n let themeClasses;\n\n // Typography css class\n if (typoStyleId) {\n const typographyStyle = theme.emotionMap[typoStyleId];\n if (typographyStyle) {\n themeClasses = typographyStyle.className;\n }\n }\n\n if (themeClasses) {\n addClassNamesToElement(element, themeClasses);\n }\n\n return element;\n }\n\n override createDOM(config: EditorConfig): HTMLElement {\n const element = super.createDOM(config);\n return this.updateElementWithThemeClasses(element, config.theme as EditorTheme);\n }\n\n override updateDOM(prevNode: ParagraphNode, dom: HTMLElement, config: EditorConfig): boolean {\n const prevTypoStyleId = prevNode.getTypographyStyleId();\n const nextTypoStyleId = this.getTypographyStyleId();\n\n if (!nextTypoStyleId) {\n this.updateElementWithThemeClasses(dom, config.theme as EditorTheme);\n return false;\n }\n\n if (prevTypoStyleId !== nextTypoStyleId && nextTypoStyleId) {\n this.updateElementWithThemeClasses(dom, config.theme as EditorTheme);\n }\n // Returning false tells Lexical that this node does not need its\n // DOM element replacing with a new copy from createDOM.\n return false;\n }\n\n /*\n * On copy/paste event this method will be executed in and create a node\n * */\n static override importDOM(): DOMConversionMap | null {\n return {\n p: () => ({\n conversion: convertParagraphElement,\n priority: 0\n })\n };\n }\n\n /*\n * Serialize the JSON data back into a node\n */\n static override importJSON(serializedNode: SerializeParagraphNode): BaseParagraphNode {\n const node = $createParagraphNode();\n node.setFormat(serializedNode.format);\n node.setIndent(serializedNode.indent);\n node.setDirection(serializedNode.direction);\n node.setThemeStyles(serializedNode.styles);\n return node;\n }\n\n /*\n * Serialize the node to JSON data representation.\n * */\n override exportJSON(): SerializeParagraphNode {\n return {\n ...super.exportJSON(),\n styles: this.__styles,\n type: \"paragraph-element\",\n version: 1\n };\n }\n}\n\nfunction convertParagraphElement(element: HTMLElement): DOMConversionOutput {\n const node = $createParagraphNode();\n if (element.style) {\n node.setFormat(element.style.textAlign as ElementFormatType);\n }\n\n return { node };\n}\n\nexport function $createParagraphNode(typographyStyleId?: string): ParagraphNode {\n return $applyNodeReplacement(new ParagraphNode(typographyStyleId));\n}\n\nexport function $isParagraphNode(node: LexicalNode | null | undefined): node is ParagraphNode {\n return node instanceof ParagraphNode;\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["ParagraphNode","BaseParagraphNode","addClassNamesToElement","Theme","getStyleId","convertParagraphElement","element","node","$createParagraphNode","style","setFormat","textAlign","constructor","options","styleId","key","className","__styleId","__className","setStyleId","setClassName","getClassName","getType","clone","__key","insertNewAfter","rangeSelection","restoreSelection","newElement","setTextFormat","format","setTextStyle","direction","getDirection","setDirection","getFormatType","setStyle","getStyle","insertAfter","createDOM","config","updateElementWithThemeClasses","from","theme","exportDOM","editor","base","classList","add","updateDOM","prevNode","dom","prevTypoStyleId","nextTypoStyleId","importDOM","p","conversion","priority","importJSON","serializedNode","setIndent","indent","styles","exportJSON","type","setDefaultTypography","typographyStyle","getTypographyByTag","byStyleId","getTypographyById","id","$isParagraphNode"],"sources":["ParagraphNode.ts"],"sourcesContent":["import type {\n DOMConversionMap,\n DOMConversionOutput,\n ElementFormatType,\n LexicalNode,\n NodeKey,\n SerializedParagraphNode as SerializedBaseParagraphNode,\n Spread,\n LexicalEditor,\n DOMExportOutput,\n RangeSelection\n} from \"lexical\";\nimport { ParagraphNode as BaseParagraphNode, addClassNamesToElement } from \"lexical\";\nimport type { EditorConfig } from \"lexical\";\nimport { Theme } from \"@webiny/lexical-theme\";\nimport type { TypographyStylesNode, ThemeStyleValue } from \"~/types.js\";\nimport { getStyleId } from \"./utils/getStyleId.js\";\n\nfunction convertParagraphElement(element: HTMLElement): DOMConversionOutput {\n const node = $createParagraphNode();\n if (element.style) {\n node.setFormat(element.style.textAlign as ElementFormatType);\n }\n\n return { node };\n}\n\nexport type SerializeParagraphNode = Spread<\n {\n styles?: ThemeStyleValue[];\n styleId?: string;\n className?: string;\n type: \"wby-paragraph\";\n },\n SerializedBaseParagraphNode\n>;\n\ninterface ParagraphNodeOptions {\n className?: string;\n styleId?: string;\n key?: NodeKey;\n}\n\nexport class ParagraphNode extends BaseParagraphNode implements TypographyStylesNode {\n private __styleId: string | undefined;\n private __className: string | undefined;\n\n constructor(options: ParagraphNodeOptions = {}) {\n const { styleId, key, className } = options;\n super(key);\n\n this.__styleId = styleId;\n this.__className = className;\n }\n\n getStyleId(): string | undefined {\n return this.__styleId;\n }\n\n setStyleId(styleId: string | undefined) {\n this.__styleId = styleId;\n }\n\n setClassName(className: string | undefined) {\n this.__className = className;\n }\n\n getClassName(): string | undefined {\n return this.__className;\n }\n\n static override getType(): string {\n return \"wby-paragraph\";\n }\n\n static override clone(node: ParagraphNode): ParagraphNode {\n return new ParagraphNode({\n styleId: node.getStyleId(),\n className: node.getClassName(),\n key: node.__key\n });\n }\n\n override insertNewAfter(\n rangeSelection: RangeSelection,\n restoreSelection: boolean\n ): ParagraphNode {\n const newElement = $createParagraphNode();\n newElement.setTextFormat(rangeSelection.format);\n newElement.setTextStyle(rangeSelection.style);\n const direction = this.getDirection();\n newElement.setDirection(direction);\n newElement.setFormat(this.getFormatType());\n newElement.setStyle(this.getStyle());\n this.insertAfter(newElement, restoreSelection);\n return newElement;\n }\n\n override createDOM(config: EditorConfig): HTMLElement {\n const element = super.createDOM(config);\n return this.updateElementWithThemeClasses(element, Theme.from(config.theme));\n }\n\n override exportDOM(editor: LexicalEditor): DOMExportOutput {\n const base = super.exportDOM(editor);\n\n const element = base.element as HTMLElement;\n if (element && this.__className) {\n element.classList.add(this.__className);\n }\n\n return { ...base, element };\n }\n\n override updateDOM(prevNode: ParagraphNode, dom: HTMLElement, config: EditorConfig): boolean {\n const prevTypoStyleId = prevNode.getStyleId();\n const nextTypoStyleId = this.getStyleId();\n\n if (!nextTypoStyleId) {\n this.updateElementWithThemeClasses(dom, Theme.from(config.theme));\n return false;\n }\n\n if (prevTypoStyleId !== nextTypoStyleId && nextTypoStyleId) {\n this.updateElementWithThemeClasses(dom, Theme.from(config.theme));\n }\n // Returning false tells Lexical that this node does not need its\n // DOM element replacing with a new copy from createDOM.\n return false;\n }\n\n /*\n * On copy/paste event this method will be executed in and create a node\n * */\n static override importDOM(): DOMConversionMap | null {\n return {\n p: () => ({\n conversion: convertParagraphElement,\n priority: 0\n })\n };\n }\n\n /*\n * Serialize the JSON data back into a node\n */\n static override importJSON(serializedNode: SerializeParagraphNode): BaseParagraphNode {\n const node = $createParagraphNode();\n node.setFormat(serializedNode.format);\n node.setIndent(serializedNode.indent);\n node.setDirection(serializedNode.direction);\n\n const styleId = getStyleId({\n styleId: serializedNode.styleId,\n styles: serializedNode.styles\n });\n\n node.setStyleId(styleId);\n node.setClassName(serializedNode.className);\n return node;\n }\n\n /*\n * Serialize the node to JSON data representation.\n * */\n override exportJSON(): SerializeParagraphNode {\n return {\n ...super.exportJSON(),\n styleId: this.__styleId,\n className: this.__className,\n type: \"wby-paragraph\"\n };\n }\n\n protected updateElementWithThemeClasses(element: HTMLElement, theme: Theme): HTMLElement {\n if (!this.__styleId || !this.__className) {\n this.setDefaultTypography(theme, this.__styleId);\n }\n\n if (this.__className) {\n addClassNamesToElement(element, this.__className);\n }\n\n return element;\n }\n\n private setDefaultTypography(theme: Theme, styleId?: string) {\n let typographyStyle = theme.getTypographyByTag(\"p\");\n if (styleId) {\n const byStyleId = theme.getTypographyById(styleId);\n if (byStyleId) {\n typographyStyle = byStyleId;\n }\n }\n\n if (typographyStyle) {\n this.__styleId = typographyStyle.id;\n this.__className = typographyStyle.className;\n }\n }\n}\n\nexport function $createParagraphNode(styleId?: string): ParagraphNode {\n return new ParagraphNode({ styleId });\n}\n\nexport function $isParagraphNode(node: LexicalNode | null | undefined): node is ParagraphNode {\n return node instanceof ParagraphNode;\n}\n"],"mappings":"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","ignoreList":[]}
|
package/QuoteNode.d.ts
CHANGED
|
@@ -1,31 +1,38 @@
|
|
|
1
|
-
import { DOMConversion, DOMConversionMap, EditorConfig, LexicalNode, NodeKey, Spread } from "lexical";
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
1
|
+
import type { DOMConversion, DOMConversionMap, DOMExportOutput, EditorConfig, LexicalEditor, LexicalNode, NodeKey, Spread } from "lexical";
|
|
2
|
+
import { Theme } from "@webiny/lexical-theme";
|
|
3
|
+
import type { SerializedQuoteNode as BaseSerializedQuoteNode } from "@lexical/rich-text";
|
|
4
|
+
import { QuoteNode as BaseQuoteNode } from "@lexical/rich-text";
|
|
5
|
+
import type { ThemeStyleValue, TypographyStylesNode } from "./types.js";
|
|
5
6
|
export type SerializedQuoteNode = Spread<{
|
|
6
7
|
styleId?: string;
|
|
7
|
-
styles
|
|
8
|
-
|
|
8
|
+
styles?: ThemeStyleValue[];
|
|
9
|
+
className?: string;
|
|
10
|
+
type: "wby-quote";
|
|
9
11
|
}, BaseSerializedQuoteNode>;
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
12
|
+
interface QuoteNodeOptions {
|
|
13
|
+
className?: string;
|
|
14
|
+
styleId?: string;
|
|
15
|
+
key?: NodeKey;
|
|
16
|
+
}
|
|
17
|
+
export declare class QuoteNode extends BaseQuoteNode implements TypographyStylesNode {
|
|
18
|
+
private __styleId;
|
|
19
|
+
private __className;
|
|
20
|
+
constructor(options?: QuoteNodeOptions);
|
|
21
|
+
getStyleId(): string | undefined;
|
|
22
|
+
setStyleId(styleId: string | undefined): void;
|
|
23
|
+
setClassName(className: string | undefined): void;
|
|
24
|
+
getClassName(): string | undefined;
|
|
25
|
+
private setDefaultTypography;
|
|
21
26
|
static getType(): string;
|
|
22
27
|
static clone(node: QuoteNode): QuoteNode;
|
|
23
|
-
addThemeStylesToHTMLElement(element: HTMLElement, theme: EditorTheme): HTMLElement;
|
|
24
28
|
createDOM(config: EditorConfig): HTMLElement;
|
|
29
|
+
exportDOM(editor: LexicalEditor): DOMExportOutput;
|
|
25
30
|
static importDomConversionMap(): DOMConversion<HTMLElement> | null;
|
|
26
31
|
static importDOM(): DOMConversionMap | null;
|
|
27
32
|
static importJSON(serializedNode: SerializedQuoteNode): QuoteNode;
|
|
28
33
|
exportJSON(): SerializedQuoteNode;
|
|
34
|
+
protected updateElementWithThemeClasses(element: HTMLElement, theme: Theme): HTMLElement;
|
|
29
35
|
}
|
|
30
|
-
export declare function $createQuoteNode(
|
|
36
|
+
export declare function $createQuoteNode(styleId?: string, key?: NodeKey): QuoteNode;
|
|
31
37
|
export declare function $isQuoteNode(node: LexicalNode | null | undefined): node is QuoteNode;
|
|
38
|
+
export {};
|