@webiny/lexical-editor 0.0.0-unstable.085ff6572f

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 (306) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +17 -0
  3. package/commands/webiny-list.d.ts +7 -0
  4. package/commands/webiny-list.js +13 -0
  5. package/commands/webiny-list.js.map +1 -0
  6. package/commands/webiny-quote.d.ts +5 -0
  7. package/commands/webiny-quote.js +9 -0
  8. package/commands/webiny-quote.js.map +1 -0
  9. package/components/AddRichTextEditorNodeType.d.ts +6 -0
  10. package/components/AddRichTextEditorNodeType.js +28 -0
  11. package/components/AddRichTextEditorNodeType.js.map +1 -0
  12. package/components/AddRichTextEditorPlugin.d.ts +12 -0
  13. package/components/AddRichTextEditorPlugin.js +33 -0
  14. package/components/AddRichTextEditorPlugin.js.map +1 -0
  15. package/components/AddToolbarAction.d.ts +7 -0
  16. package/components/AddToolbarAction.js +33 -0
  17. package/components/AddToolbarAction.js.map +1 -0
  18. package/components/Editor/HeadingEditor.d.ts +7 -0
  19. package/components/Editor/HeadingEditor.js +29 -0
  20. package/components/Editor/HeadingEditor.js.map +1 -0
  21. package/components/Editor/ParagraphEditor.d.ts +7 -0
  22. package/components/Editor/ParagraphEditor.js +30 -0
  23. package/components/Editor/ParagraphEditor.js.map +1 -0
  24. package/components/Editor/RichTextEditor.d.ts +26 -0
  25. package/components/Editor/RichTextEditor.js +138 -0
  26. package/components/Editor/RichTextEditor.js.map +1 -0
  27. package/components/LexicalEditorConfig/LexicalEditorConfig.d.ts +11 -0
  28. package/components/LexicalEditorConfig/LexicalEditorConfig.js +19 -0
  29. package/components/LexicalEditorConfig/LexicalEditorConfig.js.map +1 -0
  30. package/components/LexicalHtmlRenderer.d.ts +16 -0
  31. package/components/LexicalHtmlRenderer.js +67 -0
  32. package/components/LexicalHtmlRenderer.js.map +1 -0
  33. package/components/Toolbar/HeadingToolbar.d.ts +12 -0
  34. package/components/Toolbar/HeadingToolbar.js +23 -0
  35. package/components/Toolbar/HeadingToolbar.js.map +1 -0
  36. package/components/Toolbar/ParagraphToolbar.d.ts +12 -0
  37. package/components/Toolbar/ParagraphToolbar.js +23 -0
  38. package/components/Toolbar/ParagraphToolbar.js.map +1 -0
  39. package/components/Toolbar/Toolbar.css +435 -0
  40. package/components/Toolbar/Toolbar.d.ts +13 -0
  41. package/components/Toolbar/Toolbar.js +215 -0
  42. package/components/Toolbar/Toolbar.js.map +1 -0
  43. package/components/ToolbarActions/BoldAction.d.ts +2 -0
  44. package/components/ToolbarActions/BoldAction.js +43 -0
  45. package/components/ToolbarActions/BoldAction.js.map +1 -0
  46. package/components/ToolbarActions/BulletListAction.d.ts +2 -0
  47. package/components/ToolbarActions/BulletListAction.js +56 -0
  48. package/components/ToolbarActions/BulletListAction.js.map +1 -0
  49. package/components/ToolbarActions/CodeHighlightAction.d.ts +2 -0
  50. package/components/ToolbarActions/CodeHighlightAction.js +43 -0
  51. package/components/ToolbarActions/CodeHighlightAction.js.map +1 -0
  52. package/components/ToolbarActions/FontColorAction.d.ts +11 -0
  53. package/components/ToolbarActions/FontColorAction.js +83 -0
  54. package/components/ToolbarActions/FontColorAction.js.map +1 -0
  55. package/components/ToolbarActions/FontSizeAction.d.ts +2 -0
  56. package/components/ToolbarActions/FontSizeAction.js +101 -0
  57. package/components/ToolbarActions/FontSizeAction.js.map +1 -0
  58. package/components/ToolbarActions/ItalicAction.d.ts +2 -0
  59. package/components/ToolbarActions/ItalicAction.js +43 -0
  60. package/components/ToolbarActions/ItalicAction.js.map +1 -0
  61. package/components/ToolbarActions/LinkAction.d.ts +2 -0
  62. package/components/ToolbarActions/LinkAction.js +64 -0
  63. package/components/ToolbarActions/LinkAction.js.map +1 -0
  64. package/components/ToolbarActions/NumberedListAction.d.ts +2 -0
  65. package/components/ToolbarActions/NumberedListAction.js +58 -0
  66. package/components/ToolbarActions/NumberedListAction.js.map +1 -0
  67. package/components/ToolbarActions/QuoteAction.d.ts +2 -0
  68. package/components/ToolbarActions/QuoteAction.js +52 -0
  69. package/components/ToolbarActions/QuoteAction.js.map +1 -0
  70. package/components/ToolbarActions/TextAlignmentAction.d.ts +11 -0
  71. package/components/ToolbarActions/TextAlignmentAction.js +70 -0
  72. package/components/ToolbarActions/TextAlignmentAction.js.map +1 -0
  73. package/components/ToolbarActions/TypographyAction.d.ts +11 -0
  74. package/components/ToolbarActions/TypographyAction.js +145 -0
  75. package/components/ToolbarActions/TypographyAction.js.map +1 -0
  76. package/components/ToolbarActions/UnderlineAction.d.ts +2 -0
  77. package/components/ToolbarActions/UnderlineAction.js +43 -0
  78. package/components/ToolbarActions/UnderlineAction.js.map +1 -0
  79. package/components/ToolbarPresets/HeadingToolbarPreset.d.ts +2 -0
  80. package/components/ToolbarPresets/HeadingToolbarPreset.js +56 -0
  81. package/components/ToolbarPresets/HeadingToolbarPreset.js.map +1 -0
  82. package/components/ToolbarPresets/ParagraphToolbarPreset.d.ts +2 -0
  83. package/components/ToolbarPresets/ParagraphToolbarPreset.js +71 -0
  84. package/components/ToolbarPresets/ParagraphToolbarPreset.js.map +1 -0
  85. package/context/FontColorActionContext.d.ts +6 -0
  86. package/context/FontColorActionContext.js +10 -0
  87. package/context/FontColorActionContext.js.map +1 -0
  88. package/context/RichTextEditorContext.d.ts +26 -0
  89. package/context/RichTextEditorContext.js +68 -0
  90. package/context/RichTextEditorContext.js.map +1 -0
  91. package/context/SharedHistoryContext.d.ts +11 -0
  92. package/context/SharedHistoryContext.js +26 -0
  93. package/context/SharedHistoryContext.js.map +1 -0
  94. package/context/TextAlignmentActionContextProps.d.ts +9 -0
  95. package/context/TextAlignmentActionContextProps.js +10 -0
  96. package/context/TextAlignmentActionContextProps.js.map +1 -0
  97. package/context/TypographyActionContext.d.ts +7 -0
  98. package/context/TypographyActionContext.js +10 -0
  99. package/context/TypographyActionContext.js.map +1 -0
  100. package/hooks/useFontColorPicker.d.ts +2 -0
  101. package/hooks/useFontColorPicker.js +15 -0
  102. package/hooks/useFontColorPicker.js.map +1 -0
  103. package/hooks/useList.d.ts +2 -0
  104. package/hooks/useList.js +39 -0
  105. package/hooks/useList.js.map +1 -0
  106. package/hooks/useQuote.d.ts +2 -0
  107. package/hooks/useQuote.js +20 -0
  108. package/hooks/useQuote.js.map +1 -0
  109. package/hooks/useRichTextEditor.d.ts +2 -0
  110. package/hooks/useRichTextEditor.js +15 -0
  111. package/hooks/useRichTextEditor.js.map +1 -0
  112. package/hooks/useTextAlignmentAction.d.ts +1 -0
  113. package/hooks/useTextAlignmentAction.js +15 -0
  114. package/hooks/useTextAlignmentAction.js.map +1 -0
  115. package/hooks/useTypographyAction.d.ts +1 -0
  116. package/hooks/useTypographyAction.js +15 -0
  117. package/hooks/useTypographyAction.js.map +1 -0
  118. package/images/icons/LICENSE.md +5 -0
  119. package/images/icons/chat-square-quote.svg +1 -0
  120. package/images/icons/chevron-down.svg +1 -0
  121. package/images/icons/code.svg +1 -0
  122. package/images/icons/font-color.svg +1 -0
  123. package/images/icons/indent.svg +3 -0
  124. package/images/icons/justify.svg +3 -0
  125. package/images/icons/link.svg +1 -0
  126. package/images/icons/list-ol.svg +1 -0
  127. package/images/icons/list-ul.svg +1 -0
  128. package/images/icons/outdent.svg +3 -0
  129. package/images/icons/pencil-fill.svg +1 -0
  130. package/images/icons/text-center.svg +1 -0
  131. package/images/icons/text-left.svg +1 -0
  132. package/images/icons/text-paragraph.svg +1 -0
  133. package/images/icons/text-right.svg +1 -0
  134. package/images/icons/type-bold.svg +1 -0
  135. package/images/icons/type-h1.svg +1 -0
  136. package/images/icons/type-h2.svg +1 -0
  137. package/images/icons/type-h3.svg +1 -0
  138. package/images/icons/type-h4.svg +1 -0
  139. package/images/icons/type-h5.svg +1 -0
  140. package/images/icons/type-h6.svg +1 -0
  141. package/images/icons/type-italic.svg +1 -0
  142. package/images/icons/type-strikethrough.svg +1 -0
  143. package/images/icons/type-underline.svg +1 -0
  144. package/images/icons/unlink_icon.svg +1 -0
  145. package/index.d.ts +42 -0
  146. package/index.js +295 -0
  147. package/index.js.map +1 -0
  148. package/nodes/FontColorNode.d.ts +43 -0
  149. package/nodes/FontColorNode.js +127 -0
  150. package/nodes/FontColorNode.js.map +1 -0
  151. package/nodes/HeadingNode.d.ts +34 -0
  152. package/nodes/HeadingNode.js +192 -0
  153. package/nodes/HeadingNode.js.map +1 -0
  154. package/nodes/ListItemNode.d.ts +46 -0
  155. package/nodes/ListItemNode.js +441 -0
  156. package/nodes/ListItemNode.js.map +1 -0
  157. package/nodes/ListNode/formatList.d.ts +12 -0
  158. package/nodes/ListNode/formatList.js +424 -0
  159. package/nodes/ListNode/formatList.js.map +1 -0
  160. package/nodes/ListNode.d.ts +42 -0
  161. package/nodes/ListNode.js +294 -0
  162. package/nodes/ListNode.js.map +1 -0
  163. package/nodes/ParagraphNode.d.ts +32 -0
  164. package/nodes/ParagraphNode.js +218 -0
  165. package/nodes/ParagraphNode.js.map +1 -0
  166. package/nodes/QuoteNode.d.ts +34 -0
  167. package/nodes/QuoteNode.js +225 -0
  168. package/nodes/QuoteNode.js.map +1 -0
  169. package/nodes/TypographyElementNode.d.ts +42 -0
  170. package/nodes/TypographyElementNode.js +155 -0
  171. package/nodes/TypographyElementNode.js.map +1 -0
  172. package/nodes/types.d.ts +15 -0
  173. package/nodes/types.js +5 -0
  174. package/nodes/types.js.map +1 -0
  175. package/nodes/webinyNodes.d.ts +7 -0
  176. package/nodes/webinyNodes.js +45 -0
  177. package/nodes/webinyNodes.js.map +1 -0
  178. package/package.json +41 -0
  179. package/plugins/AutoLinkPlugin/AutoLinkPlugin.d.ts +11 -0
  180. package/plugins/AutoLinkPlugin/AutoLinkPlugin.js +46 -0
  181. package/plugins/AutoLinkPlugin/AutoLinkPlugin.js.map +1 -0
  182. package/plugins/AutoLinkPlugin/index.d.ts +1 -0
  183. package/plugins/AutoLinkPlugin/index.js +16 -0
  184. package/plugins/AutoLinkPlugin/index.js.map +1 -0
  185. package/plugins/BlurEventPlugin/BlurEventPlugin.d.ts +7 -0
  186. package/plugins/BlurEventPlugin/BlurEventPlugin.js +28 -0
  187. package/plugins/BlurEventPlugin/BlurEventPlugin.js.map +1 -0
  188. package/plugins/ClickableLinkPlugin/ClickableLinkPlugin.d.ts +17 -0
  189. package/plugins/ClickableLinkPlugin/ClickableLinkPlugin.js +88 -0
  190. package/plugins/ClickableLinkPlugin/ClickableLinkPlugin.js.map +1 -0
  191. package/plugins/ClickableLinkPlugin/index.d.ts +1 -0
  192. package/plugins/ClickableLinkPlugin/index.js +16 -0
  193. package/plugins/ClickableLinkPlugin/index.js.map +1 -0
  194. package/plugins/CodeHighlightPlugin/CodeHighlightPlugin.d.ts +1 -0
  195. package/plugins/CodeHighlightPlugin/CodeHighlightPlugin.js +20 -0
  196. package/plugins/CodeHighlightPlugin/CodeHighlightPlugin.js.map +1 -0
  197. package/plugins/CodeHighlightPlugin/index.d.ts +1 -0
  198. package/plugins/CodeHighlightPlugin/index.js +16 -0
  199. package/plugins/CodeHighlightPlugin/index.js.map +1 -0
  200. package/plugins/FloatingLinkEditorPlugin/FloatingLinkEditorPlugin.css +118 -0
  201. package/plugins/FloatingLinkEditorPlugin/FloatingLinkEditorPlugin.d.ts +7 -0
  202. package/plugins/FloatingLinkEditorPlugin/FloatingLinkEditorPlugin.js +222 -0
  203. package/plugins/FloatingLinkEditorPlugin/FloatingLinkEditorPlugin.js.map +1 -0
  204. package/plugins/FloatingLinkEditorPlugin/index.d.ts +1 -0
  205. package/plugins/FloatingLinkEditorPlugin/index.js +16 -0
  206. package/plugins/FloatingLinkEditorPlugin/index.js.map +1 -0
  207. package/plugins/FontColorPlugin/FontColorPlugin.d.ts +2 -0
  208. package/plugins/FontColorPlugin/FontColorPlugin.js +39 -0
  209. package/plugins/FontColorPlugin/FontColorPlugin.js.map +1 -0
  210. package/plugins/LexicalUpdateStatePlugin/LexicalUpdateStatePlugin.d.ts +8 -0
  211. package/plugins/LexicalUpdateStatePlugin/LexicalUpdateStatePlugin.js +34 -0
  212. package/plugins/LexicalUpdateStatePlugin/LexicalUpdateStatePlugin.js.map +1 -0
  213. package/plugins/LexicalUpdateStatePlugin/index.d.ts +1 -0
  214. package/plugins/LexicalUpdateStatePlugin/index.js +16 -0
  215. package/plugins/LexicalUpdateStatePlugin/index.js.map +1 -0
  216. package/plugins/TypographyPlugin/TypographyPlugin.d.ts +2 -0
  217. package/plugins/TypographyPlugin/TypographyPlugin.js +35 -0
  218. package/plugins/TypographyPlugin/TypographyPlugin.js.map +1 -0
  219. package/plugins/WebinyListPLugin/WebinyListPlugin.d.ts +1 -0
  220. package/plugins/WebinyListPLugin/WebinyListPlugin.js +25 -0
  221. package/plugins/WebinyListPLugin/WebinyListPlugin.js.map +1 -0
  222. package/plugins/WebinyQuoteNodePlugin/WebinyQuoteNodePlugin.d.ts +1 -0
  223. package/plugins/WebinyQuoteNodePlugin/WebinyQuoteNodePlugin.js +24 -0
  224. package/plugins/WebinyQuoteNodePlugin/WebinyQuoteNodePlugin.js.map +1 -0
  225. package/themes/webinyLexicalTheme.css +429 -0
  226. package/themes/webinyLexicalTheme.d.ts +9 -0
  227. package/themes/webinyLexicalTheme.js +87 -0
  228. package/themes/webinyLexicalTheme.js.map +1 -0
  229. package/types.d.ts +63 -0
  230. package/types.js +25 -0
  231. package/types.js.map +1 -0
  232. package/ui/Divider.d.ts +2 -0
  233. package/ui/Divider.js +13 -0
  234. package/ui/Divider.js.map +1 -0
  235. package/ui/DropDown.d.ts +26 -0
  236. package/ui/DropDown.js +206 -0
  237. package/ui/DropDown.js.map +1 -0
  238. package/ui/Input.css +32 -0
  239. package/ui/LinkPreview.css +69 -0
  240. package/ui/LinkPreview.d.ts +12 -0
  241. package/ui/LinkPreview.js +101 -0
  242. package/ui/LinkPreview.js.map +1 -0
  243. package/ui/Placeholder.css +23 -0
  244. package/ui/Placeholder.d.ts +13 -0
  245. package/ui/Placeholder.js +24 -0
  246. package/ui/Placeholder.js.map +1 -0
  247. package/ui/TextInput.d.ts +18 -0
  248. package/ui/TextInput.js +39 -0
  249. package/ui/TextInput.js.map +1 -0
  250. package/ui/ToolbarActionDialog.d.ts +12 -0
  251. package/ui/ToolbarActionDialog.js +106 -0
  252. package/ui/ToolbarActionDialog.js.map +1 -0
  253. package/utils/findTypographyStyleByHtmlTag.d.ts +8 -0
  254. package/utils/findTypographyStyleByHtmlTag.js +16 -0
  255. package/utils/findTypographyStyleByHtmlTag.js.map +1 -0
  256. package/utils/generateInitialLexicalValue.d.ts +5 -0
  257. package/utils/generateInitialLexicalValue.js +30 -0
  258. package/utils/generateInitialLexicalValue.js.map +1 -0
  259. package/utils/getDOMRangeRect.d.ts +10 -0
  260. package/utils/getDOMRangeRect.js +27 -0
  261. package/utils/getDOMRangeRect.js.map +1 -0
  262. package/utils/getLexicalTextSelectionState.d.ts +5 -0
  263. package/utils/getLexicalTextSelectionState.js +163 -0
  264. package/utils/getLexicalTextSelectionState.js.map +1 -0
  265. package/utils/getSelectedNode.d.ts +2 -0
  266. package/utils/getSelectedNode.js +30 -0
  267. package/utils/getSelectedNode.js.map +1 -0
  268. package/utils/isValidJSON.d.ts +1 -0
  269. package/utils/isValidJSON.js +18 -0
  270. package/utils/isValidJSON.js.map +1 -0
  271. package/utils/isValidLexicalData.d.ts +2 -0
  272. package/utils/isValidLexicalData.js +24 -0
  273. package/utils/isValidLexicalData.js.map +1 -0
  274. package/utils/nodes/clearNodeFormating.d.ts +2 -0
  275. package/utils/nodes/clearNodeFormating.js +28 -0
  276. package/utils/nodes/clearNodeFormating.js.map +1 -0
  277. package/utils/nodes/formatToHeading.d.ts +3 -0
  278. package/utils/nodes/formatToHeading.js +25 -0
  279. package/utils/nodes/formatToHeading.js.map +1 -0
  280. package/utils/nodes/formatToParagraph.d.ts +2 -0
  281. package/utils/nodes/formatToParagraph.js +20 -0
  282. package/utils/nodes/formatToParagraph.js.map +1 -0
  283. package/utils/nodes/formatToQuote.d.ts +2 -0
  284. package/utils/nodes/formatToQuote.js +25 -0
  285. package/utils/nodes/formatToQuote.js.map +1 -0
  286. package/utils/nodes/listNode.d.ts +11 -0
  287. package/utils/nodes/listNode.js +107 -0
  288. package/utils/nodes/listNode.js.map +1 -0
  289. package/utils/point.d.ts +21 -0
  290. package/utils/point.js +77 -0
  291. package/utils/point.js.map +1 -0
  292. package/utils/rect.d.ts +47 -0
  293. package/utils/rect.js +169 -0
  294. package/utils/rect.js.map +1 -0
  295. package/utils/sanitizeUrl.d.ts +8 -0
  296. package/utils/sanitizeUrl.js +27 -0
  297. package/utils/sanitizeUrl.js.map +1 -0
  298. package/utils/setFloatingElemPosition.d.ts +3 -0
  299. package/utils/setFloatingElemPosition.js +40 -0
  300. package/utils/setFloatingElemPosition.js.map +1 -0
  301. package/utils/styleObjectToString.d.ts +2 -0
  302. package/utils/styleObjectToString.js +22 -0
  303. package/utils/styleObjectToString.js.map +1 -0
  304. package/utils/toTypographyEmotionMap.d.ts +3 -0
  305. package/utils/toTypographyEmotionMap.js +36 -0
  306. package/utils/toTypographyEmotionMap.js.map +1 -0
@@ -0,0 +1,225 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.$createQuoteNode = $createQuoteNode;
8
+ exports.$isQuoteNode = $isQuoteNode;
9
+ exports.QuoteNode = void 0;
10
+ var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
11
+ var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
12
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
13
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
14
+ var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
15
+ var _get2 = _interopRequireDefault(require("@babel/runtime/helpers/get"));
16
+ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
17
+ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
18
+ var _createSuper2 = _interopRequireDefault(require("@babel/runtime/helpers/createSuper"));
19
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
20
+ var _utils = require("@lexical/utils");
21
+ var _findTypographyStyleByHtmlTag = require("../utils/findTypographyStyleByHtmlTag");
22
+ var _richText = require("@lexical/rich-text");
23
+ var QuoteNode = /*#__PURE__*/function (_BaseQuoteNode) {
24
+ (0, _inherits2.default)(QuoteNode, _BaseQuoteNode);
25
+ var _super = (0, _createSuper2.default)(QuoteNode);
26
+ function QuoteNode(themeStyleId, key) {
27
+ var _this;
28
+ (0, _classCallCheck2.default)(this, QuoteNode);
29
+ _this = _super.call(this, key);
30
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "__styles", []);
31
+ if (themeStyleId) {
32
+ _this.__styles.push({
33
+ styleId: themeStyleId,
34
+ type: "typography"
35
+ });
36
+ }
37
+ return _this;
38
+ }
39
+
40
+ /*
41
+ * Find the first occurrence of the quoteblock in the theme styles and set as default.
42
+ */
43
+ (0, _createClass2.default)(QuoteNode, [{
44
+ key: "setDefaultTypography",
45
+ value: function setDefaultTypography(themeEmotionMap) {
46
+ var typographyStyle = (0, _findTypographyStyleByHtmlTag.findTypographyStyleByHtmlTag)("quoteblock", themeEmotionMap);
47
+ if (typographyStyle) {
48
+ this.__styles.push({
49
+ styleId: typographyStyle.id,
50
+ type: "typography"
51
+ });
52
+ }
53
+ }
54
+ }, {
55
+ key: "typographyStyleExist",
56
+ value: function typographyStyleExist(themeEmotionMap) {
57
+ var styleId = this.getTypographyStyleId();
58
+ if (!styleId) {
59
+ return false;
60
+ }
61
+ var style = themeEmotionMap[styleId];
62
+ return !!style;
63
+ }
64
+ }, {
65
+ key: "setTypography",
66
+ value: function setTypography(typographyStyleId) {
67
+ var self = (0, _get2.default)((0, _getPrototypeOf2.default)(QuoteNode.prototype), "getWritable", this).call(this);
68
+ if (!typographyStyleId) {
69
+ return self;
70
+ }
71
+ if (!this.hasTypographyStyle()) {
72
+ var themeStyle = {
73
+ styleId: typographyStyleId,
74
+ type: "typography"
75
+ };
76
+ self.__styles.push(themeStyle);
77
+ }
78
+ return self;
79
+ }
80
+ }, {
81
+ key: "getTypographyStyleId",
82
+ value: function getTypographyStyleId() {
83
+ var style = this.__styles.find(function (x) {
84
+ return x.type === "typography";
85
+ });
86
+ return (style === null || style === void 0 ? void 0 : style.styleId) || undefined;
87
+ }
88
+ }, {
89
+ key: "clearTypographyStyle",
90
+ value: function clearTypographyStyle() {
91
+ var self = (0, _get2.default)((0, _getPrototypeOf2.default)(QuoteNode.prototype), "getWritable", this).call(this);
92
+ self.__styles = self.__styles.filter(function (s) {
93
+ return s.type !== "typography";
94
+ });
95
+ return self;
96
+ }
97
+ }, {
98
+ key: "hasTypographyStyle",
99
+ value: function hasTypographyStyle() {
100
+ return !!this.getTypographyStyleId();
101
+ }
102
+ }, {
103
+ key: "getThemeStyles",
104
+ value: function getThemeStyles() {
105
+ var self = (0, _get2.default)((0, _getPrototypeOf2.default)(QuoteNode.prototype), "getLatest", this).call(this);
106
+ return self.__styles;
107
+ }
108
+ }, {
109
+ key: "setThemeStyles",
110
+ value: function setThemeStyles(styles) {
111
+ var self = (0, _get2.default)((0, _getPrototypeOf2.default)(QuoteNode.prototype), "getWritable", this).call(this);
112
+ self.__styles = (0, _toConsumableArray2.default)(styles);
113
+ return self;
114
+ }
115
+ }, {
116
+ key: "addThemeStylesToHTMLElement",
117
+ value: function addThemeStylesToHTMLElement(element, theme) {
118
+ var themeEmotionMap = theme === null || theme === void 0 ? void 0 : theme.emotionMap;
119
+ if (!themeEmotionMap) {
120
+ return element;
121
+ }
122
+
123
+ // style exist and is in active use
124
+ if (this.hasTypographyStyle() && this.typographyStyleExist(themeEmotionMap)) {
125
+ var styleId = this.getTypographyStyleId();
126
+ if (styleId) {
127
+ var typographyValue = themeEmotionMap[styleId];
128
+ (0, _utils.addClassNamesToElement)(element, typographyValue === null || typographyValue === void 0 ? void 0 : typographyValue.className);
129
+ return element;
130
+ }
131
+ }
132
+ return element;
133
+ }
134
+ }, {
135
+ key: "createDOM",
136
+ value: function createDOM(config) {
137
+ var element = (0, _get2.default)((0, _getPrototypeOf2.default)(QuoteNode.prototype), "createDOM", this).call(this, config);
138
+ var wTheme = config.theme;
139
+ var emotionThemeMap = wTheme === null || wTheme === void 0 ? void 0 : wTheme.emotionMap;
140
+ if (!emotionThemeMap) {
141
+ return element;
142
+ }
143
+
144
+ // if styleId is not set or user removed the style from theme, set default style
145
+ if (!this.hasTypographyStyle() || !this.typographyStyleExist(emotionThemeMap)) {
146
+ this.setDefaultTypography(emotionThemeMap);
147
+ }
148
+ this.addThemeStylesToHTMLElement(element, config.theme);
149
+ return element;
150
+ }
151
+ }, {
152
+ key: "exportJSON",
153
+ value: function exportJSON() {
154
+ return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, (0, _get2.default)((0, _getPrototypeOf2.default)(QuoteNode.prototype), "exportJSON", this).call(this)), {}, {
155
+ type: "webiny-quote",
156
+ styles: this.__styles,
157
+ styleId: this.getTypographyStyleId()
158
+ });
159
+ }
160
+ }], [{
161
+ key: "getType",
162
+ value: function getType() {
163
+ return "webiny-quote";
164
+ }
165
+ }, {
166
+ key: "clone",
167
+ value: function clone(node) {
168
+ return new QuoteNode(node.getTypographyStyleId(), node.__key);
169
+ }
170
+ }, {
171
+ key: "importDomConversionMap",
172
+ value: function importDomConversionMap() {
173
+ return {
174
+ conversion: convertBlockquoteElement,
175
+ priority: 0
176
+ };
177
+ }
178
+ }, {
179
+ key: "importDOM",
180
+ value: function importDOM() {
181
+ var _this2 = this;
182
+ return {
183
+ blockquote: function blockquote() {
184
+ return _this2.importDomConversionMap();
185
+ }
186
+ };
187
+ }
188
+ }, {
189
+ key: "importJSON",
190
+ value: function importJSON(serializedNode) {
191
+ var _serializedNode$style;
192
+ var node = $createQuoteNode();
193
+ node.setFormat(serializedNode.format);
194
+ node.setIndent(serializedNode.indent);
195
+ node.setDirection(serializedNode.direction);
196
+ if (!!(serializedNode !== null && serializedNode !== void 0 && (_serializedNode$style = serializedNode.styles) !== null && _serializedNode$style !== void 0 && _serializedNode$style.length)) {
197
+ node.setThemeStyles(serializedNode.styles);
198
+ return node;
199
+ }
200
+ // for old nodes data migrate the style id into the list
201
+ if (!!(serializedNode !== null && serializedNode !== void 0 && serializedNode.styleId)) {
202
+ var styles = [{
203
+ styleId: serializedNode.styleId,
204
+ type: "typography"
205
+ }];
206
+ node.setThemeStyles(styles);
207
+ }
208
+ return node;
209
+ }
210
+ }]);
211
+ return QuoteNode;
212
+ }(_richText.QuoteNode);
213
+ exports.QuoteNode = QuoteNode;
214
+ function convertBlockquoteElement() {
215
+ var node = $createQuoteNode();
216
+ return {
217
+ node: node
218
+ };
219
+ }
220
+ function $createQuoteNode(themeStyleId, key) {
221
+ return new QuoteNode(themeStyleId, key);
222
+ }
223
+ function $isQuoteNode(node) {
224
+ return node instanceof QuoteNode;
225
+ }
@@ -0,0 +1 @@
1
+ {"version":3,"names":["QuoteNode","themeStyleId","key","__styles","push","styleId","type","themeEmotionMap","typographyStyle","findTypographyStyleByHtmlTag","id","getTypographyStyleId","style","typographyStyleId","self","hasTypographyStyle","themeStyle","find","x","undefined","filter","s","styles","element","theme","emotionMap","typographyStyleExist","typographyValue","addClassNamesToElement","className","config","wTheme","emotionThemeMap","setDefaultTypography","addThemeStylesToHTMLElement","node","__key","conversion","convertBlockquoteElement","priority","blockquote","importDomConversionMap","serializedNode","$createQuoteNode","setFormat","format","setIndent","indent","setDirection","direction","length","setThemeStyles","BaseQuoteNode","$isQuoteNode"],"sources":["QuoteNode.ts"],"sourcesContent":["import {\n DOMConversion,\n DOMConversionMap,\n EditorConfig,\n LexicalNode,\n NodeKey,\n Spread\n} from \"lexical\";\nimport { WebinyEditorTheme, WebinyTheme } from \"~/themes/webinyLexicalTheme\";\nimport { ThemeEmotionMap } from \"~/types\";\nimport { addClassNamesToElement } from \"@lexical/utils\";\nimport { findTypographyStyleByHtmlTag } from \"~/utils/findTypographyStyleByHtmlTag\";\nimport {\n QuoteNode as BaseQuoteNode,\n SerializedQuoteNode as BaseSerializedQuoteNode\n} from \"@lexical/rich-text\";\nimport { TextNodeThemeStyles, ThemeStyleValue, TypographyStylesNode } from \"~/nodes/types\";\n\nexport type SerializedQuoteNode = Spread<\n {\n styleId?: string;\n styles: ThemeStyleValue[];\n type: \"webiny-quote\";\n },\n BaseSerializedQuoteNode\n>;\n\nexport class QuoteNode extends BaseQuoteNode implements TextNodeThemeStyles, TypographyStylesNode {\n __styles: ThemeStyleValue[] = [];\n\n constructor(themeStyleId?: string, key?: NodeKey) {\n super(key);\n if (themeStyleId) {\n this.__styles.push({ styleId: themeStyleId, type: \"typography\" });\n }\n }\n\n /*\n * Find the first occurrence of the quoteblock in the theme styles and set as default.\n */\n protected setDefaultTypography(themeEmotionMap: ThemeEmotionMap) {\n const typographyStyle = findTypographyStyleByHtmlTag(\"quoteblock\", themeEmotionMap);\n if (typographyStyle) {\n this.__styles.push({ styleId: typographyStyle.id, type: \"typography\" });\n }\n }\n\n protected typographyStyleExist(themeEmotionMap: ThemeEmotionMap): boolean {\n const styleId = this.getTypographyStyleId();\n if (!styleId) {\n return false;\n }\n const style = themeEmotionMap[styleId];\n return !!style;\n }\n\n setTypography(typographyStyleId: string): this {\n const self = super.getWritable();\n if (!typographyStyleId) {\n return self;\n }\n\n if (!this.hasTypographyStyle()) {\n const themeStyle = {\n styleId: typographyStyleId,\n type: \"typography\"\n } as ThemeStyleValue;\n self.__styles.push(themeStyle);\n }\n return self;\n }\n\n getTypographyStyleId(): string | undefined {\n const style = this.__styles.find(x => x.type === \"typography\");\n return style?.styleId || undefined;\n }\n\n clearTypographyStyle(): this {\n const self = super.getWritable();\n self.__styles = self.__styles.filter(s => s.type !== \"typography\");\n return self;\n }\n\n hasTypographyStyle(): boolean {\n return !!this.getTypographyStyleId();\n }\n\n getThemeStyles(): ThemeStyleValue[] {\n const self = super.getLatest();\n return self.__styles;\n }\n\n setThemeStyles(styles: ThemeStyleValue[]) {\n const self = super.getWritable();\n self.__styles = [...styles];\n return self;\n }\n\n static override getType(): string {\n return \"webiny-quote\";\n }\n\n static override clone(node: QuoteNode): QuoteNode {\n return new QuoteNode(node.getTypographyStyleId(), node.__key);\n }\n\n addThemeStylesToHTMLElement(element: HTMLElement, theme: WebinyEditorTheme): HTMLElement {\n const themeEmotionMap = theme?.emotionMap;\n\n if (!themeEmotionMap) {\n return element;\n }\n\n // style exist and is in active use\n if (this.hasTypographyStyle() && this.typographyStyleExist(themeEmotionMap)) {\n const styleId = this.getTypographyStyleId();\n if (styleId) {\n const typographyValue = themeEmotionMap[styleId];\n addClassNamesToElement(element, typographyValue?.className);\n return element;\n }\n }\n\n return element;\n }\n\n override createDOM(config: EditorConfig): HTMLElement {\n const element = super.createDOM(config);\n const wTheme = config.theme as WebinyTheme;\n const emotionThemeMap = wTheme?.emotionMap;\n\n if (!emotionThemeMap) {\n return element;\n }\n\n // if styleId is not set or user removed the style from theme, set default style\n if (!this.hasTypographyStyle() || !this.typographyStyleExist(emotionThemeMap)) {\n this.setDefaultTypography(emotionThemeMap);\n }\n\n this.addThemeStylesToHTMLElement(element, config.theme);\n return element;\n }\n\n static importDomConversionMap(): DOMConversion<HTMLElement> | null {\n return {\n conversion: convertBlockquoteElement,\n priority: 0\n };\n }\n\n static override importDOM(): DOMConversionMap | null {\n return {\n blockquote: () => {\n return this.importDomConversionMap();\n }\n };\n }\n\n static override importJSON(serializedNode: SerializedQuoteNode): QuoteNode {\n const node = $createQuoteNode();\n node.setFormat(serializedNode.format);\n node.setIndent(serializedNode.indent);\n node.setDirection(serializedNode.direction);\n if (!!serializedNode?.styles?.length) {\n node.setThemeStyles(serializedNode.styles);\n return node;\n }\n // for old nodes data migrate the style id into the list\n if (!!serializedNode?.styleId) {\n const styles = [\n { styleId: serializedNode.styleId, type: \"typography\" }\n ] as ThemeStyleValue[];\n node.setThemeStyles(styles);\n }\n return node;\n }\n\n override exportJSON(): SerializedQuoteNode {\n return {\n ...super.exportJSON(),\n type: \"webiny-quote\",\n styles: this.__styles,\n styleId: this.getTypographyStyleId()\n };\n }\n}\n\nfunction convertBlockquoteElement() {\n const node = $createQuoteNode();\n return {\n node\n };\n}\n\nexport function $createQuoteNode(themeStyleId?: string, key?: NodeKey): QuoteNode {\n return new QuoteNode(themeStyleId, key);\n}\n\nexport function $isQuoteNode(node: LexicalNode | null | undefined): node is QuoteNode {\n return node instanceof QuoteNode;\n}\n"],"mappings":"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"}
@@ -0,0 +1,42 @@
1
+ /// <reference types="react" />
2
+ /// <reference types="web" />
3
+ import { EditorConfig, ElementNode, LexicalCommand, LexicalEditor, LexicalNode, NodeKey, SerializedElementNode, Spread } from "lexical";
4
+ import { WebinyEditorTheme } from "../themes/webinyLexicalTheme";
5
+ import { TypographyHTMLTag, TypographyValue } from "../types";
6
+ export declare const ADD_TYPOGRAPHY_ELEMENT_COMMAND: LexicalCommand<TypographyPayload>;
7
+ export interface TypographyPayload {
8
+ value: TypographyValue;
9
+ caption?: LexicalEditor;
10
+ key?: NodeKey;
11
+ }
12
+ export declare type SerializedTypographyNode = Spread<{
13
+ tag: TypographyHTMLTag;
14
+ styleId: string;
15
+ name: string;
16
+ typographyStyles: Record<string, any>;
17
+ type: "typography-el-node";
18
+ version: 1;
19
+ }, SerializedElementNode>;
20
+ /**
21
+ * Main responsibility of this node is to apply custom or Webiny theme typography to selected text.
22
+ * Extends the original ElementNode node to add additional transformation and support for webiny theme typography.
23
+ */
24
+ export declare class TypographyElementNode extends ElementNode {
25
+ __styleId: string;
26
+ __tag: TypographyHTMLTag;
27
+ __name: string;
28
+ __css: Record<string, any>;
29
+ constructor(value: TypographyValue, key?: NodeKey);
30
+ static getType(): string;
31
+ static clone(node: TypographyElementNode): TypographyElementNode;
32
+ getTypographyValue(): TypographyValue;
33
+ addStylesHTMLElement(element: HTMLElement, theme: WebinyEditorTheme): HTMLElement;
34
+ exportJSON(): SerializedTypographyNode;
35
+ static importJSON(serializedNode: SerializedTypographyNode): TypographyElementNode;
36
+ createDOM(config: EditorConfig): HTMLElement;
37
+ updateDOM(): boolean;
38
+ insertNewAfter(): TypographyElementNode;
39
+ collapseAtStart(): true;
40
+ }
41
+ export declare const $createTypographyNode: (value: TypographyValue, key?: NodeKey) => TypographyElementNode;
42
+ export declare const $isTypographyElementNode: (node: ElementNode | LexicalNode | null) => boolean;
@@ -0,0 +1,155 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.TypographyElementNode = exports.ADD_TYPOGRAPHY_ELEMENT_COMMAND = exports.$isTypographyElementNode = exports.$createTypographyNode = void 0;
8
+ var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
9
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
10
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
11
+ var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
12
+ var _get2 = _interopRequireDefault(require("@babel/runtime/helpers/get"));
13
+ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
14
+ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
15
+ var _createSuper2 = _interopRequireDefault(require("@babel/runtime/helpers/createSuper"));
16
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
17
+ var _lexical = require("lexical");
18
+ var _utils = require("@lexical/utils");
19
+ var _ParagraphNode = require("./ParagraphNode");
20
+ // Command and payload
21
+ var ADD_TYPOGRAPHY_ELEMENT_COMMAND = (0, _lexical.createCommand)("ADD_TYPOGRAPHY_ELEMENT_COMMAND");
22
+ exports.ADD_TYPOGRAPHY_ELEMENT_COMMAND = ADD_TYPOGRAPHY_ELEMENT_COMMAND;
23
+ var TypographyNodeAttrName = "data-typography-style-id";
24
+ /**
25
+ * Main responsibility of this node is to apply custom or Webiny theme typography to selected text.
26
+ * Extends the original ElementNode node to add additional transformation and support for webiny theme typography.
27
+ */
28
+ var TypographyElementNode = /*#__PURE__*/function (_ElementNode) {
29
+ (0, _inherits2.default)(TypographyElementNode, _ElementNode);
30
+ var _super = (0, _createSuper2.default)(TypographyElementNode);
31
+ function TypographyElementNode(value, key) {
32
+ var _this;
33
+ (0, _classCallCheck2.default)(this, TypographyElementNode);
34
+ _this = _super.call(this, key);
35
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "__styleId", void 0);
36
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "__tag", void 0);
37
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "__name", void 0);
38
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "__css", void 0);
39
+ _this.__tag = value.tag;
40
+ _this.__styleId = value.id;
41
+ _this.__name = value.name;
42
+ _this.__css = value.css;
43
+ return _this;
44
+ }
45
+ (0, _createClass2.default)(TypographyElementNode, [{
46
+ key: "getTypographyValue",
47
+ value: function getTypographyValue() {
48
+ return {
49
+ tag: this.__tag,
50
+ css: this.__css,
51
+ id: this.__styleId,
52
+ name: this.__name
53
+ };
54
+ }
55
+ }, {
56
+ key: "addStylesHTMLElement",
57
+ value: function addStylesHTMLElement(element, theme) {
58
+ var typographyStyleValue = theme !== null && theme !== void 0 && theme.emotionMap ? theme === null || theme === void 0 ? void 0 : theme.emotionMap[this.__styleId] : undefined;
59
+ if (typographyStyleValue) {
60
+ this.__css = typographyStyleValue.styles;
61
+ (0, _utils.addClassNamesToElement)(element, typographyStyleValue.className);
62
+ }
63
+ element.setAttribute(TypographyNodeAttrName, this.__styleId);
64
+ return element;
65
+ }
66
+ }, {
67
+ key: "exportJSON",
68
+ value: function exportJSON() {
69
+ return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, (0, _get2.default)((0, _getPrototypeOf2.default)(TypographyElementNode.prototype), "exportJSON", this).call(this)), {}, {
70
+ tag: this.__tag,
71
+ typographyStyles: this.__css,
72
+ name: this.__name,
73
+ styleId: this.__styleId,
74
+ type: "typography-el-node",
75
+ version: 1
76
+ });
77
+ }
78
+ }, {
79
+ key: "createDOM",
80
+ value: function createDOM(config) {
81
+ var tag = this.__tag;
82
+ var element = document.createElement(tag);
83
+ return this.addStylesHTMLElement(element, config.theme);
84
+ }
85
+ }, {
86
+ key: "updateDOM",
87
+ value: function updateDOM() {
88
+ return false;
89
+ }
90
+ }, {
91
+ key: "insertNewAfter",
92
+ value: function insertNewAfter() {
93
+ var newElement = $createTypographyNode({
94
+ tag: this.__tag,
95
+ name: this.__name,
96
+ css: this.__css,
97
+ id: this.__styleId
98
+ });
99
+ var direction = this.getDirection();
100
+ newElement.setDirection(direction);
101
+ this.insertAfter(newElement);
102
+ return newElement;
103
+ }
104
+ }, {
105
+ key: "collapseAtStart",
106
+ value: function collapseAtStart() {
107
+ var paragraph = (0, _ParagraphNode.$createParagraphNode)();
108
+ var children = this.getChildren();
109
+ children.forEach(function (child) {
110
+ return paragraph.append(child);
111
+ });
112
+ this.replace(paragraph);
113
+ return true;
114
+ }
115
+ }], [{
116
+ key: "getType",
117
+ value: function getType() {
118
+ return "typography-el-node";
119
+ }
120
+ }, {
121
+ key: "clone",
122
+ value: function clone(node) {
123
+ return new TypographyElementNode({
124
+ css: node.__css,
125
+ id: node.__styleId,
126
+ name: node.__name,
127
+ tag: node.__tag
128
+ }, node.__key);
129
+ }
130
+ }, {
131
+ key: "importJSON",
132
+ value: function importJSON(serializedNode) {
133
+ var node = new TypographyElementNode({
134
+ id: serializedNode.styleId,
135
+ css: serializedNode.typographyStyles,
136
+ tag: serializedNode.tag,
137
+ name: serializedNode.name
138
+ });
139
+ node.setFormat(serializedNode.format);
140
+ node.setIndent(serializedNode.indent);
141
+ node.setDirection(serializedNode.direction);
142
+ return node;
143
+ }
144
+ }]);
145
+ return TypographyElementNode;
146
+ }(_lexical.ElementNode);
147
+ exports.TypographyElementNode = TypographyElementNode;
148
+ var $createTypographyNode = function $createTypographyNode(value, key) {
149
+ return new TypographyElementNode(value, key);
150
+ };
151
+ exports.$createTypographyNode = $createTypographyNode;
152
+ var $isTypographyElementNode = function $isTypographyElementNode(node) {
153
+ return node instanceof TypographyElementNode;
154
+ };
155
+ exports.$isTypographyElementNode = $isTypographyElementNode;
@@ -0,0 +1 @@
1
+ {"version":3,"names":["ADD_TYPOGRAPHY_ELEMENT_COMMAND","createCommand","TypographyNodeAttrName","TypographyElementNode","value","key","__tag","tag","__styleId","id","__name","name","__css","css","element","theme","typographyStyleValue","emotionMap","undefined","styles","addClassNamesToElement","className","setAttribute","typographyStyles","styleId","type","version","config","document","createElement","addStylesHTMLElement","newElement","$createTypographyNode","direction","getDirection","setDirection","insertAfter","paragraph","$createParagraphNode","children","getChildren","forEach","child","append","replace","node","__key","serializedNode","setFormat","format","setIndent","indent","ElementNode","$isTypographyElementNode"],"sources":["TypographyElementNode.ts"],"sourcesContent":["import {\n createCommand,\n EditorConfig,\n ElementNode,\n LexicalCommand,\n LexicalEditor,\n LexicalNode,\n NodeKey,\n SerializedElementNode,\n Spread\n} from \"lexical\";\nimport { WebinyEditorTheme } from \"~/themes/webinyLexicalTheme\";\nimport { TypographyHTMLTag, TypographyValue } from \"~/types\";\nimport { addClassNamesToElement } from \"@lexical/utils\";\nimport { $createParagraphNode } from \"~/nodes/ParagraphNode\";\n\n// Command and payload\nexport const ADD_TYPOGRAPHY_ELEMENT_COMMAND: LexicalCommand<TypographyPayload> = createCommand(\n \"ADD_TYPOGRAPHY_ELEMENT_COMMAND\"\n);\nconst TypographyNodeAttrName = \"data-typography-style-id\";\n\nexport interface TypographyPayload {\n value: TypographyValue;\n caption?: LexicalEditor;\n key?: NodeKey;\n}\n\n// Node\nexport type SerializedTypographyNode = Spread<\n {\n tag: TypographyHTMLTag;\n styleId: string;\n name: string;\n typographyStyles: Record<string, any>;\n type: \"typography-el-node\";\n version: 1;\n },\n SerializedElementNode\n>;\n\n/**\n * Main responsibility of this node is to apply custom or Webiny theme typography to selected text.\n * Extends the original ElementNode node to add additional transformation and support for webiny theme typography.\n */\nexport class TypographyElementNode extends ElementNode {\n __styleId: string;\n __tag: TypographyHTMLTag;\n __name: string;\n __css: Record<string, any>;\n\n constructor(value: TypographyValue, key?: NodeKey) {\n super(key);\n this.__tag = value.tag;\n this.__styleId = value.id;\n this.__name = value.name;\n this.__css = value.css;\n }\n\n static override getType(): string {\n return \"typography-el-node\";\n }\n\n static override clone(node: TypographyElementNode): TypographyElementNode {\n return new TypographyElementNode(\n {\n css: node.__css,\n id: node.__styleId,\n name: node.__name,\n tag: node.__tag\n },\n node.__key\n );\n }\n getTypographyValue(): TypographyValue {\n return {\n tag: this.__tag,\n css: this.__css,\n id: this.__styleId,\n name: this.__name\n };\n }\n\n addStylesHTMLElement(element: HTMLElement, theme: WebinyEditorTheme): HTMLElement {\n const typographyStyleValue = theme?.emotionMap\n ? theme?.emotionMap[this.__styleId]\n : undefined;\n if (typographyStyleValue) {\n this.__css = typographyStyleValue.styles;\n addClassNamesToElement(element, typographyStyleValue.className);\n }\n element.setAttribute(TypographyNodeAttrName, this.__styleId);\n\n return element;\n }\n\n override exportJSON(): SerializedTypographyNode {\n return {\n ...super.exportJSON(),\n tag: this.__tag,\n typographyStyles: this.__css,\n name: this.__name,\n styleId: this.__styleId,\n type: \"typography-el-node\",\n version: 1\n };\n }\n\n static override importJSON(serializedNode: SerializedTypographyNode): TypographyElementNode {\n const node = new TypographyElementNode({\n id: serializedNode.styleId,\n css: serializedNode.typographyStyles,\n tag: serializedNode.tag,\n name: serializedNode.name\n });\n node.setFormat(serializedNode.format);\n node.setIndent(serializedNode.indent);\n node.setDirection(serializedNode.direction);\n return node;\n }\n\n override createDOM(config: EditorConfig): HTMLElement {\n const tag = this.__tag;\n const element = document.createElement(tag);\n return this.addStylesHTMLElement(element, config.theme);\n }\n\n override updateDOM(): boolean {\n return false;\n }\n\n override insertNewAfter(): TypographyElementNode {\n const newElement = $createTypographyNode({\n tag: this.__tag,\n name: this.__name,\n css: this.__css,\n id: this.__styleId\n });\n const direction = this.getDirection();\n newElement.setDirection(direction);\n this.insertAfter(newElement);\n return newElement;\n }\n\n override collapseAtStart(): true {\n const paragraph = $createParagraphNode();\n const children = this.getChildren();\n children.forEach(child => paragraph.append(child));\n this.replace(paragraph);\n return true;\n }\n}\n\nexport const $createTypographyNode = (\n value: TypographyValue,\n key?: NodeKey\n): TypographyElementNode => {\n return new TypographyElementNode(value, key);\n};\n\nexport const $isTypographyElementNode = (node: ElementNode | LexicalNode | null): boolean => {\n return node instanceof TypographyElementNode;\n};\n"],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ export declare type ThemeStyleType = "typography" | "colors" | "fonts";
2
+ export interface ThemeStyleValue {
3
+ styleId: string;
4
+ type: ThemeStyleType;
5
+ }
6
+ export interface TextNodeThemeStyles {
7
+ getThemeStyles: () => ThemeStyleValue[];
8
+ setThemeStyles: (styles: ThemeStyleValue[]) => void;
9
+ }
10
+ export interface TypographyStylesNode {
11
+ setTypography: (typographyStyleId: string) => void;
12
+ getTypographyStyleId: () => string | undefined;
13
+ clearTypographyStyle: () => void;
14
+ hasTypographyStyle: () => boolean;
15
+ }
package/nodes/types.js ADDED
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["export type ThemeStyleType = \"typography\" | \"colors\" | \"fonts\";\n\nexport interface ThemeStyleValue {\n styleId: string;\n type: ThemeStyleType;\n}\n\nexport interface TextNodeThemeStyles {\n getThemeStyles: () => ThemeStyleValue[];\n setThemeStyles: (styles: ThemeStyleValue[]) => void;\n}\n\n/*\n * Indicates that the node is implementing the typography styles\n */\nexport interface TypographyStylesNode {\n setTypography: (typographyStyleId: string) => void;\n getTypographyStyleId: () => string | undefined;\n clearTypographyStyle: () => void;\n hasTypographyStyle: () => boolean;\n}\n"],"mappings":""}
@@ -0,0 +1,7 @@
1
+ import type { Klass, LexicalNode } from "lexical";
2
+ export declare const WebinyNodes: ReadonlyArray<Klass<LexicalNode> | {
3
+ replace: Klass<LexicalNode>;
4
+ with: <T extends {
5
+ new (...args: any): any;
6
+ }>(node: InstanceType<T>) => LexicalNode;
7
+ }>;
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.WebinyNodes = void 0;
7
+ var _code = require("@lexical/code");
8
+ var _hashtag = require("@lexical/hashtag");
9
+ var _link = require("@lexical/link");
10
+ var _mark = require("@lexical/mark");
11
+ var _overflow = require("@lexical/overflow");
12
+ var _FontColorNode = require("./FontColorNode");
13
+ var _TypographyElementNode = require("./TypographyElementNode");
14
+ var _ListNode = require("./ListNode");
15
+ var _ListItemNode = require("./ListItemNode");
16
+ var _lexical = require("lexical");
17
+ var _HeadingNode = require("./HeadingNode");
18
+ var _ParagraphNode = require("./ParagraphNode");
19
+ var _richText = require("@lexical/rich-text");
20
+ var _QuoteNode = require("./QuoteNode");
21
+ /*
22
+ * This is a list of all the nodes that Webiny's Lexical implementation supports OOTB.
23
+ * */
24
+ var WebinyNodes = [_ListNode.ListNode, _ListItemNode.ListItemNode, _code.CodeNode, _hashtag.HashtagNode, _code.CodeHighlightNode, _link.AutoLinkNode, _link.LinkNode, _overflow.OverflowNode, _mark.MarkNode, _FontColorNode.FontColorNode, _TypographyElementNode.TypographyElementNode,
25
+ /*
26
+ * In order to provide additional Webiny-related functionality, we override Lexical's ParagraphNode and HeadingNode nodes.
27
+ * More info on overriding can be found here: https://lexical.dev/docs/concepts/node-replacement.
28
+ * */
29
+ _ParagraphNode.ParagraphNode, {
30
+ replace: _lexical.ParagraphNode,
31
+ with: function _with() {
32
+ return new _ParagraphNode.ParagraphNode();
33
+ }
34
+ }, _HeadingNode.HeadingNode, {
35
+ replace: _richText.HeadingNode,
36
+ with: function _with(node) {
37
+ return new _HeadingNode.HeadingNode(node.getTag());
38
+ }
39
+ }, _QuoteNode.QuoteNode, {
40
+ replace: _richText.QuoteNode,
41
+ with: function _with() {
42
+ return new _QuoteNode.QuoteNode();
43
+ }
44
+ }];
45
+ exports.WebinyNodes = WebinyNodes;
@@ -0,0 +1 @@
1
+ {"version":3,"names":["WebinyNodes","ListNode","ListItemNode","CodeNode","HashtagNode","CodeHighlightNode","AutoLinkNode","LinkNode","OverflowNode","MarkNode","FontColorNode","TypographyElementNode","ParagraphNode","replace","BaseParagraphNode","with","HeadingNode","BaseHeadingNode","node","getTag","QuoteNode","BaseQuoteNode"],"sources":["webinyNodes.ts"],"sourcesContent":["import type { Klass, LexicalNode } from \"lexical\";\n\nimport { CodeHighlightNode, CodeNode } from \"@lexical/code\";\nimport { HashtagNode } from \"@lexical/hashtag\";\nimport { AutoLinkNode, LinkNode } from \"@lexical/link\";\nimport { MarkNode } from \"@lexical/mark\";\nimport { OverflowNode } from \"@lexical/overflow\";\nimport { FontColorNode } from \"~/nodes/FontColorNode\";\nimport { TypographyElementNode } from \"~/nodes/TypographyElementNode\";\nimport { ListNode } from \"~/nodes/ListNode\";\nimport { ListItemNode } from \"~/nodes/ListItemNode\";\nimport { ParagraphNode as BaseParagraphNode } from \"lexical\";\nimport { HeadingNode } from \"~/nodes/HeadingNode\";\nimport { ParagraphNode } from \"~/nodes/ParagraphNode\";\nimport { HeadingNode as BaseHeadingNode, QuoteNode as BaseQuoteNode } from \"@lexical/rich-text\";\nimport { QuoteNode } from \"~/nodes/QuoteNode\";\n\n/*\n * This is a list of all the nodes that Webiny's Lexical implementation supports OOTB.\n * */\nexport const WebinyNodes: ReadonlyArray<\n | Klass<LexicalNode>\n | {\n replace: Klass<LexicalNode>;\n with: <T extends { new (...args: any): any }>(node: InstanceType<T>) => LexicalNode;\n }\n> = [\n ListNode,\n ListItemNode,\n CodeNode,\n HashtagNode,\n CodeHighlightNode,\n AutoLinkNode,\n LinkNode,\n OverflowNode,\n MarkNode,\n FontColorNode,\n TypographyElementNode,\n /*\n * In order to provide additional Webiny-related functionality, we override Lexical's ParagraphNode and HeadingNode nodes.\n * More info on overriding can be found here: https://lexical.dev/docs/concepts/node-replacement.\n * */\n ParagraphNode,\n {\n replace: BaseParagraphNode,\n with: () => {\n return new ParagraphNode();\n }\n },\n HeadingNode,\n {\n replace: BaseHeadingNode,\n with: (node: BaseHeadingNode) => {\n return new HeadingNode(node.getTag());\n }\n },\n QuoteNode,\n {\n replace: BaseQuoteNode,\n with: () => {\n return new QuoteNode();\n }\n }\n];\n"],"mappings":";;;;;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACO,IAAMA,WAMZ,GAAG,CACAC,kBAAQ,EACRC,0BAAY,EACZC,cAAQ,EACRC,oBAAW,EACXC,uBAAiB,EACjBC,kBAAY,EACZC,cAAQ,EACRC,sBAAY,EACZC,cAAQ,EACRC,4BAAa,EACbC,4CAAqB;AACrB;AACJ;AACA;AACA;AACIC,4BAAa,EACb;EACIC,OAAO,EAAEC,sBAAiB;EAC1BC,IAAI,EAAE,iBAAM;IACR,OAAO,IAAIH,4BAAa,EAAE;EAC9B;AACJ,CAAC,EACDI,wBAAW,EACX;EACIH,OAAO,EAAEI,qBAAe;EACxBF,IAAI,EAAE,eAACG,IAAqB,EAAK;IAC7B,OAAO,IAAIF,wBAAW,CAACE,IAAI,CAACC,MAAM,EAAE,CAAC;EACzC;AACJ,CAAC,EACDC,oBAAS,EACT;EACIP,OAAO,EAAEQ,mBAAa;EACtBN,IAAI,EAAE,iBAAM;IACR,OAAO,IAAIK,oBAAS,EAAE;EAC1B;AACJ,CAAC,CACJ;AAAC"}
package/package.json ADDED
@@ -0,0 +1,41 @@
1
+ {
2
+ "name": "@webiny/lexical-editor",
3
+ "version": "0.0.0-unstable.085ff6572f",
4
+ "repository": {
5
+ "type": "git",
6
+ "url": "https://github.com/webiny/webiny-js.git"
7
+ },
8
+ "license": "MIT",
9
+ "dependencies": {
10
+ "@emotion/react": "11.10.8",
11
+ "@lexical/code": "0.10.0",
12
+ "@lexical/hashtag": "0.10.0",
13
+ "@lexical/history": "0.10.0",
14
+ "@lexical/link": "0.10.0",
15
+ "@lexical/list": "0.10.0",
16
+ "@lexical/mark": "0.10.0",
17
+ "@lexical/overflow": "0.10.0",
18
+ "@lexical/react": "0.10.0",
19
+ "@lexical/rich-text": "0.10.0",
20
+ "@lexical/selection": "0.10.0",
21
+ "@lexical/utils": "0.10.0",
22
+ "@webiny/react-composition": "0.0.0-unstable.085ff6572f",
23
+ "lexical": "0.10.0",
24
+ "react": "17.0.2",
25
+ "react-dom": "17.0.2",
26
+ "react-style-object-to-css": "1.1.2"
27
+ },
28
+ "devDependencies": {
29
+ "@webiny/cli": "0.0.0-unstable.085ff6572f",
30
+ "@webiny/project-utils": "0.0.0-unstable.085ff6572f"
31
+ },
32
+ "publishConfig": {
33
+ "access": "public",
34
+ "directory": "dist"
35
+ },
36
+ "scripts": {
37
+ "build": "yarn webiny run build",
38
+ "watch": "yarn webiny run watch"
39
+ },
40
+ "gitHead": "085ff6572f6bb6a76d218088b06d9f4ef92bbea7"
41
+ }
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ *
7
+ */
8
+ /// <reference types="react" />
9
+ /// <reference types="react" />
10
+ /// <reference types="web" />
11
+ export declare const LexicalAutoLinkPlugin: () => JSX.Element;