UNPKG

@nexusui/components

Version:

These are custom components specially-developed for NexusUI applications. They will make your life easier by giving you out-of-the-box implementations for various high-level UI elements that you can drop directly into your application.

2 lines (1 loc) 1.41 kB
import{TextNode as e,$applyNodeReplacement as t}from"lexical";function n(e){const t=e.textContent;if(null!==t){return{node:o(t)}}return null}class r extends e{static getType(){return"mention"}static clone(e){return new r(e.mentionText,e.mentionUser,e.__text,e.__key)}static importJSON(e){const t=o(e.mentionText,e.mentionUser);return t.setTextContent(e.text),t.setFormat(e.format),t.setDetail(e.detail),t.setMode(e.mode),t.setStyle(e.style),t}constructor(e,t,n,r){super(n??e,r),Object.defineProperty(this,"mentionText",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"mentionUser",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.mentionText=e,this.mentionUser=t}exportJSON(){return{...super.exportJSON(),mentionText:this.mentionText,mentionUser:this.mentionUser,type:"mention",version:1}}createDOM(e){const t=super.createDOM(e);return t.className="NexusRichTextMentionNode-mention",t}exportDOM(){const e=document.createElement("span");return e.setAttribute("data-lexical-mention","true"),e.textContent=this.__text,{element:e}}static importDOM(){return{span:e=>e.hasAttribute("data-lexical-mention")?{conversion:n,priority:1}:null}}isTextEntity(){return!0}canInsertTextBefore(){return!1}canInsertTextAfter(){return!1}}function o(e,n){const o=new r(e,n);return o.setMode("token").toggleDirectionless(),t(o)}export{r as MentionNode,o as createMentionNode};