87 lines
2.3 KiB
Plaintext
87 lines
2.3 KiB
Plaintext
|
/**
|
||
|
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
||
|
*
|
||
|
* This source code is licensed under the MIT license found in the
|
||
|
* LICENSE file in the root directory of this source tree.
|
||
|
*
|
||
|
* @flow strict
|
||
|
*/
|
||
|
import type {
|
||
|
DOMConversionMap,
|
||
|
EditorConfig,
|
||
|
LexicalNode,
|
||
|
NodeKey,
|
||
|
RangeSelection,
|
||
|
LexicalCommand,
|
||
|
} from 'lexical';
|
||
|
import {addClassNamesToElement} from '@lexical/utils';
|
||
|
import {$isElementNode, ElementNode} from 'lexical';
|
||
|
export type LinkAttributes = {
|
||
|
rel?: null | string,
|
||
|
target?: null | string,
|
||
|
title?: null | string,
|
||
|
};
|
||
|
declare export class LinkNode extends ElementNode {
|
||
|
__url: string;
|
||
|
__target: null | string;
|
||
|
__rel: null | string;
|
||
|
__title: null | string;
|
||
|
static getType(): string;
|
||
|
static clone(node: LinkNode): LinkNode;
|
||
|
constructor(url: string, attributes?: LinkAttributes, key?: NodeKey): void;
|
||
|
createDOM(config: EditorConfig): HTMLElement;
|
||
|
updateDOM(
|
||
|
prevNode: LinkNode,
|
||
|
dom: HTMLElement,
|
||
|
config: EditorConfig,
|
||
|
): boolean;
|
||
|
static importDOM(): DOMConversionMap | null;
|
||
|
getURL(): string;
|
||
|
setURL(url: string): void;
|
||
|
getTarget(): null | string;
|
||
|
setTarget(target: null | string): void;
|
||
|
getRel(): null | string;
|
||
|
setRel(rel: null | string): void;
|
||
|
getTitle(): null | string;
|
||
|
setTitle(title: null | string): void;
|
||
|
insertNewAfter(
|
||
|
selection: RangeSelection,
|
||
|
restoreSelection?: boolean,
|
||
|
): null | ElementNode;
|
||
|
canInsertTextBefore(): false;
|
||
|
canInsertTextAfter(): false;
|
||
|
canBeEmpty(): false;
|
||
|
isInline(): true;
|
||
|
}
|
||
|
declare export function $createLinkNode(
|
||
|
url: string,
|
||
|
attributes?: LinkAttributes,
|
||
|
): LinkNode;
|
||
|
declare export function $isLinkNode(
|
||
|
node: ?LexicalNode,
|
||
|
): node is LinkNode;
|
||
|
declare export class AutoLinkNode extends LinkNode {
|
||
|
static getType(): string;
|
||
|
// $FlowFixMe clone method inheritance
|
||
|
static clone(node: AutoLinkNode): AutoLinkNode;
|
||
|
insertNewAfter(
|
||
|
selection: RangeSelection,
|
||
|
restoreSelection?: boolean,
|
||
|
): null | ElementNode;
|
||
|
}
|
||
|
declare export function $createAutoLinkNode(
|
||
|
url: string,
|
||
|
attributes?: LinkAttributes,
|
||
|
): AutoLinkNode;
|
||
|
declare export function $isAutoLinkNode(
|
||
|
node: ?LexicalNode,
|
||
|
): node is AutoLinkNode;
|
||
|
|
||
|
declare export var TOGGLE_LINK_COMMAND: LexicalCommand<
|
||
|
string | {url: string, ...LinkAttributes} | null,
|
||
|
>;
|
||
|
declare export function toggleLink(
|
||
|
url: null | string,
|
||
|
attributes: LinkAttributes,
|
||
|
): void;
|