@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/ImageNode.js CHANGED
@@ -1,19 +1,3 @@
1
- "use strict";
2
-
3
- var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
4
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- exports.$createImageNode = $createImageNode;
9
- exports.$isImageNode = $isImageNode;
10
- exports.ImageNode = void 0;
11
- var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
12
- var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
13
- var _callSuper2 = _interopRequireDefault(require("@babel/runtime/helpers/callSuper"));
14
- var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
15
- var _react = _interopRequireWildcard(require("react"));
16
- var _lexical = require("lexical");
17
1
  /**
18
2
  * Copyright (c) Meta Platforms, Inc. and affiliates.
19
3
  *
@@ -21,188 +5,133 @@ var _lexical = require("lexical");
21
5
  * LICENSE file in the root directory of this source tree.
22
6
  *
23
7
  */
24
-
25
- var ImageComponent = /*#__PURE__*/_react.default.lazy(function () {
26
- return import(/* webpackChunkName: "LexicalNodesComponentsImageNodeImageComponent" */"./components/ImageNode/ImageComponent");
8
+ import React, { Suspense } from "react";
9
+ import { $applyNodeReplacement, DecoratorNode } from "lexical";
10
+ const ImageComponent = /*#__PURE__*/React.lazy(() => {
11
+ return import(/* webpackChunkName: "lexical-image" */"./components/ImageNode/ImageComponent.js");
27
12
  });
28
- var ImageNode = exports.ImageNode = /*#__PURE__*/function (_DecoratorNode) {
29
- function ImageNode(props, key) {
30
- var _this;
31
- (0, _classCallCheck2.default)(this, ImageNode);
32
- _this = (0, _callSuper2.default)(this, ImageNode, [key]);
33
- _this.__id = props.id;
34
- _this.__src = props.src;
35
- _this.__altText = props.altText;
36
- _this.__maxWidth = props.maxWidth;
37
- _this.__width = props.width || "inherit";
38
- _this.__height = props.height || "inherit";
39
- _this.__showCaption = props.showCaption || false;
40
- _this.__caption = props.caption || (0, _lexical.createEditor)();
41
- _this.__captionsEnabled = props.captionsEnabled || props.captionsEnabled === undefined;
42
- return _this;
13
+ export class ImageNode extends DecoratorNode {
14
+ static getType() {
15
+ return "wby-image";
16
+ }
17
+ static clone(node) {
18
+ return new ImageNode({
19
+ id: node.__id,
20
+ src: node.__src,
21
+ altText: node.__altText,
22
+ maxWidth: node.__maxWidth,
23
+ width: node.__width,
24
+ height: node.__height
25
+ }, node.__key);
26
+ }
27
+ static importJSON(serializedNode) {
28
+ const {
29
+ id,
30
+ altText,
31
+ height,
32
+ width,
33
+ maxWidth,
34
+ src
35
+ } = serializedNode;
36
+ return $createImageNode({
37
+ id,
38
+ altText,
39
+ height,
40
+ maxWidth,
41
+ src,
42
+ width
43
+ });
44
+ }
45
+ exportDOM() {
46
+ const element = document.createElement("img");
47
+ element.setAttribute("id", this.__id);
48
+ element.setAttribute("src", this.__src);
49
+ element.setAttribute("alt", this.__altText);
50
+ element.setAttribute("width", this.__width.toString());
51
+ element.setAttribute("height", this.__height.toString());
52
+ return {
53
+ element
54
+ };
43
55
  }
44
- (0, _inherits2.default)(ImageNode, _DecoratorNode);
45
- return (0, _createClass2.default)(ImageNode, [{
46
- key: "exportDOM",
47
- value: function exportDOM() {
48
- var element = document.createElement("img");
49
- element.setAttribute("id", this.__id);
50
- element.setAttribute("src", this.__src);
51
- element.setAttribute("alt", this.__altText);
52
- element.setAttribute("width", this.__width.toString());
53
- element.setAttribute("height", this.__height.toString());
54
- return {
55
- element: element
56
- };
57
- }
58
56
 
57
+ /**
58
+ * Control how an HTMLElement is represented in Lexical.
59
+ * DOM data comes from clipboard or parsing HTML to nodes with the available lexical functions.
60
+ * (@see @lexical/html package: https://github.com/facebook/lexical/blob/main/packages/lexical-html/README.md).
61
+ */
62
+ static importDOM() {
59
63
  /**
60
- * Control how an HTMLElement is represented in Lexical.
61
- * DOM data comes from clipboard or parsing HTML to nodes with the available lexical functions.
62
- * (@see @lexical/html package: https://github.com/facebook/lexical/blob/main/packages/lexical-html/README.md).
64
+ * By returning 'null' value, we are preventing image node to be created.
65
+ * Example of how to implement and create the node:
66
+ * https://github.com/facebook/lexical/blob/main/packages/lexical-playground/src/nodes/ImageNode.tsx#L94
63
67
  */
64
- }, {
65
- key: "exportJSON",
66
- value: function exportJSON() {
67
- return {
68
- id: this.__id,
69
- altText: this.getAltText(),
70
- caption: this.__caption.toJSON(),
71
- height: this.__height === "inherit" ? 0 : this.__height,
72
- maxWidth: this.__maxWidth,
73
- showCaption: this.__showCaption,
74
- src: this.getSrc(),
75
- type: "image",
76
- version: 1,
77
- width: this.__width === "inherit" ? 0 : this.__width
78
- };
79
- }
80
- }, {
81
- key: "setWidthAndHeight",
82
- value: function setWidthAndHeight(width, height) {
83
- var writable = this.getWritable();
84
- writable.__width = width;
85
- writable.__height = height;
86
- }
87
- }, {
88
- key: "setShowCaption",
89
- value: function setShowCaption(showCaption) {
90
- var writable = this.getWritable();
91
- writable.__showCaption = showCaption;
92
- }
93
-
94
- // View
95
- }, {
96
- key: "createDOM",
97
- value: function createDOM(config) {
98
- var span = document.createElement("span");
99
- var theme = config.theme;
100
- var className = theme.image;
101
- if (className !== undefined) {
102
- span.className = className;
103
- }
104
- return span;
105
- }
106
- }, {
107
- key: "updateDOM",
108
- value: function updateDOM() {
109
- return false;
110
- }
111
- }, {
112
- key: "getSrc",
113
- value: function getSrc() {
114
- return this.__src;
115
- }
116
- }, {
117
- key: "getAltText",
118
- value: function getAltText() {
119
- return this.__altText;
120
- }
121
- }, {
122
- key: "decorate",
123
- value: function decorate() {
124
- return /*#__PURE__*/_react.default.createElement(_react.Suspense, {
125
- fallback: null
126
- }, /*#__PURE__*/_react.default.createElement(ImageComponent, {
127
- id: this.__id,
128
- src: this.__src,
129
- altText: this.__altText,
130
- width: this.__width,
131
- height: this.__height,
132
- maxWidth: this.__maxWidth,
133
- nodeKey: this.getKey(),
134
- showCaption: this.__showCaption,
135
- caption: this.__caption,
136
- captionsEnabled: this.__captionsEnabled,
137
- resizable: true
138
- }));
139
- }
140
- }], [{
141
- key: "getType",
142
- value:
143
- // Captions cannot yet be used within editor cells
68
+ return null;
69
+ }
70
+ constructor(props, key) {
71
+ super(key);
72
+ this.__id = props.id;
73
+ this.__src = props.src;
74
+ this.__altText = props.altText;
75
+ this.__maxWidth = props.maxWidth;
76
+ this.__width = props.width || "inherit";
77
+ this.__height = props.height || "inherit";
78
+ }
79
+ exportJSON() {
80
+ return {
81
+ id: this.__id,
82
+ src: this.getSrc(),
83
+ altText: this.getAltText(),
84
+ width: this.__width === "inherit" ? 0 : this.__width,
85
+ height: this.__height === "inherit" ? 0 : this.__height,
86
+ maxWidth: this.__maxWidth,
87
+ type: this.getType(),
88
+ version: 1
89
+ };
90
+ }
91
+ setWidthAndHeight(width, height) {
92
+ const writable = this.getWritable();
93
+ writable.__width = width;
94
+ writable.__height = height;
95
+ }
144
96
 
145
- function getType() {
146
- return "image";
147
- }
148
- }, {
149
- key: "clone",
150
- value: function clone(node) {
151
- return new ImageNode({
152
- id: node.__id,
153
- src: node.__src,
154
- altText: node.__altText,
155
- maxWidth: node.__maxWidth,
156
- width: node.__width,
157
- height: node.__height,
158
- showCaption: node.__showCaption,
159
- caption: node.__caption,
160
- captionsEnabled: node.__captionsEnabled
161
- }, node.__key);
162
- }
163
- }, {
164
- key: "importJSON",
165
- value: function importJSON(serializedNode) {
166
- var id = serializedNode.id,
167
- altText = serializedNode.altText,
168
- height = serializedNode.height,
169
- width = serializedNode.width,
170
- maxWidth = serializedNode.maxWidth,
171
- caption = serializedNode.caption,
172
- src = serializedNode.src,
173
- showCaption = serializedNode.showCaption;
174
- var node = $createImageNode({
175
- id: id,
176
- altText: altText,
177
- height: height,
178
- maxWidth: maxWidth,
179
- showCaption: showCaption,
180
- src: src,
181
- width: width
182
- });
183
- var nestedEditor = node.__caption;
184
- var editorState = nestedEditor.parseEditorState(caption.editorState);
185
- if (!editorState.isEmpty()) {
186
- nestedEditor.setEditorState(editorState);
187
- }
188
- return node;
97
+ // View
98
+ createDOM(config) {
99
+ const span = document.createElement("span");
100
+ const theme = config.theme;
101
+ const className = theme.image;
102
+ if (className !== undefined) {
103
+ span.className = className;
189
104
  }
190
- }, {
191
- key: "importDOM",
192
- value: function importDOM() {
193
- /**
194
- * By returning 'null' value, we are preventing image node to be created.
195
- * Example of how to implement and create the node:
196
- * https://github.com/facebook/lexical/blob/main/packages/lexical-playground/src/nodes/ImageNode.tsx#L94
197
- */
198
- return null;
199
- }
200
- }]);
201
- }(_lexical.DecoratorNode);
202
- function $createImageNode(props, key) {
203
- return (0, _lexical.$applyNodeReplacement)(new ImageNode(props, key));
105
+ return span;
106
+ }
107
+ updateDOM() {
108
+ return false;
109
+ }
110
+ getSrc() {
111
+ return this.__src;
112
+ }
113
+ getAltText() {
114
+ return this.__altText;
115
+ }
116
+ decorate() {
117
+ return /*#__PURE__*/React.createElement(Suspense, {
118
+ fallback: null
119
+ }, /*#__PURE__*/React.createElement(ImageComponent, {
120
+ id: this.__id,
121
+ src: this.__src,
122
+ altText: this.__altText,
123
+ width: this.__width,
124
+ height: this.__height,
125
+ maxWidth: this.__maxWidth,
126
+ nodeKey: this.getKey(),
127
+ resizable: true
128
+ }));
129
+ }
130
+ }
131
+ export function $createImageNode(props, key) {
132
+ return $applyNodeReplacement(new ImageNode(props, key));
204
133
  }
205
- function $isImageNode(node) {
134
+ export function $isImageNode(node) {
206
135
  return node instanceof ImageNode;
207
136
  }
208
137
 
package/ImageNode.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireWildcard","require","_lexical","ImageComponent","React","lazy","ImageNode","exports","_DecoratorNode","props","key","_this","_classCallCheck2","default","_callSuper2","__id","id","__src","src","__altText","altText","__maxWidth","maxWidth","__width","width","__height","height","__showCaption","showCaption","__caption","caption","createEditor","__captionsEnabled","captionsEnabled","undefined","_inherits2","_createClass2","value","exportDOM","element","document","createElement","setAttribute","toString","exportJSON","getAltText","toJSON","getSrc","type","version","setWidthAndHeight","writable","getWritable","setShowCaption","createDOM","config","span","theme","className","image","updateDOM","decorate","Suspense","fallback","nodeKey","getKey","resizable","getType","clone","node","__key","importJSON","serializedNode","$createImageNode","nestedEditor","editorState","parseEditorState","isEmpty","setEditorState","importDOM","DecoratorNode","$applyNodeReplacement","$isImageNode"],"sources":["ImageNode.tsx"],"sourcesContent":["/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\nimport React, { Suspense } from \"react\";\nimport type {\n DOMConversionMap,\n DOMExportOutput,\n EditorConfig,\n LexicalEditor,\n LexicalNode,\n NodeKey,\n SerializedEditor,\n SerializedLexicalNode,\n Spread\n} from \"lexical\";\nimport { $applyNodeReplacement, createEditor, DecoratorNode } from \"lexical\";\n\nconst ImageComponent = React.lazy(\n () =>\n import(\n /* webpackChunkName: \"LexicalNodesComponentsImageNodeImageComponent\" */\n \"./components/ImageNode/ImageComponent\"\n )\n);\n\nexport type SerializedImageNode = Spread<\n {\n id: string;\n altText: string;\n caption: SerializedEditor;\n height?: number;\n maxWidth: number;\n showCaption: boolean;\n src: string;\n width?: number;\n },\n SerializedLexicalNode\n>;\n\nexport interface ImageNodeProps {\n id: string;\n src: string;\n altText: string;\n maxWidth: number;\n width?: \"inherit\" | number;\n height?: \"inherit\" | number;\n showCaption?: boolean;\n caption?: LexicalEditor;\n captionsEnabled?: boolean;\n}\n\nexport class ImageNode extends DecoratorNode<JSX.Element> {\n __id: string;\n __src: string;\n __altText: string;\n __width: \"inherit\" | number;\n __height: \"inherit\" | number;\n __maxWidth: number;\n __showCaption: boolean;\n __caption: LexicalEditor;\n // Captions cannot yet be used within editor cells\n __captionsEnabled: boolean;\n\n static override getType(): string {\n return \"image\";\n }\n\n static override clone(node: ImageNode): ImageNode {\n return new ImageNode(\n {\n id: node.__id,\n src: node.__src,\n altText: node.__altText,\n maxWidth: node.__maxWidth,\n width: node.__width,\n height: node.__height,\n showCaption: node.__showCaption,\n caption: node.__caption,\n captionsEnabled: node.__captionsEnabled\n },\n node.__key\n );\n }\n\n static override importJSON(serializedNode: SerializedImageNode): ImageNode {\n const { id, altText, height, width, maxWidth, caption, src, showCaption } = serializedNode;\n const node = $createImageNode({\n id,\n altText,\n height,\n maxWidth,\n showCaption,\n src,\n width\n });\n const nestedEditor = node.__caption;\n const editorState = nestedEditor.parseEditorState(caption.editorState);\n if (!editorState.isEmpty()) {\n nestedEditor.setEditorState(editorState);\n }\n return node;\n }\n\n override exportDOM(): DOMExportOutput {\n const element = document.createElement(\"img\");\n element.setAttribute(\"id\", this.__id);\n element.setAttribute(\"src\", this.__src);\n element.setAttribute(\"alt\", this.__altText);\n element.setAttribute(\"width\", this.__width.toString());\n element.setAttribute(\"height\", this.__height.toString());\n return { element };\n }\n\n /**\n * Control how an HTMLElement is represented in Lexical.\n * DOM data comes from clipboard or parsing HTML to nodes with the available lexical functions.\n * (@see @lexical/html package: https://github.com/facebook/lexical/blob/main/packages/lexical-html/README.md).\n */\n static override importDOM(): DOMConversionMap | null {\n /**\n * By returning 'null' value, we are preventing image node to be created.\n * Example of how to implement and create the node:\n * https://github.com/facebook/lexical/blob/main/packages/lexical-playground/src/nodes/ImageNode.tsx#L94\n */\n return null;\n }\n\n constructor(props: ImageNodeProps, key?: NodeKey) {\n super(key);\n this.__id = props.id;\n this.__src = props.src;\n this.__altText = props.altText;\n this.__maxWidth = props.maxWidth;\n this.__width = props.width || \"inherit\";\n this.__height = props.height || \"inherit\";\n this.__showCaption = props.showCaption || false;\n this.__caption = props.caption || createEditor();\n this.__captionsEnabled = props.captionsEnabled || props.captionsEnabled === undefined;\n }\n\n override exportJSON(): SerializedImageNode {\n return {\n id: this.__id,\n altText: this.getAltText(),\n caption: this.__caption.toJSON(),\n height: this.__height === \"inherit\" ? 0 : this.__height,\n maxWidth: this.__maxWidth,\n showCaption: this.__showCaption,\n src: this.getSrc(),\n type: \"image\",\n version: 1,\n width: this.__width === \"inherit\" ? 0 : this.__width\n };\n }\n\n setWidthAndHeight(width: \"inherit\" | number, height: \"inherit\" | number): void {\n const writable = this.getWritable();\n writable.__width = width;\n writable.__height = height;\n }\n\n setShowCaption(showCaption: boolean): void {\n const writable = this.getWritable();\n writable.__showCaption = showCaption;\n }\n\n // View\n override createDOM(config: EditorConfig): HTMLElement {\n const span = document.createElement(\"span\");\n const theme = config.theme;\n const className = theme.image;\n if (className !== undefined) {\n span.className = className;\n }\n return span;\n }\n\n override updateDOM(): false {\n return false;\n }\n\n getSrc(): string {\n return this.__src;\n }\n\n getAltText(): string {\n return this.__altText;\n }\n\n override decorate(): JSX.Element {\n return (\n <Suspense fallback={null}>\n <ImageComponent\n id={this.__id}\n src={this.__src}\n altText={this.__altText}\n width={this.__width}\n height={this.__height}\n maxWidth={this.__maxWidth}\n nodeKey={this.getKey()}\n showCaption={this.__showCaption}\n caption={this.__caption}\n captionsEnabled={this.__captionsEnabled}\n resizable={true}\n />\n </Suspense>\n );\n }\n}\n\nexport function $createImageNode(props: ImageNodeProps, key?: string): ImageNode {\n return $applyNodeReplacement(new ImageNode(props, key));\n}\n\nexport function $isImageNode(node: LexicalNode | null | undefined): node is ImageNode {\n return node instanceof ImageNode;\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","Suspense","$applyNodeReplacement","DecoratorNode","ImageComponent","lazy","ImageNode","getType","clone","node","id","__id","src","__src","altText","__altText","maxWidth","__maxWidth","width","__width","height","__height","__key","importJSON","serializedNode","$createImageNode","exportDOM","element","document","createElement","setAttribute","toString","importDOM","constructor","props","key","exportJSON","getSrc","getAltText","type","version","setWidthAndHeight","writable","getWritable","createDOM","config","span","theme","className","image","undefined","updateDOM","decorate","fallback","nodeKey","getKey","resizable","$isImageNode"],"sources":["ImageNode.tsx"],"sourcesContent":["/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\nimport React, { Suspense } from \"react\";\nimport type {\n DOMConversionMap,\n DOMExportOutput,\n EditorConfig,\n LexicalNode,\n NodeKey,\n SerializedLexicalNode,\n Spread\n} from \"lexical\";\nimport { $applyNodeReplacement, DecoratorNode } from \"lexical\";\n\nconst ImageComponent = React.lazy(() => {\n return import(\n /* webpackChunkName: \"lexical-image\" */\n \"./components/ImageNode/ImageComponent.js\"\n );\n});\n\nexport type SerializedImageNode = Spread<\n {\n id: string;\n altText: string;\n height?: number;\n maxWidth: number;\n src: string;\n width?: number;\n },\n SerializedLexicalNode\n>;\n\nexport interface ImageNodeProps {\n id: string;\n src: string;\n altText: string;\n maxWidth: number;\n width?: \"inherit\" | number;\n height?: \"inherit\" | number;\n}\n\nexport class ImageNode extends DecoratorNode<JSX.Element> {\n __id: string;\n __src: string;\n __altText: string;\n __width: \"inherit\" | number;\n __height: \"inherit\" | number;\n __maxWidth: number;\n\n static override getType(): string {\n return \"wby-image\";\n }\n\n static override clone(node: ImageNode): ImageNode {\n return new ImageNode(\n {\n id: node.__id,\n src: node.__src,\n altText: node.__altText,\n maxWidth: node.__maxWidth,\n width: node.__width,\n height: node.__height\n },\n node.__key\n );\n }\n\n static override importJSON(serializedNode: SerializedImageNode): ImageNode {\n const { id, altText, height, width, maxWidth, src } = serializedNode;\n return $createImageNode({\n id,\n altText,\n height,\n maxWidth,\n src,\n width\n });\n }\n\n override exportDOM(): DOMExportOutput {\n const element = document.createElement(\"img\");\n element.setAttribute(\"id\", this.__id);\n element.setAttribute(\"src\", this.__src);\n element.setAttribute(\"alt\", this.__altText);\n element.setAttribute(\"width\", this.__width.toString());\n element.setAttribute(\"height\", this.__height.toString());\n return { element };\n }\n\n /**\n * Control how an HTMLElement is represented in Lexical.\n * DOM data comes from clipboard or parsing HTML to nodes with the available lexical functions.\n * (@see @lexical/html package: https://github.com/facebook/lexical/blob/main/packages/lexical-html/README.md).\n */\n static override importDOM(): DOMConversionMap | null {\n /**\n * By returning 'null' value, we are preventing image node to be created.\n * Example of how to implement and create the node:\n * https://github.com/facebook/lexical/blob/main/packages/lexical-playground/src/nodes/ImageNode.tsx#L94\n */\n return null;\n }\n\n constructor(props: ImageNodeProps, key?: NodeKey) {\n super(key);\n this.__id = props.id;\n this.__src = props.src;\n this.__altText = props.altText;\n this.__maxWidth = props.maxWidth;\n this.__width = props.width || \"inherit\";\n this.__height = props.height || \"inherit\";\n }\n\n override exportJSON(): SerializedImageNode {\n return {\n id: this.__id,\n src: this.getSrc(),\n altText: this.getAltText(),\n width: this.__width === \"inherit\" ? 0 : this.__width,\n height: this.__height === \"inherit\" ? 0 : this.__height,\n maxWidth: this.__maxWidth,\n type: this.getType(),\n version: 1\n };\n }\n\n setWidthAndHeight(width: \"inherit\" | number, height: \"inherit\" | number): void {\n const writable = this.getWritable();\n writable.__width = width;\n writable.__height = height;\n }\n\n // View\n override createDOM(config: EditorConfig): HTMLElement {\n const span = document.createElement(\"span\");\n const theme = config.theme;\n const className = theme.image;\n if (className !== undefined) {\n span.className = className;\n }\n return span;\n }\n\n override updateDOM(): false {\n return false;\n }\n\n getSrc(): string {\n return this.__src;\n }\n\n getAltText(): string {\n return this.__altText;\n }\n\n override decorate(): JSX.Element {\n return (\n <Suspense fallback={null}>\n <ImageComponent\n id={this.__id}\n src={this.__src}\n altText={this.__altText}\n width={this.__width}\n height={this.__height}\n maxWidth={this.__maxWidth}\n nodeKey={this.getKey()}\n resizable={true}\n />\n </Suspense>\n );\n }\n}\n\nexport function $createImageNode(props: ImageNodeProps, key?: string): ImageNode {\n return $applyNodeReplacement(new ImageNode(props, key));\n}\n\nexport function $isImageNode(node: LexicalNode | null | undefined): node is ImageNode {\n return node instanceof ImageNode;\n}\n"],"mappings":"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","ignoreList":[]}
package/LinkNode.d.ts CHANGED
@@ -6,8 +6,8 @@
6
6
  * LICENSE file in the root directory of this source tree.
7
7
  *
8
8
  */
9
- import type { DOMConversionMap, EditorConfig, RangeSelection, LexicalCommand, LexicalNode, NodeKey, SerializedElementNode } from "lexical";
10
- import { ElementNode, Spread } from "lexical";
9
+ import type { DOMConversionMap, EditorConfig, RangeSelection, LexicalCommand, LexicalNode, NodeKey, SerializedElementNode, Spread } from "lexical";
10
+ import { ElementNode } from "lexical";
11
11
  export type LinkAttributes = {
12
12
  rel?: null | string;
13
13
  target?: null | string;