@webiny/lexical-editor 5.37.0-beta.0 → 5.37.0-beta.1

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 (205) hide show
  1. package/commands/insertFiles.d.ts +14 -0
  2. package/commands/insertFiles.js +9 -0
  3. package/commands/insertFiles.js.map +1 -0
  4. package/commands/webiny-list.js.map +1 -1
  5. package/commands/webiny-quote.js.map +1 -1
  6. package/components/Editor/HeadingEditor.js +7 -9
  7. package/components/Editor/HeadingEditor.js.map +1 -1
  8. package/components/Editor/ParagraphEditor.js +7 -10
  9. package/components/Editor/ParagraphEditor.js.map +1 -1
  10. package/components/Editor/RichTextEditor.d.ts +9 -1
  11. package/components/Editor/RichTextEditor.js +41 -20
  12. package/components/Editor/RichTextEditor.js.map +1 -1
  13. package/components/ImageComponent.d.ts +23 -0
  14. package/components/ImageComponent.js +252 -0
  15. package/components/ImageComponent.js.map +1 -0
  16. package/components/LexicalEditorConfig/LexicalEditorConfig.d.ts +19 -10
  17. package/components/LexicalEditorConfig/LexicalEditorConfig.js +63 -9
  18. package/components/LexicalEditorConfig/LexicalEditorConfig.js.map +1 -1
  19. package/components/LexicalEditorConfig/components/Node.d.ts +14 -0
  20. package/components/LexicalEditorConfig/components/Node.js +38 -0
  21. package/components/LexicalEditorConfig/components/Node.js.map +1 -0
  22. package/components/LexicalEditorConfig/components/Plugin.d.ts +13 -0
  23. package/components/LexicalEditorConfig/components/Plugin.js +38 -0
  24. package/components/LexicalEditorConfig/components/Plugin.js.map +1 -0
  25. package/components/LexicalEditorConfig/components/ToolbarElement.d.ts +13 -0
  26. package/components/LexicalEditorConfig/components/ToolbarElement.js +38 -0
  27. package/components/LexicalEditorConfig/components/ToolbarElement.js.map +1 -0
  28. package/components/LexicalHtmlRenderer.d.ts +2 -0
  29. package/components/LexicalHtmlRenderer.js +1 -1
  30. package/components/LexicalHtmlRenderer.js.map +1 -1
  31. package/components/Toolbar/StaticToolbar.css +260 -0
  32. package/components/Toolbar/StaticToolbar.d.ts +3 -0
  33. package/components/Toolbar/StaticToolbar.js +101 -0
  34. package/components/Toolbar/StaticToolbar.js.map +1 -0
  35. package/components/Toolbar/Toolbar.css +215 -4
  36. package/components/Toolbar/Toolbar.d.ts +2 -8
  37. package/components/Toolbar/Toolbar.js +25 -37
  38. package/components/Toolbar/Toolbar.js.map +1 -1
  39. package/components/ToolbarActions/BoldAction.js.map +1 -1
  40. package/components/ToolbarActions/BulletListAction.js +2 -2
  41. package/components/ToolbarActions/BulletListAction.js.map +1 -1
  42. package/components/ToolbarActions/CodeHighlightAction.js.map +1 -1
  43. package/components/ToolbarActions/FontColorAction.js +1 -1
  44. package/components/ToolbarActions/FontColorAction.js.map +1 -1
  45. package/components/ToolbarActions/FontSizeAction.js.map +1 -1
  46. package/components/ToolbarActions/ImageAction.d.ts +2 -0
  47. package/components/ToolbarActions/ImageAction.js +53 -0
  48. package/components/ToolbarActions/ImageAction.js.map +1 -0
  49. package/components/ToolbarActions/ItalicAction.js.map +1 -1
  50. package/components/ToolbarActions/LinkAction.js.map +1 -1
  51. package/components/ToolbarActions/NumberedListAction.js +16 -4
  52. package/components/ToolbarActions/NumberedListAction.js.map +1 -1
  53. package/components/ToolbarActions/QuoteAction.js.map +1 -1
  54. package/components/ToolbarActions/TextAlignmentAction.js.map +1 -1
  55. package/components/ToolbarActions/TypographyAction.js +1 -1
  56. package/components/ToolbarActions/TypographyAction.js.map +1 -1
  57. package/components/ToolbarActions/UnderlineAction.js.map +1 -1
  58. package/context/FontColorActionContext.js.map +1 -1
  59. package/context/RichTextEditorContext.d.ts +3 -1
  60. package/context/RichTextEditorContext.js +17 -11
  61. package/context/RichTextEditorContext.js.map +1 -1
  62. package/context/SharedHistoryContext.js.map +1 -1
  63. package/context/TextAlignmentActionContextProps.js.map +1 -1
  64. package/context/TypographyActionContext.js.map +1 -1
  65. package/hooks/useFontColorPicker.js.map +1 -1
  66. package/hooks/useList.js.map +1 -1
  67. package/hooks/useQuote.js.map +1 -1
  68. package/hooks/useRichTextEditor.js.map +1 -1
  69. package/hooks/useTextAlignmentAction.js.map +1 -1
  70. package/hooks/useTypographyAction.js.map +1 -1
  71. package/images/icons/insert-image.svg +4 -0
  72. package/index.d.ts +9 -9
  73. package/index.js +50 -44
  74. package/index.js.map +1 -1
  75. package/nodes/FontColorNode.js +0 -4
  76. package/nodes/FontColorNode.js.map +1 -1
  77. package/nodes/HeadingNode.js.map +1 -1
  78. package/nodes/ImageNode.d.ts +50 -0
  79. package/nodes/ImageNode.js +206 -0
  80. package/nodes/ImageNode.js.map +1 -0
  81. package/nodes/ListItemNode.js +0 -4
  82. package/nodes/ListItemNode.js.map +1 -1
  83. package/nodes/ListNode/formatList.js.map +1 -1
  84. package/nodes/ListNode.js +0 -6
  85. package/nodes/ListNode.js.map +1 -1
  86. package/nodes/ParagraphNode.js.map +1 -1
  87. package/nodes/QuoteNode.js.map +1 -1
  88. package/nodes/TypographyElementNode.js +2 -6
  89. package/nodes/TypographyElementNode.js.map +1 -1
  90. package/nodes/imageNode.css +43 -0
  91. package/nodes/webinyNodes.js +2 -1
  92. package/nodes/webinyNodes.js.map +1 -1
  93. package/package.json +6 -5
  94. package/plugins/BlurEventPlugin/BlurEventPlugin.js.map +1 -1
  95. package/plugins/CodeHighlightPlugin/CodeHighlightPlugin.js.map +1 -1
  96. package/plugins/CodeHighlightPlugin/index.js.map +1 -1
  97. package/plugins/FloatingLinkEditorPlugin/FloatingLinkEditorPlugin.css +5 -1
  98. package/plugins/FloatingLinkEditorPlugin/FloatingLinkEditorPlugin.js +52 -14
  99. package/plugins/FloatingLinkEditorPlugin/FloatingLinkEditorPlugin.js.map +1 -1
  100. package/plugins/FloatingLinkEditorPlugin/index.js.map +1 -1
  101. package/plugins/FontColorPlugin/FontColorPlugin.js.map +1 -1
  102. package/plugins/ImagesPlugin/ImagesPlugin.d.ts +13 -0
  103. package/plugins/ImagesPlugin/ImagesPlugin.js +152 -0
  104. package/plugins/ImagesPlugin/ImagesPlugin.js.map +1 -0
  105. package/plugins/LexicalUpdateStatePlugin/LexicalUpdateStatePlugin.js.map +1 -1
  106. package/plugins/LexicalUpdateStatePlugin/index.js.map +1 -1
  107. package/plugins/ListPLugin/ListPlugin.d.ts +1 -0
  108. package/plugins/{WebinyListPLugin/WebinyListPlugin.js → ListPLugin/ListPlugin.js} +3 -3
  109. package/plugins/ListPLugin/ListPlugin.js.map +1 -0
  110. package/plugins/TypographyPlugin/TypographyPlugin.js.map +1 -1
  111. package/plugins/WebinyQuoteNodePlugin/WebinyQuoteNodePlugin.js.map +1 -1
  112. package/themes/webinyLexicalTheme.css +0 -6
  113. package/themes/webinyLexicalTheme.js +4 -1
  114. package/themes/webinyLexicalTheme.js.map +1 -1
  115. package/types.d.ts +9 -0
  116. package/types.js +28 -1
  117. package/types.js.map +1 -1
  118. package/ui/ContentEditable.css +22 -0
  119. package/ui/ContentEditable.d.ts +12 -0
  120. package/ui/ContentEditable.js +24 -0
  121. package/ui/ContentEditable.js.map +1 -0
  122. package/ui/Divider.js.map +1 -1
  123. package/ui/DropDown.js.map +1 -1
  124. package/ui/ImageResizer.d.ts +26 -0
  125. package/ui/ImageResizer.js +213 -0
  126. package/ui/ImageResizer.js.map +1 -0
  127. package/ui/LinkPreview.js +7 -7
  128. package/ui/LinkPreview.js.map +1 -1
  129. package/ui/Placeholder.css +2 -5
  130. package/ui/Placeholder.d.ts +3 -1
  131. package/ui/Placeholder.js +5 -1
  132. package/ui/Placeholder.js.map +1 -1
  133. package/ui/TextInput.js.map +1 -1
  134. package/ui/ToolbarActionDialog.js.map +1 -1
  135. package/utils/canUseDOM.d.ts +1 -0
  136. package/utils/canUseDOM.js +8 -0
  137. package/utils/canUseDOM.js.map +1 -0
  138. package/utils/files.d.ts +12 -0
  139. package/utils/files.js +62 -0
  140. package/utils/files.js.map +1 -0
  141. package/utils/findTypographyStyleByHtmlTag.js.map +1 -1
  142. package/utils/generateInitialLexicalValue.js.map +1 -1
  143. package/utils/getDOMRangeRect.js.map +1 -1
  144. package/utils/getLexicalTextSelectionState.js.map +1 -1
  145. package/utils/getSelectedNode.js.map +1 -1
  146. package/utils/getTransparentImage.d.ts +1 -0
  147. package/utils/getTransparentImage.js +10 -0
  148. package/utils/getTransparentImage.js.map +1 -0
  149. package/{plugins/AutoLinkPlugin/AutoLinkPlugin.d.ts → utils/isHTMLElement.d.ts} +3 -4
  150. package/utils/isHTMLElement.js +16 -0
  151. package/utils/isHTMLElement.js.map +1 -0
  152. package/utils/isValidJSON.js.map +1 -1
  153. package/utils/isValidLexicalData.js.map +1 -1
  154. package/utils/nodes/clearNodeFormating.js.map +1 -1
  155. package/utils/nodes/formatToHeading.js.map +1 -1
  156. package/utils/nodes/formatToParagraph.js.map +1 -1
  157. package/utils/nodes/formatToQuote.js.map +1 -1
  158. package/utils/nodes/insertImage.d.ts +2 -0
  159. package/utils/nodes/insertImage.js +22 -0
  160. package/utils/nodes/insertImage.js.map +1 -0
  161. package/utils/nodes/listNode.js.map +1 -1
  162. package/utils/point.js +0 -3
  163. package/utils/point.js.map +1 -1
  164. package/utils/rect.js +0 -5
  165. package/utils/rect.js.map +1 -1
  166. package/utils/sanitizeUrl.js.map +1 -1
  167. package/utils/setFloatingElemPosition.js.map +1 -1
  168. package/utils/styleObjectToString.js.map +1 -1
  169. package/utils/toTypographyEmotionMap.d.ts +1 -1
  170. package/utils/toTypographyEmotionMap.js +7 -2
  171. package/utils/toTypographyEmotionMap.js.map +1 -1
  172. package/components/AddRichTextEditorNodeType.d.ts +0 -6
  173. package/components/AddRichTextEditorNodeType.js +0 -28
  174. package/components/AddRichTextEditorNodeType.js.map +0 -1
  175. package/components/AddRichTextEditorPlugin.d.ts +0 -12
  176. package/components/AddRichTextEditorPlugin.js +0 -33
  177. package/components/AddRichTextEditorPlugin.js.map +0 -1
  178. package/components/AddToolbarAction.d.ts +0 -7
  179. package/components/AddToolbarAction.js +0 -33
  180. package/components/AddToolbarAction.js.map +0 -1
  181. package/components/Toolbar/HeadingToolbar.d.ts +0 -12
  182. package/components/Toolbar/HeadingToolbar.js +0 -23
  183. package/components/Toolbar/HeadingToolbar.js.map +0 -1
  184. package/components/Toolbar/ParagraphToolbar.d.ts +0 -12
  185. package/components/Toolbar/ParagraphToolbar.js +0 -23
  186. package/components/Toolbar/ParagraphToolbar.js.map +0 -1
  187. package/components/ToolbarPresets/HeadingToolbarPreset.d.ts +0 -2
  188. package/components/ToolbarPresets/HeadingToolbarPreset.js +0 -56
  189. package/components/ToolbarPresets/HeadingToolbarPreset.js.map +0 -1
  190. package/components/ToolbarPresets/ParagraphToolbarPreset.d.ts +0 -2
  191. package/components/ToolbarPresets/ParagraphToolbarPreset.js +0 -71
  192. package/components/ToolbarPresets/ParagraphToolbarPreset.js.map +0 -1
  193. package/plugins/AutoLinkPlugin/AutoLinkPlugin.js +0 -46
  194. package/plugins/AutoLinkPlugin/AutoLinkPlugin.js.map +0 -1
  195. package/plugins/AutoLinkPlugin/index.d.ts +0 -1
  196. package/plugins/AutoLinkPlugin/index.js +0 -16
  197. package/plugins/AutoLinkPlugin/index.js.map +0 -1
  198. package/plugins/ClickableLinkPlugin/ClickableLinkPlugin.d.ts +0 -17
  199. package/plugins/ClickableLinkPlugin/ClickableLinkPlugin.js +0 -88
  200. package/plugins/ClickableLinkPlugin/ClickableLinkPlugin.js.map +0 -1
  201. package/plugins/ClickableLinkPlugin/index.d.ts +0 -1
  202. package/plugins/ClickableLinkPlugin/index.js +0 -16
  203. package/plugins/ClickableLinkPlugin/index.js.map +0 -1
  204. package/plugins/WebinyListPLugin/WebinyListPlugin.d.ts +0 -1
  205. package/plugins/WebinyListPLugin/WebinyListPlugin.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"names":["PREVIEW_CACHE","URL_MATCHER","useSuspenseRequest","url","cached","match","preview","fetch","encodeURI","then","response","json","catch","Promise","LinkPreviewContent","img","title","domain","description","Glimmer","props","animationDelay","String","index","style","LinkPreview","height","width"],"sources":["LinkPreview.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 */\n\nimport \"./LinkPreview.css\";\n\nimport * as React from \"react\";\nimport { CSSProperties, Suspense } from \"react\";\n\ntype Preview = {\n title: string;\n description: string;\n img: string;\n domain: string;\n} | null;\n\n// Cached responses or running request promises\nconst PREVIEW_CACHE: Record<string, Promise<Preview> | { preview: Preview }> = {};\n\nconst URL_MATCHER =\n /((https?:\\/\\/(www\\.)?)|(www\\.))[-a-zA-Z0-9@:%._+~#=]{1,256}\\.[a-zA-Z0-9()]{1,6}\\b([-a-zA-Z0-9()@:%_+.~#?&//=]*)/;\n\nfunction useSuspenseRequest(url: string) {\n let cached = PREVIEW_CACHE[url];\n\n if (!url.match(URL_MATCHER)) {\n return { preview: null };\n }\n\n if (!cached) {\n cached = PREVIEW_CACHE[url] = fetch(`/api/link-preview?url=${encodeURI(url)}`)\n .then(response => response.json())\n .then(preview => {\n PREVIEW_CACHE[url] = preview;\n return preview;\n })\n .catch(() => {\n PREVIEW_CACHE[url] = { preview: null };\n });\n }\n\n if (cached instanceof Promise) {\n throw cached;\n }\n\n return cached;\n}\n\nfunction LinkPreviewContent({\n url\n}: Readonly<{\n url: string;\n}>): JSX.Element | null {\n const { preview } = useSuspenseRequest(url);\n if (preview === null) {\n return null;\n }\n return (\n <div className=\"LinkPreview__container\">\n {preview.img && (\n <div className=\"LinkPreview__imageWrapper\">\n <img src={preview.img} alt={preview.title} className=\"LinkPreview__image\" />\n </div>\n )}\n {preview.domain && <div className=\"LinkPreview__domain\">{preview.domain}</div>}\n {preview.title && <div className=\"LinkPreview__title\">{preview.title}</div>}\n {preview.description && (\n <div className=\"LinkPreview__description\">{preview.description}</div>\n )}\n </div>\n );\n}\n\nfunction Glimmer(props: { style: CSSProperties; index: number }): JSX.Element {\n return (\n <div\n className=\"LinkPreview__glimmer\"\n {...props}\n style={{\n animationDelay: String((props.index || 0) * 300),\n ...(props.style || {})\n }}\n />\n );\n}\n\nexport function LinkPreview({\n url\n}: Readonly<{\n url: string;\n}>): JSX.Element {\n return (\n <Suspense\n fallback={\n <>\n <Glimmer style={{ height: \"80px\" }} index={0} />\n <Glimmer style={{ width: \"60%\" }} index={1} />\n <Glimmer style={{ width: \"80%\" }} index={2} />\n </>\n }\n >\n <LinkPreviewContent url={url} />\n </Suspense>\n );\n}\n"],"mappings":";;;;;;;;;AAQA;AAEA;AAVA;AACA;AACA;AACA;AACA;AACA;AACA;;AAcA;AACA,IAAMA,aAAsE,GAAG,CAAC,CAAC;AAEjF,IAAMC,WAAW,GACb,iHAAiH;AAErH,SAASC,kBAAkB,CAACC,GAAW,EAAE;EACrC,IAAIC,MAAM,GAAGJ,aAAa,CAACG,GAAG,CAAC;EAE/B,IAAI,CAACA,GAAG,CAACE,KAAK,CAACJ,WAAW,CAAC,EAAE;IACzB,OAAO;MAAEK,OAAO,EAAE;IAAK,CAAC;EAC5B;EAEA,IAAI,CAACF,MAAM,EAAE;IACTA,MAAM,GAAGJ,aAAa,CAACG,GAAG,CAAC,GAAGI,KAAK,iCAA0BC,SAAS,CAACL,GAAG,CAAC,EAAG,CACzEM,IAAI,CAAC,UAAAC,QAAQ;MAAA,OAAIA,QAAQ,CAACC,IAAI,EAAE;IAAA,EAAC,CACjCF,IAAI,CAAC,UAAAH,OAAO,EAAI;MACbN,aAAa,CAACG,GAAG,CAAC,GAAGG,OAAO;MAC5B,OAAOA,OAAO;IAClB,CAAC,CAAC,CACDM,KAAK,CAAC,YAAM;MACTZ,aAAa,CAACG,GAAG,CAAC,GAAG;QAAEG,OAAO,EAAE;MAAK,CAAC;IAC1C,CAAC,CAAC;EACV;EAEA,IAAIF,MAAM,YAAYS,OAAO,EAAE;IAC3B,MAAMT,MAAM;EAChB;EAEA,OAAOA,MAAM;AACjB;AAEA,SAASU,kBAAkB,OAIH;EAAA,IAHpBX,GAAG,QAAHA,GAAG;EAIH,0BAAoBD,kBAAkB,CAACC,GAAG,CAAC;IAAnCG,OAAO,uBAAPA,OAAO;EACf,IAAIA,OAAO,KAAK,IAAI,EAAE;IAClB,OAAO,IAAI;EACf;EACA,oBACI;IAAK,SAAS,EAAC;EAAwB,GAClCA,OAAO,CAACS,GAAG,iBACR;IAAK,SAAS,EAAC;EAA2B,gBACtC;IAAK,GAAG,EAAET,OAAO,CAACS,GAAI;IAAC,GAAG,EAAET,OAAO,CAACU,KAAM;IAAC,SAAS,EAAC;EAAoB,EAAG,CAEnF,EACAV,OAAO,CAACW,MAAM,iBAAI;IAAK,SAAS,EAAC;EAAqB,GAAEX,OAAO,CAACW,MAAM,CAAO,EAC7EX,OAAO,CAACU,KAAK,iBAAI;IAAK,SAAS,EAAC;EAAoB,GAAEV,OAAO,CAACU,KAAK,CAAO,EAC1EV,OAAO,CAACY,WAAW,iBAChB;IAAK,SAAS,EAAC;EAA0B,GAAEZ,OAAO,CAACY,WAAW,CACjE,CACC;AAEd;AAEA,SAASC,OAAO,CAACC,KAA8C,EAAe;EAC1E,oBACI;IACI,SAAS,EAAC;EAAsB,GAC5BA,KAAK;IACT,KAAK;MACDC,cAAc,EAAEC,MAAM,CAAC,CAACF,KAAK,CAACG,KAAK,IAAI,CAAC,IAAI,GAAG;IAAC,GAC5CH,KAAK,CAACI,KAAK,IAAI,CAAC,CAAC;EACvB,GACJ;AAEV;AAEO,SAASC,WAAW,QAIV;EAAA,IAHbtB,GAAG,SAAHA,GAAG;EAIH,oBACI,oBAAC,cAAQ;IACL,QAAQ,eACJ,uDACI,oBAAC,OAAO;MAAC,KAAK,EAAE;QAAEuB,MAAM,EAAE;MAAO,CAAE;MAAC,KAAK,EAAE;IAAE,EAAG,eAChD,oBAAC,OAAO;MAAC,KAAK,EAAE;QAAEC,KAAK,EAAE;MAAM,CAAE;MAAC,KAAK,EAAE;IAAE,EAAG,eAC9C,oBAAC,OAAO;MAAC,KAAK,EAAE;QAAEA,KAAK,EAAE;MAAM,CAAE;MAAC,KAAK,EAAE;IAAE,EAAG;EAErD,gBAED,oBAAC,kBAAkB;IAAC,GAAG,EAAExB;EAAI,EAAG,CACzB;AAEnB"}
1
+ {"version":3,"names":["require","React","_interopRequireWildcard","PREVIEW_CACHE","URL_MATCHER","useSuspenseRequest","url","cached","match","preview","fetch","concat","encodeURI","then","response","json","catch","Promise","LinkPreviewContent","_ref","_useSuspenseRequest","createElement","className","img","src","alt","title","domain","description","Glimmer","props","Object","assign","style","_objectSpread2","default","animationDelay","String","index","LinkPreview","_ref2","Suspense","fallback","Fragment","height","width"],"sources":["LinkPreview.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 */\n\nimport \"./LinkPreview.css\";\n\nimport * as React from \"react\";\nimport { CSSProperties, Suspense } from \"react\";\n\ntype Preview = {\n title: string;\n description: string;\n img: string;\n domain: string;\n} | null;\n\n// Cached responses or running request promises\nconst PREVIEW_CACHE: Record<string, Promise<Preview> | { preview: Preview }> = {};\n\nconst URL_MATCHER =\n /((https?:\\/\\/(www\\.)?)|(www\\.))[-a-zA-Z0-9@:%._+~#=]{1,256}\\.[a-zA-Z0-9()]{1,6}\\b([-a-zA-Z0-9()@:%_+.~#?&//=]*)/;\n\nfunction useSuspenseRequest(url: string) {\n let cached = PREVIEW_CACHE[url];\n\n if (!url.match(URL_MATCHER)) {\n return { preview: null };\n }\n\n if (!cached) {\n cached = PREVIEW_CACHE[url] = fetch(`/api/link-preview?url=${encodeURI(url)}`)\n .then(response => response.json())\n .then(preview => {\n PREVIEW_CACHE[url] = preview;\n return preview;\n })\n .catch(() => {\n PREVIEW_CACHE[url] = { preview: null };\n });\n }\n\n if (cached instanceof Promise) {\n throw cached;\n }\n\n return cached;\n}\n\nfunction LinkPreviewContent({\n url\n}: Readonly<{\n url: string;\n}>): JSX.Element | null {\n const { preview } = useSuspenseRequest(url);\n if (preview === null) {\n return null;\n }\n return (\n <div className=\"CustomLinkPreview__container\">\n {preview.img && (\n <div className=\"CustomLinkPreview__imageWrapper\">\n <img\n src={preview.img}\n alt={preview.title}\n className=\"CustomLinkPreview__image\"\n />\n </div>\n )}\n {preview.domain && <div className=\"CustomLinkPreview__domain\">{preview.domain}</div>}\n {preview.title && <div className=\"CustomLinkPreview__title\">{preview.title}</div>}\n {preview.description && (\n <div className=\"CustomLinkPreview__description\">{preview.description}</div>\n )}\n </div>\n );\n}\n\nfunction Glimmer(props: { style: CSSProperties; index: number }): JSX.Element {\n return (\n <div\n className=\"CustomLinkPreview__glimmer\"\n {...props}\n style={{\n animationDelay: String((props.index || 0) * 300),\n ...(props.style || {})\n }}\n />\n );\n}\n\nexport function LinkPreview({\n url\n}: Readonly<{\n url: string;\n}>): JSX.Element {\n return (\n <Suspense\n fallback={\n <>\n <Glimmer style={{ height: \"80px\" }} index={0} />\n <Glimmer style={{ width: \"60%\" }} index={1} />\n <Glimmer style={{ width: \"80%\" }} index={2} />\n </>\n }\n >\n <LinkPreviewContent url={url} />\n </Suspense>\n );\n}\n"],"mappings":"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"}
@@ -9,15 +9,12 @@
9
9
 
10
10
  .Placeholder__root {
11
11
  font-size: 15px;
12
+ margin-top: -20px;
12
13
  color: #999;
13
14
  overflow: hidden;
14
- position: absolute;
15
+ position: relative;
15
16
  text-overflow: ellipsis;
16
- top: 0px;
17
- left: 15px;
18
- right: 28px;
19
17
  user-select: none;
20
18
  white-space: nowrap;
21
- display: inline-block;
22
19
  pointer-events: none;
23
20
  }
@@ -6,8 +6,10 @@
6
6
  *
7
7
  */
8
8
  import "./Placeholder.css";
9
+ import * as React from "react";
9
10
  import { ReactNode } from "react";
10
- export declare function Placeholder({ children, className }: {
11
+ export declare function Placeholder({ children, className, styles }: {
11
12
  children: ReactNode;
12
13
  className?: string;
14
+ styles?: React.CSSProperties;
13
15
  }): JSX.Element;
package/ui/Placeholder.js CHANGED
@@ -1,10 +1,12 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
4
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
5
  Object.defineProperty(exports, "__esModule", {
5
6
  value: true
6
7
  });
7
8
  exports.Placeholder = Placeholder;
9
+ var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
8
10
  require("./Placeholder.css");
9
11
  var React = _interopRequireWildcard(require("react"));
10
12
  /**
@@ -17,8 +19,10 @@ var React = _interopRequireWildcard(require("react"));
17
19
 
18
20
  function Placeholder(_ref) {
19
21
  var children = _ref.children,
20
- className = _ref.className;
22
+ className = _ref.className,
23
+ styles = _ref.styles;
21
24
  return /*#__PURE__*/React.createElement("div", {
25
+ style: (0, _objectSpread2.default)({}, styles),
22
26
  className: className || "Placeholder__root"
23
27
  }, children);
24
28
  }
@@ -1 +1 @@
1
- {"version":3,"names":["Placeholder","children","className"],"sources":["Placeholder.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 */\n\nimport \"./Placeholder.css\";\n\nimport * as React from \"react\";\nimport { ReactNode } from \"react\";\n\nexport function Placeholder({\n children,\n className\n}: {\n children: ReactNode;\n className?: string;\n}): JSX.Element {\n return <div className={className || \"Placeholder__root\"}>{children}</div>;\n}\n"],"mappings":";;;;;;;AAQA;AAEA;AAVA;AACA;AACA;AACA;AACA;AACA;AACA;;AAOO,SAASA,WAAW,OAMX;EAAA,IALZC,QAAQ,QAARA,QAAQ;IACRC,SAAS,QAATA,SAAS;EAKT,oBAAO;IAAK,SAAS,EAAEA,SAAS,IAAI;EAAoB,GAAED,QAAQ,CAAO;AAC7E"}
1
+ {"version":3,"names":["require","React","_interopRequireWildcard","Placeholder","_ref","children","className","styles","createElement","style","_objectSpread2","default"],"sources":["Placeholder.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 */\n\nimport \"./Placeholder.css\";\n\nimport * as React from \"react\";\nimport { ReactNode } from \"react\";\n\nexport function Placeholder({\n children,\n className,\n styles\n}: {\n children: ReactNode;\n className?: string;\n styles?: React.CSSProperties;\n}): JSX.Element {\n return (\n <div style={{ ...styles }} className={className || \"Placeholder__root\"}>\n {children}\n </div>\n );\n}\n"],"mappings":";;;;;;;;;AAQAA,OAAA;AAEA,IAAAC,KAAA,GAAAC,uBAAA,CAAAF,OAAA;AAVA;AACA;AACA;AACA;AACA;AACA;AACA;;AAOO,SAASG,WAAWA,CAAAC,IAAA,EAQX;EAAA,IAPZC,QAAQ,GAAAD,IAAA,CAARC,QAAQ;IACRC,SAAS,GAAAF,IAAA,CAATE,SAAS;IACTC,MAAM,GAAAH,IAAA,CAANG,MAAM;EAMN,oBACIN,KAAA,CAAAO,aAAA;IAAKC,KAAK,MAAAC,cAAA,CAAAC,OAAA,MAAOJ,MAAM,CAAG;IAACD,SAAS,EAAEA,SAAS,IAAI;EAAoB,GAClED,QACA,CAAC;AAEd"}
@@ -1 +1 @@
1
- {"version":3,"names":["TextInput","label","value","onChange","placeholder","dataTestId","e","target"],"sources":["TextInput.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 */\n\nimport \"./Input.css\";\n\nimport * as React from \"react\";\n\ntype Props = Readonly<{\n \"data-test-id\"?: string;\n label: string;\n onChange: (val: string) => void;\n placeholder?: string;\n value: string;\n}>;\n\nexport default function TextInput({\n label,\n value,\n onChange,\n placeholder = \"\",\n \"data-test-id\": dataTestId\n}: Props): JSX.Element {\n return (\n <div className=\"Input__wrapper\">\n <label className=\"Input__label\">{label}</label>\n <input\n type=\"text\"\n className=\"Input__input\"\n placeholder={placeholder}\n value={value}\n onChange={e => {\n onChange(e.target.value);\n }}\n data-test-id={dataTestId}\n />\n </div>\n );\n}\n"],"mappings":";;;;;;;AAQA;AAEA;AAVA;AACA;AACA;AACA;AACA;AACA;AACA;;AAce,SAASA,SAAS,OAMV;EAAA,IALnBC,KAAK,QAALA,KAAK;IACLC,KAAK,QAALA,KAAK;IACLC,SAAQ,QAARA,QAAQ;IAAA,wBACRC,WAAW;IAAXA,WAAW,iCAAG,EAAE;IACAC,UAAU,QAA1B,cAAc;EAEd,oBACI;IAAK,SAAS,EAAC;EAAgB,gBAC3B;IAAO,SAAS,EAAC;EAAc,GAAEJ,KAAK,CAAS,eAC/C;IACI,IAAI,EAAC,MAAM;IACX,SAAS,EAAC,cAAc;IACxB,WAAW,EAAEG,WAAY;IACzB,KAAK,EAAEF,KAAM;IACb,QAAQ,EAAE,kBAAAI,CAAC,EAAI;MACXH,SAAQ,CAACG,CAAC,CAACC,MAAM,CAACL,KAAK,CAAC;IAC5B,CAAE;IACF,gBAAcG;EAAW,EAC3B,CACA;AAEd"}
1
+ {"version":3,"names":["require","React","_interopRequireWildcard","TextInput","_ref","label","value","onChange","_ref$placeholder","placeholder","dataTestId","createElement","className","type","e","target"],"sources":["TextInput.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 */\n\nimport \"./Input.css\";\n\nimport * as React from \"react\";\n\ntype Props = Readonly<{\n \"data-test-id\"?: string;\n label: string;\n onChange: (val: string) => void;\n placeholder?: string;\n value: string;\n}>;\n\nexport default function TextInput({\n label,\n value,\n onChange,\n placeholder = \"\",\n \"data-test-id\": dataTestId\n}: Props): JSX.Element {\n return (\n <div className=\"Input__wrapper\">\n <label className=\"Input__label\">{label}</label>\n <input\n type=\"text\"\n className=\"Input__input\"\n placeholder={placeholder}\n value={value}\n onChange={e => {\n onChange(e.target.value);\n }}\n data-test-id={dataTestId}\n />\n </div>\n );\n}\n"],"mappings":";;;;;;;AAQAA,OAAA;AAEA,IAAAC,KAAA,GAAAC,uBAAA,CAAAF,OAAA;AAVA;AACA;AACA;AACA;AACA;AACA;AACA;;AAce,SAASG,SAASA,CAAAC,IAAA,EAMV;EAAA,IALnBC,KAAK,GAAAD,IAAA,CAALC,KAAK;IACLC,KAAK,GAAAF,IAAA,CAALE,KAAK;IACLC,SAAQ,GAAAH,IAAA,CAARG,QAAQ;IAAAC,gBAAA,GAAAJ,IAAA,CACRK,WAAW;IAAXA,WAAW,GAAAD,gBAAA,cAAG,EAAE,GAAAA,gBAAA;IACAE,UAAU,GAAAN,IAAA,CAA1B,cAAc;EAEd,oBACIH,KAAA,CAAAU,aAAA;IAAKC,SAAS,EAAC;EAAgB,gBAC3BX,KAAA,CAAAU,aAAA;IAAOC,SAAS,EAAC;EAAc,GAAEP,KAAa,CAAC,eAC/CJ,KAAA,CAAAU,aAAA;IACIE,IAAI,EAAC,MAAM;IACXD,SAAS,EAAC,cAAc;IACxBH,WAAW,EAAEA,WAAY;IACzBH,KAAK,EAAEA,KAAM;IACbC,QAAQ,EAAE,SAAAA,SAAAO,CAAC,EAAI;MACXP,SAAQ,CAACO,CAAC,CAACC,MAAM,CAACT,KAAK,CAAC;IAC5B,CAAE;IACF,gBAAcI;EAAW,CAC5B,CACA,CAAC;AAEd"}
@@ -1 +1 @@
1
- {"version":3,"names":["MenuContainer","children","menuContainerRef","onClose","handleKeyDown","event","key","includes","preventDefault","handleContainerClick","e","console","log","position","top","left","width","backgroundColor","ToolbarActionDialog","disabled","buttonAriaLabel","buttonClassName","buttonIconClassName","buttonLabel","stopCloseOnClickSelf","menuWindowRef","useRef","useState","showDropDown","setShowDropDown","handleClose","current","focus","useEffect","handle","document","addEventListener","removeEventListener"],"sources":["ToolbarActionDialog.tsx"],"sourcesContent":["import { useEffect, useRef, useState } from \"react\";\nimport * as React from \"react\";\n\nfunction MenuContainer({\n children,\n menuContainerRef,\n onClose\n}: {\n children: React.ReactNode | React.ReactNode[];\n menuContainerRef?: React.Ref<HTMLDivElement>;\n onClose: () => void;\n}) {\n const handleKeyDown = (event: React.KeyboardEvent<HTMLDivElement>) => {\n const key = event.key;\n\n if ([\"Escape\", \"ArrowUp\", \"ArrowDown\", \"Tab\"].includes(key)) {\n event.preventDefault();\n }\n\n if (key === \"Escape\" || key === \"Tab\") {\n onClose();\n }\n };\n\n const handleContainerClick = (e: React.MouseEvent<HTMLDivElement, MouseEvent>) => {\n e.preventDefault();\n console.log(\"click\", e);\n };\n\n return (\n <div style={{ position: \"relative\" }}>\n <div\n onClick={e => handleContainerClick(e)}\n style={{\n position: \"absolute\",\n top: -10,\n left: 0,\n width: 240,\n backgroundColor: \"#fff\"\n }}\n ref={menuContainerRef ?? null}\n onKeyDown={handleKeyDown}\n >\n {children}\n </div>\n </div>\n );\n}\ninterface ToolbarActionDialogProps {\n disabled: boolean;\n buttonLabel?: string;\n buttonAriaLabel: string;\n buttonClassName: string;\n buttonIconClassName: string;\n children: React.ReactNode | React.ReactNode[];\n stopCloseOnClickSelf?: boolean;\n}\n\nexport const ToolbarActionDialog: React.FC<ToolbarActionDialogProps> = ({\n disabled,\n buttonAriaLabel,\n buttonClassName,\n buttonIconClassName,\n buttonLabel,\n children,\n stopCloseOnClickSelf\n}): JSX.Element => {\n const menuWindowRef = useRef<HTMLDivElement>(null);\n const [showDropDown, setShowDropDown] = useState(false);\n\n const handleClose = () => {\n if (menuWindowRef && menuWindowRef.current) {\n setShowDropDown(false);\n menuWindowRef.current.focus();\n }\n };\n\n useEffect(() => {\n if (!showDropDown) {\n return;\n }\n\n const handle = (event: MouseEvent) => {\n /* const target = event.target;\n if (!button.contains(target as Node)) {\n setShowDropDown(false);\n }*/\n console.log(\"handle\", event);\n };\n document.addEventListener(\"click\", handle);\n\n return () => {\n document.removeEventListener(\"click\", handle);\n };\n }, [showDropDown, stopCloseOnClickSelf]);\n\n return (\n <div style={{ position: \"relative\" }}>\n <button\n style={{ position: \"relative\" }}\n disabled={disabled}\n aria-label={buttonAriaLabel || buttonLabel}\n className={buttonClassName}\n onClick={() => {\n setShowDropDown(!showDropDown);\n }}\n >\n {buttonIconClassName && <span className={buttonIconClassName} />}\n {buttonLabel && <span className=\"text dropdown-button-text\">{buttonLabel}</span>}\n <i className=\"chevron-down\" />\n </button>\n {showDropDown && <MenuContainer onClose={handleClose}>{children}</MenuContainer>}\n </div>\n );\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["React","_interopRequireWildcard","require","MenuContainer","_ref","children","menuContainerRef","onClose","handleKeyDown","event","key","includes","preventDefault","handleContainerClick","e","console","log","createElement","style","position","onClick","top","left","width","backgroundColor","ref","onKeyDown","ToolbarActionDialog","_ref2","disabled","buttonAriaLabel","buttonClassName","buttonIconClassName","buttonLabel","stopCloseOnClickSelf","menuWindowRef","useRef","_useState","useState","_useState2","_slicedToArray2","default","showDropDown","setShowDropDown","handleClose","current","focus","useEffect","handle","document","addEventListener","removeEventListener","className","exports"],"sources":["ToolbarActionDialog.tsx"],"sourcesContent":["import { useEffect, useRef, useState } from \"react\";\nimport * as React from \"react\";\n\nfunction MenuContainer({\n children,\n menuContainerRef,\n onClose\n}: {\n children: React.ReactNode | React.ReactNode[];\n menuContainerRef?: React.Ref<HTMLDivElement>;\n onClose: () => void;\n}) {\n const handleKeyDown = (event: React.KeyboardEvent<HTMLDivElement>) => {\n const key = event.key;\n\n if ([\"Escape\", \"ArrowUp\", \"ArrowDown\", \"Tab\"].includes(key)) {\n event.preventDefault();\n }\n\n if (key === \"Escape\" || key === \"Tab\") {\n onClose();\n }\n };\n\n const handleContainerClick = (e: React.MouseEvent<HTMLDivElement, MouseEvent>) => {\n e.preventDefault();\n console.log(\"click\", e);\n };\n\n return (\n <div style={{ position: \"relative\" }}>\n <div\n onClick={e => handleContainerClick(e)}\n style={{\n position: \"absolute\",\n top: -10,\n left: 0,\n width: 240,\n backgroundColor: \"#fff\"\n }}\n ref={menuContainerRef ?? null}\n onKeyDown={handleKeyDown}\n >\n {children}\n </div>\n </div>\n );\n}\ninterface ToolbarActionDialogProps {\n disabled: boolean;\n buttonLabel?: string;\n buttonAriaLabel: string;\n buttonClassName: string;\n buttonIconClassName: string;\n children: React.ReactNode | React.ReactNode[];\n stopCloseOnClickSelf?: boolean;\n}\n\nexport const ToolbarActionDialog: React.FC<ToolbarActionDialogProps> = ({\n disabled,\n buttonAriaLabel,\n buttonClassName,\n buttonIconClassName,\n buttonLabel,\n children,\n stopCloseOnClickSelf\n}): JSX.Element => {\n const menuWindowRef = useRef<HTMLDivElement>(null);\n const [showDropDown, setShowDropDown] = useState(false);\n\n const handleClose = () => {\n if (menuWindowRef && menuWindowRef.current) {\n setShowDropDown(false);\n menuWindowRef.current.focus();\n }\n };\n\n useEffect(() => {\n if (!showDropDown) {\n return;\n }\n\n const handle = (event: MouseEvent) => {\n /* const target = event.target;\n if (!button.contains(target as Node)) {\n setShowDropDown(false);\n }*/\n console.log(\"handle\", event);\n };\n document.addEventListener(\"click\", handle);\n\n return () => {\n document.removeEventListener(\"click\", handle);\n };\n }, [showDropDown, stopCloseOnClickSelf]);\n\n return (\n <div style={{ position: \"relative\" }}>\n <button\n style={{ position: \"relative\" }}\n disabled={disabled}\n aria-label={buttonAriaLabel || buttonLabel}\n className={buttonClassName}\n onClick={() => {\n setShowDropDown(!showDropDown);\n }}\n >\n {buttonIconClassName && <span className={buttonIconClassName} />}\n {buttonLabel && <span className=\"text dropdown-button-text\">{buttonLabel}</span>}\n <i className=\"chevron-down\" />\n </button>\n {showDropDown && <MenuContainer onClose={handleClose}>{children}</MenuContainer>}\n </div>\n );\n};\n"],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export declare const CAN_USE_DOM: boolean;
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.CAN_USE_DOM = void 0;
7
+ var CAN_USE_DOM = typeof window !== "undefined" && typeof window.document !== "undefined" && typeof window.document.createElement !== "undefined";
8
+ exports.CAN_USE_DOM = CAN_USE_DOM;
@@ -0,0 +1 @@
1
+ {"version":3,"names":["CAN_USE_DOM","window","document","createElement","exports"],"sources":["canUseDOM.ts"],"sourcesContent":["export const CAN_USE_DOM: boolean =\n typeof window !== \"undefined\" &&\n typeof window.document !== \"undefined\" &&\n typeof window.document.createElement !== \"undefined\";\n"],"mappings":";;;;;;AAAO,IAAMA,WAAoB,GAC7B,OAAOC,MAAM,KAAK,WAAW,IAC7B,OAAOA,MAAM,CAACC,QAAQ,KAAK,WAAW,IACtC,OAAOD,MAAM,CAACC,QAAQ,CAACC,aAAa,KAAK,WAAW;AAACC,OAAA,CAAAJ,WAAA,GAAAA,WAAA"}
@@ -0,0 +1,12 @@
1
+ import { ImagePayload } from "../commands/insertFiles";
2
+ export interface FileManagerFileItem {
3
+ id: string;
4
+ src: string;
5
+ meta?: Array<FileManagerFileItemMetaItem>;
6
+ }
7
+ export interface FileManagerFileItemMetaItem {
8
+ key: string;
9
+ value: any;
10
+ }
11
+ export declare const isImageType: (file: FileManagerFileItem) => boolean;
12
+ export declare const fileToImagePayload: (file: FileManagerFileItem) => ImagePayload | null;
package/utils/files.js ADDED
@@ -0,0 +1,62 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.isImageType = exports.fileToImagePayload = void 0;
8
+ var _createForOfIteratorHelper2 = _interopRequireDefault(require("@babel/runtime/helpers/createForOfIteratorHelper"));
9
+ var isImageType = function isImageType(file) {
10
+ if (!(file !== null && file !== void 0 && file.meta)) {
11
+ return false;
12
+ }
13
+ var _iterator = (0, _createForOfIteratorHelper2.default)(file.meta),
14
+ _step;
15
+ try {
16
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
17
+ var metaItem = _step.value;
18
+ if (metaItem.key === "type") {
19
+ return metaItem.value.includes("image/");
20
+ }
21
+ }
22
+ } catch (err) {
23
+ _iterator.e(err);
24
+ } finally {
25
+ _iterator.f();
26
+ }
27
+ return false;
28
+ };
29
+ exports.isImageType = isImageType;
30
+ var fileToImagePayload = function fileToImagePayload(file) {
31
+ if (!(file !== null && file !== void 0 && file.meta)) {
32
+ return null;
33
+ }
34
+ if (!isImageType(file)) {
35
+ return null;
36
+ }
37
+ var imagePayload = {};
38
+ imagePayload["id"] = file.id;
39
+ imagePayload["src"] = file.src;
40
+ imagePayload["showCaption"] = true;
41
+ imagePayload["captionsEnabled"] = true;
42
+ var _iterator2 = (0, _createForOfIteratorHelper2.default)(file.meta),
43
+ _step2;
44
+ try {
45
+ for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
46
+ var metaValue = _step2.value;
47
+ if (metaValue.key === "name") {
48
+ imagePayload["altText"] = metaValue.value;
49
+ } else if (metaValue.key === "width") {
50
+ imagePayload["width"] = metaValue.value;
51
+ } else if (metaValue.key === "height") {
52
+ imagePayload["height"] = metaValue.value;
53
+ }
54
+ }
55
+ } catch (err) {
56
+ _iterator2.e(err);
57
+ } finally {
58
+ _iterator2.f();
59
+ }
60
+ return imagePayload;
61
+ };
62
+ exports.fileToImagePayload = fileToImagePayload;
@@ -0,0 +1 @@
1
+ {"version":3,"names":["isImageType","file","meta","_iterator","_createForOfIteratorHelper2","default","_step","s","n","done","metaItem","value","key","includes","err","e","f","exports","fileToImagePayload","imagePayload","id","src","_iterator2","_step2","metaValue"],"sources":["files.ts"],"sourcesContent":["import { ImagePayload } from \"~/commands/insertFiles\";\n\nexport interface FileManagerFileItem {\n id: string;\n src: string;\n meta?: Array<FileManagerFileItemMetaItem>;\n}\n\nexport interface FileManagerFileItemMetaItem {\n key: string;\n value: any;\n}\n\nexport const isImageType = (file: FileManagerFileItem): boolean => {\n if (!file?.meta) {\n return false;\n }\n\n for (const metaItem of file.meta) {\n if (metaItem.key === \"type\") {\n return metaItem.value.includes(\"image/\");\n }\n }\n\n return false;\n};\n\nexport const fileToImagePayload = (file: FileManagerFileItem): ImagePayload | null => {\n if (!file?.meta) {\n return null;\n }\n\n if (!isImageType(file)) {\n return null;\n }\n\n const imagePayload = {} as ImagePayload;\n imagePayload[\"id\"] = file.id;\n imagePayload[\"src\"] = file.src;\n imagePayload[\"showCaption\"] = true;\n imagePayload[\"captionsEnabled\"] = true;\n\n for (const metaValue of file.meta) {\n if (metaValue.key === \"name\") {\n imagePayload[\"altText\"] = metaValue.value;\n } else if (metaValue.key === \"width\") {\n imagePayload[\"width\"] = metaValue.value;\n } else if (metaValue.key === \"height\") {\n imagePayload[\"height\"] = metaValue.value;\n }\n }\n return imagePayload;\n};\n"],"mappings":";;;;;;;;AAaO,IAAMA,WAAW,GAAG,SAAdA,WAAWA,CAAIC,IAAyB,EAAc;EAC/D,IAAI,EAACA,IAAI,aAAJA,IAAI,eAAJA,IAAI,CAAEC,IAAI,GAAE;IACb,OAAO,KAAK;EAChB;EAAC,IAAAC,SAAA,OAAAC,2BAAA,CAAAC,OAAA,EAEsBJ,IAAI,CAACC,IAAI;IAAAI,KAAA;EAAA;IAAhC,KAAAH,SAAA,CAAAI,CAAA,MAAAD,KAAA,GAAAH,SAAA,CAAAK,CAAA,IAAAC,IAAA,GAAkC;MAAA,IAAvBC,QAAQ,GAAAJ,KAAA,CAAAK,KAAA;MACf,IAAID,QAAQ,CAACE,GAAG,KAAK,MAAM,EAAE;QACzB,OAAOF,QAAQ,CAACC,KAAK,CAACE,QAAQ,CAAC,QAAQ,CAAC;MAC5C;IACJ;EAAC,SAAAC,GAAA;IAAAX,SAAA,CAAAY,CAAA,CAAAD,GAAA;EAAA;IAAAX,SAAA,CAAAa,CAAA;EAAA;EAED,OAAO,KAAK;AAChB,CAAC;AAACC,OAAA,CAAAjB,WAAA,GAAAA,WAAA;AAEK,IAAMkB,kBAAkB,GAAG,SAArBA,kBAAkBA,CAAIjB,IAAyB,EAA0B;EAClF,IAAI,EAACA,IAAI,aAAJA,IAAI,eAAJA,IAAI,CAAEC,IAAI,GAAE;IACb,OAAO,IAAI;EACf;EAEA,IAAI,CAACF,WAAW,CAACC,IAAI,CAAC,EAAE;IACpB,OAAO,IAAI;EACf;EAEA,IAAMkB,YAAY,GAAG,CAAC,CAAiB;EACvCA,YAAY,CAAC,IAAI,CAAC,GAAGlB,IAAI,CAACmB,EAAE;EAC5BD,YAAY,CAAC,KAAK,CAAC,GAAGlB,IAAI,CAACoB,GAAG;EAC9BF,YAAY,CAAC,aAAa,CAAC,GAAG,IAAI;EAClCA,YAAY,CAAC,iBAAiB,CAAC,GAAG,IAAI;EAAC,IAAAG,UAAA,OAAAlB,2BAAA,CAAAC,OAAA,EAEfJ,IAAI,CAACC,IAAI;IAAAqB,MAAA;EAAA;IAAjC,KAAAD,UAAA,CAAAf,CAAA,MAAAgB,MAAA,GAAAD,UAAA,CAAAd,CAAA,IAAAC,IAAA,GAAmC;MAAA,IAAxBe,SAAS,GAAAD,MAAA,CAAAZ,KAAA;MAChB,IAAIa,SAAS,CAACZ,GAAG,KAAK,MAAM,EAAE;QAC1BO,YAAY,CAAC,SAAS,CAAC,GAAGK,SAAS,CAACb,KAAK;MAC7C,CAAC,MAAM,IAAIa,SAAS,CAACZ,GAAG,KAAK,OAAO,EAAE;QAClCO,YAAY,CAAC,OAAO,CAAC,GAAGK,SAAS,CAACb,KAAK;MAC3C,CAAC,MAAM,IAAIa,SAAS,CAACZ,GAAG,KAAK,QAAQ,EAAE;QACnCO,YAAY,CAAC,QAAQ,CAAC,GAAGK,SAAS,CAACb,KAAK;MAC5C;IACJ;EAAC,SAAAG,GAAA;IAAAQ,UAAA,CAAAP,CAAA,CAAAD,GAAA;EAAA;IAAAQ,UAAA,CAAAN,CAAA;EAAA;EACD,OAAOG,YAAY;AACvB,CAAC;AAACF,OAAA,CAAAC,kBAAA,GAAAA,kBAAA"}
@@ -1 +1 @@
1
- {"version":3,"names":["findTypographyStyleByHtmlTag","htmlTag","themeEmotionMap","styleId","style","tag","undefined"],"sources":["findTypographyStyleByHtmlTag.ts"],"sourcesContent":["import { ThemeEmotionMap } from \"~/types\";\n\nexport const findTypographyStyleByHtmlTag = (htmlTag: string, themeEmotionMap: ThemeEmotionMap) => {\n for (const styleId in themeEmotionMap) {\n const style = themeEmotionMap[styleId];\n if (style.tag === htmlTag) {\n return style;\n }\n }\n return undefined;\n};\n"],"mappings":";;;;;;AAEO,IAAMA,4BAA4B,GAAG,SAA/BA,4BAA4B,CAAIC,OAAe,EAAEC,eAAgC,EAAK;EAC/F,KAAK,IAAMC,OAAO,IAAID,eAAe,EAAE;IACnC,IAAME,KAAK,GAAGF,eAAe,CAACC,OAAO,CAAC;IACtC,IAAIC,KAAK,CAACC,GAAG,KAAKJ,OAAO,EAAE;MACvB,OAAOG,KAAK;IAChB;EACJ;EACA,OAAOE,SAAS;AACpB,CAAC;AAAC"}
1
+ {"version":3,"names":["findTypographyStyleByHtmlTag","htmlTag","themeEmotionMap","styleId","style","tag","undefined","exports"],"sources":["findTypographyStyleByHtmlTag.ts"],"sourcesContent":["import { ThemeEmotionMap } from \"~/types\";\n\nexport const findTypographyStyleByHtmlTag = (htmlTag: string, themeEmotionMap: ThemeEmotionMap) => {\n for (const styleId in themeEmotionMap) {\n const style = themeEmotionMap[styleId];\n if (style.tag === htmlTag) {\n return style;\n }\n }\n return undefined;\n};\n"],"mappings":";;;;;;AAEO,IAAMA,4BAA4B,GAAG,SAA/BA,4BAA4BA,CAAIC,OAAe,EAAEC,eAAgC,EAAK;EAC/F,KAAK,IAAMC,OAAO,IAAID,eAAe,EAAE;IACnC,IAAME,KAAK,GAAGF,eAAe,CAACC,OAAO,CAAC;IACtC,IAAIC,KAAK,CAACC,GAAG,KAAKJ,OAAO,EAAE;MACvB,OAAOG,KAAK;IAChB;EACJ;EACA,OAAOE,SAAS;AACpB,CAAC;AAACC,OAAA,CAAAP,4BAAA,GAAAA,4BAAA"}
@@ -1 +1 @@
1
- {"version":3,"names":["generateInitialLexicalValue","JSON","stringify","root","children","direction","format","indent","styles","type","version"],"sources":["generateInitialLexicalValue.ts"],"sourcesContent":["import { LexicalValue } from \"~/types\";\n\n/**\n * @description Basic JSON data string that will initialize the editor.\n */\nexport const generateInitialLexicalValue = (): LexicalValue => {\n return JSON.stringify({\n root: {\n children: [\n {\n children: [],\n direction: null,\n format: \"\",\n indent: 0,\n styles: [],\n type: \"paragraph-element\",\n version: 1\n }\n ],\n direction: null,\n format: \"\",\n indent: 0,\n type: \"root\",\n version: 1\n }\n });\n};\n"],"mappings":";;;;;;AAEA;AACA;AACA;AACO,IAAMA,2BAA2B,GAAG,SAA9BA,2BAA2B,GAAuB;EAC3D,OAAOC,IAAI,CAACC,SAAS,CAAC;IAClBC,IAAI,EAAE;MACFC,QAAQ,EAAE,CACN;QACIA,QAAQ,EAAE,EAAE;QACZC,SAAS,EAAE,IAAI;QACfC,MAAM,EAAE,EAAE;QACVC,MAAM,EAAE,CAAC;QACTC,MAAM,EAAE,EAAE;QACVC,IAAI,EAAE,mBAAmB;QACzBC,OAAO,EAAE;MACb,CAAC,CACJ;MACDL,SAAS,EAAE,IAAI;MACfC,MAAM,EAAE,EAAE;MACVC,MAAM,EAAE,CAAC;MACTE,IAAI,EAAE,MAAM;MACZC,OAAO,EAAE;IACb;EACJ,CAAC,CAAC;AACN,CAAC;AAAC"}
1
+ {"version":3,"names":["generateInitialLexicalValue","JSON","stringify","root","children","direction","format","indent","styles","type","version","exports"],"sources":["generateInitialLexicalValue.ts"],"sourcesContent":["import { LexicalValue } from \"~/types\";\n\n/**\n * @description Basic JSON data string that will initialize the editor.\n */\nexport const generateInitialLexicalValue = (): LexicalValue => {\n return JSON.stringify({\n root: {\n children: [\n {\n children: [],\n direction: null,\n format: \"\",\n indent: 0,\n styles: [],\n type: \"paragraph-element\",\n version: 1\n }\n ],\n direction: null,\n format: \"\",\n indent: 0,\n type: \"root\",\n version: 1\n }\n });\n};\n"],"mappings":";;;;;;AAEA;AACA;AACA;AACO,IAAMA,2BAA2B,GAAG,SAA9BA,2BAA2BA,CAAA,EAAuB;EAC3D,OAAOC,IAAI,CAACC,SAAS,CAAC;IAClBC,IAAI,EAAE;MACFC,QAAQ,EAAE,CACN;QACIA,QAAQ,EAAE,EAAE;QACZC,SAAS,EAAE,IAAI;QACfC,MAAM,EAAE,EAAE;QACVC,MAAM,EAAE,CAAC;QACTC,MAAM,EAAE,EAAE;QACVC,IAAI,EAAE,mBAAmB;QACzBC,OAAO,EAAE;MACb,CAAC,CACJ;MACDL,SAAS,EAAE,IAAI;MACfC,MAAM,EAAE,EAAE;MACVC,MAAM,EAAE,CAAC;MACTE,IAAI,EAAE,MAAM;MACZC,OAAO,EAAE;IACb;EACJ,CAAC,CAAC;AACN,CAAC;AAACC,OAAA,CAAAX,2BAAA,GAAAA,2BAAA"}
@@ -1 +1 @@
1
- {"version":3,"names":["getDOMRangeRect","nativeSelection","rootElement","domRange","getRangeAt","rect","anchorNode","inner","firstElementChild","getBoundingClientRect"],"sources":["getDOMRangeRect.ts"],"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 */\nexport function getDOMRangeRect(nativeSelection: Selection, rootElement: HTMLElement): DOMRect {\n const domRange = nativeSelection.getRangeAt(0);\n\n let rect;\n\n if (nativeSelection.anchorNode === rootElement) {\n let inner = rootElement;\n while (inner.firstElementChild != null) {\n inner = inner.firstElementChild as HTMLElement;\n }\n rect = inner.getBoundingClientRect();\n } else {\n rect = domRange.getBoundingClientRect();\n }\n\n return rect;\n}\n"],"mappings":";;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASA,eAAe,CAACC,eAA0B,EAAEC,WAAwB,EAAW;EAC3F,IAAMC,QAAQ,GAAGF,eAAe,CAACG,UAAU,CAAC,CAAC,CAAC;EAE9C,IAAIC,IAAI;EAER,IAAIJ,eAAe,CAACK,UAAU,KAAKJ,WAAW,EAAE;IAC5C,IAAIK,KAAK,GAAGL,WAAW;IACvB,OAAOK,KAAK,CAACC,iBAAiB,IAAI,IAAI,EAAE;MACpCD,KAAK,GAAGA,KAAK,CAACC,iBAAgC;IAClD;IACAH,IAAI,GAAGE,KAAK,CAACE,qBAAqB,EAAE;EACxC,CAAC,MAAM;IACHJ,IAAI,GAAGF,QAAQ,CAACM,qBAAqB,EAAE;EAC3C;EAEA,OAAOJ,IAAI;AACf"}
1
+ {"version":3,"names":["getDOMRangeRect","nativeSelection","rootElement","domRange","getRangeAt","rect","anchorNode","inner","firstElementChild","getBoundingClientRect"],"sources":["getDOMRangeRect.ts"],"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 */\nexport function getDOMRangeRect(nativeSelection: Selection, rootElement: HTMLElement): DOMRect {\n const domRange = nativeSelection.getRangeAt(0);\n\n let rect;\n\n if (nativeSelection.anchorNode === rootElement) {\n let inner = rootElement;\n while (inner.firstElementChild != null) {\n inner = inner.firstElementChild as HTMLElement;\n }\n rect = inner.getBoundingClientRect();\n } else {\n rect = domRange.getBoundingClientRect();\n }\n\n return rect;\n}\n"],"mappings":";;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASA,eAAeA,CAACC,eAA0B,EAAEC,WAAwB,EAAW;EAC3F,IAAMC,QAAQ,GAAGF,eAAe,CAACG,UAAU,CAAC,CAAC,CAAC;EAE9C,IAAIC,IAAI;EAER,IAAIJ,eAAe,CAACK,UAAU,KAAKJ,WAAW,EAAE;IAC5C,IAAIK,KAAK,GAAGL,WAAW;IACvB,OAAOK,KAAK,CAACC,iBAAiB,IAAI,IAAI,EAAE;MACpCD,KAAK,GAAGA,KAAK,CAACC,iBAAgC;IAClD;IACAH,IAAI,GAAGE,KAAK,CAACE,qBAAqB,CAAC,CAAC;EACxC,CAAC,MAAM;IACHJ,IAAI,GAAGF,QAAQ,CAACM,qBAAqB,CAAC,CAAC;EAC3C;EAEA,OAAOJ,IAAI;AACf"}
@@ -1 +1 @@
1
- {"version":3,"names":["getSelectionTextFormat","selection","$isRangeSelection","italic","bold","underline","code","hasFormat","getDefaultToolbarState","isRTL","link","isSelected","list","typography","fontColor","quote","paragraph","heading","textType","undefined","getToolbarState","node","parent","element","anchorNode","textFormat","state","$isParentElementRTL","$isLinkNode","$isFontColorNode","$isListNode","parentList","$getNearestNodeOfType","ListNode","type","getListType","$isBaseHeadingNode","$isHeadingNode","$isBaseParagraphNode","$isParagraphNode","$isTypographyElementNode","value","getTypographyValue","tag","includes","$isQuoteNode","getLexicalTextSelectionState","activeEditor","anchor","getNode","getKey","$findMatchingParent","e","getParent","$isRootOrShadowRoot","getTopLevelElementOrThrow","elementKey","elementDOM","getElementByKey","getSelectedNode","isElementDom","selectedText","getTextContent"],"sources":["getLexicalTextSelectionState.ts"],"sourcesContent":["import { TextFormatting, TextBlockSelection, ToolbarState, TypographyValue } from \"~/types\";\nimport {\n $isParagraphNode as $isBaseParagraphNode,\n $isRangeSelection,\n $isRootOrShadowRoot,\n ElementNode,\n LexicalEditor,\n LexicalNode,\n RangeSelection,\n TextNode\n} from \"lexical\";\nimport { $findMatchingParent, $getNearestNodeOfType } from \"@lexical/utils\";\nimport { getSelectedNode } from \"~/utils/getSelectedNode\";\nimport { $isLinkNode } from \"@lexical/link\";\nimport { $isListNode, ListNode } from \"~/nodes/ListNode\";\nimport { $isHeadingNode as $isBaseHeadingNode } from \"@lexical/rich-text\";\nimport { $isTypographyElementNode } from \"~/nodes/TypographyElementNode\";\nimport { $isFontColorNode } from \"~/nodes/FontColorNode\";\nimport { $isParagraphNode } from \"~/nodes/ParagraphNode\";\nimport { $isHeadingNode } from \"~/nodes/HeadingNode\";\nimport { $isQuoteNode } from \"~/nodes/QuoteNode\";\nimport { $isParentElementRTL } from \"@lexical/selection\";\n\nexport const getSelectionTextFormat = (selection: RangeSelection | undefined): TextFormatting => {\n return !$isRangeSelection(selection)\n ? {\n italic: false,\n bold: false,\n underline: false,\n code: false\n }\n : {\n bold: selection.hasFormat(\"bold\"),\n italic: selection.hasFormat(\"italic\"),\n underline: selection.hasFormat(\"underline\"),\n code: selection.hasFormat(\"code\")\n };\n};\n\nconst getDefaultToolbarState = (): ToolbarState => {\n return {\n bold: false,\n italic: false,\n underline: false,\n code: false,\n isRTL: false,\n link: { isSelected: false },\n list: { isSelected: false },\n typography: { isSelected: false },\n fontColor: { isSelected: false },\n quote: { isSelected: false },\n paragraph: { isSelected: false },\n heading: { isSelected: false },\n textType: undefined\n };\n};\n\nexport const getToolbarState = (\n selection: RangeSelection,\n node: LexicalNode,\n parent: LexicalNode | null,\n element: LexicalNode | null,\n anchorNode: ElementNode | TextNode\n): ToolbarState => {\n const textFormat = getSelectionTextFormat(selection);\n let state: ToolbarState = getDefaultToolbarState();\n state = {\n ...state,\n bold: textFormat.bold,\n italic: textFormat.italic,\n underline: textFormat.underline,\n code: textFormat.code\n };\n\n state.isRTL = $isParentElementRTL(selection);\n\n // link\n state.link.isSelected = $isLinkNode(parent) || $isLinkNode(node);\n if (state.link.isSelected) {\n state.textType = \"link\";\n }\n\n // font color\n if ($isFontColorNode(node)) {\n state.fontColor.isSelected = true;\n }\n\n if ($isListNode(element)) {\n const parentList = $getNearestNodeOfType<ListNode>(anchorNode, ListNode);\n const type = parentList ? parentList.getListType() : element.getListType();\n state.textType = type;\n }\n\n if ($isBaseHeadingNode(element)) {\n state.textType = \"heading\";\n }\n\n if ($isHeadingNode(element)) {\n state.textType = \"heading\";\n state.heading.isSelected = true;\n }\n\n if ($isBaseParagraphNode(element)) {\n state.textType = \"paragraph\";\n }\n\n if ($isParagraphNode(element)) {\n state.textType = \"paragraph\";\n state.paragraph.isSelected = true;\n }\n\n if ($isTypographyElementNode(element)) {\n state.typography.isSelected = true;\n const value = element?.getTypographyValue() as TypographyValue;\n if (value.tag.includes(\"h\")) {\n state.textType = \"heading\";\n }\n if (value.tag.includes(\"p\")) {\n state.textType = \"paragraph\";\n }\n }\n\n if ($isTypographyElementNode(element)) {\n state.fontColor.isSelected = true;\n }\n\n if ($isQuoteNode(element)) {\n state.textType = \"quoteblock\";\n state.quote.isSelected = true;\n }\n\n return state;\n};\n\n/*\n * @desc Get selection data and provide processed toolbar state and data about the text, element and parent nodes.\n */\nexport const getLexicalTextSelectionState = (\n activeEditor: LexicalEditor,\n selection: RangeSelection\n): TextBlockSelection | null => {\n if ($isRangeSelection(selection)) {\n const anchorNode = selection.anchor.getNode();\n let element =\n anchorNode.getKey() === \"root\"\n ? anchorNode\n : $findMatchingParent(anchorNode, e => {\n const parent = e.getParent();\n return parent !== null && $isRootOrShadowRoot(parent);\n });\n\n if (element === null) {\n element = anchorNode.getTopLevelElementOrThrow();\n }\n\n const elementKey = element.getKey();\n const elementDOM = activeEditor.getElementByKey(elementKey);\n\n // Update links\n const node = getSelectedNode(selection);\n const parent = node.getParent();\n const isElementDom = elementDOM !== null;\n const selectedText = selection.getTextContent();\n\n return {\n // node/element data from selection\n elementKey,\n element,\n parent,\n node,\n anchorNode,\n selection,\n isElementDom,\n selectedText,\n state: getToolbarState(selection, node, parent, element, anchorNode)\n };\n }\n return null;\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["_lexical","require","_utils","_getSelectedNode","_link","_ListNode","_richText","_TypographyElementNode","_FontColorNode","_ParagraphNode","_HeadingNode","_QuoteNode","_selection","getSelectionTextFormat","selection","$isRangeSelection","italic","bold","underline","code","hasFormat","exports","getDefaultToolbarState","isRTL","link","isSelected","list","typography","fontColor","quote","paragraph","heading","textType","undefined","getToolbarState","node","parent","element","anchorNode","textFormat","state","_objectSpread2","default","$isParentElementRTL","$isLinkNode","$isFontColorNode","$isListNode","parentList","$getNearestNodeOfType","ListNode","type","getListType","$isBaseHeadingNode","$isHeadingNode","$isBaseParagraphNode","$isParagraphNode","$isTypographyElementNode","value","getTypographyValue","tag","includes","$isQuoteNode","getLexicalTextSelectionState","activeEditor","anchor","getNode","getKey","$findMatchingParent","e","getParent","$isRootOrShadowRoot","getTopLevelElementOrThrow","elementKey","elementDOM","getElementByKey","getSelectedNode","isElementDom","selectedText","getTextContent"],"sources":["getLexicalTextSelectionState.ts"],"sourcesContent":["import { TextFormatting, TextBlockSelection, ToolbarState, TypographyValue } from \"~/types\";\nimport {\n $isParagraphNode as $isBaseParagraphNode,\n $isRangeSelection,\n $isRootOrShadowRoot,\n ElementNode,\n LexicalEditor,\n LexicalNode,\n RangeSelection,\n TextNode\n} from \"lexical\";\nimport { $findMatchingParent, $getNearestNodeOfType } from \"@lexical/utils\";\nimport { getSelectedNode } from \"~/utils/getSelectedNode\";\nimport { $isLinkNode } from \"@lexical/link\";\nimport { $isListNode, ListNode } from \"~/nodes/ListNode\";\nimport { $isHeadingNode as $isBaseHeadingNode } from \"@lexical/rich-text\";\nimport { $isTypographyElementNode } from \"~/nodes/TypographyElementNode\";\nimport { $isFontColorNode } from \"~/nodes/FontColorNode\";\nimport { $isParagraphNode } from \"~/nodes/ParagraphNode\";\nimport { $isHeadingNode } from \"~/nodes/HeadingNode\";\nimport { $isQuoteNode } from \"~/nodes/QuoteNode\";\nimport { $isParentElementRTL } from \"@lexical/selection\";\n\nexport const getSelectionTextFormat = (selection: RangeSelection | undefined): TextFormatting => {\n return !$isRangeSelection(selection)\n ? {\n italic: false,\n bold: false,\n underline: false,\n code: false\n }\n : {\n bold: selection.hasFormat(\"bold\"),\n italic: selection.hasFormat(\"italic\"),\n underline: selection.hasFormat(\"underline\"),\n code: selection.hasFormat(\"code\")\n };\n};\n\nconst getDefaultToolbarState = (): ToolbarState => {\n return {\n bold: false,\n italic: false,\n underline: false,\n code: false,\n isRTL: false,\n link: { isSelected: false },\n list: { isSelected: false },\n typography: { isSelected: false },\n fontColor: { isSelected: false },\n quote: { isSelected: false },\n paragraph: { isSelected: false },\n heading: { isSelected: false },\n textType: undefined\n };\n};\n\nexport const getToolbarState = (\n selection: RangeSelection,\n node: LexicalNode,\n parent: LexicalNode | null,\n element: LexicalNode | null,\n anchorNode: ElementNode | TextNode\n): ToolbarState => {\n const textFormat = getSelectionTextFormat(selection);\n let state: ToolbarState = getDefaultToolbarState();\n state = {\n ...state,\n bold: textFormat.bold,\n italic: textFormat.italic,\n underline: textFormat.underline,\n code: textFormat.code\n };\n\n state.isRTL = $isParentElementRTL(selection);\n\n // link\n state.link.isSelected = $isLinkNode(parent) || $isLinkNode(node);\n if (state.link.isSelected) {\n state.textType = \"link\";\n }\n\n // font color\n if ($isFontColorNode(node)) {\n state.fontColor.isSelected = true;\n }\n\n if ($isListNode(element)) {\n const parentList = $getNearestNodeOfType<ListNode>(anchorNode, ListNode);\n const type = parentList ? parentList.getListType() : element.getListType();\n state.textType = type;\n }\n\n if ($isBaseHeadingNode(element)) {\n state.textType = \"heading\";\n }\n\n if ($isHeadingNode(element)) {\n state.textType = \"heading\";\n state.heading.isSelected = true;\n }\n\n if ($isBaseParagraphNode(element)) {\n state.textType = \"paragraph\";\n }\n\n if ($isParagraphNode(element)) {\n state.textType = \"paragraph\";\n state.paragraph.isSelected = true;\n }\n\n if ($isTypographyElementNode(element)) {\n state.typography.isSelected = true;\n const value = element?.getTypographyValue() as TypographyValue;\n if (value.tag.includes(\"h\")) {\n state.textType = \"heading\";\n }\n if (value.tag.includes(\"p\")) {\n state.textType = \"paragraph\";\n }\n }\n\n if ($isTypographyElementNode(element)) {\n state.fontColor.isSelected = true;\n }\n\n if ($isQuoteNode(element)) {\n state.textType = \"quoteblock\";\n state.quote.isSelected = true;\n }\n\n return state;\n};\n\n/*\n * @desc Get selection data and provide processed toolbar state and data about the text, element and parent nodes.\n */\nexport const getLexicalTextSelectionState = (\n activeEditor: LexicalEditor,\n selection: RangeSelection\n): TextBlockSelection | null => {\n if ($isRangeSelection(selection)) {\n const anchorNode = selection.anchor.getNode();\n let element =\n anchorNode.getKey() === \"root\"\n ? anchorNode\n : $findMatchingParent(anchorNode, e => {\n const parent = e.getParent();\n return parent !== null && $isRootOrShadowRoot(parent);\n });\n\n if (element === null) {\n element = anchorNode.getTopLevelElementOrThrow();\n }\n\n const elementKey = element.getKey();\n const elementDOM = activeEditor.getElementByKey(elementKey);\n\n // Update links\n const node = getSelectedNode(selection);\n const parent = node.getParent();\n const isElementDom = elementDOM !== null;\n const selectedText = selection.getTextContent();\n\n return {\n // node/element data from selection\n elementKey,\n element,\n parent,\n node,\n anchorNode,\n selection,\n isElementDom,\n selectedText,\n state: getToolbarState(selection, node, parent, element, anchorNode)\n };\n }\n return null;\n};\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"names":["getSelectedNode","selection","anchor","focus","anchorNode","getNode","focusNode","isBackward","$isAtNodeEnd"],"sources":["getSelectedNode.ts"],"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 { $isAtNodeEnd } from \"@lexical/selection\";\nimport { ElementNode, RangeSelection, TextNode } from \"lexical\";\n\nexport function getSelectedNode(selection: RangeSelection): TextNode | ElementNode {\n const anchor = selection.anchor;\n const focus = selection.focus;\n const anchorNode = selection.anchor.getNode();\n const focusNode = selection.focus.getNode();\n if (anchorNode === focusNode) {\n return anchorNode;\n }\n const isBackward = selection.isBackward();\n if (isBackward) {\n return $isAtNodeEnd(focus) ? anchorNode : focusNode;\n } else {\n return $isAtNodeEnd(anchor) ? focusNode : anchorNode;\n }\n}\n"],"mappings":";;;;;;AAOA;AAPA;AACA;AACA;AACA;AACA;AACA;AACA;;AAIO,SAASA,eAAe,CAACC,SAAyB,EAA0B;EAC/E,IAAMC,MAAM,GAAGD,SAAS,CAACC,MAAM;EAC/B,IAAMC,KAAK,GAAGF,SAAS,CAACE,KAAK;EAC7B,IAAMC,UAAU,GAAGH,SAAS,CAACC,MAAM,CAACG,OAAO,EAAE;EAC7C,IAAMC,SAAS,GAAGL,SAAS,CAACE,KAAK,CAACE,OAAO,EAAE;EAC3C,IAAID,UAAU,KAAKE,SAAS,EAAE;IAC1B,OAAOF,UAAU;EACrB;EACA,IAAMG,UAAU,GAAGN,SAAS,CAACM,UAAU,EAAE;EACzC,IAAIA,UAAU,EAAE;IACZ,OAAO,IAAAC,uBAAY,EAACL,KAAK,CAAC,GAAGC,UAAU,GAAGE,SAAS;EACvD,CAAC,MAAM;IACH,OAAO,IAAAE,uBAAY,EAACN,MAAM,CAAC,GAAGI,SAAS,GAAGF,UAAU;EACxD;AACJ"}
1
+ {"version":3,"names":["_selection","require","getSelectedNode","selection","anchor","focus","anchorNode","getNode","focusNode","isBackward","$isAtNodeEnd"],"sources":["getSelectedNode.ts"],"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 { $isAtNodeEnd } from \"@lexical/selection\";\nimport { ElementNode, RangeSelection, TextNode } from \"lexical\";\n\nexport function getSelectedNode(selection: RangeSelection): TextNode | ElementNode {\n const anchor = selection.anchor;\n const focus = selection.focus;\n const anchorNode = selection.anchor.getNode();\n const focusNode = selection.focus.getNode();\n if (anchorNode === focusNode) {\n return anchorNode;\n }\n const isBackward = selection.isBackward();\n if (isBackward) {\n return $isAtNodeEnd(focus) ? anchorNode : focusNode;\n } else {\n return $isAtNodeEnd(anchor) ? focusNode : anchorNode;\n }\n}\n"],"mappings":";;;;;;AAOA,IAAAA,UAAA,GAAAC,OAAA;AAPA;AACA;AACA;AACA;AACA;AACA;AACA;;AAIO,SAASC,eAAeA,CAACC,SAAyB,EAA0B;EAC/E,IAAMC,MAAM,GAAGD,SAAS,CAACC,MAAM;EAC/B,IAAMC,KAAK,GAAGF,SAAS,CAACE,KAAK;EAC7B,IAAMC,UAAU,GAAGH,SAAS,CAACC,MAAM,CAACG,OAAO,CAAC,CAAC;EAC7C,IAAMC,SAAS,GAAGL,SAAS,CAACE,KAAK,CAACE,OAAO,CAAC,CAAC;EAC3C,IAAID,UAAU,KAAKE,SAAS,EAAE;IAC1B,OAAOF,UAAU;EACrB;EACA,IAAMG,UAAU,GAAGN,SAAS,CAACM,UAAU,CAAC,CAAC;EACzC,IAAIA,UAAU,EAAE;IACZ,OAAO,IAAAC,uBAAY,EAACL,KAAK,CAAC,GAAGC,UAAU,GAAGE,SAAS;EACvD,CAAC,MAAM;IACH,OAAO,IAAAE,uBAAY,EAACN,MAAM,CAAC,GAAGI,SAAS,GAAGF,UAAU;EACxD;AACJ"}
@@ -0,0 +1 @@
1
+ export declare const getTransparentImage: () => string;
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.getTransparentImage = void 0;
7
+ var getTransparentImage = function getTransparentImage() {
8
+ return "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7";
9
+ };
10
+ exports.getTransparentImage = getTransparentImage;
@@ -0,0 +1 @@
1
+ {"version":3,"names":["getTransparentImage","exports"],"sources":["getTransparentImage.ts"],"sourcesContent":["export const getTransparentImage = () => {\n return \"data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7\";\n};\n"],"mappings":";;;;;;AAAO,IAAMA,mBAAmB,GAAG,SAAtBA,mBAAmBA,CAAA,EAAS;EACrC,OAAO,gFAAgF;AAC3F,CAAC;AAACC,OAAA,CAAAD,mBAAA,GAAAA,mBAAA"}
@@ -1,3 +1,5 @@
1
+ /// <reference types="react" />
2
+ /// <reference types="web" />
1
3
  /**
2
4
  * Copyright (c) Meta Platforms, Inc. and affiliates.
3
5
  *
@@ -5,7 +7,4 @@
5
7
  * LICENSE file in the root directory of this source tree.
6
8
  *
7
9
  */
8
- /// <reference types="react" />
9
- /// <reference types="react" />
10
- /// <reference types="web" />
11
- export declare const LexicalAutoLinkPlugin: () => JSX.Element;
10
+ export declare function isHTMLElement(x: unknown): x is HTMLElement;
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.isHTMLElement = isHTMLElement;
7
+ /**
8
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
9
+ *
10
+ * This source code is licensed under the MIT license found in the
11
+ * LICENSE file in the root directory of this source tree.
12
+ *
13
+ */
14
+ function isHTMLElement(x) {
15
+ return x instanceof HTMLElement;
16
+ }
@@ -0,0 +1 @@
1
+ {"version":3,"names":["isHTMLElement","x","HTMLElement"],"sources":["isHTMLElement.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 */\nexport function isHTMLElement(x: unknown): x is HTMLElement {\n return x instanceof HTMLElement;\n}\n"],"mappings":";;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASA,aAAaA,CAACC,CAAU,EAAoB;EACxD,OAAOA,CAAC,YAAYC,WAAW;AACnC"}
@@ -1 +1 @@
1
- {"version":3,"names":["isValidJSON","value","o","JSON","parse","Array","isArray"],"sources":["isValidJSON.ts"],"sourcesContent":["export const isValidJSON = (value: string | undefined | null): boolean => {\n if (!value) {\n return false;\n }\n try {\n const o = JSON.parse(value);\n return !!o && typeof o === \"object\" && !Array.isArray(o);\n } catch {\n return false;\n }\n};\n"],"mappings":";;;;;;AAAO,IAAMA,WAAW,GAAG,SAAdA,WAAW,CAAIC,KAAgC,EAAc;EACtE,IAAI,CAACA,KAAK,EAAE;IACR,OAAO,KAAK;EAChB;EACA,IAAI;IACA,IAAMC,CAAC,GAAGC,IAAI,CAACC,KAAK,CAACH,KAAK,CAAC;IAC3B,OAAO,CAAC,CAACC,CAAC,IAAI,OAAOA,CAAC,KAAK,QAAQ,IAAI,CAACG,KAAK,CAACC,OAAO,CAACJ,CAAC,CAAC;EAC5D,CAAC,CAAC,gBAAM;IACJ,OAAO,KAAK;EAChB;AACJ,CAAC;AAAC"}
1
+ {"version":3,"names":["isValidJSON","value","o","JSON","parse","Array","isArray","_unused","exports"],"sources":["isValidJSON.ts"],"sourcesContent":["export const isValidJSON = (value: string | undefined | null): boolean => {\n if (!value) {\n return false;\n }\n try {\n const o = JSON.parse(value);\n return !!o && typeof o === \"object\" && !Array.isArray(o);\n } catch {\n return false;\n }\n};\n"],"mappings":";;;;;;AAAO,IAAMA,WAAW,GAAG,SAAdA,WAAWA,CAAIC,KAAgC,EAAc;EACtE,IAAI,CAACA,KAAK,EAAE;IACR,OAAO,KAAK;EAChB;EACA,IAAI;IACA,IAAMC,CAAC,GAAGC,IAAI,CAACC,KAAK,CAACH,KAAK,CAAC;IAC3B,OAAO,CAAC,CAACC,CAAC,IAAI,OAAOA,CAAC,KAAK,QAAQ,IAAI,CAACG,KAAK,CAACC,OAAO,CAACJ,CAAC,CAAC;EAC5D,CAAC,CAAC,OAAAK,OAAA,EAAM;IACJ,OAAO,KAAK;EAChB;AACJ,CAAC;AAACC,OAAA,CAAAR,WAAA,GAAAA,WAAA"}
@@ -1 +1 @@
1
- {"version":3,"names":["isValidLexicalData","editorStateValue","isValidJSON","data","JSON","parse"],"sources":["isValidLexicalData.ts"],"sourcesContent":["import { isValidJSON } from \"~/utils/isValidJSON\";\nimport { LexicalValue } from \"~/types\";\n/*\n * @description Checks for valid lexical data.\n *\n * Check for first level of properties that empty editor state data need to have.\n * @see generateInitialLexicalValue\n */\nexport const isValidLexicalData = (editorStateValue: LexicalValue | null): boolean => {\n if (!editorStateValue) {\n return false;\n }\n if (!isValidJSON(editorStateValue)) {\n return false;\n }\n const data = JSON.parse(editorStateValue);\n return !!data[\"root\"];\n};\n"],"mappings":";;;;;;AAAA;AAEA;AACA;AACA;AACA;AACA;AACA;AACO,IAAMA,kBAAkB,GAAG,SAArBA,kBAAkB,CAAIC,gBAAqC,EAAc;EAClF,IAAI,CAACA,gBAAgB,EAAE;IACnB,OAAO,KAAK;EAChB;EACA,IAAI,CAAC,IAAAC,wBAAW,EAACD,gBAAgB,CAAC,EAAE;IAChC,OAAO,KAAK;EAChB;EACA,IAAME,IAAI,GAAGC,IAAI,CAACC,KAAK,CAACJ,gBAAgB,CAAC;EACzC,OAAO,CAAC,CAACE,IAAI,CAAC,MAAM,CAAC;AACzB,CAAC;AAAC"}
1
+ {"version":3,"names":["_isValidJSON","require","isValidLexicalData","editorStateValue","isValidJSON","data","JSON","parse","exports"],"sources":["isValidLexicalData.ts"],"sourcesContent":["import { isValidJSON } from \"~/utils/isValidJSON\";\nimport { LexicalValue } from \"~/types\";\n/*\n * @description Checks for valid lexical data.\n *\n * Check for first level of properties that empty editor state data need to have.\n * @see generateInitialLexicalValue\n */\nexport const isValidLexicalData = (editorStateValue: LexicalValue | null): boolean => {\n if (!editorStateValue) {\n return false;\n }\n if (!isValidJSON(editorStateValue)) {\n return false;\n }\n const data = JSON.parse(editorStateValue);\n return !!data[\"root\"];\n};\n"],"mappings":";;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AAEA;AACA;AACA;AACA;AACA;AACA;AACO,IAAMC,kBAAkB,GAAG,SAArBA,kBAAkBA,CAAIC,gBAAqC,EAAc;EAClF,IAAI,CAACA,gBAAgB,EAAE;IACnB,OAAO,KAAK;EAChB;EACA,IAAI,CAAC,IAAAC,wBAAW,EAACD,gBAAgB,CAAC,EAAE;IAChC,OAAO,KAAK;EAChB;EACA,IAAME,IAAI,GAAGC,IAAI,CAACC,KAAK,CAACJ,gBAAgB,CAAC;EACzC,OAAO,CAAC,CAACE,IAAI,CAAC,MAAM,CAAC;AACzB,CAAC;AAACG,OAAA,CAAAN,kBAAA,GAAAA,kBAAA"}
@@ -1 +1 @@
1
- {"version":3,"names":["clearNodeFormatting","activeEditor","selection","update","$isRangeSelection","$selectAll","getNodes","forEach","node","$isTextNode","setFormat","setStyle","$getNearestBlockElementAncestorOrThrow","$isDecoratorBlockNode"],"sources":["clearNodeFormating.ts"],"sourcesContent":["import {\n $isRangeSelection,\n $isTextNode,\n GridSelection,\n LexicalEditor,\n NodeSelection,\n RangeSelection\n} from \"lexical\";\nimport { $selectAll } from \"@lexical/selection\";\nimport { $getNearestBlockElementAncestorOrThrow } from \"@lexical/utils\";\nimport { $isDecoratorBlockNode } from \"@lexical/react/LexicalDecoratorBlockNode\";\n\nexport const clearNodeFormatting = (\n activeEditor: LexicalEditor,\n selection: RangeSelection | NodeSelection | GridSelection | null\n) => {\n activeEditor.update(() => {\n if ($isRangeSelection(selection)) {\n $selectAll(selection);\n selection.getNodes().forEach(node => {\n if ($isTextNode(node)) {\n node.setFormat(0);\n node.setStyle(\"\");\n $getNearestBlockElementAncestorOrThrow(node).setFormat(\"\");\n }\n if ($isDecoratorBlockNode(node)) {\n node.setFormat(\"\");\n }\n });\n }\n });\n};\n"],"mappings":";;;;;;AAAA;AAQA;AACA;AACA;AAEO,IAAMA,mBAAmB,GAAG,SAAtBA,mBAAmB,CAC5BC,YAA2B,EAC3BC,SAAgE,EAC/D;EACDD,YAAY,CAACE,MAAM,CAAC,YAAM;IACtB,IAAI,IAAAC,0BAAiB,EAACF,SAAS,CAAC,EAAE;MAC9B,IAAAG,qBAAU,EAACH,SAAS,CAAC;MACrBA,SAAS,CAACI,QAAQ,EAAE,CAACC,OAAO,CAAC,UAAAC,IAAI,EAAI;QACjC,IAAI,IAAAC,oBAAW,EAACD,IAAI,CAAC,EAAE;UACnBA,IAAI,CAACE,SAAS,CAAC,CAAC,CAAC;UACjBF,IAAI,CAACG,QAAQ,CAAC,EAAE,CAAC;UACjB,IAAAC,6CAAsC,EAACJ,IAAI,CAAC,CAACE,SAAS,CAAC,EAAE,CAAC;QAC9D;QACA,IAAI,IAAAG,gDAAqB,EAACL,IAAI,CAAC,EAAE;UAC7BA,IAAI,CAACE,SAAS,CAAC,EAAE,CAAC;QACtB;MACJ,CAAC,CAAC;IACN;EACJ,CAAC,CAAC;AACN,CAAC;AAAC"}
1
+ {"version":3,"names":["_lexical","require","_selection","_utils","_LexicalDecoratorBlockNode","clearNodeFormatting","activeEditor","selection","update","$isRangeSelection","$selectAll","getNodes","forEach","node","$isTextNode","setFormat","setStyle","$getNearestBlockElementAncestorOrThrow","$isDecoratorBlockNode","exports"],"sources":["clearNodeFormating.ts"],"sourcesContent":["import {\n $isRangeSelection,\n $isTextNode,\n GridSelection,\n LexicalEditor,\n NodeSelection,\n RangeSelection\n} from \"lexical\";\nimport { $selectAll } from \"@lexical/selection\";\nimport { $getNearestBlockElementAncestorOrThrow } from \"@lexical/utils\";\nimport { $isDecoratorBlockNode } from \"@lexical/react/LexicalDecoratorBlockNode\";\n\nexport const clearNodeFormatting = (\n activeEditor: LexicalEditor,\n selection: RangeSelection | NodeSelection | GridSelection | null\n) => {\n activeEditor.update(() => {\n if ($isRangeSelection(selection)) {\n $selectAll(selection);\n selection.getNodes().forEach(node => {\n if ($isTextNode(node)) {\n node.setFormat(0);\n node.setStyle(\"\");\n $getNearestBlockElementAncestorOrThrow(node).setFormat(\"\");\n }\n if ($isDecoratorBlockNode(node)) {\n node.setFormat(\"\");\n }\n });\n }\n });\n};\n"],"mappings":";;;;;;AAAA,IAAAA,QAAA,GAAAC,OAAA;AAQA,IAAAC,UAAA,GAAAD,OAAA;AACA,IAAAE,MAAA,GAAAF,OAAA;AACA,IAAAG,0BAAA,GAAAH,OAAA;AAEO,IAAMI,mBAAmB,GAAG,SAAtBA,mBAAmBA,CAC5BC,YAA2B,EAC3BC,SAAgE,EAC/D;EACDD,YAAY,CAACE,MAAM,CAAC,YAAM;IACtB,IAAI,IAAAC,0BAAiB,EAACF,SAAS,CAAC,EAAE;MAC9B,IAAAG,qBAAU,EAACH,SAAS,CAAC;MACrBA,SAAS,CAACI,QAAQ,CAAC,CAAC,CAACC,OAAO,CAAC,UAAAC,IAAI,EAAI;QACjC,IAAI,IAAAC,oBAAW,EAACD,IAAI,CAAC,EAAE;UACnBA,IAAI,CAACE,SAAS,CAAC,CAAC,CAAC;UACjBF,IAAI,CAACG,QAAQ,CAAC,EAAE,CAAC;UACjB,IAAAC,6CAAsC,EAACJ,IAAI,CAAC,CAACE,SAAS,CAAC,EAAE,CAAC;QAC9D;QACA,IAAI,IAAAG,gDAAqB,EAACL,IAAI,CAAC,EAAE;UAC7BA,IAAI,CAACE,SAAS,CAAC,EAAE,CAAC;QACtB;MACJ,CAAC,CAAC;IACN;EACJ,CAAC,CAAC;AACN,CAAC;AAACI,OAAA,CAAAd,mBAAA,GAAAA,mBAAA"}
@@ -1 +1 @@
1
- {"version":3,"names":["formatToHeading","editor","tag","typographyStyleId","update","selection","$getSelection","$isRangeSelection","DEPRECATED_$isGridSelection","$setBlocksType","$createHeadingNode"],"sources":["formatToHeading.ts"],"sourcesContent":["import {\n $getSelection,\n $isRangeSelection,\n DEPRECATED_$isGridSelection,\n LexicalEditor\n} from \"lexical\";\nimport { $setBlocksType } from \"@lexical/selection\";\nimport { $createHeadingNode } from \"~/nodes/HeadingNode\";\nimport { HeadingTagType } from \"@lexical/rich-text\";\n\n/*\n * Will change the selected HTML tag to specified heading or h1-h6.\n * For example if the selection is p with content inside after formatting the root tag\n * will be h1 with heading 1 theme style and the same content inside.\n * */\nexport const formatToHeading = (\n editor: LexicalEditor,\n tag: HeadingTagType,\n typographyStyleId?: string\n) => {\n editor.update(() => {\n const selection = $getSelection();\n if ($isRangeSelection(selection) || DEPRECATED_$isGridSelection(selection)) {\n $setBlocksType(selection, () => $createHeadingNode(tag, typographyStyleId));\n }\n });\n};\n"],"mappings":";;;;;;AAAA;AAMA;AACA;AAGA;AACA;AACA;AACA;AACA;AACO,IAAMA,eAAe,GAAG,SAAlBA,eAAe,CACxBC,MAAqB,EACrBC,GAAmB,EACnBC,iBAA0B,EACzB;EACDF,MAAM,CAACG,MAAM,CAAC,YAAM;IAChB,IAAMC,SAAS,GAAG,IAAAC,sBAAa,GAAE;IACjC,IAAI,IAAAC,0BAAiB,EAACF,SAAS,CAAC,IAAI,IAAAG,oCAA2B,EAACH,SAAS,CAAC,EAAE;MACxE,IAAAI,yBAAc,EAACJ,SAAS,EAAE;QAAA,OAAM,IAAAK,+BAAkB,EAACR,GAAG,EAAEC,iBAAiB,CAAC;MAAA,EAAC;IAC/E;EACJ,CAAC,CAAC;AACN,CAAC;AAAC"}
1
+ {"version":3,"names":["_lexical","require","_selection","_HeadingNode","formatToHeading","editor","tag","typographyStyleId","update","selection","$getSelection","$isRangeSelection","DEPRECATED_$isGridSelection","$setBlocksType","$createHeadingNode","exports"],"sources":["formatToHeading.ts"],"sourcesContent":["import {\n $getSelection,\n $isRangeSelection,\n DEPRECATED_$isGridSelection,\n LexicalEditor\n} from \"lexical\";\nimport { $setBlocksType } from \"@lexical/selection\";\nimport { $createHeadingNode } from \"~/nodes/HeadingNode\";\nimport { HeadingTagType } from \"@lexical/rich-text\";\n\n/*\n * Will change the selected HTML tag to specified heading or h1-h6.\n * For example if the selection is p with content inside after formatting the root tag\n * will be h1 with heading 1 theme style and the same content inside.\n * */\nexport const formatToHeading = (\n editor: LexicalEditor,\n tag: HeadingTagType,\n typographyStyleId?: string\n) => {\n editor.update(() => {\n const selection = $getSelection();\n if ($isRangeSelection(selection) || DEPRECATED_$isGridSelection(selection)) {\n $setBlocksType(selection, () => $createHeadingNode(tag, typographyStyleId));\n }\n });\n};\n"],"mappings":";;;;;;AAAA,IAAAA,QAAA,GAAAC,OAAA;AAMA,IAAAC,UAAA,GAAAD,OAAA;AACA,IAAAE,YAAA,GAAAF,OAAA;AAGA;AACA;AACA;AACA;AACA;AACO,IAAMG,eAAe,GAAG,SAAlBA,eAAeA,CACxBC,MAAqB,EACrBC,GAAmB,EACnBC,iBAA0B,EACzB;EACDF,MAAM,CAACG,MAAM,CAAC,YAAM;IAChB,IAAMC,SAAS,GAAG,IAAAC,sBAAa,EAAC,CAAC;IACjC,IAAI,IAAAC,0BAAiB,EAACF,SAAS,CAAC,IAAI,IAAAG,oCAA2B,EAACH,SAAS,CAAC,EAAE;MACxE,IAAAI,yBAAc,EAACJ,SAAS,EAAE;QAAA,OAAM,IAAAK,+BAAkB,EAACR,GAAG,EAAEC,iBAAiB,CAAC;MAAA,EAAC;IAC/E;EACJ,CAAC,CAAC;AACN,CAAC;AAACQ,OAAA,CAAAX,eAAA,GAAAA,eAAA"}
@@ -1 +1 @@
1
- {"version":3,"names":["formatToParagraph","editor","typographyStyleId","update","selection","$getSelection","$isRangeSelection","DEPRECATED_$isGridSelection","$setBlocksType","$createParagraphNode"],"sources":["formatToParagraph.ts"],"sourcesContent":["import {\n $getSelection,\n $isRangeSelection,\n DEPRECATED_$isGridSelection,\n LexicalEditor\n} from \"lexical\";\nimport { $createParagraphNode } from \"~/nodes/ParagraphNode\";\nimport { $setBlocksType } from \"@lexical/selection\";\n\nexport const formatToParagraph = (editor: LexicalEditor, typographyStyleId?: string) => {\n editor.update(() => {\n const selection = $getSelection();\n if ($isRangeSelection(selection) || DEPRECATED_$isGridSelection(selection)) {\n $setBlocksType(selection, () => $createParagraphNode(typographyStyleId));\n }\n });\n};\n"],"mappings":";;;;;;AAAA;AAMA;AACA;AAEO,IAAMA,iBAAiB,GAAG,SAApBA,iBAAiB,CAAIC,MAAqB,EAAEC,iBAA0B,EAAK;EACpFD,MAAM,CAACE,MAAM,CAAC,YAAM;IAChB,IAAMC,SAAS,GAAG,IAAAC,sBAAa,GAAE;IACjC,IAAI,IAAAC,0BAAiB,EAACF,SAAS,CAAC,IAAI,IAAAG,oCAA2B,EAACH,SAAS,CAAC,EAAE;MACxE,IAAAI,yBAAc,EAACJ,SAAS,EAAE;QAAA,OAAM,IAAAK,mCAAoB,EAACP,iBAAiB,CAAC;MAAA,EAAC;IAC5E;EACJ,CAAC,CAAC;AACN,CAAC;AAAC"}
1
+ {"version":3,"names":["_lexical","require","_ParagraphNode","_selection","formatToParagraph","editor","typographyStyleId","update","selection","$getSelection","$isRangeSelection","DEPRECATED_$isGridSelection","$setBlocksType","$createParagraphNode","exports"],"sources":["formatToParagraph.ts"],"sourcesContent":["import {\n $getSelection,\n $isRangeSelection,\n DEPRECATED_$isGridSelection,\n LexicalEditor\n} from \"lexical\";\nimport { $createParagraphNode } from \"~/nodes/ParagraphNode\";\nimport { $setBlocksType } from \"@lexical/selection\";\n\nexport const formatToParagraph = (editor: LexicalEditor, typographyStyleId?: string) => {\n editor.update(() => {\n const selection = $getSelection();\n if ($isRangeSelection(selection) || DEPRECATED_$isGridSelection(selection)) {\n $setBlocksType(selection, () => $createParagraphNode(typographyStyleId));\n }\n });\n};\n"],"mappings":";;;;;;AAAA,IAAAA,QAAA,GAAAC,OAAA;AAMA,IAAAC,cAAA,GAAAD,OAAA;AACA,IAAAE,UAAA,GAAAF,OAAA;AAEO,IAAMG,iBAAiB,GAAG,SAApBA,iBAAiBA,CAAIC,MAAqB,EAAEC,iBAA0B,EAAK;EACpFD,MAAM,CAACE,MAAM,CAAC,YAAM;IAChB,IAAMC,SAAS,GAAG,IAAAC,sBAAa,EAAC,CAAC;IACjC,IAAI,IAAAC,0BAAiB,EAACF,SAAS,CAAC,IAAI,IAAAG,oCAA2B,EAACH,SAAS,CAAC,EAAE;MACxE,IAAAI,yBAAc,EAACJ,SAAS,EAAE;QAAA,OAAM,IAAAK,mCAAoB,EAACP,iBAAiB,CAAC;MAAA,EAAC;IAC5E;EACJ,CAAC,CAAC;AACN,CAAC;AAACQ,OAAA,CAAAV,iBAAA,GAAAA,iBAAA"}
@@ -1 +1 @@
1
- {"version":3,"names":["formatToQuote","editor","themeStyleId","update","selection","$getSelection","$isRangeSelection","DEPRECATED_$isGridSelection","$setBlocksType","$createQuoteNode"],"sources":["formatToQuote.ts"],"sourcesContent":["import {\n $getSelection,\n $isRangeSelection,\n DEPRECATED_$isGridSelection,\n LexicalEditor\n} from \"lexical\";\nimport { $setBlocksType } from \"@lexical/selection\";\nimport { $createQuoteNode } from \"~/nodes/QuoteNode\";\n\n/*\n * Will change the selected root HTML tag to specified quoteblock tag.\n * For example if the selection is paragraph <p> with content inside after formatting the root tag\n * will be quoteblock with same content inside.\n * */\nexport const formatToQuote = (editor: LexicalEditor, themeStyleId?: string) => {\n editor.update(() => {\n const selection = $getSelection();\n if ($isRangeSelection(selection) || DEPRECATED_$isGridSelection(selection)) {\n $setBlocksType(selection, () => $createQuoteNode(themeStyleId));\n }\n });\n};\n"],"mappings":";;;;;;AAAA;AAMA;AACA;AAEA;AACA;AACA;AACA;AACA;AACO,IAAMA,aAAa,GAAG,SAAhBA,aAAa,CAAIC,MAAqB,EAAEC,YAAqB,EAAK;EAC3ED,MAAM,CAACE,MAAM,CAAC,YAAM;IAChB,IAAMC,SAAS,GAAG,IAAAC,sBAAa,GAAE;IACjC,IAAI,IAAAC,0BAAiB,EAACF,SAAS,CAAC,IAAI,IAAAG,oCAA2B,EAACH,SAAS,CAAC,EAAE;MACxE,IAAAI,yBAAc,EAACJ,SAAS,EAAE;QAAA,OAAM,IAAAK,2BAAgB,EAACP,YAAY,CAAC;MAAA,EAAC;IACnE;EACJ,CAAC,CAAC;AACN,CAAC;AAAC"}
1
+ {"version":3,"names":["_lexical","require","_selection","_QuoteNode","formatToQuote","editor","themeStyleId","update","selection","$getSelection","$isRangeSelection","DEPRECATED_$isGridSelection","$setBlocksType","$createQuoteNode","exports"],"sources":["formatToQuote.ts"],"sourcesContent":["import {\n $getSelection,\n $isRangeSelection,\n DEPRECATED_$isGridSelection,\n LexicalEditor\n} from \"lexical\";\nimport { $setBlocksType } from \"@lexical/selection\";\nimport { $createQuoteNode } from \"~/nodes/QuoteNode\";\n\n/*\n * Will change the selected root HTML tag to specified quoteblock tag.\n * For example if the selection is paragraph <p> with content inside after formatting the root tag\n * will be quoteblock with same content inside.\n * */\nexport const formatToQuote = (editor: LexicalEditor, themeStyleId?: string) => {\n editor.update(() => {\n const selection = $getSelection();\n if ($isRangeSelection(selection) || DEPRECATED_$isGridSelection(selection)) {\n $setBlocksType(selection, () => $createQuoteNode(themeStyleId));\n }\n });\n};\n"],"mappings":";;;;;;AAAA,IAAAA,QAAA,GAAAC,OAAA;AAMA,IAAAC,UAAA,GAAAD,OAAA;AACA,IAAAE,UAAA,GAAAF,OAAA;AAEA;AACA;AACA;AACA;AACA;AACO,IAAMG,aAAa,GAAG,SAAhBA,aAAaA,CAAIC,MAAqB,EAAEC,YAAqB,EAAK;EAC3ED,MAAM,CAACE,MAAM,CAAC,YAAM;IAChB,IAAMC,SAAS,GAAG,IAAAC,sBAAa,EAAC,CAAC;IACjC,IAAI,IAAAC,0BAAiB,EAACF,SAAS,CAAC,IAAI,IAAAG,oCAA2B,EAACH,SAAS,CAAC,EAAE;MACxE,IAAAI,yBAAc,EAACJ,SAAS,EAAE;QAAA,OAAM,IAAAK,2BAAgB,EAACP,YAAY,CAAC;MAAA,EAAC;IACnE;EACJ,CAAC,CAAC;AACN,CAAC;AAACQ,OAAA,CAAAV,aAAA,GAAAA,aAAA"}
@@ -0,0 +1,2 @@
1
+ import { InsertImagePayload } from "../../plugins/ImagesPlugin/ImagesPlugin";
2
+ export declare const insertImage: (payload: InsertImagePayload) => boolean;
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.insertImage = void 0;
7
+ var _lexical = require("lexical");
8
+ var _ParagraphNode = require("../../nodes/ParagraphNode");
9
+ var _ImageNode = require("../../nodes/ImageNode");
10
+ var _utils = require("@lexical/utils");
11
+ /*
12
+ * Insert image into editor.
13
+ */
14
+ var insertImage = function insertImage(payload) {
15
+ var imageNode = (0, _ImageNode.$createImageNode)(payload);
16
+ (0, _lexical.$insertNodes)([imageNode]);
17
+ if ((0, _lexical.$isRootOrShadowRoot)(imageNode.getParentOrThrow())) {
18
+ (0, _utils.$wrapNodeInElement)(imageNode, _ParagraphNode.$createParagraphNode).selectEnd();
19
+ }
20
+ return true;
21
+ };
22
+ exports.insertImage = insertImage;
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_lexical","require","_ParagraphNode","_ImageNode","_utils","insertImage","payload","imageNode","$createImageNode","$insertNodes","$isRootOrShadowRoot","getParentOrThrow","$wrapNodeInElement","$createParagraphNode","selectEnd","exports"],"sources":["insertImage.ts"],"sourcesContent":["import { $insertNodes, $isRootOrShadowRoot } from \"lexical\";\nimport { $createParagraphNode } from \"~/nodes/ParagraphNode\";\nimport { $createImageNode } from \"~/nodes/ImageNode\";\nimport { $wrapNodeInElement } from \"@lexical/utils\";\nimport { InsertImagePayload } from \"~/plugins/ImagesPlugin/ImagesPlugin\";\n\n/*\n * Insert image into editor.\n */\nexport const insertImage = (payload: InsertImagePayload): boolean => {\n const imageNode = $createImageNode(payload);\n $insertNodes([imageNode]);\n if ($isRootOrShadowRoot(imageNode.getParentOrThrow())) {\n $wrapNodeInElement(imageNode, $createParagraphNode).selectEnd();\n }\n return true;\n};\n"],"mappings":";;;;;;AAAA,IAAAA,QAAA,GAAAC,OAAA;AACA,IAAAC,cAAA,GAAAD,OAAA;AACA,IAAAE,UAAA,GAAAF,OAAA;AACA,IAAAG,MAAA,GAAAH,OAAA;AAGA;AACA;AACA;AACO,IAAMI,WAAW,GAAG,SAAdA,WAAWA,CAAIC,OAA2B,EAAc;EACjE,IAAMC,SAAS,GAAG,IAAAC,2BAAgB,EAACF,OAAO,CAAC;EAC3C,IAAAG,qBAAY,EAAC,CAACF,SAAS,CAAC,CAAC;EACzB,IAAI,IAAAG,4BAAmB,EAACH,SAAS,CAACI,gBAAgB,CAAC,CAAC,CAAC,EAAE;IACnD,IAAAC,yBAAkB,EAACL,SAAS,EAAEM,mCAAoB,CAAC,CAACC,SAAS,CAAC,CAAC;EACnE;EACA,OAAO,IAAI;AACf,CAAC;AAACC,OAAA,CAAAV,WAAA,GAAAA,WAAA"}
@@ -1 +1 @@
1
- {"version":3,"names":["$getListDepth","listNode","depth","parent","getParent","$isListItemNode","parentList","$isListNode","console","log","$getTopListNode","listItem","list","$getAllListItems","node","listItemNodes","listChildren","getChildren","filter","i","length","listItemNode","firstChild","getFirstChild","concat","push","isNestedListNode","findNearestWebinyListItemNode","currentNode","getUniqueWebinyListItemNodes","nodeList","keys","Set","add","Array","from","$removeHighestEmptyListParent","sublist","emptyListPtr","getNextSibling","getPreviousSibling","remove","wrapInListItem","listItemWrapper","$createListItemNode","append"],"sources":["listNode.ts"],"sourcesContent":["import type { LexicalNode } from \"lexical\";\n\nimport { $isListNode, ListNode } from \"~/nodes/ListNode\";\nimport { $createListItemNode, $isListItemNode, ListItemNode } from \"~/nodes/ListItemNode\";\n\nexport function $getListDepth(listNode: ListNode): number {\n let depth = 1;\n let parent = listNode.getParent();\n\n while (parent !== null) {\n if ($isListItemNode(parent)) {\n const parentList = parent.getParent();\n\n if ($isListNode(parentList)) {\n depth++;\n parent = parentList?.getParent() || null;\n continue;\n }\n console.log(\"A WebinyListItemNode must have a WebinyListNode for a parent.\");\n }\n\n return depth;\n }\n\n return depth;\n}\n\nexport function $getTopListNode(listItem: LexicalNode): ListNode {\n let list = listItem.getParent<ListNode>();\n\n if (!$isListNode(list)) {\n console.log(\"A WebinyListItemNode must have a ListNode for a parent.\");\n return listItem as ListNode;\n }\n\n let parent: ListNode | null = list;\n\n while (parent !== null) {\n parent = parent.getParent();\n\n if ($isListNode(parent)) {\n list = parent;\n }\n }\n\n return list;\n}\n\nexport function $getAllListItems(node: ListNode): Array<ListItemNode> {\n let listItemNodes: Array<ListItemNode> = [];\n const listChildren: Array<ListItemNode> = node.getChildren().filter($isListItemNode);\n\n for (let i = 0; i < listChildren.length; i++) {\n const listItemNode = listChildren[i];\n const firstChild = listItemNode?.getFirstChild();\n\n if ($isListNode(firstChild)) {\n listItemNodes = listItemNodes.concat($getAllListItems(firstChild));\n } else {\n listItemNodes.push(listItemNode);\n }\n }\n\n return listItemNodes;\n}\n\nexport function isNestedListNode(node: LexicalNode | null | undefined): boolean {\n return $isListItemNode(node) && $isListNode(node?.getFirstChild());\n}\n\n// TODO: rewrite with $findMatchingParent or *nodeOfType\nexport function findNearestWebinyListItemNode(node: LexicalNode): ListItemNode | null {\n let currentNode: LexicalNode | null = node;\n\n while (currentNode !== null) {\n if ($isListItemNode(currentNode)) {\n return currentNode;\n }\n currentNode = currentNode.getParent();\n }\n\n return null;\n}\n\nexport function getUniqueWebinyListItemNodes(nodeList: Array<LexicalNode>): Array<ListItemNode> {\n const keys = new Set<ListItemNode>();\n\n for (let i = 0; i < nodeList.length; i++) {\n const node = nodeList[i];\n\n if ($isListItemNode(node)) {\n keys.add(node);\n }\n }\n\n return Array.from(keys);\n}\n\nexport function $removeHighestEmptyListParent(sublist: ListItemNode | ListNode) {\n // Nodes may be repeatedly indented, to create deeply nested lists that each\n // contain just one bullet.\n // Our goal is to remove these (empty) deeply nested lists. The easiest\n // way to do that is crawl back up the tree until we find a node that has siblings\n // (e.g. is actually part of the list contents) and delete that, or delete\n // the root of the list (if no list nodes have siblings.)\n let emptyListPtr = sublist;\n\n while (emptyListPtr.getNextSibling() == null && emptyListPtr.getPreviousSibling() == null) {\n const parent = emptyListPtr.getParent<ListItemNode | ListNode>();\n\n if (parent == null || !($isListItemNode(emptyListPtr) || $isListNode(emptyListPtr))) {\n break;\n }\n\n emptyListPtr = parent;\n }\n\n emptyListPtr.remove();\n}\n\nexport function wrapInListItem(node: LexicalNode): ListItemNode {\n const listItemWrapper = $createListItemNode();\n return listItemWrapper.append(node);\n}\n"],"mappings":";;;;;;;;;;;;;AAEA;AACA;AAEO,SAASA,aAAa,CAACC,QAAkB,EAAU;EACtD,IAAIC,KAAK,GAAG,CAAC;EACb,IAAIC,MAAM,GAAGF,QAAQ,CAACG,SAAS,EAAE;EAEjC,OAAOD,MAAM,KAAK,IAAI,EAAE;IACpB,IAAI,IAAAE,6BAAe,EAACF,MAAM,CAAC,EAAE;MACzB,IAAMG,UAAU,GAAGH,MAAM,CAACC,SAAS,EAAE;MAErC,IAAI,IAAAG,qBAAW,EAACD,UAAU,CAAC,EAAE;QACzBJ,KAAK,EAAE;QACPC,MAAM,GAAG,CAAAG,UAAU,aAAVA,UAAU,uBAAVA,UAAU,CAAEF,SAAS,EAAE,KAAI,IAAI;QACxC;MACJ;MACAI,OAAO,CAACC,GAAG,CAAC,+DAA+D,CAAC;IAChF;IAEA,OAAOP,KAAK;EAChB;EAEA,OAAOA,KAAK;AAChB;AAEO,SAASQ,eAAe,CAACC,QAAqB,EAAY;EAC7D,IAAIC,IAAI,GAAGD,QAAQ,CAACP,SAAS,EAAY;EAEzC,IAAI,CAAC,IAAAG,qBAAW,EAACK,IAAI,CAAC,EAAE;IACpBJ,OAAO,CAACC,GAAG,CAAC,yDAAyD,CAAC;IACtE,OAAOE,QAAQ;EACnB;EAEA,IAAIR,MAAuB,GAAGS,IAAI;EAElC,OAAOT,MAAM,KAAK,IAAI,EAAE;IACpBA,MAAM,GAAGA,MAAM,CAACC,SAAS,EAAE;IAE3B,IAAI,IAAAG,qBAAW,EAACJ,MAAM,CAAC,EAAE;MACrBS,IAAI,GAAGT,MAAM;IACjB;EACJ;EAEA,OAAOS,IAAI;AACf;AAEO,SAASC,gBAAgB,CAACC,IAAc,EAAuB;EAClE,IAAIC,aAAkC,GAAG,EAAE;EAC3C,IAAMC,YAAiC,GAAGF,IAAI,CAACG,WAAW,EAAE,CAACC,MAAM,CAACb,6BAAe,CAAC;EAEpF,KAAK,IAAIc,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGH,YAAY,CAACI,MAAM,EAAED,CAAC,EAAE,EAAE;IAC1C,IAAME,YAAY,GAAGL,YAAY,CAACG,CAAC,CAAC;IACpC,IAAMG,UAAU,GAAGD,YAAY,aAAZA,YAAY,uBAAZA,YAAY,CAAEE,aAAa,EAAE;IAEhD,IAAI,IAAAhB,qBAAW,EAACe,UAAU,CAAC,EAAE;MACzBP,aAAa,GAAGA,aAAa,CAACS,MAAM,CAACX,gBAAgB,CAACS,UAAU,CAAC,CAAC;IACtE,CAAC,MAAM;MACHP,aAAa,CAACU,IAAI,CAACJ,YAAY,CAAC;IACpC;EACJ;EAEA,OAAON,aAAa;AACxB;AAEO,SAASW,gBAAgB,CAACZ,IAAoC,EAAW;EAC5E,OAAO,IAAAT,6BAAe,EAACS,IAAI,CAAC,IAAI,IAAAP,qBAAW,EAACO,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAES,aAAa,EAAE,CAAC;AACtE;;AAEA;AACO,SAASI,6BAA6B,CAACb,IAAiB,EAAuB;EAClF,IAAIc,WAA+B,GAAGd,IAAI;EAE1C,OAAOc,WAAW,KAAK,IAAI,EAAE;IACzB,IAAI,IAAAvB,6BAAe,EAACuB,WAAW,CAAC,EAAE;MAC9B,OAAOA,WAAW;IACtB;IACAA,WAAW,GAAGA,WAAW,CAACxB,SAAS,EAAE;EACzC;EAEA,OAAO,IAAI;AACf;AAEO,SAASyB,4BAA4B,CAACC,QAA4B,EAAuB;EAC5F,IAAMC,IAAI,GAAG,IAAIC,GAAG,EAAgB;EAEpC,KAAK,IAAIb,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGW,QAAQ,CAACV,MAAM,EAAED,CAAC,EAAE,EAAE;IACtC,IAAML,IAAI,GAAGgB,QAAQ,CAACX,CAAC,CAAC;IAExB,IAAI,IAAAd,6BAAe,EAACS,IAAI,CAAC,EAAE;MACvBiB,IAAI,CAACE,GAAG,CAACnB,IAAI,CAAC;IAClB;EACJ;EAEA,OAAOoB,KAAK,CAACC,IAAI,CAACJ,IAAI,CAAC;AAC3B;AAEO,SAASK,6BAA6B,CAACC,OAAgC,EAAE;EAC5E;EACA;EACA;EACA;EACA;EACA;EACA,IAAIC,YAAY,GAAGD,OAAO;EAE1B,OAAOC,YAAY,CAACC,cAAc,EAAE,IAAI,IAAI,IAAID,YAAY,CAACE,kBAAkB,EAAE,IAAI,IAAI,EAAE;IACvF,IAAMrC,MAAM,GAAGmC,YAAY,CAAClC,SAAS,EAA2B;IAEhE,IAAID,MAAM,IAAI,IAAI,IAAI,EAAE,IAAAE,6BAAe,EAACiC,YAAY,CAAC,IAAI,IAAA/B,qBAAW,EAAC+B,YAAY,CAAC,CAAC,EAAE;MACjF;IACJ;IAEAA,YAAY,GAAGnC,MAAM;EACzB;EAEAmC,YAAY,CAACG,MAAM,EAAE;AACzB;AAEO,SAASC,cAAc,CAAC5B,IAAiB,EAAgB;EAC5D,IAAM6B,eAAe,GAAG,IAAAC,iCAAmB,GAAE;EAC7C,OAAOD,eAAe,CAACE,MAAM,CAAC/B,IAAI,CAAC;AACvC"}
1
+ {"version":3,"names":["_ListNode","require","_ListItemNode","$getListDepth","listNode","depth","parent","getParent","$isListItemNode","parentList","$isListNode","console","log","$getTopListNode","listItem","list","$getAllListItems","node","listItemNodes","listChildren","getChildren","filter","i","length","listItemNode","firstChild","getFirstChild","concat","push","isNestedListNode","findNearestWebinyListItemNode","currentNode","getUniqueWebinyListItemNodes","nodeList","keys","Set","add","Array","from","$removeHighestEmptyListParent","sublist","emptyListPtr","getNextSibling","getPreviousSibling","remove","wrapInListItem","listItemWrapper","$createListItemNode","append"],"sources":["listNode.ts"],"sourcesContent":["import type { LexicalNode } from \"lexical\";\n\nimport { $isListNode, ListNode } from \"~/nodes/ListNode\";\nimport { $createListItemNode, $isListItemNode, ListItemNode } from \"~/nodes/ListItemNode\";\n\nexport function $getListDepth(listNode: ListNode): number {\n let depth = 1;\n let parent = listNode.getParent();\n\n while (parent !== null) {\n if ($isListItemNode(parent)) {\n const parentList = parent.getParent();\n\n if ($isListNode(parentList)) {\n depth++;\n parent = parentList?.getParent() || null;\n continue;\n }\n console.log(\"A WebinyListItemNode must have a WebinyListNode for a parent.\");\n }\n\n return depth;\n }\n\n return depth;\n}\n\nexport function $getTopListNode(listItem: LexicalNode): ListNode {\n let list = listItem.getParent<ListNode>();\n\n if (!$isListNode(list)) {\n console.log(\"A WebinyListItemNode must have a ListNode for a parent.\");\n return listItem as ListNode;\n }\n\n let parent: ListNode | null = list;\n\n while (parent !== null) {\n parent = parent.getParent();\n\n if ($isListNode(parent)) {\n list = parent;\n }\n }\n\n return list;\n}\n\nexport function $getAllListItems(node: ListNode): Array<ListItemNode> {\n let listItemNodes: Array<ListItemNode> = [];\n const listChildren: Array<ListItemNode> = node.getChildren().filter($isListItemNode);\n\n for (let i = 0; i < listChildren.length; i++) {\n const listItemNode = listChildren[i];\n const firstChild = listItemNode?.getFirstChild();\n\n if ($isListNode(firstChild)) {\n listItemNodes = listItemNodes.concat($getAllListItems(firstChild));\n } else {\n listItemNodes.push(listItemNode);\n }\n }\n\n return listItemNodes;\n}\n\nexport function isNestedListNode(node: LexicalNode | null | undefined): boolean {\n return $isListItemNode(node) && $isListNode(node?.getFirstChild());\n}\n\n// TODO: rewrite with $findMatchingParent or *nodeOfType\nexport function findNearestWebinyListItemNode(node: LexicalNode): ListItemNode | null {\n let currentNode: LexicalNode | null = node;\n\n while (currentNode !== null) {\n if ($isListItemNode(currentNode)) {\n return currentNode;\n }\n currentNode = currentNode.getParent();\n }\n\n return null;\n}\n\nexport function getUniqueWebinyListItemNodes(nodeList: Array<LexicalNode>): Array<ListItemNode> {\n const keys = new Set<ListItemNode>();\n\n for (let i = 0; i < nodeList.length; i++) {\n const node = nodeList[i];\n\n if ($isListItemNode(node)) {\n keys.add(node);\n }\n }\n\n return Array.from(keys);\n}\n\nexport function $removeHighestEmptyListParent(sublist: ListItemNode | ListNode) {\n // Nodes may be repeatedly indented, to create deeply nested lists that each\n // contain just one bullet.\n // Our goal is to remove these (empty) deeply nested lists. The easiest\n // way to do that is crawl back up the tree until we find a node that has siblings\n // (e.g. is actually part of the list contents) and delete that, or delete\n // the root of the list (if no list nodes have siblings.)\n let emptyListPtr = sublist;\n\n while (emptyListPtr.getNextSibling() == null && emptyListPtr.getPreviousSibling() == null) {\n const parent = emptyListPtr.getParent<ListItemNode | ListNode>();\n\n if (parent == null || !($isListItemNode(emptyListPtr) || $isListNode(emptyListPtr))) {\n break;\n }\n\n emptyListPtr = parent;\n }\n\n emptyListPtr.remove();\n}\n\nexport function wrapInListItem(node: LexicalNode): ListItemNode {\n const listItemWrapper = $createListItemNode();\n return listItemWrapper.append(node);\n}\n"],"mappings":"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"}
package/utils/point.js CHANGED
@@ -8,7 +8,6 @@ exports.Point = void 0;
8
8
  exports.isPoint = isPoint;
9
9
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
10
10
  var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
11
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
12
11
  /**
13
12
  * Copyright (c) Meta Platforms, Inc. and affiliates.
14
13
  *
@@ -19,8 +18,6 @@ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/de
19
18
  var Point = /*#__PURE__*/function () {
20
19
  function Point(x, y) {
21
20
  (0, _classCallCheck2.default)(this, Point);
22
- (0, _defineProperty2.default)(this, "_x", void 0);
23
- (0, _defineProperty2.default)(this, "_y", void 0);
24
21
  this._x = x;
25
22
  this._y = y;
26
23
  }