chore: upgrade lexical to 0.23.0
This commit is contained in:
@@ -4,8 +4,6 @@ import { DOMExportOutput, ElementFormatType, NodeKey, Spread } from 'lexical'
|
||||
|
||||
type SerializedFileExportNode = Spread<
|
||||
{
|
||||
version: 1
|
||||
type: 'file-export'
|
||||
name: string
|
||||
mimeType: string
|
||||
},
|
||||
@@ -31,7 +29,7 @@ export class FileExportNode extends DecoratorBlockNode {
|
||||
}
|
||||
|
||||
static importJSON(serializedNode: SerializedFileExportNode): FileExportNode {
|
||||
const node = new FileExportNode(serializedNode.name, serializedNode.mimeType)
|
||||
const node = $createFileExportNode(serializedNode.name, serializedNode.mimeType).updateFromJSON(serializedNode)
|
||||
return node
|
||||
}
|
||||
|
||||
@@ -40,8 +38,6 @@ export class FileExportNode extends DecoratorBlockNode {
|
||||
...super.exportJSON(),
|
||||
name: this.__name,
|
||||
mimeType: this.__mimeType,
|
||||
version: 1,
|
||||
type: 'file-export',
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -114,8 +114,6 @@ function TweetComponent({
|
||||
export type SerializedTweetNode = Spread<
|
||||
{
|
||||
id: string
|
||||
type: 'tweet'
|
||||
version: 1
|
||||
},
|
||||
SerializedDecoratorBlockNode
|
||||
>
|
||||
@@ -137,17 +135,13 @@ export class TweetNode extends DecoratorBlockNode {
|
||||
}
|
||||
|
||||
static override importJSON(serializedNode: SerializedTweetNode): TweetNode {
|
||||
const node = $createTweetNode(serializedNode.id)
|
||||
node.setFormat(serializedNode.format)
|
||||
return node
|
||||
return $createTweetNode(serializedNode.id).updateFromJSON(serializedNode)
|
||||
}
|
||||
|
||||
override exportJSON(): SerializedTweetNode {
|
||||
return {
|
||||
...super.exportJSON(),
|
||||
id: this.getId(),
|
||||
type: 'tweet',
|
||||
version: 1,
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -50,8 +50,6 @@ function YouTubeComponent({ className, format, nodeKey, videoID }: YouTubeCompon
|
||||
export type SerializedYouTubeNode = Spread<
|
||||
{
|
||||
videoID: string
|
||||
type: 'youtube'
|
||||
version: 1
|
||||
},
|
||||
SerializedDecoratorBlockNode
|
||||
>
|
||||
@@ -82,16 +80,12 @@ export class YouTubeNode extends DecoratorBlockNode {
|
||||
}
|
||||
|
||||
static importJSON(serializedNode: SerializedYouTubeNode): YouTubeNode {
|
||||
const node = $createYouTubeNode(serializedNode.videoID)
|
||||
node.setFormat(serializedNode.format)
|
||||
return node
|
||||
return $createYouTubeNode(serializedNode.videoID).updateFromJSON(serializedNode)
|
||||
}
|
||||
|
||||
exportJSON(): SerializedYouTubeNode {
|
||||
return {
|
||||
...super.exportJSON(),
|
||||
type: 'youtube',
|
||||
version: 1,
|
||||
videoID: this.__id,
|
||||
}
|
||||
}
|
||||
|
||||
@@ -21,8 +21,6 @@ import {
|
||||
|
||||
type SerializedCollapsibleContainerNode = Spread<
|
||||
{
|
||||
type: 'collapsible-container'
|
||||
version: 1
|
||||
open: boolean
|
||||
},
|
||||
SerializedElementNode
|
||||
@@ -85,8 +83,7 @@ export class CollapsibleContainerNode extends ElementNode {
|
||||
}
|
||||
|
||||
static override importJSON(serializedNode: SerializedCollapsibleContainerNode): CollapsibleContainerNode {
|
||||
const node = $createCollapsibleContainerNode(serializedNode.open)
|
||||
return node
|
||||
return $createCollapsibleContainerNode(serializedNode.open).updateFromJSON(serializedNode)
|
||||
}
|
||||
|
||||
exportDOM(): DOMExportOutput {
|
||||
@@ -100,8 +97,6 @@ export class CollapsibleContainerNode extends ElementNode {
|
||||
override exportJSON(): SerializedCollapsibleContainerNode {
|
||||
return {
|
||||
...super.exportJSON(),
|
||||
type: 'collapsible-container',
|
||||
version: 1,
|
||||
open: this.__open,
|
||||
}
|
||||
}
|
||||
|
||||
@@ -65,8 +65,8 @@ export class CollapsibleContentNode extends ElementNode {
|
||||
}
|
||||
}
|
||||
|
||||
static override importJSON(_serializedNode: SerializedCollapsibleContentNode): CollapsibleContentNode {
|
||||
return $createCollapsibleContentNode()
|
||||
static override importJSON(serializedNode: SerializedCollapsibleContentNode): CollapsibleContentNode {
|
||||
return $createCollapsibleContentNode().updateFromJSON(serializedNode)
|
||||
}
|
||||
|
||||
override isShadowRoot(): boolean {
|
||||
|
||||
@@ -12,10 +12,8 @@ import {
|
||||
DOMConversionMap,
|
||||
DOMConversionOutput,
|
||||
DOMExportOutput,
|
||||
ElementFormatType,
|
||||
ElementNode,
|
||||
LexicalNode,
|
||||
NodeKey,
|
||||
RangeSelection,
|
||||
SerializedElementNode,
|
||||
Spread,
|
||||
@@ -44,15 +42,8 @@ export class CollapsibleTitleNode extends ElementNode {
|
||||
return 'collapsible-title'
|
||||
}
|
||||
|
||||
constructor({ formatType, key }: { formatType?: ElementFormatType; key?: NodeKey }) {
|
||||
super(key)
|
||||
if (formatType) {
|
||||
super.setFormat(formatType)
|
||||
}
|
||||
}
|
||||
|
||||
static override clone(node: CollapsibleTitleNode): CollapsibleTitleNode {
|
||||
return new CollapsibleTitleNode({ key: node.__key })
|
||||
return new CollapsibleTitleNode(node.__key)
|
||||
}
|
||||
|
||||
override createDOM(): HTMLElement {
|
||||
@@ -79,7 +70,7 @@ export class CollapsibleTitleNode extends ElementNode {
|
||||
}
|
||||
|
||||
static override importJSON(serializedNode: SerializedCollapsibleTitleNode): CollapsibleTitleNode {
|
||||
return $createCollapsibleTitleNode(serializedNode.format)
|
||||
return $createCollapsibleTitleNode().updateFromJSON(serializedNode)
|
||||
}
|
||||
|
||||
exportDOM(): DOMExportOutput {
|
||||
@@ -87,14 +78,6 @@ export class CollapsibleTitleNode extends ElementNode {
|
||||
return { element }
|
||||
}
|
||||
|
||||
override exportJSON(): SerializedCollapsibleTitleNode {
|
||||
return {
|
||||
...super.exportJSON(),
|
||||
type: 'collapsible-title',
|
||||
version: 1,
|
||||
}
|
||||
}
|
||||
|
||||
override collapseAtStart(_selection: RangeSelection): boolean {
|
||||
this.getParentOrThrow().insertBefore(this)
|
||||
return true
|
||||
@@ -129,10 +112,8 @@ export class CollapsibleTitleNode extends ElementNode {
|
||||
}
|
||||
}
|
||||
|
||||
export function $createCollapsibleTitleNode(formatType?: ElementFormatType): CollapsibleTitleNode {
|
||||
return new CollapsibleTitleNode({
|
||||
formatType,
|
||||
})
|
||||
export function $createCollapsibleTitleNode(): CollapsibleTitleNode {
|
||||
return new CollapsibleTitleNode()
|
||||
}
|
||||
|
||||
export function $isCollapsibleTitleNode(node: LexicalNode | null | undefined): node is CollapsibleTitleNode {
|
||||
|
||||
@@ -1,4 +1,12 @@
|
||||
import { DOMConversionMap, DOMExportOutput, EditorConfig, ElementFormatType, LexicalEditor, NodeKey } from 'lexical'
|
||||
import {
|
||||
DOMConversionMap,
|
||||
DOMExportOutput,
|
||||
EditorConfig,
|
||||
ElementFormatType,
|
||||
LexicalEditor,
|
||||
LexicalUpdateJSON,
|
||||
NodeKey,
|
||||
} from 'lexical'
|
||||
import { DecoratorBlockNode } from '@lexical/react/LexicalDecoratorBlockNode'
|
||||
import { $createFileNode, convertToFileElement } from './FileUtils'
|
||||
import FileComponent from './FileComponent'
|
||||
@@ -24,18 +32,17 @@ export class FileNode extends DecoratorBlockNode implements ItemNodeInterface {
|
||||
}
|
||||
|
||||
static importJSON(serializedNode: SerializedFileNode): FileNode {
|
||||
const node = $createFileNode(serializedNode.fileUuid)
|
||||
node.setFormat(serializedNode.format)
|
||||
node.setZoomLevel(serializedNode.zoomLevel)
|
||||
return node
|
||||
return $createFileNode(serializedNode.fileUuid).updateFromJSON(serializedNode)
|
||||
}
|
||||
|
||||
updateFromJSON(serializedNode: LexicalUpdateJSON<SerializedFileNode>): this {
|
||||
return super.updateFromJSON(serializedNode).setZoomLevel(serializedNode.zoomLevel)
|
||||
}
|
||||
|
||||
exportJSON(): SerializedFileNode {
|
||||
return {
|
||||
...super.exportJSON(),
|
||||
fileUuid: this.getId(),
|
||||
version: 1,
|
||||
type: 'snfile',
|
||||
zoomLevel: this.__zoomLevel,
|
||||
}
|
||||
}
|
||||
@@ -70,9 +77,10 @@ export class FileNode extends DecoratorBlockNode implements ItemNodeInterface {
|
||||
return `[File: ${this.__id}]`
|
||||
}
|
||||
|
||||
setZoomLevel(zoomLevel: number): void {
|
||||
const writable = this.getWritable()
|
||||
writable.__zoomLevel = zoomLevel
|
||||
setZoomLevel(zoomLevel: number): this {
|
||||
const self = this.getWritable()
|
||||
self.__zoomLevel = zoomLevel
|
||||
return self
|
||||
}
|
||||
|
||||
decorate(_editor: LexicalEditor, config: EditorConfig): JSX.Element {
|
||||
|
||||
@@ -4,8 +4,6 @@ import { SerializedDecoratorBlockNode } from '@lexical/react/LexicalDecoratorBlo
|
||||
export type SerializedFileNode = Spread<
|
||||
{
|
||||
fileUuid: string
|
||||
version: 1
|
||||
type: 'snfile'
|
||||
zoomLevel: number
|
||||
},
|
||||
SerializedDecoratorBlockNode
|
||||
|
||||
@@ -13,8 +13,6 @@ import InlineFileComponent from './InlineFileComponent'
|
||||
|
||||
type SerializedInlineFileNode = Spread<
|
||||
{
|
||||
version: 1
|
||||
type: 'inline-file'
|
||||
fileName: string | undefined
|
||||
mimeType: string
|
||||
src: string
|
||||
@@ -43,7 +41,11 @@ export class InlineFileNode extends DecoratorBlockNode {
|
||||
}
|
||||
|
||||
static importJSON(serializedNode: SerializedInlineFileNode): InlineFileNode {
|
||||
const node = $createInlineFileNode(serializedNode.src, serializedNode.mimeType, serializedNode.fileName)
|
||||
const node = $createInlineFileNode(
|
||||
serializedNode.src,
|
||||
serializedNode.mimeType,
|
||||
serializedNode.fileName,
|
||||
).updateFromJSON(serializedNode)
|
||||
return node
|
||||
}
|
||||
|
||||
@@ -53,8 +55,6 @@ export class InlineFileNode extends DecoratorBlockNode {
|
||||
src: this.__src,
|
||||
mimeType: this.__mimeType,
|
||||
fileName: this.__fileName,
|
||||
version: 1,
|
||||
type: 'inline-file',
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -16,15 +16,13 @@ export class BubbleNode extends DecoratorNode<JSX.Element> implements ItemNodeIn
|
||||
}
|
||||
|
||||
static importJSON(serializedNode: SerializedBubbleNode): BubbleNode {
|
||||
const node = $createBubbleNode(serializedNode.itemUuid)
|
||||
return node
|
||||
return $createBubbleNode(serializedNode.itemUuid).updateFromJSON(serializedNode)
|
||||
}
|
||||
|
||||
override exportJSON(): SerializedBubbleNode {
|
||||
return {
|
||||
...super.exportJSON(),
|
||||
itemUuid: this.getId(),
|
||||
version: 1,
|
||||
type: 'snbubble',
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -3,8 +3,6 @@ import { Spread, SerializedLexicalNode } from 'lexical'
|
||||
export type SerializedBubbleNode = Spread<
|
||||
{
|
||||
itemUuid: string
|
||||
version: 1
|
||||
type: 'snbubble'
|
||||
},
|
||||
SerializedLexicalNode
|
||||
>
|
||||
|
||||
@@ -13,8 +13,6 @@ import RemoteImageComponent from './RemoteImageComponent'
|
||||
|
||||
type SerializedRemoteImageNode = Spread<
|
||||
{
|
||||
version: 1
|
||||
type: 'unencrypted-image'
|
||||
alt: string | undefined
|
||||
src: string
|
||||
},
|
||||
@@ -40,8 +38,7 @@ export class RemoteImageNode extends DecoratorBlockNode {
|
||||
}
|
||||
|
||||
static importJSON(serializedNode: SerializedRemoteImageNode): RemoteImageNode {
|
||||
const node = $createRemoteImageNode(serializedNode.src, serializedNode.alt)
|
||||
return node
|
||||
return $createRemoteImageNode(serializedNode.src, serializedNode.alt).updateFromJSON(serializedNode)
|
||||
}
|
||||
|
||||
exportJSON(): SerializedRemoteImageNode {
|
||||
@@ -49,8 +46,6 @@ export class RemoteImageNode extends DecoratorBlockNode {
|
||||
...super.exportJSON(),
|
||||
src: this.__src,
|
||||
alt: this.__alt,
|
||||
version: 1,
|
||||
type: 'unencrypted-image',
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user