@webiny/lexical-nodes 5.40.0-beta.1 → 5.40.0-beta.3

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
@@ -1 +1 @@
1
- {"version":3,"names":["_lexical","require","_lexicalTheme","_utils","ParagraphNode","_BaseParagraphNode","_inherits2","default","_super","_createSuper2","typographyStyleId","key","_this","_classCallCheck2","call","_defineProperty2","_assertThisInitialized2","__styles","push","styleId","type","_createClass2","value","setDefaultTypography","themeEmotionMap","typographyStyle","findTypographyStyleByHtmlTag","id","setTypography","self","_get2","_getPrototypeOf2","prototype","themeStyle","getTypographyStyleId","style","find","x","undefined","clearTypographyStyle","filter","s","hasTypographyStyle","getThemeStyles","setThemeStyles","styles","_toConsumableArray2","updateElementWithThemeClasses","element","theme","emotionMap","typoStyleId","themeClasses","className","addClassNamesToElement","createDOM","config","updateDOM","prevNode","dom","prevTypoStyleId","nextTypoStyleId","exportJSON","_objectSpread2","version","getType","clone","node","__key","importDOM","p","conversion","convertParagraphElement","priority","importJSON","serializedNode","$createParagraphNode","setFormat","format","setIndent","indent","setDirection","direction","BaseParagraphNode","exports","textAlign","$applyNodeReplacement","$isParagraphNode"],"sources":["ParagraphNode.ts"],"sourcesContent":["import {\n $applyNodeReplacement,\n DOMConversionMap,\n DOMConversionOutput,\n ElementFormatType,\n LexicalNode,\n NodeKey,\n ParagraphNode as BaseParagraphNode,\n SerializedParagraphNode as SerializedBaseParagraphNode,\n Spread\n} from \"lexical\";\nimport { EditorConfig } from \"lexical\";\nimport { WebinyTheme, ThemeEmotionMap, findTypographyStyleByHtmlTag } from \"@webiny/lexical-theme\";\nimport { addClassNamesToElement } from \"@lexical/utils\";\nimport { TypographyStylesNode, ThemeStyleValue, TextNodeThemeStyles } from \"~/types\";\n\nexport type SerializeParagraphNode = Spread<\n {\n styles: ThemeStyleValue[];\n type: \"paragraph-element\";\n },\n SerializedBaseParagraphNode\n>;\n\nexport class ParagraphNode\n extends BaseParagraphNode\n implements TextNodeThemeStyles, TypographyStylesNode\n{\n __styles: ThemeStyleValue[] = [];\n\n constructor(typographyStyleId?: string, key?: NodeKey) {\n super(key);\n\n if (typographyStyleId) {\n this.__styles.push({ styleId: typographyStyleId, type: \"typography\" });\n }\n }\n\n protected setDefaultTypography(themeEmotionMap: ThemeEmotionMap) {\n const typographyStyle = findTypographyStyleByHtmlTag(\"p\", themeEmotionMap);\n if (typographyStyle) {\n this.__styles.push({ styleId: typographyStyle.id, type: \"typography\" });\n }\n }\n\n setTypography(typographyStyleId: string): this {\n const self = super.getWritable();\n const themeStyle = {\n styleId: typographyStyleId,\n type: \"typography\"\n } as ThemeStyleValue;\n self.__styles.push(themeStyle);\n return self;\n }\n\n getTypographyStyleId(): string | undefined {\n const style = this.__styles.find(x => x.type === \"typography\");\n return style?.styleId || undefined;\n }\n\n clearTypographyStyle(): this {\n const self = super.getWritable();\n self.__styles = self.__styles.filter(s => s.type !== \"typography\");\n return self;\n }\n\n hasTypographyStyle(): boolean {\n return !!this.getTypographyStyleId();\n }\n\n getThemeStyles(): ThemeStyleValue[] {\n // getLatest() ensures we are getting the most\n // up-to-date value from the EditorState.\n const self = super.getLatest();\n return self.__styles;\n }\n\n setThemeStyles(styles: ThemeStyleValue[]) {\n // getWritable() creates a clone of the node\n // if needed, to ensure we don't try and mutate\n // a stale version of this node.\n const self = super.getWritable();\n self.__styles = [...styles];\n return self;\n }\n\n static override getType(): string {\n return \"paragraph-element\";\n }\n\n static override clone(node: ParagraphNode): ParagraphNode {\n return new ParagraphNode(node.getTypographyStyleId(), node.__key);\n }\n\n protected updateElementWithThemeClasses(element: HTMLElement, theme: WebinyTheme): HTMLElement {\n if (!theme?.emotionMap) {\n return element;\n }\n\n if (!this.hasTypographyStyle()) {\n this.setDefaultTypography(theme.emotionMap);\n }\n\n const typoStyleId = this.getTypographyStyleId();\n\n let themeClasses;\n\n // Typography css class\n if (typoStyleId) {\n const typographyStyle = theme.emotionMap[typoStyleId];\n if (typographyStyle) {\n themeClasses = typographyStyle.className;\n }\n }\n\n if (themeClasses) {\n addClassNamesToElement(element, themeClasses);\n }\n\n return element;\n }\n\n override createDOM(config: EditorConfig): HTMLElement {\n const element = super.createDOM(config);\n return this.updateElementWithThemeClasses(element, config.theme as WebinyTheme);\n }\n\n override updateDOM(\n prevNode: BaseParagraphNode,\n dom: HTMLElement,\n config: EditorConfig\n ): boolean {\n const prevTypoStyleId = prevNode.getTypographyStyleId();\n const nextTypoStyleId = this.getTypographyStyleId();\n\n if (!nextTypoStyleId) {\n this.updateElementWithThemeClasses(dom, config.theme as WebinyTheme);\n return false;\n }\n\n if (prevTypoStyleId !== nextTypoStyleId && nextTypoStyleId) {\n this.updateElementWithThemeClasses(dom, config.theme as WebinyTheme);\n }\n // Returning false tells Lexical that this node does not need its\n // DOM element replacing with a new copy from createDOM.\n return false;\n }\n\n /*\n * On copy/paste event this method will be executed in and create a node\n * */\n static override importDOM(): DOMConversionMap | null {\n return {\n p: () => ({\n conversion: convertParagraphElement,\n priority: 0\n })\n };\n }\n\n /*\n * Serialize the JSON data back into a node\n */\n static override importJSON(serializedNode: SerializeParagraphNode): BaseParagraphNode {\n const node = $createParagraphNode();\n node.setFormat(serializedNode.format);\n node.setIndent(serializedNode.indent);\n node.setDirection(serializedNode.direction);\n node.setThemeStyles(serializedNode.styles);\n return node;\n }\n\n /*\n * Serialize the node to JSON data representation.\n * */\n override exportJSON(): SerializeParagraphNode {\n return {\n ...super.exportJSON(),\n styles: this.__styles,\n type: \"paragraph-element\",\n version: 1\n };\n }\n}\n\nfunction convertParagraphElement(element: HTMLElement): DOMConversionOutput {\n const node = $createParagraphNode();\n if (element.style) {\n node.setFormat(element.style.textAlign as ElementFormatType);\n }\n\n return { node };\n}\n\nexport function $createParagraphNode(typographyStyleId?: string): ParagraphNode {\n return $applyNodeReplacement(new ParagraphNode(typographyStyleId));\n}\n\nexport function $isParagraphNode(node: LexicalNode | null | undefined): node is ParagraphNode {\n return node instanceof ParagraphNode;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAAA,IAAAA,QAAA,GAAAC,OAAA;AAYA,IAAAC,aAAA,GAAAD,OAAA;AACA,IAAAE,MAAA,GAAAF,OAAA;AAAwD,IAW3CG,aAAa,0BAAAC,kBAAA;EAAA,IAAAC,UAAA,CAAAC,OAAA,EAAAH,aAAA,EAAAC,kBAAA;EAAA,IAAAG,MAAA,OAAAC,aAAA,CAAAF,OAAA,EAAAH,aAAA;EAMtB,SAAAA,cAAYM,iBAA0B,EAAEC,GAAa,EAAE;IAAA,IAAAC,KAAA;IAAA,IAAAC,gBAAA,CAAAN,OAAA,QAAAH,aAAA;IACnDQ,KAAA,GAAAJ,MAAA,CAAAM,IAAA,OAAMH,GAAG;IAAE,IAAAI,gBAAA,CAAAR,OAAA,MAAAS,uBAAA,CAAAT,OAAA,EAAAK,KAAA,eAHe,EAAE;IAK5B,IAAIF,iBAAiB,EAAE;MACnBE,KAAA,CAAKK,QAAQ,CAACC,IAAI,CAAC;QAAEC,OAAO,EAAET,iBAAiB;QAAEU,IAAI,EAAE;MAAa,CAAC,CAAC;IAC1E;IAAC,OAAAR,KAAA;EACL;EAAC,IAAAS,aAAA,CAAAd,OAAA,EAAAH,aAAA;IAAAO,GAAA;IAAAW,KAAA,EAED,SAAAC,qBAA+BC,eAAgC,EAAE;MAC7D,IAAMC,eAAe,GAAG,IAAAC,0CAA4B,EAAC,GAAG,EAAEF,eAAe,CAAC;MAC1E,IAAIC,eAAe,EAAE;QACjB,IAAI,CAACR,QAAQ,CAACC,IAAI,CAAC;UAAEC,OAAO,EAAEM,eAAe,CAACE,EAAE;UAAEP,IAAI,EAAE;QAAa,CAAC,CAAC;MAC3E;IACJ;EAAC;IAAAT,GAAA;IAAAW,KAAA,EAED,SAAAM,cAAclB,iBAAyB,EAAQ;MAC3C,IAAMmB,IAAI,OAAAC,KAAA,CAAAvB,OAAA,MAAAwB,gBAAA,CAAAxB,OAAA,EAAAH,aAAA,CAAA4B,SAAA,wBAAAlB,IAAA,MAAsB;MAChC,IAAMmB,UAAU,GAAG;QACfd,OAAO,EAAET,iBAAiB;QAC1BU,IAAI,EAAE;MACV,CAAoB;MACpBS,IAAI,CAACZ,QAAQ,CAACC,IAAI,CAACe,UAAU,CAAC;MAC9B,OAAOJ,IAAI;IACf;EAAC;IAAAlB,GAAA;IAAAW,KAAA,EAED,SAAAY,qBAAA,EAA2C;MACvC,IAAMC,KAAK,GAAG,IAAI,CAAClB,QAAQ,CAACmB,IAAI,CAAC,UAAAC,CAAC;QAAA,OAAIA,CAAC,CAACjB,IAAI,KAAK,YAAY;MAAA,EAAC;MAC9D,OAAOe,KAAK,EAAEhB,OAAO,IAAImB,SAAS;IACtC;EAAC;IAAA3B,GAAA;IAAAW,KAAA,EAED,SAAAiB,qBAAA,EAA6B;MACzB,IAAMV,IAAI,OAAAC,KAAA,CAAAvB,OAAA,MAAAwB,gBAAA,CAAAxB,OAAA,EAAAH,aAAA,CAAA4B,SAAA,wBAAAlB,IAAA,MAAsB;MAChCe,IAAI,CAACZ,QAAQ,GAAGY,IAAI,CAACZ,QAAQ,CAACuB,MAAM,CAAC,UAAAC,CAAC;QAAA,OAAIA,CAAC,CAACrB,IAAI,KAAK,YAAY;MAAA,EAAC;MAClE,OAAOS,IAAI;IACf;EAAC;IAAAlB,GAAA;IAAAW,KAAA,EAED,SAAAoB,mBAAA,EAA8B;MAC1B,OAAO,CAAC,CAAC,IAAI,CAACR,oBAAoB,CAAC,CAAC;IACxC;EAAC;IAAAvB,GAAA;IAAAW,KAAA,EAED,SAAAqB,eAAA,EAAoC;MAChC;MACA;MACA,IAAMd,IAAI,OAAAC,KAAA,CAAAvB,OAAA,MAAAwB,gBAAA,CAAAxB,OAAA,EAAAH,aAAA,CAAA4B,SAAA,sBAAAlB,IAAA,MAAoB;MAC9B,OAAOe,IAAI,CAACZ,QAAQ;IACxB;EAAC;IAAAN,GAAA;IAAAW,KAAA,EAED,SAAAsB,eAAeC,MAAyB,EAAE;MACtC;MACA;MACA;MACA,IAAMhB,IAAI,OAAAC,KAAA,CAAAvB,OAAA,MAAAwB,gBAAA,CAAAxB,OAAA,EAAAH,aAAA,CAAA4B,SAAA,wBAAAlB,IAAA,MAAsB;MAChCe,IAAI,CAACZ,QAAQ,OAAA6B,mBAAA,CAAAvC,OAAA,EAAOsC,MAAM,CAAC;MAC3B,OAAOhB,IAAI;IACf;EAAC;IAAAlB,GAAA;IAAAW,KAAA,EAUD,SAAAyB,8BAAwCC,OAAoB,EAAEC,KAAkB,EAAe;MAC3F,IAAI,CAACA,KAAK,EAAEC,UAAU,EAAE;QACpB,OAAOF,OAAO;MAClB;MAEA,IAAI,CAAC,IAAI,CAACN,kBAAkB,CAAC,CAAC,EAAE;QAC5B,IAAI,CAACnB,oBAAoB,CAAC0B,KAAK,CAACC,UAAU,CAAC;MAC/C;MAEA,IAAMC,WAAW,GAAG,IAAI,CAACjB,oBAAoB,CAAC,CAAC;MAE/C,IAAIkB,YAAY;;MAEhB;MACA,IAAID,WAAW,EAAE;QACb,IAAM1B,eAAe,GAAGwB,KAAK,CAACC,UAAU,CAACC,WAAW,CAAC;QACrD,IAAI1B,eAAe,EAAE;UACjB2B,YAAY,GAAG3B,eAAe,CAAC4B,SAAS;QAC5C;MACJ;MAEA,IAAID,YAAY,EAAE;QACd,IAAAE,6BAAsB,EAACN,OAAO,EAAEI,YAAY,CAAC;MACjD;MAEA,OAAOJ,OAAO;IAClB;EAAC;IAAArC,GAAA;IAAAW,KAAA,EAED,SAAAiC,UAAmBC,MAAoB,EAAe;MAClD,IAAMR,OAAO,OAAAlB,KAAA,CAAAvB,OAAA,MAAAwB,gBAAA,CAAAxB,OAAA,EAAAH,aAAA,CAAA4B,SAAA,sBAAAlB,IAAA,OAAmB0C,MAAM,CAAC;MACvC,OAAO,IAAI,CAACT,6BAA6B,CAACC,OAAO,EAAEQ,MAAM,CAACP,KAAoB,CAAC;IACnF;EAAC;IAAAtC,GAAA;IAAAW,KAAA,EAED,SAAAmC,UACIC,QAA2B,EAC3BC,GAAgB,EAChBH,MAAoB,EACb;MACP,IAAMI,eAAe,GAAGF,QAAQ,CAACxB,oBAAoB,CAAC,CAAC;MACvD,IAAM2B,eAAe,GAAG,IAAI,CAAC3B,oBAAoB,CAAC,CAAC;MAEnD,IAAI,CAAC2B,eAAe,EAAE;QAClB,IAAI,CAACd,6BAA6B,CAACY,GAAG,EAAEH,MAAM,CAACP,KAAoB,CAAC;QACpE,OAAO,KAAK;MAChB;MAEA,IAAIW,eAAe,KAAKC,eAAe,IAAIA,eAAe,EAAE;QACxD,IAAI,CAACd,6BAA6B,CAACY,GAAG,EAAEH,MAAM,CAACP,KAAoB,CAAC;MACxE;MACA;MACA;MACA,OAAO,KAAK;IAChB;;IAEA;AACJ;AACA;EAFI;IAAAtC,GAAA;IAAAW,KAAA;IAwBA;AACJ;AACA;IACI,SAAAwC,WAAA,EAA8C;MAC1C,WAAAC,cAAA,CAAAxD,OAAA,MAAAwD,cAAA,CAAAxD,OAAA,UAAAuB,KAAA,CAAAvB,OAAA,MAAAwB,gBAAA,CAAAxB,OAAA,EAAAH,aAAA,CAAA4B,SAAA,uBAAAlB,IAAA;QAEI+B,MAAM,EAAE,IAAI,CAAC5B,QAAQ;QACrBG,IAAI,EAAE,mBAAmB;QACzB4C,OAAO,EAAE;MAAC;IAElB;EAAC;IAAArD,GAAA;IAAAW,KAAA,EAhGD,SAAA2C,QAAA,EAAkC;MAC9B,OAAO,mBAAmB;IAC9B;EAAC;IAAAtD,GAAA;IAAAW,KAAA,EAED,SAAA4C,MAAsBC,IAAmB,EAAiB;MACtD,OAAO,IAAI/D,aAAa,CAAC+D,IAAI,CAACjC,oBAAoB,CAAC,CAAC,EAAEiC,IAAI,CAACC,KAAK,CAAC;IACrE;EAAC;IAAAzD,GAAA;IAAAW,KAAA,EA2DD,SAAA+C,UAAA,EAAqD;MACjD,OAAO;QACHC,CAAC,EAAE,SAAAA,EAAA;UAAA,OAAO;YACNC,UAAU,EAAEC,uBAAuB;YACnCC,QAAQ,EAAE;UACd,CAAC;QAAA;MACL,CAAC;IACL;;IAEA;AACJ;AACA;EAFI;IAAA9D,GAAA;IAAAW,KAAA,EAGA,SAAAoD,WAA2BC,cAAsC,EAAqB;MAClF,IAAMR,IAAI,GAAGS,oBAAoB,CAAC,CAAC;MACnCT,IAAI,CAACU,SAAS,CAACF,cAAc,CAACG,MAAM,CAAC;MACrCX,IAAI,CAACY,SAAS,CAACJ,cAAc,CAACK,MAAM,CAAC;MACrCb,IAAI,CAACc,YAAY,CAACN,cAAc,CAACO,SAAS,CAAC;MAC3Cf,IAAI,CAACvB,cAAc,CAAC+B,cAAc,CAAC9B,MAAM,CAAC;MAC1C,OAAOsB,IAAI;IACf;EAAC;EAAA,OAAA/D,aAAA;AAAA,EAjJO+E,sBAAiB;AAAAC,OAAA,CAAAhF,aAAA,GAAAA,aAAA;AAgK7B,SAASoE,uBAAuBA,CAACxB,OAAoB,EAAuB;EACxE,IAAMmB,IAAI,GAAGS,oBAAoB,CAAC,CAAC;EACnC,IAAI5B,OAAO,CAACb,KAAK,EAAE;IACfgC,IAAI,CAACU,SAAS,CAAC7B,OAAO,CAACb,KAAK,CAACkD,SAA8B,CAAC;EAChE;EAEA,OAAO;IAAElB,IAAI,EAAJA;EAAK,CAAC;AACnB;AAEO,SAASS,oBAAoBA,CAAClE,iBAA0B,EAAiB;EAC5E,OAAO,IAAA4E,8BAAqB,EAAC,IAAIlF,aAAa,CAACM,iBAAiB,CAAC,CAAC;AACtE;AAEO,SAAS6E,gBAAgBA,CAACpB,IAAoC,EAAyB;EAC1F,OAAOA,IAAI,YAAY/D,aAAa;AACxC"}
1
+ {"version":3,"names":["_lexical","require","_lexicalTheme","_utils","ParagraphNode","exports","_BaseParagraphNode","typographyStyleId","key","_this","_classCallCheck2","default","_callSuper2","_defineProperty2","__styles","push","styleId","type","_inherits2","_createClass2","value","setDefaultTypography","themeEmotionMap","typographyStyle","findTypographyStyleByHtmlTag","id","setTypography","self","_get2","_getPrototypeOf2","prototype","call","themeStyle","getTypographyStyleId","style","find","x","undefined","clearTypographyStyle","filter","s","hasTypographyStyle","getThemeStyles","setThemeStyles","styles","_toConsumableArray2","updateElementWithThemeClasses","element","theme","emotionMap","typoStyleId","themeClasses","className","addClassNamesToElement","createDOM","config","updateDOM","prevNode","dom","prevTypoStyleId","nextTypoStyleId","exportJSON","_objectSpread2","version","getType","clone","node","__key","importDOM","p","conversion","convertParagraphElement","priority","importJSON","serializedNode","$createParagraphNode","setFormat","format","setIndent","indent","setDirection","direction","BaseParagraphNode","textAlign","$applyNodeReplacement","$isParagraphNode"],"sources":["ParagraphNode.ts"],"sourcesContent":["import {\n $applyNodeReplacement,\n DOMConversionMap,\n DOMConversionOutput,\n ElementFormatType,\n LexicalNode,\n NodeKey,\n ParagraphNode as BaseParagraphNode,\n SerializedParagraphNode as SerializedBaseParagraphNode,\n Spread\n} from \"lexical\";\nimport { EditorConfig } from \"lexical\";\nimport { WebinyTheme, ThemeEmotionMap, findTypographyStyleByHtmlTag } from \"@webiny/lexical-theme\";\nimport { addClassNamesToElement } from \"@lexical/utils\";\nimport { TypographyStylesNode, ThemeStyleValue, TextNodeThemeStyles } from \"~/types\";\n\nexport type SerializeParagraphNode = Spread<\n {\n styles: ThemeStyleValue[];\n type: \"paragraph-element\";\n },\n SerializedBaseParagraphNode\n>;\n\nexport class ParagraphNode\n extends BaseParagraphNode\n implements TextNodeThemeStyles, TypographyStylesNode\n{\n __styles: ThemeStyleValue[] = [];\n\n constructor(typographyStyleId?: string, key?: NodeKey) {\n super(key);\n\n if (typographyStyleId) {\n this.__styles.push({ styleId: typographyStyleId, type: \"typography\" });\n }\n }\n\n protected setDefaultTypography(themeEmotionMap: ThemeEmotionMap) {\n const typographyStyle = findTypographyStyleByHtmlTag(\"p\", themeEmotionMap);\n if (typographyStyle) {\n this.__styles.push({ styleId: typographyStyle.id, type: \"typography\" });\n }\n }\n\n setTypography(typographyStyleId: string): this {\n const self = super.getWritable();\n const themeStyle = {\n styleId: typographyStyleId,\n type: \"typography\"\n } as ThemeStyleValue;\n self.__styles.push(themeStyle);\n return self;\n }\n\n getTypographyStyleId(): string | undefined {\n const style = this.__styles.find(x => x.type === \"typography\");\n return style?.styleId || undefined;\n }\n\n clearTypographyStyle(): this {\n const self = super.getWritable();\n self.__styles = self.__styles.filter(s => s.type !== \"typography\");\n return self;\n }\n\n hasTypographyStyle(): boolean {\n return !!this.getTypographyStyleId();\n }\n\n getThemeStyles(): ThemeStyleValue[] {\n // getLatest() ensures we are getting the most\n // up-to-date value from the EditorState.\n const self = super.getLatest();\n return self.__styles;\n }\n\n setThemeStyles(styles: ThemeStyleValue[]) {\n // getWritable() creates a clone of the node\n // if needed, to ensure we don't try and mutate\n // a stale version of this node.\n const self = super.getWritable();\n self.__styles = [...styles];\n return self;\n }\n\n static override getType(): string {\n return \"paragraph-element\";\n }\n\n static override clone(node: ParagraphNode): ParagraphNode {\n return new ParagraphNode(node.getTypographyStyleId(), node.__key);\n }\n\n protected updateElementWithThemeClasses(element: HTMLElement, theme: WebinyTheme): HTMLElement {\n if (!theme?.emotionMap) {\n return element;\n }\n\n if (!this.hasTypographyStyle()) {\n this.setDefaultTypography(theme.emotionMap);\n }\n\n const typoStyleId = this.getTypographyStyleId();\n\n let themeClasses;\n\n // Typography css class\n if (typoStyleId) {\n const typographyStyle = theme.emotionMap[typoStyleId];\n if (typographyStyle) {\n themeClasses = typographyStyle.className;\n }\n }\n\n if (themeClasses) {\n addClassNamesToElement(element, themeClasses);\n }\n\n return element;\n }\n\n override createDOM(config: EditorConfig): HTMLElement {\n const element = super.createDOM(config);\n return this.updateElementWithThemeClasses(element, config.theme as WebinyTheme);\n }\n\n override updateDOM(\n prevNode: BaseParagraphNode,\n dom: HTMLElement,\n config: EditorConfig\n ): boolean {\n const prevTypoStyleId = prevNode.getTypographyStyleId();\n const nextTypoStyleId = this.getTypographyStyleId();\n\n if (!nextTypoStyleId) {\n this.updateElementWithThemeClasses(dom, config.theme as WebinyTheme);\n return false;\n }\n\n if (prevTypoStyleId !== nextTypoStyleId && nextTypoStyleId) {\n this.updateElementWithThemeClasses(dom, config.theme as WebinyTheme);\n }\n // Returning false tells Lexical that this node does not need its\n // DOM element replacing with a new copy from createDOM.\n return false;\n }\n\n /*\n * On copy/paste event this method will be executed in and create a node\n * */\n static override importDOM(): DOMConversionMap | null {\n return {\n p: () => ({\n conversion: convertParagraphElement,\n priority: 0\n })\n };\n }\n\n /*\n * Serialize the JSON data back into a node\n */\n static override importJSON(serializedNode: SerializeParagraphNode): BaseParagraphNode {\n const node = $createParagraphNode();\n node.setFormat(serializedNode.format);\n node.setIndent(serializedNode.indent);\n node.setDirection(serializedNode.direction);\n node.setThemeStyles(serializedNode.styles);\n return node;\n }\n\n /*\n * Serialize the node to JSON data representation.\n * */\n override exportJSON(): SerializeParagraphNode {\n return {\n ...super.exportJSON(),\n styles: this.__styles,\n type: \"paragraph-element\",\n version: 1\n };\n }\n}\n\nfunction convertParagraphElement(element: HTMLElement): DOMConversionOutput {\n const node = $createParagraphNode();\n if (element.style) {\n node.setFormat(element.style.textAlign as ElementFormatType);\n }\n\n return { node };\n}\n\nexport function $createParagraphNode(typographyStyleId?: string): ParagraphNode {\n return $applyNodeReplacement(new ParagraphNode(typographyStyleId));\n}\n\nexport function $isParagraphNode(node: LexicalNode | null | undefined): node is ParagraphNode {\n return node instanceof ParagraphNode;\n}\n"],"mappings":"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","ignoreList":[]}
package/QuoteNode.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 _lexicalTheme = require("@webiny/lexical-theme");
21
20
  var _utils = require("@lexical/utils");
22
21
  var _richText = require("@lexical/rich-text");
23
- var QuoteNode = /*#__PURE__*/function (_BaseQuoteNode) {
24
- (0, _inherits2.default)(QuoteNode, _BaseQuoteNode);
25
- var _super = (0, _createSuper2.default)(QuoteNode);
22
+ var QuoteNode = exports.QuoteNode = /*#__PURE__*/function (_BaseQuoteNode) {
26
23
  function QuoteNode(themeStyleId, key) {
27
24
  var _this;
28
25
  (0, _classCallCheck2.default)(this, QuoteNode);
29
- _this = _super.call(this, key);
30
- (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "__styles", []);
26
+ _this = (0, _callSuper2.default)(this, QuoteNode, [key]);
27
+ (0, _defineProperty2.default)(_this, "__styles", []);
31
28
  if (themeStyleId) {
32
29
  _this.__styles.push({
33
30
  styleId: themeStyleId,
@@ -40,7 +37,8 @@ var QuoteNode = /*#__PURE__*/function (_BaseQuoteNode) {
40
37
  /*
41
38
  * Find the first occurrence of the quoteblock in the theme styles and set as default.
42
39
  */
43
- (0, _createClass2.default)(QuoteNode, [{
40
+ (0, _inherits2.default)(QuoteNode, _BaseQuoteNode);
41
+ return (0, _createClass2.default)(QuoteNode, [{
44
42
  key: "setDefaultTypography",
45
43
  value: function setDefaultTypography(themeEmotionMap) {
46
44
  var typographyStyle = (0, _lexicalTheme.findTypographyStyleByHtmlTag)("quoteblock", themeEmotionMap);
@@ -207,9 +205,7 @@ var QuoteNode = /*#__PURE__*/function (_BaseQuoteNode) {
207
205
  return node;
208
206
  }
209
207
  }]);
210
- return QuoteNode;
211
208
  }(_richText.QuoteNode);
212
- exports.QuoteNode = QuoteNode;
213
209
  function convertBlockquoteElement() {
214
210
  var node = $createQuoteNode();
215
211
  return {
package/QuoteNode.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"names":["_lexicalTheme","require","_utils","_richText","QuoteNode","_BaseQuoteNode","_inherits2","default","_super","_createSuper2","themeStyleId","key","_this","_classCallCheck2","call","_defineProperty2","_assertThisInitialized2","__styles","push","styleId","type","_createClass2","value","setDefaultTypography","themeEmotionMap","typographyStyle","findTypographyStyleByHtmlTag","id","typographyStyleExist","getTypographyStyleId","style","setTypography","typographyStyleId","self","_get2","_getPrototypeOf2","prototype","hasTypographyStyle","themeStyle","find","x","undefined","clearTypographyStyle","filter","s","getThemeStyles","setThemeStyles","styles","_toConsumableArray2","addThemeStylesToHTMLElement","element","theme","emotionMap","typographyValue","addClassNamesToElement","className","createDOM","config","wTheme","emotionThemeMap","exportJSON","_objectSpread2","getType","clone","node","__key","importDomConversionMap","conversion","convertBlockquoteElement","priority","importDOM","_this2","blockquote","importJSON","serializedNode","$createQuoteNode","setFormat","format","setIndent","indent","setDirection","direction","length","BaseQuoteNode","exports","$isQuoteNode"],"sources":["QuoteNode.ts"],"sourcesContent":["import {\n DOMConversion,\n DOMConversionMap,\n EditorConfig,\n LexicalNode,\n NodeKey,\n Spread\n} from \"lexical\";\nimport {\n EditorTheme,\n ThemeEmotionMap,\n WebinyTheme,\n findTypographyStyleByHtmlTag\n} from \"@webiny/lexical-theme\";\nimport { addClassNamesToElement } from \"@lexical/utils\";\nimport {\n QuoteNode as BaseQuoteNode,\n SerializedQuoteNode as BaseSerializedQuoteNode\n} from \"@lexical/rich-text\";\nimport { TextNodeThemeStyles, ThemeStyleValue, TypographyStylesNode } from \"~/types\";\n\nexport type SerializedQuoteNode = Spread<\n {\n styleId?: string;\n styles: ThemeStyleValue[];\n type: \"webiny-quote\";\n },\n BaseSerializedQuoteNode\n>;\n\nexport class QuoteNode extends BaseQuoteNode implements TextNodeThemeStyles, TypographyStylesNode {\n __styles: ThemeStyleValue[] = [];\n\n constructor(themeStyleId?: string, key?: NodeKey) {\n super(key);\n if (themeStyleId) {\n this.__styles.push({ styleId: themeStyleId, type: \"typography\" });\n }\n }\n\n /*\n * Find the first occurrence of the quoteblock in the theme styles and set as default.\n */\n protected setDefaultTypography(themeEmotionMap: ThemeEmotionMap) {\n const typographyStyle = findTypographyStyleByHtmlTag(\"quoteblock\", themeEmotionMap);\n if (typographyStyle) {\n this.__styles.push({ styleId: typographyStyle.id, type: \"typography\" });\n }\n }\n\n protected typographyStyleExist(themeEmotionMap: ThemeEmotionMap): boolean {\n const styleId = this.getTypographyStyleId();\n if (!styleId) {\n return false;\n }\n const style = themeEmotionMap[styleId];\n return !!style;\n }\n\n setTypography(typographyStyleId: string): this {\n const self = super.getWritable();\n if (!typographyStyleId) {\n return self;\n }\n\n if (!this.hasTypographyStyle()) {\n const themeStyle = {\n styleId: typographyStyleId,\n type: \"typography\"\n } as ThemeStyleValue;\n self.__styles.push(themeStyle);\n }\n return self;\n }\n\n getTypographyStyleId(): string | undefined {\n const style = this.__styles.find(x => x.type === \"typography\");\n return style?.styleId || undefined;\n }\n\n clearTypographyStyle(): this {\n const self = super.getWritable();\n self.__styles = self.__styles.filter(s => s.type !== \"typography\");\n return self;\n }\n\n hasTypographyStyle(): boolean {\n return !!this.getTypographyStyleId();\n }\n\n getThemeStyles(): ThemeStyleValue[] {\n const self = super.getLatest();\n return self.__styles;\n }\n\n setThemeStyles(styles: ThemeStyleValue[]) {\n const self = super.getWritable();\n self.__styles = [...styles];\n return self;\n }\n\n static override getType(): string {\n return \"webiny-quote\";\n }\n\n static override clone(node: QuoteNode): QuoteNode {\n return new QuoteNode(node.getTypographyStyleId(), node.__key);\n }\n\n addThemeStylesToHTMLElement(element: HTMLElement, theme: EditorTheme): HTMLElement {\n const themeEmotionMap = theme?.emotionMap;\n\n if (!themeEmotionMap) {\n return element;\n }\n\n // style exist and is in active use\n if (this.hasTypographyStyle() && this.typographyStyleExist(themeEmotionMap)) {\n const styleId = this.getTypographyStyleId();\n if (styleId) {\n const typographyValue = themeEmotionMap[styleId];\n addClassNamesToElement(element, typographyValue?.className);\n return element;\n }\n }\n\n return element;\n }\n\n override createDOM(config: EditorConfig): HTMLElement {\n const element = super.createDOM(config);\n const wTheme = config.theme as WebinyTheme;\n const emotionThemeMap = wTheme?.emotionMap;\n\n if (!emotionThemeMap) {\n return element;\n }\n\n // if styleId is not set or user removed the style from theme, set default style\n if (!this.hasTypographyStyle() || !this.typographyStyleExist(emotionThemeMap)) {\n this.setDefaultTypography(emotionThemeMap);\n }\n\n this.addThemeStylesToHTMLElement(element, config.theme);\n return element;\n }\n\n static importDomConversionMap(): DOMConversion<HTMLElement> | null {\n return {\n conversion: convertBlockquoteElement,\n priority: 0\n };\n }\n\n static override importDOM(): DOMConversionMap | null {\n return {\n blockquote: () => {\n return this.importDomConversionMap();\n }\n };\n }\n\n static override importJSON(serializedNode: SerializedQuoteNode): QuoteNode {\n const node = $createQuoteNode();\n node.setFormat(serializedNode.format);\n node.setIndent(serializedNode.indent);\n node.setDirection(serializedNode.direction);\n if (!!serializedNode?.styles?.length) {\n node.setThemeStyles(serializedNode.styles);\n return node;\n }\n // for old nodes data migrate the style id into the list\n if (!!serializedNode?.styleId) {\n const styles = [\n { styleId: serializedNode.styleId, type: \"typography\" }\n ] as ThemeStyleValue[];\n node.setThemeStyles(styles);\n }\n return node;\n }\n\n override exportJSON(): SerializedQuoteNode {\n return {\n ...super.exportJSON(),\n type: \"webiny-quote\",\n styles: this.__styles,\n styleId: this.getTypographyStyleId()\n };\n }\n}\n\nfunction convertBlockquoteElement() {\n const node = $createQuoteNode();\n return {\n node\n };\n}\n\nexport function $createQuoteNode(themeStyleId?: string, key?: NodeKey): QuoteNode {\n return new QuoteNode(themeStyleId, key);\n}\n\nexport function $isQuoteNode(node: LexicalNode | null | undefined): node is QuoteNode {\n return node instanceof QuoteNode;\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["_lexicalTheme","require","_utils","_richText","QuoteNode","exports","_BaseQuoteNode","themeStyleId","key","_this","_classCallCheck2","default","_callSuper2","_defineProperty2","__styles","push","styleId","type","_inherits2","_createClass2","value","setDefaultTypography","themeEmotionMap","typographyStyle","findTypographyStyleByHtmlTag","id","typographyStyleExist","getTypographyStyleId","style","setTypography","typographyStyleId","self","_get2","_getPrototypeOf2","prototype","call","hasTypographyStyle","themeStyle","find","x","undefined","clearTypographyStyle","filter","s","getThemeStyles","setThemeStyles","styles","_toConsumableArray2","addThemeStylesToHTMLElement","element","theme","emotionMap","typographyValue","addClassNamesToElement","className","createDOM","config","wTheme","emotionThemeMap","exportJSON","_objectSpread2","getType","clone","node","__key","importDomConversionMap","conversion","convertBlockquoteElement","priority","importDOM","_this2","blockquote","importJSON","serializedNode","$createQuoteNode","setFormat","format","setIndent","indent","setDirection","direction","length","BaseQuoteNode","$isQuoteNode"],"sources":["QuoteNode.ts"],"sourcesContent":["import {\n DOMConversion,\n DOMConversionMap,\n EditorConfig,\n LexicalNode,\n NodeKey,\n Spread\n} from \"lexical\";\nimport {\n EditorTheme,\n ThemeEmotionMap,\n WebinyTheme,\n findTypographyStyleByHtmlTag\n} from \"@webiny/lexical-theme\";\nimport { addClassNamesToElement } from \"@lexical/utils\";\nimport {\n QuoteNode as BaseQuoteNode,\n SerializedQuoteNode as BaseSerializedQuoteNode\n} from \"@lexical/rich-text\";\nimport { TextNodeThemeStyles, ThemeStyleValue, TypographyStylesNode } from \"~/types\";\n\nexport type SerializedQuoteNode = Spread<\n {\n styleId?: string;\n styles: ThemeStyleValue[];\n type: \"webiny-quote\";\n },\n BaseSerializedQuoteNode\n>;\n\nexport class QuoteNode extends BaseQuoteNode implements TextNodeThemeStyles, TypographyStylesNode {\n __styles: ThemeStyleValue[] = [];\n\n constructor(themeStyleId?: string, key?: NodeKey) {\n super(key);\n if (themeStyleId) {\n this.__styles.push({ styleId: themeStyleId, type: \"typography\" });\n }\n }\n\n /*\n * Find the first occurrence of the quoteblock in the theme styles and set as default.\n */\n protected setDefaultTypography(themeEmotionMap: ThemeEmotionMap) {\n const typographyStyle = findTypographyStyleByHtmlTag(\"quoteblock\", themeEmotionMap);\n if (typographyStyle) {\n this.__styles.push({ styleId: typographyStyle.id, type: \"typography\" });\n }\n }\n\n protected typographyStyleExist(themeEmotionMap: ThemeEmotionMap): boolean {\n const styleId = this.getTypographyStyleId();\n if (!styleId) {\n return false;\n }\n const style = themeEmotionMap[styleId];\n return !!style;\n }\n\n setTypography(typographyStyleId: string): this {\n const self = super.getWritable();\n if (!typographyStyleId) {\n return self;\n }\n\n if (!this.hasTypographyStyle()) {\n const themeStyle = {\n styleId: typographyStyleId,\n type: \"typography\"\n } as ThemeStyleValue;\n self.__styles.push(themeStyle);\n }\n return self;\n }\n\n getTypographyStyleId(): string | undefined {\n const style = this.__styles.find(x => x.type === \"typography\");\n return style?.styleId || undefined;\n }\n\n clearTypographyStyle(): this {\n const self = super.getWritable();\n self.__styles = self.__styles.filter(s => s.type !== \"typography\");\n return self;\n }\n\n hasTypographyStyle(): boolean {\n return !!this.getTypographyStyleId();\n }\n\n getThemeStyles(): ThemeStyleValue[] {\n const self = super.getLatest();\n return self.__styles;\n }\n\n setThemeStyles(styles: ThemeStyleValue[]) {\n const self = super.getWritable();\n self.__styles = [...styles];\n return self;\n }\n\n static override getType(): string {\n return \"webiny-quote\";\n }\n\n static override clone(node: QuoteNode): QuoteNode {\n return new QuoteNode(node.getTypographyStyleId(), node.__key);\n }\n\n addThemeStylesToHTMLElement(element: HTMLElement, theme: EditorTheme): HTMLElement {\n const themeEmotionMap = theme?.emotionMap;\n\n if (!themeEmotionMap) {\n return element;\n }\n\n // style exist and is in active use\n if (this.hasTypographyStyle() && this.typographyStyleExist(themeEmotionMap)) {\n const styleId = this.getTypographyStyleId();\n if (styleId) {\n const typographyValue = themeEmotionMap[styleId];\n addClassNamesToElement(element, typographyValue?.className);\n return element;\n }\n }\n\n return element;\n }\n\n override createDOM(config: EditorConfig): HTMLElement {\n const element = super.createDOM(config);\n const wTheme = config.theme as WebinyTheme;\n const emotionThemeMap = wTheme?.emotionMap;\n\n if (!emotionThemeMap) {\n return element;\n }\n\n // if styleId is not set or user removed the style from theme, set default style\n if (!this.hasTypographyStyle() || !this.typographyStyleExist(emotionThemeMap)) {\n this.setDefaultTypography(emotionThemeMap);\n }\n\n this.addThemeStylesToHTMLElement(element, config.theme);\n return element;\n }\n\n static importDomConversionMap(): DOMConversion<HTMLElement> | null {\n return {\n conversion: convertBlockquoteElement,\n priority: 0\n };\n }\n\n static override importDOM(): DOMConversionMap | null {\n return {\n blockquote: () => {\n return this.importDomConversionMap();\n }\n };\n }\n\n static override importJSON(serializedNode: SerializedQuoteNode): QuoteNode {\n const node = $createQuoteNode();\n node.setFormat(serializedNode.format);\n node.setIndent(serializedNode.indent);\n node.setDirection(serializedNode.direction);\n if (!!serializedNode?.styles?.length) {\n node.setThemeStyles(serializedNode.styles);\n return node;\n }\n // for old nodes data migrate the style id into the list\n if (!!serializedNode?.styleId) {\n const styles = [\n { styleId: serializedNode.styleId, type: \"typography\" }\n ] as ThemeStyleValue[];\n node.setThemeStyles(styles);\n }\n return node;\n }\n\n override exportJSON(): SerializedQuoteNode {\n return {\n ...super.exportJSON(),\n type: \"webiny-quote\",\n styles: this.__styles,\n styleId: this.getTypographyStyleId()\n };\n }\n}\n\nfunction convertBlockquoteElement() {\n const node = $createQuoteNode();\n return {\n node\n };\n}\n\nexport function $createQuoteNode(themeStyleId?: string, key?: NodeKey): QuoteNode {\n return new QuoteNode(themeStyleId, key);\n}\n\nexport function $isQuoteNode(node: LexicalNode | null | undefined): node is QuoteNode {\n return node instanceof QuoteNode;\n}\n"],"mappings":"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","ignoreList":[]}
package/TypographyNode.js CHANGED
@@ -8,16 +8,15 @@ exports.TypographyNode = exports.ADD_TYPOGRAPHY_COMMAND = exports.$isTypographyN
8
8
  var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
9
9
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
10
10
  var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
11
+ var _callSuper2 = _interopRequireDefault(require("@babel/runtime/helpers/callSuper"));
11
12
  var _get2 = _interopRequireDefault(require("@babel/runtime/helpers/get"));
12
13
  var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
13
14
  var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
14
- var _createSuper2 = _interopRequireDefault(require("@babel/runtime/helpers/createSuper"));
15
15
  var _lexical = require("lexical");
16
16
  var _utils = require("@lexical/utils");
17
17
  var _ParagraphNode = require("./ParagraphNode");
18
18
  // Command and payload
19
- var ADD_TYPOGRAPHY_COMMAND = (0, _lexical.createCommand)("ADD_TYPOGRAPHY_COMMAND");
20
- exports.ADD_TYPOGRAPHY_COMMAND = ADD_TYPOGRAPHY_COMMAND;
19
+ var ADD_TYPOGRAPHY_COMMAND = exports.ADD_TYPOGRAPHY_COMMAND = (0, _lexical.createCommand)("ADD_TYPOGRAPHY_COMMAND");
21
20
  var TypographyNodeAttrName = "data-typography-style-id";
22
21
 
23
22
  // Node
@@ -25,20 +24,19 @@ var TypographyNodeAttrName = "data-typography-style-id";
25
24
  * Main responsibility of this node is to apply custom or Webiny theme typography to selected text.
26
25
  * Extends the original ElementNode node to add additional transformation and support for webiny theme typography.
27
26
  */
28
- var TypographyNode = /*#__PURE__*/function (_ElementNode) {
29
- (0, _inherits2.default)(TypographyNode, _ElementNode);
30
- var _super = (0, _createSuper2.default)(TypographyNode);
27
+ var TypographyNode = exports.TypographyNode = /*#__PURE__*/function (_ElementNode) {
31
28
  function TypographyNode(value, key) {
32
29
  var _this;
33
30
  (0, _classCallCheck2.default)(this, TypographyNode);
34
- _this = _super.call(this, key);
31
+ _this = (0, _callSuper2.default)(this, TypographyNode, [key]);
35
32
  _this.__tag = value.tag;
36
33
  _this.__styleId = value.id;
37
34
  _this.__name = value.name;
38
35
  _this.__css = value.css;
39
36
  return _this;
40
37
  }
41
- (0, _createClass2.default)(TypographyNode, [{
38
+ (0, _inherits2.default)(TypographyNode, _ElementNode);
39
+ return (0, _createClass2.default)(TypographyNode, [{
42
40
  key: "getTypographyValue",
43
41
  value: function getTypographyValue() {
44
42
  return {
@@ -138,16 +136,12 @@ var TypographyNode = /*#__PURE__*/function (_ElementNode) {
138
136
  return node;
139
137
  }
140
138
  }]);
141
- return TypographyNode;
142
139
  }(_lexical.ElementNode);
143
- exports.TypographyNode = TypographyNode;
144
- var $createTypographyNode = function $createTypographyNode(value, key) {
140
+ var $createTypographyNode = exports.$createTypographyNode = function $createTypographyNode(value, key) {
145
141
  return new TypographyNode(value, key);
146
142
  };
147
- exports.$createTypographyNode = $createTypographyNode;
148
- var $isTypographyNode = function $isTypographyNode(node) {
143
+ var $isTypographyNode = exports.$isTypographyNode = function $isTypographyNode(node) {
149
144
  return node instanceof TypographyNode;
150
145
  };
151
- exports.$isTypographyNode = $isTypographyNode;
152
146
 
153
147
  //# sourceMappingURL=TypographyNode.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_lexical","require","_utils","_ParagraphNode","ADD_TYPOGRAPHY_COMMAND","createCommand","exports","TypographyNodeAttrName","TypographyNode","_ElementNode","_inherits2","default","_super","_createSuper2","value","key","_this","_classCallCheck2","call","__tag","tag","__styleId","id","__name","name","__css","css","_createClass2","getTypographyValue","addStylesHTMLElement","element","theme","typographyStyleValue","emotionMap","undefined","styles","addClassNamesToElement","className","setAttribute","exportJSON","_objectSpread2","_get2","_getPrototypeOf2","prototype","typographyStyles","styleId","type","version","createDOM","config","document","createElement","updateDOM","insertNewAfter","newElement","$createTypographyNode","direction","getDirection","setDirection","insertAfter","collapseAtStart","paragraph","$createParagraphNode","children","getChildren","forEach","child","append","replace","getType","clone","node","__key","importJSON","serializedNode","setFormat","format","setIndent","indent","ElementNode","$isTypographyNode"],"sources":["TypographyNode.ts"],"sourcesContent":["import {\n createCommand,\n EditorConfig,\n ElementNode,\n LexicalCommand,\n LexicalEditor,\n LexicalNode,\n NodeKey,\n SerializedElementNode,\n Spread\n} from \"lexical\";\nimport { addClassNamesToElement } from \"@lexical/utils\";\nimport { EditorTheme, TypographyHTMLTag, TypographyValue } from \"@webiny/lexical-theme\";\nimport { $createParagraphNode } from \"~/ParagraphNode\";\n\n// Command and payload\nexport const ADD_TYPOGRAPHY_COMMAND: LexicalCommand<TypographyPayload> =\n createCommand(\"ADD_TYPOGRAPHY_COMMAND\");\n\nconst TypographyNodeAttrName = \"data-typography-style-id\";\n\nexport interface TypographyPayload {\n value: TypographyValue;\n caption?: LexicalEditor;\n key?: NodeKey;\n}\n\n// Node\nexport type SerializedTypographyNode = Spread<\n {\n tag: TypographyHTMLTag;\n styleId: string;\n name: string;\n typographyStyles: Record<string, any>;\n type: \"typography-el-node\";\n version: 1;\n },\n SerializedElementNode\n>;\n\n/**\n * Main responsibility of this node is to apply custom or Webiny theme typography to selected text.\n * Extends the original ElementNode node to add additional transformation and support for webiny theme typography.\n */\nexport class TypographyNode extends ElementNode {\n __styleId: string;\n __tag: TypographyHTMLTag;\n __name: string;\n __css: Record<string, any>;\n\n constructor(value: TypographyValue, key?: NodeKey) {\n super(key);\n this.__tag = value.tag;\n this.__styleId = value.id;\n this.__name = value.name;\n this.__css = value.css;\n }\n\n static override getType(): string {\n return \"typography-el-node\";\n }\n\n static override clone(node: TypographyNode): TypographyNode {\n return new TypographyNode(\n {\n css: node.__css,\n id: node.__styleId,\n name: node.__name,\n tag: node.__tag\n },\n node.__key\n );\n }\n getTypographyValue(): TypographyValue {\n return {\n tag: this.__tag,\n css: this.__css,\n id: this.__styleId,\n name: this.__name\n };\n }\n\n addStylesHTMLElement(element: HTMLElement, theme: EditorTheme): HTMLElement {\n const typographyStyleValue = theme?.emotionMap\n ? theme?.emotionMap[this.__styleId]\n : undefined;\n if (typographyStyleValue) {\n this.__css = typographyStyleValue.styles;\n addClassNamesToElement(element, typographyStyleValue.className);\n }\n element.setAttribute(TypographyNodeAttrName, this.__styleId);\n\n return element;\n }\n\n override exportJSON(): SerializedTypographyNode {\n return {\n ...super.exportJSON(),\n tag: this.__tag,\n typographyStyles: this.__css,\n name: this.__name,\n styleId: this.__styleId,\n type: \"typography-el-node\",\n version: 1\n };\n }\n\n static override importJSON(serializedNode: SerializedTypographyNode): TypographyNode {\n const node = new TypographyNode({\n id: serializedNode.styleId,\n css: serializedNode.typographyStyles,\n tag: serializedNode.tag,\n name: serializedNode.name\n });\n node.setFormat(serializedNode.format);\n node.setIndent(serializedNode.indent);\n node.setDirection(serializedNode.direction);\n return node;\n }\n\n override createDOM(config: EditorConfig): HTMLElement {\n const tag = this.__tag;\n const element = document.createElement(tag);\n return this.addStylesHTMLElement(element, config.theme);\n }\n\n override updateDOM(): boolean {\n return false;\n }\n\n override insertNewAfter(): TypographyNode {\n const newElement = $createTypographyNode({\n tag: this.__tag,\n name: this.__name,\n css: this.__css,\n id: this.__styleId\n });\n const direction = this.getDirection();\n newElement.setDirection(direction);\n this.insertAfter(newElement);\n return newElement;\n }\n\n override collapseAtStart(): true {\n const paragraph = $createParagraphNode();\n const children = this.getChildren();\n children.forEach(child => paragraph.append(child));\n this.replace(paragraph);\n return true;\n }\n}\n\nexport const $createTypographyNode = (value: TypographyValue, key?: NodeKey): TypographyNode => {\n return new TypographyNode(value, key);\n};\n\nexport const $isTypographyNode = (\n node: ElementNode | LexicalNode | null\n): node is TypographyNode => {\n return node instanceof TypographyNode;\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["_lexical","require","_utils","_ParagraphNode","ADD_TYPOGRAPHY_COMMAND","exports","createCommand","TypographyNodeAttrName","TypographyNode","_ElementNode","value","key","_this","_classCallCheck2","default","_callSuper2","__tag","tag","__styleId","id","__name","name","__css","css","_inherits2","_createClass2","getTypographyValue","addStylesHTMLElement","element","theme","typographyStyleValue","emotionMap","undefined","styles","addClassNamesToElement","className","setAttribute","exportJSON","_objectSpread2","_get2","_getPrototypeOf2","prototype","call","typographyStyles","styleId","type","version","createDOM","config","document","createElement","updateDOM","insertNewAfter","newElement","$createTypographyNode","direction","getDirection","setDirection","insertAfter","collapseAtStart","paragraph","$createParagraphNode","children","getChildren","forEach","child","append","replace","getType","clone","node","__key","importJSON","serializedNode","setFormat","format","setIndent","indent","ElementNode","$isTypographyNode"],"sources":["TypographyNode.ts"],"sourcesContent":["import {\n createCommand,\n EditorConfig,\n ElementNode,\n LexicalCommand,\n LexicalEditor,\n LexicalNode,\n NodeKey,\n SerializedElementNode,\n Spread\n} from \"lexical\";\nimport { addClassNamesToElement } from \"@lexical/utils\";\nimport { EditorTheme, TypographyHTMLTag, TypographyValue } from \"@webiny/lexical-theme\";\nimport { $createParagraphNode } from \"~/ParagraphNode\";\n\n// Command and payload\nexport const ADD_TYPOGRAPHY_COMMAND: LexicalCommand<TypographyPayload> =\n createCommand(\"ADD_TYPOGRAPHY_COMMAND\");\n\nconst TypographyNodeAttrName = \"data-typography-style-id\";\n\nexport interface TypographyPayload {\n value: TypographyValue;\n caption?: LexicalEditor;\n key?: NodeKey;\n}\n\n// Node\nexport type SerializedTypographyNode = Spread<\n {\n tag: TypographyHTMLTag;\n styleId: string;\n name: string;\n typographyStyles: Record<string, any>;\n type: \"typography-el-node\";\n version: 1;\n },\n SerializedElementNode\n>;\n\n/**\n * Main responsibility of this node is to apply custom or Webiny theme typography to selected text.\n * Extends the original ElementNode node to add additional transformation and support for webiny theme typography.\n */\nexport class TypographyNode extends ElementNode {\n __styleId: string;\n __tag: TypographyHTMLTag;\n __name: string;\n __css: Record<string, any>;\n\n constructor(value: TypographyValue, key?: NodeKey) {\n super(key);\n this.__tag = value.tag;\n this.__styleId = value.id;\n this.__name = value.name;\n this.__css = value.css;\n }\n\n static override getType(): string {\n return \"typography-el-node\";\n }\n\n static override clone(node: TypographyNode): TypographyNode {\n return new TypographyNode(\n {\n css: node.__css,\n id: node.__styleId,\n name: node.__name,\n tag: node.__tag\n },\n node.__key\n );\n }\n getTypographyValue(): TypographyValue {\n return {\n tag: this.__tag,\n css: this.__css,\n id: this.__styleId,\n name: this.__name\n };\n }\n\n addStylesHTMLElement(element: HTMLElement, theme: EditorTheme): HTMLElement {\n const typographyStyleValue = theme?.emotionMap\n ? theme?.emotionMap[this.__styleId]\n : undefined;\n if (typographyStyleValue) {\n this.__css = typographyStyleValue.styles;\n addClassNamesToElement(element, typographyStyleValue.className);\n }\n element.setAttribute(TypographyNodeAttrName, this.__styleId);\n\n return element;\n }\n\n override exportJSON(): SerializedTypographyNode {\n return {\n ...super.exportJSON(),\n tag: this.__tag,\n typographyStyles: this.__css,\n name: this.__name,\n styleId: this.__styleId,\n type: \"typography-el-node\",\n version: 1\n };\n }\n\n static override importJSON(serializedNode: SerializedTypographyNode): TypographyNode {\n const node = new TypographyNode({\n id: serializedNode.styleId,\n css: serializedNode.typographyStyles,\n tag: serializedNode.tag,\n name: serializedNode.name\n });\n node.setFormat(serializedNode.format);\n node.setIndent(serializedNode.indent);\n node.setDirection(serializedNode.direction);\n return node;\n }\n\n override createDOM(config: EditorConfig): HTMLElement {\n const tag = this.__tag;\n const element = document.createElement(tag);\n return this.addStylesHTMLElement(element, config.theme);\n }\n\n override updateDOM(): boolean {\n return false;\n }\n\n override insertNewAfter(): TypographyNode {\n const newElement = $createTypographyNode({\n tag: this.__tag,\n name: this.__name,\n css: this.__css,\n id: this.__styleId\n });\n const direction = this.getDirection();\n newElement.setDirection(direction);\n this.insertAfter(newElement);\n return newElement;\n }\n\n override collapseAtStart(): true {\n const paragraph = $createParagraphNode();\n const children = this.getChildren();\n children.forEach(child => paragraph.append(child));\n this.replace(paragraph);\n return true;\n }\n}\n\nexport const $createTypographyNode = (value: TypographyValue, key?: NodeKey): TypographyNode => {\n return new TypographyNode(value, key);\n};\n\nexport const $isTypographyNode = (\n node: ElementNode | LexicalNode | null\n): node is TypographyNode => {\n return node instanceof TypographyNode;\n};\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["require","_LexicalContentEditable","React","_interopRequireWildcard","LexicalContentEditable","_ref","className","createElement","ContentEditable"],"sources":["ContentEditable.tsx"],"sourcesContent":["/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\nimport \"./ContentEditable.css\";\n\nimport { ContentEditable } from \"@lexical/react/LexicalContentEditable\";\nimport * as React from \"react\";\n\nexport function LexicalContentEditable({ className }: { className?: string }): JSX.Element {\n return <ContentEditable className={className || \"ContentEditable__root\"} />;\n}\n"],"mappings":";;;;;;;AAOAA,OAAA;AAEA,IAAAC,uBAAA,GAAAD,OAAA;AACA,IAAAE,KAAA,GAAAC,uBAAA,CAAAH,OAAA;AAVA;AACA;AACA;AACA;AACA;AACA;AACA;;AAMO,SAASI,sBAAsBA,CAAAC,IAAA,EAAqD;EAAA,IAAlDC,SAAS,GAAAD,IAAA,CAATC,SAAS;EAC9C,oBAAOJ,KAAA,CAAAK,aAAA,CAACN,uBAAA,CAAAO,eAAe;IAACF,SAAS,EAAEA,SAAS,IAAI;EAAwB,CAAE,CAAC;AAC/E"}
1
+ {"version":3,"names":["require","_LexicalContentEditable","React","_interopRequireWildcard","LexicalContentEditable","_ref","className","createElement","ContentEditable"],"sources":["ContentEditable.tsx"],"sourcesContent":["/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\nimport \"./ContentEditable.css\";\n\nimport { ContentEditable } from \"@lexical/react/LexicalContentEditable\";\nimport * as React from \"react\";\n\nexport function LexicalContentEditable({ className }: { className?: string }): JSX.Element {\n return <ContentEditable className={className || \"ContentEditable__root\"} />;\n}\n"],"mappings":";;;;;;;AAOAA,OAAA;AAEA,IAAAC,uBAAA,GAAAD,OAAA;AACA,IAAAE,KAAA,GAAAC,uBAAA,CAAAH,OAAA;AAVA;AACA;AACA;AACA;AACA;AACA;AACA;;AAMO,SAASI,sBAAsBA,CAAAC,IAAA,EAAqD;EAAA,IAAlDC,SAAS,GAAAD,IAAA,CAATC,SAAS;EAC9C,oBAAOJ,KAAA,CAAAK,aAAA,CAACN,uBAAA,CAAAO,eAAe;IAACF,SAAS,EAAEA,SAAS,IAAI;EAAwB,CAAE,CAAC;AAC/E","ignoreList":[]}
@@ -1,7 +1,7 @@
1
1
  /// <reference types="react" />
2
2
  import type { LexicalEditor, NodeKey } from "lexical";
3
3
  import "./ImageComponent.css";
4
- export default function ImageComponent({ id, src, altText, nodeKey, width, height, maxWidth, resizable, showCaption, caption, captionsEnabled }: {
4
+ interface ImageComponentProps {
5
5
  id: string;
6
6
  altText: string;
7
7
  caption: LexicalEditor;
@@ -13,4 +13,6 @@ export default function ImageComponent({ id, src, altText, nodeKey, width, heigh
13
13
  src: string;
14
14
  width: "inherit" | number;
15
15
  captionsEnabled: boolean;
16
- }): JSX.Element;
16
+ }
17
+ export default function ImageComponent({ id, src, altText, nodeKey, width, height, maxWidth, resizable, showCaption, caption, captionsEnabled }: ImageComponentProps): JSX.Element;
18
+ export {};
@@ -7,7 +7,8 @@ Object.defineProperty(exports, "__esModule", {
7
7
  });
8
8
  exports.default = ImageComponent;
9
9
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
10
- var React = _interopRequireWildcard(require("react"));
10
+ var _react = _interopRequireWildcard(require("react"));
11
+ var React = _react;
11
12
  require("./ImageComponent.css");
12
13
  var _LexicalAutoFocusPlugin = require("@lexical/react/LexicalAutoFocusPlugin");
13
14
  var _LexicalComposerContext = require("@lexical/react/LexicalComposerContext");
@@ -80,26 +81,26 @@ function ImageComponent(_ref2) {
80
81
  showCaption = _ref2.showCaption,
81
82
  caption = _ref2.caption,
82
83
  captionsEnabled = _ref2.captionsEnabled;
83
- var imageRef = (0, React.useRef)(null);
84
- var buttonRef = (0, React.useRef)(null);
84
+ var imageRef = (0, _react.useRef)(null);
85
+ var buttonRef = (0, _react.useRef)(null);
85
86
  var _useLexicalNodeSelect = (0, _useLexicalNodeSelection.useLexicalNodeSelection)(nodeKey),
86
87
  _useLexicalNodeSelect2 = (0, _slicedToArray2.default)(_useLexicalNodeSelect, 3),
87
88
  isSelected = _useLexicalNodeSelect2[0],
88
89
  setSelected = _useLexicalNodeSelect2[1],
89
90
  clearSelection = _useLexicalNodeSelect2[2];
90
- var _useState = (0, React.useState)(false),
91
+ var _useState = (0, _react.useState)(false),
91
92
  _useState2 = (0, _slicedToArray2.default)(_useState, 2),
92
93
  isResizing = _useState2[0],
93
94
  setIsResizing = _useState2[1];
94
95
  var _useLexicalComposerCo = (0, _LexicalComposerContext.useLexicalComposerContext)(),
95
96
  _useLexicalComposerCo2 = (0, _slicedToArray2.default)(_useLexicalComposerCo, 1),
96
97
  editor = _useLexicalComposerCo2[0];
97
- var _useState3 = (0, React.useState)(null),
98
+ var _useState3 = (0, _react.useState)(null),
98
99
  _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
99
100
  selection = _useState4[0],
100
101
  setSelection = _useState4[1];
101
- var activeEditorRef = (0, React.useRef)(null);
102
- var onDelete = (0, React.useCallback)(function (payload) {
102
+ var activeEditorRef = (0, _react.useRef)(null);
103
+ var onDelete = (0, _react.useCallback)(function (payload) {
103
104
  if (isSelected && (0, _lexical.$isNodeSelection)((0, _lexical.$getSelection)())) {
104
105
  var event = payload;
105
106
  event.preventDefault();
@@ -111,7 +112,7 @@ function ImageComponent(_ref2) {
111
112
  }
112
113
  return false;
113
114
  }, [isSelected, nodeKey, setSelected]);
114
- var onEnter = (0, React.useCallback)(function (event) {
115
+ var onEnter = (0, _react.useCallback)(function (event) {
115
116
  var latestSelection = (0, _lexical.$getSelection)();
116
117
  var buttonElem = buttonRef.current;
117
118
  if (isSelected && (0, _lexical.$isNodeSelection)(latestSelection) && latestSelection.getNodes().length === 1) {
@@ -129,7 +130,7 @@ function ImageComponent(_ref2) {
129
130
  }
130
131
  return false;
131
132
  }, [caption, isSelected, showCaption]);
132
- var onEscape = (0, React.useCallback)(function (event) {
133
+ var onEscape = (0, _react.useCallback)(function (event) {
133
134
  if (activeEditorRef.current === caption || buttonRef.current === event.target) {
134
135
  (0, _lexical.$setSelection)(null);
135
136
  editor.update(function () {
@@ -143,7 +144,7 @@ function ImageComponent(_ref2) {
143
144
  }
144
145
  return false;
145
146
  }, [caption, editor, setSelected]);
146
- (0, React.useEffect)(function () {
147
+ (0, _react.useEffect)(function () {
147
148
  var isMounted = true;
148
149
  var unregister = (0, _utils.mergeRegister)(editor.registerUpdateListener(function (_ref3) {
149
150
  var editorState = _ref3.editorState;
@@ -211,7 +212,7 @@ function ImageComponent(_ref2) {
211
212
  historyState = _useSharedHistoryCont.historyState;
212
213
  var draggable = isSelected && (0, _lexical.$isNodeSelection)(selection) && !isResizing;
213
214
  var isFocused = isSelected || isResizing;
214
- return /*#__PURE__*/React.createElement(React.Suspense, {
215
+ return /*#__PURE__*/React.createElement(_react.Suspense, {
215
216
  fallback: null
216
217
  }, /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
217
218
  draggable: draggable
@@ -1 +1 @@
1
- {"version":3,"names":["React","_interopRequireWildcard","require","_LexicalAutoFocusPlugin","_LexicalComposerContext","_LexicalErrorBoundary","_interopRequireDefault","_LexicalHistoryPlugin","_LexicalNestedComposer","_LexicalRichTextPlugin","_useLexicalNodeSelection","_utils","_lexical","_Placeholder","_ImageResizer","_SharedHistoryContext","_ImageNode","_ContentEditable","imageCache","Set","useSuspenseImage","src","has","Promise","resolve","img","Image","onload","add","LazyImage","_ref","id","altText","className","imageRef","width","height","maxWidth","createElement","undefined","alt","ref","style","draggable","ImageComponent","_ref2","nodeKey","resizable","showCaption","caption","captionsEnabled","useRef","buttonRef","_useLexicalNodeSelect","useLexicalNodeSelection","_useLexicalNodeSelect2","_slicedToArray2","default","isSelected","setSelected","clearSelection","_useState","useState","_useState2","isResizing","setIsResizing","_useLexicalComposerCo","useLexicalComposerContext","_useLexicalComposerCo2","editor","_useState3","_useState4","selection","setSelection","activeEditorRef","onDelete","useCallback","payload","$isNodeSelection","$getSelection","event","preventDefault","node","$getNodeByKey","$isImageNode","remove","onEnter","latestSelection","buttonElem","current","getNodes","length","$setSelection","focus","document","activeElement","onEscape","target","update","parentRootElement","getRootElement","useEffect","isMounted","unregister","mergeRegister","registerUpdateListener","_ref3","editorState","read","registerCommand","SELECTION_CHANGE_COMMAND","_","activeEditor","COMMAND_PRIORITY_LOW","CLICK_COMMAND","shiftKey","DRAGSTART_COMMAND","KEY_DELETE_COMMAND","KEY_BACKSPACE_COMMAND","KEY_ENTER_COMMAND","KEY_ESCAPE_COMMAND","setShowCaption","onResizeEnd","nextWidth","nextHeight","setTimeout","setWidthAndHeight","onResizeStart","_useSharedHistoryCont","useSharedHistoryContext","historyState","isFocused","Suspense","fallback","Fragment","concat","LexicalNestedComposer","initialEditor","AutoFocusPlugin","HistoryPlugin","externalHistoryState","RichTextPlugin","contentEditable","LexicalContentEditable","placeholder","Placeholder","ErrorBoundary","LexicalErrorBoundary","ImageResizer"],"sources":["ImageComponent.tsx"],"sourcesContent":["/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\nimport * as React from \"react\";\nimport { Suspense, useCallback, useEffect, useRef, useState } from \"react\";\n\nimport type { GridSelection, LexicalEditor, NodeKey, NodeSelection, RangeSelection } from \"lexical\";\n\nimport \"./ImageComponent.css\";\n\nimport { AutoFocusPlugin } from \"@lexical/react/LexicalAutoFocusPlugin\";\nimport { useLexicalComposerContext } from \"@lexical/react/LexicalComposerContext\";\nimport LexicalErrorBoundary from \"@lexical/react/LexicalErrorBoundary\";\nimport { HistoryPlugin } from \"@lexical/react/LexicalHistoryPlugin\";\nimport { LexicalNestedComposer } from \"@lexical/react/LexicalNestedComposer\";\nimport { RichTextPlugin } from \"@lexical/react/LexicalRichTextPlugin\";\nimport { useLexicalNodeSelection } from \"@lexical/react/useLexicalNodeSelection\";\nimport { mergeRegister } from \"@lexical/utils\";\nimport {\n $getNodeByKey,\n $getSelection,\n $isNodeSelection,\n $setSelection,\n CLICK_COMMAND,\n COMMAND_PRIORITY_LOW,\n DRAGSTART_COMMAND,\n KEY_BACKSPACE_COMMAND,\n KEY_DELETE_COMMAND,\n KEY_ENTER_COMMAND,\n KEY_ESCAPE_COMMAND,\n SELECTION_CHANGE_COMMAND\n} from \"lexical\";\nimport { Placeholder } from \"./Placeholder\";\nimport { ImageResizer } from \"./ImageResizer\";\nimport { useSharedHistoryContext } from \"./SharedHistoryContext\";\nimport { $isImageNode } from \"~/ImageNode\";\nimport { LexicalContentEditable } from \"./ContentEditable\";\n\nconst imageCache = new Set();\n\nfunction useSuspenseImage(src: string) {\n if (!imageCache.has(src)) {\n throw new Promise(resolve => {\n const img = new Image();\n img.src = src;\n img.onload = () => {\n imageCache.add(src);\n resolve(null);\n };\n });\n }\n}\n\nfunction LazyImage({\n id,\n altText,\n className,\n imageRef,\n src,\n width,\n height,\n maxWidth\n}: {\n id: string;\n altText: string;\n className: string | null;\n height: \"inherit\" | number;\n imageRef: { current: null | HTMLImageElement };\n maxWidth: number;\n src: string;\n width: \"inherit\" | number;\n}): JSX.Element {\n useSuspenseImage(src);\n return (\n <img\n id={id}\n className={className || undefined}\n src={src}\n alt={altText}\n ref={imageRef}\n style={{\n height,\n maxWidth,\n width\n }}\n draggable=\"false\"\n />\n );\n}\n\nexport default function ImageComponent({\n id,\n src,\n altText,\n nodeKey,\n width,\n height,\n maxWidth,\n resizable,\n showCaption,\n caption,\n captionsEnabled\n}: {\n id: string;\n altText: string;\n caption: LexicalEditor;\n height: \"inherit\" | number;\n maxWidth: number;\n nodeKey: NodeKey;\n resizable: boolean;\n showCaption: boolean;\n src: string;\n width: \"inherit\" | number;\n captionsEnabled: boolean;\n}): JSX.Element {\n const imageRef = useRef<null | HTMLImageElement>(null);\n const buttonRef = useRef<HTMLButtonElement | null>(null);\n const [isSelected, setSelected, clearSelection] = useLexicalNodeSelection(nodeKey);\n const [isResizing, setIsResizing] = useState<boolean>(false);\n const [editor] = useLexicalComposerContext();\n const [selection, setSelection] = useState<\n RangeSelection | NodeSelection | GridSelection | null\n >(null);\n const activeEditorRef = useRef<LexicalEditor | null>(null);\n\n const onDelete = useCallback(\n (payload: KeyboardEvent) => {\n if (isSelected && $isNodeSelection($getSelection())) {\n const event: KeyboardEvent = payload;\n event.preventDefault();\n const node = $getNodeByKey(nodeKey);\n if ($isImageNode(node)) {\n node.remove();\n }\n setSelected(false);\n }\n return false;\n },\n [isSelected, nodeKey, setSelected]\n );\n\n const onEnter = useCallback(\n (event: KeyboardEvent) => {\n const latestSelection = $getSelection();\n const buttonElem = buttonRef.current;\n if (\n isSelected &&\n $isNodeSelection(latestSelection) &&\n latestSelection.getNodes().length === 1\n ) {\n if (showCaption) {\n // Move focus into nested editor\n $setSelection(null);\n event.preventDefault();\n caption.focus();\n return true;\n } else if (buttonElem !== null && buttonElem !== document.activeElement) {\n event.preventDefault();\n buttonElem.focus();\n return true;\n }\n }\n return false;\n },\n [caption, isSelected, showCaption]\n );\n\n const onEscape = useCallback(\n (event: KeyboardEvent) => {\n if (activeEditorRef.current === caption || buttonRef.current === event.target) {\n $setSelection(null);\n editor.update(() => {\n setSelected(true);\n const parentRootElement = editor.getRootElement();\n if (parentRootElement !== null) {\n parentRootElement.focus();\n }\n });\n return true;\n }\n return false;\n },\n [caption, editor, setSelected]\n );\n\n useEffect(() => {\n let isMounted = true;\n const unregister = mergeRegister(\n editor.registerUpdateListener(({ editorState }) => {\n if (isMounted) {\n setSelection(editorState.read(() => $getSelection()));\n }\n }),\n editor.registerCommand(\n SELECTION_CHANGE_COMMAND,\n (_, activeEditor) => {\n activeEditorRef.current = activeEditor;\n return false;\n },\n COMMAND_PRIORITY_LOW\n ),\n editor.registerCommand<MouseEvent>(\n CLICK_COMMAND,\n payload => {\n const event = payload;\n if (isResizing) {\n return true;\n }\n if (event.target === imageRef.current) {\n if (event.shiftKey) {\n setSelected(!isSelected);\n } else {\n clearSelection();\n setSelected(true);\n }\n return true;\n }\n\n return false;\n },\n COMMAND_PRIORITY_LOW\n ),\n editor.registerCommand(\n DRAGSTART_COMMAND,\n event => {\n if (event.target === imageRef.current) {\n // TODO This is just a temporary workaround for FF to behave like other browsers.\n // Ideally, this handles drag & drop too (and all browsers).\n event.preventDefault();\n return true;\n }\n return false;\n },\n COMMAND_PRIORITY_LOW\n ),\n editor.registerCommand(KEY_DELETE_COMMAND, onDelete, COMMAND_PRIORITY_LOW),\n editor.registerCommand(KEY_BACKSPACE_COMMAND, onDelete, COMMAND_PRIORITY_LOW),\n editor.registerCommand(KEY_ENTER_COMMAND, onEnter, COMMAND_PRIORITY_LOW),\n editor.registerCommand(KEY_ESCAPE_COMMAND, onEscape, COMMAND_PRIORITY_LOW)\n );\n return () => {\n isMounted = false;\n unregister();\n };\n }, [\n clearSelection,\n editor,\n isResizing,\n isSelected,\n nodeKey,\n onDelete,\n onEnter,\n onEscape,\n setSelected\n ]);\n\n const setShowCaption = () => {\n editor.update(() => {\n const node = $getNodeByKey(nodeKey);\n if ($isImageNode(node)) {\n node.setShowCaption(true);\n }\n });\n };\n\n const onResizeEnd = (nextWidth: \"inherit\" | number, nextHeight: \"inherit\" | number) => {\n // Delay hiding the resize bars for click case\n setTimeout(() => {\n setIsResizing(false);\n }, 200);\n\n editor.update(() => {\n const node = $getNodeByKey(nodeKey);\n if ($isImageNode(node)) {\n node.setWidthAndHeight(nextWidth, nextHeight);\n }\n });\n };\n\n const onResizeStart = () => {\n setIsResizing(true);\n };\n\n const { historyState } = useSharedHistoryContext();\n const draggable = isSelected && $isNodeSelection(selection) && !isResizing;\n const isFocused = isSelected || isResizing;\n return (\n <Suspense fallback={null}>\n <>\n <div draggable={draggable}>\n <LazyImage\n id={id}\n className={\n isFocused\n ? `focused ${$isNodeSelection(selection) ? \"draggable\" : \"\"}`\n : null\n }\n src={src}\n altText={altText}\n imageRef={imageRef}\n width={width}\n height={height}\n maxWidth={maxWidth}\n />\n </div>\n {showCaption && (\n <div className=\"image-caption-container\">\n <LexicalNestedComposer initialEditor={caption}>\n <AutoFocusPlugin />\n <HistoryPlugin externalHistoryState={historyState} />\n <RichTextPlugin\n contentEditable={\n <LexicalContentEditable className=\"ImageNode__contentEditable\" />\n }\n placeholder={\n <Placeholder className=\"ImageNode__placeholder\">\n Enter a caption...\n </Placeholder>\n }\n ErrorBoundary={LexicalErrorBoundary}\n />\n </LexicalNestedComposer>\n </div>\n )}\n {resizable && $isNodeSelection(selection) && isFocused && (\n <ImageResizer\n showCaption={showCaption}\n setShowCaption={setShowCaption}\n editor={editor}\n buttonRef={buttonRef}\n imageRef={imageRef}\n maxWidth={maxWidth}\n onResizeStart={onResizeStart}\n onResizeEnd={onResizeEnd}\n captionsEnabled={captionsEnabled}\n />\n )}\n </>\n </Suspense>\n );\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","React","_LexicalAutoFocusPlugin","_LexicalComposerContext","_LexicalErrorBoundary","_interopRequireDefault","_LexicalHistoryPlugin","_LexicalNestedComposer","_LexicalRichTextPlugin","_useLexicalNodeSelection","_utils","_lexical","_Placeholder","_ImageResizer","_SharedHistoryContext","_ImageNode","_ContentEditable","imageCache","Set","useSuspenseImage","src","has","Promise","resolve","img","Image","onload","add","LazyImage","_ref","id","altText","className","imageRef","width","height","maxWidth","createElement","undefined","alt","ref","style","draggable","ImageComponent","_ref2","nodeKey","resizable","showCaption","caption","captionsEnabled","useRef","buttonRef","_useLexicalNodeSelect","useLexicalNodeSelection","_useLexicalNodeSelect2","_slicedToArray2","default","isSelected","setSelected","clearSelection","_useState","useState","_useState2","isResizing","setIsResizing","_useLexicalComposerCo","useLexicalComposerContext","_useLexicalComposerCo2","editor","_useState3","_useState4","selection","setSelection","activeEditorRef","onDelete","useCallback","payload","$isNodeSelection","$getSelection","event","preventDefault","node","$getNodeByKey","$isImageNode","remove","onEnter","latestSelection","buttonElem","current","getNodes","length","$setSelection","focus","document","activeElement","onEscape","target","update","parentRootElement","getRootElement","useEffect","isMounted","unregister","mergeRegister","registerUpdateListener","_ref3","editorState","read","registerCommand","SELECTION_CHANGE_COMMAND","_","activeEditor","COMMAND_PRIORITY_LOW","CLICK_COMMAND","shiftKey","DRAGSTART_COMMAND","KEY_DELETE_COMMAND","KEY_BACKSPACE_COMMAND","KEY_ENTER_COMMAND","KEY_ESCAPE_COMMAND","setShowCaption","onResizeEnd","nextWidth","nextHeight","setTimeout","setWidthAndHeight","onResizeStart","_useSharedHistoryCont","useSharedHistoryContext","historyState","isFocused","Suspense","fallback","Fragment","concat","LexicalNestedComposer","initialEditor","AutoFocusPlugin","HistoryPlugin","externalHistoryState","RichTextPlugin","contentEditable","LexicalContentEditable","placeholder","Placeholder","ErrorBoundary","LexicalErrorBoundary","ImageResizer"],"sources":["ImageComponent.tsx"],"sourcesContent":["/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\nimport * as React from \"react\";\nimport { Suspense, useCallback, useEffect, useRef, useState } from \"react\";\n\nimport type { GridSelection, LexicalEditor, NodeKey, NodeSelection, RangeSelection } from \"lexical\";\n\nimport \"./ImageComponent.css\";\n\nimport { AutoFocusPlugin } from \"@lexical/react/LexicalAutoFocusPlugin\";\nimport { useLexicalComposerContext } from \"@lexical/react/LexicalComposerContext\";\nimport LexicalErrorBoundary from \"@lexical/react/LexicalErrorBoundary\";\nimport { HistoryPlugin } from \"@lexical/react/LexicalHistoryPlugin\";\nimport { LexicalNestedComposer } from \"@lexical/react/LexicalNestedComposer\";\nimport { RichTextPlugin } from \"@lexical/react/LexicalRichTextPlugin\";\nimport { useLexicalNodeSelection } from \"@lexical/react/useLexicalNodeSelection\";\nimport { mergeRegister } from \"@lexical/utils\";\nimport {\n $getNodeByKey,\n $getSelection,\n $isNodeSelection,\n $setSelection,\n CLICK_COMMAND,\n COMMAND_PRIORITY_LOW,\n DRAGSTART_COMMAND,\n KEY_BACKSPACE_COMMAND,\n KEY_DELETE_COMMAND,\n KEY_ENTER_COMMAND,\n KEY_ESCAPE_COMMAND,\n SELECTION_CHANGE_COMMAND\n} from \"lexical\";\nimport { Placeholder } from \"./Placeholder\";\nimport { ImageResizer } from \"./ImageResizer\";\nimport { useSharedHistoryContext } from \"./SharedHistoryContext\";\nimport { $isImageNode } from \"~/ImageNode\";\nimport { LexicalContentEditable } from \"./ContentEditable\";\n\nconst imageCache = new Set();\n\nfunction useSuspenseImage(src: string) {\n if (!imageCache.has(src)) {\n throw new Promise(resolve => {\n const img = new Image();\n img.src = src;\n img.onload = () => {\n imageCache.add(src);\n resolve(null);\n };\n });\n }\n}\n\nfunction LazyImage({\n id,\n altText,\n className,\n imageRef,\n src,\n width,\n height,\n maxWidth\n}: {\n id: string;\n altText: string;\n className: string | null;\n height: \"inherit\" | number;\n imageRef: { current: null | HTMLImageElement };\n maxWidth: number;\n src: string;\n width: \"inherit\" | number;\n}): JSX.Element {\n useSuspenseImage(src);\n return (\n <img\n id={id}\n className={className || undefined}\n src={src}\n alt={altText}\n ref={imageRef}\n style={{\n height,\n maxWidth,\n width\n }}\n draggable=\"false\"\n />\n );\n}\n\ninterface ImageComponentProps {\n id: string;\n altText: string;\n caption: LexicalEditor;\n height: \"inherit\" | number;\n maxWidth: number;\n nodeKey: NodeKey;\n resizable: boolean;\n showCaption: boolean;\n src: string;\n width: \"inherit\" | number;\n captionsEnabled: boolean;\n}\n\nexport default function ImageComponent({\n id,\n src,\n altText,\n nodeKey,\n width,\n height,\n maxWidth,\n resizable,\n showCaption,\n caption,\n captionsEnabled\n}: ImageComponentProps): JSX.Element {\n const imageRef = useRef<null | HTMLImageElement>(null);\n const buttonRef = useRef<HTMLButtonElement | null>(null);\n const [isSelected, setSelected, clearSelection] = useLexicalNodeSelection(nodeKey);\n const [isResizing, setIsResizing] = useState<boolean>(false);\n const [editor] = useLexicalComposerContext();\n const [selection, setSelection] = useState<\n RangeSelection | NodeSelection | GridSelection | null\n >(null);\n const activeEditorRef = useRef<LexicalEditor | null>(null);\n\n const onDelete = useCallback(\n (payload: KeyboardEvent) => {\n if (isSelected && $isNodeSelection($getSelection())) {\n const event: KeyboardEvent = payload;\n event.preventDefault();\n const node = $getNodeByKey(nodeKey);\n if ($isImageNode(node)) {\n node.remove();\n }\n setSelected(false);\n }\n return false;\n },\n [isSelected, nodeKey, setSelected]\n );\n\n const onEnter = useCallback(\n (event: KeyboardEvent) => {\n const latestSelection = $getSelection();\n const buttonElem = buttonRef.current;\n if (\n isSelected &&\n $isNodeSelection(latestSelection) &&\n latestSelection.getNodes().length === 1\n ) {\n if (showCaption) {\n // Move focus into nested editor\n $setSelection(null);\n event.preventDefault();\n caption.focus();\n return true;\n } else if (buttonElem !== null && buttonElem !== document.activeElement) {\n event.preventDefault();\n buttonElem.focus();\n return true;\n }\n }\n return false;\n },\n [caption, isSelected, showCaption]\n );\n\n const onEscape = useCallback(\n (event: KeyboardEvent) => {\n if (activeEditorRef.current === caption || buttonRef.current === event.target) {\n $setSelection(null);\n editor.update(() => {\n setSelected(true);\n const parentRootElement = editor.getRootElement();\n if (parentRootElement !== null) {\n parentRootElement.focus();\n }\n });\n return true;\n }\n return false;\n },\n [caption, editor, setSelected]\n );\n\n useEffect(() => {\n let isMounted = true;\n const unregister = mergeRegister(\n editor.registerUpdateListener(({ editorState }) => {\n if (isMounted) {\n setSelection(editorState.read(() => $getSelection()));\n }\n }),\n editor.registerCommand(\n SELECTION_CHANGE_COMMAND,\n (_, activeEditor) => {\n activeEditorRef.current = activeEditor;\n return false;\n },\n COMMAND_PRIORITY_LOW\n ),\n editor.registerCommand<MouseEvent>(\n CLICK_COMMAND,\n payload => {\n const event = payload;\n if (isResizing) {\n return true;\n }\n if (event.target === imageRef.current) {\n if (event.shiftKey) {\n setSelected(!isSelected);\n } else {\n clearSelection();\n setSelected(true);\n }\n return true;\n }\n\n return false;\n },\n COMMAND_PRIORITY_LOW\n ),\n editor.registerCommand(\n DRAGSTART_COMMAND,\n event => {\n if (event.target === imageRef.current) {\n // TODO This is just a temporary workaround for FF to behave like other browsers.\n // Ideally, this handles drag & drop too (and all browsers).\n event.preventDefault();\n return true;\n }\n return false;\n },\n COMMAND_PRIORITY_LOW\n ),\n editor.registerCommand(KEY_DELETE_COMMAND, onDelete, COMMAND_PRIORITY_LOW),\n editor.registerCommand(KEY_BACKSPACE_COMMAND, onDelete, COMMAND_PRIORITY_LOW),\n editor.registerCommand(KEY_ENTER_COMMAND, onEnter, COMMAND_PRIORITY_LOW),\n editor.registerCommand(KEY_ESCAPE_COMMAND, onEscape, COMMAND_PRIORITY_LOW)\n );\n return () => {\n isMounted = false;\n unregister();\n };\n }, [\n clearSelection,\n editor,\n isResizing,\n isSelected,\n nodeKey,\n onDelete,\n onEnter,\n onEscape,\n setSelected\n ]);\n\n const setShowCaption = () => {\n editor.update(() => {\n const node = $getNodeByKey(nodeKey);\n if ($isImageNode(node)) {\n node.setShowCaption(true);\n }\n });\n };\n\n const onResizeEnd = (nextWidth: \"inherit\" | number, nextHeight: \"inherit\" | number) => {\n // Delay hiding the resize bars for click case\n setTimeout(() => {\n setIsResizing(false);\n }, 200);\n\n editor.update(() => {\n const node = $getNodeByKey(nodeKey);\n if ($isImageNode(node)) {\n node.setWidthAndHeight(nextWidth, nextHeight);\n }\n });\n };\n\n const onResizeStart = () => {\n setIsResizing(true);\n };\n\n const { historyState } = useSharedHistoryContext();\n const draggable = isSelected && $isNodeSelection(selection) && !isResizing;\n const isFocused = isSelected || isResizing;\n return (\n <Suspense fallback={null}>\n <>\n <div draggable={draggable}>\n <LazyImage\n id={id}\n className={\n isFocused\n ? `focused ${$isNodeSelection(selection) ? \"draggable\" : \"\"}`\n : null\n }\n src={src}\n altText={altText}\n imageRef={imageRef}\n width={width}\n height={height}\n maxWidth={maxWidth}\n />\n </div>\n {showCaption && (\n <div className=\"image-caption-container\">\n <LexicalNestedComposer initialEditor={caption}>\n <AutoFocusPlugin />\n <HistoryPlugin externalHistoryState={historyState} />\n <RichTextPlugin\n contentEditable={\n <LexicalContentEditable className=\"ImageNode__contentEditable\" />\n }\n placeholder={\n <Placeholder className=\"ImageNode__placeholder\">\n Enter a caption...\n </Placeholder>\n }\n ErrorBoundary={LexicalErrorBoundary}\n />\n </LexicalNestedComposer>\n </div>\n )}\n {resizable && $isNodeSelection(selection) && isFocused && (\n <ImageResizer\n showCaption={showCaption}\n setShowCaption={setShowCaption}\n editor={editor}\n buttonRef={buttonRef}\n imageRef={imageRef}\n maxWidth={maxWidth}\n onResizeStart={onResizeStart}\n onResizeEnd={onResizeEnd}\n captionsEnabled={captionsEnabled}\n />\n )}\n </>\n </Suspense>\n );\n}\n"],"mappings":"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","ignoreList":[]}
@@ -5,7 +5,8 @@ Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
7
  exports.ImageResizer = ImageResizer;
8
- var React = _interopRequireWildcard(require("react"));
8
+ var _react = _interopRequireWildcard(require("react"));
9
+ var React = _react;
9
10
  /**
10
11
  * Copyright (c) Meta Platforms, Inc. and affiliates.
11
12
  *
@@ -33,12 +34,12 @@ function ImageResizer(_ref) {
33
34
  showCaption = _ref.showCaption,
34
35
  setShowCaption = _ref.setShowCaption,
35
36
  captionsEnabled = _ref.captionsEnabled;
36
- var controlWrapperRef = (0, React.useRef)(null);
37
- var userSelect = (0, React.useRef)({
37
+ var controlWrapperRef = (0, _react.useRef)(null);
38
+ var userSelect = (0, _react.useRef)({
38
39
  priority: "",
39
40
  value: "default"
40
41
  });
41
- var positioningRef = (0, React.useRef)({
42
+ var positioningRef = (0, _react.useRef)({
42
43
  currentHeight: 0,
43
44
  currentWidth: 0,
44
45
  direction: 0,