@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,441 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.$createListItemNode = $createListItemNode;
8
+ exports.$isListItemNode = $isListItemNode;
9
+ exports.ListItemNode = void 0;
10
+ var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
11
+ var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
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 _lexical = require("lexical");
21
+ var _ListNode = require("./ListNode");
22
+ var _utils = require("@lexical/utils");
23
+ var _formatList = require("./ListNode/formatList");
24
+ var _ParagraphNode = require("./ParagraphNode");
25
+ /** @noInheritDoc */
26
+ var ListItemNode = /*#__PURE__*/function (_ElementNode) {
27
+ (0, _inherits2.default)(ListItemNode, _ElementNode);
28
+ var _super = (0, _createSuper2.default)(ListItemNode);
29
+ function ListItemNode(value, checked, key) {
30
+ var _this;
31
+ (0, _classCallCheck2.default)(this, ListItemNode);
32
+ _this = _super.call(this, key);
33
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "__value", void 0);
34
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "__checked", void 0);
35
+ _this.__value = value === undefined ? 1 : value;
36
+ _this.__checked = checked;
37
+ return _this;
38
+ }
39
+ (0, _createClass2.default)(ListItemNode, [{
40
+ key: "createDOM",
41
+ value: function createDOM(config) {
42
+ var element = document.createElement("li");
43
+ var parent = this.getParent();
44
+ if ((0, _ListNode.$isListNode)(parent)) {
45
+ (0, _formatList.updateChildrenListItemValue)(parent);
46
+ updateListItemChecked(element, this, null, parent);
47
+ }
48
+ element.value = this.__value;
49
+ $setListItemThemeClassNames(element, config.theme, this);
50
+ return element;
51
+ }
52
+ }, {
53
+ key: "updateDOM",
54
+ value: function updateDOM(prevNode, dom, config) {
55
+ var parent = this.getParent();
56
+ if ((0, _ListNode.$isListNode)(parent)) {
57
+ (0, _formatList.updateChildrenListItemValue)(parent);
58
+ updateListItemChecked(dom, this, prevNode, parent);
59
+ }
60
+ // @ts-expect-error - this is always HTMLListItemElement
61
+ dom.value = this.__value;
62
+ $setListItemThemeClassNames(dom, config.theme, this);
63
+ return false;
64
+ }
65
+ }, {
66
+ key: "exportJSON",
67
+ value: function exportJSON() {
68
+ return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, (0, _get2.default)((0, _getPrototypeOf2.default)(ListItemNode.prototype), "exportJSON", this).call(this)), {}, {
69
+ checked: this.getChecked(),
70
+ type: "webiny-listitem",
71
+ value: this.getValue(),
72
+ version: 1
73
+ });
74
+ }
75
+ }, {
76
+ key: "append",
77
+ value: function append() {
78
+ for (var i = 0; i < arguments.length; i++) {
79
+ var node = i < 0 || arguments.length <= i ? undefined : arguments[i];
80
+ if ((0, _lexical.$isElementNode)(node) && this.canMergeWith(node)) {
81
+ var children = node.getChildren();
82
+ this.append.apply(this, (0, _toConsumableArray2.default)(children));
83
+ node.remove();
84
+ } else {
85
+ (0, _get2.default)((0, _getPrototypeOf2.default)(ListItemNode.prototype), "append", this).call(this, node);
86
+ }
87
+ }
88
+ return this;
89
+ }
90
+ }, {
91
+ key: "replace",
92
+ value: function replace(replaceWithNode) {
93
+ if ($isListItemNode(replaceWithNode)) {
94
+ return (0, _get2.default)((0, _getPrototypeOf2.default)(ListItemNode.prototype), "replace", this).call(this, replaceWithNode);
95
+ }
96
+ var list = this.getParentOrThrow();
97
+ if ((0, _ListNode.$isListNode)(list)) {
98
+ var childrenKeys = list.__children;
99
+ var childrenLength = childrenKeys.length;
100
+ var index = childrenKeys.indexOf(this.__key);
101
+ if (index === 0) {
102
+ list.insertBefore(replaceWithNode);
103
+ } else if (index === childrenLength - 1) {
104
+ list.insertAfter(replaceWithNode);
105
+ } else {
106
+ // Split the list
107
+ var newList = (0, _ListNode.$createListNode)(list.getListType(), list.getStyleId());
108
+ var children = list.getChildren();
109
+ for (var i = index + 1; i < childrenLength; i++) {
110
+ var child = children[i];
111
+ newList.append(child);
112
+ }
113
+ list.insertAfter(replaceWithNode);
114
+ replaceWithNode.insertAfter(newList);
115
+ }
116
+ this.remove();
117
+ if (childrenLength === 1) {
118
+ list.remove();
119
+ }
120
+ }
121
+ return replaceWithNode;
122
+ }
123
+ }, {
124
+ key: "insertAfter",
125
+ value: function insertAfter(node) {
126
+ var listNode = this.getParentOrThrow();
127
+ if (!(0, _ListNode.$isListNode)(listNode)) {
128
+ console.log("insertAfter: webiny list node is not parent of list item node");
129
+ return listNode;
130
+ }
131
+ var siblings = this.getNextSiblings();
132
+ if ($isListItemNode(node)) {
133
+ var after = (0, _get2.default)((0, _getPrototypeOf2.default)(ListItemNode.prototype), "insertAfter", this).call(this, node);
134
+ var afterListNode = node.getParentOrThrow();
135
+ if ((0, _ListNode.$isListNode)(afterListNode)) {
136
+ afterListNode;
137
+ }
138
+ return after;
139
+ }
140
+
141
+ // Attempt to merge if the list is of the same type.
142
+
143
+ if ((0, _ListNode.$isListNode)(node) && node.getListType() === listNode.getListType()) {
144
+ var child = node;
145
+ var children = node.getChildren();
146
+ for (var i = children.length - 1; i >= 0; i--) {
147
+ child = children[i];
148
+ this.insertAfter(child);
149
+ }
150
+ return child;
151
+ }
152
+
153
+ // Otherwise, split the list
154
+ // Split the lists and insert the node in between them
155
+ listNode.insertAfter(node);
156
+ if (siblings.length !== 0) {
157
+ var newListNode = (0, _ListNode.$createListNode)(listNode.getListType());
158
+ siblings.forEach(function (sibling) {
159
+ return newListNode.append(sibling);
160
+ });
161
+ node.insertAfter(newListNode);
162
+ }
163
+ return node;
164
+ }
165
+ }, {
166
+ key: "remove",
167
+ value: function remove(preserveEmptyParent) {
168
+ var nextSibling = this.getNextSibling();
169
+ (0, _get2.default)((0, _getPrototypeOf2.default)(ListItemNode.prototype), "remove", this).call(this, preserveEmptyParent);
170
+ if (nextSibling !== null) {
171
+ var parent = nextSibling.getParent();
172
+ if ((0, _ListNode.$isListNode)(parent)) {
173
+ (0, _formatList.updateChildrenListItemValue)(parent);
174
+ }
175
+ }
176
+ }
177
+ }, {
178
+ key: "insertNewAfter",
179
+ value: function insertNewAfter() {
180
+ var newElement = $createListItemNode(this.__checked == null ? undefined : false);
181
+ this.insertAfter(newElement);
182
+ return newElement;
183
+ }
184
+ }, {
185
+ key: "collapseAtStart",
186
+ value: function collapseAtStart(selection) {
187
+ var paragraph = (0, _ParagraphNode.$createParagraphNode)();
188
+ var children = this.getChildren();
189
+ children.forEach(function (child) {
190
+ return paragraph.append(child);
191
+ });
192
+ var listNode = this.getParentOrThrow();
193
+ var listNodeParent = listNode.getParentOrThrow();
194
+ var isIndented = $isListItemNode(listNodeParent);
195
+ if (listNode.getChildrenSize() === 1) {
196
+ if (isIndented) {
197
+ // if the list node is nested, we just want to remove it,
198
+ // effectively unindenting it.
199
+ listNode.remove();
200
+ listNodeParent.select();
201
+ } else {
202
+ listNode.replace(paragraph);
203
+ // If we have selection on the list item, we'll need to move it
204
+ // to the paragraph
205
+ var anchor = selection.anchor;
206
+ var focus = selection.focus;
207
+ var key = paragraph.getKey();
208
+ if (anchor.type === "element" && anchor.getNode().is(this)) {
209
+ anchor.set(key, anchor.offset, "element");
210
+ }
211
+ if (focus.type === "element" && focus.getNode().is(this)) {
212
+ focus.set(key, focus.offset, "element");
213
+ }
214
+ }
215
+ } else {
216
+ listNode.insertBefore(paragraph);
217
+ this.remove();
218
+ }
219
+ return true;
220
+ }
221
+ }, {
222
+ key: "getValue",
223
+ value: function getValue() {
224
+ var self = this.getLatest();
225
+ return self.__value;
226
+ }
227
+ }, {
228
+ key: "setValue",
229
+ value: function setValue(value) {
230
+ var self = this.getWritable();
231
+ self.__value = value;
232
+ }
233
+ }, {
234
+ key: "getChecked",
235
+ value: function getChecked() {
236
+ var self = this.getLatest();
237
+ return self.__checked;
238
+ }
239
+ }, {
240
+ key: "setChecked",
241
+ value: function setChecked(checked) {
242
+ var self = this.getWritable();
243
+ self.__checked = checked;
244
+ }
245
+ }, {
246
+ key: "toggleChecked",
247
+ value: function toggleChecked() {
248
+ this.setChecked(!this.__checked);
249
+ }
250
+ }, {
251
+ key: "getIndent",
252
+ value: function getIndent() {
253
+ // If we don't have a parent, we are likely serializing
254
+ var parent = this.getParent();
255
+ if (parent === null) {
256
+ return this.getLatest().__indent;
257
+ }
258
+ // ListItemNode should always have a ListNode for a parent.
259
+ var listNodeParent = parent.getParentOrThrow();
260
+ var indentLevel = 0;
261
+ while ($isListItemNode(listNodeParent)) {
262
+ listNodeParent = listNodeParent.getParentOrThrow().getParentOrThrow();
263
+ indentLevel++;
264
+ }
265
+ return indentLevel;
266
+ }
267
+ }, {
268
+ key: "setIndent",
269
+ value: function setIndent(indent) {
270
+ var currentIndent = this.getIndent();
271
+ while (currentIndent !== indent) {
272
+ if (currentIndent < indent) {
273
+ (0, _formatList.$handleIndent)([this]);
274
+ currentIndent++;
275
+ } else {
276
+ (0, _formatList.$handleOutdent)([this]);
277
+ currentIndent--;
278
+ }
279
+ }
280
+ return this;
281
+ }
282
+ }, {
283
+ key: "canIndent",
284
+ value: function canIndent() {
285
+ // Indent/outdent is handled specifically in the RichText logic.
286
+
287
+ return false;
288
+ }
289
+ }, {
290
+ key: "insertBefore",
291
+ value: function insertBefore(nodeToInsert) {
292
+ if ($isListItemNode(nodeToInsert)) {
293
+ var parent = this.getParentOrThrow();
294
+ if ((0, _ListNode.$isListNode)(parent)) {
295
+ var siblings = this.getNextSiblings();
296
+ (0, _formatList.updateChildrenListItemValue)(parent, siblings);
297
+ }
298
+ }
299
+ return (0, _get2.default)((0, _getPrototypeOf2.default)(ListItemNode.prototype), "insertBefore", this).call(this, nodeToInsert);
300
+ }
301
+ }, {
302
+ key: "canInsertAfter",
303
+ value: function canInsertAfter(node) {
304
+ return (0, _ListNode.$isListNode)(node);
305
+ }
306
+ }, {
307
+ key: "canReplaceWith",
308
+ value: function canReplaceWith(replacement) {
309
+ return $isListItemNode(replacement);
310
+ }
311
+ }, {
312
+ key: "canMergeWith",
313
+ value: function canMergeWith(node) {
314
+ return (0, _ParagraphNode.$isParagraphNode)(node) || $isListItemNode(node);
315
+ }
316
+ }, {
317
+ key: "extractWithChild",
318
+ value: function extractWithChild(child, selection) {
319
+ if (!(0, _lexical.$isRangeSelection)(selection)) {
320
+ return false;
321
+ }
322
+ var anchorNode = selection.anchor.getNode();
323
+ var focusNode = selection.focus.getNode();
324
+ return this.isParentOf(anchorNode) && this.isParentOf(focusNode) && this.getTextContent().length === selection.getTextContent().length;
325
+ }
326
+ }], [{
327
+ key: "getType",
328
+ value: /** @internal */
329
+
330
+ /** @internal */
331
+
332
+ function getType() {
333
+ return "webiny-listitem";
334
+ }
335
+ }, {
336
+ key: "clone",
337
+ value: function clone(node) {
338
+ return new ListItemNode(node.__value, node.__checked, node.__key);
339
+ }
340
+ }, {
341
+ key: "importDOM",
342
+ value: function importDOM() {
343
+ return {
344
+ li: function li() {
345
+ return {
346
+ conversion: convertListItemElement,
347
+ priority: 0
348
+ };
349
+ }
350
+ };
351
+ }
352
+ }, {
353
+ key: "importJSON",
354
+ value: function importJSON(serializedNode) {
355
+ var node = new ListItemNode(serializedNode.value, serializedNode.checked);
356
+ node.setFormat(serializedNode.format);
357
+ node.setIndent(serializedNode.indent);
358
+ node.setDirection(serializedNode.direction);
359
+ return node;
360
+ }
361
+ }]);
362
+ return ListItemNode;
363
+ }(_lexical.ElementNode);
364
+ exports.ListItemNode = ListItemNode;
365
+ function $setListItemThemeClassNames(dom, editorThemeClasses, node) {
366
+ var classesToAdd = [];
367
+ var classesToRemove = [];
368
+ var listTheme = editorThemeClasses.list;
369
+ var listItemClassName = listTheme ? listTheme.listitem : undefined;
370
+ var nestedListItemClassName;
371
+ if (listTheme && listTheme.nested) {
372
+ nestedListItemClassName = listTheme.nested.listitem;
373
+ }
374
+ if (listItemClassName !== undefined) {
375
+ var listItemClasses = listItemClassName.split(" ");
376
+ classesToAdd.push.apply(classesToAdd, (0, _toConsumableArray2.default)(listItemClasses));
377
+ }
378
+ if (listTheme) {
379
+ var parentNode = node.getParent();
380
+ var isCheckList = (0, _ListNode.$isListNode)(parentNode) && (parentNode === null || parentNode === void 0 ? void 0 : parentNode.getListType()) === "check";
381
+ var checked = node.getChecked();
382
+ if (!isCheckList || checked) {
383
+ classesToRemove.push(listTheme.listitemUnchecked);
384
+ }
385
+ if (!isCheckList || !checked) {
386
+ classesToRemove.push(listTheme.listitemChecked);
387
+ }
388
+ if (isCheckList) {
389
+ classesToAdd.push(checked ? listTheme.listitemChecked : listTheme.listitemUnchecked);
390
+ }
391
+ }
392
+ if (nestedListItemClassName !== undefined) {
393
+ var nestedListItemClasses = nestedListItemClassName.split(" ");
394
+ if (node.getChildren().some(function (child) {
395
+ return (0, _ListNode.$isListNode)(child);
396
+ })) {
397
+ classesToAdd.push.apply(classesToAdd, (0, _toConsumableArray2.default)(nestedListItemClasses));
398
+ } else {
399
+ classesToRemove.push.apply(classesToRemove, (0, _toConsumableArray2.default)(nestedListItemClasses));
400
+ }
401
+ }
402
+ if (classesToRemove.length > 0) {
403
+ _utils.removeClassNamesFromElement.apply(void 0, [dom].concat(classesToRemove));
404
+ }
405
+ if (classesToAdd.length > 0) {
406
+ _utils.addClassNamesToElement.apply(void 0, [dom].concat(classesToAdd));
407
+ }
408
+ }
409
+ function updateListItemChecked(dom, listItemNode, prevListItemNode, listNode) {
410
+ var isCheckList = listNode.getListType() === "check";
411
+ if (isCheckList) {
412
+ // Only add attributes for leaf list items
413
+ if ((0, _ListNode.$isListNode)(listItemNode.getFirstChild())) {
414
+ dom.removeAttribute("role");
415
+ dom.removeAttribute("tabIndex");
416
+ dom.removeAttribute("aria-checked");
417
+ } else {
418
+ dom.setAttribute("role", "checkbox");
419
+ dom.setAttribute("tabIndex", "-1");
420
+ if (!prevListItemNode || listItemNode.__checked !== prevListItemNode.__checked) {
421
+ dom.setAttribute("aria-checked", listItemNode.getChecked() ? "true" : "false");
422
+ }
423
+ }
424
+ } else {
425
+ // Clean up checked state
426
+ if (listItemNode.getChecked() != null) {
427
+ listItemNode.setChecked(undefined);
428
+ }
429
+ }
430
+ }
431
+ function convertListItemElement() {
432
+ return {
433
+ node: $createListItemNode()
434
+ };
435
+ }
436
+ function $createListItemNode(checked) {
437
+ return new ListItemNode(undefined, checked);
438
+ }
439
+ function $isListItemNode(node) {
440
+ return node instanceof ListItemNode;
441
+ }
@@ -0,0 +1 @@
1
+ {"version":3,"names":["ListItemNode","value","checked","key","__value","undefined","__checked","config","element","document","createElement","parent","getParent","$isListNode","updateChildrenListItemValue","updateListItemChecked","$setListItemThemeClassNames","theme","prevNode","dom","getChecked","type","getValue","version","i","length","node","$isElementNode","canMergeWith","children","getChildren","append","remove","replaceWithNode","$isListItemNode","list","getParentOrThrow","childrenKeys","__children","childrenLength","index","indexOf","__key","insertBefore","insertAfter","newList","$createListNode","getListType","getStyleId","child","listNode","console","log","siblings","getNextSiblings","after","afterListNode","newListNode","forEach","sibling","preserveEmptyParent","nextSibling","getNextSibling","newElement","$createListItemNode","selection","paragraph","$createParagraphNode","listNodeParent","isIndented","getChildrenSize","select","replace","anchor","focus","getKey","getNode","is","set","offset","self","getLatest","getWritable","setChecked","__indent","indentLevel","indent","currentIndent","getIndent","$handleIndent","$handleOutdent","nodeToInsert","replacement","$isParagraphNode","$isRangeSelection","anchorNode","focusNode","isParentOf","getTextContent","li","conversion","convertListItemElement","priority","serializedNode","setFormat","format","setIndent","setDirection","direction","ElementNode","editorThemeClasses","classesToAdd","classesToRemove","listTheme","listItemClassName","listitem","nestedListItemClassName","nested","listItemClasses","split","push","parentNode","isCheckList","listitemUnchecked","listitemChecked","nestedListItemClasses","some","removeClassNamesFromElement","addClassNamesToElement","listItemNode","prevListItemNode","getFirstChild","removeAttribute","setAttribute"],"sources":["ListItemNode.ts"],"sourcesContent":["import {\n $isElementNode,\n $isRangeSelection,\n DOMConversionMap,\n DOMConversionOutput,\n EditorConfig,\n EditorThemeClasses,\n ElementNode,\n GridSelection,\n LexicalNode,\n NodeKey,\n NodeSelection,\n ParagraphNode,\n RangeSelection,\n SerializedElementNode\n} from \"lexical\";\nimport { Spread } from \"lexical\";\nimport { $createListNode, $isListNode, ListNode } from \"~/nodes/ListNode\";\nimport { addClassNamesToElement, removeClassNamesFromElement } from \"@lexical/utils\";\nimport {\n $handleIndent,\n $handleOutdent,\n updateChildrenListItemValue\n} from \"~/nodes/ListNode/formatList\";\nimport { $createParagraphNode, $isParagraphNode } from \"~/nodes/ParagraphNode\";\n\nexport type SerializedWebinyListItemNode = Spread<\n {\n checked: boolean | undefined;\n type: \"webiny-listitem\";\n value: number;\n version: 1;\n },\n SerializedElementNode\n>;\n\n/** @noInheritDoc */\nexport class ListItemNode extends ElementNode {\n /** @internal */\n __value: number;\n /** @internal */\n __checked?: boolean;\n\n static override getType(): string {\n return \"webiny-listitem\";\n }\n\n static override clone(node: ListItemNode): ListItemNode {\n return new ListItemNode(node.__value, node.__checked, node.__key);\n }\n\n constructor(value?: number, checked?: boolean, key?: NodeKey) {\n super(key);\n this.__value = value === undefined ? 1 : value;\n this.__checked = checked;\n }\n\n override createDOM(config: EditorConfig): HTMLElement {\n const element = document.createElement(\"li\");\n const parent = this.getParent();\n\n if ($isListNode(parent)) {\n updateChildrenListItemValue(parent);\n updateListItemChecked(element, this, null, parent);\n }\n element.value = this.__value;\n $setListItemThemeClassNames(element, config.theme, this);\n\n return element;\n }\n\n override updateDOM(prevNode: ListItemNode, dom: HTMLElement, config: EditorConfig): boolean {\n const parent = this.getParent();\n\n if ($isListNode(parent)) {\n updateChildrenListItemValue(parent);\n updateListItemChecked(dom, this, prevNode, parent);\n }\n // @ts-expect-error - this is always HTMLListItemElement\n dom.value = this.__value;\n\n $setListItemThemeClassNames(dom, config.theme, this);\n\n return false;\n }\n\n static importDOM(): DOMConversionMap | null {\n return {\n li: () => ({\n conversion: convertListItemElement,\n priority: 0\n })\n };\n }\n\n static override importJSON(serializedNode: SerializedWebinyListItemNode): ListItemNode {\n const node = new ListItemNode(serializedNode.value, serializedNode.checked);\n node.setFormat(serializedNode.format);\n node.setIndent(serializedNode.indent);\n node.setDirection(serializedNode.direction);\n return node;\n }\n\n override exportJSON(): SerializedWebinyListItemNode {\n return {\n ...super.exportJSON(),\n checked: this.getChecked(),\n type: \"webiny-listitem\",\n value: this.getValue(),\n version: 1\n };\n }\n\n override append(...nodes: LexicalNode[]): this {\n for (let i = 0; i < nodes.length; i++) {\n const node = nodes[i];\n\n if ($isElementNode(node) && this.canMergeWith(node)) {\n const children = node.getChildren();\n this.append(...children);\n node.remove();\n } else {\n super.append(node);\n }\n }\n\n return this;\n }\n\n override replace<N extends LexicalNode>(replaceWithNode: N): N {\n if ($isListItemNode(replaceWithNode)) {\n return super.replace(replaceWithNode);\n }\n\n const list = this.getParentOrThrow();\n\n if ($isListNode(list)) {\n const childrenKeys = list.__children;\n const childrenLength = childrenKeys.length;\n const index = childrenKeys.indexOf(this.__key);\n\n if (index === 0) {\n list.insertBefore(replaceWithNode);\n } else if (index === childrenLength - 1) {\n list.insertAfter(replaceWithNode);\n } else {\n // Split the list\n const newList = $createListNode(list.getListType(), list.getStyleId());\n const children = list.getChildren();\n\n for (let i = index + 1; i < childrenLength; i++) {\n const child = children[i];\n newList.append(child);\n }\n list.insertAfter(replaceWithNode);\n replaceWithNode.insertAfter(newList);\n }\n this.remove();\n\n if (childrenLength === 1) {\n list.remove();\n }\n }\n\n return replaceWithNode;\n }\n\n override insertAfter(node: LexicalNode): LexicalNode {\n const listNode = this.getParentOrThrow();\n\n if (!$isListNode(listNode)) {\n console.log(\"insertAfter: webiny list node is not parent of list item node\");\n return listNode;\n }\n\n const siblings = this.getNextSiblings();\n\n if ($isListItemNode(node)) {\n const after = super.insertAfter(node);\n const afterListNode = node.getParentOrThrow();\n\n if ($isListNode(afterListNode)) {\n afterListNode;\n }\n\n return after;\n }\n\n // Attempt to merge if the list is of the same type.\n\n if ($isListNode(node) && node.getListType() === listNode.getListType()) {\n let child = node;\n const children = node.getChildren<ListNode>();\n\n for (let i = children.length - 1; i >= 0; i--) {\n child = children[i];\n\n this.insertAfter(child);\n }\n\n return child;\n }\n\n // Otherwise, split the list\n // Split the lists and insert the node in between them\n listNode.insertAfter(node);\n\n if (siblings.length !== 0) {\n const newListNode = $createListNode(listNode.getListType());\n\n siblings.forEach(sibling => newListNode.append(sibling));\n\n node.insertAfter(newListNode);\n }\n\n return node;\n }\n\n override remove(preserveEmptyParent?: boolean): void {\n const nextSibling = this.getNextSibling();\n super.remove(preserveEmptyParent);\n\n if (nextSibling !== null) {\n const parent = nextSibling.getParent();\n\n if ($isListNode(parent)) {\n updateChildrenListItemValue(parent);\n }\n }\n }\n\n override insertNewAfter(): ListItemNode | ParagraphNode {\n const newElement = $createListItemNode(this.__checked == null ? undefined : false);\n this.insertAfter(newElement);\n\n return newElement;\n }\n\n override collapseAtStart(selection: RangeSelection): true {\n const paragraph = $createParagraphNode();\n const children = this.getChildren();\n children.forEach(child => paragraph.append(child));\n const listNode = this.getParentOrThrow();\n const listNodeParent = listNode.getParentOrThrow();\n const isIndented = $isListItemNode(listNodeParent);\n\n if (listNode.getChildrenSize() === 1) {\n if (isIndented) {\n // if the list node is nested, we just want to remove it,\n // effectively unindenting it.\n listNode.remove();\n listNodeParent.select();\n } else {\n listNode.replace(paragraph);\n // If we have selection on the list item, we'll need to move it\n // to the paragraph\n const anchor = selection.anchor;\n const focus = selection.focus;\n const key = paragraph.getKey();\n\n if (anchor.type === \"element\" && anchor.getNode().is(this)) {\n anchor.set(key, anchor.offset, \"element\");\n }\n\n if (focus.type === \"element\" && focus.getNode().is(this)) {\n focus.set(key, focus.offset, \"element\");\n }\n }\n } else {\n listNode.insertBefore(paragraph);\n this.remove();\n }\n\n return true;\n }\n\n getValue(): number {\n const self = this.getLatest();\n\n return self.__value;\n }\n\n setValue(value: number): void {\n const self = this.getWritable();\n self.__value = value;\n }\n\n getChecked(): boolean | undefined {\n const self = this.getLatest();\n\n return self.__checked;\n }\n\n setChecked(checked?: boolean): void {\n const self = this.getWritable();\n self.__checked = checked;\n }\n\n toggleChecked(): void {\n this.setChecked(!this.__checked);\n }\n\n override getIndent(): number {\n // If we don't have a parent, we are likely serializing\n const parent = this.getParent();\n if (parent === null) {\n return this.getLatest().__indent;\n }\n // ListItemNode should always have a ListNode for a parent.\n let listNodeParent = parent.getParentOrThrow();\n let indentLevel = 0;\n while ($isListItemNode(listNodeParent)) {\n listNodeParent = listNodeParent.getParentOrThrow().getParentOrThrow();\n indentLevel++;\n }\n\n return indentLevel;\n }\n\n override setIndent(indent: number): this {\n let currentIndent = this.getIndent();\n while (currentIndent !== indent) {\n if (currentIndent < indent) {\n $handleIndent([this]);\n currentIndent++;\n } else {\n $handleOutdent([this]);\n currentIndent--;\n }\n }\n\n return this;\n }\n\n override canIndent(): false {\n // Indent/outdent is handled specifically in the RichText logic.\n\n return false;\n }\n\n override insertBefore(nodeToInsert: LexicalNode): LexicalNode {\n if ($isListItemNode(nodeToInsert)) {\n const parent = this.getParentOrThrow();\n\n if ($isListNode(parent)) {\n const siblings = this.getNextSiblings();\n updateChildrenListItemValue(parent, siblings);\n }\n }\n\n return super.insertBefore(nodeToInsert);\n }\n\n override canInsertAfter(node: LexicalNode): boolean {\n return $isListNode(node);\n }\n\n override canReplaceWith(replacement: LexicalNode): boolean {\n return $isListItemNode(replacement);\n }\n\n override canMergeWith(node: LexicalNode): boolean {\n return $isParagraphNode(node) || $isListItemNode(node);\n }\n\n override extractWithChild(\n child: LexicalNode,\n selection: RangeSelection | NodeSelection | GridSelection\n ): boolean {\n if (!$isRangeSelection(selection)) {\n return false;\n }\n\n const anchorNode = selection.anchor.getNode();\n const focusNode = selection.focus.getNode();\n\n return (\n this.isParentOf(anchorNode) &&\n this.isParentOf(focusNode) &&\n this.getTextContent().length === selection.getTextContent().length\n );\n }\n}\n\nfunction $setListItemThemeClassNames(\n dom: HTMLElement,\n editorThemeClasses: EditorThemeClasses,\n node: ListItemNode\n): void {\n const classesToAdd = [];\n const classesToRemove = [];\n const listTheme = editorThemeClasses.list;\n const listItemClassName = listTheme ? listTheme.listitem : undefined;\n let nestedListItemClassName;\n\n if (listTheme && listTheme.nested) {\n nestedListItemClassName = listTheme.nested.listitem;\n }\n\n if (listItemClassName !== undefined) {\n const listItemClasses = listItemClassName.split(\" \");\n classesToAdd.push(...listItemClasses);\n }\n\n if (listTheme) {\n const parentNode = node.getParent();\n const isCheckList = $isListNode(parentNode) && parentNode?.getListType() === \"check\";\n const checked = node.getChecked();\n\n if (!isCheckList || checked) {\n classesToRemove.push(listTheme.listitemUnchecked);\n }\n\n if (!isCheckList || !checked) {\n classesToRemove.push(listTheme.listitemChecked);\n }\n\n if (isCheckList) {\n classesToAdd.push(checked ? listTheme.listitemChecked : listTheme.listitemUnchecked);\n }\n }\n\n if (nestedListItemClassName !== undefined) {\n const nestedListItemClasses = nestedListItemClassName.split(\" \");\n\n if (node.getChildren().some(child => $isListNode(child))) {\n classesToAdd.push(...nestedListItemClasses);\n } else {\n classesToRemove.push(...nestedListItemClasses);\n }\n }\n\n if (classesToRemove.length > 0) {\n removeClassNamesFromElement(dom, ...classesToRemove);\n }\n\n if (classesToAdd.length > 0) {\n addClassNamesToElement(dom, ...classesToAdd);\n }\n}\n\nfunction updateListItemChecked(\n dom: HTMLElement,\n listItemNode: ListItemNode,\n prevListItemNode: ListItemNode | null,\n listNode: ListNode\n): void {\n const isCheckList = listNode.getListType() === \"check\";\n\n if (isCheckList) {\n // Only add attributes for leaf list items\n if ($isListNode(listItemNode.getFirstChild())) {\n dom.removeAttribute(\"role\");\n dom.removeAttribute(\"tabIndex\");\n dom.removeAttribute(\"aria-checked\");\n } else {\n dom.setAttribute(\"role\", \"checkbox\");\n dom.setAttribute(\"tabIndex\", \"-1\");\n\n if (!prevListItemNode || listItemNode.__checked !== prevListItemNode.__checked) {\n dom.setAttribute(\"aria-checked\", listItemNode.getChecked() ? \"true\" : \"false\");\n }\n }\n } else {\n // Clean up checked state\n if (listItemNode.getChecked() != null) {\n listItemNode.setChecked(undefined);\n }\n }\n}\n\nfunction convertListItemElement(): DOMConversionOutput {\n return { node: $createListItemNode() };\n}\n\nexport function $createListItemNode(checked?: boolean): ListItemNode {\n return new ListItemNode(undefined, checked);\n}\n\nexport function $isListItemNode(node: LexicalNode | null | undefined): node is ListItemNode {\n return node instanceof ListItemNode;\n}\n"],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import { LexicalEditor, LexicalNode } from "lexical";
2
+ import { ListNode } from "../ListNode";
3
+ import { ListItemNode } from "../ListItemNode";
4
+ import { ListType } from "@lexical/list";
5
+ export declare function insertList(editor: LexicalEditor, listType: ListType, styleId?: string): void;
6
+ export declare function removeList(editor: LexicalEditor): void;
7
+ export declare function updateChildrenListItemValue(list: ListNode, children?: Array<LexicalNode>): void;
8
+ export declare function $handleIndent(WebinyListItemNodes: Array<ListItemNode>): void;
9
+ export declare function $handleOutdent(WebinyListItemNodes: Array<ListItemNode>): void;
10
+ export declare function indentList(): void;
11
+ export declare function outdentList(): void;
12
+ export declare function $handleListInsertParagraph(): boolean;