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.47 kB
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("lexical");function t(e){const t=e.textContent;if(null!==t){return{node:r(t)}}return null}class n extends e.TextNode{static getType(){return"mention"}static clone(e){return new n(e.mentionText,e.mentionUser,e.__text,e.__key)}static importJSON(e){const t=r(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:t,priority:1}:null}}isTextEntity(){return!0}canInsertTextBefore(){return!1}canInsertTextAfter(){return!1}}function r(t,r){const o=new n(t,r);return o.setMode("token").toggleDirectionless(),e.$applyNodeReplacement(o)}exports.MentionNode=n,exports.createMentionNode=r;