@webiny/lexical-editor 5.37.8 → 5.38.0-beta.0
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.
- package/commands/image.d.ts +6 -0
- package/commands/{insertFiles.js → image.js} +3 -1
- package/commands/image.js.map +1 -0
- package/commands/index.d.ts +3 -0
- package/commands/index.js +40 -0
- package/commands/index.js.map +1 -0
- package/commands/list.d.ts +7 -0
- package/commands/list.js +15 -0
- package/commands/list.js.map +1 -0
- package/commands/quote.d.ts +5 -0
- package/commands/quote.js +11 -0
- package/commands/quote.js.map +1 -0
- package/components/Editor/HeadingEditor.js +3 -1
- package/components/Editor/ParagraphEditor.js +3 -1
- package/components/Editor/RichTextEditor.d.ts +2 -2
- package/components/Editor/RichTextEditor.js +19 -12
- package/components/Editor/RichTextEditor.js.map +1 -1
- package/components/LexicalEditorConfig/LexicalEditorConfig.js +3 -1
- package/components/LexicalEditorConfig/components/Node.js +3 -1
- package/components/LexicalEditorConfig/components/Plugin.js +3 -1
- package/components/LexicalEditorConfig/components/ToolbarElement.js +3 -1
- package/components/LexicalHtmlRenderer.d.ts +2 -2
- package/components/LexicalHtmlRenderer.js +24 -17
- package/components/LexicalHtmlRenderer.js.map +1 -1
- package/components/Toolbar/StaticToolbar.d.ts +2 -2
- package/components/Toolbar/StaticToolbar.js +7 -78
- package/components/Toolbar/StaticToolbar.js.map +1 -1
- package/components/Toolbar/Toolbar.d.ts +1 -1
- package/components/Toolbar/Toolbar.js +27 -80
- package/components/Toolbar/Toolbar.js.map +1 -1
- package/components/ToolbarActions/BoldAction.js +10 -20
- package/components/ToolbarActions/BoldAction.js.map +1 -1
- package/components/ToolbarActions/BulletListAction.js +17 -23
- package/components/ToolbarActions/BulletListAction.js.map +1 -1
- package/components/ToolbarActions/CodeHighlightAction.js +10 -20
- package/components/ToolbarActions/CodeHighlightAction.js.map +1 -1
- package/components/ToolbarActions/FontColorAction.js +20 -37
- package/components/ToolbarActions/FontColorAction.js.map +1 -1
- package/components/ToolbarActions/FontSizeAction.js +11 -27
- package/components/ToolbarActions/FontSizeAction.js.map +1 -1
- package/components/ToolbarActions/ImageAction.js +6 -4
- package/components/ToolbarActions/ImageAction.js.map +1 -1
- package/components/ToolbarActions/ItalicAction.js +10 -20
- package/components/ToolbarActions/ItalicAction.js.map +1 -1
- package/components/ToolbarActions/LinkAction.js +18 -36
- package/components/ToolbarActions/LinkAction.js.map +1 -1
- package/components/ToolbarActions/NumberedListAction.js +18 -27
- package/components/ToolbarActions/NumberedListAction.js.map +1 -1
- package/components/ToolbarActions/QuoteAction.js +15 -24
- package/components/ToolbarActions/QuoteAction.js.map +1 -1
- package/components/ToolbarActions/TextAlignmentAction.js +27 -21
- package/components/ToolbarActions/TextAlignmentAction.js.map +1 -1
- package/components/ToolbarActions/TypographyAction.js +53 -60
- package/components/ToolbarActions/TypographyAction.js.map +1 -1
- package/components/ToolbarActions/UnderlineAction.js +11 -21
- package/components/ToolbarActions/UnderlineAction.js.map +1 -1
- package/context/FontColorActionContext.js +3 -1
- package/context/RichTextEditorContext.d.ts +2 -6
- package/context/RichTextEditorContext.js +20 -36
- package/context/RichTextEditorContext.js.map +1 -1
- package/context/SharedHistoryContext.js +3 -1
- package/context/TextAlignmentActionContextProps.js +3 -1
- package/context/TypographyActionContext.d.ts +1 -1
- package/context/TypographyActionContext.js +3 -1
- package/context/TypographyActionContext.js.map +1 -1
- package/hooks/index.d.ts +7 -0
- package/hooks/index.js +84 -0
- package/hooks/index.js.map +1 -0
- package/hooks/useCurrentElement.d.ts +7 -0
- package/hooks/useCurrentElement.js +33 -0
- package/hooks/useCurrentElement.js.map +1 -0
- package/hooks/useCurrentSelection.d.ts +12 -0
- package/hooks/useCurrentSelection.js +72 -0
- package/hooks/useCurrentSelection.js.map +1 -0
- package/hooks/useFontColorPicker.js +3 -1
- package/hooks/useIsMounted.d.ts +1 -0
- package/hooks/useIsMounted.js +20 -0
- package/hooks/useIsMounted.js.map +1 -0
- package/hooks/useList.js +22 -21
- package/hooks/useList.js.map +1 -1
- package/hooks/useQuote.d.ts +1 -1
- package/hooks/useQuote.js +9 -7
- package/hooks/useQuote.js.map +1 -1
- package/hooks/useRichTextEditor.js +3 -1
- package/hooks/useTextAlignmentAction.js +3 -1
- package/hooks/useTypographyAction.js +3 -1
- package/index.d.ts +4 -8
- package/index.js +71 -48
- package/index.js.map +1 -1
- package/package.json +16 -20
- package/plugins/BlurEventPlugin/BlurEventPlugin.js +3 -1
- package/plugins/CodeHighlightPlugin/CodeHighlightPlugin.js +3 -1
- package/plugins/CodeHighlightPlugin/index.js +3 -1
- package/plugins/FloatingLinkEditorPlugin/FloatingLinkEditorPlugin.js +11 -9
- package/plugins/FloatingLinkEditorPlugin/FloatingLinkEditorPlugin.js.map +1 -1
- package/plugins/FloatingLinkEditorPlugin/index.js +3 -1
- package/plugins/FontColorPlugin/FontColorPlugin.js +8 -7
- package/plugins/FontColorPlugin/FontColorPlugin.js.map +1 -1
- package/plugins/ImagesPlugin/ImagesPlugin.d.ts +1 -1
- package/plugins/ImagesPlugin/ImagesPlugin.js +11 -9
- package/plugins/ImagesPlugin/ImagesPlugin.js.map +1 -1
- package/plugins/LexicalUpdateStatePlugin/UpdateStatePlugin.d.ts +9 -0
- package/plugins/LexicalUpdateStatePlugin/{LexicalUpdateStatePlugin.js → UpdateStatePlugin.js} +22 -14
- package/plugins/LexicalUpdateStatePlugin/UpdateStatePlugin.js.map +1 -0
- package/plugins/LexicalUpdateStatePlugin/index.d.ts +1 -1
- package/plugins/LexicalUpdateStatePlugin/index.js +7 -5
- package/plugins/LexicalUpdateStatePlugin/index.js.map +1 -1
- package/plugins/LinkPlugin/LinkPlugin.d.ts +5 -0
- package/plugins/LinkPlugin/LinkPlugin.js +68 -0
- package/plugins/LinkPlugin/LinkPlugin.js.map +1 -0
- package/plugins/ListPLugin/ListPlugin.js +6 -5
- package/plugins/ListPLugin/ListPlugin.js.map +1 -1
- package/plugins/TypographyPlugin/TypographyPlugin.js +7 -7
- package/plugins/TypographyPlugin/TypographyPlugin.js.map +1 -1
- package/plugins/WebinyQuoteNodePlugin/WebinyQuoteNodePlugin.js +6 -4
- package/plugins/WebinyQuoteNodePlugin/WebinyQuoteNodePlugin.js.map +1 -1
- package/types.d.ts +1 -60
- package/types.js +5 -3
- package/types.js.map +1 -1
- package/ui/ContentEditable.js +3 -1
- package/ui/Divider.js +3 -1
- package/ui/DropDown.js +3 -1
- package/ui/ImageResizer.js +3 -1
- package/ui/LinkPreview.js +3 -1
- package/ui/Placeholder.js +3 -1
- package/ui/TextInput.js +3 -1
- package/ui/ToolbarActionDialog.js +3 -1
- package/utils/canUseDOM.js +3 -1
- package/utils/files.d.ts +1 -1
- package/utils/files.js +3 -1
- package/utils/files.js.map +1 -1
- package/utils/generateInitialLexicalValue.js +3 -1
- package/utils/getDOMRangeRect.js +3 -1
- package/utils/getSelectedNode.js +3 -1
- package/utils/getTransparentImage.js +3 -1
- package/utils/insertImage.d.ts +2 -0
- package/utils/{nodes/insertImage.js → insertImage.js} +6 -5
- package/utils/insertImage.js.map +1 -0
- package/utils/isHTMLElement.js +3 -1
- package/utils/isUrlLinkReference.js +3 -1
- package/utils/isValidJSON.js +3 -1
- package/utils/isValidLexicalData.js +3 -1
- package/utils/point.js +3 -1
- package/utils/rect.js +3 -1
- package/utils/sanitizeUrl.js +3 -1
- package/utils/setFloatingElemPosition.js +3 -1
- package/commands/insertFiles.d.ts +0 -14
- package/commands/insertFiles.js.map +0 -1
- package/commands/webiny-list.d.ts +0 -7
- package/commands/webiny-list.js +0 -13
- package/commands/webiny-list.js.map +0 -1
- package/commands/webiny-quote.d.ts +0 -5
- package/commands/webiny-quote.js +0 -9
- package/commands/webiny-quote.js.map +0 -1
- package/components/ImageComponent.d.ts +0 -23
- package/components/ImageComponent.js +0 -252
- package/components/ImageComponent.js.map +0 -1
- package/nodes/FontColorNode.d.ts +0 -43
- package/nodes/FontColorNode.js +0 -123
- package/nodes/FontColorNode.js.map +0 -1
- package/nodes/HeadingNode.d.ts +0 -34
- package/nodes/HeadingNode.js +0 -191
- package/nodes/HeadingNode.js.map +0 -1
- package/nodes/ImageNode.d.ts +0 -50
- package/nodes/ImageNode.js +0 -206
- package/nodes/ImageNode.js.map +0 -1
- package/nodes/ListItemNode.d.ts +0 -46
- package/nodes/ListItemNode.js +0 -447
- package/nodes/ListItemNode.js.map +0 -1
- package/nodes/ListNode/formatList.d.ts +0 -19
- package/nodes/ListNode/formatList.js +0 -447
- package/nodes/ListNode/formatList.js.map +0 -1
- package/nodes/ListNode.d.ts +0 -42
- package/nodes/ListNode.js +0 -288
- package/nodes/ListNode.js.map +0 -1
- package/nodes/ParagraphNode.d.ts +0 -32
- package/nodes/ParagraphNode.js +0 -218
- package/nodes/ParagraphNode.js.map +0 -1
- package/nodes/QuoteNode.d.ts +0 -34
- package/nodes/QuoteNode.js +0 -225
- package/nodes/QuoteNode.js.map +0 -1
- package/nodes/TypographyElementNode.d.ts +0 -42
- package/nodes/TypographyElementNode.js +0 -151
- package/nodes/TypographyElementNode.js.map +0 -1
- package/nodes/imageNode.css +0 -43
- package/nodes/link-node.d.ts +0 -19
- package/nodes/link-node.js +0 -120
- package/nodes/link-node.js.map +0 -1
- package/nodes/types.d.ts +0 -15
- package/nodes/types.js +0 -5
- package/nodes/types.js.map +0 -1
- package/nodes/webinyNodes.d.ts +0 -7
- package/nodes/webinyNodes.js +0 -60
- package/nodes/webinyNodes.js.map +0 -1
- package/plugins/LexicalUpdateStatePlugin/LexicalUpdateStatePlugin.d.ts +0 -8
- package/plugins/LexicalUpdateStatePlugin/LexicalUpdateStatePlugin.js.map +0 -1
- package/themes/webinyLexicalTheme.css +0 -423
- package/themes/webinyLexicalTheme.d.ts +0 -9
- package/themes/webinyLexicalTheme.js +0 -90
- package/themes/webinyLexicalTheme.js.map +0 -1
- package/utils/findTypographyStyleByHtmlTag.d.ts +0 -8
- package/utils/findTypographyStyleByHtmlTag.js +0 -16
- package/utils/findTypographyStyleByHtmlTag.js.map +0 -1
- package/utils/getLexicalTextSelectionState.d.ts +0 -5
- package/utils/getLexicalTextSelectionState.js +0 -167
- package/utils/getLexicalTextSelectionState.js.map +0 -1
- package/utils/nodes/clearNodeFormating.d.ts +0 -2
- package/utils/nodes/clearNodeFormating.js +0 -28
- package/utils/nodes/clearNodeFormating.js.map +0 -1
- package/utils/nodes/formatToHeading.d.ts +0 -3
- package/utils/nodes/formatToHeading.js +0 -25
- package/utils/nodes/formatToHeading.js.map +0 -1
- package/utils/nodes/formatToParagraph.d.ts +0 -2
- package/utils/nodes/formatToParagraph.js +0 -20
- package/utils/nodes/formatToParagraph.js.map +0 -1
- package/utils/nodes/formatToQuote.d.ts +0 -2
- package/utils/nodes/formatToQuote.js +0 -25
- package/utils/nodes/formatToQuote.js.map +0 -1
- package/utils/nodes/insertImage.d.ts +0 -2
- package/utils/nodes/insertImage.js.map +0 -1
- package/utils/nodes/listNode.d.ts +0 -11
- package/utils/nodes/listNode.js +0 -107
- package/utils/nodes/listNode.js.map +0 -1
- package/utils/styleObjectToString.d.ts +0 -2
- package/utils/styleObjectToString.js +0 -22
- package/utils/styleObjectToString.js.map +0 -1
- package/utils/toTypographyEmotionMap.d.ts +0 -3
- package/utils/toTypographyEmotionMap.js +0 -41
- package/utils/toTypographyEmotionMap.js.map +0 -1
package/nodes/ImageNode.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["_lexical","require","React","_interopRequireWildcard3","ImageComponent","lazy","Promise","resolve","then","_interopRequireWildcard2","default","ImageNode","_DecoratorNode","_inherits2","_super","_createSuper2","id","src","altText","maxWidth","width","height","showCaption","caption","captionsEnabled","key","_this","_classCallCheck2","call","__id","__src","__altText","__maxWidth","__width","__height","__showCaption","__caption","createEditor","__captionsEnabled","undefined","_createClass2","value","exportDOM","element","document","createElement","setAttribute","toString","exportJSON","getAltText","toJSON","getSrc","type","version","setWidthAndHeight","writable","getWritable","setShowCaption","createDOM","config","span","theme","className","image","updateDOM","decorate","Suspense","fallback","nodeKey","getKey","resizable","getType","clone","node","__key","importJSON","serializedNode","$createImageNode","nestedEditor","editorState","parseEditorState","isEmpty","setEditorState","importDOM","DecoratorNode","exports","_ref","_ref$maxWidth","$applyNodeReplacement","$isImageNode"],"sources":["ImageNode.tsx"],"sourcesContent":["/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\nimport type {\n DOMConversionMap,\n DOMExportOutput,\n EditorConfig,\n LexicalEditor,\n LexicalNode,\n NodeKey,\n SerializedEditor,\n SerializedLexicalNode,\n Spread\n} from \"lexical\";\n\nimport { $applyNodeReplacement, createEditor, DecoratorNode } from \"lexical\";\nimport * as React from \"react\";\nimport { Suspense } from \"react\";\nimport { ImagePayload } from \"~/commands/insertFiles\";\n\nconst ImageComponent = React.lazy(\n // @ts-ignore\n () => import(\"../components/ImageComponent\")\n);\n\nexport type SerializedImageNode = Spread<\n {\n id: string;\n altText: string;\n caption: SerializedEditor;\n height?: number;\n maxWidth: number;\n showCaption: boolean;\n src: string;\n width?: number;\n },\n SerializedLexicalNode\n>;\n\nexport class ImageNode extends DecoratorNode<JSX.Element> {\n __id: string;\n __src: string;\n __altText: string;\n __width: \"inherit\" | number;\n __height: \"inherit\" | number;\n __maxWidth: number;\n __showCaption: boolean;\n __caption: LexicalEditor;\n // Captions cannot yet be used within editor cells\n __captionsEnabled: boolean;\n\n static override getType(): string {\n return \"image\";\n }\n\n static override clone(node: ImageNode): ImageNode {\n return new ImageNode(\n node.__id,\n node.__src,\n node.__altText,\n node.__maxWidth,\n node.__width,\n node.__height,\n node.__showCaption,\n node.__caption,\n node.__captionsEnabled,\n node.__key\n );\n }\n\n static override importJSON(serializedNode: SerializedImageNode): ImageNode {\n const { id, altText, height, width, maxWidth, caption, src, showCaption } = serializedNode;\n const node = $createImageNode({\n id,\n altText,\n height,\n maxWidth,\n showCaption,\n src,\n width\n });\n const nestedEditor = node.__caption;\n const editorState = nestedEditor.parseEditorState(caption.editorState);\n if (!editorState.isEmpty()) {\n nestedEditor.setEditorState(editorState);\n }\n return node;\n }\n\n override exportDOM(): DOMExportOutput {\n const element = document.createElement(\"img\");\n element.setAttribute(\"id\", this.__id);\n element.setAttribute(\"src\", this.__src);\n element.setAttribute(\"alt\", this.__altText);\n element.setAttribute(\"width\", this.__width.toString());\n element.setAttribute(\"height\", this.__height.toString());\n return { element };\n }\n\n static importDOM(): DOMConversionMap | null {\n // prevent paste from clipboard\n return null;\n }\n\n constructor(\n id: string,\n src: string,\n altText: string,\n maxWidth: number,\n width?: \"inherit\" | number,\n height?: \"inherit\" | number,\n showCaption?: boolean,\n caption?: LexicalEditor,\n captionsEnabled?: boolean,\n key?: NodeKey\n ) {\n super(key);\n this.__id = id;\n this.__src = src;\n this.__altText = altText;\n this.__maxWidth = maxWidth;\n this.__width = width || \"inherit\";\n this.__height = height || \"inherit\";\n this.__showCaption = showCaption || false;\n this.__caption = caption || createEditor();\n this.__captionsEnabled = captionsEnabled || captionsEnabled === undefined;\n }\n\n override exportJSON(): SerializedImageNode {\n return {\n id: this.__id,\n altText: this.getAltText(),\n caption: this.__caption.toJSON(),\n height: this.__height === \"inherit\" ? 0 : this.__height,\n maxWidth: this.__maxWidth,\n showCaption: this.__showCaption,\n src: this.getSrc(),\n type: \"image\",\n version: 1,\n width: this.__width === \"inherit\" ? 0 : this.__width\n };\n }\n\n setWidthAndHeight(width: \"inherit\" | number, height: \"inherit\" | number): void {\n const writable = this.getWritable();\n writable.__width = width;\n writable.__height = height;\n }\n\n setShowCaption(showCaption: boolean): void {\n const writable = this.getWritable();\n writable.__showCaption = showCaption;\n }\n\n // View\n\n override createDOM(config: EditorConfig): HTMLElement {\n const span = document.createElement(\"span\");\n const theme = config.theme;\n const className = theme.image;\n if (className !== undefined) {\n span.className = className;\n }\n return span;\n }\n\n override updateDOM(): false {\n return false;\n }\n\n getSrc(): string {\n return this.__src;\n }\n\n getAltText(): string {\n return this.__altText;\n }\n\n override decorate(): JSX.Element {\n return (\n <Suspense fallback={null}>\n <ImageComponent\n id={this.__id}\n src={this.__src}\n altText={this.__altText}\n width={this.__width}\n height={this.__height}\n maxWidth={this.__maxWidth}\n nodeKey={this.getKey()}\n showCaption={this.__showCaption}\n caption={this.__caption}\n captionsEnabled={this.__captionsEnabled}\n resizable={true}\n />\n </Suspense>\n );\n }\n}\n\nexport function $createImageNode({\n id,\n altText,\n height,\n maxWidth = 500,\n captionsEnabled,\n src,\n width,\n showCaption,\n caption,\n key\n}: ImagePayload): ImageNode {\n return $applyNodeReplacement(\n new ImageNode(\n id,\n src,\n altText,\n maxWidth,\n width,\n height,\n showCaption,\n caption,\n captionsEnabled,\n key\n )\n );\n}\n\nexport function $isImageNode(node: LexicalNode | null | undefined): node is ImageNode {\n return node instanceof ImageNode;\n}\n"],"mappings":"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"}
|
package/nodes/ListItemNode.d.ts
DELETED
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
/// <reference types="react" />
|
|
2
|
-
/// <reference types="web" />
|
|
3
|
-
import { DOMConversionMap, EditorConfig, ElementNode, GridSelection, LexicalNode, NodeKey, NodeSelection, ParagraphNode, RangeSelection, SerializedElementNode } from "lexical";
|
|
4
|
-
import { Spread } from "lexical";
|
|
5
|
-
export declare type SerializedWebinyListItemNode = Spread<{
|
|
6
|
-
checked: boolean | undefined;
|
|
7
|
-
type: "webiny-listitem";
|
|
8
|
-
value: number;
|
|
9
|
-
version: 1;
|
|
10
|
-
}, SerializedElementNode>;
|
|
11
|
-
/** @noInheritDoc */
|
|
12
|
-
export declare class ListItemNode extends ElementNode {
|
|
13
|
-
/** @internal */
|
|
14
|
-
__value: number;
|
|
15
|
-
/** @internal */
|
|
16
|
-
__checked?: boolean;
|
|
17
|
-
static getType(): string;
|
|
18
|
-
static clone(node: ListItemNode): ListItemNode;
|
|
19
|
-
constructor(value?: number, checked?: boolean, key?: NodeKey);
|
|
20
|
-
createDOM(config: EditorConfig): HTMLElement;
|
|
21
|
-
updateDOM(prevNode: ListItemNode, dom: HTMLElement, config: EditorConfig): boolean;
|
|
22
|
-
static importDOM(): DOMConversionMap | null;
|
|
23
|
-
static importJSON(serializedNode: SerializedWebinyListItemNode): ListItemNode;
|
|
24
|
-
exportJSON(): SerializedWebinyListItemNode;
|
|
25
|
-
append(...nodes: LexicalNode[]): this;
|
|
26
|
-
replace<N extends LexicalNode>(replaceWithNode: N, includeChildren?: boolean): N;
|
|
27
|
-
insertAfter(node: LexicalNode): LexicalNode;
|
|
28
|
-
remove(preserveEmptyParent?: boolean): void;
|
|
29
|
-
insertNewAfter(): ListItemNode | ParagraphNode;
|
|
30
|
-
collapseAtStart(selection: RangeSelection): true;
|
|
31
|
-
getValue(): number;
|
|
32
|
-
setValue(value: number): void;
|
|
33
|
-
getChecked(): boolean | undefined;
|
|
34
|
-
setChecked(checked?: boolean): void;
|
|
35
|
-
toggleChecked(): void;
|
|
36
|
-
getIndent(): number;
|
|
37
|
-
setIndent(indent: number): this;
|
|
38
|
-
canIndent(): false;
|
|
39
|
-
insertBefore(nodeToInsert: LexicalNode): LexicalNode;
|
|
40
|
-
canInsertAfter(node: LexicalNode): boolean;
|
|
41
|
-
canReplaceWith(replacement: LexicalNode): boolean;
|
|
42
|
-
canMergeWith(node: LexicalNode): boolean;
|
|
43
|
-
extractWithChild(child: LexicalNode, selection: RangeSelection | NodeSelection | GridSelection): boolean;
|
|
44
|
-
}
|
|
45
|
-
export declare function $createListItemNode(checked?: boolean): ListItemNode;
|
|
46
|
-
export declare function $isListItemNode(node: LexicalNode | null | undefined): node is ListItemNode;
|
package/nodes/ListItemNode.js
DELETED
|
@@ -1,447 +0,0 @@
|
|
|
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 _get2 = _interopRequireDefault(require("@babel/runtime/helpers/get"));
|
|
15
|
-
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
|
16
|
-
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
17
|
-
var _createSuper2 = _interopRequireDefault(require("@babel/runtime/helpers/createSuper"));
|
|
18
|
-
var _lexical = require("lexical");
|
|
19
|
-
var _ListNode = require("./ListNode");
|
|
20
|
-
var _utils = require("@lexical/utils");
|
|
21
|
-
var _formatList = require("./ListNode/formatList");
|
|
22
|
-
var _ParagraphNode = require("./ParagraphNode");
|
|
23
|
-
var _listNode = require("../utils/nodes/listNode");
|
|
24
|
-
/** @noInheritDoc */
|
|
25
|
-
var ListItemNode = /*#__PURE__*/function (_ElementNode) {
|
|
26
|
-
(0, _inherits2.default)(ListItemNode, _ElementNode);
|
|
27
|
-
var _super = (0, _createSuper2.default)(ListItemNode);
|
|
28
|
-
function ListItemNode(value, checked, key) {
|
|
29
|
-
var _this;
|
|
30
|
-
(0, _classCallCheck2.default)(this, ListItemNode);
|
|
31
|
-
_this = _super.call(this, key);
|
|
32
|
-
_this.__value = value === undefined ? 1 : value;
|
|
33
|
-
_this.__checked = checked;
|
|
34
|
-
return _this;
|
|
35
|
-
}
|
|
36
|
-
(0, _createClass2.default)(ListItemNode, [{
|
|
37
|
-
key: "createDOM",
|
|
38
|
-
value: function createDOM(config) {
|
|
39
|
-
var element = document.createElement("li");
|
|
40
|
-
var parent = this.getParent();
|
|
41
|
-
if ((0, _ListNode.$isListNode)(parent)) {
|
|
42
|
-
(0, _formatList.updateChildrenListItemValue)(parent);
|
|
43
|
-
updateListItemChecked(element, this, null, parent);
|
|
44
|
-
}
|
|
45
|
-
element.value = this.__value;
|
|
46
|
-
$setListItemThemeClassNames(element, config.theme, this);
|
|
47
|
-
return element;
|
|
48
|
-
}
|
|
49
|
-
}, {
|
|
50
|
-
key: "updateDOM",
|
|
51
|
-
value: function updateDOM(prevNode, dom, config) {
|
|
52
|
-
var parent = this.getParent();
|
|
53
|
-
if ((0, _ListNode.$isListNode)(parent)) {
|
|
54
|
-
(0, _formatList.updateChildrenListItemValue)(parent);
|
|
55
|
-
updateListItemChecked(dom, this, prevNode, parent);
|
|
56
|
-
}
|
|
57
|
-
// @ts-expect-error - this is always HTMLListItemElement
|
|
58
|
-
dom.value = this.__value;
|
|
59
|
-
$setListItemThemeClassNames(dom, config.theme, this);
|
|
60
|
-
return false;
|
|
61
|
-
}
|
|
62
|
-
}, {
|
|
63
|
-
key: "exportJSON",
|
|
64
|
-
value: function exportJSON() {
|
|
65
|
-
return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, (0, _get2.default)((0, _getPrototypeOf2.default)(ListItemNode.prototype), "exportJSON", this).call(this)), {}, {
|
|
66
|
-
checked: this.getChecked(),
|
|
67
|
-
type: "webiny-listitem",
|
|
68
|
-
value: this.getValue(),
|
|
69
|
-
version: 1
|
|
70
|
-
});
|
|
71
|
-
}
|
|
72
|
-
}, {
|
|
73
|
-
key: "append",
|
|
74
|
-
value: function append() {
|
|
75
|
-
for (var i = 0; i < arguments.length; i++) {
|
|
76
|
-
var node = i < 0 || arguments.length <= i ? undefined : arguments[i];
|
|
77
|
-
if ((0, _lexical.$isElementNode)(node) && this.canMergeWith(node)) {
|
|
78
|
-
var children = node.getChildren();
|
|
79
|
-
this.append.apply(this, (0, _toConsumableArray2.default)(children));
|
|
80
|
-
node.remove();
|
|
81
|
-
} else {
|
|
82
|
-
(0, _get2.default)((0, _getPrototypeOf2.default)(ListItemNode.prototype), "append", this).call(this, node);
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
return this;
|
|
86
|
-
}
|
|
87
|
-
}, {
|
|
88
|
-
key: "replace",
|
|
89
|
-
value: function replace(replaceWithNode, includeChildren) {
|
|
90
|
-
if ($isListItemNode(replaceWithNode)) {
|
|
91
|
-
return (0, _get2.default)((0, _getPrototypeOf2.default)(ListItemNode.prototype), "replace", this).call(this, replaceWithNode);
|
|
92
|
-
}
|
|
93
|
-
this.setIndent(0);
|
|
94
|
-
var list = this.getParentOrThrow();
|
|
95
|
-
if (!(0, _ListNode.$isListNode)(list)) {
|
|
96
|
-
return replaceWithNode;
|
|
97
|
-
}
|
|
98
|
-
if (list.__first === this.getKey()) {
|
|
99
|
-
list.insertBefore(replaceWithNode);
|
|
100
|
-
} else if (list.__last === this.getKey()) {
|
|
101
|
-
list.insertAfter(replaceWithNode);
|
|
102
|
-
} else {
|
|
103
|
-
// Split the list
|
|
104
|
-
var newList = (0, _ListNode.$createListNode)(list.getListType());
|
|
105
|
-
var nextSibling = this.getNextSibling();
|
|
106
|
-
while (nextSibling) {
|
|
107
|
-
var nodeToAppend = nextSibling;
|
|
108
|
-
nextSibling = nextSibling.getNextSibling();
|
|
109
|
-
newList.append(nodeToAppend);
|
|
110
|
-
}
|
|
111
|
-
list.insertAfter(replaceWithNode);
|
|
112
|
-
replaceWithNode.insertAfter(newList);
|
|
113
|
-
}
|
|
114
|
-
if (includeChildren) {
|
|
115
|
-
this.getChildren().forEach(function (child) {
|
|
116
|
-
replaceWithNode.append(child);
|
|
117
|
-
});
|
|
118
|
-
}
|
|
119
|
-
this.remove();
|
|
120
|
-
if (list.getChildrenSize() === 0) {
|
|
121
|
-
list.remove();
|
|
122
|
-
}
|
|
123
|
-
return replaceWithNode;
|
|
124
|
-
}
|
|
125
|
-
}, {
|
|
126
|
-
key: "insertAfter",
|
|
127
|
-
value: function insertAfter(node) {
|
|
128
|
-
var listNode = this.getParentOrThrow();
|
|
129
|
-
if (!(0, _ListNode.$isListNode)(listNode)) {
|
|
130
|
-
console.log("insertAfter: webiny list node is not parent of list item node");
|
|
131
|
-
return listNode;
|
|
132
|
-
}
|
|
133
|
-
var siblings = this.getNextSiblings();
|
|
134
|
-
if ($isListItemNode(node)) {
|
|
135
|
-
var after = (0, _get2.default)((0, _getPrototypeOf2.default)(ListItemNode.prototype), "insertAfter", this).call(this, node);
|
|
136
|
-
var afterListNode = node.getParentOrThrow();
|
|
137
|
-
if ((0, _ListNode.$isListNode)(afterListNode)) {
|
|
138
|
-
afterListNode;
|
|
139
|
-
}
|
|
140
|
-
return after;
|
|
141
|
-
}
|
|
142
|
-
|
|
143
|
-
// Attempt to merge if the list is of the same type.
|
|
144
|
-
|
|
145
|
-
if ((0, _ListNode.$isListNode)(node) && node.getListType() === listNode.getListType()) {
|
|
146
|
-
var child = node;
|
|
147
|
-
var children = node.getChildren();
|
|
148
|
-
for (var i = children.length - 1; i >= 0; i--) {
|
|
149
|
-
child = children[i];
|
|
150
|
-
this.insertAfter(child);
|
|
151
|
-
}
|
|
152
|
-
return child;
|
|
153
|
-
}
|
|
154
|
-
|
|
155
|
-
// Otherwise, split the list
|
|
156
|
-
// Split the lists and insert the node in between them
|
|
157
|
-
listNode.insertAfter(node);
|
|
158
|
-
if (siblings.length !== 0) {
|
|
159
|
-
var newListNode = (0, _ListNode.$createListNode)(listNode.getListType());
|
|
160
|
-
siblings.forEach(function (sibling) {
|
|
161
|
-
return newListNode.append(sibling);
|
|
162
|
-
});
|
|
163
|
-
node.insertAfter(newListNode);
|
|
164
|
-
}
|
|
165
|
-
return node;
|
|
166
|
-
}
|
|
167
|
-
}, {
|
|
168
|
-
key: "remove",
|
|
169
|
-
value: function remove(preserveEmptyParent) {
|
|
170
|
-
var prevSibling = this.getPreviousSibling();
|
|
171
|
-
var nextSibling = this.getNextSibling();
|
|
172
|
-
(0, _get2.default)((0, _getPrototypeOf2.default)(ListItemNode.prototype), "remove", this).call(this, preserveEmptyParent);
|
|
173
|
-
if (prevSibling && nextSibling && (0, _listNode.isNestedListNode)(prevSibling) && (0, _listNode.isNestedListNode)(nextSibling)) {
|
|
174
|
-
(0, _formatList.mergeLists)(prevSibling.getFirstChild(), nextSibling.getFirstChild());
|
|
175
|
-
nextSibling.remove();
|
|
176
|
-
} else if (nextSibling) {
|
|
177
|
-
var parent = nextSibling.getParent();
|
|
178
|
-
if ((0, _ListNode.$isListNode)(parent)) {
|
|
179
|
-
(0, _formatList.updateChildrenListItemValue)(parent);
|
|
180
|
-
}
|
|
181
|
-
}
|
|
182
|
-
}
|
|
183
|
-
}, {
|
|
184
|
-
key: "insertNewAfter",
|
|
185
|
-
value: function insertNewAfter() {
|
|
186
|
-
var newElement = $createListItemNode(this.__checked == null ? undefined : false);
|
|
187
|
-
this.insertAfter(newElement);
|
|
188
|
-
return newElement;
|
|
189
|
-
}
|
|
190
|
-
}, {
|
|
191
|
-
key: "collapseAtStart",
|
|
192
|
-
value: function collapseAtStart(selection) {
|
|
193
|
-
var paragraph = (0, _ParagraphNode.$createParagraphNode)();
|
|
194
|
-
var children = this.getChildren();
|
|
195
|
-
children.forEach(function (child) {
|
|
196
|
-
return paragraph.append(child);
|
|
197
|
-
});
|
|
198
|
-
var listNode = this.getParentOrThrow();
|
|
199
|
-
var listNodeParent = listNode.getParentOrThrow();
|
|
200
|
-
var isIndented = $isListItemNode(listNodeParent);
|
|
201
|
-
if (listNode.getChildrenSize() === 1) {
|
|
202
|
-
if (isIndented) {
|
|
203
|
-
// if the list node is nested, we just want to remove it,
|
|
204
|
-
// effectively unindenting it.
|
|
205
|
-
listNode.remove();
|
|
206
|
-
listNodeParent.select();
|
|
207
|
-
} else {
|
|
208
|
-
listNode.replace(paragraph);
|
|
209
|
-
// If we have selection on the list item, we'll need to move it
|
|
210
|
-
// to the paragraph
|
|
211
|
-
var anchor = selection.anchor;
|
|
212
|
-
var focus = selection.focus;
|
|
213
|
-
var key = paragraph.getKey();
|
|
214
|
-
if (anchor.type === "element" && anchor.getNode().is(this)) {
|
|
215
|
-
anchor.set(key, anchor.offset, "element");
|
|
216
|
-
}
|
|
217
|
-
if (focus.type === "element" && focus.getNode().is(this)) {
|
|
218
|
-
focus.set(key, focus.offset, "element");
|
|
219
|
-
}
|
|
220
|
-
}
|
|
221
|
-
} else {
|
|
222
|
-
listNode.insertBefore(paragraph);
|
|
223
|
-
this.remove();
|
|
224
|
-
}
|
|
225
|
-
return true;
|
|
226
|
-
}
|
|
227
|
-
}, {
|
|
228
|
-
key: "getValue",
|
|
229
|
-
value: function getValue() {
|
|
230
|
-
var self = this.getLatest();
|
|
231
|
-
return self.__value;
|
|
232
|
-
}
|
|
233
|
-
}, {
|
|
234
|
-
key: "setValue",
|
|
235
|
-
value: function setValue(value) {
|
|
236
|
-
var self = this.getWritable();
|
|
237
|
-
self.__value = value;
|
|
238
|
-
}
|
|
239
|
-
}, {
|
|
240
|
-
key: "getChecked",
|
|
241
|
-
value: function getChecked() {
|
|
242
|
-
var self = this.getLatest();
|
|
243
|
-
return self.__checked;
|
|
244
|
-
}
|
|
245
|
-
}, {
|
|
246
|
-
key: "setChecked",
|
|
247
|
-
value: function setChecked(checked) {
|
|
248
|
-
var self = this.getWritable();
|
|
249
|
-
self.__checked = checked;
|
|
250
|
-
}
|
|
251
|
-
}, {
|
|
252
|
-
key: "toggleChecked",
|
|
253
|
-
value: function toggleChecked() {
|
|
254
|
-
this.setChecked(!this.__checked);
|
|
255
|
-
}
|
|
256
|
-
}, {
|
|
257
|
-
key: "getIndent",
|
|
258
|
-
value: function getIndent() {
|
|
259
|
-
// If we don't have a parent, we are likely serializing
|
|
260
|
-
var parent = this.getParent();
|
|
261
|
-
if (parent === null) {
|
|
262
|
-
return this.getLatest().__indent;
|
|
263
|
-
}
|
|
264
|
-
// ListItemNode should always have a ListNode for a parent.
|
|
265
|
-
var listNodeParent = parent.getParentOrThrow();
|
|
266
|
-
var indentLevel = 0;
|
|
267
|
-
while ($isListItemNode(listNodeParent)) {
|
|
268
|
-
listNodeParent = listNodeParent.getParentOrThrow().getParentOrThrow();
|
|
269
|
-
indentLevel++;
|
|
270
|
-
}
|
|
271
|
-
return indentLevel;
|
|
272
|
-
}
|
|
273
|
-
}, {
|
|
274
|
-
key: "setIndent",
|
|
275
|
-
value: function setIndent(indent) {
|
|
276
|
-
var currentIndent = this.getIndent();
|
|
277
|
-
while (currentIndent !== indent) {
|
|
278
|
-
if (currentIndent < indent) {
|
|
279
|
-
(0, _formatList.$handleIndent)([this]);
|
|
280
|
-
currentIndent++;
|
|
281
|
-
} else {
|
|
282
|
-
(0, _formatList.$handleOutdent)([this]);
|
|
283
|
-
currentIndent--;
|
|
284
|
-
}
|
|
285
|
-
}
|
|
286
|
-
return this;
|
|
287
|
-
}
|
|
288
|
-
}, {
|
|
289
|
-
key: "canIndent",
|
|
290
|
-
value: function canIndent() {
|
|
291
|
-
// Indent/outdent is handled specifically in the RichText logic.
|
|
292
|
-
|
|
293
|
-
return false;
|
|
294
|
-
}
|
|
295
|
-
}, {
|
|
296
|
-
key: "insertBefore",
|
|
297
|
-
value: function insertBefore(nodeToInsert) {
|
|
298
|
-
if ($isListItemNode(nodeToInsert)) {
|
|
299
|
-
var parent = this.getParentOrThrow();
|
|
300
|
-
if ((0, _ListNode.$isListNode)(parent)) {
|
|
301
|
-
var siblings = this.getNextSiblings();
|
|
302
|
-
(0, _formatList.updateChildrenListItemValue)(parent, siblings);
|
|
303
|
-
}
|
|
304
|
-
}
|
|
305
|
-
return (0, _get2.default)((0, _getPrototypeOf2.default)(ListItemNode.prototype), "insertBefore", this).call(this, nodeToInsert);
|
|
306
|
-
}
|
|
307
|
-
}, {
|
|
308
|
-
key: "canInsertAfter",
|
|
309
|
-
value: function canInsertAfter(node) {
|
|
310
|
-
return (0, _ListNode.$isListNode)(node);
|
|
311
|
-
}
|
|
312
|
-
}, {
|
|
313
|
-
key: "canReplaceWith",
|
|
314
|
-
value: function canReplaceWith(replacement) {
|
|
315
|
-
return $isListItemNode(replacement);
|
|
316
|
-
}
|
|
317
|
-
}, {
|
|
318
|
-
key: "canMergeWith",
|
|
319
|
-
value: function canMergeWith(node) {
|
|
320
|
-
return (0, _ParagraphNode.$isParagraphNode)(node) || $isListItemNode(node);
|
|
321
|
-
}
|
|
322
|
-
}, {
|
|
323
|
-
key: "extractWithChild",
|
|
324
|
-
value: function extractWithChild(child, selection) {
|
|
325
|
-
if (!(0, _lexical.$isRangeSelection)(selection)) {
|
|
326
|
-
return false;
|
|
327
|
-
}
|
|
328
|
-
var anchorNode = selection.anchor.getNode();
|
|
329
|
-
var focusNode = selection.focus.getNode();
|
|
330
|
-
return this.isParentOf(anchorNode) && this.isParentOf(focusNode) && this.getTextContent().length === selection.getTextContent().length;
|
|
331
|
-
}
|
|
332
|
-
}], [{
|
|
333
|
-
key: "getType",
|
|
334
|
-
value: /** @internal */
|
|
335
|
-
|
|
336
|
-
/** @internal */
|
|
337
|
-
|
|
338
|
-
function getType() {
|
|
339
|
-
return "webiny-listitem";
|
|
340
|
-
}
|
|
341
|
-
}, {
|
|
342
|
-
key: "clone",
|
|
343
|
-
value: function clone(node) {
|
|
344
|
-
return new ListItemNode(node.__value, node.__checked, node.__key);
|
|
345
|
-
}
|
|
346
|
-
}, {
|
|
347
|
-
key: "importDOM",
|
|
348
|
-
value: function importDOM() {
|
|
349
|
-
return {
|
|
350
|
-
li: function li() {
|
|
351
|
-
return {
|
|
352
|
-
conversion: convertListItemElement,
|
|
353
|
-
priority: 0
|
|
354
|
-
};
|
|
355
|
-
}
|
|
356
|
-
};
|
|
357
|
-
}
|
|
358
|
-
}, {
|
|
359
|
-
key: "importJSON",
|
|
360
|
-
value: function importJSON(serializedNode) {
|
|
361
|
-
var node = new ListItemNode(serializedNode.value, serializedNode.checked);
|
|
362
|
-
node.setFormat(serializedNode.format);
|
|
363
|
-
node.setIndent(serializedNode.indent);
|
|
364
|
-
node.setDirection(serializedNode.direction);
|
|
365
|
-
return node;
|
|
366
|
-
}
|
|
367
|
-
}]);
|
|
368
|
-
return ListItemNode;
|
|
369
|
-
}(_lexical.ElementNode);
|
|
370
|
-
exports.ListItemNode = ListItemNode;
|
|
371
|
-
function $setListItemThemeClassNames(dom, editorThemeClasses, node) {
|
|
372
|
-
var classesToAdd = [];
|
|
373
|
-
var classesToRemove = [];
|
|
374
|
-
var listTheme = editorThemeClasses.list;
|
|
375
|
-
var listItemClassName = listTheme ? listTheme.listitem : undefined;
|
|
376
|
-
var nestedListItemClassName;
|
|
377
|
-
if (listTheme && listTheme.nested) {
|
|
378
|
-
nestedListItemClassName = listTheme.nested.listitem;
|
|
379
|
-
}
|
|
380
|
-
if (listItemClassName !== undefined) {
|
|
381
|
-
var listItemClasses = listItemClassName.split(" ");
|
|
382
|
-
classesToAdd.push.apply(classesToAdd, (0, _toConsumableArray2.default)(listItemClasses));
|
|
383
|
-
}
|
|
384
|
-
if (listTheme) {
|
|
385
|
-
var parentNode = node.getParent();
|
|
386
|
-
var isCheckList = (0, _ListNode.$isListNode)(parentNode) && (parentNode === null || parentNode === void 0 ? void 0 : parentNode.getListType()) === "check";
|
|
387
|
-
var checked = node.getChecked();
|
|
388
|
-
if (!isCheckList || checked) {
|
|
389
|
-
classesToRemove.push(listTheme.listitemUnchecked);
|
|
390
|
-
}
|
|
391
|
-
if (!isCheckList || !checked) {
|
|
392
|
-
classesToRemove.push(listTheme.listitemChecked);
|
|
393
|
-
}
|
|
394
|
-
if (isCheckList) {
|
|
395
|
-
classesToAdd.push(checked ? listTheme.listitemChecked : listTheme.listitemUnchecked);
|
|
396
|
-
}
|
|
397
|
-
}
|
|
398
|
-
if (nestedListItemClassName !== undefined) {
|
|
399
|
-
var nestedListItemClasses = nestedListItemClassName.split(" ");
|
|
400
|
-
if (node.getChildren().some(function (child) {
|
|
401
|
-
return (0, _ListNode.$isListNode)(child);
|
|
402
|
-
})) {
|
|
403
|
-
classesToAdd.push.apply(classesToAdd, (0, _toConsumableArray2.default)(nestedListItemClasses));
|
|
404
|
-
} else {
|
|
405
|
-
classesToRemove.push.apply(classesToRemove, (0, _toConsumableArray2.default)(nestedListItemClasses));
|
|
406
|
-
}
|
|
407
|
-
}
|
|
408
|
-
if (classesToRemove.length > 0) {
|
|
409
|
-
_utils.removeClassNamesFromElement.apply(void 0, [dom].concat(classesToRemove));
|
|
410
|
-
}
|
|
411
|
-
if (classesToAdd.length > 0) {
|
|
412
|
-
_utils.addClassNamesToElement.apply(void 0, [dom].concat(classesToAdd));
|
|
413
|
-
}
|
|
414
|
-
}
|
|
415
|
-
function updateListItemChecked(dom, listItemNode, prevListItemNode, listNode) {
|
|
416
|
-
var isCheckList = listNode.getListType() === "check";
|
|
417
|
-
if (isCheckList) {
|
|
418
|
-
// Only add attributes for leaf list items
|
|
419
|
-
if ((0, _ListNode.$isListNode)(listItemNode.getFirstChild())) {
|
|
420
|
-
dom.removeAttribute("role");
|
|
421
|
-
dom.removeAttribute("tabIndex");
|
|
422
|
-
dom.removeAttribute("aria-checked");
|
|
423
|
-
} else {
|
|
424
|
-
dom.setAttribute("role", "checkbox");
|
|
425
|
-
dom.setAttribute("tabIndex", "-1");
|
|
426
|
-
if (!prevListItemNode || listItemNode.__checked !== prevListItemNode.__checked) {
|
|
427
|
-
dom.setAttribute("aria-checked", listItemNode.getChecked() ? "true" : "false");
|
|
428
|
-
}
|
|
429
|
-
}
|
|
430
|
-
} else {
|
|
431
|
-
// Clean up checked state
|
|
432
|
-
if (listItemNode.getChecked() != null) {
|
|
433
|
-
listItemNode.setChecked(undefined);
|
|
434
|
-
}
|
|
435
|
-
}
|
|
436
|
-
}
|
|
437
|
-
function convertListItemElement() {
|
|
438
|
-
return {
|
|
439
|
-
node: $createListItemNode()
|
|
440
|
-
};
|
|
441
|
-
}
|
|
442
|
-
function $createListItemNode(checked) {
|
|
443
|
-
return new ListItemNode(undefined, checked);
|
|
444
|
-
}
|
|
445
|
-
function $isListItemNode(node) {
|
|
446
|
-
return node instanceof ListItemNode;
|
|
447
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["_lexical","require","_ListNode","_utils","_formatList","_ParagraphNode","_listNode","ListItemNode","_ElementNode","_inherits2","default","_super","_createSuper2","value","checked","key","_this","_classCallCheck2","call","__value","undefined","__checked","_createClass2","createDOM","config","element","document","createElement","parent","getParent","$isListNode","updateChildrenListItemValue","updateListItemChecked","$setListItemThemeClassNames","theme","updateDOM","prevNode","dom","exportJSON","_objectSpread2","_get2","_getPrototypeOf2","prototype","getChecked","type","getValue","version","append","i","arguments","length","node","$isElementNode","canMergeWith","children","getChildren","apply","_toConsumableArray2","remove","replace","replaceWithNode","includeChildren","$isListItemNode","setIndent","list","getParentOrThrow","__first","getKey","insertBefore","__last","insertAfter","newList","$createListNode","getListType","nextSibling","getNextSibling","nodeToAppend","forEach","child","getChildrenSize","listNode","console","log","siblings","getNextSiblings","after","afterListNode","newListNode","sibling","preserveEmptyParent","prevSibling","getPreviousSibling","isNestedListNode","mergeLists","getFirstChild","insertNewAfter","newElement","$createListItemNode","collapseAtStart","selection","paragraph","$createParagraphNode","listNodeParent","isIndented","select","anchor","focus","getNode","is","set","offset","self","getLatest","setValue","getWritable","setChecked","toggleChecked","getIndent","__indent","indentLevel","indent","currentIndent","$handleIndent","$handleOutdent","canIndent","nodeToInsert","canInsertAfter","canReplaceWith","replacement","$isParagraphNode","extractWithChild","$isRangeSelection","anchorNode","focusNode","isParentOf","getTextContent","getType","clone","__key","importDOM","li","conversion","convertListItemElement","priority","importJSON","serializedNode","setFormat","format","setDirection","direction","ElementNode","exports","editorThemeClasses","classesToAdd","classesToRemove","listTheme","listItemClassName","listitem","nestedListItemClassName","nested","listItemClasses","split","push","parentNode","isCheckList","listitemUnchecked","listitemChecked","nestedListItemClasses","some","removeClassNamesFromElement","concat","addClassNamesToElement","listItemNode","prevListItemNode","removeAttribute","setAttribute"],"sources":["ListItemNode.ts"],"sourcesContent":["import {\n $isElementNode,\n $isRangeSelection,\n DOMConversionMap,\n DOMConversionOutput,\n EditorConfig,\n EditorThemeClasses,\n ElementNode,\n GridSelection,\n LexicalNode,\n NodeKey,\n NodeSelection,\n ParagraphNode,\n RangeSelection,\n SerializedElementNode\n} 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 mergeLists,\n updateChildrenListItemValue\n} from \"~/nodes/ListNode/formatList\";\nimport { $createParagraphNode, $isParagraphNode } from \"~/nodes/ParagraphNode\";\nimport { isNestedListNode } from \"~/utils/nodes/listNode\";\n\nexport type SerializedWebinyListItemNode = Spread<\n {\n checked: boolean | undefined;\n type: \"webiny-listitem\";\n value: number;\n version: 1;\n },\n SerializedElementNode\n>;\n\n/** @noInheritDoc */\nexport class ListItemNode extends ElementNode {\n /** @internal */\n __value: number;\n /** @internal */\n __checked?: boolean;\n\n static override getType(): string {\n return \"webiny-listitem\";\n }\n\n static override clone(node: ListItemNode): ListItemNode {\n return new ListItemNode(node.__value, node.__checked, node.__key);\n }\n\n constructor(value?: number, checked?: boolean, key?: NodeKey) {\n super(key);\n this.__value = value === undefined ? 1 : value;\n this.__checked = checked;\n }\n\n override createDOM(config: EditorConfig): HTMLElement {\n const element = document.createElement(\"li\");\n const parent = this.getParent();\n\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, includeChildren?: boolean): N {\n if ($isListItemNode(replaceWithNode)) {\n return super.replace(replaceWithNode);\n }\n this.setIndent(0);\n const list = this.getParentOrThrow();\n if (!$isListNode(list)) {\n return replaceWithNode;\n }\n if (list.__first === this.getKey()) {\n list.insertBefore(replaceWithNode);\n } else if (list.__last === this.getKey()) {\n list.insertAfter(replaceWithNode);\n } else {\n // Split the list\n const newList = $createListNode(list.getListType());\n let nextSibling = this.getNextSibling();\n while (nextSibling) {\n const nodeToAppend = nextSibling;\n nextSibling = nextSibling.getNextSibling();\n newList.append(nodeToAppend);\n }\n list.insertAfter(replaceWithNode);\n replaceWithNode.insertAfter(newList);\n }\n if (includeChildren) {\n this.getChildren().forEach((child: LexicalNode) => {\n replaceWithNode.append(child);\n });\n }\n this.remove();\n if (list.getChildrenSize() === 0) {\n list.remove();\n }\n return replaceWithNode;\n }\n\n override insertAfter(node: LexicalNode): LexicalNode {\n const listNode = this.getParentOrThrow();\n\n if (!$isListNode(listNode)) {\n console.log(\"insertAfter: webiny list node is not parent of list item node\");\n return listNode;\n }\n\n const siblings = this.getNextSiblings();\n\n if ($isListItemNode(node)) {\n const after = super.insertAfter(node);\n const afterListNode = node.getParentOrThrow();\n\n if ($isListNode(afterListNode)) {\n afterListNode;\n }\n\n return after;\n }\n\n // Attempt to merge if the list is of the same type.\n\n if ($isListNode(node) && node.getListType() === listNode.getListType()) {\n let child = node;\n const children = node.getChildren<ListNode>();\n\n for (let i = children.length - 1; i >= 0; i--) {\n child = children[i];\n\n this.insertAfter(child);\n }\n\n return child;\n }\n\n // Otherwise, split the list\n // Split the lists and insert the node in between them\n listNode.insertAfter(node);\n\n if (siblings.length !== 0) {\n const newListNode = $createListNode(listNode.getListType());\n\n siblings.forEach(sibling => newListNode.append(sibling));\n\n node.insertAfter(newListNode);\n }\n\n return node;\n }\n\n override remove(preserveEmptyParent?: boolean): void {\n const prevSibling = this.getPreviousSibling();\n const nextSibling = this.getNextSibling();\n super.remove(preserveEmptyParent);\n\n if (\n prevSibling &&\n nextSibling &&\n isNestedListNode(prevSibling) &&\n isNestedListNode(nextSibling)\n ) {\n mergeLists(prevSibling.getFirstChild(), nextSibling.getFirstChild());\n nextSibling.remove();\n } else if (nextSibling) {\n const parent = nextSibling.getParent();\n\n if ($isListNode(parent)) {\n updateChildrenListItemValue(parent);\n }\n }\n }\n\n override insertNewAfter(): ListItemNode | ParagraphNode {\n const newElement = $createListItemNode(this.__checked == null ? undefined : false);\n this.insertAfter(newElement);\n\n return newElement;\n }\n\n override collapseAtStart(selection: RangeSelection): true {\n const paragraph = $createParagraphNode();\n const children = this.getChildren();\n children.forEach(child => paragraph.append(child));\n const listNode = this.getParentOrThrow();\n const listNodeParent = listNode.getParentOrThrow();\n const isIndented = $isListItemNode(listNodeParent);\n\n if (listNode.getChildrenSize() === 1) {\n if (isIndented) {\n // if the list node is nested, we just want to remove it,\n // effectively unindenting it.\n listNode.remove();\n listNodeParent.select();\n } else {\n listNode.replace(paragraph);\n // If we have selection on the list item, we'll need to move it\n // to the paragraph\n const anchor = selection.anchor;\n const focus = selection.focus;\n const key = paragraph.getKey();\n\n if (anchor.type === \"element\" && anchor.getNode().is(this)) {\n anchor.set(key, anchor.offset, \"element\");\n }\n\n if (focus.type === \"element\" && focus.getNode().is(this)) {\n focus.set(key, focus.offset, \"element\");\n }\n }\n } else {\n listNode.insertBefore(paragraph);\n this.remove();\n }\n\n return true;\n }\n\n getValue(): number {\n const self = this.getLatest();\n\n return self.__value;\n }\n\n setValue(value: number): void {\n const self = this.getWritable();\n self.__value = value;\n }\n\n getChecked(): boolean | undefined {\n const self = this.getLatest();\n\n return self.__checked;\n }\n\n setChecked(checked?: boolean): void {\n const self = this.getWritable();\n self.__checked = checked;\n }\n\n 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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"}
|
|
@@ -1,19 +0,0 @@
|
|
|
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
|
-
/**
|
|
7
|
-
* A recursive function that goes through each list and their children, including nested lists,
|
|
8
|
-
* appending list2 children after list1 children and updating ListItemNode values.
|
|
9
|
-
* @param list1 - The first list to be merged.
|
|
10
|
-
* @param list2 - The second list to be merged.
|
|
11
|
-
*/
|
|
12
|
-
export declare function mergeLists(list1: ListNode, list2: ListNode): void;
|
|
13
|
-
export declare function removeList(editor: LexicalEditor): void;
|
|
14
|
-
export declare function updateChildrenListItemValue(list: ListNode, children?: Array<LexicalNode>): void;
|
|
15
|
-
export declare function $handleIndent(WebinyListItemNodes: Array<ListItemNode>): void;
|
|
16
|
-
export declare function $handleOutdent(WebinyListItemNodes: Array<ListItemNode>): void;
|
|
17
|
-
export declare function indentList(): void;
|
|
18
|
-
export declare function outdentList(): void;
|
|
19
|
-
export declare function $handleListInsertParagraph(): boolean;
|