@webiny/lexical-nodes 5.41.1 → 5.41.2-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/FontColorNode.js.map +1 -1
- package/HeadingNode.d.ts +2 -2
- package/HeadingNode.js.map +1 -1
- package/ImageNode.js +3 -6
- package/ImageNode.js.map +1 -1
- package/ListNode.js.map +1 -1
- package/ParagraphNode.js.map +1 -1
- package/QuoteNode.js.map +1 -1
- package/TypographyNode.js +1 -1
- package/TypographyNode.js.map +1 -1
- package/package.json +5 -5
package/FontColorNode.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_lexical","require","ThemeColorValue","exports","value","name","_classCallCheck2","default","_createClass2","key","getValue","getName","updateFromTheme","theme","styles","colors","ADD_FONT_COLOR_COMMAND","createCommand","FontColorNodeAttrName","FontColorNode","_TextNode","text","color","_this","_callSuper2","__color","_inherits2","splitText","_get2","_this2","_len","arguments","length","splitOffsets","Array","_key","newNodes","_get3","_getPrototypeOf2","prototype","call","apply","concat","selection","$getSelection","fontColorNodes","map","node","fontColorNode","$createFontColorNode","getTextContent","$applyStylesToNode","newNode","replace","$isRangeSelection","anchor","focus","getKey","exportJSON","_objectSpread2","themeColor","type","version","addColorValueToHTMLElement","element","setAttribute","style","updateDOM","prevNode","dom","config","isUpdated","getColorStyle","createDOM","getType","clone","__text","__key","importJSON","serializedNode","setTextContent","setFormat","format","setDetail","detail","setMode","mode","setStyle","TextNode","$isFontColorNode","source","getFormat","getStyle"],"sources":["FontColorNode.ts"],"sourcesContent":["import {\n $getSelection,\n $isRangeSelection,\n createCommand,\n EditorConfig,\n LexicalNode,\n SerializedTextNode,\n Spread,\n TextNode\n} from \"lexical\";\nimport { EditorTheme } from \"@webiny/lexical-theme\";\n\nexport class ThemeColorValue {\n // Webiny theme color variable, like color1, color2, etc.\n private readonly name: string;\n // This can be a HEX value or a CSS variable.\n private value: string;\n\n constructor(value: string, name?: string) {\n this.value = value;\n this.name = name ?? \"custom\";\n }\n\n getValue() {\n return this.value;\n }\n\n getName() {\n return this.name;\n }\n\n updateFromTheme(theme: EditorTheme) {\n if (theme?.styles?.colors && this.name !== \"custom\") {\n this.value = theme.styles?.colors[this.name];\n }\n }\n}\n\nexport const ADD_FONT_COLOR_COMMAND = createCommand<FontColorPayload>(\"ADD_FONT_COLOR_COMMAND\");\n\nconst FontColorNodeAttrName = \"data-theme-font-color-name\";\n\nexport interface FontColorPayload {\n color: ThemeColorValue;\n}\n\nexport type SerializedFontColorNode = Spread<\n {\n themeColor: string;\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 private readonly __color: ThemeColorValue;\n\n constructor(text: string, color: ThemeColorValue, key?: string) {\n super(text, key);\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.__key);\n }\n\n static override importJSON(serializedNode: SerializedFontColorNode): TextNode {\n const node = new FontColorNode(\n serializedNode.text,\n new ThemeColorValue(serializedNode.color, 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 splitText(...splitOffsets: Array<number>): Array<FontColorNode> {\n const newNodes = super.splitText(...splitOffsets);\n\n const selection = $getSelection();\n\n // After splitting, we need to re-apply styling to the new TextNodes.\n const fontColorNodes = newNodes.map(node => {\n if (node instanceof FontColorNode) {\n return node;\n }\n\n const fontColorNode = $createFontColorNode(node.getTextContent(), this.__color);\n $applyStylesToNode(fontColorNode, this);\n\n const newNode = node.replace(fontColorNode);\n\n // Since we're replacing the existing node, we need to update the selection keys.\n // This is very important to not break the editor functionality!\n if ($isRangeSelection(selection)) {\n const anchor = selection.anchor;\n const focus = selection.focus;\n\n if (anchor.key === node.getKey()) {\n anchor.key = newNode.getKey();\n }\n\n if (focus.key === node.getKey()) {\n focus.key = newNode.getKey();\n }\n }\n\n return newNode;\n });\n\n return fontColorNodes as Array<FontColorNode>;\n }\n\n override exportJSON(): SerializedFontColorNode {\n return {\n ...super.exportJSON(),\n themeColor: this.__color.getName(),\n color: this.__color.getValue(),\n type: \"font-color-node\",\n version: 1\n };\n }\n\n private addColorValueToHTMLElement(element: HTMLElement, theme: EditorTheme): HTMLElement {\n // Update color from webiny theme\n this.__color.updateFromTheme(theme);\n element.setAttribute(FontColorNodeAttrName, this.__color.getName());\n element.style.color = this.__color.getValue();\n return element;\n }\n\n override updateDOM(prevNode: FontColorNode, dom: HTMLElement, config: EditorConfig): boolean {\n const isUpdated = super.updateDOM(prevNode, dom, config);\n this.__color.updateFromTheme(config.theme);\n\n dom.setAttribute(FontColorNodeAttrName, this.__color.getName());\n dom.style.color = this.__color.getValue();\n return isUpdated;\n }\n\n getColorStyle() {\n return {\n color: this.__color.getValue(),\n themeColor: this.__color.getName()\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 = (text: string, color: ThemeColorValue): FontColorNode => {\n return new FontColorNode(text, color);\n};\n\nexport const $isFontColorNode = (node: LexicalNode): node is FontColorNode => {\n return node instanceof FontColorNode;\n};\n\nexport function $applyStylesToNode(node: TextNode, source: TextNode) {\n node.setFormat(source.getFormat());\n node.setStyle(source.getStyle());\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_lexical","require","ThemeColorValue","exports","value","name","_classCallCheck2","default","_createClass2","key","getValue","getName","updateFromTheme","theme","styles","colors","ADD_FONT_COLOR_COMMAND","createCommand","FontColorNodeAttrName","FontColorNode","_TextNode","text","color","_this","_callSuper2","__color","_inherits2","splitText","_get2","_this2","_len","arguments","length","splitOffsets","Array","_key","newNodes","_get3","_getPrototypeOf2","prototype","call","apply","concat","selection","$getSelection","fontColorNodes","map","node","fontColorNode","$createFontColorNode","getTextContent","$applyStylesToNode","newNode","replace","$isRangeSelection","anchor","focus","getKey","exportJSON","_objectSpread2","themeColor","type","version","addColorValueToHTMLElement","element","setAttribute","style","updateDOM","prevNode","dom","config","isUpdated","getColorStyle","createDOM","getType","clone","__text","__key","importJSON","serializedNode","setTextContent","setFormat","format","setDetail","detail","setMode","mode","setStyle","TextNode","$isFontColorNode","source","getFormat","getStyle"],"sources":["FontColorNode.ts"],"sourcesContent":["import {\n $getSelection,\n $isRangeSelection,\n createCommand,\n EditorConfig,\n LexicalNode,\n SerializedTextNode,\n Spread,\n TextNode\n} from \"lexical\";\nimport { EditorTheme } from \"@webiny/lexical-theme\";\n\nexport class ThemeColorValue {\n // Webiny theme color variable, like color1, color2, etc.\n private readonly name: string;\n // This can be a HEX value or a CSS variable.\n private value: string;\n\n constructor(value: string, name?: string) {\n this.value = value;\n this.name = name ?? \"custom\";\n }\n\n getValue() {\n return this.value;\n }\n\n getName() {\n return this.name;\n }\n\n updateFromTheme(theme: EditorTheme) {\n if (theme?.styles?.colors && this.name !== \"custom\") {\n this.value = theme.styles?.colors[this.name];\n }\n }\n}\n\nexport const ADD_FONT_COLOR_COMMAND = createCommand<FontColorPayload>(\"ADD_FONT_COLOR_COMMAND\");\n\nconst FontColorNodeAttrName = \"data-theme-font-color-name\";\n\nexport interface FontColorPayload {\n color: ThemeColorValue;\n}\n\nexport type SerializedFontColorNode = Spread<\n {\n themeColor: string;\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 private readonly __color: ThemeColorValue;\n\n constructor(text: string, color: ThemeColorValue, key?: string) {\n super(text, key);\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.__key);\n }\n\n static override importJSON(serializedNode: SerializedFontColorNode): TextNode {\n const node = new FontColorNode(\n serializedNode.text,\n new ThemeColorValue(serializedNode.color, 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 splitText(...splitOffsets: Array<number>): Array<FontColorNode> {\n const newNodes = super.splitText(...splitOffsets);\n\n const selection = $getSelection();\n\n // After splitting, we need to re-apply styling to the new TextNodes.\n const fontColorNodes = newNodes.map(node => {\n if (node instanceof FontColorNode) {\n return node;\n }\n\n const fontColorNode = $createFontColorNode(node.getTextContent(), this.__color);\n $applyStylesToNode(fontColorNode, this);\n\n const newNode = node.replace(fontColorNode);\n\n // Since we're replacing the existing node, we need to update the selection keys.\n // This is very important to not break the editor functionality!\n if ($isRangeSelection(selection)) {\n const anchor = selection.anchor;\n const focus = selection.focus;\n\n if (anchor.key === node.getKey()) {\n anchor.key = newNode.getKey();\n }\n\n if (focus.key === node.getKey()) {\n focus.key = newNode.getKey();\n }\n }\n\n return newNode;\n });\n\n return fontColorNodes as Array<FontColorNode>;\n }\n\n override exportJSON(): SerializedFontColorNode {\n return {\n ...super.exportJSON(),\n themeColor: this.__color.getName(),\n color: this.__color.getValue(),\n type: \"font-color-node\",\n version: 1\n };\n }\n\n private addColorValueToHTMLElement(element: HTMLElement, theme: EditorTheme): HTMLElement {\n // Update color from webiny theme\n this.__color.updateFromTheme(theme);\n element.setAttribute(FontColorNodeAttrName, this.__color.getName());\n element.style.color = this.__color.getValue();\n return element;\n }\n\n override updateDOM(prevNode: FontColorNode, dom: HTMLElement, config: EditorConfig): boolean {\n const isUpdated = super.updateDOM(prevNode, dom, config);\n this.__color.updateFromTheme(config.theme as EditorTheme);\n\n dom.setAttribute(FontColorNodeAttrName, this.__color.getName());\n dom.style.color = this.__color.getValue();\n return isUpdated;\n }\n\n getColorStyle() {\n return {\n color: this.__color.getValue(),\n themeColor: this.__color.getName()\n };\n }\n\n override createDOM(config: EditorConfig): HTMLElement {\n const element = super.createDOM(config);\n return this.addColorValueToHTMLElement(element, config.theme as EditorTheme);\n }\n}\n\nexport const $createFontColorNode = (text: string, color: ThemeColorValue): FontColorNode => {\n return new FontColorNode(text, color);\n};\n\nexport const $isFontColorNode = (node: LexicalNode): node is FontColorNode => {\n return node instanceof FontColorNode;\n};\n\nexport function $applyStylesToNode(node: TextNode, source: TextNode) {\n node.setFormat(source.getFormat());\n node.setStyle(source.getStyle());\n}\n"],"mappings":"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","ignoreList":[]}
|
package/HeadingNode.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { EditorConfig, LexicalNode, NodeKey, RangeSelection, Spread } from "lexical";
|
|
2
2
|
import { HeadingNode as BaseHeadingNode, HeadingTagType, SerializedHeadingNode as BaseSerializedHeadingNode } from "@lexical/rich-text";
|
|
3
|
-
import {
|
|
3
|
+
import { EditorTheme } from "@webiny/lexical-theme";
|
|
4
4
|
import { ParagraphNode } from "./ParagraphNode";
|
|
5
5
|
import { TypographyStylesNode, ThemeStyleValue, TextNodeThemeStyles } from "./types";
|
|
6
6
|
export type SerializeHeadingNode = Spread<{
|
|
@@ -17,7 +17,7 @@ export declare class HeadingNode extends BaseHeadingNode implements TextNodeThem
|
|
|
17
17
|
setThemeStyles(styles: ThemeStyleValue[]): this;
|
|
18
18
|
static getType(): string;
|
|
19
19
|
static clone(node: HeadingNode): HeadingNode;
|
|
20
|
-
protected updateElementWithThemeClasses(element: HTMLElement, theme:
|
|
20
|
+
protected updateElementWithThemeClasses(element: HTMLElement, theme: EditorTheme): HTMLElement;
|
|
21
21
|
createDOM(config: EditorConfig): HTMLElement;
|
|
22
22
|
static importJSON(serializedNode: SerializeHeadingNode): BaseHeadingNode;
|
|
23
23
|
exportJSON(): SerializeHeadingNode;
|
package/HeadingNode.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
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","getTypographyStyleId","style","find","x","undefined","hasTypographyStyle","getThemeStyles","self","_get2","_getPrototypeOf2","prototype","call","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 private 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 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 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":[]}
|
|
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","getTypographyStyleId","style","find","x","undefined","hasTypographyStyle","getThemeStyles","self","_get2","_getPrototypeOf2","prototype","call","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 { EditorTheme, 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 private 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 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 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: 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 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
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
|
|
4
4
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
5
5
|
Object.defineProperty(exports, "__esModule", {
|
|
6
6
|
value: true
|
|
@@ -12,8 +12,7 @@ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/cl
|
|
|
12
12
|
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
13
13
|
var _callSuper2 = _interopRequireDefault(require("@babel/runtime/helpers/callSuper"));
|
|
14
14
|
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
15
|
-
var
|
|
16
|
-
var _react = _interopRequireWildcard3(require("react"));
|
|
15
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
17
16
|
var _lexical = require("lexical");
|
|
18
17
|
/**
|
|
19
18
|
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
@@ -24,9 +23,7 @@ var _lexical = require("lexical");
|
|
|
24
23
|
*/
|
|
25
24
|
|
|
26
25
|
var ImageComponent = /*#__PURE__*/_react.default.lazy(function () {
|
|
27
|
-
return
|
|
28
|
-
return (0, _interopRequireWildcard2.default)(require( /* webpackChunkName: "LexicalNodesComponentsImageNodeImageComponent" */"./components/ImageNode/ImageComponent"));
|
|
29
|
-
});
|
|
26
|
+
return import( /* webpackChunkName: "LexicalNodesComponentsImageNodeImageComponent" */"./components/ImageNode/ImageComponent");
|
|
30
27
|
});
|
|
31
28
|
var ImageNode = exports.ImageNode = /*#__PURE__*/function (_DecoratorNode) {
|
|
32
29
|
function ImageNode(props, key) {
|
package/ImageNode.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
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 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":";;;;;;;;;;;;;;;AAOA,IAAAA,MAAA,GAAAC,wBAAA,CAAAC,OAAA;AAYA,IAAAC,QAAA,GAAAD,OAAA;AAnBA;AACA;AACA;AACA;AACA;AACA;AACA;;AAeA,IAAME,cAAc,gBAAGC,cAAK,CAACC,IAAI,CAC7B;EAAA,OAAAC,OAAA,CAAAC,OAAA,GAAAC,IAAA;IAAA,WAAAC,wBAAA,CAAAC,OAAA,EAAAT,OAAA,EAEQ;EAAA;AAAA,CAGZ,CAAC;AAAC,IA4BWU,SAAS,GAAAC,OAAA,CAAAD,SAAA,0BAAAE,cAAA;EA4ElB,SAAAF,UAAYG,KAAqB,EAAEC,GAAa,EAAE;IAAA,IAAAC,KAAA;IAAA,IAAAC,gBAAA,CAAAP,OAAA,QAAAC,SAAA;IAC9CK,KAAA,OAAAE,WAAA,CAAAR,OAAA,QAAAC,SAAA,GAAMI,GAAG;IACTC,KAAA,CAAKG,IAAI,GAAGL,KAAK,CAACM,EAAE;IACpBJ,KAAA,CAAKK,KAAK,GAAGP,KAAK,CAACQ,GAAG;IACtBN,KAAA,CAAKO,SAAS,GAAGT,KAAK,CAACU,OAAO;IAC9BR,KAAA,CAAKS,UAAU,GAAGX,KAAK,CAACY,QAAQ;IAChCV,KAAA,CAAKW,OAAO,GAAGb,KAAK,CAACc,KAAK,IAAI,SAAS;IACvCZ,KAAA,CAAKa,QAAQ,GAAGf,KAAK,CAACgB,MAAM,IAAI,SAAS;IACzCd,KAAA,CAAKe,aAAa,GAAGjB,KAAK,CAACkB,WAAW,IAAI,KAAK;IAC/ChB,KAAA,CAAKiB,SAAS,GAAGnB,KAAK,CAACoB,OAAO,IAAI,IAAAC,qBAAY,EAAC,CAAC;IAChDnB,KAAA,CAAKoB,iBAAiB,GAAGtB,KAAK,CAACuB,eAAe,IAAIvB,KAAK,CAACuB,eAAe,KAAKC,SAAS;IAAC,OAAAtB,KAAA;EAC1F;EAAC,IAAAuB,UAAA,CAAA7B,OAAA,EAAAC,SAAA,EAAAE,cAAA;EAAA,WAAA2B,aAAA,CAAA9B,OAAA,EAAAC,SAAA;IAAAI,GAAA;IAAA0B,KAAA,EAnCD,SAAAC,UAAA,EAAsC;MAClC,IAAMC,OAAO,GAAGC,QAAQ,CAACC,aAAa,CAAC,KAAK,CAAC;MAC7CF,OAAO,CAACG,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC3B,IAAI,CAAC;MACrCwB,OAAO,CAACG,YAAY,CAAC,KAAK,EAAE,IAAI,CAACzB,KAAK,CAAC;MACvCsB,OAAO,CAACG,YAAY,CAAC,KAAK,EAAE,IAAI,CAACvB,SAAS,CAAC;MAC3CoB,OAAO,CAACG,YAAY,CAAC,OAAO,EAAE,IAAI,CAACnB,OAAO,CAACoB,QAAQ,CAAC,CAAC,CAAC;MACtDJ,OAAO,CAACG,YAAY,CAAC,QAAQ,EAAE,IAAI,CAACjB,QAAQ,CAACkB,QAAQ,CAAC,CAAC,CAAC;MACxD,OAAO;QAAEJ,OAAO,EAAPA;MAAQ,CAAC;IACtB;;IAEA;AACJ;AACA;AACA;AACA;EAJI;IAAA5B,GAAA;IAAA0B,KAAA,EA2BA,SAAAO,WAAA,EAA2C;MACvC,OAAO;QACH5B,EAAE,EAAE,IAAI,CAACD,IAAI;QACbK,OAAO,EAAE,IAAI,CAACyB,UAAU,CAAC,CAAC;QAC1Bf,OAAO,EAAE,IAAI,CAACD,SAAS,CAACiB,MAAM,CAAC,CAAC;QAChCpB,MAAM,EAAE,IAAI,CAACD,QAAQ,KAAK,SAAS,GAAG,CAAC,GAAG,IAAI,CAACA,QAAQ;QACvDH,QAAQ,EAAE,IAAI,CAACD,UAAU;QACzBO,WAAW,EAAE,IAAI,CAACD,aAAa;QAC/BT,GAAG,EAAE,IAAI,CAAC6B,MAAM,CAAC,CAAC;QAClBC,IAAI,EAAE,OAAO;QACbC,OAAO,EAAE,CAAC;QACVzB,KAAK,EAAE,IAAI,CAACD,OAAO,KAAK,SAAS,GAAG,CAAC,GAAG,IAAI,CAACA;MACjD,CAAC;IACL;EAAC;IAAAZ,GAAA;IAAA0B,KAAA,EAED,SAAAa,kBAAkB1B,KAAyB,EAAEE,MAA0B,EAAQ;MAC3E,IAAMyB,QAAQ,GAAG,IAAI,CAACC,WAAW,CAAC,CAAC;MACnCD,QAAQ,CAAC5B,OAAO,GAAGC,KAAK;MACxB2B,QAAQ,CAAC1B,QAAQ,GAAGC,MAAM;IAC9B;EAAC;IAAAf,GAAA;IAAA0B,KAAA,EAED,SAAAgB,eAAezB,WAAoB,EAAQ;MACvC,IAAMuB,QAAQ,GAAG,IAAI,CAACC,WAAW,CAAC,CAAC;MACnCD,QAAQ,CAACxB,aAAa,GAAGC,WAAW;IACxC;;IAEA;EAAA;IAAAjB,GAAA;IAAA0B,KAAA,EACA,SAAAiB,UAAmBC,MAAoB,EAAe;MAClD,IAAMC,IAAI,GAAGhB,QAAQ,CAACC,aAAa,CAAC,MAAM,CAAC;MAC3C,IAAMgB,KAAK,GAAGF,MAAM,CAACE,KAAK;MAC1B,IAAMC,SAAS,GAAGD,KAAK,CAACE,KAAK;MAC7B,IAAID,SAAS,KAAKxB,SAAS,EAAE;QACzBsB,IAAI,CAACE,SAAS,GAAGA,SAAS;MAC9B;MACA,OAAOF,IAAI;IACf;EAAC;IAAA7C,GAAA;IAAA0B,KAAA,EAED,SAAAuB,UAAA,EAA4B;MACxB,OAAO,KAAK;IAChB;EAAC;IAAAjD,GAAA;IAAA0B,KAAA,EAED,SAAAU,OAAA,EAAiB;MACb,OAAO,IAAI,CAAC9B,KAAK;IACrB;EAAC;IAAAN,GAAA;IAAA0B,KAAA,EAED,SAAAQ,WAAA,EAAqB;MACjB,OAAO,IAAI,CAAC1B,SAAS;IACzB;EAAC;IAAAR,GAAA;IAAA0B,KAAA,EAED,SAAAwB,SAAA,EAAiC;MAC7B,oBACIlE,MAAA,CAAAW,OAAA,CAAAmC,aAAA,CAAC9C,MAAA,CAAAmE,QAAQ;QAACC,QAAQ,EAAE;MAAK,gBACrBpE,MAAA,CAAAW,OAAA,CAAAmC,aAAA,CAAC1C,cAAc;QACXiB,EAAE,EAAE,IAAI,CAACD,IAAK;QACdG,GAAG,EAAE,IAAI,CAACD,KAAM;QAChBG,OAAO,EAAE,IAAI,CAACD,SAAU;QACxBK,KAAK,EAAE,IAAI,CAACD,OAAQ;QACpBG,MAAM,EAAE,IAAI,CAACD,QAAS;QACtBH,QAAQ,EAAE,IAAI,CAACD,UAAW;QAC1B2C,OAAO,EAAE,IAAI,CAACC,MAAM,CAAC,CAAE;QACvBrC,WAAW,EAAE,IAAI,CAACD,aAAc;QAChCG,OAAO,EAAE,IAAI,CAACD,SAAU;QACxBI,eAAe,EAAE,IAAI,CAACD,iBAAkB;QACxCkC,SAAS,EAAE;MAAK,CACnB,CACK,CAAC;IAEnB;EAAC;IAAAvD,GAAA;IAAA0B,KAAA;IAnJD;;IAGA,SAAA8B,QAAA,EAAkC;MAC9B,OAAO,OAAO;IAClB;EAAC;IAAAxD,GAAA;IAAA0B,KAAA,EAED,SAAA+B,MAAsBC,IAAe,EAAa;MAC9C,OAAO,IAAI9D,SAAS,CAChB;QACIS,EAAE,EAAEqD,IAAI,CAACtD,IAAI;QACbG,GAAG,EAAEmD,IAAI,CAACpD,KAAK;QACfG,OAAO,EAAEiD,IAAI,CAAClD,SAAS;QACvBG,QAAQ,EAAE+C,IAAI,CAAChD,UAAU;QACzBG,KAAK,EAAE6C,IAAI,CAAC9C,OAAO;QACnBG,MAAM,EAAE2C,IAAI,CAAC5C,QAAQ;QACrBG,WAAW,EAAEyC,IAAI,CAAC1C,aAAa;QAC/BG,OAAO,EAAEuC,IAAI,CAACxC,SAAS;QACvBI,eAAe,EAAEoC,IAAI,CAACrC;MAC1B,CAAC,EACDqC,IAAI,CAACC,KACT,CAAC;IACL;EAAC;IAAA3D,GAAA;IAAA0B,KAAA,EAED,SAAAkC,WAA2BC,cAAmC,EAAa;MACvE,IAAQxD,EAAE,GAAkEwD,cAAc,CAAlFxD,EAAE;QAAEI,OAAO,GAAyDoD,cAAc,CAA9EpD,OAAO;QAAEM,MAAM,GAAiD8C,cAAc,CAArE9C,MAAM;QAAEF,KAAK,GAA0CgD,cAAc,CAA7DhD,KAAK;QAAEF,QAAQ,GAAgCkD,cAAc,CAAtDlD,QAAQ;QAAEQ,OAAO,GAAuB0C,cAAc,CAA5C1C,OAAO;QAAEZ,GAAG,GAAkBsD,cAAc,CAAnCtD,GAAG;QAAEU,WAAW,GAAK4C,cAAc,CAA9B5C,WAAW;MACvE,IAAMyC,IAAI,GAAGI,gBAAgB,CAAC;QAC1BzD,EAAE,EAAFA,EAAE;QACFI,OAAO,EAAPA,OAAO;QACPM,MAAM,EAANA,MAAM;QACNJ,QAAQ,EAARA,QAAQ;QACRM,WAAW,EAAXA,WAAW;QACXV,GAAG,EAAHA,GAAG;QACHM,KAAK,EAALA;MACJ,CAAC,CAAC;MACF,IAAMkD,YAAY,GAAGL,IAAI,CAACxC,SAAS;MACnC,IAAM8C,WAAW,GAAGD,YAAY,CAACE,gBAAgB,CAAC9C,OAAO,CAAC6C,WAAW,CAAC;MACtE,IAAI,CAACA,WAAW,CAACE,OAAO,CAAC,CAAC,EAAE;QACxBH,YAAY,CAACI,cAAc,CAACH,WAAW,CAAC;MAC5C;MACA,OAAON,IAAI;IACf;EAAC;IAAA1D,GAAA;IAAA0B,KAAA,EAiBD,SAAA0C,UAAA,EAAqD;MACjD;AACR;AACA;AACA;AACA;MACQ,OAAO,IAAI;IACf;EAAC;AAAA,EA1E0BC,sBAAa;AA+JrC,SAASP,gBAAgBA,CAAC/D,KAAqB,EAAEC,GAAY,EAAa;EAC7E,OAAO,IAAAsE,8BAAqB,EAAC,IAAI1E,SAAS,CAACG,KAAK,EAAEC,GAAG,CAAC,CAAC;AAC3D;AAEO,SAASuE,YAAYA,CAACb,IAAoC,EAAqB;EAClF,OAAOA,IAAI,YAAY9D,SAAS;AACpC","ignoreList":[]}
|
|
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":[]}
|
package/ListNode.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_lexical","require","_lexicalTheme","_utils","_listNode","_ListItemNode","TypographyStyleAttrName","ListNode","exports","_ElementNode","listType","themeStyleId","start","key","_this","_classCallCheck2","default","_callSuper2","__themeStyleId","_listType","TAG_TO_WEBINY_LIST_TYPE","__listType","__tag","__start","_inherits2","_createClass2","value","createDOM","config","tag","dom","document","createElement","wTheme","theme","setAttribute","String","hasThemeStyle","isStyleExistInTheme","setDefaultThemeListStyleByTag","__lexicalListType","setListThemeClassNames","getStyleId","exportJSON","_objectSpread2","_get2","_getPrototypeOf2","prototype","call","getListType","getStart","getTag","type","version","updateDOM","prevNode","extractWithChild","child","$isListItemNode","themeEmotionMap","emotionMap","style","findTypographyStyleByHtmlTag","id","getType","clone","node","__key","importJSON","serializedNode","$createListNode","setFormat","format","setIndent","indent","setDirection","direction","importDomConversionMap","conversion","convertListNode","priority","importDOM","_this2","ol","ul","ElementNode","editorTheme","editorThemeClasses","classesToAdd","classesToRemove","listTheme","list","undefined","listLevelsClassNames","concat","listDepth","$getListDepth","normalizedListDepth","length","listLevelClassName","listClassName","className","nestedListClassName","nestedListTheme","nested","push","listItemClasses","split","apply","_toConsumableArray2","i","nestedListItemClasses","removeClassNamesFromElement","addClassNamesToElement","normalizeChildren","nodes","normalizedListItems","getChildren","forEach","$isListNode","wrapInListItem","domNode","nodeName","toLowerCase","after","arguments"],"sources":["ListNode.ts"],"sourcesContent":["import {\n DOMConversion,\n DOMConversionMap,\n DOMConversionOutput,\n EditorConfig,\n ElementNode,\n LexicalNode,\n NodeKey,\n SerializedElementNode,\n Spread\n} from \"lexical\";\nimport { EditorTheme, WebinyTheme, findTypographyStyleByHtmlTag } from \"@webiny/lexical-theme\";\nimport { addClassNamesToElement, removeClassNamesFromElement } from \"@lexical/utils\";\nimport { ListNodeTagType } from \"@lexical/list/LexicalListNode\";\nimport { $getListDepth, wrapInListItem } from \"~/utils/listNode\";\nimport { $isListItemNode, ListItemNode } from \"./ListItemNode\";\nimport { ListType } from \"@lexical/list\";\n\nconst TypographyStyleAttrName = \"data-theme-list-style-id\";\n\nexport type SerializedWebinyListNode = Spread<\n {\n themeStyleId: string;\n listType: ListType;\n start: number;\n tag: ListNodeTagType;\n type: \"webiny-list\";\n version: 1;\n },\n SerializedElementNode\n>;\n\nexport class ListNode extends ElementNode {\n /** @internal */\n __tag: ListNodeTagType;\n /** @internal */\n __start: number;\n /** @internal */\n __listType: ListType;\n\n private __themeStyleId: string;\n\n constructor(listType: ListType, themeStyleId?: string, start?: number, key?: NodeKey) {\n super(key);\n this.__themeStyleId = themeStyleId || \"\";\n const _listType = TAG_TO_WEBINY_LIST_TYPE[listType] || listType;\n this.__listType = _listType;\n this.__tag = _listType === \"number\" ? \"ol\" : \"ul\";\n this.__start = start || 1;\n }\n\n static override getType() {\n return \"webiny-list\";\n }\n\n override createDOM(config: EditorConfig): HTMLElement {\n const tag = this.__tag;\n const dom = document.createElement(tag);\n const wTheme = config.theme as WebinyTheme;\n\n if (this.__start !== 1) {\n dom.setAttribute(\"start\", String(this.__start));\n }\n\n // If styleId is not set or user removed from theme, set default style\n if (!this.hasThemeStyle() || !this.isStyleExistInTheme(wTheme)) {\n this.setDefaultThemeListStyleByTag(this.__tag, wTheme);\n }\n\n // @ts-expect-error Internal field.\n dom.__lexicalListType = this.__listType;\n const theme = config.theme as EditorTheme;\n setListThemeClassNames(dom, theme, this, this.__themeStyleId);\n dom.setAttribute(TypographyStyleAttrName, this.__themeStyleId);\n return dom;\n }\n\n static override clone(node: ListNode): ListNode {\n return new ListNode(node.getListType(), node.getStyleId(), node.getStart(), node.__key);\n }\n\n getStyleId(): string {\n return this.__themeStyleId;\n }\n\n static override importJSON(serializedNode: SerializedWebinyListNode): ListNode {\n const node = $createListNode(\n serializedNode.listType,\n serializedNode.themeStyleId,\n serializedNode.start\n );\n node.setFormat(serializedNode.format);\n node.setIndent(serializedNode.indent);\n node.setDirection(serializedNode.direction);\n return node;\n }\n\n override exportJSON(): SerializedWebinyListNode {\n return {\n ...super.exportJSON(),\n themeStyleId: this.getStyleId(),\n listType: this.getListType(),\n start: this.getStart(),\n tag: this.getTag(),\n type: \"webiny-list\",\n version: 1\n };\n }\n\n static importDomConversionMap(): DOMConversion<HTMLElement> | null {\n return {\n conversion: convertListNode,\n priority: 0\n };\n }\n\n static override importDOM(): DOMConversionMap | null {\n return {\n ol: () => {\n return this.importDomConversionMap();\n },\n ul: () => {\n return this.importDomConversionMap();\n }\n };\n }\n\n override updateDOM(prevNode: ListNode, dom: HTMLElement, config: EditorConfig): boolean {\n const wTheme = config.theme as WebinyTheme;\n\n if (prevNode.__tag !== this.__tag) {\n return true;\n }\n\n // if styleId is not set or user removed from theme, set default style.\n if (!this.hasThemeStyle() || !this.isStyleExistInTheme(wTheme)) {\n this.setDefaultThemeListStyleByTag(this.__tag, wTheme);\n }\n\n setListThemeClassNames(dom, config.theme, this, this.__themeStyleId);\n dom.setAttribute(TypographyStyleAttrName, this.__themeStyleId);\n return false;\n }\n\n override extractWithChild(child: LexicalNode): boolean {\n return $isListItemNode(child);\n }\n\n public getListType(): ListType {\n return this.__listType;\n }\n\n public getStart(): number {\n return this.__start;\n }\n\n /*\n * Set default styleId from first style that is found in the theme that contains current ul or ol tag\n */\n private setDefaultThemeListStyleByTag(tag: string, theme: WebinyTheme) {\n if (!tag) {\n return;\n }\n\n const themeEmotionMap = theme?.emotionMap;\n if (!themeEmotionMap) {\n return;\n }\n\n const style = findTypographyStyleByHtmlTag(tag, themeEmotionMap);\n\n if (style) {\n this.__themeStyleId = style.id;\n }\n }\n\n private hasThemeStyle(): boolean {\n return !!this.__themeStyleId;\n }\n\n private getTag(): ListNodeTagType {\n return this.__tag;\n }\n\n private isStyleExistInTheme(theme: WebinyTheme): boolean {\n return theme?.emotionMap ? !!theme?.emotionMap[this.__themeStyleId] : false;\n }\n}\n\nfunction setListThemeClassNames(\n dom: HTMLElement,\n editorTheme: EditorTheme,\n node: ListNode,\n themeStyleId: string\n): void {\n const editorThemeClasses = editorTheme;\n const classesToAdd = [];\n const classesToRemove = [];\n const listTheme = editorThemeClasses.list;\n const emotionMap = editorTheme?.emotionMap || {};\n if (listTheme !== undefined) {\n const listLevelsClassNames = listTheme[`${node.__tag}Depth`] || [];\n const listDepth = $getListDepth(node) - 1;\n const normalizedListDepth = listDepth % listLevelsClassNames.length;\n const listLevelClassName = listLevelsClassNames[normalizedListDepth];\n const listClassName = `${listTheme[node.__tag]} ${\n emotionMap[themeStyleId]?.className ?? \"\"\n }`;\n let nestedListClassName;\n const nestedListTheme = listTheme.nested;\n\n if (nestedListTheme !== undefined && nestedListTheme.list) {\n nestedListClassName = nestedListTheme.list;\n }\n\n if (listClassName) {\n classesToAdd.push(listClassName);\n }\n\n if (listLevelClassName !== undefined) {\n const listItemClasses = listLevelClassName.split(\" \");\n classesToAdd.push(...listItemClasses);\n for (let i = 0; i < listLevelsClassNames.length; i++) {\n if (i !== normalizedListDepth) {\n classesToRemove.push(node.__tag + i);\n }\n }\n }\n\n if (nestedListClassName !== undefined) {\n const nestedListItemClasses = nestedListClassName.split(\" \");\n\n if (listDepth > 1) {\n classesToAdd.push(...nestedListItemClasses);\n } else {\n classesToRemove.push(...nestedListItemClasses);\n }\n }\n }\n\n if (classesToRemove.length > 0) {\n removeClassNamesFromElement(dom, ...classesToRemove);\n }\n\n if (classesToAdd.length > 0) {\n addClassNamesToElement(dom, ...classesToAdd);\n }\n}\n\n/*\n * This function normalizes the children of a ListNode after the conversion from HTML,\n * ensuring that they are all ListItemNodes and contain either a single nested ListNode\n * or some other inline content.\n */\nfunction normalizeChildren(nodes: Array<ListNode>): Array<ListItemNode> {\n const normalizedListItems: Array<ListItemNode> = [];\n for (let i = 0; i < nodes.length; i++) {\n const node = nodes[i];\n if ($isListItemNode(node)) {\n normalizedListItems.push(node);\n node.getChildren().forEach(child => {\n if ($isListNode(child)) {\n normalizedListItems.push(wrapInListItem(child));\n }\n });\n } else {\n normalizedListItems.push(wrapInListItem(node));\n }\n }\n return normalizedListItems;\n}\n\nfunction convertListNode(domNode: Node): DOMConversionOutput {\n const nodeName = domNode.nodeName.toLowerCase();\n let node = null;\n\n if (nodeName === \"ol\") {\n node = $createListNode(\"number\");\n } else if (nodeName === \"ul\") {\n node = $createListNode(\"bullet\");\n }\n\n return {\n // @ts-expect-error\n after: normalizeChildren,\n node\n };\n}\n\nconst TAG_TO_WEBINY_LIST_TYPE: Record<string, ListType> = {\n ol: \"number\",\n ul: \"bullet\"\n};\n\nexport function $createListNode(listType: ListType, themeStyleId?: string, start = 1): ListNode {\n return new ListNode(listType, themeStyleId, start);\n}\n\nexport function $isListNode(node: LexicalNode | null | undefined): node is ListNode {\n return node instanceof ListNode;\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_lexical","require","_lexicalTheme","_utils","_listNode","_ListItemNode","TypographyStyleAttrName","ListNode","exports","_ElementNode","listType","themeStyleId","start","key","_this","_classCallCheck2","default","_callSuper2","__themeStyleId","_listType","TAG_TO_WEBINY_LIST_TYPE","__listType","__tag","__start","_inherits2","_createClass2","value","createDOM","config","tag","dom","document","createElement","wTheme","theme","setAttribute","String","hasThemeStyle","isStyleExistInTheme","setDefaultThemeListStyleByTag","__lexicalListType","setListThemeClassNames","getStyleId","exportJSON","_objectSpread2","_get2","_getPrototypeOf2","prototype","call","getListType","getStart","getTag","type","version","updateDOM","prevNode","extractWithChild","child","$isListItemNode","themeEmotionMap","emotionMap","style","findTypographyStyleByHtmlTag","id","getType","clone","node","__key","importJSON","serializedNode","$createListNode","setFormat","format","setIndent","indent","setDirection","direction","importDomConversionMap","conversion","convertListNode","priority","importDOM","_this2","ol","ul","ElementNode","editorTheme","editorThemeClasses","classesToAdd","classesToRemove","listTheme","list","undefined","listLevelsClassNames","concat","listDepth","$getListDepth","normalizedListDepth","length","listLevelClassName","listClassName","className","nestedListClassName","nestedListTheme","nested","push","listItemClasses","split","apply","_toConsumableArray2","i","nestedListItemClasses","removeClassNamesFromElement","addClassNamesToElement","normalizeChildren","nodes","normalizedListItems","getChildren","forEach","$isListNode","wrapInListItem","domNode","nodeName","toLowerCase","after","arguments"],"sources":["ListNode.ts"],"sourcesContent":["import {\n DOMConversion,\n DOMConversionMap,\n DOMConversionOutput,\n EditorConfig,\n ElementNode,\n LexicalNode,\n NodeKey,\n SerializedElementNode,\n Spread\n} from \"lexical\";\nimport { EditorTheme, findTypographyStyleByHtmlTag } from \"@webiny/lexical-theme\";\nimport { addClassNamesToElement, removeClassNamesFromElement } from \"@lexical/utils\";\nimport { ListNodeTagType } from \"@lexical/list/LexicalListNode\";\nimport { $getListDepth, wrapInListItem } from \"~/utils/listNode\";\nimport { $isListItemNode, ListItemNode } from \"./ListItemNode\";\nimport { ListType } from \"@lexical/list\";\n\nconst TypographyStyleAttrName = \"data-theme-list-style-id\";\n\nexport type SerializedWebinyListNode = Spread<\n {\n themeStyleId: string;\n listType: ListType;\n start: number;\n tag: ListNodeTagType;\n type: \"webiny-list\";\n version: 1;\n },\n SerializedElementNode\n>;\n\nexport class ListNode extends ElementNode {\n /** @internal */\n __tag: ListNodeTagType;\n /** @internal */\n __start: number;\n /** @internal */\n __listType: ListType;\n\n private __themeStyleId: string;\n\n constructor(listType: ListType, themeStyleId?: string, start?: number, key?: NodeKey) {\n super(key);\n this.__themeStyleId = themeStyleId || \"\";\n const _listType = TAG_TO_WEBINY_LIST_TYPE[listType] || listType;\n this.__listType = _listType;\n this.__tag = _listType === \"number\" ? \"ol\" : \"ul\";\n this.__start = start || 1;\n }\n\n static override getType() {\n return \"webiny-list\";\n }\n\n override createDOM(config: EditorConfig): HTMLElement {\n const tag = this.__tag;\n const dom = document.createElement(tag);\n const wTheme = config.theme as EditorTheme;\n\n if (this.__start !== 1) {\n dom.setAttribute(\"start\", String(this.__start));\n }\n\n // If styleId is not set or user removed from theme, set default style\n if (!this.hasThemeStyle() || !this.isStyleExistInTheme(wTheme)) {\n this.setDefaultThemeListStyleByTag(this.__tag, wTheme);\n }\n\n // @ts-expect-error Internal field.\n dom.__lexicalListType = this.__listType;\n const theme = config.theme as EditorTheme;\n setListThemeClassNames(dom, theme, this, this.__themeStyleId);\n dom.setAttribute(TypographyStyleAttrName, this.__themeStyleId);\n return dom;\n }\n\n static override clone(node: ListNode): ListNode {\n return new ListNode(node.getListType(), node.getStyleId(), node.getStart(), node.__key);\n }\n\n getStyleId(): string {\n return this.__themeStyleId;\n }\n\n static override importJSON(serializedNode: SerializedWebinyListNode): ListNode {\n const node = $createListNode(\n serializedNode.listType,\n serializedNode.themeStyleId,\n serializedNode.start\n );\n node.setFormat(serializedNode.format);\n node.setIndent(serializedNode.indent);\n node.setDirection(serializedNode.direction);\n return node;\n }\n\n override exportJSON(): SerializedWebinyListNode {\n return {\n ...super.exportJSON(),\n themeStyleId: this.getStyleId(),\n listType: this.getListType(),\n start: this.getStart(),\n tag: this.getTag(),\n type: \"webiny-list\",\n version: 1\n };\n }\n\n static importDomConversionMap(): DOMConversion<HTMLElement> | null {\n return {\n conversion: convertListNode,\n priority: 0\n };\n }\n\n static override importDOM(): DOMConversionMap | null {\n return {\n ol: () => {\n return this.importDomConversionMap();\n },\n ul: () => {\n return this.importDomConversionMap();\n }\n };\n }\n\n override updateDOM(prevNode: ListNode, dom: HTMLElement, config: EditorConfig): boolean {\n const wTheme = config.theme as EditorTheme;\n\n if (prevNode.__tag !== this.__tag) {\n return true;\n }\n\n // if styleId is not set or user removed from theme, set default style.\n if (!this.hasThemeStyle() || !this.isStyleExistInTheme(wTheme)) {\n this.setDefaultThemeListStyleByTag(this.__tag, wTheme);\n }\n\n setListThemeClassNames(dom, config.theme as EditorTheme, this, this.__themeStyleId);\n dom.setAttribute(TypographyStyleAttrName, this.__themeStyleId);\n return false;\n }\n\n override extractWithChild(child: LexicalNode): boolean {\n return $isListItemNode(child);\n }\n\n public getListType(): ListType {\n return this.__listType;\n }\n\n public getStart(): number {\n return this.__start;\n }\n\n /*\n * Set default styleId from first style that is found in the theme that contains current ul or ol tag\n */\n private setDefaultThemeListStyleByTag(tag: string, theme: EditorTheme) {\n if (!tag) {\n return;\n }\n\n const themeEmotionMap = theme?.emotionMap;\n if (!themeEmotionMap) {\n return;\n }\n\n const style = findTypographyStyleByHtmlTag(tag, themeEmotionMap);\n\n if (style) {\n this.__themeStyleId = style.id;\n }\n }\n\n private hasThemeStyle(): boolean {\n return !!this.__themeStyleId;\n }\n\n private getTag(): ListNodeTagType {\n return this.__tag;\n }\n\n private isStyleExistInTheme(theme: EditorTheme): boolean {\n return theme?.emotionMap ? !!theme?.emotionMap[this.__themeStyleId] : false;\n }\n}\n\nfunction setListThemeClassNames(\n dom: HTMLElement,\n editorTheme: EditorTheme,\n node: ListNode,\n themeStyleId: string\n): void {\n const editorThemeClasses = editorTheme;\n const classesToAdd = [];\n const classesToRemove = [];\n const listTheme = editorThemeClasses.list;\n const emotionMap = editorTheme?.emotionMap || {};\n if (listTheme !== undefined) {\n const listLevelsClassNames = listTheme[`${node.__tag}Depth`] || [];\n const listDepth = $getListDepth(node) - 1;\n const normalizedListDepth = listDepth % listLevelsClassNames.length;\n const listLevelClassName = listLevelsClassNames[normalizedListDepth];\n const listClassName = `${listTheme[node.__tag]} ${\n emotionMap[themeStyleId]?.className ?? \"\"\n }`;\n let nestedListClassName;\n const nestedListTheme = listTheme.nested;\n\n if (nestedListTheme !== undefined && nestedListTheme.list) {\n nestedListClassName = nestedListTheme.list;\n }\n\n if (listClassName) {\n classesToAdd.push(listClassName);\n }\n\n if (listLevelClassName !== undefined) {\n const listItemClasses = listLevelClassName.split(\" \");\n classesToAdd.push(...listItemClasses);\n for (let i = 0; i < listLevelsClassNames.length; i++) {\n if (i !== normalizedListDepth) {\n classesToRemove.push(node.__tag + i);\n }\n }\n }\n\n if (nestedListClassName !== undefined) {\n const nestedListItemClasses = nestedListClassName.split(\" \");\n\n if (listDepth > 1) {\n classesToAdd.push(...nestedListItemClasses);\n } else {\n classesToRemove.push(...nestedListItemClasses);\n }\n }\n }\n\n if (classesToRemove.length > 0) {\n removeClassNamesFromElement(dom, ...classesToRemove);\n }\n\n if (classesToAdd.length > 0) {\n addClassNamesToElement(dom, ...classesToAdd);\n }\n}\n\n/*\n * This function normalizes the children of a ListNode after the conversion from HTML,\n * ensuring that they are all ListItemNodes and contain either a single nested ListNode\n * or some other inline content.\n */\nfunction normalizeChildren(nodes: Array<ListNode>): Array<ListItemNode> {\n const normalizedListItems: Array<ListItemNode> = [];\n for (let i = 0; i < nodes.length; i++) {\n const node = nodes[i];\n if ($isListItemNode(node)) {\n normalizedListItems.push(node);\n node.getChildren().forEach(child => {\n if ($isListNode(child)) {\n normalizedListItems.push(wrapInListItem(child));\n }\n });\n } else {\n normalizedListItems.push(wrapInListItem(node));\n }\n }\n return normalizedListItems;\n}\n\nfunction convertListNode(domNode: Node): DOMConversionOutput {\n const nodeName = domNode.nodeName.toLowerCase();\n let node = null;\n\n if (nodeName === \"ol\") {\n node = $createListNode(\"number\");\n } else if (nodeName === \"ul\") {\n node = $createListNode(\"bullet\");\n }\n\n return {\n // @ts-expect-error\n after: normalizeChildren,\n node\n };\n}\n\nconst TAG_TO_WEBINY_LIST_TYPE: Record<string, ListType> = {\n ol: \"number\",\n ul: \"bullet\"\n};\n\nexport function $createListNode(listType: ListType, themeStyleId?: string, start = 1): ListNode {\n return new ListNode(listType, themeStyleId, start);\n}\n\nexport function $isListNode(node: LexicalNode | null | undefined): node is ListNode {\n return node instanceof ListNode;\n}\n"],"mappings":"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","ignoreList":[]}
|
package/ParagraphNode.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_lexical","require","_lexicalTheme","_utils","ParagraphNode","exports","_BaseParagraphNode","typographyStyleId","key","_this","_classCallCheck2","default","_callSuper2","_defineProperty2","__styles","push","styleId","type","_inherits2","_createClass2","value","setDefaultTypography","themeEmotionMap","typographyStyle","findTypographyStyleByHtmlTag","id","getTypographyStyleId","style","find","x","undefined","hasTypographyStyle","getThemeStyles","self","_get2","_getPrototypeOf2","prototype","call","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 { WebinyTheme, 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: 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 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 WebinyTheme);\n return false;\n }\n\n if (prevTypoStyleId !== nextTypoStyleId && nextTypoStyleId) {\n this.updateElementWithThemeClasses(dom, config.theme as WebinyTheme);\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":["_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","_get2","_getPrototypeOf2","prototype","call","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":[]}
|
package/QuoteNode.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_lexicalTheme","require","_utils","_richText","QuoteNode","exports","_BaseQuoteNode","themeStyleId","key","_this","_classCallCheck2","default","_callSuper2","_defineProperty2","__themeStyleId","__styles","push","styleId","type","_inherits2","_createClass2","value","getStyleId","setDefaultTypography","themeEmotionMap","typographyStyle","findTypographyStyleByHtmlTag","id","typographyStyleExist","getTypographyStyleId","style","find","x","undefined","hasTypographyStyle","getThemeStyles","self","_get2","_getPrototypeOf2","prototype","call","setThemeStyles","styles","_toConsumableArray2","addThemeStylesToHTMLElement","element","theme","emotionMap","typographyValue","addClassNamesToElement","className","createDOM","config","wTheme","emotionThemeMap","exportJSON","_objectSpread2","getType","clone","node","__key","importDomConversionMap","conversion","convertBlockquoteElement","priority","importDOM","_this2","blockquote","importJSON","serializedNode","$createQuoteNode","setFormat","format","setIndent","indent","setDirection","direction","length","BaseQuoteNode","$isQuoteNode"],"sources":["QuoteNode.ts"],"sourcesContent":["import {\n DOMConversion,\n DOMConversionMap,\n EditorConfig,\n LexicalNode,\n NodeKey,\n Spread\n} from \"lexical\";\nimport {\n EditorTheme,\n ThemeEmotionMap,\n WebinyTheme,\n findTypographyStyleByHtmlTag\n} from \"@webiny/lexical-theme\";\nimport { addClassNamesToElement } from \"@lexical/utils\";\nimport {\n QuoteNode as BaseQuoteNode,\n SerializedQuoteNode as BaseSerializedQuoteNode\n} from \"@lexical/rich-text\";\nimport { TextNodeThemeStyles, ThemeStyleValue, TypographyStylesNode } from \"~/types\";\n\nexport type SerializedQuoteNode = Spread<\n {\n styleId?: string;\n styles: ThemeStyleValue[];\n type: \"webiny-quote\";\n },\n BaseSerializedQuoteNode\n>;\n\nexport class QuoteNode extends BaseQuoteNode implements TextNodeThemeStyles, TypographyStylesNode {\n private __themeStyleId: string;\n private __styles: ThemeStyleValue[] = [];\n\n constructor(themeStyleId?: string, key?: NodeKey) {\n super(key);\n this.__themeStyleId = themeStyleId || \"\";\n\n if (themeStyleId) {\n this.__styles.push({ styleId: themeStyleId, type: \"typography\" });\n }\n }\n\n getStyleId(): string {\n return this.__themeStyleId;\n }\n\n /*\n * Find the first occurrence of the quoteblock in the theme styles and set as default.\n */\n protected setDefaultTypography(themeEmotionMap: ThemeEmotionMap) {\n const typographyStyle = findTypographyStyleByHtmlTag(\"quoteblock\", themeEmotionMap);\n if (typographyStyle) {\n this.__styles.push({ styleId: typographyStyle.id, type: \"typography\" });\n }\n }\n\n protected typographyStyleExist(themeEmotionMap: ThemeEmotionMap): boolean {\n const styleId = this.getTypographyStyleId();\n if (!styleId) {\n return false;\n }\n const style = themeEmotionMap[styleId];\n return !!style;\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 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 \"webiny-quote\";\n }\n\n static override clone(node: QuoteNode): QuoteNode {\n return new QuoteNode(node.getTypographyStyleId(), node.__key);\n }\n\n addThemeStylesToHTMLElement(element: HTMLElement, theme: EditorTheme): HTMLElement {\n const themeEmotionMap = theme?.emotionMap;\n\n if (!themeEmotionMap) {\n return element;\n }\n\n // style exist and is in active use\n if (this.hasTypographyStyle() && this.typographyStyleExist(themeEmotionMap)) {\n const styleId = this.getTypographyStyleId();\n if (styleId) {\n const typographyValue = themeEmotionMap[styleId];\n addClassNamesToElement(element, typographyValue?.className);\n return element;\n }\n }\n\n return element;\n }\n\n override createDOM(config: EditorConfig): HTMLElement {\n const element = super.createDOM(config);\n const wTheme = config.theme as WebinyTheme;\n const emotionThemeMap = wTheme?.emotionMap;\n\n if (!emotionThemeMap) {\n return element;\n }\n\n // if styleId is not set or user removed the style from theme, set default style\n if (!this.hasTypographyStyle() || !this.typographyStyleExist(emotionThemeMap)) {\n this.setDefaultTypography(emotionThemeMap);\n }\n\n this.addThemeStylesToHTMLElement(element, config.theme);\n return element;\n }\n\n static importDomConversionMap(): DOMConversion<HTMLElement> | null {\n return {\n conversion: convertBlockquoteElement,\n priority: 0\n };\n }\n\n static override importDOM(): DOMConversionMap | null {\n return {\n blockquote: () => {\n return this.importDomConversionMap();\n }\n };\n }\n\n static override importJSON(serializedNode: SerializedQuoteNode): QuoteNode {\n const node = $createQuoteNode();\n node.setFormat(serializedNode.format);\n node.setIndent(serializedNode.indent);\n node.setDirection(serializedNode.direction);\n if (!!serializedNode?.styles?.length) {\n node.setThemeStyles(serializedNode.styles);\n return node;\n }\n // for old nodes data migrate the style id into the list\n if (!!serializedNode?.styleId) {\n const styles = [\n { styleId: serializedNode.styleId, type: \"typography\" }\n ] as ThemeStyleValue[];\n node.setThemeStyles(styles);\n }\n return node;\n }\n\n override exportJSON(): SerializedQuoteNode {\n return {\n ...super.exportJSON(),\n type: \"webiny-quote\",\n styles: this.__styles,\n styleId: this.getTypographyStyleId()\n };\n }\n}\n\nfunction convertBlockquoteElement() {\n const node = $createQuoteNode();\n return {\n node\n };\n}\n\nexport function $createQuoteNode(themeStyleId?: string, key?: NodeKey): QuoteNode {\n return new QuoteNode(themeStyleId, key);\n}\n\nexport function $isQuoteNode(node: LexicalNode | null | undefined): node is QuoteNode {\n return node instanceof QuoteNode;\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_lexicalTheme","require","_utils","_richText","QuoteNode","exports","_BaseQuoteNode","themeStyleId","key","_this","_classCallCheck2","default","_callSuper2","_defineProperty2","__themeStyleId","__styles","push","styleId","type","_inherits2","_createClass2","value","getStyleId","setDefaultTypography","themeEmotionMap","typographyStyle","findTypographyStyleByHtmlTag","id","typographyStyleExist","getTypographyStyleId","style","find","x","undefined","hasTypographyStyle","getThemeStyles","self","_get2","_getPrototypeOf2","prototype","call","setThemeStyles","styles","_toConsumableArray2","addThemeStylesToHTMLElement","element","theme","emotionMap","typographyValue","addClassNamesToElement","className","createDOM","config","wTheme","emotionThemeMap","exportJSON","_objectSpread2","getType","clone","node","__key","importDomConversionMap","conversion","convertBlockquoteElement","priority","importDOM","_this2","blockquote","importJSON","serializedNode","$createQuoteNode","setFormat","format","setIndent","indent","setDirection","direction","length","BaseQuoteNode","$isQuoteNode"],"sources":["QuoteNode.ts"],"sourcesContent":["import {\n DOMConversion,\n DOMConversionMap,\n EditorConfig,\n LexicalNode,\n NodeKey,\n Spread\n} from \"lexical\";\nimport { EditorTheme, ThemeEmotionMap, findTypographyStyleByHtmlTag } from \"@webiny/lexical-theme\";\nimport { addClassNamesToElement } from \"@lexical/utils\";\nimport {\n QuoteNode as BaseQuoteNode,\n SerializedQuoteNode as BaseSerializedQuoteNode\n} from \"@lexical/rich-text\";\nimport { TextNodeThemeStyles, ThemeStyleValue, TypographyStylesNode } from \"~/types\";\n\nexport type SerializedQuoteNode = Spread<\n {\n styleId?: string;\n styles: ThemeStyleValue[];\n type: \"webiny-quote\";\n },\n BaseSerializedQuoteNode\n>;\n\nexport class QuoteNode extends BaseQuoteNode implements TextNodeThemeStyles, TypographyStylesNode {\n private __themeStyleId: string;\n private __styles: ThemeStyleValue[] = [];\n\n constructor(themeStyleId?: string, key?: NodeKey) {\n super(key);\n this.__themeStyleId = themeStyleId || \"\";\n\n if (themeStyleId) {\n this.__styles.push({ styleId: themeStyleId, type: \"typography\" });\n }\n }\n\n getStyleId(): string {\n return this.__themeStyleId;\n }\n\n /*\n * Find the first occurrence of the quoteblock in the theme styles and set as default.\n */\n protected setDefaultTypography(themeEmotionMap: ThemeEmotionMap) {\n const typographyStyle = findTypographyStyleByHtmlTag(\"quoteblock\", themeEmotionMap);\n if (typographyStyle) {\n this.__styles.push({ styleId: typographyStyle.id, type: \"typography\" });\n }\n }\n\n protected typographyStyleExist(themeEmotionMap: ThemeEmotionMap): boolean {\n const styleId = this.getTypographyStyleId();\n if (!styleId) {\n return false;\n }\n const style = themeEmotionMap[styleId];\n return !!style;\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 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 \"webiny-quote\";\n }\n\n static override clone(node: QuoteNode): QuoteNode {\n return new QuoteNode(node.getTypographyStyleId(), node.__key);\n }\n\n addThemeStylesToHTMLElement(element: HTMLElement, theme: EditorTheme): HTMLElement {\n const themeEmotionMap = theme?.emotionMap;\n\n if (!themeEmotionMap) {\n return element;\n }\n\n // style exist and is in active use\n if (this.hasTypographyStyle() && this.typographyStyleExist(themeEmotionMap)) {\n const styleId = this.getTypographyStyleId();\n if (styleId) {\n const typographyValue = themeEmotionMap[styleId];\n addClassNamesToElement(element, typographyValue?.className);\n return element;\n }\n }\n\n return element;\n }\n\n override createDOM(config: EditorConfig): HTMLElement {\n const element = super.createDOM(config);\n const wTheme = config.theme as EditorTheme;\n const emotionThemeMap = wTheme?.emotionMap;\n\n if (!emotionThemeMap) {\n return element;\n }\n\n // if styleId is not set or user removed the style from theme, set default style\n if (!this.hasTypographyStyle() || !this.typographyStyleExist(emotionThemeMap)) {\n this.setDefaultTypography(emotionThemeMap);\n }\n\n this.addThemeStylesToHTMLElement(element, config.theme as EditorTheme);\n return element;\n }\n\n static importDomConversionMap(): DOMConversion<HTMLElement> | null {\n return {\n conversion: convertBlockquoteElement,\n priority: 0\n };\n }\n\n static override importDOM(): DOMConversionMap | null {\n return {\n blockquote: () => {\n return this.importDomConversionMap();\n }\n };\n }\n\n static override importJSON(serializedNode: SerializedQuoteNode): QuoteNode {\n const node = $createQuoteNode();\n node.setFormat(serializedNode.format);\n node.setIndent(serializedNode.indent);\n node.setDirection(serializedNode.direction);\n if (!!serializedNode?.styles?.length) {\n node.setThemeStyles(serializedNode.styles);\n return node;\n }\n // for old nodes data migrate the style id into the list\n if (!!serializedNode?.styleId) {\n const styles = [\n { styleId: serializedNode.styleId, type: \"typography\" }\n ] as ThemeStyleValue[];\n node.setThemeStyles(styles);\n }\n return node;\n }\n\n override exportJSON(): SerializedQuoteNode {\n return {\n ...super.exportJSON(),\n type: \"webiny-quote\",\n styles: this.__styles,\n styleId: this.getTypographyStyleId()\n };\n }\n}\n\nfunction convertBlockquoteElement() {\n const node = $createQuoteNode();\n return {\n node\n };\n}\n\nexport function $createQuoteNode(themeStyleId?: string, key?: NodeKey): QuoteNode {\n return new QuoteNode(themeStyleId, key);\n}\n\nexport function $isQuoteNode(node: LexicalNode | null | undefined): node is QuoteNode {\n return node instanceof QuoteNode;\n}\n"],"mappings":"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","ignoreList":[]}
|
package/TypographyNode.js
CHANGED
|
@@ -49,7 +49,7 @@ var TypographyNode = exports.TypographyNode = /*#__PURE__*/function (_ElementNod
|
|
|
49
49
|
}, {
|
|
50
50
|
key: "addStylesHTMLElement",
|
|
51
51
|
value: function addStylesHTMLElement(element, theme) {
|
|
52
|
-
var typographyStyleValue = theme
|
|
52
|
+
var typographyStyleValue = theme.emotionMap ? theme.emotionMap[this.__styleId] : undefined;
|
|
53
53
|
if (typographyStyleValue) {
|
|
54
54
|
this.__css = typographyStyleValue.styles;
|
|
55
55
|
(0, _utils.addClassNamesToElement)(element, typographyStyleValue.className);
|
package/TypographyNode.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_lexical","require","_utils","_ParagraphNode","ADD_TYPOGRAPHY_COMMAND","exports","createCommand","TypographyNodeAttrName","TypographyNode","_ElementNode","value","key","_this","_classCallCheck2","default","_callSuper2","__tag","tag","__styleId","id","__name","name","__css","css","_inherits2","_createClass2","getTypographyValue","addStylesHTMLElement","element","theme","typographyStyleValue","emotionMap","undefined","styles","addClassNamesToElement","className","setAttribute","exportJSON","_objectSpread2","_get2","_getPrototypeOf2","prototype","call","typographyStyles","styleId","type","version","createDOM","config","document","createElement","updateDOM","insertNewAfter","newElement","$createTypographyNode","direction","getDirection","setDirection","insertAfter","collapseAtStart","paragraph","$createParagraphNode","children","getChildren","forEach","child","append","replace","getType","clone","node","__key","importJSON","serializedNode","setFormat","format","setIndent","indent","ElementNode","$isTypographyNode"],"sources":["TypographyNode.ts"],"sourcesContent":["import {\n createCommand,\n EditorConfig,\n ElementNode,\n LexicalCommand,\n LexicalEditor,\n LexicalNode,\n NodeKey,\n SerializedElementNode,\n Spread\n} from \"lexical\";\nimport { addClassNamesToElement } from \"@lexical/utils\";\nimport { EditorTheme, TypographyHTMLTag, TypographyValue } from \"@webiny/lexical-theme\";\nimport { $createParagraphNode } from \"~/ParagraphNode\";\n\n// Command and payload\nexport const ADD_TYPOGRAPHY_COMMAND: LexicalCommand<TypographyPayload> =\n createCommand(\"ADD_TYPOGRAPHY_COMMAND\");\n\nconst TypographyNodeAttrName = \"data-typography-style-id\";\n\nexport interface TypographyPayload {\n value: TypographyValue;\n caption?: LexicalEditor;\n key?: NodeKey;\n}\n\n// Node\nexport type SerializedTypographyNode = Spread<\n {\n tag: TypographyHTMLTag;\n styleId: string;\n name: string;\n typographyStyles: Record<string, any>;\n type: \"typography-el-node\";\n version: 1;\n },\n SerializedElementNode\n>;\n\n/**\n * Main responsibility of this node is to apply custom or Webiny theme typography to selected text.\n * Extends the original ElementNode node to add additional transformation and support for webiny theme typography.\n */\nexport class TypographyNode extends ElementNode {\n __styleId: string;\n __tag: TypographyHTMLTag;\n __name: string;\n __css: Record<string, any>;\n\n constructor(value: TypographyValue, key?: NodeKey) {\n super(key);\n this.__tag = value.tag;\n this.__styleId = value.id;\n this.__name = value.name;\n this.__css = value.css;\n }\n\n static override getType(): string {\n return \"typography-el-node\";\n }\n\n static override clone(node: TypographyNode): TypographyNode {\n return new TypographyNode(\n {\n css: node.__css,\n id: node.__styleId,\n name: node.__name,\n tag: node.__tag\n },\n node.__key\n );\n }\n getTypographyValue(): TypographyValue {\n return {\n tag: this.__tag,\n css: this.__css,\n id: this.__styleId,\n name: this.__name\n };\n }\n\n addStylesHTMLElement(element: HTMLElement, theme: EditorTheme): HTMLElement {\n const typographyStyleValue = theme
|
|
1
|
+
{"version":3,"names":["_lexical","require","_utils","_ParagraphNode","ADD_TYPOGRAPHY_COMMAND","exports","createCommand","TypographyNodeAttrName","TypographyNode","_ElementNode","value","key","_this","_classCallCheck2","default","_callSuper2","__tag","tag","__styleId","id","__name","name","__css","css","_inherits2","_createClass2","getTypographyValue","addStylesHTMLElement","element","theme","typographyStyleValue","emotionMap","undefined","styles","addClassNamesToElement","className","setAttribute","exportJSON","_objectSpread2","_get2","_getPrototypeOf2","prototype","call","typographyStyles","styleId","type","version","createDOM","config","document","createElement","updateDOM","insertNewAfter","newElement","$createTypographyNode","direction","getDirection","setDirection","insertAfter","collapseAtStart","paragraph","$createParagraphNode","children","getChildren","forEach","child","append","replace","getType","clone","node","__key","importJSON","serializedNode","setFormat","format","setIndent","indent","ElementNode","$isTypographyNode"],"sources":["TypographyNode.ts"],"sourcesContent":["import {\n createCommand,\n EditorConfig,\n ElementNode,\n LexicalCommand,\n LexicalEditor,\n LexicalNode,\n NodeKey,\n SerializedElementNode,\n Spread\n} from \"lexical\";\nimport { addClassNamesToElement } from \"@lexical/utils\";\nimport { EditorTheme, TypographyHTMLTag, TypographyValue } from \"@webiny/lexical-theme\";\nimport { $createParagraphNode } from \"~/ParagraphNode\";\n\n// Command and payload\nexport const ADD_TYPOGRAPHY_COMMAND: LexicalCommand<TypographyPayload> =\n createCommand(\"ADD_TYPOGRAPHY_COMMAND\");\n\nconst TypographyNodeAttrName = \"data-typography-style-id\";\n\nexport interface TypographyPayload {\n value: TypographyValue;\n caption?: LexicalEditor;\n key?: NodeKey;\n}\n\n// Node\nexport type SerializedTypographyNode = Spread<\n {\n tag: TypographyHTMLTag;\n styleId: string;\n name: string;\n typographyStyles: Record<string, any>;\n type: \"typography-el-node\";\n version: 1;\n },\n SerializedElementNode\n>;\n\n/**\n * Main responsibility of this node is to apply custom or Webiny theme typography to selected text.\n * Extends the original ElementNode node to add additional transformation and support for webiny theme typography.\n */\nexport class TypographyNode extends ElementNode {\n __styleId: string;\n __tag: TypographyHTMLTag;\n __name: string;\n __css: Record<string, any>;\n\n constructor(value: TypographyValue, key?: NodeKey) {\n super(key);\n this.__tag = value.tag;\n this.__styleId = value.id;\n this.__name = value.name;\n this.__css = value.css;\n }\n\n static override getType(): string {\n return \"typography-el-node\";\n }\n\n static override clone(node: TypographyNode): TypographyNode {\n return new TypographyNode(\n {\n css: node.__css,\n id: node.__styleId,\n name: node.__name,\n tag: node.__tag\n },\n node.__key\n );\n }\n getTypographyValue(): TypographyValue {\n return {\n tag: this.__tag,\n css: this.__css,\n id: this.__styleId,\n name: this.__name\n };\n }\n\n addStylesHTMLElement(element: HTMLElement, theme: EditorTheme): HTMLElement {\n const typographyStyleValue = theme.emotionMap\n ? theme.emotionMap[this.__styleId]\n : undefined;\n if (typographyStyleValue) {\n this.__css = typographyStyleValue.styles;\n addClassNamesToElement(element, typographyStyleValue.className);\n }\n element.setAttribute(TypographyNodeAttrName, this.__styleId);\n\n return element;\n }\n\n override exportJSON(): SerializedTypographyNode {\n return {\n ...super.exportJSON(),\n tag: this.__tag,\n typographyStyles: this.__css,\n name: this.__name,\n styleId: this.__styleId,\n type: \"typography-el-node\",\n version: 1\n };\n }\n\n static override importJSON(serializedNode: SerializedTypographyNode): TypographyNode {\n const node = new TypographyNode({\n id: serializedNode.styleId,\n css: serializedNode.typographyStyles,\n tag: serializedNode.tag,\n name: serializedNode.name\n });\n node.setFormat(serializedNode.format);\n node.setIndent(serializedNode.indent);\n node.setDirection(serializedNode.direction);\n return node;\n }\n\n override createDOM(config: EditorConfig): HTMLElement {\n const tag = this.__tag;\n const element = document.createElement(tag);\n return this.addStylesHTMLElement(element, config.theme as EditorTheme);\n }\n\n override updateDOM(): boolean {\n return false;\n }\n\n override insertNewAfter(): TypographyNode {\n const newElement = $createTypographyNode({\n tag: this.__tag,\n name: this.__name,\n css: this.__css,\n id: this.__styleId\n });\n const direction = this.getDirection();\n newElement.setDirection(direction);\n this.insertAfter(newElement);\n return newElement;\n }\n\n override collapseAtStart(): true {\n const paragraph = $createParagraphNode();\n const children = this.getChildren();\n children.forEach(child => paragraph.append(child));\n this.replace(paragraph);\n return true;\n }\n}\n\nexport const $createTypographyNode = (value: TypographyValue, key?: NodeKey): TypographyNode => {\n return new TypographyNode(value, key);\n};\n\nexport const $isTypographyNode = (\n node: ElementNode | LexicalNode | null\n): node is TypographyNode => {\n return node instanceof TypographyNode;\n};\n"],"mappings":"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","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@webiny/lexical-nodes",
|
|
3
|
-
"version": "5.41.
|
|
3
|
+
"version": "5.41.2-beta.0",
|
|
4
4
|
"dependencies": {
|
|
5
5
|
"@lexical/code": "0.16.1",
|
|
6
6
|
"@lexical/hashtag": "0.16.1",
|
|
@@ -13,12 +13,12 @@
|
|
|
13
13
|
"@lexical/selection": "0.16.1",
|
|
14
14
|
"@lexical/utils": "0.16.1",
|
|
15
15
|
"@types/prismjs": "1.26.4",
|
|
16
|
-
"@webiny/lexical-theme": "5.41.
|
|
16
|
+
"@webiny/lexical-theme": "5.41.2-beta.0",
|
|
17
17
|
"lexical": "0.16.1"
|
|
18
18
|
},
|
|
19
19
|
"devDependencies": {
|
|
20
|
-
"@webiny/cli": "5.41.
|
|
21
|
-
"@webiny/project-utils": "5.41.
|
|
20
|
+
"@webiny/cli": "5.41.2-beta.0",
|
|
21
|
+
"@webiny/project-utils": "5.41.2-beta.0",
|
|
22
22
|
"react": "18.2.0"
|
|
23
23
|
},
|
|
24
24
|
"publishConfig": {
|
|
@@ -36,5 +36,5 @@
|
|
|
36
36
|
]
|
|
37
37
|
}
|
|
38
38
|
},
|
|
39
|
-
"gitHead": "
|
|
39
|
+
"gitHead": "a259e2af938ceb1e2d35b2bef9edcee4459352de"
|
|
40
40
|
}
|