1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- import type {
- EditorConfig,
- LexicalNode,
- NodeKey,
- SerializedTextNode,
- } from 'lexical'
- import {
- $applyNodeReplacement,
- TextNode,
- } from 'lexical'
- export class VariableValueBlockNode extends TextNode {
- static getType(): string {
- return 'variable-value-block'
- }
- static clone(node: VariableValueBlockNode): VariableValueBlockNode {
- return new VariableValueBlockNode(node.__text, node.__key)
- }
- constructor(text: string, key?: NodeKey) {
- super(text, key)
- }
- createDOM(config: EditorConfig): HTMLElement {
- const element = super.createDOM(config)
- element.classList.add('inline-flex', 'items-center', 'px-0.5', 'h-[22px]', 'text-[#155EEF]', 'rounded-[5px]', 'align-middle')
- return element
- }
- static importJSON(serializedNode: SerializedTextNode): TextNode {
- const node = $createVariableValueBlockNode(serializedNode.text)
- node.setFormat(serializedNode.format)
- node.setDetail(serializedNode.detail)
- node.setMode(serializedNode.mode)
- node.setStyle(serializedNode.style)
- return node
- }
- exportJSON(): SerializedTextNode {
- return {
- detail: this.getDetail(),
- format: this.getFormat(),
- mode: this.getMode(),
- style: this.getStyle(),
- text: this.getTextContent(),
- type: 'variable-value-block',
- version: 1,
- }
- }
- canInsertTextBefore(): boolean {
- return false
- }
- }
- export function $createVariableValueBlockNode(text = ''): VariableValueBlockNode {
- return $applyNodeReplacement(new VariableValueBlockNode(text))
- }
- export function $isVariableValueNodeBlock(
- node: LexicalNode | null | undefined,
- ): node is VariableValueBlockNode {
- return node instanceof VariableValueBlockNode
- }
|