1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- import type { LexicalNode, SerializedLexicalNode } from 'lexical'
- import { DecoratorNode } from 'lexical'
- import QueryBlockComponent from './component'
- export type SerializedNode = SerializedLexicalNode
- export class QueryBlockNode extends DecoratorNode<JSX.Element> {
- static getType(): string {
- return 'query-block'
- }
- static clone(): QueryBlockNode {
- return new QueryBlockNode()
- }
- isInline(): boolean {
- return true
- }
- createDOM(): HTMLElement {
- const div = document.createElement('div')
- div.classList.add('inline-flex', 'items-center', 'align-middle')
- return div
- }
- updateDOM(): false {
- return false
- }
- decorate(): JSX.Element {
- return <QueryBlockComponent nodeKey={this.getKey()} />
- }
- static importJSON(): QueryBlockNode {
- const node = $createQueryBlockNode()
- return node
- }
- exportJSON(): SerializedNode {
- return {
- type: 'query-block',
- version: 1,
- }
- }
- getTextContent(): string {
- return '{{#query#}}'
- }
- }
- export function $createQueryBlockNode(): QueryBlockNode {
- return new QueryBlockNode()
- }
- export function $isQueryBlockNode(
- node: QueryBlockNode | LexicalNode | null | undefined,
- ): node is QueryBlockNode {
- return node instanceof QueryBlockNode
- }
|