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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (46) hide show
  1. package/FontColorNode.js +8 -14
  2. package/FontColorNode.js.map +1 -1
  3. package/HeadingNode.js +6 -10
  4. package/HeadingNode.js.map +1 -1
  5. package/ImageNode.js +5 -8
  6. package/ImageNode.js.map +1 -1
  7. package/LinkNode.d.ts +2 -7
  8. package/LinkNode.js +29 -137
  9. package/LinkNode.js.map +1 -1
  10. package/ListItemNode.js +5 -8
  11. package/ListItemNode.js.map +1 -1
  12. package/ListNode.js +5 -8
  13. package/ListNode.js.map +1 -1
  14. package/ParagraphNode.js +6 -10
  15. package/ParagraphNode.js.map +1 -1
  16. package/QuoteNode.js +6 -10
  17. package/QuoteNode.js.map +1 -1
  18. package/TypographyNode.js +8 -14
  19. package/TypographyNode.js.map +1 -1
  20. package/components/ImageNode/ContentEditable.js.map +1 -1
  21. package/components/ImageNode/ImageComponent.d.ts +4 -2
  22. package/components/ImageNode/ImageComponent.js +12 -11
  23. package/components/ImageNode/ImageComponent.js.map +1 -1
  24. package/components/ImageNode/ImageResizer.js +5 -4
  25. package/components/ImageNode/ImageResizer.js.map +1 -1
  26. package/components/ImageNode/Placeholder.js.map +1 -1
  27. package/components/ImageNode/SharedHistoryContext.js +7 -8
  28. package/components/ImageNode/SharedHistoryContext.js.map +1 -1
  29. package/index.d.ts +1 -0
  30. package/index.js +13 -2
  31. package/index.js.map +1 -1
  32. package/package.json +6 -6
  33. package/types.js.map +1 -1
  34. package/utils/clearNodeFormating.js +1 -2
  35. package/utils/clearNodeFormating.js.map +1 -1
  36. package/utils/formatList.js.map +1 -1
  37. package/utils/formatToHeading.js +1 -2
  38. package/utils/formatToHeading.js.map +1 -1
  39. package/utils/formatToParagraph.js +1 -2
  40. package/utils/formatToParagraph.js.map +1 -1
  41. package/utils/formatToQuote.js +1 -2
  42. package/utils/formatToQuote.js.map +1 -1
  43. package/utils/listNode.js.map +1 -1
  44. package/utils/toggleLink.d.ts +8 -0
  45. package/utils/toggleLink.js +135 -0
  46. package/utils/toggleLink.js.map +1 -0
package/LinkNode.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"names":["_utils","require","_lexical","SUPPORTED_URL_PROTOCOLS","Set","LinkNode","_ElementNode","_inherits2","default","_super","_createSuper2","url","_this","attributes","arguments","length","undefined","key","_classCallCheck2","call","_attributes$target","target","_attributes$rel","rel","_attributes$title","title","_attributes$alt","alt","__url","__target","__rel","__title","__alt","_createClass2","value","createDOM","config","element","document","createElement","href","sanitizeUrl","addClassNamesToElement","theme","link","updateDOM","prevNode","anchor","removeAttribute","parsedUrl","URL","has","protocol","_unused","exportJSON","_objectSpread2","_get2","_getPrototypeOf2","prototype","getRel","getTarget","getTitle","type","getURL","version","getLatest","setURL","writable","getWritable","setTarget","setRel","setTitle","insertNewAfter","selection","restoreSelection","getParentOrThrow","$isElementNode","linkNode","$createLinkNode","append","canInsertTextBefore","canInsertTextAfter","canBeEmpty","isInline","extractWithChild","_","$isRangeSelection","anchorNode","getNode","focusNode","focus","isParentOf","getTextContent","getType","clone","node","__key","importDOM","a","conversion","convertAnchorElement","priority","importJSON","serializedNode","setFormat","format","setIndent","indent","setDirection","direction","ElementNode","exports","domNode","isHTMLAnchorElement","content","textContent","children","getAttribute","$applyNodeReplacement","$isLinkNode","AutoLinkNode","_LinkNode","_super2","apply","$createAutoLinkNode","_rel","$isAutoLinkNode","TOGGLE_LINK_COMMAND","createCommand","toggleLink","$getSelection","nodes","extract","forEach","parent","getParent","getChildren","i","insertBefore","remove","firstNode","$getLinkAncestor","prevParent","is","getPreviousSibling","insertAfter","$getAncestor","predicate"],"sources":["LinkNode.ts"],"sourcesContent":["/** @module @lexical/link */\n/**\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 */\n\nimport type {\n DOMConversionMap,\n DOMConversionOutput,\n EditorConfig,\n GridSelection,\n LexicalCommand,\n LexicalNode,\n NodeKey,\n NodeSelection,\n RangeSelection,\n SerializedElementNode\n} from \"lexical\";\n\nimport { addClassNamesToElement, isHTMLAnchorElement } from \"@lexical/utils\";\nimport {\n $applyNodeReplacement,\n $getSelection,\n $isElementNode,\n $isRangeSelection,\n createCommand,\n ElementNode,\n Spread\n} from \"lexical\";\n\nexport type LinkAttributes = {\n rel?: null | string;\n target?: null | string;\n title?: null | string;\n alt?: null | string;\n};\n\ndeclare global {\n interface HTMLAnchorElement {\n alt?: string;\n }\n}\n\nexport type SerializedLinkNode = Spread<\n {\n url: string;\n },\n Spread<LinkAttributes, SerializedElementNode>\n>;\n\nconst SUPPORTED_URL_PROTOCOLS = new Set([\"http:\", \"https:\", \"mailto:\", \"sms:\", \"tel:\"]);\n\n/** @noInheritDoc */\nexport class LinkNode extends ElementNode {\n /** @internal */\n __url: string;\n /** @internal */\n __target: null | string;\n /** @internal */\n __rel: null | string;\n /** @internal */\n __title: null | string;\n /** @internal */\n __alt: null | string;\n\n static override getType(): string {\n return \"link\";\n }\n\n static override clone(node: LinkNode): LinkNode {\n return new LinkNode(\n node.__url,\n { rel: node.__rel, target: node.__target, title: node.__title, alt: node.__alt },\n node.__key\n );\n }\n\n constructor(url: string, attributes: LinkAttributes = {}, key?: NodeKey) {\n super(key);\n const { target = null, rel = null, title = null, alt = null } = attributes;\n this.__url = url;\n this.__target = target;\n this.__rel = rel;\n this.__title = title;\n this.__alt = alt;\n }\n\n override createDOM(config: EditorConfig): HTMLAnchorElement {\n const element = document.createElement(\"a\") as HTMLAnchorElement;\n element.href = this.sanitizeUrl(this.__url);\n if (this.__target !== null) {\n element.target = this.__target;\n }\n if (this.__rel !== null) {\n element.rel = this.__rel;\n }\n if (this.__title !== null) {\n element.title = this.__title;\n }\n if (this.__alt !== null) {\n element.alt = this.__alt;\n }\n addClassNamesToElement(element, config.theme.link);\n return element;\n }\n\n override updateDOM(prevNode: LinkNode, anchor: HTMLAnchorElement): boolean {\n const url = this.__url;\n const target = this.__target;\n const rel = this.__rel;\n const title = this.__title;\n const alt = this.__alt;\n\n if (url !== prevNode.__url) {\n anchor.href = url;\n }\n\n if (target !== prevNode.__target) {\n if (target) {\n anchor.target = target;\n } else {\n anchor.removeAttribute(\"target\");\n }\n }\n\n if (rel !== prevNode.__rel) {\n if (rel) {\n anchor.rel = rel;\n } else {\n anchor.removeAttribute(\"rel\");\n }\n }\n\n if (title !== prevNode.__title) {\n if (title) {\n anchor.title = title;\n } else {\n anchor.removeAttribute(\"title\");\n }\n }\n\n if (alt !== prevNode.__alt) {\n if (alt) {\n anchor.alt = alt;\n } else {\n anchor.removeAttribute(\"alt\");\n }\n }\n\n return false;\n }\n\n static importDOM(): DOMConversionMap | null {\n return {\n a: () => ({\n conversion: convertAnchorElement,\n priority: 1\n })\n };\n }\n\n static override importJSON(\n serializedNode: SerializedLinkNode | SerializedAutoLinkNode\n ): LinkNode {\n const node = $createLinkNode(serializedNode.url, {\n rel: serializedNode.rel,\n target: serializedNode.target,\n title: serializedNode.title\n });\n node.setFormat(serializedNode.format);\n node.setIndent(serializedNode.indent);\n node.setDirection(serializedNode.direction);\n return node;\n }\n\n sanitizeUrl(url: string): string {\n try {\n const parsedUrl = new URL(url);\n // eslint-disable-next-line no-script-url\n if (!SUPPORTED_URL_PROTOCOLS.has(parsedUrl.protocol)) {\n return \"about:blank\";\n }\n } catch {\n return url;\n }\n return url;\n }\n\n override exportJSON(): SerializedLinkNode | SerializedAutoLinkNode {\n return {\n ...super.exportJSON(),\n rel: this.getRel(),\n target: this.getTarget(),\n title: this.getTitle(),\n type: \"link\",\n url: this.getURL(),\n version: 1\n };\n }\n\n getURL(): string {\n return this.getLatest().__url;\n }\n\n setURL(url: string): void {\n const writable = this.getWritable();\n writable.__url = url;\n }\n\n getTarget(): null | string {\n return this.getLatest().__target;\n }\n\n setTarget(target: null | string): void {\n const writable = this.getWritable();\n writable.__target = target;\n }\n\n getRel(): null | string {\n return this.getLatest().__rel;\n }\n\n setRel(rel: null | string): void {\n const writable = this.getWritable();\n writable.__rel = rel;\n }\n\n getTitle(): null | string {\n return this.getLatest().__title;\n }\n\n setTitle(title: null | string): void {\n const writable = this.getWritable();\n writable.__title = title;\n }\n\n override insertNewAfter(\n selection: RangeSelection,\n restoreSelection = true\n ): null | ElementNode {\n const element = this.getParentOrThrow().insertNewAfter(selection, restoreSelection);\n if ($isElementNode(element)) {\n const linkNode = $createLinkNode(this.__url, {\n rel: this.__rel,\n target: this.__target,\n title: this.__title\n });\n element.append(linkNode);\n return linkNode;\n }\n return null;\n }\n\n override canInsertTextBefore(): false {\n return false;\n }\n\n override canInsertTextAfter(): false {\n return false;\n }\n\n override canBeEmpty(): false {\n return false;\n }\n\n override isInline(): true {\n return true;\n }\n\n override extractWithChild(\n _: LexicalNode,\n selection: RangeSelection | NodeSelection | GridSelection\n ): boolean {\n if (!$isRangeSelection(selection)) {\n return false;\n }\n\n const anchorNode = selection.anchor.getNode();\n const focusNode = selection.focus.getNode();\n\n return (\n this.isParentOf(anchorNode) &&\n this.isParentOf(focusNode) &&\n selection.getTextContent().length > 0\n );\n }\n}\n\nfunction convertAnchorElement(domNode: Node): DOMConversionOutput {\n let node = null;\n if (isHTMLAnchorElement(domNode)) {\n const content = domNode.textContent;\n if ((content !== null && content !== \"\") || domNode.children.length > 0) {\n node = $createLinkNode(domNode.getAttribute(\"href\") || \"\", {\n rel: domNode.getAttribute(\"rel\"),\n target: domNode.getAttribute(\"target\"),\n title: domNode.getAttribute(\"title\"),\n alt: domNode.getAttribute(\"alt\")\n });\n }\n }\n return { node };\n}\n\n/**\n * Takes a URL and creates a LinkNode.\n * @param url - The URL the LinkNode should direct to.\n * @param attributes - Optional HTML a tag attributes { target, rel, title }\n * @returns The LinkNode.\n */\nexport function $createLinkNode(url: string, attributes?: LinkAttributes): LinkNode {\n return $applyNodeReplacement(new LinkNode(url, attributes));\n}\n\n/**\n * Determines if node is a LinkNode.\n * @param node - The node to be checked.\n * @returns true if node is a LinkNode, false otherwise.\n */\nexport function $isLinkNode(node: LexicalNode | null | undefined): node is LinkNode {\n return node instanceof LinkNode;\n}\n\nexport type SerializedAutoLinkNode = SerializedLinkNode;\n\n// Custom node type to override `canInsertTextAfter` that will\n// allow typing within the link\nexport class AutoLinkNode extends LinkNode {\n static override getType(): string {\n return \"autolink\";\n }\n\n static override clone(node: AutoLinkNode): AutoLinkNode {\n return new AutoLinkNode(\n node.__url,\n { rel: node.__rel, target: node.__target, title: node.__title },\n node.__key\n );\n }\n\n static override importJSON(serializedNode: SerializedAutoLinkNode): AutoLinkNode {\n const node = $createAutoLinkNode(serializedNode.url, {\n rel: serializedNode.rel,\n target: serializedNode.target,\n title: serializedNode.title\n });\n node.setFormat(serializedNode.format);\n node.setIndent(serializedNode.indent);\n node.setDirection(serializedNode.direction);\n return node;\n }\n\n static override importDOM(): null {\n // TODO: Should link node should handle the import over autolink?\n return null;\n }\n\n override exportJSON(): SerializedAutoLinkNode {\n return {\n ...super.exportJSON(),\n type: \"autolink\",\n version: 1\n };\n }\n\n override insertNewAfter(\n selection: RangeSelection,\n restoreSelection = true\n ): null | ElementNode {\n const element = this.getParentOrThrow().insertNewAfter(selection, restoreSelection);\n if ($isElementNode(element)) {\n const linkNode = $createAutoLinkNode(this.__url, {\n rel: this._rel,\n target: this.__target,\n title: this.__title\n });\n element.append(linkNode);\n return linkNode;\n }\n return null;\n }\n}\n\n/**\n * Takes a URL and creates an AutoLinkNode. AutoLinkNodes are generally automatically generated\n * during typing, which is especially useful when a button to generate a LinkNode is not practical.\n * @param url - The URL the LinkNode should direct to.\n * @param attributes - Optional HTML a tag attributes. { target, rel, title }\n * @returns The LinkNode.\n */\nexport function $createAutoLinkNode(url: string, attributes?: LinkAttributes): AutoLinkNode {\n return $applyNodeReplacement(new AutoLinkNode(url, attributes));\n}\n\n/**\n * Determines if node is an AutoLinkNode.\n * @param node - The node to be checked.\n * @returns true if node is an AutoLinkNode, false otherwise.\n */\nexport function $isAutoLinkNode(node: LexicalNode | null | undefined): node is AutoLinkNode {\n return node instanceof AutoLinkNode;\n}\n\nexport const TOGGLE_LINK_COMMAND: LexicalCommand<\n string | ({ url: string } & LinkAttributes) | null\n> = createCommand(\"TOGGLE_LINK_COMMAND\");\n\n/**\n * Generates or updates a LinkNode. It can also delete a LinkNode if the URL is null,\n * but saves any children and brings them up to the parent node.\n * @param url - The URL the link directs to.\n * @param attributes - Optional HTML a tag attributes. { target, rel, title }\n */\nexport function toggleLink(url: null | string, attributes: LinkAttributes = {}): void {\n const { target, title } = attributes;\n const rel = attributes.rel === undefined ? \"noreferrer\" : attributes.rel;\n const selection = $getSelection();\n\n if (!$isRangeSelection(selection)) {\n return;\n }\n const nodes = selection.extract();\n\n if (url === null) {\n // Remove LinkNodes\n nodes.forEach(node => {\n const parent = node.getParent();\n\n if ($isLinkNode(parent)) {\n const children = parent.getChildren();\n\n for (let i = 0; i < children.length; i++) {\n parent.insertBefore(children[i]);\n }\n\n parent.remove();\n }\n });\n } else {\n // Add or merge LinkNodes\n if (nodes.length === 1) {\n const firstNode = nodes[0];\n // if the first node is a LinkNode or if its\n // parent is a LinkNode, we update the URL, target and rel.\n const linkNode = $isLinkNode(firstNode) ? firstNode : $getLinkAncestor(firstNode);\n if (linkNode !== null) {\n linkNode.setURL(url);\n if (target !== undefined) {\n linkNode.setTarget(target);\n }\n if (rel !== null) {\n linkNode.setRel(rel);\n }\n if (title !== undefined) {\n linkNode.setTitle(title);\n }\n return;\n }\n }\n\n let prevParent: ElementNode | LinkNode | null = null;\n let linkNode: LinkNode | null = null;\n\n nodes.forEach(node => {\n const parent = node.getParent();\n\n if (\n parent === linkNode ||\n parent === null ||\n ($isElementNode(node) && !node.isInline())\n ) {\n return;\n }\n\n if ($isLinkNode(parent)) {\n linkNode = parent;\n parent.setURL(url);\n if (target !== undefined) {\n parent.setTarget(target);\n }\n if (rel !== null) {\n linkNode.setRel(rel);\n }\n if (title !== undefined) {\n linkNode.setTitle(title);\n }\n return;\n }\n\n if (!parent.is(prevParent)) {\n prevParent = parent;\n linkNode = $createLinkNode(url, { rel, target });\n\n if ($isLinkNode(parent)) {\n if (node.getPreviousSibling() === null) {\n parent.insertBefore(linkNode);\n } else {\n parent.insertAfter(linkNode);\n }\n } else {\n node.insertBefore(linkNode);\n }\n }\n\n if ($isLinkNode(node)) {\n if (node.is(linkNode)) {\n return;\n }\n if (linkNode !== null) {\n const children = node.getChildren();\n\n for (let i = 0; i < children.length; i++) {\n linkNode.append(children[i]);\n }\n }\n\n node.remove();\n return;\n }\n\n if (linkNode !== null) {\n linkNode.append(node);\n }\n });\n }\n}\n\nfunction $getLinkAncestor(node: LexicalNode): null | LexicalNode {\n return $getAncestor(node, $isLinkNode);\n}\n\nfunction $getAncestor<NodeType extends LexicalNode = LexicalNode>(\n node: LexicalNode,\n predicate: (ancestor: LexicalNode) => ancestor is NodeType\n): null | LexicalNode {\n let parent: null | LexicalNode = node;\n while (parent !== null && (parent = parent.getParent()) !== null && !predicate(parent)) {}\n return parent;\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["_utils","require","_lexical","SUPPORTED_URL_PROTOCOLS","Set","LinkNode","exports","_ElementNode","url","_this","attributes","arguments","length","undefined","key","_classCallCheck2","default","_callSuper2","_attributes$target","target","_attributes$rel","rel","_attributes$title","title","_attributes$alt","alt","__url","__target","__rel","__title","__alt","_inherits2","_createClass2","value","createDOM","config","element","document","createElement","href","sanitizeUrl","setAttribute","addClassNamesToElement","theme","link","updateDOM","prevNode","anchor","removeAttribute","parsedUrl","URL","has","protocol","_unused","exportJSON","_objectSpread2","_get2","_getPrototypeOf2","prototype","call","getRel","getTarget","getTitle","getAlt","type","getURL","version","getLatest","setURL","writable","getWritable","setTarget","setRel","setTitle","setAlt","text","insertNewAfter","selection","restoreSelection","getParentOrThrow","$isElementNode","linkNode","$createLinkNode","append","canInsertTextBefore","canInsertTextAfter","canBeEmpty","isInline","extractWithChild","_","$isRangeSelection","anchorNode","getNode","focusNode","focus","isParentOf","getTextContent","getType","clone","node","__key","importDOM","a","conversion","convertAnchorElement","priority","importJSON","serializedNode","setFormat","format","setIndent","indent","setDirection","direction","ElementNode","domNode","isHTMLAnchorElement","content","textContent","children","getAttribute","$applyNodeReplacement","$isLinkNode","AutoLinkNode","_LinkNode","$createAutoLinkNode","_rel","$isAutoLinkNode","TOGGLE_LINK_COMMAND","createCommand"],"sources":["LinkNode.ts"],"sourcesContent":["/** @module @lexical/link */\n/**\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 */\n\nimport type {\n DOMConversionMap,\n DOMConversionOutput,\n EditorConfig,\n GridSelection,\n LexicalCommand,\n LexicalNode,\n NodeKey,\n NodeSelection,\n RangeSelection,\n SerializedElementNode\n} from \"lexical\";\n\nimport { addClassNamesToElement, isHTMLAnchorElement } from \"@lexical/utils\";\nimport {\n $applyNodeReplacement,\n $isElementNode,\n $isRangeSelection,\n createCommand,\n ElementNode,\n Spread\n} from \"lexical\";\n\nexport type LinkAttributes = {\n rel?: null | string;\n target?: null | string;\n title?: null | string;\n alt?: null | string;\n};\n\ndeclare global {\n interface HTMLAnchorElement {\n alt?: string;\n }\n}\n\nexport type SerializedLinkNode = Spread<\n {\n url: string;\n },\n Spread<LinkAttributes, SerializedElementNode>\n>;\n\nconst SUPPORTED_URL_PROTOCOLS = new Set([\"http:\", \"https:\", \"mailto:\", \"sms:\", \"tel:\"]);\n\n/** @noInheritDoc */\nexport class LinkNode extends ElementNode {\n /** @internal */\n __url: string;\n /** @internal */\n __target: null | string;\n /** @internal */\n __rel: null | string;\n /** @internal */\n __title: null | string;\n /** @internal */\n __alt: null | string;\n\n static override getType(): string {\n return \"link\";\n }\n\n static override clone(node: LinkNode): LinkNode {\n return new LinkNode(\n node.__url,\n { rel: node.__rel, target: node.__target, title: node.__title, alt: node.__alt },\n node.__key\n );\n }\n\n constructor(url: string, attributes: LinkAttributes = {}, key?: NodeKey) {\n super(key);\n const { target = null, rel = null, title = null, alt = null } = attributes;\n this.__url = url;\n this.__target = target;\n this.__rel = rel;\n this.__title = title;\n this.__alt = alt;\n }\n\n override createDOM(config: EditorConfig): HTMLAnchorElement {\n const element = document.createElement(\"a\") as HTMLAnchorElement;\n element.href = this.sanitizeUrl(this.__url);\n if (this.__target !== null) {\n element.target = this.__target;\n }\n if (this.__rel !== null) {\n element.rel = this.__rel;\n }\n if (this.__title !== null) {\n element.title = this.__title;\n }\n if (this.__alt) {\n element.setAttribute(\"alt\", this.__alt);\n }\n addClassNamesToElement(element, config.theme.link);\n return element;\n }\n\n override updateDOM(prevNode: LinkNode, anchor: HTMLAnchorElement): boolean {\n const url = this.__url;\n const target = this.__target;\n const rel = this.__rel;\n const title = this.__title;\n const alt = this.__alt;\n\n if (url !== prevNode.__url) {\n anchor.href = url;\n }\n\n if (target !== prevNode.__target) {\n if (target) {\n anchor.target = target;\n } else {\n anchor.removeAttribute(\"target\");\n }\n }\n\n if (rel !== prevNode.__rel) {\n if (rel) {\n anchor.rel = rel;\n } else {\n anchor.removeAttribute(\"rel\");\n }\n }\n\n if (title !== prevNode.__title) {\n if (title) {\n anchor.title = title;\n } else {\n anchor.removeAttribute(\"title\");\n }\n }\n\n if (alt !== prevNode.__alt) {\n if (alt) {\n anchor.setAttribute(\"alt\", alt);\n } else {\n anchor.removeAttribute(\"alt\");\n }\n }\n\n return false;\n }\n\n static importDOM(): DOMConversionMap | null {\n return {\n a: () => ({\n conversion: convertAnchorElement,\n priority: 1\n })\n };\n }\n\n static override importJSON(\n serializedNode: SerializedLinkNode | SerializedAutoLinkNode\n ): LinkNode {\n const node = $createLinkNode(serializedNode.url, {\n rel: serializedNode.rel,\n target: serializedNode.target,\n title: serializedNode.title,\n alt: serializedNode.alt\n });\n node.setFormat(serializedNode.format);\n node.setIndent(serializedNode.indent);\n node.setDirection(serializedNode.direction);\n return node;\n }\n\n sanitizeUrl(url: string): string {\n try {\n const parsedUrl = new URL(url);\n // eslint-disable-next-line no-script-url\n if (!SUPPORTED_URL_PROTOCOLS.has(parsedUrl.protocol)) {\n return \"about:blank\";\n }\n } catch {\n return url;\n }\n return url;\n }\n\n override exportJSON(): SerializedLinkNode | SerializedAutoLinkNode {\n return {\n ...super.exportJSON(),\n rel: this.getRel(),\n target: this.getTarget(),\n title: this.getTitle(),\n alt: this.getAlt(),\n type: \"link\",\n url: this.getURL(),\n version: 1\n };\n }\n\n getURL(): string {\n return this.getLatest().__url;\n }\n\n setURL(url: string): void {\n const writable = this.getWritable();\n writable.__url = url;\n }\n\n getTarget(): null | string {\n return this.getLatest().__target;\n }\n\n setTarget(target: null | string): void {\n const writable = this.getWritable();\n writable.__target = target;\n }\n\n getRel(): null | string {\n return this.getLatest().__rel;\n }\n\n setRel(rel: null | string): void {\n const writable = this.getWritable();\n writable.__rel = rel;\n }\n\n getTitle(): null | string {\n return this.getLatest().__title;\n }\n\n setTitle(title: null | string): void {\n const writable = this.getWritable();\n writable.__title = title;\n }\n\n getAlt(): string | null {\n return this.__alt;\n }\n\n setAlt(text: string | null): void {\n const writable = super.getWritable();\n writable.__alt = text;\n }\n\n override insertNewAfter(\n selection: RangeSelection,\n restoreSelection = true\n ): null | ElementNode {\n const element = this.getParentOrThrow().insertNewAfter(selection, restoreSelection);\n if ($isElementNode(element)) {\n const linkNode = $createLinkNode(this.__url, {\n rel: this.__rel,\n target: this.__target,\n title: this.__title,\n alt: this.__alt\n });\n element.append(linkNode);\n return linkNode;\n }\n return null;\n }\n\n override canInsertTextBefore(): false {\n return false;\n }\n\n override canInsertTextAfter(): false {\n return false;\n }\n\n override canBeEmpty(): false {\n return false;\n }\n\n override isInline(): true {\n return true;\n }\n\n override extractWithChild(\n _: LexicalNode,\n selection: RangeSelection | NodeSelection | GridSelection\n ): boolean {\n if (!$isRangeSelection(selection)) {\n return false;\n }\n\n const anchorNode = selection.anchor.getNode();\n const focusNode = selection.focus.getNode();\n\n return (\n this.isParentOf(anchorNode) &&\n this.isParentOf(focusNode) &&\n selection.getTextContent().length > 0\n );\n }\n}\n\nfunction convertAnchorElement(domNode: Node): DOMConversionOutput {\n let node = null;\n if (isHTMLAnchorElement(domNode)) {\n const content = domNode.textContent;\n if ((content !== null && content !== \"\") || domNode.children.length > 0) {\n node = $createLinkNode(domNode.getAttribute(\"href\") || \"\", {\n rel: domNode.getAttribute(\"rel\"),\n target: domNode.getAttribute(\"target\"),\n title: domNode.getAttribute(\"title\"),\n alt: domNode.getAttribute(\"alt\")\n });\n }\n }\n return { node };\n}\n\n/**\n * Takes a URL and creates a LinkNode.\n * @param url - The URL the LinkNode should direct to.\n * @param attributes - Optional HTML a tag attributes { target, rel, title }\n * @returns The LinkNode.\n */\nexport function $createLinkNode(url: string, attributes?: LinkAttributes): LinkNode {\n return $applyNodeReplacement(new LinkNode(url, attributes));\n}\n\n/**\n * Determines if node is a LinkNode.\n * @param node - The node to be checked.\n * @returns true if node is a LinkNode, false otherwise.\n */\nexport function $isLinkNode(node: LexicalNode | null | undefined): node is LinkNode {\n return node instanceof LinkNode;\n}\n\nexport type SerializedAutoLinkNode = SerializedLinkNode;\n\n// Custom node type to override `canInsertTextAfter` that will\n// allow typing within the link\nexport class AutoLinkNode extends LinkNode {\n static override getType(): string {\n return \"autolink\";\n }\n\n static override clone(node: AutoLinkNode): AutoLinkNode {\n return new AutoLinkNode(\n node.__url,\n { rel: node.__rel, target: node.__target, title: node.__title },\n node.__key\n );\n }\n\n static override importJSON(serializedNode: SerializedAutoLinkNode): AutoLinkNode {\n const node = $createAutoLinkNode(serializedNode.url, {\n rel: serializedNode.rel,\n target: serializedNode.target,\n title: serializedNode.title\n });\n node.setFormat(serializedNode.format);\n node.setIndent(serializedNode.indent);\n node.setDirection(serializedNode.direction);\n return node;\n }\n\n static override importDOM(): null {\n // TODO: Should link node should handle the import over autolink?\n return null;\n }\n\n override exportJSON(): SerializedAutoLinkNode {\n return {\n ...super.exportJSON(),\n type: \"autolink\",\n version: 1\n };\n }\n\n override insertNewAfter(\n selection: RangeSelection,\n restoreSelection = true\n ): null | ElementNode {\n const element = this.getParentOrThrow().insertNewAfter(selection, restoreSelection);\n if ($isElementNode(element)) {\n const linkNode = $createAutoLinkNode(this.__url, {\n rel: this._rel,\n target: this.__target,\n title: this.__title\n });\n element.append(linkNode);\n return linkNode;\n }\n return null;\n }\n}\n\n/**\n * Takes a URL and creates an AutoLinkNode. AutoLinkNodes are generally automatically generated\n * during typing, which is especially useful when a button to generate a LinkNode is not practical.\n * @param url - The URL the LinkNode should direct to.\n * @param attributes - Optional HTML a tag attributes. { target, rel, title }\n * @returns The LinkNode.\n */\nexport function $createAutoLinkNode(url: string, attributes?: LinkAttributes): AutoLinkNode {\n return $applyNodeReplacement(new AutoLinkNode(url, attributes));\n}\n\n/**\n * Determines if node is an AutoLinkNode.\n * @param node - The node to be checked.\n * @returns true if node is an AutoLinkNode, false otherwise.\n */\nexport function $isAutoLinkNode(node: LexicalNode | null | undefined): node is AutoLinkNode {\n return node instanceof AutoLinkNode;\n}\n\nexport const TOGGLE_LINK_COMMAND: LexicalCommand<\n string | ({ url: string } & LinkAttributes) | null\n> = createCommand(\"TOGGLE_LINK_COMMAND\");\n"],"mappings":"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","ignoreList":[]}
package/ListItemNode.js CHANGED
@@ -11,10 +11,10 @@ var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers
11
11
  var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
12
12
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
13
13
  var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
14
+ var _callSuper2 = _interopRequireDefault(require("@babel/runtime/helpers/callSuper"));
14
15
  var _get2 = _interopRequireDefault(require("@babel/runtime/helpers/get"));
15
16
  var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
16
17
  var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
17
- var _createSuper2 = _interopRequireDefault(require("@babel/runtime/helpers/createSuper"));
18
18
  var _lexical = require("lexical");
19
19
  var _ListNode = require("./ListNode");
20
20
  var _utils = require("@lexical/utils");
@@ -22,18 +22,17 @@ var _formatList = require("./utils/formatList");
22
22
  var _ParagraphNode = require("./ParagraphNode");
23
23
  var _listNode = require("./utils/listNode");
24
24
  /** @noInheritDoc */
25
- var ListItemNode = /*#__PURE__*/function (_ElementNode) {
26
- (0, _inherits2.default)(ListItemNode, _ElementNode);
27
- var _super = (0, _createSuper2.default)(ListItemNode);
25
+ var ListItemNode = exports.ListItemNode = /*#__PURE__*/function (_ElementNode) {
28
26
  function ListItemNode(value, checked, key) {
29
27
  var _this;
30
28
  (0, _classCallCheck2.default)(this, ListItemNode);
31
- _this = _super.call(this, key);
29
+ _this = (0, _callSuper2.default)(this, ListItemNode, [key]);
32
30
  _this.__value = value === undefined ? 1 : value;
33
31
  _this.__checked = checked;
34
32
  return _this;
35
33
  }
36
- (0, _createClass2.default)(ListItemNode, [{
34
+ (0, _inherits2.default)(ListItemNode, _ElementNode);
35
+ return (0, _createClass2.default)(ListItemNode, [{
37
36
  key: "createDOM",
38
37
  value: function createDOM(config) {
39
38
  var element = document.createElement("li");
@@ -358,9 +357,7 @@ var ListItemNode = /*#__PURE__*/function (_ElementNode) {
358
357
  return node;
359
358
  }
360
359
  }]);
361
- return ListItemNode;
362
360
  }(_lexical.ElementNode);
363
- exports.ListItemNode = ListItemNode;
364
361
  function $setListItemThemeClassNames(dom, editorThemeClasses, node) {
365
362
  var classesToAdd = [];
366
363
  var classesToRemove = [];
@@ -1 +1 @@
1
- {"version":3,"names":["_lexical","require","_ListNode","_utils","_formatList","_ParagraphNode","_listNode","ListItemNode","_ElementNode","_inherits2","default","_super","_createSuper2","value","checked","key","_this","_classCallCheck2","call","__value","undefined","__checked","_createClass2","createDOM","config","element","document","createElement","parent","getParent","$isListNode","getListType","updateListItemChecked","$setListItemThemeClassNames","theme","updateDOM","prevNode","dom","exportJSON","_objectSpread2","_get2","_getPrototypeOf2","prototype","getChecked","type","getValue","version","append","i","arguments","length","node","$isElementNode","canMergeWith","children","getChildren","apply","_toConsumableArray2","remove","replace","replaceWithNode","includeChildren","$isListItemNode","setIndent","list","getParentOrThrow","__first","getKey","insertBefore","__last","insertAfter","newList","$createListNode","nextSibling","getNextSibling","nodeToAppend","forEach","child","getChildrenSize","listNode","console","log","siblings","getNextSiblings","after","afterListNode","updateChildrenListItemValue","newListNode","sibling","preserveEmptyParent","prevSibling","getPreviousSibling","isNestedListNode","mergeLists","getFirstChild","insertNewAfter","newElement","$createListItemNode","collapseAtStart","selection","paragraph","$createParagraphNode","listNodeParent","isIndented","select","anchor","focus","getNode","is","set","offset","self","getLatest","setValue","getWritable","setChecked","getIndent","__indent","indentLevel","indent","currentIndent","$handleIndent","$handleOutdent","canIndent","nodeToInsert","canInsertAfter","canReplaceWith","replacement","$isParagraphNode","extractWithChild","$isRangeSelection","anchorNode","focusNode","isParentOf","getTextContent","getType","clone","__key","importDOM","li","conversion","convertListItemElement","priority","importJSON","serializedNode","setFormat","format","setDirection","direction","ElementNode","exports","editorThemeClasses","classesToAdd","classesToRemove","listTheme","listItemClassName","listitem","nestedListItemClassName","nested","listItemClasses","split","push","parentNode","isCheckList","listitemUnchecked","listitemChecked","nestedListItemClasses","some","removeClassNamesFromElement","concat","addClassNamesToElement","listItemNode","prevListItemNode","removeAttribute","setAttribute"],"sources":["ListItemNode.ts"],"sourcesContent":["import {\n $isElementNode,\n $isRangeSelection,\n DOMConversionMap,\n DOMConversionOutput,\n EditorConfig,\n EditorThemeClasses,\n ElementNode,\n GridSelection,\n LexicalNode,\n NodeKey,\n NodeSelection,\n ParagraphNode,\n RangeSelection,\n SerializedElementNode,\n Spread\n} from \"lexical\";\nimport { $createListNode, $isListNode, ListNode } from \"~/ListNode\";\nimport { addClassNamesToElement, removeClassNamesFromElement } from \"@lexical/utils\";\nimport {\n $handleIndent,\n $handleOutdent,\n mergeLists,\n updateChildrenListItemValue\n} from \"~/utils/formatList\";\nimport { $createParagraphNode, $isParagraphNode } from \"~/ParagraphNode\";\nimport { isNestedListNode } from \"~/utils/listNode\";\n\nexport type SerializedWebinyListItemNode = Spread<\n {\n checked: boolean | undefined;\n type: \"webiny-listitem\";\n value: number;\n version: 1;\n },\n SerializedElementNode\n>;\n\n/** @noInheritDoc */\nexport class ListItemNode extends ElementNode {\n /** @internal */\n __value: number;\n /** @internal */\n __checked?: boolean;\n\n static override getType(): string {\n return \"webiny-listitem\";\n }\n\n static override clone(node: ListItemNode): ListItemNode {\n return new ListItemNode(node.__value, node.__checked, node.__key);\n }\n\n constructor(value?: number, checked?: boolean, key?: NodeKey) {\n super(key);\n this.__value = value === undefined ? 1 : value;\n this.__checked = checked;\n }\n\n override createDOM(config: EditorConfig): HTMLElement {\n const element = document.createElement(\"li\");\n const parent = this.getParent();\n if ($isListNode(parent) && parent.getListType() === \"check\") {\n updateListItemChecked(element, this, null, parent);\n }\n element.value = this.__value;\n $setListItemThemeClassNames(element, config.theme, this);\n\n return element;\n }\n\n override updateDOM(prevNode: ListItemNode, dom: HTMLElement, config: EditorConfig): boolean {\n const parent = this.getParent();\n if ($isListNode(parent) && parent.getListType() === \"check\") {\n updateListItemChecked(dom, this, prevNode, parent);\n }\n // @ts-expect-error - this is always HTMLListItemElement\n dom.value = this.__value;\n $setListItemThemeClassNames(dom, config.theme, this);\n\n return false;\n }\n\n static importDOM(): DOMConversionMap | null {\n return {\n li: () => ({\n conversion: convertListItemElement,\n priority: 0\n })\n };\n }\n\n static override importJSON(serializedNode: SerializedWebinyListItemNode): ListItemNode {\n const node = new ListItemNode(serializedNode.value, serializedNode.checked);\n node.setFormat(serializedNode.format);\n node.setIndent(serializedNode.indent);\n node.setDirection(serializedNode.direction);\n return node;\n }\n\n override exportJSON(): SerializedWebinyListItemNode {\n return {\n ...super.exportJSON(),\n checked: this.getChecked(),\n type: \"webiny-listitem\",\n value: this.getValue(),\n version: 1\n };\n }\n\n override append(...nodes: LexicalNode[]): this {\n for (let i = 0; i < nodes.length; i++) {\n const node = nodes[i];\n\n if ($isElementNode(node) && this.canMergeWith(node)) {\n const children = node.getChildren();\n this.append(...children);\n node.remove();\n } else {\n super.append(node);\n }\n }\n\n return this;\n }\n\n override replace<N extends LexicalNode>(replaceWithNode: N, includeChildren?: boolean): N {\n if ($isListItemNode(replaceWithNode)) {\n return super.replace(replaceWithNode);\n }\n this.setIndent(0);\n const list = this.getParentOrThrow();\n if (!$isListNode(list)) {\n return replaceWithNode;\n }\n if (list.__first === this.getKey()) {\n list.insertBefore(replaceWithNode);\n } else if (list.__last === this.getKey()) {\n list.insertAfter(replaceWithNode);\n } else {\n // Split the list\n const newList = $createListNode(list.getListType());\n let nextSibling = this.getNextSibling();\n while (nextSibling) {\n const nodeToAppend = nextSibling;\n nextSibling = nextSibling.getNextSibling();\n newList.append(nodeToAppend);\n }\n list.insertAfter(replaceWithNode);\n replaceWithNode.insertAfter(newList);\n }\n if (includeChildren) {\n this.getChildren().forEach((child: LexicalNode) => {\n replaceWithNode.append(child);\n });\n }\n this.remove();\n if (list.getChildrenSize() === 0) {\n list.remove();\n }\n return replaceWithNode;\n }\n\n override insertAfter(node: LexicalNode): LexicalNode {\n const listNode = this.getParentOrThrow();\n\n if (!$isListNode(listNode)) {\n console.log(\"insertAfter: webiny list node is not parent of list item node\");\n return listNode;\n }\n\n const siblings = this.getNextSiblings();\n\n if ($isListItemNode(node)) {\n const after = super.insertAfter(node);\n const afterListNode = node.getParentOrThrow();\n\n if ($isListNode(afterListNode)) {\n updateChildrenListItemValue(afterListNode);\n }\n\n return after;\n }\n\n // Attempt to merge if the list is of the same type.\n\n if ($isListNode(node) && node.getListType() === listNode.getListType()) {\n let child = node;\n const children = node.getChildren<ListNode>();\n\n for (let i = children.length - 1; i >= 0; i--) {\n child = children[i];\n\n this.insertAfter(child);\n }\n\n return child;\n }\n\n // Otherwise, split the list\n // Split the lists and insert the node in between them\n listNode.insertAfter(node);\n\n if (siblings.length !== 0) {\n const newListNode = $createListNode(listNode.getListType());\n\n siblings.forEach(sibling => newListNode.append(sibling));\n\n node.insertAfter(newListNode);\n }\n\n return node;\n }\n\n override remove(preserveEmptyParent?: boolean): void {\n const prevSibling = this.getPreviousSibling();\n const nextSibling = this.getNextSibling();\n super.remove(preserveEmptyParent);\n\n if (\n prevSibling &&\n nextSibling &&\n isNestedListNode(prevSibling) &&\n isNestedListNode(nextSibling)\n ) {\n mergeLists(prevSibling.getFirstChild(), nextSibling.getFirstChild());\n nextSibling.remove();\n } else if (nextSibling) {\n const parent = nextSibling.getParent();\n\n if ($isListNode(parent)) {\n updateChildrenListItemValue(parent);\n }\n }\n }\n\n override insertNewAfter(): ListItemNode | ParagraphNode {\n const newElement = $createListItemNode(this.__checked == null ? undefined : false);\n this.insertAfter(newElement);\n\n return newElement;\n }\n\n override collapseAtStart(selection: RangeSelection): true {\n const paragraph = $createParagraphNode();\n const children = this.getChildren();\n children.forEach(child => paragraph.append(child));\n const listNode = this.getParentOrThrow();\n const listNodeParent = listNode.getParentOrThrow();\n const isIndented = $isListItemNode(listNodeParent);\n\n if (listNode.getChildrenSize() === 1) {\n if (isIndented) {\n // if the list node is nested, we just want to remove it,\n // effectively unindenting it.\n listNode.remove();\n listNodeParent.select();\n } else {\n listNode.replace(paragraph);\n // If we have selection on the list item, we'll need to move it\n // to the paragraph\n const anchor = selection.anchor;\n const focus = selection.focus;\n const key = paragraph.getKey();\n\n if (anchor.type === \"element\" && anchor.getNode().is(this)) {\n anchor.set(key, anchor.offset, \"element\");\n }\n\n if (focus.type === \"element\" && focus.getNode().is(this)) {\n focus.set(key, focus.offset, \"element\");\n }\n }\n } else {\n listNode.insertBefore(paragraph);\n this.remove();\n }\n\n return true;\n }\n\n getValue(): number {\n const self = this.getLatest();\n\n return self.__value;\n }\n\n setValue(value: number): void {\n const self = this.getWritable();\n self.__value = value;\n }\n\n getChecked(): boolean | undefined {\n const self = this.getLatest();\n\n return self.__checked;\n }\n\n setChecked(checked?: boolean): void {\n const self = this.getWritable();\n self.__checked = checked;\n }\n\n override getIndent(): number {\n // If we don't have a parent, we are likely serializing\n const parent = this.getParent();\n if (parent === null) {\n return this.getLatest().__indent;\n }\n // ListItemNode should always have a ListNode for a parent.\n let listNodeParent = parent.getParentOrThrow();\n let indentLevel = 0;\n while ($isListItemNode(listNodeParent)) {\n listNodeParent = listNodeParent.getParentOrThrow().getParentOrThrow();\n indentLevel++;\n }\n\n return indentLevel;\n }\n\n override setIndent(indent: number): this {\n let currentIndent = this.getIndent();\n while (currentIndent !== indent) {\n if (currentIndent < indent) {\n $handleIndent([this]);\n currentIndent++;\n } else {\n $handleOutdent([this]);\n currentIndent--;\n }\n }\n\n return this;\n }\n\n override canIndent(): false {\n // Indent/outdent is handled specifically in the RichText logic.\n\n return false;\n }\n\n override insertBefore(nodeToInsert: LexicalNode): LexicalNode {\n if ($isListItemNode(nodeToInsert)) {\n const parent = this.getParentOrThrow();\n\n if ($isListNode(parent)) {\n const siblings = this.getNextSiblings();\n updateChildrenListItemValue(parent, siblings);\n }\n }\n\n return super.insertBefore(nodeToInsert);\n }\n\n override canInsertAfter(node: LexicalNode): boolean {\n return $isListNode(node);\n }\n\n override canReplaceWith(replacement: LexicalNode): boolean {\n return $isListItemNode(replacement);\n }\n\n override canMergeWith(node: LexicalNode): boolean {\n return $isParagraphNode(node) || $isListItemNode(node);\n }\n\n override extractWithChild(\n child: LexicalNode,\n selection: RangeSelection | NodeSelection | GridSelection\n ): boolean {\n if (!$isRangeSelection(selection)) {\n return false;\n }\n\n const anchorNode = selection.anchor.getNode();\n const focusNode = selection.focus.getNode();\n\n return (\n this.isParentOf(anchorNode) &&\n this.isParentOf(focusNode) &&\n this.getTextContent().length === selection.getTextContent().length\n );\n }\n}\n\nfunction $setListItemThemeClassNames(\n dom: HTMLElement,\n editorThemeClasses: EditorThemeClasses,\n node: ListItemNode\n): void {\n const classesToAdd = [];\n const classesToRemove = [];\n const listTheme = editorThemeClasses.list;\n const listItemClassName = listTheme ? listTheme.listitem : undefined;\n let nestedListItemClassName;\n\n if (listTheme && listTheme.nested) {\n nestedListItemClassName = listTheme.nested.listitem;\n }\n\n if (listItemClassName !== undefined) {\n const listItemClasses = listItemClassName.split(\" \");\n classesToAdd.push(...listItemClasses);\n }\n\n if (listTheme) {\n const parentNode = node.getParent();\n const isCheckList = $isListNode(parentNode) && parentNode?.getListType() === \"check\";\n const checked = node.getChecked();\n\n if (!isCheckList || checked) {\n classesToRemove.push(listTheme.listitemUnchecked);\n }\n\n if (!isCheckList || !checked) {\n classesToRemove.push(listTheme.listitemChecked);\n }\n\n if (isCheckList) {\n classesToAdd.push(checked ? listTheme.listitemChecked : listTheme.listitemUnchecked);\n }\n }\n\n if (nestedListItemClassName !== undefined) {\n const nestedListItemClasses = nestedListItemClassName.split(\" \");\n\n if (node.getChildren().some(child => $isListNode(child))) {\n classesToAdd.push(...nestedListItemClasses);\n } else {\n classesToRemove.push(...nestedListItemClasses);\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\nfunction updateListItemChecked(\n dom: HTMLElement,\n listItemNode: ListItemNode,\n prevListItemNode: ListItemNode | null,\n listNode: ListNode\n): void {\n const isCheckList = listNode.getListType() === \"check\";\n\n if (isCheckList) {\n // Only add attributes for leaf list items\n if ($isListNode(listItemNode.getFirstChild())) {\n dom.removeAttribute(\"role\");\n dom.removeAttribute(\"tabIndex\");\n dom.removeAttribute(\"aria-checked\");\n } else {\n dom.setAttribute(\"role\", \"checkbox\");\n dom.setAttribute(\"tabIndex\", \"-1\");\n\n if (!prevListItemNode || listItemNode.__checked !== prevListItemNode.__checked) {\n dom.setAttribute(\"aria-checked\", listItemNode.getChecked() ? \"true\" : \"false\");\n }\n }\n } else {\n // Clean up checked state\n if (listItemNode.getChecked() != null) {\n listItemNode.setChecked(undefined);\n }\n }\n}\n\nfunction convertListItemElement(): DOMConversionOutput {\n return { node: $createListItemNode() };\n}\n\nexport function $createListItemNode(checked?: boolean): ListItemNode {\n return new ListItemNode(undefined, checked);\n}\n\nexport function $isListItemNode(node: LexicalNode | null | undefined): node is ListItemNode {\n return node instanceof ListItemNode;\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["_lexical","require","_ListNode","_utils","_formatList","_ParagraphNode","_listNode","ListItemNode","exports","_ElementNode","value","checked","key","_this","_classCallCheck2","default","_callSuper2","__value","undefined","__checked","_inherits2","_createClass2","createDOM","config","element","document","createElement","parent","getParent","$isListNode","getListType","updateListItemChecked","$setListItemThemeClassNames","theme","updateDOM","prevNode","dom","exportJSON","_objectSpread2","_get2","_getPrototypeOf2","prototype","call","getChecked","type","getValue","version","append","i","arguments","length","node","$isElementNode","canMergeWith","children","getChildren","apply","_toConsumableArray2","remove","replace","replaceWithNode","includeChildren","$isListItemNode","setIndent","list","getParentOrThrow","__first","getKey","insertBefore","__last","insertAfter","newList","$createListNode","nextSibling","getNextSibling","nodeToAppend","forEach","child","getChildrenSize","listNode","console","log","siblings","getNextSiblings","after","afterListNode","updateChildrenListItemValue","newListNode","sibling","preserveEmptyParent","prevSibling","getPreviousSibling","isNestedListNode","mergeLists","getFirstChild","insertNewAfter","newElement","$createListItemNode","collapseAtStart","selection","paragraph","$createParagraphNode","listNodeParent","isIndented","select","anchor","focus","getNode","is","set","offset","self","getLatest","setValue","getWritable","setChecked","getIndent","__indent","indentLevel","indent","currentIndent","$handleIndent","$handleOutdent","canIndent","nodeToInsert","canInsertAfter","canReplaceWith","replacement","$isParagraphNode","extractWithChild","$isRangeSelection","anchorNode","focusNode","isParentOf","getTextContent","getType","clone","__key","importDOM","li","conversion","convertListItemElement","priority","importJSON","serializedNode","setFormat","format","setDirection","direction","ElementNode","editorThemeClasses","classesToAdd","classesToRemove","listTheme","listItemClassName","listitem","nestedListItemClassName","nested","listItemClasses","split","push","parentNode","isCheckList","listitemUnchecked","listitemChecked","nestedListItemClasses","some","removeClassNamesFromElement","concat","addClassNamesToElement","listItemNode","prevListItemNode","removeAttribute","setAttribute"],"sources":["ListItemNode.ts"],"sourcesContent":["import {\n $isElementNode,\n $isRangeSelection,\n DOMConversionMap,\n DOMConversionOutput,\n EditorConfig,\n EditorThemeClasses,\n ElementNode,\n GridSelection,\n LexicalNode,\n NodeKey,\n NodeSelection,\n ParagraphNode,\n RangeSelection,\n SerializedElementNode,\n Spread\n} from \"lexical\";\nimport { $createListNode, $isListNode, ListNode } from \"~/ListNode\";\nimport { addClassNamesToElement, removeClassNamesFromElement } from \"@lexical/utils\";\nimport {\n $handleIndent,\n $handleOutdent,\n mergeLists,\n updateChildrenListItemValue\n} from \"~/utils/formatList\";\nimport { $createParagraphNode, $isParagraphNode } from \"~/ParagraphNode\";\nimport { isNestedListNode } from \"~/utils/listNode\";\n\nexport type SerializedWebinyListItemNode = Spread<\n {\n checked: boolean | undefined;\n type: \"webiny-listitem\";\n value: number;\n version: 1;\n },\n SerializedElementNode\n>;\n\n/** @noInheritDoc */\nexport class ListItemNode extends ElementNode {\n /** @internal */\n __value: number;\n /** @internal */\n __checked?: boolean;\n\n static override getType(): string {\n return \"webiny-listitem\";\n }\n\n static override clone(node: ListItemNode): ListItemNode {\n return new ListItemNode(node.__value, node.__checked, node.__key);\n }\n\n constructor(value?: number, checked?: boolean, key?: NodeKey) {\n super(key);\n this.__value = value === undefined ? 1 : value;\n this.__checked = checked;\n }\n\n override createDOM(config: EditorConfig): HTMLElement {\n const element = document.createElement(\"li\");\n const parent = this.getParent();\n if ($isListNode(parent) && parent.getListType() === \"check\") {\n updateListItemChecked(element, this, null, parent);\n }\n element.value = this.__value;\n $setListItemThemeClassNames(element, config.theme, this);\n\n return element;\n }\n\n override updateDOM(prevNode: ListItemNode, dom: HTMLElement, config: EditorConfig): boolean {\n const parent = this.getParent();\n if ($isListNode(parent) && parent.getListType() === \"check\") {\n updateListItemChecked(dom, this, prevNode, parent);\n }\n // @ts-expect-error - this is always HTMLListItemElement\n dom.value = this.__value;\n $setListItemThemeClassNames(dom, config.theme, this);\n\n return false;\n }\n\n static importDOM(): DOMConversionMap | null {\n return {\n li: () => ({\n conversion: convertListItemElement,\n priority: 0\n })\n };\n }\n\n static override importJSON(serializedNode: SerializedWebinyListItemNode): ListItemNode {\n const node = new ListItemNode(serializedNode.value, serializedNode.checked);\n node.setFormat(serializedNode.format);\n node.setIndent(serializedNode.indent);\n node.setDirection(serializedNode.direction);\n return node;\n }\n\n override exportJSON(): SerializedWebinyListItemNode {\n return {\n ...super.exportJSON(),\n checked: this.getChecked(),\n type: \"webiny-listitem\",\n value: this.getValue(),\n version: 1\n };\n }\n\n override append(...nodes: LexicalNode[]): this {\n for (let i = 0; i < nodes.length; i++) {\n const node = nodes[i];\n\n if ($isElementNode(node) && this.canMergeWith(node)) {\n const children = node.getChildren();\n this.append(...children);\n node.remove();\n } else {\n super.append(node);\n }\n }\n\n return this;\n }\n\n override replace<N extends LexicalNode>(replaceWithNode: N, includeChildren?: boolean): N {\n if ($isListItemNode(replaceWithNode)) {\n return super.replace(replaceWithNode);\n }\n this.setIndent(0);\n const list = this.getParentOrThrow();\n if (!$isListNode(list)) {\n return replaceWithNode;\n }\n if (list.__first === this.getKey()) {\n list.insertBefore(replaceWithNode);\n } else if (list.__last === this.getKey()) {\n list.insertAfter(replaceWithNode);\n } else {\n // Split the list\n const newList = $createListNode(list.getListType());\n let nextSibling = this.getNextSibling();\n while (nextSibling) {\n const nodeToAppend = nextSibling;\n nextSibling = nextSibling.getNextSibling();\n newList.append(nodeToAppend);\n }\n list.insertAfter(replaceWithNode);\n replaceWithNode.insertAfter(newList);\n }\n if (includeChildren) {\n this.getChildren().forEach((child: LexicalNode) => {\n replaceWithNode.append(child);\n });\n }\n this.remove();\n if (list.getChildrenSize() === 0) {\n list.remove();\n }\n return replaceWithNode;\n }\n\n override insertAfter(node: LexicalNode): LexicalNode {\n const listNode = this.getParentOrThrow();\n\n if (!$isListNode(listNode)) {\n console.log(\"insertAfter: webiny list node is not parent of list item node\");\n return listNode;\n }\n\n const siblings = this.getNextSiblings();\n\n if ($isListItemNode(node)) {\n const after = super.insertAfter(node);\n const afterListNode = node.getParentOrThrow();\n\n if ($isListNode(afterListNode)) {\n updateChildrenListItemValue(afterListNode);\n }\n\n return after;\n }\n\n // Attempt to merge if the list is of the same type.\n\n if ($isListNode(node) && node.getListType() === listNode.getListType()) {\n let child = node;\n const children = node.getChildren<ListNode>();\n\n for (let i = children.length - 1; i >= 0; i--) {\n child = children[i];\n\n this.insertAfter(child);\n }\n\n return child;\n }\n\n // Otherwise, split the list\n // Split the lists and insert the node in between them\n listNode.insertAfter(node);\n\n if (siblings.length !== 0) {\n const newListNode = $createListNode(listNode.getListType());\n\n siblings.forEach(sibling => newListNode.append(sibling));\n\n node.insertAfter(newListNode);\n }\n\n return node;\n }\n\n override remove(preserveEmptyParent?: boolean): void {\n const prevSibling = this.getPreviousSibling();\n const nextSibling = this.getNextSibling();\n super.remove(preserveEmptyParent);\n\n if (\n prevSibling &&\n nextSibling &&\n isNestedListNode(prevSibling) &&\n isNestedListNode(nextSibling)\n ) {\n mergeLists(prevSibling.getFirstChild(), nextSibling.getFirstChild());\n nextSibling.remove();\n } else if (nextSibling) {\n const parent = nextSibling.getParent();\n\n if ($isListNode(parent)) {\n updateChildrenListItemValue(parent);\n }\n }\n }\n\n override insertNewAfter(): ListItemNode | ParagraphNode {\n const newElement = $createListItemNode(this.__checked == null ? undefined : false);\n this.insertAfter(newElement);\n\n return newElement;\n }\n\n override collapseAtStart(selection: RangeSelection): true {\n const paragraph = $createParagraphNode();\n const children = this.getChildren();\n children.forEach(child => paragraph.append(child));\n const listNode = this.getParentOrThrow();\n const listNodeParent = listNode.getParentOrThrow();\n const isIndented = $isListItemNode(listNodeParent);\n\n if (listNode.getChildrenSize() === 1) {\n if (isIndented) {\n // if the list node is nested, we just want to remove it,\n // effectively unindenting it.\n listNode.remove();\n listNodeParent.select();\n } else {\n listNode.replace(paragraph);\n // If we have selection on the list item, we'll need to move it\n // to the paragraph\n const anchor = selection.anchor;\n const focus = selection.focus;\n const key = paragraph.getKey();\n\n if (anchor.type === \"element\" && anchor.getNode().is(this)) {\n anchor.set(key, anchor.offset, \"element\");\n }\n\n if (focus.type === \"element\" && focus.getNode().is(this)) {\n focus.set(key, focus.offset, \"element\");\n }\n }\n } else {\n listNode.insertBefore(paragraph);\n this.remove();\n }\n\n return true;\n }\n\n getValue(): number {\n const self = this.getLatest();\n\n return self.__value;\n }\n\n setValue(value: number): void {\n const self = this.getWritable();\n self.__value = value;\n }\n\n getChecked(): boolean | undefined {\n const self = this.getLatest();\n\n return self.__checked;\n }\n\n setChecked(checked?: boolean): void {\n const self = this.getWritable();\n self.__checked = checked;\n }\n\n override getIndent(): number {\n // If we don't have a parent, we are likely serializing\n const parent = this.getParent();\n if (parent === null) {\n return this.getLatest().__indent;\n }\n // ListItemNode should always have a ListNode for a parent.\n let listNodeParent = parent.getParentOrThrow();\n let indentLevel = 0;\n while ($isListItemNode(listNodeParent)) {\n listNodeParent = listNodeParent.getParentOrThrow().getParentOrThrow();\n indentLevel++;\n }\n\n return indentLevel;\n }\n\n override setIndent(indent: number): this {\n let currentIndent = this.getIndent();\n while (currentIndent !== indent) {\n if (currentIndent < indent) {\n $handleIndent([this]);\n currentIndent++;\n } else {\n $handleOutdent([this]);\n currentIndent--;\n }\n }\n\n return this;\n }\n\n override canIndent(): false {\n // Indent/outdent is handled specifically in the RichText logic.\n\n return false;\n }\n\n override insertBefore(nodeToInsert: LexicalNode): LexicalNode {\n if ($isListItemNode(nodeToInsert)) {\n const parent = this.getParentOrThrow();\n\n if ($isListNode(parent)) {\n const siblings = this.getNextSiblings();\n updateChildrenListItemValue(parent, siblings);\n }\n }\n\n return super.insertBefore(nodeToInsert);\n }\n\n override canInsertAfter(node: LexicalNode): boolean {\n return $isListNode(node);\n }\n\n override canReplaceWith(replacement: LexicalNode): boolean {\n return $isListItemNode(replacement);\n }\n\n override canMergeWith(node: LexicalNode): boolean {\n return $isParagraphNode(node) || $isListItemNode(node);\n }\n\n override extractWithChild(\n child: LexicalNode,\n selection: RangeSelection | NodeSelection | GridSelection\n ): boolean {\n if (!$isRangeSelection(selection)) {\n return false;\n }\n\n const anchorNode = selection.anchor.getNode();\n const focusNode = selection.focus.getNode();\n\n return (\n this.isParentOf(anchorNode) &&\n this.isParentOf(focusNode) &&\n this.getTextContent().length === selection.getTextContent().length\n );\n }\n}\n\nfunction $setListItemThemeClassNames(\n dom: HTMLElement,\n editorThemeClasses: EditorThemeClasses,\n node: ListItemNode\n): void {\n const classesToAdd = [];\n const classesToRemove = [];\n const listTheme = editorThemeClasses.list;\n const listItemClassName = listTheme ? listTheme.listitem : undefined;\n let nestedListItemClassName;\n\n if (listTheme && listTheme.nested) {\n nestedListItemClassName = listTheme.nested.listitem;\n }\n\n if (listItemClassName !== undefined) {\n const listItemClasses = listItemClassName.split(\" \");\n classesToAdd.push(...listItemClasses);\n }\n\n if (listTheme) {\n const parentNode = node.getParent();\n const isCheckList = $isListNode(parentNode) && parentNode?.getListType() === \"check\";\n const checked = node.getChecked();\n\n if (!isCheckList || checked) {\n classesToRemove.push(listTheme.listitemUnchecked);\n }\n\n if (!isCheckList || !checked) {\n classesToRemove.push(listTheme.listitemChecked);\n }\n\n if (isCheckList) {\n classesToAdd.push(checked ? listTheme.listitemChecked : listTheme.listitemUnchecked);\n }\n }\n\n if (nestedListItemClassName !== undefined) {\n const nestedListItemClasses = nestedListItemClassName.split(\" \");\n\n if (node.getChildren().some(child => $isListNode(child))) {\n classesToAdd.push(...nestedListItemClasses);\n } else {\n classesToRemove.push(...nestedListItemClasses);\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\nfunction updateListItemChecked(\n dom: HTMLElement,\n listItemNode: ListItemNode,\n prevListItemNode: ListItemNode | null,\n listNode: ListNode\n): void {\n const isCheckList = listNode.getListType() === \"check\";\n\n if (isCheckList) {\n // Only add attributes for leaf list items\n if ($isListNode(listItemNode.getFirstChild())) {\n dom.removeAttribute(\"role\");\n dom.removeAttribute(\"tabIndex\");\n dom.removeAttribute(\"aria-checked\");\n } else {\n dom.setAttribute(\"role\", \"checkbox\");\n dom.setAttribute(\"tabIndex\", \"-1\");\n\n if (!prevListItemNode || listItemNode.__checked !== prevListItemNode.__checked) {\n dom.setAttribute(\"aria-checked\", listItemNode.getChecked() ? \"true\" : \"false\");\n }\n }\n } else {\n // Clean up checked state\n if (listItemNode.getChecked() != null) {\n listItemNode.setChecked(undefined);\n }\n }\n}\n\nfunction convertListItemElement(): DOMConversionOutput {\n return { node: $createListItemNode() };\n}\n\nexport function $createListItemNode(checked?: boolean): ListItemNode {\n return new ListItemNode(undefined, checked);\n}\n\nexport function $isListItemNode(node: LexicalNode | null | undefined): node is ListItemNode {\n return node instanceof ListItemNode;\n}\n"],"mappings":"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","ignoreList":[]}
package/ListNode.js CHANGED
@@ -11,19 +11,17 @@ var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers
11
11
  var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
12
12
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
13
13
  var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
14
+ var _callSuper2 = _interopRequireDefault(require("@babel/runtime/helpers/callSuper"));
14
15
  var _get2 = _interopRequireDefault(require("@babel/runtime/helpers/get"));
15
16
  var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
16
17
  var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
17
- var _createSuper2 = _interopRequireDefault(require("@babel/runtime/helpers/createSuper"));
18
18
  var _lexical = require("lexical");
19
19
  var _lexicalTheme = require("@webiny/lexical-theme");
20
20
  var _utils = require("@lexical/utils");
21
21
  var _listNode = require("./utils/listNode");
22
22
  var _ListItemNode = require("./ListItemNode");
23
23
  var TypographyStyleAttrName = "data-theme-list-style-id";
24
- var ListNode = /*#__PURE__*/function (_ElementNode) {
25
- (0, _inherits2.default)(ListNode, _ElementNode);
26
- var _super = (0, _createSuper2.default)(ListNode);
24
+ var ListNode = exports.ListNode = /*#__PURE__*/function (_ElementNode) {
27
25
  /** @internal */
28
26
 
29
27
  /** @internal */
@@ -33,7 +31,7 @@ var ListNode = /*#__PURE__*/function (_ElementNode) {
33
31
  function ListNode(listType, themeStyleId, start, key) {
34
32
  var _this;
35
33
  (0, _classCallCheck2.default)(this, ListNode);
36
- _this = _super.call(this, key);
34
+ _this = (0, _callSuper2.default)(this, ListNode, [key]);
37
35
  _this.__themeStyleId = themeStyleId || "";
38
36
  var _listType = TAG_TO_WEBINY_LIST_TYPE[listType] || listType;
39
37
  _this.__listType = _listType;
@@ -41,7 +39,8 @@ var ListNode = /*#__PURE__*/function (_ElementNode) {
41
39
  _this.__start = start || 1;
42
40
  return _this;
43
41
  }
44
- (0, _createClass2.default)(ListNode, [{
42
+ (0, _inherits2.default)(ListNode, _ElementNode);
43
+ return (0, _createClass2.default)(ListNode, [{
45
44
  key: "isStyleExistInTheme",
46
45
  value: function isStyleExistInTheme(theme) {
47
46
  return theme?.emotionMap ? !!theme?.emotionMap[this.__themeStyleId] : false;
@@ -186,9 +185,7 @@ var ListNode = /*#__PURE__*/function (_ElementNode) {
186
185
  };
187
186
  }
188
187
  }]);
189
- return ListNode;
190
188
  }(_lexical.ElementNode);
191
- exports.ListNode = ListNode;
192
189
  function setListThemeClassNames(dom, editorTheme, node, themeStyleId) {
193
190
  var editorThemeClasses = editorTheme;
194
191
  var classesToAdd = [];
package/ListNode.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"names":["_lexical","require","_lexicalTheme","_utils","_listNode","_ListItemNode","TypographyStyleAttrName","ListNode","_ElementNode","_inherits2","default","_super","_createSuper2","listType","themeStyleId","start","key","_this","_classCallCheck2","call","__themeStyleId","_listType","TAG_TO_WEBINY_LIST_TYPE","__listType","__tag","__start","_createClass2","value","isStyleExistInTheme","theme","emotionMap","createDOM","config","tag","dom","document","createElement","wTheme","setAttribute","String","hasThemeStyle","setDefaultThemeListStyleByTag","__lexicalListType","setListThemeClassNames","getTag","getListType","getStart","getStyleId","exportJSON","_objectSpread2","_get2","_getPrototypeOf2","prototype","type","version","themeEmotionMap","style","findTypographyStyleByHtmlTag","id","updateDOM","prevNode","extractWithChild","child","$isListItemNode","getType","clone","node","__key","importJSON","serializedNode","$createListNode","setFormat","format","setIndent","indent","setDirection","direction","importDomConversionMap","conversion","convertListNode","priority","importDOM","_this2","ol","ul","ElementNode","exports","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 __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 isStyleExistInTheme(theme: WebinyTheme): boolean {\n return theme?.emotionMap ? !!theme?.emotionMap[this.__themeStyleId] : false;\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 getTag(): ListNodeTagType {\n return this.__tag;\n }\n\n getListType(): ListType {\n return this.__listType;\n }\n\n getStart(): number {\n return this.__start;\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.__themeStyleId ?? \"\",\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 importDOM(): DOMConversionMap | null {\n return {\n ol: () => {\n return this.importDomConversionMap();\n },\n ul: () => {\n return this.importDomConversionMap();\n }\n };\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 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 hasThemeStyle(): boolean {\n return !!this.__themeStyleId;\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\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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"}
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","isStyleExistInTheme","theme","emotionMap","createDOM","config","tag","dom","document","createElement","wTheme","setAttribute","String","hasThemeStyle","setDefaultThemeListStyleByTag","__lexicalListType","setListThemeClassNames","getTag","getListType","getStart","getStyleId","exportJSON","_objectSpread2","_get2","_getPrototypeOf2","prototype","call","type","version","themeEmotionMap","style","findTypographyStyleByHtmlTag","id","updateDOM","prevNode","extractWithChild","child","$isListItemNode","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 __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 isStyleExistInTheme(theme: WebinyTheme): boolean {\n return theme?.emotionMap ? !!theme?.emotionMap[this.__themeStyleId] : false;\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 getTag(): ListNodeTagType {\n return this.__tag;\n }\n\n getListType(): ListType {\n return this.__listType;\n }\n\n getStart(): number {\n return this.__start;\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.__themeStyleId ?? \"\",\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 importDOM(): DOMConversionMap | null {\n return {\n ol: () => {\n return this.importDomConversionMap();\n },\n ul: () => {\n return this.importDomConversionMap();\n }\n };\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 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 hasThemeStyle(): boolean {\n return !!this.__themeStyleId;\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\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":";;;;;;;;;;;;;;;;;AAAA,IAAAA,QAAA,GAAAC,OAAA;AAWA,IAAAC,aAAA,GAAAD,OAAA;AACA,IAAAE,MAAA,GAAAF,OAAA;AAEA,IAAAG,SAAA,GAAAH,OAAA;AACA,IAAAI,aAAA,GAAAJ,OAAA;AAGA,IAAMK,uBAAuB,GAAG,0BAA0B;AAAC,IAc9CC,QAAQ,GAAAC,OAAA,CAAAD,QAAA,0BAAAE,YAAA;EACjB;;EAEA;;EAEA;;EAKA,SAAAF,SAAYG,QAAkB,EAAEC,YAAqB,EAAEC,KAAc,EAAEC,GAAa,EAAE;IAAA,IAAAC,KAAA;IAAA,IAAAC,gBAAA,CAAAC,OAAA,QAAAT,QAAA;IAClFO,KAAA,OAAAG,WAAA,CAAAD,OAAA,QAAAT,QAAA,GAAMM,GAAG;IACTC,KAAA,CAAKI,cAAc,GAAGP,YAAY,IAAI,EAAE;IACxC,IAAMQ,SAAS,GAAGC,uBAAuB,CAACV,QAAQ,CAAC,IAAIA,QAAQ;IAC/DI,KAAA,CAAKO,UAAU,GAAGF,SAAS;IAC3BL,KAAA,CAAKQ,KAAK,GAAGH,SAAS,KAAK,QAAQ,GAAG,IAAI,GAAG,IAAI;IACjDL,KAAA,CAAKS,OAAO,GAAGX,KAAK,IAAI,CAAC;IAAC,OAAAE,KAAA;EAC9B;EAAC,IAAAU,UAAA,CAAAR,OAAA,EAAAT,QAAA,EAAAE,YAAA;EAAA,WAAAgB,aAAA,CAAAT,OAAA,EAAAT,QAAA;IAAAM,GAAA;IAAAa,KAAA,EAMD,SAAAC,oBAAoBC,KAAkB,EAAW;MAC7C,OAAOA,KAAK,EAAEC,UAAU,GAAG,CAAC,CAACD,KAAK,EAAEC,UAAU,CAAC,IAAI,CAACX,cAAc,CAAC,GAAG,KAAK;IAC/E;EAAC;IAAAL,GAAA;IAAAa,KAAA,EAED,SAAAI,UAAmBC,MAAoB,EAAe;MAClD,IAAMC,GAAG,GAAG,IAAI,CAACV,KAAK;MACtB,IAAMW,GAAG,GAAGC,QAAQ,CAACC,aAAa,CAACH,GAAG,CAAC;MACvC,IAAMI,MAAM,GAAGL,MAAM,CAACH,KAAoB;MAE1C,IAAI,IAAI,CAACL,OAAO,KAAK,CAAC,EAAE;QACpBU,GAAG,CAACI,YAAY,CAAC,OAAO,EAAEC,MAAM,CAAC,IAAI,CAACf,OAAO,CAAC,CAAC;MACnD;;MAEA;MACA,IAAI,CAAC,IAAI,CAACgB,aAAa,CAAC,CAAC,IAAI,CAAC,IAAI,CAACZ,mBAAmB,CAACS,MAAM,CAAC,EAAE;QAC5D,IAAI,CAACI,6BAA6B,CAAC,IAAI,CAAClB,KAAK,EAAEc,MAAM,CAAC;MAC1D;;MAEA;MACAH,GAAG,CAACQ,iBAAiB,GAAG,IAAI,CAACpB,UAAU;MACvC,IAAMO,KAAK,GAAGG,MAAM,CAACH,KAAoB;MACzCc,sBAAsB,CAACT,GAAG,EAAEL,KAAK,EAAE,IAAI,EAAE,IAAI,CAACV,cAAc,CAAC;MAC7De,GAAG,CAACI,YAAY,CAAC/B,uBAAuB,EAAE,IAAI,CAACY,cAAc,CAAC;MAC9D,OAAOe,GAAG;IACd;EAAC;IAAApB,GAAA;IAAAa,KAAA,EAMD,SAAAiB,OAAA,EAA0B;MACtB,OAAO,IAAI,CAACrB,KAAK;IACrB;EAAC;IAAAT,GAAA;IAAAa,KAAA,EAED,SAAAkB,YAAA,EAAwB;MACpB,OAAO,IAAI,CAACvB,UAAU;IAC1B;EAAC;IAAAR,GAAA;IAAAa,KAAA,EAED,SAAAmB,SAAA,EAAmB;MACf,OAAO,IAAI,CAACtB,OAAO;IACvB;EAAC;IAAAV,GAAA;IAAAa,KAAA,EAED,SAAAoB,WAAA,EAAqB;MACjB,OAAO,IAAI,CAAC5B,cAAc;IAC9B;EAAC;IAAAL,GAAA;IAAAa,KAAA,EAcD,SAAAqB,WAAA,EAAgD;MAC5C,WAAAC,cAAA,CAAAhC,OAAA,MAAAgC,cAAA,CAAAhC,OAAA,UAAAiC,KAAA,CAAAjC,OAAA,MAAAkC,gBAAA,CAAAlC,OAAA,EAAAT,QAAA,CAAA4C,SAAA,uBAAAC,IAAA;QAEIzC,YAAY,EAAE,IAAI,CAACO,cAAc,IAAI,EAAE;QACvCR,QAAQ,EAAE,IAAI,CAACkC,WAAW,CAAC,CAAC;QAC5BhC,KAAK,EAAE,IAAI,CAACiC,QAAQ,CAAC,CAAC;QACtBb,GAAG,EAAE,IAAI,CAACW,MAAM,CAAC,CAAC;QAClBU,IAAI,EAAE,aAAa;QACnBC,OAAO,EAAE;MAAC;IAElB;EAAC;IAAAzC,GAAA;IAAAa,KAAA;IAoBD;AACJ;AACA;IACI,SAAAc,8BAA8BR,GAAW,EAAEJ,KAAkB,EAAE;MAC3D,IAAI,CAACI,GAAG,EAAE;QACN;MACJ;MAEA,IAAMuB,eAAe,GAAG3B,KAAK,EAAEC,UAAU;MACzC,IAAI,CAAC0B,eAAe,EAAE;QAClB;MACJ;MAEA,IAAMC,KAAK,GAAG,IAAAC,0CAA4B,EAACzB,GAAG,EAAEuB,eAAe,CAAC;MAEhE,IAAIC,KAAK,EAAE;QACP,IAAI,CAACtC,cAAc,GAAGsC,KAAK,CAACE,EAAE;MAClC;IACJ;EAAC;IAAA7C,GAAA;IAAAa,KAAA,EAED,SAAAa,cAAA,EAAyB;MACrB,OAAO,CAAC,CAAC,IAAI,CAACrB,cAAc;IAChC;EAAC;IAAAL,GAAA;IAAAa,KAAA,EAED,SAAAiC,UAAmBC,QAAkB,EAAE3B,GAAgB,EAAEF,MAAoB,EAAW;MACpF,IAAMK,MAAM,GAAGL,MAAM,CAACH,KAAoB;MAE1C,IAAIgC,QAAQ,CAACtC,KAAK,KAAK,IAAI,CAACA,KAAK,EAAE;QAC/B,OAAO,IAAI;MACf;;MAEA;MACA,IAAI,CAAC,IAAI,CAACiB,aAAa,CAAC,CAAC,IAAI,CAAC,IAAI,CAACZ,mBAAmB,CAACS,MAAM,CAAC,EAAE;QAC5D,IAAI,CAACI,6BAA6B,CAAC,IAAI,CAAClB,KAAK,EAAEc,MAAM,CAAC;MAC1D;MAEAM,sBAAsB,CAACT,GAAG,EAAEF,MAAM,CAACH,KAAK,EAAE,IAAI,EAAE,IAAI,CAACV,cAAc,CAAC;MACpEe,GAAG,CAACI,YAAY,CAAC/B,uBAAuB,EAAE,IAAI,CAACY,cAAc,CAAC;MAC9D,OAAO,KAAK;IAChB;EAAC;IAAAL,GAAA;IAAAa,KAAA,EAED,SAAAmC,iBAA0BC,KAAkB,EAAW;MACnD,OAAO,IAAAC,6BAAe,EAACD,KAAK,CAAC;IACjC;EAAC;IAAAjD,GAAA;IAAAa,KAAA,EAvID,SAAAsC,QAAA,EAA0B;MACtB,OAAO,aAAa;IACxB;EAAC;IAAAnD,GAAA;IAAAa,KAAA,EA4BD,SAAAuC,MAAsBC,IAAc,EAAY;MAC5C,OAAO,IAAI3D,QAAQ,CAAC2D,IAAI,CAACtB,WAAW,CAAC,CAAC,EAAEsB,IAAI,CAACpB,UAAU,CAAC,CAAC,EAAEoB,IAAI,CAACrB,QAAQ,CAAC,CAAC,EAAEqB,IAAI,CAACC,KAAK,CAAC;IAC3F;EAAC;IAAAtD,GAAA;IAAAa,KAAA,EAkBD,SAAA0C,WAA2BC,cAAwC,EAAY;MAC3E,IAAMH,IAAI,GAAGI,eAAe,CACxBD,cAAc,CAAC3D,QAAQ,EACvB2D,cAAc,CAAC1D,YAAY,EAC3B0D,cAAc,CAACzD,KACnB,CAAC;MACDsD,IAAI,CAACK,SAAS,CAACF,cAAc,CAACG,MAAM,CAAC;MACrCN,IAAI,CAACO,SAAS,CAACJ,cAAc,CAACK,MAAM,CAAC;MACrCR,IAAI,CAACS,YAAY,CAACN,cAAc,CAACO,SAAS,CAAC;MAC3C,OAAOV,IAAI;IACf;EAAC;IAAArD,GAAA;IAAAa,KAAA,EAcD,SAAAmD,uBAAA,EAAmE;MAC/D,OAAO;QACHC,UAAU,EAAEC,eAAe;QAC3BC,QAAQ,EAAE;MACd,CAAC;IACL;EAAC;IAAAnE,GAAA;IAAAa,KAAA,EAED,SAAAuD,UAAA,EAA4C;MAAA,IAAAC,MAAA;MACxC,OAAO;QACHC,EAAE,EAAE,SAAAA,GAAA,EAAM;UACN,OAAOD,MAAI,CAACL,sBAAsB,CAAC,CAAC;QACxC,CAAC;QACDO,EAAE,EAAE,SAAAA,GAAA,EAAM;UACN,OAAOF,MAAI,CAACL,sBAAsB,CAAC,CAAC;QACxC;MACJ,CAAC;IACL;EAAC;AAAA,EA7GyBQ,oBAAW;AA6JzC,SAAS3C,sBAAsBA,CAC3BT,GAAgB,EAChBqD,WAAwB,EACxBpB,IAAc,EACdvD,YAAoB,EAChB;EACJ,IAAM4E,kBAAkB,GAAGD,WAAW;EACtC,IAAME,YAAY,GAAG,EAAE;EACvB,IAAMC,eAAe,GAAG,EAAE;EAC1B,IAAMC,SAAS,GAAGH,kBAAkB,CAACI,IAAI;EACzC,IAAM9D,UAAU,GAAGyD,WAAW,EAAEzD,UAAU,IAAI,CAAC,CAAC;EAChD,IAAI6D,SAAS,KAAKE,SAAS,EAAE;IACzB,IAAMC,oBAAoB,GAAGH,SAAS,IAAAI,MAAA,CAAI5B,IAAI,CAAC5C,KAAK,WAAQ,IAAI,EAAE;IAClE,IAAMyE,SAAS,GAAG,IAAAC,uBAAa,EAAC9B,IAAI,CAAC,GAAG,CAAC;IACzC,IAAM+B,mBAAmB,GAAGF,SAAS,GAAGF,oBAAoB,CAACK,MAAM;IACnE,IAAMC,kBAAkB,GAAGN,oBAAoB,CAACI,mBAAmB,CAAC;IACpE,IAAMG,aAAa,MAAAN,MAAA,CAAMJ,SAAS,CAACxB,IAAI,CAAC5C,KAAK,CAAC,OAAAwE,MAAA,CAC1CjE,UAAU,CAAClB,YAAY,CAAC,EAAE0F,SAAS,IAAI,EAAE,CAC3C;IACF,IAAIC,mBAAmB;IACvB,IAAMC,eAAe,GAAGb,SAAS,CAACc,MAAM;IAExC,IAAID,eAAe,KAAKX,SAAS,IAAIW,eAAe,CAACZ,IAAI,EAAE;MACvDW,mBAAmB,GAAGC,eAAe,CAACZ,IAAI;IAC9C;IAEA,IAAIS,aAAa,EAAE;MACfZ,YAAY,CAACiB,IAAI,CAACL,aAAa,CAAC;IACpC;IAEA,IAAID,kBAAkB,KAAKP,SAAS,EAAE;MAClC,IAAMc,eAAe,GAAGP,kBAAkB,CAACQ,KAAK,CAAC,GAAG,CAAC;MACrDnB,YAAY,CAACiB,IAAI,CAAAG,KAAA,CAAjBpB,YAAY,MAAAqB,mBAAA,CAAA7F,OAAA,EAAS0F,eAAe,EAAC;MACrC,KAAK,IAAII,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGjB,oBAAoB,CAACK,MAAM,EAAEY,CAAC,EAAE,EAAE;QAClD,IAAIA,CAAC,KAAKb,mBAAmB,EAAE;UAC3BR,eAAe,CAACgB,IAAI,CAACvC,IAAI,CAAC5C,KAAK,GAAGwF,CAAC,CAAC;QACxC;MACJ;IACJ;IAEA,IAAIR,mBAAmB,KAAKV,SAAS,EAAE;MACnC,IAAMmB,qBAAqB,GAAGT,mBAAmB,CAACK,KAAK,CAAC,GAAG,CAAC;MAE5D,IAAIZ,SAAS,GAAG,CAAC,EAAE;QACfP,YAAY,CAACiB,IAAI,CAAAG,KAAA,CAAjBpB,YAAY,MAAAqB,mBAAA,CAAA7F,OAAA,EAAS+F,qBAAqB,EAAC;MAC/C,CAAC,MAAM;QACHtB,eAAe,CAACgB,IAAI,CAAAG,KAAA,CAApBnB,eAAe,MAAAoB,mBAAA,CAAA7F,OAAA,EAAS+F,qBAAqB,EAAC;MAClD;IACJ;EACJ;EAEA,IAAItB,eAAe,CAACS,MAAM,GAAG,CAAC,EAAE;IAC5Bc,kCAA2B,CAAAJ,KAAA,UAAC3E,GAAG,EAAA6D,MAAA,CAAKL,eAAe,EAAC;EACxD;EAEA,IAAID,YAAY,CAACU,MAAM,GAAG,CAAC,EAAE;IACzBe,6BAAsB,CAAAL,KAAA,UAAC3E,GAAG,EAAA6D,MAAA,CAAKN,YAAY,EAAC;EAChD;AACJ;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS0B,iBAAiBA,CAACC,KAAsB,EAAuB;EACpE,IAAMC,mBAAwC,GAAG,EAAE;EACnD,KAAK,IAAIN,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGK,KAAK,CAACjB,MAAM,EAAEY,CAAC,EAAE,EAAE;IACnC,IAAM5C,IAAI,GAAGiD,KAAK,CAACL,CAAC,CAAC;IACrB,IAAI,IAAA/C,6BAAe,EAACG,IAAI,CAAC,EAAE;MACvBkD,mBAAmB,CAACX,IAAI,CAACvC,IAAI,CAAC;MAC9BA,IAAI,CAACmD,WAAW,CAAC,CAAC,CAACC,OAAO,CAAC,UAAAxD,KAAK,EAAI;QAChC,IAAIyD,WAAW,CAACzD,KAAK,CAAC,EAAE;UACpBsD,mBAAmB,CAACX,IAAI,CAAC,IAAAe,wBAAc,EAAC1D,KAAK,CAAC,CAAC;QACnD;MACJ,CAAC,CAAC;IACN,CAAC,MAAM;MACHsD,mBAAmB,CAACX,IAAI,CAAC,IAAAe,wBAAc,EAACtD,IAAI,CAAC,CAAC;IAClD;EACJ;EACA,OAAOkD,mBAAmB;AAC9B;AAEA,SAASrC,eAAeA,CAAC0C,OAAa,EAAuB;EACzD,IAAMC,QAAQ,GAAGD,OAAO,CAACC,QAAQ,CAACC,WAAW,CAAC,CAAC;EAC/C,IAAIzD,IAAI,GAAG,IAAI;EAEf,IAAIwD,QAAQ,KAAK,IAAI,EAAE;IACnBxD,IAAI,GAAGI,eAAe,CAAC,QAAQ,CAAC;EACpC,CAAC,MAAM,IAAIoD,QAAQ,KAAK,IAAI,EAAE;IAC1BxD,IAAI,GAAGI,eAAe,CAAC,QAAQ,CAAC;EACpC;EAEA,OAAO;IACH;IACAsD,KAAK,EAAEV,iBAAiB;IACxBhD,IAAI,EAAJA;EACJ,CAAC;AACL;AAEA,IAAM9C,uBAAiD,GAAG;EACtD+D,EAAE,EAAE,QAAQ;EACZC,EAAE,EAAE;AACR,CAAC;AAEM,SAASd,eAAeA,CAAC5D,QAAkB,EAAEC,YAAqB,EAAuB;EAAA,IAArBC,KAAK,GAAAiH,SAAA,CAAA3B,MAAA,QAAA2B,SAAA,QAAAjC,SAAA,GAAAiC,SAAA,MAAG,CAAC;EAChF,OAAO,IAAItH,QAAQ,CAACG,QAAQ,EAAEC,YAAY,EAAEC,KAAK,CAAC;AACtD;AAEO,SAAS2G,WAAWA,CAACrD,IAAoC,EAAoB;EAChF,OAAOA,IAAI,YAAY3D,QAAQ;AACnC","ignoreList":[]}
package/ParagraphNode.js CHANGED
@@ -11,23 +11,20 @@ var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/obje
11
11
  var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
12
12
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
13
13
  var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
14
- var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
14
+ var _callSuper2 = _interopRequireDefault(require("@babel/runtime/helpers/callSuper"));
15
15
  var _get2 = _interopRequireDefault(require("@babel/runtime/helpers/get"));
16
16
  var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
17
17
  var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
18
- var _createSuper2 = _interopRequireDefault(require("@babel/runtime/helpers/createSuper"));
19
18
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
20
19
  var _lexical = require("lexical");
21
20
  var _lexicalTheme = require("@webiny/lexical-theme");
22
21
  var _utils = require("@lexical/utils");
23
- var ParagraphNode = /*#__PURE__*/function (_BaseParagraphNode) {
24
- (0, _inherits2.default)(ParagraphNode, _BaseParagraphNode);
25
- var _super = (0, _createSuper2.default)(ParagraphNode);
22
+ var ParagraphNode = exports.ParagraphNode = /*#__PURE__*/function (_BaseParagraphNode) {
26
23
  function ParagraphNode(typographyStyleId, key) {
27
24
  var _this;
28
25
  (0, _classCallCheck2.default)(this, ParagraphNode);
29
- _this = _super.call(this, key);
30
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "__styles", []);
26
+ _this = (0, _callSuper2.default)(this, ParagraphNode, [key]);
27
+ (0, _defineProperty2.default)(_this, "__styles", []);
31
28
  if (typographyStyleId) {
32
29
  _this.__styles.push({
33
30
  styleId: typographyStyleId,
@@ -36,7 +33,8 @@ var ParagraphNode = /*#__PURE__*/function (_BaseParagraphNode) {
36
33
  }
37
34
  return _this;
38
35
  }
39
- (0, _createClass2.default)(ParagraphNode, [{
36
+ (0, _inherits2.default)(ParagraphNode, _BaseParagraphNode);
37
+ return (0, _createClass2.default)(ParagraphNode, [{
40
38
  key: "setDefaultTypography",
41
39
  value: function setDefaultTypography(themeEmotionMap) {
42
40
  var typographyStyle = (0, _lexicalTheme.findTypographyStyleByHtmlTag)("p", themeEmotionMap);
@@ -198,9 +196,7 @@ var ParagraphNode = /*#__PURE__*/function (_BaseParagraphNode) {
198
196
  return node;
199
197
  }
200
198
  }]);
201
- return ParagraphNode;
202
199
  }(_lexical.ParagraphNode);
203
- exports.ParagraphNode = ParagraphNode;
204
200
  function convertParagraphElement(element) {
205
201
  var node = $createParagraphNode();
206
202
  if (element.style) {