| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101 | 
							- import type { LexicalNode, NodeKey, SerializedLexicalNode } from 'lexical'
 
- import { DecoratorNode } from 'lexical'
 
- import ContextBlockComponent from './component'
 
- import type { Dataset } from './index'
 
- export type SerializedNode = SerializedLexicalNode & { datasets: Dataset[]; onAddContext: () => void; canNotAddContext: boolean }
 
- export class ContextBlockNode extends DecoratorNode<JSX.Element> {
 
-   __datasets: Dataset[]
 
-   __onAddContext: () => void
 
-   __canNotAddContext: boolean
 
-   static getType(): string {
 
-     return 'context-block'
 
-   }
 
-   static clone(node: ContextBlockNode): ContextBlockNode {
 
-     return new ContextBlockNode(node.__datasets, node.__onAddContext, node.getKey(), node.__canNotAddContext)
 
-   }
 
-   isInline(): boolean {
 
-     return true
 
-   }
 
-   constructor(datasets: Dataset[], onAddContext: () => void, key?: NodeKey, canNotAddContext?: boolean) {
 
-     super(key)
 
-     this.__datasets = datasets
 
-     this.__onAddContext = onAddContext
 
-     this.__canNotAddContext = canNotAddContext || false
 
-   }
 
-   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 (
 
-       <ContextBlockComponent
 
-         nodeKey={this.getKey()}
 
-         datasets={this.getDatasets()}
 
-         onAddContext={this.getOnAddContext()}
 
-         canNotAddContext={this.getCanNotAddContext()}
 
-       />
 
-     )
 
-   }
 
-   getDatasets(): Dataset[] {
 
-     const self = this.getLatest()
 
-     return self.__datasets
 
-   }
 
-   getOnAddContext(): () => void {
 
-     const self = this.getLatest()
 
-     return self.__onAddContext
 
-   }
 
-   getCanNotAddContext(): boolean {
 
-     const self = this.getLatest()
 
-     return self.__canNotAddContext
 
-   }
 
-   static importJSON(serializedNode: SerializedNode): ContextBlockNode {
 
-     const node = $createContextBlockNode(serializedNode.datasets, serializedNode.onAddContext, serializedNode.canNotAddContext)
 
-     return node
 
-   }
 
-   exportJSON(): SerializedNode {
 
-     return {
 
-       type: 'context-block',
 
-       version: 1,
 
-       datasets: this.getDatasets(),
 
-       onAddContext: this.getOnAddContext(),
 
-       canNotAddContext: this.getCanNotAddContext(),
 
-     }
 
-   }
 
-   getTextContent(): string {
 
-     return '{{#context#}}'
 
-   }
 
- }
 
- export function $createContextBlockNode(datasets: Dataset[], onAddContext: () => void, canNotAddContext?: boolean): ContextBlockNode {
 
-   return new ContextBlockNode(datasets, onAddContext, undefined, canNotAddContext)
 
- }
 
- export function $isContextBlockNode(
 
-   node: ContextBlockNode | LexicalNode | null | undefined,
 
- ): boolean {
 
-   return node instanceof ContextBlockNode
 
- }
 
 
  |