@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.
Files changed (83) hide show
  1. package/FontColorNode.d.ts +6 -6
  2. package/FontColorNode.js +102 -145
  3. package/FontColorNode.js.map +1 -1
  4. package/HeadingNode.d.ts +29 -17
  5. package/HeadingNode.js +184 -152
  6. package/HeadingNode.js.map +1 -1
  7. package/ImageNode.d.ts +1 -11
  8. package/ImageNode.js +119 -190
  9. package/ImageNode.js.map +1 -1
  10. package/LinkNode.d.ts +2 -2
  11. package/LinkNode.js +249 -346
  12. package/LinkNode.js.map +1 -1
  13. package/ListItemNode.d.ts +4 -3
  14. package/ListItemNode.js +275 -354
  15. package/ListItemNode.js.map +1 -1
  16. package/ListNode.d.ts +28 -14
  17. package/ListNode.js +170 -209
  18. package/ListNode.js.map +1 -1
  19. package/ParagraphNode.d.ts +28 -16
  20. package/ParagraphNode.js +143 -179
  21. package/ParagraphNode.js.map +1 -1
  22. package/QuoteNode.d.ts +26 -19
  23. package/QuoteNode.js +102 -188
  24. package/QuoteNode.js.map +1 -1
  25. package/README.md +9 -4
  26. package/components/ImageNode/ImageComponent.d.ts +2 -7
  27. package/components/ImageNode/ImageComponent.js +72 -166
  28. package/components/ImageNode/ImageComponent.js.map +1 -1
  29. package/components/ImageNode/ImageResizer.d.ts +1 -8
  30. package/components/ImageNode/ImageResizer.js +74 -89
  31. package/components/ImageNode/ImageResizer.js.map +1 -1
  32. package/generateInitialLexicalValue.d.ts +4 -0
  33. package/generateInitialLexicalValue.js +27 -0
  34. package/generateInitialLexicalValue.js.map +1 -0
  35. package/index.d.ts +19 -23
  36. package/index.js +50 -233
  37. package/index.js.map +1 -1
  38. package/package.json +16 -20
  39. package/prepareLexicalState.d.ts +2 -0
  40. package/prepareLexicalState.js +53 -0
  41. package/prepareLexicalState.js.map +1 -0
  42. package/types.d.ts +4 -5
  43. package/types.js +1 -5
  44. package/types.js.map +1 -1
  45. package/utils/clearNodeFormating.d.ts +1 -1
  46. package/utils/clearNodeFormating.js +12 -18
  47. package/utils/clearNodeFormating.js.map +1 -1
  48. package/utils/formatList.d.ts +4 -4
  49. package/utils/formatList.js +171 -208
  50. package/utils/formatList.js.map +1 -1
  51. package/utils/formatToHeading.d.ts +2 -2
  52. package/utils/formatToHeading.js +8 -15
  53. package/utils/formatToHeading.js.map +1 -1
  54. package/utils/formatToParagraph.d.ts +1 -1
  55. package/utils/formatToParagraph.js +8 -16
  56. package/utils/formatToParagraph.js.map +1 -1
  57. package/utils/formatToQuote.d.ts +1 -1
  58. package/utils/formatToQuote.js +8 -15
  59. package/utils/formatToQuote.js.map +1 -1
  60. package/utils/getStyleId.d.ts +11 -0
  61. package/utils/getStyleId.js +14 -0
  62. package/utils/getStyleId.js.map +1 -0
  63. package/utils/listNode.d.ts +2 -2
  64. package/utils/listNode.js +37 -50
  65. package/utils/listNode.js.map +1 -1
  66. package/utils/toggleLink.d.ts +1 -1
  67. package/utils/toggleLink.js +41 -45
  68. package/utils/toggleLink.js.map +1 -1
  69. package/TypographyNode.d.ts +0 -39
  70. package/TypographyNode.js +0 -146
  71. package/TypographyNode.js.map +0 -1
  72. package/components/ImageNode/ContentEditable.css +0 -22
  73. package/components/ImageNode/ContentEditable.d.ts +0 -12
  74. package/components/ImageNode/ContentEditable.js +0 -26
  75. package/components/ImageNode/ContentEditable.js.map +0 -1
  76. package/components/ImageNode/ImageComponent.css +0 -43
  77. package/components/ImageNode/Placeholder.css +0 -20
  78. package/components/ImageNode/Placeholder.d.ts +0 -15
  79. package/components/ImageNode/Placeholder.js +0 -30
  80. package/components/ImageNode/Placeholder.js.map +0 -1
  81. package/components/ImageNode/SharedHistoryContext.d.ts +0 -10
  82. package/components/ImageNode/SharedHistoryContext.js +0 -27
  83. package/components/ImageNode/SharedHistoryContext.js.map +0 -1
package/ParagraphNode.js CHANGED
@@ -1,194 +1,158 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
- Object.defineProperty(exports, "__esModule", {
5
- value: true
6
- });
7
- exports.$createParagraphNode = $createParagraphNode;
8
- exports.$isParagraphNode = $isParagraphNode;
9
- exports.ParagraphNode = void 0;
10
- var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
11
- var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
12
- var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
13
- var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
14
- var _callSuper2 = _interopRequireDefault(require("@babel/runtime/helpers/callSuper"));
15
- var _superPropGet2 = _interopRequireDefault(require("@babel/runtime/helpers/superPropGet"));
16
- var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
17
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
18
- var _lexical = require("lexical");
19
- var _lexicalTheme = require("@webiny/lexical-theme");
20
- var _utils = require("@lexical/utils");
21
- var ParagraphNode = exports.ParagraphNode = /*#__PURE__*/function (_BaseParagraphNode) {
22
- function ParagraphNode(typographyStyleId, key) {
23
- var _this;
24
- (0, _classCallCheck2.default)(this, ParagraphNode);
25
- _this = (0, _callSuper2.default)(this, ParagraphNode, [key]);
26
- (0, _defineProperty2.default)(_this, "__styles", []);
27
- if (typographyStyleId) {
28
- _this.__styles.push({
29
- styleId: typographyStyleId,
30
- type: "typography"
31
- });
32
- }
33
- return _this;
34
- }
35
- (0, _inherits2.default)(ParagraphNode, _BaseParagraphNode);
36
- return (0, _createClass2.default)(ParagraphNode, [{
37
- key: "setDefaultTypography",
38
- value: function setDefaultTypography(themeEmotionMap) {
39
- var typographyStyle = (0, _lexicalTheme.findTypographyStyleByHtmlTag)("p", themeEmotionMap);
40
- if (typographyStyle) {
41
- this.__styles.push({
42
- styleId: typographyStyle.id,
43
- type: "typography"
44
- });
45
- }
46
- }
47
- }, {
48
- key: "getTypographyStyleId",
49
- value: function getTypographyStyleId() {
50
- var style = this.__styles.find(function (x) {
51
- return x.type === "typography";
52
- });
53
- return style?.styleId || undefined;
54
- }
55
- }, {
56
- key: "hasTypographyStyle",
57
- value: function hasTypographyStyle() {
58
- return !!this.getTypographyStyleId();
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
- key: "getThemeStyles",
62
- value: function getThemeStyles() {
63
- // getLatest() ensures we are getting the most
64
- // up-to-date value from the EditorState.
65
- var self = (0, _superPropGet2.default)(ParagraphNode, "getLatest", this, 3)([]);
66
- return self.__styles;
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
- key: "setThemeStyles",
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
- key: "updateElementWithThemeClasses",
80
- value: function updateElementWithThemeClasses(element, theme) {
81
- if (!theme?.emotionMap) {
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
- // Typography css class
91
- if (typoStyleId) {
92
- var typographyStyle = theme.emotionMap[typoStyleId];
93
- if (typographyStyle) {
94
- themeClasses = typographyStyle.className;
95
- }
96
- }
97
- if (themeClasses) {
98
- (0, _utils.addClassNamesToElement)(element, themeClasses);
99
- }
100
- return element;
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
- * On copy/paste event this method will be executed in and create a node
127
- * */
128
- }, {
129
- key: "exportJSON",
130
- value:
131
- /*
132
- * Serialize the node to JSON data representation.
133
- * */
134
- function exportJSON() {
135
- return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, (0, _superPropGet2.default)(ParagraphNode, "exportJSON", this, 3)([])), {}, {
136
- styles: this.__styles,
137
- type: "paragraph-element",
138
- version: 1
139
- });
140
- }
141
- }], [{
142
- key: "getType",
143
- value: function getType() {
144
- return "paragraph-element";
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
- key: "clone",
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
- key: "importDOM",
153
- value: function importDOM() {
154
- return {
155
- p: function p() {
156
- return {
157
- conversion: convertParagraphElement,
158
- priority: 0
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
- * Serialize the JSON data back into a node
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(typographyStyleId) {
189
- return (0, _lexical.$applyNodeReplacement)(new ParagraphNode(typographyStyleId));
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
 
@@ -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 { EditorTheme, ThemeEmotionMap } from "@webiny/lexical-theme";
3
- import { QuoteNode as BaseQuoteNode, SerializedQuoteNode as BaseSerializedQuoteNode } from "@lexical/rich-text";
4
- import { TextNodeThemeStyles, ThemeStyleValue, TypographyStylesNode } from "./types";
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: ThemeStyleValue[];
8
- type: "webiny-quote";
8
+ styles?: ThemeStyleValue[];
9
+ className?: string;
10
+ type: "wby-quote";
9
11
  }, BaseSerializedQuoteNode>;
10
- export declare class QuoteNode extends BaseQuoteNode implements TextNodeThemeStyles, TypographyStylesNode {
11
- private __themeStyleId;
12
- private __styles;
13
- constructor(themeStyleId?: string, key?: NodeKey);
14
- getStyleId(): string;
15
- protected setDefaultTypography(themeEmotionMap: ThemeEmotionMap): void;
16
- protected typographyStyleExist(themeEmotionMap: ThemeEmotionMap): boolean;
17
- getTypographyStyleId(): string | undefined;
18
- private hasTypographyStyle;
19
- getThemeStyles(): ThemeStyleValue[];
20
- setThemeStyles(styles: ThemeStyleValue[]): this;
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(themeStyleId?: string, key?: NodeKey): QuoteNode;
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 {};