Lexical: Reorganised custom node code into lexical codebase

Also cleaned up old unused imports.
This commit is contained in:
Dan Brown 2024-12-04 18:53:59 +00:00
parent 57d8449660
commit 9fdd100f2d
No known key found for this signature in database
GPG Key ID: 46D9F943C24A2EF9
41 changed files with 97 additions and 116 deletions

View File

@ -1,4 +1,4 @@
import {$getSelection, createEditor, CreateEditorArgs, isCurrentlyReadOnlyMode, LexicalEditor} from 'lexical'; import {$getSelection, createEditor, CreateEditorArgs, LexicalEditor} from 'lexical';
import {createEmptyHistoryState, registerHistory} from '@lexical/history'; import {createEmptyHistoryState, registerHistory} from '@lexical/history';
import {registerRichText} from '@lexical/rich-text'; import {registerRichText} from '@lexical/rich-text';
import {mergeRegister} from '@lexical/utils'; import {mergeRegister} from '@lexical/utils';

View File

@ -16,7 +16,6 @@ import {
$getSelection, $getSelection,
$isDecoratorNode, $isDecoratorNode,
$isElementNode, $isElementNode,
$isRangeSelection,
$isTextNode, $isTextNode,
$setSelection, $setSelection,
} from '.'; } from '.';

View File

@ -29,12 +29,12 @@ import {
import { import {
DOUBLE_LINE_BREAK, DOUBLE_LINE_BREAK,
FULL_RECONCILE, FULL_RECONCILE,
IS_ALIGN_CENTER,
IS_ALIGN_END,
IS_ALIGN_JUSTIFY,
IS_ALIGN_LEFT,
IS_ALIGN_RIGHT,
IS_ALIGN_START,
} from './LexicalConstants'; } from './LexicalConstants';
import {EditorState} from './LexicalEditorState'; import {EditorState} from './LexicalEditorState';
import { import {

View File

@ -47,7 +47,6 @@ import {
import invariant from 'lexical/shared/invariant'; import invariant from 'lexical/shared/invariant';
import { import {
$createTestDecoratorNode,
$createTestElementNode, $createTestElementNode,
$createTestInlineElementNode, $createTestInlineElementNode,
createTestEditor, createTestEditor,

View File

@ -1,8 +1,15 @@
import {ElementNode} from "./LexicalElementNode"; import {ElementNode, type SerializedElementNode} from "./LexicalElementNode";
import {CommonBlockAlignment, SerializedCommonBlockNode} from "../../../nodes/_common"; import {CommonBlockAlignment, CommonBlockInterface} from "./common";
import {Spread} from "lexical";
export class CommonBlockNode extends ElementNode { export type SerializedCommonBlockNode = Spread<{
id: string;
alignment: CommonBlockAlignment;
inset: number;
}, SerializedElementNode>
export class CommonBlockNode extends ElementNode implements CommonBlockInterface {
__id: string = ''; __id: string = '';
__alignment: CommonBlockAlignment = ''; __alignment: CommonBlockAlignment = '';
__inset: number = 0; __inset: number = 0;

View File

@ -19,8 +19,8 @@ import invariant from 'lexical/shared/invariant';
import {$isTextNode, TextNode} from '../index'; import {$isTextNode, TextNode} from '../index';
import { import {
DOUBLE_LINE_BREAK, DOUBLE_LINE_BREAK,
ELEMENT_FORMAT_TO_TYPE,
ELEMENT_TYPE_TO_FORMAT,
} from '../LexicalConstants'; } from '../LexicalConstants';
import {LexicalNode} from '../LexicalNode'; import {LexicalNode} from '../LexicalNode';
import { import {

View File

@ -29,10 +29,10 @@ import {
import {$isTextNode} from './LexicalTextNode'; import {$isTextNode} from './LexicalTextNode';
import { import {
commonPropertiesDifferent, deserializeCommonBlockNode, commonPropertiesDifferent, deserializeCommonBlockNode,
SerializedCommonBlockNode, setCommonBlockPropsFromElement, setCommonBlockPropsFromElement,
updateElementWithCommonBlockProps updateElementWithCommonBlockProps
} from "../../../nodes/_common"; } from "./common";
import {CommonBlockNode, copyCommonBlockProperties} from "lexical/nodes/CommonBlockNode"; import {CommonBlockNode, copyCommonBlockProperties, SerializedCommonBlockNode} from "lexical/nodes/CommonBlockNode";
export type SerializedParagraphNode = Spread< export type SerializedParagraphNode = Spread<
{ {

View File

@ -10,21 +10,14 @@ import {
$insertDataTransferForPlainText, $insertDataTransferForPlainText,
$insertDataTransferForRichText, $insertDataTransferForRichText,
} from '@lexical/clipboard'; } from '@lexical/clipboard';
import {$createListItemNode, $createListNode} from '@lexical/list';
import {registerRichText} from '@lexical/rich-text';
import { import {
$createParagraphNode, $createParagraphNode,
$createRangeSelection,
$createTabNode, $createTabNode,
$createTextNode,
$getRoot, $getRoot,
$getSelection, $getSelection,
$insertNodes, $insertNodes,
$isElementNode,
$isRangeSelection, $isRangeSelection,
$isTextNode,
$setSelection,
KEY_TAB_COMMAND,
} from 'lexical'; } from 'lexical';
import { import {
@ -32,7 +25,6 @@ import {
initializeUnitTest, initializeUnitTest,
invariant, invariant,
} from '../../../__tests__/utils'; } from '../../../__tests__/utils';
import {$createHeadingNode} from "@lexical/rich-text/LexicalHeadingNode";
describe('LexicalTabNode tests', () => { describe('LexicalTabNode tests', () => {
initializeUnitTest((testEnv) => { initializeUnitTest((testEnv) => {

View File

@ -41,9 +41,7 @@ import {
$setCompositionKey, $setCompositionKey,
getEditorStateTextContent, getEditorStateTextContent,
} from '../../../LexicalUtils'; } from '../../../LexicalUtils';
import {Text} from "@codemirror/state";
import {$generateHtmlFromNodes} from "@lexical/html"; import {$generateHtmlFromNodes} from "@lexical/html";
import {formatBold} from "@lexical/selection/__tests__/utils";
const editorConfig = Object.freeze({ const editorConfig = Object.freeze({
namespace: '', namespace: '',

View File

@ -1,18 +1,11 @@
import {LexicalNode, Spread} from "lexical"; import {sizeToPixels} from "../../../utils/dom";
import type {SerializedElementNode} from "lexical/nodes/LexicalElementNode"; import {SerializedCommonBlockNode} from "lexical/nodes/CommonBlockNode";
import {el, sizeToPixels} from "../utils/dom";
export type CommonBlockAlignment = 'left' | 'right' | 'center' | 'justify' | ''; export type CommonBlockAlignment = 'left' | 'right' | 'center' | 'justify' | '';
const validAlignments: CommonBlockAlignment[] = ['left', 'right', 'center', 'justify']; const validAlignments: CommonBlockAlignment[] = ['left', 'right', 'center', 'justify'];
type EditorNodeDirection = 'ltr' | 'rtl' | null; type EditorNodeDirection = 'ltr' | 'rtl' | null;
export type SerializedCommonBlockNode = Spread<{
id: string;
alignment: CommonBlockAlignment;
inset: number;
}, SerializedElementNode>
export interface NodeHasAlignment { export interface NodeHasAlignment {
readonly __alignment: CommonBlockAlignment; readonly __alignment: CommonBlockAlignment;
setAlignment(alignment: CommonBlockAlignment): void; setAlignment(alignment: CommonBlockAlignment): void;
@ -37,7 +30,7 @@ export interface NodeHasDirection {
getDirection(): EditorNodeDirection; getDirection(): EditorNodeDirection;
} }
interface CommonBlockInterface extends NodeHasId, NodeHasAlignment, NodeHasInset, NodeHasDirection {} export interface CommonBlockInterface extends NodeHasId, NodeHasAlignment, NodeHasInset, NodeHasDirection {}
export function extractAlignmentFromElement(element: HTMLElement): CommonBlockAlignment { export function extractAlignmentFromElement(element: HTMLElement): CommonBlockAlignment {
const textAlignStyle: string = element.style.textAlign || ''; const textAlignStyle: string = element.style.textAlign || '';

View File

@ -36,7 +36,7 @@ import {
updateChildrenListItemValue, updateChildrenListItemValue,
} from './formatList'; } from './formatList';
import {$getListDepth, $wrapInListItem} from './utils'; import {$getListDepth, $wrapInListItem} from './utils';
import {extractDirectionFromElement} from "../../nodes/_common"; import {extractDirectionFromElement} from "lexical/nodes/common";
export type SerializedListNode = Spread< export type SerializedListNode = Spread<
{ {

View File

@ -9,4 +9,4 @@ Only components used, or intended to be used, were copied in at this point.
The original work built upon in this directory and below is under the copyright of Meta Platforms, Inc. and affiliates. The original work built upon in this directory and below is under the copyright of Meta Platforms, Inc. and affiliates.
The original license can be seen in the [ORIGINAL-LEXICAL-LICENSE](./ORIGINAL-LEXICAL-LICENSE) file. The original license can be seen in the [ORIGINAL-LEXICAL-LICENSE](./ORIGINAL-LEXICAL-LICENSE) file.
Files may have since been modified with modifications being under the license and copyright of the BookStack project as a whole. Files may have since been added or modified with changes being under the license and copyright of the BookStack project as a whole.

View File

@ -11,10 +11,10 @@ import type {EditorConfig} from "lexical/LexicalEditor";
import type {RangeSelection} from "lexical/LexicalSelection"; import type {RangeSelection} from "lexical/LexicalSelection";
import { import {
CommonBlockAlignment, commonPropertiesDifferent, deserializeCommonBlockNode, CommonBlockAlignment, commonPropertiesDifferent, deserializeCommonBlockNode,
SerializedCommonBlockNode,
setCommonBlockPropsFromElement, setCommonBlockPropsFromElement,
updateElementWithCommonBlockProps updateElementWithCommonBlockProps
} from "./_common"; } from "lexical/nodes/common";
import {SerializedCommonBlockNode} from "lexical/nodes/CommonBlockNode";
export type CalloutCategory = 'info' | 'danger' | 'warning' | 'success'; export type CalloutCategory = 'info' | 'danger' | 'warning' | 'success';

View File

@ -8,9 +8,9 @@ import {
Spread Spread
} from "lexical"; } from "lexical";
import type {EditorConfig} from "lexical/LexicalEditor"; import type {EditorConfig} from "lexical/LexicalEditor";
import {EditorDecoratorAdapter} from "../ui/framework/decorator"; import {EditorDecoratorAdapter} from "../../ui/framework/decorator";
import {CodeEditor} from "../../components"; import {CodeEditor} from "../../../components";
import {el} from "../utils/dom"; import {el} from "../../utils/dom";
export type SerializedCodeBlockNode = Spread<{ export type SerializedCodeBlockNode = Spread<{
language: string; language: string;

View File

@ -8,8 +8,8 @@ import {
EditorConfig, EditorConfig,
} from 'lexical'; } from 'lexical';
import {el} from "../utils/dom"; import {el} from "../../utils/dom";
import {extractDirectionFromElement} from "./_common"; import {extractDirectionFromElement} from "lexical/nodes/common";
export type SerializedDetailsNode = Spread<{ export type SerializedDetailsNode = Spread<{
id: string; id: string;

View File

@ -8,8 +8,8 @@ import {
Spread Spread
} from "lexical"; } from "lexical";
import type {EditorConfig} from "lexical/LexicalEditor"; import type {EditorConfig} from "lexical/LexicalEditor";
import {EditorDecoratorAdapter} from "../ui/framework/decorator"; import {EditorDecoratorAdapter} from "../../ui/framework/decorator";
import {el} from "../utils/dom"; import {el} from "../../utils/dom";
export type SerializedDiagramNode = Spread<{ export type SerializedDiagramNode = Spread<{
id: string; id: string;

View File

@ -11,16 +11,15 @@ import {
type NodeKey, type NodeKey,
type ParagraphNode, type ParagraphNode,
type RangeSelection, type RangeSelection,
type SerializedElementNode,
type Spread type Spread
} from "lexical"; } from "lexical";
import {addClassNamesToElement} from "@lexical/utils"; import {addClassNamesToElement} from "@lexical/utils";
import {CommonBlockNode, copyCommonBlockProperties} from "lexical/nodes/CommonBlockNode"; import {CommonBlockNode, copyCommonBlockProperties, SerializedCommonBlockNode} from "lexical/nodes/CommonBlockNode";
import { import {
commonPropertiesDifferent, deserializeCommonBlockNode, commonPropertiesDifferent, deserializeCommonBlockNode,
SerializedCommonBlockNode, setCommonBlockPropsFromElement, setCommonBlockPropsFromElement,
updateElementWithCommonBlockProps updateElementWithCommonBlockProps
} from "../../nodes/_common"; } from "lexical/nodes/common";
export type HeadingTagType = 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6'; export type HeadingTagType = 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6';

View File

@ -6,8 +6,8 @@ import {
Spread Spread
} from "lexical"; } from "lexical";
import type {EditorConfig} from "lexical/LexicalEditor"; import type {EditorConfig} from "lexical/LexicalEditor";
import {CommonBlockAlignment, extractAlignmentFromElement} from "./_common"; import {CommonBlockAlignment, extractAlignmentFromElement} from "lexical/nodes/common";
import {$selectSingleNode} from "../utils/selection"; import {$selectSingleNode} from "../../utils/selection";
import {SerializedElementNode} from "lexical/nodes/LexicalElementNode"; import {SerializedElementNode} from "lexical/nodes/LexicalElementNode";
export interface ImageNodeOptions { export interface ImageNodeOptions {

View File

@ -8,14 +8,14 @@ import {
} from 'lexical'; } from 'lexical';
import type {EditorConfig} from "lexical/LexicalEditor"; import type {EditorConfig} from "lexical/LexicalEditor";
import {el, setOrRemoveAttribute, sizeToPixels} from "../utils/dom"; import {el, setOrRemoveAttribute, sizeToPixels} from "../../utils/dom";
import { import {
CommonBlockAlignment, deserializeCommonBlockNode, CommonBlockAlignment, deserializeCommonBlockNode,
SerializedCommonBlockNode,
setCommonBlockPropsFromElement, setCommonBlockPropsFromElement,
updateElementWithCommonBlockProps updateElementWithCommonBlockProps
} from "./_common"; } from "lexical/nodes/common";
import {$selectSingleNode} from "../utils/selection"; import {$selectSingleNode} from "../../utils/selection";
import {SerializedCommonBlockNode} from "lexical/nodes/CommonBlockNode";
export type MediaNodeTag = 'iframe' | 'embed' | 'object' | 'video' | 'audio'; export type MediaNodeTag = 'iframe' | 'embed' | 'object' | 'video' | 'audio';
export type MediaNodeSource = { export type MediaNodeSource = {

View File

@ -5,22 +5,20 @@ import {
type DOMConversionOutput, type DOMConversionOutput,
type DOMExportOutput, type DOMExportOutput,
type EditorConfig, type EditorConfig,
ElementNode,
isHTMLElement, isHTMLElement,
type LexicalEditor, type LexicalEditor,
LexicalNode, LexicalNode,
type NodeKey, type NodeKey,
type ParagraphNode, type ParagraphNode,
type RangeSelection, type RangeSelection
SerializedElementNode
} from "lexical"; } from "lexical";
import {addClassNamesToElement} from "@lexical/utils"; import {addClassNamesToElement} from "@lexical/utils";
import {CommonBlockNode, copyCommonBlockProperties} from "lexical/nodes/CommonBlockNode"; import {CommonBlockNode, copyCommonBlockProperties, SerializedCommonBlockNode} from "lexical/nodes/CommonBlockNode";
import { import {
commonPropertiesDifferent, deserializeCommonBlockNode, commonPropertiesDifferent, deserializeCommonBlockNode,
SerializedCommonBlockNode, setCommonBlockPropsFromElement, setCommonBlockPropsFromElement,
updateElementWithCommonBlockProps updateElementWithCommonBlockProps
} from "../../nodes/_common"; } from "lexical/nodes/common";
export type SerializedQuoteNode = SerializedCommonBlockNode; export type SerializedQuoteNode = SerializedCommonBlockNode;

View File

@ -29,7 +29,7 @@ import {
} from 'lexical'; } from 'lexical';
import {extractStyleMapFromElement, StyleMap} from "../../utils/dom"; import {extractStyleMapFromElement, StyleMap} from "../../utils/dom";
import {CommonBlockAlignment, extractAlignmentFromElement} from "../../nodes/_common"; import {CommonBlockAlignment, extractAlignmentFromElement} from "lexical/nodes/common";
export const TableCellHeaderStates = { export const TableCellHeaderStates = {
BOTH: 3, BOTH: 3,

View File

@ -15,25 +15,25 @@ import {
LexicalEditor, LexicalEditor,
LexicalNode, LexicalNode,
NodeKey, NodeKey,
SerializedElementNode, Spread, Spread,
} from 'lexical'; } from 'lexical';
import {addClassNamesToElement, isHTMLElement} from '@lexical/utils'; import {addClassNamesToElement, isHTMLElement} from '@lexical/utils';
import { import {
$applyNodeReplacement, $applyNodeReplacement,
$getNearestNodeFromDOMNode, $getNearestNodeFromDOMNode,
ElementNode,
} from 'lexical'; } from 'lexical';
import {$isTableCellNode} from './LexicalTableCellNode'; import {$isTableCellNode} from './LexicalTableCellNode';
import {TableDOMCell, TableDOMTable} from './LexicalTableObserver'; import {TableDOMCell, TableDOMTable} from './LexicalTableObserver';
import {getTable} from './LexicalTableSelectionHelpers'; import {getTable} from './LexicalTableSelectionHelpers';
import {CommonBlockNode, copyCommonBlockProperties} from "lexical/nodes/CommonBlockNode"; import {CommonBlockNode, copyCommonBlockProperties, SerializedCommonBlockNode} from "lexical/nodes/CommonBlockNode";
import { import {
commonPropertiesDifferent, deserializeCommonBlockNode, commonPropertiesDifferent, deserializeCommonBlockNode,
SerializedCommonBlockNode, setCommonBlockPropsFromElement, setCommonBlockPropsFromElement,
updateElementWithCommonBlockProps updateElementWithCommonBlockProps
} from "../../nodes/_common"; } from "lexical/nodes/common";
import {el, extractStyleMapFromElement, StyleMap} from "../../utils/dom"; import {el, extractStyleMapFromElement, StyleMap} from "../../utils/dom";
import {getTableColumnWidths} from "../../utils/tables"; import {getTableColumnWidths} from "../../utils/tables";

View File

@ -16,7 +16,6 @@ import type {
} from './LexicalTableSelection'; } from './LexicalTableSelection';
import type { import type {
BaseSelection, BaseSelection,
ElementFormatType,
LexicalCommand, LexicalCommand,
LexicalEditor, LexicalEditor,
LexicalNode, LexicalNode,
@ -50,7 +49,6 @@ import {
DELETE_LINE_COMMAND, DELETE_LINE_COMMAND,
DELETE_WORD_COMMAND, DELETE_WORD_COMMAND,
FOCUS_COMMAND, FOCUS_COMMAND,
FORMAT_ELEMENT_COMMAND,
FORMAT_TEXT_COMMAND, FORMAT_TEXT_COMMAND,
INSERT_PARAGRAPH_COMMAND, INSERT_PARAGRAPH_COMMAND,
KEY_ARROW_DOWN_COMMAND, KEY_ARROW_DOWN_COMMAND,

View File

@ -1,4 +1,4 @@
import {CalloutNode} from './callout'; import {CalloutNode} from '@lexical/rich-text/LexicalCalloutNode';
import { import {
ElementNode, ElementNode,
KlassConstructor, KlassConstructor,
@ -7,15 +7,15 @@ import {
ParagraphNode ParagraphNode
} from "lexical"; } from "lexical";
import {LinkNode} from "@lexical/link"; import {LinkNode} from "@lexical/link";
import {ImageNode} from "./image"; import {ImageNode} from "@lexical/rich-text/LexicalImageNode";
import {DetailsNode, SummaryNode} from "./details"; import {DetailsNode, SummaryNode} from "@lexical/rich-text/LexicalDetailsNode";
import {ListItemNode, ListNode} from "@lexical/list"; import {ListItemNode, ListNode} from "@lexical/list";
import {TableCellNode, TableNode, TableRowNode} from "@lexical/table"; import {TableCellNode, TableNode, TableRowNode} from "@lexical/table";
import {HorizontalRuleNode} from "./horizontal-rule"; import {HorizontalRuleNode} from "@lexical/rich-text/LexicalHorizontalRuleNode";
import {CodeBlockNode} from "./code-block"; import {CodeBlockNode} from "@lexical/rich-text/LexicalCodeBlockNode";
import {DiagramNode} from "./diagram"; import {DiagramNode} from "@lexical/rich-text/LexicalDiagramNode";
import {EditorUiContext} from "../ui/framework/core"; import {EditorUiContext} from "./ui/framework/core";
import {MediaNode} from "./media"; import {MediaNode} from "@lexical/rich-text/LexicalMediaNode";
import {HeadingNode} from "@lexical/rich-text/LexicalHeadingNode"; import {HeadingNode} from "@lexical/rich-text/LexicalHeadingNode";
import {QuoteNode} from "@lexical/rich-text/LexicalQuoteNode"; import {QuoteNode} from "@lexical/rich-text/LexicalQuoteNode";

View File

@ -8,7 +8,7 @@ import {
import {$insertNewBlockNodesAtSelection, $selectSingleNode} from "../utils/selection"; import {$insertNewBlockNodesAtSelection, $selectSingleNode} from "../utils/selection";
import {$getNearestBlockNodeForCoords, $htmlToBlockNodes} from "../utils/nodes"; import {$getNearestBlockNodeForCoords, $htmlToBlockNodes} from "../utils/nodes";
import {Clipboard} from "../../services/clipboard"; import {Clipboard} from "../../services/clipboard";
import {$createImageNode} from "../nodes/image"; import {$createImageNode} from "@lexical/rich-text/LexicalImageNode";
import {$createLinkNode} from "@lexical/link"; import {$createLinkNode} from "@lexical/link";
import {EditorImageData, uploadImageFile} from "../utils/images"; import {EditorImageData, uploadImageFile} from "../utils/images";
import {EditorUiContext} from "../ui/framework/core"; import {EditorUiContext} from "../ui/framework/core";

View File

@ -10,8 +10,8 @@ import {
LexicalEditor, LexicalEditor,
LexicalNode LexicalNode
} from "lexical"; } from "lexical";
import {$isImageNode} from "../nodes/image"; import {$isImageNode} from "@lexical/rich-text/LexicalImageNode";
import {$isMediaNode} from "../nodes/media"; import {$isMediaNode} from "@lexical/rich-text/LexicalMediaNode";
import {getLastSelection} from "../utils/selection"; import {getLastSelection} from "../utils/selection";
import {$getNearestNodeBlockParent} from "../utils/nodes"; import {$getNearestNodeBlockParent} from "../utils/nodes";
import {$setInsetForSelection} from "../utils/lists"; import {$setInsetForSelection} from "../utils/lists";

View File

@ -1,7 +1,7 @@
import {EditorDecorator} from "../framework/decorator"; import {EditorDecorator} from "../framework/decorator";
import {EditorUiContext} from "../framework/core"; import {EditorUiContext} from "../framework/core";
import {$openCodeEditorForNode, CodeBlockNode} from "../../nodes/code-block"; import {$openCodeEditorForNode, CodeBlockNode} from "@lexical/rich-text/LexicalCodeBlockNode";
import {$isDecoratorNode, BaseSelection} from "lexical"; import {BaseSelection} from "lexical";
import {$selectionContainsNode, $selectSingleNode} from "../../utils/selection"; import {$selectionContainsNode, $selectSingleNode} from "../../utils/selection";

View File

@ -1,7 +1,7 @@
import {EditorDecorator} from "../framework/decorator"; import {EditorDecorator} from "../framework/decorator";
import {EditorUiContext} from "../framework/core"; import {EditorUiContext} from "../framework/core";
import {BaseSelection} from "lexical"; import {BaseSelection} from "lexical";
import {DiagramNode} from "../../nodes/diagram"; import {DiagramNode} from "@lexical/rich-text/LexicalDiagramNode";
import {$selectionContainsNode, $selectSingleNode} from "../../utils/selection"; import {$selectionContainsNode, $selectSingleNode} from "../../utils/selection";
import {$openDrawingEditorForNode} from "../../utils/diagrams"; import {$openDrawingEditorForNode} from "../../utils/diagrams";

View File

@ -9,9 +9,9 @@ import ltrIcon from "@icons/editor/direction-ltr.svg";
import rtlIcon from "@icons/editor/direction-rtl.svg"; import rtlIcon from "@icons/editor/direction-rtl.svg";
import { import {
$getBlockElementNodesInSelection, $getBlockElementNodesInSelection,
$selectionContainsAlignment, $selectionContainsDirection, $selectSingleNode, $toggleSelection, getLastSelection $selectionContainsAlignment, $selectionContainsDirection, $selectSingleNode, getLastSelection
} from "../../../utils/selection"; } from "../../../utils/selection";
import {CommonBlockAlignment} from "../../../nodes/_common"; import {CommonBlockAlignment} from "lexical/nodes/common";
import {nodeHasAlignment} from "../../../utils/nodes"; import {nodeHasAlignment} from "../../../utils/nodes";

View File

@ -1,4 +1,4 @@
import {$createCalloutNode, $isCalloutNodeOfCategory, CalloutCategory} from "../../../nodes/callout"; import {$createCalloutNode, $isCalloutNodeOfCategory, CalloutCategory} from "@lexical/rich-text/LexicalCalloutNode";
import {EditorButtonDefinition} from "../../framework/buttons"; import {EditorButtonDefinition} from "../../framework/buttons";
import {EditorUiContext} from "../../framework/core"; import {EditorUiContext} from "../../framework/core";
import {$isParagraphNode, BaseSelection, LexicalNode} from "lexical"; import {$isParagraphNode, BaseSelection, LexicalNode} from "lexical";

View File

@ -2,27 +2,26 @@ import {EditorButtonDefinition} from "../../framework/buttons";
import linkIcon from "@icons/editor/link.svg"; import linkIcon from "@icons/editor/link.svg";
import {EditorUiContext} from "../../framework/core"; import {EditorUiContext} from "../../framework/core";
import { import {
$createTextNode,
$getRoot, $getRoot,
$getSelection, $insertNodes, $getSelection, $insertNodes,
BaseSelection, BaseSelection,
ElementNode, isCurrentlyReadOnlyMode ElementNode
} from "lexical"; } from "lexical";
import {$isLinkNode, LinkNode} from "@lexical/link"; import {$isLinkNode, LinkNode} from "@lexical/link";
import unlinkIcon from "@icons/editor/unlink.svg"; import unlinkIcon from "@icons/editor/unlink.svg";
import imageIcon from "@icons/editor/image.svg"; import imageIcon from "@icons/editor/image.svg";
import {$isImageNode, ImageNode} from "../../../nodes/image"; import {$isImageNode, ImageNode} from "@lexical/rich-text/LexicalImageNode";
import horizontalRuleIcon from "@icons/editor/horizontal-rule.svg"; import horizontalRuleIcon from "@icons/editor/horizontal-rule.svg";
import {$createHorizontalRuleNode, $isHorizontalRuleNode} from "../../../nodes/horizontal-rule"; import {$createHorizontalRuleNode, $isHorizontalRuleNode} from "@lexical/rich-text/LexicalHorizontalRuleNode";
import codeBlockIcon from "@icons/editor/code-block.svg"; import codeBlockIcon from "@icons/editor/code-block.svg";
import {$isCodeBlockNode} from "../../../nodes/code-block"; import {$isCodeBlockNode} from "@lexical/rich-text/LexicalCodeBlockNode";
import editIcon from "@icons/edit.svg"; import editIcon from "@icons/edit.svg";
import diagramIcon from "@icons/editor/diagram.svg"; import diagramIcon from "@icons/editor/diagram.svg";
import {$createDiagramNode, DiagramNode} from "../../../nodes/diagram"; import {$createDiagramNode, DiagramNode} from "@lexical/rich-text/LexicalDiagramNode";
import detailsIcon from "@icons/editor/details.svg"; import detailsIcon from "@icons/editor/details.svg";
import mediaIcon from "@icons/editor/media.svg"; import mediaIcon from "@icons/editor/media.svg";
import {$createDetailsNode, $isDetailsNode} from "../../../nodes/details"; import {$createDetailsNode, $isDetailsNode} from "@lexical/rich-text/LexicalDetailsNode";
import {$isMediaNode, MediaNode} from "../../../nodes/media"; import {$isMediaNode, MediaNode} from "@lexical/rich-text/LexicalMediaNode";
import { import {
$getNodeFromSelection, $getNodeFromSelection,
$insertNewBlockNodeAtSelection, $insertNewBlockNodeAtSelection,

View File

@ -5,11 +5,10 @@ import {
EditorSelectFormFieldDefinition EditorSelectFormFieldDefinition
} from "../../framework/forms"; } from "../../framework/forms";
import {EditorUiContext} from "../../framework/core"; import {EditorUiContext} from "../../framework/core";
import {$createNodeSelection, $createTextNode, $getSelection, $insertNodes, $setSelection} from "lexical"; import {$createNodeSelection, $getSelection, $insertNodes, $setSelection} from "lexical";
import {$isImageNode, ImageNode} from "../../../nodes/image"; import {$isImageNode, ImageNode} from "@lexical/rich-text/LexicalImageNode";
import {$createLinkNode, $isLinkNode, LinkNode} from "@lexical/link"; import {LinkNode} from "@lexical/link";
import {$createMediaNodeFromHtml, $createMediaNodeFromSrc, $isMediaNode, MediaNode} from "../../../nodes/media"; import {$createMediaNodeFromHtml, $createMediaNodeFromSrc, $isMediaNode, MediaNode} from "@lexical/rich-text/LexicalMediaNode";
import {$insertNodeToNearestRoot} from "@lexical/utils";
import {$getNodeFromSelection, getLastSelection} from "../../../utils/selection"; import {$getNodeFromSelection, getLastSelection} from "../../../utils/selection";
import {EditorFormModal} from "../../framework/modals"; import {EditorFormModal} from "../../framework/modals";
import {EditorActionField} from "../../framework/blocks/action-field"; import {EditorActionField} from "../../framework/blocks/action-field";

View File

@ -6,7 +6,7 @@ import {
} from "../../framework/forms"; } from "../../framework/forms";
import {EditorUiContext} from "../../framework/core"; import {EditorUiContext} from "../../framework/core";
import {EditorFormModal} from "../../framework/modals"; import {EditorFormModal} from "../../framework/modals";
import {$getSelection, ElementFormatType} from "lexical"; import {$getSelection} from "lexical";
import { import {
$forEachTableCell, $getCellPaddingForTable, $forEachTableCell, $getCellPaddingForTable,
$getTableCellColumnWidth, $getTableCellColumnWidth,
@ -16,7 +16,7 @@ import {
} from "../../../utils/tables"; } from "../../../utils/tables";
import {formatSizeValue} from "../../../utils/dom"; import {formatSizeValue} from "../../../utils/dom";
import {TableCellNode, TableNode, TableRowNode} from "@lexical/table"; import {TableCellNode, TableNode, TableRowNode} from "@lexical/table";
import {CommonBlockAlignment} from "../../../nodes/_common"; import {CommonBlockAlignment} from "lexical/nodes/common";
const borderStyleInput: EditorSelectFormFieldDefinition = { const borderStyleInput: EditorSelectFormFieldDefinition = {
label: 'Border style', label: 'Border style',

View File

@ -1,10 +1,10 @@
import {BaseSelection, LexicalNode,} from "lexical"; import {BaseSelection, LexicalNode,} from "lexical";
import {MouseDragTracker, MouseDragTrackerDistance} from "./mouse-drag-tracker"; import {MouseDragTracker, MouseDragTrackerDistance} from "./mouse-drag-tracker";
import {el} from "../../../utils/dom"; import {el} from "../../../utils/dom";
import {$isImageNode} from "../../../nodes/image"; import {$isImageNode} from "@lexical/rich-text/LexicalImageNode";
import {EditorUiContext} from "../core"; import {EditorUiContext} from "../core";
import {NodeHasSize} from "../../../nodes/_common"; import {NodeHasSize} from "lexical/nodes/common";
import {$isMediaNode} from "../../../nodes/media"; import {$isMediaNode} from "@lexical/rich-text/LexicalMediaNode";
function isNodeWithSize(node: LexicalNode): node is NodeHasSize&LexicalNode { function isNodeWithSize(node: LexicalNode): node is NodeHasSize&LexicalNode {
return $isImageNode(node) || $isMediaNode(node); return $isImageNode(node) || $isMediaNode(node);

View File

@ -1,7 +1,7 @@
import {EditorFormModal, EditorFormModalDefinition} from "./modals"; import {EditorFormModal, EditorFormModalDefinition} from "./modals";
import {EditorContainerUiElement, EditorUiContext, EditorUiElement, EditorUiStateUpdate} from "./core"; import {EditorContainerUiElement, EditorUiContext, EditorUiElement, EditorUiStateUpdate} from "./core";
import {EditorDecorator, EditorDecoratorAdapter} from "./decorator"; import {EditorDecorator, EditorDecoratorAdapter} from "./decorator";
import {$getSelection, BaseSelection, COMMAND_PRIORITY_LOW, LexicalEditor, SELECTION_CHANGE_COMMAND} from "lexical"; import {BaseSelection, LexicalEditor} from "lexical";
import {DecoratorListener} from "lexical/LexicalEditor"; import {DecoratorListener} from "lexical/LexicalEditor";
import type {NodeKey} from "lexical/LexicalNode"; import type {NodeKey} from "lexical/LexicalNode";
import {EditorContextToolbar, EditorContextToolbarDefinition} from "./toolbars"; import {EditorContextToolbar, EditorContextToolbarDefinition} from "./toolbars";

View File

@ -1,8 +1,8 @@
import {$getSelection, $insertNodes, LexicalEditor, LexicalNode} from "lexical"; import {$insertNodes, LexicalEditor, LexicalNode} from "lexical";
import {HttpError} from "../../services/http"; import {HttpError} from "../../services/http";
import {EditorUiContext} from "../ui/framework/core"; import {EditorUiContext} from "../ui/framework/core";
import * as DrawIO from "../../services/drawio"; import * as DrawIO from "../../services/drawio";
import {$createDiagramNode, DiagramNode} from "../nodes/diagram"; import {$createDiagramNode, DiagramNode} from "@lexical/rich-text/LexicalDiagramNode";
import {ImageManager} from "../../components"; import {ImageManager} from "../../components";
import {EditorImageData} from "./images"; import {EditorImageData} from "./images";
import {$getNodeFromSelection, getLastSelection} from "./selection"; import {$getNodeFromSelection, getLastSelection} from "./selection";

View File

@ -14,8 +14,8 @@ import {
$toggleSelectionBlockNodeType, $toggleSelectionBlockNodeType,
getLastSelection getLastSelection
} from "./selection"; } from "./selection";
import {$createCodeBlockNode, $isCodeBlockNode, $openCodeEditorForNode, CodeBlockNode} from "../nodes/code-block"; import {$createCodeBlockNode, $isCodeBlockNode, $openCodeEditorForNode, CodeBlockNode} from "@lexical/rich-text/LexicalCodeBlockNode";
import {$createCalloutNode, $isCalloutNode, CalloutCategory} from "../nodes/callout"; import {$createCalloutNode, $isCalloutNode, CalloutCategory} from "@lexical/rich-text/LexicalCalloutNode";
import {$isListNode, insertList, ListNode, ListType, removeList} from "@lexical/list"; import {$isListNode, insertList, ListNode, ListType, removeList} from "@lexical/list";
import {$createLinkNode, $isLinkNode} from "@lexical/link"; import {$createLinkNode, $isLinkNode} from "@lexical/link";
import {$createHeadingNode, $isHeadingNode, HeadingTagType} from "@lexical/rich-text/LexicalHeadingNode"; import {$createHeadingNode, $isHeadingNode, HeadingTagType} from "@lexical/rich-text/LexicalHeadingNode";

View File

@ -1,5 +1,5 @@
import {ImageManager} from "../../components"; import {ImageManager} from "../../components";
import {$createImageNode} from "../nodes/image"; import {$createImageNode} from "@lexical/rich-text/LexicalImageNode";
import {$createLinkNode, LinkNode} from "@lexical/link"; import {$createLinkNode, LinkNode} from "@lexical/link";
export type EditorImageData = { export type EditorImageData = {

View File

@ -11,7 +11,7 @@ import {
import {LexicalNodeMatcher} from "../nodes"; import {LexicalNodeMatcher} from "../nodes";
import {$generateNodesFromDOM} from "@lexical/html"; import {$generateNodesFromDOM} from "@lexical/html";
import {htmlToDom} from "./dom"; import {htmlToDom} from "./dom";
import {NodeHasAlignment, NodeHasInset} from "../nodes/_common"; import {NodeHasAlignment, NodeHasInset} from "lexical/nodes/common";
import {$findMatchingParent} from "@lexical/utils"; import {$findMatchingParent} from "@lexical/utils";
function wrapTextNodes(nodes: LexicalNode[]): LexicalNode[] { function wrapTextNodes(nodes: LexicalNode[]): LexicalNode[] {

View File

@ -16,7 +16,7 @@ import {LexicalElementNodeCreator, LexicalNodeMatcher} from "../nodes";
import {$setBlocksType} from "@lexical/selection"; import {$setBlocksType} from "@lexical/selection";
import {$getNearestNodeBlockParent, $getParentOfType, nodeHasAlignment} from "./nodes"; import {$getNearestNodeBlockParent, $getParentOfType, nodeHasAlignment} from "./nodes";
import {CommonBlockAlignment} from "../nodes/_common"; import {CommonBlockAlignment} from "lexical/nodes/common";
const lastSelectionByEditor = new WeakMap<LexicalEditor, BaseSelection|null>; const lastSelectionByEditor = new WeakMap<LexicalEditor, BaseSelection|null>;