@webiny/lexical-nodes 5.40.0-beta.2 → 5.40.0-beta.4

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 (46) hide show
  1. package/FontColorNode.js +8 -14
  2. package/FontColorNode.js.map +1 -1
  3. package/HeadingNode.js +6 -10
  4. package/HeadingNode.js.map +1 -1
  5. package/ImageNode.js +5 -8
  6. package/ImageNode.js.map +1 -1
  7. package/LinkNode.d.ts +2 -7
  8. package/LinkNode.js +29 -137
  9. package/LinkNode.js.map +1 -1
  10. package/ListItemNode.js +5 -8
  11. package/ListItemNode.js.map +1 -1
  12. package/ListNode.js +5 -8
  13. package/ListNode.js.map +1 -1
  14. package/ParagraphNode.js +6 -10
  15. package/ParagraphNode.js.map +1 -1
  16. package/QuoteNode.js +6 -10
  17. package/QuoteNode.js.map +1 -1
  18. package/TypographyNode.js +8 -14
  19. package/TypographyNode.js.map +1 -1
  20. package/components/ImageNode/ContentEditable.js.map +1 -1
  21. package/components/ImageNode/ImageComponent.d.ts +4 -2
  22. package/components/ImageNode/ImageComponent.js +12 -11
  23. package/components/ImageNode/ImageComponent.js.map +1 -1
  24. package/components/ImageNode/ImageResizer.js +5 -4
  25. package/components/ImageNode/ImageResizer.js.map +1 -1
  26. package/components/ImageNode/Placeholder.js.map +1 -1
  27. package/components/ImageNode/SharedHistoryContext.js +7 -8
  28. package/components/ImageNode/SharedHistoryContext.js.map +1 -1
  29. package/index.d.ts +1 -0
  30. package/index.js +13 -2
  31. package/index.js.map +1 -1
  32. package/package.json +6 -6
  33. package/types.js.map +1 -1
  34. package/utils/clearNodeFormating.js +1 -2
  35. package/utils/clearNodeFormating.js.map +1 -1
  36. package/utils/formatList.js.map +1 -1
  37. package/utils/formatToHeading.js +1 -2
  38. package/utils/formatToHeading.js.map +1 -1
  39. package/utils/formatToParagraph.js +1 -2
  40. package/utils/formatToParagraph.js.map +1 -1
  41. package/utils/formatToQuote.js +1 -2
  42. package/utils/formatToQuote.js.map +1 -1
  43. package/utils/listNode.js.map +1 -1
  44. package/utils/toggleLink.d.ts +8 -0
  45. package/utils/toggleLink.js +135 -0
  46. package/utils/toggleLink.js.map +1 -0
package/FontColorNode.js CHANGED
@@ -9,30 +9,28 @@ exports.FontColorNode = exports.ADD_FONT_COLOR_COMMAND = exports.$isFontColorNod
9
9
  var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
10
10
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
11
11
  var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
12
+ var _callSuper2 = _interopRequireDefault(require("@babel/runtime/helpers/callSuper"));
12
13
  var _get2 = _interopRequireDefault(require("@babel/runtime/helpers/get"));
13
14
  var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
14
15
  var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
15
- var _createSuper2 = _interopRequireDefault(require("@babel/runtime/helpers/createSuper"));
16
16
  var _lexical = require("lexical");
17
- var ADD_FONT_COLOR_COMMAND = (0, _lexical.createCommand)("ADD_FONT_COLOR_COMMAND");
18
- exports.ADD_FONT_COLOR_COMMAND = ADD_FONT_COLOR_COMMAND;
17
+ var ADD_FONT_COLOR_COMMAND = exports.ADD_FONT_COLOR_COMMAND = (0, _lexical.createCommand)("ADD_FONT_COLOR_COMMAND");
19
18
  var FontColorNodeAttrName = "data-theme-font-color-name";
20
19
  /**
21
20
  * Main responsibility of this node is to apply custom or Webiny theme color to selected text.
22
21
  * Extends the original TextNode node to add additional transformation and support for webiny theme font color.
23
22
  */
24
- var FontColorNode = /*#__PURE__*/function (_TextNode) {
25
- (0, _inherits2.default)(FontColorNode, _TextNode);
26
- var _super = (0, _createSuper2.default)(FontColorNode);
23
+ var FontColorNode = exports.FontColorNode = /*#__PURE__*/function (_TextNode) {
27
24
  function FontColorNode(text, color, themeColor, key) {
28
25
  var _this;
29
26
  (0, _classCallCheck2.default)(this, FontColorNode);
30
- _this = _super.call(this, text, key);
27
+ _this = (0, _callSuper2.default)(this, FontColorNode, [text, key]);
31
28
  _this.__themeColor = themeColor || "custom";
32
29
  _this.__color = color;
33
30
  return _this;
34
31
  }
35
- (0, _createClass2.default)(FontColorNode, [{
32
+ (0, _inherits2.default)(FontColorNode, _TextNode);
33
+ return (0, _createClass2.default)(FontColorNode, [{
36
34
  key: "exportJSON",
37
35
  value: function exportJSON() {
38
36
  return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, (0, _get2.default)((0, _getPrototypeOf2.default)(FontColorNode.prototype), "exportJSON", this).call(this)), {}, {
@@ -104,17 +102,13 @@ var FontColorNode = /*#__PURE__*/function (_TextNode) {
104
102
  return node;
105
103
  }
106
104
  }]);
107
- return FontColorNode;
108
105
  }(_lexical.TextNode);
109
- exports.FontColorNode = FontColorNode;
110
- var $createFontColorNode = function $createFontColorNode(text, color, themeColor, key) {
106
+ var $createFontColorNode = exports.$createFontColorNode = function $createFontColorNode(text, color, themeColor, key) {
111
107
  return new FontColorNode(text, color, themeColor, key);
112
108
  };
113
- exports.$createFontColorNode = $createFontColorNode;
114
- var $isFontColorNode = function $isFontColorNode(node) {
109
+ var $isFontColorNode = exports.$isFontColorNode = function $isFontColorNode(node) {
115
110
  return node instanceof FontColorNode;
116
111
  };
117
- exports.$isFontColorNode = $isFontColorNode;
118
112
  function $applyStylesToNode(node, nodeStyleProvider) {
119
113
  node.setFormat(nodeStyleProvider.format);
120
114
  node.setStyle(nodeStyleProvider.style);
@@ -1 +1 @@
1
- {"version":3,"names":["_lexical","require","ADD_FONT_COLOR_COMMAND","createCommand","exports","FontColorNodeAttrName","FontColorNode","_TextNode","_inherits2","default","_super","_createSuper2","text","color","themeColor","key","_this","_classCallCheck2","call","__themeColor","__color","_createClass2","value","exportJSON","_objectSpread2","_get2","_getPrototypeOf2","prototype","type","version","addColorValueToHTMLElement","element","theme","hasThemeColor","styles","colors","setAttribute","style","updateDOM","prevNode","dom","config","isUpdated","getColorStyle","createDOM","getType","clone","node","__text","__key","importJSON","serializedNode","setTextContent","setFormat","format","setDetail","detail","setMode","mode","setStyle","TextNode","$createFontColorNode","$isFontColorNode","$applyStylesToNode","nodeStyleProvider"],"sources":["FontColorNode.ts"],"sourcesContent":["import {\n createCommand,\n EditorConfig,\n LexicalCommand,\n LexicalEditor,\n LexicalNode,\n NodeKey,\n RangeSelection,\n SerializedTextNode,\n Spread,\n TextNode\n} from \"lexical\";\nimport { EditorTheme } from \"@webiny/lexical-theme\";\n\nexport const ADD_FONT_COLOR_COMMAND: LexicalCommand<FontColorPayload> =\n createCommand(\"ADD_FONT_COLOR_COMMAND\");\nconst FontColorNodeAttrName = \"data-theme-font-color-name\";\n\nexport interface FontColorPayload {\n // This color can be hex string\n color: string;\n // webiny theme color variable like color1, color2...\n themeColorName: string | undefined;\n caption?: LexicalEditor;\n key?: NodeKey;\n}\n\ntype ThemeStyleColorName = string;\ntype ThemeColor = \"custom\" | ThemeStyleColorName;\n\nexport type SerializedFontColorNode = Spread<\n {\n themeColor: ThemeColor;\n color: string;\n type: \"font-color-node\";\n version: 1;\n },\n SerializedTextNode\n>;\n\n/**\n * Main responsibility of this node is to apply custom or Webiny theme color to selected text.\n * Extends the original TextNode node to add additional transformation and support for webiny theme font color.\n */\nexport class FontColorNode extends TextNode {\n __themeColor: ThemeColor;\n __color: string;\n\n constructor(text: string, color: string, themeColor?: ThemeColor, key?: NodeKey) {\n super(text, key);\n this.__themeColor = themeColor || \"custom\";\n this.__color = color;\n }\n\n static override getType(): string {\n return \"font-color-node\";\n }\n\n static override clone(node: FontColorNode): FontColorNode {\n return new FontColorNode(node.__text, node.__color, node.__themeColor, node.__key);\n }\n\n static override importJSON(serializedNode: SerializedFontColorNode): TextNode {\n const node = new FontColorNode(\n serializedNode.text,\n serializedNode.color,\n serializedNode.themeColor\n );\n node.setTextContent(serializedNode.text);\n node.setFormat(serializedNode.format);\n node.setDetail(serializedNode.detail);\n node.setMode(serializedNode.mode);\n node.setStyle(serializedNode.style);\n return node;\n }\n\n override exportJSON(): SerializedFontColorNode {\n return {\n ...super.exportJSON(),\n themeColor: this.__themeColor,\n color: this.__color,\n type: \"font-color-node\",\n version: 1\n };\n }\n\n addColorValueToHTMLElement(element: HTMLElement, theme: EditorTheme): HTMLElement {\n const hasThemeColor = this.__themeColor !== \"custom\";\n // get the updated color from webiny theme\n if (hasThemeColor && theme?.styles?.colors) {\n this.__color = theme.styles.colors[this.__themeColor];\n }\n\n element.setAttribute(FontColorNodeAttrName, this.__themeColor);\n element.style.color = this.__color;\n return element;\n }\n\n override updateDOM(prevNode: FontColorNode, dom: HTMLElement, config: EditorConfig): boolean {\n const theme = config.theme;\n const isUpdated = super.updateDOM(prevNode, dom, config);\n const hasThemeColor = this.__themeColor !== \"custom\";\n // get the updated color from webiny theme\n if (hasThemeColor && theme?.styles?.colors) {\n this.__color = theme.styles.colors[this.__themeColor];\n }\n\n dom.setAttribute(FontColorNodeAttrName, this.__themeColor);\n dom.style.color = this.__color;\n return isUpdated;\n }\n\n getColorStyle(): { color: string; themeColor: ThemeColor } {\n return {\n color: this.__color,\n themeColor: this.__themeColor\n };\n }\n\n override createDOM(config: EditorConfig): HTMLElement {\n const element = super.createDOM(config);\n return this.addColorValueToHTMLElement(element, config.theme);\n }\n}\n\nexport const $createFontColorNode = (\n text: string,\n color: string,\n themeColor?: ThemeColor,\n key?: NodeKey\n): FontColorNode => {\n return new FontColorNode(text, color, themeColor, key);\n};\n\nexport const $isFontColorNode = (node: LexicalNode): node is FontColorNode => {\n return node instanceof FontColorNode;\n};\n\nexport function $applyStylesToNode(node: FontColorNode, nodeStyleProvider: RangeSelection) {\n node.setFormat(nodeStyleProvider.format);\n node.setStyle(nodeStyleProvider.style);\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["_lexical","require","ADD_FONT_COLOR_COMMAND","exports","createCommand","FontColorNodeAttrName","FontColorNode","_TextNode","text","color","themeColor","key","_this","_classCallCheck2","default","_callSuper2","__themeColor","__color","_inherits2","_createClass2","value","exportJSON","_objectSpread2","_get2","_getPrototypeOf2","prototype","call","type","version","addColorValueToHTMLElement","element","theme","hasThemeColor","styles","colors","setAttribute","style","updateDOM","prevNode","dom","config","isUpdated","getColorStyle","createDOM","getType","clone","node","__text","__key","importJSON","serializedNode","setTextContent","setFormat","format","setDetail","detail","setMode","mode","setStyle","TextNode","$createFontColorNode","$isFontColorNode","$applyStylesToNode","nodeStyleProvider"],"sources":["FontColorNode.ts"],"sourcesContent":["import {\n createCommand,\n EditorConfig,\n LexicalCommand,\n LexicalEditor,\n LexicalNode,\n NodeKey,\n RangeSelection,\n SerializedTextNode,\n Spread,\n TextNode\n} from \"lexical\";\nimport { EditorTheme } from \"@webiny/lexical-theme\";\n\nexport const ADD_FONT_COLOR_COMMAND: LexicalCommand<FontColorPayload> =\n createCommand(\"ADD_FONT_COLOR_COMMAND\");\nconst FontColorNodeAttrName = \"data-theme-font-color-name\";\n\nexport interface FontColorPayload {\n // This color can be hex string\n color: string;\n // webiny theme color variable like color1, color2...\n themeColorName: string | undefined;\n caption?: LexicalEditor;\n key?: NodeKey;\n}\n\ntype ThemeStyleColorName = string;\ntype ThemeColor = \"custom\" | ThemeStyleColorName;\n\nexport type SerializedFontColorNode = Spread<\n {\n themeColor: ThemeColor;\n color: string;\n type: \"font-color-node\";\n version: 1;\n },\n SerializedTextNode\n>;\n\n/**\n * Main responsibility of this node is to apply custom or Webiny theme color to selected text.\n * Extends the original TextNode node to add additional transformation and support for webiny theme font color.\n */\nexport class FontColorNode extends TextNode {\n __themeColor: ThemeColor;\n __color: string;\n\n constructor(text: string, color: string, themeColor?: ThemeColor, key?: NodeKey) {\n super(text, key);\n this.__themeColor = themeColor || \"custom\";\n this.__color = color;\n }\n\n static override getType(): string {\n return \"font-color-node\";\n }\n\n static override clone(node: FontColorNode): FontColorNode {\n return new FontColorNode(node.__text, node.__color, node.__themeColor, node.__key);\n }\n\n static override importJSON(serializedNode: SerializedFontColorNode): TextNode {\n const node = new FontColorNode(\n serializedNode.text,\n serializedNode.color,\n serializedNode.themeColor\n );\n node.setTextContent(serializedNode.text);\n node.setFormat(serializedNode.format);\n node.setDetail(serializedNode.detail);\n node.setMode(serializedNode.mode);\n node.setStyle(serializedNode.style);\n return node;\n }\n\n override exportJSON(): SerializedFontColorNode {\n return {\n ...super.exportJSON(),\n themeColor: this.__themeColor,\n color: this.__color,\n type: \"font-color-node\",\n version: 1\n };\n }\n\n addColorValueToHTMLElement(element: HTMLElement, theme: EditorTheme): HTMLElement {\n const hasThemeColor = this.__themeColor !== \"custom\";\n // get the updated color from webiny theme\n if (hasThemeColor && theme?.styles?.colors) {\n this.__color = theme.styles.colors[this.__themeColor];\n }\n\n element.setAttribute(FontColorNodeAttrName, this.__themeColor);\n element.style.color = this.__color;\n return element;\n }\n\n override updateDOM(prevNode: FontColorNode, dom: HTMLElement, config: EditorConfig): boolean {\n const theme = config.theme;\n const isUpdated = super.updateDOM(prevNode, dom, config);\n const hasThemeColor = this.__themeColor !== \"custom\";\n // get the updated color from webiny theme\n if (hasThemeColor && theme?.styles?.colors) {\n this.__color = theme.styles.colors[this.__themeColor];\n }\n\n dom.setAttribute(FontColorNodeAttrName, this.__themeColor);\n dom.style.color = this.__color;\n return isUpdated;\n }\n\n getColorStyle(): { color: string; themeColor: ThemeColor } {\n return {\n color: this.__color,\n themeColor: this.__themeColor\n };\n }\n\n override createDOM(config: EditorConfig): HTMLElement {\n const element = super.createDOM(config);\n return this.addColorValueToHTMLElement(element, config.theme);\n }\n}\n\nexport const $createFontColorNode = (\n text: string,\n color: string,\n themeColor?: ThemeColor,\n key?: NodeKey\n): FontColorNode => {\n return new FontColorNode(text, color, themeColor, key);\n};\n\nexport const $isFontColorNode = (node: LexicalNode): node is FontColorNode => {\n return node instanceof FontColorNode;\n};\n\nexport function $applyStylesToNode(node: FontColorNode, nodeStyleProvider: RangeSelection) {\n node.setFormat(nodeStyleProvider.format);\n node.setStyle(nodeStyleProvider.style);\n}\n"],"mappings":"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","ignoreList":[]}
package/HeadingNode.js CHANGED
@@ -11,24 +11,21 @@ var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/obje
11
11
  var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
12
12
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
13
13
  var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
14
- var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
14
+ var _callSuper2 = _interopRequireDefault(require("@babel/runtime/helpers/callSuper"));
15
15
  var _get2 = _interopRequireDefault(require("@babel/runtime/helpers/get"));
16
16
  var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
17
17
  var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
18
- var _createSuper2 = _interopRequireDefault(require("@babel/runtime/helpers/createSuper"));
19
18
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
20
19
  var _lexical = require("lexical");
21
20
  var _utils = require("@lexical/utils");
22
21
  var _richText = require("@lexical/rich-text");
23
22
  var _lexicalTheme = require("@webiny/lexical-theme");
24
- var HeadingNode = /*#__PURE__*/function (_BaseHeadingNode) {
25
- (0, _inherits2.default)(HeadingNode, _BaseHeadingNode);
26
- var _super = (0, _createSuper2.default)(HeadingNode);
23
+ var HeadingNode = exports.HeadingNode = /*#__PURE__*/function (_BaseHeadingNode) {
27
24
  function HeadingNode(tag, typographyStyleId, key) {
28
25
  var _this;
29
26
  (0, _classCallCheck2.default)(this, HeadingNode);
30
- _this = _super.call(this, tag, key);
31
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "__styles", []);
27
+ _this = (0, _callSuper2.default)(this, HeadingNode, [tag, key]);
28
+ (0, _defineProperty2.default)(_this, "__styles", []);
32
29
  if (typographyStyleId) {
33
30
  _this.__styles.push({
34
31
  styleId: typographyStyleId,
@@ -37,7 +34,8 @@ var HeadingNode = /*#__PURE__*/function (_BaseHeadingNode) {
37
34
  }
38
35
  return _this;
39
36
  }
40
- (0, _createClass2.default)(HeadingNode, [{
37
+ (0, _inherits2.default)(HeadingNode, _BaseHeadingNode);
38
+ return (0, _createClass2.default)(HeadingNode, [{
41
39
  key: "setDefaultTypography",
42
40
  value: function setDefaultTypography(themeEmotionMap) {
43
41
  var typographyStyle = (0, _lexicalTheme.findTypographyStyleByHtmlTag)(this.__tag, themeEmotionMap);
@@ -180,9 +178,7 @@ var HeadingNode = /*#__PURE__*/function (_BaseHeadingNode) {
180
178
  return node;
181
179
  }
182
180
  }]);
183
- return HeadingNode;
184
181
  }(_richText.HeadingNode);
185
- exports.HeadingNode = HeadingNode;
186
182
  function $createHeadingNode(tag, typographyStyleId) {
187
183
  return (0, _lexical.$applyNodeReplacement)(new HeadingNode(tag, typographyStyleId));
188
184
  }
@@ -1 +1 @@
1
- {"version":3,"names":["_lexical","require","_utils","_richText","_lexicalTheme","HeadingNode","_BaseHeadingNode","_inherits2","default","_super","_createSuper2","tag","typographyStyleId","key","_this","_classCallCheck2","call","_defineProperty2","_assertThisInitialized2","__styles","push","styleId","type","_createClass2","value","setDefaultTypography","themeEmotionMap","typographyStyle","findTypographyStyleByHtmlTag","__tag","id","setTypography","self","_get2","_getPrototypeOf2","prototype","hasTypographyStyle","themeStyle","getTypographyStyleId","style","find","x","undefined","clearTypographyStyle","filter","s","getThemeStyles","setThemeStyles","styles","_toConsumableArray2","updateElementWithThemeClasses","element","theme","emotionMap","typoStyleId","themeClasses","className","addClassNamesToElement","createDOM","config","exportJSON","_objectSpread2","version","insertNewAfter","selection","restoreSelection","arguments","length","newElement","$createHeadingNode","getTag","direction","getDirection","setDirection","insertAfter","collapseAtStart","children","getChildren","forEach","child","append","replace","getType","clone","node","__key","importJSON","serializedNode","setFormat","format","setIndent","indent","BaseHeadingNode","exports","$applyNodeReplacement","$isHeadingNode"],"sources":["HeadingNode.ts"],"sourcesContent":["import {\n EditorConfig,\n $applyNodeReplacement,\n LexicalNode,\n NodeKey,\n RangeSelection,\n Spread\n} from \"lexical\";\nimport { addClassNamesToElement } from \"@lexical/utils\";\nimport {\n HeadingNode as BaseHeadingNode,\n HeadingTagType,\n SerializedHeadingNode as BaseSerializedHeadingNode\n} from \"@lexical/rich-text\";\nimport { WebinyTheme, ThemeEmotionMap, findTypographyStyleByHtmlTag } from \"@webiny/lexical-theme\";\nimport { ParagraphNode } from \"~/ParagraphNode\";\nimport { TypographyStylesNode, ThemeStyleValue, TextNodeThemeStyles } from \"~/types\";\n\nexport type SerializeHeadingNode = Spread<\n {\n styles: ThemeStyleValue[];\n type: \"heading-element\";\n },\n BaseSerializedHeadingNode\n>;\n\nexport class HeadingNode\n extends BaseHeadingNode\n implements TextNodeThemeStyles, TypographyStylesNode\n{\n __styles: ThemeStyleValue[] = [];\n\n constructor(tag: HeadingTagType, typographyStyleId?: string, key?: NodeKey) {\n super(tag, 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(this.__tag, themeEmotionMap);\n if (typographyStyle) {\n this.__styles.push({ styleId: typographyStyle.id, type: \"typography\" });\n }\n }\n\n setTypography(typographyStyleId: string): this {\n const self = super.getWritable();\n if (!this.hasTypographyStyle()) {\n const themeStyle = {\n styleId: typographyStyleId,\n type: \"typography\"\n } as ThemeStyleValue;\n self.__styles.push(themeStyle);\n }\n return self;\n }\n\n getTypographyStyleId(): string | undefined {\n const style = this.__styles.find(x => x.type === \"typography\");\n return style?.styleId || undefined;\n }\n\n clearTypographyStyle(): this {\n const self = super.getWritable();\n self.__styles = self.__styles.filter(s => s.type !== \"typography\");\n return self;\n }\n\n hasTypographyStyle(): boolean {\n return !!this.getTypographyStyleId();\n }\n\n getThemeStyles(): ThemeStyleValue[] {\n const self = super.getLatest();\n return self.__styles;\n }\n\n setThemeStyles(styles: ThemeStyleValue[]) {\n const self = super.getWritable();\n self.__styles = [...styles];\n return self;\n }\n\n static override getType(): string {\n return \"heading-element\";\n }\n\n static override clone(node: HeadingNode): HeadingNode {\n return new HeadingNode(node.getTag(), node.getTypographyStyleId(), node.__key);\n }\n\n protected updateElementWithThemeClasses(element: HTMLElement, theme: WebinyTheme): 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 WebinyTheme);\n }\n\n static override importJSON(serializedNode: SerializeHeadingNode): BaseHeadingNode {\n const node = $createHeadingNode(serializedNode.tag);\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 override exportJSON(): SerializeHeadingNode {\n return {\n ...super.exportJSON(),\n styles: this.__styles,\n type: \"heading-element\",\n version: 1\n };\n }\n\n // Mutation\n override insertNewAfter(\n selection?: RangeSelection,\n restoreSelection = true\n ): ParagraphNode | HeadingNode {\n // Next line for headings are always headings with the same tag\n const newElement = $createHeadingNode(this.getTag());\n const direction = this.getDirection();\n newElement.setDirection(direction);\n this.insertAfter(newElement, restoreSelection);\n return newElement;\n }\n\n override collapseAtStart(): true {\n const newElement = $createHeadingNode(this.getTag());\n const children = this.getChildren();\n children.forEach(child => newElement.append(child));\n this.replace(newElement);\n return true;\n }\n}\n\nexport function $createHeadingNode(tag: HeadingTagType, typographyStyleId?: string): HeadingNode {\n return $applyNodeReplacement(new HeadingNode(tag, typographyStyleId));\n}\n\nexport function $isHeadingNode(node: LexicalNode | null | undefined): node is HeadingNode {\n return node instanceof HeadingNode;\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["_lexical","require","_utils","_richText","_lexicalTheme","HeadingNode","exports","_BaseHeadingNode","tag","typographyStyleId","key","_this","_classCallCheck2","default","_callSuper2","_defineProperty2","__styles","push","styleId","type","_inherits2","_createClass2","value","setDefaultTypography","themeEmotionMap","typographyStyle","findTypographyStyleByHtmlTag","__tag","id","setTypography","self","_get2","_getPrototypeOf2","prototype","call","hasTypographyStyle","themeStyle","getTypographyStyleId","style","find","x","undefined","clearTypographyStyle","filter","s","getThemeStyles","setThemeStyles","styles","_toConsumableArray2","updateElementWithThemeClasses","element","theme","emotionMap","typoStyleId","themeClasses","className","addClassNamesToElement","createDOM","config","exportJSON","_objectSpread2","version","insertNewAfter","selection","restoreSelection","arguments","length","newElement","$createHeadingNode","getTag","direction","getDirection","setDirection","insertAfter","collapseAtStart","children","getChildren","forEach","child","append","replace","getType","clone","node","__key","importJSON","serializedNode","setFormat","format","setIndent","indent","BaseHeadingNode","$applyNodeReplacement","$isHeadingNode"],"sources":["HeadingNode.ts"],"sourcesContent":["import {\n EditorConfig,\n $applyNodeReplacement,\n LexicalNode,\n NodeKey,\n RangeSelection,\n Spread\n} from \"lexical\";\nimport { addClassNamesToElement } from \"@lexical/utils\";\nimport {\n HeadingNode as BaseHeadingNode,\n HeadingTagType,\n SerializedHeadingNode as BaseSerializedHeadingNode\n} from \"@lexical/rich-text\";\nimport { WebinyTheme, ThemeEmotionMap, findTypographyStyleByHtmlTag } from \"@webiny/lexical-theme\";\nimport { ParagraphNode } from \"~/ParagraphNode\";\nimport { TypographyStylesNode, ThemeStyleValue, TextNodeThemeStyles } from \"~/types\";\n\nexport type SerializeHeadingNode = Spread<\n {\n styles: ThemeStyleValue[];\n type: \"heading-element\";\n },\n BaseSerializedHeadingNode\n>;\n\nexport class HeadingNode\n extends BaseHeadingNode\n implements TextNodeThemeStyles, TypographyStylesNode\n{\n __styles: ThemeStyleValue[] = [];\n\n constructor(tag: HeadingTagType, typographyStyleId?: string, key?: NodeKey) {\n super(tag, 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(this.__tag, themeEmotionMap);\n if (typographyStyle) {\n this.__styles.push({ styleId: typographyStyle.id, type: \"typography\" });\n }\n }\n\n setTypography(typographyStyleId: string): this {\n const self = super.getWritable();\n if (!this.hasTypographyStyle()) {\n const themeStyle = {\n styleId: typographyStyleId,\n type: \"typography\"\n } as ThemeStyleValue;\n self.__styles.push(themeStyle);\n }\n return self;\n }\n\n getTypographyStyleId(): string | undefined {\n const style = this.__styles.find(x => x.type === \"typography\");\n return style?.styleId || undefined;\n }\n\n clearTypographyStyle(): this {\n const self = super.getWritable();\n self.__styles = self.__styles.filter(s => s.type !== \"typography\");\n return self;\n }\n\n hasTypographyStyle(): boolean {\n return !!this.getTypographyStyleId();\n }\n\n getThemeStyles(): ThemeStyleValue[] {\n const self = super.getLatest();\n return self.__styles;\n }\n\n setThemeStyles(styles: ThemeStyleValue[]) {\n const self = super.getWritable();\n self.__styles = [...styles];\n return self;\n }\n\n static override getType(): string {\n return \"heading-element\";\n }\n\n static override clone(node: HeadingNode): HeadingNode {\n return new HeadingNode(node.getTag(), node.getTypographyStyleId(), node.__key);\n }\n\n protected updateElementWithThemeClasses(element: HTMLElement, theme: WebinyTheme): 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 WebinyTheme);\n }\n\n static override importJSON(serializedNode: SerializeHeadingNode): BaseHeadingNode {\n const node = $createHeadingNode(serializedNode.tag);\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 override exportJSON(): SerializeHeadingNode {\n return {\n ...super.exportJSON(),\n styles: this.__styles,\n type: \"heading-element\",\n version: 1\n };\n }\n\n // Mutation\n override insertNewAfter(\n selection?: RangeSelection,\n restoreSelection = true\n ): ParagraphNode | HeadingNode {\n // Next line for headings are always headings with the same tag\n const newElement = $createHeadingNode(this.getTag());\n const direction = this.getDirection();\n newElement.setDirection(direction);\n this.insertAfter(newElement, restoreSelection);\n return newElement;\n }\n\n override collapseAtStart(): true {\n const newElement = $createHeadingNode(this.getTag());\n const children = this.getChildren();\n children.forEach(child => newElement.append(child));\n this.replace(newElement);\n return true;\n }\n}\n\nexport function $createHeadingNode(tag: HeadingTagType, typographyStyleId?: string): HeadingNode {\n return $applyNodeReplacement(new HeadingNode(tag, typographyStyleId));\n}\n\nexport function $isHeadingNode(node: LexicalNode | null | undefined): node is HeadingNode {\n return node instanceof HeadingNode;\n}\n"],"mappings":"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","ignoreList":[]}
package/ImageNode.js CHANGED
@@ -10,8 +10,8 @@ exports.$isImageNode = $isImageNode;
10
10
  exports.ImageNode = void 0;
11
11
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
12
12
  var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
13
+ var _callSuper2 = _interopRequireDefault(require("@babel/runtime/helpers/callSuper"));
13
14
  var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
14
- var _createSuper2 = _interopRequireDefault(require("@babel/runtime/helpers/createSuper"));
15
15
  var _interopRequireWildcard2 = _interopRequireDefault(require("@babel/runtime/helpers/interopRequireWildcard"));
16
16
  var _react = _interopRequireWildcard3(require("react"));
17
17
  var _lexical = require("lexical");
@@ -28,13 +28,11 @@ var ImageComponent = /*#__PURE__*/_react.default.lazy(function () {
28
28
  return (0, _interopRequireWildcard2.default)(require( /* webpackChunkName: "LexicalNodesComponentsImageNodeImageComponent" */"./components/ImageNode/ImageComponent"));
29
29
  });
30
30
  });
31
- var ImageNode = /*#__PURE__*/function (_DecoratorNode) {
32
- (0, _inherits2.default)(ImageNode, _DecoratorNode);
33
- var _super = (0, _createSuper2.default)(ImageNode);
31
+ var ImageNode = exports.ImageNode = /*#__PURE__*/function (_DecoratorNode) {
34
32
  function ImageNode(props, key) {
35
33
  var _this;
36
34
  (0, _classCallCheck2.default)(this, ImageNode);
37
- _this = _super.call(this, key);
35
+ _this = (0, _callSuper2.default)(this, ImageNode, [key]);
38
36
  _this.__id = props.id;
39
37
  _this.__src = props.src;
40
38
  _this.__altText = props.altText;
@@ -46,7 +44,8 @@ var ImageNode = /*#__PURE__*/function (_DecoratorNode) {
46
44
  _this.__captionsEnabled = props.captionsEnabled || props.captionsEnabled === undefined;
47
45
  return _this;
48
46
  }
49
- (0, _createClass2.default)(ImageNode, [{
47
+ (0, _inherits2.default)(ImageNode, _DecoratorNode);
48
+ return (0, _createClass2.default)(ImageNode, [{
50
49
  key: "exportDOM",
51
50
  value: function exportDOM() {
52
51
  var element = document.createElement("img");
@@ -202,9 +201,7 @@ var ImageNode = /*#__PURE__*/function (_DecoratorNode) {
202
201
  return null;
203
202
  }
204
203
  }]);
205
- return ImageNode;
206
204
  }(_lexical.DecoratorNode);
207
- exports.ImageNode = ImageNode;
208
205
  function $createImageNode(props, key) {
209
206
  return (0, _lexical.$applyNodeReplacement)(new ImageNode(props, key));
210
207
  }
package/ImageNode.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireWildcard3","require","_lexical","ImageComponent","React","lazy","Promise","resolve","then","_interopRequireWildcard2","default","ImageNode","_DecoratorNode","_inherits2","_super","_createSuper2","props","key","_this","_classCallCheck2","call","__id","id","__src","src","__altText","altText","__maxWidth","maxWidth","__width","width","__height","height","__showCaption","showCaption","__caption","caption","createEditor","__captionsEnabled","captionsEnabled","undefined","_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","exports","$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 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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"}
1
+ {"version":3,"names":["_react","_interopRequireWildcard3","require","_lexical","ImageComponent","React","lazy","Promise","resolve","then","_interopRequireWildcard2","default","ImageNode","exports","_DecoratorNode","props","key","_this","_classCallCheck2","_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 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":[]}
package/LinkNode.d.ts CHANGED
@@ -51,6 +51,8 @@ export declare class LinkNode extends ElementNode {
51
51
  setRel(rel: null | string): void;
52
52
  getTitle(): null | string;
53
53
  setTitle(title: null | string): void;
54
+ getAlt(): string | null;
55
+ setAlt(text: string | null): void;
54
56
  insertNewAfter(selection: RangeSelection, restoreSelection?: boolean): null | ElementNode;
55
57
  canInsertTextBefore(): false;
56
58
  canInsertTextAfter(): false;
@@ -97,10 +99,3 @@ export declare function $isAutoLinkNode(node: LexicalNode | null | undefined): n
97
99
  export declare const TOGGLE_LINK_COMMAND: LexicalCommand<string | ({
98
100
  url: string;
99
101
  } & LinkAttributes) | null>;
100
- /**
101
- * Generates or updates a LinkNode. It can also delete a LinkNode if the URL is null,
102
- * but saves any children and brings them up to the parent node.
103
- * @param url - The URL the link directs to.
104
- * @param attributes - Optional HTML a tag attributes. { target, rel, title }
105
- */
106
- export declare function toggleLink(url: null | string, attributes?: LinkAttributes): void;
package/LinkNode.js CHANGED
@@ -9,14 +9,13 @@ exports.$createLinkNode = $createLinkNode;
9
9
  exports.$isAutoLinkNode = $isAutoLinkNode;
10
10
  exports.$isLinkNode = $isLinkNode;
11
11
  exports.TOGGLE_LINK_COMMAND = exports.LinkNode = exports.AutoLinkNode = void 0;
12
- exports.toggleLink = toggleLink;
13
12
  var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
14
13
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
15
14
  var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
15
+ var _callSuper2 = _interopRequireDefault(require("@babel/runtime/helpers/callSuper"));
16
16
  var _get2 = _interopRequireDefault(require("@babel/runtime/helpers/get"));
17
17
  var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
18
18
  var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
19
- var _createSuper2 = _interopRequireDefault(require("@babel/runtime/helpers/createSuper"));
20
19
  var _utils = require("@lexical/utils");
21
20
  var _lexical = require("lexical");
22
21
  /** @module @lexical/link */
@@ -31,15 +30,13 @@ var _lexical = require("lexical");
31
30
  var SUPPORTED_URL_PROTOCOLS = new Set(["http:", "https:", "mailto:", "sms:", "tel:"]);
32
31
 
33
32
  /** @noInheritDoc */
34
- var LinkNode = /*#__PURE__*/function (_ElementNode) {
35
- (0, _inherits2.default)(LinkNode, _ElementNode);
36
- var _super = (0, _createSuper2.default)(LinkNode);
33
+ var LinkNode = exports.LinkNode = /*#__PURE__*/function (_ElementNode) {
37
34
  function LinkNode(url) {
38
35
  var _this;
39
36
  var attributes = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
40
37
  var key = arguments.length > 2 ? arguments[2] : undefined;
41
38
  (0, _classCallCheck2.default)(this, LinkNode);
42
- _this = _super.call(this, key);
39
+ _this = (0, _callSuper2.default)(this, LinkNode, [key]);
43
40
  var _attributes$target = attributes.target,
44
41
  target = _attributes$target === void 0 ? null : _attributes$target,
45
42
  _attributes$rel = attributes.rel,
@@ -55,7 +52,8 @@ var LinkNode = /*#__PURE__*/function (_ElementNode) {
55
52
  _this.__alt = alt;
56
53
  return _this;
57
54
  }
58
- (0, _createClass2.default)(LinkNode, [{
55
+ (0, _inherits2.default)(LinkNode, _ElementNode);
56
+ return (0, _createClass2.default)(LinkNode, [{
59
57
  key: "createDOM",
60
58
  value: function createDOM(config) {
61
59
  var element = document.createElement("a");
@@ -69,8 +67,8 @@ var LinkNode = /*#__PURE__*/function (_ElementNode) {
69
67
  if (this.__title !== null) {
70
68
  element.title = this.__title;
71
69
  }
72
- if (this.__alt !== null) {
73
- element.alt = this.__alt;
70
+ if (this.__alt) {
71
+ element.setAttribute("alt", this.__alt);
74
72
  }
75
73
  (0, _utils.addClassNamesToElement)(element, config.theme.link);
76
74
  return element;
@@ -109,7 +107,7 @@ var LinkNode = /*#__PURE__*/function (_ElementNode) {
109
107
  }
110
108
  if (alt !== prevNode.__alt) {
111
109
  if (alt) {
112
- anchor.alt = alt;
110
+ anchor.setAttribute("alt", alt);
113
111
  } else {
114
112
  anchor.removeAttribute("alt");
115
113
  }
@@ -137,6 +135,7 @@ var LinkNode = /*#__PURE__*/function (_ElementNode) {
137
135
  rel: this.getRel(),
138
136
  target: this.getTarget(),
139
137
  title: this.getTitle(),
138
+ alt: this.getAlt(),
140
139
  type: "link",
141
140
  url: this.getURL(),
142
141
  version: 1
@@ -186,6 +185,17 @@ var LinkNode = /*#__PURE__*/function (_ElementNode) {
186
185
  var writable = this.getWritable();
187
186
  writable.__title = title;
188
187
  }
188
+ }, {
189
+ key: "getAlt",
190
+ value: function getAlt() {
191
+ return this.__alt;
192
+ }
193
+ }, {
194
+ key: "setAlt",
195
+ value: function setAlt(text) {
196
+ var writable = (0, _get2.default)((0, _getPrototypeOf2.default)(LinkNode.prototype), "getWritable", this).call(this);
197
+ writable.__alt = text;
198
+ }
189
199
  }, {
190
200
  key: "insertNewAfter",
191
201
  value: function insertNewAfter(selection) {
@@ -195,7 +205,8 @@ var LinkNode = /*#__PURE__*/function (_ElementNode) {
195
205
  var linkNode = $createLinkNode(this.__url, {
196
206
  rel: this.__rel,
197
207
  target: this.__target,
198
- title: this.__title
208
+ title: this.__title,
209
+ alt: this.__alt
199
210
  });
200
211
  element.append(linkNode);
201
212
  return linkNode;
@@ -275,7 +286,8 @@ var LinkNode = /*#__PURE__*/function (_ElementNode) {
275
286
  var node = $createLinkNode(serializedNode.url, {
276
287
  rel: serializedNode.rel,
277
288
  target: serializedNode.target,
278
- title: serializedNode.title
289
+ title: serializedNode.title,
290
+ alt: serializedNode.alt
279
291
  });
280
292
  node.setFormat(serializedNode.format);
281
293
  node.setIndent(serializedNode.indent);
@@ -283,9 +295,7 @@ var LinkNode = /*#__PURE__*/function (_ElementNode) {
283
295
  return node;
284
296
  }
285
297
  }]);
286
- return LinkNode;
287
298
  }(_lexical.ElementNode);
288
- exports.LinkNode = LinkNode;
289
299
  function convertAnchorElement(domNode) {
290
300
  var node = null;
291
301
  if ((0, _utils.isHTMLAnchorElement)(domNode)) {
@@ -324,14 +334,13 @@ function $isLinkNode(node) {
324
334
  }
325
335
  // Custom node type to override `canInsertTextAfter` that will
326
336
  // allow typing within the link
327
- var AutoLinkNode = /*#__PURE__*/function (_LinkNode) {
328
- (0, _inherits2.default)(AutoLinkNode, _LinkNode);
329
- var _super2 = (0, _createSuper2.default)(AutoLinkNode);
337
+ var AutoLinkNode = exports.AutoLinkNode = /*#__PURE__*/function (_LinkNode) {
330
338
  function AutoLinkNode() {
331
339
  (0, _classCallCheck2.default)(this, AutoLinkNode);
332
- return _super2.apply(this, arguments);
340
+ return (0, _callSuper2.default)(this, AutoLinkNode, arguments);
333
341
  }
334
- (0, _createClass2.default)(AutoLinkNode, [{
342
+ (0, _inherits2.default)(AutoLinkNode, _LinkNode);
343
+ return (0, _createClass2.default)(AutoLinkNode, [{
335
344
  key: "exportJSON",
336
345
  value: function exportJSON() {
337
346
  return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, (0, _get2.default)((0, _getPrototypeOf2.default)(AutoLinkNode.prototype), "exportJSON", this).call(this)), {}, {
@@ -389,7 +398,6 @@ var AutoLinkNode = /*#__PURE__*/function (_LinkNode) {
389
398
  return null;
390
399
  }
391
400
  }]);
392
- return AutoLinkNode;
393
401
  }(LinkNode);
394
402
  /**
395
403
  * Takes a URL and creates an AutoLinkNode. AutoLinkNodes are generally automatically generated
@@ -398,7 +406,6 @@ var AutoLinkNode = /*#__PURE__*/function (_LinkNode) {
398
406
  * @param attributes - Optional HTML a tag attributes. { target, rel, title }
399
407
  * @returns The LinkNode.
400
408
  */
401
- exports.AutoLinkNode = AutoLinkNode;
402
409
  function $createAutoLinkNode(url, attributes) {
403
410
  return (0, _lexical.$applyNodeReplacement)(new AutoLinkNode(url, attributes));
404
411
  }
@@ -411,121 +418,6 @@ function $createAutoLinkNode(url, attributes) {
411
418
  function $isAutoLinkNode(node) {
412
419
  return node instanceof AutoLinkNode;
413
420
  }
414
- var TOGGLE_LINK_COMMAND = (0, _lexical.createCommand)("TOGGLE_LINK_COMMAND");
415
-
416
- /**
417
- * Generates or updates a LinkNode. It can also delete a LinkNode if the URL is null,
418
- * but saves any children and brings them up to the parent node.
419
- * @param url - The URL the link directs to.
420
- * @param attributes - Optional HTML a tag attributes. { target, rel, title }
421
- */
422
- exports.TOGGLE_LINK_COMMAND = TOGGLE_LINK_COMMAND;
423
- function toggleLink(url) {
424
- var attributes = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
425
- var target = attributes.target,
426
- title = attributes.title;
427
- var rel = attributes.rel === undefined ? "noreferrer" : attributes.rel;
428
- var selection = (0, _lexical.$getSelection)();
429
- if (!(0, _lexical.$isRangeSelection)(selection)) {
430
- return;
431
- }
432
- var nodes = selection.extract();
433
- if (url === null) {
434
- // Remove LinkNodes
435
- nodes.forEach(function (node) {
436
- var parent = node.getParent();
437
- if ($isLinkNode(parent)) {
438
- var children = parent.getChildren();
439
- for (var i = 0; i < children.length; i++) {
440
- parent.insertBefore(children[i]);
441
- }
442
- parent.remove();
443
- }
444
- });
445
- } else {
446
- // Add or merge LinkNodes
447
- if (nodes.length === 1) {
448
- var firstNode = nodes[0];
449
- // if the first node is a LinkNode or if its
450
- // parent is a LinkNode, we update the URL, target and rel.
451
- var _linkNode = $isLinkNode(firstNode) ? firstNode : $getLinkAncestor(firstNode);
452
- if (_linkNode !== null) {
453
- _linkNode.setURL(url);
454
- if (target !== undefined) {
455
- _linkNode.setTarget(target);
456
- }
457
- if (rel !== null) {
458
- _linkNode.setRel(rel);
459
- }
460
- if (title !== undefined) {
461
- _linkNode.setTitle(title);
462
- }
463
- return;
464
- }
465
- }
466
- var prevParent = null;
467
- var linkNode = null;
468
- nodes.forEach(function (node) {
469
- var parent = node.getParent();
470
- if (parent === linkNode || parent === null || (0, _lexical.$isElementNode)(node) && !node.isInline()) {
471
- return;
472
- }
473
- if ($isLinkNode(parent)) {
474
- linkNode = parent;
475
- parent.setURL(url);
476
- if (target !== undefined) {
477
- parent.setTarget(target);
478
- }
479
- if (rel !== null) {
480
- linkNode.setRel(rel);
481
- }
482
- if (title !== undefined) {
483
- linkNode.setTitle(title);
484
- }
485
- return;
486
- }
487
- if (!parent.is(prevParent)) {
488
- prevParent = parent;
489
- linkNode = $createLinkNode(url, {
490
- rel: rel,
491
- target: target
492
- });
493
- if ($isLinkNode(parent)) {
494
- if (node.getPreviousSibling() === null) {
495
- parent.insertBefore(linkNode);
496
- } else {
497
- parent.insertAfter(linkNode);
498
- }
499
- } else {
500
- node.insertBefore(linkNode);
501
- }
502
- }
503
- if ($isLinkNode(node)) {
504
- if (node.is(linkNode)) {
505
- return;
506
- }
507
- if (linkNode !== null) {
508
- var children = node.getChildren();
509
- for (var i = 0; i < children.length; i++) {
510
- linkNode.append(children[i]);
511
- }
512
- }
513
- node.remove();
514
- return;
515
- }
516
- if (linkNode !== null) {
517
- linkNode.append(node);
518
- }
519
- });
520
- }
521
- }
522
- function $getLinkAncestor(node) {
523
- return $getAncestor(node, $isLinkNode);
524
- }
525
- function $getAncestor(node, predicate) {
526
- var parent = node;
527
- while (parent !== null && (parent = parent.getParent()) !== null && !predicate(parent)) {}
528
- return parent;
529
- }
421
+ var TOGGLE_LINK_COMMAND = exports.TOGGLE_LINK_COMMAND = (0, _lexical.createCommand)("TOGGLE_LINK_COMMAND");
530
422
 
531
423
  //# sourceMappingURL=LinkNode.js.map