mirror of
				https://github.com/langgenius/dify.git
				synced 2025-10-30 18:33:30 +00:00 
			
		
		
		
	
		
			
	
	
		
			60 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
		
		
			
		
	
	
			60 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
|   | 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 | ||
|  | } |