sykpcomposer 1.20.133 → 1.20.134
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{ImageComponent-3627f884.js → ImageComponent-26d24c20.js} +3 -3
- package/dist/{ImageComponent-3627f884.js.map → ImageComponent-26d24c20.js.map} +1 -1
- package/dist/{InlineImageComponent-63638e68.js → InlineImageComponent-982a1399.js} +3 -3
- package/dist/{InlineImageComponent-63638e68.js.map → InlineImageComponent-982a1399.js.map} +1 -1
- package/dist/{LexicalNestedComposer.prod-b5a6e731.js → LexicalNestedComposer.prod-fb4b9ebf.js} +2 -2
- package/dist/{LexicalNestedComposer.prod-b5a6e731.js.map → LexicalNestedComposer.prod-fb4b9ebf.js.map} +1 -1
- package/dist/{PollComponent-029dec37.js → PollComponent-18f1d6e1.js} +2 -2
- package/dist/{PollComponent-029dec37.js.map → PollComponent-18f1d6e1.js.map} +1 -1
- package/dist/{index-88bdacf5.js → index-dd17fa67.js} +51 -42
- package/dist/{index-88bdacf5.js.map → index-dd17fa67.js.map} +1 -1
- package/dist/index.es.js +1 -1
- package/dist/index.umd.js +4 -4
- package/dist/index.umd.js.map +1 -1
- package/dist/style.css +1 -1
- package/package.json +2 -2
package/dist/index.umd.js
CHANGED
|
@@ -101,7 +101,7 @@ Valid keys: `+JSON.stringify(Object.keys(U),null," "));var Y=X(J,Z,G,P,W+"."+Z,
|
|
|
101
101
|
overflow-wrap: break-word;
|
|
102
102
|
white-space: normal;
|
|
103
103
|
}
|
|
104
|
-
</style></head><body>`,e="</body></html>",s=t||wd(".ContentEditable__root").html(),r=uO(s),o=cO(r),a=await iN(o),c=n+a+e,i=new Blob([c],{type:"application/msword"});lO.saveAs(i,`${l||"Exported"}.doc`)};async function iN(l){const n=new DOMParser().parseFromString(l,"text/html");return n.querySelectorAll("h6").forEach(r=>r.remove()),Object.entries({h1:{fontSize:"14.5px",fontWeight:"bold",fontStyle:"normal"},h2:{fontSize:"14.5px",fontWeight:"bold",fontStyle:"italic"},h3:{fontSize:"14.5px",fontWeight:"100",fontStyle:"italic"}}).forEach(([r,o])=>{n.querySelectorAll(r).forEach(a=>{a.style.fontSize=o.fontSize,a.style.fontWeight=o.fontWeight,a.style.fontStyle=o.fontStyle,a.style.fontFamily='"Times New Roman", Times, serif'})}),await lN(n.body.innerHTML)}async function sN(l){return new Promise((t,n)=>{const e=new Image;e.crossOrigin="Anonymous",e.onload=()=>{const s=document.createElement("canvas");s.width=e.width,s.height=e.height,s.getContext("2d").drawImage(e,0,0),t(s.toDataURL("image/png"))},e.onerror=()=>n(new Error("Failed to load AVIF image.")),e.src=l})}function aN(){const l=document.createElement("div");return l.style.position="absolute",l.style.visibility="hidden",l.style.pointerEvents="none",l.style.width="1000px",l.style.zIndex=-1,document.body.appendChild(l),l}async function lN(l){const t=aN();t.innerHTML=l;const n=t.querySelectorAll("img");await Promise.all(Array.from(n).map(async r=>{if(/^data:image\/avif/.test(r.src))try{r.src=await sN(r.src),r.alt="Converted from AVIF"}catch{}})),n.forEach(r=>{const a=r.offsetWidth||r.naturalWidth,c=r.offsetHeight||r.naturalHeight;a>600?(r.setAttribute("width",600),r.style.width="600px",r.style.height="auto"):(r.setAttribute("width",a),r.setAttribute("height",c),r.style.width=`${a}px`,r.style.height=`${c}px`)}),t.querySelectorAll("table").forEach(r=>{var c;const a=600/(((c=r.rows[0])==null?void 0:c.cells.length)||1);r.style.width="600px",r.style.maxWidth="600px",r.style.tableLayout="fixed",r.style.borderCollapse="collapse",r.querySelectorAll("th, td").forEach(i=>{i.style.width=`${a}px`,i.style.maxWidth=`${a}px`,i.style.overflow="hidden",i.style.wordBreak="break-word",i.style.whiteSpace="normal"})});const s=t.innerHTML;return document.body.removeChild(t),s}const cN="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgZmlsbD0iY3VycmVudENvbG9yIiBjbGFzcz0iYmkgYmktbGlzdC11bCI+PHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNNSAxMS41YS41LjUgMCAwIDEgLjUtLjVoOWEuNS41IDAgMCAxIDAgMWgtOWEuNS41IDAgMCAxLS41LS41em0wLTRhLjUuNSAwIDAgMSAuNS0uNWg5YS41LjUgMCAwIDEgMCAxaC05YS41LjUgMCAwIDEtLjUtLjV6bTAtNGEuNS41IDAgMCAxIC41LS41aDlhLjUuNSAwIDAgMSAwIDFoLTlhLjUuNSAwIDAgMS0uNS0uNXptLTMgMWExIDEgMCAxIDAgMC0yIDEgMSAwIDAgMCAwIDJ6bTAgNGExIDEgMCAxIDAgMC0yIDEgMSAwIDAgMCAwIDJ6bTAgNGExIDEgMCAxIDAgMC0yIDEgMSAwIDAgMCAwIDJ6Ii8+PC9zdmc+",uN="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgZmlsbD0iY3VycmVudENvbG9yIiBjbGFzcz0iYmkgYmktbGlzdC1vbCI+PHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNNSAxMS41YS41LjUgMCAwIDEgLjUtLjVoOWEuNS41IDAgMCAxIDAgMWgtOWEuNS41IDAgMCAxLS41LS41em0wLTRhLjUuNSAwIDAgMSAuNS0uNWg5YS41LjUgMCAwIDEgMCAxaC05YS41LjUgMCAwIDEtLjUtLjV6bTAtNGEuNS41IDAgMCAxIC41LS41aDlhLjUuNSAwIDAgMSAwIDFoLTlhLjUuNSAwIDAgMS0uNS0uNXoiLz48cGF0aCBkPSJNMS43MTMgMTEuODY1di0uNDc0SDJjLjIxNyAwIC4zNjMtLjEzNy4zNjMtLjMxNyAwLS4xODUtLjE1OC0uMzEtLjM2MS0uMzEtLjIyMyAwLS4zNjcuMTUyLS4zNzMuMzFoLS41OWMuMDE2LS40NjcuMzczLS43ODcuOTg2LS43ODcuNTg4LS4wMDIuOTU0LjI5MS45NTcuNzAzYS41OTUuNTk1IDAgMCAxLS40OTIuNTk0di4wMzNhLjYxNS42MTUgMCAwIDEgLjU2OS42MzFjLjAwMy41MzMtLjUwMi44LTEuMDUxLjgtLjY1NiAwLTEtLjM3LTEuMDA4LS43OTRoLjU4MmMuMDA4LjE3OC4xODYuMzA2LjQyMi4zMDkuMjU0IDAgLjQyNC0uMTQ1LjQyMi0uMzUtLjAwMi0uMTk1LS4xNTUtLjM0OC0uNDE0LS4zNDhoLS4zem0tLjAwNC00LjY5OWgtLjYwNHYtLjAzNWMwLS40MDguMjk1LS44NDQuOTU4LS44NDQuNTgzIDAgLjk2LjMyNi45Ni43NTYgMCAuMzg5LS4yNTcuNjE3LS40NzYuODQ4bC0uNTM3LjU3MnYuMDNoMS4wNTRWOUgxLjE0M3YtLjM5NWwuOTU3LS45OWMuMTM4LS4xNDIuMjkzLS4zMDQuMjkzLS41MDggMC0uMTgtLjE0Ny0uMzItLjM0Mi0uMzJhLjMzLjMzIDAgMCAwLS4zNDIuMzM4di4wNDF6TTIuNTY0IDVoLS42MzVWMi45MjRoLS4wMzFsLS41OTguNDJ2LS41NjdsLjYyOS0uNDQzaC42MzVWNXoiLz48L3N2Zz4=",dN=({onlUser:l,collabApiKey:t,htmlPasteModalOpen:n,sethtmlPasteModalOpen:e,passedContent:s,onPaste:r,source:o})=>{he.useRef(null);const[a,c]=he.useState(""),[i,u]=he.useState(""),[d]=yn(),f=he.useRef();he.useRef(null);const p=()=>{u({root:{type:"root",version:1,children:[{children:[],direction:"ltr",format:"",indent:0,type:"text",version:1}],direction:"ltr",format:"",indent:0}}),c("")};he.useEffect(()=>{p()},[]);const h=()=>{e(!1),c(" "),p()},m=C=>{const T=/display:\s*([^;]+);/,R=C.match(T);if(R)return R[1]};function g(){const[C]=yn(),T=(F,I)=>{C.update(()=>{const B=En(),A=rr(`${F}`);A.setStyle(I.style),A.setFormat(I.format),B.append(A),C.getRootElement()&&F&&F.length>0&&(C.getEditorState().read(()=>In()),Cl(B))})},R=()=>{let F=y(a);_(a),F.root.children.map((I,B)=>{if(I&&I.text&&I.text.trim("")&&I.text.trim("").length>1&&I.style&&I.style.length>10&&m(I.style)==="block"){let A=I.order.split("_")[1];setTimeout(()=>{T(I.text.trim(""),I)},A*2)}}),h()};return ae.jsx("button",{onClick:R,ref:f,style:{display:"none"}})}function v(C,T){const R=/font-weight:\s*([a-zA-Z0-9\-]+);/,F=/text-decoration:\s*([^;]+?)(?=\s*;|\s*$)/,I=/font-style:\s*([a-zA-Z0-9\-]+);/,B=/font-size:\s*([\d.]+(?:px|pt|em|rem|%)?)/,A=/color:\s*([^;]+)/,j=C.match(R),O=C.match(F),L=C.match(I),N=C.match(B),U=C.match(A),D=j?j[1]:null,z=O?O[1]:null,K=L?L[1]:null,G=N?N[1]:null,P=U?U[1]:null;let J={"font-weight":D&&D!==null?D:"none","text-decoration":z&&z!==null?z:"none","font-style":K&&K!==null?K:"none","font-size":"none",display:["span","table","tbody","tr","td"].includes(T)?"block":"none",color:P&&P!=="transparent"?P:"black"};function H(Z){return Object.entries(Z).map(([X,Y])=>`${X}: ${Y};`).join(" ")}return{cssString:H(J),fontSize:G&&G!==null?G:"none",fontWeight:D&&D!==null?D:"none",fontStyle:K&&K!==null?K:"none",textDecoration:z&&z!==null?z:"none"}}const b=(C,T)=>{const R=new RegExp(`${T}:\\s*([^;]+)`),F=C.match(R);return F?F[1].trim():null},_=C=>{const T=new DOMParser,R=w(C),I=T.parseFromString(R,"text/html").querySelectorAll("img");Array.from(I).map(B=>{const O=B.getAttribute("id").split("_")[1]*2;setTimeout(()=>{d.update(()=>{const L=B.src,N=B.textContent,D=kc({src:L,altText:N});In(),Cl(D)})},O)})};function E(C,T){const R=Array.from(C.querySelectorAll("tr")),B=C.getAttribute("id").split("_")[1]*2;setTimeout(()=>{T.update(()=>{const A=jp();R.forEach(O=>{const L=Al();Array.from(O.querySelectorAll("td")).forEach(U=>{const D=Si();let G=Array.from(U.querySelectorAll("span")).map(X=>{const Y=X.getAttribute("style")||"";return{text:X.innerText.trim(),style:Y}}).map(X=>X.style).filter(X=>X).map(X=>X.split(";").map(Y=>Y.trim()).filter(Y=>!Y.startsWith("font-family")).filter(Y=>!Y.startsWith("font-size")).filter(Y=>!Y.startsWith("border")).filter(Y=>!Y.startsWith("width")).join("; ")).join("; ");const P=b(G,"font-weight"),W=b(G,"font-style"),J=b(G,"text-decoration");G=`${G}; font-weight: ${P}`,G=`${G}; font-style: ${W}`,G=`${G}; color: black`,G=`${G}; text-decoration: ${J}`;const H=rr(U.innerText.trim()),$=S(P,W,J);H.setFormat($),G&&H.setStyle(G);const Z=En();Z.append(H),D.append(Z),L.append(D)}),A.append(L)}),In()&&Cl(A)})},B)}function S(C,T,R){return C==="bold"&&T==="italic"&&R==="underline line-through"?15:R==="underline line-through"?12:T==="italic"&&R==="line-through"?6:T==="italic"&&R==="underline"?11:C==="bold"&&R==="line-through"?5:C==="bold"&&R==="underline"?9:C==="bold"&&T==="italic"?3:C==="bold"?1:T==="italic"?2:R==="underline"?8:R==="line-through"?4:0}function w(C){const R=new DOMParser().parseFromString(C,"text/html");let F=1;function I(B){if(B.nodeType===1){const A=`order_${F++}`;B.setAttribute("data-title",A),B.setAttribute("id",A)}B.childNodes.forEach(A=>I(A))}return I(R.body),R.body.innerHTML}function y(C){const T=new DOMParser,R=w(C),F=T.parseFromString(R,"text/html");F.querySelectorAll("[aria-level]").forEach(U=>{const K=U.getAttribute("id").split("_")[1]*2;setTimeout(()=>{d.update(()=>{const G=kl(`${U.getAttribute("aria-level")==="1"?"h1":U.getAttribute("aria-level")==="2"?"h2":U.getAttribute("aria-level")==="3"?"h3":U.getAttribute("aria-level")==="4"?"h4":"h5"}`),P=rr(U.innerText);G.append(P),Cl(G)})},K)}),F.querySelectorAll("ul").forEach(U=>{const K=U.getAttribute("id").split("_")[1]*2;setTimeout(()=>{d.update(()=>{const G=Ho("ul"),P=ni(),W=rr(`${U.textContent}`);let $=Array.from(U.querySelectorAll("span")).map(ee=>{const ie=ee.getAttribute("style")||"";return{text:ee.innerText.trim(),style:ie}}).map(ee=>ee.style).filter(ee=>ee).map(ee=>ee.split(";").map(ie=>ie.trim()).filter(ie=>!ie.startsWith("font-family")).filter(ie=>!ie.startsWith("font-size")).filter(ie=>!ie.startsWith("border")).filter(ie=>!ie.startsWith("width")).join("; ")).join("; ");const Z=b($,"font-weight"),X=b($,"font-style"),Y=b($,"text-decoration");$=`${$}; font-weight: ${Z}`,$=`${$}; font-style: ${X}`,$=`${$}; color: black`,$=`${$}; text-decoration: ${Y}`,$&&W.setStyle($),P.append(W),G.append(P),In(),Cl(G)})},K)}),F.querySelectorAll("ol").forEach(U=>{const K=U.getAttribute("id").split("_")[1]*2;setTimeout(()=>{d.update(()=>{const G=Ho("ol"),P=ni(),W=rr(`${U.textContent}`);let $=Array.from(U.querySelectorAll("span")).map(ie=>{const fe=ie.getAttribute("style")||"";return{text:ie.innerText.trim(),style:fe}}).map(ie=>ie.style).filter(ie=>ie).map(ie=>ie.split(";").map(fe=>fe.trim()).filter(fe=>!fe.startsWith("font-family")).filter(fe=>!fe.startsWith("font-size")).filter(fe=>!fe.startsWith("border")).filter(fe=>!fe.startsWith("width")).join("; ")).join("; ");const Z=b($,"font-weight"),X=b($,"font-style"),Y=b($,"text-decoration");$=`${$}; font-weight: ${Z}`,$=`${$}; font-style: ${X}`,$=`${$}; color: black`,$=`${$}; text-decoration: ${Y}`;let ee=S(X,Z,Y);W.setFormat(ee),$&&W.setStyle($),P.append(W),G.append(P),In(),Cl(G)})},K)}),F.querySelectorAll("table").forEach(U=>{E(U,d)});const O=F.querySelectorAll("*"),L=Array.from(O).filter(U=>!U.closest("table")).filter(U=>!U.closest("ol")).filter(U=>!U.closest("ul")).map(U=>({elemText:U.innerText,tagName:U.tagName.toLowerCase(),style:U.getAttribute("style")||"",order:U.getAttribute("id")||""}));let N=i;return L.map(U=>{let D=v(U.style,U.tagName);const{cssString:z,fontSize:K,fontWeight:G,textDecoration:P,fontStyle:W,border:J}=D||{};if(U.style&&U.style.length>0&&U.elemText.trim(" ").length&&K!=="none"&&G!==null&&P!==null&&W!==null){let H=S(G,W,P);const $=U.elemText.match(/^ {10,}/);let Z=z;$&&(Z=`${Z}; text-align: left;`),N.root.children.push({detail:0,format:H,mode:"normal",style:`${Z}`,text:`${U.elemText}`,type:"text",version:1,order:U.order})}}),N}he.useEffect(()=>()=>{c(" ")},[]);const x=()=>{e(!0),setTimeout(()=>{var C;(C=f.current)==null||C.click()},200)};return he.useEffect(C=>{n&&(c(s),x())},[n]),ae.jsx(ae.Fragment,{children:ae.jsx(g,{})})},fN="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz48IS0tIFVwbG9hZGVkIHRvOiBTVkcgUmVwbywgd3d3LnN2Z3JlcG8uY29tLCBHZW5lcmF0b3I6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPg0KPHN2ZyB3aWR0aD0iODAwcHgiIGhlaWdodD0iODAwcHgiIHZpZXdCb3g9IjAgMCAyNCAyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBtaXJyb3ItaW4tcnRsPSJ0cnVlIj4NCiAgPGNpcmNsZSBmaWxsPSIjNDk0YzRlIiBjeD0iMiIgY3k9IjIiIHI9IjIiLz4NCiAgPGNpcmNsZSBmaWxsPSIjNDk0YzRlIiBjeD0iMiIgY3k9IjgiIHI9IjIiLz4NCiAgPGNpcmNsZSBmaWxsPSIjNDk0YzRlIiBjeD0iMiIgY3k9IjIwIiByPSIyIi8+DQogIDxjaXJjbGUgZmlsbD0iIzQ5NGM0ZSIgY3g9IjIiIGN5PSIxNCIgcj0iMiIvPg0KICA8cGF0aCBmaWxsPSIjNDk0YzRlIiBkPSJNMjMuMDAyIDNINy45OThDNy40NDggMyA3IDIuNTUgNyAyLjAwMnYtLjAwNGMwLS41NS40NS0uOTk4Ljk5OC0uOTk4SDIzYy41NSAwIDEgLjQ1IDEgLjk5OFYyYzAgLjU1LS40NSAxLS45OTggMXpNMjMuMDAyIDlINy45OThDNy40NDggOSA3IDguNTUgNyA4LjAwMnYtLjAwNGMwLS41NS40NS0uOTk4Ljk5OC0uOTk4SDIzYy41NSAwIDEgLjQ1IDEgLjk5OFY4YzAgLjU1LS40NSAxLS45OTggMXpNMjMuMDAyIDE1SDcuOTk4Yy0uNTUgMC0uOTk4LS40NS0uOTk4LS45OThWMTRjMC0uNTUuNDUtMSAuOTk4LTFIMjNjLjU1IDAgMSAuNDUgMSAuOTk4VjE0YzAgLjU1LS40NSAxLS45OTggMXpNMjMuMDAyIDIxSDcuOTk4Yy0uNTUgMC0uOTk4LS40NS0uOTk4LS45OThWMjBjMC0uNTUuNDUtMSAuOTk4LTFIMjNjLjU1IDAgMSAuNDUgMSAuOTk4VjIwYzAgLjU1LS40NSAxLS45OTggMXoiLz4NCjwvc3ZnPg==",pN=[{letter:"Alpha",uppercase:"Α",lowercase:"α"},{letter:"Beta",uppercase:"Β",lowercase:"β"},{letter:"Gamma",uppercase:"Γ",lowercase:"γ"},{letter:"Delta",uppercase:"Δ",lowercase:"δ"},{letter:"Epsilon",uppercase:"Ε",lowercase:"ε"},{letter:"Zeta",uppercase:"Ζ",lowercase:"ζ"},{letter:"Eta",uppercase:"Η",lowercase:"η"},{letter:"Theta",uppercase:"Θ",lowercase:"θ"},{letter:"Iota",uppercase:"Ι",lowercase:"ι"},{letter:"Kappa",uppercase:"Κ",lowercase:"κ"},{letter:"Lambda",uppercase:"Λ",lowercase:"λ"},{letter:"Mu",uppercase:"Μ",lowercase:"μ"},{letter:"Nu",uppercase:"Ν",lowercase:"ν"},{letter:"Xi",uppercase:"Ξ",lowercase:"ξ"},{letter:"Omicron",uppercase:"Ο",lowercase:"ο"},{letter:"Pi",uppercase:"Π",lowercase:"π"},{letter:"Rho",uppercase:"Ρ",lowercase:"ρ"},{letter:"Sigma",uppercase:"Σ",lowercase:"σ"},{letter:"Tau",uppercase:"Τ",lowercase:"τ"},{letter:"Upsilon",uppercase:"Υ",lowercase:"υ"},{letter:"Phi",uppercase:"Φ",lowercase:"φ"},{letter:"Chi",uppercase:"Χ",lowercase:"χ"},{letter:"Psi",uppercase:"Ψ",lowercase:"ψ"},{letter:"Omega",uppercase:"Ω",lowercase:"ω"},{letter:"Digamma",uppercase:"Ϝ",lowercase:"ϝ"}];function hN(){const[l]=yn(),[t,n]=he.useState(!1),e=s=>{l.update(()=>{var o;const r=jt();if(St(r)){const a=r.anchor.getNode();let c="inherit";if(a instanceof Zr){const u=a.getStyle();c=((o=u==null?void 0:u.match(/font-size:\s*(\S+);/))==null?void 0:o[1])||c}const i=rr(s);r.insertNodes([i])}}),n(!1)};return ae.jsx("div",{title:"Symbols",className:"symbol-dropdown",children:ae.jsx(Il,{buttonClassName:"toolbar-item block-controls",buttonAriaLabel:"For applying Symbols",buttonLabel:"Symbols",children:ae.jsx("div",{className:"symbol-container",children:pN.map(({letter:s,uppercase:r,lowercase:o})=>ae.jsxs("div",{className:"symbol-pair",children:[ae.jsx(Gr,{className:"symbol-item",onClick:()=>e(o),children:o}),ae.jsx(Gr,{className:"symbol-item",onClick:()=>e(r),children:r})]},s))})})})}const gN={bullet:"Bulleted List",check:"Check List",code:"Code Block",h1:"Heading 1",h2:"Heading 2",h3:"Heading 3",h4:"Heading 4",h5:"Heading 5",h6:"Heading 6",number:"Numbered List",paragraph:"Normal",quote:"Quote"};function mN(){const l=[];for(const[t,n]of Object.entries(N_))l.push([t,n]);return l}const yN=mN(),vN={center:{icon:"center-align",iconRTL:"center-align",name:"Center Align"},end:{icon:"right-align",iconRTL:"left-align",name:"End Align"},justify:{icon:"justify-align",iconRTL:"justify-align",name:"Justify Align"},left:{icon:"left-align",iconRTL:"left-align",name:"Left Align"},right:{icon:"right-align",iconRTL:"right-align",name:"Right Align"},start:{icon:"left-align",iconRTL:"right-align",name:"Start Align"}};function Zp(l){return l?"active dropdown-item-active":""}function Ad(){return ae.jsx("div",{className:"divider"})}function bN({editor:l,value:t,isRTL:n,disabled:e=!1}){const s=vN[t||"left"];return ae.jsxs(Il,{disabled:e,buttonLabel:s.name,buttonIconClassName:`icon ${n?s.iconRTL:s.icon}`,buttonClassName:"toolbar-item spaced alignment",buttonAriaLabel:"Formatting options for text alignment",children:[ae.jsxs(Gr,{onClick:()=>{l.dispatchCommand(vl,"left")},className:"item",children:[ae.jsx("i",{className:"icon left-align"}),ae.jsx("span",{className:"text",children:"Left Align"})]}),ae.jsxs(Gr,{onClick:()=>{l.dispatchCommand(vl,"center")},className:"item",children:[ae.jsx("i",{className:"icon center-align"}),ae.jsx("span",{className:"text",children:"Center Align"})]}),ae.jsxs(Gr,{onClick:()=>{l.dispatchCommand(vl,"right")},className:"item",children:[ae.jsx("i",{className:"icon right-align"}),ae.jsx("span",{className:"text",children:"Right Align"})]}),ae.jsxs(Gr,{onClick:()=>{l.dispatchCommand(vl,"justify")},className:"item",children:[ae.jsx("i",{className:"icon justify-align"}),ae.jsx("span",{className:"text",children:"Justify Align"})]})]})}function dx({setIsLinkEditMode:l,onlUser:t,styleConfig:n,showComments:e,setShowComments:s,showTabContentBtn:r,setshowTabContentBtn:o,showTabContent:a,parsedHtmlString:c,enableCaptions:i,showPdf:u,userOnline:d,wpAndTaskId:f,editorTitle:p,showCommentPlugin:h,exportToPDF:m}){const[g]=yn(),[v,b]=he.useState(g),[_,E]=he.useState("paragraph"),[S,w]=he.useState("root"),[y,x]=he.useState(null),[C,T]=he.useState("14.5px"),[R,F]=he.useState("#000"),[I,B]=he.useState("#fff"),[A,j]=he.useState("Arial"),[O,L]=he.useState("left"),[N,U]=he.useState(!1),[D,z]=he.useState(!1),[K,G]=he.useState(!1),[P,W]=he.useState(!1),[J,H]=he.useState(!1),[$,Z]=he.useState(!1),[X,Y]=he.useState(!1),[ee,ie]=he.useState(!1),[fe,de]=he.useState(!1),[ne,Ee]=he.useState(!1),[xe,me]=La(),[je,ue]=he.useState(!1),[se,pe]=he.useState(""),[ce,Te]=he.useState(()=>g.isEditable()),[Ae,ke]=he.useState(""),[Me,We]=he.useState(""),[De,Le]=he.useState(""),[Ce,Xe]=he.useState(""),[Ie,Ze]=he.useState(!0),[at,rt]=he.useState(!1),[it,Vt]=he.useState("1"),Qe=1,Kt=ve=>{ve.key==="Enter"&&Le(ze=>ze+1)};he.useEffect(()=>(window.addEventListener("keydown",Kt),()=>window.removeEventListener("keydown",Kt)),[]);const Ht=(ve,ze)=>{const Oe=ve.clipboardData||window.clipboardData,Fe=Oe==null?void 0:Oe.getData("text/html");if(!Fe)return;const st=my(Fe),bt=new DOMParser().parseFromString(st,"text/html"),Ke=Sd(ze,bt);ze.update(()=>{jt()&&Xo(Ke)}),ve.preventDefault()},Zt=ve=>{g.update(()=>{const ze=Ww(ve),Fe=new DOMParser().parseFromString(ze,"text/html"),st=Sd(g,Fe),ut=En();Xo(st),Xo([ut])})};he.useEffect(()=>{const ve=g.registerCommand(vs,ze=>{const Oe=ze.clipboardData||window.clipboardData,Fe=Oe==null?void 0:Oe.getData("text/html"),st=Oe==null?void 0:Oe.getData("text/plain");return Fe!=null&&Fe.includes('<meta http-equiv=Content-Type content="text/html; charset=utf-8">')&&(Fe!=null&&Fe.includes("microsoft-com"))?(pw(ze,g,"",i),!1):/^https?:\/\/\S+$/.test(st)?(ze.preventDefault(),g.update(()=>{const ut=En(),bt=rr(st),Ke=ud(st);Ke.append(bt),ut.append(Ke),Xo([ut])}),!0):Fe&&!(Fe!=null&&Fe.includes("Outline"))&&!(Fe!=null&&Fe.includes('<meta http-equiv=Content-Type content="text/html; charset=utf-8">'))&&!(Fe!=null&&Fe.includes("microsoft-com"))?(Zt(Fe),!0):Fe!=null&&Fe.includes("Outline")?(Xe(Fe),rt(!0),!0):(Ht(ze,g),!0)},Qe);return()=>{ve()}},[Ie]),he.useEffect(()=>{const ve=()=>!!(d&&d.length>1),ze=()=>!!(d&&d.length>1),Oe=g.registerCommand(ic,ve,xi),Fe=g.registerCommand(sc,ze,xi);return()=>{Oe(),Fe()}},[g,d]);const Xt=he.useCallback(()=>{const ve=jt();if(St(ve)){const ze=ve.anchor.getNode();let Oe=ze.getKey()==="root"?ze:er(ze,Ve=>{const ct=Ve.getParent();return ct!==null&&ro(ct)});Oe===null&&(Oe=ze.getTopLevelElementOrThrow());const Fe=Oe.getKey(),st=v.getElementByKey(Fe);z(ve.hasFormat("bold")),G(ve.hasFormat("italic")),W(ve.hasFormat("underline")),H(ve.hasFormat("strikethrough")),Z(ve.hasFormat("subscript")),Y(ve.hasFormat("superscript")),ie(ve.hasFormat("code")),ue(p_(ve));const ut=Fw(ve),bt=ut.getParent();ti(bt)||ti(ut)?U(!0):U(!1);const Ke=er(ut,dr);if(dr(Ke)?w("table"):w("root"),st!==null)if(x(Fe),sr(Oe)){const Ve=y_(ze,pd),ct=Ve?Ve.getListType():Oe.getListType();E(ct)}else{const Ve=zp(Oe)?Oe.getTag():Oe.getType();if(Ve in gN&&E(Ve),Am(Oe)){const ct=Oe.getLanguage();pe(ct?P_[ct]||ct:"");return}}T(ad(ve,"font-size","15px")),F(ad(ve,"color","#000")),B(ad(ve,"background-color","#fff")),j(ad(ve,"font-family","Arial"));let Be;ti(bt)&&(Be=er(ut,Ve=>Tt(Ve)&&!Ve.isInline())),L(Tt(Be)?Be.getFormatType():Tt(ut)?ut.getFormatType():(bt==null?void 0:bt.getFormatType())||"left")}},[v]);he.useEffect(()=>g.registerCommand(ai,(ve,ze)=>{var st;Le("");const Oe=(st=jt())==null?void 0:st.getNodes()[0].__parent;return g.getEditorState()._nodeMap.forEach((ut,bt)=>{if(bt===Oe)return We(ut.__tag)}),Xt(),b(ze),!1},wo),[g,Xt]);function Et(){const ve=document.querySelectorAll(".block-end"),ze=document.querySelectorAll('figure[type="page-break"]'),Oe=Array.from(ve).concat(Array.from(ze));if(Oe.length===0)return;const Fe=Oe.length;Vt(`${Oe.length}`),Oe.forEach((st,ut)=>{st.setAttribute("data-index",String(ut+1)),st.setAttribute("data-total",String(Fe))})}he.useEffect(()=>xr(v.registerUpdateListener(({editorState:ve})=>{ve.read(()=>{Xt(),Et()})}),v.registerCommand(cc,ve=>(d&&d.length>1?de(!0):de(ve),!1),wo),v.registerCommand(lc,ve=>(Ee(ve),!1),wo)),[Xt,v,g]),he.useEffect(()=>v.registerCommand(Iv,ve=>{const ze=ve,{code:Oe,ctrlKey:Fe,metaKey:st}=ze;if(Oe==="KeyK"&&(Fe||st)){ze.preventDefault();let ut;return N?(l(!1),ut=null):(l(!0),ut=ww("https://")),v.dispatchCommand(Pa,ut)}return!1},a2),[v,N,l]);const Dt=he.useCallback((ve,ze)=>{v.update(()=>{const Oe=jt();Oe!==null&&xm(Oe,ve)},ze?{tag:"historic"}:{})},[v]);he.useCallback(()=>{v.update(()=>{const ve=jt();if(St(ve)){const ze=ve.anchor,Oe=ve.focus,Fe=ve.getNodes();if(ze.key===Oe.key&&ze.offset===Oe.offset)return;Fe.forEach((st,ut)=>{if(Wt(st)){let bt=st;ut===0&&ze.offset!==0&&(bt=bt.splitText(ze.offset)[1]||bt),ut===Fe.length-1&&(bt=bt.splitText(Oe.offset)[0]||bt),bt.__style!==""&&bt.setStyle(""),bt.__format!==0&&(bt.setFormat(0),Em(bt).setFormat("")),st=bt}else zp(st)||lA(st)?st.replace(En(),!0):$m(st)&&st.setFormat("")})}})},[v]),he.useCallback((ve,ze)=>{Dt({color:ve},ze)},[Dt]),he.useCallback((ve,ze)=>{Dt({"background-color":ve},ze)},[Dt]),he.useCallback(()=>{N?(l(!1),g.dispatchCommand(Pa,null)):(l(!0),g.dispatchCommand(Pa,ww("https://")))},[g,N,l]);const zt=he.useCallback(ve=>{v.update(()=>{if(y!==null){const ze=Fn(y);Am(ze)&&ze.setLanguage(ve)}})},[v,y]),At=()=>{_!=="number"?g.dispatchCommand(V_,void 0):g.dispatchCommand(K_,void 0)},tn=()=>{g.focus(),g.dispatchCommand(J_,void 0)};return ae.jsxs("div",{className:"toolbar",children:[a&&ae.jsx("button",{disabled:!1,onClick:()=>{o(!r)},title:"Table of Conetent",type:"button",className:"toolbar-item spaced","aria-label":"table-of-content",children:ae.jsx("img",{src:fN,width:16,height:16})}),ae.jsx("button",{disabled:!fe||!ce,onClick:()=>{d&&d.length>1?de(!1):v.dispatchCommand(ic,void 0)},title:Ba?"Undo (⌘Z)":"Undo (Ctrl+Z)",type:"button",className:"toolbar-item spaced","aria-label":"Undo",children:ae.jsx("i",{className:"format undo"})}),ae.jsx("button",{disabled:!ne||!ce,onClick:()=>{d&&d.length>1?Ee(!1):v.dispatchCommand(sc,void 0)},title:Ba?"Redo (⌘Y)":"Redo (Ctrl+Y)",type:"button",className:"toolbar-item","aria-label":"Redo",children:ae.jsx("i",{className:"format redo"})}),_==="code"?ae.jsx(Il,{disabled:!ce,buttonClassName:"toolbar-item code-language",buttonLabel:N2(se),buttonAriaLabel:"Select language",children:yN.map(([ve,ze])=>ae.jsx(Gr,{className:`item ${Zp(ve===se)}`,onClick:()=>zt(ve),children:ae.jsx("span",{className:"text",children:ze})},ve))}):ae.jsxs(ae.Fragment,{children:[ae.jsx(Ad,{}),ae.jsx(sO,{selectionFontSize:C.slice(0,-2),editor:g,disabled:!ce,styleConfig:n,blockType:"h1",isenterPressed:De,currentElementClick:Ae,currentElementSelect:Me,wpAndTaskId:f}),ae.jsx(Ad,{}),ae.jsx("button",{disabled:!ce,onClick:()=>{v.dispatchCommand(Yr,"bold")},className:"toolbar-item spaced "+(D?"active":""),title:Ba?"Bold (⌘B)":"Bold (Ctrl+B)",type:"button","aria-label":`Format text as bold. Shortcut: ${Ba?"⌘B":"Ctrl+B"}`,children:ae.jsx("i",{className:"format bold"})}),ae.jsx("button",{disabled:!ce,onClick:()=>{v.dispatchCommand(Yr,"italic")},className:"toolbar-item spaced "+(K?"active":""),title:Ba?"Italic (⌘I)":"Italic (Ctrl+I)",type:"button","aria-label":`Format text as italics. Shortcut: ${Ba?"⌘I":"Ctrl+I"}`,children:ae.jsx("i",{className:"format italic"})}),ae.jsx("button",{disabled:!ce,onClick:()=>{v.dispatchCommand(Yr,"underline")},className:"toolbar-item spaced "+(P?"active":""),title:Ba?"Underline (⌘U)":"Underline (Ctrl+U)",type:"button","aria-label":`Format text to underlined. Shortcut: ${Ba?"⌘U":"Ctrl+U"}`,children:ae.jsx("i",{className:"format underline"})}),ae.jsx("button",{className:"toolbar-item",onClick:()=>g.dispatchCommand(P1,void 0),title:"Insert Endnote",children:ae.jsx("i",{className:"format endnotes"})}),ae.jsxs(Il,{disabled:!ce,buttonClassName:"toolbar-item spaced",buttonLabel:"",buttonAriaLabel:"Formatting options for additional text styles",buttonIconClassName:"icon dropdown-more",children:[ae.jsxs(Gr,{onClick:()=>{v.dispatchCommand(Yr,"strikethrough")},className:"item "+Zp(J),title:"Strikethrough","aria-label":"Format text with a strikethrough",children:[ae.jsx("i",{className:"icon strikethrough"}),ae.jsx("span",{className:"text",children:"Strikethrough"})]}),ae.jsxs(Gr,{onClick:()=>{v.dispatchCommand(Yr,"subscript")},className:"item "+Zp($),title:"Subscript","aria-label":"Format text with a subscript",children:[ae.jsx("i",{className:"icon subscript"}),ae.jsx("span",{className:"text",children:"Subscript"})]}),ae.jsxs(Gr,{onClick:()=>{v.dispatchCommand(Yr,"superscript")},className:"item "+Zp(X),title:"Superscript","aria-label":"Format text with a superscript",children:[ae.jsx("i",{className:"icon superscript"}),ae.jsx("span",{className:"text",children:"Superscript"})]})]}),ae.jsx(Ad,{}),ae.jsxs(Il,{disabled:!ce,buttonClassName:"toolbar-item spaced",buttonLabel:"Insert",buttonAriaLabel:"Insert specialized editor node",buttonIconClassName:"icon plus",children:[ae.jsxs(Gr,{onClick:()=>{me("Insert Image",ve=>ae.jsx(kA,{activeEditor:v,onClose:ve,enableCaptions:!1}))},className:"item",children:[ae.jsx("i",{className:"icon image"}),ae.jsx("span",{className:"text",children:"Image"})]}),ae.jsxs(Gr,{className:"item",onClick:()=>{g.update(()=>{const ve=new Ra,ze=jt();if(St(ze)){const Oe=En();ze.insertNodes([En(),ve,Oe])}})},children:[ae.jsx("i",{className:"icon page-break"}),ae.jsx("span",{className:"text",children:"Page Break"})]}),ae.jsxs(Gr,{onClick:()=>{me("Insert Table",ve=>ae.jsx(HT,{activeEditor:v,onClose:ve,enableCaptions:i}))},className:"item",children:[ae.jsx("i",{className:"icon table"}),ae.jsx("span",{className:"text",children:"Table"})]}),ae.jsxs(Gr,{className:"item",onClick:()=>{tn()},children:[ae.jsx("img",{src:cN,height:21,width:21}),ae.jsx("span",{style:{marginLeft:"10px",marginTop:"2px"},children:"Bullet List"})]}),ae.jsxs(Gr,{className:"item",onClick:()=>{At()},children:[ae.jsx("img",{src:uN,height:21,width:21}),ae.jsx("span",{style:{marginLeft:"10px",marginTop:"2px"},children:"Numbered List"})]})]}),ae.jsx(hN,{})]}),h&&ae.jsxs(ae.Fragment,{children:[ae.jsx(Ad,{}),ae.jsx("button",{className:`toolbar-item ${e?"active":""}`,onClick:()=>{s(!e)},title:e?"Hide Comments":"Show Comments",children:ae.jsx("i",{className:"comments"})})]}),ae.jsx(Ad,{}),ae.jsx(dN,{passedContent:Ce,source:"remote",onPaste:null,htmlPasteModalOpen:at,sethtmlPasteModalOpen:rt,onlUser:t,collabApiKey:""}),ae.jsxs(Il,{disabled:!ce,buttonClassName:"toolbar-item spaced",buttonLabel:"Export",buttonAriaLabel:"Insert specialized editor node",children:[ae.jsx(Gr,{onClick:()=>{var Fe;const ve=new Date,ze=(Fe=ve==null?void 0:ve.toISOString())==null?void 0:Fe.split("T")[0],Oe=`${p}-${ze}`;rN(g,Oe||"sample-doc",n,c)},className:"item",children:ae.jsxs("div",{className:"div",style:{display:"flex",alignItems:"center"},children:[ae.jsx("img",{width:15,height:15,src:Uw,alt:"",style:{marginRight:"10px"}}),ae.jsx("span",{className:"text",children:"Word"})]})}),u&&ae.jsx(Gr,{onClick:m,className:"item",children:ae.jsxs("div",{className:"div",style:{display:"flex",alignItems:"center"},children:[ae.jsx("img",{width:15,height:15,src:Uw,alt:"",style:{marginRight:"10px"}}),ae.jsx("span",{className:"text",children:"Pdf"})]})})]}),ae.jsx(bN,{disabled:!ce,value:O,editor:g,isRTL:je}),ae.jsx("button",{style:{display:"none"},id:"pagination",onClick:()=>{iO(g)}}),ae.jsx("div",{className:"flex-container-onluser",children:t}),ae.jsx("p",{className:"total-pages",children:`${it} Pages`}),xe]})}const DD="",_N=typeof window<"u"&&window.document!==void 0&&window.document.createElement!==void 0?he.useLayoutEffect:he.useEffect;function fx({ariaActiveDescendant:l,ariaAutoComplete:t,ariaControls:n,ariaDescribedBy:e,ariaExpanded:s,ariaLabel:r,ariaLabelledBy:o,ariaMultiline:a,ariaOwns:c,ariaRequired:i,autoCapitalize:u,className:d,id:f,role:p="textbox",spellCheck:h=!0,style:m,tabIndex:g,"data-testid":v,...b}){const[_]=yn(),[E,S]=he.useState(!1),w=he.useCallback(y=>{y&&y.ownerDocument&&y.ownerDocument.defaultView&&_.setRootElement(y)},[_]);return _N(()=>(S(_.isEditable()),_.registerEditableListener(y=>{S(y)})),[_]),ae.jsx("div",{...b,"aria-activedescendant":E?l:void 0,"aria-autocomplete":E?t:"none","aria-controls":E?n:void 0,"aria-describedby":e,"aria-expanded":E&&p==="combobox"?!!s:void 0,"aria-label":r,"aria-labelledby":o,"aria-multiline":a,"aria-owns":E?c:void 0,"aria-readonly":!E||void 0,"aria-required":i,autoCapitalize:u,className:d,contentEditable:E,"data-testid":v,id:f,ref:w,role:p,spellCheck:h,style:m,tabIndex:g})}function Od({className:l}){return ae.jsx(fx,{className:l||"ContentEditable__root"})}const LD="";function Nd({children:l,className:t}){return ae.jsx("div",{className:t||"Placeholder__root",children:l})}let Oy=class ek extends Br{static getType(){return"mark"}static clone(t){return new ek(Array.from(t.__ids),t.__key)}static importDOM(){return null}static importJSON(t){const n=Qp(t.ids);return n.setFormat(t.format),n.setIndent(t.indent),n.setDirection(t.direction),n}exportJSON(){return{...super.exportJSON(),ids:this.getIDs(),type:"mark",version:1}}constructor(t,n){super(n),this.__ids=t||[]}createDOM(t){const n=document.createElement("mark");return zr(n,t.theme.mark),this.__ids.length>1&&zr(n,t.theme.markOverlap),n}updateDOM(t,n,e){const s=t.__ids,r=this.__ids,o=s.length,a=r.length,c=e.theme.markOverlap;return o!==a&&(o===1?a===2&&zr(n,c):a===1&&wc(n,c)),!1}hasID(t){const n=this.getIDs();for(let e=0;e<n.length;e++)if(t===n[e])return!0;return!1}getIDs(){const t=this.getLatest();return Rl(t)?t.__ids:[]}addID(t){const n=this.getWritable();if(Rl(n)){const e=n.__ids;n.__ids=e;for(let s=0;s<e.length;s++)if(t===e[s])return;e.push(t)}}deleteID(t){const n=this.getWritable();if(Rl(n)){const e=n.__ids;n.__ids=e;for(let s=0;s<e.length;s++)if(t===e[s])return void e.splice(s,1)}}insertNewAfter(t,n=!0){const e=Qp(this.__ids);return this.insertAfter(e,n),e}canInsertTextBefore(){return!1}canInsertTextAfter(){return!1}canBeEmpty(){return!1}isInline(){return!0}extractWithChild(t,n,e){if(!St(n)||e==="html")return!1;const s=n.anchor,r=n.focus,o=s.getNode(),a=r.getNode(),c=n.isBackward()?s.offset-r.offset:r.offset-s.offset;return this.isParentOf(o)&&this.isParentOf(a)&&this.getTextContent().length===c}excludeFromCopy(t){return t!=="clone"}};function Qp(l){return Pr(new Oy(l))}function Rl(l){return l instanceof Oy}function wN(l){const t=l.getChildren();let n=null;for(let e=0;e<t.length;e++){const s=t[e];n===null?l.insertBefore(s):n.insertAfter(s),n=s}l.remove()}function xN(l,t,n,e){const s=l.getNodes(),r=l.anchor.offset,o=l.focus.offset,a=s.length,c=t?o:r,i=t?r:o;let u,d;for(let f=0;f<a;f++){const p=s[f];if(Tt(d)&&d.isParentOf(p))continue;const h=f===0,m=f===a-1;let g=null;if(Wt(p)){const v=p.getTextContentSize(),b=h?c:0,_=m?i:v;if(b===0&&_===0)continue;const E=p.splitText(b,_);g=E.length>1&&(E.length===3||h&&!m||_===v)?E[1]:E[0]}else{if(Rl(p))continue;Tt(p)&&p.isInline()&&(g=p)}if(g!==null){if(g&&g.is(u))continue;const v=g.getParent();v!=null&&v.is(u)||(d=void 0),u=v,d===void 0&&(d=(e||Qp)([n]),g.insertBefore(d)),d.append(g)}else u=void 0,d=void 0}Tt(d)&&(t?d.selectStart():d.selectEnd())}function SN(l,t){let n=l;for(;n!==null;){if(Rl(n))return n.getIDs();if(Wt(n)&&t===n.getTextContentSize()){const e=n.getNextSibling();if(Rl(e))return e.getIDs()}n=n.getParent()}return null}const px=[["Cat","rgb(125, 50, 0)"],["Dog","rgb(100, 0, 0)"],["Rabbit","rgb(150, 0, 0)"],["Frog","rgb(200, 0, 0)"],["Fox","rgb(200, 75, 0)"],["Hedgehog","rgb(0, 75, 0)"],["Pigeon","rgb(0, 125, 0)"],["Squirrel","rgb(75, 100, 0)"],["Bear","rgb(125, 100, 0)"],["Tiger","rgb(0, 0, 150)"],["Leopard","rgb(0, 0, 200)"],["Zebra","rgb(0, 0, 250)"],["Wolf","rgb(0, 100, 150)"],["Owl","rgb(0, 100, 100)"],["Gull","rgb(100, 0, 100)"],["Squid","rgb(150, 0, 150)"]],hx=px[Math.floor(Math.random()*px.length)],EN=he.createContext({clientID:0,color:hx[1],isCollabActive:!1,name:hx[0],yjsDocMap:new Map});function Pd(l,t){const n=he.useContext(EN);return l!=null&&(n.name=l),t!=null&&(n.color=t),n}const CN=typeof window<"u"&&window.document!==void 0&&window.document.createElement!==void 0?he.useLayoutEffect:he.useEffect;function gx({onClear:l}){const[t]=yn();return CN(()=>t.registerCommand(If,n=>(t.update(()=>{if(l==null){const e=In(),s=jt(),r=En();e.clear(),e.append(r),s!==null&&r.select(),St(s)&&(s.format=0)}else l()}),!0),Tn),[t,l]),null}function Ny(l,t){return Ny=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(n,e){return n.__proto__=e,n},Ny(l,t)}var mx={error:null},jN=function(l){var t,n;function e(){for(var r,o=arguments.length,a=new Array(o),c=0;c<o;c++)a[c]=arguments[c];return(r=l.call.apply(l,[this].concat(a))||this).state=mx,r.resetErrorBoundary=function(){for(var i,u=arguments.length,d=new Array(u),f=0;f<u;f++)d[f]=arguments[f];r.props.onReset==null||(i=r.props).onReset.apply(i,d),r.reset()},r}n=l,(t=e).prototype=Object.create(n.prototype),t.prototype.constructor=t,Ny(t,n),e.getDerivedStateFromError=function(r){return{error:r}};var s=e.prototype;return s.reset=function(){this.setState(mx)},s.componentDidCatch=function(r,o){var a,c;(a=(c=this.props).onError)==null||a.call(c,r,o)},s.componentDidUpdate=function(r,o){var a,c,i,u,d=this.state.error,f=this.props.resetKeys;d!==null&&o.error!==null&&((i=r.resetKeys)===void 0&&(i=[]),(u=f)===void 0&&(u=[]),i.length!==u.length||i.some(function(p,h){return!Object.is(p,u[h])}))&&((a=(c=this.props).onResetKeysChange)==null||a.call(c,r.resetKeys,f),this.reset())},s.render=function(){var r=this.state.error,o=this.props,a=o.fallbackRender,c=o.FallbackComponent,i=o.fallback;if(r!==null){var u={error:r,resetErrorBoundary:this.resetErrorBoundary};if(ir.isValidElement(i))return i;if(typeof a=="function")return a(u);if(c)return ir.createElement(c,u);throw new Error("react-error-boundary requires either a fallback, fallbackRender, or FallbackComponent prop")}return this.props.children},e}(ir.Component);function Dl({children:l,onError:t}){return ae.jsx(jN,{fallback:ae.jsx("div",{style:{border:"1px solid #f00",color:"#f00",padding:"8px"},children:"An error was thrown."}),onError:t,children:l})}const kN=Object.freeze(Object.defineProperty({__proto__:null,LexicalErrorBoundary:Dl,default:Dl},Symbol.toStringTag,{value:"Module"})),TN=typeof window<"u"&&window.document!==void 0&&window.document.createElement!==void 0?he.useLayoutEffect:he.useEffect;function yx({ignoreHistoryMergeTagChange:l=!0,ignoreSelectionChange:t=!1,onChange:n}){const[e]=yn();return TN(()=>{if(n)return e.registerUpdateListener(({editorState:s,dirtyElements:r,dirtyLeaves:o,prevEditorState:a,tags:c})=>{t&&r.size===0&&o.size===0||l&&c.has("history-merge")||a.isEmpty()||n(s,e,c)})},[e,l,t,n]),null}const Fc=typeof window<"u"&&window.document!==void 0&&window.document.createElement!==void 0,AN=Fc&&"documentMode"in document?document.documentMode:null,ON=!(!Fc||!("InputEvent"in window)||AN)&&"getTargetRanges"in new window.InputEvent("input"),NN=Fc&&/Version\/[\d.]+.*Safari/.test(navigator.userAgent),PN=Fc&&/iPad|iPhone|iPod/.test(navigator.userAgent)&&!window.MSStream,IN=Fc&&/^(?=.*Chrome).*/i.test(navigator.userAgent),MN=Fc&&/AppleWebKit\/[\d.]+/.test(navigator.userAgent)&&!IN;function vx(l,t){t.update(()=>{if(l!==null){const n=Ws(l,KeyboardEvent)?null:l.clipboardData,e=jt();if(e!==null&&n!=null){l.preventDefault();const s=G1(t);s!==null&&n.setData("text/html",s),n.setData("text/plain",e.getTextContent())}}})}function RN(l){return xr(l.registerCommand(Yi,t=>{const n=jt();return!!St(n)&&(n.deleteCharacter(t),!0)},Tn),l.registerCommand(yl,t=>{const n=jt();return!!St(n)&&(n.deleteWord(t),!0)},Tn),l.registerCommand(xa,t=>{const n=jt();return!!St(n)&&(n.deleteLine(t),!0)},Tn),l.registerCommand(wa,t=>{const n=jt();if(!St(n))return!1;if(typeof t=="string")n.insertText(t);else{const e=t.dataTransfer;if(e!=null)$1(e,n);else{const s=t.data;s&&n.insertText(s)}}return!0},Tn),l.registerCommand(kf,()=>{const t=jt();return!!St(t)&&(t.removeText(),!0)},Tn),l.registerCommand(_a,t=>{const n=jt();return!!St(n)&&(n.insertLineBreak(t),!0)},Tn),l.registerCommand(ml,()=>{const t=jt();return!!St(t)&&(t.insertLineBreak(),!0)},Tn),l.registerCommand(Af,t=>{const n=jt();if(!St(n))return!1;const e=t,s=e.shiftKey;return!!pp(n,!0)&&(e.preventDefault(),hp(n,s,!0),!0)},Tn),l.registerCommand(Tf,t=>{const n=jt();if(!St(n))return!1;const e=t,s=e.shiftKey;return!!pp(n,!1)&&(e.preventDefault(),hp(n,s,!1),!0)},Tn),l.registerCommand(Zi,t=>{const n=jt();return!!St(n)&&(t.preventDefault(),l.dispatchCommand(Yi,!0))},Tn),l.registerCommand(Qi,t=>{const n=jt();return!!St(n)&&(t.preventDefault(),l.dispatchCommand(Yi,!1))},Tn),l.registerCommand(Ls,t=>{const n=jt();if(!St(n))return!1;if(t!==null){if((PN||NN||MN)&&ON)return!1;t.preventDefault()}return l.dispatchCommand(_a,!1)},Tn),l.registerCommand(Pf,()=>(sb(),!0),Tn),l.registerCommand(Wu,t=>{const n=jt();return!!St(n)&&(vx(t,l),!0)},Tn),l.registerCommand(Ju,t=>{const n=jt();return!!St(n)&&(function(e,s){vx(e,s),s.update(()=>{const r=jt();St(r)&&r.removeText()})}(t,l),!0)},Tn),l.registerCommand(vs,t=>{const n=jt();return!!St(n)&&(function(e,s){e.preventDefault(),s.update(()=>{const r=jt(),{clipboardData:o}=e;o!=null&&St(r)&&$1(o,r)},{tag:"paste"})}(t,l),!0)},Tn),l.registerCommand(Nf,t=>{const n=jt();return!!St(n)&&(t.preventDefault(),!0)},Tn),l.registerCommand(ac,t=>{const n=jt();return!!St(n)&&(t.preventDefault(),!0)},Tn))}const Py=typeof window<"u"&&window.document!==void 0&&window.document.createElement!==void 0?he.useLayoutEffect:he.useEffect;function bx(l){return l.getEditorState().read(F1(l.isComposing()))}function _x({contentEditable:l,placeholder:t,ErrorBoundary:n}){const[e]=yn(),s=function(r,o){const[a,c]=he.useState(()=>r.getDecorators());return Py(()=>r.registerDecoratorListener(i=>{ao.flushSync(()=>{c(i)})}),[r]),he.useEffect(()=>{c(r.getDecorators())},[r]),he.useMemo(()=>{const i=[],u=Object.keys(a);for(let d=0;d<u.length;d++){const f=u[d],p=ae.jsx(o,{onError:m=>r._onError(m),children:ae.jsx(he.Suspense,{fallback:null,children:a[f]})}),h=r.getElementByKey(f);h!==null&&i.push(ao.createPortal(p,h,f))}return i},[o,a,r])}(e,n);return function(r){Py(()=>xr(RN(r),H1(r)),[r])}(e),ae.jsxs(ae.Fragment,{children:[l,ae.jsx(DN,{content:t}),s]})}function DN({content:l}){const[t]=yn(),n=function(s){const[r,o]=he.useState(()=>bx(s));return Py(()=>{function a(){const c=bx(s);o(c)}return a(),xr(s.registerUpdateListener(()=>{a()}),s.registerEditableListener(()=>{a()}))},[s]),r}(t),e=sy();return n?typeof l=="function"?l(e):l:null}var LN={155:(l,t,n)=>{n.r(t),n.d(t,{default:()=>i});const e=JSON.parse('{"UU":"@codoxhq/lexical-provider","rE":"1.1.0-rc.8"}');let s=()=>{},r=function(){return s};const o=r(),a=r(),c=r(),i={log:o,info:a,warn:r(),debug:c,error:r(),logProviderVersion:()=>{console.log(`${e.UU} version ${e.rE}`)}}},668:(l,t,n)=>{l.exports=function e(s,r,o){function a(u,d){if(!r[u]){if(!s[u]){var f=void 0;if(!d&&f)return require(u,!0);if(c)return c(u,!0);throw(d=new Error("Cannot find module '"+u+"'")).code="MODULE_NOT_FOUND",d}f=r[u]={exports:{}},s[u][0].call(f.exports,function(p){return a(s[u][1][p]||p)},f,f.exports,e,s,r,o)}return r[u].exports}for(var c=void 0,i=0;i<o.length;i++)a(o[i]);return a}({1:[function(e,s,r){s.exports=function(o,a){(a==null||a>o.length)&&(a=o.length);for(var c=0,i=new Array(a);c<a;c++)i[c]=o[c];return i},s.exports.__esModule=!0,s.exports.default=s.exports},{}],2:[function(e,s,r){s.exports=function(o){if(Array.isArray(o))return o},s.exports.__esModule=!0,s.exports.default=s.exports},{}],3:[function(e,s,r){var o=e("./arrayLikeToArray.js");s.exports=function(a){if(Array.isArray(a))return o(a)},s.exports.__esModule=!0,s.exports.default=s.exports},{"./arrayLikeToArray.js":1}],4:[function(e,s,r){s.exports=function(o){if(o===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return o},s.exports.__esModule=!0,s.exports.default=s.exports},{}],5:[function(e,s,r){s.exports=function(o,a){if(!(o instanceof a))throw new TypeError("Cannot call a class as a function")},s.exports.__esModule=!0,s.exports.default=s.exports},{}],6:[function(e,s,r){var o=e("./setPrototypeOf.js"),a=e("./isNativeReflectConstruct.js");function c(i,u,d){return a()?s.exports=c=Reflect.construct.bind():s.exports=c=function(f,p,h){var m=[null];return m.push.apply(m,p),p=new(Function.bind.apply(f,m)),h&&o(p,h.prototype),p},s.exports.__esModule=!0,s.exports.default=s.exports,c.apply(null,arguments)}s.exports=c,s.exports.__esModule=!0,s.exports.default=s.exports},{"./isNativeReflectConstruct.js":13,"./setPrototypeOf.js":19}],7:[function(e,s,r){function o(a,c){for(var i=0;i<c.length;i++){var u=c[i];u.enumerable=u.enumerable||!1,u.configurable=!0,"value"in u&&(u.writable=!0),Object.defineProperty(a,u.key,u)}}s.exports=function(a,c,i){return c&&o(a.prototype,c),i&&o(a,i),Object.defineProperty(a,"prototype",{writable:!1}),a},s.exports.__esModule=!0,s.exports.default=s.exports},{}],8:[function(e,s,r){s.exports=function(o,a,c){return a in o?Object.defineProperty(o,a,{value:c,enumerable:!0,configurable:!0,writable:!0}):o[a]=c,o},s.exports.__esModule=!0,s.exports.default=s.exports},{}],9:[function(e,s,r){function o(a){return s.exports=o=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(c){return c.__proto__||Object.getPrototypeOf(c)},s.exports.__esModule=!0,s.exports.default=s.exports,o(a)}s.exports=o,s.exports.__esModule=!0,s.exports.default=s.exports},{}],10:[function(e,s,r){var o=e("./setPrototypeOf.js");s.exports=function(a,c){if(typeof c!="function"&&c!==null)throw new TypeError("Super expression must either be null or a function");a.prototype=Object.create(c&&c.prototype,{constructor:{value:a,writable:!0,configurable:!0}}),Object.defineProperty(a,"prototype",{writable:!1}),c&&o(a,c)},s.exports.__esModule=!0,s.exports.default=s.exports},{"./setPrototypeOf.js":19}],11:[function(e,s,r){s.exports=function(o){return o&&o.__esModule?o:{default:o}},s.exports.__esModule=!0,s.exports.default=s.exports},{}],12:[function(e,s,r){s.exports=function(o){return Function.toString.call(o).indexOf("[native code]")!==-1},s.exports.__esModule=!0,s.exports.default=s.exports},{}],13:[function(e,s,r){s.exports=function(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}},s.exports.__esModule=!0,s.exports.default=s.exports},{}],14:[function(e,s,r){s.exports=function(o){if(typeof Symbol<"u"&&o[Symbol.iterator]!=null||o["@@iterator"]!=null)return Array.from(o)},s.exports.__esModule=!0,s.exports.default=s.exports},{}],15:[function(e,s,r){s.exports=function(o,a){var c=o==null?null:typeof Symbol<"u"&&o[Symbol.iterator]||o["@@iterator"];if(c!=null){var i,u,d=[],f=!0,p=!1;try{for(c=c.call(o);!(f=(i=c.next()).done)&&(d.push(i.value),!a||d.length!==a);f=!0);}catch(h){p=!0,u=h}finally{try{f||c.return==null||c.return()}finally{if(p)throw u}}return d}},s.exports.__esModule=!0,s.exports.default=s.exports},{}],16:[function(e,s,r){s.exports=function(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
|
|
104
|
+
</style></head><body>`,e="</body></html>",s=t||wd(".ContentEditable__root").html(),r=uO(s),o=cO(r),a=await iN(o),c=n+a+e,i=new Blob([c],{type:"application/msword"});lO.saveAs(i,`${l||"Exported"}.doc`)};async function iN(l){const n=new DOMParser().parseFromString(l,"text/html");return n.querySelectorAll("h6").forEach(r=>r.remove()),Object.entries({h1:{fontSize:"14.5px",fontWeight:"bold",fontStyle:"normal"},h2:{fontSize:"14.5px",fontWeight:"bold",fontStyle:"italic"},h3:{fontSize:"14.5px",fontWeight:"100",fontStyle:"italic"}}).forEach(([r,o])=>{n.querySelectorAll(r).forEach(a=>{a.style.fontSize=o.fontSize,a.style.fontWeight=o.fontWeight,a.style.fontStyle=o.fontStyle,a.style.fontFamily='"Times New Roman", Times, serif'})}),await lN(n.body.innerHTML)}async function sN(l){return new Promise((t,n)=>{const e=new Image;e.crossOrigin="Anonymous",e.onload=()=>{const s=document.createElement("canvas");s.width=e.width,s.height=e.height,s.getContext("2d").drawImage(e,0,0),t(s.toDataURL("image/png"))},e.onerror=()=>n(new Error("Failed to load AVIF image.")),e.src=l})}function aN(){const l=document.createElement("div");return l.style.position="absolute",l.style.visibility="hidden",l.style.pointerEvents="none",l.style.width="1000px",l.style.zIndex=-1,document.body.appendChild(l),l}async function lN(l){const t=aN();t.innerHTML=l;const n=t.querySelectorAll("img");await Promise.all(Array.from(n).map(async r=>{if(/^data:image\/avif/.test(r.src))try{r.src=await sN(r.src),r.alt="Converted from AVIF"}catch{}})),n.forEach(r=>{const a=r.offsetWidth||r.naturalWidth,c=r.offsetHeight||r.naturalHeight;a>600?(r.setAttribute("width",600),r.style.width="600px",r.style.height="auto"):(r.setAttribute("width",a),r.setAttribute("height",c),r.style.width=`${a}px`,r.style.height=`${c}px`)}),t.querySelectorAll("table").forEach(r=>{var c;const a=600/(((c=r.rows[0])==null?void 0:c.cells.length)||1);r.style.width="600px",r.style.maxWidth="600px",r.style.tableLayout="fixed",r.style.borderCollapse="collapse",r.querySelectorAll("th, td").forEach(i=>{i.style.width=`${a}px`,i.style.maxWidth=`${a}px`,i.style.overflow="hidden",i.style.wordBreak="break-word",i.style.whiteSpace="normal"})});const s=t.innerHTML;return document.body.removeChild(t),s}const cN="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgZmlsbD0iY3VycmVudENvbG9yIiBjbGFzcz0iYmkgYmktbGlzdC11bCI+PHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNNSAxMS41YS41LjUgMCAwIDEgLjUtLjVoOWEuNS41IDAgMCAxIDAgMWgtOWEuNS41IDAgMCAxLS41LS41em0wLTRhLjUuNSAwIDAgMSAuNS0uNWg5YS41LjUgMCAwIDEgMCAxaC05YS41LjUgMCAwIDEtLjUtLjV6bTAtNGEuNS41IDAgMCAxIC41LS41aDlhLjUuNSAwIDAgMSAwIDFoLTlhLjUuNSAwIDAgMS0uNS0uNXptLTMgMWExIDEgMCAxIDAgMC0yIDEgMSAwIDAgMCAwIDJ6bTAgNGExIDEgMCAxIDAgMC0yIDEgMSAwIDAgMCAwIDJ6bTAgNGExIDEgMCAxIDAgMC0yIDEgMSAwIDAgMCAwIDJ6Ii8+PC9zdmc+",uN="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgZmlsbD0iY3VycmVudENvbG9yIiBjbGFzcz0iYmkgYmktbGlzdC1vbCI+PHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNNSAxMS41YS41LjUgMCAwIDEgLjUtLjVoOWEuNS41IDAgMCAxIDAgMWgtOWEuNS41IDAgMCAxLS41LS41em0wLTRhLjUuNSAwIDAgMSAuNS0uNWg5YS41LjUgMCAwIDEgMCAxaC05YS41LjUgMCAwIDEtLjUtLjV6bTAtNGEuNS41IDAgMCAxIC41LS41aDlhLjUuNSAwIDAgMSAwIDFoLTlhLjUuNSAwIDAgMS0uNS0uNXoiLz48cGF0aCBkPSJNMS43MTMgMTEuODY1di0uNDc0SDJjLjIxNyAwIC4zNjMtLjEzNy4zNjMtLjMxNyAwLS4xODUtLjE1OC0uMzEtLjM2MS0uMzEtLjIyMyAwLS4zNjcuMTUyLS4zNzMuMzFoLS41OWMuMDE2LS40NjcuMzczLS43ODcuOTg2LS43ODcuNTg4LS4wMDIuOTU0LjI5MS45NTcuNzAzYS41OTUuNTk1IDAgMCAxLS40OTIuNTk0di4wMzNhLjYxNS42MTUgMCAwIDEgLjU2OS42MzFjLjAwMy41MzMtLjUwMi44LTEuMDUxLjgtLjY1NiAwLTEtLjM3LTEuMDA4LS43OTRoLjU4MmMuMDA4LjE3OC4xODYuMzA2LjQyMi4zMDkuMjU0IDAgLjQyNC0uMTQ1LjQyMi0uMzUtLjAwMi0uMTk1LS4xNTUtLjM0OC0uNDE0LS4zNDhoLS4zem0tLjAwNC00LjY5OWgtLjYwNHYtLjAzNWMwLS40MDguMjk1LS44NDQuOTU4LS44NDQuNTgzIDAgLjk2LjMyNi45Ni43NTYgMCAuMzg5LS4yNTcuNjE3LS40NzYuODQ4bC0uNTM3LjU3MnYuMDNoMS4wNTRWOUgxLjE0M3YtLjM5NWwuOTU3LS45OWMuMTM4LS4xNDIuMjkzLS4zMDQuMjkzLS41MDggMC0uMTgtLjE0Ny0uMzItLjM0Mi0uMzJhLjMzLjMzIDAgMCAwLS4zNDIuMzM4di4wNDF6TTIuNTY0IDVoLS42MzVWMi45MjRoLS4wMzFsLS41OTguNDJ2LS41NjdsLjYyOS0uNDQzaC42MzVWNXoiLz48L3N2Zz4=",dN=({onlUser:l,collabApiKey:t,htmlPasteModalOpen:n,sethtmlPasteModalOpen:e,passedContent:s,onPaste:r,source:o})=>{he.useRef(null);const[a,c]=he.useState(""),[i,u]=he.useState(""),[d]=yn(),f=he.useRef();he.useRef(null);const p=()=>{u({root:{type:"root",version:1,children:[{children:[],direction:"ltr",format:"",indent:0,type:"text",version:1}],direction:"ltr",format:"",indent:0}}),c("")};he.useEffect(()=>{p()},[]);const h=()=>{e(!1),c(" "),p()},m=C=>{const T=/display:\s*([^;]+);/,R=C.match(T);if(R)return R[1]};function g(){const[C]=yn(),T=(F,I)=>{C.update(()=>{const B=En(),A=rr(`${F}`);A.setStyle(I.style),A.setFormat(I.format),B.append(A),C.getRootElement()&&F&&F.length>0&&(C.getEditorState().read(()=>In()),Cl(B))})},R=()=>{let F=y(a);_(a),F.root.children.map((I,B)=>{if(I&&I.text&&I.text.trim("")&&I.text.trim("").length>1&&I.style&&I.style.length>10&&m(I.style)==="block"){let A=I.order.split("_")[1];setTimeout(()=>{T(I.text.trim(""),I)},A*2)}}),h()};return ae.jsx("button",{onClick:R,ref:f,style:{display:"none"}})}function v(C,T){const R=/font-weight:\s*([a-zA-Z0-9\-]+);/,F=/text-decoration:\s*([^;]+?)(?=\s*;|\s*$)/,I=/font-style:\s*([a-zA-Z0-9\-]+);/,B=/font-size:\s*([\d.]+(?:px|pt|em|rem|%)?)/,A=/color:\s*([^;]+)/,j=C.match(R),O=C.match(F),L=C.match(I),N=C.match(B),U=C.match(A),D=j?j[1]:null,z=O?O[1]:null,K=L?L[1]:null,G=N?N[1]:null,P=U?U[1]:null;let J={"font-weight":D&&D!==null?D:"none","text-decoration":z&&z!==null?z:"none","font-style":K&&K!==null?K:"none","font-size":"none",display:["span","table","tbody","tr","td"].includes(T)?"block":"none",color:P&&P!=="transparent"?P:"black"};function H(Z){return Object.entries(Z).map(([X,Y])=>`${X}: ${Y};`).join(" ")}return{cssString:H(J),fontSize:G&&G!==null?G:"none",fontWeight:D&&D!==null?D:"none",fontStyle:K&&K!==null?K:"none",textDecoration:z&&z!==null?z:"none"}}const b=(C,T)=>{const R=new RegExp(`${T}:\\s*([^;]+)`),F=C.match(R);return F?F[1].trim():null},_=C=>{const T=new DOMParser,R=w(C),I=T.parseFromString(R,"text/html").querySelectorAll("img");Array.from(I).map(B=>{const O=B.getAttribute("id").split("_")[1]*2;setTimeout(()=>{d.update(()=>{const L=B.src,N=B.textContent,D=kc({src:L,altText:N});In(),Cl(D)})},O)})};function E(C,T){const R=Array.from(C.querySelectorAll("tr")),B=C.getAttribute("id").split("_")[1]*2;setTimeout(()=>{T.update(()=>{const A=jp();R.forEach(O=>{const L=Al();Array.from(O.querySelectorAll("td")).forEach(U=>{const D=Si();let G=Array.from(U.querySelectorAll("span")).map(X=>{const Y=X.getAttribute("style")||"";return{text:X.innerText.trim(),style:Y}}).map(X=>X.style).filter(X=>X).map(X=>X.split(";").map(Y=>Y.trim()).filter(Y=>!Y.startsWith("font-family")).filter(Y=>!Y.startsWith("font-size")).filter(Y=>!Y.startsWith("border")).filter(Y=>!Y.startsWith("width")).join("; ")).join("; ");const P=b(G,"font-weight"),W=b(G,"font-style"),J=b(G,"text-decoration");G=`${G}; font-weight: ${P}`,G=`${G}; font-style: ${W}`,G=`${G}; color: black`,G=`${G}; text-decoration: ${J}`;const H=rr(U.innerText.trim()),$=S(P,W,J);H.setFormat($),G&&H.setStyle(G);const Z=En();Z.append(H),D.append(Z),L.append(D)}),A.append(L)}),In()&&Cl(A)})},B)}function S(C,T,R){return C==="bold"&&T==="italic"&&R==="underline line-through"?15:R==="underline line-through"?12:T==="italic"&&R==="line-through"?6:T==="italic"&&R==="underline"?11:C==="bold"&&R==="line-through"?5:C==="bold"&&R==="underline"?9:C==="bold"&&T==="italic"?3:C==="bold"?1:T==="italic"?2:R==="underline"?8:R==="line-through"?4:0}function w(C){const R=new DOMParser().parseFromString(C,"text/html");let F=1;function I(B){if(B.nodeType===1){const A=`order_${F++}`;B.setAttribute("data-title",A),B.setAttribute("id",A)}B.childNodes.forEach(A=>I(A))}return I(R.body),R.body.innerHTML}function y(C){const T=new DOMParser,R=w(C),F=T.parseFromString(R,"text/html");F.querySelectorAll("[aria-level]").forEach(U=>{const K=U.getAttribute("id").split("_")[1]*2;setTimeout(()=>{d.update(()=>{const G=kl(`${U.getAttribute("aria-level")==="1"?"h1":U.getAttribute("aria-level")==="2"?"h2":U.getAttribute("aria-level")==="3"?"h3":U.getAttribute("aria-level")==="4"?"h4":"h5"}`),P=rr(U.innerText);G.append(P),Cl(G)})},K)}),F.querySelectorAll("ul").forEach(U=>{const K=U.getAttribute("id").split("_")[1]*2;setTimeout(()=>{d.update(()=>{const G=Ho("ul"),P=ni(),W=rr(`${U.textContent}`);let $=Array.from(U.querySelectorAll("span")).map(ee=>{const ie=ee.getAttribute("style")||"";return{text:ee.innerText.trim(),style:ie}}).map(ee=>ee.style).filter(ee=>ee).map(ee=>ee.split(";").map(ie=>ie.trim()).filter(ie=>!ie.startsWith("font-family")).filter(ie=>!ie.startsWith("font-size")).filter(ie=>!ie.startsWith("border")).filter(ie=>!ie.startsWith("width")).join("; ")).join("; ");const Z=b($,"font-weight"),X=b($,"font-style"),Y=b($,"text-decoration");$=`${$}; font-weight: ${Z}`,$=`${$}; font-style: ${X}`,$=`${$}; color: black`,$=`${$}; text-decoration: ${Y}`,$&&W.setStyle($),P.append(W),G.append(P),In(),Cl(G)})},K)}),F.querySelectorAll("ol").forEach(U=>{const K=U.getAttribute("id").split("_")[1]*2;setTimeout(()=>{d.update(()=>{const G=Ho("ol"),P=ni(),W=rr(`${U.textContent}`);let $=Array.from(U.querySelectorAll("span")).map(ie=>{const fe=ie.getAttribute("style")||"";return{text:ie.innerText.trim(),style:fe}}).map(ie=>ie.style).filter(ie=>ie).map(ie=>ie.split(";").map(fe=>fe.trim()).filter(fe=>!fe.startsWith("font-family")).filter(fe=>!fe.startsWith("font-size")).filter(fe=>!fe.startsWith("border")).filter(fe=>!fe.startsWith("width")).join("; ")).join("; ");const Z=b($,"font-weight"),X=b($,"font-style"),Y=b($,"text-decoration");$=`${$}; font-weight: ${Z}`,$=`${$}; font-style: ${X}`,$=`${$}; color: black`,$=`${$}; text-decoration: ${Y}`;let ee=S(X,Z,Y);W.setFormat(ee),$&&W.setStyle($),P.append(W),G.append(P),In(),Cl(G)})},K)}),F.querySelectorAll("table").forEach(U=>{E(U,d)});const O=F.querySelectorAll("*"),L=Array.from(O).filter(U=>!U.closest("table")).filter(U=>!U.closest("ol")).filter(U=>!U.closest("ul")).map(U=>({elemText:U.innerText,tagName:U.tagName.toLowerCase(),style:U.getAttribute("style")||"",order:U.getAttribute("id")||""}));let N=i;return L.map(U=>{let D=v(U.style,U.tagName);const{cssString:z,fontSize:K,fontWeight:G,textDecoration:P,fontStyle:W,border:J}=D||{};if(U.style&&U.style.length>0&&U.elemText.trim(" ").length&&K!=="none"&&G!==null&&P!==null&&W!==null){let H=S(G,W,P);const $=U.elemText.match(/^ {10,}/);let Z=z;$&&(Z=`${Z}; text-align: left;`),N.root.children.push({detail:0,format:H,mode:"normal",style:`${Z}`,text:`${U.elemText}`,type:"text",version:1,order:U.order})}}),N}he.useEffect(()=>()=>{c(" ")},[]);const x=()=>{e(!0),setTimeout(()=>{var C;(C=f.current)==null||C.click()},200)};return he.useEffect(C=>{n&&(c(s),x())},[n]),ae.jsx(ae.Fragment,{children:ae.jsx(g,{})})},fN="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz48IS0tIFVwbG9hZGVkIHRvOiBTVkcgUmVwbywgd3d3LnN2Z3JlcG8uY29tLCBHZW5lcmF0b3I6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPg0KPHN2ZyB3aWR0aD0iODAwcHgiIGhlaWdodD0iODAwcHgiIHZpZXdCb3g9IjAgMCAyNCAyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBtaXJyb3ItaW4tcnRsPSJ0cnVlIj4NCiAgPGNpcmNsZSBmaWxsPSIjNDk0YzRlIiBjeD0iMiIgY3k9IjIiIHI9IjIiLz4NCiAgPGNpcmNsZSBmaWxsPSIjNDk0YzRlIiBjeD0iMiIgY3k9IjgiIHI9IjIiLz4NCiAgPGNpcmNsZSBmaWxsPSIjNDk0YzRlIiBjeD0iMiIgY3k9IjIwIiByPSIyIi8+DQogIDxjaXJjbGUgZmlsbD0iIzQ5NGM0ZSIgY3g9IjIiIGN5PSIxNCIgcj0iMiIvPg0KICA8cGF0aCBmaWxsPSIjNDk0YzRlIiBkPSJNMjMuMDAyIDNINy45OThDNy40NDggMyA3IDIuNTUgNyAyLjAwMnYtLjAwNGMwLS41NS40NS0uOTk4Ljk5OC0uOTk4SDIzYy41NSAwIDEgLjQ1IDEgLjk5OFYyYzAgLjU1LS40NSAxLS45OTggMXpNMjMuMDAyIDlINy45OThDNy40NDggOSA3IDguNTUgNyA4LjAwMnYtLjAwNGMwLS41NS40NS0uOTk4Ljk5OC0uOTk4SDIzYy41NSAwIDEgLjQ1IDEgLjk5OFY4YzAgLjU1LS40NSAxLS45OTggMXpNMjMuMDAyIDE1SDcuOTk4Yy0uNTUgMC0uOTk4LS40NS0uOTk4LS45OThWMTRjMC0uNTUuNDUtMSAuOTk4LTFIMjNjLjU1IDAgMSAuNDUgMSAuOTk4VjE0YzAgLjU1LS40NSAxLS45OTggMXpNMjMuMDAyIDIxSDcuOTk4Yy0uNTUgMC0uOTk4LS40NS0uOTk4LS45OThWMjBjMC0uNTUuNDUtMSAuOTk4LTFIMjNjLjU1IDAgMSAuNDUgMSAuOTk4VjIwYzAgLjU1LS40NSAxLS45OTggMXoiLz4NCjwvc3ZnPg==",pN=[{letter:"Alpha",uppercase:"Α",lowercase:"α"},{letter:"Beta",uppercase:"Β",lowercase:"β"},{letter:"Gamma",uppercase:"Γ",lowercase:"γ"},{letter:"Delta",uppercase:"Δ",lowercase:"δ"},{letter:"Epsilon",uppercase:"Ε",lowercase:"ε"},{letter:"Zeta",uppercase:"Ζ",lowercase:"ζ"},{letter:"Eta",uppercase:"Η",lowercase:"η"},{letter:"Theta",uppercase:"Θ",lowercase:"θ"},{letter:"Iota",uppercase:"Ι",lowercase:"ι"},{letter:"Kappa",uppercase:"Κ",lowercase:"κ"},{letter:"Lambda",uppercase:"Λ",lowercase:"λ"},{letter:"Mu",uppercase:"Μ",lowercase:"μ"},{letter:"Nu",uppercase:"Ν",lowercase:"ν"},{letter:"Xi",uppercase:"Ξ",lowercase:"ξ"},{letter:"Omicron",uppercase:"Ο",lowercase:"ο"},{letter:"Pi",uppercase:"Π",lowercase:"π"},{letter:"Rho",uppercase:"Ρ",lowercase:"ρ"},{letter:"Sigma",uppercase:"Σ",lowercase:"σ"},{letter:"Tau",uppercase:"Τ",lowercase:"τ"},{letter:"Upsilon",uppercase:"Υ",lowercase:"υ"},{letter:"Phi",uppercase:"Φ",lowercase:"φ"},{letter:"Chi",uppercase:"Χ",lowercase:"χ"},{letter:"Psi",uppercase:"Ψ",lowercase:"ψ"},{letter:"Omega",uppercase:"Ω",lowercase:"ω"},{letter:"Digamma",uppercase:"Ϝ",lowercase:"ϝ"}];function hN(){const[l]=yn(),[t,n]=he.useState(!1),e=s=>{l.update(()=>{var o;const r=jt();if(St(r)){const a=r.anchor.getNode();let c="inherit";if(a instanceof Zr){const u=a.getStyle();c=((o=u==null?void 0:u.match(/font-size:\s*(\S+);/))==null?void 0:o[1])||c}const i=rr(s);r.insertNodes([i])}}),n(!1)};return ae.jsx("div",{title:"Symbols",className:"symbol-dropdown",children:ae.jsx(Il,{buttonClassName:"toolbar-item block-controls",buttonAriaLabel:"For applying Symbols",buttonLabel:"Symbols",children:ae.jsx("div",{className:"symbol-container",children:pN.map(({letter:s,uppercase:r,lowercase:o})=>ae.jsxs("div",{className:"symbol-pair",children:[ae.jsx(Gr,{className:"symbol-item",onClick:()=>e(o),children:o}),ae.jsx(Gr,{className:"symbol-item",onClick:()=>e(r),children:r})]},s))})})})}const gN={bullet:"Bulleted List",check:"Check List",code:"Code Block",h1:"Heading 1",h2:"Heading 2",h3:"Heading 3",h4:"Heading 4",h5:"Heading 5",h6:"Heading 6",number:"Numbered List",paragraph:"Normal",quote:"Quote"};function mN(){const l=[];for(const[t,n]of Object.entries(N_))l.push([t,n]);return l}const yN=mN(),vN={center:{icon:"center-align",iconRTL:"center-align",name:"Center Align"},end:{icon:"right-align",iconRTL:"left-align",name:"End Align"},justify:{icon:"justify-align",iconRTL:"justify-align",name:"Justify Align"},left:{icon:"left-align",iconRTL:"left-align",name:"Left Align"},right:{icon:"right-align",iconRTL:"right-align",name:"Right Align"},start:{icon:"left-align",iconRTL:"right-align",name:"Start Align"}};function Zp(l){return l?"active dropdown-item-active":""}function Ad(){return ae.jsx("div",{className:"divider"})}function bN({editor:l,value:t,isRTL:n,disabled:e=!1}){const s=vN[t||"left"];return ae.jsxs(Il,{disabled:e,buttonLabel:s.name,buttonIconClassName:`icon ${n?s.iconRTL:s.icon}`,buttonClassName:"toolbar-item spaced alignment",buttonAriaLabel:"Formatting options for text alignment",children:[ae.jsxs(Gr,{onClick:()=>{l.dispatchCommand(vl,"left")},className:"item",children:[ae.jsx("i",{className:"icon left-align"}),ae.jsx("span",{className:"text",children:"Left Align"})]}),ae.jsxs(Gr,{onClick:()=>{l.dispatchCommand(vl,"center")},className:"item",children:[ae.jsx("i",{className:"icon center-align"}),ae.jsx("span",{className:"text",children:"Center Align"})]}),ae.jsxs(Gr,{onClick:()=>{l.dispatchCommand(vl,"right")},className:"item",children:[ae.jsx("i",{className:"icon right-align"}),ae.jsx("span",{className:"text",children:"Right Align"})]}),ae.jsxs(Gr,{onClick:()=>{l.dispatchCommand(vl,"justify")},className:"item",children:[ae.jsx("i",{className:"icon justify-align"}),ae.jsx("span",{className:"text",children:"Justify Align"})]})]})}function dx({setIsLinkEditMode:l,onlUser:t,styleConfig:n,showComments:e,setShowComments:s,showTabContentBtn:r,setshowTabContentBtn:o,showTabContent:a,parsedHtmlString:c,enableCaptions:i,showPdf:u,userOnline:d,wpAndTaskId:f,editorTitle:p,showCommentPlugin:h,exportToPDF:m}){const[g]=yn(),[v,b]=he.useState(g),[_,E]=he.useState("paragraph"),[S,w]=he.useState("root"),[y,x]=he.useState(null),[C,T]=he.useState("14.5px"),[R,F]=he.useState("#000"),[I,B]=he.useState("#fff"),[A,j]=he.useState("Arial"),[O,L]=he.useState("left"),[N,U]=he.useState(!1),[D,z]=he.useState(!1),[K,G]=he.useState(!1),[P,W]=he.useState(!1),[J,H]=he.useState(!1),[$,Z]=he.useState(!1),[X,Y]=he.useState(!1),[ee,ie]=he.useState(!1),[fe,de]=he.useState(!1),[ne,Ee]=he.useState(!1),[xe,me]=La(),[je,ue]=he.useState(!1),[se,pe]=he.useState(""),[ce,Te]=he.useState(()=>g.isEditable()),[Ae,ke]=he.useState(""),[Me,We]=he.useState(""),[De,Le]=he.useState(""),[Ce,Xe]=he.useState(""),[Ie,Ze]=he.useState(!0),[at,rt]=he.useState(!1),[it,Vt]=he.useState("1"),Qe=1,Kt=ve=>{ve.key==="Enter"&&Le(ze=>ze+1)};he.useEffect(()=>(window.addEventListener("keydown",Kt),()=>window.removeEventListener("keydown",Kt)),[]);const Ht=(ve,ze)=>{const Oe=ve.clipboardData||window.clipboardData,Fe=Oe==null?void 0:Oe.getData("text/html");if(!Fe)return;const st=my(Fe),bt=new DOMParser().parseFromString(st,"text/html"),Ke=Sd(ze,bt);ze.update(()=>{jt()&&Xo(Ke)}),ve.preventDefault()},Zt=ve=>{g.update(()=>{const ze=Ww(ve),Fe=new DOMParser().parseFromString(ze,"text/html"),st=Sd(g,Fe),ut=En();Xo(st),Xo([ut])})};he.useEffect(()=>{const ve=g.registerCommand(vs,ze=>{const Oe=ze.clipboardData||window.clipboardData,Fe=Oe==null?void 0:Oe.getData("text/html"),st=Oe==null?void 0:Oe.getData("text/plain");return Fe!=null&&Fe.includes('<meta http-equiv=Content-Type content="text/html; charset=utf-8">')&&(Fe!=null&&Fe.includes("microsoft-com"))?(pw(ze,g,"",i),!1):/^https?:\/\/\S+$/.test(st)?(ze.preventDefault(),g.update(()=>{const ut=En(),bt=rr(st),Ke=ud(st);Ke.append(bt),ut.append(Ke),Xo([ut])}),!0):Fe&&!(Fe!=null&&Fe.includes("Outline"))&&!(Fe!=null&&Fe.includes('<meta http-equiv=Content-Type content="text/html; charset=utf-8">'))&&!(Fe!=null&&Fe.includes("microsoft-com"))?(Zt(Fe),!0):Fe!=null&&Fe.includes("Outline")?(Xe(Fe),rt(!0),!0):(Ht(ze,g),!0)},Qe);return()=>{ve()}},[Ie]),he.useEffect(()=>{const ve=()=>!!(d&&d.length>1),ze=()=>!!(d&&d.length>1),Oe=g.registerCommand(ic,ve,xi),Fe=g.registerCommand(sc,ze,xi);return()=>{Oe(),Fe()}},[g,d]);const Xt=he.useCallback(()=>{const ve=jt();if(St(ve)){const ze=ve.anchor.getNode();let Oe=ze.getKey()==="root"?ze:er(ze,Ve=>{const ct=Ve.getParent();return ct!==null&&ro(ct)});Oe===null&&(Oe=ze.getTopLevelElementOrThrow());const Fe=Oe.getKey(),st=v.getElementByKey(Fe);z(ve.hasFormat("bold")),G(ve.hasFormat("italic")),W(ve.hasFormat("underline")),H(ve.hasFormat("strikethrough")),Z(ve.hasFormat("subscript")),Y(ve.hasFormat("superscript")),ie(ve.hasFormat("code")),ue(p_(ve));const ut=Fw(ve),bt=ut.getParent();ti(bt)||ti(ut)?U(!0):U(!1);const Ke=er(ut,dr);if(dr(Ke)?w("table"):w("root"),st!==null)if(x(Fe),sr(Oe)){const Ve=y_(ze,pd),ct=Ve?Ve.getListType():Oe.getListType();E(ct)}else{const Ve=zp(Oe)?Oe.getTag():Oe.getType();if(Ve in gN&&E(Ve),Am(Oe)){const ct=Oe.getLanguage();pe(ct?P_[ct]||ct:"");return}}T(ad(ve,"font-size","15px")),F(ad(ve,"color","#000")),B(ad(ve,"background-color","#fff")),j(ad(ve,"font-family","Arial"));let Be;ti(bt)&&(Be=er(ut,Ve=>Tt(Ve)&&!Ve.isInline())),L(Tt(Be)?Be.getFormatType():Tt(ut)?ut.getFormatType():(bt==null?void 0:bt.getFormatType())||"left")}},[v]);he.useEffect(()=>g.registerCommand(ai,(ve,ze)=>{var st;Le("");const Oe=(st=jt())==null?void 0:st.getNodes()[0].__parent;return g.getEditorState()._nodeMap.forEach((ut,bt)=>{if(bt===Oe)return We(ut.__tag)}),Xt(),b(ze),!1},wo),[g,Xt]);function Et(){const ve=document.querySelectorAll(".block-end"),ze=document.querySelectorAll('figure[type="page-break"]'),Oe=Array.from(ve).concat(Array.from(ze));if(Oe.length===0)return;const Fe=Oe.length;Vt(`${Oe.length}`),Oe.forEach((st,ut)=>{st.setAttribute("data-index",String(ut+1)),st.setAttribute("data-total",String(Fe))})}he.useEffect(()=>xr(v.registerUpdateListener(({editorState:ve})=>{ve.read(()=>{Xt(),Et()})}),v.registerCommand(cc,ve=>(d&&d.length>1?de(!0):de(ve),!1),wo),v.registerCommand(lc,ve=>(Ee(ve),!1),wo)),[Xt,v,g]),he.useEffect(()=>v.registerCommand(Iv,ve=>{const ze=ve,{code:Oe,ctrlKey:Fe,metaKey:st}=ze;if(Oe==="KeyK"&&(Fe||st)){ze.preventDefault();let ut;return N?(l(!1),ut=null):(l(!0),ut=ww("https://")),v.dispatchCommand(Pa,ut)}return!1},a2),[v,N,l]);const Dt=he.useCallback((ve,ze)=>{v.update(()=>{const Oe=jt();Oe!==null&&xm(Oe,ve)},ze?{tag:"historic"}:{})},[v]);he.useCallback(()=>{v.update(()=>{const ve=jt();if(St(ve)){const ze=ve.anchor,Oe=ve.focus,Fe=ve.getNodes();if(ze.key===Oe.key&&ze.offset===Oe.offset)return;Fe.forEach((st,ut)=>{if(Wt(st)){let bt=st;ut===0&&ze.offset!==0&&(bt=bt.splitText(ze.offset)[1]||bt),ut===Fe.length-1&&(bt=bt.splitText(Oe.offset)[0]||bt),bt.__style!==""&&bt.setStyle(""),bt.__format!==0&&(bt.setFormat(0),Em(bt).setFormat("")),st=bt}else zp(st)||lA(st)?st.replace(En(),!0):$m(st)&&st.setFormat("")})}})},[v]),he.useCallback((ve,ze)=>{Dt({color:ve},ze)},[Dt]),he.useCallback((ve,ze)=>{Dt({"background-color":ve},ze)},[Dt]),he.useCallback(()=>{N?(l(!1),g.dispatchCommand(Pa,null)):(l(!0),g.dispatchCommand(Pa,ww("https://")))},[g,N,l]);const zt=he.useCallback(ve=>{v.update(()=>{if(y!==null){const ze=Fn(y);Am(ze)&&ze.setLanguage(ve)}})},[v,y]),At=()=>{_!=="number"?g.dispatchCommand(V_,void 0):g.dispatchCommand(K_,void 0)},tn=()=>{g.focus(),g.dispatchCommand(J_,void 0)};return ae.jsxs("div",{className:"toolbar",children:[a&&ae.jsx("button",{disabled:!1,onClick:()=>{o(!r)},title:"Table of Conetent",type:"button",className:"toolbar-item spaced","aria-label":"table-of-content",children:ae.jsx("img",{src:fN,width:16,height:16})}),ae.jsx("button",{disabled:!fe||!ce,onClick:()=>{d&&d.length>1?de(!1):v.dispatchCommand(ic,void 0)},title:Ba?"Undo (⌘Z)":"Undo (Ctrl+Z)",type:"button",className:"toolbar-item spaced","aria-label":"Undo",children:ae.jsx("i",{className:"format undo"})}),ae.jsx("button",{disabled:!ne||!ce,onClick:()=>{d&&d.length>1?Ee(!1):v.dispatchCommand(sc,void 0)},title:Ba?"Redo (⌘Y)":"Redo (Ctrl+Y)",type:"button",className:"toolbar-item","aria-label":"Redo",children:ae.jsx("i",{className:"format redo"})}),_==="code"?ae.jsx(Il,{disabled:!ce,buttonClassName:"toolbar-item code-language",buttonLabel:N2(se),buttonAriaLabel:"Select language",children:yN.map(([ve,ze])=>ae.jsx(Gr,{className:`item ${Zp(ve===se)}`,onClick:()=>zt(ve),children:ae.jsx("span",{className:"text",children:ze})},ve))}):ae.jsxs(ae.Fragment,{children:[ae.jsx(Ad,{}),ae.jsx(sO,{selectionFontSize:C.slice(0,-2),editor:g,disabled:!ce,styleConfig:n,blockType:"h1",isenterPressed:De,currentElementClick:Ae,currentElementSelect:Me,wpAndTaskId:f}),ae.jsx(Ad,{}),ae.jsx("button",{disabled:!ce,onClick:()=>{v.dispatchCommand(Yr,"bold")},className:"toolbar-item spaced "+(D?"active":""),title:Ba?"Bold (⌘B)":"Bold (Ctrl+B)",type:"button","aria-label":`Format text as bold. Shortcut: ${Ba?"⌘B":"Ctrl+B"}`,children:ae.jsx("i",{className:"format bold"})}),ae.jsx("button",{disabled:!ce,onClick:()=>{v.dispatchCommand(Yr,"italic")},className:"toolbar-item spaced "+(K?"active":""),title:Ba?"Italic (⌘I)":"Italic (Ctrl+I)",type:"button","aria-label":`Format text as italics. Shortcut: ${Ba?"⌘I":"Ctrl+I"}`,children:ae.jsx("i",{className:"format italic"})}),ae.jsx("button",{disabled:!ce,onClick:()=>{v.dispatchCommand(Yr,"underline")},className:"toolbar-item spaced "+(P?"active":""),title:Ba?"Underline (⌘U)":"Underline (Ctrl+U)",type:"button","aria-label":`Format text to underlined. Shortcut: ${Ba?"⌘U":"Ctrl+U"}`,children:ae.jsx("i",{className:"format underline"})}),ae.jsx("button",{className:"toolbar-item",onClick:()=>g.dispatchCommand(P1,void 0),title:"Insert Endnote",children:ae.jsx("i",{className:"format endnotes"})}),ae.jsxs(Il,{disabled:!ce,buttonClassName:"toolbar-item spaced",buttonLabel:"",buttonAriaLabel:"Formatting options for additional text styles",buttonIconClassName:"icon dropdown-more",children:[ae.jsxs(Gr,{onClick:()=>{v.dispatchCommand(Yr,"strikethrough")},className:"item "+Zp(J),title:"Strikethrough","aria-label":"Format text with a strikethrough",children:[ae.jsx("i",{className:"icon strikethrough"}),ae.jsx("span",{className:"text",children:"Strikethrough"})]}),ae.jsxs(Gr,{onClick:()=>{v.dispatchCommand(Yr,"subscript")},className:"item "+Zp($),title:"Subscript","aria-label":"Format text with a subscript",children:[ae.jsx("i",{className:"icon subscript"}),ae.jsx("span",{className:"text",children:"Subscript"})]}),ae.jsxs(Gr,{onClick:()=>{v.dispatchCommand(Yr,"superscript")},className:"item "+Zp(X),title:"Superscript","aria-label":"Format text with a superscript",children:[ae.jsx("i",{className:"icon superscript"}),ae.jsx("span",{className:"text",children:"Superscript"})]})]}),ae.jsx(Ad,{}),ae.jsxs(Il,{disabled:!ce,buttonClassName:"toolbar-item spaced",buttonLabel:"Insert",buttonAriaLabel:"Insert specialized editor node",buttonIconClassName:"icon plus",children:[ae.jsxs(Gr,{onClick:()=>{me("Insert Image",ve=>ae.jsx(kA,{activeEditor:v,onClose:ve,enableCaptions:!1}))},className:"item",children:[ae.jsx("i",{className:"icon image"}),ae.jsx("span",{className:"text",children:"Image"})]}),ae.jsxs(Gr,{className:"item",onClick:()=>{g.update(()=>{const ve=new Ra,ze=jt();if(St(ze)){const Oe=En();ze.insertNodes([En(),ve,Oe])}})},children:[ae.jsx("i",{className:"icon page-break"}),ae.jsx("span",{className:"text",children:"Page Break"})]}),ae.jsxs(Gr,{onClick:()=>{me("Insert Table",ve=>ae.jsx(HT,{activeEditor:v,onClose:ve,enableCaptions:i}))},className:"item",children:[ae.jsx("i",{className:"icon table"}),ae.jsx("span",{className:"text",children:"Table"})]}),ae.jsxs(Gr,{className:"item",onClick:()=>{tn()},children:[ae.jsx("img",{src:cN,height:21,width:21}),ae.jsx("span",{style:{marginLeft:"10px",marginTop:"2px"},children:"Bullet List"})]}),ae.jsxs(Gr,{className:"item",onClick:()=>{At()},children:[ae.jsx("img",{src:uN,height:21,width:21}),ae.jsx("span",{style:{marginLeft:"10px",marginTop:"2px"},children:"Numbered List"})]})]}),ae.jsx(hN,{})]}),h&&ae.jsxs(ae.Fragment,{children:[ae.jsx(Ad,{}),ae.jsx("button",{className:`toolbar-item ${e?"active":""}`,onClick:()=>{s(!e)},title:e?"Hide Comments":"Show Comments",children:ae.jsx("i",{className:"comments"})})]}),ae.jsx(Ad,{}),ae.jsx(dN,{passedContent:Ce,source:"remote",onPaste:null,htmlPasteModalOpen:at,sethtmlPasteModalOpen:rt,onlUser:t,collabApiKey:""}),ae.jsxs(Il,{disabled:!ce,buttonClassName:"toolbar-item spaced",buttonLabel:"Export",buttonAriaLabel:"Insert specialized editor node",children:[ae.jsx(Gr,{onClick:()=>{var Fe;const ve=new Date,ze=(Fe=ve==null?void 0:ve.toISOString())==null?void 0:Fe.split("T")[0],Oe=`${p}-${ze}`;rN(g,Oe||"sample-doc",n,c)},className:"item",children:ae.jsxs("div",{className:"div",style:{display:"flex",alignItems:"center"},children:[ae.jsx("img",{width:15,height:15,src:Uw,alt:"",style:{marginRight:"10px"}}),ae.jsx("span",{className:"text",children:"Word"})]})}),u&&ae.jsx(Gr,{onClick:m,className:"item",children:ae.jsxs("div",{className:"div",style:{display:"flex",alignItems:"center"},children:[ae.jsx("img",{width:15,height:15,src:Uw,alt:"",style:{marginRight:"10px"}}),ae.jsx("span",{className:"text",children:"Pdf"})]})})]}),ae.jsx(bN,{disabled:!ce,value:O,editor:g,isRTL:je}),ae.jsx("button",{style:{display:"none"},id:"pagination",onClick:()=>{iO(g)}}),ae.jsx("div",{className:"flex-container-onluser",children:t}),ae.jsx("p",{className:"total-pages",children:`${it} Pages`}),xe]})}const DD="",_N=typeof window<"u"&&window.document!==void 0&&window.document.createElement!==void 0?he.useLayoutEffect:he.useEffect;function fx({ariaActiveDescendant:l,ariaAutoComplete:t,ariaControls:n,ariaDescribedBy:e,ariaExpanded:s,ariaLabel:r,ariaLabelledBy:o,ariaMultiline:a,ariaOwns:c,ariaRequired:i,autoCapitalize:u,className:d,id:f,role:p="textbox",spellCheck:h=!0,style:m,tabIndex:g,"data-testid":v,...b}){const[_]=yn(),[E,S]=he.useState(!1),w=he.useCallback(y=>{y&&y.ownerDocument&&y.ownerDocument.defaultView&&_.setRootElement(y)},[_]);return _N(()=>(S(_.isEditable()),_.registerEditableListener(y=>{S(y)})),[_]),ae.jsx("div",{...b,"aria-activedescendant":E?l:void 0,"aria-autocomplete":E?t:"none","aria-controls":E?n:void 0,"aria-describedby":e,"aria-expanded":E&&p==="combobox"?!!s:void 0,"aria-label":r,"aria-labelledby":o,"aria-multiline":a,"aria-owns":E?c:void 0,"aria-readonly":!E||void 0,"aria-required":i,autoCapitalize:u,className:d,contentEditable:E,"data-testid":v,id:f,ref:w,role:p,spellCheck:h,style:m,tabIndex:g})}function Od({className:l}){return ae.jsx(fx,{className:l||"ContentEditable__root"})}const LD="";function Nd({children:l,className:t}){return ae.jsx("div",{className:t||"Placeholder__root",children:l})}let Oy=class ek extends Br{static getType(){return"mark"}static clone(t){return new ek(Array.from(t.__ids),t.__key)}static importDOM(){return null}static importJSON(t){const n=Qp(t.ids);return n.setFormat(t.format),n.setIndent(t.indent),n.setDirection(t.direction),n}exportJSON(){return{...super.exportJSON(),ids:this.getIDs(),type:"mark",version:1}}constructor(t,n){super(n),this.__ids=t||[]}createDOM(t){const n=document.createElement("mark");return zr(n,t.theme.mark),this.__ids.length>1&&zr(n,t.theme.markOverlap),n}updateDOM(t,n,e){const s=t.__ids,r=this.__ids,o=s.length,a=r.length,c=e.theme.markOverlap;return o!==a&&(o===1?a===2&&zr(n,c):a===1&&wc(n,c)),!1}hasID(t){const n=this.getIDs();for(let e=0;e<n.length;e++)if(t===n[e])return!0;return!1}getIDs(){const t=this.getLatest();return Rl(t)?t.__ids:[]}addID(t){const n=this.getWritable();if(Rl(n)){const e=n.__ids;n.__ids=e;for(let s=0;s<e.length;s++)if(t===e[s])return;e.push(t)}}deleteID(t){const n=this.getWritable();if(Rl(n)){const e=n.__ids;n.__ids=e;for(let s=0;s<e.length;s++)if(t===e[s])return void e.splice(s,1)}}insertNewAfter(t,n=!0){const e=Qp(this.__ids);return this.insertAfter(e,n),e}canInsertTextBefore(){return!1}canInsertTextAfter(){return!1}canBeEmpty(){return!1}isInline(){return!0}extractWithChild(t,n,e){if(!St(n)||e==="html")return!1;const s=n.anchor,r=n.focus,o=s.getNode(),a=r.getNode(),c=n.isBackward()?s.offset-r.offset:r.offset-s.offset;return this.isParentOf(o)&&this.isParentOf(a)&&this.getTextContent().length===c}excludeFromCopy(t){return t!=="clone"}};function Qp(l){return Pr(new Oy(l))}function Rl(l){return l instanceof Oy}function wN(l){const t=l.getChildren();let n=null;for(let e=0;e<t.length;e++){const s=t[e];n===null?l.insertBefore(s):n.insertAfter(s),n=s}l.remove()}function xN(l,t,n,e){const s=l.getNodes(),r=l.anchor.offset,o=l.focus.offset,a=s.length,c=t?o:r,i=t?r:o;let u,d;for(let f=0;f<a;f++){const p=s[f];if(Tt(d)&&d.isParentOf(p))continue;const h=f===0,m=f===a-1;let g=null;if(Wt(p)){const v=p.getTextContentSize(),b=h?c:0,_=m?i:v;if(b===0&&_===0)continue;const E=p.splitText(b,_);g=E.length>1&&(E.length===3||h&&!m||_===v)?E[1]:E[0]}else{if(Rl(p))continue;Tt(p)&&p.isInline()&&(g=p)}if(g!==null){if(g&&g.is(u))continue;const v=g.getParent();v!=null&&v.is(u)||(d=void 0),u=v,d===void 0&&(d=(e||Qp)([n]),g.insertBefore(d)),d.append(g)}else u=void 0,d=void 0}Tt(d)&&(t?d.selectStart():d.selectEnd())}function SN(l,t){let n=l;for(;n!==null;){if(Rl(n))return n.getIDs();if(Wt(n)&&t===n.getTextContentSize()){const e=n.getNextSibling();if(Rl(e))return e.getIDs()}n=n.getParent()}return null}const px=[["Cat","rgb(125, 50, 0)"],["Dog","rgb(100, 0, 0)"],["Rabbit","rgb(150, 0, 0)"],["Frog","rgb(200, 0, 0)"],["Fox","rgb(200, 75, 0)"],["Hedgehog","rgb(0, 75, 0)"],["Pigeon","rgb(0, 125, 0)"],["Squirrel","rgb(75, 100, 0)"],["Bear","rgb(125, 100, 0)"],["Tiger","rgb(0, 0, 150)"],["Leopard","rgb(0, 0, 200)"],["Zebra","rgb(0, 0, 250)"],["Wolf","rgb(0, 100, 150)"],["Owl","rgb(0, 100, 100)"],["Gull","rgb(100, 0, 100)"],["Squid","rgb(150, 0, 150)"]],hx=px[Math.floor(Math.random()*px.length)],EN=he.createContext({clientID:0,color:hx[1],isCollabActive:!1,name:hx[0],yjsDocMap:new Map});function Pd(l,t){const n=he.useContext(EN);return l!=null&&(n.name=l),t!=null&&(n.color=t),n}const CN=typeof window<"u"&&window.document!==void 0&&window.document.createElement!==void 0?he.useLayoutEffect:he.useEffect;function gx({onClear:l}){const[t]=yn();return CN(()=>t.registerCommand(If,n=>(t.update(()=>{if(l==null){const e=In(),s=jt(),r=En();e.clear(),e.append(r),s!==null&&r.select(),St(s)&&(s.format=0)}else l()}),!0),Tn),[t,l]),null}function Ny(l,t){return Ny=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(n,e){return n.__proto__=e,n},Ny(l,t)}var mx={error:null},jN=function(l){var t,n;function e(){for(var r,o=arguments.length,a=new Array(o),c=0;c<o;c++)a[c]=arguments[c];return(r=l.call.apply(l,[this].concat(a))||this).state=mx,r.resetErrorBoundary=function(){for(var i,u=arguments.length,d=new Array(u),f=0;f<u;f++)d[f]=arguments[f];r.props.onReset==null||(i=r.props).onReset.apply(i,d),r.reset()},r}n=l,(t=e).prototype=Object.create(n.prototype),t.prototype.constructor=t,Ny(t,n),e.getDerivedStateFromError=function(r){return{error:r}};var s=e.prototype;return s.reset=function(){this.setState(mx)},s.componentDidCatch=function(r,o){var a,c;(a=(c=this.props).onError)==null||a.call(c,r,o)},s.componentDidUpdate=function(r,o){var a,c,i,u,d=this.state.error,f=this.props.resetKeys;d!==null&&o.error!==null&&((i=r.resetKeys)===void 0&&(i=[]),(u=f)===void 0&&(u=[]),i.length!==u.length||i.some(function(p,h){return!Object.is(p,u[h])}))&&((a=(c=this.props).onResetKeysChange)==null||a.call(c,r.resetKeys,f),this.reset())},s.render=function(){var r=this.state.error,o=this.props,a=o.fallbackRender,c=o.FallbackComponent,i=o.fallback;if(r!==null){var u={error:r,resetErrorBoundary:this.resetErrorBoundary};if(ir.isValidElement(i))return i;if(typeof a=="function")return a(u);if(c)return ir.createElement(c,u);throw new Error("react-error-boundary requires either a fallback, fallbackRender, or FallbackComponent prop")}return this.props.children},e}(ir.Component);function Dl({children:l,onError:t}){return ae.jsx(jN,{fallback:ae.jsx("div",{style:{border:"1px solid #f00",color:"#f00",padding:"8px"},children:"An error was thrown."}),onError:t,children:l})}const kN=Object.freeze(Object.defineProperty({__proto__:null,LexicalErrorBoundary:Dl,default:Dl},Symbol.toStringTag,{value:"Module"})),TN=typeof window<"u"&&window.document!==void 0&&window.document.createElement!==void 0?he.useLayoutEffect:he.useEffect;function yx({ignoreHistoryMergeTagChange:l=!0,ignoreSelectionChange:t=!1,onChange:n}){const[e]=yn();return TN(()=>{if(n)return e.registerUpdateListener(({editorState:s,dirtyElements:r,dirtyLeaves:o,prevEditorState:a,tags:c})=>{t&&r.size===0&&o.size===0||l&&c.has("history-merge")||a.isEmpty()||n(s,e,c)})},[e,l,t,n]),null}const Fc=typeof window<"u"&&window.document!==void 0&&window.document.createElement!==void 0,AN=Fc&&"documentMode"in document?document.documentMode:null,ON=!(!Fc||!("InputEvent"in window)||AN)&&"getTargetRanges"in new window.InputEvent("input"),NN=Fc&&/Version\/[\d.]+.*Safari/.test(navigator.userAgent),PN=Fc&&/iPad|iPhone|iPod/.test(navigator.userAgent)&&!window.MSStream,IN=Fc&&/^(?=.*Chrome).*/i.test(navigator.userAgent),MN=Fc&&/AppleWebKit\/[\d.]+/.test(navigator.userAgent)&&!IN;function vx(l,t){t.update(()=>{if(l!==null){const n=Ws(l,KeyboardEvent)?null:l.clipboardData,e=jt();if(e!==null&&n!=null){l.preventDefault();const s=G1(t);s!==null&&n.setData("text/html",s),n.setData("text/plain",e.getTextContent())}}})}function RN(l){return xr(l.registerCommand(Yi,t=>{const n=jt();return!!St(n)&&(n.deleteCharacter(t),!0)},Tn),l.registerCommand(yl,t=>{const n=jt();return!!St(n)&&(n.deleteWord(t),!0)},Tn),l.registerCommand(xa,t=>{const n=jt();return!!St(n)&&(n.deleteLine(t),!0)},Tn),l.registerCommand(wa,t=>{const n=jt();if(!St(n))return!1;if(typeof t=="string")n.insertText(t);else{const e=t.dataTransfer;if(e!=null)$1(e,n);else{const s=t.data;s&&n.insertText(s)}}return!0},Tn),l.registerCommand(kf,()=>{const t=jt();return!!St(t)&&(t.removeText(),!0)},Tn),l.registerCommand(_a,t=>{const n=jt();return!!St(n)&&(n.insertLineBreak(t),!0)},Tn),l.registerCommand(ml,()=>{const t=jt();return!!St(t)&&(t.insertLineBreak(),!0)},Tn),l.registerCommand(Af,t=>{const n=jt();if(!St(n))return!1;const e=t,s=e.shiftKey;return!!pp(n,!0)&&(e.preventDefault(),hp(n,s,!0),!0)},Tn),l.registerCommand(Tf,t=>{const n=jt();if(!St(n))return!1;const e=t,s=e.shiftKey;return!!pp(n,!1)&&(e.preventDefault(),hp(n,s,!1),!0)},Tn),l.registerCommand(Zi,t=>{const n=jt();return!!St(n)&&(t.preventDefault(),l.dispatchCommand(Yi,!0))},Tn),l.registerCommand(Qi,t=>{const n=jt();return!!St(n)&&(t.preventDefault(),l.dispatchCommand(Yi,!1))},Tn),l.registerCommand(Ls,t=>{const n=jt();if(!St(n))return!1;if(t!==null){if((PN||NN||MN)&&ON)return!1;t.preventDefault()}return l.dispatchCommand(_a,!1)},Tn),l.registerCommand(Pf,()=>(sb(),!0),Tn),l.registerCommand(Wu,t=>{const n=jt();return!!St(n)&&(vx(t,l),!0)},Tn),l.registerCommand(Ju,t=>{const n=jt();return!!St(n)&&(function(e,s){vx(e,s),s.update(()=>{const r=jt();St(r)&&r.removeText()})}(t,l),!0)},Tn),l.registerCommand(vs,t=>{const n=jt();return!!St(n)&&(function(e,s){e.preventDefault(),s.update(()=>{const r=jt(),{clipboardData:o}=e;o!=null&&St(r)&&$1(o,r)},{tag:"paste"})}(t,l),!0)},Tn),l.registerCommand(Nf,t=>{const n=jt();return!!St(n)&&(t.preventDefault(),!0)},Tn),l.registerCommand(ac,t=>{const n=jt();return!!St(n)&&(t.preventDefault(),!0)},Tn))}const Py=typeof window<"u"&&window.document!==void 0&&window.document.createElement!==void 0?he.useLayoutEffect:he.useEffect;function bx(l){return l.getEditorState().read(F1(l.isComposing()))}function _x({contentEditable:l,placeholder:t,ErrorBoundary:n}){const[e]=yn(),s=function(r,o){const[a,c]=he.useState(()=>r.getDecorators());return Py(()=>r.registerDecoratorListener(i=>{ao.flushSync(()=>{c(i)})}),[r]),he.useEffect(()=>{c(r.getDecorators())},[r]),he.useMemo(()=>{const i=[],u=Object.keys(a);for(let d=0;d<u.length;d++){const f=u[d],p=ae.jsx(o,{onError:m=>r._onError(m),children:ae.jsx(he.Suspense,{fallback:null,children:a[f]})}),h=r.getElementByKey(f);h!==null&&i.push(ao.createPortal(p,h,f))}return i},[o,a,r])}(e,n);return function(r){Py(()=>xr(RN(r),H1(r)),[r])}(e),ae.jsxs(ae.Fragment,{children:[l,ae.jsx(DN,{content:t}),s]})}function DN({content:l}){const[t]=yn(),n=function(s){const[r,o]=he.useState(()=>bx(s));return Py(()=>{function a(){const c=bx(s);o(c)}return a(),xr(s.registerUpdateListener(()=>{a()}),s.registerEditableListener(()=>{a()}))},[s]),r}(t),e=sy();return n?typeof l=="function"?l(e):l:null}var LN={155:(l,t,n)=>{n.r(t),n.d(t,{default:()=>i});const e=JSON.parse('{"UU":"@codoxhq/lexical-provider","rE":"1.1.0-rc.9"}');let s=()=>{},r=function(){return s};const o=r(),a=r(),c=r(),i={log:o,info:a,warn:r(),debug:c,error:r(),logProviderVersion:()=>{console.log(`${e.UU} version ${e.rE}`)}}},668:(l,t,n)=>{l.exports=function e(s,r,o){function a(u,d){if(!r[u]){if(!s[u]){var f=void 0;if(!d&&f)return require(u,!0);if(c)return c(u,!0);throw(d=new Error("Cannot find module '"+u+"'")).code="MODULE_NOT_FOUND",d}f=r[u]={exports:{}},s[u][0].call(f.exports,function(p){return a(s[u][1][p]||p)},f,f.exports,e,s,r,o)}return r[u].exports}for(var c=void 0,i=0;i<o.length;i++)a(o[i]);return a}({1:[function(e,s,r){s.exports=function(o,a){(a==null||a>o.length)&&(a=o.length);for(var c=0,i=new Array(a);c<a;c++)i[c]=o[c];return i},s.exports.__esModule=!0,s.exports.default=s.exports},{}],2:[function(e,s,r){s.exports=function(o){if(Array.isArray(o))return o},s.exports.__esModule=!0,s.exports.default=s.exports},{}],3:[function(e,s,r){var o=e("./arrayLikeToArray.js");s.exports=function(a){if(Array.isArray(a))return o(a)},s.exports.__esModule=!0,s.exports.default=s.exports},{"./arrayLikeToArray.js":1}],4:[function(e,s,r){s.exports=function(o){if(o===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return o},s.exports.__esModule=!0,s.exports.default=s.exports},{}],5:[function(e,s,r){s.exports=function(o,a){if(!(o instanceof a))throw new TypeError("Cannot call a class as a function")},s.exports.__esModule=!0,s.exports.default=s.exports},{}],6:[function(e,s,r){var o=e("./setPrototypeOf.js"),a=e("./isNativeReflectConstruct.js");function c(i,u,d){return a()?s.exports=c=Reflect.construct.bind():s.exports=c=function(f,p,h){var m=[null];return m.push.apply(m,p),p=new(Function.bind.apply(f,m)),h&&o(p,h.prototype),p},s.exports.__esModule=!0,s.exports.default=s.exports,c.apply(null,arguments)}s.exports=c,s.exports.__esModule=!0,s.exports.default=s.exports},{"./isNativeReflectConstruct.js":13,"./setPrototypeOf.js":19}],7:[function(e,s,r){function o(a,c){for(var i=0;i<c.length;i++){var u=c[i];u.enumerable=u.enumerable||!1,u.configurable=!0,"value"in u&&(u.writable=!0),Object.defineProperty(a,u.key,u)}}s.exports=function(a,c,i){return c&&o(a.prototype,c),i&&o(a,i),Object.defineProperty(a,"prototype",{writable:!1}),a},s.exports.__esModule=!0,s.exports.default=s.exports},{}],8:[function(e,s,r){s.exports=function(o,a,c){return a in o?Object.defineProperty(o,a,{value:c,enumerable:!0,configurable:!0,writable:!0}):o[a]=c,o},s.exports.__esModule=!0,s.exports.default=s.exports},{}],9:[function(e,s,r){function o(a){return s.exports=o=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(c){return c.__proto__||Object.getPrototypeOf(c)},s.exports.__esModule=!0,s.exports.default=s.exports,o(a)}s.exports=o,s.exports.__esModule=!0,s.exports.default=s.exports},{}],10:[function(e,s,r){var o=e("./setPrototypeOf.js");s.exports=function(a,c){if(typeof c!="function"&&c!==null)throw new TypeError("Super expression must either be null or a function");a.prototype=Object.create(c&&c.prototype,{constructor:{value:a,writable:!0,configurable:!0}}),Object.defineProperty(a,"prototype",{writable:!1}),c&&o(a,c)},s.exports.__esModule=!0,s.exports.default=s.exports},{"./setPrototypeOf.js":19}],11:[function(e,s,r){s.exports=function(o){return o&&o.__esModule?o:{default:o}},s.exports.__esModule=!0,s.exports.default=s.exports},{}],12:[function(e,s,r){s.exports=function(o){return Function.toString.call(o).indexOf("[native code]")!==-1},s.exports.__esModule=!0,s.exports.default=s.exports},{}],13:[function(e,s,r){s.exports=function(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}},s.exports.__esModule=!0,s.exports.default=s.exports},{}],14:[function(e,s,r){s.exports=function(o){if(typeof Symbol<"u"&&o[Symbol.iterator]!=null||o["@@iterator"]!=null)return Array.from(o)},s.exports.__esModule=!0,s.exports.default=s.exports},{}],15:[function(e,s,r){s.exports=function(o,a){var c=o==null?null:typeof Symbol<"u"&&o[Symbol.iterator]||o["@@iterator"];if(c!=null){var i,u,d=[],f=!0,p=!1;try{for(c=c.call(o);!(f=(i=c.next()).done)&&(d.push(i.value),!a||d.length!==a);f=!0);}catch(h){p=!0,u=h}finally{try{f||c.return==null||c.return()}finally{if(p)throw u}}return d}},s.exports.__esModule=!0,s.exports.default=s.exports},{}],16:[function(e,s,r){s.exports=function(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
|
|
105
105
|
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)},s.exports.__esModule=!0,s.exports.default=s.exports},{}],17:[function(e,s,r){s.exports=function(){throw new TypeError(`Invalid attempt to spread non-iterable instance.
|
|
106
106
|
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)},s.exports.__esModule=!0,s.exports.default=s.exports},{}],18:[function(e,s,r){var o=e("./typeof.js").default,a=e("./assertThisInitialized.js");s.exports=function(c,i){if(i&&(o(i)==="object"||typeof i=="function"))return i;if(i!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return a(c)},s.exports.__esModule=!0,s.exports.default=s.exports},{"./assertThisInitialized.js":4,"./typeof.js":22}],19:[function(e,s,r){function o(a,c){return s.exports=o=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(i,u){return i.__proto__=u,i},s.exports.__esModule=!0,s.exports.default=s.exports,o(a,c)}s.exports=o,s.exports.__esModule=!0,s.exports.default=s.exports},{}],20:[function(e,s,r){var o=e("./arrayWithHoles.js"),a=e("./iterableToArrayLimit.js"),c=e("./unsupportedIterableToArray.js"),i=e("./nonIterableRest.js");s.exports=function(u,d){return o(u)||a(u,d)||c(u,d)||i()},s.exports.__esModule=!0,s.exports.default=s.exports},{"./arrayWithHoles.js":2,"./iterableToArrayLimit.js":15,"./nonIterableRest.js":16,"./unsupportedIterableToArray.js":23}],21:[function(e,s,r){var o=e("./arrayWithoutHoles.js"),a=e("./iterableToArray.js"),c=e("./unsupportedIterableToArray.js"),i=e("./nonIterableSpread.js");s.exports=function(u){return o(u)||a(u)||c(u)||i()},s.exports.__esModule=!0,s.exports.default=s.exports},{"./arrayWithoutHoles.js":3,"./iterableToArray.js":14,"./nonIterableSpread.js":17,"./unsupportedIterableToArray.js":23}],22:[function(e,s,r){function o(a){return s.exports=o=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(c){return typeof c}:function(c){return c&&typeof Symbol=="function"&&c.constructor===Symbol&&c!==Symbol.prototype?"symbol":typeof c},s.exports.__esModule=!0,s.exports.default=s.exports,o(a)}s.exports=o,s.exports.__esModule=!0,s.exports.default=s.exports},{}],23:[function(e,s,r){var o=e("./arrayLikeToArray.js");s.exports=function(a,c){var i;if(a)return typeof a=="string"?o(a,c):(i=(i=Object.prototype.toString.call(a).slice(8,-1))==="Object"&&a.constructor?a.constructor.name:i)==="Map"||i==="Set"?Array.from(a):i==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(i)?o(a,c):void 0},s.exports.__esModule=!0,s.exports.default=s.exports},{"./arrayLikeToArray.js":1}],24:[function(e,s,r){var o=e("./getPrototypeOf.js"),a=e("./setPrototypeOf.js"),c=e("./isNativeFunction.js"),i=e("./construct.js");function u(d){var f=typeof Map=="function"?new Map:void 0;return s.exports=u=function(p){if(p===null||!c(p))return p;if(typeof p!="function")throw new TypeError("Super expression must either be null or a function");if(f!==void 0){if(f.has(p))return f.get(p);f.set(p,h)}function h(){return i(p,arguments,o(this).constructor)}return h.prototype=Object.create(p.prototype,{constructor:{value:h,enumerable:!1,writable:!0,configurable:!0}}),a(h,p)},s.exports.__esModule=!0,s.exports.default=s.exports,u(d)}s.exports=u,s.exports.__esModule=!0,s.exports.default=s.exports},{"./construct.js":6,"./getPrototypeOf.js":9,"./isNativeFunction.js":12,"./setPrototypeOf.js":19}],25:[function(e,s,r){s.exports=function o(a,c){if(a===c)return!0;if(a&&c&&typeof a=="object"&&typeof c=="object"){if(a.constructor!==c.constructor)return!1;var i,u,d;if(Array.isArray(a)){if((i=a.length)!=c.length)return!1;for(u=i;u--!=0;)if(!o(a[u],c[u]))return!1}else{if(a.constructor===RegExp)return a.source===c.source&&a.flags===c.flags;if(a.valueOf!==Object.prototype.valueOf)return a.valueOf()===c.valueOf();if(a.toString!==Object.prototype.toString)return a.toString()===c.toString();if((i=(d=Object.keys(a)).length)!==Object.keys(c).length)return!1;for(u=i;u--!=0;)if(!Object.prototype.hasOwnProperty.call(c,d[u]))return!1;for(u=i;u--!=0;){var f=d[u];if(!o(a[f],c[f]))return!1}}return!0}return a!=a&&c!=c}},{}],26:[function(e,s,r){Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"v1",{enumerable:!0,get:function(){return o.default}}),Object.defineProperty(r,"v3",{enumerable:!0,get:function(){return a.default}}),Object.defineProperty(r,"v4",{enumerable:!0,get:function(){return c.default}}),Object.defineProperty(r,"v5",{enumerable:!0,get:function(){return i.default}}),Object.defineProperty(r,"NIL",{enumerable:!0,get:function(){return u.default}}),Object.defineProperty(r,"version",{enumerable:!0,get:function(){return d.default}}),Object.defineProperty(r,"validate",{enumerable:!0,get:function(){return f.default}}),Object.defineProperty(r,"stringify",{enumerable:!0,get:function(){return p.default}}),Object.defineProperty(r,"parse",{enumerable:!0,get:function(){return h.default}});var o=m(e("./v1.js")),a=m(e("./v3.js")),c=m(e("./v4.js")),i=m(e("./v5.js")),u=m(e("./nil.js")),d=m(e("./version.js")),f=m(e("./validate.js")),p=m(e("./stringify.js")),h=m(e("./parse.js"));function m(g){return g&&g.__esModule?g:{default:g}}},{"./nil.js":28,"./parse.js":29,"./stringify.js":33,"./v1.js":34,"./v3.js":35,"./v4.js":37,"./v5.js":38,"./validate.js":39,"./version.js":40}],27:[function(e,s,r){function o(p){return 14+(p+64>>>9<<4)+1}function a(p,h){var m=(65535&p)+(65535&h);return(p>>16)+(h>>16)+(m>>16)<<16|65535&m}function c(p,h,m,g,v,b){return a((h=a(a(h,p),a(g,b)))<<v|h>>>32-v,m)}function i(p,h,m,g,v,b,_){return c(h&m|~h&g,p,h,v,b,_)}function u(p,h,m,g,v,b,_){return c(h&g|m&~g,p,h,v,b,_)}function d(p,h,m,g,v,b,_){return c(h^m^g,p,h,v,b,_)}function f(p,h,m,g,v,b,_){return c(m^(h|~g),p,h,v,b,_)}Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0,r.default=function(p){if(typeof p=="string"){var h=unescape(encodeURIComponent(p));p=new Uint8Array(h.length);for(let E=0;E<h.length;++E)p[E]=h.charCodeAt(E)}var m=((E,S)=>{E[S>>5]|=128<<S%32,E[o(S)-1]=S;let w=1732584193,y=-271733879,x=-1732584194,C=271733878;for(let B=0;B<E.length;B+=16){var T=w,R=y,F=x,I=C;w=i(w,y,x,C,E[B],7,-680876936),C=i(C,w,y,x,E[B+1],12,-389564586),x=i(x,C,w,y,E[B+2],17,606105819),y=i(y,x,C,w,E[B+3],22,-1044525330),w=i(w,y,x,C,E[B+4],7,-176418897),C=i(C,w,y,x,E[B+5],12,1200080426),x=i(x,C,w,y,E[B+6],17,-1473231341),y=i(y,x,C,w,E[B+7],22,-45705983),w=i(w,y,x,C,E[B+8],7,1770035416),C=i(C,w,y,x,E[B+9],12,-1958414417),x=i(x,C,w,y,E[B+10],17,-42063),y=i(y,x,C,w,E[B+11],22,-1990404162),w=i(w,y,x,C,E[B+12],7,1804603682),C=i(C,w,y,x,E[B+13],12,-40341101),x=i(x,C,w,y,E[B+14],17,-1502002290),y=i(y,x,C,w,E[B+15],22,1236535329),w=u(w,y,x,C,E[B+1],5,-165796510),C=u(C,w,y,x,E[B+6],9,-1069501632),x=u(x,C,w,y,E[B+11],14,643717713),y=u(y,x,C,w,E[B],20,-373897302),w=u(w,y,x,C,E[B+5],5,-701558691),C=u(C,w,y,x,E[B+10],9,38016083),x=u(x,C,w,y,E[B+15],14,-660478335),y=u(y,x,C,w,E[B+4],20,-405537848),w=u(w,y,x,C,E[B+9],5,568446438),C=u(C,w,y,x,E[B+14],9,-1019803690),x=u(x,C,w,y,E[B+3],14,-187363961),y=u(y,x,C,w,E[B+8],20,1163531501),w=u(w,y,x,C,E[B+13],5,-1444681467),C=u(C,w,y,x,E[B+2],9,-51403784),x=u(x,C,w,y,E[B+7],14,1735328473),y=u(y,x,C,w,E[B+12],20,-1926607734),w=d(w,y,x,C,E[B+5],4,-378558),C=d(C,w,y,x,E[B+8],11,-2022574463),x=d(x,C,w,y,E[B+11],16,1839030562),y=d(y,x,C,w,E[B+14],23,-35309556),w=d(w,y,x,C,E[B+1],4,-1530992060),C=d(C,w,y,x,E[B+4],11,1272893353),x=d(x,C,w,y,E[B+7],16,-155497632),y=d(y,x,C,w,E[B+10],23,-1094730640),w=d(w,y,x,C,E[B+13],4,681279174),C=d(C,w,y,x,E[B],11,-358537222),x=d(x,C,w,y,E[B+3],16,-722521979),y=d(y,x,C,w,E[B+6],23,76029189),w=d(w,y,x,C,E[B+9],4,-640364487),C=d(C,w,y,x,E[B+12],11,-421815835),x=d(x,C,w,y,E[B+15],16,530742520),y=d(y,x,C,w,E[B+2],23,-995338651),w=f(w,y,x,C,E[B],6,-198630844),C=f(C,w,y,x,E[B+7],10,1126891415),x=f(x,C,w,y,E[B+14],15,-1416354905),y=f(y,x,C,w,E[B+5],21,-57434055),w=f(w,y,x,C,E[B+12],6,1700485571),C=f(C,w,y,x,E[B+3],10,-1894986606),x=f(x,C,w,y,E[B+10],15,-1051523),y=f(y,x,C,w,E[B+1],21,-2054922799),w=f(w,y,x,C,E[B+8],6,1873313359),C=f(C,w,y,x,E[B+15],10,-30611744),x=f(x,C,w,y,E[B+6],15,-1560198380),y=f(y,x,C,w,E[B+13],21,1309151649),w=f(w,y,x,C,E[B+4],6,-145523070),C=f(C,w,y,x,E[B+11],10,-1120210379),x=f(x,C,w,y,E[B+2],15,718787259),y=f(y,x,C,w,E[B+9],21,-343485551),w=a(w,T),y=a(y,R),x=a(x,F),C=a(C,I)}return[w,y,x,C]})((E=>{if(E.length===0)return[];var S=8*E.length,w=new Uint32Array(o(S));for(let y=0;y<S;y+=8)w[y>>5]|=(255&E[y/8])<<y%32;return w})(p),8*p.length),g=[],v=32*m.length,b="0123456789abcdef";for(let E=0;E<v;E+=8){var _=m[E>>5]>>>E%32&255;_=parseInt(b.charAt(_>>>4&15)+b.charAt(15&_),16),g.push(_)}return g}},{}],28:[function(e,s,r){Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0,r.default="00000000-0000-0000-0000-000000000000"},{}],29:[function(e,s,r){Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var o=(e=e("./validate.js"))&&e.__esModule?e:{default:e};r.default=function(a){var c,i;if((0,o.default)(a))return(i=new Uint8Array(16))[0]=(c=parseInt(a.slice(0,8),16))>>>24,i[1]=c>>>16&255,i[2]=c>>>8&255,i[3]=255&c,i[4]=(c=parseInt(a.slice(9,13),16))>>>8,i[5]=255&c,i[6]=(c=parseInt(a.slice(14,18),16))>>>8,i[7]=255&c,i[8]=(c=parseInt(a.slice(19,23),16))>>>8,i[9]=255&c,i[10]=(c=parseInt(a.slice(24,36),16))/1099511627776&255,i[11]=c/4294967296&255,i[12]=c>>>24&255,i[13]=c>>>16&255,i[14]=c>>>8&255,i[15]=255&c,i;throw TypeError("Invalid UUID")}},{"./validate.js":39}],30:[function(e,s,r){Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0,r.default=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i},{}],31:[function(e,s,r){Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(){if(!o&&!(o=typeof crypto<"u"&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto)||typeof msCrypto<"u"&&typeof msCrypto.getRandomValues=="function"&&msCrypto.getRandomValues.bind(msCrypto)))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return o(a)};let o,a=new Uint8Array(16)},{}],32:[function(e,s,r){function o(a,c){return a<<c|a>>>32-c}Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0,r.default=function(a){var c=[1518500249,1859775393,2400959708,3395469782],i=[1732584193,4023233417,2562383102,271733878,3285377520];if(typeof a=="string"){var u=unescape(encodeURIComponent(a));a=[];for(let v=0;v<u.length;++v)a.push(u.charCodeAt(v))}else Array.isArray(a)||(a=Array.prototype.slice.call(a));a.push(128);var d=a.length/4+2,f=Math.ceil(d/16),p=new Array(f);for(let v=0;v<f;++v){var h=new Uint32Array(16);for(let b=0;b<16;++b)h[b]=a[64*v+4*b]<<24|a[64*v+4*b+1]<<16|a[64*v+4*b+2]<<8|a[64*v+4*b+3];p[v]=h}p[f-1][14]=8*(a.length-1)/Math.pow(2,32),p[f-1][14]=Math.floor(p[f-1][14]),p[f-1][15]=8*(a.length-1)&4294967295;for(let v=0;v<f;++v){var m=new Uint32Array(80);for(let y=0;y<16;++y)m[y]=p[v][y];for(let y=16;y<80;++y)m[y]=o(m[y-3]^m[y-8]^m[y-14]^m[y-16],1);let b=i[0],_=i[1],E=i[2],S=i[3],w=i[4];for(let y=0;y<80;++y){var g=Math.floor(y/20);g=o(b,5)+((x,C,T,R)=>{switch(x){case 0:return C&T^~C&R;case 1:case 3:return C^T^R;case 2:return C&T^C&R^T&R}})(g,_,E,S)+w+c[g]+m[y]>>>0,w=S,S=E,E=o(_,30)>>>0,_=b,b=g}i[0]=i[0]+b>>>0,i[1]=i[1]+_>>>0,i[2]=i[2]+E>>>0,i[3]=i[3]+S>>>0,i[4]=i[4]+w>>>0}return[i[0]>>24&255,i[0]>>16&255,i[0]>>8&255,255&i[0],i[1]>>24&255,i[1]>>16&255,i[1]>>8&255,255&i[1],i[2]>>24&255,i[2]>>16&255,i[2]>>8&255,255&i[2],i[3]>>24&255,i[3]>>16&255,i[3]>>8&255,255&i[3],i[4]>>24&255,i[4]>>16&255,i[4]>>8&255,255&i[4]]}},{}],33:[function(e,s,r){Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var o=(e=e("./validate.js"))&&e.__esModule?e:{default:e};let a=[];for(let c=0;c<256;++c)a.push((c+256).toString(16).substr(1));r.default=function(c){let i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;if(c=(a[c[i+0]]+a[c[i+1]]+a[c[i+2]]+a[c[i+3]]+"-"+a[c[i+4]]+a[c[i+5]]+"-"+a[c[i+6]]+a[c[i+7]]+"-"+a[c[i+8]]+a[c[i+9]]+"-"+a[c[i+10]]+a[c[i+11]]+a[c[i+12]]+a[c[i+13]]+a[c[i+14]]+a[c[i+15]]).toLowerCase(),(0,o.default)(c))return c;throw TypeError("Stringified UUID is invalid")}},{"./validate.js":39}],34:[function(e,s,r){Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var o=c(e("./rng.js")),a=c(e("./stringify.js"));function c(p){return p&&p.__esModule?p:{default:p}}let i,u,d=0,f=0;r.default=function(p,h,m){var g=h&&m||0,v=h||new Array(16);let b=(p=p||{}).node||i,_=p.clockseq!==void 0?p.clockseq:u,E=(b!=null&&_!=null||(m=p.random||(p.rng||o.default)(),b==null&&(b=i=[1|m[0],m[1],m[2],m[3],m[4],m[5]]),_==null&&(_=u=16383&(m[6]<<8|m[7]))),m=p.msecs!==void 0?p.msecs:Date.now(),p.nsecs!==void 0?p.nsecs:f+1);var S=m-d+(E-f)/1e4;if(S<0&&p.clockseq===void 0&&(_=_+1&16383),1e4<=(E=(S<0||m>d)&&p.nsecs===void 0?0:E))throw new Error("uuid.v1(): Can't create more than 10M uuids/sec");d=m,f=E,u=_,S=(1e4*(268435455&(m+=122192928e5))+E)%4294967296,v[g++]=S>>>24&255,v[g++]=S>>>16&255,v[g++]=S>>>8&255,v[g++]=255&S,v[g++]=(p=m/4294967296*1e4&268435455)>>>8&255,v[g++]=255&p,v[g++]=p>>>24&15|16,v[g++]=p>>>16&255,v[g++]=_>>>8|128,v[g++]=255&_;for(let w=0;w<6;++w)v[g+w]=b[w];return h||(0,a.default)(v)}},{"./rng.js":31,"./stringify.js":33}],35:[function(e,s,r){Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var o=a(e("./v35.js"));function a(c){return c&&c.__esModule?c:{default:c}}e=a(e("./md5.js")),o=(0,o.default)("v3",48,e.default),r.default=o},{"./md5.js":27,"./v35.js":36}],36:[function(e,s,r){Object.defineProperty(r,"__esModule",{value:!0}),r.default=function(d,f,p){function h(m,g,v,b){if(typeof m=="string"&&(m=(E=>{E=unescape(encodeURIComponent(E));var S=[];for(let w=0;w<E.length;++w)S.push(E.charCodeAt(w));return S})(m)),(g=typeof g=="string"?(0,a.default)(g):g).length!==16)throw TypeError("Namespace must be array-like (16 iterable integer values, 0-255)");let _=new Uint8Array(16+m.length);if(_.set(g),_.set(m,g.length),(_=p(_))[6]=15&_[6]|f,_[8]=63&_[8]|128,v){b=b||0;for(let E=0;E<16;++E)v[b+E]=_[E];return v}return(0,o.default)(_)}try{h.name=d}catch{}return h.DNS=i,h.URL=u,h},r.URL=r.DNS=void 0;var o=c(e("./stringify.js")),a=c(e("./parse.js"));function c(d){return d&&d.__esModule?d:{default:d}}let i="6ba7b810-9dad-11d1-80b4-00c04fd430c8",u=(r.DNS=i,"6ba7b811-9dad-11d1-80b4-00c04fd430c8");r.URL=u},{"./parse.js":29,"./stringify.js":33}],37:[function(e,s,r){Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var o=c(e("./rng.js")),a=c(e("./stringify.js"));function c(i){return i&&i.__esModule?i:{default:i}}r.default=function(i,u,d){var f=(i=i||{}).random||(i.rng||o.default)();if(f[6]=15&f[6]|64,f[8]=63&f[8]|128,u){d=d||0;for(let p=0;p<16;++p)u[d+p]=f[p];return u}return(0,a.default)(f)}},{"./rng.js":31,"./stringify.js":33}],38:[function(e,s,r){Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var o=a(e("./v35.js"));function a(c){return c&&c.__esModule?c:{default:c}}e=a(e("./sha1.js")),o=(0,o.default)("v5",80,e.default),r.default=o},{"./sha1.js":32,"./v35.js":36}],39:[function(e,s,r){Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var o=(e=e("./regex.js"))&&e.__esModule?e:{default:e};r.default=function(a){return typeof a=="string"&&o.default.test(a)}},{"./regex.js":30}],40:[function(e,s,r){Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var o=(e=e("./validate.js"))&&e.__esModule?e:{default:e};r.default=function(a){if((0,o.default)(a))return parseInt(a.substr(14,1),16);throw TypeError("Invalid UUID")}},{"./validate.js":39}],41:[function(e,s,r){var o=(c=e("@babel/runtime/helpers/interopRequireDefault"))(e("@babel/runtime/helpers/toConsumableArray")),a=c(e("@babel/runtime/helpers/classCallCheck")),c=c(e("@babel/runtime/helpers/createClass")),i=(E=e("./logger")).log4,u=(E=e("./type")).isRealObject,d=E.isObjectId,f=E.isDefined,p=E.isPrimitiveArray,h=E.getType,m=e("./configDepUtils"),g=(E=e("./utils")).deLabel,v=E.equal,b=e("./path").samePath,_=e("./errors").OperationError,E=(0,c.default)(function S(w){(0,a.default)(this,S),this._config=w,this._utils=new m(w)},[{key:"isMatchingObjects",value:function(S,w,y){return w=(S=this._utils.getObjectIdentifiers({input:S,output:w,path:y})).inputId,y=S.outputId,S=S.sameId,d(w)&&d(y)&&S}},{key:"haveObjectIds",value:function(S,w,y){return!!(S.li&&w.ld||S.ld&&w.li)&&(!!(Array.isArray(S.ld)&&Array.isArray(w.li)||Array.isArray(w.ld)&&Array.isArray(S.li))||(S=this._utils.getOpTargetObject(S),w=this._utils.getOpTargetObject(w),w=(S=this._utils.getObjectIdentifiers({input:S,output:w,path:y})).inputId,y=S.outputId,d(w)&&d(y)))}},{key:"isMatchingOpPair",value:function(S,w,y){return!!((S.li&&w.ld||S.ld&&w.li)&&(Array.isArray(S.ld)&&Array.isArray(w.li)&&this.sameTargetArray(S.ld,w.li)||Array.isArray(w.ld)&&Array.isArray(S.li)&&this.sameTargetArray(w.ld,S.li)||this.isMatchingObjects(this._utils.getOpTargetObject(S),this._utils.getOpTargetObject(w),y)))}},{key:"isObjReplace",value:function(S,w){return!(!S||!w||S.oi!=null||S.od===void 0||w.od!=null||w.oi===void 0||!b(S.p,w.p))}},{key:"isReplace",value:function(S,w){return!(!S||!w||!((S.li&&w.ld||S.ld&&w.li)&&b(S.p,w.p)&&this.haveObjectIds(S,w,S.p)))}},{key:"isMove",value:function(S,w){return!(!S||!w||b(S.p,w.p)||!this.isMatchingOpPair(S,w,S.p))}},{key:"isIdentity",value:function(S,w){return i("isIdentity",S,w,!0),!(!S||!w)&&b(S.p,w.p)&&this.isMatchingOpPair(S,w,S.p)}},{key:"arrayDiff",value:function(S,w){var y=2<arguments.length&&arguments[2]!==void 0?arguments[2]:[],x=3<arguments.length?arguments[3]:void 0;if(i("Start performing arrayDiff: beforeState = ",S,!0),i("Start performing arrayDiff: afterState",w,!0),!Array.isArray(S))throw new _("beforeState snapshot is not an array");if(!Array.isArray(w))throw new _("afterState snapshot is not an array");var C=[],T=0,R=0,F=0,I=0;for(T=0,R=0;R<w.length&&T<S.length;T++){i("arrayDiff: loop at",{i:T,j:R},!0);var B,A=S[T],j=T-F;j=[].concat((0,o.default)(y),[j]),this.isMatchingObjects(S[T],w[R],y)?(B=x(A,w[R],j),i("arrayDiff: same target object (id) -> recursively diff result = ",{r:B},!0),C=C.concat(B),R++):(B={p:j,ld:g(A)},C.push(B),i("arrayDiff: different target object (id) -> create a ld op = ",{op:B,i:T,dCount:++F},!0))}for(var O=T;O<S.length;O++){var L=S[O],N=O-F;N={p:[].concat((0,o.default)(y),[N]),ld:g(L)},C.push(N),i("arrayDiff: handle beforeState tail, create a ld op",{op:N,pos:O},!0),F++}for(var U=R;U<w.length;U++){var D=w[U],z=U;z={p:[].concat((0,o.default)(y),[z]),li:g(D)},C.push(z),i("arrayDiff: handle afterState tail, create a li op",{op:z,pos:U},!0),I++}return{ops:C,dCount:F,iCount:I}}},{key:"arrayOfArrayDiff",value:function(){var S,w,y=0<arguments.length&&arguments[0]!==void 0?arguments[0]:{},x=y.before,C=y.after,T=y.path,R=y.commonHeaderLen,F=y.diff,I=y.isObjectArray,B=y.isInternal,A=[],j=0,O=0,L=0;for(j=0,O=0;O<C.length&&j<x.length;j++)!I&&(this.sameTargetArray(x[j],C[O])||p(x[j])&&p(C[O])||h(x[j])=="array"&&h(C[O]=="array"))||I&&this.isMatchingObjects(x[j],C[O],T)?(i(`
|
|
107
107
|
arrayOfArrayDiff: the same array -> recursive invocation of diff: i = `+j+"; j = "+O),i("before[i] = ",x[j]),i("after[j] = ",C[O]),S=F(x[j],C[O],[].concat((0,o.default)(T),[j+R-L]),B),A=A.concat(S),i("arrayOfArrayDiff: the same array -> recursively generate r = ",S),i("arrayOfArrayDiff: the same array -> ops = ",A),O++):(S=j-L+R,w={p:[].concat((0,o.default)(T),[S]),ld:x[j]},A.push(w),i(`
|
|
@@ -1479,9 +1479,9 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho
|
|
|
1479
1479
|
animation: ${this.isEditingInProgress?lo.tooltipAnimations.hideAtOnce:lo.tooltipAnimations.hideWithDelay};
|
|
1480
1480
|
left: ${o?"0px":"100%"};
|
|
1481
1481
|
z-index: 10;
|
|
1482
|
-
`,B.append(j),_=j}!I&&w.width<1&&r.length>1&&(B.style.width="3px")}b.forEach(S=>{this.hoverList.push([S,_,a])})});pt.default.debug("[CodoxRemoteSelection][constructor] invoked for editor key: ",t),this.remoteSelections=[],this.isEditingInProgress=!1,this.hoverList=[],this.trackedNodesKeys=new Set,this.remoteSelectionDOMsMap={},this.activeEditorsKeys={},this.keyboardBindedListener=this._keyboardEventsListener.bind(this),this.mouseBindedListener=this._mouseEventsListener.bind(this),this.resizeBindedListener=this.hideInUI=!1,this.editorContainerHTMLElement=null}_mouseEventsListener(t){let n=!1,e=t.target,s=!1,r=3;for(;r&&e;){if(e.__codox_track){n=!0;break}if(e.__lexicalEditor){n=!0,s=!0;break}e=e.parentNode,r--}if(!n)return;let o=null;for(let i in this.activeEditorsKeys){if(e[`__lexicalKey_${i}`]){o=i;break}e.__lexicalEditor&&(o=e.__lexicalEditor._key)}if(!o)return;let a=s?"root":e[`__lexicalKey_${o}`];if(!a||!this.trackedNodesKeys.has(`${a}__${o}`))return;let c=new Set;for(let i=0;i<this.hoverList.length;i++){let u=this.hoverList[i],[d,f,p]=u;if(c.has(p))continue;let h=lo.isMousePositionWithinElementCords(t,d);t.type===xo.mouseover&&h&&(f.style.animation=this.isEditingInProgress?lo.tooltipAnimations.hideAtOnce:lo.tooltipAnimations.showAtOnce,c.add(p)),t.type===xo.mouseout&&(f.style.animation=lo.tooltipAnimations.hideWithDelay,c.add(p)),t.type===xo.mousemove&&h&&(f.style.animation=this.isEditingInProgress?lo.tooltipAnimations.hideAtOnce:lo.tooltipAnimations.showAtOnce,c.add(p))}}_keyboardEventsListener(t){t.type===xo.keypress&&(this.isEditingInProgress||(this.isEditingInProgress=!0)),t.type===xo.keyup&&this.isEditingInProgress&&(this.isEditingInProgress=!1)}_createResizeEventListener(t){return function(n){t&&this.paintRemoteSelections(this.remoteSelections,t)}}_filterRemoteSelectionRectsWithinEditor(t){if(!this.editorContainerHTMLElement)return t;const n=this.editorContainerHTMLElement.getBoundingClientRect();return t.filter(e=>!(e.top<n.top||e.bottom>n.bottom))}mount(t){this.resizeBindedListener=this._createResizeEventListener(t).bind(this),window.addEventListener(xo.keypress,this.keyboardBindedListener),window.addEventListener(xo.keyup,this.keyboardBindedListener),window.addEventListener(xo.resize,this.resizeBindedListener),window.addEventListener(xo.scroll,this.resizeBindedListener);for(const n of Cx)window.addEventListener(n,this.mouseBindedListener);try{let n=t.getRootElement();n&&(this.editorContainerHTMLElement=n,this.editorContainerHTMLElement.addEventListener(xo.scroll,this.resizeBindedListener))}catch(n){pt.default.warn('[codoxRemoteSelections][mount] failed add scroll listener to ".editor-container" div: ',n)}}unmount(){window.removeEventListener(xo.keypress,this.keyboardBindedListener),window.removeEventListener(xo.keyup,this.keyboardBindedListener),window.removeEventListener(xo.resize,this.resizeBindedListener),window.removeEventListener(xo.scroll,this.resizeBindedListener);for(const t of Cx)window.removeEventListener(t,this.mouseBindedListener);try{this.editorContainerHTMLElement&&(this.editorContainerHTMLElement.removeEventListener(xo.scroll,this.resizeBindedListener),this.editorContainerHTMLElement=null)}catch(t){pt.default.warn('[codoxRemoteSelections][unmount] failed remove scroll listener to ".editor-container" div: ',t)}this.gcPrevPaintedRemoteSelections()}shouldUpdateRemoteSelections(){return!0}gcPrevPaintedRemoteSelections(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[];for(let n in this.remoteSelectionDOMsMap)this.remoteSelectionDOMsMap[n].remove();this.hoverList=[],this.trackedNodesKeys=new Set,this.remoteSelections=t||[],this.remoteSelectionDOMsMap={},this.activeEditorsKeys={}}paintRemoteSelections(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[],n=arguments.length>1?arguments[1]:void 0;this.gcPrevPaintedRemoteSelections(t);let e=n.getEditorState(),s=Un.getCodoxNodesMap(n.getKey());e.read&&e.read(()=>{for(let r of this.remoteSelections)if(oh.validateJSONSelection(r,Rd.remote,s))if(fn.isNestedSelectionJSON(r)){let{nestedSelectionJSON:o,nestedEditor:a}=fn.getNestedSelectionJSONFromMainSelectionJSON(r,s);if(!a)continue;a.getEditorState().read(()=>{let c=Un.getCodoxNodesMap(a.getKey()),i=fn.JSONToLexical(o,c);if(i)try{this.paintSingleRemoteSelection({editor:a,selectionJSON:r,lexicalSelection:i,selectedNodes:i.getNodes(),isBackward:i.isBackward()})}catch(u){pt.default.warn("[PAINT REMOTE SELECTION] failed for nested editor - ",{error:u,nestedSelectionJSON:o,fullSelection:r,lexicalSelection:i})}else pt.default.error("DEBUGGER: [paintRemoteSelections] nested selection from json to lexical is null: ",{selection:r,nestedSelectionJSON:o,lexicalSelection:i})})}else{let o=fn.JSONToLexical(r,s);if(!o){pt.default.error("DEBUGGER: [paintRemoteSelections] selection from json to lexical is null: ",{selection:r,lexicalSelection:o});continue}try{this.paintSingleRemoteSelection({editor:n,selectionJSON:r,lexicalSelection:o,selectedNodes:o.getNodes(),isBackward:o.isBackward()})}catch(a){pt.default.warn("[PAINT REMOTE SELECTION] failed - ",{error:a,fullSelection:r,lexicalSelection:o})}}})}updateRemoteSelections(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[],n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"",e=arguments.length>2?arguments[2]:void 0;this.shouldUpdateRemoteSelections(t)&&(pt.default.debug(`[updateRemoteSelections] caller: [${n}] editor key: `,e.getKey(),{newRemoteSelections:t}),Promise.resolve().then(()=>{this.paintRemoteSelections(t,e),this.hideInUI&&this.hideRemoteSelectionsFromUI()}))}clear(){this.gcPrevPaintedRemoteSelections()}getCurrentRemoteSelections(){return this.remoteSelections}hideRemoteSelectionsFromUI(){this.hideInUI||(this.hideInUI=!0);const t=document.querySelectorAll(".codox_remote_selection");for(let n of t)n.classList.add("hidden_codox_remote_selection")}showHiddenRemoteSelectionsInUI(){this.hideInUI=!1;const t=document.querySelectorAll(".hidden_codox_remote_selection");for(let n of t)n.classList.remove("hidden_codox_remote_selection")}}class $x{constructor(){this.blacklist=Object.keys(jx).reduce((t,n)=>{let e=jx[n];return t[n]=e.reduce((s,r)=>(s[r]=r,s),{}),t},{}),this._isBlacklistedFound=!1,this._blacklistCallback=null}_shouldSkipNode(t){return t instanceof Rt.TextNode||t instanceof Rt.ParagraphNode||t instanceof Rt.RootNode}setBlacklistCallback(t){this._blacklistCallback=t}removeBlacklistCallback(){this._blacklistCallback=null}invokeBlacklistCallback(){this._blacklistCallback&&this._blacklistCallback()}trackBlacklisted(t){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"",e=arguments.length>2?arguments[2]:void 0;if(n!==Ei.created||this._isBlacklistedFound||!t||!t.__type||this._shouldSkipNode(t))return;let s=t.__type,r=this.blacklist[s];r&&e.read(()=>{let o=t.getParent();for(;o!==null;){let a=o?o.__type:null;if(!a)return;if(r[a])return pt.default.debug("[ContentNestingsWatcher][trackBlacklisted] BLACKLISTED COMBINATION FOUND. nodes:",{targetNode:t,targetType:s,parent:o,parentType:a,mutationType:n}),void(this._isBlacklistedFound=!0);o=o.getParent()}})}trackBlacklistedInNestedEditor(t){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"",e=arguments.length>3?arguments[3]:void 0;if(n!==Ei.created||this._isBlacklistedFound||this._shouldSkipNode(t))return;let s=e.__type,r=t.__type;if(!s||!r)return;let o=this.blacklist[r];o&&o[s]&&(this._isBlacklistedFound=!0,pt.default.warn("[ContentNestingsWatcher][trackBlacklistedInNestedEditor] FOUND: ",{targetNode:t,targetType:r,rootNode:e,rootType:s,mutationType:n}))}isBlacklistedFound(){let t=this._isBlacklistedFound;return t&&(this._isBlacklistedFound=!1),t}}var fI=l=>{var t={};return An.d(t,l),t};const Hc=fI({mergeRegister:()=>xr,registerNestedElementResolver:()=>v_}),pI=["editorState","prevEditorState","dirtyElements","dirtyLeaves"];function hI(l,t){if(l==null)return{};var n,e,s=gI(l,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(l);for(e=0;e<r.length;e++)n=r[e],t.includes(n)||{}.propertyIsEnumerable.call(l,n)&&(s[n]=l[n])}return s}function gI(l,t){if(l==null)return{};var n={};for(var e in l)if({}.hasOwnProperty.call(l,e)){if(t.includes(e))continue;n[e]=l[e]}return n}class mI{constructor(t){pt.default.debug("[NestedEditorsProcessor] constructor invoked for editor key: ",t),this.nestedEditorsListenersMap={}}_getListenersMap(){return this.nestedEditorsListenersMap}_createNestedEditorUpdatesListener(t,n,e){let s=!1;return function(r){let{editorState:o,prevEditorState:a,dirtyElements:c,dirtyLeaves:i}=r,u=(hI(r,pI),e.getEditorState()),d=Un.getCodoxLexicalEditorManager(e.getKey());if(!d.isCodoxStarted||!u._nodeMap.get(t.__key))return;let f=Fl(o),p=Fl(a),h=Ly(f,p),m=o._selection,g=(a._selection,!1),v=null,b=(Wx(c,i),t[n]),_=Un.getContentNestingsWatcher(e.getKey());if(_.isBlacklistedFound())return s=!0,pt.default.debug("[NESTED EDITOR LISTENER] BLACKLISTED FOUND - revert to prev state"),qx(t)?(b.update(()=>{try{const E=b.parseEditorState(p);if(E.isEmpty())return(0,Rt.$getRoot)().clear(),!0;b.setEditorState(E)}catch(E){pt.default.error("[NESTED EDITOR LISTENER] BLACKLISTED FOUND - ROLLBACK ERROR: ",E)}}),void _.invokeBlacklistCallback()):void 0;if(s)s=!1;else{if(t.codoxId||t.codoxDId){let E=null;u.read(()=>{E=fn.getNodeAncestorsCodoxIds(t),!t.codoxId&&t.codoxDId&&E.push(t.codoxDId)}),o.read(()=>{let S=Iy(n),w=fn.lexicalToJSONNested(m,S,E);v=d.getCurrentNestedSelectionJSON(),g=fn.equalSelectionsJSON(v,w),g||d.setNestedSelectionJSON(w)})}h&&g||setTimeout(()=>e.update(()=>{try{Fy({fromNestedEditor:!0}),t.markDirty()}catch(E){pt.default.error("[NESTED EDITOR LISTENER] MARKING DIRTY TO TRIGGER UPDATE - ERROR: ",E)}}))}}}_isNestedEditorManaged(t){return!!this.nestedEditorsListenersMap[t]}gc(t){pt.default.debug("[nestedEditorsProcessor]: GC");for(let n in this.nestedEditorsListenersMap)if(!t.getEditorState()._nodeMap.get(n)){let e=this.nestedEditorsListenersMap[n];e&&e(),delete this.nestedEditorsListenersMap[n]}}manageNestedEditorInLexicalNode(t){let n=arguments.length>2?arguments[2]:void 0;if(this._isNestedEditorManaged(t.getKey()))return;let e=qx(t);if(e){let s=t[e],r=this._createNestedEditorUpdatesListener(t,e,n);pt.default.debug("[NESTED EDITOR][registerMutationListener] : ",{nestedEditor:s,nestedEditorNodeClasses:s._nodes});let o=[],a=Un.getContentNestingsWatcher(n.getKey());s._nodes.forEach((u,d,f)=>{let{klass:p}=u,h=s.registerMutationListener(p,m=>{for(let[g,v]of m)if(v===Ei.created){let b=s.getEditorState()._nodeMap.get(g);b&&a.trackBlacklistedInNestedEditor(b,v,s.getEditorState(),t)}});o.push(h)});let c=(0,Hc.mergeRegister)(s.registerUpdateListener(r),...o),i=t.getKey();this.nestedEditorsListenersMap[i]=c}}gcNestedEditorListenerInLexicalNode(t){let n=t.getKey(),e=this.nestedEditorsListenersMap[n];e&&(e(),pt.default.debug("delete this.nestedEditorsListenersMap[nodeKey]: ",n),delete this.nestedEditorsListenersMap[n])}manageNestedEditorInClonedLexicalNode(t,n,e){let s=t.getKey();s!==n.getKey()&&this._isNestedEditorManaged(s)&&(this.gcNestedEditorListenerInLexicalNode(t),this.manageNestedEditorInLexicalNode(n,"",e))}setNestedEditorSelection(t,n){let{nestedSelectionJSON:e,nestedEditor:s}=fn.getNestedSelectionJSONFromMainSelectionJSON(t,n);if(!s)return!1;let r=!0;return s.update(()=>{try{const o=Un.getCodoxNodesMap(s.getKey());let a=fn.JSONToLexical(e,o);(0,Rt.$setSelection)(a),pt.default.debug("[setNestedEditorSelection]: lexical nested selection: ",a)}catch(o){pt.default.error("[setNestedEditorSelection] set nested selection error: ",o),r=!1}}),r}clearListeners(){pt.default.debug("[nestedEditorsProcessor]: clear listeners");for(let t in this.nestedEditorsListenersMap){let n=this.nestedEditorsListenersMap[t];n&&n(),pt.default.debug("delete this.nestedEditorsListenersMap[nodeKey]: ",t),delete this.nestedEditorsListenersMap[t]}}}const yI=["codox_metadata"];function vI(l,t){if(l==null)return{};var n,e,s=bI(l,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(l);for(e=0;e<r.length;e++)n=r[e],t.includes(n)||{}.propertyIsEnumerable.call(l,n)&&(s[n]=l[n])}return s}function bI(l,t){if(l==null)return{};var n={};for(var e in l)if({}.hasOwnProperty.call(l,e)){if(t.includes(e))continue;n[e]=l[e]}return n}function Yx(l,t){var n=Object.keys(l);if(Object.getOwnPropertySymbols){var e=Object.getOwnPropertySymbols(l);t&&(e=e.filter(function(s){return Object.getOwnPropertyDescriptor(l,s).enumerable})),n.push.apply(n,e)}return n}function zy(l){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?Yx(Object(n),!0).forEach(function(e){_I(l,e,n[e])}):Object.getOwnPropertyDescriptors?Object.defineProperties(l,Object.getOwnPropertyDescriptors(n)):Yx(Object(n)).forEach(function(e){Object.defineProperty(l,e,Object.getOwnPropertyDescriptor(n,e))})}return l}function _I(l,t,n){return(t=wI(t))in l?Object.defineProperty(l,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):l[t]=n,l}function wI(l){var t=xI(l,"string");return typeof t=="symbol"?t:t+""}function xI(l,t){if(typeof l!="object"||!l)return l;var n=l[Symbol.toPrimitive];if(n!==void 0){var e=n.call(l,t||"default");if(typeof e!="object")return e;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(l)}class SI{constructor(t){pt.default.debug("[CustomNodesConverter][constructor] invoked for editor key: ",t),this.nodesToTransform={}}_maintainCodoxIdsForConvertedNode(t,n){t.codoxId&&(n.codoxId=t.codoxId),t.codoxDId&&(n.codoxDId=t.codoxDId)}_validateLexicalNodeHasToCodoxNodeApi(t){if(!t.toCodoxNode)throw new Error(`Custom node "${t.__type}" invalid implementation: instance conversion api ".toCodoxNode()" is missing`)}_validateCustomNodeClassHasFromCodoxNodeApi(t){if(!t.fromCodoxNode)throw new Error(`Custom node class ${t} invalid implementation: class static conversion api ".fromCodoxNode()" is missing`)}untrackCustomNodeForConvert(t,n){this.nodesToTransform[t]&&delete this.nodesToTransform[t]}trackCustomNodeForConvert(t,n){if(My[t.__type])return;if(t.__type==="beautifulMention"){const s=Ld(t);return this.nodesToTransform[t.__key]={lexicalNode:t,path:s},void pt.default.debug("[customNodesConverter][saveNodeForTransform] node saved: ",{lexicalNode:t,path:s})}this._validateLexicalNodeHasToCodoxNodeApi(t);const e=Ld(t);this.nodesToTransform[t.__key]={lexicalNode:t,path:e}}convertCustomNodesForSyncInJsonState(t,n){if(!t)return null;let e=n._nodes,s=(0,Rt.createEditor)();s._nodes=e;for(let r in this.nodesToTransform){let{lexicalNode:o}=this.nodesToTransform[r],a=null,c=n.getEditorState();if(!c._nodeMap.get(o.__key))continue;c.read(()=>{a=Ld(o),this.nodesToTransform[r].path=a});let i,u=zc(a,t);if(!u)continue;if(u.type==="beautifulMention"){u.codox_metadata={originalNodeTransformedByCodox:zy({},u)},u.equation=`${u.trigger}${u.value}`,u.inline=!0,u.type="equation",u.version=1,delete u.trigger,delete u.value;continue}this._validateLexicalNodeHasToCodoxNodeApi(o),n.getEditorState().read(()=>{i=o.toCodoxNode()});let d,f,p=My[i.type],h=`Custom node "${o.__type}" invalid .toCodoxNode() implementation: `;if(!p)throw new Error(`${h}converted node type must be one of supported core and official playground nodes`);if(!i.hasOwnProperty("codox_metadata"))throw new Error(`${h} codox_metadata property is missing`);if(typeof i.codox_metadata!="object")throw new Error(`${h}codox_metadata property must be object`);if(!i.codox_metadata.hasOwnProperty("type"))throw new Error(`${h}codox_metadata property must contain original custom node type`);s.update(()=>{let{klass:S}=s._nodes.get(i.type);d=S.importJSON(zy(zy({},i),{},{___ignoreCodox:!0})),f=d.exportJSON()});const m=vI(i,yI);let g=Object.keys(m),v=Object.keys(f),b=[...new Set([...g,...v])];for(let S of b){if(f.type==="text"&&S==="text"&&!i[S])throw new Error(`${h}converted node must have non-empty "text" attrribute`);if(!i.hasOwnProperty(S)&&f.hasOwnProperty(S))i[S]=f[S];else if(i.hasOwnProperty(S)&&f.hasOwnProperty(S)&&typeof i[S]!=typeof f[S])i[S]=f[S];else if(i.hasOwnProperty(S)&&!f.hasOwnProperty(S)){if(S==="_ext_props")continue;delete i[S]}}this._maintainCodoxIdsForConvertedNode(o,i);const _=a[a.length-1];let E=zc(a.slice(0,a.length-2),t);u.children&&(i.children=u.children),E.children[_]=i,pt.default.debug("[customNodesConverter][convertCustomNodesForSyncInJsonState] converted for sync: ",{jsonNode:u,convertedNode:i,validationConvertedLexicalNode:d,validationJsonNode:f,state:JSON.parse(JSON.stringify(t))})}return t}convertCustomNodesFromSyncInJsonState(t,n){if(!t)return null;for(let e in this.nodesToTransform){let{lexicalNode:s,path:r}=this.nodesToTransform[e],o=zc(r,t);if(!o)continue;if(o.codox_metadata&&o.codox_metadata.originalNodeTransformedByCodox&&typeof o.codox_metadata.originalNodeTransformedByCodox=="object"&&o.type==="equation"&&o.codox_metadata.originalNodeTransformedByCodox.type==="beautifulMention"){const h=o.codox_metadata.originalNodeTransformedByCodox;let m=o.equation.split(h.trigger)[1];o.value=m,o.trigger=h.trigger,o.type=h.type,delete o.equation,delete o.inline,delete o.codox_metadata;continue}if(!o.codox_metadata||typeof o.codox_metadata!="object")continue;let a=n._nodes,c=o.codox_metadata;if(!c.type)continue;let{klass:i}=a.get(c.type)||{};if(!i)continue;this._validateCustomNodeClassHasFromCodoxNodeApi(i);let u=i.fromCodoxNode(o);this._maintainCodoxIdsForConvertedNode(o,u),o.children&&(u.children=o.children),pt.default.debug("[customNodesConverter][convertCustomNodesFromSyncInJsonState] transformed from sync: ",o,u);const d=r[r.length-1],f=r.slice(0,r.length-2);let p=zc(f,t);p?p.children[d]=u:pt.default.warn("[customNodesConverter][convertCustomNodesFromSyncInJsonState] parent in json state not found: ",{jsonNode:o,convertedNode:u,parentPath:f})}return t}convertCustomJsonNodeFromSync(t,n){if(t.codox_metadata&&t.codox_metadata.originalNodeTransformedByCodox&&typeof t.codox_metadata.originalNodeTransformedByCodox=="object"&&t.type==="equation"&&t.codox_metadata.originalNodeTransformedByCodox.type==="beautifulMention"){let a=t.equation.split(originalJsonNode.trigger)[1];return originalJsonNode.value=a,originalJsonNode}if(!t.codox_metadata||typeof t.codox_metadata!="object")return t;let e=n._nodes,s=t.codox_metadata;if(!s.type)return t;let{klass:r}=e.get(s.type)||{};if(!r)return t;this._validateCustomNodeClassHasFromCodoxNodeApi(r);let o=r.fromCodoxNode(t);return this._maintainCodoxIdsForConvertedNode(t,o),t.children&&(o.children=t.children),pt.default.debug("[customNodesConverter][convertCustomJsonNodeFromSync] transformed single node from sync: ",{jsonNode:t,convertedNode:o}),o}}const EI=function(l){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[];try{let n=(0,Rt.createEditor)({namespace:"validation",nodes:[...t],onError:a=>{throw a},parentEditor:null});const e=new $x("validation_"+n.getKey()),s=n.parseEditorState(l);if(s.isEmpty())return;n.setEditorState(s);let r=n.getEditorState();const o=r._nodeMap[Symbol.iterator]();for(const a of o){let[c,i]=a;if(i&&(e.trackBlacklisted(i,Ei.created,r),e.isBlacklistedFound()))throw new Error(tP)}}catch(n){throw n}};class CI{constructor(t){pt.default.debug("[TablesValidator] constructor invoked for editor key: ",t),this.removeCandidateTableKeys=new Set,this.validateTableCandidateKeys=new Set,this.tableFixActions=[]}_scanForCellHeaderState(t,n,e,s){if(n.length<s)return null;let r,o=n.some(c=>c.__headerState===Ha.BOTH||c.__headerState===Ha.ROW),a=t.some((c,i)=>{if(c.__size<s)return!1;let u=c.getChildAtIndex(e);return!(!u||u.__headerState!==Ha.BOTH&&u.__headerState!==Ha.COLUMN)});return o&&a?r=Ha.BOTH:o&&!a?r=Ha.ROW:a&&!o&&(r=Ha.COLUMN),r}_isValidCellChildren(t){for(let n of t)if(Jc(n)||!Wc(n))return!1;return!0}_createEmptyCell(){let t=(0,kr.$createTableCellNode)();return t.append((0,Rt.$createParagraphNode)()),t}_wrapInvalidCellChildrenIntoParagraph(t){let n=(0,Rt.$createParagraphNode)().getWritable(),e=t.getChildren();(t=t.getWritable()).__first=n.__key,t.__last=n.__key,t.__size=1,n.__parent=t.__key,e.forEach((s,r)=>{(s=s.getWritable()).__parent=null,n.append(s)})}_createFixAction_APPEND_CELLS_TO_ROW(t,n){return()=>{pt.default.debug("[TablesValidator][FIX TABLE ACTION - APPEND_CELLS_TO_ROW] invoked: ",{rowKey:t,numOfCellsToAppend:n});let e=(0,Rt.$getNodeByKey)(t);for(;n;){let s=(0,kr.$createTableCellNode)().append((0,Rt.$createParagraphNode)());s.setRowSpan(1).setColSpan(1),e.append(s),n--}}}_createFixAction_ADD_PARAGRAPH_TO_EMPTY_CELL(t){return()=>{pt.default.debug("[TablesValidator][FIX TABLE ACTION - ADD_PARAGRAPH_TO_EMPTY_CELL] invoked: ",{cellKey:t}),(0,Rt.$getNodeByKey)(t).append((0,Rt.$createParagraphNode)())}}_createFixAction_WRAP_CELL_CHILDREN_IN_PARAGRAPH(t){return()=>{pt.default.debug("[TablesValidator][FIX TABLE ACTION - WRAP_CELL_CHILDREN_IN_PARAGRAPH] invoked: ",{cellKey:t});let n=(0,Rt.$getNodeByKey)(t);this._wrapInvalidCellChildrenIntoParagraph(n)}}_createFixAction_ADD_ROW_CELL_TO_TABLE_NODE(t){return()=>{pt.default.debug("[TablesValidator][FIX TABLE ACTION - ADD_ROW_CELL_TO_EMPTY_TABLE_NODE] invoked: ",{tableKey:t});let n=(0,Rt.$getNodeByKey)(t),e=(0,kr.$createTableRowNode)();e.append(this._createEmptyCell()),n.append(e)}}_createFixAction_ADD_CELL_TO_EMPTY_ROW_NODE(t,n){return()=>{for(n||(n=1);n;)(0,Rt.$getNodeByKey)(t).append(this._createEmptyCell()),n--}}_createFixAction_WRAP_INVALID_ROW_NODE(t,n){return()=>{pt.default.debug("[TablesValidator][FIX TABLE ACTION - WRAP_INVALID_ROW_NODE] invoked: ",{tableKey:t,rowKey:n});let e=(0,Rt.$getNodeByKey)(t);if(!e)return;let s=(0,Rt.$getNodeByKey)(n);if(!s)return;e=e.getWritable(),s=s.getWritable();let r=s.getPreviousSibling(),o=s.getNextSibling();s.__parent=null,s.__prev=null,s.__next=null;let a=(0,kr.$createTableRowNode)();if((0,kr.$isTableCellNode)(s)){let c=s.getChildren();c.length?this._isValidCellChildren(c)||this._wrapInvalidCellChildrenIntoParagraph(s):s.append((0,Rt.$createParagraphNode)()),a.append(s)}else{let c=this._isValidCellChildren([s]),i=(0,kr.$createTableCellNode)();if(a.append(i),c)i.append(s);else{let u=(0,Rt.$createParagraphNode)();u.append(s),i.append(u)}}a.__parent=e.__key,e.__first===s.__key&&(e.__first=a.__key),e.__last===s.__key&&(e.__last=a.__key),r&&(r=r.getWritable(),r.__next=a.__key,a.__prev=r.__key),o&&(o=o.getWritable(),o.__prev=a.__key,a.__next=o.__key)}}_createFixAction_WRAP_INVALID_CELL_NODE(t,n){return()=>{pt.default.debug("[TablesValidator][FIX TABLE ACTION - WRAP_INVALID_CELL_NODE] invoked: ",{rowKey:t,cellKey:n});let e=(0,Rt.$getNodeByKey)(t);if(!e)return;let s=(0,Rt.$getNodeByKey)(n);if(s.remove(),s=(0,Rt.$createParagraphNode)(),!s)return;e=e.getWritable(),s=s.getWritable();let r=s.getPreviousSibling(),o=s.getNextSibling(),a=(0,kr.$createTableCellNode)();if(a.__parent=e.__key,e.__first===s.__key&&(e.__first=a.__key),e.__last===s.__key&&(e.__last=a.__key),r&&(r=r.getWritable(),r.__next=a.__key,a.__prev=r.__key),o&&(o=o.getWritable(),o.__prev=a.__key,a.__next=o.__key),s.__parent=null,s.__prev=null,s.__next=null,this._isValidCellChildren([s]))a.append(s);else{let c=(0,Rt.$createParagraphNode)();c.append(s),a.append(c)}}}_createFixAction_APPLY_HEADER_STATE_TO_CELL(t,n){return()=>{pt.default.debug("[TablesValidator][FIX TABLE ACTION - APPLY_HEADER_STATE_TO_CELL] invoked: ",{cellKey:t,headerStateToApply:n});let e=(0,Rt.$getNodeByKey)(t);e&&(e=e.getWritable(),e.__headerState=n)}}clear(){this.removeCandidateTableKeys=new Set,this.validateTableCandidateKeys=new Set,this.tableFixActions=[]}tableRemoveEventListener(t,n){let e=n.getEditorState(),s=e._selection;if(pt.default.debug(`[${t}]`,{selection:s}),!(0,Rt.$isRangeSelection)(s))return;let r=[];try{let o=e._nodeMap.get(s.anchor.key),a=e._nodeMap.get(s.focus.key);o&&a&&(r=s.isBackward()?a.getNodesBetween(o):o.getNodesBetween(a))}catch(o){pt.default.warn("[TablesValidator][tableRemoveEventListener] get range selection nodes internal lexical error: ",o)}r.forEach(o=>{(0,kr.$isTableNode)(o)&&this.removeCandidateTableKeys.add(o.__key)})}tableNodeRemoveListener(t){this.removeCandidateTableKeys.has(t)&&this.removeCandidateTableKeys.delete(t)}shouldGCRemovedTables(){return!!this.removeCandidateTableKeys.size}gcRemovedTables(t){pt.default.debug("[TablesValidator][gcRemovedTable] candidate table keys ",{tableKeys:this.removeCandidateTableKeys}),t.update(()=>{Array.from(this.removeCandidateTableKeys).forEach(n=>{let e=(0,Rt.$getNodeByKey)(n);e&&e.remove()}),this.removeCandidateTableKeys.clear(),(0,Rt.$addUpdateTag)(ls.historic)})}tableUpdateListener(t){this.validateTableCandidateKeys.add(t)}tableRowNodeChangesListener(t){let n=arguments.length>1&&arguments[1]!==void 0&&arguments[1],e=(arguments.length>2?arguments[2]:void 0).getEditorState()._nodeMap.get(t);if(!e)return void(n&&pt.default.debug("[TablesValidator][tableRowNodeChangesListener] no row node found in lexical: ",{tableRowNodeKey:t}));let s=e.__parent;s?this.validateTableCandidateKeys.add(s):pt.default.debug("[tableRowNodeChangesListener] no parent table for row node found in lexical: ",{rowNode:e})}tableCellNodeChangesListener(t,n){let e=n.getEditorState(),s=e._nodeMap.get(t);if(!s||!s.__parent)return;let r=e._nodeMap.get(s.__parent);r&&r.__parent&&this.validateTableCandidateKeys.add(r.__parent)}shouldValidateUpdatedTables(){return!!this.validateTableCandidateKeys.size}validateUpdatedTables(t){let n=Array.from(this.validateTableCandidateKeys);return t.getEditorState().read(()=>{for(let e of n){let s=(0,Rt.$getNodeByKey)(e);if(!s)continue;let r=s.getChildren();if(!r.length){this.tableFixActions.push(this._createFixAction_ADD_ROW_CELL_TO_TABLE_NODE(e));continue}let o=0;r.forEach(u=>{u.__size>o&&(o=u.__size)});let a=[],c=r.map((u,d)=>{if(!(0,kr.$isTableRowNode)(u))return this.tableFixActions.push(this._createFixAction_WRAP_INVALID_ROW_NODE(e,u.__key)),"invalid_row_node";let f=u.getChildren();if(!f.length&&!a.length)return this.tableFixActions.push(this._createFixAction_ADD_CELL_TO_EMPTY_ROW_NODE(u.__key,o)),"empty_row_should_add_cell";if(!f.length&&a.length)return a=[],"empty_row_should_be_empty";let p=0;if(a.length){let m=[];a.forEach(g=>{let[v,b]=g;p+=b,v--,v&&m.push([v,b])}),a=[...m]}let h=f.map((m,g)=>{if(!(0,kr.$isTableCellNode)(m))return this.tableFixActions.push(this._createFixAction_WRAP_INVALID_CELL_NODE(u.__key,m.__key)),p++,"invalid_cell_node_should_wrap_in_cell";let v,b=m.getChildren(),_=!b.length;if(_?this.tableFixActions.push(this._createFixAction_ADD_PARAGRAPH_TO_EMPTY_CELL(m.__key)):(v=this._isValidCellChildren(b),v||this.tableFixActions.push(this._createFixAction_WRAP_CELL_CHILDREN_IN_PARAGRAPH(m.__key))),m.__rowSpan>1){let E=m.__rowSpan,S=m.__colSpan;a.push([E-1,S])}if(p+=m.__colSpan,m.__headerState===Ha.NO_STATUS){let E=this._scanForCellHeaderState(r,f,g,o);E&&this.tableFixActions.push(this._createFixAction_APPLY_HEADER_STATE_TO_CELL(m.__key,E))}return{cellKey:m.__key,rowKey:u.__key,tableKey:e,colSpan:m.__colSpan,rowSpan:m.__rowSpan,headerState:m.__headerState,childrenAreValid:v,isEmptyCell:_}});if(p<o){let m=o-p;this.tableFixActions.push(this._createFixAction_APPEND_CELLS_TO_ROW(u.__key,m))}return{realRowLength:p,rowKey:u.__key,tableKey:e,cells:h}}),i=!this.tableFixActions.length;pt.default[i?"debug":"warn"](`[TablesValidator][validateUpdatedTables] IS TABLE VALID: ${i}`,{tableNodeKey:e,tableValidationMatrix:c,requiredRowLength:o}),this.validateTableCandidateKeys.delete(e)}}),!this.tableFixActions.length}shouldFixTablesStructure(){return!!this.tableFixActions.length}fixTablesStructure(t){this.tableFixActions.length&&(pt.default.debug("[TablesValidator][fixTablesStructure]: fix actions to apply - count: ",this.tableFixActions.length),t.update(()=>{for(let n of this.tableFixActions)n();this.tableFixActions=[],(0,Rt.$addUpdateTag)(ls.historic)}))}ensureDocTablesAreValid(t){return this.shouldGCRemovedTables()?(pt.default.warn("[TablesValidator][GARBAGE COLLECT TABLE NODES AFTER TABLE REMOVAL ATTEMPT]"),this.gcRemovedTables(t),!1):!(this.shouldValidateUpdatedTables()&&(pt.default.debug("[TablesValidator][shouldValidateUpdatedTables] invoked"),!this.validateUpdatedTables(t)))||(pt.default.warn("[TablesValidator][shouldValidateUpdatedTables] INVALID LEXICAL TABLE(S) STRUCTURE FOUND - FIXING"),this.fixTablesStructure(t),!1)}}class jI{constructor(t){pt.default.debug("[UnsupportedNodesConverter][constructor] invoked for editor key: ",t),this.usupportedNodeTypesConvertMap={autolink:{checkForSync:n=>n.type==="autolink",forSync:n=>(n.type="link",n._ext_props={isUnlinked:n.isUnlinked},delete n.isUnlinked,n),checkFromSync:n=>n.type==="link"&&n._ext_props,fromSync:n=>(n.type="autolink",n.isUnlinked=n._ext_props.isUnlinked,delete n._ext_props,n)},overflow:{checkForSync:n=>n.type==="overflow",forSync:n=>(n.type="paragraph",n.textFormat=0,n._ext_props={overflow:!0},n),checkFromSync:n=>n.type==="paragraph"&&n._ext_props&&n._ext_props.overflow===!0,fromSync:n=>(n.type="overflow",delete n.textFormat,delete n._ext_props,n)}},this.trackedNodes={}}trackUnsupportedNode(t,n){if(!this.usupportedNodeTypesConvertMap[t.__type])return;const e=Ld(t);this.trackedNodes[t.__key]={lexicalNode:t,path:e}}untrackUnsupportedNode(t,n){this.trackedNodes[t]&&delete this.trackedNodes[t]}convertUnsupportedNodesForSyncInJsonState(t,n){if(!t)return null;for(let e in this.trackedNodes){let{lexicalNode:s}=this.trackedNodes[e],r=null,o=n.getEditorState();if(!o._nodeMap.get(s.__key))continue;o.read(()=>{r=Ld(s),this.trackedNodes[e].path=r});const a=r[r.length-1];let c=zc(r.slice(0,r.length-2),t).children[a];c&&(this.usupportedNodeTypesConvertMap.autolink.checkForSync(c)&&(c=this.usupportedNodeTypesConvertMap.autolink.forSync(c)),this.usupportedNodeTypesConvertMap.overflow.checkForSync(c)&&(c=this.usupportedNodeTypesConvertMap.overflow.forSync(c)))}return t}convertUnsupportedNodesFromSyncInJsonState(t,n){if(!t)return null;for(let e in this.trackedNodes){let{lexicalNode:s,path:r}=this.trackedNodes[e],o=zc(r,t);o&&(this.usupportedNodeTypesConvertMap.autolink.checkFromSync(o)&&(o=this.usupportedNodeTypesConvertMap.autolink.fromSync(o)),this.usupportedNodeTypesConvertMap.overflow.checkFromSync(o)&&(o=this.usupportedNodeTypesConvertMap.overflow.fromSync(o)))}return t}convertUnsupportedJsonNodeFromSync(t,n){return this.usupportedNodeTypesConvertMap.autolink.checkFromSync(t)&&(t=this.usupportedNodeTypesConvertMap.autolink.fromSync(t)),this.usupportedNodeTypesConvertMap.overflow.checkFromSync(t)&&(t=this.usupportedNodeTypesConvertMap.overflow.fromSync(t)),t}}const kI=jI;class TI{constructor(t){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};pt.default.debug("[NodesConversionsManager][constructor] invoked for editor key: ",t),this.customNodesConverter=n.customNodesConverter,this.unsupportedNodesConverter=n.unsupportedNodesConverter}trackNodeForConversion(t,n){this.customNodesConverter.trackCustomNodeForConvert(t,n),this.unsupportedNodesConverter.trackUnsupportedNode(t,n)}untrackNodeForConversion(t,n){this.customNodesConverter.untrackCustomNodeForConvert(t,n),this.unsupportedNodesConverter.untrackUnsupportedNode(t,n)}convertNodesForSyncInJsonState(t,n){return t=this.unsupportedNodesConverter.convertUnsupportedNodesForSyncInJsonState(t,n),this.customNodesConverter.convertCustomNodesForSyncInJsonState(t,n)}convertNodesFromSyncInJsonState(t,n){return t=this.unsupportedNodesConverter.convertUnsupportedNodesFromSyncInJsonState(t,n),this.customNodesConverter.convertCustomNodesFromSyncInJsonState(t,n)}convertJsonNodeFromSync(t,n){return t=this.unsupportedNodesConverter.convertUnsupportedJsonNodeFromSync(t,n),this.customNodesConverter.convertCustomJsonNodeFromSync(t,n)}}const AI=TI;function Zx(l,t){var n=Object.keys(l);if(Object.getOwnPropertySymbols){var e=Object.getOwnPropertySymbols(l);t&&(e=e.filter(function(s){return Object.getOwnPropertyDescriptor(l,s).enumerable})),n.push.apply(n,e)}return n}function OI(l){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?Zx(Object(n),!0).forEach(function(e){NI(l,e,n[e])}):Object.getOwnPropertyDescriptors?Object.defineProperties(l,Object.getOwnPropertyDescriptors(n)):Zx(Object(n)).forEach(function(e){Object.defineProperty(l,e,Object.getOwnPropertyDescriptor(n,e))})}return l}function NI(l,t,n){return(t=PI(t))in l?Object.defineProperty(l,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):l[t]=n,l}function PI(l){var t=II(l,"string");return typeof t=="symbol"?t:t+""}function II(l,t){if(typeof l!="object"||!l)return l;var n=l[Symbol.toPrimitive];if(n!==void 0){var e=n.call(l,t||"default");if(typeof e!="object")return e;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(l)}class MI{constructor(){this._hub={}}initForEditor(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:"";if(!t||this._hub[t])return;pt.default.debug("[Hub][initForEditor] invoked for editorKey: ",t);const n=new SI(t),e=new kI(t);this._hub[t]={codoxImpl:new cP(t),codoxRemoteSelection:new dI(t),tablesValidator:new CI(t),customNodesConverter:n,unsupportedNodesConverter:e,nodesConversionsManager:new AI(t,{customNodesConverter:n,unsupportedNodesConverter:e}),nestedEditorsProcessor:new mI(t),contentNestingsWatcher:new $x(t),codoxLexicalEditorManager:new YP(t),codoxNodesMap:new ZP(t),codoxComments:new gP(t),configBackup:{},clientEventListeners:{},contentChangedHookClientCallback:null}}getCodoxImpl(t){return this.initForEditor(t),this._hub[t].codoxImpl}getCodoxRemoteSelection(t){return this.initForEditor(t),this._hub[t].codoxRemoteSelection}getTablesValidator(t){return this.initForEditor(t),this._hub[t].tablesValidator}getCustomNodesConverter(t){return this.initForEditor(t),this._hub[t].customNodesConverter}getUnsupportedNodesConverter(t){return this.initForEditor(t),this._hub[t].unsupportedNodesConverter}getNodesConversionsManager(t){return this.initForEditor(t),this._hub[t].nodesConversionsManager}getNestedEditorsProcessor(t){return this.initForEditor(t),this._hub[t].nestedEditorsProcessor}getContentNestingsWatcher(t){return this.initForEditor(t),this._hub[t].contentNestingsWatcher}getCodoxLexicalEditorManager(t){return this.initForEditor(t),this._hub[t].codoxLexicalEditorManager}getCodoxNodesMap(t){return this.initForEditor(t),this._hub[t].codoxNodesMap}getCodoxComments(t){return this.initForEditor(t),this._hub[t].codoxComments}getConfigBackup(t){return this._hub[t].configBackup}setConfigBackup(t,n){this._hub[t].configBackup=OI({},n)}getClientEventListeners(t){return this._hub[t].clientEventListeners}getClientEventListenerByEvent(t,n){return this._hub[t].clientEventListeners[n]}setClientEventListener(t,n,e){this._hub[t].clientEventListeners[n]=e}getContentChangedHookClientCallback(t){return this._hub[t].contentChangedHookClientCallback}setContentChangedHookClientCallback(t,n){this._hub[t].contentChangedHookClientCallback=n}gc(t){delete this._hub[t]}}const RI=new MI,Un=RI,DI=["___ignoreCodox"];function LI(l,t){if(l==null)return{};var n,e,s=FI(l,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(l);for(e=0;e<r.length;e++)n=r[e],t.includes(n)||{}.propertyIsEnumerable.call(l,n)&&(s[n]=l[n])}return s}function FI(l,t){if(l==null)return{};var n={};for(var e in l)if({}.hasOwnProperty.call(l,e)){if(t.includes(e))continue;n[e]=l[e]}return n}function Qx(l,t){var n=Object.keys(l);if(Object.getOwnPropertySymbols){var e=Object.getOwnPropertySymbols(l);t&&(e=e.filter(function(s){return Object.getOwnPropertyDescriptor(l,s).enumerable})),n.push.apply(n,e)}return n}function Xx(l){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?Qx(Object(n),!0).forEach(function(e){BI(l,e,n[e])}):Object.getOwnPropertyDescriptors?Object.defineProperties(l,Object.getOwnPropertyDescriptors(n)):Qx(Object(n)).forEach(function(e){Object.defineProperty(l,e,Object.getOwnPropertyDescriptor(n,e))})}return l}function BI(l,t,n){return(t=zI(t))in l?Object.defineProperty(l,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):l[t]=n,l}function zI(l){var t=UI(l,"string");return typeof t=="symbol"?t:t+""}function UI(l,t){if(typeof l!="object"||!l)return l;var n=l[Symbol.toPrimitive];if(n!==void 0){var e=n.call(l,t||"default");if(typeof e!="object")return e;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(l)}const sh=()=>GN(),eS=l=>typeof l=="number";function qc(l){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"";const n=function(){for(var e=arguments.length,s=new Array(e),r=0;r<e;r++)s[r]=arguments[r];return l.apply(this,s)};return Object.defineProperty(n,"name",{value:t,writable:!0}),n}const zl=l=>l.__type==="root"||l.type==="root",tS=l=>zl(l.getParent()),Lr=l=>l.__type===eh.text||l.type===eh.text||l.hasOwnProperty("__text")||l.hasOwnProperty("text"),Wc=l=>(0,Rt.$isElementNode)(l),Jc=l=>(0,kr.$isTableNode)(l)||(0,kr.$isTableRowNode)(l)||(0,kr.$isTableCellNode)(l),HI=l=>!l.getChildren,nS=l=>!!l.getChildren,Tr=l=>(0,Rt.$isDecoratorNode)(l),Fd=l=>(0,zN.$isLinkNode)(l),Bd=l=>l.__type==="mark"||l.type==="mark",Uy=l=>(0,Rt.$isLineBreakNode)(l),Wa=l=>Lr(l)||Uy(l),Hy=l=>l.__type===eh.horizontalrule||l.type===eh.horizontalrule,qI=l=>l.__type==="image"||l.type==="image",WI=l=>l.__type==="inline-image"||l.type==="inline-image",rS=l=>{if(Wa(l)||Fd(l)||Bd(l))return!1;if(!l.__parent||l.__parent==="root"||(0,Rt.$isParagraphNode)(l))return!0;let t=l.getParent().getChildren();return t.length===1&&t[0].__key===l.__key?!((Tr(l)||Fd(l)||Bd(l))&&!Hy(l)):!t.some(n=>{let e=Hy(n);return n.__key!==l.__key&&(Wa(n)||Tr(n)&&!e||Fd(n)||Bd(n))})},oS=(l,t)=>{const n=Un.getCodoxNodesMap(t).get(l.codoxId);return!n||l.__key===n.__key},Vc=function(l){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null,n=arguments.length>2?arguments[2]:void 0,e=arguments.length>3?arguments[3]:void 0;try{l.getWritable&&(l=l.getWritable());const s=t||sh();l.codoxId=s,Un.getCodoxNodesMap(e).add(s,l,n)}catch(s){pt.default.warn("[addCodoxIdToNode] Failed to add codoxId: ",{node:l,preparedCodoxId:t,wasIdGenerated:!t,err:s})}},iS=(l,t)=>{Un.getCodoxNodesMap(t).remove(l.codoxId),delete l.codoxId},JI=(l,t)=>{if(!nS(l)||!l.getChildrenSize())return;const n=l.getChildren();if(n.some(r=>!!(0,Rt.$isParagraphNode)(r)))return;let e=!1,s=[];for(let r of n)(Wa(r)||Tr(r)||Fd(r)||Bd(r))&&!e&&(Hy(r)||(e=!0)),(nS(r)||Tr(r))&&s.push(r);for(let r of s)e||r.codoxId?e&&r.codoxId&&(r=r.getWritable(),iS(r,t)):(r=r.getWritable(),Vc(r,null,`${r.__type}_codoxIdMaintainance`,t))},zd=function(l,t){let{setup:n=!1,update:e=!1,remove:s=!1}=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};if(qI(l)||WI(l)){if(n&&t.setDecoratorId(l.codoxDId,l.exportJSON()),e){let r=t.getDecoratorById(l.codoxDId);if(!r)return;let o=!0,a=l.__src||"",c=r.src||"";if(a.length!==c.length)o=!1;else{let i=a,u=c;if(i.startsWith("data")&&u.startsWith("data")){let d=i.length-50;for(let f=i[i.length-1];f>d;f--)if(i[f]!==u[f]){o=!1;break}}else o=i===u}o||(t.removeDecoratorId(l.codoxDId),l.codoxDId=sh()),t.setDecoratorId(l.codoxDId,l.exportJSON())}s&&t.removeDecoratorId(l.codoxDId)}},VI=l=>{const t=Xx({},l);for(const n in l)l[n]===void 0&&l.hasOwnProperty(n)&&delete t[n];return t},KI=l=>{const t=`__nativeCreateDOM_${l.name}`;l.prototype[t]=qc(l.prototype.createDOM,t),l.prototype.createDOM=function(n,e){let s=(0,Rt.$getEditor)(),r=s.getKey(),o=Un.getCodoxNodesMap(r),a=Un.getNodesConversionsManager(r);if(rS(this))if(this.codoxId){if(!oS(this,r)){let i=o.get(this.codoxId);i.__type===this.__type&&this.isAttached()&&!i.isAttached()?(pt.default.warn("[createDOM][Non-unique codoxId] overwrite abandoned existing node with latest: ",{latestNode:this,existingNode:i}),o.add(this.codoxId,this,`${this.__type}_createDOM`)):Vc(this,null,`${this.__type}_createDOM`,r)}}else Vc(this,null,`${this.__type}_createDOM`,r);else this.codoxId&&iS(this,r);Tr(this)&&!this.codoxDId&&(this.codoxDId=sh(),zd(this,o,{setup:!0})),Un.getNestedEditorsProcessor(r).manageNestedEditorInLexicalNode(this,"createDOM",s);let c=this[t](n,s);return c.__codox_track=!0,a.trackNodeForConversion(this,s),c}},GI=l=>{const t=`__nativeUpdateDOM_${l.name}`;return l.prototype[t]=qc(l.prototype.updateDOM,t),l.prototype.updateDOM=function(){let n=(0,Rt.$getEditor)().getKey(),e=(Un.getCodoxLexicalEditorManager(n),Un.getCodoxNodesMap(n));const s=this[t](...arguments);return JI(this,n),this.codoxDId&&zd(this,e,{update:!0}),s},l},$I=l=>{const t=`__nativeRemove_${l.name}`;return l.prototype[t]=qc(l.prototype.remove,t),l.prototype.remove=function(){let n=(0,Rt.$getEditor)(),e=n.getKey(),s=Un.getCodoxNodesMap(e),r=Un.getNodesConversionsManager(e);const o=this.codoxId,a=this.codoxDId;return o&&s.remove(o),a&&zd(this,s,{remove:!0}),r.untrackNodeForConversion(this.__key,n),Un.getNestedEditorsProcessor(e).gcNestedEditorListenerInLexicalNode(this,"remove"),this[t](...arguments)},l},YI=l=>{const t=`__nativeExportJSON_${l.name}`;l.prototype[t]=qc(l.prototype.exportJSON,t),l.prototype.exportJSON=function(){const n=this[t]();return this.codoxId&&(n.codoxId=this.codoxId),this.codoxDId&&(n.codoxDId=this.codoxDId),Lr(this)&&eS(n.format)&&this.hasFormat&&(n.format=QN(this)),Lr(n)&&n.style&&(n.style.endsWith(";")||(n.style+=";")),VI(n)}},ZI=l=>{const t="__nativeImportJSON";l[t]=qc(l.importJSON,t),l.importJSON=function(n){let{___ignoreCodox:e}=n;const s=Xx({},LI(n,DI));Lr(s)&&!eS(s.format)&&(s.format=ZN(s.format)),Lr(s)&&s.style&&(s.style.endsWith(";")||(s.style+=";"));const r=l[t](s);if(e)return r;let o=(0,Rt.$getEditor)(),a=o.getKey(),c=Un.getNestedEditorsProcessor(a),i=Un.getCodoxNodesMap(a);c.manageNestedEditorInLexicalNode(r,"importJSON",o);const u=rS(r);return u&&s.codoxId&&(i.hasPastedId(s.codoxId)&&i.has(s.codoxId)?(i.removePastedId(s.codoxId),Vc(r,null,`${r.__type}_importJSON_pasted`,a)):Vc(r,s.codoxId,`${r.__type}_importJSON`,a)),u&&!r.codoxId&&Vc(r,null,`${r.__type}_${r.__key}_importJSON_should_have_id`,a),s.codoxDId&&(r.codoxDId=s.codoxDId,zd(r,i,{setup:!0})),r}},QI=l=>{const t="__nativeClone";l[t]=qc(l.clone,t),l.clone=function(n){const e=l[t](n);let s=(0,Rt.$getEditor)(),r=Un.getNestedEditorsProcessor(s.getKey()),o=Un.getCodoxNodesMap(s.getKey());return n.codoxId&&(e.codoxId=n.codoxId),n.codoxDId&&(e.codoxDId=n.codoxDId,zd(e,o,{setup:!0})),r.manageNestedEditorInClonedLexicalNode(n,e,s),e}},XI=l=>{let t=!1,n=!1,e=!1,s=!1;for(let o of l)typeof o=="object"&&o.replace&&o.with||(o.name===Rt.TextNode.name?t=!0:o.name===Rt.ParagraphNode.name?n=!0:o.name===Rt.LineBreakNode.name?e=!0:o.name===Bi.MarkNode.name&&(s=!0));let r=[];return t||r.push(Rt.TextNode),n||r.push(Rt.ParagraphNode),e||r.push(Rt.LineBreakNode),s||r.push(Bi.MarkNode),r.length?[...r,...l]:l},e6=l=>{let t=l.getType();if(t!=="beautifulMention"&&!My[t]){if(!l.prototype.toCodoxNode)return`"${t}" custom node implementation is missing instance conversion api .toCodoxNode()`;if(!l.fromCodoxNode)return`"${t}" custom node implementation is missing class static conversion api .fromCodoxNode()`;const n=(0,Rt.createEditor)({nodes:[l]});let e;if(n._headless=!0,n.update(()=>{let s=new l,r=1;for(let u in s)s[u]===void 0&&(s[u]=`${r}`,r++);let o=s.exportJSON(),a=s.toCodoxNode(),c=l.fromCodoxNode(a),i=Ly(o,c);s.remove(),i||(e=`"${l.name}" custom node conversion api implementation is invalid. Input in .toCodoxNode() must match with output in .fromCodoxNode(). Check attributes preserving during conversion - must be same for .exportJSON() and for fromCodoxNode() outputs.
|
|
1482
|
+
`,B.append(j),_=j}!I&&w.width<1&&r.length>1&&(B.style.width="3px")}b.forEach(S=>{this.hoverList.push([S,_,a])})});pt.default.debug("[CodoxRemoteSelection][constructor] invoked for editor key: ",t),this.remoteSelections=[],this.isEditingInProgress=!1,this.hoverList=[],this.trackedNodesKeys=new Set,this.remoteSelectionDOMsMap={},this.activeEditorsKeys={},this.keyboardBindedListener=this._keyboardEventsListener.bind(this),this.mouseBindedListener=this._mouseEventsListener.bind(this),this.resizeBindedListener=this.hideInUI=!1,this.editorContainerHTMLElement=null}_mouseEventsListener(t){let n=!1,e=t.target,s=!1,r=3;for(;r&&e;){if(e.__codox_track){n=!0;break}if(e.__lexicalEditor){n=!0,s=!0;break}e=e.parentNode,r--}if(!n)return;let o=null;for(let i in this.activeEditorsKeys){if(e[`__lexicalKey_${i}`]){o=i;break}e.__lexicalEditor&&(o=e.__lexicalEditor._key)}if(!o)return;let a=s?"root":e[`__lexicalKey_${o}`];if(!a||!this.trackedNodesKeys.has(`${a}__${o}`))return;let c=new Set;for(let i=0;i<this.hoverList.length;i++){let u=this.hoverList[i],[d,f,p]=u;if(c.has(p))continue;let h=lo.isMousePositionWithinElementCords(t,d);t.type===xo.mouseover&&h&&(f.style.animation=this.isEditingInProgress?lo.tooltipAnimations.hideAtOnce:lo.tooltipAnimations.showAtOnce,c.add(p)),t.type===xo.mouseout&&(f.style.animation=lo.tooltipAnimations.hideWithDelay,c.add(p)),t.type===xo.mousemove&&h&&(f.style.animation=this.isEditingInProgress?lo.tooltipAnimations.hideAtOnce:lo.tooltipAnimations.showAtOnce,c.add(p))}}_keyboardEventsListener(t){t.type===xo.keypress&&(this.isEditingInProgress||(this.isEditingInProgress=!0)),t.type===xo.keyup&&this.isEditingInProgress&&(this.isEditingInProgress=!1)}_createResizeEventListener(t){return function(n){t&&this.paintRemoteSelections(this.remoteSelections,t)}}_filterRemoteSelectionRectsWithinEditor(t){if(!this.editorContainerHTMLElement)return t;const n=this.editorContainerHTMLElement.getBoundingClientRect();return t.filter(e=>!(e.top<n.top||e.bottom>n.bottom))}mount(t){this.resizeBindedListener=this._createResizeEventListener(t).bind(this),window.addEventListener(xo.keypress,this.keyboardBindedListener),window.addEventListener(xo.keyup,this.keyboardBindedListener),window.addEventListener(xo.resize,this.resizeBindedListener),window.addEventListener(xo.scroll,this.resizeBindedListener);for(const n of Cx)window.addEventListener(n,this.mouseBindedListener);try{let n=t.getRootElement();n&&(this.editorContainerHTMLElement=n,this.editorContainerHTMLElement.addEventListener(xo.scroll,this.resizeBindedListener))}catch(n){pt.default.warn('[codoxRemoteSelections][mount] failed add scroll listener to ".editor-container" div: ',n)}}unmount(){window.removeEventListener(xo.keypress,this.keyboardBindedListener),window.removeEventListener(xo.keyup,this.keyboardBindedListener),window.removeEventListener(xo.resize,this.resizeBindedListener),window.removeEventListener(xo.scroll,this.resizeBindedListener);for(const t of Cx)window.removeEventListener(t,this.mouseBindedListener);try{this.editorContainerHTMLElement&&(this.editorContainerHTMLElement.removeEventListener(xo.scroll,this.resizeBindedListener),this.editorContainerHTMLElement=null)}catch(t){pt.default.warn('[codoxRemoteSelections][unmount] failed remove scroll listener to ".editor-container" div: ',t)}this.gcPrevPaintedRemoteSelections()}shouldUpdateRemoteSelections(){return!0}gcPrevPaintedRemoteSelections(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[];for(let n in this.remoteSelectionDOMsMap)this.remoteSelectionDOMsMap[n].remove();this.hoverList=[],this.trackedNodesKeys=new Set,this.remoteSelections=t||[],this.remoteSelectionDOMsMap={},this.activeEditorsKeys={}}paintRemoteSelections(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[],n=arguments.length>1?arguments[1]:void 0;this.gcPrevPaintedRemoteSelections(t);let e=n.getEditorState(),s=Un.getCodoxNodesMap(n.getKey());e.read&&e.read(()=>{for(let r of this.remoteSelections)if(oh.validateJSONSelection(r,Rd.remote,s))if(fn.isNestedSelectionJSON(r)){let{nestedSelectionJSON:o,nestedEditor:a}=fn.getNestedSelectionJSONFromMainSelectionJSON(r,s);if(!a)continue;a.getEditorState().read(()=>{let c=Un.getCodoxNodesMap(a.getKey()),i=fn.JSONToLexical(o,c);if(i)try{this.paintSingleRemoteSelection({editor:a,selectionJSON:r,lexicalSelection:i,selectedNodes:i.getNodes(),isBackward:i.isBackward()})}catch(u){pt.default.warn("[PAINT REMOTE SELECTION] failed for nested editor - ",{error:u,nestedSelectionJSON:o,fullSelection:r,lexicalSelection:i})}else pt.default.error("DEBUGGER: [paintRemoteSelections] nested selection from json to lexical is null: ",{selection:r,nestedSelectionJSON:o,lexicalSelection:i})})}else{let o=fn.JSONToLexical(r,s);if(!o){pt.default.error("DEBUGGER: [paintRemoteSelections] selection from json to lexical is null: ",{selection:r,lexicalSelection:o});continue}try{this.paintSingleRemoteSelection({editor:n,selectionJSON:r,lexicalSelection:o,selectedNodes:o.getNodes(),isBackward:o.isBackward()})}catch(a){pt.default.warn("[PAINT REMOTE SELECTION] failed - ",{error:a,fullSelection:r,lexicalSelection:o})}}})}updateRemoteSelections(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[],n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"",e=arguments.length>2?arguments[2]:void 0;this.shouldUpdateRemoteSelections(t)&&(pt.default.debug(`[updateRemoteSelections] caller: [${n}] editor key: `,e.getKey(),{newRemoteSelections:t}),Promise.resolve().then(()=>{this.paintRemoteSelections(t,e),this.hideInUI&&this.hideRemoteSelectionsFromUI()}))}clear(){this.gcPrevPaintedRemoteSelections()}getCurrentRemoteSelections(){return this.remoteSelections}hideRemoteSelectionsFromUI(){this.hideInUI||(this.hideInUI=!0);const t=document.querySelectorAll(".codox_remote_selection");for(let n of t)n.classList.add("hidden_codox_remote_selection")}showHiddenRemoteSelectionsInUI(){this.hideInUI=!1;const t=document.querySelectorAll(".hidden_codox_remote_selection");for(let n of t)n.classList.remove("hidden_codox_remote_selection")}}class $x{constructor(){this.blacklist=Object.keys(jx).reduce((t,n)=>{let e=jx[n];return t[n]=e.reduce((s,r)=>(s[r]=r,s),{}),t},{}),this._isBlacklistedFound=!1,this._blacklistCallback=null,this._blacklistedMessage=""}_shouldSkipNode(t){return t instanceof Rt.TextNode||t instanceof Rt.ParagraphNode||t instanceof Rt.RootNode}_generateBlacklistedMessage(t){let{node:n,parent:e,isNestedEditor:s=!1}=t,r=`"Node ${n.__type}" with key ${n.__key} cannot be child of node "${e.__type}" with key ${e.__key}`;return s?`Blacklisted combination found in nested editor. ${r}`:`Blacklisted combination found. ${r}`}setBlacklistCallback(t){this._blacklistCallback=t}removeBlacklistCallback(){this._blacklistCallback=null}invokeBlacklistCallback(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:"";this._blacklistCallback&&this._blacklistCallback(t)}trackBlacklisted(t){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"",e=arguments.length>2?arguments[2]:void 0;if(n!==Ei.created||this._isBlacklistedFound||!t||!t.__type||this._shouldSkipNode(t))return;let s=t.__type,r=this.blacklist[s];r&&e.read(()=>{let o=t.getParent();for(;o!==null;){let a=o?o.__type:null;if(!a)return;if(r[a])return pt.default.debug("[ContentNestingsWatcher][trackBlacklisted] BLACKLISTED COMBINATION FOUND. nodes:",{targetNode:t,targetType:s,parent:o,parentType:a,mutationType:n}),this._isBlacklistedFound=!0,void(this._blacklistedMessage=this._generateBlacklistedMessage({node:t,parent:o}));o=o.getParent()}})}trackBlacklistedInNestedEditor(t){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"",e=arguments.length>3?arguments[3]:void 0;if(n!==Ei.created||this._isBlacklistedFound||this._shouldSkipNode(t))return;let s=e.__type,r=t.__type;if(!s||!r)return;let o=this.blacklist[r];o&&o[s]&&(this._isBlacklistedFound=!0,this._blacklistedMessage=this._generateBlacklistedMessage({node:t,parent:e,isNestedEditor:!0}),pt.default.warn("[ContentNestingsWatcher][trackBlacklistedInNestedEditor] FOUND: ",{targetNode:t,targetType:r,rootNode:e,rootType:s,mutationType:n}))}isBlacklistedFound(){this._isBlacklistedFound&&(this._isBlacklistedFound=!1);let t=this._blacklistedMessage;return this._blacklistedMessage="",t}}var fI=l=>{var t={};return An.d(t,l),t};const Hc=fI({mergeRegister:()=>xr,registerNestedElementResolver:()=>v_}),pI=["editorState","prevEditorState","dirtyElements","dirtyLeaves"];function hI(l,t){if(l==null)return{};var n,e,s=gI(l,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(l);for(e=0;e<r.length;e++)n=r[e],t.includes(n)||{}.propertyIsEnumerable.call(l,n)&&(s[n]=l[n])}return s}function gI(l,t){if(l==null)return{};var n={};for(var e in l)if({}.hasOwnProperty.call(l,e)){if(t.includes(e))continue;n[e]=l[e]}return n}class mI{constructor(t){pt.default.debug("[NestedEditorsProcessor] constructor invoked for editor key: ",t),this.nestedEditorsListenersMap={}}_getListenersMap(){return this.nestedEditorsListenersMap}_createNestedEditorUpdatesListener(t,n,e){let s=!1;return function(r){let{editorState:o,prevEditorState:a,dirtyElements:c,dirtyLeaves:i}=r,u=(hI(r,pI),e.getEditorState()),d=Un.getCodoxLexicalEditorManager(e.getKey());if(!d.isCodoxStarted||!u._nodeMap.get(t.__key))return;let f=Fl(o),p=Fl(a),h=Ly(f,p),m=o._selection,g=(a._selection,!1),v=null,b=(Wx(c,i),t[n]),_=Un.getContentNestingsWatcher(e.getKey()),E=_.isBlacklistedFound();if(E)return s=!0,pt.default.debug("[NESTED EDITOR LISTENER] BLACKLISTED FOUND - revert to prev state"),qx(t)?(_.invokeBlacklistCallback(E),void b.update(()=>{try{const S=b.parseEditorState(p);if(S.isEmpty())return(0,Rt.$getRoot)().clear(),!0;b.setEditorState(S)}catch(S){pt.default.error("[NESTED EDITOR LISTENER] BLACKLISTED FOUND - ROLLBACK ERROR: ",S)}})):void 0;if(s)s=!1;else{if(t.codoxId||t.codoxDId){let S=null;u.read(()=>{S=fn.getNodeAncestorsCodoxIds(t),!t.codoxId&&t.codoxDId&&S.push(t.codoxDId)}),o.read(()=>{let w=Iy(n),y=fn.lexicalToJSONNested(m,w,S);v=d.getCurrentNestedSelectionJSON(),g=fn.equalSelectionsJSON(v,y),g||d.setNestedSelectionJSON(y)})}h&&g||setTimeout(()=>e.update(()=>{try{Fy({fromNestedEditor:!0}),t.markDirty()}catch(S){pt.default.error("[NESTED EDITOR LISTENER] MARKING DIRTY TO TRIGGER UPDATE - ERROR: ",S)}}))}}}_isNestedEditorManaged(t){return!!this.nestedEditorsListenersMap[t]}gc(t){pt.default.debug("[nestedEditorsProcessor]: GC");for(let n in this.nestedEditorsListenersMap)if(!t.getEditorState()._nodeMap.get(n)){let e=this.nestedEditorsListenersMap[n];e&&e(),delete this.nestedEditorsListenersMap[n]}}manageNestedEditorInLexicalNode(t){let n=arguments.length>2?arguments[2]:void 0;if(this._isNestedEditorManaged(t.getKey()))return;let e=qx(t);if(e){let s=t[e],r=this._createNestedEditorUpdatesListener(t,e,n);pt.default.debug("[NESTED EDITOR][registerMutationListener] : ",{nestedEditor:s,nestedEditorNodeClasses:s._nodes});let o=[],a=Un.getContentNestingsWatcher(n.getKey());s._nodes.forEach((u,d,f)=>{let{klass:p}=u,h=s.registerMutationListener(p,m=>{for(let[g,v]of m)if(v===Ei.created){let b=s.getEditorState()._nodeMap.get(g);b&&a.trackBlacklistedInNestedEditor(b,v,s.getEditorState(),t)}});o.push(h)});let c=(0,Hc.mergeRegister)(s.registerUpdateListener(r),...o),i=t.getKey();this.nestedEditorsListenersMap[i]=c}}gcNestedEditorListenerInLexicalNode(t){let n=t.getKey(),e=this.nestedEditorsListenersMap[n];e&&(e(),pt.default.debug("delete this.nestedEditorsListenersMap[nodeKey]: ",n),delete this.nestedEditorsListenersMap[n])}manageNestedEditorInClonedLexicalNode(t,n,e){let s=t.getKey();s!==n.getKey()&&this._isNestedEditorManaged(s)&&(this.gcNestedEditorListenerInLexicalNode(t),this.manageNestedEditorInLexicalNode(n,"",e))}setNestedEditorSelection(t,n){let{nestedSelectionJSON:e,nestedEditor:s}=fn.getNestedSelectionJSONFromMainSelectionJSON(t,n);if(!s)return!1;let r=!0;return s.update(()=>{try{const o=Un.getCodoxNodesMap(s.getKey());let a=fn.JSONToLexical(e,o);(0,Rt.$setSelection)(a),pt.default.debug("[setNestedEditorSelection]: lexical nested selection: ",a)}catch(o){pt.default.error("[setNestedEditorSelection] set nested selection error: ",o),r=!1}}),r}clearListeners(){pt.default.debug("[nestedEditorsProcessor]: clear listeners");for(let t in this.nestedEditorsListenersMap){let n=this.nestedEditorsListenersMap[t];n&&n(),pt.default.debug("delete this.nestedEditorsListenersMap[nodeKey]: ",t),delete this.nestedEditorsListenersMap[t]}}}const yI=["codox_metadata"];function vI(l,t){if(l==null)return{};var n,e,s=bI(l,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(l);for(e=0;e<r.length;e++)n=r[e],t.includes(n)||{}.propertyIsEnumerable.call(l,n)&&(s[n]=l[n])}return s}function bI(l,t){if(l==null)return{};var n={};for(var e in l)if({}.hasOwnProperty.call(l,e)){if(t.includes(e))continue;n[e]=l[e]}return n}function Yx(l,t){var n=Object.keys(l);if(Object.getOwnPropertySymbols){var e=Object.getOwnPropertySymbols(l);t&&(e=e.filter(function(s){return Object.getOwnPropertyDescriptor(l,s).enumerable})),n.push.apply(n,e)}return n}function zy(l){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?Yx(Object(n),!0).forEach(function(e){_I(l,e,n[e])}):Object.getOwnPropertyDescriptors?Object.defineProperties(l,Object.getOwnPropertyDescriptors(n)):Yx(Object(n)).forEach(function(e){Object.defineProperty(l,e,Object.getOwnPropertyDescriptor(n,e))})}return l}function _I(l,t,n){return(t=wI(t))in l?Object.defineProperty(l,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):l[t]=n,l}function wI(l){var t=xI(l,"string");return typeof t=="symbol"?t:t+""}function xI(l,t){if(typeof l!="object"||!l)return l;var n=l[Symbol.toPrimitive];if(n!==void 0){var e=n.call(l,t||"default");if(typeof e!="object")return e;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(l)}class SI{constructor(t){pt.default.debug("[CustomNodesConverter][constructor] invoked for editor key: ",t),this.nodesToTransform={}}_maintainCodoxIdsForConvertedNode(t,n){t.codoxId&&(n.codoxId=t.codoxId),t.codoxDId&&(n.codoxDId=t.codoxDId)}_validateLexicalNodeHasToCodoxNodeApi(t){if(!t.toCodoxNode)throw new Error(`Custom node "${t.__type}" invalid implementation: instance conversion api ".toCodoxNode()" is missing`)}_validateCustomNodeClassHasFromCodoxNodeApi(t){if(!t.fromCodoxNode)throw new Error(`Custom node class ${t} invalid implementation: class static conversion api ".fromCodoxNode()" is missing`)}untrackCustomNodeForConvert(t,n){this.nodesToTransform[t]&&delete this.nodesToTransform[t]}trackCustomNodeForConvert(t,n){if(My[t.__type])return;if(t.__type==="beautifulMention"){const s=Ld(t);return this.nodesToTransform[t.__key]={lexicalNode:t,path:s},void pt.default.debug("[customNodesConverter][saveNodeForTransform] node saved: ",{lexicalNode:t,path:s})}this._validateLexicalNodeHasToCodoxNodeApi(t);const e=Ld(t);this.nodesToTransform[t.__key]={lexicalNode:t,path:e}}convertCustomNodesForSyncInJsonState(t,n){if(!t)return null;let e=n._nodes,s=(0,Rt.createEditor)();s._nodes=e;for(let r in this.nodesToTransform){let{lexicalNode:o}=this.nodesToTransform[r],a=null,c=n.getEditorState();if(!c._nodeMap.get(o.__key))continue;c.read(()=>{a=Ld(o),this.nodesToTransform[r].path=a});let i,u=zc(a,t);if(!u)continue;if(u.type==="beautifulMention"){u.codox_metadata={originalNodeTransformedByCodox:zy({},u)},u.equation=`${u.trigger}${u.value}`,u.inline=!0,u.type="equation",u.version=1,delete u.trigger,delete u.value;continue}this._validateLexicalNodeHasToCodoxNodeApi(o),n.getEditorState().read(()=>{i=o.toCodoxNode()});let d,f,p=My[i.type],h=`Custom node "${o.__type}" invalid .toCodoxNode() implementation: `;if(!p)throw new Error(`${h}converted node type must be one of supported core and official playground nodes`);if(!i.hasOwnProperty("codox_metadata"))throw new Error(`${h} codox_metadata property is missing`);if(typeof i.codox_metadata!="object")throw new Error(`${h}codox_metadata property must be object`);if(!i.codox_metadata.hasOwnProperty("type"))throw new Error(`${h}codox_metadata property must contain original custom node type`);s.update(()=>{let{klass:S}=s._nodes.get(i.type);d=S.importJSON(zy(zy({},i),{},{___ignoreCodox:!0})),f=d.exportJSON()});const m=vI(i,yI);let g=Object.keys(m),v=Object.keys(f),b=[...new Set([...g,...v])];for(let S of b){if(f.type==="text"&&S==="text"&&!i[S])throw new Error(`${h}converted node must have non-empty "text" attrribute`);if(!i.hasOwnProperty(S)&&f.hasOwnProperty(S))i[S]=f[S];else if(i.hasOwnProperty(S)&&f.hasOwnProperty(S)&&typeof i[S]!=typeof f[S])i[S]=f[S];else if(i.hasOwnProperty(S)&&!f.hasOwnProperty(S)){if(S==="_ext_props")continue;delete i[S]}}this._maintainCodoxIdsForConvertedNode(o,i);const _=a[a.length-1];let E=zc(a.slice(0,a.length-2),t);u.children&&(i.children=u.children),E.children[_]=i,pt.default.debug("[customNodesConverter][convertCustomNodesForSyncInJsonState] converted for sync: ",{jsonNode:u,convertedNode:i,validationConvertedLexicalNode:d,validationJsonNode:f,state:JSON.parse(JSON.stringify(t))})}return t}convertCustomNodesFromSyncInJsonState(t,n){if(!t)return null;for(let e in this.nodesToTransform){let{lexicalNode:s,path:r}=this.nodesToTransform[e],o=zc(r,t);if(!o)continue;if(o.codox_metadata&&o.codox_metadata.originalNodeTransformedByCodox&&typeof o.codox_metadata.originalNodeTransformedByCodox=="object"&&o.type==="equation"&&o.codox_metadata.originalNodeTransformedByCodox.type==="beautifulMention"){const h=o.codox_metadata.originalNodeTransformedByCodox;let m=o.equation.split(h.trigger)[1];o.value=m,o.trigger=h.trigger,o.type=h.type,delete o.equation,delete o.inline,delete o.codox_metadata;continue}if(!o.codox_metadata||typeof o.codox_metadata!="object")continue;let a=n._nodes,c=o.codox_metadata;if(!c.type)continue;let{klass:i}=a.get(c.type)||{};if(!i)continue;this._validateCustomNodeClassHasFromCodoxNodeApi(i);let u=i.fromCodoxNode(o);this._maintainCodoxIdsForConvertedNode(o,u),o.children&&(u.children=o.children),pt.default.debug("[customNodesConverter][convertCustomNodesFromSyncInJsonState] transformed from sync: ",o,u);const d=r[r.length-1],f=r.slice(0,r.length-2);let p=zc(f,t);p?p.children[d]=u:pt.default.warn("[customNodesConverter][convertCustomNodesFromSyncInJsonState] parent in json state not found: ",{jsonNode:o,convertedNode:u,parentPath:f})}return t}convertCustomJsonNodeFromSync(t,n){if(t.codox_metadata&&t.codox_metadata.originalNodeTransformedByCodox&&typeof t.codox_metadata.originalNodeTransformedByCodox=="object"&&t.type==="equation"&&t.codox_metadata.originalNodeTransformedByCodox.type==="beautifulMention"){let a=t.equation.split(originalJsonNode.trigger)[1];return originalJsonNode.value=a,originalJsonNode}if(!t.codox_metadata||typeof t.codox_metadata!="object")return t;let e=n._nodes,s=t.codox_metadata;if(!s.type)return t;let{klass:r}=e.get(s.type)||{};if(!r)return t;this._validateCustomNodeClassHasFromCodoxNodeApi(r);let o=r.fromCodoxNode(t);return this._maintainCodoxIdsForConvertedNode(t,o),t.children&&(o.children=t.children),pt.default.debug("[customNodesConverter][convertCustomJsonNodeFromSync] transformed single node from sync: ",{jsonNode:t,convertedNode:o}),o}}const EI=function(l){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[];try{let n=(0,Rt.createEditor)({namespace:"validation",nodes:[...t],onError:a=>{throw a},parentEditor:null});const e=new $x("validation_"+n.getKey()),s=n.parseEditorState(l);if(s.isEmpty())return;n.setEditorState(s);let r=n.getEditorState();const o=r._nodeMap[Symbol.iterator]();for(const a of o){let[c,i]=a;if(!i)continue;e.trackBlacklisted(i,Ei.created,r);let u=e.isBlacklistedFound();if(u)throw new Error(`${tP}.${u}`)}}catch(n){throw n}};class CI{constructor(t){pt.default.debug("[TablesValidator] constructor invoked for editor key: ",t),this.removeCandidateTableKeys=new Set,this.validateTableCandidateKeys=new Set,this.tableFixActions=[]}_scanForCellHeaderState(t,n,e,s){if(n.length<s)return null;let r,o=n.some(c=>c.__headerState===Ha.BOTH||c.__headerState===Ha.ROW),a=t.some((c,i)=>{if(c.__size<s)return!1;let u=c.getChildAtIndex(e);return!(!u||u.__headerState!==Ha.BOTH&&u.__headerState!==Ha.COLUMN)});return o&&a?r=Ha.BOTH:o&&!a?r=Ha.ROW:a&&!o&&(r=Ha.COLUMN),r}_isValidCellChildren(t){for(let n of t)if(Jc(n)||!Wc(n))return!1;return!0}_createEmptyCell(){let t=(0,kr.$createTableCellNode)();return t.append((0,Rt.$createParagraphNode)()),t}_wrapInvalidCellChildrenIntoParagraph(t){let n=(0,Rt.$createParagraphNode)().getWritable(),e=t.getChildren();(t=t.getWritable()).__first=n.__key,t.__last=n.__key,t.__size=1,n.__parent=t.__key,e.forEach((s,r)=>{(s=s.getWritable()).__parent=null,n.append(s)})}_createFixAction_APPEND_CELLS_TO_ROW(t,n){return()=>{pt.default.debug("[TablesValidator][FIX TABLE ACTION - APPEND_CELLS_TO_ROW] invoked: ",{rowKey:t,numOfCellsToAppend:n});let e=(0,Rt.$getNodeByKey)(t);for(;n;){let s=(0,kr.$createTableCellNode)().append((0,Rt.$createParagraphNode)());s.setRowSpan(1).setColSpan(1),e.append(s),n--}}}_createFixAction_ADD_PARAGRAPH_TO_EMPTY_CELL(t){return()=>{pt.default.debug("[TablesValidator][FIX TABLE ACTION - ADD_PARAGRAPH_TO_EMPTY_CELL] invoked: ",{cellKey:t}),(0,Rt.$getNodeByKey)(t).append((0,Rt.$createParagraphNode)())}}_createFixAction_WRAP_CELL_CHILDREN_IN_PARAGRAPH(t){return()=>{pt.default.debug("[TablesValidator][FIX TABLE ACTION - WRAP_CELL_CHILDREN_IN_PARAGRAPH] invoked: ",{cellKey:t});let n=(0,Rt.$getNodeByKey)(t);this._wrapInvalidCellChildrenIntoParagraph(n)}}_createFixAction_ADD_ROW_CELL_TO_TABLE_NODE(t){return()=>{pt.default.debug("[TablesValidator][FIX TABLE ACTION - ADD_ROW_CELL_TO_EMPTY_TABLE_NODE] invoked: ",{tableKey:t});let n=(0,Rt.$getNodeByKey)(t),e=(0,kr.$createTableRowNode)();e.append(this._createEmptyCell()),n.append(e)}}_createFixAction_ADD_CELL_TO_EMPTY_ROW_NODE(t,n){return()=>{for(n||(n=1);n;)(0,Rt.$getNodeByKey)(t).append(this._createEmptyCell()),n--}}_createFixAction_WRAP_INVALID_ROW_NODE(t,n){return()=>{pt.default.debug("[TablesValidator][FIX TABLE ACTION - WRAP_INVALID_ROW_NODE] invoked: ",{tableKey:t,rowKey:n});let e=(0,Rt.$getNodeByKey)(t);if(!e)return;let s=(0,Rt.$getNodeByKey)(n);if(!s)return;e=e.getWritable(),s=s.getWritable();let r=s.getPreviousSibling(),o=s.getNextSibling();s.__parent=null,s.__prev=null,s.__next=null;let a=(0,kr.$createTableRowNode)();if((0,kr.$isTableCellNode)(s)){let c=s.getChildren();c.length?this._isValidCellChildren(c)||this._wrapInvalidCellChildrenIntoParagraph(s):s.append((0,Rt.$createParagraphNode)()),a.append(s)}else{let c=this._isValidCellChildren([s]),i=(0,kr.$createTableCellNode)();if(a.append(i),c)i.append(s);else{let u=(0,Rt.$createParagraphNode)();u.append(s),i.append(u)}}a.__parent=e.__key,e.__first===s.__key&&(e.__first=a.__key),e.__last===s.__key&&(e.__last=a.__key),r&&(r=r.getWritable(),r.__next=a.__key,a.__prev=r.__key),o&&(o=o.getWritable(),o.__prev=a.__key,a.__next=o.__key)}}_createFixAction_WRAP_INVALID_CELL_NODE(t,n){return()=>{pt.default.debug("[TablesValidator][FIX TABLE ACTION - WRAP_INVALID_CELL_NODE] invoked: ",{rowKey:t,cellKey:n});let e=(0,Rt.$getNodeByKey)(t);if(!e)return;let s=(0,Rt.$getNodeByKey)(n);if(s.remove(),s=(0,Rt.$createParagraphNode)(),!s)return;e=e.getWritable(),s=s.getWritable();let r=s.getPreviousSibling(),o=s.getNextSibling(),a=(0,kr.$createTableCellNode)();if(a.__parent=e.__key,e.__first===s.__key&&(e.__first=a.__key),e.__last===s.__key&&(e.__last=a.__key),r&&(r=r.getWritable(),r.__next=a.__key,a.__prev=r.__key),o&&(o=o.getWritable(),o.__prev=a.__key,a.__next=o.__key),s.__parent=null,s.__prev=null,s.__next=null,this._isValidCellChildren([s]))a.append(s);else{let c=(0,Rt.$createParagraphNode)();c.append(s),a.append(c)}}}_createFixAction_APPLY_HEADER_STATE_TO_CELL(t,n){return()=>{pt.default.debug("[TablesValidator][FIX TABLE ACTION - APPLY_HEADER_STATE_TO_CELL] invoked: ",{cellKey:t,headerStateToApply:n});let e=(0,Rt.$getNodeByKey)(t);e&&(e=e.getWritable(),e.__headerState=n)}}clear(){this.removeCandidateTableKeys=new Set,this.validateTableCandidateKeys=new Set,this.tableFixActions=[]}tableRemoveEventListener(t,n){let e=n.getEditorState(),s=e._selection;if(pt.default.debug(`[${t}]`,{selection:s}),!(0,Rt.$isRangeSelection)(s))return;let r=[];try{let o=e._nodeMap.get(s.anchor.key),a=e._nodeMap.get(s.focus.key);o&&a&&(r=s.isBackward()?a.getNodesBetween(o):o.getNodesBetween(a))}catch(o){pt.default.warn("[TablesValidator][tableRemoveEventListener] get range selection nodes internal lexical error: ",o)}r.forEach(o=>{(0,kr.$isTableNode)(o)&&this.removeCandidateTableKeys.add(o.__key)})}tableNodeRemoveListener(t){this.removeCandidateTableKeys.has(t)&&this.removeCandidateTableKeys.delete(t)}shouldGCRemovedTables(){return!!this.removeCandidateTableKeys.size}gcRemovedTables(t){pt.default.debug("[TablesValidator][gcRemovedTable] candidate table keys ",{tableKeys:this.removeCandidateTableKeys}),t.update(()=>{Array.from(this.removeCandidateTableKeys).forEach(n=>{let e=(0,Rt.$getNodeByKey)(n);e&&e.remove()}),this.removeCandidateTableKeys.clear(),(0,Rt.$addUpdateTag)(ls.historic)})}tableUpdateListener(t){this.validateTableCandidateKeys.add(t)}tableRowNodeChangesListener(t){let n=arguments.length>1&&arguments[1]!==void 0&&arguments[1],e=(arguments.length>2?arguments[2]:void 0).getEditorState()._nodeMap.get(t);if(!e)return void(n&&pt.default.debug("[TablesValidator][tableRowNodeChangesListener] no row node found in lexical: ",{tableRowNodeKey:t}));let s=e.__parent;s?this.validateTableCandidateKeys.add(s):pt.default.debug("[tableRowNodeChangesListener] no parent table for row node found in lexical: ",{rowNode:e})}tableCellNodeChangesListener(t,n){let e=n.getEditorState(),s=e._nodeMap.get(t);if(!s||!s.__parent)return;let r=e._nodeMap.get(s.__parent);r&&r.__parent&&this.validateTableCandidateKeys.add(r.__parent)}shouldValidateUpdatedTables(){return!!this.validateTableCandidateKeys.size}validateUpdatedTables(t){let n=Array.from(this.validateTableCandidateKeys);return t.getEditorState().read(()=>{for(let e of n){let s=(0,Rt.$getNodeByKey)(e);if(!s)continue;let r=s.getChildren();if(!r.length){this.tableFixActions.push(this._createFixAction_ADD_ROW_CELL_TO_TABLE_NODE(e));continue}let o=0;r.forEach(u=>{u.__size>o&&(o=u.__size)});let a=[],c=r.map((u,d)=>{if(!(0,kr.$isTableRowNode)(u))return this.tableFixActions.push(this._createFixAction_WRAP_INVALID_ROW_NODE(e,u.__key)),"invalid_row_node";let f=u.getChildren();if(!f.length&&!a.length)return this.tableFixActions.push(this._createFixAction_ADD_CELL_TO_EMPTY_ROW_NODE(u.__key,o)),"empty_row_should_add_cell";if(!f.length&&a.length)return a=[],"empty_row_should_be_empty";let p=0;if(a.length){let m=[];a.forEach(g=>{let[v,b]=g;p+=b,v--,v&&m.push([v,b])}),a=[...m]}let h=f.map((m,g)=>{if(!(0,kr.$isTableCellNode)(m))return this.tableFixActions.push(this._createFixAction_WRAP_INVALID_CELL_NODE(u.__key,m.__key)),p++,"invalid_cell_node_should_wrap_in_cell";let v,b=m.getChildren(),_=!b.length;if(_?this.tableFixActions.push(this._createFixAction_ADD_PARAGRAPH_TO_EMPTY_CELL(m.__key)):(v=this._isValidCellChildren(b),v||this.tableFixActions.push(this._createFixAction_WRAP_CELL_CHILDREN_IN_PARAGRAPH(m.__key))),m.__rowSpan>1){let E=m.__rowSpan,S=m.__colSpan;a.push([E-1,S])}if(p+=m.__colSpan,m.__headerState===Ha.NO_STATUS){let E=this._scanForCellHeaderState(r,f,g,o);E&&this.tableFixActions.push(this._createFixAction_APPLY_HEADER_STATE_TO_CELL(m.__key,E))}return{cellKey:m.__key,rowKey:u.__key,tableKey:e,colSpan:m.__colSpan,rowSpan:m.__rowSpan,headerState:m.__headerState,childrenAreValid:v,isEmptyCell:_}});if(p<o){let m=o-p;this.tableFixActions.push(this._createFixAction_APPEND_CELLS_TO_ROW(u.__key,m))}return{realRowLength:p,rowKey:u.__key,tableKey:e,cells:h}}),i=!this.tableFixActions.length;pt.default[i?"debug":"warn"](`[TablesValidator][validateUpdatedTables] IS TABLE VALID: ${i}`,{tableNodeKey:e,tableValidationMatrix:c,requiredRowLength:o}),this.validateTableCandidateKeys.delete(e)}}),!this.tableFixActions.length}shouldFixTablesStructure(){return!!this.tableFixActions.length}fixTablesStructure(t){this.tableFixActions.length&&(pt.default.debug("[TablesValidator][fixTablesStructure]: fix actions to apply - count: ",this.tableFixActions.length),t.update(()=>{for(let n of this.tableFixActions)n();this.tableFixActions=[],(0,Rt.$addUpdateTag)(ls.historic)}))}ensureDocTablesAreValid(t){return this.shouldGCRemovedTables()?(pt.default.warn("[TablesValidator][GARBAGE COLLECT TABLE NODES AFTER TABLE REMOVAL ATTEMPT]"),this.gcRemovedTables(t),!1):!(this.shouldValidateUpdatedTables()&&(pt.default.debug("[TablesValidator][shouldValidateUpdatedTables] invoked"),!this.validateUpdatedTables(t)))||(pt.default.warn("[TablesValidator][shouldValidateUpdatedTables] INVALID LEXICAL TABLE(S) STRUCTURE FOUND - FIXING"),this.fixTablesStructure(t),!1)}}class jI{constructor(t){pt.default.debug("[UnsupportedNodesConverter][constructor] invoked for editor key: ",t),this.usupportedNodeTypesConvertMap={autolink:{checkForSync:n=>n.type==="autolink",forSync:n=>(n.type="link",n._ext_props={isUnlinked:n.isUnlinked},delete n.isUnlinked,n),checkFromSync:n=>n.type==="link"&&n._ext_props,fromSync:n=>(n.type="autolink",n.isUnlinked=n._ext_props.isUnlinked,delete n._ext_props,n)},overflow:{checkForSync:n=>n.type==="overflow",forSync:n=>(n.type="paragraph",n.textFormat=0,n._ext_props={overflow:!0},n),checkFromSync:n=>n.type==="paragraph"&&n._ext_props&&n._ext_props.overflow===!0,fromSync:n=>(n.type="overflow",delete n.textFormat,delete n._ext_props,n)}},this.trackedNodes={}}trackUnsupportedNode(t,n){if(!this.usupportedNodeTypesConvertMap[t.__type])return;const e=Ld(t);this.trackedNodes[t.__key]={lexicalNode:t,path:e}}untrackUnsupportedNode(t,n){this.trackedNodes[t]&&delete this.trackedNodes[t]}convertUnsupportedNodesForSyncInJsonState(t,n){if(!t)return null;for(let e in this.trackedNodes){let{lexicalNode:s}=this.trackedNodes[e],r=null,o=n.getEditorState();if(!o._nodeMap.get(s.__key))continue;o.read(()=>{r=Ld(s),this.trackedNodes[e].path=r});const a=r[r.length-1];let c=zc(r.slice(0,r.length-2),t).children[a];c&&(this.usupportedNodeTypesConvertMap.autolink.checkForSync(c)&&(c=this.usupportedNodeTypesConvertMap.autolink.forSync(c)),this.usupportedNodeTypesConvertMap.overflow.checkForSync(c)&&(c=this.usupportedNodeTypesConvertMap.overflow.forSync(c)))}return t}convertUnsupportedNodesFromSyncInJsonState(t,n){if(!t)return null;for(let e in this.trackedNodes){let{lexicalNode:s,path:r}=this.trackedNodes[e],o=zc(r,t);o&&(this.usupportedNodeTypesConvertMap.autolink.checkFromSync(o)&&(o=this.usupportedNodeTypesConvertMap.autolink.fromSync(o)),this.usupportedNodeTypesConvertMap.overflow.checkFromSync(o)&&(o=this.usupportedNodeTypesConvertMap.overflow.fromSync(o)))}return t}convertUnsupportedJsonNodeFromSync(t,n){return this.usupportedNodeTypesConvertMap.autolink.checkFromSync(t)&&(t=this.usupportedNodeTypesConvertMap.autolink.fromSync(t)),this.usupportedNodeTypesConvertMap.overflow.checkFromSync(t)&&(t=this.usupportedNodeTypesConvertMap.overflow.fromSync(t)),t}}const kI=jI;class TI{constructor(t){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};pt.default.debug("[NodesConversionsManager][constructor] invoked for editor key: ",t),this.customNodesConverter=n.customNodesConverter,this.unsupportedNodesConverter=n.unsupportedNodesConverter}trackNodeForConversion(t,n){this.customNodesConverter.trackCustomNodeForConvert(t,n),this.unsupportedNodesConverter.trackUnsupportedNode(t,n)}untrackNodeForConversion(t,n){this.customNodesConverter.untrackCustomNodeForConvert(t,n),this.unsupportedNodesConverter.untrackUnsupportedNode(t,n)}convertNodesForSyncInJsonState(t,n){return t=this.unsupportedNodesConverter.convertUnsupportedNodesForSyncInJsonState(t,n),this.customNodesConverter.convertCustomNodesForSyncInJsonState(t,n)}convertNodesFromSyncInJsonState(t,n){return t=this.unsupportedNodesConverter.convertUnsupportedNodesFromSyncInJsonState(t,n),this.customNodesConverter.convertCustomNodesFromSyncInJsonState(t,n)}convertJsonNodeFromSync(t,n){return t=this.unsupportedNodesConverter.convertUnsupportedJsonNodeFromSync(t,n),this.customNodesConverter.convertCustomJsonNodeFromSync(t,n)}}const AI=TI;function Zx(l,t){var n=Object.keys(l);if(Object.getOwnPropertySymbols){var e=Object.getOwnPropertySymbols(l);t&&(e=e.filter(function(s){return Object.getOwnPropertyDescriptor(l,s).enumerable})),n.push.apply(n,e)}return n}function OI(l){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?Zx(Object(n),!0).forEach(function(e){NI(l,e,n[e])}):Object.getOwnPropertyDescriptors?Object.defineProperties(l,Object.getOwnPropertyDescriptors(n)):Zx(Object(n)).forEach(function(e){Object.defineProperty(l,e,Object.getOwnPropertyDescriptor(n,e))})}return l}function NI(l,t,n){return(t=PI(t))in l?Object.defineProperty(l,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):l[t]=n,l}function PI(l){var t=II(l,"string");return typeof t=="symbol"?t:t+""}function II(l,t){if(typeof l!="object"||!l)return l;var n=l[Symbol.toPrimitive];if(n!==void 0){var e=n.call(l,t||"default");if(typeof e!="object")return e;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(l)}class MI{constructor(){this._hub={}}initForEditor(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:"";if(!t||this._hub[t])return;pt.default.debug("[Hub][initForEditor] invoked for editorKey: ",t);const n=new SI(t),e=new kI(t);this._hub[t]={codoxImpl:new cP(t),codoxRemoteSelection:new dI(t),tablesValidator:new CI(t),customNodesConverter:n,unsupportedNodesConverter:e,nodesConversionsManager:new AI(t,{customNodesConverter:n,unsupportedNodesConverter:e}),nestedEditorsProcessor:new mI(t),contentNestingsWatcher:new $x(t),codoxLexicalEditorManager:new YP(t),codoxNodesMap:new ZP(t),codoxComments:new gP(t),configBackup:{},clientEventListeners:{},contentChangedHookClientCallback:null}}getCodoxImpl(t){return this.initForEditor(t),this._hub[t].codoxImpl}getCodoxRemoteSelection(t){return this.initForEditor(t),this._hub[t].codoxRemoteSelection}getTablesValidator(t){return this.initForEditor(t),this._hub[t].tablesValidator}getCustomNodesConverter(t){return this.initForEditor(t),this._hub[t].customNodesConverter}getUnsupportedNodesConverter(t){return this.initForEditor(t),this._hub[t].unsupportedNodesConverter}getNodesConversionsManager(t){return this.initForEditor(t),this._hub[t].nodesConversionsManager}getNestedEditorsProcessor(t){return this.initForEditor(t),this._hub[t].nestedEditorsProcessor}getContentNestingsWatcher(t){return this.initForEditor(t),this._hub[t].contentNestingsWatcher}getCodoxLexicalEditorManager(t){return this.initForEditor(t),this._hub[t].codoxLexicalEditorManager}getCodoxNodesMap(t){return this.initForEditor(t),this._hub[t].codoxNodesMap}getCodoxComments(t){return this.initForEditor(t),this._hub[t].codoxComments}getConfigBackup(t){return this._hub[t].configBackup}setConfigBackup(t,n){this._hub[t].configBackup=OI({},n)}getClientEventListeners(t){return this._hub[t].clientEventListeners}getClientEventListenerByEvent(t,n){return this._hub[t].clientEventListeners[n]}setClientEventListener(t,n,e){this._hub[t].clientEventListeners[n]=e}getContentChangedHookClientCallback(t){return this._hub[t].contentChangedHookClientCallback}setContentChangedHookClientCallback(t,n){this._hub[t].contentChangedHookClientCallback=n}gc(t){delete this._hub[t]}}const RI=new MI,Un=RI,DI=["___ignoreCodox"];function LI(l,t){if(l==null)return{};var n,e,s=FI(l,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(l);for(e=0;e<r.length;e++)n=r[e],t.includes(n)||{}.propertyIsEnumerable.call(l,n)&&(s[n]=l[n])}return s}function FI(l,t){if(l==null)return{};var n={};for(var e in l)if({}.hasOwnProperty.call(l,e)){if(t.includes(e))continue;n[e]=l[e]}return n}function Qx(l,t){var n=Object.keys(l);if(Object.getOwnPropertySymbols){var e=Object.getOwnPropertySymbols(l);t&&(e=e.filter(function(s){return Object.getOwnPropertyDescriptor(l,s).enumerable})),n.push.apply(n,e)}return n}function Xx(l){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?Qx(Object(n),!0).forEach(function(e){BI(l,e,n[e])}):Object.getOwnPropertyDescriptors?Object.defineProperties(l,Object.getOwnPropertyDescriptors(n)):Qx(Object(n)).forEach(function(e){Object.defineProperty(l,e,Object.getOwnPropertyDescriptor(n,e))})}return l}function BI(l,t,n){return(t=zI(t))in l?Object.defineProperty(l,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):l[t]=n,l}function zI(l){var t=UI(l,"string");return typeof t=="symbol"?t:t+""}function UI(l,t){if(typeof l!="object"||!l)return l;var n=l[Symbol.toPrimitive];if(n!==void 0){var e=n.call(l,t||"default");if(typeof e!="object")return e;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(l)}const sh=()=>GN(),eS=l=>typeof l=="number";function qc(l){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"";const n=function(){for(var e=arguments.length,s=new Array(e),r=0;r<e;r++)s[r]=arguments[r];return l.apply(this,s)};return Object.defineProperty(n,"name",{value:t,writable:!0}),n}const zl=l=>l.__type==="root"||l.type==="root",tS=l=>zl(l.getParent()),Lr=l=>l.__type===eh.text||l.type===eh.text||l.hasOwnProperty("__text")||l.hasOwnProperty("text"),Wc=l=>(0,Rt.$isElementNode)(l),Jc=l=>(0,kr.$isTableNode)(l)||(0,kr.$isTableRowNode)(l)||(0,kr.$isTableCellNode)(l),HI=l=>!l.getChildren,nS=l=>!!l.getChildren,Tr=l=>(0,Rt.$isDecoratorNode)(l),Fd=l=>(0,zN.$isLinkNode)(l),Bd=l=>l.__type==="mark"||l.type==="mark",Uy=l=>(0,Rt.$isLineBreakNode)(l),Wa=l=>Lr(l)||Uy(l),Hy=l=>l.__type===eh.horizontalrule||l.type===eh.horizontalrule,qI=l=>l.__type==="image"||l.type==="image",WI=l=>l.__type==="inline-image"||l.type==="inline-image",rS=l=>{if(Wa(l)||Fd(l)||Bd(l))return!1;if(!l.__parent||l.__parent==="root"||(0,Rt.$isParagraphNode)(l))return!0;let t=l.getParent().getChildren();return t.length===1&&t[0].__key===l.__key?!((Tr(l)||Fd(l)||Bd(l))&&!Hy(l)):!t.some(n=>{let e=Hy(n);return n.__key!==l.__key&&(Wa(n)||Tr(n)&&!e||Fd(n)||Bd(n))})},oS=(l,t)=>{const n=Un.getCodoxNodesMap(t).get(l.codoxId);return!n||l.__key===n.__key},Vc=function(l){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null,n=arguments.length>2?arguments[2]:void 0,e=arguments.length>3?arguments[3]:void 0;try{l.getWritable&&(l=l.getWritable());const s=t||sh();l.codoxId=s,Un.getCodoxNodesMap(e).add(s,l,n)}catch(s){pt.default.warn("[addCodoxIdToNode] Failed to add codoxId: ",{node:l,preparedCodoxId:t,wasIdGenerated:!t,err:s})}},iS=(l,t)=>{Un.getCodoxNodesMap(t).remove(l.codoxId),delete l.codoxId},JI=(l,t)=>{if(!nS(l)||!l.getChildrenSize())return;const n=l.getChildren();if(n.some(r=>!!(0,Rt.$isParagraphNode)(r)))return;let e=!1,s=[];for(let r of n)(Wa(r)||Tr(r)||Fd(r)||Bd(r))&&!e&&(Hy(r)||(e=!0)),(nS(r)||Tr(r))&&s.push(r);for(let r of s)e||r.codoxId?e&&r.codoxId&&(r=r.getWritable(),iS(r,t)):(r=r.getWritable(),Vc(r,null,`${r.__type}_codoxIdMaintainance`,t))},zd=function(l,t){let{setup:n=!1,update:e=!1,remove:s=!1}=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};if(qI(l)||WI(l)){if(n&&t.setDecoratorId(l.codoxDId,l.exportJSON()),e){let r=t.getDecoratorById(l.codoxDId);if(!r)return;let o=!0,a=l.__src||"",c=r.src||"";if(a.length!==c.length)o=!1;else{let i=a,u=c;if(i.startsWith("data")&&u.startsWith("data")){let d=i.length-50;for(let f=i[i.length-1];f>d;f--)if(i[f]!==u[f]){o=!1;break}}else o=i===u}o||(t.removeDecoratorId(l.codoxDId),l.codoxDId=sh()),t.setDecoratorId(l.codoxDId,l.exportJSON())}s&&t.removeDecoratorId(l.codoxDId)}},VI=l=>{const t=Xx({},l);for(const n in l)l[n]===void 0&&l.hasOwnProperty(n)&&delete t[n];return t},KI=l=>{const t=`__nativeCreateDOM_${l.name}`;l.prototype[t]=qc(l.prototype.createDOM,t),l.prototype.createDOM=function(n,e){let s=(0,Rt.$getEditor)(),r=s.getKey(),o=Un.getCodoxNodesMap(r),a=Un.getNodesConversionsManager(r);if(rS(this))if(this.codoxId){if(!oS(this,r)){let i=o.get(this.codoxId);i.__type===this.__type&&this.isAttached()&&!i.isAttached()?(pt.default.warn("[createDOM][Non-unique codoxId] overwrite abandoned existing node with latest: ",{latestNode:this,existingNode:i}),o.add(this.codoxId,this,`${this.__type}_createDOM`)):Vc(this,null,`${this.__type}_createDOM`,r)}}else Vc(this,null,`${this.__type}_createDOM`,r);else this.codoxId&&iS(this,r);Tr(this)&&!this.codoxDId&&(this.codoxDId=sh(),zd(this,o,{setup:!0})),Un.getNestedEditorsProcessor(r).manageNestedEditorInLexicalNode(this,"createDOM",s);let c=this[t](n,s);return c.__codox_track=!0,a.trackNodeForConversion(this,s),c}},GI=l=>{const t=`__nativeUpdateDOM_${l.name}`;return l.prototype[t]=qc(l.prototype.updateDOM,t),l.prototype.updateDOM=function(){let n=(0,Rt.$getEditor)().getKey(),e=(Un.getCodoxLexicalEditorManager(n),Un.getCodoxNodesMap(n));const s=this[t](...arguments);return JI(this,n),this.codoxDId&&zd(this,e,{update:!0}),s},l},$I=l=>{const t=`__nativeRemove_${l.name}`;return l.prototype[t]=qc(l.prototype.remove,t),l.prototype.remove=function(){let n=(0,Rt.$getEditor)(),e=n.getKey(),s=Un.getCodoxNodesMap(e),r=Un.getNodesConversionsManager(e);const o=this.codoxId,a=this.codoxDId;return o&&s.remove(o),a&&zd(this,s,{remove:!0}),r.untrackNodeForConversion(this.__key,n),Un.getNestedEditorsProcessor(e).gcNestedEditorListenerInLexicalNode(this,"remove"),this[t](...arguments)},l},YI=l=>{const t=`__nativeExportJSON_${l.name}`;l.prototype[t]=qc(l.prototype.exportJSON,t),l.prototype.exportJSON=function(){const n=this[t]();return this.codoxId&&(n.codoxId=this.codoxId),this.codoxDId&&(n.codoxDId=this.codoxDId),Lr(this)&&eS(n.format)&&this.hasFormat&&(n.format=QN(this)),Lr(n)&&n.style&&(n.style.endsWith(";")||(n.style+=";")),VI(n)}},ZI=l=>{const t="__nativeImportJSON";l[t]=qc(l.importJSON,t),l.importJSON=function(n){let{___ignoreCodox:e}=n;const s=Xx({},LI(n,DI));Lr(s)&&!eS(s.format)&&(s.format=ZN(s.format)),Lr(s)&&s.style&&(s.style.endsWith(";")||(s.style+=";"));const r=l[t](s);if(e)return r;let o=(0,Rt.$getEditor)(),a=o.getKey(),c=Un.getNestedEditorsProcessor(a),i=Un.getCodoxNodesMap(a);c.manageNestedEditorInLexicalNode(r,"importJSON",o);const u=rS(r);return u&&s.codoxId&&(i.hasPastedId(s.codoxId)&&i.has(s.codoxId)?(i.removePastedId(s.codoxId),Vc(r,null,`${r.__type}_importJSON_pasted`,a)):Vc(r,s.codoxId,`${r.__type}_importJSON`,a)),u&&!r.codoxId&&Vc(r,null,`${r.__type}_${r.__key}_importJSON_should_have_id`,a),s.codoxDId&&(r.codoxDId=s.codoxDId,zd(r,i,{setup:!0})),r}},QI=l=>{const t="__nativeClone";l[t]=qc(l.clone,t),l.clone=function(n){const e=l[t](n);let s=(0,Rt.$getEditor)(),r=Un.getNestedEditorsProcessor(s.getKey()),o=Un.getCodoxNodesMap(s.getKey());return n.codoxId&&(e.codoxId=n.codoxId),n.codoxDId&&(e.codoxDId=n.codoxDId,zd(e,o,{setup:!0})),r.manageNestedEditorInClonedLexicalNode(n,e,s),e}},XI=l=>{let t=!1,n=!1,e=!1,s=!1;for(let o of l)typeof o=="object"&&o.replace&&o.with||(o.name===Rt.TextNode.name?t=!0:o.name===Rt.ParagraphNode.name?n=!0:o.name===Rt.LineBreakNode.name?e=!0:o.name===Bi.MarkNode.name&&(s=!0));let r=[];return t||r.push(Rt.TextNode),n||r.push(Rt.ParagraphNode),e||r.push(Rt.LineBreakNode),s||r.push(Bi.MarkNode),r.length?[...r,...l]:l},e6=l=>{let t=l.getType();if(t!=="beautifulMention"&&!My[t]){if(!l.prototype.toCodoxNode)return`"${t}" custom node implementation is missing instance conversion api .toCodoxNode()`;if(!l.fromCodoxNode)return`"${t}" custom node implementation is missing class static conversion api .fromCodoxNode()`;const n=(0,Rt.createEditor)({nodes:[l]});let e;if(n._headless=!0,n.update(()=>{let s=new l,r=1;for(let u in s)s[u]===void 0&&(s[u]=`${r}`,r++);let o=s.exportJSON(),a=s.toCodoxNode(),c=l.fromCodoxNode(a),i=Ly(o,c);s.remove(),i||(e=`"${l.name}" custom node conversion api implementation is invalid. Input in .toCodoxNode() must match with output in .fromCodoxNode(). Check attributes preserving during conversion - must be same for .exportJSON() and for fromCodoxNode() outputs.
|
|
1483
1483
|
Tested exportJSON output: ${JSON.stringify(o)}
|
|
1484
|
-
Tested fromCodoxNode() output: ${JSON.stringify(c)}`)},{discrete:!0}),e)return e}},t6=function(){return XI(arguments.length>0&&arguments[0]!==void 0?arguments[0]:[]).map(l=>{let t,n=typeof l=="object"&&l.replace&&l.with;if(t=n?l.replace:l,t.hasOwnProperty("__isCodoxExtended"))return n?l:t;let e=e6(t);if(e)throw new Error(`[registerNodesWithCodox] ${e}`);return KI(t),GI(t),YI(t),$I(t),ZI(t),QI(t),Object.defineProperty(t,"__isCodoxExtended",{value:!0,writable:!1}),n?(l.replace=t,l):t})};function sS(l,t){var n=Object.keys(l);if(Object.getOwnPropertySymbols){var e=Object.getOwnPropertySymbols(l);t&&(e=e.filter(function(s){return Object.getOwnPropertyDescriptor(l,s).enumerable})),n.push.apply(n,e)}return n}function n6(l){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?sS(Object(n),!0).forEach(function(e){r6(l,e,n[e])}):Object.getOwnPropertyDescriptors?Object.defineProperties(l,Object.getOwnPropertyDescriptors(n)):sS(Object(n)).forEach(function(e){Object.defineProperty(l,e,Object.getOwnPropertyDescriptor(n,e))})}return l}function r6(l,t,n){return(t=o6(t))in l?Object.defineProperty(l,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):l[t]=n,l}function o6(l){var t=i6(l,"string");return typeof t=="symbol"?t:t+""}function i6(l,t){if(typeof l!="object"||!l)return l;var n=l[Symbol.toPrimitive];if(n!==void 0){var e=n.call(l,t||"default");if(typeof e!="object")return e;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(l)}function s6(){let{node:l,codoxId:t=null,codoxDId:n=null}=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};if(!l)return null;const e=[l];for(;e.length;){const s=e.pop();if(t&&s.codoxId&&s.codoxId===t||n&&s.codoxDId&&s.codoxDId===n)return s;Array.isArray(s.children)&&e.push(...s.children)}return null}function ah(l){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null,n=arguments.length>2?arguments[2]:void 0;l=Un.getNodesConversionsManager(n.getKey()).convertJsonNodeFromSync(l,n);let e=n._nodes;const{klass:s}=e.get(l.type)||{};if(!s)return;const r=s.importJSON(l);if(l.children&&l.children.length)for(const o of l.children)ah(o,r,n);return t&&t.getChildrenSize&&t.splice(t.getChildrenSize(),0,[r]),r}function lh(l){if(l.getChildren)for(let t of l.getChildren())lh(t);l.remove()}function aS(l){l.__parent=null,l.__next=null,l.__prev=null}function lS(l,t){return!!nh(l)&&!(typeof t!="object"||!t.editorState||(l.update(()=>{try{let n=(0,Rt.$getSelection)();const e=l.parseEditorState(t.editorState);if(e.isEmpty())return(0,Rt.$getRoot)().clear(),!0;(0,Rt.$setSelection)(n),l.setEditorState(e)}catch(n){pt.default.error("[stateUpdates][updateNestedEditorState] update nested state and selection error: ",n)}}),0))}function a6(l,t){let n=t;for(const e of l)n=n[e];return n}function ta(){let{pathArray:l,newStateJSON:t=null,searchInNewState:n=!1,editor:e=null,codoxNodesMap:s,currentStateJSON:r}=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};if(n&&!t)return pt.default.debug("[getLexicalNodeByPathOutOfJSONState]: new state is not providerd for search - stop",{pathArray:l,newStateJSON:t,searchInNewState:n}),null;let o=null,a=null;if(a=n?t:r||(e?Fl(e.getEditorState()):null),!a)return null;let c=null;try{c=a6(l,a)}catch{}return c&&(o=zl(c)?(0,Rt.$getRoot)():s.get(c.codoxId)),o||(n?o:ta({pathArray:l,newStateJSON:t,searchInNewState:!0,editor:e,codoxNodesMap:s,currentStateJSON:r}))}function cS(l,t){pt.default.debug("[applyFullLexicalStateReplace] clear current state and apply new");const n=(0,Rt.$getRoot)();n.clear();let e=t._nodes,s=Un.getNodesConversionsManager(t.getKey());function r(o){o=s.convertJsonNodeFromSync(o,t);const a=e.get(o.type).klass.importJSON(o);if(o.children)for(const c of o.children)a.append(r(c));return a}for(const o of l.root.children)n.append(r(o))}function l6(){let{newStateJSON:l=null,deltas:t=[],belongsToNestedEditor:n=!1,editor:e,currentStateJSON:s}=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};if(!t.length)return void pt.default.debug("[applyDeltasToLexicalState] stop, no deltas: ",t);let r=Un.getCodoxNodesMap(e.getKey());for(const o of t){let{p:a}=o;const c=[...a],i=c[c.length-1],u=i==="children",d=typeof i=="number",f=!d&&!u,p=c.findIndex(_=>_===Ll.editorState),h=p!==-1,m=!c.length;let g=o.hasOwnProperty("lm"),v=typeof o.lm=="number"||Array.isArray(o.lm),b=g&&v;if(m){if(n){pt.default.warn("Nested editor delta is invalid: ",{delta:o});continue}if(o.oi&&o.oi.root)return cS(o.oi,e)}else if(h){let _=p-1,E=ta({pathArray:c.slice(0,_),newStateJSON:l,editor:e,codoxNodesMap:r,currentStateJSON:s});if(E){let S=c[_],w=Id(S),y=E.getWritable()[w],x=c.slice(0,p),C=l;for(const T of x)C=C[T];if(!C){const T=s6({node:l.root,codoxDId:E.codoxDId||null,codoxId:E.codoxId||null});T&&(C=T[S])}lS(y,C)}}else if(u){let _=o.oi;if(!_){pt.default.warn("[applyDeltasToLexicalState][====WARNING====] SKIPPED. Delta oi attr expected for path",{delta:o});continue}if(_.some(S=>!(!S.hasOwnProperty("text")||typeof S.text=="string"))){pt.default.warn("[applyDeltasToLexicalState][====WARNING====] SKIPPED. Delta oi children contain invalid text value",{delta:o});continue}c.length=c.length-1;let E=ta({pathArray:c,newStateJSON:l,editor:e,codoxNodesMap:r,currentStateJSON:s});if(!E){pt.default.warn("[applyDeltasToLexicalState][====WARNING====] SKIPPED. lexicalParentNode is not found",{delta:o});continue}if(!E.getChildren){pt.default.warn("[applyDeltasToLexicalState][====WARNING====] SKIPPED. lexicalParentNode is not valid parrent node",{delta:o,lexicalParentNode:E});continue}if(_.some(S=>!!S.codoxDId)){try{E=E.getWritable()}catch(x){pt.default.warn("[applyDeltasToLexicalState][shouldUpdateLeaves] getWritable error: ",{err:x,delta:o,newStateJSON:l});continue}let S={};for(let x of E.getChildren())x.codoxDId?S[x.codoxDId]=x:lh(x);let w=[],y=["codoxDId","codoxId","__key","__parent","__prev","__next"];for(let x=0;x<_.length;x++){let C=_[x],T=x===0,R=x===_.length-1,F=null,I=x>=0?w[x-1]:null;if(C.codoxDId){let B=S[C.codoxDId];if(B){B=B.getWritable();let A=ah(C,null,e);if(pt.default.debug("[DELTA_DECORATOR_UPDATE]: ",{exisingDecorator:B,tmpDecorator:A}),!A){pt.default.debug("[DELTA_DECORATOR_UPDATE] UPADATE SKIPPED: ",{exisingDecorator:B,tmpDecorator:A});continue}for(let j in A)if(A.hasOwnProperty(j)&&!y.includes(j))if(nh(A[j])){let O={editorState:Fl(A[j].getEditorState())};lS(B[j],O)}else{let O=Iy(j),L=C[O];if(L===B[j]||!C.hasOwnProperty(O))continue;let N=L!==void 0&&A[j]!==L?L:A[j];O!=="height"&&O!=="width"||A[j]==="inherit"&&L===0&&(N=A[j]),B[j]=N}A.remove(),aS(B),F=B,delete S[C.codoxDId]}}F||(F=ah(C,null,e),F.codoxDId&&F.__type==="excalidraw"&&F.__data==="[]"&&(F.__data="{}")),F=F.getWritable(),w.push(F),F.__parent=E.__key,T?(E.__first=F.__key,F.__prev=null,R&&(E.__last=F.__key)):R?(E.__last=F.__key,F.__next=null,F.__prev=I.__key,I.__next=F.__key):(F.__prev=I.__key,I.__next=F.__key),E.__size=w.length}for(let x in S){let C=S[x];C=C.getWritable(),aS(C),lh(C),delete S[x]}}else{let S=E.getChildren();for(let w of S)w.remove();for(const w of _){const y=ah(w,null,e);E.append(y)}}}else if(d){let _=!!o.ld&&!!o.li;if(pt.default.debug("[stateUpdates][applyDeltasToLexicalState] shouldUpdateFullBlock: ",{shouldReplace:_,delta:o}),o.ld&&!_){const E=o.ld,S=r.get(E.codoxId);if(pt.default.debug("[stateUpdates][applyDeltasToLexicalState] remove node: ",{lexicalNodeToRemove:S}),!S){pt.default.warn("[stateUpdates][applyDeltasToLexicalState] Missing lexical node when remove node from delta: ",{path:c,delta:o,newStateJSON:l,currentStateJSON:s,stateJSONFromEditor:e.getEditorState().toJSON(),codoxNodesMap:r});continue}S.getChildrenSize&&S.getChildrenSize()?(pt.default.debug("[stateUpdates][applyDeltasToLexicalState] delta.ld remove node with children",{lexicalNodeToRemove:S}),lh(S)):S.remove()}if(o.li){let E=e._nodes,S=Un.getNodesConversionsManager(e.getKey()),w=o.li;w=S.convertJsonNodeFromSync(w,e);const y=E.get(w.type).klass.importJSON(w);if(c.length===1&&c[0]==="root")(0,Rt.$getRoot)().splice(0,0,[y]);else{const x=c[c.length-1];c.length=c.length-2;let C=ta({pathArray:c,newStateJSON:l,editor:e,codoxNodesMap:r,currentStateJSON:s});C&&(C.splice(x,0,[y]),_&&C.splice(x+1,1,[]))}if(w.children&&w.children.length){let C=function(T,R){T=x.convertJsonNodeFromSync(T,e);const F=E.get(T.type).klass.importJSON(T);if(R.splice(R.getChildrenSize(),0,[F]),T.children&&T.children.length)for(const I of T.children)C(I,F)},x=Un.getNodesConversionsManager(e.getKey());for(const T of w.children)C(T,y)}pt.default.debug("[stateUpdates][applyDeltasToLexicalState] insert node: ",{delta:o,lexicalNode:y})}if(o.oi||o.od){let{p:E,oi:S,od:w}=o,y=ta({pathArray:E,newStateJSON:l,editor:e,codoxNodesMap:r,currentStateJSON:s});if(y)try{let x=y.getWritable();if(S){let C=Object.keys(S);for(let T of C)x[Id(T)]=S[T]}if(w){let C=Object.keys(w);for(let T of C)delete x[Id(T)]}}catch(x){pt.default.debug("[applyDeltasToLexicalState][delta oi/od] getWritable error: ",{err:x,delta:o})}}if(b){let{p:E,lm:S}=o;if(typeof S=="number"){let w=E[E.length-1],y=S,x=y<w,C=ta({pathArray:E,newStateJSON:l,editor:e,codoxNodesMap:r,currentStateJSON:s});if(!C){pt.default.warn("[applyDeltasToLexicalState] LM: Lexical node to move not found by delta path: ",{delta:o});continue}let T=C.getParent().getChildren(),R=T[w],F=T[y];x?F.insertBefore(R):F.insertAfter(R)}else if(Array.isArray(S)){let w=ta({pathArray:E,newStateJSON:l,editor:e,codoxNodesMap:r,currentStateJSON:s});if(!w){pt.default.warn("[applyDeltasToLexicalState] LM: Lexical node to move not found by delta path: ",{delta:o,path:E});continue}let y=S[S.length-1],x=[...S];if(E.length===3){let F=E[2],I=x[2];F!==I&&I>F&&(pt.default.warn("[applyDeltasToLexicalState] LM: MOVE PATH UPDATE ",{path:E,movePathArrayBefore:[...x],movePathArray:x}),x[2]+=1)}x.length=x.length-2;let C=ta({pathArray:x,newStateJSON:l,editor:e,codoxNodesMap:r,currentStateJSON:s});if(!C){pt.default.warn("[applyDeltasToLexicalState] LM: Lexical parent node for move into, is not found by delta path: ",{delta:o});continue}let T=C.getChildren(),R=!T.length;if(pt.default.warn("[applyDeltasToLexicalState] LM:: ",{delta:o,targetLexicalNode:w,insertParentLexicalNode:C,insertChildren:T,shouldAppendToParent:R,insertChildPosition:y,movePathArray:x}),R)C.append(w);else{let F=T[y];F?F.insertBefore(w):pt.default.warn("[applyDeltasToLexicalState] LM: childNodeToInsertBefore is missing")}}}}else if(f){const _=c[c.length-1];let E=Id(_);c.length=c.length-1;let S,w=ta({pathArray:c,newStateJSON:l,editor:e,codoxNodesMap:r,currentStateJSON:s});if(!w){pt.default.warn("[stateUpdates][applyDeltasToLexicalState] Missing lexical node when update node attr from delta: ",{path:c,delta:o,newStateJSON:l,currentStateJSON:s});continue}try{S=w.getWritable()}catch(x){pt.default.debug("[applyDeltasToLexicalState][shouldUpdateBlockAttr] getWritable error: ",{err:x,delta:o})}if(!S)continue;let y=o.oi;if(_==="format"&&(y=XN(y)),_==="direction"&&(E="__dir"),!S.hasOwnProperty(E)){let x=Object.keys(S);for(let C of x){let T=Iy(C);if(_.startsWith(T)){E=C;break}}}S[E]=y,pt.default.debug("[STATE_UPDATES_DELTAS][update node attribute]: ",{lexicalAttrName:E,jsonedAttrName:_,attrNewValue:y,writableNode:S,delta:o})}}}const c6=function(){let l=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[];const t=[];l.forEach((s,r)=>{const o=r===0,a=r===l.length-1;o&&t.push([]),t[t.length-1].push(s),(c=>c.hasOwnProperty("lm")||c.hasOwnProperty("li")||c.hasOwnProperty("ld"))(s)&&!a&&t.push([])});const n=t.length===1,e={segmentedDeltas:t,isSingleSegment:n};return pt.default.debug("[segmentDeltas]: ",n6({fullDeltas:l},e)),e},u6=l=>{l.update(()=>{(0,Rt.$getRoot)().append($createParagraphNode())})},d6={applyDeltasToLexicalState:l6,applyFullLexicalStateReplace:cS,segmentDeltas:c6,fixStateEmptyRoot:u6},Ud=d6;function f6(l){let t=Un.getCodoxNodesMap(l);return n=>{let e=null,s=!1;try{e=n.clipboardData.getData(eP.paste),pt.default.debug("[pasteContentListener] triggered",{payload:n,lexicalPayload:e}),e=JSON.parse(e),typeof e=="object"&&e.nodes&&Array.isArray(e.nodes)&&(s=!0)}catch{return!1}if(!s)return!1;if(s){t.clearPastedIds();const r=o=>{if(o.codoxId&&t.addPastedId(o.codoxId),o.children&&o.children.length)for(const a of o.children)r(a)};for(const o of e.nodes)r(o)}return!1}}function p6(l){let t=[],n=l._nodes,e=l.getKey(),s=Un.getTablesValidator(e),r=Un.getContentNestingsWatcher(e),o=Un.getCodoxNodesMap(e),a=Un.getCodoxComments(e);return n.forEach((c,i,u)=>{let{klass:d}=c,f=l.registerMutationListener(d,p=>{for(let[h,m]of p){if(!Ei[m])continue;const g=l.getEditorState()._nodeMap.get(h);if(m===Ei.created&&g&&r.trackBlacklisted(g,m,l.getEditorState()),d.name===kr.TableNode.name&&(m===Ei.destroyed?s.tableNodeRemoveListener(h):s.tableUpdateListener(h)),d.name===kr.TableRowNode.name&&m!==Ei.destroyed&&s.tableRowNodeChangesListener(h,m===Ei.updated,l),d.name===kr.TableCellNode.name&&m===Ei.updated&&s.tableCellNodeChangesListener(h,l),d.name===Bi.MarkNode.name&&(pt.default.debug("[MUTATION LISTENER] MARK node: ",{nodeKey:h,node:g,mutationType:m,codoxComments:a}),m===Ei.destroyed?a.removeRelatedNodeKey(h):g&&a.addRelatedNodeKey(g.__key,g.__ids,m===Ei.created)),g&&g.codoxId){if(m===Ei.destroyed)return void(g.codoxId&&o.remove(g.codoxId));oS(g,e)||pt.default.warn("[MutationListener Warning] duplicating codoxId detected - such codoxId already exists in codoxNodesMap - updating node ref to latest: ",{mutationType:m,node:g}),o.add(g.codoxId,g,`${d.name}_mutation_listener`)}}});t.push(f)}),t}function h6(l){let t=[];return l._nodes.forEach((n,e,s)=>{let{klass:r}=n,o=r;for(;o;){if(o===Rt.ElementNode){let a=l.registerNodeTransform(r,c=>{try{c.getDirection()==="rtl"&&c.setDirection("ltr")}catch{pt.default.warn(`[registerNodesTransforms][${r.name}]: element node no getDirection`,{node:c})}});t.push(a);break}o=Object.getPrototypeOf(o)}}),t}var g6=l=>{var t={};return An.d(t,l),t};const uS=g6({useCollaborationContext:()=>Pd});var m6=l=>{var t={};return An.d(t,l),t};const Ja=m6({LexicalComposerContext:()=>Uu,useLexicalComposerContext:()=>yn}),y6=["contentChanged"],v6=["state","remoteSelection"];function dS(l,t){var n=Object.keys(l);if(Object.getOwnPropertySymbols){var e=Object.getOwnPropertySymbols(l);t&&(e=e.filter(function(s){return Object.getOwnPropertyDescriptor(l,s).enumerable})),n.push.apply(n,e)}return n}function qy(l){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?dS(Object(n),!0).forEach(function(e){b6(l,e,n[e])}):Object.getOwnPropertyDescriptors?Object.defineProperties(l,Object.getOwnPropertyDescriptors(n)):dS(Object(n)).forEach(function(e){Object.defineProperty(l,e,Object.getOwnPropertyDescriptor(n,e))})}return l}function b6(l,t,n){return(t=_6(t))in l?Object.defineProperty(l,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):l[t]=n,l}function _6(l){var t=w6(l,"string");return typeof t=="symbol"?t:t+""}function w6(l,t){if(typeof l!="object"||!l)return l;var n=l[Symbol.toPrimitive];if(n!==void 0){var e=n.call(l,t||"default");if(typeof e!="object")return e;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(l)}function fS(l,t){if(l==null)return{};var n,e,s=x6(l,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(l);for(e=0;e<r.length;e++)n=r[e],t.includes(n)||{}.propertyIsEnumerable.call(l,n)&&(s[n]=l[n])}return s}function x6(l,t){if(l==null)return{};var n={};for(var e in l)if({}.hasOwnProperty.call(l,e)){if(t.includes(e))continue;n[e]=l[e]}return n}pt.default.logProviderVersion(),pt.default.debug("DEV MODE: ",!1);const S6=(0,ht.forwardRef)((l,t)=>{let{onBlacklistedInsert:n,debug:e=!1}=l;if(!(0,ht.useContext)(Ja.LexicalComposerContext))throw new Error("[CodoxCollabPlugin] CodoxCollabPlugin must be inited inside <LexicalComposer> component - LexicalComposerContext is missing");const[s]=(0,Ja.useLexicalComposerContext)();let r=s.getKey();const o=(0,uS.useCollaborationContext)();let a=Un.getCodoxImpl(r),c=Un.getCodoxRemoteSelection(r),i=Un.getTablesValidator(r),u=Un.getNestedEditorsProcessor(r),d=Un.getContentNestingsWatcher(r),f=Un.getCodoxLexicalEditorManager(r),p=Un.getCodoxNodesMap(r),h=Un.getCodoxComments(r),m=Un.getNodesConversionsManager(r),g=!1;const v=function(){return f.isCodoxStarted},b=(j,O)=>{pt.default.debug("[notifyClientForContentChanged] trigger client hook and emit event");let L=j,N=h.getAllComments();N.length&&(L.commentThreads=N);let U={source:O,content:L},D=Un.getContentChangedHookClientCallback(r);D&&D(U),a.instance&&a.instance.emit("content_changed",U)};(0,ht.useEffect)(()=>{if(!s)return;f.setMainEditor(s);const j=(0,Hc.mergeRegister)(s.registerUpdateListener(B),s.registerCommand(Rt.PASTE_COMMAND,f6(s.getKey()),Rt.COMMAND_PRIORITY_CRITICAL),s.registerCommand(Rt.UNDO_COMMAND,()=>{f.setUndoInvoked(!0)},Rt.COMMAND_PRIORITY_CRITICAL),s.registerCommand(Rt.REDO_COMMAND,()=>{f.setRedoInvoked(!0)},Rt.COMMAND_PRIORITY_CRITICAL),s.registerCommand(Rt.KEY_DELETE_COMMAND,(D,z)=>{i.tableRemoveEventListener(Rt.KEY_DELETE_COMMAND,z)},Rt.COMMAND_PRIORITY_CRITICAL),s.registerCommand(Rt.KEY_BACKSPACE_COMMAND,(D,z)=>{i.tableRemoveEventListener(Rt.KEY_BACKSPACE_COMMAND,z)},Rt.COMMAND_PRIORITY_CRITICAL),s.registerCommand(Rt.CUT_COMMAND,(D,z)=>{i.tableRemoveEventListener(Rt.CUT_COMMAND,z)},Rt.COMMAND_PRIORITY_CRITICAL),...p6(s),...h6(s));c.mount(s),f.alignStateSelectionJSONsFromLatestEditor(),pt.default.debug("New editor mounted: ",{isCodoxStarted:f.isCodoxStarted,codoxLexicalEditorManager:f,nestedEditorsProcessor:u});let O=s._onError;s._onError=D=>{O&&O(D),e===!0?pt.default.debug("Prevent rollback state after lexical error"):I("lexical internal error")},n&&d.setBlacklistCallback(n);let L=()=>{g=!0},N=()=>{g=!1},U=s.getRootElement();return U.addEventListener("focus",L),U.addEventListener("blur",N),()=>{let D=s,z=s.getKey();U.removeEventListener("focus",L),U.removeEventListener("blur",N),z&&(pt.default.debug("Unmount prev editor"),j(),f.removeMainEditor(),c.unmount(),f.clearJSONs(),h.clear(),i.clear(),f.isCodoxStarted&&(pt.default.debug("EDITOR USE_EFFECT stopping codox"),S(),f.setIsCodoxStarted(!1)),d.removeBlacklistCallback()),p.gcAbandonedNodes(D),u.gc(D),i.clear(),Un.gc(z)}},[s]);const _=()=>{c.hideRemoteSelectionsFromUI()},E=()=>{c.showHiddenRemoteSelectionsInUI()},S=()=>{f.isCodoxStarted&&(pt.default.debug("[stopCodoxInstance] stopping codox"),f.setIsCodoxStarted(!1),a.stop(),f.clearJSONs(),c.clear(),h.resetComments(),u.clearListeners())},w=j=>{let{state:O=null,comments:L=null,selection:N=null,isNestedSelection:U=!1,remoteSelection:D=null,callerName:z=""}=j;O&&f.setLocalContentStateJSON(O,"postSyncLocalUpdates"),N&&(U?f.setNestedSelectionJSON(N):f.setMainSelectionJSON(N)),D&&c.updateRemoteSelections(D,z,s),L&&h.setAllComments(L)},y=function(){let{newContentStateJSON:j,shouldRepaceFullState:O=!1,newSelectionJSON:L,updateTagsToApply:N=[],useTag:U=!0,callerName:D="not_specified_caller"}=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};pt.default.debug(`[updateLexicalEditor] invoked. Caller: [${D}]`),L||(L=f.getCurrentMainSelectionJSON());let z=!!j,K=null,G=null,P=z&&!O;if(pt.default.debug(`[updateLexicalEditor] caller: [${D}] update payload: `,{newContentStateJSON:j,shouldRepaceFullState:O,newSelectionJSON:L,updateTagsToApplyFromCaller:N,shouldUpdateState:z,shouldComputeStateDeltas:P}),P){W=f.getLocalContentStateJSON(),J=j,K=a.diff(W,J,{keyNames:{default:"codoxId"},filters:{codox_metadata:!0}}),pt.default.debug("[updateLexicalEditor] Performing a partial state replace - state deltas: ",K);const H=Ud.segmentDeltas(K);H.isSingleSegment||(G=H.segmentedDeltas)}var W,J;return z&&!O&&G?((H=>{let{newSelectionJSON:$,finalUseTag:Z=!0,finalUpdateTagsToApply:X=[],segmentedDeltas:Y,newContentStateJSON:ee}=H;pt.default.debug("[updateLexicalEditorWithSegmentalDeltas] update lexical with segmented deltas invoked. segments count: ",Y.length),Y.forEach((ie,fe)=>{let de=fe===Y.length-1,ne=f.getContentStateJSONFromEditor();s.update(()=>{if(Ud.applyDeltasToLexicalState({newStateJSON:ee,deltas:ie,editor:s,currentStateJSON:ne}),de){if(g){const Ee=fn.JSONToLexical($,p);(0,Rt.$setSelection)(Ee)}Z&&Fy({updateTags:X,isSameState:!1})}else(0,Rt.$addUpdateTag)("codox_segmental_sync_state_changes")},{discrete:!0}),pt.default.debug(`[updateLexicalEditorWithSegmentalDeltas] segment ${fe} update ended `)})})({newSelectionJSON:L,finalUseTag:U,finalUpdateTagsToApply:N,segmentedDeltas:G,newContentStateJSON:j}),K):(s.update(()=>{if(z&&(O?Ud.applyFullLexicalStateReplace(j,s):Ud.applyDeltasToLexicalState({newStateJSON:j,deltas:K,editor:s,currentStateJSON:f.getLocalContentStateJSON()})),g){const H=fn.JSONToLexical(L,p);(0,Rt.$setSelection)(H)}U&&Fy({updateTags:N,isSameState:!z})},{discrete:!0}),K)},x=j=>!0,C=j=>{if(!v())return;pt.default.debug("[SYNC_STATE - remote handling]: Before sync(), payload from core = ",j);let O={};try{O=a.sync({meta:j})}catch{return S()}const{state:L,remoteSelection:N=[]}=O;if(fS(O,v6),j&&j.action===nP.syncRCS)return pt.default.debug('[SYNC_STATE - remote handling] EARLY RETURN: "syncRCS" action - update only remote selections'),void c.updateRemoteSelections(N,"syncState",s);if(!L)return S();let U=L.state;pt.default.debug("[SYNC_STATE - remote handling] The new synced state to apply = ",{synced:JSON.parse(JSON.stringify(U))});let{stateFromSync:D,commentsFromSync:z}=f.extractStateAndCommentsFromSynced(U);if(pt.default.debug("[SYNC_STATE - remote handling] synced state validation"),!f.isValidJSONState(D.state))return S();D.state=m.convertNodesFromSyncInJsonState(D.state,s),pt.default.debug("[SYNC_STATE - remote handling] synced state transformed",D.state);const K=f.isSameContentStateJSON(D.state);pt.default.debug("[SYNC_STATE - remote handling] synced selecttion validation");let G=oh.validateJSONSelection(D.selection,Rd.local,p),P=f.getCurrentMainSelectionJSON(),W=!1,J=!1;G?(J=f.isSameSelectionJSON(D.selection),J||(W=fn.isNestedSelectionJSON(D.selection),W||(P=D.selection))):pt.default.error("[SYNC_STATE - remote handling] local selection from core is not valid. Only selection upd skipped. Invalid selection = ",D.selection),pt.default.debug("[SYNC_STATE - remote handling] compares: ",{isSameContentState:K,isSameLocalSelection:J});let H=null;K&&J?pt.default.debug("[SYNC_STATE - remote handling] same state and selection - skip lexical editor update"):(pt.default.debug("[SYNC_STATE - remote handling] should update lexical editor"),H=y({newContentStateJSON:K?void 0:D.state,shouldRepaceFullState:!!D.stateReplace,newSelectionJSON:P,updateTagsToApply:["codox_sync_state_changes"],callerName:"syncState"})),x({syncedState:D.state,currentJsonState:f.getLocalContentStateJSON(),originalDeltas:H}),w({state:K?null:D.state,selection:J?null:D.selection,isNestedSelection:W,comments:z,remoteSelection:N,callerName:"syncState"})},T=j=>{if(!v())return;if(pt.default.debug("[setSelectionHookHandler] invoked. new synced selection: ",j),!oh.validateJSONSelection(j,Rd.local,p))return void pt.default.error("[setSelectionHookHandler] INVALID SELECTION FROM SYNC - selection update skipped");let O=f.getCurrentActiveSelectionJSON();fn.equalSelectionsJSON(O,j)?pt.default.debug("[setSelectionHookHandler] STOP - current local and new synced selections are equal"):fn.isNestedSelectionJSON(j)?u.setNestedEditorSelection(j)&&f.setNestedSelectionJSON(j):(y({newSelectionJSON:j,callerName:"setSelectionHookHandler",useTag:!1}),f.setMainSelectionJSON(j))},R=j=>{const{root:O,comments:L}=j,N={root:O};let U=f.isSameContentStateJSON(N);pt.default.debug("[setStateHookHandler] state compare: ",{isSameState:U}),U||(pt.default.debug("[setStateHookHandler] should update lexcial editor"),y({newContentStateJSON:N,newSelectionJSON:f.getCurrentMainSelectionJSON(),callerName:"setStateHookHandler"})),h.setAllComments(L)},F=function(){let{afterStart:j=!1}=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};if(!v())return;let O=f.composeFullStateForSync(h);if(O.state=m.convertNodesForSyncInJsonState(O.state,s),!(j||(pt.default.debug("[invokeSync - local handling] pre sync state validation"),f.isValidJSONState(O.state))))return pt.default.error("[invokeSync - local handling] - invalid lexical state for sync - sync invoke skipped - stopping codox",{lexicalJSONState:{root:O.state.root}}),S();pt.default.debug("[invokeSync - local handling] SYNC INVOKED "),j&&f.alignSelectionJSONFromLatestEditor();const L={state:{state:O.state,selection:f.getCurrentActiveSelectionJSON()}};pt.default.debug("[invokeSync - local handling]: Before sync()",{local:L}),pt.default.debug("[invokeSync - local handling]: Before sync() local full state",JSON.parse(JSON.stringify(L.state)));let N={};try{N=a.sync({state:L,meta:{}})}catch{return S()}let{state:U,remoteSelection:D=[],changes:z}=N;if(!U)return S();const K=U.state;pt.default.debug("[invokeSync - local handling]: synced document state: ",JSON.parse(JSON.stringify(K)));let{stateFromSync:G,commentsFromSync:P}=f.extractStateAndCommentsFromSynced(K);if(pt.default.debug("[invokeSync - local handling] synced state validation"),!f.isValidJSONState(G.state))return S();G.state=m.convertNodesFromSyncInJsonState(G.state,s),pt.default.debug("[invokeSync - transformed]: synced document state: ",JSON.parse(JSON.stringify(G.state)));const W=f.isSameContentStateJSON(G.state);pt.default.debug("[invokeSync - local handling] synced selecttion validation");let J=oh.validateJSONSelection(G.selection,Rd.local,p),H=f.getCurrentMainSelectionJSON(),$=!1,Z=!1;J?($=f.isSameSelectionJSON(G.selection),$||(Z=fn.isNestedSelectionJSON(G.selection),Z||(H=G.selection))):pt.default.error("[invokeSync - local handling] local selection from core is not valid. Only selection upd skipped. Invalid selection = ",G.selection),pt.default.debug("[invokeSync - local handling] After sync - compares: ",{isSameContentState:W,isSameLocalSelection:$,isNestedSelection:Z});let X=null;W&&$?pt.default.debug("[invokeSync - local handling] skip update lexical editor - state and selection are same"):(pt.default.debug("[invokeSync - local handling] invoke update lexical editor "),X=y({newContentStateJSON:W?void 0:G.state,shouldRepaceFullState:!!G.stateReplace,newSelectionJSON:H,updateTagsToApply:["codox_sync_state_changes"],callerName:"invokeSync"})),x({syncedState:G.state,currentJsonState:f.getLocalContentStateJSON(),originalDeltas:X}),w({state:W?null:G.state,selection:$?null:G.selection,isNestedSelection:Z,comments:P,remoteSelection:D,callerName:"invokeSync"})},I=function(){let j=arguments.length>0&&arguments[0]!==void 0?arguments[0]:"";pt.default.debug(`[revertToPrevState] invoked. Reason: ${j}`);let O=f.getLocalContentStateJSON(),L=f.getCurrentActiveSelectionJSON();y({newContentStateJSON:O,shouldRepaceFullState:!0,newSelectionJSON:L,updateTagsToApply:[ls.historic,Ex],callerName:"revertToPrevState"}),h.gcAbandonedNodeKeys(f.getMainEditorStateNodesMap()),s.dispatchCommand(Rt.CAN_REDO_COMMAND,!1),s.dispatchCommand(Rt.CAN_UNDO_COMMAND,!1)},B=j=>{let{editorState:O,prevEditorState:L,tags:N,dirtyElements:U,dirtyLeaves:D}=j;if(!v())return;if(pt.default.debug("[editorUpdatesListener] invoked by lexical ============="),f.isMainEditorStateEmptyRoot())return pt.default.warn("[editorUpdatesListener] INVALID EMPTY STATE FOUND: empty root.children - fix logic will be triggered"),void Ud.fixStateEmptyRoot(s);if(N.has("codox_segmental_sync_state_changes"))return void pt.default.debug("[editorUpdatesListener] STOP - update is part of synced deltas segmental updates");if(N.has(Ex))return void pt.default.debug("[editorUpdatesListener] STOP - update invoked by content revert, no need to sync");if(d.isBlacklistedFound())return pt.default.warn("[editorUpdatesListener] BLACKLISTED CHANGES FOUND - revert back to prev state"),I("blacklist content"),void d.invokeBlacklistCallback();if(!i.ensureDocTablesAreValid(s))return void pt.default.warn("[editorUpdatesListener] INVALID TABLE(S) FOUND - fix logic will be triggered");let z=Wx(U,D),K=z?f.getLocalContentStateJSON():Fl(O);if(N.has("codox_sync_state_changes"))return pt.default.debug("[editorUpdatesListener] STOP - EARLY RETURN - update invoked after remote synced state applied - should not sync"),void b(K,kx.remote);let G=N.has(Md),P=null;O.read(()=>{P=fn.lexicalToJSON((0,Rt.$getSelection)())});let W=!!z||f.isSameContentStateJSON(K),J=f.isSameSelectionJSON(P);pt.default.debug("[editorUpdatesListener] compares: ",{isStateSame:W,isSelectionSame:J}),W&&!G||b(K,kx.local),W&&J&&!G?pt.default.debug("[editorUpdatesListener] STOP - state and selection and comments are same - should not sync"):(f.undoInvoked()&&f.setUndoInvoked(!1),f.redoInvoked()&&f.setRedoInvoked(!1),z||f.setLocalContentStateJSON(K,"editorUpdatesListener"),f.setMainSelectionJSON(P),F())},A={start:async j=>{pt.default.debug("[startCodoxInstance] invoked",{codoxConfigFromClient:j}),f.isCodoxStarted&&S(),f.alignStateSelectionJSONsFromLatestEditor(),a.createNewInstance(),pt.default.debug("[startCodoxInstance] instance created");let O=Un.getClientEventListeners(r);for(let X in O)a.instance.on(X,O[X]);if(pt.default.debug("[startCodoxInstance] events subscribed"),Un.setConfigBackup(r,j),!j.docId)return pt.default.error("[startCodoxInstance] - start codox skipped - docId is missing. codoxConfigFromClient: ",j);let L=h.initialCommentsExist();pt.default.debug("[startCodoxInstance] initCommentsExist: ",L),L&&(h.activateInitialComments(s,p),pt.default.debug("[activateInitialComments] "));let N=f.getLocalContentStateJSON();if(!f.isValidJSONState(N))throw pt.default.error("[startCodoxInstance] - start codox skipped - invalid init state",{codoxConfigFromClient:j,initJSONState:N}),new Error("start codox skipped - invalid init state");pt.default.debug("[startCodoxInstance] starting codox with: ",{initJSONState:N,codoxConfigFromClient:j,codoxComments:h});let{docId:U,username:D,apiKey:z,getServerState:K,domain:G="",demo:P=!1,hooks:W,appServer:J}=j;var H;W&&W.fetchDocOnNetworkReconnect&&(W.fetchDocOnNetworkReconnect=(H=W.fetchDocOnNetworkReconnect,async()=>{const{state:X,timestamp:Y}=await H();if(!f.isValidJSONState(X))throw new Error("Invalid state received from fetchDocOnNetworkReconnect hook");const{commentThreads:ee,root:ie}=X;let fe={commentThreads:ee,root:ie};fe=m.convertNodesForSyncInJsonState(fe,s);const de={content:{comments:ee,root:ie},timestamp:Y};return pt.default.info("[decorateFetchOnReconnctHook] hook invoked: ",{returnObj:de}),de}));const{contentChanged:$}=W,Z=fS(W,y6);Un.setContentChangedHookClientCallback(r,$),await a.start(a.createConfig(qy(qy({},j),{},{docId:U,username:D,apiKey:z,domain:G,hooks:qy({syncState:X=>{pt.default.debug("[syncState] hook invoked. calls local syncState fn"),C(X)},getState:()=>{let X=f.composeFullStateForSync(h);return X.state=m.convertNodesForSyncInJsonState(X.state,s),X},getServerState:async()=>await K(U)},Z),editorInstanceHooks:{getSelection:()=>{const X=f.getCurrentActiveSelectionJSON();return pt.default.debug("[getSelection] hook invoked. selection: ",X),X},setSelection:X=>{pt.default.debug("[setSelection] hook invoked. calls setSelectionHookHandler"),T(X)},getState:()=>{const X=f.composeFullStateForSync(h);return X.state=m.convertNodesForSyncInJsonState(X.state,s),pt.default.info("[getState] hook invoked. state: ",X),X},setState:X=>{pt.default.info("[setState] hook invoked. calls setStateHookHandler"),X=m.convertNodesFromSyncInJsonState(X,s),R(X)},enableEditor:()=>{pt.default.debug("[enableEditor] invoked"),f.disableEditorReadOnlyMode(),E()},disableEditor:()=>{pt.default.debug("[disableEditor] invoked"),f.enableEditorReadOnlyMode(),_()},getContent:()=>{let X=f.composeFullStateForSync(h);return X.state=m.convertNodesForSyncInJsonState(X.state,s),pt.default.info("[getContent]: ",X.state),X}},appServer:J,demo:P}))),pt.default.debug("[startCodoxInstance] codox started - first sync invoking"),f.setIsCodoxStarted(!0),o.clientID=D,o.name=D,F({afterStart:!0})},stop:S,on:(j,O)=>{pt.default.info(`Subscribing client to codox ${j} event`),Un.setClientEventListener(r,j,O)},cursor:{hide:_,show:E},initComments:j=>{h.setInitialComments(j)}};return(0,ht.useImperativeHandle)(t,()=>A),null}),E6=S6;var ch=An(777),Kc={};Kc.styleTagTransform=ea(),Kc.setAttributes=Qs(),Kc.insert=Zs().bind(null,"head"),Kc.domAPI=Ys(),Kc.insertStyleElement=Xs(),$s()(ch.A,Kc),ch.A&&ch.A.locals&&ch.A.locals;var C6=l=>{var t={};return An.d(t,l),t};const j6=C6({AutoFocusPlugin:()=>Dp});var k6=l=>{var t={};return An.d(t,l),t};const T6=k6({ClearEditorPlugin:()=>gx});var A6=l=>{var t={};return An.d(t,l),t};const O6=A6({LexicalComposer:()=>dp}),pS=kN;var N6=l=>{var t={};return An.d(t,l),t};const P6=N6({HistoryPlugin:()=>mp});var I6=l=>{var t={};return An.d(t,l),t};const M6=I6({OnChangePlugin:()=>yx});var R6=l=>{var t={};return An.d(t,l),t};const D6=R6({PlainTextPlugin:()=>_x});var L6=l=>{var t={};return An.d(t,l),t};const hS=L6({$isRootTextContentEmpty:()=>iy,$rootTextContent:()=>oy});var F6=l=>{var t={};return An.d(t,l),t};const Gc=F6({createPortal:()=>Cf.createPortal}),B6=typeof window<"u"&&window.document!==void 0&&window.document.createElement!==void 0,z6=B6?ht.useLayoutEffect:ht.useEffect,gS=z6;var uh=An(253),$c={};$c.styleTagTransform=ea(),$c.setAttributes=Qs(),$c.insert=Zs().bind(null,"head"),$c.domAPI=Ys(),$c.insertStyleElement=Xs(),$s()(uh.A,$c),uh.A&&uh.A.locals&&uh.A.locals;function U6(l){let{onClose:t,children:n,title:e,closeOnClickOutside:s}=l;const r=(0,ht.useRef)(null);return(0,ht.useEffect)(()=>{r.current!==null&&r.current.focus()},[]),(0,ht.useEffect)(()=>{let o=null;const a=u=>{u.key==="Escape"&&t()},c=u=>{const d=u.target;r.current!==null&&!r.current.contains(d)&&s&&t()},i=r.current;return i!==null&&(o=i.parentElement,o!==null&&o.addEventListener("click",c)),window.addEventListener("keydown",a),()=>{window.removeEventListener("keydown",a),o!==null&&(o==null||o.removeEventListener("click",c))}},[s,t]),ht.createElement("div",{className:"Modal__overlay",role:"dialog"},ht.createElement("div",{className:"Modal__modal",tabIndex:-1,ref:r},ht.createElement("h2",{className:"Modal__title"},e),ht.createElement("button",{className:"Modal__closeButton","aria-label":"Close modal",type:"button",onClick:t},"X"),ht.createElement("div",{className:"Modal__content"},n)))}function H6(l){let{onClose:t,children:n,title:e,closeOnClickOutside:s=!1}=l;return(0,Gc.createPortal)(ht.createElement(U6,{onClose:t,title:e,closeOnClickOutside:s},n),document.body)}function mS(){const[l,t]=(0,ht.useState)(null),n=(0,ht.useCallback)(()=>{t(null)},[]),e=(0,ht.useMemo)(()=>{if(l===null)return null;const{title:r,content:o,closeOnClickOutside:a}=l;return ht.createElement(H6,{onClose:n,title:r,closeOnClickOutside:a},o)},[l,n]),s=(0,ht.useCallback)(function(r,o){t({closeOnClickOutside:arguments.length>2&&arguments[2]!==void 0&&arguments[2],content:o(n),title:r})},[n]);return[e,s]}var dh=An(191),Yc={};Yc.styleTagTransform=ea(),Yc.setAttributes=Qs(),Yc.insert=Zs().bind(null,"head"),Yc.domAPI=Ys(),Yc.insertStyleElement=Xs(),$s()(dh.A,Yc),dh.A&&dh.A.locals&&dh.A.locals;const q6={blockCursor:"CommentEditorTheme__blockCursor",characterLimit:"CommentEditorTheme__characterLimit",code:"CommentEditorTheme__code",codeHighlight:{atrule:"CommentEditorTheme__tokenAttr",attr:"CommentEditorTheme__tokenAttr",boolean:"CommentEditorTheme__tokenProperty",builtin:"CommentEditorTheme__tokenSelector",cdata:"CommentEditorTheme__tokenComment",char:"CommentEditorTheme__tokenSelector",class:"CommentEditorTheme__tokenFunction","class-name":"CommentEditorTheme__tokenFunction",comment:"CommentEditorTheme__tokenComment",constant:"CommentEditorTheme__tokenProperty",deleted:"CommentEditorTheme__tokenProperty",doctype:"CommentEditorTheme__tokenComment",entity:"CommentEditorTheme__tokenOperator",function:"CommentEditorTheme__tokenFunction",important:"CommentEditorTheme__tokenVariable",inserted:"CommentEditorTheme__tokenSelector",keyword:"CommentEditorTheme__tokenAttr",namespace:"CommentEditorTheme__tokenVariable",number:"CommentEditorTheme__tokenProperty",operator:"CommentEditorTheme__tokenOperator",prolog:"CommentEditorTheme__tokenComment",property:"CommentEditorTheme__tokenProperty",punctuation:"CommentEditorTheme__tokenPunctuation",regex:"CommentEditorTheme__tokenVariable",selector:"CommentEditorTheme__tokenSelector",string:"CommentEditorTheme__tokenSelector",symbol:"CommentEditorTheme__tokenProperty",tag:"CommentEditorTheme__tokenProperty",url:"CommentEditorTheme__tokenOperator",variable:"CommentEditorTheme__tokenVariable"},embedBlock:{base:"CommentEditorTheme__embedBlock",focus:"CommentEditorTheme__embedBlockFocus"},hashtag:"CommentEditorTheme__hashtag",heading:{h1:"CommentEditorTheme__h1",h2:"CommentEditorTheme__h2",h3:"CommentEditorTheme__h3",h4:"CommentEditorTheme__h4",h5:"CommentEditorTheme__h5",h6:"CommentEditorTheme__h6"},image:"editor-image",indent:"CommentEditorTheme__indent",inlineImage:"inline-editor-image",layoutContainer:"CommentEditorTheme__layoutContainer",layoutItem:"CommentEditorTheme__layoutItem",link:"CommentEditorTheme__link",list:{checklist:"CommentEditorTheme__checklist",listitem:"CommentEditorTheme__listItem",listitemChecked:"CommentEditorTheme__listItemChecked",listitemUnchecked:"CommentEditorTheme__listItemUnchecked",nested:{listitem:"CommentEditorTheme__nestedListItem"},olDepth:["CommentEditorTheme__ol1","CommentEditorTheme__ol2","CommentEditorTheme__ol3","CommentEditorTheme__ol4","CommentEditorTheme__ol5"],ul:"CommentEditorTheme__ul"},ltr:"CommentEditorTheme__ltr",mark:"CommentEditorTheme__mark",markOverlap:"CommentEditorTheme__markOverlap",paragraph:"CommentEditorTheme__paragraph",quote:"CommentEditorTheme__quote",rtl:"CommentEditorTheme__rtl",table:"CommentEditorTheme__table",tableCell:"CommentEditorTheme__tableCell",tableCellActionButton:"CommentEditorTheme__tableCellActionButton",tableCellActionButtonContainer:"CommentEditorTheme__tableCellActionButtonContainer",tableCellEditing:"CommentEditorTheme__tableCellEditing",tableCellHeader:"CommentEditorTheme__tableCellHeader",tableCellPrimarySelected:"CommentEditorTheme__tableCellPrimarySelected",tableCellResizer:"CommentEditorTheme__tableCellResizer",tableCellSelected:"CommentEditorTheme__tableCellSelected",tableCellSortedIndicator:"CommentEditorTheme__tableCellSortedIndicator",tableResizeRuler:"CommentEditorTheme__tableCellResizeRuler",tableSelected:"CommentEditorTheme__tableSelected",tableSelection:"CommentEditorTheme__tableSelection",text:{bold:"CommentEditorTheme__textBold",code:"CommentEditorTheme__textCode",italic:"CommentEditorTheme__textItalic",strikethrough:"CommentEditorTheme__textStrikethrough",subscript:"CommentEditorTheme__textSubscript",superscript:"CommentEditorTheme__textSuperscript",underline:"CommentEditorTheme__textUnderline",underlineStrikethrough:"CommentEditorTheme__textUnderlineStrikethrough"}},W6=q6;var fh=An(72),Zc={};Zc.styleTagTransform=ea(),Zc.setAttributes=Qs(),Zc.insert=Zs().bind(null,"head"),Zc.domAPI=Ys(),Zc.insertStyleElement=Xs(),$s()(fh.A,Zc),fh.A&&fh.A.locals&&fh.A.locals;function J6(){for(var l=arguments.length,t=new Array(l),n=0;n<l;n++)t[n]=arguments[n];return t.filter(Boolean).join(" ")}function Wy(){return Wy=Object.assign?Object.assign.bind():function(l){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var e in n)({}).hasOwnProperty.call(n,e)&&(l[e]=n[e])}return l},Wy.apply(null,arguments)}function Va(l){let{"data-test-id":t,children:n,className:e,onClick:s,disabled:r,small:o,title:a,style:c}=l;return ht.createElement("button",Wy({disabled:r,className:J6("Button__root",r&&"Button__disabled",o&&"Button__small",e),onClick:s,title:a,"aria-label":a},t&&{"data-test-id":t},c&&{style:c}),n)}var ph=An(129),Qc={};Qc.styleTagTransform=ea(),Qc.setAttributes=Qs(),Qc.insert=Zs().bind(null,"head"),Qc.domAPI=Ys(),Qc.insertStyleElement=Xs(),$s()(ph.A,Qc),ph.A&&ph.A.locals&&ph.A.locals;var V6=l=>{var t={};return An.d(t,l),t};const K6=V6({ContentEditable:()=>fx});function G6(l){let{className:t}=l;return ht.createElement(K6.ContentEditable,{className:t||"ContentEditable__root"})}var hh=An(457),Xc={};Xc.styleTagTransform=ea(),Xc.setAttributes=Qs(),Xc.insert=Zs().bind(null,"head"),Xc.domAPI=Ys(),Xc.insertStyleElement=Xs(),$s()(hh.A,Xc),hh.A&&hh.A.locals&&hh.A.locals;function $6(l){let{children:t,className:n}=l;return ht.createElement("div",{className:n||"Placeholder__root"},t)}function Jy(){return Jy=Object.assign?Object.assign.bind():function(l){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var e in n)({}).hasOwnProperty.call(n,e)&&(l[e]=n[e])}return l},Jy.apply(null,arguments)}const Y6=pS.LexicalErrorBoundary||pS,Z6=()=>ht.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"#050505",className:"codox-add-comment-right"},ht.createElement("path",{d:"M14 1a1 1 0 0 1 1 1v8a1 1 0 0 1-1 1H4.414A2 2 0 0 0 3 11.586l-2 2V2a1 1 0 0 1 1-1h12zM2 0a2 2 0 0 0-2 2v12.793a.5.5 0 0 0 .854.353l2.853-2.853A1 1 0 0 1 4.414 12H14a2 2 0 0 0 2-2V2a2 2 0 0 0-2-2H2z"}),ht.createElement("path",{d:"M3 3.5a.5.5 0 0 1 .5-.5h9a.5.5 0 0 1 0 1h-9a.5.5 0 0 1-.5-.5zM3 6a.5.5 0 0 1 .5-.5h9a.5.5 0 0 1 0 1h-9A.5.5 0 0 1 3 6zm0 2.5a.5.5 0 0 1 .5-.5h5a.5.5 0 0 1 0 1h-5a.5.5 0 0 1-.5-.5z"})),yS=()=>ht.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"20",height:"20",fill:"currentColor",className:"codox-remove-comment"},ht.createElement("path",{d:"M6.5 1h3a.5.5 0 0 1 .5.5v1H6v-1a.5.5 0 0 1 .5-.5ZM11 2.5v-1A1.5 1.5 0 0 0 9.5 0h-3A1.5 1.5 0 0 0 5 1.5v1H2.506a.58.58 0 0 0-.01 0H1.5a.5.5 0 0 0 0 1h.538l.853 10.66A2 2 0 0 0 4.885 16h6.23a2 2 0 0 0 1.994-1.84l.853-10.66h.538a.5.5 0 0 0 0-1h-.995a.59.59 0 0 0-.01 0H11Zm1.958 1-.846 10.58a1 1 0 0 1-.997.92h-6.23a1 1 0 0 1-.997-.92L3.042 3.5h9.916Zm-7.487 1a.5.5 0 0 1 .528.47l.5 8.5a.5.5 0 0 1-.998.06L5 5.03a.5.5 0 0 1 .47-.53Zm5.058 0a.5.5 0 0 1 .47.53l-.5 8.5a.5.5 0 1 1-.998-.06l.5-8.5a.5.5 0 0 1 .528-.47ZM8 4.5a.5.5 0 0 1 .5.5v8.5a.5.5 0 0 1-1 0V5a.5.5 0 0 1 .5-.5Z"})),Q6=()=>ht.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",fill:"currentColor",className:"codox-add-comment"},ht.createElement("path",{d:"M15.854.146a.5.5 0 0 1 .11.54l-5.819 14.547a.75.75 0 0 1-1.329.124l-3.178-4.995L.643 7.184a.75.75 0 0 1 .124-1.33L15.314.037a.5.5 0 0 1 .54.11ZM6.636 10.07l2.761 4.338L14.13 2.576 6.636 10.07Zm6.787-8.201L1.591 6.602l4.339 2.76 7.494-7.493Z"})),vS=()=>ht.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"20",height:"20",fill:"#0000008c",className:"codox-hide-show-comments"},ht.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M13 5.885v1.166a3.95 3.95 0 0 1-3.949 3.95H6.917a.748.748 0 0 0-.45.15l-1.345 1.007a.752.752 0 0 0-.032 1.181A2.933 2.933 0 0 0 6.95 14h2.716l2.534 1.901a.506.506 0 0 0 .524.047A.501.501 0 0 0 13 15.5V14h.051a2.949 2.949 0 0 0 2.95-2.949v-3.05a3.002 3.002 0 0 0-2.002-2.83.756.756 0 0 0-.999.714"}),ht.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M9.05 1H2.95A2.952 2.952 0 0 0 0 3.949v3.102A2.952 2.952 0 0 0 2.949 10H3v1.5a.502.502 0 0 0 .8.4L6.334 10H9.05A2.952 2.952 0 0 0 12 7.05V3.95A2.952 2.952 0 0 0 9.05 1"}));function bS(l,t,n,e){let s=arguments.length>4&&arguments[4]!==void 0?arguments[4]:performance.now(),r=arguments.length>5&&arguments[5]!==void 0&&arguments[5];return l.createNewCommentObj({content:t,author:n,codoxId:e,timeStamp:s,deleted:r})}function X6(l,t,n,e){return l.createNewThreadObj({quote:t,comments:n,codoxId:e})}function e5(l){let{anchorKey:t,editor:n,onAddComment:e}=l;const s=(0,ht.useRef)(null),r=(0,ht.useCallback)(()=>{const o=s.current,a=n.getRootElement(),c=n.getElementByKey(t);if(o!==null&&a!==null&&c!==null){const{right:i}=a.getBoundingClientRect(),{top:u}=c.getBoundingClientRect();o.style.left=i-20+"px",o.style.top=u-30+"px"}},[t,n]);return(0,ht.useEffect)(()=>(window.addEventListener("resize",r),()=>{window.removeEventListener("resize",r)}),[n,r]),gS(()=>{r()},[t,n,r]),ht.createElement("div",{className:"CodoxCommentPlugin_AddCommentBox",ref:s},ht.createElement("button",{className:"CodoxCommentPlugin_AddCommentBox_button",onClick:e},ht.createElement(Z6,null)))}function t5(l){let{onEscape:t}=l;const[n]=(0,Ja.useLexicalComposerContext)();return(0,ht.useEffect)(()=>n.registerCommand(Rt.KEY_ESCAPE_COMMAND,e=>t(e),2),[n,t]),null}function n5(l){let{editorRef:t}=l;const[n]=(0,Ja.useLexicalComposerContext)();return typeof t=="function"?t(n):typeof t=="object"&&(t.current=n),null}function _S(l){let{className:t,autoFocus:n,onEscape:e,onChange:s,editorRef:r,placeholder:o="Type a comment...",onEditorClick:a=()=>{}}=l;const c={namespace:"Commenting",nodes:[],onError:i=>{throw i},theme:W6};return ht.createElement(O6.LexicalComposer,{initialConfig:c},ht.createElement("div",{className:"CodoxCommentPlugin_CommentInputBox_EditorContainer",onClick:a},ht.createElement(D6.PlainTextPlugin,{contentEditable:ht.createElement(G6,{className:t}),placeholder:ht.createElement($6,null,o),ErrorBoundary:Y6}),ht.createElement(M6.OnChangePlugin,{onChange:s}),ht.createElement(P6.HistoryPlugin,null),n!==!1&&ht.createElement(j6.AutoFocusPlugin,null),ht.createElement(t5,{onEscape:e}),ht.createElement(T6.ClearEditorPlugin,null),r!==void 0&&ht.createElement(n5,{editorRef:r})))}function wS(l,t){return(0,ht.useCallback)((n,e)=>{n.read(()=>{l((0,hS.$rootTextContent)()),t(!(0,hS.$isRootTextContentEmpty)(e.isComposing(),!0))})},[t,l])}function r5(l){let{editor:t,cancelAddComment:n,submitAddComment:e,codoxComments:s}=l;const[r,o]=(0,ht.useState)(""),[a,c]=(0,ht.useState)(!1),i=(0,ht.useRef)(null),u=(0,ht.useMemo)(()=>({container:document.createElement("div"),elements:[]}),[]),d=(0,ht.useRef)(null),f=ES(),p=(0,ht.useCallback)(()=>{t.getEditorState().read(()=>{const m=(0,Rt.$getSelection)();if((0,Rt.$isRangeSelection)(m)){d.current=m.clone();const g=m.anchor,v=m.focus,b=(0,Bl.createDOMRange)(t,g.getNode(),g.offset,v.getNode(),v.offset),_=i.current;if(b!==null&&_!==null){const{left:E,bottom:S,width:w}=b.getBoundingClientRect(),y=(0,Bl.createRectsFromDOMRange)(t,b);let x=y.length===1?E+w/2-125:E-125;x<10&&(x=10),_.style.left=`${x}px`,_.style.top=`${S+20+(window.pageYOffset||document.documentElement.scrollTop)}px`;const C=y.length,{container:T}=u,R=u.elements,F=R.length;for(let I=0;I<C;I++){const B=y[I];let A=R[I];A===void 0&&(A=document.createElement("span"),R[I]=A,T.appendChild(A));const j="255, 212, 0",O=`position:absolute;top:${B.top+(window.pageYOffset||document.documentElement.scrollTop)}px;left:${B.left}px;height:${B.height}px;width:${B.width}px;background-color:rgba(${j}, 0.3);pointer-events:none;z-index:5;`;A.style.cssText=O}for(let I=F-1;I>=C;I--){const B=R[I];T.removeChild(B),R.pop()}}}})},[t,u]);gS(()=>{p();const m=u.container,g=document.body;if(g!==null)return g.appendChild(m),()=>{g.removeChild(m)}},[u.container,p]),(0,ht.useEffect)(()=>(window.addEventListener("resize",p),()=>{window.removeEventListener("resize",p)}),[p]);const h=wS(o,c);return ht.createElement("div",{className:"CodoxCommentPlugin_CommentInputBox",ref:i},ht.createElement(_S,{className:"CodoxCommentPlugin_CommentInputBox_Editor",onEscape:m=>(m.preventDefault(),n(),!0),onChange:h}),ht.createElement("div",{className:"CodoxCommentPlugin_CommentInputBox_Buttons"},ht.createElement(Va,{onClick:n,className:"CodoxCommentPlugin_CommentInputBox_Button"},"Cancel"),ht.createElement(Va,{onClick:()=>{if(a){let m=t.getEditorState().read(()=>{const g=d.current;return g?g.getTextContent():""});m.length>100&&(m=m.slice(0,99)+"…"),e(X6(s,m,[bS(s,r,f)]),!0,void 0,d.current),d.current=null}},disabled:!a,className:"CodoxCommentPlugin_CommentInputBox_Button primary"},"Comment")))}function o5(l){let{submitAddComment:t,thread:n,placeholder:e,codoxComments:s}=l;const[r,o]=(0,ht.useState)(""),[a,c]=(0,ht.useState)(!1),i=(0,ht.useRef)(null),u=ES(),d=wS(o,c);return ht.createElement(ht.Fragment,null,ht.createElement(_S,{className:"CodoxCommentPlugin_CommentsPanel_Editor",autoFocus:!1,onEscape:()=>!0,onChange:d,editorRef:i,placeholder:e}),ht.createElement(Va,{className:"CodoxCommentPlugin_CommentsPanel_SendButton",onClick:()=>{if(a){t(bS(s,r,u),!1,n);const f=i.current;f!==null&&f.dispatchCommand(Rt.CLEAR_EDITOR_COMMAND,void 0)}},disabled:!a},ht.createElement(Q6,null)))}function xS(l){let{commentOrThread:t,deleteCommentOrThread:n,onClose:e,thread:s}=l;return ht.createElement(ht.Fragment,null,"Are you sure you want to delete this ",t.type,"?",ht.createElement("div",{className:"Modal__content"},ht.createElement(Va,{onClick:()=>{n(t,s),e()}},"Delete")," ",ht.createElement(Va,{onClick:()=>{e()}},"Cancel")))}function SS(l){let{comment:t,deleteComment:n,thread:e,rtf:s}=l;const r=Math.round((t.timeStamp-performance.now())/1e3),o=Math.round(r/60),[a,c]=mS();return ht.createElement("li",{className:"CodoxCommentPlugin_CommentsPanel_List_Comment"},ht.createElement("div",{className:"CodoxCommentPlugin_CommentsPanel_List_Details"},ht.createElement("span",{className:"CodoxCommentPlugin_CommentsPanel_List_Comment_Author"},t.author),ht.createElement("span",{className:"CodoxCommentPlugin_CommentsPanel_List_Comment_Time"},"· ",r>-10?"Just now":s.format(o,"minute"))),ht.createElement("p",{className:t.deleted?"CodoxCommentPlugin_CommentsPanel_DeletedComment":""},t.content),!t.deleted&&ht.createElement(ht.Fragment,null,ht.createElement(Va,{onClick:()=>{c("Delete Comment",i=>ht.createElement(xS,{commentOrThread:t,deleteCommentOrThread:n,thread:e,onClose:i}))},className:"CodoxCommentPlugin_CommentsPanel_List_DeleteButton"},ht.createElement(yS,null)),a))}function i5(l){let{activeIDs:t,comments:n,deleteCommentOrThread:e,listRef:s,submitAddComment:r,markNodeMap:o,codoxComments:a}=l;const[c]=(0,Ja.useLexicalComposerContext)(),[i,u]=(0,ht.useState)(0),[d,f]=mS(),p=(0,ht.useMemo)(()=>new Intl.RelativeTimeFormat("en",{localeMatcher:"best fit",numeric:"auto",style:"short"}),[]);return(0,ht.useEffect)(()=>{const h=setTimeout(()=>{u(i+1)},1e4);return()=>{clearTimeout(h)}},[i]),ht.createElement("ul",{className:"CodoxCommentPlugin_CommentsPanel_List",ref:s},n.map(h=>{const m=h.codoxId;if(!m)return null;if(h.type==="thread"){const g=()=>{if(o.get(m)!==void 0&&(t===null||t.indexOf(m)===-1)){const v=document.activeElement;c.update(()=>{(0,Rt.$setSelection)(null)},{onUpdate(){v!==null&&v.focus()}})}};return ht.createElement("li",{key:m,onClick:g,className:`CodoxCommentPlugin_CommentsPanel_List_Thread ${o.has(m)?"interactive":""} ${t.indexOf(m)===-1?"":"active"}`},ht.createElement("div",{className:"CodoxCommentPlugin_CommentsPanel_List_Thread_QuoteBox"},ht.createElement("blockquote",{className:"CodoxCommentPlugin_CommentsPanel_List_Thread_Quote"},"> ",ht.createElement("span",null,h.quote)),ht.createElement(Va,{onClick:()=>{f("Delete Thread",v=>ht.createElement(xS,{commentOrThread:h,deleteCommentOrThread:e,onClose:v}))},className:"CodoxCommentPlugin_CommentsPanel_List_DeleteButton"},ht.createElement(yS,null)),d),ht.createElement("ul",{className:"CodoxCommentPlugin_CommentsPanel_List_Thread_Comments"},h.comments.map(v=>ht.createElement(SS,{key:v.codoxId,comment:v,deleteComment:e,thread:h,rtf:p}))),ht.createElement("div",{className:"CodoxCommentPlugin_CommentsPanel_List_Thread_Editor"},ht.createElement(o5,{submitAddComment:r,thread:h,placeholder:"Reply to comment...",codoxComments:a})))}return ht.createElement(SS,{key:m,comment:h,deleteComment:e,rtf:p})}))}function s5(l){let{activeIDs:t,deleteCommentOrThread:n,comments:e,submitAddComment:s,markNodeMap:r,codoxComments:o,style:a,closeComments:c}=l;const i=(0,ht.useRef)(null),u=e.length===0;return ht.createElement("div",Jy({className:"CodoxCommentPlugin_CommentsPanel"},a&&{style:a}),ht.createElement("h2",{className:"CodoxCommentPlugin_CommentsPanel_Heading"},"Comments",ht.createElement("div",{onClick:c,style:{display:"inline-block",position:"absolute",right:"5px",top:"5px",cursor:"pointer"}},ht.createElement(vS,null))),u?ht.createElement("div",{className:"CodoxCommentPlugin_CommentsPanel_Empty"},"No Comments"):ht.createElement(i5,{activeIDs:t,comments:e,deleteCommentOrThread:n,listRef:i,submitAddComment:s,markNodeMap:r,codoxComments:o}))}function ES(){const l=(0,uS.useCollaborationContext)(),{yjsDocMap:t,name:n}=l;return n||"user"}function a5(l){const[t]=(0,Ja.useLexicalComposerContext)(),n=(t&&t.getRootElement()&&t.getRootElement().getBoundingClientRect(),t.getKey()),e=mP(n),s=Un.getCodoxComments(n),r=(0,ht.useMemo)(()=>new Map,[]),[o,a]=(0,ht.useState)(),[c,i]=(0,ht.useState)([]),[u,d]=(0,ht.useState)(!1),[f,p]=(0,ht.useState)(!1);(0,ht.useEffect)(()=>{!e.length&&f?p(!1):e.length},[e]);const h=(0,ht.useCallback)(()=>{t.update(()=>{const v=(0,Rt.$getSelection)();v!==null&&(v.dirty=!0)}),d(!1)},[t]),m=(0,ht.useCallback)((v,b)=>{if(v.type==="comment"){if(pt.default.debug("[deleteCommentOrThread]: type comment new values",{comment:v,thread:b,markNodeMap:r}),s.removeComment(b.codoxId,v.codoxId),!b)return;const _=b.codoxId,E=r.get(_);t.update(()=>{E?E.forEach((S,w)=>{const y=(0,Rt.$getNodeByKey)(w);pt.default.debug("[deleteCommentOrThread]: type comment new values",{lexicalNode:y}),y&&y.markDirty()}):(0,Rt.$getRoot)().markDirty(),(0,Rt.$addUpdateTag)(ls.historic),(0,Rt.$addUpdateTag)(Md)})}else{pt.default.debug("[deleteCommentOrThread]: type thread new values",{comment:v,markNodeMap:r});const _=b!==void 0?b.codoxId:v.codoxId,E=r.get(_);setTimeout(()=>{t.update(()=>{if(E)for(const S of E){const w=(0,Rt.$getNodeByKey)(S);pt.default.debug("[deleteCommentOrThread]: type thread new values",{node:w}),(0,Bi.$isMarkNode)(w)&&(w.deleteID(_),w.getIDs().length===0&&(0,Bi.$unwrapMarkNode)(w))}else(0,Rt.$getRoot)().markDirty(),pt.default.debug("[deleteCommentOrThread][refreshComments]");s.refreshComments(!0),(0,Rt.$addUpdateTag)(Md)})})}},[t,r]),g=(0,ht.useCallback)((v,b,_,E)=>{if(pt.default.debug("[submitAddComment]: new values",{commentOrThread:v,isInlineComment:b,thread:_,markNodeMap:r}),_?s.addComment(_.codoxId,v):s.addCommentThread(v),b)t.update(()=>{if((0,Rt.$isRangeSelection)(E)){const S=E.isBackward(),w=v.codoxId;(0,Bi.$wrapSelectionInMarkNode)(E,S,w),(0,Rt.$addUpdateTag)(Md)}}),d(!1);else if(!b&&_){const S=_.codoxId,w=r.get(S);if(!w)return void s.removeComment(_.codoxId,v.codoxId);t.update(()=>{w.forEach((y,x)=>{let C=(0,Rt.$getNodeByKey)(x);C&&C.markDirty()}),(0,Rt.$addUpdateTag)(ls.historic),(0,Rt.$addUpdateTag)(Md)})}},[t]);return(0,ht.useEffect)(()=>{const v=[];for(let b=0;b<c.length;b++){const _=c[b],E=r.get(_);if(E!==void 0)for(const S of E){const w=t.getElementByKey(S);w!==null&&(w.classList.add("selected"),v.push(w),p(!0))}}return()=>{for(let b=0;b<v.length;b++)v[b].classList.remove("selected")}},[c,t,r]),(0,ht.useEffect)(()=>{const v=new Map;return(0,Hc.mergeRegister)((0,Hc.registerNestedElementResolver)(t,Bi.MarkNode,b=>(0,Bi.$createMarkNode)(b.getIDs()),(b,_)=>{b.getIDs().forEach(E=>{_.addID(E)})}),t.registerMutationListener(Bi.MarkNode,b=>{t.getEditorState().read(()=>{for(const[_,E]of b){const S=(0,Rt.$getNodeByKey)(_);let w=[];E==="destroyed"?w=v.get(_)||[]:(0,Bi.$isMarkNode)(S)&&(w=S.getIDs());for(let y=0;y<w.length;y++){const x=w[y];let C=r.get(x);v.set(_,w),E==="destroyed"?C!==void 0&&(C.delete(_),C.size===0&&r.delete(x)):(C===void 0&&(C=new Set,r.set(x,C)),C.has(_)||C.add(_))}}})}),t.registerUpdateListener(b=>{let{editorState:_,tags:E}=b;_.read(()=>{const S=(0,Rt.$getSelection)();let w=!1,y=!1;if((0,Rt.$isRangeSelection)(S)){const x=S.anchor.getNode();if((0,Rt.$isTextNode)(x)){const C=(0,Bi.$getMarkIDs)(x,S.anchor.offset);C!==null&&(i(C),w=!0),S.isCollapsed()||(a(x.getKey()),y=!0)}}w||i(x=>x.length===0?x:[]),y||a(null),(0,Rt.$isRangeSelection)(S)&&d(!1)})}),t.registerCommand(Dy,()=>{const b=window.getSelection();return b!==null&&b.removeAllRanges(),d(!0),!0},Rt.COMMAND_PRIORITY_EDITOR))},[t,r]),ht.createElement(ht.Fragment,null,u&&(0,Gc.createPortal)(ht.createElement(r5,{editor:t,cancelAddComment:h,submitAddComment:g,codoxComments:s}),document.body),o!=null&&!u&&(0,Gc.createPortal)(ht.createElement(e5,{anchorKey:o,editor:t,onAddComment:()=>{t.dispatchCommand(Dy,void 0)}}),document.body),(0,Gc.createPortal)(ht.createElement(Va,{className:"CodoxCommentPlugin_ShowCommentsButton "+(f?"active":""),onClick:()=>p(!f),title:f?"Hide Comments":"Show Comments"},ht.createElement(vS,null)),document.body),f&&(0,Gc.createPortal)(ht.createElement(s5,{comments:e,submitAddComment:g,deleteCommentOrThread:m,activeIDs:c,markNodeMap:r,codoxComments:s,closeComments:()=>p(!1)}),document.body))}var gh=An(766),eu={};eu.styleTagTransform=ea(),eu.setAttributes=Qs(),eu.insert=Zs().bind(null,"head"),eu.domAPI=Ys(),eu.insertStyleElement=Xs(),$s()(gh.A,eu),gh.A&&gh.A.locals&&gh.A.locals;var mh=An(225),tu={};tu.styleTagTransform=ea(),tu.setAttributes=Qs(),tu.insert=Zs().bind(null,"head"),tu.domAPI=Ys(),tu.insertStyleElement=Xs(),$s()(mh.A,tu),mh.A&&mh.A.locals&&mh.A.locals;function l5(l){let{label:t,value:n,onChange:e,placeholder:s="","data-test-id":r,type:o="text"}=l;return ht.createElement("div",{className:"CodoxInput__wrapper"},ht.createElement("label",{className:"CodoxInput__label"},t),ht.createElement("input",{type:o,className:"CodoxInput__input",placeholder:s,value:n,onChange:a=>{e(a.target.value)},"data-test-id":r}))}function CS(l,t){var n=Object.keys(l);if(Object.getOwnPropertySymbols){var e=Object.getOwnPropertySymbols(l);t&&(e=e.filter(function(s){return Object.getOwnPropertyDescriptor(l,s).enumerable})),n.push.apply(n,e)}return n}function yh(l){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?CS(Object(n),!0).forEach(function(e){c5(l,e,n[e])}):Object.getOwnPropertyDescriptors?Object.defineProperties(l,Object.getOwnPropertyDescriptors(n)):CS(Object(n)).forEach(function(e){Object.defineProperty(l,e,Object.getOwnPropertyDescriptor(n,e))})}return l}function c5(l,t,n){return(t=u5(t))in l?Object.defineProperty(l,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):l[t]=n,l}function u5(l){var t=d5(l,"string");return typeof t=="symbol"?t:t+""}function d5(l,t){if(typeof l!="object"||!l)return l;var n=l[Symbol.toPrimitive];if(n!==void 0){var e=n.call(l,t||"default");if(typeof e!="object")return e;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(l)}let Hd=!1;const f5=["#d0021b","#f5a623","#f8e71c","#8b572a","#7ed321","#417505","#bd10e0","#9013fe","#4a90e2","#50e3c2","#b8e986","#000000","#4a4a4a","#9b9b9b","#ffffff"];function p5(l){let{color:t,onChange:n}=l;const[e,s]=(0,ht.useState)(nu("hex",t)),[r,o]=(0,ht.useState)(t),a=(0,ht.useRef)(null),c=(0,ht.useMemo)(()=>({x:e.hsv.s/100*214,y:(100-e.hsv.v)/100*150}),[e.hsv.s,e.hsv.v]),i=(0,ht.useMemo)(()=>({x:e.hsv.h/360*214}),[e.hsv]);return(0,ht.useEffect)(()=>{a.current!==null&&n&&o(e.hex)},[e,n]),(0,ht.useEffect)(()=>{if(t===void 0)return;const u=nu("hex",t);s(u),o(u.hex)},[t]),ht.createElement("div",{className:"codox-color-picker-wrapper",style:{width:214},ref:a},ht.createElement(l5,{label:"Hex",onChange:u=>{if(o(u),/^#[0-9A-Fa-f]{6}$/i.test(u)){const d=nu("hex",u);s(d)}},value:r}),ht.createElement("div",{className:"codox-color-picker-basic-color"},f5.map(u=>ht.createElement("button",{className:u===e.hex?" active":"",key:u,style:{backgroundColor:u},onClick:()=>(d=>{o(d);let f=nu("hex",d);s(f),n(f.hex,Hd)})(u)}))),ht.createElement(jS,{className:"codox-color-picker-saturation",style:{backgroundColor:`hsl(${e.hsv.h}, 100%, 50%)`},onChange:u=>{let{x:d,y:f}=u;const p=nu("hsv",yh(yh({},e.hsv),{},{s:d/214*100,v:100-f/150*100}));s(p),o(p.hex),n(p.hex,Hd)}},ht.createElement("div",{className:"codox-color-picker-saturation_cursor",style:{backgroundColor:e.hex,left:c.x,top:c.y}})),ht.createElement(jS,{className:"codox-color-picker-hue",onChange:u=>{let{x:d}=u;const f=nu("hsv",yh(yh({},e.hsv),{},{h:d/214*360}));s(f),o(f.hex),n(f.hex,Hd)}},ht.createElement("div",{className:"codox-color-picker-hue_cursor",style:{backgroundColor:`hsl(${e.hsv.h}, 100%, 50%)`,left:i.x}})),ht.createElement("div",{className:"codox-color-picker-color",style:{backgroundColor:e.hex}}))}function jS(l){let{className:t,style:n,onChange:e,children:s}=l;const r=(0,ht.useRef)(null),o=(0,ht.useRef)(!1),a=c=>{if(r.current){const{current:i}=r,{width:u,height:d,left:f,top:p}=i.getBoundingClientRect(),h=kS(c.clientX-f,u,0),m=kS(c.clientY-p,d,0);e({x:h,y:m})}};return ht.createElement("div",{ref:r,className:t,style:n,onMouseDown:c=>{if(c.button!==0)return;a(c);const i=d=>{o.current=!0,Hd=!0,a(d)},u=d=>{o.current&&(Hd=!1),document.removeEventListener("mousemove",i,!1),document.removeEventListener("mouseup",u,!1),a(d),o.current=!1};document.addEventListener("mousemove",i,!1),document.addEventListener("mouseup",u,!1)}},s)}function kS(l,t,n){return l>t?t:l<n?n:l}function TS(l){if(!l.startsWith("#")){const t=document.createElement("canvas").getContext("2d");if(!t)throw new Error("2d context not supported or canvas already initialized");return t.fillStyle=l,t.fillStyle}return l.length===4||l.length===5?l=l.split("").map((t,n)=>n?t+t:"#").join(""):l.length===7||l.length===9?l:"#000000"}function AS(l){const t=(l.replace(/^#?([a-f\d])([a-f\d])([a-f\d])$/i,(n,e,s,r)=>"#"+e+e+s+s+r+r).substring(1).match(/.{2}/g)||[]).map(n=>parseInt(n,16));return{b:t[2],g:t[1],r:t[0]}}function Vy(l){let{r:t,g:n,b:e}=l;t/=255,n/=255,e/=255;const s=Math.max(t,n,e),r=s-Math.min(t,n,e);return{h:r?60*(s===t?(n-e)/r+(n<e?6:0):s===n?2+(e-t)/r:4+(t-n)/r):0,s:s?r/s*100:0,v:100*s}}function h5(l){let{h:t,s:n,v:e}=l;n/=100,e/=100;const s=~~(t/60),r=t/60-s,o=e*(1-n),a=e*(1-n*r),c=e*(1-n*(1-r)),i=s%6,u=Math.round(255*[e,a,o,o,c,e][i]),d=Math.round(255*[c,e,e,a,o,o][i]);return{b:Math.round(255*[o,o,c,e,e,a][i]),g:d,r:u}}function OS(l){let{b:t,g:n,r:e}=l;return"#"+[e,n,t].map(s=>s.toString(16).padStart(2,"0")).join("")}function nu(l,t){let n=TS("#121212"),e=AS(n),s=Vy(e);return l==="hex"?(n=TS(t),e=AS(n),s=Vy(e)):l==="rgb"?(e=t,n=OS(e),s=Vy(e)):l==="hsv"&&(s=t,e=h5(s),n=OS(e)),{hex:n,hsv:s,rgb:e}}const g5=ht.createContext(null);function m5(l){let{children:t,dropDownRef:n,onClose:e,dropdownClassName:s}=l;const[r,o]=(0,ht.useState)(),[a,c]=(0,ht.useState)(),i=(0,ht.useCallback)(d=>{o(f=>f?[...f,d]:[d])},[o]),u=(0,ht.useMemo)(()=>({registerItem:i}),[i]);return(0,ht.useEffect)(()=>{r&&!a&&c(r[0]),a&&a.current&&a.current.focus()},[r,a]),ht.createElement(g5.Provider,{value:u},ht.createElement("div",{className:s,ref:n,onKeyDown:d=>{if(!r)return;const f=d.key;["Escape","ArrowUp","ArrowDown","Tab"].includes(f)&&d.preventDefault(),f==="Escape"||f==="Tab"?e():f==="ArrowUp"?c(p=>{if(!p)return r[0];const h=r.indexOf(p)-1;return r[h===-1?r.length-1:h]}):f==="ArrowDown"&&c(p=>p?r[r.indexOf(p)+1]:r[0])}},t))}function y5(l){let{disabled:t=!1,buttonLabel:n,buttonAriaLabel:e,buttonClassName:s,buttonIconClassName:r,children:o,stopCloseOnClickSelf:a,dropdownClassName:c,buttonLabelClassName:i,dropdownChevronClassName:u}=l;const d=(0,ht.useRef)(null),f=(0,ht.useRef)(null),[p,h]=(0,ht.useState)(!1);return(0,ht.useEffect)(()=>{const m=f.current,g=d.current;if(p&&m!==null&&g!==null){const{top:v,left:b}=m.getBoundingClientRect();g.style.top=`${v+m.offsetHeight+4}px`,g.style.left=`${Math.min(b,window.innerWidth-g.offsetWidth-20)}px`}},[d,f,p]),(0,ht.useEffect)(()=>{const m=f.current;if(m!==null&&p){const g=v=>{const b=v.target;a&&d.current&&d.current.contains(b)||m.contains(b)||h(!1)};return document.addEventListener("click",g),()=>{document.removeEventListener("click",g)}}},[d,f,p,a]),(0,ht.useEffect)(()=>{const m=()=>{if(p){const g=f.current,v=d.current;if(g!==null&&v!==null){const{top:b}=g.getBoundingClientRect(),_=b+g.offsetHeight+4;_!==v.getBoundingClientRect().top&&(v.style.top=`${_}px`)}}};return document.addEventListener("scroll",m),()=>{document.removeEventListener("scroll",m)}},[f,d,p]),ht.createElement(ht.Fragment,null,ht.createElement("button",{type:"button",disabled:t,"aria-label":e||n,className:s,onClick:()=>h(!p),ref:f},r&&ht.createElement("span",{className:r}),n&&ht.createElement("span",{className:i},n),ht.createElement("i",{className:u})),p&&(0,Gc.createPortal)(ht.createElement(m5,{dropDownRef:d,onClose:()=>{h(!1),f&&f.current&&f.current.focus()},dropdownClassName:c},o),document.body))}const v5=["disabled","stopCloseOnClickSelf","color","onChange"];function Ky(){return Ky=Object.assign?Object.assign.bind():function(l){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var e in n)({}).hasOwnProperty.call(n,e)&&(l[e]=n[e])}return l},Ky.apply(null,arguments)}function b5(l,t){if(l==null)return{};var n,e,s=_5(l,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(l);for(e=0;e<r.length;e++)n=r[e],t.includes(n)||{}.propertyIsEnumerable.call(l,n)&&(s[n]=l[n])}return s}function _5(l,t){if(l==null)return{};var n={};for(var e in l)if({}.hasOwnProperty.call(l,e)){if(t.includes(e))continue;n[e]=l[e]}return n}function NS(l){let{disabled:t=!1,stopCloseOnClickSelf:n=!0,color:e,onChange:s}=l,r=b5(l,v5);return ht.createElement(y5,Ky({},r,{disabled:t,stopCloseOnClickSelf:n}),ht.createElement(p5,{color:e,onChange:s}))}const w5=l=>{let{onColorChange:t,buttonClassName:n,buttonIconClassName:e,buttonAriaLabel:s,buttonLabel:r,dropdownClassName:o,buttonLabelClassName:a,dropdownChevronClassName:c}=l;const[i]=(0,Ja.useLexicalComposerContext)(),[u,d]=(0,ht.useState)(()=>i.isEditable()),[f,p]=(0,ht.useState)("");(0,ht.useEffect)(()=>(0,Hc.mergeRegister)(i.registerEditableListener(m=>{d(m)}),i.registerUpdateListener(m=>{let{editorState:g}=m;g.read(()=>{const v=(0,Rt.$getSelection)();if((0,Rt.$isRangeSelection)(v)){let b=(0,Bl.$getSelectionStyleValueForProperty)(v,"color");b!==f&&(p(b||""),t(b))}})})),[i]);const h=(0,ht.useCallback)((m,g)=>{i.update(()=>{const v=(0,Rt.$getSelection)();v!==null&&(0,Bl.$patchStyleText)(v,{color:m})})},[i]);return ht.createElement(NS,{disabled:!u,color:f,onChange:h,buttonClassName:n||"",buttonIconClassName:e||"",buttonAriaLabel:s||"",buttonLabel:r||"",dropdownClassName:o||"",buttonLabelClassName:a||"",dropdownChevronClassName:c||""})},x5=w5,S5=l=>{let{onColorChange:t,buttonClassName:n,buttonIconClassName:e,buttonAriaLabel:s,buttonLabel:r,dropdownClassName:o,buttonLabelClassName:a,dropdownChevronClassName:c}=l;const[i]=(0,Ja.useLexicalComposerContext)(),[u,d]=(0,ht.useState)(()=>i.isEditable()),[f,p]=(0,ht.useState)("#fff");(0,ht.useEffect)(()=>(0,Hc.mergeRegister)(i.registerEditableListener(m=>{d(m)}),i.registerUpdateListener(m=>{let{editorState:g}=m;g.read(()=>{const v=(0,Rt.$getSelection)();if((0,Rt.$isRangeSelection)(v)){let b=(0,Bl.$getSelectionStyleValueForProperty)(v,"background-color");b!==f&&(p(b||""),t(b))}})})),[i]);const h=(0,ht.useCallback)((m,g)=>{i.update(()=>{const v=(0,Rt.$getSelection)();v!==null&&(0,Bl.$patchStyleText)(v,{"background-color":m})})},[i]);return ht.createElement(NS,{disabled:!u,color:f,onChange:h,buttonClassName:n||"",buttonIconClassName:e||"",buttonAriaLabel:s||"",buttonLabel:r||"",dropdownClassName:o||"",buttonLabelClassName:a||"",dropdownChevronClassName:c||""})},E5=S5;var PS=za.yy;za._U,za.a8,za.Vs,za.Cn;var IS=za.gK,MS=za.vv;const FD="",RS=({styleConfig:l})=>{const{heading:t}=l;return t.find(n=>n.title==="Heading1"),t.find(n=>n.title==="Heading2"),t.find(n=>n.title==="Heading3"),t.find(n=>n.title==="Heading4"),t.find(n=>n.title==="Heading5"),ae.jsx(Ay,{children:ae.jsx("style",{type:"text/css",children:`
|
|
1484
|
+
Tested fromCodoxNode() output: ${JSON.stringify(c)}`)},{discrete:!0}),e)return e}},t6=function(){return XI(arguments.length>0&&arguments[0]!==void 0?arguments[0]:[]).map(l=>{let t,n=typeof l=="object"&&l.replace&&l.with;if(t=n?l.replace:l,t.hasOwnProperty("__isCodoxExtended"))return n?l:t;let e=e6(t);if(e)throw new Error(`[registerNodesWithCodox] ${e}`);return KI(t),GI(t),YI(t),$I(t),ZI(t),QI(t),Object.defineProperty(t,"__isCodoxExtended",{value:!0,writable:!1}),n?(l.replace=t,l):t})};function sS(l,t){var n=Object.keys(l);if(Object.getOwnPropertySymbols){var e=Object.getOwnPropertySymbols(l);t&&(e=e.filter(function(s){return Object.getOwnPropertyDescriptor(l,s).enumerable})),n.push.apply(n,e)}return n}function n6(l){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?sS(Object(n),!0).forEach(function(e){r6(l,e,n[e])}):Object.getOwnPropertyDescriptors?Object.defineProperties(l,Object.getOwnPropertyDescriptors(n)):sS(Object(n)).forEach(function(e){Object.defineProperty(l,e,Object.getOwnPropertyDescriptor(n,e))})}return l}function r6(l,t,n){return(t=o6(t))in l?Object.defineProperty(l,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):l[t]=n,l}function o6(l){var t=i6(l,"string");return typeof t=="symbol"?t:t+""}function i6(l,t){if(typeof l!="object"||!l)return l;var n=l[Symbol.toPrimitive];if(n!==void 0){var e=n.call(l,t||"default");if(typeof e!="object")return e;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(l)}function s6(){let{node:l,codoxId:t=null,codoxDId:n=null}=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};if(!l)return null;const e=[l];for(;e.length;){const s=e.pop();if(t&&s.codoxId&&s.codoxId===t||n&&s.codoxDId&&s.codoxDId===n)return s;Array.isArray(s.children)&&e.push(...s.children)}return null}function ah(l){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null,n=arguments.length>2?arguments[2]:void 0;l=Un.getNodesConversionsManager(n.getKey()).convertJsonNodeFromSync(l,n);let e=n._nodes;const{klass:s}=e.get(l.type)||{};if(!s)return;const r=s.importJSON(l);if(l.children&&l.children.length)for(const o of l.children)ah(o,r,n);return t&&t.getChildrenSize&&t.splice(t.getChildrenSize(),0,[r]),r}function lh(l){if(l.getChildren)for(let t of l.getChildren())lh(t);l.remove()}function aS(l){l.__parent=null,l.__next=null,l.__prev=null}function lS(l,t){return!!nh(l)&&!(typeof t!="object"||!t.editorState||(l.update(()=>{try{let n=(0,Rt.$getSelection)();const e=l.parseEditorState(t.editorState);if(e.isEmpty())return(0,Rt.$getRoot)().clear(),!0;(0,Rt.$setSelection)(n),l.setEditorState(e)}catch(n){pt.default.error("[stateUpdates][updateNestedEditorState] update nested state and selection error: ",n)}}),0))}function a6(l,t){let n=t;for(const e of l)n=n[e];return n}function ta(){let{pathArray:l,newStateJSON:t=null,searchInNewState:n=!1,editor:e=null,codoxNodesMap:s,currentStateJSON:r}=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};if(n&&!t)return pt.default.debug("[getLexicalNodeByPathOutOfJSONState]: new state is not providerd for search - stop",{pathArray:l,newStateJSON:t,searchInNewState:n}),null;let o=null,a=null;if(a=n?t:r||(e?Fl(e.getEditorState()):null),!a)return null;let c=null;try{c=a6(l,a)}catch{}return c&&(o=zl(c)?(0,Rt.$getRoot)():s.get(c.codoxId)),o||(n?o:ta({pathArray:l,newStateJSON:t,searchInNewState:!0,editor:e,codoxNodesMap:s,currentStateJSON:r}))}function cS(l,t){pt.default.debug("[applyFullLexicalStateReplace] clear current state and apply new");const n=(0,Rt.$getRoot)();n.clear();let e=t._nodes,s=Un.getNodesConversionsManager(t.getKey());function r(o){o=s.convertJsonNodeFromSync(o,t);const a=e.get(o.type).klass.importJSON(o);if(o.children)for(const c of o.children)a.append(r(c));return a}for(const o of l.root.children)n.append(r(o))}function l6(){let{newStateJSON:l=null,deltas:t=[],belongsToNestedEditor:n=!1,editor:e,currentStateJSON:s}=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};if(!t.length)return void pt.default.debug("[applyDeltasToLexicalState] stop, no deltas: ",t);let r=Un.getCodoxNodesMap(e.getKey());for(const o of t){let{p:a}=o;const c=[...a],i=c[c.length-1],u=i==="children",d=typeof i=="number",f=!d&&!u,p=c.findIndex(_=>_===Ll.editorState),h=p!==-1,m=!c.length;let g=o.hasOwnProperty("lm"),v=typeof o.lm=="number"||Array.isArray(o.lm),b=g&&v;if(m){if(n){pt.default.warn("Nested editor delta is invalid: ",{delta:o});continue}if(o.oi&&o.oi.root)return cS(o.oi,e)}else if(h){let _=p-1,E=ta({pathArray:c.slice(0,_),newStateJSON:l,editor:e,codoxNodesMap:r,currentStateJSON:s});if(E){let S=c[_],w=Id(S),y=E.getWritable()[w],x=c.slice(0,p),C=l;for(const T of x)C=C[T];if(!C){const T=s6({node:l.root,codoxDId:E.codoxDId||null,codoxId:E.codoxId||null});T&&(C=T[S])}lS(y,C)}}else if(u){let _=o.oi;if(!_){pt.default.warn("[applyDeltasToLexicalState][====WARNING====] SKIPPED. Delta oi attr expected for path",{delta:o});continue}if(_.some(S=>!(!S.hasOwnProperty("text")||typeof S.text=="string"))){pt.default.warn("[applyDeltasToLexicalState][====WARNING====] SKIPPED. Delta oi children contain invalid text value",{delta:o});continue}c.length=c.length-1;let E=ta({pathArray:c,newStateJSON:l,editor:e,codoxNodesMap:r,currentStateJSON:s});if(!E){pt.default.warn("[applyDeltasToLexicalState][====WARNING====] SKIPPED. lexicalParentNode is not found",{delta:o});continue}if(!E.getChildren){pt.default.warn("[applyDeltasToLexicalState][====WARNING====] SKIPPED. lexicalParentNode is not valid parrent node",{delta:o,lexicalParentNode:E});continue}if(_.some(S=>!!S.codoxDId)){try{E=E.getWritable()}catch(x){pt.default.warn("[applyDeltasToLexicalState][shouldUpdateLeaves] getWritable error: ",{err:x,delta:o,newStateJSON:l});continue}let S={};for(let x of E.getChildren())x.codoxDId?S[x.codoxDId]=x:lh(x);let w=[],y=["codoxDId","codoxId","__key","__parent","__prev","__next"];for(let x=0;x<_.length;x++){let C=_[x],T=x===0,R=x===_.length-1,F=null,I=x>=0?w[x-1]:null;if(C.codoxDId){let B=S[C.codoxDId];if(B){B=B.getWritable();let A=ah(C,null,e);if(pt.default.debug("[DELTA_DECORATOR_UPDATE]: ",{exisingDecorator:B,tmpDecorator:A}),!A){pt.default.debug("[DELTA_DECORATOR_UPDATE] UPADATE SKIPPED: ",{exisingDecorator:B,tmpDecorator:A});continue}for(let j in A)if(A.hasOwnProperty(j)&&!y.includes(j))if(nh(A[j])){let O={editorState:Fl(A[j].getEditorState())};lS(B[j],O)}else{let O=Iy(j),L=C[O];if(L===B[j]||!C.hasOwnProperty(O))continue;let N=L!==void 0&&A[j]!==L?L:A[j];O!=="height"&&O!=="width"||A[j]==="inherit"&&L===0&&(N=A[j]),B[j]=N}A.remove(),aS(B),F=B,delete S[C.codoxDId]}}F||(F=ah(C,null,e),F.codoxDId&&F.__type==="excalidraw"&&F.__data==="[]"&&(F.__data="{}")),F=F.getWritable(),w.push(F),F.__parent=E.__key,T?(E.__first=F.__key,F.__prev=null,R&&(E.__last=F.__key)):R?(E.__last=F.__key,F.__next=null,F.__prev=I.__key,I.__next=F.__key):(F.__prev=I.__key,I.__next=F.__key),E.__size=w.length}for(let x in S){let C=S[x];C=C.getWritable(),aS(C),lh(C),delete S[x]}}else{let S=E.getChildren();for(let w of S)w.remove();for(const w of _){const y=ah(w,null,e);E.append(y)}}}else if(d){let _=!!o.ld&&!!o.li;if(pt.default.debug("[stateUpdates][applyDeltasToLexicalState] shouldUpdateFullBlock: ",{shouldReplace:_,delta:o}),o.ld&&!_){const E=o.ld,S=r.get(E.codoxId);if(pt.default.debug("[stateUpdates][applyDeltasToLexicalState] remove node: ",{lexicalNodeToRemove:S}),!S){pt.default.warn("[stateUpdates][applyDeltasToLexicalState] Missing lexical node when remove node from delta: ",{path:c,delta:o,newStateJSON:l,currentStateJSON:s,stateJSONFromEditor:e.getEditorState().toJSON(),codoxNodesMap:r});continue}S.getChildrenSize&&S.getChildrenSize()?(pt.default.debug("[stateUpdates][applyDeltasToLexicalState] delta.ld remove node with children",{lexicalNodeToRemove:S}),lh(S)):S.remove()}if(o.li){let E=e._nodes,S=Un.getNodesConversionsManager(e.getKey()),w=o.li;w=S.convertJsonNodeFromSync(w,e);const y=E.get(w.type).klass.importJSON(w);if(c.length===1&&c[0]==="root")(0,Rt.$getRoot)().splice(0,0,[y]);else{const x=c[c.length-1];c.length=c.length-2;let C=ta({pathArray:c,newStateJSON:l,editor:e,codoxNodesMap:r,currentStateJSON:s});C&&(C.splice(x,0,[y]),_&&C.splice(x+1,1,[]))}if(w.children&&w.children.length){let C=function(T,R){T=x.convertJsonNodeFromSync(T,e);const F=E.get(T.type).klass.importJSON(T);if(R.splice(R.getChildrenSize(),0,[F]),T.children&&T.children.length)for(const I of T.children)C(I,F)},x=Un.getNodesConversionsManager(e.getKey());for(const T of w.children)C(T,y)}pt.default.debug("[stateUpdates][applyDeltasToLexicalState] insert node: ",{delta:o,lexicalNode:y})}if(o.oi||o.od){let{p:E,oi:S,od:w}=o,y=ta({pathArray:E,newStateJSON:l,editor:e,codoxNodesMap:r,currentStateJSON:s});if(y)try{let x=y.getWritable();if(S){let C=Object.keys(S);for(let T of C)x[Id(T)]=S[T]}if(w){let C=Object.keys(w);for(let T of C)delete x[Id(T)]}}catch(x){pt.default.debug("[applyDeltasToLexicalState][delta oi/od] getWritable error: ",{err:x,delta:o})}}if(b){let{p:E,lm:S}=o;if(typeof S=="number"){let w=E[E.length-1],y=S,x=y<w,C=ta({pathArray:E,newStateJSON:l,editor:e,codoxNodesMap:r,currentStateJSON:s});if(!C){pt.default.warn("[applyDeltasToLexicalState] LM: Lexical node to move not found by delta path: ",{delta:o});continue}let T=C.getParent().getChildren(),R=T[w],F=T[y];x?F.insertBefore(R):F.insertAfter(R)}else if(Array.isArray(S)){let w=ta({pathArray:E,newStateJSON:l,editor:e,codoxNodesMap:r,currentStateJSON:s});if(!w){pt.default.warn("[applyDeltasToLexicalState] LM: Lexical node to move not found by delta path: ",{delta:o,path:E});continue}let y=S[S.length-1],x=[...S];if(E.length===3){let F=E[2],I=x[2];F!==I&&I>F&&(pt.default.warn("[applyDeltasToLexicalState] LM: MOVE PATH UPDATE ",{path:E,movePathArrayBefore:[...x],movePathArray:x}),x[2]+=1)}x.length=x.length-2;let C=ta({pathArray:x,newStateJSON:l,editor:e,codoxNodesMap:r,currentStateJSON:s});if(!C){pt.default.warn("[applyDeltasToLexicalState] LM: Lexical parent node for move into, is not found by delta path: ",{delta:o});continue}let T=C.getChildren(),R=!T.length;if(pt.default.warn("[applyDeltasToLexicalState] LM:: ",{delta:o,targetLexicalNode:w,insertParentLexicalNode:C,insertChildren:T,shouldAppendToParent:R,insertChildPosition:y,movePathArray:x}),R)C.append(w);else{let F=T[y];F?F.insertBefore(w):pt.default.warn("[applyDeltasToLexicalState] LM: childNodeToInsertBefore is missing")}}}}else if(f){const _=c[c.length-1];let E=Id(_);c.length=c.length-1;let S,w=ta({pathArray:c,newStateJSON:l,editor:e,codoxNodesMap:r,currentStateJSON:s});if(!w){pt.default.warn("[stateUpdates][applyDeltasToLexicalState] Missing lexical node when update node attr from delta: ",{path:c,delta:o,newStateJSON:l,currentStateJSON:s});continue}try{S=w.getWritable()}catch(x){pt.default.debug("[applyDeltasToLexicalState][shouldUpdateBlockAttr] getWritable error: ",{err:x,delta:o})}if(!S)continue;let y=o.oi;if(_==="format"&&(y=XN(y)),_==="direction"&&(E="__dir"),!S.hasOwnProperty(E)){let x=Object.keys(S);for(let C of x){let T=Iy(C);if(_.startsWith(T)){E=C;break}}}S[E]=y,pt.default.debug("[STATE_UPDATES_DELTAS][update node attribute]: ",{lexicalAttrName:E,jsonedAttrName:_,attrNewValue:y,writableNode:S,delta:o})}}}const c6=function(){let l=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[];const t=[];l.forEach((s,r)=>{const o=r===0,a=r===l.length-1;o&&t.push([]),t[t.length-1].push(s),(c=>c.hasOwnProperty("lm")||c.hasOwnProperty("li")||c.hasOwnProperty("ld"))(s)&&!a&&t.push([])});const n=t.length===1,e={segmentedDeltas:t,isSingleSegment:n};return pt.default.debug("[segmentDeltas]: ",n6({fullDeltas:l},e)),e},u6=l=>{l.update(()=>{(0,Rt.$getRoot)().append($createParagraphNode())})},d6={applyDeltasToLexicalState:l6,applyFullLexicalStateReplace:cS,segmentDeltas:c6,fixStateEmptyRoot:u6},Ud=d6;function f6(l){let t=Un.getCodoxNodesMap(l);return n=>{let e=null,s=!1;try{e=n.clipboardData.getData(eP.paste),pt.default.debug("[pasteContentListener] triggered",{payload:n,lexicalPayload:e}),e=JSON.parse(e),typeof e=="object"&&e.nodes&&Array.isArray(e.nodes)&&(s=!0)}catch{return!1}if(!s)return!1;if(s){t.clearPastedIds();const r=o=>{if(o.codoxId&&t.addPastedId(o.codoxId),o.children&&o.children.length)for(const a of o.children)r(a)};for(const o of e.nodes)r(o)}return!1}}function p6(l){let t=[],n=l._nodes,e=l.getKey(),s=Un.getTablesValidator(e),r=Un.getContentNestingsWatcher(e),o=Un.getCodoxNodesMap(e),a=Un.getCodoxComments(e);return n.forEach((c,i,u)=>{let{klass:d}=c,f=l.registerMutationListener(d,p=>{for(let[h,m]of p){if(!Ei[m])continue;const g=l.getEditorState()._nodeMap.get(h);if(m===Ei.created&&g&&r.trackBlacklisted(g,m,l.getEditorState()),d.name===kr.TableNode.name&&(m===Ei.destroyed?s.tableNodeRemoveListener(h):s.tableUpdateListener(h)),d.name===kr.TableRowNode.name&&m!==Ei.destroyed&&s.tableRowNodeChangesListener(h,m===Ei.updated,l),d.name===kr.TableCellNode.name&&m===Ei.updated&&s.tableCellNodeChangesListener(h,l),d.name===Bi.MarkNode.name&&(pt.default.debug("[MUTATION LISTENER] MARK node: ",{nodeKey:h,node:g,mutationType:m,codoxComments:a}),m===Ei.destroyed?a.removeRelatedNodeKey(h):g&&a.addRelatedNodeKey(g.__key,g.__ids,m===Ei.created)),g&&g.codoxId){if(m===Ei.destroyed)return void(g.codoxId&&o.remove(g.codoxId));oS(g,e)||pt.default.warn("[MutationListener Warning] duplicating codoxId detected - such codoxId already exists in codoxNodesMap - updating node ref to latest: ",{mutationType:m,node:g}),o.add(g.codoxId,g,`${d.name}_mutation_listener`)}}});t.push(f)}),t}function h6(l){let t=[];return l._nodes.forEach((n,e,s)=>{let{klass:r}=n,o=r;for(;o;){if(o===Rt.ElementNode){let a=l.registerNodeTransform(r,c=>{try{c.getDirection()==="rtl"&&c.setDirection("ltr")}catch{pt.default.warn(`[registerNodesTransforms][${r.name}]: element node no getDirection`,{node:c})}});t.push(a);break}o=Object.getPrototypeOf(o)}}),t}var g6=l=>{var t={};return An.d(t,l),t};const uS=g6({useCollaborationContext:()=>Pd});var m6=l=>{var t={};return An.d(t,l),t};const Ja=m6({LexicalComposerContext:()=>Uu,useLexicalComposerContext:()=>yn}),y6=["contentChanged"],v6=["state","remoteSelection"];function dS(l,t){var n=Object.keys(l);if(Object.getOwnPropertySymbols){var e=Object.getOwnPropertySymbols(l);t&&(e=e.filter(function(s){return Object.getOwnPropertyDescriptor(l,s).enumerable})),n.push.apply(n,e)}return n}function qy(l){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?dS(Object(n),!0).forEach(function(e){b6(l,e,n[e])}):Object.getOwnPropertyDescriptors?Object.defineProperties(l,Object.getOwnPropertyDescriptors(n)):dS(Object(n)).forEach(function(e){Object.defineProperty(l,e,Object.getOwnPropertyDescriptor(n,e))})}return l}function b6(l,t,n){return(t=_6(t))in l?Object.defineProperty(l,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):l[t]=n,l}function _6(l){var t=w6(l,"string");return typeof t=="symbol"?t:t+""}function w6(l,t){if(typeof l!="object"||!l)return l;var n=l[Symbol.toPrimitive];if(n!==void 0){var e=n.call(l,t||"default");if(typeof e!="object")return e;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(l)}function fS(l,t){if(l==null)return{};var n,e,s=x6(l,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(l);for(e=0;e<r.length;e++)n=r[e],t.includes(n)||{}.propertyIsEnumerable.call(l,n)&&(s[n]=l[n])}return s}function x6(l,t){if(l==null)return{};var n={};for(var e in l)if({}.hasOwnProperty.call(l,e)){if(t.includes(e))continue;n[e]=l[e]}return n}pt.default.logProviderVersion(),pt.default.debug("DEV MODE: ",!1);const S6=(0,ht.forwardRef)((l,t)=>{let{onBlacklistedInsert:n,debug:e=!1}=l;if(!(0,ht.useContext)(Ja.LexicalComposerContext))throw new Error("[CodoxCollabPlugin] CodoxCollabPlugin must be inited inside <LexicalComposer> component - LexicalComposerContext is missing");const[s]=(0,Ja.useLexicalComposerContext)();let r=s.getKey();const o=(0,uS.useCollaborationContext)();let a=Un.getCodoxImpl(r),c=Un.getCodoxRemoteSelection(r),i=Un.getTablesValidator(r),u=Un.getNestedEditorsProcessor(r),d=Un.getContentNestingsWatcher(r),f=Un.getCodoxLexicalEditorManager(r),p=Un.getCodoxNodesMap(r),h=Un.getCodoxComments(r),m=Un.getNodesConversionsManager(r),g=!1;const v=function(){return f.isCodoxStarted},b=(j,O)=>{pt.default.debug("[notifyClientForContentChanged] trigger client hook and emit event");let L=j,N=h.getAllComments();N.length&&(L.commentThreads=N);let U={source:O,content:L},D=Un.getContentChangedHookClientCallback(r);D&&D(U),a.instance&&a.instance.emit("content_changed",U)};(0,ht.useEffect)(()=>{if(!s)return;f.setMainEditor(s);const j=(0,Hc.mergeRegister)(s.registerUpdateListener(B),s.registerCommand(Rt.PASTE_COMMAND,f6(s.getKey()),Rt.COMMAND_PRIORITY_CRITICAL),s.registerCommand(Rt.UNDO_COMMAND,()=>{f.setUndoInvoked(!0)},Rt.COMMAND_PRIORITY_CRITICAL),s.registerCommand(Rt.REDO_COMMAND,()=>{f.setRedoInvoked(!0)},Rt.COMMAND_PRIORITY_CRITICAL),s.registerCommand(Rt.KEY_DELETE_COMMAND,(D,z)=>{i.tableRemoveEventListener(Rt.KEY_DELETE_COMMAND,z)},Rt.COMMAND_PRIORITY_CRITICAL),s.registerCommand(Rt.KEY_BACKSPACE_COMMAND,(D,z)=>{i.tableRemoveEventListener(Rt.KEY_BACKSPACE_COMMAND,z)},Rt.COMMAND_PRIORITY_CRITICAL),s.registerCommand(Rt.CUT_COMMAND,(D,z)=>{i.tableRemoveEventListener(Rt.CUT_COMMAND,z)},Rt.COMMAND_PRIORITY_CRITICAL),...p6(s),...h6(s));c.mount(s),f.alignStateSelectionJSONsFromLatestEditor(),pt.default.debug("New editor mounted: ",{isCodoxStarted:f.isCodoxStarted,codoxLexicalEditorManager:f,nestedEditorsProcessor:u});let O=s._onError;s._onError=D=>{O&&O(D),e===!0?pt.default.debug("Prevent rollback state after lexical error"):I("lexical internal error")},n&&d.setBlacklistCallback(n);let L=()=>{g=!0},N=()=>{g=!1},U=s.getRootElement();return U.addEventListener("focus",L),U.addEventListener("blur",N),()=>{let D=s,z=s.getKey();U.removeEventListener("focus",L),U.removeEventListener("blur",N),z&&(pt.default.debug("Unmount prev editor"),j(),f.removeMainEditor(),c.unmount(),f.clearJSONs(),h.clear(),i.clear(),f.isCodoxStarted&&(pt.default.debug("EDITOR USE_EFFECT stopping codox"),S(),f.setIsCodoxStarted(!1)),d.removeBlacklistCallback()),p.gcAbandonedNodes(D),u.gc(D),i.clear(),Un.gc(z)}},[s]);const _=()=>{c.hideRemoteSelectionsFromUI()},E=()=>{c.showHiddenRemoteSelectionsInUI()},S=()=>{f.isCodoxStarted&&(pt.default.debug("[stopCodoxInstance] stopping codox"),f.setIsCodoxStarted(!1),a.stop(),f.clearJSONs(),c.clear(),h.resetComments(),u.clearListeners())},w=j=>{let{state:O=null,comments:L=null,selection:N=null,isNestedSelection:U=!1,remoteSelection:D=null,callerName:z=""}=j;O&&f.setLocalContentStateJSON(O,"postSyncLocalUpdates"),N&&(U?f.setNestedSelectionJSON(N):f.setMainSelectionJSON(N)),D&&c.updateRemoteSelections(D,z,s),L&&h.setAllComments(L)},y=function(){let{newContentStateJSON:j,shouldRepaceFullState:O=!1,newSelectionJSON:L,updateTagsToApply:N=[],useTag:U=!0,callerName:D="not_specified_caller"}=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};pt.default.debug(`[updateLexicalEditor] invoked. Caller: [${D}]`),L||(L=f.getCurrentMainSelectionJSON());let z=!!j,K=null,G=null,P=z&&!O;if(pt.default.debug(`[updateLexicalEditor] caller: [${D}] update payload: `,{newContentStateJSON:j,shouldRepaceFullState:O,newSelectionJSON:L,updateTagsToApplyFromCaller:N,shouldUpdateState:z,shouldComputeStateDeltas:P}),P){W=f.getLocalContentStateJSON(),J=j,K=a.diff(W,J,{keyNames:{default:"codoxId"},filters:{codox_metadata:!0}}),pt.default.debug("[updateLexicalEditor] Performing a partial state replace - state deltas: ",K);const H=Ud.segmentDeltas(K);H.isSingleSegment||(G=H.segmentedDeltas)}var W,J;return z&&!O&&G?((H=>{let{newSelectionJSON:$,finalUseTag:Z=!0,finalUpdateTagsToApply:X=[],segmentedDeltas:Y,newContentStateJSON:ee}=H;pt.default.debug("[updateLexicalEditorWithSegmentalDeltas] update lexical with segmented deltas invoked. segments count: ",Y.length),Y.forEach((ie,fe)=>{let de=fe===Y.length-1,ne=f.getContentStateJSONFromEditor();s.update(()=>{if(Ud.applyDeltasToLexicalState({newStateJSON:ee,deltas:ie,editor:s,currentStateJSON:ne}),de){if(g){const Ee=fn.JSONToLexical($,p);(0,Rt.$setSelection)(Ee)}Z&&Fy({updateTags:X,isSameState:!1})}else(0,Rt.$addUpdateTag)("codox_segmental_sync_state_changes")},{discrete:!0}),pt.default.debug(`[updateLexicalEditorWithSegmentalDeltas] segment ${fe} update ended `)})})({newSelectionJSON:L,finalUseTag:U,finalUpdateTagsToApply:N,segmentedDeltas:G,newContentStateJSON:j}),K):(s.update(()=>{if(z&&(O?Ud.applyFullLexicalStateReplace(j,s):Ud.applyDeltasToLexicalState({newStateJSON:j,deltas:K,editor:s,currentStateJSON:f.getLocalContentStateJSON()})),g){const H=fn.JSONToLexical(L,p);(0,Rt.$setSelection)(H)}U&&Fy({updateTags:N,isSameState:!z})},{discrete:!0}),K)},x=j=>!0,C=j=>{if(!v())return;pt.default.debug("[SYNC_STATE - remote handling]: Before sync(), payload from core = ",j);let O={};try{O=a.sync({meta:j})}catch{return S()}const{state:L,remoteSelection:N=[]}=O;if(fS(O,v6),j&&j.action===nP.syncRCS)return pt.default.debug('[SYNC_STATE - remote handling] EARLY RETURN: "syncRCS" action - update only remote selections'),void c.updateRemoteSelections(N,"syncState",s);if(!L)return S();let U=L.state;pt.default.debug("[SYNC_STATE - remote handling] The new synced state to apply = ",{synced:JSON.parse(JSON.stringify(U))});let{stateFromSync:D,commentsFromSync:z}=f.extractStateAndCommentsFromSynced(U);if(pt.default.debug("[SYNC_STATE - remote handling] synced state validation"),!f.isValidJSONState(D.state))return S();D.state=m.convertNodesFromSyncInJsonState(D.state,s),pt.default.debug("[SYNC_STATE - remote handling] synced state transformed",D.state);const K=f.isSameContentStateJSON(D.state);pt.default.debug("[SYNC_STATE - remote handling] synced selecttion validation");let G=oh.validateJSONSelection(D.selection,Rd.local,p),P=f.getCurrentMainSelectionJSON(),W=!1,J=!1;G?(J=f.isSameSelectionJSON(D.selection),J||(W=fn.isNestedSelectionJSON(D.selection),W||(P=D.selection))):pt.default.error("[SYNC_STATE - remote handling] local selection from core is not valid. Only selection upd skipped. Invalid selection = ",D.selection),pt.default.debug("[SYNC_STATE - remote handling] compares: ",{isSameContentState:K,isSameLocalSelection:J});let H=null;K&&J?pt.default.debug("[SYNC_STATE - remote handling] same state and selection - skip lexical editor update"):(pt.default.debug("[SYNC_STATE - remote handling] should update lexical editor"),H=y({newContentStateJSON:K?void 0:D.state,shouldRepaceFullState:!!D.stateReplace,newSelectionJSON:P,updateTagsToApply:["codox_sync_state_changes"],callerName:"syncState"})),x({syncedState:D.state,currentJsonState:f.getLocalContentStateJSON(),originalDeltas:H}),w({state:K?null:D.state,selection:J?null:D.selection,isNestedSelection:W,comments:z,remoteSelection:N,callerName:"syncState"})},T=j=>{if(!v())return;if(pt.default.debug("[setSelectionHookHandler] invoked. new synced selection: ",j),!oh.validateJSONSelection(j,Rd.local,p))return void pt.default.error("[setSelectionHookHandler] INVALID SELECTION FROM SYNC - selection update skipped");let O=f.getCurrentActiveSelectionJSON();fn.equalSelectionsJSON(O,j)?pt.default.debug("[setSelectionHookHandler] STOP - current local and new synced selections are equal"):fn.isNestedSelectionJSON(j)?u.setNestedEditorSelection(j)&&f.setNestedSelectionJSON(j):(y({newSelectionJSON:j,callerName:"setSelectionHookHandler",useTag:!1}),f.setMainSelectionJSON(j))},R=j=>{const{root:O,comments:L}=j,N={root:O};let U=f.isSameContentStateJSON(N);pt.default.debug("[setStateHookHandler] state compare: ",{isSameState:U}),U||(pt.default.debug("[setStateHookHandler] should update lexcial editor"),y({newContentStateJSON:N,newSelectionJSON:f.getCurrentMainSelectionJSON(),callerName:"setStateHookHandler"})),h.setAllComments(L)},F=function(){let{afterStart:j=!1}=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};if(!v())return;let O=f.composeFullStateForSync(h);if(O.state=m.convertNodesForSyncInJsonState(O.state,s),!(j||(pt.default.debug("[invokeSync - local handling] pre sync state validation"),f.isValidJSONState(O.state))))return pt.default.error("[invokeSync - local handling] - invalid lexical state for sync - sync invoke skipped - stopping codox",{lexicalJSONState:{root:O.state.root}}),S();pt.default.debug("[invokeSync - local handling] SYNC INVOKED "),j&&f.alignSelectionJSONFromLatestEditor();const L={state:{state:O.state,selection:f.getCurrentActiveSelectionJSON()}};pt.default.debug("[invokeSync - local handling]: Before sync()",{local:L}),pt.default.debug("[invokeSync - local handling]: Before sync() local full state",JSON.parse(JSON.stringify(L.state)));let N={};try{N=a.sync({state:L,meta:{}})}catch{return S()}let{state:U,remoteSelection:D=[],changes:z}=N;if(!U)return S();const K=U.state;pt.default.debug("[invokeSync - local handling]: synced document state: ",JSON.parse(JSON.stringify(K)));let{stateFromSync:G,commentsFromSync:P}=f.extractStateAndCommentsFromSynced(K);if(pt.default.debug("[invokeSync - local handling] synced state validation"),!f.isValidJSONState(G.state))return S();G.state=m.convertNodesFromSyncInJsonState(G.state,s),pt.default.debug("[invokeSync - transformed]: synced document state: ",JSON.parse(JSON.stringify(G.state)));const W=f.isSameContentStateJSON(G.state);pt.default.debug("[invokeSync - local handling] synced selecttion validation");let J=oh.validateJSONSelection(G.selection,Rd.local,p),H=f.getCurrentMainSelectionJSON(),$=!1,Z=!1;J?($=f.isSameSelectionJSON(G.selection),$||(Z=fn.isNestedSelectionJSON(G.selection),Z||(H=G.selection))):pt.default.error("[invokeSync - local handling] local selection from core is not valid. Only selection upd skipped. Invalid selection = ",G.selection),pt.default.debug("[invokeSync - local handling] After sync - compares: ",{isSameContentState:W,isSameLocalSelection:$,isNestedSelection:Z});let X=null;W&&$?pt.default.debug("[invokeSync - local handling] skip update lexical editor - state and selection are same"):(pt.default.debug("[invokeSync - local handling] invoke update lexical editor "),X=y({newContentStateJSON:W?void 0:G.state,shouldRepaceFullState:!!G.stateReplace,newSelectionJSON:H,updateTagsToApply:["codox_sync_state_changes"],callerName:"invokeSync"})),x({syncedState:G.state,currentJsonState:f.getLocalContentStateJSON(),originalDeltas:X}),w({state:W?null:G.state,selection:$?null:G.selection,isNestedSelection:Z,comments:P,remoteSelection:D,callerName:"invokeSync"})},I=function(){let j=arguments.length>0&&arguments[0]!==void 0?arguments[0]:"";pt.default.debug(`[revertToPrevState] invoked. Reason: ${j}`);let O=f.getLocalContentStateJSON(),L=f.getCurrentActiveSelectionJSON();y({newContentStateJSON:O,shouldRepaceFullState:!0,newSelectionJSON:L,updateTagsToApply:[ls.historic,Ex],callerName:"revertToPrevState"}),h.gcAbandonedNodeKeys(f.getMainEditorStateNodesMap()),s.dispatchCommand(Rt.CAN_REDO_COMMAND,!1),s.dispatchCommand(Rt.CAN_UNDO_COMMAND,!1)},B=j=>{let{editorState:O,prevEditorState:L,tags:N,dirtyElements:U,dirtyLeaves:D}=j;if(!v())return;if(pt.default.debug("[editorUpdatesListener] invoked by lexical ============="),f.isMainEditorStateEmptyRoot())return pt.default.warn("[editorUpdatesListener] INVALID EMPTY STATE FOUND: empty root.children - fix logic will be triggered"),void Ud.fixStateEmptyRoot(s);if(N.has("codox_segmental_sync_state_changes"))return void pt.default.debug("[editorUpdatesListener] STOP - update is part of synced deltas segmental updates");if(N.has(Ex))return void pt.default.debug("[editorUpdatesListener] STOP - update invoked by content revert, no need to sync");let z=d.isBlacklistedFound();if(z)return pt.default.warn("[editorUpdatesListener] BLACKLISTED CHANGES FOUND - stopping codox"),d.invokeBlacklistCallback(z),S();if(!i.ensureDocTablesAreValid(s))return void pt.default.warn("[editorUpdatesListener] INVALID TABLE(S) FOUND - fix logic will be triggered");let K=Wx(U,D),G=K?f.getLocalContentStateJSON():Fl(O);if(N.has("codox_sync_state_changes"))return pt.default.debug("[editorUpdatesListener] STOP - EARLY RETURN - update invoked after remote synced state applied - should not sync"),void b(G,kx.remote);let P=N.has(Md),W=null;O.read(()=>{W=fn.lexicalToJSON((0,Rt.$getSelection)())});let J=!!K||f.isSameContentStateJSON(G),H=f.isSameSelectionJSON(W);pt.default.debug("[editorUpdatesListener] compares: ",{isStateSame:J,isSelectionSame:H}),J&&!P||b(G,kx.local),J&&H&&!P?pt.default.debug("[editorUpdatesListener] STOP - state and selection and comments are same - should not sync"):(f.undoInvoked()&&f.setUndoInvoked(!1),f.redoInvoked()&&f.setRedoInvoked(!1),K||f.setLocalContentStateJSON(G,"editorUpdatesListener"),f.setMainSelectionJSON(W),F())},A={start:async j=>{pt.default.debug("[startCodoxInstance] invoked",{codoxConfigFromClient:j}),f.isCodoxStarted&&S(),f.alignStateSelectionJSONsFromLatestEditor(),a.createNewInstance(),pt.default.debug("[startCodoxInstance] instance created");let O=Un.getClientEventListeners(r);for(let X in O)a.instance.on(X,O[X]);if(pt.default.debug("[startCodoxInstance] events subscribed"),Un.setConfigBackup(r,j),!j.docId)return pt.default.error("[startCodoxInstance] - start codox skipped - docId is missing. codoxConfigFromClient: ",j);let L=h.initialCommentsExist();pt.default.debug("[startCodoxInstance] initCommentsExist: ",L),L&&(h.activateInitialComments(s,p),pt.default.debug("[activateInitialComments] "));let N=f.getLocalContentStateJSON();if(!f.isValidJSONState(N))throw pt.default.error("[startCodoxInstance] - start codox skipped - invalid init state",{codoxConfigFromClient:j,initJSONState:N}),new Error("start codox skipped - invalid init state");pt.default.debug("[startCodoxInstance] starting codox with: ",{initJSONState:N,codoxConfigFromClient:j,codoxComments:h});let{docId:U,username:D,apiKey:z,getServerState:K,domain:G="",demo:P=!1,hooks:W,appServer:J}=j;var H;W&&W.fetchDocOnNetworkReconnect&&(W.fetchDocOnNetworkReconnect=(H=W.fetchDocOnNetworkReconnect,async()=>{const{state:X,timestamp:Y}=await H();if(!f.isValidJSONState(X))throw new Error("Invalid state received from fetchDocOnNetworkReconnect hook");const{commentThreads:ee,root:ie}=X;let fe={commentThreads:ee,root:ie};fe=m.convertNodesForSyncInJsonState(fe,s);const de={content:{comments:ee,root:ie},timestamp:Y};return pt.default.info("[decorateFetchOnReconnctHook] hook invoked: ",{returnObj:de}),de}));const{contentChanged:$}=W,Z=fS(W,y6);Un.setContentChangedHookClientCallback(r,$),await a.start(a.createConfig(qy(qy({},j),{},{docId:U,username:D,apiKey:z,domain:G,hooks:qy({syncState:X=>{pt.default.debug("[syncState] hook invoked. calls local syncState fn"),C(X)},getState:()=>{let X=f.composeFullStateForSync(h);return X.state=m.convertNodesForSyncInJsonState(X.state,s),X},getServerState:async()=>await K(U)},Z),editorInstanceHooks:{getSelection:()=>{const X=f.getCurrentActiveSelectionJSON();return pt.default.debug("[getSelection] hook invoked. selection: ",X),X},setSelection:X=>{pt.default.debug("[setSelection] hook invoked. calls setSelectionHookHandler"),T(X)},getState:()=>{const X=f.composeFullStateForSync(h);return X.state=m.convertNodesForSyncInJsonState(X.state,s),pt.default.info("[getState] hook invoked. state: ",X),X},setState:X=>{pt.default.info("[setState] hook invoked. calls setStateHookHandler"),X=m.convertNodesFromSyncInJsonState(X,s),R(X)},enableEditor:()=>{pt.default.debug("[enableEditor] invoked"),f.disableEditorReadOnlyMode(),E()},disableEditor:()=>{pt.default.debug("[disableEditor] invoked"),f.enableEditorReadOnlyMode(),_()},getContent:()=>{let X=f.composeFullStateForSync(h);return X.state=m.convertNodesForSyncInJsonState(X.state,s),pt.default.info("[getContent]: ",X.state),X}},appServer:J,demo:P}))),pt.default.debug("[startCodoxInstance] codox started - first sync invoking"),f.setIsCodoxStarted(!0),o.clientID=D,o.name=D,F({afterStart:!0})},stop:S,on:(j,O)=>{pt.default.info(`Subscribing client to codox ${j} event`),Un.setClientEventListener(r,j,O)},cursor:{hide:_,show:E},initComments:j=>{h.setInitialComments(j)}};return(0,ht.useImperativeHandle)(t,()=>A),null}),E6=S6;var ch=An(777),Kc={};Kc.styleTagTransform=ea(),Kc.setAttributes=Qs(),Kc.insert=Zs().bind(null,"head"),Kc.domAPI=Ys(),Kc.insertStyleElement=Xs(),$s()(ch.A,Kc),ch.A&&ch.A.locals&&ch.A.locals;var C6=l=>{var t={};return An.d(t,l),t};const j6=C6({AutoFocusPlugin:()=>Dp});var k6=l=>{var t={};return An.d(t,l),t};const T6=k6({ClearEditorPlugin:()=>gx});var A6=l=>{var t={};return An.d(t,l),t};const O6=A6({LexicalComposer:()=>dp}),pS=kN;var N6=l=>{var t={};return An.d(t,l),t};const P6=N6({HistoryPlugin:()=>mp});var I6=l=>{var t={};return An.d(t,l),t};const M6=I6({OnChangePlugin:()=>yx});var R6=l=>{var t={};return An.d(t,l),t};const D6=R6({PlainTextPlugin:()=>_x});var L6=l=>{var t={};return An.d(t,l),t};const hS=L6({$isRootTextContentEmpty:()=>iy,$rootTextContent:()=>oy});var F6=l=>{var t={};return An.d(t,l),t};const Gc=F6({createPortal:()=>Cf.createPortal}),B6=typeof window<"u"&&window.document!==void 0&&window.document.createElement!==void 0,z6=B6?ht.useLayoutEffect:ht.useEffect,gS=z6;var uh=An(253),$c={};$c.styleTagTransform=ea(),$c.setAttributes=Qs(),$c.insert=Zs().bind(null,"head"),$c.domAPI=Ys(),$c.insertStyleElement=Xs(),$s()(uh.A,$c),uh.A&&uh.A.locals&&uh.A.locals;function U6(l){let{onClose:t,children:n,title:e,closeOnClickOutside:s}=l;const r=(0,ht.useRef)(null);return(0,ht.useEffect)(()=>{r.current!==null&&r.current.focus()},[]),(0,ht.useEffect)(()=>{let o=null;const a=u=>{u.key==="Escape"&&t()},c=u=>{const d=u.target;r.current!==null&&!r.current.contains(d)&&s&&t()},i=r.current;return i!==null&&(o=i.parentElement,o!==null&&o.addEventListener("click",c)),window.addEventListener("keydown",a),()=>{window.removeEventListener("keydown",a),o!==null&&(o==null||o.removeEventListener("click",c))}},[s,t]),ht.createElement("div",{className:"Modal__overlay",role:"dialog"},ht.createElement("div",{className:"Modal__modal",tabIndex:-1,ref:r},ht.createElement("h2",{className:"Modal__title"},e),ht.createElement("button",{className:"Modal__closeButton","aria-label":"Close modal",type:"button",onClick:t},"X"),ht.createElement("div",{className:"Modal__content"},n)))}function H6(l){let{onClose:t,children:n,title:e,closeOnClickOutside:s=!1}=l;return(0,Gc.createPortal)(ht.createElement(U6,{onClose:t,title:e,closeOnClickOutside:s},n),document.body)}function mS(){const[l,t]=(0,ht.useState)(null),n=(0,ht.useCallback)(()=>{t(null)},[]),e=(0,ht.useMemo)(()=>{if(l===null)return null;const{title:r,content:o,closeOnClickOutside:a}=l;return ht.createElement(H6,{onClose:n,title:r,closeOnClickOutside:a},o)},[l,n]),s=(0,ht.useCallback)(function(r,o){t({closeOnClickOutside:arguments.length>2&&arguments[2]!==void 0&&arguments[2],content:o(n),title:r})},[n]);return[e,s]}var dh=An(191),Yc={};Yc.styleTagTransform=ea(),Yc.setAttributes=Qs(),Yc.insert=Zs().bind(null,"head"),Yc.domAPI=Ys(),Yc.insertStyleElement=Xs(),$s()(dh.A,Yc),dh.A&&dh.A.locals&&dh.A.locals;const q6={blockCursor:"CommentEditorTheme__blockCursor",characterLimit:"CommentEditorTheme__characterLimit",code:"CommentEditorTheme__code",codeHighlight:{atrule:"CommentEditorTheme__tokenAttr",attr:"CommentEditorTheme__tokenAttr",boolean:"CommentEditorTheme__tokenProperty",builtin:"CommentEditorTheme__tokenSelector",cdata:"CommentEditorTheme__tokenComment",char:"CommentEditorTheme__tokenSelector",class:"CommentEditorTheme__tokenFunction","class-name":"CommentEditorTheme__tokenFunction",comment:"CommentEditorTheme__tokenComment",constant:"CommentEditorTheme__tokenProperty",deleted:"CommentEditorTheme__tokenProperty",doctype:"CommentEditorTheme__tokenComment",entity:"CommentEditorTheme__tokenOperator",function:"CommentEditorTheme__tokenFunction",important:"CommentEditorTheme__tokenVariable",inserted:"CommentEditorTheme__tokenSelector",keyword:"CommentEditorTheme__tokenAttr",namespace:"CommentEditorTheme__tokenVariable",number:"CommentEditorTheme__tokenProperty",operator:"CommentEditorTheme__tokenOperator",prolog:"CommentEditorTheme__tokenComment",property:"CommentEditorTheme__tokenProperty",punctuation:"CommentEditorTheme__tokenPunctuation",regex:"CommentEditorTheme__tokenVariable",selector:"CommentEditorTheme__tokenSelector",string:"CommentEditorTheme__tokenSelector",symbol:"CommentEditorTheme__tokenProperty",tag:"CommentEditorTheme__tokenProperty",url:"CommentEditorTheme__tokenOperator",variable:"CommentEditorTheme__tokenVariable"},embedBlock:{base:"CommentEditorTheme__embedBlock",focus:"CommentEditorTheme__embedBlockFocus"},hashtag:"CommentEditorTheme__hashtag",heading:{h1:"CommentEditorTheme__h1",h2:"CommentEditorTheme__h2",h3:"CommentEditorTheme__h3",h4:"CommentEditorTheme__h4",h5:"CommentEditorTheme__h5",h6:"CommentEditorTheme__h6"},image:"editor-image",indent:"CommentEditorTheme__indent",inlineImage:"inline-editor-image",layoutContainer:"CommentEditorTheme__layoutContainer",layoutItem:"CommentEditorTheme__layoutItem",link:"CommentEditorTheme__link",list:{checklist:"CommentEditorTheme__checklist",listitem:"CommentEditorTheme__listItem",listitemChecked:"CommentEditorTheme__listItemChecked",listitemUnchecked:"CommentEditorTheme__listItemUnchecked",nested:{listitem:"CommentEditorTheme__nestedListItem"},olDepth:["CommentEditorTheme__ol1","CommentEditorTheme__ol2","CommentEditorTheme__ol3","CommentEditorTheme__ol4","CommentEditorTheme__ol5"],ul:"CommentEditorTheme__ul"},ltr:"CommentEditorTheme__ltr",mark:"CommentEditorTheme__mark",markOverlap:"CommentEditorTheme__markOverlap",paragraph:"CommentEditorTheme__paragraph",quote:"CommentEditorTheme__quote",rtl:"CommentEditorTheme__rtl",table:"CommentEditorTheme__table",tableCell:"CommentEditorTheme__tableCell",tableCellActionButton:"CommentEditorTheme__tableCellActionButton",tableCellActionButtonContainer:"CommentEditorTheme__tableCellActionButtonContainer",tableCellEditing:"CommentEditorTheme__tableCellEditing",tableCellHeader:"CommentEditorTheme__tableCellHeader",tableCellPrimarySelected:"CommentEditorTheme__tableCellPrimarySelected",tableCellResizer:"CommentEditorTheme__tableCellResizer",tableCellSelected:"CommentEditorTheme__tableCellSelected",tableCellSortedIndicator:"CommentEditorTheme__tableCellSortedIndicator",tableResizeRuler:"CommentEditorTheme__tableCellResizeRuler",tableSelected:"CommentEditorTheme__tableSelected",tableSelection:"CommentEditorTheme__tableSelection",text:{bold:"CommentEditorTheme__textBold",code:"CommentEditorTheme__textCode",italic:"CommentEditorTheme__textItalic",strikethrough:"CommentEditorTheme__textStrikethrough",subscript:"CommentEditorTheme__textSubscript",superscript:"CommentEditorTheme__textSuperscript",underline:"CommentEditorTheme__textUnderline",underlineStrikethrough:"CommentEditorTheme__textUnderlineStrikethrough"}},W6=q6;var fh=An(72),Zc={};Zc.styleTagTransform=ea(),Zc.setAttributes=Qs(),Zc.insert=Zs().bind(null,"head"),Zc.domAPI=Ys(),Zc.insertStyleElement=Xs(),$s()(fh.A,Zc),fh.A&&fh.A.locals&&fh.A.locals;function J6(){for(var l=arguments.length,t=new Array(l),n=0;n<l;n++)t[n]=arguments[n];return t.filter(Boolean).join(" ")}function Wy(){return Wy=Object.assign?Object.assign.bind():function(l){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var e in n)({}).hasOwnProperty.call(n,e)&&(l[e]=n[e])}return l},Wy.apply(null,arguments)}function Va(l){let{"data-test-id":t,children:n,className:e,onClick:s,disabled:r,small:o,title:a,style:c}=l;return ht.createElement("button",Wy({disabled:r,className:J6("Button__root",r&&"Button__disabled",o&&"Button__small",e),onClick:s,title:a,"aria-label":a},t&&{"data-test-id":t},c&&{style:c}),n)}var ph=An(129),Qc={};Qc.styleTagTransform=ea(),Qc.setAttributes=Qs(),Qc.insert=Zs().bind(null,"head"),Qc.domAPI=Ys(),Qc.insertStyleElement=Xs(),$s()(ph.A,Qc),ph.A&&ph.A.locals&&ph.A.locals;var V6=l=>{var t={};return An.d(t,l),t};const K6=V6({ContentEditable:()=>fx});function G6(l){let{className:t}=l;return ht.createElement(K6.ContentEditable,{className:t||"ContentEditable__root"})}var hh=An(457),Xc={};Xc.styleTagTransform=ea(),Xc.setAttributes=Qs(),Xc.insert=Zs().bind(null,"head"),Xc.domAPI=Ys(),Xc.insertStyleElement=Xs(),$s()(hh.A,Xc),hh.A&&hh.A.locals&&hh.A.locals;function $6(l){let{children:t,className:n}=l;return ht.createElement("div",{className:n||"Placeholder__root"},t)}function Jy(){return Jy=Object.assign?Object.assign.bind():function(l){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var e in n)({}).hasOwnProperty.call(n,e)&&(l[e]=n[e])}return l},Jy.apply(null,arguments)}const Y6=pS.LexicalErrorBoundary||pS,Z6=()=>ht.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"#050505",className:"codox-add-comment-right"},ht.createElement("path",{d:"M14 1a1 1 0 0 1 1 1v8a1 1 0 0 1-1 1H4.414A2 2 0 0 0 3 11.586l-2 2V2a1 1 0 0 1 1-1h12zM2 0a2 2 0 0 0-2 2v12.793a.5.5 0 0 0 .854.353l2.853-2.853A1 1 0 0 1 4.414 12H14a2 2 0 0 0 2-2V2a2 2 0 0 0-2-2H2z"}),ht.createElement("path",{d:"M3 3.5a.5.5 0 0 1 .5-.5h9a.5.5 0 0 1 0 1h-9a.5.5 0 0 1-.5-.5zM3 6a.5.5 0 0 1 .5-.5h9a.5.5 0 0 1 0 1h-9A.5.5 0 0 1 3 6zm0 2.5a.5.5 0 0 1 .5-.5h5a.5.5 0 0 1 0 1h-5a.5.5 0 0 1-.5-.5z"})),yS=()=>ht.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"20",height:"20",fill:"currentColor",className:"codox-remove-comment"},ht.createElement("path",{d:"M6.5 1h3a.5.5 0 0 1 .5.5v1H6v-1a.5.5 0 0 1 .5-.5ZM11 2.5v-1A1.5 1.5 0 0 0 9.5 0h-3A1.5 1.5 0 0 0 5 1.5v1H2.506a.58.58 0 0 0-.01 0H1.5a.5.5 0 0 0 0 1h.538l.853 10.66A2 2 0 0 0 4.885 16h6.23a2 2 0 0 0 1.994-1.84l.853-10.66h.538a.5.5 0 0 0 0-1h-.995a.59.59 0 0 0-.01 0H11Zm1.958 1-.846 10.58a1 1 0 0 1-.997.92h-6.23a1 1 0 0 1-.997-.92L3.042 3.5h9.916Zm-7.487 1a.5.5 0 0 1 .528.47l.5 8.5a.5.5 0 0 1-.998.06L5 5.03a.5.5 0 0 1 .47-.53Zm5.058 0a.5.5 0 0 1 .47.53l-.5 8.5a.5.5 0 1 1-.998-.06l.5-8.5a.5.5 0 0 1 .528-.47ZM8 4.5a.5.5 0 0 1 .5.5v8.5a.5.5 0 0 1-1 0V5a.5.5 0 0 1 .5-.5Z"})),Q6=()=>ht.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",fill:"currentColor",className:"codox-add-comment"},ht.createElement("path",{d:"M15.854.146a.5.5 0 0 1 .11.54l-5.819 14.547a.75.75 0 0 1-1.329.124l-3.178-4.995L.643 7.184a.75.75 0 0 1 .124-1.33L15.314.037a.5.5 0 0 1 .54.11ZM6.636 10.07l2.761 4.338L14.13 2.576 6.636 10.07Zm6.787-8.201L1.591 6.602l4.339 2.76 7.494-7.493Z"})),vS=()=>ht.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"20",height:"20",fill:"#0000008c",className:"codox-hide-show-comments"},ht.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M13 5.885v1.166a3.95 3.95 0 0 1-3.949 3.95H6.917a.748.748 0 0 0-.45.15l-1.345 1.007a.752.752 0 0 0-.032 1.181A2.933 2.933 0 0 0 6.95 14h2.716l2.534 1.901a.506.506 0 0 0 .524.047A.501.501 0 0 0 13 15.5V14h.051a2.949 2.949 0 0 0 2.95-2.949v-3.05a3.002 3.002 0 0 0-2.002-2.83.756.756 0 0 0-.999.714"}),ht.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M9.05 1H2.95A2.952 2.952 0 0 0 0 3.949v3.102A2.952 2.952 0 0 0 2.949 10H3v1.5a.502.502 0 0 0 .8.4L6.334 10H9.05A2.952 2.952 0 0 0 12 7.05V3.95A2.952 2.952 0 0 0 9.05 1"}));function bS(l,t,n,e){let s=arguments.length>4&&arguments[4]!==void 0?arguments[4]:performance.now(),r=arguments.length>5&&arguments[5]!==void 0&&arguments[5];return l.createNewCommentObj({content:t,author:n,codoxId:e,timeStamp:s,deleted:r})}function X6(l,t,n,e){return l.createNewThreadObj({quote:t,comments:n,codoxId:e})}function e5(l){let{anchorKey:t,editor:n,onAddComment:e}=l;const s=(0,ht.useRef)(null),r=(0,ht.useCallback)(()=>{const o=s.current,a=n.getRootElement(),c=n.getElementByKey(t);if(o!==null&&a!==null&&c!==null){const{right:i}=a.getBoundingClientRect(),{top:u}=c.getBoundingClientRect();o.style.left=i-20+"px",o.style.top=u-30+"px"}},[t,n]);return(0,ht.useEffect)(()=>(window.addEventListener("resize",r),()=>{window.removeEventListener("resize",r)}),[n,r]),gS(()=>{r()},[t,n,r]),ht.createElement("div",{className:"CodoxCommentPlugin_AddCommentBox",ref:s},ht.createElement("button",{className:"CodoxCommentPlugin_AddCommentBox_button",onClick:e},ht.createElement(Z6,null)))}function t5(l){let{onEscape:t}=l;const[n]=(0,Ja.useLexicalComposerContext)();return(0,ht.useEffect)(()=>n.registerCommand(Rt.KEY_ESCAPE_COMMAND,e=>t(e),2),[n,t]),null}function n5(l){let{editorRef:t}=l;const[n]=(0,Ja.useLexicalComposerContext)();return typeof t=="function"?t(n):typeof t=="object"&&(t.current=n),null}function _S(l){let{className:t,autoFocus:n,onEscape:e,onChange:s,editorRef:r,placeholder:o="Type a comment...",onEditorClick:a=()=>{}}=l;const c={namespace:"Commenting",nodes:[],onError:i=>{throw i},theme:W6};return ht.createElement(O6.LexicalComposer,{initialConfig:c},ht.createElement("div",{className:"CodoxCommentPlugin_CommentInputBox_EditorContainer",onClick:a},ht.createElement(D6.PlainTextPlugin,{contentEditable:ht.createElement(G6,{className:t}),placeholder:ht.createElement($6,null,o),ErrorBoundary:Y6}),ht.createElement(M6.OnChangePlugin,{onChange:s}),ht.createElement(P6.HistoryPlugin,null),n!==!1&&ht.createElement(j6.AutoFocusPlugin,null),ht.createElement(t5,{onEscape:e}),ht.createElement(T6.ClearEditorPlugin,null),r!==void 0&&ht.createElement(n5,{editorRef:r})))}function wS(l,t){return(0,ht.useCallback)((n,e)=>{n.read(()=>{l((0,hS.$rootTextContent)()),t(!(0,hS.$isRootTextContentEmpty)(e.isComposing(),!0))})},[t,l])}function r5(l){let{editor:t,cancelAddComment:n,submitAddComment:e,codoxComments:s}=l;const[r,o]=(0,ht.useState)(""),[a,c]=(0,ht.useState)(!1),i=(0,ht.useRef)(null),u=(0,ht.useMemo)(()=>({container:document.createElement("div"),elements:[]}),[]),d=(0,ht.useRef)(null),f=ES(),p=(0,ht.useCallback)(()=>{t.getEditorState().read(()=>{const m=(0,Rt.$getSelection)();if((0,Rt.$isRangeSelection)(m)){d.current=m.clone();const g=m.anchor,v=m.focus,b=(0,Bl.createDOMRange)(t,g.getNode(),g.offset,v.getNode(),v.offset),_=i.current;if(b!==null&&_!==null){const{left:E,bottom:S,width:w}=b.getBoundingClientRect(),y=(0,Bl.createRectsFromDOMRange)(t,b);let x=y.length===1?E+w/2-125:E-125;x<10&&(x=10),_.style.left=`${x}px`,_.style.top=`${S+20+(window.pageYOffset||document.documentElement.scrollTop)}px`;const C=y.length,{container:T}=u,R=u.elements,F=R.length;for(let I=0;I<C;I++){const B=y[I];let A=R[I];A===void 0&&(A=document.createElement("span"),R[I]=A,T.appendChild(A));const j="255, 212, 0",O=`position:absolute;top:${B.top+(window.pageYOffset||document.documentElement.scrollTop)}px;left:${B.left}px;height:${B.height}px;width:${B.width}px;background-color:rgba(${j}, 0.3);pointer-events:none;z-index:5;`;A.style.cssText=O}for(let I=F-1;I>=C;I--){const B=R[I];T.removeChild(B),R.pop()}}}})},[t,u]);gS(()=>{p();const m=u.container,g=document.body;if(g!==null)return g.appendChild(m),()=>{g.removeChild(m)}},[u.container,p]),(0,ht.useEffect)(()=>(window.addEventListener("resize",p),()=>{window.removeEventListener("resize",p)}),[p]);const h=wS(o,c);return ht.createElement("div",{className:"CodoxCommentPlugin_CommentInputBox",ref:i},ht.createElement(_S,{className:"CodoxCommentPlugin_CommentInputBox_Editor",onEscape:m=>(m.preventDefault(),n(),!0),onChange:h}),ht.createElement("div",{className:"CodoxCommentPlugin_CommentInputBox_Buttons"},ht.createElement(Va,{onClick:n,className:"CodoxCommentPlugin_CommentInputBox_Button"},"Cancel"),ht.createElement(Va,{onClick:()=>{if(a){let m=t.getEditorState().read(()=>{const g=d.current;return g?g.getTextContent():""});m.length>100&&(m=m.slice(0,99)+"…"),e(X6(s,m,[bS(s,r,f)]),!0,void 0,d.current),d.current=null}},disabled:!a,className:"CodoxCommentPlugin_CommentInputBox_Button primary"},"Comment")))}function o5(l){let{submitAddComment:t,thread:n,placeholder:e,codoxComments:s}=l;const[r,o]=(0,ht.useState)(""),[a,c]=(0,ht.useState)(!1),i=(0,ht.useRef)(null),u=ES(),d=wS(o,c);return ht.createElement(ht.Fragment,null,ht.createElement(_S,{className:"CodoxCommentPlugin_CommentsPanel_Editor",autoFocus:!1,onEscape:()=>!0,onChange:d,editorRef:i,placeholder:e}),ht.createElement(Va,{className:"CodoxCommentPlugin_CommentsPanel_SendButton",onClick:()=>{if(a){t(bS(s,r,u),!1,n);const f=i.current;f!==null&&f.dispatchCommand(Rt.CLEAR_EDITOR_COMMAND,void 0)}},disabled:!a},ht.createElement(Q6,null)))}function xS(l){let{commentOrThread:t,deleteCommentOrThread:n,onClose:e,thread:s}=l;return ht.createElement(ht.Fragment,null,"Are you sure you want to delete this ",t.type,"?",ht.createElement("div",{className:"Modal__content"},ht.createElement(Va,{onClick:()=>{n(t,s),e()}},"Delete")," ",ht.createElement(Va,{onClick:()=>{e()}},"Cancel")))}function SS(l){let{comment:t,deleteComment:n,thread:e,rtf:s}=l;const r=Math.round((t.timeStamp-performance.now())/1e3),o=Math.round(r/60),[a,c]=mS();return ht.createElement("li",{className:"CodoxCommentPlugin_CommentsPanel_List_Comment"},ht.createElement("div",{className:"CodoxCommentPlugin_CommentsPanel_List_Details"},ht.createElement("span",{className:"CodoxCommentPlugin_CommentsPanel_List_Comment_Author"},t.author),ht.createElement("span",{className:"CodoxCommentPlugin_CommentsPanel_List_Comment_Time"},"· ",r>-10?"Just now":s.format(o,"minute"))),ht.createElement("p",{className:t.deleted?"CodoxCommentPlugin_CommentsPanel_DeletedComment":""},t.content),!t.deleted&&ht.createElement(ht.Fragment,null,ht.createElement(Va,{onClick:()=>{c("Delete Comment",i=>ht.createElement(xS,{commentOrThread:t,deleteCommentOrThread:n,thread:e,onClose:i}))},className:"CodoxCommentPlugin_CommentsPanel_List_DeleteButton"},ht.createElement(yS,null)),a))}function i5(l){let{activeIDs:t,comments:n,deleteCommentOrThread:e,listRef:s,submitAddComment:r,markNodeMap:o,codoxComments:a}=l;const[c]=(0,Ja.useLexicalComposerContext)(),[i,u]=(0,ht.useState)(0),[d,f]=mS(),p=(0,ht.useMemo)(()=>new Intl.RelativeTimeFormat("en",{localeMatcher:"best fit",numeric:"auto",style:"short"}),[]);return(0,ht.useEffect)(()=>{const h=setTimeout(()=>{u(i+1)},1e4);return()=>{clearTimeout(h)}},[i]),ht.createElement("ul",{className:"CodoxCommentPlugin_CommentsPanel_List",ref:s},n.map(h=>{const m=h.codoxId;if(!m)return null;if(h.type==="thread"){const g=()=>{if(o.get(m)!==void 0&&(t===null||t.indexOf(m)===-1)){const v=document.activeElement;c.update(()=>{(0,Rt.$setSelection)(null)},{onUpdate(){v!==null&&v.focus()}})}};return ht.createElement("li",{key:m,onClick:g,className:`CodoxCommentPlugin_CommentsPanel_List_Thread ${o.has(m)?"interactive":""} ${t.indexOf(m)===-1?"":"active"}`},ht.createElement("div",{className:"CodoxCommentPlugin_CommentsPanel_List_Thread_QuoteBox"},ht.createElement("blockquote",{className:"CodoxCommentPlugin_CommentsPanel_List_Thread_Quote"},"> ",ht.createElement("span",null,h.quote)),ht.createElement(Va,{onClick:()=>{f("Delete Thread",v=>ht.createElement(xS,{commentOrThread:h,deleteCommentOrThread:e,onClose:v}))},className:"CodoxCommentPlugin_CommentsPanel_List_DeleteButton"},ht.createElement(yS,null)),d),ht.createElement("ul",{className:"CodoxCommentPlugin_CommentsPanel_List_Thread_Comments"},h.comments.map(v=>ht.createElement(SS,{key:v.codoxId,comment:v,deleteComment:e,thread:h,rtf:p}))),ht.createElement("div",{className:"CodoxCommentPlugin_CommentsPanel_List_Thread_Editor"},ht.createElement(o5,{submitAddComment:r,thread:h,placeholder:"Reply to comment...",codoxComments:a})))}return ht.createElement(SS,{key:m,comment:h,deleteComment:e,rtf:p})}))}function s5(l){let{activeIDs:t,deleteCommentOrThread:n,comments:e,submitAddComment:s,markNodeMap:r,codoxComments:o,style:a,closeComments:c}=l;const i=(0,ht.useRef)(null),u=e.length===0;return ht.createElement("div",Jy({className:"CodoxCommentPlugin_CommentsPanel"},a&&{style:a}),ht.createElement("h2",{className:"CodoxCommentPlugin_CommentsPanel_Heading"},"Comments",ht.createElement("div",{onClick:c,style:{display:"inline-block",position:"absolute",right:"5px",top:"5px",cursor:"pointer"}},ht.createElement(vS,null))),u?ht.createElement("div",{className:"CodoxCommentPlugin_CommentsPanel_Empty"},"No Comments"):ht.createElement(i5,{activeIDs:t,comments:e,deleteCommentOrThread:n,listRef:i,submitAddComment:s,markNodeMap:r,codoxComments:o}))}function ES(){const l=(0,uS.useCollaborationContext)(),{yjsDocMap:t,name:n}=l;return n||"user"}function a5(l){const[t]=(0,Ja.useLexicalComposerContext)(),n=(t&&t.getRootElement()&&t.getRootElement().getBoundingClientRect(),t.getKey()),e=mP(n),s=Un.getCodoxComments(n),r=(0,ht.useMemo)(()=>new Map,[]),[o,a]=(0,ht.useState)(),[c,i]=(0,ht.useState)([]),[u,d]=(0,ht.useState)(!1),[f,p]=(0,ht.useState)(!1);(0,ht.useEffect)(()=>{!e.length&&f?p(!1):e.length},[e]);const h=(0,ht.useCallback)(()=>{t.update(()=>{const v=(0,Rt.$getSelection)();v!==null&&(v.dirty=!0)}),d(!1)},[t]),m=(0,ht.useCallback)((v,b)=>{if(v.type==="comment"){if(pt.default.debug("[deleteCommentOrThread]: type comment new values",{comment:v,thread:b,markNodeMap:r}),s.removeComment(b.codoxId,v.codoxId),!b)return;const _=b.codoxId,E=r.get(_);t.update(()=>{E?E.forEach((S,w)=>{const y=(0,Rt.$getNodeByKey)(w);pt.default.debug("[deleteCommentOrThread]: type comment new values",{lexicalNode:y}),y&&y.markDirty()}):(0,Rt.$getRoot)().markDirty(),(0,Rt.$addUpdateTag)(ls.historic),(0,Rt.$addUpdateTag)(Md)})}else{pt.default.debug("[deleteCommentOrThread]: type thread new values",{comment:v,markNodeMap:r});const _=b!==void 0?b.codoxId:v.codoxId,E=r.get(_);setTimeout(()=>{t.update(()=>{if(E)for(const S of E){const w=(0,Rt.$getNodeByKey)(S);pt.default.debug("[deleteCommentOrThread]: type thread new values",{node:w}),(0,Bi.$isMarkNode)(w)&&(w.deleteID(_),w.getIDs().length===0&&(0,Bi.$unwrapMarkNode)(w))}else(0,Rt.$getRoot)().markDirty(),pt.default.debug("[deleteCommentOrThread][refreshComments]");s.refreshComments(!0),(0,Rt.$addUpdateTag)(Md)})})}},[t,r]),g=(0,ht.useCallback)((v,b,_,E)=>{if(pt.default.debug("[submitAddComment]: new values",{commentOrThread:v,isInlineComment:b,thread:_,markNodeMap:r}),_?s.addComment(_.codoxId,v):s.addCommentThread(v),b)t.update(()=>{if((0,Rt.$isRangeSelection)(E)){const S=E.isBackward(),w=v.codoxId;(0,Bi.$wrapSelectionInMarkNode)(E,S,w),(0,Rt.$addUpdateTag)(Md)}}),d(!1);else if(!b&&_){const S=_.codoxId,w=r.get(S);if(!w)return void s.removeComment(_.codoxId,v.codoxId);t.update(()=>{w.forEach((y,x)=>{let C=(0,Rt.$getNodeByKey)(x);C&&C.markDirty()}),(0,Rt.$addUpdateTag)(ls.historic),(0,Rt.$addUpdateTag)(Md)})}},[t]);return(0,ht.useEffect)(()=>{const v=[];for(let b=0;b<c.length;b++){const _=c[b],E=r.get(_);if(E!==void 0)for(const S of E){const w=t.getElementByKey(S);w!==null&&(w.classList.add("selected"),v.push(w),p(!0))}}return()=>{for(let b=0;b<v.length;b++)v[b].classList.remove("selected")}},[c,t,r]),(0,ht.useEffect)(()=>{const v=new Map;return(0,Hc.mergeRegister)((0,Hc.registerNestedElementResolver)(t,Bi.MarkNode,b=>(0,Bi.$createMarkNode)(b.getIDs()),(b,_)=>{b.getIDs().forEach(E=>{_.addID(E)})}),t.registerMutationListener(Bi.MarkNode,b=>{t.getEditorState().read(()=>{for(const[_,E]of b){const S=(0,Rt.$getNodeByKey)(_);let w=[];E==="destroyed"?w=v.get(_)||[]:(0,Bi.$isMarkNode)(S)&&(w=S.getIDs());for(let y=0;y<w.length;y++){const x=w[y];let C=r.get(x);v.set(_,w),E==="destroyed"?C!==void 0&&(C.delete(_),C.size===0&&r.delete(x)):(C===void 0&&(C=new Set,r.set(x,C)),C.has(_)||C.add(_))}}})}),t.registerUpdateListener(b=>{let{editorState:_,tags:E}=b;_.read(()=>{const S=(0,Rt.$getSelection)();let w=!1,y=!1;if((0,Rt.$isRangeSelection)(S)){const x=S.anchor.getNode();if((0,Rt.$isTextNode)(x)){const C=(0,Bi.$getMarkIDs)(x,S.anchor.offset);C!==null&&(i(C),w=!0),S.isCollapsed()||(a(x.getKey()),y=!0)}}w||i(x=>x.length===0?x:[]),y||a(null),(0,Rt.$isRangeSelection)(S)&&d(!1)})}),t.registerCommand(Dy,()=>{const b=window.getSelection();return b!==null&&b.removeAllRanges(),d(!0),!0},Rt.COMMAND_PRIORITY_EDITOR))},[t,r]),ht.createElement(ht.Fragment,null,u&&(0,Gc.createPortal)(ht.createElement(r5,{editor:t,cancelAddComment:h,submitAddComment:g,codoxComments:s}),document.body),o!=null&&!u&&(0,Gc.createPortal)(ht.createElement(e5,{anchorKey:o,editor:t,onAddComment:()=>{t.dispatchCommand(Dy,void 0)}}),document.body),(0,Gc.createPortal)(ht.createElement(Va,{className:"CodoxCommentPlugin_ShowCommentsButton "+(f?"active":""),onClick:()=>p(!f),title:f?"Hide Comments":"Show Comments"},ht.createElement(vS,null)),document.body),f&&(0,Gc.createPortal)(ht.createElement(s5,{comments:e,submitAddComment:g,deleteCommentOrThread:m,activeIDs:c,markNodeMap:r,codoxComments:s,closeComments:()=>p(!1)}),document.body))}var gh=An(766),eu={};eu.styleTagTransform=ea(),eu.setAttributes=Qs(),eu.insert=Zs().bind(null,"head"),eu.domAPI=Ys(),eu.insertStyleElement=Xs(),$s()(gh.A,eu),gh.A&&gh.A.locals&&gh.A.locals;var mh=An(225),tu={};tu.styleTagTransform=ea(),tu.setAttributes=Qs(),tu.insert=Zs().bind(null,"head"),tu.domAPI=Ys(),tu.insertStyleElement=Xs(),$s()(mh.A,tu),mh.A&&mh.A.locals&&mh.A.locals;function l5(l){let{label:t,value:n,onChange:e,placeholder:s="","data-test-id":r,type:o="text"}=l;return ht.createElement("div",{className:"CodoxInput__wrapper"},ht.createElement("label",{className:"CodoxInput__label"},t),ht.createElement("input",{type:o,className:"CodoxInput__input",placeholder:s,value:n,onChange:a=>{e(a.target.value)},"data-test-id":r}))}function CS(l,t){var n=Object.keys(l);if(Object.getOwnPropertySymbols){var e=Object.getOwnPropertySymbols(l);t&&(e=e.filter(function(s){return Object.getOwnPropertyDescriptor(l,s).enumerable})),n.push.apply(n,e)}return n}function yh(l){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?CS(Object(n),!0).forEach(function(e){c5(l,e,n[e])}):Object.getOwnPropertyDescriptors?Object.defineProperties(l,Object.getOwnPropertyDescriptors(n)):CS(Object(n)).forEach(function(e){Object.defineProperty(l,e,Object.getOwnPropertyDescriptor(n,e))})}return l}function c5(l,t,n){return(t=u5(t))in l?Object.defineProperty(l,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):l[t]=n,l}function u5(l){var t=d5(l,"string");return typeof t=="symbol"?t:t+""}function d5(l,t){if(typeof l!="object"||!l)return l;var n=l[Symbol.toPrimitive];if(n!==void 0){var e=n.call(l,t||"default");if(typeof e!="object")return e;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(l)}let Hd=!1;const f5=["#d0021b","#f5a623","#f8e71c","#8b572a","#7ed321","#417505","#bd10e0","#9013fe","#4a90e2","#50e3c2","#b8e986","#000000","#4a4a4a","#9b9b9b","#ffffff"];function p5(l){let{color:t,onChange:n}=l;const[e,s]=(0,ht.useState)(nu("hex",t)),[r,o]=(0,ht.useState)(t),a=(0,ht.useRef)(null),c=(0,ht.useMemo)(()=>({x:e.hsv.s/100*214,y:(100-e.hsv.v)/100*150}),[e.hsv.s,e.hsv.v]),i=(0,ht.useMemo)(()=>({x:e.hsv.h/360*214}),[e.hsv]);return(0,ht.useEffect)(()=>{a.current!==null&&n&&o(e.hex)},[e,n]),(0,ht.useEffect)(()=>{if(t===void 0)return;const u=nu("hex",t);s(u),o(u.hex)},[t]),ht.createElement("div",{className:"codox-color-picker-wrapper",style:{width:214},ref:a},ht.createElement(l5,{label:"Hex",onChange:u=>{if(o(u),/^#[0-9A-Fa-f]{6}$/i.test(u)){const d=nu("hex",u);s(d)}},value:r}),ht.createElement("div",{className:"codox-color-picker-basic-color"},f5.map(u=>ht.createElement("button",{className:u===e.hex?" active":"",key:u,style:{backgroundColor:u},onClick:()=>(d=>{o(d);let f=nu("hex",d);s(f),n(f.hex,Hd)})(u)}))),ht.createElement(jS,{className:"codox-color-picker-saturation",style:{backgroundColor:`hsl(${e.hsv.h}, 100%, 50%)`},onChange:u=>{let{x:d,y:f}=u;const p=nu("hsv",yh(yh({},e.hsv),{},{s:d/214*100,v:100-f/150*100}));s(p),o(p.hex),n(p.hex,Hd)}},ht.createElement("div",{className:"codox-color-picker-saturation_cursor",style:{backgroundColor:e.hex,left:c.x,top:c.y}})),ht.createElement(jS,{className:"codox-color-picker-hue",onChange:u=>{let{x:d}=u;const f=nu("hsv",yh(yh({},e.hsv),{},{h:d/214*360}));s(f),o(f.hex),n(f.hex,Hd)}},ht.createElement("div",{className:"codox-color-picker-hue_cursor",style:{backgroundColor:`hsl(${e.hsv.h}, 100%, 50%)`,left:i.x}})),ht.createElement("div",{className:"codox-color-picker-color",style:{backgroundColor:e.hex}}))}function jS(l){let{className:t,style:n,onChange:e,children:s}=l;const r=(0,ht.useRef)(null),o=(0,ht.useRef)(!1),a=c=>{if(r.current){const{current:i}=r,{width:u,height:d,left:f,top:p}=i.getBoundingClientRect(),h=kS(c.clientX-f,u,0),m=kS(c.clientY-p,d,0);e({x:h,y:m})}};return ht.createElement("div",{ref:r,className:t,style:n,onMouseDown:c=>{if(c.button!==0)return;a(c);const i=d=>{o.current=!0,Hd=!0,a(d)},u=d=>{o.current&&(Hd=!1),document.removeEventListener("mousemove",i,!1),document.removeEventListener("mouseup",u,!1),a(d),o.current=!1};document.addEventListener("mousemove",i,!1),document.addEventListener("mouseup",u,!1)}},s)}function kS(l,t,n){return l>t?t:l<n?n:l}function TS(l){if(!l.startsWith("#")){const t=document.createElement("canvas").getContext("2d");if(!t)throw new Error("2d context not supported or canvas already initialized");return t.fillStyle=l,t.fillStyle}return l.length===4||l.length===5?l=l.split("").map((t,n)=>n?t+t:"#").join(""):l.length===7||l.length===9?l:"#000000"}function AS(l){const t=(l.replace(/^#?([a-f\d])([a-f\d])([a-f\d])$/i,(n,e,s,r)=>"#"+e+e+s+s+r+r).substring(1).match(/.{2}/g)||[]).map(n=>parseInt(n,16));return{b:t[2],g:t[1],r:t[0]}}function Vy(l){let{r:t,g:n,b:e}=l;t/=255,n/=255,e/=255;const s=Math.max(t,n,e),r=s-Math.min(t,n,e);return{h:r?60*(s===t?(n-e)/r+(n<e?6:0):s===n?2+(e-t)/r:4+(t-n)/r):0,s:s?r/s*100:0,v:100*s}}function h5(l){let{h:t,s:n,v:e}=l;n/=100,e/=100;const s=~~(t/60),r=t/60-s,o=e*(1-n),a=e*(1-n*r),c=e*(1-n*(1-r)),i=s%6,u=Math.round(255*[e,a,o,o,c,e][i]),d=Math.round(255*[c,e,e,a,o,o][i]);return{b:Math.round(255*[o,o,c,e,e,a][i]),g:d,r:u}}function OS(l){let{b:t,g:n,r:e}=l;return"#"+[e,n,t].map(s=>s.toString(16).padStart(2,"0")).join("")}function nu(l,t){let n=TS("#121212"),e=AS(n),s=Vy(e);return l==="hex"?(n=TS(t),e=AS(n),s=Vy(e)):l==="rgb"?(e=t,n=OS(e),s=Vy(e)):l==="hsv"&&(s=t,e=h5(s),n=OS(e)),{hex:n,hsv:s,rgb:e}}const g5=ht.createContext(null);function m5(l){let{children:t,dropDownRef:n,onClose:e,dropdownClassName:s}=l;const[r,o]=(0,ht.useState)(),[a,c]=(0,ht.useState)(),i=(0,ht.useCallback)(d=>{o(f=>f?[...f,d]:[d])},[o]),u=(0,ht.useMemo)(()=>({registerItem:i}),[i]);return(0,ht.useEffect)(()=>{r&&!a&&c(r[0]),a&&a.current&&a.current.focus()},[r,a]),ht.createElement(g5.Provider,{value:u},ht.createElement("div",{className:s,ref:n,onKeyDown:d=>{if(!r)return;const f=d.key;["Escape","ArrowUp","ArrowDown","Tab"].includes(f)&&d.preventDefault(),f==="Escape"||f==="Tab"?e():f==="ArrowUp"?c(p=>{if(!p)return r[0];const h=r.indexOf(p)-1;return r[h===-1?r.length-1:h]}):f==="ArrowDown"&&c(p=>p?r[r.indexOf(p)+1]:r[0])}},t))}function y5(l){let{disabled:t=!1,buttonLabel:n,buttonAriaLabel:e,buttonClassName:s,buttonIconClassName:r,children:o,stopCloseOnClickSelf:a,dropdownClassName:c,buttonLabelClassName:i,dropdownChevronClassName:u}=l;const d=(0,ht.useRef)(null),f=(0,ht.useRef)(null),[p,h]=(0,ht.useState)(!1);return(0,ht.useEffect)(()=>{const m=f.current,g=d.current;if(p&&m!==null&&g!==null){const{top:v,left:b}=m.getBoundingClientRect();g.style.top=`${v+m.offsetHeight+4}px`,g.style.left=`${Math.min(b,window.innerWidth-g.offsetWidth-20)}px`}},[d,f,p]),(0,ht.useEffect)(()=>{const m=f.current;if(m!==null&&p){const g=v=>{const b=v.target;a&&d.current&&d.current.contains(b)||m.contains(b)||h(!1)};return document.addEventListener("click",g),()=>{document.removeEventListener("click",g)}}},[d,f,p,a]),(0,ht.useEffect)(()=>{const m=()=>{if(p){const g=f.current,v=d.current;if(g!==null&&v!==null){const{top:b}=g.getBoundingClientRect(),_=b+g.offsetHeight+4;_!==v.getBoundingClientRect().top&&(v.style.top=`${_}px`)}}};return document.addEventListener("scroll",m),()=>{document.removeEventListener("scroll",m)}},[f,d,p]),ht.createElement(ht.Fragment,null,ht.createElement("button",{type:"button",disabled:t,"aria-label":e||n,className:s,onClick:()=>h(!p),ref:f},r&&ht.createElement("span",{className:r}),n&&ht.createElement("span",{className:i},n),ht.createElement("i",{className:u})),p&&(0,Gc.createPortal)(ht.createElement(m5,{dropDownRef:d,onClose:()=>{h(!1),f&&f.current&&f.current.focus()},dropdownClassName:c},o),document.body))}const v5=["disabled","stopCloseOnClickSelf","color","onChange"];function Ky(){return Ky=Object.assign?Object.assign.bind():function(l){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var e in n)({}).hasOwnProperty.call(n,e)&&(l[e]=n[e])}return l},Ky.apply(null,arguments)}function b5(l,t){if(l==null)return{};var n,e,s=_5(l,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(l);for(e=0;e<r.length;e++)n=r[e],t.includes(n)||{}.propertyIsEnumerable.call(l,n)&&(s[n]=l[n])}return s}function _5(l,t){if(l==null)return{};var n={};for(var e in l)if({}.hasOwnProperty.call(l,e)){if(t.includes(e))continue;n[e]=l[e]}return n}function NS(l){let{disabled:t=!1,stopCloseOnClickSelf:n=!0,color:e,onChange:s}=l,r=b5(l,v5);return ht.createElement(y5,Ky({},r,{disabled:t,stopCloseOnClickSelf:n}),ht.createElement(p5,{color:e,onChange:s}))}const w5=l=>{let{onColorChange:t,buttonClassName:n,buttonIconClassName:e,buttonAriaLabel:s,buttonLabel:r,dropdownClassName:o,buttonLabelClassName:a,dropdownChevronClassName:c}=l;const[i]=(0,Ja.useLexicalComposerContext)(),[u,d]=(0,ht.useState)(()=>i.isEditable()),[f,p]=(0,ht.useState)("");(0,ht.useEffect)(()=>(0,Hc.mergeRegister)(i.registerEditableListener(m=>{d(m)}),i.registerUpdateListener(m=>{let{editorState:g}=m;g.read(()=>{const v=(0,Rt.$getSelection)();if((0,Rt.$isRangeSelection)(v)){let b=(0,Bl.$getSelectionStyleValueForProperty)(v,"color");b!==f&&(p(b||""),t(b))}})})),[i]);const h=(0,ht.useCallback)((m,g)=>{i.update(()=>{const v=(0,Rt.$getSelection)();v!==null&&(0,Bl.$patchStyleText)(v,{color:m})})},[i]);return ht.createElement(NS,{disabled:!u,color:f,onChange:h,buttonClassName:n||"",buttonIconClassName:e||"",buttonAriaLabel:s||"",buttonLabel:r||"",dropdownClassName:o||"",buttonLabelClassName:a||"",dropdownChevronClassName:c||""})},x5=w5,S5=l=>{let{onColorChange:t,buttonClassName:n,buttonIconClassName:e,buttonAriaLabel:s,buttonLabel:r,dropdownClassName:o,buttonLabelClassName:a,dropdownChevronClassName:c}=l;const[i]=(0,Ja.useLexicalComposerContext)(),[u,d]=(0,ht.useState)(()=>i.isEditable()),[f,p]=(0,ht.useState)("#fff");(0,ht.useEffect)(()=>(0,Hc.mergeRegister)(i.registerEditableListener(m=>{d(m)}),i.registerUpdateListener(m=>{let{editorState:g}=m;g.read(()=>{const v=(0,Rt.$getSelection)();if((0,Rt.$isRangeSelection)(v)){let b=(0,Bl.$getSelectionStyleValueForProperty)(v,"background-color");b!==f&&(p(b||""),t(b))}})})),[i]);const h=(0,ht.useCallback)((m,g)=>{i.update(()=>{const v=(0,Rt.$getSelection)();v!==null&&(0,Bl.$patchStyleText)(v,{"background-color":m})})},[i]);return ht.createElement(NS,{disabled:!u,color:f,onChange:h,buttonClassName:n||"",buttonIconClassName:e||"",buttonAriaLabel:s||"",buttonLabel:r||"",dropdownClassName:o||"",buttonLabelClassName:a||"",dropdownChevronClassName:c||""})},E5=S5;var PS=za.yy;za._U,za.a8,za.Vs,za.Cn;var IS=za.gK,MS=za.vv;const FD="",RS=({styleConfig:l})=>{const{heading:t}=l;return t.find(n=>n.title==="Heading1"),t.find(n=>n.title==="Heading2"),t.find(n=>n.title==="Heading3"),t.find(n=>n.title==="Heading4"),t.find(n=>n.title==="Heading5"),ae.jsx(Ay,{children:ae.jsx("style",{type:"text/css",children:`
|
|
1485
1485
|
.PlaygroundEditorTheme__h1 {
|
|
1486
1486
|
font-size: 14.5px;
|
|
1487
1487
|
font-weight: 700;
|
|
@@ -1542,5 +1542,5 @@ Tested fromCodoxNode() output: ${JSON.stringify(c)}`)},{discrete:!0}),e)return e
|
|
|
1542
1542
|
}
|
|
1543
1543
|
`,document.head.appendChild(e),()=>{document.removeEventListener("click",t),n()}},[l]),he.useEffect(()=>{const t=()=>{l.update(()=>{document.querySelectorAll("[data-cross-ref]").forEach(s=>{const r=s.getAttribute("id");if(r){const o=document.querySelector(`[data-ref-id="ref-${r}"]`),a=s.getAttribute("data-lexical-node-key");if(o){const c=o.textContent||"";s.textContent!==c&&(s.textContent=c)}else if(a){const c=Fn(a);c&&(c==null||c.remove())}}})})},n=l.registerUpdateListener(()=>{t()});return()=>{n()}},[l]),null},j5="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAzODQgNTEyIj48IS0tIUZvbnQgQXdlc29tZSBGcmVlIDYuNy4yIGJ5IEBmb250YXdlc29tZSAtIGh0dHBzOi8vZm9udGF3ZXNvbWUuY29tIExpY2Vuc2UgLSBodHRwczovL2ZvbnRhd2Vzb21lLmNvbS9saWNlbnNlL2ZyZWUgQ29weXJpZ2h0IDIwMjUgRm9udGljb25zLCBJbmMuLS0+PHBhdGggZmlsbD0iI2ZmZmZmZiIgZD0iTTIxNC42IDQxLjRjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwbC0xNjAgMTYwYy0xMi41IDEyLjUtMTIuNSAzMi44IDAgNDUuM3MzMi44IDEyLjUgNDUuMyAwTDE2MCAxNDEuMiAxNjAgNDQ4YzAgMTcuNyAxNC4zIDMyIDMyIDMyczMyLTE0LjMgMzItMzJsMC0zMDYuN0wzMjkuNCAyNDYuNmMxMi41IDEyLjUgMzIuOCAxMi41IDQ1LjMgMHMxMi41LTMyLjggMC00NS4zbC0xNjAtMTYweiIvPjwvc3ZnPg==",k5="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAzODQgNTEyIj48IS0tIUZvbnQgQXdlc29tZSBGcmVlIDYuNy4yIGJ5IEBmb250YXdlc29tZSAtIGh0dHBzOi8vZm9udGF3ZXNvbWUuY29tIExpY2Vuc2UgLSBodHRwczovL2ZvbnRhd2Vzb21lLmNvbS9saWNlbnNlL2ZyZWUgQ29weXJpZ2h0IDIwMjUgRm9udGljb25zLCBJbmMuLS0+PHBhdGggZmlsbD0iI2ZmZmZmZiIgZD0iTTE2OS40IDQ3MC42YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwbDE2MC0xNjBjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNzLTMyLjgtMTIuNS00NS4zIDBMMjI0IDM3MC44IDIyNCA2NGMwLTE3LjctMTQuMy0zMi0zMi0zMnMtMzIgMTQuMy0zMiAzMmwwIDMwNi43TDU0LjYgMjY1LjRjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwcy0xMi41IDMyLjggMCA0NS4zbDE2MCAxNjB6Ii8+PC9zdmc+",T5="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAzODQgNTEyIj48IS0tIUZvbnQgQXdlc29tZSBGcmVlIDYuNy4yIGJ5IEBmb250YXdlc29tZSAtIGh0dHBzOi8vZm9udGF3ZXNvbWUuY29tIExpY2Vuc2UgLSBodHRwczovL2ZvbnRhd2Vzb21lLmNvbS9saWNlbnNlL2ZyZWUgQ29weXJpZ2h0IDIwMjUgRm9udGljb25zLCBJbmMuLS0+PHBhdGggZmlsbD0iI2ZmZmZmZiIgZD0iTTM0Mi42IDE1MC42YzEyLjUtMTIuNSAxMi41LTMyLjggMC00NS4zcy0zMi44LTEyLjUtNDUuMyAwTDE5MiAyMTAuNyA4Ni42IDEwNS40Yy0xMi41LTEyLjUtMzIuOC0xMi41LTQ1LjMgMHMtMTIuNSAzMi44IDAgNDUuM0wxNDYuNyAyNTYgNDEuNCAzNjEuNGMtMTIuNSAxMi41LTEyLjUgMzIuOCAwIDQ1LjNzMzIuOCAxMi41IDQ1LjMgMEwxOTIgMzAxLjMgMjk3LjQgNDA2LjZjMTIuNSAxMi41IDMyLjggMTIuNSA0NS4zIDBzMTIuNS0zMi44IDAtNDUuM0wyMzcuMyAyNTYgMzQyLjYgMTUwLjZ6Ii8+PC9zdmc+",A5="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAzMjAgNTEyIj48IS0tIUZvbnQgQXdlc29tZSBGcmVlIDYuNy4yIGJ5IEBmb250YXdlc29tZSAtIGh0dHBzOi8vZm9udGF3ZXNvbWUuY29tIExpY2Vuc2UgLSBodHRwczovL2ZvbnRhd2Vzb21lLmNvbS9saWNlbnNlL2ZyZWUgQ29weXJpZ2h0IDIwMjUgRm9udGljb25zLCBJbmMuLS0+PHBhdGggZmlsbD0iI2ZmZmZmZiIgZD0iTTMxMC42IDIzMy40YzEyLjUgMTIuNSAxMi41IDMyLjggMCA0NS4zbC0xOTIgMTkyYy0xMi41IDEyLjUtMzIuOCAxMi41LTQ1LjMgMHMtMTIuNS0zMi44IDAtNDUuM0wyNDIuNyAyNTYgNzMuNCA4Ni42Yy0xMi41LTEyLjUtMTIuNS0zMi44IDAtNDUuM3MzMi44LTEyLjUgNDUuMyAwbDE5MiAxOTJ6Ii8+PC9zdmc+",O5="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA1MTIgNTEyIj48IS0tIUZvbnQgQXdlc29tZSBGcmVlIDYuNy4yIGJ5IEBmb250YXdlc29tZSAtIGh0dHBzOi8vZm9udGF3ZXNvbWUuY29tIExpY2Vuc2UgLSBodHRwczovL2ZvbnRhd2Vzb21lLmNvbS9saWNlbnNlL2ZyZWUgQ29weXJpZ2h0IDIwMjUgRm9udGljb25zLCBJbmMuLS0+PHBhdGggZmlsbD0iI2ZmZmZmZiIgZD0iTTIzMy40IDQwNi42YzEyLjUgMTIuNSAzMi44IDEyLjUgNDUuMyAwbDE5Mi0xOTJjMTIuNS0xMi41IDEyLjUtMzIuOCAwLTQ1LjNzLTMyLjgtMTIuNS00NS4zIDBMMjU2IDMzOC43IDg2LjYgMTY5LjRjLTEyLjUtMTIuNS0zMi44LTEyLjUtNDUuMyAwcy0xMi41IDMyLjggMCA0NS4zbDE5MiAxOTJ6Ii8+PC9zdmc+",N5="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz48IS0tIFVwbG9hZGVkIHRvOiBTVkcgUmVwbywgd3d3LnN2Z3JlcG8uY29tLCBHZW5lcmF0b3I6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPg0KPHN2ZyB3aWR0aD0iODAwcHgiIGhlaWdodD0iODAwcHgiIHZpZXdCb3g9IjAgMCAxNiAxNiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBmaWxsPSIjZmZmIj48cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTMuMjIxIDMuNzM5bDIuMjYxIDIuMjY5TDcuNyAzLjc4NGwtLjctLjctMS4wMTIgMS4wMDctLjAwOC0xLjZhLjUyMy41MjMgMCAwIDEgLjUtLjUyNkg4VjFINi40OEExLjQ4MiAxLjQ4MiAwIDAgMCA1IDIuNDg5VjQuMUwzLjkyNyAzLjAzM2wtLjcwNi43MDZ6bTYuNjcgMS43OTRoLjAxYy4xODMuMzExLjQ1MS40NjcuODA2LjQ2Ny4zOTMgMCAuNzA2LS4xNjguOTQtLjUwMy4yMzYtLjMzNS4zNTMtLjc4LjM1My0xLjMzMyAwLS41MTEtLjEtLjkxMy0uMzAxLTEuMjA3LS4yMDEtLjI5NS0uNDg4LS40NDItLjg2LS40NDItLjQwNSAwLS43MTguMTk0LS45MzguNTgxaC0uMDFWMUg5djQuOTE5aC44OXYtLjM4NnptLS4wMTUtMS4wNjF2LS4zNGMwLS4yNDguMDU4LS40NDguMTc1LS42MDFhLjU0LjU0IDAgMCAxIC40NDUtLjIzLjQ5LjQ5IDAgMCAxIC40MzYuMjMzYy4xMDQuMTU0LjE1NS4zNjguMTU1LjY0MyAwIC4zMy0uMDU2LjU4Ny0uMTY5Ljc2OGEuNTI0LjUyNCAwIDAgMS0uNDcuMjcuNDk1LjQ5NSAwIDAgMS0uNDExLS4yMTEuODUzLjg1MyAwIDAgMS0uMTYtLjUzMnpNOSAxMi43NjljLS4yNTYuMTU0LS42MjUuMjMxLTEuMTA4LjIzMS0uNTYzIDAtMS4wMi0uMTc4LTEuMzY5LS41MzMtLjM0OS0uMzU1LS41MjMtLjgxMy0uNTIzLTEuMzc0IDAtLjY0OC4xODYtMS4xNTguNTYtMS41My4zNzQtLjM3Ni44NzUtLjU2MyAxLjUtLjU2My40MzMgMCAuNzQ2LjA2Ljk0LjE3OXYuOTk4YTEuMjYgMS4yNiAwIDAgMC0uNzkyLS4yNzZjLS4zMjUgMC0uNTgzLjEtLjc3NC4yOTgtLjE5LjE5Ni0uMjgzLjQ2OC0uMjgzLjgxNiAwIC4zMzguMDkuNjAzLjI3Mi43OTcuMTgyLjE5MS40MzEuMjg3Ljc0OS4yODcuMjgyIDAgLjU1OC0uMDkyLjgyOC0uMjc2di45NDZ6TTQgN0wzIDh2NmwxIDFoN2wxLTFWOGwtMS0xSDR6bTAgMWg3djZINFY4eiIvPjwvc3ZnPg==",P5="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz48IS0tIFVwbG9hZGVkIHRvOiBTVkcgUmVwbywgd3d3LnN2Z3JlcG8uY29tLCBHZW5lcmF0b3I6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPg0KPHN2ZyB3aWR0aD0iODAwcHgiIGhlaWdodD0iODAwcHgiIHZpZXdCb3g9IjAgMCAxNiAxNiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiBmaWxsPSIjZmZmIj48cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTExLjYgMi42NzdjLjE0Ny0uMzEuMzU2LS40NjUuNjI2LS40NjUuMjQ4IDAgLjQ0LjExOC41NzMuMzUzLjEzNC4yMzYuMjAxLjU1Ny4yMDEuOTY2IDAgLjQ0My0uMDc4Ljc5OC0uMjM1IDEuMDY3LS4xNTYuMjY4LS4zNjUuNDAyLS42MjcuNDAyLS4yMzcgMC0uNDE2LS4xMjUtLjUzNy0uMzc0aC0uMDA4di4zMUgxMVYxaC41OTN2MS42NzdoLjAwOHptLS4wMTYgMS4xYS43OC43OCAwIDAgMCAuMTA3LjQyNmMuMDcxLjExMy4xNjMuMTY5LjI3NC4xNjkuMTM2IDAgLjI0LS4wNzIuMzE0LS4yMTYuMDc1LS4xNDUuMTEzLS4zNS4xMTMtLjYxNSAwLS4yMi0uMDM1LS4zOS0uMTA0LS41MTQtLjA2Ny0uMTI0LS4xNjQtLjE4Ny0uMjktLjE4Ny0uMTIgMC0uMjE5LjA2Mi0uMjk3LjE4NWEuODg2Ljg4NiAwIDAgMC0uMTE3LjQ4di4yNzJ6TTQuMTIgNy42OTVMMiA1LjU2OGwuNjYyLS42NjIgMS4wMDYgMXYtMS41MUExLjM5IDEuMzkgMCAwIDEgNS4wNTUgM0g3LjR2LjkwNUg1LjA1NWEuNDkuNDkgMCAwIDAtLjQ2OC40OTNsLjAwNyAxLjUuOTQ5LS45NDQuNjU2LjY1Ni0yLjA4IDIuMDg1ek05LjM1NiA0LjkzSDEwVjMuMjJDMTAgMi40MDggOS42ODUgMiA5LjA1NiAyYy0uMTM1IDAtLjI4NS4wMjQtLjQ1LjA3M2ExLjQ0NCAxLjQ0NCAwIDAgMC0uMzg4LjE2N3YuNjY1Yy4yMzctLjIwMy40ODctLjMwNC43NS0uMzA0LjI2MSAwIC4zOTIuMTU2LjM5Mi40NjlsLS42LjEwM2MtLjUwNi4wODYtLjc2LjQwNi0uNzYuOTYxIDAgLjI2My4wNjEuNDczLjE4My42MzFBLjYxLjYxIDAgMCAwIDguNjkgNWMuMjkgMCAuNTA5LS4xNi42NTctLjQ4aC4wMDl2LjQxem0uMDA0LTEuMzU1di4xOTNhLjc1Ljc1IDAgMCAxLS4xMi40MzYuMzY4LjM2OCAwIDAgMS0uMzEzLjE3LjI3Ni4yNzYgMCAwIDEtLjIyLS4wOTUuMzguMzggMCAwIDEtLjA4LS4yNDhjMC0uMjIyLjExLS4zNTEuMzMyLS4zODlsLjQtLjA2N3pNNyAxMi45M2gtLjY0NHYtLjQxaC0uMDA5Yy0uMTQ4LjMyLS4zNjcuNDgtLjY1Ny40OGEuNjEuNjEgMCAwIDEtLjUwNy0uMjM1Yy0uMTIyLS4xNTgtLjE4My0uMzY4LS4xODMtLjYzIDAtLjU1Ni4yNTQtLjg3Ni43Ni0uOTYybC42LS4xMDNjMC0uMzEzLS4xMy0uNDctLjM5Mi0uNDctLjI2MyAwLS41MTMuMTAyLS43NS4zMDV2LS42NjVjLjA5NS0uMDYzLjIyNC0uMTE5LjM4OC0uMTY3LjE2NS0uMDQ5LjMxNS0uMDczLjQ1LS4wNzMuNjMgMCAuOTQ0LjQwNy45NDQgMS4yMnYxLjcxem0tLjY0LTEuMTYydi0uMTkzbC0uNC4wNjhjLS4yMjIuMDM3LS4zMzMuMTY2LS4zMzMuMzg4IDAgLjEuMDI3LjE4My4wOC4yNDhhLjI3Ni4yNzYgMCAwIDAgLjIyLjA5NS4zNjguMzY4IDAgMCAwIC4zMTItLjE3Yy4wOC0uMTE2LjEyLS4yNi4xMi0uNDM2ek05LjI2MiAxM2MuMzIxIDAgLjU2OC0uMDU4LjczOC0uMTczdi0uNzFhLjkuOSAwIDAgMS0uNTUyLjIwNy42MTkuNjE5IDAgMCAxLS41LS4yMTVjLS4xMi0uMTQ1LS4xODEtLjM0NS0uMTgxLS41OTggMC0uMjYuMDYzLS40NjQuMTg5LS42MTJhLjY0NC42NDQgMCAwIDEgLjUxNi0uMjIzYy4xOTQgMCAuMzcuMDY5LjUyOC4yMDd2LS43NDljLS4xMjktLjA5LS4zMzgtLjEzNC0uNjI2LS4xMzQtLjQxNyAwLS43NTEuMTQtMS4wMDEuNDIyLS4yNDkuMjgtLjM3My42NjItLjM3MyAxLjE0OCAwIC40Mi4xMTYuNzY0LjM0OSAxLjAzLjIzMi4yNjcuNTM3LjQuOTEzLjR6TTIgOWwxLTFoOWwxIDF2NWwtMSAxSDNsLTEtMVY5em0xIDB2NWg5VjlIM3ptMy0ybDEtMWg3bDEgMXY1bC0xIDFWN0g2eiIvPjwvc3ZnPg==",BD="",I5=({handleClose:l,searchText:t,setSearchText:n,replaceText:e,setReplaceText:s,handleReplaceAll:r,handleReplace:o,handleNextMatch:a,handlePreviousMatch:c,matchesCount:i,currentMatchIndex:u,searchInputRef:d,replaceInputRef:f,ReplaceBoxOpen:p,setReplaceBoxOpen:h})=>ae.jsx("div",{className:"search-and-replace-modal-overlay modal-overlay",children:ae.jsxs("div",{className:"search-and-replace-modal-content modal-content",children:[ae.jsx("div",{className:"search-and-replace-search-section search-section",children:ae.jsxs("div",{className:"search-and-replace-search-header search-header",children:[ae.jsx("img",{className:`search-and-replace-${p?"chevronDownIcon":"chevronRightIcon"}`,width:20,height:20,src:p?O5:A5,alt:"",onClick:()=>h(!p)}),ae.jsx("span",{children:"Find"}),ae.jsxs("div",{className:"search-and-replace-search-controls search-controls",children:[ae.jsx("input",{autoFocus:!0,type:"text",value:t,onChange:m=>n(m.target.value),className:"search-and-replace-search-input search-input",placeholder:"Search",ref:d}),i===0?ae.jsx("span",{className:"search-and-replace-no-results",children:"No results"}):ae.jsxs("span",{className:"search-and-replace-results-count",children:[u+1," of ",i]}),ae.jsx("button",{className:"search-and-replace-control-btn control-btn",onClick:c,children:ae.jsx("img",{className:"search-and-replace-upArrowIcon upArrowIcon",src:j5,alt:""})}),ae.jsx("button",{className:"search-and-replace-control-btn control-btn",onClick:a,children:ae.jsx("img",{className:"search-and-replace-downArrowIcon downArrowIcon",src:k5,alt:""})}),ae.jsx("button",{className:"search-and-replace-control-btn control-btn close",onClick:l,children:ae.jsx("img",{className:"search-and-replace-downArrowIcon downArrowIcon downArrowIcon",src:T5,alt:""})})]})]})}),p&&ae.jsx("div",{className:"search-and-replace-replace-section replace-section",children:ae.jsxs("div",{className:"search-and-replace-replace-header replace-header",children:[ae.jsx("span",{children:"Replace"}),ae.jsxs("div",{className:"search-and-replace-replace-controls replace-controls",children:[ae.jsx("input",{type:"text",value:e,onChange:m=>s(m.target.value),className:"search-and-replace-replace-input replace-input",placeholder:"Replace",ref:f}),ae.jsx("button",{className:"search-and-replace-control-btn control-btn",onClick:o,children:ae.jsx("img",{width:25,height:22,src:N5,alt:""})}),ae.jsx("button",{className:"search-and-replace-control-btn control-btn",onClick:r,children:ae.jsx("img",{width:25,height:22,src:P5,alt:""})})]})]})})]})});function M5({editor:l,matches:t,currentMatchIndex:n}){const[e,s]=he.useState([]);return he.useEffect(()=>{const r=[];t.forEach((o,a)=>{const c=l.getElementByKey(o.key);if(c&&c.firstChild){const i=c.firstChild;if(i.nodeType===Node.TEXT_NODE){const u=i.textContent||"",d=Math.min(o.start,u.length),f=Math.min(o.end,u.length),p=document.createRange();try{p.setStart(i,d),p.setEnd(i,f)}catch(g){console.error("Error setting range:",g);return}const h=p.getBoundingClientRect(),m=l.getRootElement();if(m){const g=m.getBoundingClientRect();r.push({key:`${o.key}-${o.start}`,top:h.top-g.top,left:h.left-g.left,width:h.width,height:h.height,isSelected:a===n})}}}}),s(r)},[t,n,l]),ae.jsx("div",{className:"search-highlight-container",style:{position:"absolute",top:0,left:0,pointerEvents:"none",width:"100%",height:"100%"},children:e.map(r=>ae.jsx("div",{className:"search-highlight",style:{position:"absolute",top:r.top,left:r.left,width:r.width,height:r.height,backgroundColor:r.isSelected?"orange":"yellow",opacity:r.isSelected?.7:.4,pointerEvents:"none"}},r.key))})}function zS(){const[l]=yn(),[t,n]=he.useState(!1),[e,s]=he.useState(""),[r,o]=he.useState(""),[a,c]=he.useState([]),[i,u]=he.useState(-1),d=he.useRef(null),f=he.useRef(null),[p,h]=he.useState(!1);he.useEffect(()=>{d&&d.current&&d.current.focus()},[]);function m(C){let T=[];return C instanceof Zr&&T.push(C),C.getChildren&&typeof C.getChildren=="function"&&C.getChildren().forEach(R=>{T=T.concat(m(R))}),T}const g=he.useCallback(()=>{if(!t||e===""){c([]),u(-1);return}l.getEditorState().read(()=>{const C=In(),T=m(C),R=[],F=e.toLowerCase();T.forEach(I=>{const A=I.getTextContent().toLowerCase();let j=0;for(;j<A.length;){const O=A.indexOf(F,j);if(O===-1)break;R.push({key:I.getKey(),start:O,end:O+e.length}),j=O+1}}),c(R),u(R.length>0?0:-1)})},[t,e,l]),v=()=>{n(!1)},b=C=>{if(C.getTextContent&&typeof C.getTextContent=="function"){const T=C.getTextContent();if(T&&e!==""&&T.toLowerCase().includes(e.toLowerCase())){const R=e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),F=new RegExp(R,"gi"),I=T.replace(F,r);C.setTextContent&&C.setTextContent(I)}}C.getChildren&&typeof C.getChildren=="function"&&C.getChildren().forEach(T=>b(T))},_=()=>{l.update(()=>{const C=In();b(C)}),setTimeout(()=>{g()},0)},E=()=>{l.update(()=>{const C=a[i];if(C){const T=Fn(C.key);if(T&&T instanceof Zr){const R=T.getTextContent();S(i);const F=R.slice(0,C.start)+r+R.slice(C.end);T.setTextContent(F)}}}),setTimeout(()=>{g()},0)};he.useEffect(()=>{g()},[g]);const S=he.useCallback(C=>{if(a.length===0)return;const T=a[C];l.getEditorState().read(()=>{const R=Fn(T.key);if(R&&R instanceof Zr){const F=l.getElementByKey(R.getKey());F&&F.scrollIntoView({behavior:"smooth",block:"center"})}})},[a,l]),w=he.useCallback(()=>{if(a.length===0)return;const C=(i+1)%a.length;u(C),S(C)},[i,a,S]),y=he.useCallback(()=>{if(a.length===0)return;const C=(i-1+a.length)%a.length;u(C),S(C)},[i,a,S]),x=he.useCallback(C=>{if((C.ctrlKey||C.metaKey)&&C.key==="f"){if(!l.getRootElement().contains(document.activeElement))return;C.preventDefault(),l.getEditorState().read(()=>{const R=jt();if(St(R)){const F=R.getTextContent();s(F)}}),n(!0)}C.key==="Enter"&&d.current===document.activeElement&&(C.preventDefault(),w())},[l,w]);return he.useEffect(()=>(document.addEventListener("keydown",x),()=>document.removeEventListener("keydown",x)),[x]),he.useEffect(()=>{if(t){const C=l==null?void 0:l.registerUpdateListener(()=>{g()});return()=>{C()}}},[l,t,g]),ae.jsxs(ae.Fragment,{children:[t&&ae.jsx(I5,{handleReplace:E,handleClose:v,handleReplaceAll:_,searchText:e,setSearchText:s,replaceText:r,setReplaceText:o,handleNextMatch:w,handlePreviousMatch:y,matchesCount:a.length,currentMatchIndex:i,searchInputRef:d,replaceInputRef:f,ReplaceBoxOpen:p,setReplaceBoxOpen:h}),ae.jsx(M5,{editor:l,matches:a,currentMatchIndex:i})]})}const zD="";function R5({editorRef:l}){const[t]=yn();return ir.useEffect(()=>{typeof l=="function"?l(t):typeof l=="object"&&(l.current=t)},[t]),null}const Es=()=>new Map,Gy=l=>{const t=Es();return l.forEach((n,e)=>{t.set(e,n)}),t},ru=(l,t,n)=>{let e=l.get(t);return e===void 0&&l.set(t,e=n()),e},D5=(l,t)=>{const n=[];for(const[e,s]of l)n.push(t(s,e));return n},L5=(l,t)=>{for(const[n,e]of l)if(t(e,n))return!0;return!1},ou=()=>new Set,$y=l=>l[l.length-1],iu=Array.from,F5=Array.isArray;class B5{constructor(){this._observers=Es()}on(t,n){return ru(this._observers,t,ou).add(n),n}once(t,n){const e=(...s)=>{this.off(t,e),n(...s)};this.on(t,e)}off(t,n){const e=this._observers.get(t);e!==void 0&&(e.delete(n),e.size===0&&this._observers.delete(t))}emit(t,n){return iu((this._observers.get(t)||Es()).values()).forEach(e=>e(...n))}destroy(){this._observers=Es()}}const Ul=Math.floor,vh=Math.abs,US=(l,t)=>l<t?l:t,su=(l,t)=>l>t?l:t,z5=l=>l!==0?l<0:1/l<0,HS=1,qS=2,Yy=4,Zy=8,U5=32,WS=64,bh=128,H5=31,JS=63,qd=127,q5=2147483647,W5=Number.isInteger||(l=>typeof l=="number"&&isFinite(l)&&Ul(l)===l),J5=l=>l.toLowerCase(),V5=/^\s*/g,K5=l=>l.replace(V5,""),G5=/([A-Z])/g,VS=(l,t)=>K5(l.replace(G5,n=>`${t}${J5(n)}`)),$5=l=>{const t=unescape(encodeURIComponent(l)),n=t.length,e=new Uint8Array(n);for(let s=0;s<n;s++)e[s]=t.codePointAt(s);return e},Wd=typeof TextEncoder<"u"?new TextEncoder:null,Y5=Wd?l=>Wd.encode(l):$5;let Qy=typeof TextDecoder>"u"?null:new TextDecoder("utf-8",{fatal:!0,ignoreBOM:!0});Qy&&Qy.decode(new Uint8Array).length===1&&(Qy=null);class Jd{constructor(){this.cpos=0,this.cbuf=new Uint8Array(100),this.bufs=[]}}const Xy=()=>new Jd,Z5=l=>{let t=l.cpos;for(let n=0;n<l.bufs.length;n++)t+=l.bufs[n].length;return t},na=l=>{const t=new Uint8Array(Z5(l));let n=0;for(let e=0;e<l.bufs.length;e++){const s=l.bufs[e];t.set(s,n),n+=s.length}return t.set(new Uint8Array(l.cbuf.buffer,0,l.cpos),n),t},Q5=(l,t)=>{const n=l.cbuf.length;n-l.cpos<t&&(l.bufs.push(new Uint8Array(l.cbuf.buffer,0,l.cpos)),l.cbuf=new Uint8Array(su(n,t)*2),l.cpos=0)},So=(l,t)=>{const n=l.cbuf.length;l.cpos===n&&(l.bufs.push(l.cbuf),l.cbuf=new Uint8Array(n*2),l.cpos=0),l.cbuf[l.cpos++]=t},e0=So,Or=(l,t)=>{for(;t>qd;)So(l,bh|qd&t),t=Ul(t/128);So(l,qd&t)},t0=(l,t)=>{const n=z5(t);for(n&&(t=-t),So(l,(t>JS?bh:0)|(n?WS:0)|JS&t),t=Ul(t/64);t>0;)So(l,(t>qd?bh:0)|qd&t),t=Ul(t/128)},n0=new Uint8Array(3e4),X5=n0.length/3,eM=(l,t)=>{if(t.length<X5){const n=Wd.encodeInto(t,n0).written||0;Or(l,n);for(let e=0;e<n;e++)So(l,n0[e])}else Ci(l,Y5(t))},tM=(l,t)=>{const n=unescape(encodeURIComponent(t)),e=n.length;Or(l,e);for(let s=0;s<e;s++)So(l,n.codePointAt(s))},au=Wd&&Wd.encodeInto?eM:tM,r0=(l,t)=>{const n=l.cbuf.length,e=l.cpos,s=US(n-e,t.length),r=t.length-s;l.cbuf.set(t.subarray(0,s),e),l.cpos+=s,r>0&&(l.bufs.push(l.cbuf),l.cbuf=new Uint8Array(su(n*2,r)),l.cbuf.set(t.subarray(s)),l.cpos=r)},Ci=(l,t)=>{Or(l,t.byteLength),r0(l,t)},o0=(l,t)=>{Q5(l,t);const n=new DataView(l.cbuf.buffer,l.cpos,t);return l.cpos+=t,n},nM=(l,t)=>o0(l,4).setFloat32(0,t,!1),rM=(l,t)=>o0(l,8).setFloat64(0,t,!1),oM=(l,t)=>o0(l,8).setBigInt64(0,t,!1),KS=new DataView(new ArrayBuffer(4)),iM=l=>(KS.setFloat32(0,l),KS.getFloat32(0)===l),Vd=(l,t)=>{switch(typeof t){case"string":So(l,119),au(l,t);break;case"number":W5(t)&&vh(t)<=q5?(So(l,125),t0(l,t)):iM(t)?(So(l,124),nM(l,t)):(So(l,123),rM(l,t));break;case"bigint":So(l,122),oM(l,t);break;case"object":if(t===null)So(l,126);else if(F5(t)){So(l,117),Or(l,t.length);for(let n=0;n<t.length;n++)Vd(l,t[n])}else if(t instanceof Uint8Array)So(l,116),Ci(l,t);else{So(l,118);const n=Object.keys(t);Or(l,n.length);for(let e=0;e<n.length;e++){const s=n[e];au(l,s),Vd(l,t[s])}}break;case"boolean":So(l,t?120:121);break;default:So(l,127)}};class GS extends Jd{constructor(t){super(),this.w=t,this.s=null,this.count=0}write(t){this.s===t?this.count++:(this.count>0&&Or(this,this.count-1),this.count=1,this.w(this,t),this.s=t)}}const $S=l=>{l.count>0&&(t0(l.encoder,l.count===1?l.s:-l.s),l.count>1&&Or(l.encoder,l.count-2))};class _h{constructor(){this.encoder=new Jd,this.s=0,this.count=0}write(t){this.s===t?this.count++:($S(this),this.count=1,this.s=t)}toUint8Array(){return $S(this),na(this.encoder)}}const YS=l=>{if(l.count>0){const t=l.diff*2+(l.count===1?0:1);t0(l.encoder,t),l.count>1&&Or(l.encoder,l.count-2)}};class i0{constructor(){this.encoder=new Jd,this.s=0,this.count=0,this.diff=0}write(t){this.diff===t-this.s?(this.s=t,this.count++):(YS(this),this.count=1,this.diff=t-this.s,this.s=t)}toUint8Array(){return YS(this),na(this.encoder)}}class sM{constructor(){this.sarr=[],this.s="",this.lensE=new _h}write(t){this.s+=t,this.s.length>19&&(this.sarr.push(this.s),this.s=""),this.lensE.write(t.length)}toUint8Array(){const t=new Jd;return this.sarr.push(this.s),this.s="",au(t,this.sarr.join("")),r0(t,this.lensE.toUint8Array()),na(t)}}const lu=l=>new Error(l),Cs=()=>{throw lu("Method unimplemented")},Hl=()=>{throw lu("Unexpected case")},aM=crypto.getRandomValues.bind(crypto),ZS=()=>aM(new Uint32Array(1))[0],lM=[1e7]+-1e3+-4e3+-8e3+-1e11,cM=()=>lM.replace(/[018]/g,l=>(l^ZS()&15>>l/4).toString(16)),QS=l=>new Promise(l);Promise.all.bind(Promise);const XS=l=>l===void 0?null:l;class uM{constructor(){this.map=new Map}setItem(t,n){this.map.set(t,n)}getItem(t){return this.map.get(t)}}let eE=new uM,dM=!0;try{typeof localStorage<"u"&&localStorage&&(eE=localStorage,dM=!1)}catch{}const fM=eE,pM=Object.assign,hM=Object.keys,gM=(l,t)=>{for(const n in l)t(l[n],n)},tE=l=>hM(l).length,mM=l=>{for(const t in l)return!1;return!0},yM=(l,t)=>{for(const n in l)if(!t(l[n],n))return!1;return!0},vM=(l,t)=>Object.prototype.hasOwnProperty.call(l,t),bM=(l,t)=>l===t||tE(l)===tE(t)&&yM(l,(n,e)=>(n!==void 0||vM(t,e))&&t[e]===n),s0=(l,t,n=0)=>{try{for(;n<l.length;n++)l[n](...t)}finally{n<l.length&&s0(l,t,n+1)}},_M=(l,t)=>t.includes(l),Kd=typeof process<"u"&&process.release&&/node|io\.js/.test(process.release.name)&&Object.prototype.toString.call(typeof process<"u"?process:0)==="[object process]";let js;const wM=()=>{if(js===void 0)if(Kd){js=Es();const l=process.argv;let t=null;for(let n=0;n<l.length;n++){const e=l[n];e[0]==="-"?(t!==null&&js.set(t,""),t=e):t!==null&&(js.set(t,e),t=null)}t!==null&&js.set(t,"")}else typeof location=="object"?(js=Es(),(location.search||"?").slice(1).split("&").forEach(l=>{if(l.length!==0){const[t,n]=l.split("=");js.set(`--${VS(t,"-")}`,n),js.set(`-${VS(t,"-")}`,n)}})):js=Es();return js},a0=l=>wM().has(l),l0=l=>XS(Kd?process.env[l.toUpperCase().replaceAll("-","_")]:fM.getItem(l)),nE=l=>a0("--"+l)||l0(l)!==null;nE("production");const xM=Kd&&_M(process.env.FORCE_COLOR,["true","1","2"])||!a0("--no-colors")&&!nE("no-color")&&(!Kd||process.stdout.isTTY)&&(!Kd||a0("--color")||l0("COLORTERM")!==null||(l0("TERM")||"").includes("color"));class SM{constructor(t,n){this.left=t,this.right=n}}const ra=(l,t)=>new SM(l,t);typeof DOMParser<"u"&&new DOMParser;const EM=l=>D5(l,(t,n)=>`${n}:${t};`).join(""),oa=Symbol,rE=oa(),oE=oa(),CM=oa(),jM=oa(),kM=oa(),iE=oa(),TM=oa(),sE=oa(),AM=oa(),OM=l=>{var s;l.length===1&&((s=l[0])==null?void 0:s.constructor)===Function&&(l=l[0]());const t=[],n=[];let e=0;for(;e<l.length;e++){const r=l[e];if(r===void 0)break;if(r.constructor===String||r.constructor===Number)t.push(r);else if(r.constructor===Object)break}for(e>0&&n.push(t.join(""));e<l.length;e++){const r=l[e];r instanceof Symbol||n.push(r)}return n},NM={[rE]:ra("font-weight","bold"),[oE]:ra("font-weight","normal"),[CM]:ra("color","blue"),[kM]:ra("color","green"),[jM]:ra("color","grey"),[iE]:ra("color","red"),[TM]:ra("color","purple"),[sE]:ra("color","orange"),[AM]:ra("color","black")},PM=xM?l=>{var o;l.length===1&&((o=l[0])==null?void 0:o.constructor)===Function&&(l=l[0]());const t=[],n=[],e=Es();let s=[],r=0;for(;r<l.length;r++){const a=l[r],c=NM[a];if(c!==void 0)e.set(c.left,c.right);else{if(a===void 0)break;if(a.constructor===String||a.constructor===Number){const i=EM(e);r>0||i.length>0?(t.push("%c"+a),n.push(i)):t.push(a)}else break}}for(r>0&&(s=n,s.unshift(t.join("")));r<l.length;r++){const a=l[r];a instanceof Symbol||s.push(a)}return s}:OM,IM=(...l)=>{console.log(...PM(l)),MM.forEach(t=>t.print(l))},MM=ou(),aE=l=>({[Symbol.iterator](){return this},next:l}),RM=(l,t)=>aE(()=>{let n;do n=l.next();while(!n.done&&!t(n.value));return n}),c0=(l,t)=>aE(()=>{const{done:n,value:e}=l.next();return{done:n,value:n?void 0:t(e)}});class DM{constructor(t,n){this.clock=t,this.len=n}}class LM{constructor(){this.clients=new Map}}const lE=(l,t,n)=>t.clients.forEach((e,s)=>{const r=l.doc.store.clients.get(s);for(let o=0;o<e.length;o++){const a=e[o];bE(l,r,a.clock,a.len,n)}}),FM=(l,t)=>{let n=0,e=l.length-1;for(;n<=e;){const s=Ul((n+e)/2),r=l[s],o=r.clock;if(o<=t){if(t<o+r.len)return s;n=s+1}else e=s-1}return null},cE=(l,t)=>{const n=l.clients.get(t.client);return n!==void 0&&FM(n,t.clock)!==null},uE=l=>{l.clients.forEach(t=>{t.sort((s,r)=>s.clock-r.clock);let n,e;for(n=1,e=1;n<t.length;n++){const s=t[e-1],r=t[n];s.clock+s.len>=r.clock?s.len=su(s.len,r.clock+r.len-s.clock):(e<n&&(t[e]=r),e++)}t.length=e})},dE=(l,t,n,e)=>{ru(l.clients,t,()=>[]).push(new DM(n,e))},BM=(l,t)=>{Or(l.restEncoder,t.clients.size),iu(t.clients.entries()).sort((n,e)=>e[0]-n[0]).forEach(([n,e])=>{l.resetDsCurVal(),Or(l.restEncoder,n);const s=e.length;Or(l.restEncoder,s);for(let r=0;r<s;r++){const o=e[r];l.writeDsClock(o.clock),l.writeDsLen(o.len)}})},fE=ZS;class Gd extends B5{constructor({guid:t=cM(),collectionid:n=null,gc:e=!0,gcFilter:s=()=>!0,meta:r=null,autoLoad:o=!1,shouldLoad:a=!0}={}){super(),this.gc=e,this.gcFilter=s,this.clientID=fE(),this.guid=t,this.collectionid=n,this.share=new Map,this.store=new $M,this._transaction=null,this._transactionCleanups=[],this.subdocs=new Set,this._item=null,this.shouldLoad=a,this.autoLoad=o,this.meta=r,this.isLoaded=!1,this.isSynced=!1,this.whenLoaded=QS(i=>{this.on("load",()=>{this.isLoaded=!0,i(this)})});const c=()=>QS(i=>{const u=d=>{(d===void 0||d===!0)&&(this.off("sync",u),i())};this.on("sync",u)});this.on("sync",i=>{i===!1&&this.isSynced&&(this.whenSynced=c()),this.isSynced=i===void 0||i===!0,this.isSynced&&!this.isLoaded&&this.emit("load",[this])}),this.whenSynced=c()}load(){const t=this._item;t!==null&&!this.shouldLoad&&Fr(t.parent.doc,n=>{n.subdocsLoaded.add(this)},null,!0),this.shouldLoad=!0}getSubdocs(){return this.subdocs}getSubdocGuids(){return new Set(iu(this.subdocs).map(t=>t.guid))}transact(t,n=null){return Fr(this,t,n)}get(t,n=Mo){const e=ru(this.share,t,()=>{const r=new n;return r._integrate(this,null),r}),s=e.constructor;if(n!==Mo&&s!==n)if(s===Mo){const r=new n;r._map=e._map,e._map.forEach(o=>{for(;o!==null;o=o.left)o.parent=r}),r._start=e._start;for(let o=r._start;o!==null;o=o.right)o.parent=r;return r._length=e._length,this.share.set(t,r),r._integrate(this,null),r}else throw new Error(`Type with the name ${t} has already been defined with a different constructor`);return e}getArray(t=""){return this.get(t,ql)}getText(t=""){return this.get(t,Nh)}getMap(t=""){return this.get(t,uu)}getXmlElement(t=""){return this.get(t,Zd)}getXmlFragment(t=""){return this.get(t,fu)}toJSON(){const t={};return this.share.forEach((n,e)=>{t[e]=n.toJSON()}),t}destroy(){iu(this.subdocs).forEach(n=>n.destroy());const t=this._item;if(t!==null){this._item=null;const n=t.content;n.doc=new Gd({guid:this.guid,...n.opts,shouldLoad:!1}),n.doc._item=t,Fr(t.parent.doc,e=>{const s=n.doc;t.deleted||e.subdocsAdded.add(s),e.subdocsRemoved.add(this)},null,!0)}this.emit("destroyed",[!0]),this.emit("destroy",[this]),super.destroy()}}class zM{constructor(){this.restEncoder=Xy()}toUint8Array(){return na(this.restEncoder)}resetDsCurVal(){}writeDsClock(t){Or(this.restEncoder,t)}writeDsLen(t){Or(this.restEncoder,t)}}class UM extends zM{writeLeftID(t){Or(this.restEncoder,t.client),Or(this.restEncoder,t.clock)}writeRightID(t){Or(this.restEncoder,t.client),Or(this.restEncoder,t.clock)}writeClient(t){Or(this.restEncoder,t)}writeInfo(t){e0(this.restEncoder,t)}writeString(t){au(this.restEncoder,t)}writeParentInfo(t){Or(this.restEncoder,t?1:0)}writeTypeRef(t){Or(this.restEncoder,t)}writeLen(t){Or(this.restEncoder,t)}writeAny(t){Vd(this.restEncoder,t)}writeBuf(t){Ci(this.restEncoder,t)}writeJSON(t){au(this.restEncoder,JSON.stringify(t))}writeKey(t){au(this.restEncoder,t)}}class HM{constructor(){this.restEncoder=Xy(),this.dsCurrVal=0}toUint8Array(){return na(this.restEncoder)}resetDsCurVal(){this.dsCurrVal=0}writeDsClock(t){const n=t-this.dsCurrVal;this.dsCurrVal=t,Or(this.restEncoder,n)}writeDsLen(t){t===0&&Hl(),Or(this.restEncoder,t-1),this.dsCurrVal+=t}}class qM extends HM{constructor(){super(),this.keyMap=new Map,this.keyClock=0,this.keyClockEncoder=new i0,this.clientEncoder=new _h,this.leftClockEncoder=new i0,this.rightClockEncoder=new i0,this.infoEncoder=new GS(e0),this.stringEncoder=new sM,this.parentInfoEncoder=new GS(e0),this.typeRefEncoder=new _h,this.lenEncoder=new _h}toUint8Array(){const t=Xy();return Or(t,0),Ci(t,this.keyClockEncoder.toUint8Array()),Ci(t,this.clientEncoder.toUint8Array()),Ci(t,this.leftClockEncoder.toUint8Array()),Ci(t,this.rightClockEncoder.toUint8Array()),Ci(t,na(this.infoEncoder)),Ci(t,this.stringEncoder.toUint8Array()),Ci(t,na(this.parentInfoEncoder)),Ci(t,this.typeRefEncoder.toUint8Array()),Ci(t,this.lenEncoder.toUint8Array()),r0(t,na(this.restEncoder)),na(t)}writeLeftID(t){this.clientEncoder.write(t.client),this.leftClockEncoder.write(t.clock)}writeRightID(t){this.clientEncoder.write(t.client),this.rightClockEncoder.write(t.clock)}writeClient(t){this.clientEncoder.write(t)}writeInfo(t){this.infoEncoder.write(t)}writeString(t){this.stringEncoder.write(t)}writeParentInfo(t){this.parentInfoEncoder.write(t?1:0)}writeTypeRef(t){this.typeRefEncoder.write(t)}writeLen(t){this.lenEncoder.write(t)}writeAny(t){Vd(this.restEncoder,t)}writeBuf(t){Ci(this.restEncoder,t)}writeJSON(t){Vd(this.restEncoder,t)}writeKey(t){const n=this.keyMap.get(t);n===void 0?(this.keyClockEncoder.write(this.keyClock++),this.stringEncoder.write(t)):this.keyClockEncoder.write(n)}}const WM=(l,t,n,e)=>{e=su(e,t[0].id.clock);const s=ia(t,e);Or(l.restEncoder,t.length-s),l.writeClient(n),Or(l.restEncoder,e);const r=t[s];r.write(l,e-r.id.clock);for(let o=s+1;o<t.length;o++)t[o].write(l,0)},JM=(l,t,n)=>{const e=new Map;n.forEach((s,r)=>{di(t,r)>s&&e.set(r,s)}),d0(t).forEach((s,r)=>{n.has(r)||e.set(r,0)}),Or(l.restEncoder,e.size),iu(e.entries()).sort((s,r)=>r[0]-s[0]).forEach(([s,r])=>{WM(l,t.clients.get(s),s,r)})},VM=(l,t)=>JM(l,t.doc.store,t.beforeState);class KM{constructor(){this.l=[]}}const pE=()=>new KM,hE=(l,t)=>l.l.push(t),gE=(l,t)=>{const n=l.l,e=n.length;l.l=n.filter(s=>t!==s),e===l.l.length&&console.error("[yjs] Tried to remove event handler that doesn't exist.")},mE=(l,t,n)=>s0(l.l,[t,n]);class wh{constructor(t,n){this.client=t,this.clock=n}}const xh=(l,t)=>l===t||l!==null&&t!==null&&l.client===t.client&&l.clock===t.clock,Qr=(l,t)=>new wh(l,t),GM=l=>{for(const[t,n]of l.doc.share.entries())if(n===l)return t;throw Hl()},cu=(l,t)=>t===void 0?!l.deleted:t.sv.has(l.id.client)&&(t.sv.get(l.id.client)||0)>l.id.clock&&!cE(t.ds,l.id),u0=(l,t)=>{const n=ru(l.meta,u0,ou),e=l.doc.store;n.has(t)||(t.sv.forEach((s,r)=>{s<di(e,r)&&Ka(l,Qr(r,s))}),lE(l,t.ds,s=>{}),n.add(t))};class $M{constructor(){this.clients=new Map,this.pendingStructs=null,this.pendingDs=null}}const d0=l=>{const t=new Map;return l.clients.forEach((n,e)=>{const s=n[n.length-1];t.set(e,s.id.clock+s.length)}),t},di=(l,t)=>{const n=l.clients.get(t);if(n===void 0)return 0;const e=n[n.length-1];return e.id.clock+e.length},yE=(l,t)=>{let n=l.clients.get(t.id.client);if(n===void 0)n=[],l.clients.set(t.id.client,n);else{const e=n[n.length-1];if(e.id.clock+e.length!==t.id.clock)throw Hl()}n.push(t)},ia=(l,t)=>{let n=0,e=l.length-1,s=l[e],r=s.id.clock;if(r===t)return e;let o=Ul(t/(r+s.length-1)*e);for(;n<=e;){if(s=l[o],r=s.id.clock,r<=t){if(t<r+s.length)return o;n=o+1}else e=o-1;o=Ul((n+e)/2)}throw Hl()},f0=(l,t)=>{const n=l.clients.get(t.client);return n[ia(n,t.clock)]},p0=(l,t,n)=>{const e=ia(t,n),s=t[e];return s.id.clock<n&&s instanceof Wo?(t.splice(e+1,0,WE(l,s,n-s.id.clock)),e+1):e},Ka=(l,t)=>{const n=l.doc.store.clients.get(t.client);return n[p0(l,n,t.clock)]},vE=(l,t,n)=>{const e=t.clients.get(n.client),s=ia(e,n.clock),r=e[s];return n.clock!==r.id.clock+r.length-1&&r.constructor!==$a&&e.splice(s+1,0,WE(l,r,n.clock-r.id.clock+1)),r},YM=(l,t,n)=>{const e=l.clients.get(t.id.client);e[ia(e,t.id.clock)]=n},bE=(l,t,n,e,s)=>{if(e===0)return;const r=n+e;let o=p0(l,t,n),a;do a=t[o++],r<a.id.clock+a.length&&p0(l,t,r),s(a);while(o<t.length&&t[o].id.clock<r)};class ZM{constructor(t,n,e){this.doc=t,this.deleteSet=new LM,this.beforeState=d0(t.store),this.afterState=new Map,this.changed=new Map,this.changedParentTypes=new Map,this._mergeStructs=[],this.origin=n,this.meta=new Map,this.local=e,this.subdocsAdded=new Set,this.subdocsRemoved=new Set,this.subdocsLoaded=new Set,this._needFormattingCleanup=!1}}const _E=(l,t)=>t.deleteSet.clients.size===0&&!L5(t.afterState,(n,e)=>t.beforeState.get(e)!==n)?!1:(uE(t.deleteSet),VM(l,t),BM(l,t.deleteSet),!0),wE=(l,t,n)=>{const e=t._item;(e===null||e.id.clock<(l.beforeState.get(e.id.client)||0)&&!e.deleted)&&ru(l.changed,t,ou).add(n)},Sh=(l,t)=>{let n=l[t],e=l[t-1],s=t;for(;s>0;n=e,e=l[--s-1]){if(e.deleted===n.deleted&&e.constructor===n.constructor&&e.mergeWith(n)){n instanceof Wo&&n.parentSub!==null&&n.parent._map.get(n.parentSub)===n&&n.parent._map.set(n.parentSub,e);continue}break}const r=t-s;return r&&l.splice(t+1-r,r),r},QM=(l,t,n)=>{for(const[e,s]of l.clients.entries()){const r=t.clients.get(e);for(let o=s.length-1;o>=0;o--){const a=s[o],c=a.clock+a.len;for(let i=ia(r,a.clock),u=r[i];i<r.length&&u.id.clock<c;u=r[++i]){const d=r[i];if(a.clock+a.len<=d.id.clock)break;d instanceof Wo&&d.deleted&&!d.keep&&n(d)&&d.gc(t,!1)}}}},XM=(l,t)=>{l.clients.forEach((n,e)=>{const s=t.clients.get(e);for(let r=n.length-1;r>=0;r--){const o=n[r],a=US(s.length-1,1+ia(s,o.clock+o.len-1));for(let c=a,i=s[c];c>0&&i.id.clock>=o.clock;i=s[c])c-=1+Sh(s,c)}})},xE=(l,t)=>{if(t<l.length){const n=l[t],e=n.doc,s=e.store,r=n.deleteSet,o=n._mergeStructs;try{uE(r),n.afterState=d0(n.doc.store),e.emit("beforeObserverCalls",[n,e]);const a=[];n.changed.forEach((c,i)=>a.push(()=>{(i._item===null||!i._item.deleted)&&i._callObserver(n,c)})),a.push(()=>{n.changedParentTypes.forEach((c,i)=>{i._dEH.l.length>0&&(i._item===null||!i._item.deleted)&&(c=c.filter(u=>u.target._item===null||!u.target._item.deleted),c.forEach(u=>{u.currentTarget=i,u._path=null}),c.sort((u,d)=>u.path.length-d.path.length),mE(i._dEH,c,n))})}),a.push(()=>e.emit("afterTransaction",[n,e])),s0(a,[]),n._needFormattingCleanup&&u3(n)}finally{e.gc&&QM(r,s,e.gcFilter),XM(r,s),n.afterState.forEach((u,d)=>{const f=n.beforeState.get(d)||0;if(f!==u){const p=s.clients.get(d),h=su(ia(p,f),1);for(let m=p.length-1;m>=h;)m-=1+Sh(p,m)}});for(let u=o.length-1;u>=0;u--){const{client:d,clock:f}=o[u].id,p=s.clients.get(d),h=ia(p,f);h+1<p.length&&Sh(p,h+1)>1||h>0&&Sh(p,h)}if(!n.local&&n.afterState.get(e.clientID)!==n.beforeState.get(e.clientID)&&(IM(sE,rE,"[yjs] ",oE,iE,"Changed the client-id because another client seems to be using it."),e.clientID=fE()),e.emit("afterTransactionCleanup",[n,e]),e._observers.has("update")){const u=new UM;_E(u,n)&&e.emit("update",[u.toUint8Array(),n.origin,e,n])}if(e._observers.has("updateV2")){const u=new qM;_E(u,n)&&e.emit("updateV2",[u.toUint8Array(),n.origin,e,n])}const{subdocsAdded:a,subdocsLoaded:c,subdocsRemoved:i}=n;(a.size>0||i.size>0||c.size>0)&&(a.forEach(u=>{u.clientID=e.clientID,u.collectionid==null&&(u.collectionid=e.collectionid),e.subdocs.add(u)}),i.forEach(u=>e.subdocs.delete(u)),e.emit("subdocs",[{loaded:c,added:a,removed:i},e,n]),i.forEach(u=>u.destroy())),l.length<=t+1?(e._transactionCleanups=[],e.emit("afterAllTransactions",[e,l])):xE(l,t+1)}}},Fr=(l,t,n=null,e=!0)=>{const s=l._transactionCleanups;let r=!1,o=null;l._transaction===null&&(r=!0,l._transaction=new ZM(l,n,e),s.push(l._transaction),s.length===1&&l.emit("beforeAllTransactions",[l]),l.emit("beforeTransaction",[l._transaction,l]));try{o=t(l._transaction)}finally{if(r){const a=l._transaction===s[0];l._transaction=null,a&&xE(s,0)}}return o},SE="You must not compute changes after the event-handler fired.";class Eh{constructor(t,n){this.target=t,this.currentTarget=t,this.transaction=n,this._changes=null,this._keys=null,this._delta=null,this._path=null}get path(){return this._path||(this._path=e3(this.currentTarget,this.target))}deletes(t){return cE(this.transaction.deleteSet,t.id)}get keys(){if(this._keys===null){if(this.transaction.doc._transactionCleanups.length===0)throw lu(SE);const t=new Map,n=this.target;this.transaction.changed.get(n).forEach(s=>{if(s!==null){const r=n._map.get(s);let o,a;if(this.adds(r)){let c=r.left;for(;c!==null&&this.adds(c);)c=c.left;if(this.deletes(r))if(c!==null&&this.deletes(c))o="delete",a=$y(c.content.getContent());else return;else c!==null&&this.deletes(c)?(o="update",a=$y(c.content.getContent())):(o="add",a=void 0)}else if(this.deletes(r))o="delete",a=$y(r.content.getContent());else return;t.set(s,{action:o,oldValue:a})}}),this._keys=t}return this._keys}get delta(){return this.changes.delta}adds(t){return t.id.clock>=(this.transaction.beforeState.get(t.id.client)||0)}get changes(){let t=this._changes;if(t===null){if(this.transaction.doc._transactionCleanups.length===0)throw lu(SE);const n=this.target,e=ou(),s=ou(),r=[];if(t={added:e,deleted:s,delta:r,keys:this.keys},this.transaction.changed.get(n).has(null)){let a=null;const c=()=>{a&&r.push(a)};for(let i=n._start;i!==null;i=i.right)i.deleted?this.deletes(i)&&!this.adds(i)&&((a===null||a.delete===void 0)&&(c(),a={delete:0}),a.delete+=i.length,s.add(i)):this.adds(i)?((a===null||a.insert===void 0)&&(c(),a={insert:[]}),a.insert=a.insert.concat(i.content.getContent()),e.add(i)):((a===null||a.retain===void 0)&&(c(),a={retain:0}),a.retain+=i.length);a!==null&&a.retain===void 0&&c()}this._changes=t}return t}}const e3=(l,t)=>{const n=[];for(;t._item!==null&&t!==l;){if(t._item.parentSub!==null)n.unshift(t._item.parentSub);else{let e=0,s=t._item.parent._start;for(;s!==t._item&&s!==null;)s.deleted||e++,s=s.right;n.unshift(e)}t=t._item.parent}return n},EE=80;let h0=0;class t3{constructor(t,n){t.marker=!0,this.p=t,this.index=n,this.timestamp=h0++}}const n3=l=>{l.timestamp=h0++},CE=(l,t,n)=>{l.p.marker=!1,l.p=t,t.marker=!0,l.index=n,l.timestamp=h0++},r3=(l,t,n)=>{if(l.length>=EE){const e=l.reduce((s,r)=>s.timestamp<r.timestamp?s:r);return CE(e,t,n),e}else{const e=new t3(t,n);return l.push(e),e}},Ch=(l,t)=>{if(l._start===null||t===0||l._searchMarker===null)return null;const n=l._searchMarker.length===0?null:l._searchMarker.reduce((r,o)=>vh(t-r.index)<vh(t-o.index)?r:o);let e=l._start,s=0;for(n!==null&&(e=n.p,s=n.index,n3(n));e.right!==null&&s<t;){if(!e.deleted&&e.countable){if(t<s+e.length)break;s+=e.length}e=e.right}for(;e.left!==null&&s>t;)e=e.left,!e.deleted&&e.countable&&(s-=e.length);for(;e.left!==null&&e.left.id.client===e.id.client&&e.left.id.clock+e.left.length===e.id.clock;)e=e.left,!e.deleted&&e.countable&&(s-=e.length);return n!==null&&vh(n.index-s)<e.parent.length/EE?(CE(n,e,s),n):r3(l._searchMarker,e,s)},$d=(l,t,n)=>{for(let e=l.length-1;e>=0;e--){const s=l[e];if(n>0){let r=s.p;for(r.marker=!1;r&&(r.deleted||!r.countable);)r=r.left,r&&!r.deleted&&r.countable&&(s.index-=r.length);if(r===null||r.marker===!0){l.splice(e,1);continue}s.p=r,r.marker=!0}(t<s.index||n>0&&t===s.index)&&(s.index=su(t,s.index+n))}},jh=(l,t,n)=>{const e=l,s=t.changedParentTypes;for(;ru(s,l,()=>[]).push(n),l._item!==null;)l=l._item.parent;mE(e._eH,n,t)};class Mo{constructor(){this._item=null,this._map=new Map,this._start=null,this.doc=null,this._length=0,this._eH=pE(),this._dEH=pE(),this._searchMarker=null}get parent(){return this._item?this._item.parent:null}_integrate(t,n){this.doc=t,this._item=n}_copy(){throw Cs()}clone(){throw Cs()}_write(t){}get _first(){let t=this._start;for(;t!==null&&t.deleted;)t=t.right;return t}_callObserver(t,n){!t.local&&this._searchMarker&&(this._searchMarker.length=0)}observe(t){hE(this._eH,t)}observeDeep(t){hE(this._dEH,t)}unobserve(t){gE(this._eH,t)}unobserveDeep(t){gE(this._dEH,t)}toJSON(){}}const jE=(l,t,n)=>{t<0&&(t=l._length+t),n<0&&(n=l._length+n);let e=n-t;const s=[];let r=l._start;for(;r!==null&&e>0;){if(r.countable&&!r.deleted){const o=r.content.getContent();if(o.length<=t)t-=o.length;else{for(let a=t;a<o.length&&e>0;a++)s.push(o[a]),e--;t=0}}r=r.right}return s},kE=l=>{const t=[];let n=l._start;for(;n!==null;){if(n.countable&&!n.deleted){const e=n.content.getContent();for(let s=0;s<e.length;s++)t.push(e[s])}n=n.right}return t},Yd=(l,t)=>{let n=0,e=l._start;for(;e!==null;){if(e.countable&&!e.deleted){const s=e.content.getContent();for(let r=0;r<s.length;r++)t(s[r],n++,l)}e=e.right}},TE=(l,t)=>{const n=[];return Yd(l,(e,s)=>{n.push(t(e,s,l))}),n},o3=l=>{let t=l._start,n=null,e=0;return{[Symbol.iterator](){return this},next:()=>{if(n===null){for(;t!==null&&t.deleted;)t=t.right;if(t===null)return{done:!0,value:void 0};n=t.content.getContent(),e=0,t=t.right}const s=n[e++];return n.length<=e&&(n=null),{done:!1,value:s}}}},AE=(l,t)=>{const n=Ch(l,t);let e=l._start;for(n!==null&&(e=n.p,t-=n.index);e!==null;e=e.right)if(!e.deleted&&e.countable){if(t<e.length)return e.content.getContent()[t];t-=e.length}},kh=(l,t,n,e)=>{let s=n;const r=l.doc,o=r.clientID,a=r.store,c=n===null?t._start:n.right;let i=[];const u=()=>{i.length>0&&(s=new Wo(Qr(o,di(a,o)),s,s&&s.lastId,c,c&&c.id,t,null,new hu(i)),s.integrate(l,0),i=[])};e.forEach(d=>{if(d===null)i.push(d);else switch(d.constructor){case Number:case Object:case Boolean:case Array:case String:i.push(d);break;default:switch(u(),d.constructor){case Uint8Array:case ArrayBuffer:s=new Wo(Qr(o,di(a,o)),s,s&&s.lastId,c,c&&c.id,t,null,new Ph(new Uint8Array(d))),s.integrate(l,0);break;case Gd:s=new Wo(Qr(o,di(a,o)),s,s&&s.lastId,c,c&&c.id,t,null,new Mh(d)),s.integrate(l,0);break;default:if(d instanceof Mo)s=new Wo(Qr(o,di(a,o)),s,s&&s.lastId,c,c&&c.id,t,null,new Ya(d)),s.integrate(l,0);else throw new Error("Unexpected content type in insert operation")}}}),u()},OE=()=>lu("Length exceeded!"),NE=(l,t,n,e)=>{if(n>t._length)throw OE();if(n===0)return t._searchMarker&&$d(t._searchMarker,n,e.length),kh(l,t,null,e);const s=n,r=Ch(t,n);let o=t._start;for(r!==null&&(o=r.p,n-=r.index,n===0&&(o=o.prev,n+=o&&o.countable&&!o.deleted?o.length:0));o!==null;o=o.right)if(!o.deleted&&o.countable){if(n<=o.length){n<o.length&&Ka(l,Qr(o.id.client,o.id.clock+n));break}n-=o.length}return t._searchMarker&&$d(t._searchMarker,s,e.length),kh(l,t,o,e)},i3=(l,t,n)=>{let s=(t._searchMarker||[]).reduce((r,o)=>o.index>r.index?o:r,{index:0,p:t._start}).p;if(s)for(;s.right;)s=s.right;return kh(l,t,s,n)},PE=(l,t,n,e)=>{if(e===0)return;const s=n,r=e,o=Ch(t,n);let a=t._start;for(o!==null&&(a=o.p,n-=o.index);a!==null&&n>0;a=a.right)!a.deleted&&a.countable&&(n<a.length&&Ka(l,Qr(a.id.client,a.id.clock+n)),n-=a.length);for(;e>0&&a!==null;)a.deleted||(e<a.length&&Ka(l,Qr(a.id.client,a.id.clock+e)),a.delete(l),e-=a.length),a=a.right;if(e>0)throw OE();t._searchMarker&&$d(t._searchMarker,s,-r+e)},Th=(l,t,n)=>{const e=t._map.get(n);e!==void 0&&e.delete(l)},g0=(l,t,n,e)=>{const s=t._map.get(n)||null,r=l.doc,o=r.clientID;let a;if(e==null)a=new hu([e]);else switch(e.constructor){case Number:case Object:case Boolean:case Array:case String:a=new hu([e]);break;case Uint8Array:a=new Ph(e);break;case Gd:a=new Mh(e);break;default:if(e instanceof Mo)a=new Ya(e);else throw new Error("Unexpected content type")}new Wo(Qr(o,di(r.store,o)),s,s&&s.lastId,null,null,t,n,a).integrate(l,0)},m0=(l,t)=>{const n=l._map.get(t);return n!==void 0&&!n.deleted?n.content.getContent()[n.length-1]:void 0},IE=l=>{const t={};return l._map.forEach((n,e)=>{n.deleted||(t[e]=n.content.getContent()[n.length-1])}),t},ME=(l,t)=>{const n=l._map.get(t);return n!==void 0&&!n.deleted},s3=(l,t)=>{const n={};return l._map.forEach((e,s)=>{let r=e;for(;r!==null&&(!t.sv.has(r.id.client)||r.id.clock>=(t.sv.get(r.id.client)||0));)r=r.left;r!==null&&cu(r,t)&&(n[s]=r.content.getContent()[r.length-1])}),n},Ah=l=>RM(l.entries(),t=>!t[1].deleted);class RE extends Eh{constructor(t,n){super(t,n),this._transaction=n}}class ql extends Mo{constructor(){super(),this._prelimContent=[],this._searchMarker=[]}static from(t){const n=new ql;return n.push(t),n}_integrate(t,n){super._integrate(t,n),this.insert(0,this._prelimContent),this._prelimContent=null}_copy(){return new ql}clone(){const t=new ql;return t.insert(0,this.toArray().map(n=>n instanceof Mo?n.clone():n)),t}get length(){return this._prelimContent===null?this._length:this._prelimContent.length}_callObserver(t,n){super._callObserver(t,n),jh(this,t,new RE(this,t))}insert(t,n){this.doc!==null?Fr(this.doc,e=>{NE(e,this,t,n)}):this._prelimContent.splice(t,0,...n)}push(t){this.doc!==null?Fr(this.doc,n=>{i3(n,this,t)}):this._prelimContent.push(...t)}unshift(t){this.insert(0,t)}delete(t,n=1){this.doc!==null?Fr(this.doc,e=>{PE(e,this,t,n)}):this._prelimContent.splice(t,n)}get(t){return AE(this,t)}toArray(){return kE(this)}slice(t=0,n=this.length){return jE(this,t,n)}toJSON(){return this.map(t=>t instanceof Mo?t.toJSON():t)}map(t){return TE(this,t)}forEach(t){Yd(this,t)}[Symbol.iterator](){return o3(this)}_write(t){t.writeTypeRef(g3)}}class a3 extends Eh{constructor(t,n,e){super(t,n),this.keysChanged=e}}class uu extends Mo{constructor(t){super(),this._prelimContent=null,t===void 0?this._prelimContent=new Map:this._prelimContent=new Map(t)}_integrate(t,n){super._integrate(t,n),this._prelimContent.forEach((e,s)=>{this.set(s,e)}),this._prelimContent=null}_copy(){return new uu}clone(){const t=new uu;return this.forEach((n,e)=>{t.set(e,n instanceof Mo?n.clone():n)}),t}_callObserver(t,n){jh(this,t,new a3(this,t,n))}toJSON(){const t={};return this._map.forEach((n,e)=>{if(!n.deleted){const s=n.content.getContent()[n.length-1];t[e]=s instanceof Mo?s.toJSON():s}}),t}get size(){return[...Ah(this._map)].length}keys(){return c0(Ah(this._map),t=>t[0])}values(){return c0(Ah(this._map),t=>t[1].content.getContent()[t[1].length-1])}entries(){return c0(Ah(this._map),t=>[t[0],t[1].content.getContent()[t[1].length-1]])}forEach(t){this._map.forEach((n,e)=>{n.deleted||t(n.content.getContent()[n.length-1],e,this)})}[Symbol.iterator](){return this.entries()}delete(t){this.doc!==null?Fr(this.doc,n=>{Th(n,this,t)}):this._prelimContent.delete(t)}set(t,n){return this.doc!==null?Fr(this.doc,e=>{g0(e,this,t,n)}):this._prelimContent.set(t,n),n}get(t){return m0(this,t)}has(t){return ME(this,t)}clear(){this.doc!==null?Fr(this.doc,t=>{this.forEach(function(n,e,s){Th(t,s,e)})}):this._prelimContent.clear()}_write(t){t.writeTypeRef(m3)}}const Ga=(l,t)=>l===t||typeof l=="object"&&typeof t=="object"&&l&&t&&bM(l,t);class y0{constructor(t,n,e,s){this.left=t,this.right=n,this.index=e,this.currentAttributes=s}forward(){switch(this.right===null&&Hl(),this.right.content.constructor){case Eo:this.right.deleted||du(this.currentAttributes,this.right.content);break;default:this.right.deleted||(this.index+=this.right.length);break}this.left=this.right,this.right=this.right.right}}const DE=(l,t,n)=>{for(;t.right!==null&&n>0;){switch(t.right.content.constructor){case Eo:t.right.deleted||du(t.currentAttributes,t.right.content);break;default:t.right.deleted||(n<t.right.length&&Ka(l,Qr(t.right.id.client,t.right.id.clock+n)),t.index+=t.right.length,n-=t.right.length);break}t.left=t.right,t.right=t.right.right}return t},Oh=(l,t,n,e)=>{const s=new Map,r=e?Ch(t,n):null;if(r){const o=new y0(r.p.left,r.p,r.index,s);return DE(l,o,n-r.index)}else{const o=new y0(null,t._start,0,s);return DE(l,o,n)}},LE=(l,t,n,e)=>{for(;n.right!==null&&(n.right.deleted===!0||n.right.content.constructor===Eo&&Ga(e.get(n.right.content.key),n.right.content.value));)n.right.deleted||e.delete(n.right.content.key),n.forward();const s=l.doc,r=s.clientID;e.forEach((o,a)=>{const c=n.left,i=n.right,u=new Wo(Qr(r,di(s.store,r)),c,c&&c.lastId,i,i&&i.id,t,null,new Eo(a,o));u.integrate(l,0),n.right=u,n.forward()})},du=(l,t)=>{const{key:n,value:e}=t;e===null?l.delete(n):l.set(n,e)},FE=(l,t)=>{for(;l.right!==null;){if(!(l.right.deleted||l.right.content.constructor===Eo&&Ga(t[l.right.content.key]??null,l.right.content.value)))break;l.forward()}},BE=(l,t,n,e)=>{const s=l.doc,r=s.clientID,o=new Map;for(const a in e){const c=e[a],i=n.currentAttributes.get(a)??null;if(!Ga(i,c)){o.set(a,i);const{left:u,right:d}=n;n.right=new Wo(Qr(r,di(s.store,r)),u,u&&u.lastId,d,d&&d.id,t,null,new Eo(a,c)),n.right.integrate(l,0),n.forward()}}return o},v0=(l,t,n,e,s)=>{n.currentAttributes.forEach((f,p)=>{s[p]===void 0&&(s[p]=null)});const r=l.doc,o=r.clientID;FE(n,s);const a=BE(l,t,n,s),c=e.constructor===String?new sa(e):e instanceof Mo?new Ya(e):new pu(e);let{left:i,right:u,index:d}=n;t._searchMarker&&$d(t._searchMarker,n.index,c.getLength()),u=new Wo(Qr(o,di(r.store,o)),i,i&&i.lastId,u,u&&u.id,t,null,c),u.integrate(l,0),n.right=u,n.index=d,n.forward(),LE(l,t,n,a)},zE=(l,t,n,e,s)=>{const r=l.doc,o=r.clientID;FE(n,s);const a=BE(l,t,n,s);e:for(;n.right!==null&&(e>0||a.size>0&&(n.right.deleted||n.right.content.constructor===Eo));){if(!n.right.deleted)switch(n.right.content.constructor){case Eo:{const{key:c,value:i}=n.right.content,u=s[c];if(u!==void 0){if(Ga(u,i))a.delete(c);else{if(e===0)break e;a.set(c,i)}n.right.delete(l)}else n.currentAttributes.set(c,i);break}default:e<n.right.length&&Ka(l,Qr(n.right.id.client,n.right.id.clock+e)),e-=n.right.length;break}n.forward()}if(e>0){let c="";for(;e>0;e--)c+=`
|
|
1544
1544
|
`;n.right=new Wo(Qr(o,di(r.store,o)),n.left,n.left&&n.left.lastId,n.right,n.right&&n.right.id,t,null,new sa(c)),n.right.integrate(l,0),n.forward()}LE(l,t,n,a)},UE=(l,t,n,e,s)=>{let r=t;const o=Es();for(;r&&(!r.countable||r.deleted);){if(!r.deleted&&r.content.constructor===Eo){const i=r.content;o.set(i.key,i)}r=r.right}let a=0,c=!1;for(;t!==r;){if(n===t&&(c=!0),!t.deleted){const i=t.content;switch(i.constructor){case Eo:{const{key:u,value:d}=i,f=e.get(u)??null;(o.get(u)!==i||f===d)&&(t.delete(l),a++,!c&&(s.get(u)??null)===d&&f!==d&&(f===null?s.delete(u):s.set(u,f))),!c&&!t.deleted&&du(s,i);break}}}t=t.right}return a},l3=(l,t)=>{for(;t&&t.right&&(t.right.deleted||!t.right.countable);)t=t.right;const n=new Set;for(;t&&(t.deleted||!t.countable);){if(!t.deleted&&t.content.constructor===Eo){const e=t.content.key;n.has(e)?t.delete(l):n.add(e)}t=t.left}},c3=l=>{let t=0;return Fr(l.doc,n=>{let e=l._start,s=l._start,r=Es();const o=Gy(r);for(;s;){if(s.deleted===!1)switch(s.content.constructor){case Eo:du(o,s.content);break;default:t+=UE(n,e,s,r,o),r=Gy(o),e=s;break}s=s.right}}),t},u3=l=>{const t=new Set,n=l.doc;for(const[e,s]of l.afterState.entries()){const r=l.beforeState.get(e)||0;s!==r&&bE(l,n.store.clients.get(e),r,s,o=>{!o.deleted&&o.content.constructor===Eo&&o.constructor!==$a&&t.add(o.parent)})}Fr(n,e=>{lE(l,l.deleteSet,s=>{if(s instanceof $a||!s.parent._hasFormatting||t.has(s.parent))return;const r=s.parent;s.content.constructor===Eo?t.add(r):l3(e,s)});for(const s of t)c3(s)})},HE=(l,t,n)=>{const e=n,s=Gy(t.currentAttributes),r=t.right;for(;n>0&&t.right!==null;){if(t.right.deleted===!1)switch(t.right.content.constructor){case Ya:case pu:case sa:n<t.right.length&&Ka(l,Qr(t.right.id.client,t.right.id.clock+n)),n-=t.right.length,t.right.delete(l);break}t.forward()}r&&UE(l,r,t.right,s,t.currentAttributes);const o=(t.left||t.right).parent;return o._searchMarker&&$d(o._searchMarker,t.index,-e+n),t};class d3 extends Eh{constructor(t,n,e){super(t,n),this.childListChanged=!1,this.keysChanged=new Set,e.forEach(s=>{s===null?this.childListChanged=!0:this.keysChanged.add(s)})}get changes(){if(this._changes===null){const t={keys:this.keys,delta:this.delta,added:new Set,deleted:new Set};this._changes=t}return this._changes}get delta(){if(this._delta===null){const t=this.target.doc,n=[];Fr(t,e=>{const s=new Map,r=new Map;let o=this.target._start,a=null;const c={};let i="",u=0,d=0;const f=()=>{if(a!==null){let p=null;switch(a){case"delete":d>0&&(p={delete:d}),d=0;break;case"insert":(typeof i=="object"||i.length>0)&&(p={insert:i},s.size>0&&(p.attributes={},s.forEach((h,m)=>{h!==null&&(p.attributes[m]=h)}))),i="";break;case"retain":u>0&&(p={retain:u},mM(c)||(p.attributes=pM({},c))),u=0;break}p&&n.push(p),a=null}};for(;o!==null;){switch(o.content.constructor){case Ya:case pu:this.adds(o)?this.deletes(o)||(f(),a="insert",i=o.content.getContent()[0],f()):this.deletes(o)?(a!=="delete"&&(f(),a="delete"),d+=1):o.deleted||(a!=="retain"&&(f(),a="retain"),u+=1);break;case sa:this.adds(o)?this.deletes(o)||(a!=="insert"&&(f(),a="insert"),i+=o.content.str):this.deletes(o)?(a!=="delete"&&(f(),a="delete"),d+=o.length):o.deleted||(a!=="retain"&&(f(),a="retain"),u+=o.length);break;case Eo:{const{key:p,value:h}=o.content;if(this.adds(o)){if(!this.deletes(o)){const m=s.get(p)??null;Ga(m,h)?h!==null&&o.delete(e):(a==="retain"&&f(),Ga(h,r.get(p)??null)?delete c[p]:c[p]=h)}}else if(this.deletes(o)){r.set(p,h);const m=s.get(p)??null;Ga(m,h)||(a==="retain"&&f(),c[p]=m)}else if(!o.deleted){r.set(p,h);const m=c[p];m!==void 0&&(Ga(m,h)?m!==null&&o.delete(e):(a==="retain"&&f(),h===null?delete c[p]:c[p]=h))}o.deleted||(a==="insert"&&f(),du(s,o.content));break}}o=o.right}for(f();n.length>0;){const p=n[n.length-1];if(p.retain!==void 0&&p.attributes===void 0)n.pop();else break}}),this._delta=n}return this._delta}}class Nh extends Mo{constructor(t){super(),this._pending=t!==void 0?[()=>this.insert(0,t)]:[],this._searchMarker=[],this._hasFormatting=!1}get length(){return this._length}_integrate(t,n){super._integrate(t,n);try{this._pending.forEach(e=>e())}catch(e){console.error(e)}this._pending=null}_copy(){return new Nh}clone(){const t=new Nh;return t.applyDelta(this.toDelta()),t}_callObserver(t,n){super._callObserver(t,n);const e=new d3(this,t,n);jh(this,t,e),!t.local&&this._hasFormatting&&(t._needFormattingCleanup=!0)}toString(){let t="",n=this._start;for(;n!==null;)!n.deleted&&n.countable&&n.content.constructor===sa&&(t+=n.content.str),n=n.right;return t}toJSON(){return this.toString()}applyDelta(t,{sanitize:n=!0}={}){this.doc!==null?Fr(this.doc,e=>{const s=new y0(null,this._start,0,new Map);for(let r=0;r<t.length;r++){const o=t[r];if(o.insert!==void 0){const a=!n&&typeof o.insert=="string"&&r===t.length-1&&s.right===null&&o.insert.slice(-1)===`
|
|
1545
|
-
`?o.insert.slice(0,-1):o.insert;(typeof a!="string"||a.length>0)&&v0(e,this,s,a,o.attributes||{})}else o.retain!==void 0?zE(e,this,s,o.retain,o.attributes||{}):o.delete!==void 0&&HE(e,s,o.delete)}}):this._pending.push(()=>this.applyDelta(t))}toDelta(t,n,e){const s=[],r=new Map,o=this.doc;let a="",c=this._start;function i(){if(a.length>0){const d={};let f=!1;r.forEach((h,m)=>{f=!0,d[m]=h});const p={insert:a};f&&(p.attributes=d),s.push(p),a=""}}const u=()=>{for(;c!==null;){if(cu(c,t)||n!==void 0&&cu(c,n))switch(c.content.constructor){case sa:{const d=r.get("ychange");t!==void 0&&!cu(c,t)?(d===void 0||d.user!==c.id.client||d.type!=="removed")&&(i(),r.set("ychange",e?e("removed",c.id):{type:"removed"})):n!==void 0&&!cu(c,n)?(d===void 0||d.user!==c.id.client||d.type!=="added")&&(i(),r.set("ychange",e?e("added",c.id):{type:"added"})):d!==void 0&&(i(),r.delete("ychange")),a+=c.content.str;break}case Ya:case pu:{i();const d={insert:c.content.getContent()[0]};if(r.size>0){const f={};d.attributes=f,r.forEach((p,h)=>{f[h]=p})}s.push(d);break}case Eo:cu(c,t)&&(i(),du(r,c.content));break}c=c.right}i()};return t||n?Fr(o,d=>{t&&u0(d,t),n&&u0(d,n),u()},"cleanup"):u(),s}insert(t,n,e){if(n.length<=0)return;const s=this.doc;s!==null?Fr(s,r=>{const o=Oh(r,this,t,!e);e||(e={},o.currentAttributes.forEach((a,c)=>{e[c]=a})),v0(r,this,o,n,e)}):this._pending.push(()=>this.insert(t,n,e))}insertEmbed(t,n,e){const s=this.doc;s!==null?Fr(s,r=>{const o=Oh(r,this,t,!e);v0(r,this,o,n,e||{})}):this._pending.push(()=>this.insertEmbed(t,n,e||{}))}delete(t,n){if(n===0)return;const e=this.doc;e!==null?Fr(e,s=>{HE(s,Oh(s,this,t,!0),n)}):this._pending.push(()=>this.delete(t,n))}format(t,n,e){if(n===0)return;const s=this.doc;s!==null?Fr(s,r=>{const o=Oh(r,this,t,!1);o.right!==null&&zE(r,this,o,n,e)}):this._pending.push(()=>this.format(t,n,e))}removeAttribute(t){this.doc!==null?Fr(this.doc,n=>{Th(n,this,t)}):this._pending.push(()=>this.removeAttribute(t))}setAttribute(t,n){this.doc!==null?Fr(this.doc,e=>{g0(e,this,t,n)}):this._pending.push(()=>this.setAttribute(t,n))}getAttribute(t){return m0(this,t)}getAttributes(){return IE(this)}_write(t){t.writeTypeRef(y3)}}class b0{constructor(t,n=()=>!0){this._filter=n,this._root=t,this._currentNode=t._start,this._firstCall=!0}[Symbol.iterator](){return this}next(){let t=this._currentNode,n=t&&t.content&&t.content.type;if(t!==null&&(!this._firstCall||t.deleted||!this._filter(n)))do if(n=t.content.type,!t.deleted&&(n.constructor===Zd||n.constructor===fu)&&n._start!==null)t=n._start;else for(;t!==null;)if(t.right!==null){t=t.right;break}else t.parent===this._root?t=null:t=t.parent._item;while(t!==null&&(t.deleted||!this._filter(t.content.type)));return this._firstCall=!1,t===null?{value:void 0,done:!0}:(this._currentNode=t,{value:t.content.type,done:!1})}}class fu extends Mo{constructor(){super(),this._prelimContent=[]}get firstChild(){const t=this._first;return t?t.content.getContent()[0]:null}_integrate(t,n){super._integrate(t,n),this.insert(0,this._prelimContent),this._prelimContent=null}_copy(){return new fu}clone(){const t=new fu;return t.insert(0,this.toArray().map(n=>n instanceof Mo?n.clone():n)),t}get length(){return this._prelimContent===null?this._length:this._prelimContent.length}createTreeWalker(t){return new b0(this,t)}querySelector(t){t=t.toUpperCase();const e=new b0(this,s=>s.nodeName&&s.nodeName.toUpperCase()===t).next();return e.done?null:e.value}querySelectorAll(t){return t=t.toUpperCase(),iu(new b0(this,n=>n.nodeName&&n.nodeName.toUpperCase()===t))}_callObserver(t,n){jh(this,t,new f3(this,n,t))}toString(){return TE(this,t=>t.toString()).join("")}toJSON(){return this.toString()}toDOM(t=document,n={},e){const s=t.createDocumentFragment();return e!==void 0&&e._createAssociation(s,this),Yd(this,r=>{s.insertBefore(r.toDOM(t,n,e),null)}),s}insert(t,n){this.doc!==null?Fr(this.doc,e=>{NE(e,this,t,n)}):this._prelimContent.splice(t,0,...n)}insertAfter(t,n){if(this.doc!==null)Fr(this.doc,e=>{const s=t&&t instanceof Mo?t._item:t;kh(e,this,s,n)});else{const e=this._prelimContent,s=t===null?0:e.findIndex(r=>r===t)+1;if(s===0&&t!==null)throw lu("Reference item not found");e.splice(s,0,...n)}}delete(t,n=1){this.doc!==null?Fr(this.doc,e=>{PE(e,this,t,n)}):this._prelimContent.splice(t,n)}toArray(){return kE(this)}push(t){this.insert(this.length,t)}unshift(t){this.insert(0,t)}get(t){return AE(this,t)}slice(t=0,n=this.length){return jE(this,t,n)}forEach(t){Yd(this,t)}_write(t){t.writeTypeRef(b3)}}class Zd extends fu{constructor(t="UNDEFINED"){super(),this.nodeName=t,this._prelimAttrs=new Map}get nextSibling(){const t=this._item?this._item.next:null;return t?t.content.type:null}get prevSibling(){const t=this._item?this._item.prev:null;return t?t.content.type:null}_integrate(t,n){super._integrate(t,n),this._prelimAttrs.forEach((e,s)=>{this.setAttribute(s,e)}),this._prelimAttrs=null}_copy(){return new Zd(this.nodeName)}clone(){const t=new Zd(this.nodeName),n=this.getAttributes();return gM(n,(e,s)=>{typeof e=="string"&&t.setAttribute(s,e)}),t.insert(0,this.toArray().map(e=>e instanceof Mo?e.clone():e)),t}toString(){const t=this.getAttributes(),n=[],e=[];for(const a in t)e.push(a);e.sort();const s=e.length;for(let a=0;a<s;a++){const c=e[a];n.push(c+'="'+t[c]+'"')}const r=this.nodeName.toLocaleLowerCase(),o=n.length>0?" "+n.join(" "):"";return`<${r}${o}>${super.toString()}</${r}>`}removeAttribute(t){this.doc!==null?Fr(this.doc,n=>{Th(n,this,t)}):this._prelimAttrs.delete(t)}setAttribute(t,n){this.doc!==null?Fr(this.doc,e=>{g0(e,this,t,n)}):this._prelimAttrs.set(t,n)}getAttribute(t){return m0(this,t)}hasAttribute(t){return ME(this,t)}getAttributes(t){return t?s3(this,t):IE(this)}toDOM(t=document,n={},e){const s=t.createElement(this.nodeName),r=this.getAttributes();for(const o in r){const a=r[o];typeof a=="string"&&s.setAttribute(o,a)}return Yd(this,o=>{s.appendChild(o.toDOM(t,n,e))}),e!==void 0&&e._createAssociation(s,this),s}_write(t){t.writeTypeRef(v3),t.writeKey(this.nodeName)}}class f3 extends Eh{constructor(t,n,e){super(t,e),this.childListChanged=!1,this.attributesChanged=new Set,n.forEach(s=>{s===null?this.childListChanged=!0:this.attributesChanged.add(s)})}}class qE{constructor(t,n){this.id=t,this.length=n}get deleted(){throw Cs()}mergeWith(t){return!1}write(t,n,e){throw Cs()}integrate(t,n){throw Cs()}}const p3=0;class $a extends qE{get deleted(){return!0}delete(){}mergeWith(t){return this.constructor!==t.constructor?!1:(this.length+=t.length,!0)}integrate(t,n){n>0&&(this.id.clock+=n,this.length-=n),yE(t.doc.store,this)}write(t,n){t.writeInfo(p3),t.writeLen(this.length-n)}getMissing(t,n){return null}}class Ph{constructor(t){this.content=t}getLength(){return 1}getContent(){return[this.content]}isCountable(){return!0}copy(){return new Ph(this.content)}splice(t){throw Cs()}mergeWith(t){return!1}integrate(t,n){}delete(t){}gc(t){}write(t,n){t.writeBuf(this.content)}getRef(){return 3}}class Ih{constructor(t){this.len=t}getLength(){return this.len}getContent(){return[]}isCountable(){return!1}copy(){return new Ih(this.len)}splice(t){const n=new Ih(this.len-t);return this.len=t,n}mergeWith(t){return this.len+=t.len,!0}integrate(t,n){dE(t.deleteSet,n.id.client,n.id.clock,this.len),n.markDeleted()}delete(t){}gc(t){}write(t,n){t.writeLen(this.len-n)}getRef(){return 1}}const h3=(l,t)=>new Gd({guid:l,...t,shouldLoad:t.shouldLoad||t.autoLoad||!1});class Mh{constructor(t){t._item&&console.error("This document was already integrated as a sub-document. You should create a second instance instead with the same guid."),this.doc=t;const n={};this.opts=n,t.gc||(n.gc=!1),t.autoLoad&&(n.autoLoad=!0),t.meta!==null&&(n.meta=t.meta)}getLength(){return 1}getContent(){return[this.doc]}isCountable(){return!0}copy(){return new Mh(h3(this.doc.guid,this.opts))}splice(t){throw Cs()}mergeWith(t){return!1}integrate(t,n){this.doc._item=n,t.subdocsAdded.add(this.doc),this.doc.shouldLoad&&t.subdocsLoaded.add(this.doc)}delete(t){t.subdocsAdded.has(this.doc)?t.subdocsAdded.delete(this.doc):t.subdocsRemoved.add(this.doc)}gc(t){}write(t,n){t.writeString(this.doc.guid),t.writeAny(this.opts)}getRef(){return 9}}class pu{constructor(t){this.embed=t}getLength(){return 1}getContent(){return[this.embed]}isCountable(){return!0}copy(){return new pu(this.embed)}splice(t){throw Cs()}mergeWith(t){return!1}integrate(t,n){}delete(t){}gc(t){}write(t,n){t.writeJSON(this.embed)}getRef(){return 5}}class Eo{constructor(t,n){this.key=t,this.value=n}getLength(){return 1}getContent(){return[]}isCountable(){return!1}copy(){return new Eo(this.key,this.value)}splice(t){throw Cs()}mergeWith(t){return!1}integrate(t,n){const e=n.parent;e._searchMarker=null,e._hasFormatting=!0}delete(t){}gc(t){}write(t,n){t.writeKey(this.key),t.writeJSON(this.value)}getRef(){return 6}}class hu{constructor(t){this.arr=t}getLength(){return this.arr.length}getContent(){return this.arr}isCountable(){return!0}copy(){return new hu(this.arr)}splice(t){const n=new hu(this.arr.slice(t));return this.arr=this.arr.slice(0,t),n}mergeWith(t){return this.arr=this.arr.concat(t.arr),!0}integrate(t,n){}delete(t){}gc(t){}write(t,n){const e=this.arr.length;t.writeLen(e-n);for(let s=n;s<e;s++){const r=this.arr[s];t.writeAny(r)}}getRef(){return 8}}class sa{constructor(t){this.str=t}getLength(){return this.str.length}getContent(){return this.str.split("")}isCountable(){return!0}copy(){return new sa(this.str)}splice(t){const n=new sa(this.str.slice(t));this.str=this.str.slice(0,t);const e=this.str.charCodeAt(t-1);return e>=55296&&e<=56319&&(this.str=this.str.slice(0,t-1)+"�",n.str="�"+n.str.slice(1)),n}mergeWith(t){return this.str+=t.str,!0}integrate(t,n){}delete(t){}gc(t){}write(t,n){t.writeString(n===0?this.str:this.str.slice(n))}getRef(){return 4}}const g3=0,m3=1,y3=2,v3=3,b3=4;class Ya{constructor(t){this.type=t}getLength(){return 1}getContent(){return[this.type]}isCountable(){return!0}copy(){return new Ya(this.type._copy())}splice(t){throw Cs()}mergeWith(t){return!1}integrate(t,n){this.type._integrate(t.doc,n)}delete(t){let n=this.type._start;for(;n!==null;)n.deleted?n.id.clock<(t.beforeState.get(n.id.client)||0)&&t._mergeStructs.push(n):n.delete(t),n=n.right;this.type._map.forEach(e=>{e.deleted?e.id.clock<(t.beforeState.get(e.id.client)||0)&&t._mergeStructs.push(e):e.delete(t)}),t.changed.delete(this.type)}gc(t){let n=this.type._start;for(;n!==null;)n.gc(t,!0),n=n.right;this.type._start=null,this.type._map.forEach(e=>{for(;e!==null;)e.gc(t,!0),e=e.left}),this.type._map=new Map}write(t,n){this.type._write(t)}getRef(){return 7}}const WE=(l,t,n)=>{const{client:e,clock:s}=t.id,r=new Wo(Qr(e,s+n),t,Qr(e,s+n-1),t.right,t.rightOrigin,t.parent,t.parentSub,t.content.splice(n));return t.deleted&&r.markDeleted(),t.keep&&(r.keep=!0),t.redone!==null&&(r.redone=Qr(t.redone.client,t.redone.clock+n)),t.right=r,r.right!==null&&(r.right.left=r),l._mergeStructs.push(r),r.parentSub!==null&&r.right===null&&r.parent._map.set(r.parentSub,r),t.length=n,r};class Wo extends qE{constructor(t,n,e,s,r,o,a,c){super(t,c.getLength()),this.origin=e,this.left=n,this.right=s,this.rightOrigin=r,this.parent=o,this.parentSub=a,this.redone=null,this.content=c,this.info=this.content.isCountable()?qS:0}set marker(t){(this.info&Zy)>0!==t&&(this.info^=Zy)}get marker(){return(this.info&Zy)>0}get keep(){return(this.info&HS)>0}set keep(t){this.keep!==t&&(this.info^=HS)}get countable(){return(this.info&qS)>0}get deleted(){return(this.info&Yy)>0}set deleted(t){this.deleted!==t&&(this.info^=Yy)}markDeleted(){this.info|=Yy}getMissing(t,n){if(this.origin&&this.origin.client!==this.id.client&&this.origin.clock>=di(n,this.origin.client))return this.origin.client;if(this.rightOrigin&&this.rightOrigin.client!==this.id.client&&this.rightOrigin.clock>=di(n,this.rightOrigin.client))return this.rightOrigin.client;if(this.parent&&this.parent.constructor===wh&&this.id.client!==this.parent.client&&this.parent.clock>=di(n,this.parent.client))return this.parent.client;if(this.origin&&(this.left=vE(t,n,this.origin),this.origin=this.left.lastId),this.rightOrigin&&(this.right=Ka(t,this.rightOrigin),this.rightOrigin=this.right.id),this.left&&this.left.constructor===$a||this.right&&this.right.constructor===$a)this.parent=null;else if(!this.parent)this.left&&this.left.constructor===Wo&&(this.parent=this.left.parent,this.parentSub=this.left.parentSub),this.right&&this.right.constructor===Wo&&(this.parent=this.right.parent,this.parentSub=this.right.parentSub);else if(this.parent.constructor===wh){const e=f0(n,this.parent);e.constructor===$a?this.parent=null:this.parent=e.content.type}return null}integrate(t,n){if(n>0&&(this.id.clock+=n,this.left=vE(t,t.doc.store,Qr(this.id.client,this.id.clock-1)),this.origin=this.left.lastId,this.content=this.content.splice(n),this.length-=n),this.parent){if(!this.left&&(!this.right||this.right.left!==null)||this.left&&this.left.right!==this.right){let e=this.left,s;if(e!==null)s=e.right;else if(this.parentSub!==null)for(s=this.parent._map.get(this.parentSub)||null;s!==null&&s.left!==null;)s=s.left;else s=this.parent._start;const r=new Set,o=new Set;for(;s!==null&&s!==this.right;){if(o.add(s),r.add(s),xh(this.origin,s.origin)){if(s.id.client<this.id.client)e=s,r.clear();else if(xh(this.rightOrigin,s.rightOrigin))break}else if(s.origin!==null&&o.has(f0(t.doc.store,s.origin)))r.has(f0(t.doc.store,s.origin))||(e=s,r.clear());else break;s=s.right}this.left=e}if(this.left!==null){const e=this.left.right;this.right=e,this.left.right=this}else{let e;if(this.parentSub!==null)for(e=this.parent._map.get(this.parentSub)||null;e!==null&&e.left!==null;)e=e.left;else e=this.parent._start,this.parent._start=this;this.right=e}this.right!==null?this.right.left=this:this.parentSub!==null&&(this.parent._map.set(this.parentSub,this),this.left!==null&&this.left.delete(t)),this.parentSub===null&&this.countable&&!this.deleted&&(this.parent._length+=this.length),yE(t.doc.store,this),this.content.integrate(t,this),wE(t,this.parent,this.parentSub),(this.parent._item!==null&&this.parent._item.deleted||this.parentSub!==null&&this.right!==null)&&this.delete(t)}else new $a(this.id,this.length).integrate(t,0)}get next(){let t=this.right;for(;t!==null&&t.deleted;)t=t.right;return t}get prev(){let t=this.left;for(;t!==null&&t.deleted;)t=t.left;return t}get lastId(){return this.length===1?this.id:Qr(this.id.client,this.id.clock+this.length-1)}mergeWith(t){if(this.constructor===t.constructor&&xh(t.origin,this.lastId)&&this.right===t&&xh(this.rightOrigin,t.rightOrigin)&&this.id.client===t.id.client&&this.id.clock+this.length===t.id.clock&&this.deleted===t.deleted&&this.redone===null&&t.redone===null&&this.content.constructor===t.content.constructor&&this.content.mergeWith(t.content)){const n=this.parent._searchMarker;return n&&n.forEach(e=>{e.p===t&&(e.p=this,!this.deleted&&this.countable&&(e.index-=this.length))}),t.keep&&(this.keep=!0),this.right=t.right,this.right!==null&&(this.right.left=this),this.length+=t.length,!0}return!1}delete(t){if(!this.deleted){const n=this.parent;this.countable&&this.parentSub===null&&(n._length-=this.length),this.markDeleted(),dE(t.deleteSet,this.id.client,this.id.clock,this.length),wE(t,n,this.parentSub),this.content.delete(t)}}gc(t,n){if(!this.deleted)throw Hl();this.content.gc(t),n?YM(t,this,new $a(this.id,this.length)):this.content=new Ih(this.length)}write(t,n){const e=n>0?Qr(this.id.client,this.id.clock+n-1):this.origin,s=this.rightOrigin,r=this.parentSub,o=this.content.getRef()&H5|(e===null?0:bh)|(s===null?0:WS)|(r===null?0:U5);if(t.writeInfo(o),e!==null&&t.writeLeftID(e),s!==null&&t.writeRightID(s),e===null&&s===null){const a=this.parent;if(a._item!==void 0){const c=a._item;if(c===null){const i=GM(a);t.writeParentInfo(!0),t.writeString(i)}else t.writeParentInfo(!1),t.writeLeftID(c.id)}else a.constructor===String?(t.writeParentInfo(!0),t.writeString(a)):a.constructor===wh?(t.writeParentInfo(!1),t.writeLeftID(a)):Hl();r!==null&&t.writeString(r)}this.content.write(t,n)}}const JE=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:{},VE="__ $YJS$ __";JE[VE]===!0&&console.error("Yjs was already imported. This breaks constructor checks and will lead to issues! - https://github.com/yjs/yjs/issues/438"),JE[VE]=!0;function _3(l){return l&&l.__esModule&&Object.prototype.hasOwnProperty.call(l,"default")?l.default:l}_3(function(l){const t=new URLSearchParams;t.append("code",l);for(let n=1;n<arguments.length;n++)t.append("v",arguments[n]);throw Error(`Minified Lexical error #${l}; visit https://lexical.dev/docs/error?${t} for the full message or use the non-minified dev environment for full errors and additional helpful warnings.`)});const w3=po();function KE(){return Math.random().toString(36).replace(/[^a-z]+/g,"").substr(0,5)}function x3(){const l=new Date,t=String(l.getHours()).padStart(2,"0"),n=String(l.getMinutes()).padStart(2,"0");return`${t}:${n}`}function GE(){return new Date().toLocaleDateString("en-US",{month:"short",day:"numeric"})}console.log(GE());function Rh(l,t,n,e,s,r,o){return{author:t,content:l,deleted:o===void 0?!1:o,id:r===void 0?KE():r,timeStamp:s===void 0?`${x3()} - ${GE()}`:s,type:"comment",userEmail:n===void 0?"":n,mentionedEmails:e===void 0?[]:e}}function $E(l,t,n,e){return console.log("wpAndTaskId 2222222222222",e),{comments:t,id:n===void 0?KE():n,quote:l,type:"thread",resolved:!1,wpAndTaskId:e}}function YE(l){return console.log("thread clone is called",l),{comments:Array.from(l.comments),id:l.id,quote:l.quote,type:"thread",resolved:l.resolved,wpAndTaskId:l.wpAndTaskId}}function S3(l){return{author:l.author,content:"[Deleted Comment]",deleted:!0,id:l.id,timeStamp:l.timeStamp,type:"comment",userEmail:l.userEmail,mentionedEmails:l.mentionedEmails}}function Dh(l){const t=l._changeListeners;for(const n of t)n()}class Qd{constructor(t){Hn(this,"_editor");Hn(this,"_comments");Hn(this,"_changeListeners");Hn(this,"_collabProvider");this._comments=[],this._editor=t,this._collabProvider=null,this._changeListeners=new Set}isCollaborative(){return this._collabProvider!==null}getComments(){return this._comments}setComments(t){this._comments=t,Dh(this)}addComment(t,n,e){const s=Array.from(this._comments),r=this._getCollabComments();if(n!==void 0&&t.type==="comment")for(let o=0;o<s.length;o++){const a=s[o];if(a.type==="thread"&&a.id===n.id){const c=YE(a);s.splice(o,1,c);const i=e!==void 0?e:c.comments.length;if(this.isCollaborative()&&r!==null){const u=r.get(o).get("comments");this._withRemoteTransaction(()=>{const d=this._createCollabSharedMap(t);u.insert(i,[d])})}c.comments.splice(i,0,t);break}}else{const o=e!==void 0?e:s.length;this.isCollaborative()&&r!==null&&this._withRemoteTransaction(()=>{const a=this._createCollabSharedMap(t);r.insert(o,[a])}),s.splice(o,0,t)}this._comments=s,Dh(this)}deleteCommentOrThread(t,n){const e=Array.from(this._comments),s=this._getCollabComments();let r=null;if(n!==void 0)for(let o=0;o<e.length;o++){const a=e[o];if(a.type==="thread"&&a.id===n.id){const c=YE(a);e.splice(o,1,c);const i=c.comments;if(r=i.indexOf(t),this.isCollaborative()&&s!==null){const u=s.get(o).get("comments");this._withRemoteTransaction(()=>{u.delete(r)})}i.splice(r,1);break}}else r=e.indexOf(t),this.isCollaborative()&&s!==null&&this._withRemoteTransaction(()=>{s.delete(r)}),e.splice(r,1);return this._comments=e,Dh(this),t.type==="comment"?{index:r,markedComment:S3(t)}:null}resolveThread(t){const n={...t,resolved:!0},e=this._comments.map(s=>s.type==="thread"&&s.id===n.id?n:s);this._comments=e,Dh(this)}registerOnChange(t){const n=this._changeListeners;return n.add(t),()=>{n.delete(t)}}_withRemoteTransaction(t){const n=this._collabProvider;n!==null&&n.doc.transact(t,this)}_withLocalTransaction(t){const n=this._collabProvider;try{this._collabProvider=null,t()}finally{this._collabProvider=n}}_getCollabComments(){const t=this._collabProvider;return t!==null?t.doc.get("comments",ql):null}_createCollabSharedMap(t){const n=new uu,e=t.type,s=t.id;if(n.set("type",e),n.set("id",s),e==="comment")n.set("author",t.author),n.set("content",t.content),n.set("deleted",t.deleted),n.set("timeStamp",t.timeStamp),n.set("userEmail",t.userEmail);else{n.set("quote",t.quote);const r=new ql;t.comments.forEach((o,a)=>{const c=this._createCollabSharedMap(o);r.insert(a,[c])}),n.set("comments",r)}return n}registerCollaboration(t){this._collabProvider=t;const n=this._getCollabComments(),e=()=>{t.connect()},s=()=>{try{t.disconnect()}catch{}},r=this._editor.registerCommand(w3,a=>(e!==void 0&&s!==void 0&&(a?(console.log("Comments connected!"),e()):(console.log("Comments disconnected!"),s())),!1),Jn),o=(a,c)=>{if(c.origin!==this)for(let i=0;i<a.length;i++){const u=a[i];if(u instanceof RE){const d=u.target,f=u.delta;let p=0;for(let h=0;h<f.length;h++){const m=f[h],g=m.insert,v=m.retain,b=m.delete,_=d.parent,E=d===n?void 0:_ instanceof uu&&this._comments.find(S=>S.id===_.get("id"));if(Array.isArray(g))g.slice().reverse().forEach(S=>{const w=S.get("id"),x=S.get("type")==="thread"?$E(S.get("quote"),S.get("comments").toArray().map(C=>Rh(C.get("content"),C.get("author"),C.get("userEmail"),C.get("mentionedEmails"),C.get("timeStamp"),C.get("id"),C.get("deleted"))),w,S.get("wpAndTaskId")):Rh(S.get("content"),S.get("author"),S.get("userEmail"),S.get("mentionedEmails"),w,S.get("timeStamp"),S.get("deleted"));this._withLocalTransaction(()=>{this.addComment(x,E,p)})});else if(typeof v=="number")p+=v;else if(typeof b=="number")for(let S=0;S<b;S++){const w=E===void 0||E===!1?this._comments[p]:E.comments[p];this._withLocalTransaction(()=>{this.deleteCommentOrThread(w,E)}),p++}}}}};return n===null?()=>null:(n.observeDeep(o),e(),()=>{n.unobserveDeep(o),r(),this._collabProvider=null})}}function E3(l){const[t,n]=he.useState(l.getComments());return he.useEffect(()=>l.registerOnChange(()=>{n(l.getComments())}),[l]),t}const JD="",C3={...ry,paragraph:"CommentEditorTheme__paragraph"},j3="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iMjRweCIgdmlld0JveD0iMCAtOTYwIDk2MCA5NjAiIHdpZHRoPSIyNHB4IiBmaWxsPSIjNWY2MzY4Ij48cGF0aCBkPSJNNDQwLTQwMGg4MHYtMTIwaDEyMHYtODBINTIwdi0xMjBoLTgwdjEyMEgzMjB2ODBoMTIwdjEyMFpNODAtODB2LTcyMHEwLTMzIDIzLjUtNTYuNVQxNjAtODgwaDY0MHEzMyAwIDU2LjUgMjMuNVQ4ODAtODAwdjQ4MHEwIDMzLTIzLjUgNTYuNVQ4MDAtMjQwSDI0MEw4MC04MFptMTI2LTI0MGg1OTR2LTQ4MEgxNjB2NTI1bDQ2LTQ1Wm0tNDYgMHYtNDgwIDQ4MFoiLz48L3N2Zz4NCg==",k3="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz48c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkxheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IiB3aWR0aD0iMTIyLjg4MXB4IiBoZWlnaHQ9Ijg5Ljg0MnB4IiB2aWV3Qm94PSIwIDAgMTIyLjg4MSA4OS44NDIiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDEyMi44ODEgODkuODQyIiB4bWw6c3BhY2U9InByZXNlcnZlIj48Zz48cGF0aCBkPSJNMS4yMzIsNTUuNTQxYy0xLjUzMy0xLjM4OC0xLjY1Mi0zLjc1Ni0wLjI2NS01LjI4OWMxLjM4OC0xLjUzNCwzLjc1Ni0xLjY1Miw1LjI5LTAuMjY1bDM0LjA1MywzMC44NzhsNzYuMDk5LTc5LjY5OSBjMS40MjktMS41MDEsMy44MDQtMS41NjEsNS4zMDUtMC4xMzJjMS41MDIsMS40MjgsMS41NjEsMy44MDMsMC4xMzMsNS4zMDVMNDMuMjIzLDg4LjY4M2wtMC4wMDUtMC4wMDUgYy0xLjM5NiwxLjQ2OC0zLjcxNiwxLjU2My01LjIyNywwLjE5NkwxLjIzMiw1NS41NDFMMS4yMzIsNTUuNTQxeiIvPjwvZz48L3N2Zz4=",T3="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pg0KPCEtLSBVcGxvYWRlZCB0bzogU1ZHIFJlcG8sIHd3dy5zdmdyZXBvLmNvbSwgR2VuZXJhdG9yOiBTVkcgUmVwbyBNaXhlciBUb29scyAtLT4NCjxzdmcgZmlsbD0iIzAwMDAwMCIgaGVpZ2h0PSI4MDBweCIgd2lkdGg9IjgwMHB4IiB2ZXJzaW9uPSIxLjEiIGlkPSJDYXBhXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIA0KCSB2aWV3Qm94PSIwIDAgNDkwIDQ5MCIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+DQo8cG9seWdvbiBwb2ludHM9IjQ1Ni44NTEsMCAyNDUsMjEyLjU2NCAzMy4xNDksMCAwLjcwOCwzMi4zMzcgMjEyLjY2OSwyNDUuMDA0IDAuNzA4LDQ1Ny42NzggMzMuMTQ5LDQ5MCAyNDUsMjc3LjQ0MyA0NTYuODUxLDQ5MCANCgk0ODkuMjkyLDQ1Ny42NzggMjc3LjMzMSwyNDUuMDA0IDQ4OS4yOTIsMzIuMzM3ICIvPg0KPC9zdmc+",A3=typeof window<"u"&&window.document!==void 0&&window.document.createElement!==void 0?he.useLayoutEffect:he.useEffect;let ZE=class{constructor(t){this.key=t,this.ref={current:null},this.setRefElement=this.setRefElement.bind(this)}setRefElement(t){this.ref={current:t}}};const QE=l=>{const t=document.getElementById("typeahead-menu");if(!t)return;const n=t.getBoundingClientRect();n.top+n.height>window.innerHeight&&t.scrollIntoView({block:"center"}),n.top<0&&t.scrollIntoView({block:"center"}),l.scrollIntoView({block:"nearest"})};function XE(l,t){const n=l.getBoundingClientRect(),e=t.getBoundingClientRect();return n.top>e.top&&n.top<e.bottom}function O3(l,t,n,e){const[s]=yn();he.useEffect(()=>{if(t!=null&&l!=null){const r=s.getRootElement(),o=r!=null?function(d,f){let p=getComputedStyle(d);const h=p.position==="absolute",m=/(auto|scroll)/;if(p.position==="fixed")return document.body;for(let g=d;g=g.parentElement;)if(p=getComputedStyle(g),(!h||p.position!=="static")&&m.test(p.overflow+p.overflowY+p.overflowX))return g;return document.body}(r):document.body;let a=!1,c=XE(t,o);const i=function(){a||(window.requestAnimationFrame(function(){n(),a=!1}),a=!0);const d=XE(t,o);d!==c&&(c=d,e!=null&&e(d))},u=new ResizeObserver(n);return window.addEventListener("resize",n),document.addEventListener("scroll",i,{capture:!0,passive:!0}),u.observe(t),()=>{u.unobserve(t),window.removeEventListener("resize",n),document.removeEventListener("scroll",i,!0)}}},[t,s,e,n,l])}const eC=po();function N3({close:l,editor:t,anchorElementRef:n,resolution:e,options:s,menuRenderFn:r,onSelectOption:o,shouldSplitNodeWithQuery:a=!1,commandPriority:c=Jn}){const[i,u]=he.useState(null),d=e.match&&e.match.matchingString;he.useEffect(()=>{u(0)},[d]);const f=he.useCallback(h=>{t.update(()=>{const m=e.match!=null&&a?function(g){const v=jt();if(!St(v)||!v.isCollapsed())return null;const b=v.anchor;if(b.type!=="text")return null;const _=b.getNode();if(!_.isSimpleText())return null;const E=b.offset,S=_.getTextContent().slice(0,E),w=g.replaceableString.length,y=E-function(C,T,R){let F=R;for(let I=F;I<=T.length;I++)C.substr(-I)===T.substr(0,I)&&(F=I);return F}(S,g.matchingString,w);if(y<0)return null;let x;return y===0?[x]=_.splitText(E):[,x]=_.splitText(y,E),x}(e.match):null;o(h,m,l,e.match?e.match.matchingString:"")})},[t,a,e.match,o,l]),p=he.useCallback(h=>{const m=t.getRootElement();m!==null&&(m.setAttribute("aria-activedescendant","typeahead-item-"+h),u(h))},[t]);return he.useEffect(()=>()=>{const h=t.getRootElement();h!==null&&h.removeAttribute("aria-activedescendant")},[t]),A3(()=>{s===null?u(null):i===null&&p(0)},[s,i,p]),he.useEffect(()=>xr(t.registerCommand(eC,({option:h})=>!(!h.ref||h.ref.current==null)&&(QE(h.ref.current),!0),c)),[t,p,c]),he.useEffect(()=>xr(t.registerCommand(qu,h=>{const m=h;if(s!==null&&s.length&&i!==null){const g=i!==s.length-1?i+1:0;p(g);const v=s[g];v.ref!=null&&v.ref.current&&t.dispatchCommand(eC,{index:g,option:v}),m.preventDefault(),m.stopImmediatePropagation()}return!0},c),t.registerCommand(Hu,h=>{const m=h;if(s!==null&&s.length&&i!==null){const g=i!==0?i-1:s.length-1;p(g);const v=s[g];v.ref!=null&&v.ref.current&&QE(v.ref.current),m.preventDefault(),m.stopImmediatePropagation()}return!0},c),t.registerCommand(Fs,h=>{const m=h;return m.preventDefault(),m.stopImmediatePropagation(),l(),!0},c),t.registerCommand(Of,h=>{const m=h;return s!==null&&i!==null&&s[i]!=null&&(m.preventDefault(),m.stopImmediatePropagation(),f(s[i]),!0)},c),t.registerCommand(Ls,h=>s!==null&&i!==null&&s[i]!=null&&(h!==null&&(h.preventDefault(),h.stopImmediatePropagation()),f(s[i]),!0),c)),[f,l,t,s,i,p,c]),r(n,he.useMemo(()=>({options:s,selectOptionAndCleanUp:f,selectedIndex:i,setHighlightedIndex:u}),[f,i,s]),e.match?e.match.matchingString:"")}const P3=`\\.,\\+\\*\\?\\$\\@\\|#{}\\(\\)\\^\\-\\[\\]\\\\/!%'"~=<>_:;`;function tC(l,{minLength:t=1,maxLength:n=75}){return he.useCallback(e=>{const s=new RegExp("(^|\\s|\\()(["+l+"]((?:"+("[^"+l+P3+"\\s]")+"){0,"+n+"}))$").exec(e);if(s!==null){const r=s[1],o=s[3];if(o.length>=t)return{leadOffset:s.index+r.length,matchingString:o,replaceableString:s[2]}}return null},[n,t,l])}function nC({options:l,onQueryChange:t,onSelectOption:n,onOpen:e,onClose:s,menuRenderFn:r,triggerFn:o,anchorClassName:a,commandPriority:c=Jn,parent:i}){const[u]=yn(),[d,f]=he.useState(null),p=function(g,v,b,_=document.body){const[E]=yn(),S=he.useRef(document.createElement("div")),w=he.useCallback(()=>{S.current.style.top=S.current.style.bottom;const x=E.getRootElement(),C=S.current,T=C.firstChild;if(x!==null&&g!==null){const{left:R,top:F,width:I,height:B}=g.getRect(),A=S.current.offsetHeight;if(C.style.top=`${F+window.pageYOffset+A+3}px`,C.style.left=`${R+window.pageXOffset}px`,C.style.height=`${B}px`,C.style.width=`${I}px`,T!==null){T.style.top=`${F}`;const j=T.getBoundingClientRect(),O=j.height,L=j.width,N=x.getBoundingClientRect();R+L>N.right&&(C.style.left=`${N.right-L+window.pageXOffset}px`),(F+O>window.innerHeight||F+O>N.bottom)&&F-N.top>O+B&&(C.style.top=F-O+window.pageYOffset-B+"px")}C.isConnected||(b!=null&&(C.className=b),C.setAttribute("aria-label","Typeahead menu"),C.setAttribute("id","typeahead-menu"),C.setAttribute("role","listbox"),C.style.display="block",C.style.position="absolute",_.append(C)),S.current=C,x.setAttribute("aria-controls","typeahead-menu")}},[E,g,b,_]);he.useEffect(()=>{const x=E.getRootElement();if(g!==null)return w(),()=>{x!==null&&x.removeAttribute("aria-controls");const C=S.current;C!==null&&C.isConnected&&C.remove()}},[E,w,g]);const y=he.useCallback(x=>{g!==null&&(x||v(null))},[g,v]);return O3(g,S.current,w,y),S}(d,f,a,i),h=he.useCallback(()=>{f(null),s!=null&&d!==null&&s()},[s,d]),m=he.useCallback(g=>{f(g),e!=null&&d===null&&e(g)},[e,d]);return he.useEffect(()=>{const g=u.registerUpdateListener(()=>{u.getEditorState().read(()=>{const v=u._window||window,b=v.document.createRange(),_=jt(),E=function(y){let x=null;return y.getEditorState().read(()=>{const C=jt();St(C)&&(x=function(T){const R=T.anchor;if(R.type!=="text")return null;const F=R.getNode();if(!F.isSimpleText())return null;const I=R.offset;return F.getTextContent().slice(0,I)}(C))}),x}(u);if(!St(_)||!_.isCollapsed()||E===null||b===null)return void h();const S=o(E,u);if(t(S?S.matchingString:null),S!==null&&!function(y,x){return x===0&&y.getEditorState().read(()=>{const C=jt();if(St(C)){const T=C.anchor.getNode().getPreviousSibling();return Wt(T)&&T.isTextEntity()}return!1})}(u,S.leadOffset)&&function(x,C,T){const R=T.getSelection();if(R===null||!R.isCollapsed)return!1;const F=R.anchorNode,I=x,B=R.anchorOffset;if(F==null||B==null)return!1;try{C.setStart(F,I),C.setEnd(F,B)}catch{return!1}return!0}(S.leadOffset,b,v)!==null)return w=()=>m({getRect:()=>b.getBoundingClientRect(),match:S}),void(ir.startTransition?ir.startTransition(w):w());var w;h()})});return()=>{g()}},[u,o,t,d,h,m]),d===null||u===null?null:ae.jsx(N3,{close:h,resolution:d,editor:u,anchorElementRef:p,options:l,menuRenderFn:r,shouldSplitNodeWithQuery:!0,onSelectOption:n,commandPriority:c})}const rC=`\\.,\\+\\*\\?\\$\\@\\|#{}\\(\\)\\^\\-\\[\\]\\\\/!%'"~=<>_:;`,oC={NAME:"\\b[A-Z][^\\s"+rC+"]",PUNCTUATION:rC}.PUNCTUATION,_0=["@"].join(""),iC="[^"+_0+oC+"\\s]",I3="(?:\\.[ |$]| |["+oC+"]|)",M3=75,R3=new RegExp("(^|\\s|\\()(["+_0+"]((?:"+iC+I3+"){0,"+M3+"}))$"),D3=50,L3=new RegExp("(^|\\s|\\()(["+_0+"]((?:"+iC+"){0,"+D3+"}))$"),F3=5,w0=new Map,B3={search(l,t,n){setTimeout(()=>{const e=l.filter(s=>s.name.toLowerCase().includes(t.toLowerCase()));n(e)},500)}};function z3(l,t){const[n,e]=he.useState([]);return he.useEffect(()=>{const s=w0.get(l);if(l==null){e([]);return}if(s!==null){if(s!==void 0){e(s);return}w0.set(l,null),B3.search(t,l,r=>{w0.set(l,r),e(r)})}},[l,t]),n}function U3(l,t){let n=R3.exec(l);if(n===null&&(n=L3.exec(l)),n!==null){const e=n[1],s=n[3];if(s.length>=t)return{leadOffset:n.index+e.length,matchingString:s,replaceableString:n[2]}}return null}function H3(l){return U3(l,1)}class q3 extends ZE{constructor(n,e,s){super(n);Hn(this,"name");Hn(this,"email");Hn(this,"picture");this.name=n,this.email=e,this.picture=s}}function W3({index:l,isSelected:t,onClick:n,onMouseEnter:e,option:s}){let r="item";return t&&(r+=" selected"),ae.jsxs("li",{tabIndex:-1,className:r,ref:s.setRefElement,role:"option","aria-selected":t,id:"typeahead-item-"+l,onMouseEnter:e,onClick:n,children:[s.picture,ae.jsx("span",{className:"text",children:s.name})]},s.key)}function J3({mentionItems:l,setmentionedEmails:t}){const[n]=yn(),[e,s]=he.useState(null),r=z3(e,l),o=tC("/",{minLength:0}),a=he.useMemo(()=>r.map(u=>new q3(u.name,u.email,ae.jsx("i",{className:"icon user"}))).slice(0,F3),[r]),c=he.useCallback((u,d,f)=>{t(p=>[...p,u.email]),n.update(()=>{const p=Zm(`@${u.name}`);d&&d.replace(p),p.select(),f()})},[n]),i=he.useCallback(u=>o(u,n)!==null?null:H3(u),[o,n]);return ae.jsx(nC,{onQueryChange:s,onSelectOption:c,triggerFn:i,options:a,menuRenderFn:(u,{selectedIndex:d,selectOptionAndCleanUp:f,setHighlightedIndex:p})=>u.current&&r.length?Cf.createPortal(ae.jsx("div",{className:"typeahead-popover mentions-menu",children:ae.jsx("ul",{children:a.map((h,m)=>ae.jsx(W3,{index:m,isSelected:d===m,onClick:()=>{p(m),f(h)},onMouseEnter:()=>{p(m)},option:h},h.key))})}),u.current):null})}const x0=po();function V3({anchorKey:l,editor:t,onAddComment:n}){const e=he.useRef(null),s=he.useCallback(()=>{const r=e.current,o=t.getRootElement(),a=t.getElementByKey(l);if(r!==null&&o!==null&&a!==null){const{right:c}=o.getBoundingClientRect(),{top:i}=a.getBoundingClientRect();r.style.left=`${c-20}px`,r.style.top=`${i-30}px`}},[l,t]);return he.useEffect(()=>(window.addEventListener("resize",s),()=>{window.removeEventListener("resize",s)}),[t,s]),ir.useLayoutEffect(()=>{s()},[l,t,s]),ae.jsx("div",{className:"CommentPlugin_AddCommentBox",ref:e,children:ae.jsx("button",{style:{display:"flex",justifyContent:"center",alignItems:"center"},className:"CommentPlugin_AddCommentBox_button",onClick:n,children:ae.jsx("img",{src:j3,alt:""})})})}function K3({onEscape:l}){const[t]=yn();return he.useEffect(()=>t.registerCommand(Fs,n=>l(n),2),[t,l]),null}function sC({className:l,autoFocus:t,onEscape:n,onChange:e,editorRef:s,placeholder:r="",mentionItems:o,setmentionedEmails:a}){const c={namespace:"Commenting",nodes:[_d],onError:i=>{throw i},theme:C3};return he.useEffect(()=>()=>{a([])},[]),ae.jsxs(dp,{initialConfig:c,children:[ae.jsxs("div",{className:"CommentPlugin_CommentInputBox_EditorContainer",children:[ae.jsx(_x,{contentEditable:ae.jsx(Od,{className:l}),placeholder:ae.jsx(Nd,{children:r}),ErrorBoundary:Dl}),ae.jsx(yx,{onChange:e}),ae.jsx(mp,{}),t!==!1&&ae.jsx(Dp,{}),ae.jsx(K3,{onEscape:n}),ae.jsx(gx,{}),s!==void 0&&ae.jsx(R5,{editorRef:s})]}),ae.jsx(J3,{mentionItems:o,setmentionedEmails:a})]})}function aC(l,t){return he.useCallback((n,e)=>{n.read(()=>{l(oy()),t(!iy(e.isComposing(),!0))})},[t,l])}function G3({editor:l,cancelAddComment:t,submitAddComment:n,userName:e,userEmail:s,mentionItems:r,mentionedEmails:o,setmentionedEmails:a,wpAndTaskId:c,setShowCommentInput:i}){const[u,d]=he.useState(""),[f,p]=he.useState(!1),h=he.useRef(null),m=he.useMemo(()=>({container:document.createElement("div"),elements:[]}),[]),g=he.useRef(null),v=uC(),b=he.useCallback(()=>{l.getEditorState().read(()=>{const w=jt();if(St(w)){g.current=w.clone();const y=w.anchor,x=w.focus,C=s_(l,y.getNode(),y.offset,x.getNode(),x.offset),T=h.current;if(C!==null&&T!==null){const{left:R,bottom:F,width:I}=C.getBoundingClientRect(),B=a_(l,C);let A=B.length===1?R+I/2-125:R-125;A<10&&(A=10),T.style.left=`${A}px`,T.style.top=`${F+20+(window.pageYOffset||document.documentElement.scrollTop)}px`;const j=B.length,{container:O}=m,L=m.elements,N=L.length;for(let U=0;U<j;U++){const D=B[U];let z=L[U];z===void 0&&(z=document.createElement("span"),L[U]=z,O.appendChild(z));const K="255, 212, 0",G=`position:absolute;top:${D.top+(window.pageYOffset||document.documentElement.scrollTop)}px;left:${D.left}px;height:${D.height}px;width:${D.width}px;background-color:rgba(${K}, 0.3);pointer-events:none;z-index:5;`;z.style.cssText=G}for(let U=N-1;U>=j;U--){const D=L[U];O.removeChild(D),L.pop()}}}})},[l,m]);ir.useLayoutEffect(()=>{b();const w=m.container,y=document.body;if(y!==null)return y.appendChild(w),()=>{y.removeChild(w)}},[m.container,b]),he.useEffect(()=>(window.addEventListener("resize",b),window.addEventListener("scroll",b,!0),()=>{window.removeEventListener("resize",b),window.removeEventListener("scroll",b,!0)}),[b]);const _=w=>(w.preventDefault(),t(),!0),E=()=>{if(console.log("this is called",c),f){let w=l.getEditorState().read(()=>{const y=g.current;return y?y.getTextContent():""});w.length>100&&(w=w.slice(0,99)+"…"),n($E(w,[Rh(u,e??v,s,o)],void 0,c),!0,void 0,g.current),g.current=null}},S=aC(d,p);return ae.jsxs("div",{className:"CommentPlugin_CommentInputBox",ref:h,children:[ae.jsx(sC,{className:"CommentPlugin_CommentInputBox_Editor",onEscape:_,onChange:S,mentionItems:r,setmentionedEmails:a}),ae.jsxs("div",{className:"CommentPlugin_CommentInputBox_Buttons",children:[ae.jsx(Fi,{onClick:t,className:"CommentPlugin_CommentInputBox_Button",children:"Cancel"}),ae.jsx(Fi,{onClick:E,disabled:!f,className:"CommentPlugin_CommentInputBox_Button primary",children:"Comment"})]})]})}function $3({submitAddComment:l,thread:t,placeholder:n,userName:e,userEmail:s,mentionItems:r,mentionedEmails:o,setmentionedEmails:a}){const[c,i]=he.useState(""),[u,d]=he.useState(!1),f=he.useRef(null),p=uC(),h=aC(i,d),m=()=>{if(u){a([]),l(Rh(c,e??p,s,o),!1,t);const g=f.current;g!==null&&g.dispatchCommand(If,void 0)}};return ae.jsxs(ae.Fragment,{children:[ae.jsx(sC,{className:"CommentPlugin_CommentsPanel_Editor",autoFocus:!1,onEscape:()=>!0,onChange:h,editorRef:f,placeholder:n,mentionItems:r,setmentionedEmails:a}),ae.jsx(Fi,{className:"CommentPlugin_CommentsPanel_SendButton",onClick:m,disabled:!u,children:ae.jsx("i",{className:"send"})})]})}function lC({commentOrThread:l,deleteCommentOrThread:t,onClose:n,thread:e=void 0}){return ae.jsxs(ae.Fragment,{children:["Are you sure you want to delete this ",l.type,"?",ae.jsxs("div",{className:"Modal__content",children:[ae.jsx(Fi,{onClick:()=>{t(l,e),n()},children:"Delete"})," ",ae.jsx(Fi,{onClick:()=>{n()},children:"Cancel"})]})]})}function cC({comment:l,deleteComment:t,thread:n,rtf:e,userName:s,userEmail:r,mentionedEmails:o,setmentionedEmails:a}){const[c,i]=La();return ae.jsxs("li",{className:"CommentPlugin_CommentsPanel_List_Comment",children:[ae.jsxs("div",{className:"CommentPlugin_CommentsPanel_List_Details",children:[ae.jsx("span",{className:"CommentPlugin_CommentsPanel_List_Comment_Author",children:l.author}),ae.jsxs("span",{className:"CommentPlugin_CommentsPanel_List_Comment_Time",style:{fontSize:"13px"},children:["· ",l.timeStamp]})]}),ae.jsx("p",{className:l.deleted?"CommentPlugin_CommentsPanel_DeletedComment":"",style:{whiteSpace:"pre-wrap"},children:l.content.split(/(@\w+)/g).map((u,d)=>{if(!u.startsWith("@"))return u;const f=u.slice(1).toLowerCase();return(l.mentionedEmails??[]).some(h=>h.split("@")[0].toLowerCase()===f)?ae.jsx("span",{className:"CommentPlugin_Mention",children:u},d):u})}),!l.deleted&&ae.jsxs(ae.Fragment,{children:[s==l.author&&ae.jsx(Fi,{onClick:()=>{i("Delete Comment",u=>ae.jsx(lC,{commentOrThread:l,deleteCommentOrThread:t,thread:n,onClose:u}))},className:"CommentPlugin_CommentsPanel_List_DeleteButton",children:ae.jsx("i",{className:"delete"})}),c]})]})}function Y3({activeIDs:l,comments:t,deleteCommentOrThread:n,listRef:e,submitAddComment:s,markNodeMap:r,userName:o,userEmail:a,resolveThread:c,mentionItems:i,mentionedEmails:u,setmentionedEmails:d,wpAndTaskId:f}){const[p]=yn(),[h,m]=he.useState(0),[g,v]=La(),b=he.useMemo(()=>new Intl.RelativeTimeFormat("en",{localeMatcher:"best fit",numeric:"auto",style:"short"}),[]);he.useEffect(()=>{const E=setTimeout(()=>{m(h+1)},1e4);return()=>{clearTimeout(E)}},[h]),console.log("comments",t,f);const _=t.filter(E=>E.wpAndTaskId&&E.wpAndTaskId.workplanId===f.workplanId&&E.wpAndTaskId.taskId===f.taskId);return console.log("Filtered comments",_,f),ae.jsx("ul",{className:"CommentPlugin_CommentsPanel_List",ref:e,children:_.length>0?_.map(E=>{var w,y;const S=E.id;if(E.type==="thread"){const x=()=>{const C=r.get(S);if(C!==void 0&&(l===null||l.indexOf(S)===-1)){const T=document.activeElement;p.update(()=>{const R=Array.from(C)[0],F=Fn(R);Pl(F)&&F.selectStart()},{onUpdate(){T!==null&&T.focus()}})}};return ae.jsxs("li",{onClick:x,className:`CommentPlugin_CommentsPanel_List_Thread ${r.has(S)?"interactive":""} ${l.indexOf(S)===-1?"":"active"}`,children:[ae.jsxs("div",{className:"CommentPlugin_CommentsPanel_List_Thread_QuoteBox",children:[ae.jsxs("blockquote",{className:"CommentPlugin_CommentsPanel_List_Thread_Quote",children:[ae.jsx("span",{children:(w=E==null?void 0:E.comments[0])==null?void 0:w.author}),ae.jsx("img",{className:`add-toolbar-image-icon CommentPlugin_CommentsPanel_List_ResolveButton ${E!=null&&E.resolved?"opacity-full":""}`,src:k3,alt:"Resolve Comment",onClick:()=>c(E)})]}),o==((y=E==null?void 0:E.comments[0])==null?void 0:y.author)&&ae.jsx(Fi,{onClick:()=>{v("Delete Thread",C=>ae.jsx(lC,{commentOrThread:E,deleteCommentOrThread:n,onClose:C}))},className:"CommentPlugin_CommentsPanel_List_DeleteButton",children:ae.jsx("i",{className:"delete"})}),g]}),ae.jsx("ul",{className:"CommentPlugin_CommentsPanel_List_Thread_Comments",children:E&&E.comments&&E.comments.length&&E.comments.map(C=>C.deleted?null:ae.jsx(cC,{comment:C,deleteComment:n,thread:E,rtf:b,userName:o,userEmail:a},C.id))}),ae.jsx("div",{className:"CommentPlugin_CommentsPanel_List_Thread_Editor",children:!(E!=null&&E.resolved)&&ae.jsx("div",{className:"CommentPlugin_CommentsPanel_List_Thread_Editor",children:ae.jsx($3,{submitAddComment:s,thread:E,userName:o,userEmail:a,mentionItems:i,mentionedEmails:u,setmentionedEmails:d})})})]},S)}return ae.jsx(cC,{comment:E,deleteComment:n,rtf:b,userName:o,userEmail:a},S)}):ae.jsx("div",{className:"CommentPlugin_CommentsPanel_Empty",children:"No Comments"})})}function Z3({activeIDs:l,deleteCommentOrThread:t,comments:n,submitAddComment:e,markNodeMap:s,userName:r,userEmail:o,resolveThread:a,setShowComments:c,mentionItems:i,mentionedEmails:u,setmentionedEmails:d,wpAndTaskId:f}){const p=he.useRef(null),h=n.length===0;return ae.jsxs("div",{className:"CommentPlugin_CommentsPanel",children:[ae.jsxs("div",{className:"CommentPlugin_CommentsPanel_HeaderDiv",children:[ae.jsx("h2",{className:"CommentPlugin_CommentsPanel_Heading",children:"Comments"}),ae.jsx("img",{onClick:()=>c(!1),className:"CommentPlugin_CommentsPanel_close_icon",width:12,height:12,src:T3,alt:""})]}),h?ae.jsx("div",{className:"CommentPlugin_CommentsPanel_Empty",children:"No Comments"}):ae.jsx(Y3,{activeIDs:l,comments:n,deleteCommentOrThread:t,listRef:p,submitAddComment:e,markNodeMap:s,userName:r,userEmail:o,resolveThread:a,mentionItems:i,mentionedEmails:u,setmentionedEmails:d,wpAndTaskId:f})]})}function uC(){const l=Pd(),{yjsDocMap:t,name:n}=l;return t.has("comments")?n:"Playground User"}function dC({providerFactory:l,handleSaveComments:t,showComments:n,setShowComments:e,userName:s,userEmail:r,mentionItems:o,mentionedEmails:a,setmentionedEmails:c,wpAndTaskId:i,setShowCommentInput:u,showCommentInput:d}){const f=Pd(),[p]=yn(),h=he.useMemo(()=>(p!=null&&p._commentStore||(p._commentStore=new Qd(p)),p==null?void 0:p._commentStore),[p]),m=E3(h),g=he.useMemo(()=>new Map,[]),[v,b]=he.useState(),[_,E]=he.useState([]),{yjsDocMap:S}=f;he.useEffect(()=>{if(l){const R=l("comments",S);return h.registerCollaboration(R)}},[h,l,S]);const w=he.useCallback(()=>{p.update(()=>{const R=jt();R!==null&&(R.dirty=!0)}),u(!1)},[p]),y=he.useCallback((R,F)=>{var I;if(R.type==="comment"){if(s===R.author){const B=h.deleteCommentOrThread(R,F);if(!B)return;if(F&&F.comments.every(L=>L.id===R.id||L.deleted===!0)){h.deleteCommentOrThread(F);const L=g.get(F.id);L?setTimeout(()=>{p.update(()=>{for(const N of L){const U=Fn(N);Pl(U)&&(U.deleteID(F.id),U.getIDs().length===0&&R1(U))}}),t(h.getComments())}):t(h.getComments());return}const{markedComment:A,index:j}=B;h.addComment(A,F,j),t(h.getComments())}}else{((I=R.comments)==null?void 0:I[0].author)==s&&h.deleteCommentOrThread(R);const B=F!==void 0?F.id:R.id,A=g.get(B);A!==void 0?setTimeout(()=>{p.update(()=>{for(const j of A){const O=Fn(j);Pl(O)&&(O.deleteID(B),O.getIDs().length===0&&R1(O))}}),t(h.getComments())}):t(h.getComments())}},[h,p,g,t,s]),x=he.useCallback((R,F,I,B)=>{console.log("submitAddComment is called"),h.addComment(R,I),t(h.getComments()),F&&(p.update(()=>{if(St(B)){const A=B.isBackward(),j=R.id;BT(B,A,j)}}),u(!1))},[h,p]),C=R=>{R&&R.type==="thread"&&h.resolveThread(R),t(h.getComments())};he.useEffect(()=>{const R=[];for(let F=0;F<_.length;F++){const I=_[F],B=g.get(I);if(B!==void 0)for(const A of B){const j=p.getElementByKey(A);j!==null&&(j.classList.add("selected"),R.push(j),e(!0))}}return()=>{for(let F=0;F<R.length;F++)R[F].classList.remove("selected")}},[_,p,g]),he.useEffect(()=>{const R=new Map;return xr(v_(p,Ks,F=>ty(F.getIDs()),(F,I)=>{F.getIDs().forEach(A=>{I.addID(A)})}),p.registerMutationListener(Ks,F=>{p.getEditorState().read(()=>{for(const[I,B]of F){const A=Fn(I);let j=[];B==="destroyed"?j=R.get(I)||[]:Pl(A)&&(j=A.getIDs());for(let O=0;O<j.length;O++){const L=j[O];let N=g.get(L);R.set(I,j),B==="destroyed"?N!==void 0&&(N.delete(I),N.size===0&&g.delete(L)):(N===void 0&&(N=new Set,g.set(L,N)),N.has(I)||N.add(I))}}})}),p.registerUpdateListener(({editorState:F,tags:I})=>{F.read(()=>{const B=jt();let A=!1,j=!1;if(St(B)){const O=B.anchor.getNode();if(Wt(O)){const L=zT(O,B.anchor.offset);L!==null&&(E(L),A=!0),B.isCollapsed()||(b(O.getKey()),j=!0)}}A||E(O=>O.length===0?O:[]),j||b(null),!I.has("collaboration")&&St(B)&&u(!1)})}),p.registerCommand(x0,()=>{const F=window.getSelection();return F!==null&&F.removeAllRanges(),u(!0),!0},Tn))},[p,g]);const T=()=>{p.dispatchCommand(x0,void 0)};return ae.jsxs(ae.Fragment,{children:[d&&ao.createPortal(ae.jsx(G3,{editor:p,cancelAddComment:w,submitAddComment:x,userName:s,userEmail:r,mentionItems:o,mentionedEmails:a,setmentionedEmails:c,wpAndTaskId:i,setShowCommentInput:u}),document.body),v!=null&&!d&&ao.createPortal(ae.jsx(V3,{anchorKey:v,editor:p,onAddComment:T}),document.body),n&&ao.createPortal(ae.jsx(Z3,{comments:m,submitAddComment:x,deleteCommentOrThread:y,activeIDs:_,markNodeMap:g,userName:s,userEmail:r,resolveThread:C,setShowComments:e,mentionItems:o,mentionedEmails:a,setmentionedEmails:c,wpAndTaskId:i}),document.body)]})}const fC=({onChange:l})=>{const[t]=yn(),[n,e]=he.useState(!0),s=he.useRef(""),r=s.current,o=he.useCallback(()=>{t.update(()=>{let a=q1(t);a=my(a),a=a.replace(/<\/(p|h[1-6]|blockquote|ul|ol|pre)>/g,"</$1><footer></footer>"),n?e(!1):a!==r&&(l(a),s.current=a)})},[t,n,l,r]);return he.useEffect(()=>{const a=t.registerUpdateListener(o);return()=>a()},[t,o]),null};function pC(){const[l]=yn();return he.useEffect(()=>{const t=l.registerCommand(ai,()=>(l.update(()=>{document.querySelectorAll(".lexical-highlight").forEach(u=>u.classList.remove("lexical-highlight"));const c=jt();if(!St(c)||c.isCollapsed()||c.getTextContent().length===0)return;c.getNodes().forEach(u=>{if(wr(u)&&u.getChildren().length===0){const d=l.getElementByKey(u.getKey());d&&d.classList.add("lexical-highlight")}})}),!1),Jn),n=document.querySelector(".content-editable-grid"),e=1123,s=[""];if(!n)return;function r(){const a=Array.from(n.children);if(a.length===0)return;a.forEach(u=>{u.classList.remove("block-end"),u.style.minHeight="0px"}),a.forEach(u=>{u&&u.tagName.toLowerCase()!=="figure"&&u.classList.add("padding-elem")});const c=new Map;let i=0;a.forEach(u=>{const d=u.offsetHeight,f=Math.floor(i/e),p=s[f%s.length];u.style.backgroundColor=p,c.has(f)||c.set(f,[]),c.get(f).push(u),i+=d}),c.forEach(u=>{const d=u.reduce((h,m)=>h+m.offsetHeight,0),f=e-d,p=u[u.length-1];p&&(p.classList.add("block-end"),p&&p.tagName.toLowerCase()!=="figure"&&p.classList.add("padding-elem"),f>0&&(p.style.minHeight=p.offsetHeight+f+"px"))})}n.addEventListener("input",r);const o=new MutationObserver(r);return o.observe(n,{childList:!0,subtree:!0}),r(),document.addEventListener("paste",function(){Array.from(n.children).forEach(p=>{p&&p.tagName.toLowerCase()!=="figure"&&p.classList.add("padding-elem")}),document.querySelectorAll("td").forEach(p=>{p.classList.add("pasted-tables")});const i=document.querySelectorAll(".block-end"),u=document.querySelectorAll('figure[type="page-break"]'),d=Array.from(i).concat(Array.from(u));if(d.length===0)return;const f=d.length;d.forEach((p,h)=>{p.setAttribute("data-index",String(h+1)),p.setAttribute("data-total",String(f))})}),()=>{t(),n.removeEventListener("input",r),o.disconnect()}},[l]),null}const Lh="data:image/png;base64,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",Fh="data:image/gif;base64,R0lGODlhlgCWAPf/AAAAAAAAAAAAVQAAgAAAgAAAjwAAlAAAmQAAngAAqgAAqgAAvwAA/wCAgACAgACZZgCZmQCfgACiiwCkfwCqVQCqgACqgACqhQCqiACqjgCqqgCq/wCscgCsgwCufgCuhgCuigCvgwCvhwCvjwCwggCwhgCxhQCxhQCxhQCxhQCxhQCxhgCxhgCxhwCyfwCyhACyhwCyhwCyhwCyhwCyhwCyhwCyiACyiACyiACyiACyiACyigCzgACzgACzhQCzhgCzhwCzhwCzhwCzhwCziACziAC0gAC0hwC0iQC0iQC1hAC1igC1kQC2bQC2gAC2gAC2hgC2hwC4hQC4jgC6igC7egC/gAC/gADDiwDMZgDMmQDVgAD/AAD/gAD//wD//wEAmQEAoQGA/wGxiAUAnQYBoggAoAkAnAoCowwAnAwBnAwCnwwCoA0AmQ0Cng4Dnw4Dnw4Enw8Eng8Eng8Eng8Eng8Fnw8FnxAEnhAFnxAFnxAFoBAFoDOZzDPMzDPM/0C/v0C//0Df30W+30ba/0m220m2/0u56E2z5k6x2E/E40/E61C/31DL5lDP71PE81S85VTH8VWqqlWq1VWq41Wq/1W65VW73VW/6lXA11XG/1XV1VXV/1X//1a671a+6Va/8VbG41bM7lfB5VfE7VfI7Vi+7Vi/51i/6FjB5FjB6VjD6VjE61m86Vm/5lnA5FnA5VnA51nA7FnB5lnC51nE51rB5lrB5lrB5lrB5lrB5lrB51rB6FrC5lrC5lrC51rC51rC6FrD4VrD5lrD51rD6lrF6Vu221vB5lvB51vC5lvC51vC51vC51vC6FvD6VvG6Fy56Fy/4F3G713R6GXM/oD///8AAP+AAP+ZAP+ZM/+qAP+qAP+qKv+qOf+xO/+0Mv+2JP+3OP+3Pf+5L/+7Nf+8O/+8Pv++Pf++Pv++Pv+/F/+/PP+/Pv+/Pv+/P/+/P/+/QP+/QP/APv/BNP/BPf/DO//GOf/HL//MM//VKv/bJP//AP//AP//AAD/ACH/C05FVFNDQVBFMi4wAwEAAAAh+QQJBADNACwZAEMAYAAQAIcAAAAAAFUAAIAAAI8AAJQAAJkAAJ4AAKoAAL8AAP8AgIAAmWYAmZkAn4AAoosApH8AqlUAqoAAqoUAqogAqo4AqqoAqv8ArHIArIMArn4AroYArooAr4MAr4cAr48AsIIAsIYAsYUAsYYAsYcAsn8AsoQAsocAsogAsooAs4AAs4UAs4YAs4cAs4gAtIAAtIcAtIkAtYQAtYoAtZEAtm0AtoAAtoYAtocAuIUAuI4AuooAu3oAv4AAw4sAzGYAzJkA1YAA/wAA/4AA//8BAJkBAKEBgP8BsYgFAJ0GAaIIAKAJAJwKAqMMAJwMAZwMAp8MAqANAJkNAp4OA58OBJ8PBJ4PBZ8QBJ4QBZ8QBaAzmcwzzMwzzP9Av79Av/9A399Fvt9G2v9JtttJtv9LuehNs+ZOsdhPxONPxOtQv99Qy+ZQz+9TxPNUvOVUx/FVqqpVqtVVquNVqv9VuuVVu91Vv+pVwNdVxv9V1dVV1f9V//9Wuu9WvulWv/FWxuNWzO5XweVXxO1XyO1Yvu1Yv+dYv+hYweRYwelYw+lYxOtZvOlZv+ZZwORZwOVZwOdZwOxZweZZwudZxOdaweZawedawehawuZawudawuhaw+Faw+Zaw+daw+paxelbtttbweZbwedbwuZbwudbwuhbw+lbxuhcuehcv+Bdxu9d0ehlzP6A////AAD/gAD/mQD/mTP/qgD/qir/qjn/sTv/tDL/tiT/tzj/tz3/uS//uzX/vDv/vD7/vj3/vj7/vxf/vzz/vz7/vz//v0D/wD7/wTT/wT3/wzv/xjn/xy//zDP/1Sr/2yT//wAA/wD///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8I/wCbCRRYxUmWKlakDFzIsKHAFyFaiIAxwoTDiwwXhYK0cRPGjwKB6RqmS+Qwh1GyGGyiMktKkAxDyNAgA8TMmjJgMiTFqFMbnp0WBdXJsJiuYriMFstVjGEVLFKwIIyK8CnRiSZMTBxxIgRFi0QnNSI1idIispTGTiIaciSvXm6DjRzI0mBKg3hb6pTBga9fmxxg2NQpqadQw0ETLyJKcqlSpkdznWyGxYlUqQcxT4XZwkRXGCYkgm4BAvQJmI1EQRKlljUpSJcYkdIJNxgvucNuuxUZ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",hC=IS([...D1]);function Q3({htmlString:l,wpAndTaskId:t}){const[n]=yn();return he.useEffect(()=>{!l||!t||n.update(()=>{const s=In().getChildren().filter(wr);s.forEach((r,o)=>{var h;const a=r.getChildren().find(Vs);if(!a)return;let c=r.getChildren().find(m=>Wt(m)&&m.getTextContent().startsWith("Figure"));if(!c)for(let m=o+1;m<s.length;m++){const g=s[m];if(g.getTextContent().trim()==="")continue;const v=g.getChildren().find(b=>Wt(b)&&b.getTextContent().startsWith("Figure"));if(v){c=v;break}}if(!c)return;const i=typeof c.getId=="function"?c.getId():void 0,u=c.getTextContent(),d=parseInt(((h=u.match(/\d+/))==null?void 0:h[0])||"1"),f=i||Mc(u,d,t);a.__captionId=f;const p=new qo(c.getTextContent(),"black",f);c.replace(p)})})},[n,l,t]),null}function X3({htmlString:l}){const[t]=yn();return he.useEffect(()=>{l&&t.update(()=>{In().getChildren().filter(dr).forEach((s,r)=>{const o=s.getPreviousSibling();if(o&&wr(o)){const a=o.getChildren(),c=a.find(i=>i.getTextContent().startsWith("Table")&&i.getId&&i.getId());if(c){const i=c.getId();s.__captionId=i}else{const i=o.getTextContent();localStorage.getItem("tableCount")-1;const u=Rp(i,r);s.__captionId=u,a.forEach(d=>{if(d.getTextContent().startsWith("Table")){const f=new qo(d.getTextContent(),"black",u);d.replace(f)}})}}})})},[t,l]),null}function eR({setEditorEditable:l,htmlString:t,isEditable:n,setIsexistingIdPresent:e}){const[s]=yn();return he.useRef({}),he.useEffect(()=>{s.update(()=>{const r=new DOMParser,o=qw(t),a=Ww(o),c=r.parseFromString(a,"text/html");c.querySelectorAll("h1, h2, h3, h4, h5, h6").forEach(f=>{const p=f.getAttribute("id");p&&f.setAttribute("data-preserved-id",p)});const i=Sd(s,c);i.forEach(f=>{if(zp(f)){const p=s.getElementByKey(f.getKey());if(p){const h=p.getAttribute("data-preserved-id");if(h){const m=CustomHeadingNode.create(f.getHeadingLevel(),h);f.replace(m)}}}}),In().clear();const d=En();Xo(i),Xo([d]),s.setEditable(!1),setTimeout(()=>{s.setEditable(n),l(!0)},5e3)})},[s,t]),null}function tR(){const[l]=yn();return he.useEffect(()=>l.registerCommand(vs,t=>{var s;const n=t==null?void 0:t.clipboardData;if(!n)return!1;const e=n==null?void 0:n.getData("text/html");if(e){const r=new DOMParser,o=r.parseFromString(e,"text/html"),a=e==null?void 0:e.match(/<!--StartFragment-->(.*?)<!--EndFragment-->/s),c=a?a[1]:o.body.innerHTML;console.log("fragmentHtml",c);const u=(r==null?void 0:r.parseFromString(c,"text/html")).body.children;if((s=Array.from(u))==null?void 0:s.every(f=>f.tagName.toLowerCase()==="table"?!0:f.tagName.toLowerCase()==="p"?f.innerHTML.trim()==="<br>":!1))return alert("🚫Standalone table was pasted — blocked."),!0}return!1},wo),[l]),null}function nR({initialEditorState:l,userObj:t,CollabApiKey:n,docId:e,mentionItems:s,type:r,updateSharepointList:o,updateSharepointList2:a,savedComments:c,styleConfig:i,handleSaveComments:u,pagination:d=!1,customHeight:f,customWidth:p,isCollab:h=!0,defaultState:m,editId:g,toolbarShow:v=!0,isEditable:b=!1,showTabContent:_=!0,wpAndTaskId:E,enableCaptions:S=!0,showPagination:w=!1,setshowPagination:y,editorTitle:x,showPdf:C,showCommentPlugin:T,exportToPDF:R,editorForTemplate:F}){const I=he.useRef(null),{historyState:B}=C_(),[A,j]=he.useState([]),[O,L]=he.useState(""),[N,U]=he.useState("skyp_1"),[D,z]=he.useState([]),[K,G]=he.useState(!1),[P,W]=La(),[J,H]=he.useState(null),[$,Z]=he.useState([]),[X,Y]=he.useState(null),[ee,ie]=he.useState(!1),[fe,de]=he.useState(!1),[ne,Ee]=he.useState(!1),[xe,me]=he.useState([]),je=he.useRef(null),[ue,se]=he.useState(!1);he.useState(!1);const[pe,ce]=he.useState(!1),Te=async()=>({state:{root:[]},timestamp:Date.now()});let Ae=()=>{console.log("[Lexical Demo][onBlacklistedInsert] blacklisted combination found")};const{userName:ke,userId:Me,userEmail:We}=t||{userName:"aa",userId:"aa",userEmail:"aa@sample.com"},De={name:ke,id:Me,email:We},Le={docId:e+"_"+g,apiKey:n,user:De,hooks:{fetchDocOnNetworkReconnect:Te,contentChanged:(zt,At)=>{},usersUpdate:zt=>{j(zt),renderOnlineUsers(zt),console.log("asadasdad 111111111",zt),console.log("[Lexical Demo][usersUpdate hook] hook invoked by Codox: ",zt)}}};he.useEffect(()=>{let zt=[],At=[];A&&A.length>0&&A.map((tn,ve)=>{At.includes(tn.name)||(At.push(tn.name),zt.push(ae.jsxs("div",{title:tn.name,className:`avatarStyle avatar-color-${ve+1}`,children:[" ",tn.name&&tn.name[0],tn.name&&tn.name[4]]},ve)))}),z(zt)},[A]);const Ce=()=>{je.current&&(je.current.initComments(c),["content_changed","error","users_update"].forEach(At=>{console.log("[Lexical Demo][[Subscribe to Codox Event]: ",At),je.current.on(At,tn=>{})}),je.current.start(Le).then(()=>{console.log("[Lexical Demo][codox.start] success"),G(!0)}).catch(At=>console.log("[Lexical Demo][codox.start] error",At)))},Xe=()=>{je.current&&je.current.stop(),G(!1)};he.useEffect(()=>{wd(".editor-outer").css({justifyContent:fe?"flex-start":"center"})},[fe]),he.useEffect(()=>{(async()=>{if(!N)return;K&&Xe();let zt=m;if(zt)try{MS(zt,hC),H(zt)}catch(At){console.error("[APP] error: ",At)}})()},[N]),he.useEffect(()=>{J&&e&&!K&&n&&setTimeout(()=>{Ce()},2e3)},[J,e,K,n]);const Ie=he.useMemo(()=>{if(J)return{editorState:zt=>{zt.update(()=>{const At=new Qd(zt);c&&(At.setComments(c),zt._commentStore||(zt._commentStore=new Qd(zt),zt._commentStore.getComments().length===0&&zt._commentStore.setComments(c)))})},namespace:`editor_${e}`,nodes:hC,onError:zt=>{console.error("[Lexical Demo][Editor Error Captured]: ",zt)},theme:ry}},[J]),Ze=he.useRef(l);he.useEffect(()=>{Ze.current||(Ze.current=l)},[l]);const at=ae.jsx(Nd,{children:""}),[rt,it]=he.useState(null),[Vt,Qe]=he.useState(!1),[Kt,Ht]=he.useState(!1),[Zt,Xt]=he.useState(!1),Et=zt=>{zt!==null&&it(zt)};he.useEffect(()=>{const zt=()=>{const At=Ic&&window.matchMedia("(max-width: 1025px)").matches;At!==Vt&&Qe(At)};return zt(),window.addEventListener("resize",zt),()=>{window.removeEventListener("resize",zt)}},[Vt]),he.useEffect(()=>{const zt=At=>{X&&!At.target.closest(".reference-toolbar")&&Y(null)};return document.addEventListener("click",zt),()=>{document.removeEventListener("click",zt)}},[X]),wd(document).on("keydown mouseup",`.editor-autosave-${g}`,()=>{}),he.useState(""),he.useRef(""),he.useEffect(()=>{l&&t&&t.userName&&e&&i?setTimeout(()=>{se(!0)},1e3):se(!1)},[l,t,i]);const Dt=zt=>{o(zt),L(zt)};return he.useEffect(()=>{const zt=document.querySelector(".finalProposalEditorContainer_c1fd8e2e");if(!zt)return;const At=()=>{console.log("Editor container scrolled"),Y(null),Ee(!1)};return zt.addEventListener("scroll",At),()=>{zt.removeEventListener("scroll",At)}},[]),ae.jsx(ae.Fragment,{children:ue?ae.jsxs(dp,{initialConfig:Ie,children:[ae.jsx(E_,{children:ae.jsx(L1,{children:ae.jsxs("div",{ref:I,className:"editor-shell",style:{position:"relative"},children:[ae.jsxs("div",{className:!K&&!F?"blurred-editor-content":"",children:[ae.jsxs(ae.Fragment,{children:[ae.jsx(eR,{setEditorEditable:Xt,isEditable:b,htmlString:l}),ae.jsx(X3,{htmlString:l}),ae.jsx(Q3,{htmlString:l,wpAndTaskId:`${E.workplanId}-${E.taskId}`}),T&&ae.jsx(dC,{showComments:ee,setShowComments:ie,handleSaveComments:u,userName:ke,userEmail:We,mentionItems:s,mentionedEmails:xe,setmentionedEmails:me,wpAndTaskId:E,setShowCommentInput:Ee,showCommentInput:ne}),ae.jsx(tR,{}),b?ae.jsxs(ae.Fragment,{children:[i&&v&&ae.jsx(dx,{styleConfig:i,setIsLinkEditMode:Ht,onlUser:D,showComments:ee,setShowComments:ie,parsedHtmlString:O,enableCaptions:S,wpAndTaskId:E,editorTitle:x,showCommentPlugin:T,exportToPDF:R,showPdf:C})," "]}):"",ae.jsx(pC,{}),ae.jsx(fC,{onChange:Dt}),ae.jsxs("div",{className:"editor-container tree-view",children:[ae.jsx(bw,{}),!h&&ae.jsx(Dp,{}),ae.jsx(z1,{}),ae.jsx(_w,{}),ae.jsx(fw,{}),ae.jsx(mp,{externalHistoryState:B}),ae.jsx(qp,{contentEditable:ae.jsx("div",{className:"editor-scroller",children:ae.jsx("div",{className:"editor",ref:Et,children:ae.jsxs("div",{className:`editor-autosave-${g}`,children:[" ",ae.jsx(Od,{className:(K||Zt)&&b?`ContentEditable__root ${w?"content-editable-grid":""}`:`ContentEditable__root no-events ${w?"content-editable-grid":""}`})]})})}),placeholder:at,ErrorBoundary:Dl}),ae.jsx(U1,{}),ae.jsx(xw,{maxDepth:7}),ae.jsx(sw,{hasCellMerge:!0,hasCellBackgroundColor:!0}),ae.jsx(Rw,{}),ae.jsx(gw,{enableCaptions:S,wpAndTaskId:`${E.workplanId}-${E.taskId}`}),ae.jsx(fy,{}),ae.jsx(Cw,{}),rt&&!Vt&&ae.jsx(ae.Fragment,{children:ae.jsx(Mw,{anchorElem:rt,cellMerge:!0})}),ae.jsx(LS,{references:$,setReferences:Z,position:X,onClose:()=>Y(null),IsexistingIdPresent:pe}),ae.jsx(FS,{setContextMenu:Y,references:$,setReferences:Z,containerRef:I}),ae.jsx(BS,{references:$,setReferences:Z}),ae.jsx(I1,{}),ae.jsx(zS,{})]})]}),!K&&!F&&ae.jsxs("div",{style:{position:"absolute",zIndex:999,top:0,left:0,width:"100%",height:"100%",backgroundColor:"rgba(255, 255, 255, 0.6)",display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"start",backdropFilter:"blur(6px)"},children:[ae.jsx("img",{src:Lh,alt:"Spinverse Logo",style:{height:"60px",marginBottom:"20px",marginTop:"110px"}}),ae.jsx("img",{src:Fh,alt:"Loading...",style:{height:"50px"}})]})]}),h&&ae.jsx(PS,{debug:!0,ref:je,onBlacklistedInsert:Ae}),P]})})}),i&&ae.jsx(RS,{styleConfig:i,docId:e})]},e):ae.jsx(ae.Fragment,{children:!K&&!F&&ae.jsxs("div",{style:{position:"absolute",zIndex:999,top:0,left:0,width:"100%",height:"100%",backgroundColor:"rgba(255, 255, 255, 0.6)",display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"start",backdropFilter:"blur(6px)"},children:[ae.jsx("img",{src:Lh,alt:"Spinverse Logo",style:{height:"60px",marginBottom:"20px",marginTop:"110px"}}),ae.jsx("img",{src:Fh,alt:"Loading...",style:{height:"50px"}})]})})})}const rR=typeof window<"u"&&window.document!==void 0&&window.document.createElement!==void 0?he.useLayoutEffect:he.useEffect;let oR=class{constructor(t){this.key=t,this.ref={current:null},this.setRefElement=this.setRefElement.bind(this)}setRefElement(t){this.ref={current:t}}};const gC=l=>{const t=document.getElementById("typeahead-menu");if(!t)return;const n=t.getBoundingClientRect();n.top+n.height>window.innerHeight&&t.scrollIntoView({block:"center"}),n.top<0&&t.scrollIntoView({block:"center"}),l.scrollIntoView({block:"nearest"})};function mC(l,t){const n=l.getBoundingClientRect(),e=t.getBoundingClientRect();return n.top>e.top&&n.top<e.bottom}function iR(l,t,n,e){const[s]=yn();he.useEffect(()=>{if(t!=null&&l!=null){const r=s.getRootElement(),o=r!=null?function(d,f){let p=getComputedStyle(d);const h=p.position==="absolute",m=/(auto|scroll)/;if(p.position==="fixed")return document.body;for(let g=d;g=g.parentElement;)if(p=getComputedStyle(g),(!h||p.position!=="static")&&m.test(p.overflow+p.overflowY+p.overflowX))return g;return document.body}(r):document.body;let a=!1,c=mC(t,o);const i=function(){a||(window.requestAnimationFrame(function(){n(),a=!1}),a=!0);const d=mC(t,o);d!==c&&(c=d,e!=null&&e(d))},u=new ResizeObserver(n);return window.addEventListener("resize",n),document.addEventListener("scroll",i,{capture:!0,passive:!0}),u.observe(t),()=>{u.unobserve(t),window.removeEventListener("resize",n),document.removeEventListener("scroll",i,!0)}}},[t,s,e,n,l])}const yC=po();function sR({close:l,editor:t,anchorElementRef:n,resolution:e,options:s,menuRenderFn:r,onSelectOption:o,shouldSplitNodeWithQuery:a=!1,commandPriority:c=Jn}){const[i,u]=he.useState(null),d=e.match&&e.match.matchingString;he.useEffect(()=>{u(0)},[d]);const f=he.useCallback(h=>{t.update(()=>{const m=e.match!=null&&a?function(g){const v=jt();if(!St(v)||!v.isCollapsed())return null;const b=v.anchor;if(b.type!=="text")return null;const _=b.getNode();if(!_.isSimpleText())return null;const E=b.offset,S=_.getTextContent().slice(0,E),w=g.replaceableString.length,y=E-function(C,T,R){let F=R;for(let I=F;I<=T.length;I++)C.substr(-I)===T.substr(0,I)&&(F=I);return F}(S,g.matchingString,w);if(y<0)return null;let x;return y===0?[x]=_.splitText(E):[,x]=_.splitText(y,E),x}(e.match):null;o(h,m,l,e.match?e.match.matchingString:"")})},[t,a,e.match,o,l]),p=he.useCallback(h=>{const m=t.getRootElement();m!==null&&(m.setAttribute("aria-activedescendant","typeahead-item-"+h),u(h))},[t]);return he.useEffect(()=>()=>{const h=t.getRootElement();h!==null&&h.removeAttribute("aria-activedescendant")},[t]),rR(()=>{s===null?u(null):i===null&&p(0)},[s,i,p]),he.useEffect(()=>xr(t.registerCommand(yC,({option:h})=>!(!h.ref||h.ref.current==null)&&(gC(h.ref.current),!0),c)),[t,p,c]),he.useEffect(()=>xr(t.registerCommand(qu,h=>{const m=h;if(s!==null&&s.length&&i!==null){const g=i!==s.length-1?i+1:0;p(g);const v=s[g];v.ref!=null&&v.ref.current&&t.dispatchCommand(yC,{index:g,option:v}),m.preventDefault(),m.stopImmediatePropagation()}return!0},c),t.registerCommand(Hu,h=>{const m=h;if(s!==null&&s.length&&i!==null){const g=i!==0?i-1:s.length-1;p(g);const v=s[g];v.ref!=null&&v.ref.current&&gC(v.ref.current),m.preventDefault(),m.stopImmediatePropagation()}return!0},c),t.registerCommand(Fs,h=>{const m=h;return m.preventDefault(),m.stopImmediatePropagation(),l(),!0},c),t.registerCommand(Of,h=>{const m=h;return s!==null&&i!==null&&s[i]!=null&&(m.preventDefault(),m.stopImmediatePropagation(),f(s[i]),!0)},c),t.registerCommand(Ls,h=>s!==null&&i!==null&&s[i]!=null&&(h!==null&&(h.preventDefault(),h.stopImmediatePropagation()),f(s[i]),!0),c)),[f,l,t,s,i,p,c]),r(n,he.useMemo(()=>({options:s,selectOptionAndCleanUp:f,selectedIndex:i,setHighlightedIndex:u}),[f,i,s]),e.match?e.match.matchingString:"")}function aR({options:l,nodeKey:t,onClose:n,onOpen:e,onSelectOption:s,menuRenderFn:r,anchorClassName:o,commandPriority:a=Jn,parent:c}){const[i]=yn(),[u,d]=he.useState(null),f=function(g,v,b,_=document.body){const[E]=yn(),S=he.useRef(document.createElement("div")),w=he.useCallback(()=>{S.current.style.top=S.current.style.bottom;const x=E.getRootElement(),C=S.current,T=C.firstChild;if(x!==null&&g!==null){const{left:R,top:F,width:I,height:B}=g.getRect(),A=S.current.offsetHeight;if(C.style.top=`${F+window.pageYOffset+A+3}px`,C.style.left=`${R+window.pageXOffset}px`,C.style.height=`${B}px`,C.style.width=`${I}px`,T!==null){T.style.top=`${F}`;const j=T.getBoundingClientRect(),O=j.height,L=j.width,N=x.getBoundingClientRect();R+L>N.right&&(C.style.left=`${N.right-L+window.pageXOffset}px`),(F+O>window.innerHeight||F+O>N.bottom)&&F-N.top>O+B&&(C.style.top=F-O+window.pageYOffset-B+"px")}C.isConnected||(b!=null&&(C.className=b),C.setAttribute("aria-label","Typeahead menu"),C.setAttribute("id","typeahead-menu"),C.setAttribute("role","listbox"),C.style.display="block",C.style.position="absolute",_.append(C)),S.current=C,x.setAttribute("aria-controls","typeahead-menu")}},[E,g,b,_]);he.useEffect(()=>{const x=E.getRootElement();if(g!==null)return w(),()=>{x!==null&&x.removeAttribute("aria-controls");const C=S.current;C!==null&&C.isConnected&&C.remove()}},[E,w,g]);const y=he.useCallback(x=>{g!==null&&(x||v(null))},[g,v]);return iR(g,S.current,w,y),S}(u,d,o,c),p=he.useCallback(()=>{d(null),n!=null&&u!==null&&n()},[n,u]),h=he.useCallback(g=>{d(g),e!=null&&u===null&&e(g)},[e,u]),m=he.useCallback(()=>{t?i.update(()=>{const g=Fn(t),v=i.getElementByKey(t);var b;g!=null&&v!=null&&u==null&&(b=()=>h({getRect:()=>v.getBoundingClientRect()}),ir.startTransition?ir.startTransition(b):b())}):t==null&&u!=null&&p()},[p,i,t,h,u]);return he.useEffect(()=>{m()},[m,t]),he.useEffect(()=>{if(t!=null)return i.registerUpdateListener(({dirtyElements:g})=>{g.get(t)&&m()})},[i,m,t]),u===null||i===null?null:ae.jsx(sR,{close:p,resolution:u,editor:i,anchorElementRef:f,options:l,menuRenderFn:r,onSelectOption:s,commandPriority:a})}const lR=/((https?:\/\/(www\.)?)|(www\.))[-a-zA-Z0-9@:%._+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()@:%_+.~#?&//=]*)/,cR=po();class vC extends oR{constructor(t,n){super(t),this.title=t,this.onSelect=n.onSelect.bind(this)}}function uR({embedConfigs:l,onOpenEmbedModalForConfig:t,getMenuOptions:n,menuRenderFn:e,menuCommandPriority:s=Jn}){const[r]=yn(),[o,a]=he.useState(null),[c,i]=he.useState(null),u=he.useCallback(()=>{a(null),i(null)},[]),d=he.useCallback(m=>{r.getEditorState().read(async function(){const g=Fn(m);if(ti(g))for(let v=0;v<l.length;v++){const b=l[v];await Promise.resolve(b.parseUrl(g.__url))!=null&&(i(b),a(g.getKey()))}})},[r,l]);he.useEffect(()=>xr(...[xc,dd].map(m=>r.registerMutationListener(m,(...g)=>((v,{updateTags:b,dirtyLeaves:_})=>{for(const[E,S]of v)S==="created"&&b.has("paste")&&_.size<=3?d(E):E===o&&u()})(...g)))),[d,r,l,o,u]),he.useEffect(()=>r.registerCommand(cR,m=>{const g=l.find(({type:v})=>v===m);return!!g&&(t(g),!0)},Tn),[r,l,t]);const f=he.useCallback(async function(){if(c!=null&&o!=null){const m=r.getEditorState().read(()=>{const g=Fn(o);return ti(g)?g:null});if(ti(m)){const g=await Promise.resolve(c.parseUrl(m.__url));g!=null&&r.update(()=>{jt()||m.selectEnd(),c.insertNode(r,g),m.isAttached()&&m.remove()})}}},[c,r,o]),p=he.useMemo(()=>c!=null&&o!=null?n(c,f,u):[],[c,f,n,o,u]),h=he.useCallback((m,g,v)=>{r.update(()=>{m.onSelect(g),v()})},[r]);return o!=null?ae.jsx(aR,{nodeKey:o,onClose:u,onSelectOption:h,options:p,menuRenderFn:e,commandPriority:s}):null}const dR=po(),fR=po(),pR=po(),hR={contentName:"Youtube Video",exampleUrl:"https://www.youtube.com/watch?v=jNQXAC9IVRw",icon:ae.jsx("i",{className:"icon youtube"}),insertNode:(l,t)=>{l.dispatchCommand(pR,t.id)},keywords:["youtube","video"],parseUrl:async l=>{const t=/^.*(youtu\.be\/|v\/|u\/\w\/|embed\/|watch\?v=|&v=)([^#&?]*).*/.exec(l),n=t&&(t==null?void 0:t[2].length)===11?t[2]:null;return n!=null?{id:n,url:l}:null},type:"youtube-video"},gR=[{contentName:"Tweet",exampleUrl:"https://twitter.com/jack/status/20",icon:ae.jsx("i",{className:"icon tweet"}),insertNode:(l,t)=>{l.dispatchCommand(fR,t.id)},keywords:["tweet","twitter"],parseUrl:l=>{const t=/^https:\/\/(twitter|x)\.com\/(#!\/)?(\w+)\/status(es)*\/(\d+)/.exec(l);return t!=null?{id:t[5],url:t[1]}:null},type:"tweet"},hR,{contentName:"Figma Document",exampleUrl:"https://www.figma.com/file/LKQ4FJ4bTnCSjedbRpk931/Sample-File",icon:ae.jsx("i",{className:"icon figma"}),insertNode:(l,t)=>{l.dispatchCommand(dR,t.id)},keywords:["figma","figma.com","mock-up"],parseUrl:l=>{const t=/https:\/\/([\w.-]+\.)?figma.com\/(file|proto)\/([0-9a-zA-Z]{22,128})(?:\/.*)?$/.exec(l);return t!=null?{id:t[3],url:t[0]}:null},type:"figma"}];function mR({index:l,isSelected:t,onClick:n,onMouseEnter:e,option:s}){let r="item";return t&&(r+=" selected"),ae.jsx("li",{tabIndex:-1,className:r,ref:s.setRefElement,role:"option","aria-selected":t,id:"typeahead-item-"+l,onMouseEnter:e,onClick:n,children:ae.jsx("span",{className:"text",children:s.title})},s.key)}function yR({options:l,selectedItemIndex:t,onOptionClick:n,onOptionMouseEnter:e}){return ae.jsx("div",{className:"typeahead-popover",children:ae.jsx("ul",{children:l.map((s,r)=>ae.jsx(mR,{index:r,isSelected:t===r,onClick:()=>n(s,r),onMouseEnter:()=>e(r),option:s},s.key))})})}const vR=(l,t)=>{let n;return e=>{window.clearTimeout(n),n=window.setTimeout(()=>{l(e)},t)}};function bR({embedConfig:l,onClose:t}){const[n,e]=he.useState(""),[s]=yn(),[r,o]=he.useState(null),a=he.useMemo(()=>vR(i=>{const u=lR.exec(i);l!=null&&i!=null&&u!=null?Promise.resolve(l.parseUrl(i)).then(d=>{o(d)}):r!=null&&o(null)},200),[l,r]),c=()=>{r!=null&&(l.insertNode(s,r),t())};return ae.jsxs("div",{style:{width:"600px"},children:[ae.jsx("div",{className:"Input__wrapper",children:ae.jsx("input",{type:"text",className:"Input__input",placeholder:l.exampleUrl,value:n,"data-test-id":`${l.type}-embed-modal-url`,onChange:i=>{const{value:u}=i.target;e(u),a(u)}})}),ae.jsx(Mp,{children:ae.jsx(Fi,{disabled:!r,onClick:c,"data-test-id":`${l.type}-embed-modal-submit-btn`,children:"Embed"})})]})}function _R(){const[l,t]=La(),n=s=>{t(`Embed ${s.contentName}`,r=>ae.jsx(bR,{embedConfig:s,onClose:r}))},e=(s,r,o)=>[new vC("Dismiss",{onSelect:o}),new vC(`Embed ${s.contentName}`,{onSelect:r})];return ae.jsxs(ae.Fragment,{children:[l,ae.jsx(uR,{embedConfigs:gR,onOpenEmbedModalForConfig:n,getMenuOptions:e,menuRenderFn:(s,{selectedIndex:r,options:o,selectOptionAndCleanUp:a,setHighlightedIndex:c})=>s.current?Cf.createPortal(ae.jsx("div",{className:"typeahead-popover auto-embed-menu",style:{marginLeft:s.current.style.width,width:200},children:ae.jsx(yR,{options:o,selectedItemIndex:r,onOptionClick:(i,u)=>{c(u),a(i)},onOptionMouseEnter:i=>{c(i)}})}),s.current):null})]})}class wR extends ZE{constructor(n,e,s){super(n);Hn(this,"title");Hn(this,"emoji");Hn(this,"keywords");this.title=n,this.emoji=e,this.keywords=s.keywords||[]}}function xR({index:l,isSelected:t,onClick:n,onMouseEnter:e,option:s}){let r="item";return t&&(r+=" selected"),ae.jsx("li",{tabIndex:-1,className:r,ref:s.setRefElement,role:"option","aria-selected":t,id:"typeahead-item-"+l,onMouseEnter:e,onClick:n,children:ae.jsxs("span",{className:"text",children:[s.emoji," ",s.title]})},s.key)}const SR=10;function ER(){const[l]=yn(),[t,n]=he.useState(null),[e,s]=he.useState([]);he.useEffect(()=>{Promise.resolve().then(()=>iD).then(i=>s(i.default))},[]);const r=he.useMemo(()=>e!=null?e.map(({emoji:i,aliases:u,tags:d})=>new wR(u[0],i,{keywords:[...u,...d]})):[],[e]),o=tC(":",{minLength:0}),a=he.useMemo(()=>r.filter(i=>t!=null?new RegExp(t,"gi").exec(i.title)||i.keywords!=null?i.keywords.some(u=>new RegExp(t,"gi").exec(u)):!1:r).slice(0,SR),[r,t]),c=he.useCallback((i,u,d)=>{l.update(()=>{const f=jt();!St(f)||i==null||(u&&u.remove(),f.insertNodes([rr(i.emoji)]),d())})},[l]);return ae.jsx(nC,{onQueryChange:n,onSelectOption:c,triggerFn:o,options:a,menuRenderFn:(i,{selectedIndex:u,selectOptionAndCleanUp:d,setHighlightedIndex:f})=>i.current==null||a.length===0?null:i.current&&a.length?Cf.createPortal(ae.jsx("div",{className:"typeahead-popover emoji-menu",children:ae.jsx("ul",{children:a.map((p,h)=>ae.jsx("div",{children:ae.jsx(xR,{index:h,isSelected:u===h,onClick:()=>{f(h),d(p)},onMouseEnter:()=>{f(h)},option:p})},p.key))})}),i.current):null})}const bC=new Map([[":)",["emoji happysmile","🙂"]],[":D",["emoji veryhappysmile","😀"]],[":(",["emoji unhappysmile","🙁"]],["<3",["emoji heart","❤"]],["🙂",["emoji happysmile","🙂"]],["😀",["emoji veryhappysmile","😀"]],["🙁",["emoji unhappysmile","🙁"]],["❤",["emoji heart","❤"]]]);function CR(l){const t=l.getTextContent();for(let n=0;n<t.length;n++){const e=bC.get(t[n])||bC.get(t.slice(n,n+2));if(e!==void 0){const[s,r]=e;let o;n===0?[o]=l.splitText(n+2):[,o]=l.splitText(n,n+2);const a=v1(s,r);return o.replace(a),a}}return null}function jR(l){let t=l;for(;t!==null;){if(!t.isSimpleText())return;t=CR(t)}}function kR(l){he.useEffect(()=>{if(!l.hasNodes([bd]))throw new Error("EmojisPlugin: EmojiNode not registered on editor");return l.registerNodeTransform(Zr,jR)},[l])}function TR(){const[l]=yn();return kR(l),null}const _C=IS([...D1]);function AR({htmlString:l,wpAndTaskId:t}){const[n]=yn();return he.useEffect(()=>{!l||!t||n.update(()=>{const s=In().getChildren().filter(wr);s.forEach((r,o)=>{var h;const a=r.getChildren().find(Vs);if(!a)return;let c=r.getChildren().find(m=>Wt(m)&&m.getTextContent().startsWith("Figure"));if(!c)for(let m=o+1;m<s.length;m++){const g=s[m];if(g.getTextContent().trim()==="")continue;const v=g.getChildren().find(b=>Wt(b)&&b.getTextContent().startsWith("Figure"));if(v){c=v;break}}if(!c)return;const i=typeof c.getId=="function"?c.getId():void 0,u=c.getTextContent(),d=parseInt(((h=u.match(/\d+/))==null?void 0:h[0])||"1"),f=i||Mc(u,d,t);a.__captionId=f;const p=new qo(c.getTextContent(),"black",f);c.replace(p)})})},[n,l,t]),null}function OR({htmlString:l}){const[t]=yn();return he.useEffect(()=>{l&&t.update(()=>{In().getChildren().filter(dr).forEach((s,r)=>{const o=s.getPreviousSibling();if(o&&wr(o)){const a=o.getChildren(),c=a.find(i=>i.getTextContent().startsWith("Table")&&i.getId&&i.getId());if(c){const i=c.getId();s.__captionId=i}else{const i=o.getTextContent();console.log("captionText",o,i),localStorage.getItem("tableCount")-1;const u=Rp(i,r);console.log("captionId",u),s.__captionId=u,a.forEach(d=>{if(d.getTextContent().startsWith("Table")){console.log("gtting here");const f=new qo(d.getTextContent(),"black",u);d.replace(f)}})}}})})},[t,l]),null}function NR(){const[l]=yn();return he.useEffect(()=>l.registerCommand(vs,t=>{var s;const n=t==null?void 0:t.clipboardData;if(!n)return!1;const e=n==null?void 0:n.getData("text/html");if(e){const r=new DOMParser,o=r.parseFromString(e,"text/html"),a=e==null?void 0:e.match(/<!--StartFragment-->(.*?)<!--EndFragment-->/s),c=a?a[1]:o.body.innerHTML,u=(r==null?void 0:r.parseFromString(c,"text/html")).body.children;if((s=Array.from(u))==null?void 0:s.every(f=>f.tagName.toLowerCase()==="table"?!0:f.tagName.toLowerCase()==="p"?f.innerHTML.trim()==="<br>":!1))return alert("🚫Standalone table was pasted — blocked."),!0}return!1},wo),[l]),null}function PR({initialEditorState:l,userObj:t,CollabApiKey:n,docId:e,mentionItems:s,type:r,updateSharepointList:o,updateSharepointList2:a,savedComments:c,styleConfig:i,handleSaveComments:u,pagination:d=!1,customHeight:f,customWidth:p,isCollab:h=!0,defaultState:m,editId:g,toolbarShow:v=!0,isEditable:b=!1,showTabContent:_=!0,wpAndTaskId:E,enableCaptions:S=!0,editorTitle:w,showPdf:y=!0,showPagination:x=!0,exportToPDF:C}){const T=he.useRef(null),{historyState:R}=C_(),[F,I]=he.useState([]),[B,A]=he.useState("skyp_1"),[j,O]=he.useState([]),[L,N]=he.useState(!1),[U,D]=La(),[z,K]=he.useState(null),[G,P]=he.useState([]),[W,J]=he.useState(null),[H,$]=he.useState(!1),[Z,X]=he.useState(!1),[Y,ee]=he.useState(!1),[ie,fe]=he.useState([]),de=he.useRef(null),[ne,Ee]=he.useState(!1);he.useState(!1);const xe=async()=>({state:{root:[]},timestamp:Date.now()});let me=()=>{console.log("[Lexical Demo][onBlacklistedInsert] blacklisted combination found")};const{userName:je,userId:ue,userEmail:se}=t||{userName:"aa",userId:"aa",userEmail:"aa@sample.com"},pe={name:je,id:ue,email:se},ce={docId:e+"_"+g,apiKey:n,user:pe,hooks:{fetchDocOnNetworkReconnect:xe,contentChanged:(Ht,Zt)=>{},usersUpdate:Ht=>{I(Ht),renderOnlineUsers(Ht),console.log("[Lexical Demo][usersUpdate hook] hook invoked by Codox: ",Ht)}}};he.useEffect(()=>{let Ht=[],Zt=[];F&&F.length>0&&F.map((Xt,Et)=>{Zt.includes(Xt.name)||(Zt.push(Xt.name),Ht.push(ae.jsxs("div",{title:Xt.name,className:`avatarStyle avatar-color-${Et+1}`,children:[" ",Xt.name&&Xt.name[0],Xt.name&&Xt.name[4]]},Et)))}),O(Ht)},[F]);const Te=()=>{de.current&&(de.current.initComments(c),["content_changed","error","users_update"].forEach(Zt=>{console.log("[Lexical Demo][[Subscribe to Codox Event]: ",Zt),de.current.on(Zt,Xt=>{})}),de.current.start(ce).then(()=>{console.log("[Lexical Demo][codox.start] success"),N(!0)}).catch(Zt=>console.log("[Lexical Demo][codox.start] error",Zt)))},Ae=()=>{de.current&&de.current.stop(),N(!1)};he.useEffect(()=>{wd(".editor-outer").css({justifyContent:Z?"flex-start":"center"})},[Z]),he.useEffect(()=>{(async()=>{if(!B)return;L&&Ae();let Ht=m;if(Ht)try{MS(Ht,_C),K(Ht)}catch(Zt){console.error("[APP] error: ",Zt)}})()},[B]),he.useEffect(()=>{z&&e&&!L&&n&&setTimeout(()=>{Te()},2e3)},[z,e,L,n]);const ke=he.useMemo(()=>{if(z)return{editorState:Ht=>{Ht.update(()=>{const Zt=new DOMParser,Xt=qw(l),Et=Zt.parseFromString(Xt,"text/html");let Dt=Sd(Ht,Et);In().clear();const At=En();Xo(Dt),Xo([At]),Ht.setEditable(b),setTimeout(()=>{Ht.setEditable(b),rt(!0)},5e3);const tn=new Qd(Ht);c&&(tn.setComments(c),Ht._commentStore||(Ht._commentStore=new Qd(Ht),Ht._commentStore.getComments().length===0&&Ht._commentStore.setComments(c)))})},namespace:"Playground",nodes:_C,onError:Ht=>{console.error("[Lexical Demo][Editor Error Captured]: ",Ht)},theme:ry}},[z]),Me=he.useRef(l);he.useEffect(()=>{Me.current||(Me.current=l)},[l]);const We=ae.jsx(Nd,{children:""}),[De,Le]=he.useState(null),[Ce,Xe]=he.useState(!1),[Ie,Ze]=he.useState(!1),[at,rt]=he.useState(!1),[it,Vt]=he.useState(""),Qe=Ht=>{Ht!==null&&Le(Ht)};he.useEffect(()=>{const Ht=()=>{const Zt=Ic&&window.matchMedia("(max-width: 1025px)").matches;Zt!==Ce&&Xe(Zt)};return Ht(),window.addEventListener("resize",Ht),()=>{window.removeEventListener("resize",Ht)}},[Ce]),he.useEffect(()=>{const Ht=Zt=>{W&&!Zt.target.closest(".reference-toolbar")&&J(null)};return document.addEventListener("click",Ht),()=>{document.removeEventListener("click",Ht)}},[W]),he.useEffect(()=>{l&&t&&t.userName&&e&&i?setTimeout(()=>{Ee(!0)},1e3):Ee(!1)},[l,t,i]);const Kt=Ht=>{console.log("CustomOnChange",Ht),a(Ht),Vt(Ht)};return ae.jsx(ae.Fragment,{children:ne?ae.jsxs(dp,{initialConfig:ke,children:[ae.jsx(E_,{children:ae.jsx(L1,{children:ae.jsxs("div",{ref:T,className:"editor-shell",style:{position:"relative"},children:[ae.jsxs("div",{className:L?"":"blurred-editor-content",children:[ae.jsxs(ae.Fragment,{children:[ae.jsx(OR,{htmlString:l}),ae.jsx(AR,{htmlString:l,wpAndTaskId:`${E.workplanId}-${E.taskId}`}),ae.jsx(dC,{showComments:H,setShowComments:$,handleSaveComments:u,userName:je,userEmail:se,mentionItems:s,mentionedEmails:ie,setmentionedEmails:fe,wpAndTaskId:E,setShowCommentInput:ee,showCommentInput:Y}),ae.jsx(NR,{}),b?ae.jsxs(ae.Fragment,{children:[i&&v&&ae.jsx(dx,{styleConfig:i,setIsLinkEditMode:Ze,onlUser:j,showComments:H,setShowComments:$,parsedHtmlString:it,enableCaptions:S,wpAndTaskId:E,editorTitle:w,exportToPDF:C})," "]}):"",ae.jsx(fC,{onChange:Kt}),ae.jsxs("div",{className:"editor-container tree-view",children:[ae.jsx(bw,{}),ae.jsx(ER,{}),ae.jsx(_R,{}),ae.jsx(TR,{}),ae.jsx(z1,{}),ae.jsx(_w,{}),ae.jsx(fw,{}),ae.jsx(mp,{externalHistoryState:R}),ae.jsx(qp,{contentEditable:ae.jsx("div",{className:"editor-scroller",children:ae.jsx("div",{className:"editor",ref:Qe,children:ae.jsxs("div",{className:`editor-autosave-${g}`,children:[" ",ae.jsx(Od,{className:(L||at)&&b?`ContentEditable__root ${x?"content-editable-grid":""}`:`ContentEditable__root no-events ${x?"content-editable-grid":""}`})]})})}),placeholder:We,ErrorBoundary:Dl}),ae.jsx(U1,{}),ae.jsx(xw,{maxDepth:7}),ae.jsx(sw,{hasCellMerge:!0,hasCellBackgroundColor:!0}),h&&ae.jsx(Rw,{}),ae.jsx(gw,{enableCaptions:S,wpAndTaskId:`${E.workplanId}-${E.taskId}`}),ae.jsx(fy,{}),ae.jsx(Cw,{}),De&&!Ce&&ae.jsx(ae.Fragment,{children:ae.jsx(Mw,{anchorElem:De,cellMerge:!0})}),W&&ae.jsx(LS,{references:G,setReferences:P,position:W,onClose:()=>J(null)}),ae.jsx(FS,{setContextMenu:J,references:G,setReferences:P,containerRef:T}),ae.jsx(BS,{references:G,setReferences:P}),ae.jsx(I1,{}),ae.jsx(zS,{}),ae.jsx(pC,{})]})]}),!L&&ae.jsxs("div",{style:{position:"absolute",zIndex:999,top:0,left:0,width:"100%",height:"100%",backgroundColor:"rgba(255, 255, 255, 0.6)",display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"start",backdropFilter:"blur(6px)"},children:[ae.jsx("img",{src:Lh,alt:"Spinverse Logo",style:{height:"60px",marginBottom:"20px",marginTop:"110px"}}),ae.jsx("img",{src:Fh,alt:"Loading...",style:{height:"50px"}})]})]}),h&&ae.jsx(PS,{debug:!0,ref:de,onBlacklistedInsert:me}),U]})})}),i&&ae.jsx(RS,{styleConfig:i})]},e):ae.jsx(ae.Fragment,{children:!L&&ae.jsxs("div",{style:{position:"absolute",zIndex:999,top:0,left:0,width:"100%",height:"100%",backgroundColor:"rgba(255, 255, 255, 0.6)",display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"start",backdropFilter:"blur(6px)"},children:[ae.jsx("img",{src:Lh,alt:"Spinverse Logo",style:{height:"60px",marginBottom:"20px",marginTop:"110px"}}),ae.jsx("img",{src:Fh,alt:"Loading...",style:{height:"50px"}})]})})})}const YD="";function IR(l){return l&&l.__esModule&&Object.prototype.hasOwnProperty.call(l,"default")?l.default:l}var MR=IR(function(l){const t=new URLSearchParams;t.append("code",l);for(let n=1;n<arguments.length;n++)t.append("v",arguments[n]);throw Error(`Minified Lexical error #${l}; visit https://lexical.dev/docs/error?${t} for the full message or use the non-minified dev environment for full errors and additional helpful warnings.`)});function wC(l){const t=l.transform();return t!==null?new Set([t]):new Set}function xC({initialEditor:l,children:t,initialNodes:n,initialTheme:e,skipCollabChecks:s}){const r=he.useRef(!1),o=he.useContext(Uu);o==null&&MR(9);const[a,{getTheme:c}]=o,i=he.useMemo(()=>{const p=e||c()||void 0,h=Tv(o,p);if(p!==void 0&&(l._config.theme=p),l._parentEditor=a,n)for(let m of n){let g=null,v=null;if(typeof m!="function"){const _=m;m=_.replace,g=_.with,v=_.withKlass||null}const b=l._nodes.get(m.getType());l._nodes.set(m.getType(),{exportDOM:b?b.exportDOM:void 0,klass:m,replace:g,replaceWithKlass:v,transforms:wC(m)})}else{const m=l._nodes=new Map(a._nodes);for(const[g,v]of m)l._nodes.set(g,{exportDOM:v.exportDOM,klass:v.klass,replace:v.replace,replaceWithKlass:v.replaceWithKlass,transforms:wC(v.klass)})}return l._config.namespace=a._config.namespace,l._editable=a._editable,[l,h]},[]),{isCollabActive:u,yjsDocMap:d}=Pd(),f=s||r.current||d.has(l.getKey());return he.useEffect(()=>{f&&(r.current=!0)},[f]),he.useEffect(()=>a.registerEditableListener(p=>{l.setEditable(p)}),[l,a]),ae.jsx(Uu.Provider,{value:i,children:!u||f?t:null})}function S0(l,t,n){return Math.min(Math.max(l,t),n)}const Nr={east:1,north:8,south:2,west:4};function RR({onResizeStart:l,onResizeEnd:t,buttonRef:n,imageRef:e,maxWidth:s,editor:r,showCaption:o,setShowCaption:a,enableCaptions:c}){const i=he.useRef(null),u=he.useRef({priority:"",value:"default"}),d=he.useRef({currentHeight:0,currentWidth:0,direction:0,isResizing:!1,ratio:0,startHeight:0,startWidth:0,startX:0,startY:0}),f=r.getRootElement(),p=f!==null?f.getBoundingClientRect().width-20:100,h=f!==null?f.getBoundingClientRect().height-20:100,m=100,g=100,v=w=>{const y=w===Nr.east||w===Nr.west,x=w===Nr.north||w===Nr.south,C=w&Nr.north&&w&Nr.west||w&Nr.south&&w&Nr.east,T=y?"ew":x?"ns":C?"nwse":"nesw";f!==null&&f.style.setProperty("cursor",`${T}-resize`,"important"),document.body!==null&&(document.body.style.setProperty("cursor",`${T}-resize`,"important"),u.current.value=document.body.style.getPropertyValue("-webkit-user-select"),u.current.priority=document.body.style.getPropertyPriority("-webkit-user-select"),document.body.style.setProperty("-webkit-user-select","none","important"))},b=()=>{f!==null&&f.style.setProperty("cursor","text"),document.body!==null&&(document.body.style.setProperty("cursor","default"),document.body.style.setProperty("-webkit-user-select",u.current.value,u.current.priority))},_=(w,y)=>{if(!r.isEditable())return;const x=e.current,C=i.current;if(x!==null&&C!==null){w.preventDefault();const{width:T,height:R}=x.getBoundingClientRect(),F=d.current;F.startWidth=T,F.startHeight=R,F.ratio=T/R,F.currentWidth=T,F.currentHeight=R,F.startX=w.clientX,F.startY=w.clientY,F.isResizing=!0,F.direction=y,v(y),l(),C.classList.add("image-control-wrapper--resizing"),x.style.height=`${R}px`,x.style.width=`${T}px`,document.addEventListener("pointermove",E),document.addEventListener("pointerup",S)}},E=w=>{const y=e.current,x=d.current,C=x.direction&(Nr.east|Nr.west),T=x.direction&(Nr.south|Nr.north);if(y!==null&&x.isResizing){if(C&&T){let R=Math.floor(x.startX-w.clientX);R=x.direction&Nr.east?-R:R;const F=S0(x.startWidth+R,m,p),I=F/x.ratio;if(I>600){alert("Image height cannot be greater than 600px."),S();return}y.style.width=`${F}px`,y.style.height=`${I}px`,x.currentHeight=I,x.currentWidth=F}else if(T){let R=Math.floor(x.startY-w.clientY);R=x.direction&Nr.south?-R:R;const F=x.startHeight+R;if(F>x.startHeight&&F>600){alert("Image height cannot be greater than 600px."),S();return}const B=S0(F,g,h);y.style.height=`${B}px`,y.style.maxHeight=`${B}px`,x.currentHeight=B}else{let R=Math.floor(x.startX-w.clientX);R=x.direction&Nr.east?-R:R;const F=S0(x.startWidth+R,m,p);y.style.width=`${F}px`,y.style.maxWidth=`${F}px`,x.currentWidth=F}y&&(y.setAttribute("width",`${x.currentWidth}`),y.setAttribute("height",`${x.currentHeight}`))}},S=()=>{const w=e.current,y=d.current,x=i.current;if(w!==null&&x!==null&&y.isResizing){const C=y.currentWidth,T=y.currentHeight;y.startWidth=0,y.startHeight=0,y.ratio=0,y.startX=0,y.startY=0,y.currentWidth=0,y.currentHeight=0,y.isResizing=!1,x.classList.remove("image-control-wrapper--resizing"),b(),t(C,T),document.removeEventListener("pointermove",E),document.removeEventListener("pointerup",S)}};return ae.jsxs("div",{ref:i,children:[ae.jsx("div",{className:"image-resizer image-resizer-n",onPointerDown:w=>{_(w,Nr.north)}}),ae.jsx("div",{className:"image-resizer image-resizer-ne",onPointerDown:w=>{_(w,Nr.north|Nr.east)}}),ae.jsx("div",{className:"image-resizer image-resizer-e",onPointerDown:w=>{_(w,Nr.east)}}),ae.jsx("div",{className:"image-resizer image-resizer-se",onPointerDown:w=>{_(w,Nr.south|Nr.east)}}),ae.jsx("div",{className:"image-resizer image-resizer-s",onPointerDown:w=>{_(w,Nr.south)}}),ae.jsx("div",{className:"image-resizer image-resizer-sw",onPointerDown:w=>{_(w,Nr.south|Nr.west)}}),ae.jsx("div",{className:"image-resizer image-resizer-w",onPointerDown:w=>{_(w,Nr.west)}}),ae.jsx("div",{className:"image-resizer image-resizer-nw",onPointerDown:w=>{_(w,Nr.north|Nr.west)}})]})}const Bh={x:0,y:0,width:0,height:0,unit:"px"},gu=(l,t,n)=>Math.min(Math.max(l,t),n),DR=(...l)=>l.filter(t=>t&&typeof t=="string").join(" "),SC=(l,t)=>l===t||l.width===t.width&&l.height===t.height&&l.x===t.x&&l.y===t.y&&l.unit===t.unit;function mu(l,t,n){return l.unit==="%"?{...Bh,...l,unit:"%"}:{unit:"%",x:l.x?l.x/t*100:0,y:l.y?l.y/n*100:0,width:l.width?l.width/t*100:0,height:l.height?l.height/n*100:0}}function Za(l,t,n){return l.unit?l.unit==="px"?{...Bh,...l,unit:"px"}:{unit:"px",x:l.x?l.x*t/100:0,y:l.y?l.y*n/100:0,width:l.width?l.width*t/100:0,height:l.height?l.height*n/100:0}:{...Bh,...l,unit:"px"}}function EC(l,t,n,e,s,r=0,o=0,a=e,c=s){const i={...l};let u=Math.min(r,e),d=Math.min(o,s),f=Math.min(a,e),p=Math.min(c,s);t&&(t>1?(u=o?o*t:u,d=u/t,f=a*t):(d=r?r/t:d,u=d*t,p=c/t)),i.y<0&&(i.height=Math.max(i.height+i.y,d),i.y=0),i.x<0&&(i.width=Math.max(i.width+i.x,u),i.x=0);const h=e-(i.x+i.width);h<0&&(i.x=Math.min(i.x,e-u),i.width+=h);const m=s-(i.y+i.height);if(m<0&&(i.y=Math.min(i.y,s-d),i.height+=m),i.width<u&&((n==="sw"||n=="nw")&&(i.x-=u-i.width),i.width=u),i.height<d&&((n==="nw"||n=="ne")&&(i.y-=d-i.height),i.height=d),i.width>f&&((n==="sw"||n=="nw")&&(i.x-=f-i.width),i.width=f),i.height>p&&((n==="nw"||n=="ne")&&(i.y-=p-i.height),i.height=p),t){const g=i.width/i.height;if(g<t){const v=Math.max(i.width/t,d);(n==="nw"||n=="ne")&&(i.y-=v-i.height),i.height=v}else if(g>t){const v=Math.max(i.height*t,u);(n==="sw"||n=="nw")&&(i.x-=v-i.width),i.width=v}}return i}function LR(l,t,n,e){const s={...l};return t==="ArrowLeft"?e==="nw"?(s.x-=n,s.y-=n,s.width+=n,s.height+=n):e==="w"?(s.x-=n,s.width+=n):e==="sw"?(s.x-=n,s.width+=n,s.height+=n):e==="ne"?(s.y+=n,s.width-=n,s.height-=n):e==="e"?s.width-=n:e==="se"&&(s.width-=n,s.height-=n):t==="ArrowRight"&&(e==="nw"?(s.x+=n,s.y+=n,s.width-=n,s.height-=n):e==="w"?(s.x+=n,s.width-=n):e==="sw"?(s.x+=n,s.width-=n,s.height-=n):e==="ne"?(s.y-=n,s.width+=n,s.height+=n):e==="e"?s.width+=n:e==="se"&&(s.width+=n,s.height+=n)),t==="ArrowUp"?e==="nw"?(s.x-=n,s.y-=n,s.width+=n,s.height+=n):e==="n"?(s.y-=n,s.height+=n):e==="ne"?(s.y-=n,s.width+=n,s.height+=n):e==="sw"?(s.x+=n,s.width-=n,s.height-=n):e==="s"?s.height-=n:e==="se"&&(s.width-=n,s.height-=n):t==="ArrowDown"&&(e==="nw"?(s.x+=n,s.y+=n,s.width-=n,s.height-=n):e==="n"?(s.y+=n,s.height-=n):e==="ne"?(s.y+=n,s.width-=n,s.height-=n):e==="sw"?(s.x-=n,s.width+=n,s.height+=n):e==="s"?s.height+=n:e==="se"&&(s.width+=n,s.height+=n)),s}const yu={capture:!0,passive:!1};let FR=0;const Qa=class ys extends he.PureComponent{constructor(){super(...arguments),this.docMoveBound=!1,this.mouseDownOnCrop=!1,this.dragStarted=!1,this.evData={startClientX:0,startClientY:0,startCropX:0,startCropY:0,clientX:0,clientY:0,isResize:!0},this.componentRef=he.createRef(),this.mediaRef=he.createRef(),this.initChangeCalled=!1,this.instanceId=`rc-${FR++}`,this.state={cropIsActive:!1,newCropIsBeingDrawn:!1},this.onCropPointerDown=t=>{const{crop:n,disabled:e}=this.props,s=this.getBox();if(!n)return;const r=Za(n,s.width,s.height);if(e)return;t.cancelable&&t.preventDefault(),this.bindDocMove(),this.componentRef.current.focus({preventScroll:!0});const o=t.target.dataset.ord,a=!!o;let c=t.clientX,i=t.clientY,u=r.x,d=r.y;if(o){const f=t.clientX-s.x,p=t.clientY-s.y;let h=0,m=0;o==="ne"||o=="e"?(h=f-(r.x+r.width),m=p-r.y,u=r.x,d=r.y+r.height):o==="se"||o==="s"?(h=f-(r.x+r.width),m=p-(r.y+r.height),u=r.x,d=r.y):o==="sw"||o=="w"?(h=f-r.x,m=p-(r.y+r.height),u=r.x+r.width,d=r.y):(o==="nw"||o=="n")&&(h=f-r.x,m=p-r.y,u=r.x+r.width,d=r.y+r.height),c=u+s.x+h,i=d+s.y+m}this.evData={startClientX:c,startClientY:i,startCropX:u,startCropY:d,clientX:t.clientX,clientY:t.clientY,isResize:a,ord:o},this.mouseDownOnCrop=!0,this.setState({cropIsActive:!0})},this.onComponentPointerDown=t=>{const{crop:n,disabled:e,locked:s,keepSelection:r,onChange:o}=this.props,a=this.getBox();if(e||s||r&&n)return;t.cancelable&&t.preventDefault(),this.bindDocMove(),this.componentRef.current.focus({preventScroll:!0});const c=t.clientX-a.x,i=t.clientY-a.y,u={unit:"px",x:c,y:i,width:0,height:0};this.evData={startClientX:t.clientX,startClientY:t.clientY,startCropX:c,startCropY:i,clientX:t.clientX,clientY:t.clientY,isResize:!0},this.mouseDownOnCrop=!0,o(Za(u,a.width,a.height),mu(u,a.width,a.height)),this.setState({cropIsActive:!0,newCropIsBeingDrawn:!0})},this.onDocPointerMove=t=>{const{crop:n,disabled:e,onChange:s,onDragStart:r}=this.props,o=this.getBox();if(e||!n||!this.mouseDownOnCrop)return;t.cancelable&&t.preventDefault(),this.dragStarted||(this.dragStarted=!0,r&&r(t));const{evData:a}=this;a.clientX=t.clientX,a.clientY=t.clientY;let c;a.isResize?c=this.resizeCrop():c=this.dragCrop(),SC(n,c)||s(Za(c,o.width,o.height),mu(c,o.width,o.height))},this.onComponentKeyDown=t=>{const{crop:n,disabled:e,onChange:s,onComplete:r}=this.props;if(e)return;const o=t.key;let a=!1;if(!n)return;const c=this.getBox(),i=this.makePixelCrop(c),u=(navigator.platform.match("Mac")?t.metaKey:t.ctrlKey)?ys.nudgeStepLarge:t.shiftKey?ys.nudgeStepMedium:ys.nudgeStep;if(o==="ArrowLeft"?(i.x-=u,a=!0):o==="ArrowRight"?(i.x+=u,a=!0):o==="ArrowUp"?(i.y-=u,a=!0):o==="ArrowDown"&&(i.y+=u,a=!0),a){t.cancelable&&t.preventDefault(),i.x=gu(i.x,0,c.width-i.width),i.y=gu(i.y,0,c.height-i.height);const d=Za(i,c.width,c.height),f=mu(i,c.width,c.height);s(d,f),r&&r(d,f)}},this.onHandlerKeyDown=(t,n)=>{const{aspect:e=0,crop:s,disabled:r,minWidth:o=0,minHeight:a=0,maxWidth:c,maxHeight:i,onChange:u,onComplete:d}=this.props,f=this.getBox();if(r||!s)return;if(t.key==="ArrowUp"||t.key==="ArrowDown"||t.key==="ArrowLeft"||t.key==="ArrowRight")t.stopPropagation(),t.preventDefault();else return;const p=(navigator.platform.match("Mac")?t.metaKey:t.ctrlKey)?ys.nudgeStepLarge:t.shiftKey?ys.nudgeStepMedium:ys.nudgeStep,h=Za(s,f.width,f.height),m=LR(h,t.key,p,n),g=EC(m,e,n,f.width,f.height,o,a,c,i);if(!SC(s,g)){const v=mu(g,f.width,f.height);u(g,v),d&&d(g,v)}},this.onDocPointerDone=t=>{const{crop:n,disabled:e,onComplete:s,onDragEnd:r}=this.props,o=this.getBox();this.unbindDocMove(),!(e||!n)&&this.mouseDownOnCrop&&(this.mouseDownOnCrop=!1,this.dragStarted=!1,r&&r(t),s&&s(Za(n,o.width,o.height),mu(n,o.width,o.height)),this.setState({cropIsActive:!1,newCropIsBeingDrawn:!1}))},this.onDragFocus=()=>{var t;(t=this.componentRef.current)==null||t.scrollTo(0,0)}}get document(){return document}getBox(){const t=this.mediaRef.current;if(!t)return{x:0,y:0,width:0,height:0};const{x:n,y:e,width:s,height:r}=t.getBoundingClientRect();return{x:n,y:e,width:s,height:r}}componentDidUpdate(t){const{crop:n,onComplete:e}=this.props;if(e&&!t.crop&&n){const{width:s,height:r}=this.getBox();s&&r&&e(Za(n,s,r),mu(n,s,r))}}componentWillUnmount(){this.resizeObserver&&this.resizeObserver.disconnect(),this.unbindDocMove()}bindDocMove(){this.docMoveBound||(this.document.addEventListener("pointermove",this.onDocPointerMove,yu),this.document.addEventListener("pointerup",this.onDocPointerDone,yu),this.document.addEventListener("pointercancel",this.onDocPointerDone,yu),this.docMoveBound=!0)}unbindDocMove(){this.docMoveBound&&(this.document.removeEventListener("pointermove",this.onDocPointerMove,yu),this.document.removeEventListener("pointerup",this.onDocPointerDone,yu),this.document.removeEventListener("pointercancel",this.onDocPointerDone,yu),this.docMoveBound=!1)}getCropStyle(){const{crop:t}=this.props;if(t)return{top:`${t.y}${t.unit}`,left:`${t.x}${t.unit}`,width:`${t.width}${t.unit}`,height:`${t.height}${t.unit}`}}dragCrop(){const{evData:t}=this,n=this.getBox(),e=this.makePixelCrop(n),s=t.clientX-t.startClientX,r=t.clientY-t.startClientY;return e.x=gu(t.startCropX+s,0,n.width-e.width),e.y=gu(t.startCropY+r,0,n.height-e.height),e}getPointRegion(t,n,e,s){const{evData:r}=this,o=r.clientX-t.x,a=r.clientY-t.y;let c;s&&n?c=n==="nw"||n==="n"||n==="ne":c=a<r.startCropY;let i;return e&&n?i=n==="nw"||n==="w"||n==="sw":i=o<r.startCropX,i?c?"nw":"sw":c?"ne":"se"}resolveMinDimensions(t,n,e=0,s=0){const r=Math.min(e,t.width),o=Math.min(s,t.height);return!n||!r&&!o?[r,o]:n>1?r?[r,r/n]:[o*n,o]:o?[o*n,o]:[r,r/n]}resizeCrop(){const{evData:t}=this,{aspect:n=0,maxWidth:e,maxHeight:s}=this.props,r=this.getBox(),[o,a]=this.resolveMinDimensions(r,n,this.props.minWidth,this.props.minHeight);let c=this.makePixelCrop(r);const i=this.getPointRegion(r,t.ord,o,a),u=t.ord||i;let d=t.clientX-t.startClientX,f=t.clientY-t.startClientY;(o&&u==="nw"||u==="w"||u==="sw")&&(d=Math.min(d,-o)),(a&&u==="nw"||u==="n"||u==="ne")&&(f=Math.min(f,-a));const p={unit:"px",x:0,y:0,width:0,height:0};i==="ne"?(p.x=t.startCropX,p.width=d,n?(p.height=p.width/n,p.y=t.startCropY-p.height):(p.height=Math.abs(f),p.y=t.startCropY-p.height)):i==="se"?(p.x=t.startCropX,p.y=t.startCropY,p.width=d,n?p.height=p.width/n:p.height=f):i==="sw"?(p.x=t.startCropX+d,p.y=t.startCropY,p.width=Math.abs(d),n?p.height=p.width/n:p.height=f):i==="nw"&&(p.x=t.startCropX+d,p.width=Math.abs(d),n?(p.height=p.width/n,p.y=t.startCropY-p.height):(p.height=Math.abs(f),p.y=t.startCropY+f));const h=EC(p,n,i,r.width,r.height,o,a,e,s);return n||ys.xyOrds.indexOf(u)>-1?c=h:ys.xOrds.indexOf(u)>-1?(c.x=h.x,c.width=h.width):ys.yOrds.indexOf(u)>-1&&(c.y=h.y,c.height=h.height),c.x=gu(c.x,0,r.width-c.width),c.y=gu(c.y,0,r.height-c.height),c}renderCropSelection(){const{ariaLabels:t=ys.defaultProps.ariaLabels,disabled:n,locked:e,renderSelectionAddon:s,ruleOfThirds:r,crop:o}=this.props,a=this.getCropStyle();if(o)return he.createElement("div",{style:a,className:"ReactCrop__crop-selection",onPointerDown:this.onCropPointerDown,"aria-label":t.cropArea,tabIndex:0,onKeyDown:this.onComponentKeyDown,role:"group"},!n&&!e&&he.createElement("div",{className:"ReactCrop__drag-elements",onFocus:this.onDragFocus},he.createElement("div",{className:"ReactCrop__drag-bar ord-n","data-ord":"n"}),he.createElement("div",{className:"ReactCrop__drag-bar ord-e","data-ord":"e"}),he.createElement("div",{className:"ReactCrop__drag-bar ord-s","data-ord":"s"}),he.createElement("div",{className:"ReactCrop__drag-bar ord-w","data-ord":"w"}),he.createElement("div",{className:"ReactCrop__drag-handle ord-nw","data-ord":"nw",tabIndex:0,"aria-label":t.nwDragHandle,onKeyDown:c=>this.onHandlerKeyDown(c,"nw"),role:"button"}),he.createElement("div",{className:"ReactCrop__drag-handle ord-n","data-ord":"n",tabIndex:0,"aria-label":t.nDragHandle,onKeyDown:c=>this.onHandlerKeyDown(c,"n"),role:"button"}),he.createElement("div",{className:"ReactCrop__drag-handle ord-ne","data-ord":"ne",tabIndex:0,"aria-label":t.neDragHandle,onKeyDown:c=>this.onHandlerKeyDown(c,"ne"),role:"button"}),he.createElement("div",{className:"ReactCrop__drag-handle ord-e","data-ord":"e",tabIndex:0,"aria-label":t.eDragHandle,onKeyDown:c=>this.onHandlerKeyDown(c,"e"),role:"button"}),he.createElement("div",{className:"ReactCrop__drag-handle ord-se","data-ord":"se",tabIndex:0,"aria-label":t.seDragHandle,onKeyDown:c=>this.onHandlerKeyDown(c,"se"),role:"button"}),he.createElement("div",{className:"ReactCrop__drag-handle ord-s","data-ord":"s",tabIndex:0,"aria-label":t.sDragHandle,onKeyDown:c=>this.onHandlerKeyDown(c,"s"),role:"button"}),he.createElement("div",{className:"ReactCrop__drag-handle ord-sw","data-ord":"sw",tabIndex:0,"aria-label":t.swDragHandle,onKeyDown:c=>this.onHandlerKeyDown(c,"sw"),role:"button"}),he.createElement("div",{className:"ReactCrop__drag-handle ord-w","data-ord":"w",tabIndex:0,"aria-label":t.wDragHandle,onKeyDown:c=>this.onHandlerKeyDown(c,"w"),role:"button"})),s&&he.createElement("div",{className:"ReactCrop__selection-addon",onPointerDown:c=>c.stopPropagation()},s(this.state)),r&&he.createElement(he.Fragment,null,he.createElement("div",{className:"ReactCrop__rule-of-thirds-hz"}),he.createElement("div",{className:"ReactCrop__rule-of-thirds-vt"})))}makePixelCrop(t){const n={...Bh,...this.props.crop||{}};return Za(n,t.width,t.height)}render(){const{aspect:t,children:n,circularCrop:e,className:s,crop:r,disabled:o,locked:a,style:c,ruleOfThirds:i}=this.props,{cropIsActive:u,newCropIsBeingDrawn:d}=this.state,f=r?this.renderCropSelection():null,p=DR("ReactCrop",s,u&&"ReactCrop--active",o&&"ReactCrop--disabled",a&&"ReactCrop--locked",d&&"ReactCrop--new-crop",r&&t&&"ReactCrop--fixed-aspect",r&&e&&"ReactCrop--circular-crop",r&&i&&"ReactCrop--rule-of-thirds",!this.dragStarted&&r&&!r.width&&!r.height&&"ReactCrop--invisible-crop",e&&"ReactCrop--no-animate");return he.createElement("div",{ref:this.componentRef,className:p,style:c},he.createElement("div",{ref:this.mediaRef,className:"ReactCrop__child-wrapper",onPointerDown:this.onComponentPointerDown},n),r?he.createElement("svg",{className:"ReactCrop__crop-mask",width:"100%",height:"100%"},he.createElement("defs",null,he.createElement("mask",{id:`hole-${this.instanceId}`},he.createElement("rect",{width:"100%",height:"100%",fill:"white"}),e?he.createElement("ellipse",{cx:`${r.x+r.width/2}${r.unit}`,cy:`${r.y+r.height/2}${r.unit}`,rx:`${r.width/2}${r.unit}`,ry:`${r.height/2}${r.unit}`,fill:"black"}):he.createElement("rect",{x:`${r.x}${r.unit}`,y:`${r.y}${r.unit}`,width:`${r.width}${r.unit}`,height:`${r.height}${r.unit}`,fill:"black"}))),he.createElement("rect",{fill:"black",fillOpacity:.5,width:"100%",height:"100%",mask:`url(#hole-${this.instanceId})`})):void 0,f)}};Qa.xOrds=["e","w"],Qa.yOrds=["n","s"],Qa.xyOrds=["nw","ne","se","sw"],Qa.nudgeStep=1,Qa.nudgeStepMedium=10,Qa.nudgeStepLarge=100,Qa.defaultProps={ariaLabels:{cropArea:"Use the arrow keys to move the crop selection area",nwDragHandle:"Use the arrow keys to move the north west drag handle to change the crop selection area",nDragHandle:"Use the up and down arrow keys to move the north drag handle to change the crop selection area",neDragHandle:"Use the arrow keys to move the north east drag handle to change the crop selection area",eDragHandle:"Use the up and down arrow keys to move the east drag handle to change the crop selection area",seDragHandle:"Use the arrow keys to move the south east drag handle to change the crop selection area",sDragHandle:"Use the up and down arrow keys to move the south drag handle to change the crop selection area",swDragHandle:"Use the arrow keys to move the south west drag handle to change the crop selection area",wDragHandle:"Use the up and down arrow keys to move the west drag handle to change the crop selection area"}};let BR=Qa;const ZD="",E0=po();function zR({altText:l,className:t,src:n,width:e,height:s,maxWidth:r,imageRef:o,startCrop:a,setStartCrop:c,isFocused:i,nodeKey:u}){const[d,f]=he.useState(null),[p,h]=he.useState({unit:"px",x:25,y:25,width:50,height:50}),[m]=yn(),g=()=>{if(d){const S=o.current;if(!S||!d)return;const w=S.naturalWidth/S.width,y=S.naturalHeight/S.height,x=new OffscreenCanvas(d.width*w,d.height*y),C=x.getContext("2d");if(!C)throw new Error("No 2D context available");C.drawImage(S,d.x*w,d.y*y,d.width*w,d.height*y,0,0,d.width*w,d.height*y),x.convertToBlob({type:"image/png"}).then(T=>{c(!1);const R=new FileReader;R.onload=()=>{const F=R.result;setTimeout(()=>{m.update(()=>{const I=Fn(u);Vs(I)&&F&&I.setSrc(F)},{tag:"crop"})},100)},R.onerror=()=>{console.error("Error reading the cropped image blob")},R.readAsDataURL(T)})}},v=()=>{a||c(S=>{if(S===!1){const w=o.current;h({unit:"px",x:0,y:0,width:w.width,height:w.height})}return!S})},b=he.useRef(null),_=he.useRef(null);he.useEffect(()=>{d&&(b.current=d)},[d]);const E=S=>{_.current&&!_.current.contains(S.target)&&c(!1)};return he.useEffect(()=>(document.addEventListener("mousedown",E),()=>{document.removeEventListener("mousedown",E)}),[]),ae.jsxs("div",{ref:_,children:[i&&ae.jsx("button",{style:{zIndex:999},className:"image-caption-button",onClick:()=>v(),children:"Crop"}),a&&ae.jsx("button",{style:{zIndex:999},className:"image-caption-button",onClick:()=>g(),children:"Apply Crop"}),a?ae.jsx(BR,{crop:p,onChange:S=>h(S),onComplete:S=>f(S),children:ae.jsx("img",{className:t||void 0,src:n,alt:l,ref:o,width:typeof e=="number"?e:void 0,height:typeof s=="number"?s:void 0,style:{height:s,maxWidth:r,width:e},draggable:"false",crossOrigin:"anonymous"})}):ae.jsx("img",{className:t||void 0,src:n,alt:l,ref:o,width:typeof e=="number"?e:void 0,height:typeof s=="number"?s:void 0,style:{height:s,maxWidth:r,width:e},draggable:"false",crossOrigin:"anonymous"})]})}function UR({src:l,altText:t,nodeKey:n,width:e,height:s,maxWidth:r,resizable:o,showCaption:a,caption:c,enableCaptions:i}){const u=he.useRef(null),d=he.useRef(null),[f,p,h]=Ec(n),[m,g]=he.useState(!1),[v]=yn(),[b,_]=he.useState(null),[E,S]=he.useState(!1),w=he.useRef(null),y=he.useCallback(O=>f?(O.preventDefault(),v.update(()=>{const L=Fn(n);Vs(L)&&L.remove()}),!0):!1,[f,v,n]),x=he.useCallback(O=>{const L=jt(),N=d.current;if(f&&fr(L)&&L.getNodes().length===1){if(a)return _r(null),O.preventDefault(),c.focus(),!0;if(N!==null&&N!==document.activeElement)return O.preventDefault(),N.focus(),!0}return!1},[c,f,a]),C=he.useCallback(O=>w.current===c||d.current===O.target?(_r(null),v.update(()=>{p(!0);const L=v.getRootElement();L!==null&&L.focus()}),!0):!1,[c,v,p]),T=he.useCallback(O=>{const L=O;return m?!0:L.target===u.current?(L.shiftKey?p(!f):(h(),p(!0)),!0):!1},[m,f,p,h]),R=he.useCallback(O=>{v.getEditorState().read(()=>{const L=jt();O.target.tagName==="IMG"&&St(L)&&L.getNodes().length===1&&v.dispatchCommand(E0,O)})},[v]);he.useEffect(()=>{const O=N=>{(N.key==="Delete"||N.key==="Backspace")&&f&&(N.stopPropagation(),N.preventDefault(),v.update(()=>{const U=Fn(n);Vs(U)&&U.remove()}))},L=v.getRootElement();return L==null||L.addEventListener("keydown",O),()=>{L==null||L.removeEventListener("keydown",O)}},[f,v,n]),he.useEffect(()=>{let O=!0;const L=v.getRootElement(),N=xr(v.registerUpdateListener(({editorState:U})=>{O&&_(U.read(()=>jt()))}),v.registerCommand(ai,(U,D)=>(w.current=D,!1),Jn),v.registerCommand(ba,T,Jn),v.registerCommand(E0,T,Jn),v.registerCommand(ac,U=>U.target===u.current?(U.preventDefault(),!0):!1,Jn),v.registerCommand(Qi,y,4),v.registerCommand(Zi,y,4),v.registerCommand(Ls,x,Jn),v.registerCommand(Fs,C,Jn));return L==null||L.addEventListener("contextmenu",R),()=>{O=!1,N(),L==null||L.removeEventListener("contextmenu",R)}},[h,v,m,f,n,x,C,T,R,p]);const F=()=>{v.update(()=>{const O=Fn(n);Vs(O)&&O.setShowCaption(!0)})},I=(O,L)=>{setTimeout(()=>{g(!1)},200),v.update(()=>{const N=Fn(n);Vs(N)&&N.setWidthAndHeight(O,L)})},B=()=>{E||g(!0)},A=f&&fr(b)&&!m,j=f||m;return ae.jsx(he.Suspense,{fallback:null,children:ae.jsxs(ae.Fragment,{children:[ae.jsx("div",{draggable:A,children:ae.jsx(zR,{className:j?`focused ${fr(b)?"draggable":""}`:null,src:l,altText:t,width:e,height:s,maxWidth:r,imageRef:u,startCrop:E,setStartCrop:S,isFocused:j,nodeKey:n})}),a&&ae.jsx("div",{className:"image-caption-container",children:ae.jsx(xC,{initialEditor:c,children:ae.jsx(qp,{contentEditable:ae.jsx(Od,{className:"ImageNode__contentEditable"}),placeholder:ae.jsx(Nd,{className:"ImageNode__placeholder",children:"Enter a caption..."}),ErrorBoundary:Dl})})}),!E&&o&&fr(b)&&j&&ae.jsx(RR,{showCaption:a,setShowCaption:F,editor:v,buttonRef:d,maxWidth:r,onResizeStart:E?()=>{}:B,onResizeEnd:E?()=>{}:I,enableCaptions:i,imageRef:u})]})})}const HR=Object.freeze(Object.defineProperty({__proto__:null,RIGHT_CLICK_IMAGE_COMMAND:E0,default:UR},Symbol.toStringTag,{value:"Module"})),QD="",XD="";function qR(l,t){const n=l.getRangeAt(0);let e;if(l.anchorNode===t){let s=t;for(;s.firstElementChild!=null;)s=s.firstElementChild;e=s.getBoundingClientRect()}else e=n.getBoundingClientRect();return e}const WR=10,JR=5;function VR(l,t,n,e=!1,s=WR,r=JR){const o=n.parentElement;if(l===null||!o){t.style.opacity="0",t.style.transform="translate(-10000px, -10000px)";return}const a=t.getBoundingClientRect(),c=n.getBoundingClientRect(),i=o.getBoundingClientRect();let u=l.top-a.height-s,d=l.left-r;u<i.top&&(u+=a.height+l.height+s*(e?9:2)),d+a.width>i.right&&(d=i.right-a.width-r),u-=c.top,d-=c.left,t.style.opacity="1",t.style.transform=`translate(${d}px, ${u}px)`}function KR({editor:l,anchorElem:t,isLink:n,isBold:e,isItalic:s,isUnderline:r,isCode:o,isStrikethrough:a,isSubscript:c,isSuperscript:i}){const u=he.useRef(null),d=he.useCallback(()=>{n?l.dispatchCommand(Pa,null):l.dispatchCommand(Pa,"https://")},[l,n]),f=()=>{l.dispatchCommand(x0,void 0)};function p(g){if(u!=null&&u.current&&(g.buttons===1||g.buttons===3)&&u.current.style.pointerEvents!=="none"){const v=g.clientX,b=g.clientY,_=document.elementFromPoint(v,b);u.current.contains(_)||(u.current.style.pointerEvents="none")}}function h(g){u!=null&&u.current&&u.current.style.pointerEvents!=="auto"&&(u.current.style.pointerEvents="auto")}he.useEffect(()=>{if(u!=null&&u.current)return document.addEventListener("mousemove",p),document.addEventListener("mouseup",h),()=>{document.removeEventListener("mousemove",p),document.removeEventListener("mouseup",h)}},[u]);const m=he.useCallback(()=>{const g=jt(),v=u.current,b=window.getSelection();if(v===null)return;const _=l.getRootElement();if(g!==null&&b!==null&&!b.isCollapsed&&_!==null&&_.contains(b.anchorNode)){const E=qR(b,_);VR(E,v,t,n)}},[l,t,n]);return he.useEffect(()=>{const g=t.parentElement,v=()=>{l.getEditorState().read(()=>{m()})};return window.addEventListener("resize",v),g&&g.addEventListener("scroll",v),()=>{window.removeEventListener("resize",v),g&&g.removeEventListener("scroll",v)}},[l,m,t]),he.useEffect(()=>(l.getEditorState().read(()=>{m()}),xr(l.registerUpdateListener(({editorState:g})=>{g.read(()=>{m()})}),l.registerCommand(ai,()=>(m(),!1),Jn))),[l,m]),ae.jsxs("div",{ref:u,className:"floating-text-format-popup",children:[l.isEditable()&&ae.jsxs(ae.Fragment,{children:[ae.jsx("button",{type:"button",onClick:()=>{l.dispatchCommand(Yr,"bold")},className:"popup-item spaced "+(e?"active":""),"aria-label":"Format text as bold",children:ae.jsx("i",{className:"format bold"})}),ae.jsx("button",{type:"button",onClick:()=>{l.dispatchCommand(Yr,"italic")},className:"popup-item spaced "+(s?"active":""),"aria-label":"Format text as italics",children:ae.jsx("i",{className:"format italic"})}),ae.jsx("button",{type:"button",onClick:()=>{l.dispatchCommand(Yr,"underline")},className:"popup-item spaced "+(r?"active":""),"aria-label":"Format text to underlined",children:ae.jsx("i",{className:"format underline"})}),ae.jsx("button",{type:"button",onClick:()=>{l.dispatchCommand(Yr,"strikethrough")},className:"popup-item spaced "+(a?"active":""),"aria-label":"Format text with a strikethrough",children:ae.jsx("i",{className:"format strikethrough"})}),ae.jsx("button",{type:"button",onClick:()=>{l.dispatchCommand(Yr,"subscript")},className:"popup-item spaced "+(c?"active":""),title:"Subscript","aria-label":"Format Subscript",children:ae.jsx("i",{className:"format subscript"})}),ae.jsx("button",{type:"button",onClick:()=>{l.dispatchCommand(Yr,"superscript")},className:"popup-item spaced "+(i?"active":""),title:"Superscript","aria-label":"Format Superscript",children:ae.jsx("i",{className:"format superscript"})}),ae.jsx("button",{type:"button",onClick:()=>{l.dispatchCommand(Yr,"code")},className:"popup-item spaced "+(o?"active":""),"aria-label":"Insert code block",children:ae.jsx("i",{className:"format code"})}),ae.jsx("button",{type:"button",onClick:d,className:"popup-item spaced "+(n?"active":""),"aria-label":"Insert link",children:ae.jsx("i",{className:"format link"})})]}),ae.jsx("button",{type:"button",onClick:f,className:"popup-item spaced insert-comment","aria-label":"Insert comment",children:ae.jsx("i",{className:"format add-comment"})})]})}function GR(l,t){const[n,e]=he.useState(!1),[s,r]=he.useState(!1),[o,a]=he.useState(!1),[c,i]=he.useState(!1),[u,d]=he.useState(!1),[f,p]=he.useState(!1),[h,m]=he.useState(!1),[g,v]=he.useState(!1),[b,_]=he.useState(!1),E=he.useCallback(()=>{l.getEditorState().read(()=>{if(l.isComposing())return;const S=jt(),w=window.getSelection(),y=l.getRootElement();if(w!==null&&(!St(S)||y===null||!y.contains(w.anchorNode))){e(!1);return}if(!St(S))return;const x=Fw(S);a(S.hasFormat("bold")),i(S.hasFormat("italic")),d(S.hasFormat("underline")),p(S.hasFormat("strikethrough")),m(S.hasFormat("subscript")),v(S.hasFormat("superscript")),_(S.hasFormat("code"));const C=x.getParent();ti(C)||ti(x)?r(!0):r(!1),!Im(S.anchor.getNode())&&S.getTextContent()!==""?e(Wt(x)||wr(x)):e(!1);const T=S.getTextContent().replace(/\n/g,"");if(!S.isCollapsed()&&T===""){e(!1);return}})},[l]);return he.useEffect(()=>(document.addEventListener("selectionchange",E),()=>{document.removeEventListener("selectionchange",E)}),[E]),he.useEffect(()=>xr(l.registerUpdateListener(()=>{E()}),l.registerRootListener(()=>{l.getRootElement()===null&&e(!1)})),[l,E]),n?ao.createPortal(ae.jsx(KR,{editor:l,anchorElem:t,isLink:s,isBold:o,isItalic:c,isStrikethrough:f,isSubscript:h,isSuperscript:g,isUnderline:u,isCode:b}),t):null}function $R({anchorElem:l=document.body}){const[t]=yn();return GR(t,l)}const e4="";function YR({children:l,label:t,className:n,...e}){return ae.jsxs("div",{className:"Input__wrapper",children:[ae.jsx("label",{style:{marginTop:"-1em"},className:"Input__label",children:t}),ae.jsx("select",{...e,className:n||"select",children:l})]})}const CC=new Set;function ZR(l){if(!CC.has(l))throw new Promise(t=>{const n=new Image;n.src=l,n.onload=()=>{CC.add(l),t(null)}})}function QR({altText:l,className:t,imageRef:n,src:e,width:s,height:r,position:o}){return ZR(e),ae.jsx("img",{className:t||void 0,src:e,alt:l,ref:n,"data-position":o,style:{display:"block",height:r,width:s},draggable:"false"})}function jC({activeEditor:l,nodeKey:t,onClose:n}){const s=l.getEditorState().read(()=>Fn(t)),[r,o]=he.useState(s.getAltText()),[a,c]=he.useState(s.getShowCaption()),[i,u]=he.useState(s.getPosition()),d=h=>{c(h.target.checked)},f=h=>{u(h.target.value)},p=()=>{const h={altText:r,position:i,showCaption:a};s&&l.update(()=>{s.update(h)}),n()};return ae.jsxs(ae.Fragment,{children:[ae.jsx("div",{style:{marginBottom:"1em"},children:ae.jsx(Ac,{label:"Alt Text",placeholder:"Descriptive alternative text",onChange:o,value:r,"data-test-id":"image-modal-alt-text-input"})}),ae.jsxs(YR,{style:{marginBottom:"1em",width:"208px"},value:i,label:"Position",name:"position",id:"position-select",onChange:f,children:[ae.jsx("option",{value:"left",children:"Left"}),ae.jsx("option",{value:"right",children:"Right"}),ae.jsx("option",{value:"full",children:"Full Width"})]}),ae.jsxs("div",{className:"Input__wrapper",children:[ae.jsx("input",{id:"caption",type:"checkbox",checked:a,onChange:d}),ae.jsx("label",{htmlFor:"caption",children:"Show Caption"})]}),ae.jsx(Mp,{children:ae.jsx(Fi,{"data-test-id":"image-modal-file-upload-btn",onClick:()=>p(),children:"Confirm"})})]})}function XR({src:l,altText:t,nodeKey:n,width:e,height:s,showCaption:r,caption:o,position:a}){const[c,i]=La(),u=he.useRef(null),d=he.useRef(null),[f,p,h]=Ec(n),[m]=yn(),[g,v]=he.useState(null),b=he.useRef(null),_=he.useCallback(x=>{if(f&&fr(jt())){x.preventDefault();const T=Fn(n);if(wT(T))return T.remove(),!0}return!1},[f,n]),E=he.useCallback(x=>{const C=jt(),T=d.current;if(f&&fr(C)&&C.getNodes().length===1){if(r)return _r(null),x.preventDefault(),o.focus(),!0;if(T!==null&&T!==document.activeElement)return x.preventDefault(),T.focus(),!0}return!1},[o,f,r]),S=he.useCallback(x=>b.current===o||d.current===x.target?(_r(null),m.update(()=>{p(!0);const C=m.getRootElement();C!==null&&C.focus()}),!0):!1,[o,m,p]);he.useEffect(()=>{let x=!0;const C=xr(m.registerUpdateListener(({editorState:T})=>{x&&v(T.read(()=>jt()))}),m.registerCommand(ai,(T,R)=>(b.current=R,!1),Jn),m.registerCommand(ba,T=>{const R=T;return R.target===u.current?(R.shiftKey?p(!f):(h(),p(!0)),!0):!1},Jn),m.registerCommand(ac,T=>T.target===u.current?(T.preventDefault(),!0):!1,Jn),m.registerCommand(Qi,_,Jn),m.registerCommand(Zi,_,Jn),m.registerCommand(Ls,E,Jn),m.registerCommand(Fs,S,Jn));return()=>{x=!1,C()}},[h,m,f,n,_,E,S,p]);const w=f&&fr(g),y=f;return ae.jsxs(he.Suspense,{fallback:null,children:[ae.jsxs(ae.Fragment,{children:[ae.jsxs("div",{draggable:w,children:[ae.jsx("button",{className:"image-edit-button",ref:d,onClick:()=>{i("Update Inline Image",x=>ae.jsx(jC,{activeEditor:m,nodeKey:n,onClose:x}))},children:"Edit"}),ae.jsx(QR,{className:y?`focused ${fr(g)?"draggable":""}`:null,src:l,altText:t,imageRef:u,width:e,height:s,position:a})]}),r&&ae.jsx("div",{className:"image-caption-container",children:ae.jsxs(xC,{initialEditor:o,children:[ae.jsx(Dp,{}),ae.jsx(fy,{}),ae.jsx($R,{}),ae.jsx(qp,{contentEditable:ae.jsx(Od,{className:"InlineImageNode__contentEditable"}),placeholder:ae.jsx(Nd,{className:"InlineImageNode__placeholder",children:"Enter a caption..."}),ErrorBoundary:Dl})]})})]}),c]})}const eD=Object.freeze(Object.defineProperty({__proto__:null,UpdateInlineImageDialog:jC,default:XR},Symbol.toStringTag,{value:"Module"})),t4="";function tD(l){return l.reduce((t,n)=>t+n.votes.length,0)}function nD({option:l,index:t,options:n,totalVotes:e,withPollNode:s}){const{clientID:r}=Pd(),o=he.useRef(null),a=l.votes,i=a.indexOf(r)!==-1,u=a.length,d=l.text;return ae.jsxs("div",{className:"PollNode__optionContainer",children:[ae.jsx("div",{className:ny("PollNode__optionCheckboxWrapper",i&&"PollNode__optionCheckboxChecked"),children:ae.jsx("input",{ref:o,className:"PollNode__optionCheckbox",type:"checkbox",onChange:f=>{s(p=>{p.toggleVote(l,r)})},checked:i})}),ae.jsxs("div",{className:"PollNode__optionInputWrapper",children:[ae.jsx("div",{className:"PollNode__optionInputVotes",style:{width:`${u===0?0:u/e*100}%`}}),ae.jsx("span",{className:"PollNode__optionInputVotesCount",children:u>0&&(u===1?"1 vote":`${u} votes`)}),ae.jsx("input",{className:"PollNode__optionInput",type:"text",value:d,onChange:f=>{const p=f.target,h=p.value,m=p.selectionStart,g=p.selectionEnd;s(v=>{v.setOptionText(l,h)},()=>{p.selectionStart=m,p.selectionEnd=g})},placeholder:`Option ${t+1}`})]}),ae.jsx("button",{disabled:n.length<3,className:ny("PollNode__optionDelete",n.length<3&&"PollNode__optionDeleteDisabled"),"aria-label":"Remove",onClick:()=>{s(f=>{f.deleteOption(l)})}})]})}function rD({question:l,options:t,nodeKey:n}){const[e]=yn(),s=he.useMemo(()=>tD(t),[t]),[r,o,a]=Ec(n),[c,i]=he.useState(null),u=he.useRef(null),d=he.useCallback(m=>{if(r&&fr(jt())){m.preventDefault();const v=Fn(n);if(k1(v))return v.remove(),!0}return!1},[r,n]);he.useEffect(()=>xr(e.registerUpdateListener(({editorState:m})=>{i(m.read(()=>jt()))}),e.registerCommand(ba,m=>{const g=m;return g.target===u.current?(g.shiftKey||a(),o(!r),!0):!1},Jn),e.registerCommand(Qi,d,Jn),e.registerCommand(Zi,d,Jn)),[a,e,r,n,d,o]);const f=(m,g)=>{e.update(()=>{const v=Fn(n);k1(v)&&m(v)},{onUpdate:g})},p=()=>{f(m=>{m.addOption(NT())})},h=fr(c)&&r;return ae.jsx("div",{className:`PollNode__container ${h?"focused":""}`,ref:u,children:ae.jsxs("div",{className:"PollNode__inner",children:[ae.jsx("h2",{className:"PollNode__heading",children:l}),t.map((m,g)=>{const v=m.uid;return ae.jsx(nD,{withPollNode:f,option:m,index:g,options:t,totalVotes:s},v)}),ae.jsx("div",{className:"PollNode__footer",children:ae.jsx(Fi,{onClick:p,small:!0,children:"Add Option"})})]})})}const oD=Object.freeze(Object.defineProperty({__proto__:null,default:rD},Symbol.toStringTag,{value:"Module"})),iD=Object.freeze(Object.defineProperty({__proto__:null,default:[{description:"grinning face",emoji:"😀",category:"Smileys & Emotion",aliases:["grinning"],tags:["smile","happy"],unicode_version:"6.1",ios_version:"6.0"},{emoji:"😃",description:"grinning face with big eyes",category:"Smileys & Emotion",aliases:["smiley"],tags:["happy","joy","haha"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"😄",description:"grinning face with smiling eyes",category:"Smileys & Emotion",aliases:["smile"],tags:["happy","joy","laugh","pleased"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"😁",description:"beaming face with smiling eyes",category:"Smileys & Emotion",aliases:["grin"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"😆",description:"grinning squinting face",category:"Smileys & Emotion",aliases:["laughing","satisfied"],tags:["happy","haha"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"😅",description:"grinning face with sweat",category:"Smileys & Emotion",aliases:["sweat_smile"],tags:["hot"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🤣",description:"rolling on the floor laughing",category:"Smileys & Emotion",aliases:["rofl"],tags:["lol","laughing"],unicode_version:"9.0",ios_version:"10.2"},{emoji:"😂",description:"face with tears of joy",category:"Smileys & Emotion",aliases:["joy"],tags:["tears"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🙂",description:"slightly smiling face",category:"Smileys & Emotion",aliases:["slightly_smiling_face"],tags:[],unicode_version:"7.0",ios_version:"9.1"},{emoji:"🙃",description:"upside-down face",category:"Smileys & Emotion",aliases:["upside_down_face"],tags:[],unicode_version:"8.0",ios_version:"9.1"},{emoji:"😉",description:"winking face",category:"Smileys & Emotion",aliases:["wink"],tags:["flirt"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"😊",description:"smiling face with smiling eyes",category:"Smileys & Emotion",aliases:["blush"],tags:["proud"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"😇",description:"smiling face with halo",category:"Smileys & Emotion",aliases:["innocent"],tags:["angel"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🥰",description:"smiling face with hearts",category:"Smileys & Emotion",aliases:["smiling_face_with_three_hearts"],tags:["love"],unicode_version:"11.0",ios_version:"12.1"},{emoji:"😍",description:"smiling face with heart-eyes",category:"Smileys & Emotion",aliases:["heart_eyes"],tags:["love","crush"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🤩",description:"star-struck",category:"Smileys & Emotion",aliases:["star_struck"],tags:["eyes"],unicode_version:"11.0",ios_version:"12.1"},{emoji:"😘",description:"face blowing a kiss",category:"Smileys & Emotion",aliases:["kissing_heart"],tags:["flirt"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"😗",description:"kissing face",category:"Smileys & Emotion",aliases:["kissing"],tags:[],unicode_version:"6.1",ios_version:"6.0"},{emoji:"☺️",description:"smiling face",category:"Smileys & Emotion",aliases:["relaxed"],tags:["blush","pleased"],unicode_version:"",ios_version:"6.0"},{emoji:"😚",description:"kissing face with closed eyes",category:"Smileys & Emotion",aliases:["kissing_closed_eyes"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"😙",description:"kissing face with smiling eyes",category:"Smileys & Emotion",aliases:["kissing_smiling_eyes"],tags:[],unicode_version:"6.1",ios_version:"6.0"},{emoji:"🥲",description:"smiling face with tear",category:"Smileys & Emotion",aliases:["smiling_face_with_tear"],tags:[],unicode_version:"13.0",ios_version:"14.0"},{emoji:"😋",description:"face savoring food",category:"Smileys & Emotion",aliases:["yum"],tags:["tongue","lick"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"😛",description:"face with tongue",category:"Smileys & Emotion",aliases:["stuck_out_tongue"],tags:[],unicode_version:"6.1",ios_version:"6.0"},{emoji:"😜",description:"winking face with tongue",category:"Smileys & Emotion",aliases:["stuck_out_tongue_winking_eye"],tags:["prank","silly"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🤪",description:"zany face",category:"Smileys & Emotion",aliases:["zany_face"],tags:["goofy","wacky"],unicode_version:"11.0",ios_version:"12.1"},{emoji:"😝",description:"squinting face with tongue",category:"Smileys & Emotion",aliases:["stuck_out_tongue_closed_eyes"],tags:["prank"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🤑",description:"money-mouth face",category:"Smileys & Emotion",aliases:["money_mouth_face"],tags:["rich"],unicode_version:"8.0",ios_version:"9.1"},{emoji:"🤗",description:"hugging face",category:"Smileys & Emotion",aliases:["hugs"],tags:[],unicode_version:"8.0",ios_version:"9.1"},{emoji:"🤭",description:"face with hand over mouth",category:"Smileys & Emotion",aliases:["hand_over_mouth"],tags:["quiet","whoops"],unicode_version:"11.0",ios_version:"12.1"},{emoji:"🤫",description:"shushing face",category:"Smileys & Emotion",aliases:["shushing_face"],tags:["silence","quiet"],unicode_version:"11.0",ios_version:"12.1"},{emoji:"🤔",description:"thinking face",category:"Smileys & Emotion",aliases:["thinking"],tags:[],unicode_version:"8.0",ios_version:"9.1"},{emoji:"🤐",description:"zipper-mouth face",category:"Smileys & Emotion",aliases:["zipper_mouth_face"],tags:["silence","hush"],unicode_version:"8.0",ios_version:"9.1"},{emoji:"🤨",description:"face with raised eyebrow",category:"Smileys & Emotion",aliases:["raised_eyebrow"],tags:["suspicious"],unicode_version:"11.0",ios_version:"12.1"},{emoji:"😐",description:"neutral face",category:"Smileys & Emotion",aliases:["neutral_face"],tags:["meh"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"😑",description:"expressionless face",category:"Smileys & Emotion",aliases:["expressionless"],tags:[],unicode_version:"6.1",ios_version:"6.0"},{emoji:"😶",description:"face without mouth",category:"Smileys & Emotion",aliases:["no_mouth"],tags:["mute","silence"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"😶🌫️",description:"face in clouds",category:"Smileys & Emotion",aliases:["face_in_clouds"],tags:[],unicode_version:"13.1",ios_version:"14.0"},{emoji:"😏",description:"smirking face",category:"Smileys & Emotion",aliases:["smirk"],tags:["smug"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"😒",description:"unamused face",category:"Smileys & Emotion",aliases:["unamused"],tags:["meh"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🙄",description:"face with rolling eyes",category:"Smileys & Emotion",aliases:["roll_eyes"],tags:[],unicode_version:"8.0",ios_version:"9.1"},{emoji:"😬",description:"grimacing face",category:"Smileys & Emotion",aliases:["grimacing"],tags:[],unicode_version:"6.1",ios_version:"6.0"},{emoji:"😮💨",description:"face exhaling",category:"Smileys & Emotion",aliases:["face_exhaling"],tags:[],unicode_version:"13.1",ios_version:"14.0"},{emoji:"🤥",description:"lying face",category:"Smileys & Emotion",aliases:["lying_face"],tags:["liar"],unicode_version:"9.0",ios_version:"10.2"},{emoji:"😌",description:"relieved face",category:"Smileys & Emotion",aliases:["relieved"],tags:["whew"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"😔",description:"pensive face",category:"Smileys & Emotion",aliases:["pensive"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"😪",description:"sleepy face",category:"Smileys & Emotion",aliases:["sleepy"],tags:["tired"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🤤",description:"drooling face",category:"Smileys & Emotion",aliases:["drooling_face"],tags:[],unicode_version:"9.0",ios_version:"10.2"},{emoji:"😴",description:"sleeping face",category:"Smileys & Emotion",aliases:["sleeping"],tags:["zzz"],unicode_version:"6.1",ios_version:"6.0"},{emoji:"😷",description:"face with medical mask",category:"Smileys & Emotion",aliases:["mask"],tags:["sick","ill"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🤒",description:"face with thermometer",category:"Smileys & Emotion",aliases:["face_with_thermometer"],tags:["sick"],unicode_version:"8.0",ios_version:"9.1"},{emoji:"🤕",description:"face with head-bandage",category:"Smileys & Emotion",aliases:["face_with_head_bandage"],tags:["hurt"],unicode_version:"8.0",ios_version:"9.1"},{emoji:"🤢",description:"nauseated face",category:"Smileys & Emotion",aliases:["nauseated_face"],tags:["sick","barf","disgusted"],unicode_version:"9.0",ios_version:"10.2"},{emoji:"🤮",description:"face vomiting",category:"Smileys & Emotion",aliases:["vomiting_face"],tags:["barf","sick"],unicode_version:"11.0",ios_version:"12.1"},{emoji:"🤧",description:"sneezing face",category:"Smileys & Emotion",aliases:["sneezing_face"],tags:["achoo","sick"],unicode_version:"9.0",ios_version:"10.2"},{emoji:"🥵",description:"hot face",category:"Smileys & Emotion",aliases:["hot_face"],tags:["heat","sweating"],unicode_version:"11.0",ios_version:"12.1"},{emoji:"🥶",description:"cold face",category:"Smileys & Emotion",aliases:["cold_face"],tags:["freezing","ice"],unicode_version:"11.0",ios_version:"12.1"},{emoji:"🥴",description:"woozy face",category:"Smileys & Emotion",aliases:["woozy_face"],tags:["groggy"],unicode_version:"11.0",ios_version:"12.1"},{emoji:"😵",description:"knocked-out face",category:"Smileys & Emotion",aliases:["dizzy_face"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"😵💫",description:"face with spiral eyes",category:"Smileys & Emotion",aliases:["face_with_spiral_eyes"],tags:[],unicode_version:"13.1",ios_version:"14.0"},{emoji:"🤯",description:"exploding head",category:"Smileys & Emotion",aliases:["exploding_head"],tags:["mind","blown"],unicode_version:"11.0",ios_version:"12.1"},{emoji:"🤠",description:"cowboy hat face",category:"Smileys & Emotion",aliases:["cowboy_hat_face"],tags:[],unicode_version:"9.0",ios_version:"10.2"},{emoji:"🥳",description:"partying face",category:"Smileys & Emotion",aliases:["partying_face"],tags:["celebration","birthday"],unicode_version:"11.0",ios_version:"12.1"},{emoji:"🥸",description:"disguised face",category:"Smileys & Emotion",aliases:["disguised_face"],tags:[],unicode_version:"13.0",ios_version:"14.0"},{emoji:"😎",description:"smiling face with sunglasses",category:"Smileys & Emotion",aliases:["sunglasses"],tags:["cool"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🤓",description:"nerd face",category:"Smileys & Emotion",aliases:["nerd_face"],tags:["geek","glasses"],unicode_version:"8.0",ios_version:"9.1"},{emoji:"🧐",description:"face with monocle",category:"Smileys & Emotion",aliases:["monocle_face"],tags:[],unicode_version:"11.0",ios_version:"12.1"},{emoji:"😕",description:"confused face",category:"Smileys & Emotion",aliases:["confused"],tags:[],unicode_version:"6.1",ios_version:"6.0"},{emoji:"😟",description:"worried face",category:"Smileys & Emotion",aliases:["worried"],tags:["nervous"],unicode_version:"6.1",ios_version:"6.0"},{emoji:"🙁",description:"slightly frowning face",category:"Smileys & Emotion",aliases:["slightly_frowning_face"],tags:[],unicode_version:"7.0",ios_version:"9.1"},{emoji:"☹️",description:"frowning face",category:"Smileys & Emotion",aliases:["frowning_face"],tags:[],unicode_version:"",ios_version:"9.1"},{emoji:"😮",description:"face with open mouth",category:"Smileys & Emotion",aliases:["open_mouth"],tags:["surprise","impressed","wow"],unicode_version:"6.1",ios_version:"6.0"},{emoji:"😯",description:"hushed face",category:"Smileys & Emotion",aliases:["hushed"],tags:["silence","speechless"],unicode_version:"6.1",ios_version:"6.0"},{emoji:"😲",description:"astonished face",category:"Smileys & Emotion",aliases:["astonished"],tags:["amazed","gasp"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"😳",description:"flushed face",category:"Smileys & Emotion",aliases:["flushed"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🥺",description:"pleading face",category:"Smileys & Emotion",aliases:["pleading_face"],tags:["puppy","eyes"],unicode_version:"11.0",ios_version:"12.1"},{emoji:"😦",description:"frowning face with open mouth",category:"Smileys & Emotion",aliases:["frowning"],tags:[],unicode_version:"6.1",ios_version:"6.0"},{emoji:"😧",description:"anguished face",category:"Smileys & Emotion",aliases:["anguished"],tags:["stunned"],unicode_version:"6.1",ios_version:"6.0"},{emoji:"😨",description:"fearful face",category:"Smileys & Emotion",aliases:["fearful"],tags:["scared","shocked","oops"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"😰",description:"anxious face with sweat",category:"Smileys & Emotion",aliases:["cold_sweat"],tags:["nervous"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"😥",description:"sad but relieved face",category:"Smileys & Emotion",aliases:["disappointed_relieved"],tags:["phew","sweat","nervous"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"😢",description:"crying face",category:"Smileys & Emotion",aliases:["cry"],tags:["sad","tear"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"😭",description:"loudly crying face",category:"Smileys & Emotion",aliases:["sob"],tags:["sad","cry","bawling"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"😱",description:"face screaming in fear",category:"Smileys & Emotion",aliases:["scream"],tags:["horror","shocked"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"😖",description:"confounded face",category:"Smileys & Emotion",aliases:["confounded"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"😣",description:"persevering face",category:"Smileys & Emotion",aliases:["persevere"],tags:["struggling"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"😞",description:"disappointed face",category:"Smileys & Emotion",aliases:["disappointed"],tags:["sad"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"😓",description:"downcast face with sweat",category:"Smileys & Emotion",aliases:["sweat"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"😩",description:"weary face",category:"Smileys & Emotion",aliases:["weary"],tags:["tired"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"😫",description:"tired face",category:"Smileys & Emotion",aliases:["tired_face"],tags:["upset","whine"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🥱",description:"yawning face",category:"Smileys & Emotion",aliases:["yawning_face"],tags:[],unicode_version:"12.0",ios_version:"13.0"},{emoji:"😤",description:"face with steam from nose",category:"Smileys & Emotion",aliases:["triumph"],tags:["smug"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"😡",description:"pouting face",category:"Smileys & Emotion",aliases:["rage","pout"],tags:["angry"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"😠",description:"angry face",category:"Smileys & Emotion",aliases:["angry"],tags:["mad","annoyed"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🤬",description:"face with symbols on mouth",category:"Smileys & Emotion",aliases:["cursing_face"],tags:["foul"],unicode_version:"11.0",ios_version:"12.1"},{emoji:"😈",description:"smiling face with horns",category:"Smileys & Emotion",aliases:["smiling_imp"],tags:["devil","evil","horns"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"👿",description:"angry face with horns",category:"Smileys & Emotion",aliases:["imp"],tags:["angry","devil","evil","horns"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"💀",description:"skull",category:"Smileys & Emotion",aliases:["skull"],tags:["dead","danger","poison"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"☠️",description:"skull and crossbones",category:"Smileys & Emotion",aliases:["skull_and_crossbones"],tags:["danger","pirate"],unicode_version:"",ios_version:"9.1"},{emoji:"💩",description:"pile of poo",category:"Smileys & Emotion",aliases:["hankey","poop","shit"],tags:["crap"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🤡",description:"clown face",category:"Smileys & Emotion",aliases:["clown_face"],tags:[],unicode_version:"9.0",ios_version:"10.2"},{emoji:"👹",description:"ogre",category:"Smileys & Emotion",aliases:["japanese_ogre"],tags:["monster"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"👺",description:"goblin",category:"Smileys & Emotion",aliases:["japanese_goblin"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"👻",description:"ghost",category:"Smileys & Emotion",aliases:["ghost"],tags:["halloween"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"👽",description:"alien",category:"Smileys & Emotion",aliases:["alien"],tags:["ufo"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"👾",description:"alien monster",category:"Smileys & Emotion",aliases:["space_invader"],tags:["game","retro"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🤖",description:"robot",category:"Smileys & Emotion",aliases:["robot"],tags:[],unicode_version:"8.0",ios_version:"9.1"},{emoji:"😺",description:"grinning cat",category:"Smileys & Emotion",aliases:["smiley_cat"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"😸",description:"grinning cat with smiling eyes",category:"Smileys & Emotion",aliases:["smile_cat"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"😹",description:"cat with tears of joy",category:"Smileys & Emotion",aliases:["joy_cat"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"😻",description:"smiling cat with heart-eyes",category:"Smileys & Emotion",aliases:["heart_eyes_cat"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"😼",description:"cat with wry smile",category:"Smileys & Emotion",aliases:["smirk_cat"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"😽",description:"kissing cat",category:"Smileys & Emotion",aliases:["kissing_cat"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🙀",description:"weary cat",category:"Smileys & Emotion",aliases:["scream_cat"],tags:["horror"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"😿",description:"crying cat",category:"Smileys & Emotion",aliases:["crying_cat_face"],tags:["sad","tear"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"😾",description:"pouting cat",category:"Smileys & Emotion",aliases:["pouting_cat"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🙈",description:"see-no-evil monkey",category:"Smileys & Emotion",aliases:["see_no_evil"],tags:["monkey","blind","ignore"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🙉",description:"hear-no-evil monkey",category:"Smileys & Emotion",aliases:["hear_no_evil"],tags:["monkey","deaf"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🙊",description:"speak-no-evil monkey",category:"Smileys & Emotion",aliases:["speak_no_evil"],tags:["monkey","mute","hush"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"💋",description:"kiss mark",category:"Smileys & Emotion",aliases:["kiss"],tags:["lipstick"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"💌",description:"love letter",category:"Smileys & Emotion",aliases:["love_letter"],tags:["email","envelope"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"💘",description:"heart with arrow",category:"Smileys & Emotion",aliases:["cupid"],tags:["love","heart"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"💝",description:"heart with ribbon",category:"Smileys & Emotion",aliases:["gift_heart"],tags:["chocolates"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"💖",description:"sparkling heart",category:"Smileys & Emotion",aliases:["sparkling_heart"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"💗",description:"growing heart",category:"Smileys & Emotion",aliases:["heartpulse"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"💓",description:"beating heart",category:"Smileys & Emotion",aliases:["heartbeat"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"💞",description:"revolving hearts",category:"Smileys & Emotion",aliases:["revolving_hearts"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"💕",description:"two hearts",category:"Smileys & Emotion",aliases:["two_hearts"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"💟",description:"heart decoration",category:"Smileys & Emotion",aliases:["heart_decoration"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"❣️",description:"heart exclamation",category:"Smileys & Emotion",aliases:["heavy_heart_exclamation"],tags:[],unicode_version:"",ios_version:"9.1"},{emoji:"💔",description:"broken heart",category:"Smileys & Emotion",aliases:["broken_heart"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"❤️🔥",description:"heart on fire",category:"Smileys & Emotion",aliases:["heart_on_fire"],tags:[],unicode_version:"13.1",ios_version:"14.0"},{emoji:"❤️🩹",description:"mending heart",category:"Smileys & Emotion",aliases:["mending_heart"],tags:[],unicode_version:"13.1",ios_version:"14.0"},{emoji:"❤️",description:"red heart",category:"Smileys & Emotion",aliases:["heart"],tags:["love"],unicode_version:"",ios_version:"6.0"},{emoji:"🧡",description:"orange heart",category:"Smileys & Emotion",aliases:["orange_heart"],tags:[],unicode_version:"11.0",ios_version:"12.1"},{emoji:"💛",description:"yellow heart",category:"Smileys & Emotion",aliases:["yellow_heart"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"💚",description:"green heart",category:"Smileys & Emotion",aliases:["green_heart"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"💙",description:"blue heart",category:"Smileys & Emotion",aliases:["blue_heart"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"💜",description:"purple heart",category:"Smileys & Emotion",aliases:["purple_heart"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🤎",description:"brown heart",category:"Smileys & Emotion",aliases:["brown_heart"],tags:[],unicode_version:"12.0",ios_version:"13.0"},{emoji:"🖤",description:"black heart",category:"Smileys & Emotion",aliases:["black_heart"],tags:[],unicode_version:"9.0",ios_version:"10.2"},{emoji:"🤍",description:"white heart",category:"Smileys & Emotion",aliases:["white_heart"],tags:[],unicode_version:"12.0",ios_version:"13.0"},{emoji:"💯",description:"hundred points",category:"Smileys & Emotion",aliases:["100"],tags:["score","perfect"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"💢",description:"anger symbol",category:"Smileys & Emotion",aliases:["anger"],tags:["angry"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"💥",description:"collision",category:"Smileys & Emotion",aliases:["boom","collision"],tags:["explode"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"💫",description:"dizzy",category:"Smileys & Emotion",aliases:["dizzy"],tags:["star"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"💦",description:"sweat droplets",category:"Smileys & Emotion",aliases:["sweat_drops"],tags:["water","workout"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"💨",description:"dashing away",category:"Smileys & Emotion",aliases:["dash"],tags:["wind","blow","fast"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🕳️",description:"hole",category:"Smileys & Emotion",aliases:["hole"],tags:[],unicode_version:"7.0",ios_version:"9.1"},{emoji:"💣",description:"bomb",category:"Smileys & Emotion",aliases:["bomb"],tags:["boom"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"💬",description:"speech balloon",category:"Smileys & Emotion",aliases:["speech_balloon"],tags:["comment"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"👁️🗨️",description:"eye in speech bubble",category:"Smileys & Emotion",aliases:["eye_speech_bubble"],tags:[],unicode_version:"11.0",ios_version:"12.1"},{emoji:"🗨️",description:"left speech bubble",category:"Smileys & Emotion",aliases:["left_speech_bubble"],tags:[],unicode_version:"11.0",ios_version:"12.1"},{emoji:"🗯️",description:"right anger bubble",category:"Smileys & Emotion",aliases:["right_anger_bubble"],tags:[],unicode_version:"7.0",ios_version:"9.1"},{emoji:"💭",description:"thought balloon",category:"Smileys & Emotion",aliases:["thought_balloon"],tags:["thinking"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"💤",description:"zzz",category:"Smileys & Emotion",aliases:["zzz"],tags:["sleeping"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"👋",description:"waving hand",category:"People & Body",aliases:["wave"],tags:["goodbye"],unicode_version:"6.0",ios_version:"6.0",skin_tones:!0},{emoji:"🤚",description:"raised back of hand",category:"People & Body",aliases:["raised_back_of_hand"],tags:[],unicode_version:"9.0",ios_version:"10.2",skin_tones:!0},{emoji:"🖐️",description:"hand with fingers splayed",category:"People & Body",aliases:["raised_hand_with_fingers_splayed"],tags:[],unicode_version:"7.0",ios_version:"9.1",skin_tones:!0},{emoji:"✋",description:"raised hand",category:"People & Body",aliases:["hand","raised_hand"],tags:["highfive","stop"],unicode_version:"6.0",ios_version:"6.0",skin_tones:!0},{emoji:"🖖",description:"vulcan salute",category:"People & Body",aliases:["vulcan_salute"],tags:["prosper","spock"],unicode_version:"7.0",ios_version:"8.3",skin_tones:!0},{emoji:"👌",description:"OK hand",category:"People & Body",aliases:["ok_hand"],tags:[],unicode_version:"6.0",ios_version:"6.0",skin_tones:!0},{emoji:"🤌",description:"pinched fingers",category:"People & Body",aliases:["pinched_fingers"],tags:[],unicode_version:"13.0",ios_version:"14.0",skin_tones:!0},{emoji:"🤏",description:"pinching hand",category:"People & Body",aliases:["pinching_hand"],tags:[],unicode_version:"12.0",ios_version:"13.0",skin_tones:!0},{emoji:"✌️",description:"victory hand",category:"People & Body",aliases:["v"],tags:["victory","peace"],unicode_version:"",ios_version:"6.0",skin_tones:!0},{emoji:"🤞",description:"crossed fingers",category:"People & Body",aliases:["crossed_fingers"],tags:["luck","hopeful"],unicode_version:"9.0",ios_version:"10.2",skin_tones:!0},{emoji:"🤟",description:"love-you gesture",category:"People & Body",aliases:["love_you_gesture"],tags:[],unicode_version:"11.0",ios_version:"12.1",skin_tones:!0},{emoji:"🤘",description:"sign of the horns",category:"People & Body",aliases:["metal"],tags:[],unicode_version:"8.0",ios_version:"9.1",skin_tones:!0},{emoji:"🤙",description:"call me hand",category:"People & Body",aliases:["call_me_hand"],tags:[],unicode_version:"9.0",ios_version:"10.2",skin_tones:!0},{emoji:"👈",description:"backhand index pointing left",category:"People & Body",aliases:["point_left"],tags:[],unicode_version:"6.0",ios_version:"6.0",skin_tones:!0},{emoji:"👉",description:"backhand index pointing right",category:"People & Body",aliases:["point_right"],tags:[],unicode_version:"6.0",ios_version:"6.0",skin_tones:!0},{emoji:"👆",description:"backhand index pointing up",category:"People & Body",aliases:["point_up_2"],tags:[],unicode_version:"6.0",ios_version:"6.0",skin_tones:!0},{emoji:"🖕",description:"middle finger",category:"People & Body",aliases:["middle_finger","fu"],tags:[],unicode_version:"7.0",ios_version:"9.1",skin_tones:!0},{emoji:"👇",description:"backhand index pointing down",category:"People & Body",aliases:["point_down"],tags:[],unicode_version:"6.0",ios_version:"6.0",skin_tones:!0},{emoji:"☝️",description:"index pointing up",category:"People & Body",aliases:["point_up"],tags:[],unicode_version:"",ios_version:"6.0",skin_tones:!0},{emoji:"👍",description:"thumbs up",category:"People & Body",aliases:["+1","thumbsup"],tags:["approve","ok"],unicode_version:"6.0",ios_version:"6.0",skin_tones:!0},{emoji:"👎",description:"thumbs down",category:"People & Body",aliases:["-1","thumbsdown"],tags:["disapprove","bury"],unicode_version:"6.0",ios_version:"6.0",skin_tones:!0},{emoji:"✊",description:"raised fist",category:"People & Body",aliases:["fist_raised","fist"],tags:["power"],unicode_version:"6.0",ios_version:"6.0",skin_tones:!0},{emoji:"👊",description:"oncoming fist",category:"People & Body",aliases:["fist_oncoming","facepunch","punch"],tags:["attack"],unicode_version:"6.0",ios_version:"6.0",skin_tones:!0},{emoji:"🤛",description:"left-facing fist",category:"People & Body",aliases:["fist_left"],tags:[],unicode_version:"9.0",ios_version:"10.2",skin_tones:!0},{emoji:"🤜",description:"right-facing fist",category:"People & Body",aliases:["fist_right"],tags:[],unicode_version:"9.0",ios_version:"10.2",skin_tones:!0},{emoji:"👏",description:"clapping hands",category:"People & Body",aliases:["clap"],tags:["praise","applause"],unicode_version:"6.0",ios_version:"6.0",skin_tones:!0},{emoji:"🙌",description:"raising hands",category:"People & Body",aliases:["raised_hands"],tags:["hooray"],unicode_version:"6.0",ios_version:"6.0",skin_tones:!0},{emoji:"👐",description:"open hands",category:"People & Body",aliases:["open_hands"],tags:[],unicode_version:"6.0",ios_version:"6.0",skin_tones:!0},{emoji:"🤲",description:"palms up together",category:"People & Body",aliases:["palms_up_together"],tags:[],unicode_version:"11.0",ios_version:"12.1",skin_tones:!0},{emoji:"🤝",description:"handshake",category:"People & Body",aliases:["handshake"],tags:["deal"],unicode_version:"9.0",ios_version:"10.2"},{emoji:"🙏",description:"folded hands",category:"People & Body",aliases:["pray"],tags:["please","hope","wish"],unicode_version:"6.0",ios_version:"6.0",skin_tones:!0},{emoji:"✍️",description:"writing hand",category:"People & Body",aliases:["writing_hand"],tags:[],unicode_version:"",ios_version:"9.1",skin_tones:!0},{emoji:"💅",description:"nail polish",category:"People & Body",aliases:["nail_care"],tags:["beauty","manicure"],unicode_version:"6.0",ios_version:"6.0",skin_tones:!0},{emoji:"🤳",description:"selfie",category:"People & Body",aliases:["selfie"],tags:[],unicode_version:"9.0",ios_version:"10.2",skin_tones:!0},{emoji:"💪",description:"flexed biceps",category:"People & Body",aliases:["muscle"],tags:["flex","bicep","strong","workout"],unicode_version:"6.0",ios_version:"6.0",skin_tones:!0},{emoji:"🦾",description:"mechanical arm",category:"People & Body",aliases:["mechanical_arm"],tags:[],unicode_version:"12.0",ios_version:"13.0"},{emoji:"🦿",description:"mechanical leg",category:"People & Body",aliases:["mechanical_leg"],tags:[],unicode_version:"12.0",ios_version:"13.0"},{emoji:"🦵",description:"leg",category:"People & Body",aliases:["leg"],tags:[],unicode_version:"11.0",ios_version:"12.1",skin_tones:!0},{emoji:"🦶",description:"foot",category:"People & Body",aliases:["foot"],tags:[],unicode_version:"11.0",ios_version:"12.1",skin_tones:!0},{emoji:"👂",description:"ear",category:"People & Body",aliases:["ear"],tags:["hear","sound","listen"],unicode_version:"6.0",ios_version:"6.0",skin_tones:!0},{emoji:"🦻",description:"ear with hearing aid",category:"People & Body",aliases:["ear_with_hearing_aid"],tags:[],unicode_version:"12.0",ios_version:"13.0",skin_tones:!0},{emoji:"👃",description:"nose",category:"People & Body",aliases:["nose"],tags:["smell"],unicode_version:"6.0",ios_version:"6.0",skin_tones:!0},{emoji:"🧠",description:"brain",category:"People & Body",aliases:["brain"],tags:[],unicode_version:"11.0",ios_version:"12.1"},{emoji:"🫀",description:"anatomical heart",category:"People & Body",aliases:["anatomical_heart"],tags:[],unicode_version:"13.0",ios_version:"14.0"},{emoji:"🫁",description:"lungs",category:"People & Body",aliases:["lungs"],tags:[],unicode_version:"13.0",ios_version:"14.0"},{emoji:"🦷",description:"tooth",category:"People & Body",aliases:["tooth"],tags:[],unicode_version:"11.0",ios_version:"12.1"},{emoji:"🦴",description:"bone",category:"People & Body",aliases:["bone"],tags:[],unicode_version:"11.0",ios_version:"12.1"},{emoji:"👀",description:"eyes",category:"People & Body",aliases:["eyes"],tags:["look","see","watch"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"👁️",description:"eye",category:"People & Body",aliases:["eye"],tags:[],unicode_version:"7.0",ios_version:"9.1"},{emoji:"👅",description:"tongue",category:"People & Body",aliases:["tongue"],tags:["taste"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"👄",description:"mouth",category:"People & Body",aliases:["lips"],tags:["kiss"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"👶",description:"baby",category:"People & Body",aliases:["baby"],tags:["child","newborn"],unicode_version:"6.0",ios_version:"6.0",skin_tones:!0},{emoji:"🧒",description:"child",category:"People & Body",aliases:["child"],tags:[],unicode_version:"11.0",ios_version:"12.1",skin_tones:!0},{emoji:"👦",description:"boy",category:"People & Body",aliases:["boy"],tags:["child"],unicode_version:"6.0",ios_version:"6.0",skin_tones:!0},{emoji:"👧",description:"girl",category:"People & Body",aliases:["girl"],tags:["child"],unicode_version:"6.0",ios_version:"6.0",skin_tones:!0},{emoji:"🧑",description:"person",category:"People & Body",aliases:["adult"],tags:[],unicode_version:"11.0",ios_version:"12.1",skin_tones:!0},{emoji:"👱",description:"person: blond hair",category:"People & Body",aliases:["blond_haired_person"],tags:[],unicode_version:"6.0",ios_version:"6.0",skin_tones:!0},{emoji:"👨",description:"man",category:"People & Body",aliases:["man"],tags:["mustache","father","dad"],unicode_version:"6.0",ios_version:"6.0",skin_tones:!0},{emoji:"🧔",description:"person: beard",category:"People & Body",aliases:["bearded_person"],tags:[],unicode_version:"11.0",ios_version:"12.1",skin_tones:!0},{emoji:"🧔♂️",description:"man: beard",category:"People & Body",aliases:["man_beard"],tags:[],unicode_version:"13.1",ios_version:"14.0",skin_tones:!0},{emoji:"🧔♀️",description:"woman: beard",category:"People & Body",aliases:["woman_beard"],tags:[],unicode_version:"13.1",ios_version:"14.0",skin_tones:!0},{emoji:"👨🦰",description:"man: red hair",category:"People & Body",aliases:["red_haired_man"],tags:[],unicode_version:"11.0",ios_version:"12.1",skin_tones:!0},{emoji:"👨🦱",description:"man: curly hair",category:"People & Body",aliases:["curly_haired_man"],tags:[],unicode_version:"11.0",ios_version:"12.1",skin_tones:!0},{emoji:"👨🦳",description:"man: white hair",category:"People & Body",aliases:["white_haired_man"],tags:[],unicode_version:"11.0",ios_version:"12.1",skin_tones:!0},{emoji:"👨🦲",description:"man: bald",category:"People & Body",aliases:["bald_man"],tags:[],unicode_version:"11.0",ios_version:"12.1",skin_tones:!0},{emoji:"👩",description:"woman",category:"People & Body",aliases:["woman"],tags:["girls"],unicode_version:"6.0",ios_version:"6.0",skin_tones:!0},{emoji:"👩🦰",description:"woman: red hair",category:"People & Body",aliases:["red_haired_woman"],tags:[],unicode_version:"11.0",ios_version:"12.1",skin_tones:!0},{emoji:"🧑🦰",description:"person: red hair",category:"People & Body",aliases:["person_red_hair"],tags:[],unicode_version:"12.1",ios_version:"13.2",skin_tones:!0},{emoji:"👩🦱",description:"woman: curly hair",category:"People & Body",aliases:["curly_haired_woman"],tags:[],unicode_version:"11.0",ios_version:"12.1",skin_tones:!0},{emoji:"🧑🦱",description:"person: curly hair",category:"People & Body",aliases:["person_curly_hair"],tags:[],unicode_version:"12.1",ios_version:"13.2",skin_tones:!0},{emoji:"👩🦳",description:"woman: white hair",category:"People & Body",aliases:["white_haired_woman"],tags:[],unicode_version:"11.0",ios_version:"12.1",skin_tones:!0},{emoji:"🧑🦳",description:"person: white hair",category:"People & Body",aliases:["person_white_hair"],tags:[],unicode_version:"12.1",ios_version:"13.2",skin_tones:!0},{emoji:"👩🦲",description:"woman: bald",category:"People & Body",aliases:["bald_woman"],tags:[],unicode_version:"11.0",ios_version:"12.1",skin_tones:!0},{emoji:"🧑🦲",description:"person: bald",category:"People & Body",aliases:["person_bald"],tags:[],unicode_version:"12.1",ios_version:"13.2",skin_tones:!0},{emoji:"👱♀️",description:"woman: blond hair",category:"People & Body",aliases:["blond_haired_woman","blonde_woman"],tags:[],unicode_version:"6.0",ios_version:"10.0",skin_tones:!0},{emoji:"👱♂️",description:"man: blond hair",category:"People & Body",aliases:["blond_haired_man"],tags:[],unicode_version:"11.0",ios_version:"12.1",skin_tones:!0},{emoji:"🧓",description:"older person",category:"People & Body",aliases:["older_adult"],tags:[],unicode_version:"11.0",ios_version:"12.1",skin_tones:!0},{emoji:"👴",description:"old man",category:"People & Body",aliases:["older_man"],tags:[],unicode_version:"6.0",ios_version:"6.0",skin_tones:!0},{emoji:"👵",description:"old woman",category:"People & Body",aliases:["older_woman"],tags:[],unicode_version:"6.0",ios_version:"6.0",skin_tones:!0},{emoji:"🙍",description:"person frowning",category:"People & Body",aliases:["frowning_person"],tags:[],unicode_version:"6.0",ios_version:"6.0",skin_tones:!0},{emoji:"🙍♂️",description:"man frowning",category:"People & Body",aliases:["frowning_man"],tags:[],unicode_version:"6.0",ios_version:"10.0",skin_tones:!0},{emoji:"🙍♀️",description:"woman frowning",category:"People & Body",aliases:["frowning_woman"],tags:[],unicode_version:"11.0",ios_version:"12.1",skin_tones:!0},{emoji:"🙎",description:"person pouting",category:"People & Body",aliases:["pouting_face"],tags:[],unicode_version:"6.0",ios_version:"6.0",skin_tones:!0},{emoji:"🙎♂️",description:"man pouting",category:"People & Body",aliases:["pouting_man"],tags:[],unicode_version:"6.0",ios_version:"10.0",skin_tones:!0},{emoji:"🙎♀️",description:"woman pouting",category:"People & Body",aliases:["pouting_woman"],tags:[],unicode_version:"11.0",ios_version:"12.1",skin_tones:!0},{emoji:"🙅",description:"person gesturing NO",category:"People & Body",aliases:["no_good"],tags:["stop","halt","denied"],unicode_version:"6.0",ios_version:"6.0",skin_tones:!0},{emoji:"🙅♂️",description:"man gesturing NO",category:"People & Body",aliases:["no_good_man","ng_man"],tags:["stop","halt","denied"],unicode_version:"6.0",ios_version:"10.0",skin_tones:!0},{emoji:"🙅♀️",description:"woman gesturing NO",category:"People & Body",aliases:["no_good_woman","ng_woman"],tags:["stop","halt","denied"],unicode_version:"11.0",ios_version:"12.1",skin_tones:!0},{emoji:"🙆",description:"person gesturing OK",category:"People & Body",aliases:["ok_person"],tags:[],unicode_version:"6.0",ios_version:"6.0",skin_tones:!0},{emoji:"🙆♂️",description:"man gesturing OK",category:"People & Body",aliases:["ok_man"],tags:[],unicode_version:"6.0",ios_version:"10.0",skin_tones:!0},{emoji:"🙆♀️",description:"woman gesturing OK",category:"People & Body",aliases:["ok_woman"],tags:[],unicode_version:"11.0",ios_version:"12.1",skin_tones:!0},{emoji:"💁",description:"person tipping hand",category:"People & Body",aliases:["tipping_hand_person","information_desk_person"],tags:[],unicode_version:"6.0",ios_version:"6.0",skin_tones:!0},{emoji:"💁♂️",description:"man tipping hand",category:"People & Body",aliases:["tipping_hand_man","sassy_man"],tags:["information"],unicode_version:"6.0",ios_version:"10.0",skin_tones:!0},{emoji:"💁♀️",description:"woman tipping hand",category:"People & Body",aliases:["tipping_hand_woman","sassy_woman"],tags:["information"],unicode_version:"11.0",ios_version:"12.1",skin_tones:!0},{emoji:"🙋",description:"person raising hand",category:"People & Body",aliases:["raising_hand"],tags:[],unicode_version:"6.0",ios_version:"6.0",skin_tones:!0},{emoji:"🙋♂️",description:"man raising hand",category:"People & Body",aliases:["raising_hand_man"],tags:[],unicode_version:"6.0",ios_version:"10.0",skin_tones:!0},{emoji:"🙋♀️",description:"woman raising hand",category:"People & Body",aliases:["raising_hand_woman"],tags:[],unicode_version:"11.0",ios_version:"12.1",skin_tones:!0},{emoji:"🧏",description:"deaf person",category:"People & Body",aliases:["deaf_person"],tags:[],unicode_version:"12.0",ios_version:"13.0",skin_tones:!0},{emoji:"🧏♂️",description:"deaf man",category:"People & Body",aliases:["deaf_man"],tags:[],unicode_version:"12.0",ios_version:"13.0",skin_tones:!0},{emoji:"🧏♀️",description:"deaf woman",category:"People & Body",aliases:["deaf_woman"],tags:[],unicode_version:"12.0",ios_version:"13.0",skin_tones:!0},{emoji:"🙇",description:"person bowing",category:"People & Body",aliases:["bow"],tags:["respect","thanks"],unicode_version:"6.0",ios_version:"6.0",skin_tones:!0},{emoji:"🙇♂️",description:"man bowing",category:"People & Body",aliases:["bowing_man"],tags:["respect","thanks"],unicode_version:"11.0",ios_version:"12.1",skin_tones:!0},{emoji:"🙇♀️",description:"woman bowing",category:"People & Body",aliases:["bowing_woman"],tags:["respect","thanks"],unicode_version:"6.0",ios_version:"10.0",skin_tones:!0},{emoji:"🤦",description:"person facepalming",category:"People & Body",aliases:["facepalm"],tags:[],unicode_version:"11.0",ios_version:"12.1",skin_tones:!0},{emoji:"🤦♂️",description:"man facepalming",category:"People & Body",aliases:["man_facepalming"],tags:[],unicode_version:"9.0",ios_version:"10.2",skin_tones:!0},{emoji:"🤦♀️",description:"woman facepalming",category:"People & Body",aliases:["woman_facepalming"],tags:[],unicode_version:"9.0",ios_version:"10.2",skin_tones:!0},{emoji:"🤷",description:"person shrugging",category:"People & Body",aliases:["shrug"],tags:[],unicode_version:"11.0",ios_version:"12.1",skin_tones:!0},{emoji:"🤷♂️",description:"man shrugging",category:"People & Body",aliases:["man_shrugging"],tags:[],unicode_version:"9.0",ios_version:"10.2",skin_tones:!0},{emoji:"🤷♀️",description:"woman shrugging",category:"People & Body",aliases:["woman_shrugging"],tags:[],unicode_version:"9.0",ios_version:"10.2",skin_tones:!0},{emoji:"🧑⚕️",description:"health worker",category:"People & Body",aliases:["health_worker"],tags:[],unicode_version:"12.1",ios_version:"13.2",skin_tones:!0},{emoji:"👨⚕️",description:"man health worker",category:"People & Body",aliases:["man_health_worker"],tags:["doctor","nurse"],unicode_version:"",ios_version:"10.2",skin_tones:!0},{emoji:"👩⚕️",description:"woman health worker",category:"People & Body",aliases:["woman_health_worker"],tags:["doctor","nurse"],unicode_version:"",ios_version:"10.2",skin_tones:!0},{emoji:"🧑🎓",description:"student",category:"People & Body",aliases:["student"],tags:[],unicode_version:"12.1",ios_version:"13.2",skin_tones:!0},{emoji:"👨🎓",description:"man student",category:"People & Body",aliases:["man_student"],tags:["graduation"],unicode_version:"",ios_version:"10.2",skin_tones:!0},{emoji:"👩🎓",description:"woman student",category:"People & Body",aliases:["woman_student"],tags:["graduation"],unicode_version:"",ios_version:"10.2",skin_tones:!0},{emoji:"🧑🏫",description:"teacher",category:"People & Body",aliases:["teacher"],tags:[],unicode_version:"12.1",ios_version:"13.2",skin_tones:!0},{emoji:"👨🏫",description:"man teacher",category:"People & Body",aliases:["man_teacher"],tags:["school","professor"],unicode_version:"",ios_version:"10.2",skin_tones:!0},{emoji:"👩🏫",description:"woman teacher",category:"People & Body",aliases:["woman_teacher"],tags:["school","professor"],unicode_version:"",ios_version:"10.2",skin_tones:!0},{emoji:"🧑⚖️",description:"judge",category:"People & Body",aliases:["judge"],tags:[],unicode_version:"12.1",ios_version:"13.2",skin_tones:!0},{emoji:"👨⚖️",description:"man judge",category:"People & Body",aliases:["man_judge"],tags:["justice"],unicode_version:"",ios_version:"10.2",skin_tones:!0},{emoji:"👩⚖️",description:"woman judge",category:"People & Body",aliases:["woman_judge"],tags:["justice"],unicode_version:"",ios_version:"10.2",skin_tones:!0},{emoji:"🧑🌾",description:"farmer",category:"People & Body",aliases:["farmer"],tags:[],unicode_version:"12.1",ios_version:"13.2",skin_tones:!0},{emoji:"👨🌾",description:"man farmer",category:"People & Body",aliases:["man_farmer"],tags:[],unicode_version:"",ios_version:"10.2",skin_tones:!0},{emoji:"👩🌾",description:"woman farmer",category:"People & Body",aliases:["woman_farmer"],tags:[],unicode_version:"",ios_version:"10.2",skin_tones:!0},{emoji:"🧑🍳",description:"cook",category:"People & Body",aliases:["cook"],tags:[],unicode_version:"12.1",ios_version:"13.2",skin_tones:!0},{emoji:"👨🍳",description:"man cook",category:"People & Body",aliases:["man_cook"],tags:["chef"],unicode_version:"",ios_version:"10.2",skin_tones:!0},{emoji:"👩🍳",description:"woman cook",category:"People & Body",aliases:["woman_cook"],tags:["chef"],unicode_version:"",ios_version:"10.2",skin_tones:!0},{emoji:"🧑🔧",description:"mechanic",category:"People & Body",aliases:["mechanic"],tags:[],unicode_version:"12.1",ios_version:"13.2",skin_tones:!0},{emoji:"👨🔧",description:"man mechanic",category:"People & Body",aliases:["man_mechanic"],tags:[],unicode_version:"",ios_version:"10.2",skin_tones:!0},{emoji:"👩🔧",description:"woman mechanic",category:"People & Body",aliases:["woman_mechanic"],tags:[],unicode_version:"",ios_version:"10.2",skin_tones:!0},{emoji:"🧑🏭",description:"factory worker",category:"People & Body",aliases:["factory_worker"],tags:[],unicode_version:"12.1",ios_version:"13.2",skin_tones:!0},{emoji:"👨🏭",description:"man factory worker",category:"People & Body",aliases:["man_factory_worker"],tags:[],unicode_version:"",ios_version:"10.2",skin_tones:!0},{emoji:"👩🏭",description:"woman factory worker",category:"People & Body",aliases:["woman_factory_worker"],tags:[],unicode_version:"",ios_version:"10.2",skin_tones:!0},{emoji:"🧑💼",description:"office worker",category:"People & Body",aliases:["office_worker"],tags:[],unicode_version:"12.1",ios_version:"13.2",skin_tones:!0},{emoji:"👨💼",description:"man office worker",category:"People & Body",aliases:["man_office_worker"],tags:["business"],unicode_version:"",ios_version:"10.2",skin_tones:!0},{emoji:"👩💼",description:"woman office worker",category:"People & Body",aliases:["woman_office_worker"],tags:["business"],unicode_version:"",ios_version:"10.2",skin_tones:!0},{emoji:"🧑🔬",description:"scientist",category:"People & Body",aliases:["scientist"],tags:[],unicode_version:"12.1",ios_version:"13.2",skin_tones:!0},{emoji:"👨🔬",description:"man scientist",category:"People & Body",aliases:["man_scientist"],tags:["research"],unicode_version:"",ios_version:"10.2",skin_tones:!0},{emoji:"👩🔬",description:"woman scientist",category:"People & Body",aliases:["woman_scientist"],tags:["research"],unicode_version:"",ios_version:"10.2",skin_tones:!0},{emoji:"🧑💻",description:"technologist",category:"People & Body",aliases:["technologist"],tags:[],unicode_version:"12.1",ios_version:"13.2",skin_tones:!0},{emoji:"👨💻",description:"man technologist",category:"People & Body",aliases:["man_technologist"],tags:["coder"],unicode_version:"",ios_version:"10.2",skin_tones:!0},{emoji:"👩💻",description:"woman technologist",category:"People & Body",aliases:["woman_technologist"],tags:["coder"],unicode_version:"",ios_version:"10.2",skin_tones:!0},{emoji:"🧑🎤",description:"singer",category:"People & Body",aliases:["singer"],tags:[],unicode_version:"12.1",ios_version:"13.2",skin_tones:!0},{emoji:"👨🎤",description:"man singer",category:"People & Body",aliases:["man_singer"],tags:["rockstar"],unicode_version:"",ios_version:"10.2",skin_tones:!0},{emoji:"👩🎤",description:"woman singer",category:"People & Body",aliases:["woman_singer"],tags:["rockstar"],unicode_version:"",ios_version:"10.2",skin_tones:!0},{emoji:"🧑🎨",description:"artist",category:"People & Body",aliases:["artist"],tags:[],unicode_version:"12.1",ios_version:"13.2",skin_tones:!0},{emoji:"👨🎨",description:"man artist",category:"People & Body",aliases:["man_artist"],tags:["painter"],unicode_version:"",ios_version:"10.2",skin_tones:!0},{emoji:"👩🎨",description:"woman artist",category:"People & Body",aliases:["woman_artist"],tags:["painter"],unicode_version:"",ios_version:"10.2",skin_tones:!0},{emoji:"🧑✈️",description:"pilot",category:"People & Body",aliases:["pilot"],tags:[],unicode_version:"12.1",ios_version:"13.2",skin_tones:!0},{emoji:"👨✈️",description:"man pilot",category:"People & Body",aliases:["man_pilot"],tags:[],unicode_version:"",ios_version:"10.2",skin_tones:!0},{emoji:"👩✈️",description:"woman pilot",category:"People & Body",aliases:["woman_pilot"],tags:[],unicode_version:"",ios_version:"10.2",skin_tones:!0},{emoji:"🧑🚀",description:"astronaut",category:"People & Body",aliases:["astronaut"],tags:[],unicode_version:"12.1",ios_version:"13.2",skin_tones:!0},{emoji:"👨🚀",description:"man astronaut",category:"People & Body",aliases:["man_astronaut"],tags:["space"],unicode_version:"",ios_version:"10.2",skin_tones:!0},{emoji:"👩🚀",description:"woman astronaut",category:"People & Body",aliases:["woman_astronaut"],tags:["space"],unicode_version:"",ios_version:"10.2",skin_tones:!0},{emoji:"🧑🚒",description:"firefighter",category:"People & Body",aliases:["firefighter"],tags:[],unicode_version:"12.1",ios_version:"13.2",skin_tones:!0},{emoji:"👨🚒",description:"man firefighter",category:"People & Body",aliases:["man_firefighter"],tags:[],unicode_version:"",ios_version:"10.2",skin_tones:!0},{emoji:"👩🚒",description:"woman firefighter",category:"People & Body",aliases:["woman_firefighter"],tags:[],unicode_version:"",ios_version:"10.2",skin_tones:!0},{emoji:"👮",description:"police officer",category:"People & Body",aliases:["police_officer","cop"],tags:["law"],unicode_version:"6.0",ios_version:"6.0",skin_tones:!0},{emoji:"👮♂️",description:"man police officer",category:"People & Body",aliases:["policeman"],tags:["law","cop"],unicode_version:"11.0",ios_version:"12.1",skin_tones:!0},{emoji:"👮♀️",description:"woman police officer",category:"People & Body",aliases:["policewoman"],tags:["law","cop"],unicode_version:"6.0",ios_version:"10.0",skin_tones:!0},{emoji:"🕵️",description:"detective",category:"People & Body",aliases:["detective"],tags:["sleuth"],unicode_version:"7.0",ios_version:"9.1",skin_tones:!0},{emoji:"🕵️♂️",description:"man detective",category:"People & Body",aliases:["male_detective"],tags:["sleuth"],unicode_version:"11.0",ios_version:"12.1",skin_tones:!0},{emoji:"🕵️♀️",description:"woman detective",category:"People & Body",aliases:["female_detective"],tags:["sleuth"],unicode_version:"6.0",ios_version:"10.0",skin_tones:!0},{emoji:"💂",description:"guard",category:"People & Body",aliases:["guard"],tags:[],unicode_version:"6.0",ios_version:"6.0",skin_tones:!0},{emoji:"💂♂️",description:"man guard",category:"People & Body",aliases:["guardsman"],tags:[],unicode_version:"11.0",ios_version:"12.1",skin_tones:!0},{emoji:"💂♀️",description:"woman guard",category:"People & Body",aliases:["guardswoman"],tags:[],unicode_version:"6.0",ios_version:"10.0",skin_tones:!0},{emoji:"🥷",description:"ninja",category:"People & Body",aliases:["ninja"],tags:[],unicode_version:"13.0",ios_version:"14.0",skin_tones:!0},{emoji:"👷",description:"construction worker",category:"People & Body",aliases:["construction_worker"],tags:["helmet"],unicode_version:"6.0",ios_version:"6.0",skin_tones:!0},{emoji:"👷♂️",description:"man construction worker",category:"People & Body",aliases:["construction_worker_man"],tags:["helmet"],unicode_version:"11.0",ios_version:"12.1",skin_tones:!0},{emoji:"👷♀️",description:"woman construction worker",category:"People & Body",aliases:["construction_worker_woman"],tags:["helmet"],unicode_version:"6.0",ios_version:"10.0",skin_tones:!0},{emoji:"🤴",description:"prince",category:"People & Body",aliases:["prince"],tags:["crown","royal"],unicode_version:"9.0",ios_version:"10.2",skin_tones:!0},{emoji:"👸",description:"princess",category:"People & Body",aliases:["princess"],tags:["crown","royal"],unicode_version:"6.0",ios_version:"6.0",skin_tones:!0},{emoji:"👳",description:"person wearing turban",category:"People & Body",aliases:["person_with_turban"],tags:[],unicode_version:"6.0",ios_version:"6.0",skin_tones:!0},{emoji:"👳♂️",description:"man wearing turban",category:"People & Body",aliases:["man_with_turban"],tags:[],unicode_version:"11.0",ios_version:"12.1",skin_tones:!0},{emoji:"👳♀️",description:"woman wearing turban",category:"People & Body",aliases:["woman_with_turban"],tags:[],unicode_version:"6.0",ios_version:"10.0",skin_tones:!0},{emoji:"👲",description:"person with skullcap",category:"People & Body",aliases:["man_with_gua_pi_mao"],tags:[],unicode_version:"6.0",ios_version:"6.0",skin_tones:!0},{emoji:"🧕",description:"woman with headscarf",category:"People & Body",aliases:["woman_with_headscarf"],tags:["hijab"],unicode_version:"11.0",ios_version:"12.1",skin_tones:!0},{emoji:"🤵",description:"person in tuxedo",category:"People & Body",aliases:["person_in_tuxedo"],tags:["groom","marriage","wedding"],unicode_version:"9.0",ios_version:"10.2",skin_tones:!0},{emoji:"🤵♂️",description:"man in tuxedo",category:"People & Body",aliases:["man_in_tuxedo"],tags:[],unicode_version:"13.0",ios_version:"14.0",skin_tones:!0},{emoji:"🤵♀️",description:"woman in tuxedo",category:"People & Body",aliases:["woman_in_tuxedo"],tags:[],unicode_version:"13.0",ios_version:"14.0",skin_tones:!0},{emoji:"👰",description:"person with veil",category:"People & Body",aliases:["person_with_veil"],tags:["marriage","wedding"],unicode_version:"6.0",ios_version:"6.0",skin_tones:!0},{emoji:"👰♂️",description:"man with veil",category:"People & Body",aliases:["man_with_veil"],tags:[],unicode_version:"13.0",ios_version:"14.0",skin_tones:!0},{emoji:"👰♀️",description:"woman with veil",category:"People & Body",aliases:["woman_with_veil","bride_with_veil"],tags:[],unicode_version:"13.0",ios_version:"14.0",skin_tones:!0},{emoji:"🤰",description:"pregnant woman",category:"People & Body",aliases:["pregnant_woman"],tags:[],unicode_version:"9.0",ios_version:"10.2",skin_tones:!0},{emoji:"🤱",description:"breast-feeding",category:"People & Body",aliases:["breast_feeding"],tags:["nursing"],unicode_version:"11.0",ios_version:"12.1",skin_tones:!0},{emoji:"👩🍼",description:"woman feeding baby",category:"People & Body",aliases:["woman_feeding_baby"],tags:[],unicode_version:"13.0",ios_version:"14.0",skin_tones:!0},{emoji:"👨🍼",description:"man feeding baby",category:"People & Body",aliases:["man_feeding_baby"],tags:[],unicode_version:"13.0",ios_version:"14.0",skin_tones:!0},{emoji:"🧑🍼",description:"person feeding baby",category:"People & Body",aliases:["person_feeding_baby"],tags:[],unicode_version:"13.0",ios_version:"14.0",skin_tones:!0},{emoji:"👼",description:"baby angel",category:"People & Body",aliases:["angel"],tags:[],unicode_version:"6.0",ios_version:"6.0",skin_tones:!0},{emoji:"🎅",description:"Santa Claus",category:"People & Body",aliases:["santa"],tags:["christmas"],unicode_version:"6.0",ios_version:"6.0",skin_tones:!0},{emoji:"🤶",description:"Mrs. Claus",category:"People & Body",aliases:["mrs_claus"],tags:["santa"],unicode_version:"9.0",ios_version:"10.2",skin_tones:!0},{emoji:"🧑🎄",description:"mx claus",category:"People & Body",aliases:["mx_claus"],tags:[],unicode_version:"13.0",ios_version:"14.0",skin_tones:!0},{emoji:"🦸",description:"superhero",category:"People & Body",aliases:["superhero"],tags:[],unicode_version:"11.0",ios_version:"12.1",skin_tones:!0},{emoji:"🦸♂️",description:"man superhero",category:"People & Body",aliases:["superhero_man"],tags:[],unicode_version:"11.0",ios_version:"12.1",skin_tones:!0},{emoji:"🦸♀️",description:"woman superhero",category:"People & Body",aliases:["superhero_woman"],tags:[],unicode_version:"11.0",ios_version:"12.1",skin_tones:!0},{emoji:"🦹",description:"supervillain",category:"People & Body",aliases:["supervillain"],tags:[],unicode_version:"11.0",ios_version:"12.1",skin_tones:!0},{emoji:"🦹♂️",description:"man supervillain",category:"People & Body",aliases:["supervillain_man"],tags:[],unicode_version:"11.0",ios_version:"12.1",skin_tones:!0},{emoji:"🦹♀️",description:"woman supervillain",category:"People & Body",aliases:["supervillain_woman"],tags:[],unicode_version:"11.0",ios_version:"12.1",skin_tones:!0},{emoji:"🧙",description:"mage",category:"People & Body",aliases:["mage"],tags:["wizard"],unicode_version:"11.0",ios_version:"12.1",skin_tones:!0},{emoji:"🧙♂️",description:"man mage",category:"People & Body",aliases:["mage_man"],tags:["wizard"],unicode_version:"11.0",ios_version:"12.1",skin_tones:!0},{emoji:"🧙♀️",description:"woman mage",category:"People & Body",aliases:["mage_woman"],tags:["wizard"],unicode_version:"11.0",ios_version:"12.1",skin_tones:!0},{emoji:"🧚",description:"fairy",category:"People & Body",aliases:["fairy"],tags:[],unicode_version:"11.0",ios_version:"12.1",skin_tones:!0},{emoji:"🧚♂️",description:"man fairy",category:"People & Body",aliases:["fairy_man"],tags:[],unicode_version:"11.0",ios_version:"12.1",skin_tones:!0},{emoji:"🧚♀️",description:"woman fairy",category:"People & Body",aliases:["fairy_woman"],tags:[],unicode_version:"11.0",ios_version:"12.1",skin_tones:!0},{emoji:"🧛",description:"vampire",category:"People & Body",aliases:["vampire"],tags:[],unicode_version:"11.0",ios_version:"12.1",skin_tones:!0},{emoji:"🧛♂️",description:"man vampire",category:"People & Body",aliases:["vampire_man"],tags:[],unicode_version:"11.0",ios_version:"12.1",skin_tones:!0},{emoji:"🧛♀️",description:"woman vampire",category:"People & Body",aliases:["vampire_woman"],tags:[],unicode_version:"11.0",ios_version:"12.1",skin_tones:!0},{emoji:"🧜",description:"merperson",category:"People & Body",aliases:["merperson"],tags:[],unicode_version:"11.0",ios_version:"12.1",skin_tones:!0},{emoji:"🧜♂️",description:"merman",category:"People & Body",aliases:["merman"],tags:[],unicode_version:"11.0",ios_version:"12.1",skin_tones:!0},{emoji:"🧜♀️",description:"mermaid",category:"People & Body",aliases:["mermaid"],tags:[],unicode_version:"11.0",ios_version:"12.1",skin_tones:!0},{emoji:"🧝",description:"elf",category:"People & Body",aliases:["elf"],tags:[],unicode_version:"11.0",ios_version:"12.1",skin_tones:!0},{emoji:"🧝♂️",description:"man elf",category:"People & Body",aliases:["elf_man"],tags:[],unicode_version:"11.0",ios_version:"12.1",skin_tones:!0},{emoji:"🧝♀️",description:"woman elf",category:"People & Body",aliases:["elf_woman"],tags:[],unicode_version:"11.0",ios_version:"12.1",skin_tones:!0},{emoji:"🧞",description:"genie",category:"People & Body",aliases:["genie"],tags:[],unicode_version:"11.0",ios_version:"12.1"},{emoji:"🧞♂️",description:"man genie",category:"People & Body",aliases:["genie_man"],tags:[],unicode_version:"11.0",ios_version:"12.1"},{emoji:"🧞♀️",description:"woman genie",category:"People & Body",aliases:["genie_woman"],tags:[],unicode_version:"11.0",ios_version:"12.1"},{emoji:"🧟",description:"zombie",category:"People & Body",aliases:["zombie"],tags:[],unicode_version:"11.0",ios_version:"12.1"},{emoji:"🧟♂️",description:"man zombie",category:"People & Body",aliases:["zombie_man"],tags:[],unicode_version:"11.0",ios_version:"12.1"},{emoji:"🧟♀️",description:"woman zombie",category:"People & Body",aliases:["zombie_woman"],tags:[],unicode_version:"11.0",ios_version:"12.1"},{emoji:"💆",description:"person getting massage",category:"People & Body",aliases:["massage"],tags:["spa"],unicode_version:"6.0",ios_version:"6.0",skin_tones:!0},{emoji:"💆♂️",description:"man getting massage",category:"People & Body",aliases:["massage_man"],tags:["spa"],unicode_version:"6.0",ios_version:"10.0",skin_tones:!0},{emoji:"💆♀️",description:"woman getting massage",category:"People & Body",aliases:["massage_woman"],tags:["spa"],unicode_version:"11.0",ios_version:"12.1",skin_tones:!0},{emoji:"💇",description:"person getting haircut",category:"People & Body",aliases:["haircut"],tags:["beauty"],unicode_version:"6.0",ios_version:"6.0",skin_tones:!0},{emoji:"💇♂️",description:"man getting haircut",category:"People & Body",aliases:["haircut_man"],tags:[],unicode_version:"6.0",ios_version:"10.0",skin_tones:!0},{emoji:"💇♀️",description:"woman getting haircut",category:"People & Body",aliases:["haircut_woman"],tags:[],unicode_version:"11.0",ios_version:"12.1",skin_tones:!0},{emoji:"🚶",description:"person walking",category:"People & Body",aliases:["walking"],tags:[],unicode_version:"6.0",ios_version:"6.0",skin_tones:!0},{emoji:"🚶♂️",description:"man walking",category:"People & Body",aliases:["walking_man"],tags:[],unicode_version:"11.0",ios_version:"12.1",skin_tones:!0},{emoji:"🚶♀️",description:"woman walking",category:"People & Body",aliases:["walking_woman"],tags:[],unicode_version:"6.0",ios_version:"10.0",skin_tones:!0},{emoji:"🧍",description:"person standing",category:"People & Body",aliases:["standing_person"],tags:[],unicode_version:"12.0",ios_version:"13.0",skin_tones:!0},{emoji:"🧍♂️",description:"man standing",category:"People & Body",aliases:["standing_man"],tags:[],unicode_version:"12.0",ios_version:"13.0",skin_tones:!0},{emoji:"🧍♀️",description:"woman standing",category:"People & Body",aliases:["standing_woman"],tags:[],unicode_version:"12.0",ios_version:"13.0",skin_tones:!0},{emoji:"🧎",description:"person kneeling",category:"People & Body",aliases:["kneeling_person"],tags:[],unicode_version:"12.0",ios_version:"13.0",skin_tones:!0},{emoji:"🧎♂️",description:"man kneeling",category:"People & Body",aliases:["kneeling_man"],tags:[],unicode_version:"12.0",ios_version:"13.0",skin_tones:!0},{emoji:"🧎♀️",description:"woman kneeling",category:"People & Body",aliases:["kneeling_woman"],tags:[],unicode_version:"12.0",ios_version:"13.0",skin_tones:!0},{emoji:"🧑🦯",description:"person with white cane",category:"People & Body",aliases:["person_with_probing_cane"],tags:[],unicode_version:"12.1",ios_version:"13.2",skin_tones:!0},{emoji:"👨🦯",description:"man with white cane",category:"People & Body",aliases:["man_with_probing_cane"],tags:[],unicode_version:"12.0",ios_version:"13.0",skin_tones:!0},{emoji:"👩🦯",description:"woman with white cane",category:"People & Body",aliases:["woman_with_probing_cane"],tags:[],unicode_version:"12.0",ios_version:"13.0",skin_tones:!0},{emoji:"🧑🦼",description:"person in motorized wheelchair",category:"People & Body",aliases:["person_in_motorized_wheelchair"],tags:[],unicode_version:"12.1",ios_version:"13.2",skin_tones:!0},{emoji:"👨🦼",description:"man in motorized wheelchair",category:"People & Body",aliases:["man_in_motorized_wheelchair"],tags:[],unicode_version:"12.0",ios_version:"13.0",skin_tones:!0},{emoji:"👩🦼",description:"woman in motorized wheelchair",category:"People & Body",aliases:["woman_in_motorized_wheelchair"],tags:[],unicode_version:"12.0",ios_version:"13.0",skin_tones:!0},{emoji:"🧑🦽",description:"person in manual wheelchair",category:"People & Body",aliases:["person_in_manual_wheelchair"],tags:[],unicode_version:"12.1",ios_version:"13.2",skin_tones:!0},{emoji:"👨🦽",description:"man in manual wheelchair",category:"People & Body",aliases:["man_in_manual_wheelchair"],tags:[],unicode_version:"12.0",ios_version:"13.0",skin_tones:!0},{emoji:"👩🦽",description:"woman in manual wheelchair",category:"People & Body",aliases:["woman_in_manual_wheelchair"],tags:[],unicode_version:"12.0",ios_version:"13.0",skin_tones:!0},{emoji:"🏃",description:"person running",category:"People & Body",aliases:["runner","running"],tags:["exercise","workout","marathon"],unicode_version:"6.0",ios_version:"6.0",skin_tones:!0},{emoji:"🏃♂️",description:"man running",category:"People & Body",aliases:["running_man"],tags:["exercise","workout","marathon"],unicode_version:"11.0",ios_version:"12.1",skin_tones:!0},{emoji:"🏃♀️",description:"woman running",category:"People & Body",aliases:["running_woman"],tags:["exercise","workout","marathon"],unicode_version:"6.0",ios_version:"10.0",skin_tones:!0},{emoji:"💃",description:"woman dancing",category:"People & Body",aliases:["woman_dancing","dancer"],tags:["dress"],unicode_version:"6.0",ios_version:"6.0",skin_tones:!0},{emoji:"🕺",description:"man dancing",category:"People & Body",aliases:["man_dancing"],tags:["dancer"],unicode_version:"9.0",ios_version:"10.2",skin_tones:!0},{emoji:"🕴️",description:"person in suit levitating",category:"People & Body",aliases:["business_suit_levitating"],tags:[],unicode_version:"7.0",ios_version:"9.1",skin_tones:!0},{emoji:"👯",description:"people with bunny ears",category:"People & Body",aliases:["dancers"],tags:["bunny"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"👯♂️",description:"men with bunny ears",category:"People & Body",aliases:["dancing_men"],tags:["bunny"],unicode_version:"6.0",ios_version:"10.0"},{emoji:"👯♀️",description:"women with bunny ears",category:"People & Body",aliases:["dancing_women"],tags:["bunny"],unicode_version:"11.0",ios_version:"12.1"},{emoji:"🧖",description:"person in steamy room",category:"People & Body",aliases:["sauna_person"],tags:["steamy"],unicode_version:"11.0",ios_version:"12.1",skin_tones:!0},{emoji:"🧖♂️",description:"man in steamy room",category:"People & Body",aliases:["sauna_man"],tags:["steamy"],unicode_version:"11.0",ios_version:"12.1",skin_tones:!0},{emoji:"🧖♀️",description:"woman in steamy room",category:"People & Body",aliases:["sauna_woman"],tags:["steamy"],unicode_version:"11.0",ios_version:"12.1",skin_tones:!0},{emoji:"🧗",description:"person climbing",category:"People & Body",aliases:["climbing"],tags:["bouldering"],unicode_version:"11.0",ios_version:"12.1",skin_tones:!0},{emoji:"🧗♂️",description:"man climbing",category:"People & Body",aliases:["climbing_man"],tags:["bouldering"],unicode_version:"11.0",ios_version:"12.1",skin_tones:!0},{emoji:"🧗♀️",description:"woman climbing",category:"People & Body",aliases:["climbing_woman"],tags:["bouldering"],unicode_version:"11.0",ios_version:"12.1",skin_tones:!0},{emoji:"🤺",description:"person fencing",category:"People & Body",aliases:["person_fencing"],tags:[],unicode_version:"9.0",ios_version:"10.2"},{emoji:"🏇",description:"horse racing",category:"People & Body",aliases:["horse_racing"],tags:[],unicode_version:"6.0",ios_version:"6.0",skin_tones:!0},{emoji:"⛷️",description:"skier",category:"People & Body",aliases:["skier"],tags:[],unicode_version:"5.2",ios_version:"9.1"},{emoji:"🏂",description:"snowboarder",category:"People & Body",aliases:["snowboarder"],tags:[],unicode_version:"6.0",ios_version:"6.0",skin_tones:!0},{emoji:"🏌️",description:"person golfing",category:"People & Body",aliases:["golfing"],tags:[],unicode_version:"7.0",ios_version:"9.1",skin_tones:!0},{emoji:"🏌️♂️",description:"man golfing",category:"People & Body",aliases:["golfing_man"],tags:[],unicode_version:"11.0",ios_version:"12.1",skin_tones:!0},{emoji:"🏌️♀️",description:"woman golfing",category:"People & Body",aliases:["golfing_woman"],tags:[],unicode_version:"",ios_version:"10.0",skin_tones:!0},{emoji:"🏄",description:"person surfing",category:"People & Body",aliases:["surfer"],tags:[],unicode_version:"6.0",ios_version:"6.0",skin_tones:!0},{emoji:"🏄♂️",description:"man surfing",category:"People & Body",aliases:["surfing_man"],tags:[],unicode_version:"11.0",ios_version:"12.1",skin_tones:!0},{emoji:"🏄♀️",description:"woman surfing",category:"People & Body",aliases:["surfing_woman"],tags:[],unicode_version:"7.0",ios_version:"10.0",skin_tones:!0},{emoji:"🚣",description:"person rowing boat",category:"People & Body",aliases:["rowboat"],tags:[],unicode_version:"6.0",ios_version:"6.0",skin_tones:!0},{emoji:"🚣♂️",description:"man rowing boat",category:"People & Body",aliases:["rowing_man"],tags:[],unicode_version:"11.0",ios_version:"12.1",skin_tones:!0},{emoji:"🚣♀️",description:"woman rowing boat",category:"People & Body",aliases:["rowing_woman"],tags:[],unicode_version:"6.0",ios_version:"10.0",skin_tones:!0},{emoji:"🏊",description:"person swimming",category:"People & Body",aliases:["swimmer"],tags:[],unicode_version:"6.0",ios_version:"6.0",skin_tones:!0},{emoji:"🏊♂️",description:"man swimming",category:"People & Body",aliases:["swimming_man"],tags:[],unicode_version:"11.0",ios_version:"12.1",skin_tones:!0},{emoji:"🏊♀️",description:"woman swimming",category:"People & Body",aliases:["swimming_woman"],tags:[],unicode_version:"6.0",ios_version:"10.0",skin_tones:!0},{emoji:"⛹️",description:"person bouncing ball",category:"People & Body",aliases:["bouncing_ball_person"],tags:["basketball"],unicode_version:"5.2",ios_version:"9.1",skin_tones:!0},{emoji:"⛹️♂️",description:"man bouncing ball",category:"People & Body",aliases:["bouncing_ball_man","basketball_man"],tags:[],unicode_version:"11.0",ios_version:"12.1",skin_tones:!0},{emoji:"⛹️♀️",description:"woman bouncing ball",category:"People & Body",aliases:["bouncing_ball_woman","basketball_woman"],tags:[],unicode_version:"7.0",ios_version:"10.0",skin_tones:!0},{emoji:"🏋️",description:"person lifting weights",category:"People & Body",aliases:["weight_lifting"],tags:["gym","workout"],unicode_version:"7.0",ios_version:"9.1",skin_tones:!0},{emoji:"🏋️♂️",description:"man lifting weights",category:"People & Body",aliases:["weight_lifting_man"],tags:["gym","workout"],unicode_version:"11.0",ios_version:"12.1",skin_tones:!0},{emoji:"🏋️♀️",description:"woman lifting weights",category:"People & Body",aliases:["weight_lifting_woman"],tags:["gym","workout"],unicode_version:"6.0",ios_version:"10.0",skin_tones:!0},{emoji:"🚴",description:"person biking",category:"People & Body",aliases:["bicyclist"],tags:[],unicode_version:"6.0",ios_version:"6.0",skin_tones:!0},{emoji:"🚴♂️",description:"man biking",category:"People & Body",aliases:["biking_man"],tags:[],unicode_version:"11.0",ios_version:"12.1",skin_tones:!0},{emoji:"🚴♀️",description:"woman biking",category:"People & Body",aliases:["biking_woman"],tags:[],unicode_version:"6.0",ios_version:"10.0",skin_tones:!0},{emoji:"🚵",description:"person mountain biking",category:"People & Body",aliases:["mountain_bicyclist"],tags:[],unicode_version:"6.0",ios_version:"6.0",skin_tones:!0},{emoji:"🚵♂️",description:"man mountain biking",category:"People & Body",aliases:["mountain_biking_man"],tags:[],unicode_version:"11.0",ios_version:"12.1",skin_tones:!0},{emoji:"🚵♀️",description:"woman mountain biking",category:"People & Body",aliases:["mountain_biking_woman"],tags:[],unicode_version:"6.0",ios_version:"10.0",skin_tones:!0},{emoji:"🤸",description:"person cartwheeling",category:"People & Body",aliases:["cartwheeling"],tags:[],unicode_version:"11.0",ios_version:"12.1",skin_tones:!0},{emoji:"🤸♂️",description:"man cartwheeling",category:"People & Body",aliases:["man_cartwheeling"],tags:[],unicode_version:"",ios_version:"10.2",skin_tones:!0},{emoji:"🤸♀️",description:"woman cartwheeling",category:"People & Body",aliases:["woman_cartwheeling"],tags:[],unicode_version:"",ios_version:"10.2",skin_tones:!0},{emoji:"🤼",description:"people wrestling",category:"People & Body",aliases:["wrestling"],tags:[],unicode_version:"11.0",ios_version:"12.1"},{emoji:"🤼♂️",description:"men wrestling",category:"People & Body",aliases:["men_wrestling"],tags:[],unicode_version:"9.0",ios_version:"10.2"},{emoji:"🤼♀️",description:"women wrestling",category:"People & Body",aliases:["women_wrestling"],tags:[],unicode_version:"9.0",ios_version:"10.2"},{emoji:"🤽",description:"person playing water polo",category:"People & Body",aliases:["water_polo"],tags:[],unicode_version:"11.0",ios_version:"12.1",skin_tones:!0},{emoji:"🤽♂️",description:"man playing water polo",category:"People & Body",aliases:["man_playing_water_polo"],tags:[],unicode_version:"9.0",ios_version:"10.2",skin_tones:!0},{emoji:"🤽♀️",description:"woman playing water polo",category:"People & Body",aliases:["woman_playing_water_polo"],tags:[],unicode_version:"9.0",ios_version:"10.2",skin_tones:!0},{emoji:"🤾",description:"person playing handball",category:"People & Body",aliases:["handball_person"],tags:[],unicode_version:"11.0",ios_version:"12.1",skin_tones:!0},{emoji:"🤾♂️",description:"man playing handball",category:"People & Body",aliases:["man_playing_handball"],tags:[],unicode_version:"9.0",ios_version:"10.2",skin_tones:!0},{emoji:"🤾♀️",description:"woman playing handball",category:"People & Body",aliases:["woman_playing_handball"],tags:[],unicode_version:"9.0",ios_version:"10.2",skin_tones:!0},{emoji:"🤹",description:"person juggling",category:"People & Body",aliases:["juggling_person"],tags:[],unicode_version:"11.0",ios_version:"12.1",skin_tones:!0},{emoji:"🤹♂️",description:"man juggling",category:"People & Body",aliases:["man_juggling"],tags:[],unicode_version:"9.0",ios_version:"10.2",skin_tones:!0},{emoji:"🤹♀️",description:"woman juggling",category:"People & Body",aliases:["woman_juggling"],tags:[],unicode_version:"9.0",ios_version:"10.2",skin_tones:!0},{emoji:"🧘",description:"person in lotus position",category:"People & Body",aliases:["lotus_position"],tags:["meditation"],unicode_version:"11.0",ios_version:"12.1",skin_tones:!0},{emoji:"🧘♂️",description:"man in lotus position",category:"People & Body",aliases:["lotus_position_man"],tags:["meditation"],unicode_version:"11.0",ios_version:"12.1",skin_tones:!0},{emoji:"🧘♀️",description:"woman in lotus position",category:"People & Body",aliases:["lotus_position_woman"],tags:["meditation"],unicode_version:"11.0",ios_version:"12.1",skin_tones:!0},{emoji:"🛀",description:"person taking bath",category:"People & Body",aliases:["bath"],tags:["shower"],unicode_version:"6.0",ios_version:"6.0",skin_tones:!0},{emoji:"🛌",description:"person in bed",category:"People & Body",aliases:["sleeping_bed"],tags:[],unicode_version:"7.0",ios_version:"9.1",skin_tones:!0},{emoji:"🧑🤝🧑",description:"people holding hands",category:"People & Body",aliases:["people_holding_hands"],tags:["couple","date"],unicode_version:"12.0",ios_version:"13.0",skin_tones:!0},{emoji:"👭",description:"women holding hands",category:"People & Body",aliases:["two_women_holding_hands"],tags:["couple","date"],unicode_version:"6.0",ios_version:"6.0",skin_tones:!0},{emoji:"👫",description:"woman and man holding hands",category:"People & Body",aliases:["couple"],tags:["date"],unicode_version:"6.0",ios_version:"6.0",skin_tones:!0},{emoji:"👬",description:"men holding hands",category:"People & Body",aliases:["two_men_holding_hands"],tags:["couple","date"],unicode_version:"6.0",ios_version:"6.0",skin_tones:!0},{emoji:"💏",description:"kiss",category:"People & Body",aliases:["couplekiss"],tags:[],unicode_version:"6.0",ios_version:"6.0",skin_tones:!0},{emoji:"👩❤️💋👨",description:"kiss: woman, man",category:"People & Body",aliases:["couplekiss_man_woman"],tags:[],unicode_version:"11.0",ios_version:"12.1",skin_tones:!0},{emoji:"👨❤️💋👨",description:"kiss: man, man",category:"People & Body",aliases:["couplekiss_man_man"],tags:[],unicode_version:"6.0",ios_version:"8.3",skin_tones:!0},{emoji:"👩❤️💋👩",description:"kiss: woman, woman",category:"People & Body",aliases:["couplekiss_woman_woman"],tags:[],unicode_version:"6.0",ios_version:"8.3",skin_tones:!0},{emoji:"💑",description:"couple with heart",category:"People & Body",aliases:["couple_with_heart"],tags:[],unicode_version:"6.0",ios_version:"6.0",skin_tones:!0},{emoji:"👩❤️👨",description:"couple with heart: woman, man",category:"People & Body",aliases:["couple_with_heart_woman_man"],tags:[],unicode_version:"11.0",ios_version:"12.1",skin_tones:!0},{emoji:"👨❤️👨",description:"couple with heart: man, man",category:"People & Body",aliases:["couple_with_heart_man_man"],tags:[],unicode_version:"6.0",ios_version:"8.3",skin_tones:!0},{emoji:"👩❤️👩",description:"couple with heart: woman, woman",category:"People & Body",aliases:["couple_with_heart_woman_woman"],tags:[],unicode_version:"6.0",ios_version:"8.3",skin_tones:!0},{emoji:"👪",description:"family",category:"People & Body",aliases:["family"],tags:["home","parents","child"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"👨👩👦",description:"family: man, woman, boy",category:"People & Body",aliases:["family_man_woman_boy"],tags:[],unicode_version:"11.0",ios_version:"12.1"},{emoji:"👨👩👧",description:"family: man, woman, girl",category:"People & Body",aliases:["family_man_woman_girl"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"👨👩👧👦",description:"family: man, woman, girl, boy",category:"People & Body",aliases:["family_man_woman_girl_boy"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"👨👩👦👦",description:"family: man, woman, boy, boy",category:"People & Body",aliases:["family_man_woman_boy_boy"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"👨👩👧👧",description:"family: man, woman, girl, girl",category:"People & Body",aliases:["family_man_woman_girl_girl"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"👨👨👦",description:"family: man, man, boy",category:"People & Body",aliases:["family_man_man_boy"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"👨👨👧",description:"family: man, man, girl",category:"People & Body",aliases:["family_man_man_girl"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"👨👨👧👦",description:"family: man, man, girl, boy",category:"People & Body",aliases:["family_man_man_girl_boy"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"👨👨👦👦",description:"family: man, man, boy, boy",category:"People & Body",aliases:["family_man_man_boy_boy"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"👨👨👧👧",description:"family: man, man, girl, girl",category:"People & Body",aliases:["family_man_man_girl_girl"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"👩👩👦",description:"family: woman, woman, boy",category:"People & Body",aliases:["family_woman_woman_boy"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"👩👩👧",description:"family: woman, woman, girl",category:"People & Body",aliases:["family_woman_woman_girl"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"👩👩👧👦",description:"family: woman, woman, girl, boy",category:"People & Body",aliases:["family_woman_woman_girl_boy"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"👩👩👦👦",description:"family: woman, woman, boy, boy",category:"People & Body",aliases:["family_woman_woman_boy_boy"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"👩👩👧👧",description:"family: woman, woman, girl, girl",category:"People & Body",aliases:["family_woman_woman_girl_girl"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"👨👦",description:"family: man, boy",category:"People & Body",aliases:["family_man_boy"],tags:[],unicode_version:"6.0",ios_version:"10.0"},{emoji:"👨👦👦",description:"family: man, boy, boy",category:"People & Body",aliases:["family_man_boy_boy"],tags:[],unicode_version:"6.0",ios_version:"10.0"},{emoji:"👨👧",description:"family: man, girl",category:"People & Body",aliases:["family_man_girl"],tags:[],unicode_version:"6.0",ios_version:"10.0"},{emoji:"👨👧👦",description:"family: man, girl, boy",category:"People & Body",aliases:["family_man_girl_boy"],tags:[],unicode_version:"6.0",ios_version:"10.0"},{emoji:"👨👧👧",description:"family: man, girl, girl",category:"People & Body",aliases:["family_man_girl_girl"],tags:[],unicode_version:"6.0",ios_version:"10.0"},{emoji:"👩👦",description:"family: woman, boy",category:"People & Body",aliases:["family_woman_boy"],tags:[],unicode_version:"6.0",ios_version:"10.0"},{emoji:"👩👦👦",description:"family: woman, boy, boy",category:"People & Body",aliases:["family_woman_boy_boy"],tags:[],unicode_version:"6.0",ios_version:"10.0"},{emoji:"👩👧",description:"family: woman, girl",category:"People & Body",aliases:["family_woman_girl"],tags:[],unicode_version:"6.0",ios_version:"10.0"},{emoji:"👩👧👦",description:"family: woman, girl, boy",category:"People & Body",aliases:["family_woman_girl_boy"],tags:[],unicode_version:"6.0",ios_version:"10.0"},{emoji:"👩👧👧",description:"family: woman, girl, girl",category:"People & Body",aliases:["family_woman_girl_girl"],tags:[],unicode_version:"6.0",ios_version:"10.0"},{emoji:"🗣️",description:"speaking head",category:"People & Body",aliases:["speaking_head"],tags:[],unicode_version:"7.0",ios_version:"9.1"},{emoji:"👤",description:"bust in silhouette",category:"People & Body",aliases:["bust_in_silhouette"],tags:["user"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"👥",description:"busts in silhouette",category:"People & Body",aliases:["busts_in_silhouette"],tags:["users","group","team"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🫂",description:"people hugging",category:"People & Body",aliases:["people_hugging"],tags:[],unicode_version:"13.0",ios_version:"14.0"},{emoji:"👣",description:"footprints",category:"People & Body",aliases:["footprints"],tags:["feet","tracks"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🐵",description:"monkey face",category:"Animals & Nature",aliases:["monkey_face"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🐒",description:"monkey",category:"Animals & Nature",aliases:["monkey"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🦍",description:"gorilla",category:"Animals & Nature",aliases:["gorilla"],tags:[],unicode_version:"9.0",ios_version:"10.2"},{emoji:"🦧",description:"orangutan",category:"Animals & Nature",aliases:["orangutan"],tags:[],unicode_version:"12.0",ios_version:"13.0"},{emoji:"🐶",description:"dog face",category:"Animals & Nature",aliases:["dog"],tags:["pet"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🐕",description:"dog",category:"Animals & Nature",aliases:["dog2"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🦮",description:"guide dog",category:"Animals & Nature",aliases:["guide_dog"],tags:[],unicode_version:"12.0",ios_version:"13.0"},{emoji:"🐕🦺",description:"service dog",category:"Animals & Nature",aliases:["service_dog"],tags:[],unicode_version:"12.0",ios_version:"13.0"},{emoji:"🐩",description:"poodle",category:"Animals & Nature",aliases:["poodle"],tags:["dog"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🐺",description:"wolf",category:"Animals & Nature",aliases:["wolf"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🦊",description:"fox",category:"Animals & Nature",aliases:["fox_face"],tags:[],unicode_version:"9.0",ios_version:"10.2"},{emoji:"🦝",description:"raccoon",category:"Animals & Nature",aliases:["raccoon"],tags:[],unicode_version:"11.0",ios_version:"12.1"},{emoji:"🐱",description:"cat face",category:"Animals & Nature",aliases:["cat"],tags:["pet"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🐈",description:"cat",category:"Animals & Nature",aliases:["cat2"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🐈⬛",description:"black cat",category:"Animals & Nature",aliases:["black_cat"],tags:[],unicode_version:"13.0",ios_version:"14.0"},{emoji:"🦁",description:"lion",category:"Animals & Nature",aliases:["lion"],tags:[],unicode_version:"8.0",ios_version:"9.1"},{emoji:"🐯",description:"tiger face",category:"Animals & Nature",aliases:["tiger"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🐅",description:"tiger",category:"Animals & Nature",aliases:["tiger2"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🐆",description:"leopard",category:"Animals & Nature",aliases:["leopard"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🐴",description:"horse face",category:"Animals & Nature",aliases:["horse"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🐎",description:"horse",category:"Animals & Nature",aliases:["racehorse"],tags:["speed"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🦄",description:"unicorn",category:"Animals & Nature",aliases:["unicorn"],tags:[],unicode_version:"8.0",ios_version:"9.1"},{emoji:"🦓",description:"zebra",category:"Animals & Nature",aliases:["zebra"],tags:[],unicode_version:"11.0",ios_version:"12.1"},{emoji:"🦌",description:"deer",category:"Animals & Nature",aliases:["deer"],tags:[],unicode_version:"9.0",ios_version:"10.2"},{emoji:"🦬",description:"bison",category:"Animals & Nature",aliases:["bison"],tags:[],unicode_version:"13.0",ios_version:"14.0"},{emoji:"🐮",description:"cow face",category:"Animals & Nature",aliases:["cow"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🐂",description:"ox",category:"Animals & Nature",aliases:["ox"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🐃",description:"water buffalo",category:"Animals & Nature",aliases:["water_buffalo"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🐄",description:"cow",category:"Animals & Nature",aliases:["cow2"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🐷",description:"pig face",category:"Animals & Nature",aliases:["pig"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🐖",description:"pig",category:"Animals & Nature",aliases:["pig2"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🐗",description:"boar",category:"Animals & Nature",aliases:["boar"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🐽",description:"pig nose",category:"Animals & Nature",aliases:["pig_nose"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🐏",description:"ram",category:"Animals & Nature",aliases:["ram"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🐑",description:"ewe",category:"Animals & Nature",aliases:["sheep"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🐐",description:"goat",category:"Animals & Nature",aliases:["goat"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🐪",description:"camel",category:"Animals & Nature",aliases:["dromedary_camel"],tags:["desert"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🐫",description:"two-hump camel",category:"Animals & Nature",aliases:["camel"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🦙",description:"llama",category:"Animals & Nature",aliases:["llama"],tags:[],unicode_version:"11.0",ios_version:"12.1"},{emoji:"🦒",description:"giraffe",category:"Animals & Nature",aliases:["giraffe"],tags:[],unicode_version:"11.0",ios_version:"12.1"},{emoji:"🐘",description:"elephant",category:"Animals & Nature",aliases:["elephant"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🦣",description:"mammoth",category:"Animals & Nature",aliases:["mammoth"],tags:[],unicode_version:"13.0",ios_version:"14.0"},{emoji:"🦏",description:"rhinoceros",category:"Animals & Nature",aliases:["rhinoceros"],tags:[],unicode_version:"9.0",ios_version:"10.2"},{emoji:"🦛",description:"hippopotamus",category:"Animals & Nature",aliases:["hippopotamus"],tags:[],unicode_version:"11.0",ios_version:"12.1"},{emoji:"🐭",description:"mouse face",category:"Animals & Nature",aliases:["mouse"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🐁",description:"mouse",category:"Animals & Nature",aliases:["mouse2"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🐀",description:"rat",category:"Animals & Nature",aliases:["rat"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🐹",description:"hamster",category:"Animals & Nature",aliases:["hamster"],tags:["pet"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🐰",description:"rabbit face",category:"Animals & Nature",aliases:["rabbit"],tags:["bunny"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🐇",description:"rabbit",category:"Animals & Nature",aliases:["rabbit2"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🐿️",description:"chipmunk",category:"Animals & Nature",aliases:["chipmunk"],tags:[],unicode_version:"7.0",ios_version:"9.1"},{emoji:"🦫",description:"beaver",category:"Animals & Nature",aliases:["beaver"],tags:[],unicode_version:"13.0",ios_version:"14.0"},{emoji:"🦔",description:"hedgehog",category:"Animals & Nature",aliases:["hedgehog"],tags:[],unicode_version:"11.0",ios_version:"12.1"},{emoji:"🦇",description:"bat",category:"Animals & Nature",aliases:["bat"],tags:[],unicode_version:"9.0",ios_version:"10.2"},{emoji:"🐻",description:"bear",category:"Animals & Nature",aliases:["bear"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🐻❄️",description:"polar bear",category:"Animals & Nature",aliases:["polar_bear"],tags:[],unicode_version:"13.0",ios_version:"14.0"},{emoji:"🐨",description:"koala",category:"Animals & Nature",aliases:["koala"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🐼",description:"panda",category:"Animals & Nature",aliases:["panda_face"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🦥",description:"sloth",category:"Animals & Nature",aliases:["sloth"],tags:[],unicode_version:"12.0",ios_version:"13.0"},{emoji:"🦦",description:"otter",category:"Animals & Nature",aliases:["otter"],tags:[],unicode_version:"12.0",ios_version:"13.0"},{emoji:"🦨",description:"skunk",category:"Animals & Nature",aliases:["skunk"],tags:[],unicode_version:"12.0",ios_version:"13.0"},{emoji:"🦘",description:"kangaroo",category:"Animals & Nature",aliases:["kangaroo"],tags:[],unicode_version:"11.0",ios_version:"12.1"},{emoji:"🦡",description:"badger",category:"Animals & Nature",aliases:["badger"],tags:[],unicode_version:"11.0",ios_version:"12.1"},{emoji:"🐾",description:"paw prints",category:"Animals & Nature",aliases:["feet","paw_prints"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🦃",description:"turkey",category:"Animals & Nature",aliases:["turkey"],tags:["thanksgiving"],unicode_version:"8.0",ios_version:"9.1"},{emoji:"🐔",description:"chicken",category:"Animals & Nature",aliases:["chicken"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🐓",description:"rooster",category:"Animals & Nature",aliases:["rooster"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🐣",description:"hatching chick",category:"Animals & Nature",aliases:["hatching_chick"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🐤",description:"baby chick",category:"Animals & Nature",aliases:["baby_chick"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🐥",description:"front-facing baby chick",category:"Animals & Nature",aliases:["hatched_chick"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🐦",description:"bird",category:"Animals & Nature",aliases:["bird"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🐧",description:"penguin",category:"Animals & Nature",aliases:["penguin"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🕊️",description:"dove",category:"Animals & Nature",aliases:["dove"],tags:["peace"],unicode_version:"7.0",ios_version:"9.1"},{emoji:"🦅",description:"eagle",category:"Animals & Nature",aliases:["eagle"],tags:[],unicode_version:"9.0",ios_version:"10.2"},{emoji:"🦆",description:"duck",category:"Animals & Nature",aliases:["duck"],tags:[],unicode_version:"9.0",ios_version:"10.2"},{emoji:"🦢",description:"swan",category:"Animals & Nature",aliases:["swan"],tags:[],unicode_version:"11.0",ios_version:"12.1"},{emoji:"🦉",description:"owl",category:"Animals & Nature",aliases:["owl"],tags:[],unicode_version:"9.0",ios_version:"10.2"},{emoji:"🦤",description:"dodo",category:"Animals & Nature",aliases:["dodo"],tags:[],unicode_version:"13.0",ios_version:"14.0"},{emoji:"🪶",description:"feather",category:"Animals & Nature",aliases:["feather"],tags:[],unicode_version:"13.0",ios_version:"14.0"},{emoji:"🦩",description:"flamingo",category:"Animals & Nature",aliases:["flamingo"],tags:[],unicode_version:"12.0",ios_version:"13.0"},{emoji:"🦚",description:"peacock",category:"Animals & Nature",aliases:["peacock"],tags:[],unicode_version:"11.0",ios_version:"12.1"},{emoji:"🦜",description:"parrot",category:"Animals & Nature",aliases:["parrot"],tags:[],unicode_version:"11.0",ios_version:"12.1"},{emoji:"🐸",description:"frog",category:"Animals & Nature",aliases:["frog"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🐊",description:"crocodile",category:"Animals & Nature",aliases:["crocodile"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🐢",description:"turtle",category:"Animals & Nature",aliases:["turtle"],tags:["slow"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🦎",description:"lizard",category:"Animals & Nature",aliases:["lizard"],tags:[],unicode_version:"9.0",ios_version:"10.2"},{emoji:"🐍",description:"snake",category:"Animals & Nature",aliases:["snake"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🐲",description:"dragon face",category:"Animals & Nature",aliases:["dragon_face"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🐉",description:"dragon",category:"Animals & Nature",aliases:["dragon"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🦕",description:"sauropod",category:"Animals & Nature",aliases:["sauropod"],tags:["dinosaur"],unicode_version:"11.0",ios_version:"12.1"},{emoji:"🦖",description:"T-Rex",category:"Animals & Nature",aliases:["t-rex"],tags:["dinosaur"],unicode_version:"11.0",ios_version:"12.1"},{emoji:"🐳",description:"spouting whale",category:"Animals & Nature",aliases:["whale"],tags:["sea"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🐋",description:"whale",category:"Animals & Nature",aliases:["whale2"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🐬",description:"dolphin",category:"Animals & Nature",aliases:["dolphin","flipper"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🦭",description:"seal",category:"Animals & Nature",aliases:["seal"],tags:[],unicode_version:"13.0",ios_version:"14.0"},{emoji:"🐟",description:"fish",category:"Animals & Nature",aliases:["fish"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🐠",description:"tropical fish",category:"Animals & Nature",aliases:["tropical_fish"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🐡",description:"blowfish",category:"Animals & Nature",aliases:["blowfish"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🦈",description:"shark",category:"Animals & Nature",aliases:["shark"],tags:[],unicode_version:"9.0",ios_version:"10.2"},{emoji:"🐙",description:"octopus",category:"Animals & Nature",aliases:["octopus"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🐚",description:"spiral shell",category:"Animals & Nature",aliases:["shell"],tags:["sea","beach"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🐌",description:"snail",category:"Animals & Nature",aliases:["snail"],tags:["slow"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🦋",description:"butterfly",category:"Animals & Nature",aliases:["butterfly"],tags:[],unicode_version:"9.0",ios_version:"10.2"},{emoji:"🐛",description:"bug",category:"Animals & Nature",aliases:["bug"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🐜",description:"ant",category:"Animals & Nature",aliases:["ant"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🐝",description:"honeybee",category:"Animals & Nature",aliases:["bee","honeybee"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🪲",description:"beetle",category:"Animals & Nature",aliases:["beetle"],tags:[],unicode_version:"13.0",ios_version:"14.0"},{emoji:"🐞",description:"lady beetle",category:"Animals & Nature",aliases:["lady_beetle"],tags:["bug"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🦗",description:"cricket",category:"Animals & Nature",aliases:["cricket"],tags:[],unicode_version:"11.0",ios_version:"12.1"},{emoji:"🪳",description:"cockroach",category:"Animals & Nature",aliases:["cockroach"],tags:[],unicode_version:"13.0",ios_version:"14.0"},{emoji:"🕷️",description:"spider",category:"Animals & Nature",aliases:["spider"],tags:[],unicode_version:"7.0",ios_version:"9.1"},{emoji:"🕸️",description:"spider web",category:"Animals & Nature",aliases:["spider_web"],tags:[],unicode_version:"7.0",ios_version:"9.1"},{emoji:"🦂",description:"scorpion",category:"Animals & Nature",aliases:["scorpion"],tags:[],unicode_version:"8.0",ios_version:"9.1"},{emoji:"🦟",description:"mosquito",category:"Animals & Nature",aliases:["mosquito"],tags:[],unicode_version:"11.0",ios_version:"12.1"},{emoji:"🪰",description:"fly",category:"Animals & Nature",aliases:["fly"],tags:[],unicode_version:"13.0",ios_version:"14.0"},{emoji:"🪱",description:"worm",category:"Animals & Nature",aliases:["worm"],tags:[],unicode_version:"13.0",ios_version:"14.0"},{emoji:"🦠",description:"microbe",category:"Animals & Nature",aliases:["microbe"],tags:["germ"],unicode_version:"11.0",ios_version:"12.1"},{emoji:"💐",description:"bouquet",category:"Animals & Nature",aliases:["bouquet"],tags:["flowers"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🌸",description:"cherry blossom",category:"Animals & Nature",aliases:["cherry_blossom"],tags:["flower","spring"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"💮",description:"white flower",category:"Animals & Nature",aliases:["white_flower"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🏵️",description:"rosette",category:"Animals & Nature",aliases:["rosette"],tags:[],unicode_version:"7.0",ios_version:"9.1"},{emoji:"🌹",description:"rose",category:"Animals & Nature",aliases:["rose"],tags:["flower"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🥀",description:"wilted flower",category:"Animals & Nature",aliases:["wilted_flower"],tags:[],unicode_version:"9.0",ios_version:"10.2"},{emoji:"🌺",description:"hibiscus",category:"Animals & Nature",aliases:["hibiscus"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🌻",description:"sunflower",category:"Animals & Nature",aliases:["sunflower"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🌼",description:"blossom",category:"Animals & Nature",aliases:["blossom"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🌷",description:"tulip",category:"Animals & Nature",aliases:["tulip"],tags:["flower"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🌱",description:"seedling",category:"Animals & Nature",aliases:["seedling"],tags:["plant"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🪴",description:"potted plant",category:"Animals & Nature",aliases:["potted_plant"],tags:[],unicode_version:"13.0",ios_version:"14.0"},{emoji:"🌲",description:"evergreen tree",category:"Animals & Nature",aliases:["evergreen_tree"],tags:["wood"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🌳",description:"deciduous tree",category:"Animals & Nature",aliases:["deciduous_tree"],tags:["wood"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🌴",description:"palm tree",category:"Animals & Nature",aliases:["palm_tree"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🌵",description:"cactus",category:"Animals & Nature",aliases:["cactus"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🌾",description:"sheaf of rice",category:"Animals & Nature",aliases:["ear_of_rice"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🌿",description:"herb",category:"Animals & Nature",aliases:["herb"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"☘️",description:"shamrock",category:"Animals & Nature",aliases:["shamrock"],tags:[],unicode_version:"4.1",ios_version:"9.1"},{emoji:"🍀",description:"four leaf clover",category:"Animals & Nature",aliases:["four_leaf_clover"],tags:["luck"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🍁",description:"maple leaf",category:"Animals & Nature",aliases:["maple_leaf"],tags:["canada"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🍂",description:"fallen leaf",category:"Animals & Nature",aliases:["fallen_leaf"],tags:["autumn"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🍃",description:"leaf fluttering in wind",category:"Animals & Nature",aliases:["leaves"],tags:["leaf"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🍇",description:"grapes",category:"Food & Drink",aliases:["grapes"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🍈",description:"melon",category:"Food & Drink",aliases:["melon"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🍉",description:"watermelon",category:"Food & Drink",aliases:["watermelon"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🍊",description:"tangerine",category:"Food & Drink",aliases:["tangerine","orange","mandarin"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🍋",description:"lemon",category:"Food & Drink",aliases:["lemon"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🍌",description:"banana",category:"Food & Drink",aliases:["banana"],tags:["fruit"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🍍",description:"pineapple",category:"Food & Drink",aliases:["pineapple"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🥭",description:"mango",category:"Food & Drink",aliases:["mango"],tags:[],unicode_version:"11.0",ios_version:"12.1"},{emoji:"🍎",description:"red apple",category:"Food & Drink",aliases:["apple"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🍏",description:"green apple",category:"Food & Drink",aliases:["green_apple"],tags:["fruit"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🍐",description:"pear",category:"Food & Drink",aliases:["pear"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🍑",description:"peach",category:"Food & Drink",aliases:["peach"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🍒",description:"cherries",category:"Food & Drink",aliases:["cherries"],tags:["fruit"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🍓",description:"strawberry",category:"Food & Drink",aliases:["strawberry"],tags:["fruit"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🫐",description:"blueberries",category:"Food & Drink",aliases:["blueberries"],tags:[],unicode_version:"13.0",ios_version:"14.0"},{emoji:"🥝",description:"kiwi fruit",category:"Food & Drink",aliases:["kiwi_fruit"],tags:[],unicode_version:"9.0",ios_version:"10.2"},{emoji:"🍅",description:"tomato",category:"Food & Drink",aliases:["tomato"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🫒",description:"olive",category:"Food & Drink",aliases:["olive"],tags:[],unicode_version:"13.0",ios_version:"14.0"},{emoji:"🥥",description:"coconut",category:"Food & Drink",aliases:["coconut"],tags:[],unicode_version:"11.0",ios_version:"12.1"},{emoji:"🥑",description:"avocado",category:"Food & Drink",aliases:["avocado"],tags:[],unicode_version:"9.0",ios_version:"10.2"},{emoji:"🍆",description:"eggplant",category:"Food & Drink",aliases:["eggplant"],tags:["aubergine"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🥔",description:"potato",category:"Food & Drink",aliases:["potato"],tags:[],unicode_version:"9.0",ios_version:"10.2"},{emoji:"🥕",description:"carrot",category:"Food & Drink",aliases:["carrot"],tags:[],unicode_version:"9.0",ios_version:"10.2"},{emoji:"🌽",description:"ear of corn",category:"Food & Drink",aliases:["corn"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🌶️",description:"hot pepper",category:"Food & Drink",aliases:["hot_pepper"],tags:["spicy"],unicode_version:"7.0",ios_version:"9.1"},{emoji:"🫑",description:"bell pepper",category:"Food & Drink",aliases:["bell_pepper"],tags:[],unicode_version:"13.0",ios_version:"14.0"},{emoji:"🥒",description:"cucumber",category:"Food & Drink",aliases:["cucumber"],tags:[],unicode_version:"9.0",ios_version:"10.2"},{emoji:"🥬",description:"leafy green",category:"Food & Drink",aliases:["leafy_green"],tags:[],unicode_version:"11.0",ios_version:"12.1"},{emoji:"🥦",description:"broccoli",category:"Food & Drink",aliases:["broccoli"],tags:[],unicode_version:"11.0",ios_version:"12.1"},{emoji:"🧄",description:"garlic",category:"Food & Drink",aliases:["garlic"],tags:[],unicode_version:"12.0",ios_version:"13.0"},{emoji:"🧅",description:"onion",category:"Food & Drink",aliases:["onion"],tags:[],unicode_version:"12.0",ios_version:"13.0"},{emoji:"🍄",description:"mushroom",category:"Food & Drink",aliases:["mushroom"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🥜",description:"peanuts",category:"Food & Drink",aliases:["peanuts"],tags:[],unicode_version:"9.0",ios_version:"10.2"},{emoji:"🌰",description:"chestnut",category:"Food & Drink",aliases:["chestnut"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🍞",description:"bread",category:"Food & Drink",aliases:["bread"],tags:["toast"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🥐",description:"croissant",category:"Food & Drink",aliases:["croissant"],tags:[],unicode_version:"9.0",ios_version:"10.2"},{emoji:"🥖",description:"baguette bread",category:"Food & Drink",aliases:["baguette_bread"],tags:[],unicode_version:"9.0",ios_version:"10.2"},{emoji:"🫓",description:"flatbread",category:"Food & Drink",aliases:["flatbread"],tags:[],unicode_version:"13.0",ios_version:"14.0"},{emoji:"🥨",description:"pretzel",category:"Food & Drink",aliases:["pretzel"],tags:[],unicode_version:"11.0",ios_version:"12.1"},{emoji:"🥯",description:"bagel",category:"Food & Drink",aliases:["bagel"],tags:[],unicode_version:"11.0",ios_version:"12.1"},{emoji:"🥞",description:"pancakes",category:"Food & Drink",aliases:["pancakes"],tags:[],unicode_version:"9.0",ios_version:"10.2"},{emoji:"🧇",description:"waffle",category:"Food & Drink",aliases:["waffle"],tags:[],unicode_version:"12.0",ios_version:"13.0"},{emoji:"🧀",description:"cheese wedge",category:"Food & Drink",aliases:["cheese"],tags:[],unicode_version:"8.0",ios_version:"9.1"},{emoji:"🍖",description:"meat on bone",category:"Food & Drink",aliases:["meat_on_bone"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🍗",description:"poultry leg",category:"Food & Drink",aliases:["poultry_leg"],tags:["meat","chicken"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🥩",description:"cut of meat",category:"Food & Drink",aliases:["cut_of_meat"],tags:[],unicode_version:"11.0",ios_version:"12.1"},{emoji:"🥓",description:"bacon",category:"Food & Drink",aliases:["bacon"],tags:[],unicode_version:"9.0",ios_version:"10.2"},{emoji:"🍔",description:"hamburger",category:"Food & Drink",aliases:["hamburger"],tags:["burger"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🍟",description:"french fries",category:"Food & Drink",aliases:["fries"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🍕",description:"pizza",category:"Food & Drink",aliases:["pizza"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🌭",description:"hot dog",category:"Food & Drink",aliases:["hotdog"],tags:[],unicode_version:"8.0",ios_version:"9.1"},{emoji:"🥪",description:"sandwich",category:"Food & Drink",aliases:["sandwich"],tags:[],unicode_version:"11.0",ios_version:"12.1"},{emoji:"🌮",description:"taco",category:"Food & Drink",aliases:["taco"],tags:[],unicode_version:"8.0",ios_version:"9.1"},{emoji:"🌯",description:"burrito",category:"Food & Drink",aliases:["burrito"],tags:[],unicode_version:"8.0",ios_version:"9.1"},{emoji:"🫔",description:"tamale",category:"Food & Drink",aliases:["tamale"],tags:[],unicode_version:"13.0",ios_version:"14.0"},{emoji:"🥙",description:"stuffed flatbread",category:"Food & Drink",aliases:["stuffed_flatbread"],tags:[],unicode_version:"9.0",ios_version:"10.2"},{emoji:"🧆",description:"falafel",category:"Food & Drink",aliases:["falafel"],tags:[],unicode_version:"12.0",ios_version:"13.0"},{emoji:"🥚",description:"egg",category:"Food & Drink",aliases:["egg"],tags:[],unicode_version:"9.0",ios_version:"10.2"},{emoji:"🍳",description:"cooking",category:"Food & Drink",aliases:["fried_egg"],tags:["breakfast"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🥘",description:"shallow pan of food",category:"Food & Drink",aliases:["shallow_pan_of_food"],tags:["paella","curry"],unicode_version:"",ios_version:"10.2"},{emoji:"🍲",description:"pot of food",category:"Food & Drink",aliases:["stew"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🫕",description:"fondue",category:"Food & Drink",aliases:["fondue"],tags:[],unicode_version:"13.0",ios_version:"14.0"},{emoji:"🥣",description:"bowl with spoon",category:"Food & Drink",aliases:["bowl_with_spoon"],tags:[],unicode_version:"11.0",ios_version:"12.1"},{emoji:"🥗",description:"green salad",category:"Food & Drink",aliases:["green_salad"],tags:[],unicode_version:"9.0",ios_version:"10.2"},{emoji:"🍿",description:"popcorn",category:"Food & Drink",aliases:["popcorn"],tags:[],unicode_version:"8.0",ios_version:"9.1"},{emoji:"🧈",description:"butter",category:"Food & Drink",aliases:["butter"],tags:[],unicode_version:"12.0",ios_version:"13.0"},{emoji:"🧂",description:"salt",category:"Food & Drink",aliases:["salt"],tags:[],unicode_version:"11.0",ios_version:"12.1"},{emoji:"🥫",description:"canned food",category:"Food & Drink",aliases:["canned_food"],tags:[],unicode_version:"11.0",ios_version:"12.1"},{emoji:"🍱",description:"bento box",category:"Food & Drink",aliases:["bento"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🍘",description:"rice cracker",category:"Food & Drink",aliases:["rice_cracker"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🍙",description:"rice ball",category:"Food & Drink",aliases:["rice_ball"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🍚",description:"cooked rice",category:"Food & Drink",aliases:["rice"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🍛",description:"curry rice",category:"Food & Drink",aliases:["curry"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🍜",description:"steaming bowl",category:"Food & Drink",aliases:["ramen"],tags:["noodle"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🍝",description:"spaghetti",category:"Food & Drink",aliases:["spaghetti"],tags:["pasta"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🍠",description:"roasted sweet potato",category:"Food & Drink",aliases:["sweet_potato"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🍢",description:"oden",category:"Food & Drink",aliases:["oden"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🍣",description:"sushi",category:"Food & Drink",aliases:["sushi"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🍤",description:"fried shrimp",category:"Food & Drink",aliases:["fried_shrimp"],tags:["tempura"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🍥",description:"fish cake with swirl",category:"Food & Drink",aliases:["fish_cake"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🥮",description:"moon cake",category:"Food & Drink",aliases:["moon_cake"],tags:[],unicode_version:"11.0",ios_version:"12.1"},{emoji:"🍡",description:"dango",category:"Food & Drink",aliases:["dango"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🥟",description:"dumpling",category:"Food & Drink",aliases:["dumpling"],tags:[],unicode_version:"11.0",ios_version:"12.1"},{emoji:"🥠",description:"fortune cookie",category:"Food & Drink",aliases:["fortune_cookie"],tags:[],unicode_version:"11.0",ios_version:"12.1"},{emoji:"🥡",description:"takeout box",category:"Food & Drink",aliases:["takeout_box"],tags:[],unicode_version:"11.0",ios_version:"12.1"},{emoji:"🦀",description:"crab",category:"Food & Drink",aliases:["crab"],tags:[],unicode_version:"8.0",ios_version:"9.1"},{emoji:"🦞",description:"lobster",category:"Food & Drink",aliases:["lobster"],tags:[],unicode_version:"11.0",ios_version:"12.1"},{emoji:"🦐",description:"shrimp",category:"Food & Drink",aliases:["shrimp"],tags:[],unicode_version:"9.0",ios_version:"10.2"},{emoji:"🦑",description:"squid",category:"Food & Drink",aliases:["squid"],tags:[],unicode_version:"9.0",ios_version:"10.2"},{emoji:"🦪",description:"oyster",category:"Food & Drink",aliases:["oyster"],tags:[],unicode_version:"12.0",ios_version:"13.0"},{emoji:"🍦",description:"soft ice cream",category:"Food & Drink",aliases:["icecream"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🍧",description:"shaved ice",category:"Food & Drink",aliases:["shaved_ice"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🍨",description:"ice cream",category:"Food & Drink",aliases:["ice_cream"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🍩",description:"doughnut",category:"Food & Drink",aliases:["doughnut"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🍪",description:"cookie",category:"Food & Drink",aliases:["cookie"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🎂",description:"birthday cake",category:"Food & Drink",aliases:["birthday"],tags:["party"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🍰",description:"shortcake",category:"Food & Drink",aliases:["cake"],tags:["dessert"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🧁",description:"cupcake",category:"Food & Drink",aliases:["cupcake"],tags:[],unicode_version:"11.0",ios_version:"12.1"},{emoji:"🥧",description:"pie",category:"Food & Drink",aliases:["pie"],tags:[],unicode_version:"11.0",ios_version:"12.1"},{emoji:"🍫",description:"chocolate bar",category:"Food & Drink",aliases:["chocolate_bar"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🍬",description:"candy",category:"Food & Drink",aliases:["candy"],tags:["sweet"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🍭",description:"lollipop",category:"Food & Drink",aliases:["lollipop"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🍮",description:"custard",category:"Food & Drink",aliases:["custard"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🍯",description:"honey pot",category:"Food & Drink",aliases:["honey_pot"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🍼",description:"baby bottle",category:"Food & Drink",aliases:["baby_bottle"],tags:["milk"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🥛",description:"glass of milk",category:"Food & Drink",aliases:["milk_glass"],tags:[],unicode_version:"9.0",ios_version:"10.2"},{emoji:"☕",description:"hot beverage",category:"Food & Drink",aliases:["coffee"],tags:["cafe","espresso"],unicode_version:"4.0",ios_version:"6.0"},{emoji:"🫖",description:"teapot",category:"Food & Drink",aliases:["teapot"],tags:[],unicode_version:"13.0",ios_version:"14.0"},{emoji:"🍵",description:"teacup without handle",category:"Food & Drink",aliases:["tea"],tags:["green","breakfast"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🍶",description:"sake",category:"Food & Drink",aliases:["sake"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🍾",description:"bottle with popping cork",category:"Food & Drink",aliases:["champagne"],tags:["bottle","bubbly","celebration"],unicode_version:"8.0",ios_version:"9.1"},{emoji:"🍷",description:"wine glass",category:"Food & Drink",aliases:["wine_glass"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🍸",description:"cocktail glass",category:"Food & Drink",aliases:["cocktail"],tags:["drink"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🍹",description:"tropical drink",category:"Food & Drink",aliases:["tropical_drink"],tags:["summer","vacation"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🍺",description:"beer mug",category:"Food & Drink",aliases:["beer"],tags:["drink"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🍻",description:"clinking beer mugs",category:"Food & Drink",aliases:["beers"],tags:["drinks"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🥂",description:"clinking glasses",category:"Food & Drink",aliases:["clinking_glasses"],tags:["cheers","toast"],unicode_version:"9.0",ios_version:"10.2"},{emoji:"🥃",description:"tumbler glass",category:"Food & Drink",aliases:["tumbler_glass"],tags:["whisky"],unicode_version:"9.0",ios_version:"10.2"},{emoji:"🥤",description:"cup with straw",category:"Food & Drink",aliases:["cup_with_straw"],tags:[],unicode_version:"11.0",ios_version:"12.1"},{emoji:"🧋",description:"bubble tea",category:"Food & Drink",aliases:["bubble_tea"],tags:[],unicode_version:"13.0",ios_version:"14.0"},{emoji:"🧃",description:"beverage box",category:"Food & Drink",aliases:["beverage_box"],tags:[],unicode_version:"12.0",ios_version:"13.0"},{emoji:"🧉",description:"mate",category:"Food & Drink",aliases:["mate"],tags:[],unicode_version:"12.0",ios_version:"13.0"},{emoji:"🧊",description:"ice",category:"Food & Drink",aliases:["ice_cube"],tags:[],unicode_version:"12.0",ios_version:"13.0"},{emoji:"🥢",description:"chopsticks",category:"Food & Drink",aliases:["chopsticks"],tags:[],unicode_version:"11.0",ios_version:"12.1"},{emoji:"🍽️",description:"fork and knife with plate",category:"Food & Drink",aliases:["plate_with_cutlery"],tags:["dining","dinner"],unicode_version:"7.0",ios_version:"9.1"},{emoji:"🍴",description:"fork and knife",category:"Food & Drink",aliases:["fork_and_knife"],tags:["cutlery"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🥄",description:"spoon",category:"Food & Drink",aliases:["spoon"],tags:[],unicode_version:"9.0",ios_version:"10.2"},{emoji:"🔪",description:"kitchen knife",category:"Food & Drink",aliases:["hocho","knife"],tags:["cut","chop"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🏺",description:"amphora",category:"Food & Drink",aliases:["amphora"],tags:[],unicode_version:"8.0",ios_version:"9.1"},{emoji:"🌍",description:"globe showing Europe-Africa",category:"Travel & Places",aliases:["earth_africa"],tags:["globe","world","international"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🌎",description:"globe showing Americas",category:"Travel & Places",aliases:["earth_americas"],tags:["globe","world","international"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🌏",description:"globe showing Asia-Australia",category:"Travel & Places",aliases:["earth_asia"],tags:["globe","world","international"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🌐",description:"globe with meridians",category:"Travel & Places",aliases:["globe_with_meridians"],tags:["world","global","international"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🗺️",description:"world map",category:"Travel & Places",aliases:["world_map"],tags:["travel"],unicode_version:"7.0",ios_version:"9.1"},{emoji:"🗾",description:"map of Japan",category:"Travel & Places",aliases:["japan"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🧭",description:"compass",category:"Travel & Places",aliases:["compass"],tags:[],unicode_version:"11.0",ios_version:"12.1"},{emoji:"🏔️",description:"snow-capped mountain",category:"Travel & Places",aliases:["mountain_snow"],tags:[],unicode_version:"7.0",ios_version:"9.1"},{emoji:"⛰️",description:"mountain",category:"Travel & Places",aliases:["mountain"],tags:[],unicode_version:"5.2",ios_version:"9.1"},{emoji:"🌋",description:"volcano",category:"Travel & Places",aliases:["volcano"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🗻",description:"mount fuji",category:"Travel & Places",aliases:["mount_fuji"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🏕️",description:"camping",category:"Travel & Places",aliases:["camping"],tags:[],unicode_version:"7.0",ios_version:"9.1"},{emoji:"🏖️",description:"beach with umbrella",category:"Travel & Places",aliases:["beach_umbrella"],tags:[],unicode_version:"7.0",ios_version:"9.1"},{emoji:"🏜️",description:"desert",category:"Travel & Places",aliases:["desert"],tags:[],unicode_version:"7.0",ios_version:"9.1"},{emoji:"🏝️",description:"desert island",category:"Travel & Places",aliases:["desert_island"],tags:[],unicode_version:"7.0",ios_version:"9.1"},{emoji:"🏞️",description:"national park",category:"Travel & Places",aliases:["national_park"],tags:[],unicode_version:"7.0",ios_version:"9.1"},{emoji:"🏟️",description:"stadium",category:"Travel & Places",aliases:["stadium"],tags:[],unicode_version:"7.0",ios_version:"9.1"},{emoji:"🏛️",description:"classical building",category:"Travel & Places",aliases:["classical_building"],tags:[],unicode_version:"7.0",ios_version:"9.1"},{emoji:"🏗️",description:"building construction",category:"Travel & Places",aliases:["building_construction"],tags:[],unicode_version:"7.0",ios_version:"9.1"},{emoji:"🧱",description:"brick",category:"Travel & Places",aliases:["bricks"],tags:[],unicode_version:"11.0",ios_version:"12.1"},{emoji:"🪨",description:"rock",category:"Travel & Places",aliases:["rock"],tags:[],unicode_version:"13.0",ios_version:"14.0"},{emoji:"🪵",description:"wood",category:"Travel & Places",aliases:["wood"],tags:[],unicode_version:"13.0",ios_version:"14.0"},{emoji:"🛖",description:"hut",category:"Travel & Places",aliases:["hut"],tags:[],unicode_version:"13.0",ios_version:"14.0"},{emoji:"🏘️",description:"houses",category:"Travel & Places",aliases:["houses"],tags:[],unicode_version:"7.0",ios_version:"9.1"},{emoji:"🏚️",description:"derelict house",category:"Travel & Places",aliases:["derelict_house"],tags:[],unicode_version:"7.0",ios_version:"9.1"},{emoji:"🏠",description:"house",category:"Travel & Places",aliases:["house"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🏡",description:"house with garden",category:"Travel & Places",aliases:["house_with_garden"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🏢",description:"office building",category:"Travel & Places",aliases:["office"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🏣",description:"Japanese post office",category:"Travel & Places",aliases:["post_office"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🏤",description:"post office",category:"Travel & Places",aliases:["european_post_office"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🏥",description:"hospital",category:"Travel & Places",aliases:["hospital"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🏦",description:"bank",category:"Travel & Places",aliases:["bank"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🏨",description:"hotel",category:"Travel & Places",aliases:["hotel"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🏩",description:"love hotel",category:"Travel & Places",aliases:["love_hotel"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🏪",description:"convenience store",category:"Travel & Places",aliases:["convenience_store"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🏫",description:"school",category:"Travel & Places",aliases:["school"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🏬",description:"department store",category:"Travel & Places",aliases:["department_store"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🏭",description:"factory",category:"Travel & Places",aliases:["factory"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🏯",description:"Japanese castle",category:"Travel & Places",aliases:["japanese_castle"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🏰",description:"castle",category:"Travel & Places",aliases:["european_castle"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"💒",description:"wedding",category:"Travel & Places",aliases:["wedding"],tags:["marriage"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🗼",description:"Tokyo tower",category:"Travel & Places",aliases:["tokyo_tower"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🗽",description:"Statue of Liberty",category:"Travel & Places",aliases:["statue_of_liberty"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"⛪",description:"church",category:"Travel & Places",aliases:["church"],tags:[],unicode_version:"5.2",ios_version:"6.0"},{emoji:"🕌",description:"mosque",category:"Travel & Places",aliases:["mosque"],tags:[],unicode_version:"8.0",ios_version:"9.1"},{emoji:"🛕",description:"hindu temple",category:"Travel & Places",aliases:["hindu_temple"],tags:[],unicode_version:"12.0",ios_version:"13.0"},{emoji:"🕍",description:"synagogue",category:"Travel & Places",aliases:["synagogue"],tags:[],unicode_version:"8.0",ios_version:"9.1"},{emoji:"⛩️",description:"shinto shrine",category:"Travel & Places",aliases:["shinto_shrine"],tags:[],unicode_version:"5.2",ios_version:"9.1"},{emoji:"🕋",description:"kaaba",category:"Travel & Places",aliases:["kaaba"],tags:[],unicode_version:"8.0",ios_version:"9.1"},{emoji:"⛲",description:"fountain",category:"Travel & Places",aliases:["fountain"],tags:[],unicode_version:"5.2",ios_version:"6.0"},{emoji:"⛺",description:"tent",category:"Travel & Places",aliases:["tent"],tags:["camping"],unicode_version:"5.2",ios_version:"6.0"},{emoji:"🌁",description:"foggy",category:"Travel & Places",aliases:["foggy"],tags:["karl"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🌃",description:"night with stars",category:"Travel & Places",aliases:["night_with_stars"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🏙️",description:"cityscape",category:"Travel & Places",aliases:["cityscape"],tags:["skyline"],unicode_version:"7.0",ios_version:"9.1"},{emoji:"🌄",description:"sunrise over mountains",category:"Travel & Places",aliases:["sunrise_over_mountains"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🌅",description:"sunrise",category:"Travel & Places",aliases:["sunrise"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🌆",description:"cityscape at dusk",category:"Travel & Places",aliases:["city_sunset"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🌇",description:"sunset",category:"Travel & Places",aliases:["city_sunrise"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🌉",description:"bridge at night",category:"Travel & Places",aliases:["bridge_at_night"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"♨️",description:"hot springs",category:"Travel & Places",aliases:["hotsprings"],tags:[],unicode_version:"",ios_version:"6.0"},{emoji:"🎠",description:"carousel horse",category:"Travel & Places",aliases:["carousel_horse"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🎡",description:"ferris wheel",category:"Travel & Places",aliases:["ferris_wheel"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🎢",description:"roller coaster",category:"Travel & Places",aliases:["roller_coaster"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"💈",description:"barber pole",category:"Travel & Places",aliases:["barber"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🎪",description:"circus tent",category:"Travel & Places",aliases:["circus_tent"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🚂",description:"locomotive",category:"Travel & Places",aliases:["steam_locomotive"],tags:["train"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🚃",description:"railway car",category:"Travel & Places",aliases:["railway_car"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🚄",description:"high-speed train",category:"Travel & Places",aliases:["bullettrain_side"],tags:["train"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🚅",description:"bullet train",category:"Travel & Places",aliases:["bullettrain_front"],tags:["train"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🚆",description:"train",category:"Travel & Places",aliases:["train2"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🚇",description:"metro",category:"Travel & Places",aliases:["metro"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🚈",description:"light rail",category:"Travel & Places",aliases:["light_rail"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🚉",description:"station",category:"Travel & Places",aliases:["station"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🚊",description:"tram",category:"Travel & Places",aliases:["tram"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🚝",description:"monorail",category:"Travel & Places",aliases:["monorail"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🚞",description:"mountain railway",category:"Travel & Places",aliases:["mountain_railway"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🚋",description:"tram car",category:"Travel & Places",aliases:["train"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🚌",description:"bus",category:"Travel & Places",aliases:["bus"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🚍",description:"oncoming bus",category:"Travel & Places",aliases:["oncoming_bus"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🚎",description:"trolleybus",category:"Travel & Places",aliases:["trolleybus"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🚐",description:"minibus",category:"Travel & Places",aliases:["minibus"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🚑",description:"ambulance",category:"Travel & Places",aliases:["ambulance"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🚒",description:"fire engine",category:"Travel & Places",aliases:["fire_engine"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🚓",description:"police car",category:"Travel & Places",aliases:["police_car"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🚔",description:"oncoming police car",category:"Travel & Places",aliases:["oncoming_police_car"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🚕",description:"taxi",category:"Travel & Places",aliases:["taxi"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🚖",description:"oncoming taxi",category:"Travel & Places",aliases:["oncoming_taxi"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🚗",description:"automobile",category:"Travel & Places",aliases:["car","red_car"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🚘",description:"oncoming automobile",category:"Travel & Places",aliases:["oncoming_automobile"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🚙",description:"sport utility vehicle",category:"Travel & Places",aliases:["blue_car"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🛻",description:"pickup truck",category:"Travel & Places",aliases:["pickup_truck"],tags:[],unicode_version:"13.0",ios_version:"14.0"},{emoji:"🚚",description:"delivery truck",category:"Travel & Places",aliases:["truck"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🚛",description:"articulated lorry",category:"Travel & Places",aliases:["articulated_lorry"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🚜",description:"tractor",category:"Travel & Places",aliases:["tractor"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🏎️",description:"racing car",category:"Travel & Places",aliases:["racing_car"],tags:[],unicode_version:"7.0",ios_version:"9.1"},{emoji:"🏍️",description:"motorcycle",category:"Travel & Places",aliases:["motorcycle"],tags:[],unicode_version:"7.0",ios_version:"9.1"},{emoji:"🛵",description:"motor scooter",category:"Travel & Places",aliases:["motor_scooter"],tags:[],unicode_version:"9.0",ios_version:"10.2"},{emoji:"🦽",description:"manual wheelchair",category:"Travel & Places",aliases:["manual_wheelchair"],tags:[],unicode_version:"12.0",ios_version:"13.0"},{emoji:"🦼",description:"motorized wheelchair",category:"Travel & Places",aliases:["motorized_wheelchair"],tags:[],unicode_version:"12.0",ios_version:"13.0"},{emoji:"🛺",description:"auto rickshaw",category:"Travel & Places",aliases:["auto_rickshaw"],tags:[],unicode_version:"12.0",ios_version:"13.0"},{emoji:"🚲",description:"bicycle",category:"Travel & Places",aliases:["bike"],tags:["bicycle"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🛴",description:"kick scooter",category:"Travel & Places",aliases:["kick_scooter"],tags:[],unicode_version:"9.0",ios_version:"10.2"},{emoji:"🛹",description:"skateboard",category:"Travel & Places",aliases:["skateboard"],tags:[],unicode_version:"11.0",ios_version:"12.1"},{emoji:"🛼",description:"roller skate",category:"Travel & Places",aliases:["roller_skate"],tags:[],unicode_version:"13.0",ios_version:"14.0"},{emoji:"🚏",description:"bus stop",category:"Travel & Places",aliases:["busstop"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🛣️",description:"motorway",category:"Travel & Places",aliases:["motorway"],tags:[],unicode_version:"7.0",ios_version:"9.1"},{emoji:"🛤️",description:"railway track",category:"Travel & Places",aliases:["railway_track"],tags:[],unicode_version:"7.0",ios_version:"9.1"},{emoji:"🛢️",description:"oil drum",category:"Travel & Places",aliases:["oil_drum"],tags:[],unicode_version:"7.0",ios_version:"9.1"},{emoji:"⛽",description:"fuel pump",category:"Travel & Places",aliases:["fuelpump"],tags:[],unicode_version:"5.2",ios_version:"6.0"},{emoji:"🚨",description:"police car light",category:"Travel & Places",aliases:["rotating_light"],tags:["911","emergency"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🚥",description:"horizontal traffic light",category:"Travel & Places",aliases:["traffic_light"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🚦",description:"vertical traffic light",category:"Travel & Places",aliases:["vertical_traffic_light"],tags:["semaphore"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🛑",description:"stop sign",category:"Travel & Places",aliases:["stop_sign"],tags:[],unicode_version:"9.0",ios_version:"10.2"},{emoji:"🚧",description:"construction",category:"Travel & Places",aliases:["construction"],tags:["wip"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"⚓",description:"anchor",category:"Travel & Places",aliases:["anchor"],tags:["ship"],unicode_version:"4.1",ios_version:"6.0"},{emoji:"⛵",description:"sailboat",category:"Travel & Places",aliases:["boat","sailboat"],tags:[],unicode_version:"5.2",ios_version:"6.0"},{emoji:"🛶",description:"canoe",category:"Travel & Places",aliases:["canoe"],tags:[],unicode_version:"9.0",ios_version:"10.2"},{emoji:"🚤",description:"speedboat",category:"Travel & Places",aliases:["speedboat"],tags:["ship"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🛳️",description:"passenger ship",category:"Travel & Places",aliases:["passenger_ship"],tags:["cruise"],unicode_version:"7.0",ios_version:"9.1"},{emoji:"⛴️",description:"ferry",category:"Travel & Places",aliases:["ferry"],tags:[],unicode_version:"5.2",ios_version:"9.1"},{emoji:"🛥️",description:"motor boat",category:"Travel & Places",aliases:["motor_boat"],tags:[],unicode_version:"7.0",ios_version:"9.1"},{emoji:"🚢",description:"ship",category:"Travel & Places",aliases:["ship"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"✈️",description:"airplane",category:"Travel & Places",aliases:["airplane"],tags:["flight"],unicode_version:"",ios_version:"6.0"},{emoji:"🛩️",description:"small airplane",category:"Travel & Places",aliases:["small_airplane"],tags:["flight"],unicode_version:"7.0",ios_version:"9.1"},{emoji:"🛫",description:"airplane departure",category:"Travel & Places",aliases:["flight_departure"],tags:[],unicode_version:"7.0",ios_version:"9.1"},{emoji:"🛬",description:"airplane arrival",category:"Travel & Places",aliases:["flight_arrival"],tags:[],unicode_version:"7.0",ios_version:"9.1"},{emoji:"🪂",description:"parachute",category:"Travel & Places",aliases:["parachute"],tags:[],unicode_version:"12.0",ios_version:"13.0"},{emoji:"💺",description:"seat",category:"Travel & Places",aliases:["seat"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🚁",description:"helicopter",category:"Travel & Places",aliases:["helicopter"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🚟",description:"suspension railway",category:"Travel & Places",aliases:["suspension_railway"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🚠",description:"mountain cableway",category:"Travel & Places",aliases:["mountain_cableway"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🚡",description:"aerial tramway",category:"Travel & Places",aliases:["aerial_tramway"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🛰️",description:"satellite",category:"Travel & Places",aliases:["artificial_satellite"],tags:["orbit","space"],unicode_version:"7.0",ios_version:"9.1"},{emoji:"🚀",description:"rocket",category:"Travel & Places",aliases:["rocket"],tags:["ship","launch"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🛸",description:"flying saucer",category:"Travel & Places",aliases:["flying_saucer"],tags:["ufo"],unicode_version:"11.0",ios_version:"12.1"},{emoji:"🛎️",description:"bellhop bell",category:"Travel & Places",aliases:["bellhop_bell"],tags:[],unicode_version:"7.0",ios_version:"9.1"},{emoji:"🧳",description:"luggage",category:"Travel & Places",aliases:["luggage"],tags:[],unicode_version:"11.0",ios_version:"12.1"},{emoji:"⌛",description:"hourglass done",category:"Travel & Places",aliases:["hourglass"],tags:["time"],unicode_version:"",ios_version:"6.0"},{emoji:"⏳",description:"hourglass not done",category:"Travel & Places",aliases:["hourglass_flowing_sand"],tags:["time"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"⌚",description:"watch",category:"Travel & Places",aliases:["watch"],tags:["time"],unicode_version:"",ios_version:"6.0"},{emoji:"⏰",description:"alarm clock",category:"Travel & Places",aliases:["alarm_clock"],tags:["morning"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"⏱️",description:"stopwatch",category:"Travel & Places",aliases:["stopwatch"],tags:[],unicode_version:"6.0",ios_version:"9.1"},{emoji:"⏲️",description:"timer clock",category:"Travel & Places",aliases:["timer_clock"],tags:[],unicode_version:"6.0",ios_version:"9.1"},{emoji:"🕰️",description:"mantelpiece clock",category:"Travel & Places",aliases:["mantelpiece_clock"],tags:[],unicode_version:"7.0",ios_version:"9.1"},{emoji:"🕛",description:"twelve o’clock",category:"Travel & Places",aliases:["clock12"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🕧",description:"twelve-thirty",category:"Travel & Places",aliases:["clock1230"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🕐",description:"one o’clock",category:"Travel & Places",aliases:["clock1"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🕜",description:"one-thirty",category:"Travel & Places",aliases:["clock130"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🕑",description:"two o’clock",category:"Travel & Places",aliases:["clock2"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🕝",description:"two-thirty",category:"Travel & Places",aliases:["clock230"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🕒",description:"three o’clock",category:"Travel & Places",aliases:["clock3"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🕞",description:"three-thirty",category:"Travel & Places",aliases:["clock330"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🕓",description:"four o’clock",category:"Travel & Places",aliases:["clock4"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🕟",description:"four-thirty",category:"Travel & Places",aliases:["clock430"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🕔",description:"five o’clock",category:"Travel & Places",aliases:["clock5"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🕠",description:"five-thirty",category:"Travel & Places",aliases:["clock530"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🕕",description:"six o’clock",category:"Travel & Places",aliases:["clock6"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🕡",description:"six-thirty",category:"Travel & Places",aliases:["clock630"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🕖",description:"seven o’clock",category:"Travel & Places",aliases:["clock7"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🕢",description:"seven-thirty",category:"Travel & Places",aliases:["clock730"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🕗",description:"eight o’clock",category:"Travel & Places",aliases:["clock8"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🕣",description:"eight-thirty",category:"Travel & Places",aliases:["clock830"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🕘",description:"nine o’clock",category:"Travel & Places",aliases:["clock9"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🕤",description:"nine-thirty",category:"Travel & Places",aliases:["clock930"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🕙",description:"ten o’clock",category:"Travel & Places",aliases:["clock10"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🕥",description:"ten-thirty",category:"Travel & Places",aliases:["clock1030"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🕚",description:"eleven o’clock",category:"Travel & Places",aliases:["clock11"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🕦",description:"eleven-thirty",category:"Travel & Places",aliases:["clock1130"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🌑",description:"new moon",category:"Travel & Places",aliases:["new_moon"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🌒",description:"waxing crescent moon",category:"Travel & Places",aliases:["waxing_crescent_moon"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🌓",description:"first quarter moon",category:"Travel & Places",aliases:["first_quarter_moon"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🌔",description:"waxing gibbous moon",category:"Travel & Places",aliases:["moon","waxing_gibbous_moon"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🌕",description:"full moon",category:"Travel & Places",aliases:["full_moon"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🌖",description:"waning gibbous moon",category:"Travel & Places",aliases:["waning_gibbous_moon"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🌗",description:"last quarter moon",category:"Travel & Places",aliases:["last_quarter_moon"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🌘",description:"waning crescent moon",category:"Travel & Places",aliases:["waning_crescent_moon"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🌙",description:"crescent moon",category:"Travel & Places",aliases:["crescent_moon"],tags:["night"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🌚",description:"new moon face",category:"Travel & Places",aliases:["new_moon_with_face"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🌛",description:"first quarter moon face",category:"Travel & Places",aliases:["first_quarter_moon_with_face"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🌜",description:"last quarter moon face",category:"Travel & Places",aliases:["last_quarter_moon_with_face"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🌡️",description:"thermometer",category:"Travel & Places",aliases:["thermometer"],tags:[],unicode_version:"7.0",ios_version:"9.1"},{emoji:"☀️",description:"sun",category:"Travel & Places",aliases:["sunny"],tags:["weather"],unicode_version:"",ios_version:"6.0"},{emoji:"🌝",description:"full moon face",category:"Travel & Places",aliases:["full_moon_with_face"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🌞",description:"sun with face",category:"Travel & Places",aliases:["sun_with_face"],tags:["summer"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🪐",description:"ringed planet",category:"Travel & Places",aliases:["ringed_planet"],tags:[],unicode_version:"12.0",ios_version:"13.0"},{emoji:"⭐",description:"star",category:"Travel & Places",aliases:["star"],tags:[],unicode_version:"5.1",ios_version:"6.0"},{emoji:"🌟",description:"glowing star",category:"Travel & Places",aliases:["star2"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🌠",description:"shooting star",category:"Travel & Places",aliases:["stars"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🌌",description:"milky way",category:"Travel & Places",aliases:["milky_way"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"☁️",description:"cloud",category:"Travel & Places",aliases:["cloud"],tags:[],unicode_version:"",ios_version:"6.0"},{emoji:"⛅",description:"sun behind cloud",category:"Travel & Places",aliases:["partly_sunny"],tags:["weather","cloud"],unicode_version:"5.2",ios_version:"6.0"},{emoji:"⛈️",description:"cloud with lightning and rain",category:"Travel & Places",aliases:["cloud_with_lightning_and_rain"],tags:[],unicode_version:"5.2",ios_version:"9.1"},{emoji:"🌤️",description:"sun behind small cloud",category:"Travel & Places",aliases:["sun_behind_small_cloud"],tags:[],unicode_version:"7.0",ios_version:"9.1"},{emoji:"🌥️",description:"sun behind large cloud",category:"Travel & Places",aliases:["sun_behind_large_cloud"],tags:[],unicode_version:"7.0",ios_version:"9.1"},{emoji:"🌦️",description:"sun behind rain cloud",category:"Travel & Places",aliases:["sun_behind_rain_cloud"],tags:[],unicode_version:"7.0",ios_version:"9.1"},{emoji:"🌧️",description:"cloud with rain",category:"Travel & Places",aliases:["cloud_with_rain"],tags:[],unicode_version:"7.0",ios_version:"9.1"},{emoji:"🌨️",description:"cloud with snow",category:"Travel & Places",aliases:["cloud_with_snow"],tags:[],unicode_version:"7.0",ios_version:"9.1"},{emoji:"🌩️",description:"cloud with lightning",category:"Travel & Places",aliases:["cloud_with_lightning"],tags:[],unicode_version:"7.0",ios_version:"9.1"},{emoji:"🌪️",description:"tornado",category:"Travel & Places",aliases:["tornado"],tags:[],unicode_version:"7.0",ios_version:"9.1"},{emoji:"🌫️",description:"fog",category:"Travel & Places",aliases:["fog"],tags:[],unicode_version:"7.0",ios_version:"9.1"},{emoji:"🌬️",description:"wind face",category:"Travel & Places",aliases:["wind_face"],tags:[],unicode_version:"7.0",ios_version:"9.1"},{emoji:"🌀",description:"cyclone",category:"Travel & Places",aliases:["cyclone"],tags:["swirl"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🌈",description:"rainbow",category:"Travel & Places",aliases:["rainbow"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🌂",description:"closed umbrella",category:"Travel & Places",aliases:["closed_umbrella"],tags:["weather","rain"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"☂️",description:"umbrella",category:"Travel & Places",aliases:["open_umbrella"],tags:[],unicode_version:"",ios_version:"9.1"},{emoji:"☔",description:"umbrella with rain drops",category:"Travel & Places",aliases:["umbrella"],tags:["rain","weather"],unicode_version:"4.0",ios_version:"6.0"},{emoji:"⛱️",description:"umbrella on ground",category:"Travel & Places",aliases:["parasol_on_ground"],tags:["beach_umbrella"],unicode_version:"5.2",ios_version:"9.1"},{emoji:"⚡",description:"high voltage",category:"Travel & Places",aliases:["zap"],tags:["lightning","thunder"],unicode_version:"4.0",ios_version:"6.0"},{emoji:"❄️",description:"snowflake",category:"Travel & Places",aliases:["snowflake"],tags:["winter","cold","weather"],unicode_version:"",ios_version:"6.0"},{emoji:"☃️",description:"snowman",category:"Travel & Places",aliases:["snowman_with_snow"],tags:["winter","christmas"],unicode_version:"",ios_version:"9.1"},{emoji:"⛄",description:"snowman without snow",category:"Travel & Places",aliases:["snowman"],tags:["winter"],unicode_version:"5.2",ios_version:"6.0"},{emoji:"☄️",description:"comet",category:"Travel & Places",aliases:["comet"],tags:[],unicode_version:"",ios_version:"9.1"},{emoji:"🔥",description:"fire",category:"Travel & Places",aliases:["fire"],tags:["burn"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"💧",description:"droplet",category:"Travel & Places",aliases:["droplet"],tags:["water"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🌊",description:"water wave",category:"Travel & Places",aliases:["ocean"],tags:["sea"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🎃",description:"jack-o-lantern",category:"Activities",aliases:["jack_o_lantern"],tags:["halloween"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🎄",description:"Christmas tree",category:"Activities",aliases:["christmas_tree"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🎆",description:"fireworks",category:"Activities",aliases:["fireworks"],tags:["festival","celebration"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🎇",description:"sparkler",category:"Activities",aliases:["sparkler"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🧨",description:"firecracker",category:"Activities",aliases:["firecracker"],tags:[],unicode_version:"11.0",ios_version:"12.1"},{emoji:"✨",description:"sparkles",category:"Activities",aliases:["sparkles"],tags:["shiny"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🎈",description:"balloon",category:"Activities",aliases:["balloon"],tags:["party","birthday"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🎉",description:"party popper",category:"Activities",aliases:["tada"],tags:["hooray","party"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🎊",description:"confetti ball",category:"Activities",aliases:["confetti_ball"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🎋",description:"tanabata tree",category:"Activities",aliases:["tanabata_tree"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🎍",description:"pine decoration",category:"Activities",aliases:["bamboo"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🎎",description:"Japanese dolls",category:"Activities",aliases:["dolls"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🎏",description:"carp streamer",category:"Activities",aliases:["flags"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🎐",description:"wind chime",category:"Activities",aliases:["wind_chime"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🎑",description:"moon viewing ceremony",category:"Activities",aliases:["rice_scene"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🧧",description:"red envelope",category:"Activities",aliases:["red_envelope"],tags:[],unicode_version:"11.0",ios_version:"12.1"},{emoji:"🎀",description:"ribbon",category:"Activities",aliases:["ribbon"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🎁",description:"wrapped gift",category:"Activities",aliases:["gift"],tags:["present","birthday","christmas"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🎗️",description:"reminder ribbon",category:"Activities",aliases:["reminder_ribbon"],tags:[],unicode_version:"7.0",ios_version:"9.1"},{emoji:"🎟️",description:"admission tickets",category:"Activities",aliases:["tickets"],tags:[],unicode_version:"7.0",ios_version:"9.1"},{emoji:"🎫",description:"ticket",category:"Activities",aliases:["ticket"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🎖️",description:"military medal",category:"Activities",aliases:["medal_military"],tags:[],unicode_version:"7.0",ios_version:"9.1"},{emoji:"🏆",description:"trophy",category:"Activities",aliases:["trophy"],tags:["award","contest","winner"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🏅",description:"sports medal",category:"Activities",aliases:["medal_sports"],tags:["gold","winner"],unicode_version:"7.0",ios_version:"9.1"},{emoji:"🥇",description:"1st place medal",category:"Activities",aliases:["1st_place_medal"],tags:["gold"],unicode_version:"9.0",ios_version:"10.2"},{emoji:"🥈",description:"2nd place medal",category:"Activities",aliases:["2nd_place_medal"],tags:["silver"],unicode_version:"9.0",ios_version:"10.2"},{emoji:"🥉",description:"3rd place medal",category:"Activities",aliases:["3rd_place_medal"],tags:["bronze"],unicode_version:"9.0",ios_version:"10.2"},{emoji:"⚽",description:"soccer ball",category:"Activities",aliases:["soccer"],tags:["sports"],unicode_version:"5.2",ios_version:"6.0"},{emoji:"⚾",description:"baseball",category:"Activities",aliases:["baseball"],tags:["sports"],unicode_version:"5.2",ios_version:"6.0"},{emoji:"🥎",description:"softball",category:"Activities",aliases:["softball"],tags:[],unicode_version:"11.0",ios_version:"12.1"},{emoji:"🏀",description:"basketball",category:"Activities",aliases:["basketball"],tags:["sports"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🏐",description:"volleyball",category:"Activities",aliases:["volleyball"],tags:[],unicode_version:"8.0",ios_version:"9.1"},{emoji:"🏈",description:"american football",category:"Activities",aliases:["football"],tags:["sports"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🏉",description:"rugby football",category:"Activities",aliases:["rugby_football"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🎾",description:"tennis",category:"Activities",aliases:["tennis"],tags:["sports"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🥏",description:"flying disc",category:"Activities",aliases:["flying_disc"],tags:[],unicode_version:"11.0",ios_version:"12.1"},{emoji:"🎳",description:"bowling",category:"Activities",aliases:["bowling"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🏏",description:"cricket game",category:"Activities",aliases:["cricket_game"],tags:[],unicode_version:"8.0",ios_version:"9.1"},{emoji:"🏑",description:"field hockey",category:"Activities",aliases:["field_hockey"],tags:[],unicode_version:"8.0",ios_version:"9.1"},{emoji:"🏒",description:"ice hockey",category:"Activities",aliases:["ice_hockey"],tags:[],unicode_version:"8.0",ios_version:"9.1"},{emoji:"🥍",description:"lacrosse",category:"Activities",aliases:["lacrosse"],tags:[],unicode_version:"11.0",ios_version:"12.1"},{emoji:"🏓",description:"ping pong",category:"Activities",aliases:["ping_pong"],tags:[],unicode_version:"8.0",ios_version:"9.1"},{emoji:"🏸",description:"badminton",category:"Activities",aliases:["badminton"],tags:[],unicode_version:"8.0",ios_version:"9.1"},{emoji:"🥊",description:"boxing glove",category:"Activities",aliases:["boxing_glove"],tags:[],unicode_version:"9.0",ios_version:"10.2"},{emoji:"🥋",description:"martial arts uniform",category:"Activities",aliases:["martial_arts_uniform"],tags:[],unicode_version:"9.0",ios_version:"10.2"},{emoji:"🥅",description:"goal net",category:"Activities",aliases:["goal_net"],tags:[],unicode_version:"9.0",ios_version:"10.2"},{emoji:"⛳",description:"flag in hole",category:"Activities",aliases:["golf"],tags:[],unicode_version:"5.2",ios_version:"6.0"},{emoji:"⛸️",description:"ice skate",category:"Activities",aliases:["ice_skate"],tags:["skating"],unicode_version:"5.2",ios_version:"9.1"},{emoji:"🎣",description:"fishing pole",category:"Activities",aliases:["fishing_pole_and_fish"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🤿",description:"diving mask",category:"Activities",aliases:["diving_mask"],tags:[],unicode_version:"12.0",ios_version:"13.0"},{emoji:"🎽",description:"running shirt",category:"Activities",aliases:["running_shirt_with_sash"],tags:["marathon"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🎿",description:"skis",category:"Activities",aliases:["ski"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🛷",description:"sled",category:"Activities",aliases:["sled"],tags:[],unicode_version:"11.0",ios_version:"12.1"},{emoji:"🥌",description:"curling stone",category:"Activities",aliases:["curling_stone"],tags:[],unicode_version:"11.0",ios_version:"12.1"},{emoji:"🎯",description:"bullseye",category:"Activities",aliases:["dart"],tags:["target"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🪀",description:"yo-yo",category:"Activities",aliases:["yo_yo"],tags:[],unicode_version:"12.0",ios_version:"13.0"},{emoji:"🪁",description:"kite",category:"Activities",aliases:["kite"],tags:[],unicode_version:"12.0",ios_version:"13.0"},{emoji:"🎱",description:"pool 8 ball",category:"Activities",aliases:["8ball"],tags:["pool","billiards"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🔮",description:"crystal ball",category:"Activities",aliases:["crystal_ball"],tags:["fortune"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🪄",description:"magic wand",category:"Activities",aliases:["magic_wand"],tags:[],unicode_version:"13.0",ios_version:"14.0"},{emoji:"🧿",description:"nazar amulet",category:"Activities",aliases:["nazar_amulet"],tags:[],unicode_version:"11.0",ios_version:"12.1"},{emoji:"🎮",description:"video game",category:"Activities",aliases:["video_game"],tags:["play","controller","console"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🕹️",description:"joystick",category:"Activities",aliases:["joystick"],tags:[],unicode_version:"7.0",ios_version:"9.1"},{emoji:"🎰",description:"slot machine",category:"Activities",aliases:["slot_machine"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🎲",description:"game die",category:"Activities",aliases:["game_die"],tags:["dice","gambling"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🧩",description:"puzzle piece",category:"Activities",aliases:["jigsaw"],tags:[],unicode_version:"11.0",ios_version:"12.1"},{emoji:"🧸",description:"teddy bear",category:"Activities",aliases:["teddy_bear"],tags:[],unicode_version:"11.0",ios_version:"12.1"},{emoji:"🪅",description:"piñata",category:"Activities",aliases:["pinata"],tags:[],unicode_version:"13.0",ios_version:"14.0"},{emoji:"🪆",description:"nesting dolls",category:"Activities",aliases:["nesting_dolls"],tags:[],unicode_version:"13.0",ios_version:"14.0"},{emoji:"♠️",description:"spade suit",category:"Activities",aliases:["spades"],tags:[],unicode_version:"",ios_version:"6.0"},{emoji:"♥️",description:"heart suit",category:"Activities",aliases:["hearts"],tags:[],unicode_version:"",ios_version:"6.0"},{emoji:"♦️",description:"diamond suit",category:"Activities",aliases:["diamonds"],tags:[],unicode_version:"",ios_version:"6.0"},{emoji:"♣️",description:"club suit",category:"Activities",aliases:["clubs"],tags:[],unicode_version:"",ios_version:"6.0"},{emoji:"♟️",description:"chess pawn",category:"Activities",aliases:["chess_pawn"],tags:[],unicode_version:"11.0",ios_version:"12.1"},{emoji:"🃏",description:"joker",category:"Activities",aliases:["black_joker"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🀄",description:"mahjong red dragon",category:"Activities",aliases:["mahjong"],tags:[],unicode_version:"",ios_version:"6.0"},{emoji:"🎴",description:"flower playing cards",category:"Activities",aliases:["flower_playing_cards"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🎭",description:"performing arts",category:"Activities",aliases:["performing_arts"],tags:["theater","drama"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🖼️",description:"framed picture",category:"Activities",aliases:["framed_picture"],tags:[],unicode_version:"7.0",ios_version:"9.1"},{emoji:"🎨",description:"artist palette",category:"Activities",aliases:["art"],tags:["design","paint"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🧵",description:"thread",category:"Activities",aliases:["thread"],tags:[],unicode_version:"11.0",ios_version:"12.1"},{emoji:"🪡",description:"sewing needle",category:"Activities",aliases:["sewing_needle"],tags:[],unicode_version:"13.0",ios_version:"14.0"},{emoji:"🧶",description:"yarn",category:"Activities",aliases:["yarn"],tags:[],unicode_version:"11.0",ios_version:"12.1"},{emoji:"🪢",description:"knot",category:"Activities",aliases:["knot"],tags:[],unicode_version:"13.0",ios_version:"14.0"},{emoji:"👓",description:"glasses",category:"Objects",aliases:["eyeglasses"],tags:["glasses"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🕶️",description:"sunglasses",category:"Objects",aliases:["dark_sunglasses"],tags:[],unicode_version:"7.0",ios_version:"9.1"},{emoji:"🥽",description:"goggles",category:"Objects",aliases:["goggles"],tags:[],unicode_version:"11.0",ios_version:"12.1"},{emoji:"🥼",description:"lab coat",category:"Objects",aliases:["lab_coat"],tags:[],unicode_version:"11.0",ios_version:"12.1"},{emoji:"🦺",description:"safety vest",category:"Objects",aliases:["safety_vest"],tags:[],unicode_version:"12.0",ios_version:"13.0"},{emoji:"👔",description:"necktie",category:"Objects",aliases:["necktie"],tags:["shirt","formal"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"👕",description:"t-shirt",category:"Objects",aliases:["shirt","tshirt"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"👖",description:"jeans",category:"Objects",aliases:["jeans"],tags:["pants"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🧣",description:"scarf",category:"Objects",aliases:["scarf"],tags:[],unicode_version:"11.0",ios_version:"12.1"},{emoji:"🧤",description:"gloves",category:"Objects",aliases:["gloves"],tags:[],unicode_version:"11.0",ios_version:"12.1"},{emoji:"🧥",description:"coat",category:"Objects",aliases:["coat"],tags:[],unicode_version:"11.0",ios_version:"12.1"},{emoji:"🧦",description:"socks",category:"Objects",aliases:["socks"],tags:[],unicode_version:"11.0",ios_version:"12.1"},{emoji:"👗",description:"dress",category:"Objects",aliases:["dress"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"👘",description:"kimono",category:"Objects",aliases:["kimono"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🥻",description:"sari",category:"Objects",aliases:["sari"],tags:[],unicode_version:"12.0",ios_version:"13.0"},{emoji:"🩱",description:"one-piece swimsuit",category:"Objects",aliases:["one_piece_swimsuit"],tags:[],unicode_version:"12.0",ios_version:"13.0"},{emoji:"🩲",description:"briefs",category:"Objects",aliases:["swim_brief"],tags:[],unicode_version:"12.0",ios_version:"13.0"},{emoji:"🩳",description:"shorts",category:"Objects",aliases:["shorts"],tags:[],unicode_version:"12.0",ios_version:"13.0"},{emoji:"👙",description:"bikini",category:"Objects",aliases:["bikini"],tags:["beach"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"👚",description:"woman’s clothes",category:"Objects",aliases:["womans_clothes"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"👛",description:"purse",category:"Objects",aliases:["purse"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"👜",description:"handbag",category:"Objects",aliases:["handbag"],tags:["bag"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"👝",description:"clutch bag",category:"Objects",aliases:["pouch"],tags:["bag"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🛍️",description:"shopping bags",category:"Objects",aliases:["shopping"],tags:["bags"],unicode_version:"7.0",ios_version:"9.1"},{emoji:"🎒",description:"backpack",category:"Objects",aliases:["school_satchel"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🩴",description:"thong sandal",category:"Objects",aliases:["thong_sandal"],tags:[],unicode_version:"13.0",ios_version:"14.0"},{emoji:"👞",description:"man’s shoe",category:"Objects",aliases:["mans_shoe","shoe"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"👟",description:"running shoe",category:"Objects",aliases:["athletic_shoe"],tags:["sneaker","sport","running"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🥾",description:"hiking boot",category:"Objects",aliases:["hiking_boot"],tags:[],unicode_version:"11.0",ios_version:"12.1"},{emoji:"🥿",description:"flat shoe",category:"Objects",aliases:["flat_shoe"],tags:[],unicode_version:"11.0",ios_version:"12.1"},{emoji:"👠",description:"high-heeled shoe",category:"Objects",aliases:["high_heel"],tags:["shoe"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"👡",description:"woman’s sandal",category:"Objects",aliases:["sandal"],tags:["shoe"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🩰",description:"ballet shoes",category:"Objects",aliases:["ballet_shoes"],tags:[],unicode_version:"12.0",ios_version:"13.0"},{emoji:"👢",description:"woman’s boot",category:"Objects",aliases:["boot"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"👑",description:"crown",category:"Objects",aliases:["crown"],tags:["king","queen","royal"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"👒",description:"woman’s hat",category:"Objects",aliases:["womans_hat"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🎩",description:"top hat",category:"Objects",aliases:["tophat"],tags:["hat","classy"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🎓",description:"graduation cap",category:"Objects",aliases:["mortar_board"],tags:["education","college","university","graduation"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🧢",description:"billed cap",category:"Objects",aliases:["billed_cap"],tags:[],unicode_version:"11.0",ios_version:"12.1"},{emoji:"🪖",description:"military helmet",category:"Objects",aliases:["military_helmet"],tags:[],unicode_version:"13.0",ios_version:"14.0"},{emoji:"⛑️",description:"rescue worker’s helmet",category:"Objects",aliases:["rescue_worker_helmet"],tags:[],unicode_version:"5.2",ios_version:"9.1"},{emoji:"📿",description:"prayer beads",category:"Objects",aliases:["prayer_beads"],tags:[],unicode_version:"8.0",ios_version:"9.1"},{emoji:"💄",description:"lipstick",category:"Objects",aliases:["lipstick"],tags:["makeup"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"💍",description:"ring",category:"Objects",aliases:["ring"],tags:["wedding","marriage","engaged"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"💎",description:"gem stone",category:"Objects",aliases:["gem"],tags:["diamond"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🔇",description:"muted speaker",category:"Objects",aliases:["mute"],tags:["sound","volume"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🔈",description:"speaker low volume",category:"Objects",aliases:["speaker"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🔉",description:"speaker medium volume",category:"Objects",aliases:["sound"],tags:["volume"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🔊",description:"speaker high volume",category:"Objects",aliases:["loud_sound"],tags:["volume"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"📢",description:"loudspeaker",category:"Objects",aliases:["loudspeaker"],tags:["announcement"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"📣",description:"megaphone",category:"Objects",aliases:["mega"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"📯",description:"postal horn",category:"Objects",aliases:["postal_horn"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🔔",description:"bell",category:"Objects",aliases:["bell"],tags:["sound","notification"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🔕",description:"bell with slash",category:"Objects",aliases:["no_bell"],tags:["volume","off"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🎼",description:"musical score",category:"Objects",aliases:["musical_score"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🎵",description:"musical note",category:"Objects",aliases:["musical_note"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🎶",description:"musical notes",category:"Objects",aliases:["notes"],tags:["music"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🎙️",description:"studio microphone",category:"Objects",aliases:["studio_microphone"],tags:["podcast"],unicode_version:"7.0",ios_version:"9.1"},{emoji:"🎚️",description:"level slider",category:"Objects",aliases:["level_slider"],tags:[],unicode_version:"7.0",ios_version:"9.1"},{emoji:"🎛️",description:"control knobs",category:"Objects",aliases:["control_knobs"],tags:[],unicode_version:"7.0",ios_version:"9.1"},{emoji:"🎤",description:"microphone",category:"Objects",aliases:["microphone"],tags:["sing"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🎧",description:"headphone",category:"Objects",aliases:["headphones"],tags:["music","earphones"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"📻",description:"radio",category:"Objects",aliases:["radio"],tags:["podcast"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🎷",description:"saxophone",category:"Objects",aliases:["saxophone"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🪗",description:"accordion",category:"Objects",aliases:["accordion"],tags:[],unicode_version:"13.0",ios_version:"14.0"},{emoji:"🎸",description:"guitar",category:"Objects",aliases:["guitar"],tags:["rock"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🎹",description:"musical keyboard",category:"Objects",aliases:["musical_keyboard"],tags:["piano"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🎺",description:"trumpet",category:"Objects",aliases:["trumpet"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🎻",description:"violin",category:"Objects",aliases:["violin"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🪕",description:"banjo",category:"Objects",aliases:["banjo"],tags:[],unicode_version:"12.0",ios_version:"13.0"},{emoji:"🥁",description:"drum",category:"Objects",aliases:["drum"],tags:[],unicode_version:"",ios_version:"10.2"},{emoji:"🪘",description:"long drum",category:"Objects",aliases:["long_drum"],tags:[],unicode_version:"13.0",ios_version:"14.0"},{emoji:"📱",description:"mobile phone",category:"Objects",aliases:["iphone"],tags:["smartphone","mobile"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"📲",description:"mobile phone with arrow",category:"Objects",aliases:["calling"],tags:["call","incoming"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"☎️",description:"telephone",category:"Objects",aliases:["phone","telephone"],tags:[],unicode_version:"",ios_version:"6.0"},{emoji:"📞",description:"telephone receiver",category:"Objects",aliases:["telephone_receiver"],tags:["phone","call"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"📟",description:"pager",category:"Objects",aliases:["pager"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"📠",description:"fax machine",category:"Objects",aliases:["fax"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🔋",description:"battery",category:"Objects",aliases:["battery"],tags:["power"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🔌",description:"electric plug",category:"Objects",aliases:["electric_plug"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"💻",description:"laptop",category:"Objects",aliases:["computer"],tags:["desktop","screen"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🖥️",description:"desktop computer",category:"Objects",aliases:["desktop_computer"],tags:[],unicode_version:"7.0",ios_version:"9.1"},{emoji:"🖨️",description:"printer",category:"Objects",aliases:["printer"],tags:[],unicode_version:"7.0",ios_version:"9.1"},{emoji:"⌨️",description:"keyboard",category:"Objects",aliases:["keyboard"],tags:[],unicode_version:"",ios_version:"9.1"},{emoji:"🖱️",description:"computer mouse",category:"Objects",aliases:["computer_mouse"],tags:[],unicode_version:"7.0",ios_version:"9.1"},{emoji:"🖲️",description:"trackball",category:"Objects",aliases:["trackball"],tags:[],unicode_version:"7.0",ios_version:"9.1"},{emoji:"💽",description:"computer disk",category:"Objects",aliases:["minidisc"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"💾",description:"floppy disk",category:"Objects",aliases:["floppy_disk"],tags:["save"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"💿",description:"optical disk",category:"Objects",aliases:["cd"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"📀",description:"dvd",category:"Objects",aliases:["dvd"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🧮",description:"abacus",category:"Objects",aliases:["abacus"],tags:[],unicode_version:"11.0",ios_version:"12.1"},{emoji:"🎥",description:"movie camera",category:"Objects",aliases:["movie_camera"],tags:["film","video"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🎞️",description:"film frames",category:"Objects",aliases:["film_strip"],tags:[],unicode_version:"7.0",ios_version:"9.1"},{emoji:"📽️",description:"film projector",category:"Objects",aliases:["film_projector"],tags:[],unicode_version:"7.0",ios_version:"9.1"},{emoji:"🎬",description:"clapper board",category:"Objects",aliases:["clapper"],tags:["film"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"📺",description:"television",category:"Objects",aliases:["tv"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"📷",description:"camera",category:"Objects",aliases:["camera"],tags:["photo"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"📸",description:"camera with flash",category:"Objects",aliases:["camera_flash"],tags:["photo"],unicode_version:"7.0",ios_version:"9.1"},{emoji:"📹",description:"video camera",category:"Objects",aliases:["video_camera"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"📼",description:"videocassette",category:"Objects",aliases:["vhs"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🔍",description:"magnifying glass tilted left",category:"Objects",aliases:["mag"],tags:["search","zoom"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🔎",description:"magnifying glass tilted right",category:"Objects",aliases:["mag_right"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🕯️",description:"candle",category:"Objects",aliases:["candle"],tags:[],unicode_version:"7.0",ios_version:"9.1"},{emoji:"💡",description:"light bulb",category:"Objects",aliases:["bulb"],tags:["idea","light"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🔦",description:"flashlight",category:"Objects",aliases:["flashlight"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🏮",description:"red paper lantern",category:"Objects",aliases:["izakaya_lantern","lantern"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🪔",description:"diya lamp",category:"Objects",aliases:["diya_lamp"],tags:[],unicode_version:"12.0",ios_version:"13.0"},{emoji:"📔",description:"notebook with decorative cover",category:"Objects",aliases:["notebook_with_decorative_cover"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"📕",description:"closed book",category:"Objects",aliases:["closed_book"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"📖",description:"open book",category:"Objects",aliases:["book","open_book"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"📗",description:"green book",category:"Objects",aliases:["green_book"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"📘",description:"blue book",category:"Objects",aliases:["blue_book"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"📙",description:"orange book",category:"Objects",aliases:["orange_book"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"📚",description:"books",category:"Objects",aliases:["books"],tags:["library"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"📓",description:"notebook",category:"Objects",aliases:["notebook"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"📒",description:"ledger",category:"Objects",aliases:["ledger"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"📃",description:"page with curl",category:"Objects",aliases:["page_with_curl"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"📜",description:"scroll",category:"Objects",aliases:["scroll"],tags:["document"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"📄",description:"page facing up",category:"Objects",aliases:["page_facing_up"],tags:["document"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"📰",description:"newspaper",category:"Objects",aliases:["newspaper"],tags:["press"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🗞️",description:"rolled-up newspaper",category:"Objects",aliases:["newspaper_roll"],tags:["press"],unicode_version:"7.0",ios_version:"9.1"},{emoji:"📑",description:"bookmark tabs",category:"Objects",aliases:["bookmark_tabs"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🔖",description:"bookmark",category:"Objects",aliases:["bookmark"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🏷️",description:"label",category:"Objects",aliases:["label"],tags:["tag"],unicode_version:"7.0",ios_version:"9.1"},{emoji:"💰",description:"money bag",category:"Objects",aliases:["moneybag"],tags:["dollar","cream"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🪙",description:"coin",category:"Objects",aliases:["coin"],tags:[],unicode_version:"13.0",ios_version:"14.0"},{emoji:"💴",description:"yen banknote",category:"Objects",aliases:["yen"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"💵",description:"dollar banknote",category:"Objects",aliases:["dollar"],tags:["money"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"💶",description:"euro banknote",category:"Objects",aliases:["euro"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"💷",description:"pound banknote",category:"Objects",aliases:["pound"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"💸",description:"money with wings",category:"Objects",aliases:["money_with_wings"],tags:["dollar"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"💳",description:"credit card",category:"Objects",aliases:["credit_card"],tags:["subscription"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🧾",description:"receipt",category:"Objects",aliases:["receipt"],tags:[],unicode_version:"11.0",ios_version:"12.1"},{emoji:"💹",description:"chart increasing with yen",category:"Objects",aliases:["chart"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"✉️",description:"envelope",category:"Objects",aliases:["envelope"],tags:["letter","email"],unicode_version:"",ios_version:"6.0"},{emoji:"📧",description:"e-mail",category:"Objects",aliases:["email","e-mail"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"📨",description:"incoming envelope",category:"Objects",aliases:["incoming_envelope"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"📩",description:"envelope with arrow",category:"Objects",aliases:["envelope_with_arrow"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"📤",description:"outbox tray",category:"Objects",aliases:["outbox_tray"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"📥",description:"inbox tray",category:"Objects",aliases:["inbox_tray"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"📦",description:"package",category:"Objects",aliases:["package"],tags:["shipping"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"📫",description:"closed mailbox with raised flag",category:"Objects",aliases:["mailbox"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"📪",description:"closed mailbox with lowered flag",category:"Objects",aliases:["mailbox_closed"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"📬",description:"open mailbox with raised flag",category:"Objects",aliases:["mailbox_with_mail"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"📭",description:"open mailbox with lowered flag",category:"Objects",aliases:["mailbox_with_no_mail"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"📮",description:"postbox",category:"Objects",aliases:["postbox"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🗳️",description:"ballot box with ballot",category:"Objects",aliases:["ballot_box"],tags:[],unicode_version:"7.0",ios_version:"9.1"},{emoji:"✏️",description:"pencil",category:"Objects",aliases:["pencil2"],tags:[],unicode_version:"",ios_version:"6.0"},{emoji:"✒️",description:"black nib",category:"Objects",aliases:["black_nib"],tags:[],unicode_version:"",ios_version:"6.0"},{emoji:"🖋️",description:"fountain pen",category:"Objects",aliases:["fountain_pen"],tags:[],unicode_version:"7.0",ios_version:"9.1"},{emoji:"🖊️",description:"pen",category:"Objects",aliases:["pen"],tags:[],unicode_version:"7.0",ios_version:"9.1"},{emoji:"🖌️",description:"paintbrush",category:"Objects",aliases:["paintbrush"],tags:[],unicode_version:"7.0",ios_version:"9.1"},{emoji:"🖍️",description:"crayon",category:"Objects",aliases:["crayon"],tags:[],unicode_version:"7.0",ios_version:"9.1"},{emoji:"📝",description:"memo",category:"Objects",aliases:["memo","pencil"],tags:["document","note"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"💼",description:"briefcase",category:"Objects",aliases:["briefcase"],tags:["business"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"📁",description:"file folder",category:"Objects",aliases:["file_folder"],tags:["directory"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"📂",description:"open file folder",category:"Objects",aliases:["open_file_folder"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🗂️",description:"card index dividers",category:"Objects",aliases:["card_index_dividers"],tags:[],unicode_version:"7.0",ios_version:"9.1"},{emoji:"📅",description:"calendar",category:"Objects",aliases:["date"],tags:["calendar","schedule"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"📆",description:"tear-off calendar",category:"Objects",aliases:["calendar"],tags:["schedule"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🗒️",description:"spiral notepad",category:"Objects",aliases:["spiral_notepad"],tags:[],unicode_version:"7.0",ios_version:"9.1"},{emoji:"🗓️",description:"spiral calendar",category:"Objects",aliases:["spiral_calendar"],tags:[],unicode_version:"7.0",ios_version:"9.1"},{emoji:"📇",description:"card index",category:"Objects",aliases:["card_index"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"📈",description:"chart increasing",category:"Objects",aliases:["chart_with_upwards_trend"],tags:["graph","metrics"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"📉",description:"chart decreasing",category:"Objects",aliases:["chart_with_downwards_trend"],tags:["graph","metrics"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"📊",description:"bar chart",category:"Objects",aliases:["bar_chart"],tags:["stats","metrics"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"📋",description:"clipboard",category:"Objects",aliases:["clipboard"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"📌",description:"pushpin",category:"Objects",aliases:["pushpin"],tags:["location"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"📍",description:"round pushpin",category:"Objects",aliases:["round_pushpin"],tags:["location"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"📎",description:"paperclip",category:"Objects",aliases:["paperclip"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🖇️",description:"linked paperclips",category:"Objects",aliases:["paperclips"],tags:[],unicode_version:"7.0",ios_version:"9.1"},{emoji:"📏",description:"straight ruler",category:"Objects",aliases:["straight_ruler"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"📐",description:"triangular ruler",category:"Objects",aliases:["triangular_ruler"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"✂️",description:"scissors",category:"Objects",aliases:["scissors"],tags:["cut"],unicode_version:"",ios_version:"6.0"},{emoji:"🗃️",description:"card file box",category:"Objects",aliases:["card_file_box"],tags:[],unicode_version:"7.0",ios_version:"9.1"},{emoji:"🗄️",description:"file cabinet",category:"Objects",aliases:["file_cabinet"],tags:[],unicode_version:"7.0",ios_version:"9.1"},{emoji:"🗑️",description:"wastebasket",category:"Objects",aliases:["wastebasket"],tags:["trash"],unicode_version:"7.0",ios_version:"9.1"},{emoji:"🔒",description:"locked",category:"Objects",aliases:["lock"],tags:["security","private"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🔓",description:"unlocked",category:"Objects",aliases:["unlock"],tags:["security"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🔏",description:"locked with pen",category:"Objects",aliases:["lock_with_ink_pen"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🔐",description:"locked with key",category:"Objects",aliases:["closed_lock_with_key"],tags:["security"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🔑",description:"key",category:"Objects",aliases:["key"],tags:["lock","password"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🗝️",description:"old key",category:"Objects",aliases:["old_key"],tags:[],unicode_version:"7.0",ios_version:"9.1"},{emoji:"🔨",description:"hammer",category:"Objects",aliases:["hammer"],tags:["tool"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🪓",description:"axe",category:"Objects",aliases:["axe"],tags:[],unicode_version:"12.0",ios_version:"13.0"},{emoji:"⛏️",description:"pick",category:"Objects",aliases:["pick"],tags:[],unicode_version:"5.2",ios_version:"9.1"},{emoji:"⚒️",description:"hammer and pick",category:"Objects",aliases:["hammer_and_pick"],tags:[],unicode_version:"4.1",ios_version:"9.1"},{emoji:"🛠️",description:"hammer and wrench",category:"Objects",aliases:["hammer_and_wrench"],tags:[],unicode_version:"7.0",ios_version:"9.1"},{emoji:"🗡️",description:"dagger",category:"Objects",aliases:["dagger"],tags:[],unicode_version:"7.0",ios_version:"9.1"},{emoji:"⚔️",description:"crossed swords",category:"Objects",aliases:["crossed_swords"],tags:[],unicode_version:"4.1",ios_version:"9.1"},{emoji:"🔫",description:"water pistol",category:"Objects",aliases:["gun"],tags:["shoot","weapon"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🪃",description:"boomerang",category:"Objects",aliases:["boomerang"],tags:[],unicode_version:"13.0",ios_version:"14.0"},{emoji:"🏹",description:"bow and arrow",category:"Objects",aliases:["bow_and_arrow"],tags:["archery"],unicode_version:"8.0",ios_version:"9.1"},{emoji:"🛡️",description:"shield",category:"Objects",aliases:["shield"],tags:[],unicode_version:"7.0",ios_version:"9.1"},{emoji:"🪚",description:"carpentry saw",category:"Objects",aliases:["carpentry_saw"],tags:[],unicode_version:"13.0",ios_version:"14.0"},{emoji:"🔧",description:"wrench",category:"Objects",aliases:["wrench"],tags:["tool"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🪛",description:"screwdriver",category:"Objects",aliases:["screwdriver"],tags:[],unicode_version:"13.0",ios_version:"14.0"},{emoji:"🔩",description:"nut and bolt",category:"Objects",aliases:["nut_and_bolt"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"⚙️",description:"gear",category:"Objects",aliases:["gear"],tags:[],unicode_version:"4.1",ios_version:"9.1"},{emoji:"🗜️",description:"clamp",category:"Objects",aliases:["clamp"],tags:[],unicode_version:"7.0",ios_version:"9.1"},{emoji:"⚖️",description:"balance scale",category:"Objects",aliases:["balance_scale"],tags:[],unicode_version:"4.1",ios_version:"9.1"},{emoji:"🦯",description:"white cane",category:"Objects",aliases:["probing_cane"],tags:[],unicode_version:"12.0",ios_version:"13.0"},{emoji:"🔗",description:"link",category:"Objects",aliases:["link"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"⛓️",description:"chains",category:"Objects",aliases:["chains"],tags:[],unicode_version:"5.2",ios_version:"9.1"},{emoji:"🪝",description:"hook",category:"Objects",aliases:["hook"],tags:[],unicode_version:"13.0",ios_version:"14.0"},{emoji:"🧰",description:"toolbox",category:"Objects",aliases:["toolbox"],tags:[],unicode_version:"11.0",ios_version:"12.1"},{emoji:"🧲",description:"magnet",category:"Objects",aliases:["magnet"],tags:[],unicode_version:"11.0",ios_version:"12.1"},{emoji:"🪜",description:"ladder",category:"Objects",aliases:["ladder"],tags:[],unicode_version:"13.0",ios_version:"14.0"},{emoji:"⚗️",description:"alembic",category:"Objects",aliases:["alembic"],tags:[],unicode_version:"4.1",ios_version:"9.1"},{emoji:"🧪",description:"test tube",category:"Objects",aliases:["test_tube"],tags:[],unicode_version:"11.0",ios_version:"12.1"},{emoji:"🧫",description:"petri dish",category:"Objects",aliases:["petri_dish"],tags:[],unicode_version:"11.0",ios_version:"12.1"},{emoji:"🧬",description:"dna",category:"Objects",aliases:["dna"],tags:[],unicode_version:"11.0",ios_version:"12.1"},{emoji:"🔬",description:"microscope",category:"Objects",aliases:["microscope"],tags:["science","laboratory","investigate"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🔭",description:"telescope",category:"Objects",aliases:["telescope"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"📡",description:"satellite antenna",category:"Objects",aliases:["satellite"],tags:["signal"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"💉",description:"syringe",category:"Objects",aliases:["syringe"],tags:["health","hospital","needle"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🩸",description:"drop of blood",category:"Objects",aliases:["drop_of_blood"],tags:[],unicode_version:"12.0",ios_version:"13.0"},{emoji:"💊",description:"pill",category:"Objects",aliases:["pill"],tags:["health","medicine"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🩹",description:"adhesive bandage",category:"Objects",aliases:["adhesive_bandage"],tags:[],unicode_version:"12.0",ios_version:"13.0"},{emoji:"🩺",description:"stethoscope",category:"Objects",aliases:["stethoscope"],tags:[],unicode_version:"12.0",ios_version:"13.0"},{emoji:"🚪",description:"door",category:"Objects",aliases:["door"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🛗",description:"elevator",category:"Objects",aliases:["elevator"],tags:[],unicode_version:"13.0",ios_version:"14.0"},{emoji:"🪞",description:"mirror",category:"Objects",aliases:["mirror"],tags:[],unicode_version:"13.0",ios_version:"14.0"},{emoji:"🪟",description:"window",category:"Objects",aliases:["window"],tags:[],unicode_version:"13.0",ios_version:"14.0"},{emoji:"🛏️",description:"bed",category:"Objects",aliases:["bed"],tags:[],unicode_version:"7.0",ios_version:"9.1"},{emoji:"🛋️",description:"couch and lamp",category:"Objects",aliases:["couch_and_lamp"],tags:[],unicode_version:"7.0",ios_version:"9.1"},{emoji:"🪑",description:"chair",category:"Objects",aliases:["chair"],tags:[],unicode_version:"12.0",ios_version:"13.0"},{emoji:"🚽",description:"toilet",category:"Objects",aliases:["toilet"],tags:["wc"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🪠",description:"plunger",category:"Objects",aliases:["plunger"],tags:[],unicode_version:"13.0",ios_version:"14.0"},{emoji:"🚿",description:"shower",category:"Objects",aliases:["shower"],tags:["bath"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🛁",description:"bathtub",category:"Objects",aliases:["bathtub"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🪤",description:"mouse trap",category:"Objects",aliases:["mouse_trap"],tags:[],unicode_version:"13.0",ios_version:"14.0"},{emoji:"🪒",description:"razor",category:"Objects",aliases:["razor"],tags:[],unicode_version:"12.0",ios_version:"13.0"},{emoji:"🧴",description:"lotion bottle",category:"Objects",aliases:["lotion_bottle"],tags:[],unicode_version:"11.0",ios_version:"12.1"},{emoji:"🧷",description:"safety pin",category:"Objects",aliases:["safety_pin"],tags:[],unicode_version:"11.0",ios_version:"12.1"},{emoji:"🧹",description:"broom",category:"Objects",aliases:["broom"],tags:[],unicode_version:"11.0",ios_version:"12.1"},{emoji:"🧺",description:"basket",category:"Objects",aliases:["basket"],tags:[],unicode_version:"11.0",ios_version:"12.1"},{emoji:"🧻",description:"roll of paper",category:"Objects",aliases:["roll_of_paper"],tags:["toilet"],unicode_version:"11.0",ios_version:"12.1"},{emoji:"🪣",description:"bucket",category:"Objects",aliases:["bucket"],tags:[],unicode_version:"13.0",ios_version:"14.0"},{emoji:"🧼",description:"soap",category:"Objects",aliases:["soap"],tags:[],unicode_version:"11.0",ios_version:"12.1"},{emoji:"🪥",description:"toothbrush",category:"Objects",aliases:["toothbrush"],tags:[],unicode_version:"13.0",ios_version:"14.0"},{emoji:"🧽",description:"sponge",category:"Objects",aliases:["sponge"],tags:[],unicode_version:"11.0",ios_version:"12.1"},{emoji:"🧯",description:"fire extinguisher",category:"Objects",aliases:["fire_extinguisher"],tags:[],unicode_version:"11.0",ios_version:"12.1"},{emoji:"🛒",description:"shopping cart",category:"Objects",aliases:["shopping_cart"],tags:[],unicode_version:"9.0",ios_version:"10.2"},{emoji:"🚬",description:"cigarette",category:"Objects",aliases:["smoking"],tags:["cigarette"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"⚰️",description:"coffin",category:"Objects",aliases:["coffin"],tags:["funeral"],unicode_version:"4.1",ios_version:"9.1"},{emoji:"🪦",description:"headstone",category:"Objects",aliases:["headstone"],tags:[],unicode_version:"13.0",ios_version:"14.0"},{emoji:"⚱️",description:"funeral urn",category:"Objects",aliases:["funeral_urn"],tags:[],unicode_version:"4.1",ios_version:"9.1"},{emoji:"🗿",description:"moai",category:"Objects",aliases:["moyai"],tags:["stone"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🪧",description:"placard",category:"Objects",aliases:["placard"],tags:[],unicode_version:"13.0",ios_version:"14.0"},{emoji:"🏧",description:"ATM sign",category:"Symbols",aliases:["atm"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🚮",description:"litter in bin sign",category:"Symbols",aliases:["put_litter_in_its_place"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🚰",description:"potable water",category:"Symbols",aliases:["potable_water"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"♿",description:"wheelchair symbol",category:"Symbols",aliases:["wheelchair"],tags:["accessibility"],unicode_version:"4.1",ios_version:"6.0"},{emoji:"🚹",description:"men’s room",category:"Symbols",aliases:["mens"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🚺",description:"women’s room",category:"Symbols",aliases:["womens"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🚻",description:"restroom",category:"Symbols",aliases:["restroom"],tags:["toilet"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🚼",description:"baby symbol",category:"Symbols",aliases:["baby_symbol"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🚾",description:"water closet",category:"Symbols",aliases:["wc"],tags:["toilet","restroom"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🛂",description:"passport control",category:"Symbols",aliases:["passport_control"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🛃",description:"customs",category:"Symbols",aliases:["customs"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🛄",description:"baggage claim",category:"Symbols",aliases:["baggage_claim"],tags:["airport"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🛅",description:"left luggage",category:"Symbols",aliases:["left_luggage"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"⚠️",description:"warning",category:"Symbols",aliases:["warning"],tags:["wip"],unicode_version:"4.0",ios_version:"6.0"},{emoji:"🚸",description:"children crossing",category:"Symbols",aliases:["children_crossing"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"⛔",description:"no entry",category:"Symbols",aliases:["no_entry"],tags:["limit"],unicode_version:"5.2",ios_version:"6.0"},{emoji:"🚫",description:"prohibited",category:"Symbols",aliases:["no_entry_sign"],tags:["block","forbidden"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🚳",description:"no bicycles",category:"Symbols",aliases:["no_bicycles"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🚭",description:"no smoking",category:"Symbols",aliases:["no_smoking"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🚯",description:"no littering",category:"Symbols",aliases:["do_not_litter"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🚱",description:"non-potable water",category:"Symbols",aliases:["non-potable_water"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🚷",description:"no pedestrians",category:"Symbols",aliases:["no_pedestrians"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"📵",description:"no mobile phones",category:"Symbols",aliases:["no_mobile_phones"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🔞",description:"no one under eighteen",category:"Symbols",aliases:["underage"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"☢️",description:"radioactive",category:"Symbols",aliases:["radioactive"],tags:[],unicode_version:"",ios_version:"9.1"},{emoji:"☣️",description:"biohazard",category:"Symbols",aliases:["biohazard"],tags:[],unicode_version:"",ios_version:"9.1"},{emoji:"⬆️",description:"up arrow",category:"Symbols",aliases:["arrow_up"],tags:[],unicode_version:"4.0",ios_version:"6.0"},{emoji:"↗️",description:"up-right arrow",category:"Symbols",aliases:["arrow_upper_right"],tags:[],unicode_version:"",ios_version:"6.0"},{emoji:"➡️",description:"right arrow",category:"Symbols",aliases:["arrow_right"],tags:[],unicode_version:"",ios_version:"6.0"},{emoji:"↘️",description:"down-right arrow",category:"Symbols",aliases:["arrow_lower_right"],tags:[],unicode_version:"",ios_version:"6.0"},{emoji:"⬇️",description:"down arrow",category:"Symbols",aliases:["arrow_down"],tags:[],unicode_version:"4.0",ios_version:"6.0"},{emoji:"↙️",description:"down-left arrow",category:"Symbols",aliases:["arrow_lower_left"],tags:[],unicode_version:"",ios_version:"6.0"},{emoji:"⬅️",description:"left arrow",category:"Symbols",aliases:["arrow_left"],tags:[],unicode_version:"4.0",ios_version:"6.0"},{emoji:"↖️",description:"up-left arrow",category:"Symbols",aliases:["arrow_upper_left"],tags:[],unicode_version:"",ios_version:"6.0"},{emoji:"↕️",description:"up-down arrow",category:"Symbols",aliases:["arrow_up_down"],tags:[],unicode_version:"",ios_version:"6.0"},{emoji:"↔️",description:"left-right arrow",category:"Symbols",aliases:["left_right_arrow"],tags:[],unicode_version:"",ios_version:"6.0"},{emoji:"↩️",description:"right arrow curving left",category:"Symbols",aliases:["leftwards_arrow_with_hook"],tags:["return"],unicode_version:"",ios_version:"6.0"},{emoji:"↪️",description:"left arrow curving right",category:"Symbols",aliases:["arrow_right_hook"],tags:[],unicode_version:"",ios_version:"6.0"},{emoji:"⤴️",description:"right arrow curving up",category:"Symbols",aliases:["arrow_heading_up"],tags:[],unicode_version:"",ios_version:"6.0"},{emoji:"⤵️",description:"right arrow curving down",category:"Symbols",aliases:["arrow_heading_down"],tags:[],unicode_version:"",ios_version:"6.0"},{emoji:"🔃",description:"clockwise vertical arrows",category:"Symbols",aliases:["arrows_clockwise"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🔄",description:"counterclockwise arrows button",category:"Symbols",aliases:["arrows_counterclockwise"],tags:["sync"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🔙",description:"BACK arrow",category:"Symbols",aliases:["back"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🔚",description:"END arrow",category:"Symbols",aliases:["end"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🔛",description:"ON! arrow",category:"Symbols",aliases:["on"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🔜",description:"SOON arrow",category:"Symbols",aliases:["soon"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🔝",description:"TOP arrow",category:"Symbols",aliases:["top"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🛐",description:"place of worship",category:"Symbols",aliases:["place_of_worship"],tags:[],unicode_version:"8.0",ios_version:"9.1"},{emoji:"⚛️",description:"atom symbol",category:"Symbols",aliases:["atom_symbol"],tags:[],unicode_version:"4.1",ios_version:"9.1"},{emoji:"🕉️",description:"om",category:"Symbols",aliases:["om"],tags:[],unicode_version:"7.0",ios_version:"9.1"},{emoji:"✡️",description:"star of David",category:"Symbols",aliases:["star_of_david"],tags:[],unicode_version:"",ios_version:"9.1"},{emoji:"☸️",description:"wheel of dharma",category:"Symbols",aliases:["wheel_of_dharma"],tags:[],unicode_version:"",ios_version:"9.1"},{emoji:"☯️",description:"yin yang",category:"Symbols",aliases:["yin_yang"],tags:[],unicode_version:"",ios_version:"9.1"},{emoji:"✝️",description:"latin cross",category:"Symbols",aliases:["latin_cross"],tags:[],unicode_version:"",ios_version:"9.1"},{emoji:"☦️",description:"orthodox cross",category:"Symbols",aliases:["orthodox_cross"],tags:[],unicode_version:"",ios_version:"9.1"},{emoji:"☪️",description:"star and crescent",category:"Symbols",aliases:["star_and_crescent"],tags:[],unicode_version:"",ios_version:"9.1"},{emoji:"☮️",description:"peace symbol",category:"Symbols",aliases:["peace_symbol"],tags:[],unicode_version:"",ios_version:"9.1"},{emoji:"🕎",description:"menorah",category:"Symbols",aliases:["menorah"],tags:[],unicode_version:"8.0",ios_version:"9.1"},{emoji:"🔯",description:"dotted six-pointed star",category:"Symbols",aliases:["six_pointed_star"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"♈",description:"Aries",category:"Symbols",aliases:["aries"],tags:[],unicode_version:"",ios_version:"6.0"},{emoji:"♉",description:"Taurus",category:"Symbols",aliases:["taurus"],tags:[],unicode_version:"",ios_version:"6.0"},{emoji:"♊",description:"Gemini",category:"Symbols",aliases:["gemini"],tags:[],unicode_version:"",ios_version:"6.0"},{emoji:"♋",description:"Cancer",category:"Symbols",aliases:["cancer"],tags:[],unicode_version:"",ios_version:"6.0"},{emoji:"♌",description:"Leo",category:"Symbols",aliases:["leo"],tags:[],unicode_version:"",ios_version:"6.0"},{emoji:"♍",description:"Virgo",category:"Symbols",aliases:["virgo"],tags:[],unicode_version:"",ios_version:"6.0"},{emoji:"♎",description:"Libra",category:"Symbols",aliases:["libra"],tags:[],unicode_version:"",ios_version:"6.0"},{emoji:"♏",description:"Scorpio",category:"Symbols",aliases:["scorpius"],tags:[],unicode_version:"",ios_version:"6.0"},{emoji:"♐",description:"Sagittarius",category:"Symbols",aliases:["sagittarius"],tags:[],unicode_version:"",ios_version:"6.0"},{emoji:"♑",description:"Capricorn",category:"Symbols",aliases:["capricorn"],tags:[],unicode_version:"",ios_version:"6.0"},{emoji:"♒",description:"Aquarius",category:"Symbols",aliases:["aquarius"],tags:[],unicode_version:"",ios_version:"6.0"},{emoji:"♓",description:"Pisces",category:"Symbols",aliases:["pisces"],tags:[],unicode_version:"",ios_version:"6.0"},{emoji:"⛎",description:"Ophiuchus",category:"Symbols",aliases:["ophiuchus"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🔀",description:"shuffle tracks button",category:"Symbols",aliases:["twisted_rightwards_arrows"],tags:["shuffle"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🔁",description:"repeat button",category:"Symbols",aliases:["repeat"],tags:["loop"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🔂",description:"repeat single button",category:"Symbols",aliases:["repeat_one"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"▶️",description:"play button",category:"Symbols",aliases:["arrow_forward"],tags:[],unicode_version:"",ios_version:"6.0"},{emoji:"⏩",description:"fast-forward button",category:"Symbols",aliases:["fast_forward"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"⏭️",description:"next track button",category:"Symbols",aliases:["next_track_button"],tags:[],unicode_version:"6.0",ios_version:"9.1"},{emoji:"⏯️",description:"play or pause button",category:"Symbols",aliases:["play_or_pause_button"],tags:[],unicode_version:"6.0",ios_version:"9.1"},{emoji:"◀️",description:"reverse button",category:"Symbols",aliases:["arrow_backward"],tags:[],unicode_version:"",ios_version:"6.0"},{emoji:"⏪",description:"fast reverse button",category:"Symbols",aliases:["rewind"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"⏮️",description:"last track button",category:"Symbols",aliases:["previous_track_button"],tags:[],unicode_version:"6.0",ios_version:"9.1"},{emoji:"🔼",description:"upwards button",category:"Symbols",aliases:["arrow_up_small"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"⏫",description:"fast up button",category:"Symbols",aliases:["arrow_double_up"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🔽",description:"downwards button",category:"Symbols",aliases:["arrow_down_small"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"⏬",description:"fast down button",category:"Symbols",aliases:["arrow_double_down"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"⏸️",description:"pause button",category:"Symbols",aliases:["pause_button"],tags:[],unicode_version:"7.0",ios_version:"9.1"},{emoji:"⏹️",description:"stop button",category:"Symbols",aliases:["stop_button"],tags:[],unicode_version:"7.0",ios_version:"9.1"},{emoji:"⏺️",description:"record button",category:"Symbols",aliases:["record_button"],tags:[],unicode_version:"7.0",ios_version:"9.1"},{emoji:"⏏️",description:"eject button",category:"Symbols",aliases:["eject_button"],tags:[],unicode_version:"11.0",ios_version:"12.1"},{emoji:"🎦",description:"cinema",category:"Symbols",aliases:["cinema"],tags:["film","movie"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🔅",description:"dim button",category:"Symbols",aliases:["low_brightness"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🔆",description:"bright button",category:"Symbols",aliases:["high_brightness"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"📶",description:"antenna bars",category:"Symbols",aliases:["signal_strength"],tags:["wifi"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"📳",description:"vibration mode",category:"Symbols",aliases:["vibration_mode"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"📴",description:"mobile phone off",category:"Symbols",aliases:["mobile_phone_off"],tags:["mute","off"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"♀️",description:"female sign",category:"Symbols",aliases:["female_sign"],tags:[],unicode_version:"11.0",ios_version:"12.1"},{emoji:"♂️",description:"male sign",category:"Symbols",aliases:["male_sign"],tags:[],unicode_version:"11.0",ios_version:"12.1"},{emoji:"⚧️",description:"transgender symbol",category:"Symbols",aliases:["transgender_symbol"],tags:[],unicode_version:"13.0",ios_version:"14.0"},{emoji:"✖️",description:"multiply",category:"Symbols",aliases:["heavy_multiplication_x"],tags:[],unicode_version:"",ios_version:"6.0"},{emoji:"➕",description:"plus",category:"Symbols",aliases:["heavy_plus_sign"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"➖",description:"minus",category:"Symbols",aliases:["heavy_minus_sign"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"➗",description:"divide",category:"Symbols",aliases:["heavy_division_sign"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"♾️",description:"infinity",category:"Symbols",aliases:["infinity"],tags:[],unicode_version:"11.0",ios_version:"12.1"},{emoji:"‼️",description:"double exclamation mark",category:"Symbols",aliases:["bangbang"],tags:[],unicode_version:"",ios_version:"6.0"},{emoji:"⁉️",description:"exclamation question mark",category:"Symbols",aliases:["interrobang"],tags:[],unicode_version:"3.0",ios_version:"6.0"},{emoji:"❓",description:"red question mark",category:"Symbols",aliases:["question"],tags:["confused"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"❔",description:"white question mark",category:"Symbols",aliases:["grey_question"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"❕",description:"white exclamation mark",category:"Symbols",aliases:["grey_exclamation"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"❗",description:"red exclamation mark",category:"Symbols",aliases:["exclamation","heavy_exclamation_mark"],tags:["bang"],unicode_version:"5.2",ios_version:"6.0"},{emoji:"〰️",description:"wavy dash",category:"Symbols",aliases:["wavy_dash"],tags:[],unicode_version:"",ios_version:"6.0"},{emoji:"💱",description:"currency exchange",category:"Symbols",aliases:["currency_exchange"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"💲",description:"heavy dollar sign",category:"Symbols",aliases:["heavy_dollar_sign"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"⚕️",description:"medical symbol",category:"Symbols",aliases:["medical_symbol"],tags:[],unicode_version:"11.0",ios_version:"12.1"},{emoji:"♻️",description:"recycling symbol",category:"Symbols",aliases:["recycle"],tags:["environment","green"],unicode_version:"3.2",ios_version:"6.0"},{emoji:"⚜️",description:"fleur-de-lis",category:"Symbols",aliases:["fleur_de_lis"],tags:[],unicode_version:"4.1",ios_version:"9.1"},{emoji:"🔱",description:"trident emblem",category:"Symbols",aliases:["trident"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"📛",description:"name badge",category:"Symbols",aliases:["name_badge"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🔰",description:"Japanese symbol for beginner",category:"Symbols",aliases:["beginner"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"⭕",description:"hollow red circle",category:"Symbols",aliases:["o"],tags:[],unicode_version:"5.2",ios_version:"6.0"},{emoji:"✅",description:"check mark button",category:"Symbols",aliases:["white_check_mark"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"☑️",description:"check box with check",category:"Symbols",aliases:["ballot_box_with_check"],tags:[],unicode_version:"",ios_version:"6.0"},{emoji:"✔️",description:"check mark",category:"Symbols",aliases:["heavy_check_mark"],tags:[],unicode_version:"",ios_version:"6.0"},{emoji:"❌",description:"cross mark",category:"Symbols",aliases:["x"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"❎",description:"cross mark button",category:"Symbols",aliases:["negative_squared_cross_mark"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"➰",description:"curly loop",category:"Symbols",aliases:["curly_loop"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"➿",description:"double curly loop",category:"Symbols",aliases:["loop"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"〽️",description:"part alternation mark",category:"Symbols",aliases:["part_alternation_mark"],tags:[],unicode_version:"3.2",ios_version:"6.0"},{emoji:"✳️",description:"eight-spoked asterisk",category:"Symbols",aliases:["eight_spoked_asterisk"],tags:[],unicode_version:"",ios_version:"6.0"},{emoji:"✴️",description:"eight-pointed star",category:"Symbols",aliases:["eight_pointed_black_star"],tags:[],unicode_version:"",ios_version:"6.0"},{emoji:"❇️",description:"sparkle",category:"Symbols",aliases:["sparkle"],tags:[],unicode_version:"",ios_version:"6.0"},{emoji:"©️",description:"copyright",category:"Symbols",aliases:["copyright"],tags:[],unicode_version:"",ios_version:"6.0"},{emoji:"®️",description:"registered",category:"Symbols",aliases:["registered"],tags:[],unicode_version:"",ios_version:"6.0"},{emoji:"™️",description:"trade mark",category:"Symbols",aliases:["tm"],tags:["trademark"],unicode_version:"",ios_version:"6.0"},{emoji:"#️⃣",description:"keycap: #",category:"Symbols",aliases:["hash"],tags:["number"],unicode_version:"",ios_version:"6.0"},{emoji:"*️⃣",description:"keycap: *",category:"Symbols",aliases:["asterisk"],tags:[],unicode_version:"",ios_version:"9.1"},{emoji:"0️⃣",description:"keycap: 0",category:"Symbols",aliases:["zero"],tags:[],unicode_version:"",ios_version:"6.0"},{emoji:"1️⃣",description:"keycap: 1",category:"Symbols",aliases:["one"],tags:[],unicode_version:"",ios_version:"6.0"},{emoji:"2️⃣",description:"keycap: 2",category:"Symbols",aliases:["two"],tags:[],unicode_version:"",ios_version:"6.0"},{emoji:"3️⃣",description:"keycap: 3",category:"Symbols",aliases:["three"],tags:[],unicode_version:"",ios_version:"6.0"},{emoji:"4️⃣",description:"keycap: 4",category:"Symbols",aliases:["four"],tags:[],unicode_version:"",ios_version:"6.0"},{emoji:"5️⃣",description:"keycap: 5",category:"Symbols",aliases:["five"],tags:[],unicode_version:"",ios_version:"6.0"},{emoji:"6️⃣",description:"keycap: 6",category:"Symbols",aliases:["six"],tags:[],unicode_version:"",ios_version:"6.0"},{emoji:"7️⃣",description:"keycap: 7",category:"Symbols",aliases:["seven"],tags:[],unicode_version:"",ios_version:"6.0"},{emoji:"8️⃣",description:"keycap: 8",category:"Symbols",aliases:["eight"],tags:[],unicode_version:"",ios_version:"6.0"},{emoji:"9️⃣",description:"keycap: 9",category:"Symbols",aliases:["nine"],tags:[],unicode_version:"",ios_version:"6.0"},{emoji:"🔟",description:"keycap: 10",category:"Symbols",aliases:["keycap_ten"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🔠",description:"input latin uppercase",category:"Symbols",aliases:["capital_abcd"],tags:["letters"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🔡",description:"input latin lowercase",category:"Symbols",aliases:["abcd"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🔢",description:"input numbers",category:"Symbols",aliases:["1234"],tags:["numbers"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🔣",description:"input symbols",category:"Symbols",aliases:["symbols"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🔤",description:"input latin letters",category:"Symbols",aliases:["abc"],tags:["alphabet"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🅰️",description:"A button (blood type)",category:"Symbols",aliases:["a"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🆎",description:"AB button (blood type)",category:"Symbols",aliases:["ab"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🅱️",description:"B button (blood type)",category:"Symbols",aliases:["b"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🆑",description:"CL button",category:"Symbols",aliases:["cl"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🆒",description:"COOL button",category:"Symbols",aliases:["cool"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🆓",description:"FREE button",category:"Symbols",aliases:["free"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"ℹ️",description:"information",category:"Symbols",aliases:["information_source"],tags:[],unicode_version:"3.0",ios_version:"6.0"},{emoji:"🆔",description:"ID button",category:"Symbols",aliases:["id"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"Ⓜ️",description:"circled M",category:"Symbols",aliases:["m"],tags:[],unicode_version:"",ios_version:"6.0"},{emoji:"🆕",description:"NEW button",category:"Symbols",aliases:["new"],tags:["fresh"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🆖",description:"NG button",category:"Symbols",aliases:["ng"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🅾️",description:"O button (blood type)",category:"Symbols",aliases:["o2"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🆗",description:"OK button",category:"Symbols",aliases:["ok"],tags:["yes"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🅿️",description:"P button",category:"Symbols",aliases:["parking"],tags:[],unicode_version:"5.2",ios_version:"6.0"},{emoji:"🆘",description:"SOS button",category:"Symbols",aliases:["sos"],tags:["help","emergency"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🆙",description:"UP! button",category:"Symbols",aliases:["up"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🆚",description:"VS button",category:"Symbols",aliases:["vs"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🈁",description:"Japanese “here” button",category:"Symbols",aliases:["koko"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🈂️",description:"Japanese “service charge” button",category:"Symbols",aliases:["sa"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🈷️",description:"Japanese “monthly amount” button",category:"Symbols",aliases:["u6708"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🈶",description:"Japanese “not free of charge” button",category:"Symbols",aliases:["u6709"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🈯",description:"Japanese “reserved” button",category:"Symbols",aliases:["u6307"],tags:[],unicode_version:"",ios_version:"6.0"},{emoji:"🉐",description:"Japanese “bargain” button",category:"Symbols",aliases:["ideograph_advantage"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🈹",description:"Japanese “discount” button",category:"Symbols",aliases:["u5272"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🈚",description:"Japanese “free of charge” button",category:"Symbols",aliases:["u7121"],tags:[],unicode_version:"",ios_version:"6.0"},{emoji:"🈲",description:"Japanese “prohibited” button",category:"Symbols",aliases:["u7981"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🉑",description:"Japanese “acceptable” button",category:"Symbols",aliases:["accept"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🈸",description:"Japanese “application” button",category:"Symbols",aliases:["u7533"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🈴",description:"Japanese “passing grade” button",category:"Symbols",aliases:["u5408"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🈳",description:"Japanese “vacancy” button",category:"Symbols",aliases:["u7a7a"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"㊗️",description:"Japanese “congratulations” button",category:"Symbols",aliases:["congratulations"],tags:[],unicode_version:"",ios_version:"6.0"},{emoji:"㊙️",description:"Japanese “secret” button",category:"Symbols",aliases:["secret"],tags:[],unicode_version:"",ios_version:"6.0"},{emoji:"🈺",description:"Japanese “open for business” button",category:"Symbols",aliases:["u55b6"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🈵",description:"Japanese “no vacancy” button",category:"Symbols",aliases:["u6e80"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🔴",description:"red circle",category:"Symbols",aliases:["red_circle"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🟠",description:"orange circle",category:"Symbols",aliases:["orange_circle"],tags:[],unicode_version:"12.0",ios_version:"13.0"},{emoji:"🟡",description:"yellow circle",category:"Symbols",aliases:["yellow_circle"],tags:[],unicode_version:"12.0",ios_version:"13.0"},{emoji:"🟢",description:"green circle",category:"Symbols",aliases:["green_circle"],tags:[],unicode_version:"12.0",ios_version:"13.0"},{emoji:"🔵",description:"blue circle",category:"Symbols",aliases:["large_blue_circle"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🟣",description:"purple circle",category:"Symbols",aliases:["purple_circle"],tags:[],unicode_version:"12.0",ios_version:"13.0"},{emoji:"🟤",description:"brown circle",category:"Symbols",aliases:["brown_circle"],tags:[],unicode_version:"12.0",ios_version:"13.0"},{emoji:"⚫",description:"black circle",category:"Symbols",aliases:["black_circle"],tags:[],unicode_version:"4.1",ios_version:"6.0"},{emoji:"⚪",description:"white circle",category:"Symbols",aliases:["white_circle"],tags:[],unicode_version:"4.1",ios_version:"6.0"},{emoji:"🟥",description:"red square",category:"Symbols",aliases:["red_square"],tags:[],unicode_version:"12.0",ios_version:"13.0"},{emoji:"🟧",description:"orange square",category:"Symbols",aliases:["orange_square"],tags:[],unicode_version:"12.0",ios_version:"13.0"},{emoji:"🟨",description:"yellow square",category:"Symbols",aliases:["yellow_square"],tags:[],unicode_version:"12.0",ios_version:"13.0"},{emoji:"🟩",description:"green square",category:"Symbols",aliases:["green_square"],tags:[],unicode_version:"12.0",ios_version:"13.0"},{emoji:"🟦",description:"blue square",category:"Symbols",aliases:["blue_square"],tags:[],unicode_version:"12.0",ios_version:"13.0"},{emoji:"🟪",description:"purple square",category:"Symbols",aliases:["purple_square"],tags:[],unicode_version:"12.0",ios_version:"13.0"},{emoji:"🟫",description:"brown square",category:"Symbols",aliases:["brown_square"],tags:[],unicode_version:"12.0",ios_version:"13.0"},{emoji:"⬛",description:"black large square",category:"Symbols",aliases:["black_large_square"],tags:[],unicode_version:"5.1",ios_version:"6.0"},{emoji:"⬜",description:"white large square",category:"Symbols",aliases:["white_large_square"],tags:[],unicode_version:"5.1",ios_version:"6.0"},{emoji:"◼️",description:"black medium square",category:"Symbols",aliases:["black_medium_square"],tags:[],unicode_version:"3.2",ios_version:"6.0"},{emoji:"◻️",description:"white medium square",category:"Symbols",aliases:["white_medium_square"],tags:[],unicode_version:"3.2",ios_version:"6.0"},{emoji:"◾",description:"black medium-small square",category:"Symbols",aliases:["black_medium_small_square"],tags:[],unicode_version:"3.2",ios_version:"6.0"},{emoji:"◽",description:"white medium-small square",category:"Symbols",aliases:["white_medium_small_square"],tags:[],unicode_version:"3.2",ios_version:"6.0"},{emoji:"▪️",description:"black small square",category:"Symbols",aliases:["black_small_square"],tags:[],unicode_version:"",ios_version:"6.0"},{emoji:"▫️",description:"white small square",category:"Symbols",aliases:["white_small_square"],tags:[],unicode_version:"",ios_version:"6.0"},{emoji:"🔶",description:"large orange diamond",category:"Symbols",aliases:["large_orange_diamond"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🔷",description:"large blue diamond",category:"Symbols",aliases:["large_blue_diamond"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🔸",description:"small orange diamond",category:"Symbols",aliases:["small_orange_diamond"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🔹",description:"small blue diamond",category:"Symbols",aliases:["small_blue_diamond"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🔺",description:"red triangle pointed up",category:"Symbols",aliases:["small_red_triangle"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🔻",description:"red triangle pointed down",category:"Symbols",aliases:["small_red_triangle_down"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"💠",description:"diamond with a dot",category:"Symbols",aliases:["diamond_shape_with_a_dot_inside"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🔘",description:"radio button",category:"Symbols",aliases:["radio_button"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🔳",description:"white square button",category:"Symbols",aliases:["white_square_button"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🔲",description:"black square button",category:"Symbols",aliases:["black_square_button"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🏁",description:"chequered flag",category:"Flags",aliases:["checkered_flag"],tags:["milestone","finish"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🚩",description:"triangular flag",category:"Flags",aliases:["triangular_flag_on_post"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🎌",description:"crossed flags",category:"Flags",aliases:["crossed_flags"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🏴",description:"black flag",category:"Flags",aliases:["black_flag"],tags:[],unicode_version:"7.0",ios_version:"9.1"},{emoji:"🏳️",description:"white flag",category:"Flags",aliases:["white_flag"],tags:[],unicode_version:"7.0",ios_version:"9.1"},{emoji:"🏳️🌈",description:"rainbow flag",category:"Flags",aliases:["rainbow_flag"],tags:["pride"],unicode_version:"6.0",ios_version:"10.0"},{emoji:"🏳️⚧️",description:"transgender flag",category:"Flags",aliases:["transgender_flag"],tags:[],unicode_version:"13.0",ios_version:"14.0"},{emoji:"🏴☠️",description:"pirate flag",category:"Flags",aliases:["pirate_flag"],tags:[],unicode_version:"11.0",ios_version:"12.1"},{emoji:"🇦🇨",description:"flag: Ascension Island",category:"Flags",aliases:["ascension_island"],tags:[],unicode_version:"11.0",ios_version:"12.1"},{emoji:"🇦🇩",description:"flag: Andorra",category:"Flags",aliases:["andorra"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇦🇪",description:"flag: United Arab Emirates",category:"Flags",aliases:["united_arab_emirates"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇦🇫",description:"flag: Afghanistan",category:"Flags",aliases:["afghanistan"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇦🇬",description:"flag: Antigua & Barbuda",category:"Flags",aliases:["antigua_barbuda"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇦🇮",description:"flag: Anguilla",category:"Flags",aliases:["anguilla"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇦🇱",description:"flag: Albania",category:"Flags",aliases:["albania"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇦🇲",description:"flag: Armenia",category:"Flags",aliases:["armenia"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇦🇴",description:"flag: Angola",category:"Flags",aliases:["angola"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇦🇶",description:"flag: Antarctica",category:"Flags",aliases:["antarctica"],tags:[],unicode_version:"6.0",ios_version:"9.0"},{emoji:"🇦🇷",description:"flag: Argentina",category:"Flags",aliases:["argentina"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇦🇸",description:"flag: American Samoa",category:"Flags",aliases:["american_samoa"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇦🇹",description:"flag: Austria",category:"Flags",aliases:["austria"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇦🇺",description:"flag: Australia",category:"Flags",aliases:["australia"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇦🇼",description:"flag: Aruba",category:"Flags",aliases:["aruba"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇦🇽",description:"flag: Åland Islands",category:"Flags",aliases:["aland_islands"],tags:[],unicode_version:"6.0",ios_version:"9.0"},{emoji:"🇦🇿",description:"flag: Azerbaijan",category:"Flags",aliases:["azerbaijan"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇧🇦",description:"flag: Bosnia & Herzegovina",category:"Flags",aliases:["bosnia_herzegovina"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇧🇧",description:"flag: Barbados",category:"Flags",aliases:["barbados"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇧🇩",description:"flag: Bangladesh",category:"Flags",aliases:["bangladesh"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇧🇪",description:"flag: Belgium",category:"Flags",aliases:["belgium"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇧🇫",description:"flag: Burkina Faso",category:"Flags",aliases:["burkina_faso"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇧🇬",description:"flag: Bulgaria",category:"Flags",aliases:["bulgaria"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇧🇭",description:"flag: Bahrain",category:"Flags",aliases:["bahrain"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇧🇮",description:"flag: Burundi",category:"Flags",aliases:["burundi"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇧🇯",description:"flag: Benin",category:"Flags",aliases:["benin"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇧🇱",description:"flag: St. Barthélemy",category:"Flags",aliases:["st_barthelemy"],tags:[],unicode_version:"6.0",ios_version:"9.0"},{emoji:"🇧🇲",description:"flag: Bermuda",category:"Flags",aliases:["bermuda"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇧🇳",description:"flag: Brunei",category:"Flags",aliases:["brunei"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇧🇴",description:"flag: Bolivia",category:"Flags",aliases:["bolivia"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇧🇶",description:"flag: Caribbean Netherlands",category:"Flags",aliases:["caribbean_netherlands"],tags:[],unicode_version:"6.0",ios_version:"9.0"},{emoji:"🇧🇷",description:"flag: Brazil",category:"Flags",aliases:["brazil"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇧🇸",description:"flag: Bahamas",category:"Flags",aliases:["bahamas"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇧🇹",description:"flag: Bhutan",category:"Flags",aliases:["bhutan"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇧🇻",description:"flag: Bouvet Island",category:"Flags",aliases:["bouvet_island"],tags:[],unicode_version:"11.0",ios_version:"12.1"},{emoji:"🇧🇼",description:"flag: Botswana",category:"Flags",aliases:["botswana"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇧🇾",description:"flag: Belarus",category:"Flags",aliases:["belarus"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇧🇿",description:"flag: Belize",category:"Flags",aliases:["belize"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇨🇦",description:"flag: Canada",category:"Flags",aliases:["canada"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇨🇨",description:"flag: Cocos (Keeling) Islands",category:"Flags",aliases:["cocos_islands"],tags:["keeling"],unicode_version:"6.0",ios_version:"9.0"},{emoji:"🇨🇩",description:"flag: Congo - Kinshasa",category:"Flags",aliases:["congo_kinshasa"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇨🇫",description:"flag: Central African Republic",category:"Flags",aliases:["central_african_republic"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇨🇬",description:"flag: Congo - Brazzaville",category:"Flags",aliases:["congo_brazzaville"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇨🇭",description:"flag: Switzerland",category:"Flags",aliases:["switzerland"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇨🇮",description:"flag: Côte d’Ivoire",category:"Flags",aliases:["cote_divoire"],tags:["ivory"],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇨🇰",description:"flag: Cook Islands",category:"Flags",aliases:["cook_islands"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇨🇱",description:"flag: Chile",category:"Flags",aliases:["chile"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇨🇲",description:"flag: Cameroon",category:"Flags",aliases:["cameroon"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇨🇳",description:"flag: China",category:"Flags",aliases:["cn"],tags:["china"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🇨🇴",description:"flag: Colombia",category:"Flags",aliases:["colombia"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇨🇵",description:"flag: Clipperton Island",category:"Flags",aliases:["clipperton_island"],tags:[],unicode_version:"11.0",ios_version:"12.1"},{emoji:"🇨🇷",description:"flag: Costa Rica",category:"Flags",aliases:["costa_rica"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇨🇺",description:"flag: Cuba",category:"Flags",aliases:["cuba"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇨🇻",description:"flag: Cape Verde",category:"Flags",aliases:["cape_verde"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇨🇼",description:"flag: Curaçao",category:"Flags",aliases:["curacao"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇨🇽",description:"flag: Christmas Island",category:"Flags",aliases:["christmas_island"],tags:[],unicode_version:"6.0",ios_version:"9.0"},{emoji:"🇨🇾",description:"flag: Cyprus",category:"Flags",aliases:["cyprus"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇨🇿",description:"flag: Czechia",category:"Flags",aliases:["czech_republic"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇩🇪",description:"flag: Germany",category:"Flags",aliases:["de"],tags:["flag","germany"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🇩🇬",description:"flag: Diego Garcia",category:"Flags",aliases:["diego_garcia"],tags:[],unicode_version:"11.0",ios_version:"12.1"},{emoji:"🇩🇯",description:"flag: Djibouti",category:"Flags",aliases:["djibouti"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇩🇰",description:"flag: Denmark",category:"Flags",aliases:["denmark"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇩🇲",description:"flag: Dominica",category:"Flags",aliases:["dominica"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇩🇴",description:"flag: Dominican Republic",category:"Flags",aliases:["dominican_republic"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇩🇿",description:"flag: Algeria",category:"Flags",aliases:["algeria"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇪🇦",description:"flag: Ceuta & Melilla",category:"Flags",aliases:["ceuta_melilla"],tags:[],unicode_version:"11.0",ios_version:"12.1"},{emoji:"🇪🇨",description:"flag: Ecuador",category:"Flags",aliases:["ecuador"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇪🇪",description:"flag: Estonia",category:"Flags",aliases:["estonia"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇪🇬",description:"flag: Egypt",category:"Flags",aliases:["egypt"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇪🇭",description:"flag: Western Sahara",category:"Flags",aliases:["western_sahara"],tags:[],unicode_version:"6.0",ios_version:"9.0"},{emoji:"🇪🇷",description:"flag: Eritrea",category:"Flags",aliases:["eritrea"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇪🇸",description:"flag: Spain",category:"Flags",aliases:["es"],tags:["spain"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🇪🇹",description:"flag: Ethiopia",category:"Flags",aliases:["ethiopia"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇪🇺",description:"flag: European Union",category:"Flags",aliases:["eu","european_union"],tags:[],unicode_version:"6.0",ios_version:"9.0"},{emoji:"🇫🇮",description:"flag: Finland",category:"Flags",aliases:["finland"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇫🇯",description:"flag: Fiji",category:"Flags",aliases:["fiji"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇫🇰",description:"flag: Falkland Islands",category:"Flags",aliases:["falkland_islands"],tags:[],unicode_version:"6.0",ios_version:"9.0"},{emoji:"🇫🇲",description:"flag: Micronesia",category:"Flags",aliases:["micronesia"],tags:[],unicode_version:"6.0",ios_version:"9.0"},{emoji:"🇫🇴",description:"flag: Faroe Islands",category:"Flags",aliases:["faroe_islands"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇫🇷",description:"flag: France",category:"Flags",aliases:["fr"],tags:["france","french"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🇬🇦",description:"flag: Gabon",category:"Flags",aliases:["gabon"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇬🇧",description:"flag: United Kingdom",category:"Flags",aliases:["gb","uk"],tags:["flag","british"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🇬🇩",description:"flag: Grenada",category:"Flags",aliases:["grenada"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇬🇪",description:"flag: Georgia",category:"Flags",aliases:["georgia"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇬🇫",description:"flag: French Guiana",category:"Flags",aliases:["french_guiana"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇬🇬",description:"flag: Guernsey",category:"Flags",aliases:["guernsey"],tags:[],unicode_version:"6.0",ios_version:"9.0"},{emoji:"🇬🇭",description:"flag: Ghana",category:"Flags",aliases:["ghana"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇬🇮",description:"flag: Gibraltar",category:"Flags",aliases:["gibraltar"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇬🇱",description:"flag: Greenland",category:"Flags",aliases:["greenland"],tags:[],unicode_version:"6.0",ios_version:"9.0"},{emoji:"🇬🇲",description:"flag: Gambia",category:"Flags",aliases:["gambia"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇬🇳",description:"flag: Guinea",category:"Flags",aliases:["guinea"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇬🇵",description:"flag: Guadeloupe",category:"Flags",aliases:["guadeloupe"],tags:[],unicode_version:"6.0",ios_version:"9.0"},{emoji:"🇬🇶",description:"flag: Equatorial Guinea",category:"Flags",aliases:["equatorial_guinea"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇬🇷",description:"flag: Greece",category:"Flags",aliases:["greece"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇬🇸",description:"flag: South Georgia & South Sandwich Islands",category:"Flags",aliases:["south_georgia_south_sandwich_islands"],tags:[],unicode_version:"6.0",ios_version:"9.0"},{emoji:"🇬🇹",description:"flag: Guatemala",category:"Flags",aliases:["guatemala"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇬🇺",description:"flag: Guam",category:"Flags",aliases:["guam"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇬🇼",description:"flag: Guinea-Bissau",category:"Flags",aliases:["guinea_bissau"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇬🇾",description:"flag: Guyana",category:"Flags",aliases:["guyana"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇭🇰",description:"flag: Hong Kong SAR China",category:"Flags",aliases:["hong_kong"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇭🇲",description:"flag: Heard & McDonald Islands",category:"Flags",aliases:["heard_mcdonald_islands"],tags:[],unicode_version:"11.0",ios_version:"12.1"},{emoji:"🇭🇳",description:"flag: Honduras",category:"Flags",aliases:["honduras"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇭🇷",description:"flag: Croatia",category:"Flags",aliases:["croatia"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇭🇹",description:"flag: Haiti",category:"Flags",aliases:["haiti"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇭🇺",description:"flag: Hungary",category:"Flags",aliases:["hungary"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇮🇨",description:"flag: Canary Islands",category:"Flags",aliases:["canary_islands"],tags:[],unicode_version:"6.0",ios_version:"9.0"},{emoji:"🇮🇩",description:"flag: Indonesia",category:"Flags",aliases:["indonesia"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇮🇪",description:"flag: Ireland",category:"Flags",aliases:["ireland"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇮🇱",description:"flag: Israel",category:"Flags",aliases:["israel"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇮🇲",description:"flag: Isle of Man",category:"Flags",aliases:["isle_of_man"],tags:[],unicode_version:"6.0",ios_version:"9.0"},{emoji:"🇮🇳",description:"flag: India",category:"Flags",aliases:["india"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇮🇴",description:"flag: British Indian Ocean Territory",category:"Flags",aliases:["british_indian_ocean_territory"],tags:[],unicode_version:"6.0",ios_version:"9.0"},{emoji:"🇮🇶",description:"flag: Iraq",category:"Flags",aliases:["iraq"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇮🇷",description:"flag: Iran",category:"Flags",aliases:["iran"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇮🇸",description:"flag: Iceland",category:"Flags",aliases:["iceland"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇮🇹",description:"flag: Italy",category:"Flags",aliases:["it"],tags:["italy"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🇯🇪",description:"flag: Jersey",category:"Flags",aliases:["jersey"],tags:[],unicode_version:"6.0",ios_version:"9.0"},{emoji:"🇯🇲",description:"flag: Jamaica",category:"Flags",aliases:["jamaica"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇯🇴",description:"flag: Jordan",category:"Flags",aliases:["jordan"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇯🇵",description:"flag: Japan",category:"Flags",aliases:["jp"],tags:["japan"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🇰🇪",description:"flag: Kenya",category:"Flags",aliases:["kenya"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇰🇬",description:"flag: Kyrgyzstan",category:"Flags",aliases:["kyrgyzstan"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇰🇭",description:"flag: Cambodia",category:"Flags",aliases:["cambodia"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇰🇮",description:"flag: Kiribati",category:"Flags",aliases:["kiribati"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇰🇲",description:"flag: Comoros",category:"Flags",aliases:["comoros"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇰🇳",description:"flag: St. Kitts & Nevis",category:"Flags",aliases:["st_kitts_nevis"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇰🇵",description:"flag: North Korea",category:"Flags",aliases:["north_korea"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇰🇷",description:"flag: South Korea",category:"Flags",aliases:["kr"],tags:["korea"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🇰🇼",description:"flag: Kuwait",category:"Flags",aliases:["kuwait"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇰🇾",description:"flag: Cayman Islands",category:"Flags",aliases:["cayman_islands"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇰🇿",description:"flag: Kazakhstan",category:"Flags",aliases:["kazakhstan"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇱🇦",description:"flag: Laos",category:"Flags",aliases:["laos"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇱🇧",description:"flag: Lebanon",category:"Flags",aliases:["lebanon"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇱🇨",description:"flag: St. Lucia",category:"Flags",aliases:["st_lucia"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇱🇮",description:"flag: Liechtenstein",category:"Flags",aliases:["liechtenstein"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇱🇰",description:"flag: Sri Lanka",category:"Flags",aliases:["sri_lanka"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇱🇷",description:"flag: Liberia",category:"Flags",aliases:["liberia"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇱🇸",description:"flag: Lesotho",category:"Flags",aliases:["lesotho"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇱🇹",description:"flag: Lithuania",category:"Flags",aliases:["lithuania"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇱🇺",description:"flag: Luxembourg",category:"Flags",aliases:["luxembourg"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇱🇻",description:"flag: Latvia",category:"Flags",aliases:["latvia"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇱🇾",description:"flag: Libya",category:"Flags",aliases:["libya"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇲🇦",description:"flag: Morocco",category:"Flags",aliases:["morocco"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇲🇨",description:"flag: Monaco",category:"Flags",aliases:["monaco"],tags:[],unicode_version:"6.0",ios_version:"9.0"},{emoji:"🇲🇩",description:"flag: Moldova",category:"Flags",aliases:["moldova"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇲🇪",description:"flag: Montenegro",category:"Flags",aliases:["montenegro"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇲🇫",description:"flag: St. Martin",category:"Flags",aliases:["st_martin"],tags:[],unicode_version:"11.0",ios_version:"12.1"},{emoji:"🇲🇬",description:"flag: Madagascar",category:"Flags",aliases:["madagascar"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇲🇭",description:"flag: Marshall Islands",category:"Flags",aliases:["marshall_islands"],tags:[],unicode_version:"6.0",ios_version:"9.0"},{emoji:"🇲🇰",description:"flag: North Macedonia",category:"Flags",aliases:["macedonia"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇲🇱",description:"flag: Mali",category:"Flags",aliases:["mali"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇲🇲",description:"flag: Myanmar (Burma)",category:"Flags",aliases:["myanmar"],tags:["burma"],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇲🇳",description:"flag: Mongolia",category:"Flags",aliases:["mongolia"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇲🇴",description:"flag: Macao SAR China",category:"Flags",aliases:["macau"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇲🇵",description:"flag: Northern Mariana Islands",category:"Flags",aliases:["northern_mariana_islands"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇲🇶",description:"flag: Martinique",category:"Flags",aliases:["martinique"],tags:[],unicode_version:"6.0",ios_version:"9.0"},{emoji:"🇲🇷",description:"flag: Mauritania",category:"Flags",aliases:["mauritania"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇲🇸",description:"flag: Montserrat",category:"Flags",aliases:["montserrat"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇲🇹",description:"flag: Malta",category:"Flags",aliases:["malta"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇲🇺",description:"flag: Mauritius",category:"Flags",aliases:["mauritius"],tags:[],unicode_version:"6.0",ios_version:"9.0"},{emoji:"🇲🇻",description:"flag: Maldives",category:"Flags",aliases:["maldives"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇲🇼",description:"flag: Malawi",category:"Flags",aliases:["malawi"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇲🇽",description:"flag: Mexico",category:"Flags",aliases:["mexico"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇲🇾",description:"flag: Malaysia",category:"Flags",aliases:["malaysia"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇲🇿",description:"flag: Mozambique",category:"Flags",aliases:["mozambique"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇳🇦",description:"flag: Namibia",category:"Flags",aliases:["namibia"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇳🇨",description:"flag: New Caledonia",category:"Flags",aliases:["new_caledonia"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇳🇪",description:"flag: Niger",category:"Flags",aliases:["niger"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇳🇫",description:"flag: Norfolk Island",category:"Flags",aliases:["norfolk_island"],tags:[],unicode_version:"6.0",ios_version:"9.0"},{emoji:"🇳🇬",description:"flag: Nigeria",category:"Flags",aliases:["nigeria"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇳🇮",description:"flag: Nicaragua",category:"Flags",aliases:["nicaragua"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇳🇱",description:"flag: Netherlands",category:"Flags",aliases:["netherlands"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇳🇴",description:"flag: Norway",category:"Flags",aliases:["norway"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇳🇵",description:"flag: Nepal",category:"Flags",aliases:["nepal"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇳🇷",description:"flag: Nauru",category:"Flags",aliases:["nauru"],tags:[],unicode_version:"6.0",ios_version:"9.0"},{emoji:"🇳🇺",description:"flag: Niue",category:"Flags",aliases:["niue"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇳🇿",description:"flag: New Zealand",category:"Flags",aliases:["new_zealand"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇴🇲",description:"flag: Oman",category:"Flags",aliases:["oman"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇵🇦",description:"flag: Panama",category:"Flags",aliases:["panama"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇵🇪",description:"flag: Peru",category:"Flags",aliases:["peru"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇵🇫",description:"flag: French Polynesia",category:"Flags",aliases:["french_polynesia"],tags:[],unicode_version:"6.0",ios_version:"9.0"},{emoji:"🇵🇬",description:"flag: Papua New Guinea",category:"Flags",aliases:["papua_new_guinea"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇵🇭",description:"flag: Philippines",category:"Flags",aliases:["philippines"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇵🇰",description:"flag: Pakistan",category:"Flags",aliases:["pakistan"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇵🇱",description:"flag: Poland",category:"Flags",aliases:["poland"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇵🇲",description:"flag: St. Pierre & Miquelon",category:"Flags",aliases:["st_pierre_miquelon"],tags:[],unicode_version:"6.0",ios_version:"9.0"},{emoji:"🇵🇳",description:"flag: Pitcairn Islands",category:"Flags",aliases:["pitcairn_islands"],tags:[],unicode_version:"6.0",ios_version:"9.0"},{emoji:"🇵🇷",description:"flag: Puerto Rico",category:"Flags",aliases:["puerto_rico"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇵🇸",description:"flag: Palestinian Territories",category:"Flags",aliases:["palestinian_territories"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇵🇹",description:"flag: Portugal",category:"Flags",aliases:["portugal"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇵🇼",description:"flag: Palau",category:"Flags",aliases:["palau"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇵🇾",description:"flag: Paraguay",category:"Flags",aliases:["paraguay"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇶🇦",description:"flag: Qatar",category:"Flags",aliases:["qatar"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇷🇪",description:"flag: Réunion",category:"Flags",aliases:["reunion"],tags:[],unicode_version:"6.0",ios_version:"9.0"},{emoji:"🇷🇴",description:"flag: Romania",category:"Flags",aliases:["romania"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇷🇸",description:"flag: Serbia",category:"Flags",aliases:["serbia"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇷🇺",description:"flag: Russia",category:"Flags",aliases:["ru"],tags:["russia"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🇷🇼",description:"flag: Rwanda",category:"Flags",aliases:["rwanda"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇸🇦",description:"flag: Saudi Arabia",category:"Flags",aliases:["saudi_arabia"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇸🇧",description:"flag: Solomon Islands",category:"Flags",aliases:["solomon_islands"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇸🇨",description:"flag: Seychelles",category:"Flags",aliases:["seychelles"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇸🇩",description:"flag: Sudan",category:"Flags",aliases:["sudan"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇸🇪",description:"flag: Sweden",category:"Flags",aliases:["sweden"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇸🇬",description:"flag: Singapore",category:"Flags",aliases:["singapore"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇸🇭",description:"flag: St. Helena",category:"Flags",aliases:["st_helena"],tags:[],unicode_version:"6.0",ios_version:"9.0"},{emoji:"🇸🇮",description:"flag: Slovenia",category:"Flags",aliases:["slovenia"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇸🇯",description:"flag: Svalbard & Jan Mayen",category:"Flags",aliases:["svalbard_jan_mayen"],tags:[],unicode_version:"11.0",ios_version:"12.1"},{emoji:"🇸🇰",description:"flag: Slovakia",category:"Flags",aliases:["slovakia"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇸🇱",description:"flag: Sierra Leone",category:"Flags",aliases:["sierra_leone"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇸🇲",description:"flag: San Marino",category:"Flags",aliases:["san_marino"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇸🇳",description:"flag: Senegal",category:"Flags",aliases:["senegal"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇸🇴",description:"flag: Somalia",category:"Flags",aliases:["somalia"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇸🇷",description:"flag: Suriname",category:"Flags",aliases:["suriname"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇸🇸",description:"flag: South Sudan",category:"Flags",aliases:["south_sudan"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇸🇹",description:"flag: São Tomé & Príncipe",category:"Flags",aliases:["sao_tome_principe"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇸🇻",description:"flag: El Salvador",category:"Flags",aliases:["el_salvador"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇸🇽",description:"flag: Sint Maarten",category:"Flags",aliases:["sint_maarten"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇸🇾",description:"flag: Syria",category:"Flags",aliases:["syria"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇸🇿",description:"flag: Eswatini",category:"Flags",aliases:["swaziland"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇹🇦",description:"flag: Tristan da Cunha",category:"Flags",aliases:["tristan_da_cunha"],tags:[],unicode_version:"11.0",ios_version:"12.1"},{emoji:"🇹🇨",description:"flag: Turks & Caicos Islands",category:"Flags",aliases:["turks_caicos_islands"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇹🇩",description:"flag: Chad",category:"Flags",aliases:["chad"],tags:[],unicode_version:"6.0",ios_version:"9.0"},{emoji:"🇹🇫",description:"flag: French Southern Territories",category:"Flags",aliases:["french_southern_territories"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇹🇬",description:"flag: Togo",category:"Flags",aliases:["togo"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇹🇭",description:"flag: Thailand",category:"Flags",aliases:["thailand"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇹🇯",description:"flag: Tajikistan",category:"Flags",aliases:["tajikistan"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇹🇰",description:"flag: Tokelau",category:"Flags",aliases:["tokelau"],tags:[],unicode_version:"6.0",ios_version:"9.0"},{emoji:"🇹🇱",description:"flag: Timor-Leste",category:"Flags",aliases:["timor_leste"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇹🇲",description:"flag: Turkmenistan",category:"Flags",aliases:["turkmenistan"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇹🇳",description:"flag: Tunisia",category:"Flags",aliases:["tunisia"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇹🇴",description:"flag: Tonga",category:"Flags",aliases:["tonga"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇹🇷",description:"flag: Turkey",category:"Flags",aliases:["tr"],tags:["turkey"],unicode_version:"8.0",ios_version:"9.1"},{emoji:"🇹🇹",description:"flag: Trinidad & Tobago",category:"Flags",aliases:["trinidad_tobago"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇹🇻",description:"flag: Tuvalu",category:"Flags",aliases:["tuvalu"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇹🇼",description:"flag: Taiwan",category:"Flags",aliases:["taiwan"],tags:[],unicode_version:"6.0",ios_version:"9.0"},{emoji:"🇹🇿",description:"flag: Tanzania",category:"Flags",aliases:["tanzania"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇺🇦",description:"flag: Ukraine",category:"Flags",aliases:["ukraine"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇺🇬",description:"flag: Uganda",category:"Flags",aliases:["uganda"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇺🇲",description:"flag: U.S. Outlying Islands",category:"Flags",aliases:["us_outlying_islands"],tags:[],unicode_version:"11.0",ios_version:"12.1"},{emoji:"🇺🇳",description:"flag: United Nations",category:"Flags",aliases:["united_nations"],tags:[],unicode_version:"11.0",ios_version:"12.1"},{emoji:"🇺🇸",description:"flag: United States",category:"Flags",aliases:["us"],tags:["flag","united","america"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🇺🇾",description:"flag: Uruguay",category:"Flags",aliases:["uruguay"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇺🇿",description:"flag: Uzbekistan",category:"Flags",aliases:["uzbekistan"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇻🇦",description:"flag: Vatican City",category:"Flags",aliases:["vatican_city"],tags:[],unicode_version:"6.0",ios_version:"9.0"},{emoji:"🇻🇨",description:"flag: St. Vincent & Grenadines",category:"Flags",aliases:["st_vincent_grenadines"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇻🇪",description:"flag: Venezuela",category:"Flags",aliases:["venezuela"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇻🇬",description:"flag: British Virgin Islands",category:"Flags",aliases:["british_virgin_islands"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇻🇮",description:"flag: U.S. Virgin Islands",category:"Flags",aliases:["us_virgin_islands"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇻🇳",description:"flag: Vietnam",category:"Flags",aliases:["vietnam"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇻🇺",description:"flag: Vanuatu",category:"Flags",aliases:["vanuatu"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇼🇫",description:"flag: Wallis & Futuna",category:"Flags",aliases:["wallis_futuna"],tags:[],unicode_version:"6.0",ios_version:"9.0"},{emoji:"🇼🇸",description:"flag: Samoa",category:"Flags",aliases:["samoa"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇽🇰",description:"flag: Kosovo",category:"Flags",aliases:["kosovo"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇾🇪",description:"flag: Yemen",category:"Flags",aliases:["yemen"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇾🇹",description:"flag: Mayotte",category:"Flags",aliases:["mayotte"],tags:[],unicode_version:"6.0",ios_version:"9.0"},{emoji:"🇿🇦",description:"flag: South Africa",category:"Flags",aliases:["south_africa"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇿🇲",description:"flag: Zambia",category:"Flags",aliases:["zambia"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇿🇼",description:"flag: Zimbabwe",category:"Flags",aliases:["zimbabwe"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🏴",description:"flag: England",category:"Flags",aliases:["england"],tags:[],unicode_version:"11.0",ios_version:"12.1"},{emoji:"🏴",description:"flag: Scotland",category:"Flags",aliases:["scotland"],tags:[],unicode_version:"11.0",ios_version:"12.1"},{emoji:"🏴",description:"flag: Wales",category:"Flags",aliases:["wales"],tags:[],unicode_version:"11.0",ios_version:"12.1"}]},Symbol.toStringTag,{value:"Module"}));Yo.Editor=nR,Yo.EditorTask=PR,Object.defineProperty(Yo,Symbol.toStringTag,{value:"Module"})});
|
|
1545
|
+
`?o.insert.slice(0,-1):o.insert;(typeof a!="string"||a.length>0)&&v0(e,this,s,a,o.attributes||{})}else o.retain!==void 0?zE(e,this,s,o.retain,o.attributes||{}):o.delete!==void 0&&HE(e,s,o.delete)}}):this._pending.push(()=>this.applyDelta(t))}toDelta(t,n,e){const s=[],r=new Map,o=this.doc;let a="",c=this._start;function i(){if(a.length>0){const d={};let f=!1;r.forEach((h,m)=>{f=!0,d[m]=h});const p={insert:a};f&&(p.attributes=d),s.push(p),a=""}}const u=()=>{for(;c!==null;){if(cu(c,t)||n!==void 0&&cu(c,n))switch(c.content.constructor){case sa:{const d=r.get("ychange");t!==void 0&&!cu(c,t)?(d===void 0||d.user!==c.id.client||d.type!=="removed")&&(i(),r.set("ychange",e?e("removed",c.id):{type:"removed"})):n!==void 0&&!cu(c,n)?(d===void 0||d.user!==c.id.client||d.type!=="added")&&(i(),r.set("ychange",e?e("added",c.id):{type:"added"})):d!==void 0&&(i(),r.delete("ychange")),a+=c.content.str;break}case Ya:case pu:{i();const d={insert:c.content.getContent()[0]};if(r.size>0){const f={};d.attributes=f,r.forEach((p,h)=>{f[h]=p})}s.push(d);break}case Eo:cu(c,t)&&(i(),du(r,c.content));break}c=c.right}i()};return t||n?Fr(o,d=>{t&&u0(d,t),n&&u0(d,n),u()},"cleanup"):u(),s}insert(t,n,e){if(n.length<=0)return;const s=this.doc;s!==null?Fr(s,r=>{const o=Oh(r,this,t,!e);e||(e={},o.currentAttributes.forEach((a,c)=>{e[c]=a})),v0(r,this,o,n,e)}):this._pending.push(()=>this.insert(t,n,e))}insertEmbed(t,n,e){const s=this.doc;s!==null?Fr(s,r=>{const o=Oh(r,this,t,!e);v0(r,this,o,n,e||{})}):this._pending.push(()=>this.insertEmbed(t,n,e||{}))}delete(t,n){if(n===0)return;const e=this.doc;e!==null?Fr(e,s=>{HE(s,Oh(s,this,t,!0),n)}):this._pending.push(()=>this.delete(t,n))}format(t,n,e){if(n===0)return;const s=this.doc;s!==null?Fr(s,r=>{const o=Oh(r,this,t,!1);o.right!==null&&zE(r,this,o,n,e)}):this._pending.push(()=>this.format(t,n,e))}removeAttribute(t){this.doc!==null?Fr(this.doc,n=>{Th(n,this,t)}):this._pending.push(()=>this.removeAttribute(t))}setAttribute(t,n){this.doc!==null?Fr(this.doc,e=>{g0(e,this,t,n)}):this._pending.push(()=>this.setAttribute(t,n))}getAttribute(t){return m0(this,t)}getAttributes(){return IE(this)}_write(t){t.writeTypeRef(y3)}}class b0{constructor(t,n=()=>!0){this._filter=n,this._root=t,this._currentNode=t._start,this._firstCall=!0}[Symbol.iterator](){return this}next(){let t=this._currentNode,n=t&&t.content&&t.content.type;if(t!==null&&(!this._firstCall||t.deleted||!this._filter(n)))do if(n=t.content.type,!t.deleted&&(n.constructor===Zd||n.constructor===fu)&&n._start!==null)t=n._start;else for(;t!==null;)if(t.right!==null){t=t.right;break}else t.parent===this._root?t=null:t=t.parent._item;while(t!==null&&(t.deleted||!this._filter(t.content.type)));return this._firstCall=!1,t===null?{value:void 0,done:!0}:(this._currentNode=t,{value:t.content.type,done:!1})}}class fu extends Mo{constructor(){super(),this._prelimContent=[]}get firstChild(){const t=this._first;return t?t.content.getContent()[0]:null}_integrate(t,n){super._integrate(t,n),this.insert(0,this._prelimContent),this._prelimContent=null}_copy(){return new fu}clone(){const t=new fu;return t.insert(0,this.toArray().map(n=>n instanceof Mo?n.clone():n)),t}get length(){return this._prelimContent===null?this._length:this._prelimContent.length}createTreeWalker(t){return new b0(this,t)}querySelector(t){t=t.toUpperCase();const e=new b0(this,s=>s.nodeName&&s.nodeName.toUpperCase()===t).next();return e.done?null:e.value}querySelectorAll(t){return t=t.toUpperCase(),iu(new b0(this,n=>n.nodeName&&n.nodeName.toUpperCase()===t))}_callObserver(t,n){jh(this,t,new f3(this,n,t))}toString(){return TE(this,t=>t.toString()).join("")}toJSON(){return this.toString()}toDOM(t=document,n={},e){const s=t.createDocumentFragment();return e!==void 0&&e._createAssociation(s,this),Yd(this,r=>{s.insertBefore(r.toDOM(t,n,e),null)}),s}insert(t,n){this.doc!==null?Fr(this.doc,e=>{NE(e,this,t,n)}):this._prelimContent.splice(t,0,...n)}insertAfter(t,n){if(this.doc!==null)Fr(this.doc,e=>{const s=t&&t instanceof Mo?t._item:t;kh(e,this,s,n)});else{const e=this._prelimContent,s=t===null?0:e.findIndex(r=>r===t)+1;if(s===0&&t!==null)throw lu("Reference item not found");e.splice(s,0,...n)}}delete(t,n=1){this.doc!==null?Fr(this.doc,e=>{PE(e,this,t,n)}):this._prelimContent.splice(t,n)}toArray(){return kE(this)}push(t){this.insert(this.length,t)}unshift(t){this.insert(0,t)}get(t){return AE(this,t)}slice(t=0,n=this.length){return jE(this,t,n)}forEach(t){Yd(this,t)}_write(t){t.writeTypeRef(b3)}}class Zd extends fu{constructor(t="UNDEFINED"){super(),this.nodeName=t,this._prelimAttrs=new Map}get nextSibling(){const t=this._item?this._item.next:null;return t?t.content.type:null}get prevSibling(){const t=this._item?this._item.prev:null;return t?t.content.type:null}_integrate(t,n){super._integrate(t,n),this._prelimAttrs.forEach((e,s)=>{this.setAttribute(s,e)}),this._prelimAttrs=null}_copy(){return new Zd(this.nodeName)}clone(){const t=new Zd(this.nodeName),n=this.getAttributes();return gM(n,(e,s)=>{typeof e=="string"&&t.setAttribute(s,e)}),t.insert(0,this.toArray().map(e=>e instanceof Mo?e.clone():e)),t}toString(){const t=this.getAttributes(),n=[],e=[];for(const a in t)e.push(a);e.sort();const s=e.length;for(let a=0;a<s;a++){const c=e[a];n.push(c+'="'+t[c]+'"')}const r=this.nodeName.toLocaleLowerCase(),o=n.length>0?" "+n.join(" "):"";return`<${r}${o}>${super.toString()}</${r}>`}removeAttribute(t){this.doc!==null?Fr(this.doc,n=>{Th(n,this,t)}):this._prelimAttrs.delete(t)}setAttribute(t,n){this.doc!==null?Fr(this.doc,e=>{g0(e,this,t,n)}):this._prelimAttrs.set(t,n)}getAttribute(t){return m0(this,t)}hasAttribute(t){return ME(this,t)}getAttributes(t){return t?s3(this,t):IE(this)}toDOM(t=document,n={},e){const s=t.createElement(this.nodeName),r=this.getAttributes();for(const o in r){const a=r[o];typeof a=="string"&&s.setAttribute(o,a)}return Yd(this,o=>{s.appendChild(o.toDOM(t,n,e))}),e!==void 0&&e._createAssociation(s,this),s}_write(t){t.writeTypeRef(v3),t.writeKey(this.nodeName)}}class f3 extends Eh{constructor(t,n,e){super(t,e),this.childListChanged=!1,this.attributesChanged=new Set,n.forEach(s=>{s===null?this.childListChanged=!0:this.attributesChanged.add(s)})}}class qE{constructor(t,n){this.id=t,this.length=n}get deleted(){throw Cs()}mergeWith(t){return!1}write(t,n,e){throw Cs()}integrate(t,n){throw Cs()}}const p3=0;class $a extends qE{get deleted(){return!0}delete(){}mergeWith(t){return this.constructor!==t.constructor?!1:(this.length+=t.length,!0)}integrate(t,n){n>0&&(this.id.clock+=n,this.length-=n),yE(t.doc.store,this)}write(t,n){t.writeInfo(p3),t.writeLen(this.length-n)}getMissing(t,n){return null}}class Ph{constructor(t){this.content=t}getLength(){return 1}getContent(){return[this.content]}isCountable(){return!0}copy(){return new Ph(this.content)}splice(t){throw Cs()}mergeWith(t){return!1}integrate(t,n){}delete(t){}gc(t){}write(t,n){t.writeBuf(this.content)}getRef(){return 3}}class Ih{constructor(t){this.len=t}getLength(){return this.len}getContent(){return[]}isCountable(){return!1}copy(){return new Ih(this.len)}splice(t){const n=new Ih(this.len-t);return this.len=t,n}mergeWith(t){return this.len+=t.len,!0}integrate(t,n){dE(t.deleteSet,n.id.client,n.id.clock,this.len),n.markDeleted()}delete(t){}gc(t){}write(t,n){t.writeLen(this.len-n)}getRef(){return 1}}const h3=(l,t)=>new Gd({guid:l,...t,shouldLoad:t.shouldLoad||t.autoLoad||!1});class Mh{constructor(t){t._item&&console.error("This document was already integrated as a sub-document. You should create a second instance instead with the same guid."),this.doc=t;const n={};this.opts=n,t.gc||(n.gc=!1),t.autoLoad&&(n.autoLoad=!0),t.meta!==null&&(n.meta=t.meta)}getLength(){return 1}getContent(){return[this.doc]}isCountable(){return!0}copy(){return new Mh(h3(this.doc.guid,this.opts))}splice(t){throw Cs()}mergeWith(t){return!1}integrate(t,n){this.doc._item=n,t.subdocsAdded.add(this.doc),this.doc.shouldLoad&&t.subdocsLoaded.add(this.doc)}delete(t){t.subdocsAdded.has(this.doc)?t.subdocsAdded.delete(this.doc):t.subdocsRemoved.add(this.doc)}gc(t){}write(t,n){t.writeString(this.doc.guid),t.writeAny(this.opts)}getRef(){return 9}}class pu{constructor(t){this.embed=t}getLength(){return 1}getContent(){return[this.embed]}isCountable(){return!0}copy(){return new pu(this.embed)}splice(t){throw Cs()}mergeWith(t){return!1}integrate(t,n){}delete(t){}gc(t){}write(t,n){t.writeJSON(this.embed)}getRef(){return 5}}class Eo{constructor(t,n){this.key=t,this.value=n}getLength(){return 1}getContent(){return[]}isCountable(){return!1}copy(){return new Eo(this.key,this.value)}splice(t){throw Cs()}mergeWith(t){return!1}integrate(t,n){const e=n.parent;e._searchMarker=null,e._hasFormatting=!0}delete(t){}gc(t){}write(t,n){t.writeKey(this.key),t.writeJSON(this.value)}getRef(){return 6}}class hu{constructor(t){this.arr=t}getLength(){return this.arr.length}getContent(){return this.arr}isCountable(){return!0}copy(){return new hu(this.arr)}splice(t){const n=new hu(this.arr.slice(t));return this.arr=this.arr.slice(0,t),n}mergeWith(t){return this.arr=this.arr.concat(t.arr),!0}integrate(t,n){}delete(t){}gc(t){}write(t,n){const e=this.arr.length;t.writeLen(e-n);for(let s=n;s<e;s++){const r=this.arr[s];t.writeAny(r)}}getRef(){return 8}}class sa{constructor(t){this.str=t}getLength(){return this.str.length}getContent(){return this.str.split("")}isCountable(){return!0}copy(){return new sa(this.str)}splice(t){const n=new sa(this.str.slice(t));this.str=this.str.slice(0,t);const e=this.str.charCodeAt(t-1);return e>=55296&&e<=56319&&(this.str=this.str.slice(0,t-1)+"�",n.str="�"+n.str.slice(1)),n}mergeWith(t){return this.str+=t.str,!0}integrate(t,n){}delete(t){}gc(t){}write(t,n){t.writeString(n===0?this.str:this.str.slice(n))}getRef(){return 4}}const g3=0,m3=1,y3=2,v3=3,b3=4;class Ya{constructor(t){this.type=t}getLength(){return 1}getContent(){return[this.type]}isCountable(){return!0}copy(){return new Ya(this.type._copy())}splice(t){throw Cs()}mergeWith(t){return!1}integrate(t,n){this.type._integrate(t.doc,n)}delete(t){let n=this.type._start;for(;n!==null;)n.deleted?n.id.clock<(t.beforeState.get(n.id.client)||0)&&t._mergeStructs.push(n):n.delete(t),n=n.right;this.type._map.forEach(e=>{e.deleted?e.id.clock<(t.beforeState.get(e.id.client)||0)&&t._mergeStructs.push(e):e.delete(t)}),t.changed.delete(this.type)}gc(t){let n=this.type._start;for(;n!==null;)n.gc(t,!0),n=n.right;this.type._start=null,this.type._map.forEach(e=>{for(;e!==null;)e.gc(t,!0),e=e.left}),this.type._map=new Map}write(t,n){this.type._write(t)}getRef(){return 7}}const WE=(l,t,n)=>{const{client:e,clock:s}=t.id,r=new Wo(Qr(e,s+n),t,Qr(e,s+n-1),t.right,t.rightOrigin,t.parent,t.parentSub,t.content.splice(n));return t.deleted&&r.markDeleted(),t.keep&&(r.keep=!0),t.redone!==null&&(r.redone=Qr(t.redone.client,t.redone.clock+n)),t.right=r,r.right!==null&&(r.right.left=r),l._mergeStructs.push(r),r.parentSub!==null&&r.right===null&&r.parent._map.set(r.parentSub,r),t.length=n,r};class Wo extends qE{constructor(t,n,e,s,r,o,a,c){super(t,c.getLength()),this.origin=e,this.left=n,this.right=s,this.rightOrigin=r,this.parent=o,this.parentSub=a,this.redone=null,this.content=c,this.info=this.content.isCountable()?qS:0}set marker(t){(this.info&Zy)>0!==t&&(this.info^=Zy)}get marker(){return(this.info&Zy)>0}get keep(){return(this.info&HS)>0}set keep(t){this.keep!==t&&(this.info^=HS)}get countable(){return(this.info&qS)>0}get deleted(){return(this.info&Yy)>0}set deleted(t){this.deleted!==t&&(this.info^=Yy)}markDeleted(){this.info|=Yy}getMissing(t,n){if(this.origin&&this.origin.client!==this.id.client&&this.origin.clock>=di(n,this.origin.client))return this.origin.client;if(this.rightOrigin&&this.rightOrigin.client!==this.id.client&&this.rightOrigin.clock>=di(n,this.rightOrigin.client))return this.rightOrigin.client;if(this.parent&&this.parent.constructor===wh&&this.id.client!==this.parent.client&&this.parent.clock>=di(n,this.parent.client))return this.parent.client;if(this.origin&&(this.left=vE(t,n,this.origin),this.origin=this.left.lastId),this.rightOrigin&&(this.right=Ka(t,this.rightOrigin),this.rightOrigin=this.right.id),this.left&&this.left.constructor===$a||this.right&&this.right.constructor===$a)this.parent=null;else if(!this.parent)this.left&&this.left.constructor===Wo&&(this.parent=this.left.parent,this.parentSub=this.left.parentSub),this.right&&this.right.constructor===Wo&&(this.parent=this.right.parent,this.parentSub=this.right.parentSub);else if(this.parent.constructor===wh){const e=f0(n,this.parent);e.constructor===$a?this.parent=null:this.parent=e.content.type}return null}integrate(t,n){if(n>0&&(this.id.clock+=n,this.left=vE(t,t.doc.store,Qr(this.id.client,this.id.clock-1)),this.origin=this.left.lastId,this.content=this.content.splice(n),this.length-=n),this.parent){if(!this.left&&(!this.right||this.right.left!==null)||this.left&&this.left.right!==this.right){let e=this.left,s;if(e!==null)s=e.right;else if(this.parentSub!==null)for(s=this.parent._map.get(this.parentSub)||null;s!==null&&s.left!==null;)s=s.left;else s=this.parent._start;const r=new Set,o=new Set;for(;s!==null&&s!==this.right;){if(o.add(s),r.add(s),xh(this.origin,s.origin)){if(s.id.client<this.id.client)e=s,r.clear();else if(xh(this.rightOrigin,s.rightOrigin))break}else if(s.origin!==null&&o.has(f0(t.doc.store,s.origin)))r.has(f0(t.doc.store,s.origin))||(e=s,r.clear());else break;s=s.right}this.left=e}if(this.left!==null){const e=this.left.right;this.right=e,this.left.right=this}else{let e;if(this.parentSub!==null)for(e=this.parent._map.get(this.parentSub)||null;e!==null&&e.left!==null;)e=e.left;else e=this.parent._start,this.parent._start=this;this.right=e}this.right!==null?this.right.left=this:this.parentSub!==null&&(this.parent._map.set(this.parentSub,this),this.left!==null&&this.left.delete(t)),this.parentSub===null&&this.countable&&!this.deleted&&(this.parent._length+=this.length),yE(t.doc.store,this),this.content.integrate(t,this),wE(t,this.parent,this.parentSub),(this.parent._item!==null&&this.parent._item.deleted||this.parentSub!==null&&this.right!==null)&&this.delete(t)}else new $a(this.id,this.length).integrate(t,0)}get next(){let t=this.right;for(;t!==null&&t.deleted;)t=t.right;return t}get prev(){let t=this.left;for(;t!==null&&t.deleted;)t=t.left;return t}get lastId(){return this.length===1?this.id:Qr(this.id.client,this.id.clock+this.length-1)}mergeWith(t){if(this.constructor===t.constructor&&xh(t.origin,this.lastId)&&this.right===t&&xh(this.rightOrigin,t.rightOrigin)&&this.id.client===t.id.client&&this.id.clock+this.length===t.id.clock&&this.deleted===t.deleted&&this.redone===null&&t.redone===null&&this.content.constructor===t.content.constructor&&this.content.mergeWith(t.content)){const n=this.parent._searchMarker;return n&&n.forEach(e=>{e.p===t&&(e.p=this,!this.deleted&&this.countable&&(e.index-=this.length))}),t.keep&&(this.keep=!0),this.right=t.right,this.right!==null&&(this.right.left=this),this.length+=t.length,!0}return!1}delete(t){if(!this.deleted){const n=this.parent;this.countable&&this.parentSub===null&&(n._length-=this.length),this.markDeleted(),dE(t.deleteSet,this.id.client,this.id.clock,this.length),wE(t,n,this.parentSub),this.content.delete(t)}}gc(t,n){if(!this.deleted)throw Hl();this.content.gc(t),n?YM(t,this,new $a(this.id,this.length)):this.content=new Ih(this.length)}write(t,n){const e=n>0?Qr(this.id.client,this.id.clock+n-1):this.origin,s=this.rightOrigin,r=this.parentSub,o=this.content.getRef()&H5|(e===null?0:bh)|(s===null?0:WS)|(r===null?0:U5);if(t.writeInfo(o),e!==null&&t.writeLeftID(e),s!==null&&t.writeRightID(s),e===null&&s===null){const a=this.parent;if(a._item!==void 0){const c=a._item;if(c===null){const i=GM(a);t.writeParentInfo(!0),t.writeString(i)}else t.writeParentInfo(!1),t.writeLeftID(c.id)}else a.constructor===String?(t.writeParentInfo(!0),t.writeString(a)):a.constructor===wh?(t.writeParentInfo(!1),t.writeLeftID(a)):Hl();r!==null&&t.writeString(r)}this.content.write(t,n)}}const JE=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:{},VE="__ $YJS$ __";JE[VE]===!0&&console.error("Yjs was already imported. This breaks constructor checks and will lead to issues! - https://github.com/yjs/yjs/issues/438"),JE[VE]=!0;function _3(l){return l&&l.__esModule&&Object.prototype.hasOwnProperty.call(l,"default")?l.default:l}_3(function(l){const t=new URLSearchParams;t.append("code",l);for(let n=1;n<arguments.length;n++)t.append("v",arguments[n]);throw Error(`Minified Lexical error #${l}; visit https://lexical.dev/docs/error?${t} for the full message or use the non-minified dev environment for full errors and additional helpful warnings.`)});const w3=po();function KE(){return Math.random().toString(36).replace(/[^a-z]+/g,"").substr(0,5)}function x3(){const l=new Date,t=String(l.getHours()).padStart(2,"0"),n=String(l.getMinutes()).padStart(2,"0");return`${t}:${n}`}function GE(){return new Date().toLocaleDateString("en-US",{month:"short",day:"numeric"})}console.log(GE());function Rh(l,t,n,e,s,r,o){return{author:t,content:l,deleted:o===void 0?!1:o,id:r===void 0?KE():r,timeStamp:s===void 0?`${x3()} - ${GE()}`:s,type:"comment",userEmail:n===void 0?"":n,mentionedEmails:e===void 0?[]:e}}function $E(l,t,n,e){return console.log("wpAndTaskId 2222222222222",e),{comments:t,id:n===void 0?KE():n,quote:l,type:"thread",resolved:!1,wpAndTaskId:e}}function YE(l){return console.log("thread clone is called",l),{comments:Array.from(l.comments),id:l.id,quote:l.quote,type:"thread",resolved:l.resolved,wpAndTaskId:l.wpAndTaskId}}function S3(l){return{author:l.author,content:"[Deleted Comment]",deleted:!0,id:l.id,timeStamp:l.timeStamp,type:"comment",userEmail:l.userEmail,mentionedEmails:l.mentionedEmails}}function Dh(l){const t=l._changeListeners;for(const n of t)n()}class Qd{constructor(t){Hn(this,"_editor");Hn(this,"_comments");Hn(this,"_changeListeners");Hn(this,"_collabProvider");this._comments=[],this._editor=t,this._collabProvider=null,this._changeListeners=new Set}isCollaborative(){return this._collabProvider!==null}getComments(){return this._comments}setComments(t){this._comments=t,Dh(this)}addComment(t,n,e){const s=Array.from(this._comments),r=this._getCollabComments();if(n!==void 0&&t.type==="comment")for(let o=0;o<s.length;o++){const a=s[o];if(a.type==="thread"&&a.id===n.id){const c=YE(a);s.splice(o,1,c);const i=e!==void 0?e:c.comments.length;if(this.isCollaborative()&&r!==null){const u=r.get(o).get("comments");this._withRemoteTransaction(()=>{const d=this._createCollabSharedMap(t);u.insert(i,[d])})}c.comments.splice(i,0,t);break}}else{const o=e!==void 0?e:s.length;this.isCollaborative()&&r!==null&&this._withRemoteTransaction(()=>{const a=this._createCollabSharedMap(t);r.insert(o,[a])}),s.splice(o,0,t)}this._comments=s,Dh(this)}deleteCommentOrThread(t,n){const e=Array.from(this._comments),s=this._getCollabComments();let r=null;if(n!==void 0)for(let o=0;o<e.length;o++){const a=e[o];if(a.type==="thread"&&a.id===n.id){const c=YE(a);e.splice(o,1,c);const i=c.comments;if(r=i.indexOf(t),this.isCollaborative()&&s!==null){const u=s.get(o).get("comments");this._withRemoteTransaction(()=>{u.delete(r)})}i.splice(r,1);break}}else r=e.indexOf(t),this.isCollaborative()&&s!==null&&this._withRemoteTransaction(()=>{s.delete(r)}),e.splice(r,1);return this._comments=e,Dh(this),t.type==="comment"?{index:r,markedComment:S3(t)}:null}resolveThread(t){const n={...t,resolved:!0},e=this._comments.map(s=>s.type==="thread"&&s.id===n.id?n:s);this._comments=e,Dh(this)}registerOnChange(t){const n=this._changeListeners;return n.add(t),()=>{n.delete(t)}}_withRemoteTransaction(t){const n=this._collabProvider;n!==null&&n.doc.transact(t,this)}_withLocalTransaction(t){const n=this._collabProvider;try{this._collabProvider=null,t()}finally{this._collabProvider=n}}_getCollabComments(){const t=this._collabProvider;return t!==null?t.doc.get("comments",ql):null}_createCollabSharedMap(t){const n=new uu,e=t.type,s=t.id;if(n.set("type",e),n.set("id",s),e==="comment")n.set("author",t.author),n.set("content",t.content),n.set("deleted",t.deleted),n.set("timeStamp",t.timeStamp),n.set("userEmail",t.userEmail);else{n.set("quote",t.quote);const r=new ql;t.comments.forEach((o,a)=>{const c=this._createCollabSharedMap(o);r.insert(a,[c])}),n.set("comments",r)}return n}registerCollaboration(t){this._collabProvider=t;const n=this._getCollabComments(),e=()=>{t.connect()},s=()=>{try{t.disconnect()}catch{}},r=this._editor.registerCommand(w3,a=>(e!==void 0&&s!==void 0&&(a?(console.log("Comments connected!"),e()):(console.log("Comments disconnected!"),s())),!1),Jn),o=(a,c)=>{if(c.origin!==this)for(let i=0;i<a.length;i++){const u=a[i];if(u instanceof RE){const d=u.target,f=u.delta;let p=0;for(let h=0;h<f.length;h++){const m=f[h],g=m.insert,v=m.retain,b=m.delete,_=d.parent,E=d===n?void 0:_ instanceof uu&&this._comments.find(S=>S.id===_.get("id"));if(Array.isArray(g))g.slice().reverse().forEach(S=>{const w=S.get("id"),x=S.get("type")==="thread"?$E(S.get("quote"),S.get("comments").toArray().map(C=>Rh(C.get("content"),C.get("author"),C.get("userEmail"),C.get("mentionedEmails"),C.get("timeStamp"),C.get("id"),C.get("deleted"))),w,S.get("wpAndTaskId")):Rh(S.get("content"),S.get("author"),S.get("userEmail"),S.get("mentionedEmails"),w,S.get("timeStamp"),S.get("deleted"));this._withLocalTransaction(()=>{this.addComment(x,E,p)})});else if(typeof v=="number")p+=v;else if(typeof b=="number")for(let S=0;S<b;S++){const w=E===void 0||E===!1?this._comments[p]:E.comments[p];this._withLocalTransaction(()=>{this.deleteCommentOrThread(w,E)}),p++}}}}};return n===null?()=>null:(n.observeDeep(o),e(),()=>{n.unobserveDeep(o),r(),this._collabProvider=null})}}function E3(l){const[t,n]=he.useState(l.getComments());return he.useEffect(()=>l.registerOnChange(()=>{n(l.getComments())}),[l]),t}const JD="",C3={...ry,paragraph:"CommentEditorTheme__paragraph"},j3="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iMjRweCIgdmlld0JveD0iMCAtOTYwIDk2MCA5NjAiIHdpZHRoPSIyNHB4IiBmaWxsPSIjNWY2MzY4Ij48cGF0aCBkPSJNNDQwLTQwMGg4MHYtMTIwaDEyMHYtODBINTIwdi0xMjBoLTgwdjEyMEgzMjB2ODBoMTIwdjEyMFpNODAtODB2LTcyMHEwLTMzIDIzLjUtNTYuNVQxNjAtODgwaDY0MHEzMyAwIDU2LjUgMjMuNVQ4ODAtODAwdjQ4MHEwIDMzLTIzLjUgNTYuNVQ4MDAtMjQwSDI0MEw4MC04MFptMTI2LTI0MGg1OTR2LTQ4MEgxNjB2NTI1bDQ2LTQ1Wm0tNDYgMHYtNDgwIDQ4MFoiLz48L3N2Zz4NCg==",k3="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz48c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkxheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IiB3aWR0aD0iMTIyLjg4MXB4IiBoZWlnaHQ9Ijg5Ljg0MnB4IiB2aWV3Qm94PSIwIDAgMTIyLjg4MSA4OS44NDIiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDEyMi44ODEgODkuODQyIiB4bWw6c3BhY2U9InByZXNlcnZlIj48Zz48cGF0aCBkPSJNMS4yMzIsNTUuNTQxYy0xLjUzMy0xLjM4OC0xLjY1Mi0zLjc1Ni0wLjI2NS01LjI4OWMxLjM4OC0xLjUzNCwzLjc1Ni0xLjY1Miw1LjI5LTAuMjY1bDM0LjA1MywzMC44NzhsNzYuMDk5LTc5LjY5OSBjMS40MjktMS41MDEsMy44MDQtMS41NjEsNS4zMDUtMC4xMzJjMS41MDIsMS40MjgsMS41NjEsMy44MDMsMC4xMzMsNS4zMDVMNDMuMjIzLDg4LjY4M2wtMC4wMDUtMC4wMDUgYy0xLjM5NiwxLjQ2OC0zLjcxNiwxLjU2My01LjIyNywwLjE5NkwxLjIzMiw1NS41NDFMMS4yMzIsNTUuNTQxeiIvPjwvZz48L3N2Zz4=",T3="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pg0KPCEtLSBVcGxvYWRlZCB0bzogU1ZHIFJlcG8sIHd3dy5zdmdyZXBvLmNvbSwgR2VuZXJhdG9yOiBTVkcgUmVwbyBNaXhlciBUb29scyAtLT4NCjxzdmcgZmlsbD0iIzAwMDAwMCIgaGVpZ2h0PSI4MDBweCIgd2lkdGg9IjgwMHB4IiB2ZXJzaW9uPSIxLjEiIGlkPSJDYXBhXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIA0KCSB2aWV3Qm94PSIwIDAgNDkwIDQ5MCIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+DQo8cG9seWdvbiBwb2ludHM9IjQ1Ni44NTEsMCAyNDUsMjEyLjU2NCAzMy4xNDksMCAwLjcwOCwzMi4zMzcgMjEyLjY2OSwyNDUuMDA0IDAuNzA4LDQ1Ny42NzggMzMuMTQ5LDQ5MCAyNDUsMjc3LjQ0MyA0NTYuODUxLDQ5MCANCgk0ODkuMjkyLDQ1Ny42NzggMjc3LjMzMSwyNDUuMDA0IDQ4OS4yOTIsMzIuMzM3ICIvPg0KPC9zdmc+",A3=typeof window<"u"&&window.document!==void 0&&window.document.createElement!==void 0?he.useLayoutEffect:he.useEffect;let ZE=class{constructor(t){this.key=t,this.ref={current:null},this.setRefElement=this.setRefElement.bind(this)}setRefElement(t){this.ref={current:t}}};const QE=l=>{const t=document.getElementById("typeahead-menu");if(!t)return;const n=t.getBoundingClientRect();n.top+n.height>window.innerHeight&&t.scrollIntoView({block:"center"}),n.top<0&&t.scrollIntoView({block:"center"}),l.scrollIntoView({block:"nearest"})};function XE(l,t){const n=l.getBoundingClientRect(),e=t.getBoundingClientRect();return n.top>e.top&&n.top<e.bottom}function O3(l,t,n,e){const[s]=yn();he.useEffect(()=>{if(t!=null&&l!=null){const r=s.getRootElement(),o=r!=null?function(d,f){let p=getComputedStyle(d);const h=p.position==="absolute",m=/(auto|scroll)/;if(p.position==="fixed")return document.body;for(let g=d;g=g.parentElement;)if(p=getComputedStyle(g),(!h||p.position!=="static")&&m.test(p.overflow+p.overflowY+p.overflowX))return g;return document.body}(r):document.body;let a=!1,c=XE(t,o);const i=function(){a||(window.requestAnimationFrame(function(){n(),a=!1}),a=!0);const d=XE(t,o);d!==c&&(c=d,e!=null&&e(d))},u=new ResizeObserver(n);return window.addEventListener("resize",n),document.addEventListener("scroll",i,{capture:!0,passive:!0}),u.observe(t),()=>{u.unobserve(t),window.removeEventListener("resize",n),document.removeEventListener("scroll",i,!0)}}},[t,s,e,n,l])}const eC=po();function N3({close:l,editor:t,anchorElementRef:n,resolution:e,options:s,menuRenderFn:r,onSelectOption:o,shouldSplitNodeWithQuery:a=!1,commandPriority:c=Jn}){const[i,u]=he.useState(null),d=e.match&&e.match.matchingString;he.useEffect(()=>{u(0)},[d]);const f=he.useCallback(h=>{t.update(()=>{const m=e.match!=null&&a?function(g){const v=jt();if(!St(v)||!v.isCollapsed())return null;const b=v.anchor;if(b.type!=="text")return null;const _=b.getNode();if(!_.isSimpleText())return null;const E=b.offset,S=_.getTextContent().slice(0,E),w=g.replaceableString.length,y=E-function(C,T,R){let F=R;for(let I=F;I<=T.length;I++)C.substr(-I)===T.substr(0,I)&&(F=I);return F}(S,g.matchingString,w);if(y<0)return null;let x;return y===0?[x]=_.splitText(E):[,x]=_.splitText(y,E),x}(e.match):null;o(h,m,l,e.match?e.match.matchingString:"")})},[t,a,e.match,o,l]),p=he.useCallback(h=>{const m=t.getRootElement();m!==null&&(m.setAttribute("aria-activedescendant","typeahead-item-"+h),u(h))},[t]);return he.useEffect(()=>()=>{const h=t.getRootElement();h!==null&&h.removeAttribute("aria-activedescendant")},[t]),A3(()=>{s===null?u(null):i===null&&p(0)},[s,i,p]),he.useEffect(()=>xr(t.registerCommand(eC,({option:h})=>!(!h.ref||h.ref.current==null)&&(QE(h.ref.current),!0),c)),[t,p,c]),he.useEffect(()=>xr(t.registerCommand(qu,h=>{const m=h;if(s!==null&&s.length&&i!==null){const g=i!==s.length-1?i+1:0;p(g);const v=s[g];v.ref!=null&&v.ref.current&&t.dispatchCommand(eC,{index:g,option:v}),m.preventDefault(),m.stopImmediatePropagation()}return!0},c),t.registerCommand(Hu,h=>{const m=h;if(s!==null&&s.length&&i!==null){const g=i!==0?i-1:s.length-1;p(g);const v=s[g];v.ref!=null&&v.ref.current&&QE(v.ref.current),m.preventDefault(),m.stopImmediatePropagation()}return!0},c),t.registerCommand(Fs,h=>{const m=h;return m.preventDefault(),m.stopImmediatePropagation(),l(),!0},c),t.registerCommand(Of,h=>{const m=h;return s!==null&&i!==null&&s[i]!=null&&(m.preventDefault(),m.stopImmediatePropagation(),f(s[i]),!0)},c),t.registerCommand(Ls,h=>s!==null&&i!==null&&s[i]!=null&&(h!==null&&(h.preventDefault(),h.stopImmediatePropagation()),f(s[i]),!0),c)),[f,l,t,s,i,p,c]),r(n,he.useMemo(()=>({options:s,selectOptionAndCleanUp:f,selectedIndex:i,setHighlightedIndex:u}),[f,i,s]),e.match?e.match.matchingString:"")}const P3=`\\.,\\+\\*\\?\\$\\@\\|#{}\\(\\)\\^\\-\\[\\]\\\\/!%'"~=<>_:;`;function tC(l,{minLength:t=1,maxLength:n=75}){return he.useCallback(e=>{const s=new RegExp("(^|\\s|\\()(["+l+"]((?:"+("[^"+l+P3+"\\s]")+"){0,"+n+"}))$").exec(e);if(s!==null){const r=s[1],o=s[3];if(o.length>=t)return{leadOffset:s.index+r.length,matchingString:o,replaceableString:s[2]}}return null},[n,t,l])}function nC({options:l,onQueryChange:t,onSelectOption:n,onOpen:e,onClose:s,menuRenderFn:r,triggerFn:o,anchorClassName:a,commandPriority:c=Jn,parent:i}){const[u]=yn(),[d,f]=he.useState(null),p=function(g,v,b,_=document.body){const[E]=yn(),S=he.useRef(document.createElement("div")),w=he.useCallback(()=>{S.current.style.top=S.current.style.bottom;const x=E.getRootElement(),C=S.current,T=C.firstChild;if(x!==null&&g!==null){const{left:R,top:F,width:I,height:B}=g.getRect(),A=S.current.offsetHeight;if(C.style.top=`${F+window.pageYOffset+A+3}px`,C.style.left=`${R+window.pageXOffset}px`,C.style.height=`${B}px`,C.style.width=`${I}px`,T!==null){T.style.top=`${F}`;const j=T.getBoundingClientRect(),O=j.height,L=j.width,N=x.getBoundingClientRect();R+L>N.right&&(C.style.left=`${N.right-L+window.pageXOffset}px`),(F+O>window.innerHeight||F+O>N.bottom)&&F-N.top>O+B&&(C.style.top=F-O+window.pageYOffset-B+"px")}C.isConnected||(b!=null&&(C.className=b),C.setAttribute("aria-label","Typeahead menu"),C.setAttribute("id","typeahead-menu"),C.setAttribute("role","listbox"),C.style.display="block",C.style.position="absolute",_.append(C)),S.current=C,x.setAttribute("aria-controls","typeahead-menu")}},[E,g,b,_]);he.useEffect(()=>{const x=E.getRootElement();if(g!==null)return w(),()=>{x!==null&&x.removeAttribute("aria-controls");const C=S.current;C!==null&&C.isConnected&&C.remove()}},[E,w,g]);const y=he.useCallback(x=>{g!==null&&(x||v(null))},[g,v]);return O3(g,S.current,w,y),S}(d,f,a,i),h=he.useCallback(()=>{f(null),s!=null&&d!==null&&s()},[s,d]),m=he.useCallback(g=>{f(g),e!=null&&d===null&&e(g)},[e,d]);return he.useEffect(()=>{const g=u.registerUpdateListener(()=>{u.getEditorState().read(()=>{const v=u._window||window,b=v.document.createRange(),_=jt(),E=function(y){let x=null;return y.getEditorState().read(()=>{const C=jt();St(C)&&(x=function(T){const R=T.anchor;if(R.type!=="text")return null;const F=R.getNode();if(!F.isSimpleText())return null;const I=R.offset;return F.getTextContent().slice(0,I)}(C))}),x}(u);if(!St(_)||!_.isCollapsed()||E===null||b===null)return void h();const S=o(E,u);if(t(S?S.matchingString:null),S!==null&&!function(y,x){return x===0&&y.getEditorState().read(()=>{const C=jt();if(St(C)){const T=C.anchor.getNode().getPreviousSibling();return Wt(T)&&T.isTextEntity()}return!1})}(u,S.leadOffset)&&function(x,C,T){const R=T.getSelection();if(R===null||!R.isCollapsed)return!1;const F=R.anchorNode,I=x,B=R.anchorOffset;if(F==null||B==null)return!1;try{C.setStart(F,I),C.setEnd(F,B)}catch{return!1}return!0}(S.leadOffset,b,v)!==null)return w=()=>m({getRect:()=>b.getBoundingClientRect(),match:S}),void(ir.startTransition?ir.startTransition(w):w());var w;h()})});return()=>{g()}},[u,o,t,d,h,m]),d===null||u===null?null:ae.jsx(N3,{close:h,resolution:d,editor:u,anchorElementRef:p,options:l,menuRenderFn:r,shouldSplitNodeWithQuery:!0,onSelectOption:n,commandPriority:c})}const rC=`\\.,\\+\\*\\?\\$\\@\\|#{}\\(\\)\\^\\-\\[\\]\\\\/!%'"~=<>_:;`,oC={NAME:"\\b[A-Z][^\\s"+rC+"]",PUNCTUATION:rC}.PUNCTUATION,_0=["@"].join(""),iC="[^"+_0+oC+"\\s]",I3="(?:\\.[ |$]| |["+oC+"]|)",M3=75,R3=new RegExp("(^|\\s|\\()(["+_0+"]((?:"+iC+I3+"){0,"+M3+"}))$"),D3=50,L3=new RegExp("(^|\\s|\\()(["+_0+"]((?:"+iC+"){0,"+D3+"}))$"),F3=5,w0=new Map,B3={search(l,t,n){setTimeout(()=>{const e=l.filter(s=>s.name.toLowerCase().includes(t.toLowerCase()));n(e)},500)}};function z3(l,t){const[n,e]=he.useState([]);return he.useEffect(()=>{const s=w0.get(l);if(l==null){e([]);return}if(s!==null){if(s!==void 0){e(s);return}w0.set(l,null),B3.search(t,l,r=>{w0.set(l,r),e(r)})}},[l,t]),n}function U3(l,t){let n=R3.exec(l);if(n===null&&(n=L3.exec(l)),n!==null){const e=n[1],s=n[3];if(s.length>=t)return{leadOffset:n.index+e.length,matchingString:s,replaceableString:n[2]}}return null}function H3(l){return U3(l,1)}class q3 extends ZE{constructor(n,e,s){super(n);Hn(this,"name");Hn(this,"email");Hn(this,"picture");this.name=n,this.email=e,this.picture=s}}function W3({index:l,isSelected:t,onClick:n,onMouseEnter:e,option:s}){let r="item";return t&&(r+=" selected"),ae.jsxs("li",{tabIndex:-1,className:r,ref:s.setRefElement,role:"option","aria-selected":t,id:"typeahead-item-"+l,onMouseEnter:e,onClick:n,children:[s.picture,ae.jsx("span",{className:"text",children:s.name})]},s.key)}function J3({mentionItems:l,setmentionedEmails:t}){const[n]=yn(),[e,s]=he.useState(null),r=z3(e,l),o=tC("/",{minLength:0}),a=he.useMemo(()=>r.map(u=>new q3(u.name,u.email,ae.jsx("i",{className:"icon user"}))).slice(0,F3),[r]),c=he.useCallback((u,d,f)=>{t(p=>[...p,u.email]),n.update(()=>{const p=Zm(`@${u.name}`);d&&d.replace(p),p.select(),f()})},[n]),i=he.useCallback(u=>o(u,n)!==null?null:H3(u),[o,n]);return ae.jsx(nC,{onQueryChange:s,onSelectOption:c,triggerFn:i,options:a,menuRenderFn:(u,{selectedIndex:d,selectOptionAndCleanUp:f,setHighlightedIndex:p})=>u.current&&r.length?Cf.createPortal(ae.jsx("div",{className:"typeahead-popover mentions-menu",children:ae.jsx("ul",{children:a.map((h,m)=>ae.jsx(W3,{index:m,isSelected:d===m,onClick:()=>{p(m),f(h)},onMouseEnter:()=>{p(m)},option:h},h.key))})}),u.current):null})}const x0=po();function V3({anchorKey:l,editor:t,onAddComment:n}){const e=he.useRef(null),s=he.useCallback(()=>{const r=e.current,o=t.getRootElement(),a=t.getElementByKey(l);if(r!==null&&o!==null&&a!==null){const{right:c}=o.getBoundingClientRect(),{top:i}=a.getBoundingClientRect();r.style.left=`${c-20}px`,r.style.top=`${i-30}px`}},[l,t]);return he.useEffect(()=>(window.addEventListener("resize",s),()=>{window.removeEventListener("resize",s)}),[t,s]),ir.useLayoutEffect(()=>{s()},[l,t,s]),ae.jsx("div",{className:"CommentPlugin_AddCommentBox",ref:e,children:ae.jsx("button",{style:{display:"flex",justifyContent:"center",alignItems:"center"},className:"CommentPlugin_AddCommentBox_button",onClick:n,children:ae.jsx("img",{src:j3,alt:""})})})}function K3({onEscape:l}){const[t]=yn();return he.useEffect(()=>t.registerCommand(Fs,n=>l(n),2),[t,l]),null}function sC({className:l,autoFocus:t,onEscape:n,onChange:e,editorRef:s,placeholder:r="",mentionItems:o,setmentionedEmails:a}){const c={namespace:"Commenting",nodes:[_d],onError:i=>{throw i},theme:C3};return he.useEffect(()=>()=>{a([])},[]),ae.jsxs(dp,{initialConfig:c,children:[ae.jsxs("div",{className:"CommentPlugin_CommentInputBox_EditorContainer",children:[ae.jsx(_x,{contentEditable:ae.jsx(Od,{className:l}),placeholder:ae.jsx(Nd,{children:r}),ErrorBoundary:Dl}),ae.jsx(yx,{onChange:e}),ae.jsx(mp,{}),t!==!1&&ae.jsx(Dp,{}),ae.jsx(K3,{onEscape:n}),ae.jsx(gx,{}),s!==void 0&&ae.jsx(R5,{editorRef:s})]}),ae.jsx(J3,{mentionItems:o,setmentionedEmails:a})]})}function aC(l,t){return he.useCallback((n,e)=>{n.read(()=>{l(oy()),t(!iy(e.isComposing(),!0))})},[t,l])}function G3({editor:l,cancelAddComment:t,submitAddComment:n,userName:e,userEmail:s,mentionItems:r,mentionedEmails:o,setmentionedEmails:a,wpAndTaskId:c,setShowCommentInput:i}){const[u,d]=he.useState(""),[f,p]=he.useState(!1),h=he.useRef(null),m=he.useMemo(()=>({container:document.createElement("div"),elements:[]}),[]),g=he.useRef(null),v=uC(),b=he.useCallback(()=>{l.getEditorState().read(()=>{const w=jt();if(St(w)){g.current=w.clone();const y=w.anchor,x=w.focus,C=s_(l,y.getNode(),y.offset,x.getNode(),x.offset),T=h.current;if(C!==null&&T!==null){const{left:R,bottom:F,width:I}=C.getBoundingClientRect(),B=a_(l,C);let A=B.length===1?R+I/2-125:R-125;A<10&&(A=10),T.style.left=`${A}px`,T.style.top=`${F+20+(window.pageYOffset||document.documentElement.scrollTop)}px`;const j=B.length,{container:O}=m,L=m.elements,N=L.length;for(let U=0;U<j;U++){const D=B[U];let z=L[U];z===void 0&&(z=document.createElement("span"),L[U]=z,O.appendChild(z));const K="255, 212, 0",G=`position:absolute;top:${D.top+(window.pageYOffset||document.documentElement.scrollTop)}px;left:${D.left}px;height:${D.height}px;width:${D.width}px;background-color:rgba(${K}, 0.3);pointer-events:none;z-index:5;`;z.style.cssText=G}for(let U=N-1;U>=j;U--){const D=L[U];O.removeChild(D),L.pop()}}}})},[l,m]);ir.useLayoutEffect(()=>{b();const w=m.container,y=document.body;if(y!==null)return y.appendChild(w),()=>{y.removeChild(w)}},[m.container,b]),he.useEffect(()=>(window.addEventListener("resize",b),window.addEventListener("scroll",b,!0),()=>{window.removeEventListener("resize",b),window.removeEventListener("scroll",b,!0)}),[b]);const _=w=>(w.preventDefault(),t(),!0),E=()=>{if(console.log("this is called",c),f){let w=l.getEditorState().read(()=>{const y=g.current;return y?y.getTextContent():""});w.length>100&&(w=w.slice(0,99)+"…"),n($E(w,[Rh(u,e??v,s,o)],void 0,c),!0,void 0,g.current),g.current=null}},S=aC(d,p);return ae.jsxs("div",{className:"CommentPlugin_CommentInputBox",ref:h,children:[ae.jsx(sC,{className:"CommentPlugin_CommentInputBox_Editor",onEscape:_,onChange:S,mentionItems:r,setmentionedEmails:a}),ae.jsxs("div",{className:"CommentPlugin_CommentInputBox_Buttons",children:[ae.jsx(Fi,{onClick:t,className:"CommentPlugin_CommentInputBox_Button",children:"Cancel"}),ae.jsx(Fi,{onClick:E,disabled:!f,className:"CommentPlugin_CommentInputBox_Button primary",children:"Comment"})]})]})}function $3({submitAddComment:l,thread:t,placeholder:n,userName:e,userEmail:s,mentionItems:r,mentionedEmails:o,setmentionedEmails:a}){const[c,i]=he.useState(""),[u,d]=he.useState(!1),f=he.useRef(null),p=uC(),h=aC(i,d),m=()=>{if(u){a([]),l(Rh(c,e??p,s,o),!1,t);const g=f.current;g!==null&&g.dispatchCommand(If,void 0)}};return ae.jsxs(ae.Fragment,{children:[ae.jsx(sC,{className:"CommentPlugin_CommentsPanel_Editor",autoFocus:!1,onEscape:()=>!0,onChange:h,editorRef:f,placeholder:n,mentionItems:r,setmentionedEmails:a}),ae.jsx(Fi,{className:"CommentPlugin_CommentsPanel_SendButton",onClick:m,disabled:!u,children:ae.jsx("i",{className:"send"})})]})}function lC({commentOrThread:l,deleteCommentOrThread:t,onClose:n,thread:e=void 0}){return ae.jsxs(ae.Fragment,{children:["Are you sure you want to delete this ",l.type,"?",ae.jsxs("div",{className:"Modal__content",children:[ae.jsx(Fi,{onClick:()=>{t(l,e),n()},children:"Delete"})," ",ae.jsx(Fi,{onClick:()=>{n()},children:"Cancel"})]})]})}function cC({comment:l,deleteComment:t,thread:n,rtf:e,userName:s,userEmail:r,mentionedEmails:o,setmentionedEmails:a}){const[c,i]=La();return ae.jsxs("li",{className:"CommentPlugin_CommentsPanel_List_Comment",children:[ae.jsxs("div",{className:"CommentPlugin_CommentsPanel_List_Details",children:[ae.jsx("span",{className:"CommentPlugin_CommentsPanel_List_Comment_Author",children:l.author}),ae.jsxs("span",{className:"CommentPlugin_CommentsPanel_List_Comment_Time",style:{fontSize:"13px"},children:["· ",l.timeStamp]})]}),ae.jsx("p",{className:l.deleted?"CommentPlugin_CommentsPanel_DeletedComment":"",style:{whiteSpace:"pre-wrap"},children:l.content.split(/(@\w+)/g).map((u,d)=>{if(!u.startsWith("@"))return u;const f=u.slice(1).toLowerCase();return(l.mentionedEmails??[]).some(h=>h.split("@")[0].toLowerCase()===f)?ae.jsx("span",{className:"CommentPlugin_Mention",children:u},d):u})}),!l.deleted&&ae.jsxs(ae.Fragment,{children:[s==l.author&&ae.jsx(Fi,{onClick:()=>{i("Delete Comment",u=>ae.jsx(lC,{commentOrThread:l,deleteCommentOrThread:t,thread:n,onClose:u}))},className:"CommentPlugin_CommentsPanel_List_DeleteButton",children:ae.jsx("i",{className:"delete"})}),c]})]})}function Y3({activeIDs:l,comments:t,deleteCommentOrThread:n,listRef:e,submitAddComment:s,markNodeMap:r,userName:o,userEmail:a,resolveThread:c,mentionItems:i,mentionedEmails:u,setmentionedEmails:d,wpAndTaskId:f}){const[p]=yn(),[h,m]=he.useState(0),[g,v]=La(),b=he.useMemo(()=>new Intl.RelativeTimeFormat("en",{localeMatcher:"best fit",numeric:"auto",style:"short"}),[]);he.useEffect(()=>{const E=setTimeout(()=>{m(h+1)},1e4);return()=>{clearTimeout(E)}},[h]),console.log("comments",t,f);const _=t.filter(E=>E.wpAndTaskId&&E.wpAndTaskId.workplanId===f.workplanId&&E.wpAndTaskId.taskId===f.taskId);return console.log("Filtered comments",_,f),ae.jsx("ul",{className:"CommentPlugin_CommentsPanel_List",ref:e,children:_.length>0?_.map(E=>{var w,y;const S=E.id;if(E.type==="thread"){const x=()=>{const C=r.get(S);if(C!==void 0&&(l===null||l.indexOf(S)===-1)){const T=document.activeElement;p.update(()=>{const R=Array.from(C)[0],F=Fn(R);Pl(F)&&F.selectStart()},{onUpdate(){T!==null&&T.focus()}})}};return ae.jsxs("li",{onClick:x,className:`CommentPlugin_CommentsPanel_List_Thread ${r.has(S)?"interactive":""} ${l.indexOf(S)===-1?"":"active"}`,children:[ae.jsxs("div",{className:"CommentPlugin_CommentsPanel_List_Thread_QuoteBox",children:[ae.jsxs("blockquote",{className:"CommentPlugin_CommentsPanel_List_Thread_Quote",children:[ae.jsx("span",{children:(w=E==null?void 0:E.comments[0])==null?void 0:w.author}),ae.jsx("img",{className:`add-toolbar-image-icon CommentPlugin_CommentsPanel_List_ResolveButton ${E!=null&&E.resolved?"opacity-full":""}`,src:k3,alt:"Resolve Comment",onClick:()=>c(E)})]}),o==((y=E==null?void 0:E.comments[0])==null?void 0:y.author)&&ae.jsx(Fi,{onClick:()=>{v("Delete Thread",C=>ae.jsx(lC,{commentOrThread:E,deleteCommentOrThread:n,onClose:C}))},className:"CommentPlugin_CommentsPanel_List_DeleteButton",children:ae.jsx("i",{className:"delete"})}),g]}),ae.jsx("ul",{className:"CommentPlugin_CommentsPanel_List_Thread_Comments",children:E&&E.comments&&E.comments.length&&E.comments.map(C=>C.deleted?null:ae.jsx(cC,{comment:C,deleteComment:n,thread:E,rtf:b,userName:o,userEmail:a},C.id))}),ae.jsx("div",{className:"CommentPlugin_CommentsPanel_List_Thread_Editor",children:!(E!=null&&E.resolved)&&ae.jsx("div",{className:"CommentPlugin_CommentsPanel_List_Thread_Editor",children:ae.jsx($3,{submitAddComment:s,thread:E,userName:o,userEmail:a,mentionItems:i,mentionedEmails:u,setmentionedEmails:d})})})]},S)}return ae.jsx(cC,{comment:E,deleteComment:n,rtf:b,userName:o,userEmail:a},S)}):ae.jsx("div",{className:"CommentPlugin_CommentsPanel_Empty",children:"No Comments"})})}function Z3({activeIDs:l,deleteCommentOrThread:t,comments:n,submitAddComment:e,markNodeMap:s,userName:r,userEmail:o,resolveThread:a,setShowComments:c,mentionItems:i,mentionedEmails:u,setmentionedEmails:d,wpAndTaskId:f}){const p=he.useRef(null),h=n.length===0;return ae.jsxs("div",{className:"CommentPlugin_CommentsPanel",children:[ae.jsxs("div",{className:"CommentPlugin_CommentsPanel_HeaderDiv",children:[ae.jsx("h2",{className:"CommentPlugin_CommentsPanel_Heading",children:"Comments"}),ae.jsx("img",{onClick:()=>c(!1),className:"CommentPlugin_CommentsPanel_close_icon",width:12,height:12,src:T3,alt:""})]}),h?ae.jsx("div",{className:"CommentPlugin_CommentsPanel_Empty",children:"No Comments"}):ae.jsx(Y3,{activeIDs:l,comments:n,deleteCommentOrThread:t,listRef:p,submitAddComment:e,markNodeMap:s,userName:r,userEmail:o,resolveThread:a,mentionItems:i,mentionedEmails:u,setmentionedEmails:d,wpAndTaskId:f})]})}function uC(){const l=Pd(),{yjsDocMap:t,name:n}=l;return t.has("comments")?n:"Playground User"}function dC({providerFactory:l,handleSaveComments:t,showComments:n,setShowComments:e,userName:s,userEmail:r,mentionItems:o,mentionedEmails:a,setmentionedEmails:c,wpAndTaskId:i,setShowCommentInput:u,showCommentInput:d}){const f=Pd(),[p]=yn(),h=he.useMemo(()=>(p!=null&&p._commentStore||(p._commentStore=new Qd(p)),p==null?void 0:p._commentStore),[p]),m=E3(h),g=he.useMemo(()=>new Map,[]),[v,b]=he.useState(),[_,E]=he.useState([]),{yjsDocMap:S}=f;he.useEffect(()=>{if(l){const R=l("comments",S);return h.registerCollaboration(R)}},[h,l,S]);const w=he.useCallback(()=>{p.update(()=>{const R=jt();R!==null&&(R.dirty=!0)}),u(!1)},[p]),y=he.useCallback((R,F)=>{var I;if(R.type==="comment"){if(s===R.author){const B=h.deleteCommentOrThread(R,F);if(!B)return;if(F&&F.comments.every(L=>L.id===R.id||L.deleted===!0)){h.deleteCommentOrThread(F);const L=g.get(F.id);L?setTimeout(()=>{p.update(()=>{for(const N of L){const U=Fn(N);Pl(U)&&(U.deleteID(F.id),U.getIDs().length===0&&R1(U))}}),t(h.getComments())}):t(h.getComments());return}const{markedComment:A,index:j}=B;h.addComment(A,F,j),t(h.getComments())}}else{((I=R.comments)==null?void 0:I[0].author)==s&&h.deleteCommentOrThread(R);const B=F!==void 0?F.id:R.id,A=g.get(B);A!==void 0?setTimeout(()=>{p.update(()=>{for(const j of A){const O=Fn(j);Pl(O)&&(O.deleteID(B),O.getIDs().length===0&&R1(O))}}),t(h.getComments())}):t(h.getComments())}},[h,p,g,t,s]),x=he.useCallback((R,F,I,B)=>{console.log("submitAddComment is called"),h.addComment(R,I),t(h.getComments()),F&&(p.update(()=>{if(St(B)){const A=B.isBackward(),j=R.id;BT(B,A,j)}}),u(!1))},[h,p]),C=R=>{R&&R.type==="thread"&&h.resolveThread(R),t(h.getComments())};he.useEffect(()=>{const R=[];for(let F=0;F<_.length;F++){const I=_[F],B=g.get(I);if(B!==void 0)for(const A of B){const j=p.getElementByKey(A);j!==null&&(j.classList.add("selected"),R.push(j),e(!0))}}return()=>{for(let F=0;F<R.length;F++)R[F].classList.remove("selected")}},[_,p,g]),he.useEffect(()=>{const R=new Map;return xr(v_(p,Ks,F=>ty(F.getIDs()),(F,I)=>{F.getIDs().forEach(A=>{I.addID(A)})}),p.registerMutationListener(Ks,F=>{p.getEditorState().read(()=>{for(const[I,B]of F){const A=Fn(I);let j=[];B==="destroyed"?j=R.get(I)||[]:Pl(A)&&(j=A.getIDs());for(let O=0;O<j.length;O++){const L=j[O];let N=g.get(L);R.set(I,j),B==="destroyed"?N!==void 0&&(N.delete(I),N.size===0&&g.delete(L)):(N===void 0&&(N=new Set,g.set(L,N)),N.has(I)||N.add(I))}}})}),p.registerUpdateListener(({editorState:F,tags:I})=>{F.read(()=>{const B=jt();let A=!1,j=!1;if(St(B)){const O=B.anchor.getNode();if(Wt(O)){const L=zT(O,B.anchor.offset);L!==null&&(E(L),A=!0),B.isCollapsed()||(b(O.getKey()),j=!0)}}A||E(O=>O.length===0?O:[]),j||b(null),!I.has("collaboration")&&St(B)&&u(!1)})}),p.registerCommand(x0,()=>{const F=window.getSelection();return F!==null&&F.removeAllRanges(),u(!0),!0},Tn))},[p,g]);const T=()=>{p.dispatchCommand(x0,void 0)};return ae.jsxs(ae.Fragment,{children:[d&&ao.createPortal(ae.jsx(G3,{editor:p,cancelAddComment:w,submitAddComment:x,userName:s,userEmail:r,mentionItems:o,mentionedEmails:a,setmentionedEmails:c,wpAndTaskId:i,setShowCommentInput:u}),document.body),v!=null&&!d&&ao.createPortal(ae.jsx(V3,{anchorKey:v,editor:p,onAddComment:T}),document.body),n&&ao.createPortal(ae.jsx(Z3,{comments:m,submitAddComment:x,deleteCommentOrThread:y,activeIDs:_,markNodeMap:g,userName:s,userEmail:r,resolveThread:C,setShowComments:e,mentionItems:o,mentionedEmails:a,setmentionedEmails:c,wpAndTaskId:i}),document.body)]})}const fC=({onChange:l})=>{const[t]=yn(),[n,e]=he.useState(!0),s=he.useRef(""),r=s.current,o=he.useCallback(()=>{t.update(()=>{let a=q1(t);a=my(a),a=a.replace(/<\/(p|h[1-6]|blockquote|ul|ol|pre)>/g,"</$1><footer></footer>"),n?e(!1):a!==r&&(l(a),s.current=a)})},[t,n,l,r]);return he.useEffect(()=>{const a=t.registerUpdateListener(o);return()=>a()},[t,o]),null};function pC(){const[l]=yn();return he.useEffect(()=>{const t=l.registerCommand(ai,()=>(l.update(()=>{document.querySelectorAll(".lexical-highlight").forEach(u=>u.classList.remove("lexical-highlight"));const c=jt();if(!St(c)||c.isCollapsed()||c.getTextContent().length===0)return;c.getNodes().forEach(u=>{if(wr(u)&&u.getChildren().length===0){const d=l.getElementByKey(u.getKey());d&&d.classList.add("lexical-highlight")}})}),!1),Jn),n=document.querySelector(".content-editable-grid"),e=1123,s=[""];if(!n)return;function r(){const a=Array.from(n.children);if(a.length===0)return;a.forEach(u=>{u.classList.remove("block-end"),u.style.minHeight="0px"}),a.forEach(u=>{u&&u.tagName.toLowerCase()!=="figure"&&u.classList.add("padding-elem")});const c=new Map;let i=0;a.forEach(u=>{const d=u.offsetHeight,f=Math.floor(i/e),p=s[f%s.length];u.style.backgroundColor=p,c.has(f)||c.set(f,[]),c.get(f).push(u),i+=d}),c.forEach(u=>{const d=u.reduce((h,m)=>h+m.offsetHeight,0),f=e-d,p=u[u.length-1];p&&(p.classList.add("block-end"),p&&p.tagName.toLowerCase()!=="figure"&&p.classList.add("padding-elem"),f>0&&(p.style.minHeight=p.offsetHeight+f+"px"))})}n.addEventListener("input",r);const o=new MutationObserver(r);return o.observe(n,{childList:!0,subtree:!0}),r(),document.addEventListener("paste",function(){Array.from(n.children).forEach(p=>{p&&p.tagName.toLowerCase()!=="figure"&&p.classList.add("padding-elem")}),document.querySelectorAll("td").forEach(p=>{p.classList.add("pasted-tables")});const i=document.querySelectorAll(".block-end"),u=document.querySelectorAll('figure[type="page-break"]'),d=Array.from(i).concat(Array.from(u));if(d.length===0)return;const f=d.length;d.forEach((p,h)=>{p.setAttribute("data-index",String(h+1)),p.setAttribute("data-total",String(f))})}),()=>{t(),n.removeEventListener("input",r),o.disconnect()}},[l]),null}const Lh="data:image/png;base64,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",Fh="data:image/gif;base64,R0lGODlhlgCWAPf/AAAAAAAAAAAAVQAAgAAAgAAAjwAAlAAAmQAAngAAqgAAqgAAvwAA/wCAgACAgACZZgCZmQCfgACiiwCkfwCqVQCqgACqgACqhQCqiACqjgCqqgCq/wCscgCsgwCufgCuhgCuigCvgwCvhwCvjwCwggCwhgCxhQCxhQCxhQCxhQCxhQCxhgCxhgCxhwCyfwCyhACyhwCyhwCyhwCyhwCyhwCyhwCyiACyiACyiACyiACyiACyigCzgACzgACzhQCzhgCzhwCzhwCzhwCzhwCziACziAC0gAC0hwC0iQC0iQC1hAC1igC1kQC2bQC2gAC2gAC2hgC2hwC4hQC4jgC6igC7egC/gAC/gADDiwDMZgDMmQDVgAD/AAD/gAD//wD//wEAmQEAoQGA/wGxiAUAnQYBoggAoAkAnAoCowwAnAwBnAwCnwwCoA0AmQ0Cng4Dnw4Dnw4Enw8Eng8Eng8Eng8Eng8Fnw8FnxAEnhAFnxAFnxAFoBAFoDOZzDPMzDPM/0C/v0C//0Df30W+30ba/0m220m2/0u56E2z5k6x2E/E40/E61C/31DL5lDP71PE81S85VTH8VWqqlWq1VWq41Wq/1W65VW73VW/6lXA11XG/1XV1VXV/1X//1a671a+6Va/8VbG41bM7lfB5VfE7VfI7Vi+7Vi/51i/6FjB5FjB6VjD6VjE61m86Vm/5lnA5FnA5VnA51nA7FnB5lnC51nE51rB5lrB5lrB5lrB5lrB5lrB51rB6FrC5lrC5lrC51rC51rC6FrD4VrD5lrD51rD6lrF6Vu221vB5lvB51vC5lvC51vC51vC51vC6FvD6VvG6Fy56Fy/4F3G713R6GXM/oD///8AAP+AAP+ZAP+ZM/+qAP+qAP+qKv+qOf+xO/+0Mv+2JP+3OP+3Pf+5L/+7Nf+8O/+8Pv++Pf++Pv++Pv+/F/+/PP+/Pv+/Pv+/P/+/P/+/QP+/QP/APv/BNP/BPf/DO//GOf/HL//MM//VKv/bJP//AP//AP//AAD/ACH/C05FVFNDQVBFMi4wAwEAAAAh+QQJBADNACwZAEMAYAAQAIcAAAAAAFUAAIAAAI8AAJQAAJkAAJ4AAKoAAL8AAP8AgIAAmWYAmZkAn4AAoosApH8AqlUAqoAAqoUAqogAqo4AqqoAqv8ArHIArIMArn4AroYArooAr4MAr4cAr48AsIIAsIYAsYUAsYYAsYcAsn8AsoQAsocAsogAsooAs4AAs4UAs4YAs4cAs4gAtIAAtIcAtIkAtYQAtYoAtZEAtm0AtoAAtoYAtocAuIUAuI4AuooAu3oAv4AAw4sAzGYAzJkA1YAA/wAA/4AA//8BAJkBAKEBgP8BsYgFAJ0GAaIIAKAJAJwKAqMMAJwMAZwMAp8MAqANAJkNAp4OA58OBJ8PBJ4PBZ8QBJ4QBZ8QBaAzmcwzzMwzzP9Av79Av/9A399Fvt9G2v9JtttJtv9LuehNs+ZOsdhPxONPxOtQv99Qy+ZQz+9TxPNUvOVUx/FVqqpVqtVVquNVqv9VuuVVu91Vv+pVwNdVxv9V1dVV1f9V//9Wuu9WvulWv/FWxuNWzO5XweVXxO1XyO1Yvu1Yv+dYv+hYweRYwelYw+lYxOtZvOlZv+ZZwORZwOVZwOdZwOxZweZZwudZxOdaweZawedawehawuZawudawuhaw+Faw+Zaw+daw+paxelbtttbweZbwedbwuZbwudbwuhbw+lbxuhcuehcv+Bdxu9d0ehlzP6A////AAD/gAD/mQD/mTP/qgD/qir/qjn/sTv/tDL/tiT/tzj/tz3/uS//uzX/vDv/vD7/vj3/vj7/vxf/vzz/vz7/vz//v0D/wD7/wTT/wT3/wzv/xjn/xy//zDP/1Sr/2yT//wAA/wD///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8I/wCbCRRYxUmWKlakDFzIsKHAFyFaiIAxwoTDiwwXhYK0cRPGjwKB6RqmS+Qwh1GyGGyiMktKkAxDyNAgA8TMmjJgMiTFqFMbnp0WBdXJsJiuYriMFstVjGEVLFKwIIyK8CnRiSZMTBxxIgRFi0QnNSI1idIispTGTiIaciSvXm6DjRzI0mBKg3hb6pTBga9fmxxg2NQpqadQw0ETLyJKcqlSpkdznWyGxYlUqQcxT4XZwkRXGCYkgm4BAvQJmI1EQRKlljUpSJcYkdIJNxgvucNuuxUZ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",hC=IS([...D1]);function Q3({htmlString:l,wpAndTaskId:t}){const[n]=yn();return he.useEffect(()=>{!l||!t||n.update(()=>{const s=In().getChildren().filter(wr);s.forEach((r,o)=>{var h;const a=r.getChildren().find(Vs);if(!a)return;let c=r.getChildren().find(m=>Wt(m)&&m.getTextContent().startsWith("Figure"));if(!c)for(let m=o+1;m<s.length;m++){const g=s[m];if(g.getTextContent().trim()==="")continue;const v=g.getChildren().find(b=>Wt(b)&&b.getTextContent().startsWith("Figure"));if(v){c=v;break}}if(!c)return;const i=typeof c.getId=="function"?c.getId():void 0,u=c.getTextContent(),d=parseInt(((h=u.match(/\d+/))==null?void 0:h[0])||"1"),f=i||Mc(u,d,t);a.__captionId=f;const p=new qo(c.getTextContent(),"black",f);c.replace(p)})})},[n,l,t]),null}function X3({htmlString:l}){const[t]=yn();return he.useEffect(()=>{l&&t.update(()=>{In().getChildren().filter(dr).forEach((s,r)=>{const o=s.getPreviousSibling();if(o&&wr(o)){const a=o.getChildren(),c=a.find(i=>i.getTextContent().startsWith("Table")&&i.getId&&i.getId());if(c){const i=c.getId();s.__captionId=i}else{const i=o.getTextContent();localStorage.getItem("tableCount")-1;const u=Rp(i,r);s.__captionId=u,a.forEach(d=>{if(d.getTextContent().startsWith("Table")){const f=new qo(d.getTextContent(),"black",u);d.replace(f)}})}}})})},[t,l]),null}function eR({setEditorEditable:l,htmlString:t,isEditable:n,setIsexistingIdPresent:e}){const[s]=yn();return he.useRef({}),he.useEffect(()=>{s.update(()=>{const r=new DOMParser,o=qw(t),a=Ww(o),c=r.parseFromString(a,"text/html");c.querySelectorAll("h1, h2, h3, h4, h5, h6").forEach(f=>{const p=f.getAttribute("id");p&&f.setAttribute("data-preserved-id",p)});const i=Sd(s,c);i.forEach(f=>{if(zp(f)){const p=s.getElementByKey(f.getKey());if(p){const h=p.getAttribute("data-preserved-id");if(h){const m=CustomHeadingNode.create(f.getHeadingLevel(),h);f.replace(m)}}}}),In().clear();const d=En();Xo(i),Xo([d]),s.setEditable(!1),setTimeout(()=>{s.setEditable(n),l(!0)},5e3)})},[s,t]),null}function tR(){const[l]=yn();return he.useEffect(()=>l.registerCommand(vs,t=>{var s;const n=t==null?void 0:t.clipboardData;if(!n)return!1;const e=n==null?void 0:n.getData("text/html");if(e){const r=new DOMParser,o=r.parseFromString(e,"text/html"),a=e==null?void 0:e.match(/<!--StartFragment-->(.*?)<!--EndFragment-->/s),c=a?a[1]:o.body.innerHTML,u=(r==null?void 0:r.parseFromString(c,"text/html")).body.children;if((s=Array.from(u))==null?void 0:s.every(f=>f.tagName.toLowerCase()==="table"?!0:f.tagName.toLowerCase()==="p"?f.innerHTML.trim()==="<br>":!1))return alert("🚫Standalone table was pasted — blocked."),!0}return!1},wo),[l]),null}function nR({initialEditorState:l,userObj:t,CollabApiKey:n,docId:e,mentionItems:s,type:r,updateSharepointList:o,updateSharepointList2:a,savedComments:c,styleConfig:i,handleSaveComments:u,pagination:d=!1,customHeight:f,customWidth:p,isCollab:h=!0,defaultState:m,editId:g,toolbarShow:v=!0,isEditable:b=!1,showTabContent:_=!0,wpAndTaskId:E,enableCaptions:S=!0,showPagination:w=!1,setshowPagination:y,editorTitle:x,showPdf:C,showCommentPlugin:T,exportToPDF:R,editorForTemplate:F}){const I=he.useRef(null),{historyState:B}=C_(),[A,j]=he.useState([]),[O,L]=he.useState(""),[N,U]=he.useState("skyp_1"),[D,z]=he.useState([]),[K,G]=he.useState(!1),[P,W]=La(),[J,H]=he.useState(null),[$,Z]=he.useState([]),[X,Y]=he.useState(null),[ee,ie]=he.useState(!1),[fe,de]=he.useState(!1),[ne,Ee]=he.useState(!1),[xe,me]=he.useState([]),je=he.useRef(null),[ue,se]=he.useState(!1);he.useState(!1);const[pe,ce]=he.useState(!1),Te=async()=>({state:{root:[]},timestamp:Date.now()});let Ae=zt=>{console.log("[Lexical Demo][onBlacklistedInsert] blacklisted combination found"),console.log("msg",zt)};const{userName:ke,userId:Me,userEmail:We}=t||{userName:"aa",userId:"aa",userEmail:"aa@sample.com"},De={name:ke,id:Me,email:We},Le={docId:e+"_"+g,apiKey:n,user:De,hooks:{fetchDocOnNetworkReconnect:Te,contentChanged:(zt,At)=>{},usersUpdate:zt=>{j(zt),renderOnlineUsers(zt),console.log("asadasdad 111111111",zt),console.log("[Lexical Demo][usersUpdate hook] hook invoked by Codox: ",zt)}}};he.useEffect(()=>{let zt=[],At=[];A&&A.length>0&&A.map((tn,ve)=>{At.includes(tn.name)||(At.push(tn.name),zt.push(ae.jsxs("div",{title:tn.name,className:`avatarStyle avatar-color-${ve+1}`,children:[" ",tn.name&&tn.name[0],tn.name&&tn.name[4]]},ve)))}),z(zt)},[A]);const Ce=()=>{je.current&&(je.current.initComments(c),["content_changed","error","users_update"].forEach(At=>{console.log("[Lexical Demo][[Subscribe to Codox Event]: ",At),je.current.on(At,tn=>{})}),je.current.start(Le).then(()=>{console.log("[Lexical Demo][codox.start] success"),G(!0)}).catch(At=>console.log("[Lexical Demo][codox.start] error",At)))},Xe=()=>{je.current&&je.current.stop(),G(!1)};he.useEffect(()=>{wd(".editor-outer").css({justifyContent:fe?"flex-start":"center"})},[fe]),he.useEffect(()=>{(async()=>{if(!N)return;K&&Xe();let zt=m;if(zt)try{MS(zt,hC),H(zt)}catch(At){console.error("[APP] error: ",At)}})()},[N]),he.useEffect(()=>{J&&e&&!K&&n&&setTimeout(()=>{Ce()},2e3)},[J,e,K,n]);const Ie=he.useMemo(()=>{if(J)return{editorState:zt=>{zt.update(()=>{const At=new Qd(zt);c&&(At.setComments(c),zt._commentStore||(zt._commentStore=new Qd(zt),zt._commentStore.getComments().length===0&&zt._commentStore.setComments(c)))})},namespace:`editor_${e}`,nodes:hC,onError:zt=>{console.error("[Lexical Demo][Editor Error Captured]: ",zt)},theme:ry}},[J]),Ze=he.useRef(l);he.useEffect(()=>{Ze.current||(Ze.current=l)},[l]);const at=ae.jsx(Nd,{children:""}),[rt,it]=he.useState(null),[Vt,Qe]=he.useState(!1),[Kt,Ht]=he.useState(!1),[Zt,Xt]=he.useState(!1),Et=zt=>{zt!==null&&it(zt)};he.useEffect(()=>{const zt=()=>{const At=Ic&&window.matchMedia("(max-width: 1025px)").matches;At!==Vt&&Qe(At)};return zt(),window.addEventListener("resize",zt),()=>{window.removeEventListener("resize",zt)}},[Vt]),he.useEffect(()=>{const zt=At=>{X&&!At.target.closest(".reference-toolbar")&&Y(null)};return document.addEventListener("click",zt),()=>{document.removeEventListener("click",zt)}},[X]),wd(document).on("keydown mouseup",`.editor-autosave-${g}`,()=>{}),he.useState(""),he.useRef(""),he.useEffect(()=>{l&&t&&t.userName&&e&&i?setTimeout(()=>{se(!0)},1e3):se(!1)},[l,t,i]);const Dt=zt=>{o(zt),L(zt)};return he.useEffect(()=>{const zt=document.querySelector(".finalProposalEditorContainer_c1fd8e2e");if(!zt)return;const At=()=>{console.log("Editor container scrolled"),Y(null),Ee(!1)};return zt.addEventListener("scroll",At),()=>{zt.removeEventListener("scroll",At)}},[]),ae.jsx(ae.Fragment,{children:ue?ae.jsxs(dp,{initialConfig:Ie,children:[ae.jsx(E_,{children:ae.jsx(L1,{children:ae.jsxs("div",{ref:I,className:"editor-shell",style:{position:"relative"},children:[ae.jsxs("div",{className:!K&&!F?"blurred-editor-content":"",children:[ae.jsxs(ae.Fragment,{children:[ae.jsx(eR,{setEditorEditable:Xt,isEditable:b,htmlString:l}),ae.jsx(X3,{htmlString:l}),ae.jsx(Q3,{htmlString:l,wpAndTaskId:`${E.workplanId}-${E.taskId}`}),T&&ae.jsx(dC,{showComments:ee,setShowComments:ie,handleSaveComments:u,userName:ke,userEmail:We,mentionItems:s,mentionedEmails:xe,setmentionedEmails:me,wpAndTaskId:E,setShowCommentInput:Ee,showCommentInput:ne}),ae.jsx(tR,{}),b?ae.jsxs(ae.Fragment,{children:[i&&v&&ae.jsx(dx,{styleConfig:i,setIsLinkEditMode:Ht,onlUser:D,showComments:ee,setShowComments:ie,parsedHtmlString:O,enableCaptions:S,wpAndTaskId:E,editorTitle:x,showCommentPlugin:T,exportToPDF:R,showPdf:C})," "]}):"",ae.jsx(pC,{}),ae.jsx(fC,{onChange:Dt}),ae.jsxs("div",{className:"editor-container tree-view",children:[ae.jsx(bw,{}),!h&&ae.jsx(Dp,{}),ae.jsx(z1,{}),ae.jsx(_w,{}),ae.jsx(fw,{}),ae.jsx(mp,{externalHistoryState:B}),ae.jsx(qp,{contentEditable:ae.jsx("div",{className:"editor-scroller",children:ae.jsx("div",{className:"editor",ref:Et,children:ae.jsxs("div",{className:`editor-autosave-${g}`,children:[" ",ae.jsx(Od,{className:(K||Zt)&&b?`ContentEditable__root ${w?"content-editable-grid":""}`:`ContentEditable__root no-events ${w?"content-editable-grid":""}`})]})})}),placeholder:at,ErrorBoundary:Dl}),ae.jsx(U1,{}),ae.jsx(xw,{maxDepth:7}),ae.jsx(sw,{hasCellMerge:!0,hasCellBackgroundColor:!0}),ae.jsx(Rw,{}),ae.jsx(gw,{enableCaptions:S,wpAndTaskId:`${E.workplanId}-${E.taskId}`}),ae.jsx(fy,{}),ae.jsx(Cw,{}),rt&&!Vt&&ae.jsx(ae.Fragment,{children:ae.jsx(Mw,{anchorElem:rt,cellMerge:!0})}),ae.jsx(LS,{references:$,setReferences:Z,position:X,onClose:()=>Y(null),IsexistingIdPresent:pe}),ae.jsx(FS,{setContextMenu:Y,references:$,setReferences:Z,containerRef:I}),ae.jsx(BS,{references:$,setReferences:Z}),ae.jsx(I1,{}),ae.jsx(zS,{})]})]}),!K&&!F&&ae.jsxs("div",{style:{position:"absolute",zIndex:999,top:0,left:0,width:"100%",height:"100%",backgroundColor:"rgba(255, 255, 255, 0.6)",display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"start",backdropFilter:"blur(6px)"},children:[ae.jsx("img",{src:Lh,alt:"Spinverse Logo",style:{height:"60px",marginBottom:"20px",marginTop:"110px"}}),ae.jsx("img",{src:Fh,alt:"Loading...",style:{height:"50px"}})]})]}),h&&ae.jsx(PS,{debug:!0,ref:je,onBlacklistedInsert:Ae}),P]})})}),i&&ae.jsx(RS,{styleConfig:i,docId:e})]},e):ae.jsx(ae.Fragment,{children:!K&&!F&&ae.jsxs("div",{style:{position:"absolute",zIndex:999,top:0,left:0,width:"100%",height:"100%",backgroundColor:"rgba(255, 255, 255, 0.6)",display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"start",backdropFilter:"blur(6px)"},children:[ae.jsx("img",{src:Lh,alt:"Spinverse Logo",style:{height:"60px",marginBottom:"20px",marginTop:"110px"}}),ae.jsx("img",{src:Fh,alt:"Loading...",style:{height:"50px"}})]})})})}const rR=typeof window<"u"&&window.document!==void 0&&window.document.createElement!==void 0?he.useLayoutEffect:he.useEffect;let oR=class{constructor(t){this.key=t,this.ref={current:null},this.setRefElement=this.setRefElement.bind(this)}setRefElement(t){this.ref={current:t}}};const gC=l=>{const t=document.getElementById("typeahead-menu");if(!t)return;const n=t.getBoundingClientRect();n.top+n.height>window.innerHeight&&t.scrollIntoView({block:"center"}),n.top<0&&t.scrollIntoView({block:"center"}),l.scrollIntoView({block:"nearest"})};function mC(l,t){const n=l.getBoundingClientRect(),e=t.getBoundingClientRect();return n.top>e.top&&n.top<e.bottom}function iR(l,t,n,e){const[s]=yn();he.useEffect(()=>{if(t!=null&&l!=null){const r=s.getRootElement(),o=r!=null?function(d,f){let p=getComputedStyle(d);const h=p.position==="absolute",m=/(auto|scroll)/;if(p.position==="fixed")return document.body;for(let g=d;g=g.parentElement;)if(p=getComputedStyle(g),(!h||p.position!=="static")&&m.test(p.overflow+p.overflowY+p.overflowX))return g;return document.body}(r):document.body;let a=!1,c=mC(t,o);const i=function(){a||(window.requestAnimationFrame(function(){n(),a=!1}),a=!0);const d=mC(t,o);d!==c&&(c=d,e!=null&&e(d))},u=new ResizeObserver(n);return window.addEventListener("resize",n),document.addEventListener("scroll",i,{capture:!0,passive:!0}),u.observe(t),()=>{u.unobserve(t),window.removeEventListener("resize",n),document.removeEventListener("scroll",i,!0)}}},[t,s,e,n,l])}const yC=po();function sR({close:l,editor:t,anchorElementRef:n,resolution:e,options:s,menuRenderFn:r,onSelectOption:o,shouldSplitNodeWithQuery:a=!1,commandPriority:c=Jn}){const[i,u]=he.useState(null),d=e.match&&e.match.matchingString;he.useEffect(()=>{u(0)},[d]);const f=he.useCallback(h=>{t.update(()=>{const m=e.match!=null&&a?function(g){const v=jt();if(!St(v)||!v.isCollapsed())return null;const b=v.anchor;if(b.type!=="text")return null;const _=b.getNode();if(!_.isSimpleText())return null;const E=b.offset,S=_.getTextContent().slice(0,E),w=g.replaceableString.length,y=E-function(C,T,R){let F=R;for(let I=F;I<=T.length;I++)C.substr(-I)===T.substr(0,I)&&(F=I);return F}(S,g.matchingString,w);if(y<0)return null;let x;return y===0?[x]=_.splitText(E):[,x]=_.splitText(y,E),x}(e.match):null;o(h,m,l,e.match?e.match.matchingString:"")})},[t,a,e.match,o,l]),p=he.useCallback(h=>{const m=t.getRootElement();m!==null&&(m.setAttribute("aria-activedescendant","typeahead-item-"+h),u(h))},[t]);return he.useEffect(()=>()=>{const h=t.getRootElement();h!==null&&h.removeAttribute("aria-activedescendant")},[t]),rR(()=>{s===null?u(null):i===null&&p(0)},[s,i,p]),he.useEffect(()=>xr(t.registerCommand(yC,({option:h})=>!(!h.ref||h.ref.current==null)&&(gC(h.ref.current),!0),c)),[t,p,c]),he.useEffect(()=>xr(t.registerCommand(qu,h=>{const m=h;if(s!==null&&s.length&&i!==null){const g=i!==s.length-1?i+1:0;p(g);const v=s[g];v.ref!=null&&v.ref.current&&t.dispatchCommand(yC,{index:g,option:v}),m.preventDefault(),m.stopImmediatePropagation()}return!0},c),t.registerCommand(Hu,h=>{const m=h;if(s!==null&&s.length&&i!==null){const g=i!==0?i-1:s.length-1;p(g);const v=s[g];v.ref!=null&&v.ref.current&&gC(v.ref.current),m.preventDefault(),m.stopImmediatePropagation()}return!0},c),t.registerCommand(Fs,h=>{const m=h;return m.preventDefault(),m.stopImmediatePropagation(),l(),!0},c),t.registerCommand(Of,h=>{const m=h;return s!==null&&i!==null&&s[i]!=null&&(m.preventDefault(),m.stopImmediatePropagation(),f(s[i]),!0)},c),t.registerCommand(Ls,h=>s!==null&&i!==null&&s[i]!=null&&(h!==null&&(h.preventDefault(),h.stopImmediatePropagation()),f(s[i]),!0),c)),[f,l,t,s,i,p,c]),r(n,he.useMemo(()=>({options:s,selectOptionAndCleanUp:f,selectedIndex:i,setHighlightedIndex:u}),[f,i,s]),e.match?e.match.matchingString:"")}function aR({options:l,nodeKey:t,onClose:n,onOpen:e,onSelectOption:s,menuRenderFn:r,anchorClassName:o,commandPriority:a=Jn,parent:c}){const[i]=yn(),[u,d]=he.useState(null),f=function(g,v,b,_=document.body){const[E]=yn(),S=he.useRef(document.createElement("div")),w=he.useCallback(()=>{S.current.style.top=S.current.style.bottom;const x=E.getRootElement(),C=S.current,T=C.firstChild;if(x!==null&&g!==null){const{left:R,top:F,width:I,height:B}=g.getRect(),A=S.current.offsetHeight;if(C.style.top=`${F+window.pageYOffset+A+3}px`,C.style.left=`${R+window.pageXOffset}px`,C.style.height=`${B}px`,C.style.width=`${I}px`,T!==null){T.style.top=`${F}`;const j=T.getBoundingClientRect(),O=j.height,L=j.width,N=x.getBoundingClientRect();R+L>N.right&&(C.style.left=`${N.right-L+window.pageXOffset}px`),(F+O>window.innerHeight||F+O>N.bottom)&&F-N.top>O+B&&(C.style.top=F-O+window.pageYOffset-B+"px")}C.isConnected||(b!=null&&(C.className=b),C.setAttribute("aria-label","Typeahead menu"),C.setAttribute("id","typeahead-menu"),C.setAttribute("role","listbox"),C.style.display="block",C.style.position="absolute",_.append(C)),S.current=C,x.setAttribute("aria-controls","typeahead-menu")}},[E,g,b,_]);he.useEffect(()=>{const x=E.getRootElement();if(g!==null)return w(),()=>{x!==null&&x.removeAttribute("aria-controls");const C=S.current;C!==null&&C.isConnected&&C.remove()}},[E,w,g]);const y=he.useCallback(x=>{g!==null&&(x||v(null))},[g,v]);return iR(g,S.current,w,y),S}(u,d,o,c),p=he.useCallback(()=>{d(null),n!=null&&u!==null&&n()},[n,u]),h=he.useCallback(g=>{d(g),e!=null&&u===null&&e(g)},[e,u]),m=he.useCallback(()=>{t?i.update(()=>{const g=Fn(t),v=i.getElementByKey(t);var b;g!=null&&v!=null&&u==null&&(b=()=>h({getRect:()=>v.getBoundingClientRect()}),ir.startTransition?ir.startTransition(b):b())}):t==null&&u!=null&&p()},[p,i,t,h,u]);return he.useEffect(()=>{m()},[m,t]),he.useEffect(()=>{if(t!=null)return i.registerUpdateListener(({dirtyElements:g})=>{g.get(t)&&m()})},[i,m,t]),u===null||i===null?null:ae.jsx(sR,{close:p,resolution:u,editor:i,anchorElementRef:f,options:l,menuRenderFn:r,onSelectOption:s,commandPriority:a})}const lR=/((https?:\/\/(www\.)?)|(www\.))[-a-zA-Z0-9@:%._+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()@:%_+.~#?&//=]*)/,cR=po();class vC extends oR{constructor(t,n){super(t),this.title=t,this.onSelect=n.onSelect.bind(this)}}function uR({embedConfigs:l,onOpenEmbedModalForConfig:t,getMenuOptions:n,menuRenderFn:e,menuCommandPriority:s=Jn}){const[r]=yn(),[o,a]=he.useState(null),[c,i]=he.useState(null),u=he.useCallback(()=>{a(null),i(null)},[]),d=he.useCallback(m=>{r.getEditorState().read(async function(){const g=Fn(m);if(ti(g))for(let v=0;v<l.length;v++){const b=l[v];await Promise.resolve(b.parseUrl(g.__url))!=null&&(i(b),a(g.getKey()))}})},[r,l]);he.useEffect(()=>xr(...[xc,dd].map(m=>r.registerMutationListener(m,(...g)=>((v,{updateTags:b,dirtyLeaves:_})=>{for(const[E,S]of v)S==="created"&&b.has("paste")&&_.size<=3?d(E):E===o&&u()})(...g)))),[d,r,l,o,u]),he.useEffect(()=>r.registerCommand(cR,m=>{const g=l.find(({type:v})=>v===m);return!!g&&(t(g),!0)},Tn),[r,l,t]);const f=he.useCallback(async function(){if(c!=null&&o!=null){const m=r.getEditorState().read(()=>{const g=Fn(o);return ti(g)?g:null});if(ti(m)){const g=await Promise.resolve(c.parseUrl(m.__url));g!=null&&r.update(()=>{jt()||m.selectEnd(),c.insertNode(r,g),m.isAttached()&&m.remove()})}}},[c,r,o]),p=he.useMemo(()=>c!=null&&o!=null?n(c,f,u):[],[c,f,n,o,u]),h=he.useCallback((m,g,v)=>{r.update(()=>{m.onSelect(g),v()})},[r]);return o!=null?ae.jsx(aR,{nodeKey:o,onClose:u,onSelectOption:h,options:p,menuRenderFn:e,commandPriority:s}):null}const dR=po(),fR=po(),pR=po(),hR={contentName:"Youtube Video",exampleUrl:"https://www.youtube.com/watch?v=jNQXAC9IVRw",icon:ae.jsx("i",{className:"icon youtube"}),insertNode:(l,t)=>{l.dispatchCommand(pR,t.id)},keywords:["youtube","video"],parseUrl:async l=>{const t=/^.*(youtu\.be\/|v\/|u\/\w\/|embed\/|watch\?v=|&v=)([^#&?]*).*/.exec(l),n=t&&(t==null?void 0:t[2].length)===11?t[2]:null;return n!=null?{id:n,url:l}:null},type:"youtube-video"},gR=[{contentName:"Tweet",exampleUrl:"https://twitter.com/jack/status/20",icon:ae.jsx("i",{className:"icon tweet"}),insertNode:(l,t)=>{l.dispatchCommand(fR,t.id)},keywords:["tweet","twitter"],parseUrl:l=>{const t=/^https:\/\/(twitter|x)\.com\/(#!\/)?(\w+)\/status(es)*\/(\d+)/.exec(l);return t!=null?{id:t[5],url:t[1]}:null},type:"tweet"},hR,{contentName:"Figma Document",exampleUrl:"https://www.figma.com/file/LKQ4FJ4bTnCSjedbRpk931/Sample-File",icon:ae.jsx("i",{className:"icon figma"}),insertNode:(l,t)=>{l.dispatchCommand(dR,t.id)},keywords:["figma","figma.com","mock-up"],parseUrl:l=>{const t=/https:\/\/([\w.-]+\.)?figma.com\/(file|proto)\/([0-9a-zA-Z]{22,128})(?:\/.*)?$/.exec(l);return t!=null?{id:t[3],url:t[0]}:null},type:"figma"}];function mR({index:l,isSelected:t,onClick:n,onMouseEnter:e,option:s}){let r="item";return t&&(r+=" selected"),ae.jsx("li",{tabIndex:-1,className:r,ref:s.setRefElement,role:"option","aria-selected":t,id:"typeahead-item-"+l,onMouseEnter:e,onClick:n,children:ae.jsx("span",{className:"text",children:s.title})},s.key)}function yR({options:l,selectedItemIndex:t,onOptionClick:n,onOptionMouseEnter:e}){return ae.jsx("div",{className:"typeahead-popover",children:ae.jsx("ul",{children:l.map((s,r)=>ae.jsx(mR,{index:r,isSelected:t===r,onClick:()=>n(s,r),onMouseEnter:()=>e(r),option:s},s.key))})})}const vR=(l,t)=>{let n;return e=>{window.clearTimeout(n),n=window.setTimeout(()=>{l(e)},t)}};function bR({embedConfig:l,onClose:t}){const[n,e]=he.useState(""),[s]=yn(),[r,o]=he.useState(null),a=he.useMemo(()=>vR(i=>{const u=lR.exec(i);l!=null&&i!=null&&u!=null?Promise.resolve(l.parseUrl(i)).then(d=>{o(d)}):r!=null&&o(null)},200),[l,r]),c=()=>{r!=null&&(l.insertNode(s,r),t())};return ae.jsxs("div",{style:{width:"600px"},children:[ae.jsx("div",{className:"Input__wrapper",children:ae.jsx("input",{type:"text",className:"Input__input",placeholder:l.exampleUrl,value:n,"data-test-id":`${l.type}-embed-modal-url`,onChange:i=>{const{value:u}=i.target;e(u),a(u)}})}),ae.jsx(Mp,{children:ae.jsx(Fi,{disabled:!r,onClick:c,"data-test-id":`${l.type}-embed-modal-submit-btn`,children:"Embed"})})]})}function _R(){const[l,t]=La(),n=s=>{t(`Embed ${s.contentName}`,r=>ae.jsx(bR,{embedConfig:s,onClose:r}))},e=(s,r,o)=>[new vC("Dismiss",{onSelect:o}),new vC(`Embed ${s.contentName}`,{onSelect:r})];return ae.jsxs(ae.Fragment,{children:[l,ae.jsx(uR,{embedConfigs:gR,onOpenEmbedModalForConfig:n,getMenuOptions:e,menuRenderFn:(s,{selectedIndex:r,options:o,selectOptionAndCleanUp:a,setHighlightedIndex:c})=>s.current?Cf.createPortal(ae.jsx("div",{className:"typeahead-popover auto-embed-menu",style:{marginLeft:s.current.style.width,width:200},children:ae.jsx(yR,{options:o,selectedItemIndex:r,onOptionClick:(i,u)=>{c(u),a(i)},onOptionMouseEnter:i=>{c(i)}})}),s.current):null})]})}class wR extends ZE{constructor(n,e,s){super(n);Hn(this,"title");Hn(this,"emoji");Hn(this,"keywords");this.title=n,this.emoji=e,this.keywords=s.keywords||[]}}function xR({index:l,isSelected:t,onClick:n,onMouseEnter:e,option:s}){let r="item";return t&&(r+=" selected"),ae.jsx("li",{tabIndex:-1,className:r,ref:s.setRefElement,role:"option","aria-selected":t,id:"typeahead-item-"+l,onMouseEnter:e,onClick:n,children:ae.jsxs("span",{className:"text",children:[s.emoji," ",s.title]})},s.key)}const SR=10;function ER(){const[l]=yn(),[t,n]=he.useState(null),[e,s]=he.useState([]);he.useEffect(()=>{Promise.resolve().then(()=>iD).then(i=>s(i.default))},[]);const r=he.useMemo(()=>e!=null?e.map(({emoji:i,aliases:u,tags:d})=>new wR(u[0],i,{keywords:[...u,...d]})):[],[e]),o=tC(":",{minLength:0}),a=he.useMemo(()=>r.filter(i=>t!=null?new RegExp(t,"gi").exec(i.title)||i.keywords!=null?i.keywords.some(u=>new RegExp(t,"gi").exec(u)):!1:r).slice(0,SR),[r,t]),c=he.useCallback((i,u,d)=>{l.update(()=>{const f=jt();!St(f)||i==null||(u&&u.remove(),f.insertNodes([rr(i.emoji)]),d())})},[l]);return ae.jsx(nC,{onQueryChange:n,onSelectOption:c,triggerFn:o,options:a,menuRenderFn:(i,{selectedIndex:u,selectOptionAndCleanUp:d,setHighlightedIndex:f})=>i.current==null||a.length===0?null:i.current&&a.length?Cf.createPortal(ae.jsx("div",{className:"typeahead-popover emoji-menu",children:ae.jsx("ul",{children:a.map((p,h)=>ae.jsx("div",{children:ae.jsx(xR,{index:h,isSelected:u===h,onClick:()=>{f(h),d(p)},onMouseEnter:()=>{f(h)},option:p})},p.key))})}),i.current):null})}const bC=new Map([[":)",["emoji happysmile","🙂"]],[":D",["emoji veryhappysmile","😀"]],[":(",["emoji unhappysmile","🙁"]],["<3",["emoji heart","❤"]],["🙂",["emoji happysmile","🙂"]],["😀",["emoji veryhappysmile","😀"]],["🙁",["emoji unhappysmile","🙁"]],["❤",["emoji heart","❤"]]]);function CR(l){const t=l.getTextContent();for(let n=0;n<t.length;n++){const e=bC.get(t[n])||bC.get(t.slice(n,n+2));if(e!==void 0){const[s,r]=e;let o;n===0?[o]=l.splitText(n+2):[,o]=l.splitText(n,n+2);const a=v1(s,r);return o.replace(a),a}}return null}function jR(l){let t=l;for(;t!==null;){if(!t.isSimpleText())return;t=CR(t)}}function kR(l){he.useEffect(()=>{if(!l.hasNodes([bd]))throw new Error("EmojisPlugin: EmojiNode not registered on editor");return l.registerNodeTransform(Zr,jR)},[l])}function TR(){const[l]=yn();return kR(l),null}const _C=IS([...D1]);function AR({htmlString:l,wpAndTaskId:t}){const[n]=yn();return he.useEffect(()=>{!l||!t||n.update(()=>{const s=In().getChildren().filter(wr);s.forEach((r,o)=>{var h;const a=r.getChildren().find(Vs);if(!a)return;let c=r.getChildren().find(m=>Wt(m)&&m.getTextContent().startsWith("Figure"));if(!c)for(let m=o+1;m<s.length;m++){const g=s[m];if(g.getTextContent().trim()==="")continue;const v=g.getChildren().find(b=>Wt(b)&&b.getTextContent().startsWith("Figure"));if(v){c=v;break}}if(!c)return;const i=typeof c.getId=="function"?c.getId():void 0,u=c.getTextContent(),d=parseInt(((h=u.match(/\d+/))==null?void 0:h[0])||"1"),f=i||Mc(u,d,t);a.__captionId=f;const p=new qo(c.getTextContent(),"black",f);c.replace(p)})})},[n,l,t]),null}function OR({htmlString:l}){const[t]=yn();return he.useEffect(()=>{l&&t.update(()=>{In().getChildren().filter(dr).forEach((s,r)=>{const o=s.getPreviousSibling();if(o&&wr(o)){const a=o.getChildren(),c=a.find(i=>i.getTextContent().startsWith("Table")&&i.getId&&i.getId());if(c){const i=c.getId();s.__captionId=i}else{const i=o.getTextContent();console.log("captionText",o,i),localStorage.getItem("tableCount")-1;const u=Rp(i,r);console.log("captionId",u),s.__captionId=u,a.forEach(d=>{if(d.getTextContent().startsWith("Table")){console.log("gtting here");const f=new qo(d.getTextContent(),"black",u);d.replace(f)}})}}})})},[t,l]),null}function NR(){const[l]=yn();return he.useEffect(()=>l.registerCommand(vs,t=>{var s;const n=t==null?void 0:t.clipboardData;if(!n)return!1;const e=n==null?void 0:n.getData("text/html");if(e){const r=new DOMParser,o=r.parseFromString(e,"text/html"),a=e==null?void 0:e.match(/<!--StartFragment-->(.*?)<!--EndFragment-->/s),c=a?a[1]:o.body.innerHTML,u=(r==null?void 0:r.parseFromString(c,"text/html")).body.children;if((s=Array.from(u))==null?void 0:s.every(f=>f.tagName.toLowerCase()==="table"?!0:f.tagName.toLowerCase()==="p"?f.innerHTML.trim()==="<br>":!1))return alert("🚫Standalone table was pasted — blocked."),!0}return!1},wo),[l]),null}function PR({initialEditorState:l,userObj:t,CollabApiKey:n,docId:e,mentionItems:s,type:r,updateSharepointList:o,updateSharepointList2:a,savedComments:c,styleConfig:i,handleSaveComments:u,pagination:d=!1,customHeight:f,customWidth:p,isCollab:h=!0,defaultState:m,editId:g,toolbarShow:v=!0,isEditable:b=!1,showTabContent:_=!0,wpAndTaskId:E,enableCaptions:S=!0,editorTitle:w,showPdf:y=!0,showPagination:x=!0,exportToPDF:C}){const T=he.useRef(null),{historyState:R}=C_(),[F,I]=he.useState([]),[B,A]=he.useState("skyp_1"),[j,O]=he.useState([]),[L,N]=he.useState(!1),[U,D]=La(),[z,K]=he.useState(null),[G,P]=he.useState([]),[W,J]=he.useState(null),[H,$]=he.useState(!1),[Z,X]=he.useState(!1),[Y,ee]=he.useState(!1),[ie,fe]=he.useState([]),de=he.useRef(null),[ne,Ee]=he.useState(!1);he.useState(!1);const xe=async()=>({state:{root:[]},timestamp:Date.now()});let me=()=>{console.log("[Lexical Demo][onBlacklistedInsert] blacklisted combination found")};const{userName:je,userId:ue,userEmail:se}=t||{userName:"aa",userId:"aa",userEmail:"aa@sample.com"},pe={name:je,id:ue,email:se},ce={docId:e+"_"+g,apiKey:n,user:pe,hooks:{fetchDocOnNetworkReconnect:xe,contentChanged:(Ht,Zt)=>{},usersUpdate:Ht=>{I(Ht),renderOnlineUsers(Ht),console.log("[Lexical Demo][usersUpdate hook] hook invoked by Codox: ",Ht)}}};he.useEffect(()=>{let Ht=[],Zt=[];F&&F.length>0&&F.map((Xt,Et)=>{Zt.includes(Xt.name)||(Zt.push(Xt.name),Ht.push(ae.jsxs("div",{title:Xt.name,className:`avatarStyle avatar-color-${Et+1}`,children:[" ",Xt.name&&Xt.name[0],Xt.name&&Xt.name[4]]},Et)))}),O(Ht)},[F]);const Te=()=>{de.current&&(de.current.initComments(c),["content_changed","error","users_update"].forEach(Zt=>{console.log("[Lexical Demo][[Subscribe to Codox Event]: ",Zt),de.current.on(Zt,Xt=>{})}),de.current.start(ce).then(()=>{console.log("[Lexical Demo][codox.start] success"),N(!0)}).catch(Zt=>console.log("[Lexical Demo][codox.start] error",Zt)))},Ae=()=>{de.current&&de.current.stop(),N(!1)};he.useEffect(()=>{wd(".editor-outer").css({justifyContent:Z?"flex-start":"center"})},[Z]),he.useEffect(()=>{(async()=>{if(!B)return;L&&Ae();let Ht=m;if(Ht)try{MS(Ht,_C),K(Ht)}catch(Zt){console.error("error: ",Zt)}})()},[B]),he.useEffect(()=>{z&&e&&!L&&n&&setTimeout(()=>{Te()},2e3)},[z,e,L,n]);const ke=he.useMemo(()=>{if(z)return{editorState:Ht=>{Ht.update(()=>{const Zt=new DOMParser,Xt=qw(l),Et=Zt.parseFromString(Xt,"text/html");let Dt=Sd(Ht,Et);In().clear();const At=En();Xo(Dt),Xo([At]),Ht.setEditable(b),setTimeout(()=>{Ht.setEditable(b),rt(!0)},5e3);const tn=new Qd(Ht);c&&(tn.setComments(c),Ht._commentStore||(Ht._commentStore=new Qd(Ht),Ht._commentStore.getComments().length===0&&Ht._commentStore.setComments(c)))})},namespace:"Playground",nodes:_C,onError:Ht=>{console.error("[Lexical Demo][Editor Error Captured]: ",Ht)},theme:ry}},[z]),Me=he.useRef(l);he.useEffect(()=>{Me.current||(Me.current=l)},[l]);const We=ae.jsx(Nd,{children:""}),[De,Le]=he.useState(null),[Ce,Xe]=he.useState(!1),[Ie,Ze]=he.useState(!1),[at,rt]=he.useState(!1),[it,Vt]=he.useState(""),Qe=Ht=>{Ht!==null&&Le(Ht)};he.useEffect(()=>{const Ht=()=>{const Zt=Ic&&window.matchMedia("(max-width: 1025px)").matches;Zt!==Ce&&Xe(Zt)};return Ht(),window.addEventListener("resize",Ht),()=>{window.removeEventListener("resize",Ht)}},[Ce]),he.useEffect(()=>{const Ht=Zt=>{W&&!Zt.target.closest(".reference-toolbar")&&J(null)};return document.addEventListener("click",Ht),()=>{document.removeEventListener("click",Ht)}},[W]),he.useEffect(()=>{l&&t&&t.userName&&e&&i?setTimeout(()=>{Ee(!0)},1e3):Ee(!1)},[l,t,i]);const Kt=Ht=>{console.log("CustomOnChange",Ht),a(Ht),Vt(Ht)};return ae.jsx(ae.Fragment,{children:ne?ae.jsxs(dp,{initialConfig:ke,children:[ae.jsx(E_,{children:ae.jsx(L1,{children:ae.jsxs("div",{ref:T,className:"editor-shell",style:{position:"relative"},children:[ae.jsxs("div",{className:L?"":"blurred-editor-content",children:[ae.jsxs(ae.Fragment,{children:[ae.jsx(OR,{htmlString:l}),ae.jsx(AR,{htmlString:l,wpAndTaskId:`${E.workplanId}-${E.taskId}`}),ae.jsx(dC,{showComments:H,setShowComments:$,handleSaveComments:u,userName:je,userEmail:se,mentionItems:s,mentionedEmails:ie,setmentionedEmails:fe,wpAndTaskId:E,setShowCommentInput:ee,showCommentInput:Y}),ae.jsx(NR,{}),b?ae.jsxs(ae.Fragment,{children:[i&&v&&ae.jsx(dx,{styleConfig:i,setIsLinkEditMode:Ze,onlUser:j,showComments:H,setShowComments:$,parsedHtmlString:it,enableCaptions:S,wpAndTaskId:E,editorTitle:w,exportToPDF:C})," "]}):"",ae.jsx(fC,{onChange:Kt}),ae.jsxs("div",{className:"editor-container tree-view",children:[ae.jsx(bw,{}),ae.jsx(ER,{}),ae.jsx(_R,{}),ae.jsx(TR,{}),ae.jsx(z1,{}),ae.jsx(_w,{}),ae.jsx(fw,{}),ae.jsx(mp,{externalHistoryState:R}),ae.jsx(qp,{contentEditable:ae.jsx("div",{className:"editor-scroller",children:ae.jsx("div",{className:"editor",ref:Qe,children:ae.jsxs("div",{className:`editor-autosave-${g}`,children:[" ",ae.jsx(Od,{className:(L||at)&&b?`ContentEditable__root ${x?"content-editable-grid":""}`:`ContentEditable__root no-events ${x?"content-editable-grid":""}`})]})})}),placeholder:We,ErrorBoundary:Dl}),ae.jsx(U1,{}),ae.jsx(xw,{maxDepth:7}),ae.jsx(sw,{hasCellMerge:!0,hasCellBackgroundColor:!0}),h&&ae.jsx(Rw,{}),ae.jsx(gw,{enableCaptions:S,wpAndTaskId:`${E.workplanId}-${E.taskId}`}),ae.jsx(fy,{}),ae.jsx(Cw,{}),De&&!Ce&&ae.jsx(ae.Fragment,{children:ae.jsx(Mw,{anchorElem:De,cellMerge:!0})}),W&&ae.jsx(LS,{references:G,setReferences:P,position:W,onClose:()=>J(null)}),ae.jsx(FS,{setContextMenu:J,references:G,setReferences:P,containerRef:T}),ae.jsx(BS,{references:G,setReferences:P}),ae.jsx(I1,{}),ae.jsx(zS,{}),ae.jsx(pC,{})]})]}),!L&&ae.jsxs("div",{style:{position:"absolute",zIndex:999,top:0,left:0,width:"100%",height:"100%",backgroundColor:"rgba(255, 255, 255, 0.6)",display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"start",backdropFilter:"blur(6px)"},children:[ae.jsx("img",{src:Lh,alt:"Spinverse Logo",style:{height:"60px",marginBottom:"20px",marginTop:"110px"}}),ae.jsx("img",{src:Fh,alt:"Loading...",style:{height:"50px"}})]})]}),h&&ae.jsx(PS,{debug:!0,ref:de,onBlacklistedInsert:me}),U]})})}),i&&ae.jsx(RS,{styleConfig:i})]},e):ae.jsx(ae.Fragment,{children:!L&&ae.jsxs("div",{style:{position:"absolute",zIndex:999,top:0,left:0,width:"100%",height:"100%",backgroundColor:"rgba(255, 255, 255, 0.6)",display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"start",backdropFilter:"blur(6px)"},children:[ae.jsx("img",{src:Lh,alt:"Spinverse Logo",style:{height:"60px",marginBottom:"20px",marginTop:"110px"}}),ae.jsx("img",{src:Fh,alt:"Loading...",style:{height:"50px"}})]})})})}const YD="";function IR(l){return l&&l.__esModule&&Object.prototype.hasOwnProperty.call(l,"default")?l.default:l}var MR=IR(function(l){const t=new URLSearchParams;t.append("code",l);for(let n=1;n<arguments.length;n++)t.append("v",arguments[n]);throw Error(`Minified Lexical error #${l}; visit https://lexical.dev/docs/error?${t} for the full message or use the non-minified dev environment for full errors and additional helpful warnings.`)});function wC(l){const t=l.transform();return t!==null?new Set([t]):new Set}function xC({initialEditor:l,children:t,initialNodes:n,initialTheme:e,skipCollabChecks:s}){const r=he.useRef(!1),o=he.useContext(Uu);o==null&&MR(9);const[a,{getTheme:c}]=o,i=he.useMemo(()=>{const p=e||c()||void 0,h=Tv(o,p);if(p!==void 0&&(l._config.theme=p),l._parentEditor=a,n)for(let m of n){let g=null,v=null;if(typeof m!="function"){const _=m;m=_.replace,g=_.with,v=_.withKlass||null}const b=l._nodes.get(m.getType());l._nodes.set(m.getType(),{exportDOM:b?b.exportDOM:void 0,klass:m,replace:g,replaceWithKlass:v,transforms:wC(m)})}else{const m=l._nodes=new Map(a._nodes);for(const[g,v]of m)l._nodes.set(g,{exportDOM:v.exportDOM,klass:v.klass,replace:v.replace,replaceWithKlass:v.replaceWithKlass,transforms:wC(v.klass)})}return l._config.namespace=a._config.namespace,l._editable=a._editable,[l,h]},[]),{isCollabActive:u,yjsDocMap:d}=Pd(),f=s||r.current||d.has(l.getKey());return he.useEffect(()=>{f&&(r.current=!0)},[f]),he.useEffect(()=>a.registerEditableListener(p=>{l.setEditable(p)}),[l,a]),ae.jsx(Uu.Provider,{value:i,children:!u||f?t:null})}function S0(l,t,n){return Math.min(Math.max(l,t),n)}const Nr={east:1,north:8,south:2,west:4};function RR({onResizeStart:l,onResizeEnd:t,buttonRef:n,imageRef:e,maxWidth:s,editor:r,showCaption:o,setShowCaption:a,enableCaptions:c}){const i=he.useRef(null),u=he.useRef({priority:"",value:"default"}),d=he.useRef({currentHeight:0,currentWidth:0,direction:0,isResizing:!1,ratio:0,startHeight:0,startWidth:0,startX:0,startY:0}),f=r.getRootElement(),p=f!==null?f.getBoundingClientRect().width-20:100,h=f!==null?f.getBoundingClientRect().height-20:100,m=100,g=100,v=w=>{const y=w===Nr.east||w===Nr.west,x=w===Nr.north||w===Nr.south,C=w&Nr.north&&w&Nr.west||w&Nr.south&&w&Nr.east,T=y?"ew":x?"ns":C?"nwse":"nesw";f!==null&&f.style.setProperty("cursor",`${T}-resize`,"important"),document.body!==null&&(document.body.style.setProperty("cursor",`${T}-resize`,"important"),u.current.value=document.body.style.getPropertyValue("-webkit-user-select"),u.current.priority=document.body.style.getPropertyPriority("-webkit-user-select"),document.body.style.setProperty("-webkit-user-select","none","important"))},b=()=>{f!==null&&f.style.setProperty("cursor","text"),document.body!==null&&(document.body.style.setProperty("cursor","default"),document.body.style.setProperty("-webkit-user-select",u.current.value,u.current.priority))},_=(w,y)=>{if(!r.isEditable())return;const x=e.current,C=i.current;if(x!==null&&C!==null){w.preventDefault();const{width:T,height:R}=x.getBoundingClientRect(),F=d.current;F.startWidth=T,F.startHeight=R,F.ratio=T/R,F.currentWidth=T,F.currentHeight=R,F.startX=w.clientX,F.startY=w.clientY,F.isResizing=!0,F.direction=y,v(y),l(),C.classList.add("image-control-wrapper--resizing"),x.style.height=`${R}px`,x.style.width=`${T}px`,document.addEventListener("pointermove",E),document.addEventListener("pointerup",S)}},E=w=>{const y=e.current,x=d.current,C=x.direction&(Nr.east|Nr.west),T=x.direction&(Nr.south|Nr.north);if(y!==null&&x.isResizing){if(C&&T){let R=Math.floor(x.startX-w.clientX);R=x.direction&Nr.east?-R:R;const F=S0(x.startWidth+R,m,p),I=F/x.ratio;if(I>600){alert("Image height cannot be greater than 600px."),S();return}y.style.width=`${F}px`,y.style.height=`${I}px`,x.currentHeight=I,x.currentWidth=F}else if(T){let R=Math.floor(x.startY-w.clientY);R=x.direction&Nr.south?-R:R;const F=x.startHeight+R;if(F>x.startHeight&&F>600){alert("Image height cannot be greater than 600px."),S();return}const B=S0(F,g,h);y.style.height=`${B}px`,y.style.maxHeight=`${B}px`,x.currentHeight=B}else{let R=Math.floor(x.startX-w.clientX);R=x.direction&Nr.east?-R:R;const F=S0(x.startWidth+R,m,p);y.style.width=`${F}px`,y.style.maxWidth=`${F}px`,x.currentWidth=F}y&&(y.setAttribute("width",`${x.currentWidth}`),y.setAttribute("height",`${x.currentHeight}`))}},S=()=>{const w=e.current,y=d.current,x=i.current;if(w!==null&&x!==null&&y.isResizing){const C=y.currentWidth,T=y.currentHeight;y.startWidth=0,y.startHeight=0,y.ratio=0,y.startX=0,y.startY=0,y.currentWidth=0,y.currentHeight=0,y.isResizing=!1,x.classList.remove("image-control-wrapper--resizing"),b(),t(C,T),document.removeEventListener("pointermove",E),document.removeEventListener("pointerup",S)}};return ae.jsxs("div",{ref:i,children:[ae.jsx("div",{className:"image-resizer image-resizer-n",onPointerDown:w=>{_(w,Nr.north)}}),ae.jsx("div",{className:"image-resizer image-resizer-ne",onPointerDown:w=>{_(w,Nr.north|Nr.east)}}),ae.jsx("div",{className:"image-resizer image-resizer-e",onPointerDown:w=>{_(w,Nr.east)}}),ae.jsx("div",{className:"image-resizer image-resizer-se",onPointerDown:w=>{_(w,Nr.south|Nr.east)}}),ae.jsx("div",{className:"image-resizer image-resizer-s",onPointerDown:w=>{_(w,Nr.south)}}),ae.jsx("div",{className:"image-resizer image-resizer-sw",onPointerDown:w=>{_(w,Nr.south|Nr.west)}}),ae.jsx("div",{className:"image-resizer image-resizer-w",onPointerDown:w=>{_(w,Nr.west)}}),ae.jsx("div",{className:"image-resizer image-resizer-nw",onPointerDown:w=>{_(w,Nr.north|Nr.west)}})]})}const Bh={x:0,y:0,width:0,height:0,unit:"px"},gu=(l,t,n)=>Math.min(Math.max(l,t),n),DR=(...l)=>l.filter(t=>t&&typeof t=="string").join(" "),SC=(l,t)=>l===t||l.width===t.width&&l.height===t.height&&l.x===t.x&&l.y===t.y&&l.unit===t.unit;function mu(l,t,n){return l.unit==="%"?{...Bh,...l,unit:"%"}:{unit:"%",x:l.x?l.x/t*100:0,y:l.y?l.y/n*100:0,width:l.width?l.width/t*100:0,height:l.height?l.height/n*100:0}}function Za(l,t,n){return l.unit?l.unit==="px"?{...Bh,...l,unit:"px"}:{unit:"px",x:l.x?l.x*t/100:0,y:l.y?l.y*n/100:0,width:l.width?l.width*t/100:0,height:l.height?l.height*n/100:0}:{...Bh,...l,unit:"px"}}function EC(l,t,n,e,s,r=0,o=0,a=e,c=s){const i={...l};let u=Math.min(r,e),d=Math.min(o,s),f=Math.min(a,e),p=Math.min(c,s);t&&(t>1?(u=o?o*t:u,d=u/t,f=a*t):(d=r?r/t:d,u=d*t,p=c/t)),i.y<0&&(i.height=Math.max(i.height+i.y,d),i.y=0),i.x<0&&(i.width=Math.max(i.width+i.x,u),i.x=0);const h=e-(i.x+i.width);h<0&&(i.x=Math.min(i.x,e-u),i.width+=h);const m=s-(i.y+i.height);if(m<0&&(i.y=Math.min(i.y,s-d),i.height+=m),i.width<u&&((n==="sw"||n=="nw")&&(i.x-=u-i.width),i.width=u),i.height<d&&((n==="nw"||n=="ne")&&(i.y-=d-i.height),i.height=d),i.width>f&&((n==="sw"||n=="nw")&&(i.x-=f-i.width),i.width=f),i.height>p&&((n==="nw"||n=="ne")&&(i.y-=p-i.height),i.height=p),t){const g=i.width/i.height;if(g<t){const v=Math.max(i.width/t,d);(n==="nw"||n=="ne")&&(i.y-=v-i.height),i.height=v}else if(g>t){const v=Math.max(i.height*t,u);(n==="sw"||n=="nw")&&(i.x-=v-i.width),i.width=v}}return i}function LR(l,t,n,e){const s={...l};return t==="ArrowLeft"?e==="nw"?(s.x-=n,s.y-=n,s.width+=n,s.height+=n):e==="w"?(s.x-=n,s.width+=n):e==="sw"?(s.x-=n,s.width+=n,s.height+=n):e==="ne"?(s.y+=n,s.width-=n,s.height-=n):e==="e"?s.width-=n:e==="se"&&(s.width-=n,s.height-=n):t==="ArrowRight"&&(e==="nw"?(s.x+=n,s.y+=n,s.width-=n,s.height-=n):e==="w"?(s.x+=n,s.width-=n):e==="sw"?(s.x+=n,s.width-=n,s.height-=n):e==="ne"?(s.y-=n,s.width+=n,s.height+=n):e==="e"?s.width+=n:e==="se"&&(s.width+=n,s.height+=n)),t==="ArrowUp"?e==="nw"?(s.x-=n,s.y-=n,s.width+=n,s.height+=n):e==="n"?(s.y-=n,s.height+=n):e==="ne"?(s.y-=n,s.width+=n,s.height+=n):e==="sw"?(s.x+=n,s.width-=n,s.height-=n):e==="s"?s.height-=n:e==="se"&&(s.width-=n,s.height-=n):t==="ArrowDown"&&(e==="nw"?(s.x+=n,s.y+=n,s.width-=n,s.height-=n):e==="n"?(s.y+=n,s.height-=n):e==="ne"?(s.y+=n,s.width-=n,s.height-=n):e==="sw"?(s.x-=n,s.width+=n,s.height+=n):e==="s"?s.height+=n:e==="se"&&(s.width+=n,s.height+=n)),s}const yu={capture:!0,passive:!1};let FR=0;const Qa=class ys extends he.PureComponent{constructor(){super(...arguments),this.docMoveBound=!1,this.mouseDownOnCrop=!1,this.dragStarted=!1,this.evData={startClientX:0,startClientY:0,startCropX:0,startCropY:0,clientX:0,clientY:0,isResize:!0},this.componentRef=he.createRef(),this.mediaRef=he.createRef(),this.initChangeCalled=!1,this.instanceId=`rc-${FR++}`,this.state={cropIsActive:!1,newCropIsBeingDrawn:!1},this.onCropPointerDown=t=>{const{crop:n,disabled:e}=this.props,s=this.getBox();if(!n)return;const r=Za(n,s.width,s.height);if(e)return;t.cancelable&&t.preventDefault(),this.bindDocMove(),this.componentRef.current.focus({preventScroll:!0});const o=t.target.dataset.ord,a=!!o;let c=t.clientX,i=t.clientY,u=r.x,d=r.y;if(o){const f=t.clientX-s.x,p=t.clientY-s.y;let h=0,m=0;o==="ne"||o=="e"?(h=f-(r.x+r.width),m=p-r.y,u=r.x,d=r.y+r.height):o==="se"||o==="s"?(h=f-(r.x+r.width),m=p-(r.y+r.height),u=r.x,d=r.y):o==="sw"||o=="w"?(h=f-r.x,m=p-(r.y+r.height),u=r.x+r.width,d=r.y):(o==="nw"||o=="n")&&(h=f-r.x,m=p-r.y,u=r.x+r.width,d=r.y+r.height),c=u+s.x+h,i=d+s.y+m}this.evData={startClientX:c,startClientY:i,startCropX:u,startCropY:d,clientX:t.clientX,clientY:t.clientY,isResize:a,ord:o},this.mouseDownOnCrop=!0,this.setState({cropIsActive:!0})},this.onComponentPointerDown=t=>{const{crop:n,disabled:e,locked:s,keepSelection:r,onChange:o}=this.props,a=this.getBox();if(e||s||r&&n)return;t.cancelable&&t.preventDefault(),this.bindDocMove(),this.componentRef.current.focus({preventScroll:!0});const c=t.clientX-a.x,i=t.clientY-a.y,u={unit:"px",x:c,y:i,width:0,height:0};this.evData={startClientX:t.clientX,startClientY:t.clientY,startCropX:c,startCropY:i,clientX:t.clientX,clientY:t.clientY,isResize:!0},this.mouseDownOnCrop=!0,o(Za(u,a.width,a.height),mu(u,a.width,a.height)),this.setState({cropIsActive:!0,newCropIsBeingDrawn:!0})},this.onDocPointerMove=t=>{const{crop:n,disabled:e,onChange:s,onDragStart:r}=this.props,o=this.getBox();if(e||!n||!this.mouseDownOnCrop)return;t.cancelable&&t.preventDefault(),this.dragStarted||(this.dragStarted=!0,r&&r(t));const{evData:a}=this;a.clientX=t.clientX,a.clientY=t.clientY;let c;a.isResize?c=this.resizeCrop():c=this.dragCrop(),SC(n,c)||s(Za(c,o.width,o.height),mu(c,o.width,o.height))},this.onComponentKeyDown=t=>{const{crop:n,disabled:e,onChange:s,onComplete:r}=this.props;if(e)return;const o=t.key;let a=!1;if(!n)return;const c=this.getBox(),i=this.makePixelCrop(c),u=(navigator.platform.match("Mac")?t.metaKey:t.ctrlKey)?ys.nudgeStepLarge:t.shiftKey?ys.nudgeStepMedium:ys.nudgeStep;if(o==="ArrowLeft"?(i.x-=u,a=!0):o==="ArrowRight"?(i.x+=u,a=!0):o==="ArrowUp"?(i.y-=u,a=!0):o==="ArrowDown"&&(i.y+=u,a=!0),a){t.cancelable&&t.preventDefault(),i.x=gu(i.x,0,c.width-i.width),i.y=gu(i.y,0,c.height-i.height);const d=Za(i,c.width,c.height),f=mu(i,c.width,c.height);s(d,f),r&&r(d,f)}},this.onHandlerKeyDown=(t,n)=>{const{aspect:e=0,crop:s,disabled:r,minWidth:o=0,minHeight:a=0,maxWidth:c,maxHeight:i,onChange:u,onComplete:d}=this.props,f=this.getBox();if(r||!s)return;if(t.key==="ArrowUp"||t.key==="ArrowDown"||t.key==="ArrowLeft"||t.key==="ArrowRight")t.stopPropagation(),t.preventDefault();else return;const p=(navigator.platform.match("Mac")?t.metaKey:t.ctrlKey)?ys.nudgeStepLarge:t.shiftKey?ys.nudgeStepMedium:ys.nudgeStep,h=Za(s,f.width,f.height),m=LR(h,t.key,p,n),g=EC(m,e,n,f.width,f.height,o,a,c,i);if(!SC(s,g)){const v=mu(g,f.width,f.height);u(g,v),d&&d(g,v)}},this.onDocPointerDone=t=>{const{crop:n,disabled:e,onComplete:s,onDragEnd:r}=this.props,o=this.getBox();this.unbindDocMove(),!(e||!n)&&this.mouseDownOnCrop&&(this.mouseDownOnCrop=!1,this.dragStarted=!1,r&&r(t),s&&s(Za(n,o.width,o.height),mu(n,o.width,o.height)),this.setState({cropIsActive:!1,newCropIsBeingDrawn:!1}))},this.onDragFocus=()=>{var t;(t=this.componentRef.current)==null||t.scrollTo(0,0)}}get document(){return document}getBox(){const t=this.mediaRef.current;if(!t)return{x:0,y:0,width:0,height:0};const{x:n,y:e,width:s,height:r}=t.getBoundingClientRect();return{x:n,y:e,width:s,height:r}}componentDidUpdate(t){const{crop:n,onComplete:e}=this.props;if(e&&!t.crop&&n){const{width:s,height:r}=this.getBox();s&&r&&e(Za(n,s,r),mu(n,s,r))}}componentWillUnmount(){this.resizeObserver&&this.resizeObserver.disconnect(),this.unbindDocMove()}bindDocMove(){this.docMoveBound||(this.document.addEventListener("pointermove",this.onDocPointerMove,yu),this.document.addEventListener("pointerup",this.onDocPointerDone,yu),this.document.addEventListener("pointercancel",this.onDocPointerDone,yu),this.docMoveBound=!0)}unbindDocMove(){this.docMoveBound&&(this.document.removeEventListener("pointermove",this.onDocPointerMove,yu),this.document.removeEventListener("pointerup",this.onDocPointerDone,yu),this.document.removeEventListener("pointercancel",this.onDocPointerDone,yu),this.docMoveBound=!1)}getCropStyle(){const{crop:t}=this.props;if(t)return{top:`${t.y}${t.unit}`,left:`${t.x}${t.unit}`,width:`${t.width}${t.unit}`,height:`${t.height}${t.unit}`}}dragCrop(){const{evData:t}=this,n=this.getBox(),e=this.makePixelCrop(n),s=t.clientX-t.startClientX,r=t.clientY-t.startClientY;return e.x=gu(t.startCropX+s,0,n.width-e.width),e.y=gu(t.startCropY+r,0,n.height-e.height),e}getPointRegion(t,n,e,s){const{evData:r}=this,o=r.clientX-t.x,a=r.clientY-t.y;let c;s&&n?c=n==="nw"||n==="n"||n==="ne":c=a<r.startCropY;let i;return e&&n?i=n==="nw"||n==="w"||n==="sw":i=o<r.startCropX,i?c?"nw":"sw":c?"ne":"se"}resolveMinDimensions(t,n,e=0,s=0){const r=Math.min(e,t.width),o=Math.min(s,t.height);return!n||!r&&!o?[r,o]:n>1?r?[r,r/n]:[o*n,o]:o?[o*n,o]:[r,r/n]}resizeCrop(){const{evData:t}=this,{aspect:n=0,maxWidth:e,maxHeight:s}=this.props,r=this.getBox(),[o,a]=this.resolveMinDimensions(r,n,this.props.minWidth,this.props.minHeight);let c=this.makePixelCrop(r);const i=this.getPointRegion(r,t.ord,o,a),u=t.ord||i;let d=t.clientX-t.startClientX,f=t.clientY-t.startClientY;(o&&u==="nw"||u==="w"||u==="sw")&&(d=Math.min(d,-o)),(a&&u==="nw"||u==="n"||u==="ne")&&(f=Math.min(f,-a));const p={unit:"px",x:0,y:0,width:0,height:0};i==="ne"?(p.x=t.startCropX,p.width=d,n?(p.height=p.width/n,p.y=t.startCropY-p.height):(p.height=Math.abs(f),p.y=t.startCropY-p.height)):i==="se"?(p.x=t.startCropX,p.y=t.startCropY,p.width=d,n?p.height=p.width/n:p.height=f):i==="sw"?(p.x=t.startCropX+d,p.y=t.startCropY,p.width=Math.abs(d),n?p.height=p.width/n:p.height=f):i==="nw"&&(p.x=t.startCropX+d,p.width=Math.abs(d),n?(p.height=p.width/n,p.y=t.startCropY-p.height):(p.height=Math.abs(f),p.y=t.startCropY+f));const h=EC(p,n,i,r.width,r.height,o,a,e,s);return n||ys.xyOrds.indexOf(u)>-1?c=h:ys.xOrds.indexOf(u)>-1?(c.x=h.x,c.width=h.width):ys.yOrds.indexOf(u)>-1&&(c.y=h.y,c.height=h.height),c.x=gu(c.x,0,r.width-c.width),c.y=gu(c.y,0,r.height-c.height),c}renderCropSelection(){const{ariaLabels:t=ys.defaultProps.ariaLabels,disabled:n,locked:e,renderSelectionAddon:s,ruleOfThirds:r,crop:o}=this.props,a=this.getCropStyle();if(o)return he.createElement("div",{style:a,className:"ReactCrop__crop-selection",onPointerDown:this.onCropPointerDown,"aria-label":t.cropArea,tabIndex:0,onKeyDown:this.onComponentKeyDown,role:"group"},!n&&!e&&he.createElement("div",{className:"ReactCrop__drag-elements",onFocus:this.onDragFocus},he.createElement("div",{className:"ReactCrop__drag-bar ord-n","data-ord":"n"}),he.createElement("div",{className:"ReactCrop__drag-bar ord-e","data-ord":"e"}),he.createElement("div",{className:"ReactCrop__drag-bar ord-s","data-ord":"s"}),he.createElement("div",{className:"ReactCrop__drag-bar ord-w","data-ord":"w"}),he.createElement("div",{className:"ReactCrop__drag-handle ord-nw","data-ord":"nw",tabIndex:0,"aria-label":t.nwDragHandle,onKeyDown:c=>this.onHandlerKeyDown(c,"nw"),role:"button"}),he.createElement("div",{className:"ReactCrop__drag-handle ord-n","data-ord":"n",tabIndex:0,"aria-label":t.nDragHandle,onKeyDown:c=>this.onHandlerKeyDown(c,"n"),role:"button"}),he.createElement("div",{className:"ReactCrop__drag-handle ord-ne","data-ord":"ne",tabIndex:0,"aria-label":t.neDragHandle,onKeyDown:c=>this.onHandlerKeyDown(c,"ne"),role:"button"}),he.createElement("div",{className:"ReactCrop__drag-handle ord-e","data-ord":"e",tabIndex:0,"aria-label":t.eDragHandle,onKeyDown:c=>this.onHandlerKeyDown(c,"e"),role:"button"}),he.createElement("div",{className:"ReactCrop__drag-handle ord-se","data-ord":"se",tabIndex:0,"aria-label":t.seDragHandle,onKeyDown:c=>this.onHandlerKeyDown(c,"se"),role:"button"}),he.createElement("div",{className:"ReactCrop__drag-handle ord-s","data-ord":"s",tabIndex:0,"aria-label":t.sDragHandle,onKeyDown:c=>this.onHandlerKeyDown(c,"s"),role:"button"}),he.createElement("div",{className:"ReactCrop__drag-handle ord-sw","data-ord":"sw",tabIndex:0,"aria-label":t.swDragHandle,onKeyDown:c=>this.onHandlerKeyDown(c,"sw"),role:"button"}),he.createElement("div",{className:"ReactCrop__drag-handle ord-w","data-ord":"w",tabIndex:0,"aria-label":t.wDragHandle,onKeyDown:c=>this.onHandlerKeyDown(c,"w"),role:"button"})),s&&he.createElement("div",{className:"ReactCrop__selection-addon",onPointerDown:c=>c.stopPropagation()},s(this.state)),r&&he.createElement(he.Fragment,null,he.createElement("div",{className:"ReactCrop__rule-of-thirds-hz"}),he.createElement("div",{className:"ReactCrop__rule-of-thirds-vt"})))}makePixelCrop(t){const n={...Bh,...this.props.crop||{}};return Za(n,t.width,t.height)}render(){const{aspect:t,children:n,circularCrop:e,className:s,crop:r,disabled:o,locked:a,style:c,ruleOfThirds:i}=this.props,{cropIsActive:u,newCropIsBeingDrawn:d}=this.state,f=r?this.renderCropSelection():null,p=DR("ReactCrop",s,u&&"ReactCrop--active",o&&"ReactCrop--disabled",a&&"ReactCrop--locked",d&&"ReactCrop--new-crop",r&&t&&"ReactCrop--fixed-aspect",r&&e&&"ReactCrop--circular-crop",r&&i&&"ReactCrop--rule-of-thirds",!this.dragStarted&&r&&!r.width&&!r.height&&"ReactCrop--invisible-crop",e&&"ReactCrop--no-animate");return he.createElement("div",{ref:this.componentRef,className:p,style:c},he.createElement("div",{ref:this.mediaRef,className:"ReactCrop__child-wrapper",onPointerDown:this.onComponentPointerDown},n),r?he.createElement("svg",{className:"ReactCrop__crop-mask",width:"100%",height:"100%"},he.createElement("defs",null,he.createElement("mask",{id:`hole-${this.instanceId}`},he.createElement("rect",{width:"100%",height:"100%",fill:"white"}),e?he.createElement("ellipse",{cx:`${r.x+r.width/2}${r.unit}`,cy:`${r.y+r.height/2}${r.unit}`,rx:`${r.width/2}${r.unit}`,ry:`${r.height/2}${r.unit}`,fill:"black"}):he.createElement("rect",{x:`${r.x}${r.unit}`,y:`${r.y}${r.unit}`,width:`${r.width}${r.unit}`,height:`${r.height}${r.unit}`,fill:"black"}))),he.createElement("rect",{fill:"black",fillOpacity:.5,width:"100%",height:"100%",mask:`url(#hole-${this.instanceId})`})):void 0,f)}};Qa.xOrds=["e","w"],Qa.yOrds=["n","s"],Qa.xyOrds=["nw","ne","se","sw"],Qa.nudgeStep=1,Qa.nudgeStepMedium=10,Qa.nudgeStepLarge=100,Qa.defaultProps={ariaLabels:{cropArea:"Use the arrow keys to move the crop selection area",nwDragHandle:"Use the arrow keys to move the north west drag handle to change the crop selection area",nDragHandle:"Use the up and down arrow keys to move the north drag handle to change the crop selection area",neDragHandle:"Use the arrow keys to move the north east drag handle to change the crop selection area",eDragHandle:"Use the up and down arrow keys to move the east drag handle to change the crop selection area",seDragHandle:"Use the arrow keys to move the south east drag handle to change the crop selection area",sDragHandle:"Use the up and down arrow keys to move the south drag handle to change the crop selection area",swDragHandle:"Use the arrow keys to move the south west drag handle to change the crop selection area",wDragHandle:"Use the up and down arrow keys to move the west drag handle to change the crop selection area"}};let BR=Qa;const ZD="",E0=po();function zR({altText:l,className:t,src:n,width:e,height:s,maxWidth:r,imageRef:o,startCrop:a,setStartCrop:c,isFocused:i,nodeKey:u}){const[d,f]=he.useState(null),[p,h]=he.useState({unit:"px",x:25,y:25,width:50,height:50}),[m]=yn(),g=()=>{if(d){const S=o.current;if(!S||!d)return;const w=S.naturalWidth/S.width,y=S.naturalHeight/S.height,x=new OffscreenCanvas(d.width*w,d.height*y),C=x.getContext("2d");if(!C)throw new Error("No 2D context available");C.drawImage(S,d.x*w,d.y*y,d.width*w,d.height*y,0,0,d.width*w,d.height*y),x.convertToBlob({type:"image/png"}).then(T=>{c(!1);const R=new FileReader;R.onload=()=>{const F=R.result;setTimeout(()=>{m.update(()=>{const I=Fn(u);Vs(I)&&F&&I.setSrc(F)},{tag:"crop"})},100)},R.onerror=()=>{console.error("Error reading the cropped image blob")},R.readAsDataURL(T)})}},v=()=>{a||c(S=>{if(S===!1){const w=o.current;h({unit:"px",x:0,y:0,width:w.width,height:w.height})}return!S})},b=he.useRef(null),_=he.useRef(null);he.useEffect(()=>{d&&(b.current=d)},[d]);const E=S=>{_.current&&!_.current.contains(S.target)&&c(!1)};return he.useEffect(()=>(document.addEventListener("mousedown",E),()=>{document.removeEventListener("mousedown",E)}),[]),ae.jsxs("div",{ref:_,children:[i&&ae.jsx("button",{style:{zIndex:999},className:"image-caption-button",onClick:()=>v(),children:"Crop"}),a&&ae.jsx("button",{style:{zIndex:999},className:"image-caption-button",onClick:()=>g(),children:"Apply Crop"}),a?ae.jsx(BR,{crop:p,onChange:S=>h(S),onComplete:S=>f(S),children:ae.jsx("img",{className:t||void 0,src:n,alt:l,ref:o,width:typeof e=="number"?e:void 0,height:typeof s=="number"?s:void 0,style:{height:s,maxWidth:r,width:e},draggable:"false",crossOrigin:"anonymous"})}):ae.jsx("img",{className:t||void 0,src:n,alt:l,ref:o,width:typeof e=="number"?e:void 0,height:typeof s=="number"?s:void 0,style:{height:s,maxWidth:r,width:e},draggable:"false",crossOrigin:"anonymous"})]})}function UR({src:l,altText:t,nodeKey:n,width:e,height:s,maxWidth:r,resizable:o,showCaption:a,caption:c,enableCaptions:i}){const u=he.useRef(null),d=he.useRef(null),[f,p,h]=Ec(n),[m,g]=he.useState(!1),[v]=yn(),[b,_]=he.useState(null),[E,S]=he.useState(!1),w=he.useRef(null),y=he.useCallback(O=>f?(O.preventDefault(),v.update(()=>{const L=Fn(n);Vs(L)&&L.remove()}),!0):!1,[f,v,n]),x=he.useCallback(O=>{const L=jt(),N=d.current;if(f&&fr(L)&&L.getNodes().length===1){if(a)return _r(null),O.preventDefault(),c.focus(),!0;if(N!==null&&N!==document.activeElement)return O.preventDefault(),N.focus(),!0}return!1},[c,f,a]),C=he.useCallback(O=>w.current===c||d.current===O.target?(_r(null),v.update(()=>{p(!0);const L=v.getRootElement();L!==null&&L.focus()}),!0):!1,[c,v,p]),T=he.useCallback(O=>{const L=O;return m?!0:L.target===u.current?(L.shiftKey?p(!f):(h(),p(!0)),!0):!1},[m,f,p,h]),R=he.useCallback(O=>{v.getEditorState().read(()=>{const L=jt();O.target.tagName==="IMG"&&St(L)&&L.getNodes().length===1&&v.dispatchCommand(E0,O)})},[v]);he.useEffect(()=>{const O=N=>{(N.key==="Delete"||N.key==="Backspace")&&f&&(N.stopPropagation(),N.preventDefault(),v.update(()=>{const U=Fn(n);Vs(U)&&U.remove()}))},L=v.getRootElement();return L==null||L.addEventListener("keydown",O),()=>{L==null||L.removeEventListener("keydown",O)}},[f,v,n]),he.useEffect(()=>{let O=!0;const L=v.getRootElement(),N=xr(v.registerUpdateListener(({editorState:U})=>{O&&_(U.read(()=>jt()))}),v.registerCommand(ai,(U,D)=>(w.current=D,!1),Jn),v.registerCommand(ba,T,Jn),v.registerCommand(E0,T,Jn),v.registerCommand(ac,U=>U.target===u.current?(U.preventDefault(),!0):!1,Jn),v.registerCommand(Qi,y,4),v.registerCommand(Zi,y,4),v.registerCommand(Ls,x,Jn),v.registerCommand(Fs,C,Jn));return L==null||L.addEventListener("contextmenu",R),()=>{O=!1,N(),L==null||L.removeEventListener("contextmenu",R)}},[h,v,m,f,n,x,C,T,R,p]);const F=()=>{v.update(()=>{const O=Fn(n);Vs(O)&&O.setShowCaption(!0)})},I=(O,L)=>{setTimeout(()=>{g(!1)},200),v.update(()=>{const N=Fn(n);Vs(N)&&N.setWidthAndHeight(O,L)})},B=()=>{E||g(!0)},A=f&&fr(b)&&!m,j=f||m;return ae.jsx(he.Suspense,{fallback:null,children:ae.jsxs(ae.Fragment,{children:[ae.jsx("div",{draggable:A,children:ae.jsx(zR,{className:j?`focused ${fr(b)?"draggable":""}`:null,src:l,altText:t,width:e,height:s,maxWidth:r,imageRef:u,startCrop:E,setStartCrop:S,isFocused:j,nodeKey:n})}),a&&ae.jsx("div",{className:"image-caption-container",children:ae.jsx(xC,{initialEditor:c,children:ae.jsx(qp,{contentEditable:ae.jsx(Od,{className:"ImageNode__contentEditable"}),placeholder:ae.jsx(Nd,{className:"ImageNode__placeholder",children:"Enter a caption..."}),ErrorBoundary:Dl})})}),!E&&o&&fr(b)&&j&&ae.jsx(RR,{showCaption:a,setShowCaption:F,editor:v,buttonRef:d,maxWidth:r,onResizeStart:E?()=>{}:B,onResizeEnd:E?()=>{}:I,enableCaptions:i,imageRef:u})]})})}const HR=Object.freeze(Object.defineProperty({__proto__:null,RIGHT_CLICK_IMAGE_COMMAND:E0,default:UR},Symbol.toStringTag,{value:"Module"})),QD="",XD="";function qR(l,t){const n=l.getRangeAt(0);let e;if(l.anchorNode===t){let s=t;for(;s.firstElementChild!=null;)s=s.firstElementChild;e=s.getBoundingClientRect()}else e=n.getBoundingClientRect();return e}const WR=10,JR=5;function VR(l,t,n,e=!1,s=WR,r=JR){const o=n.parentElement;if(l===null||!o){t.style.opacity="0",t.style.transform="translate(-10000px, -10000px)";return}const a=t.getBoundingClientRect(),c=n.getBoundingClientRect(),i=o.getBoundingClientRect();let u=l.top-a.height-s,d=l.left-r;u<i.top&&(u+=a.height+l.height+s*(e?9:2)),d+a.width>i.right&&(d=i.right-a.width-r),u-=c.top,d-=c.left,t.style.opacity="1",t.style.transform=`translate(${d}px, ${u}px)`}function KR({editor:l,anchorElem:t,isLink:n,isBold:e,isItalic:s,isUnderline:r,isCode:o,isStrikethrough:a,isSubscript:c,isSuperscript:i}){const u=he.useRef(null),d=he.useCallback(()=>{n?l.dispatchCommand(Pa,null):l.dispatchCommand(Pa,"https://")},[l,n]),f=()=>{l.dispatchCommand(x0,void 0)};function p(g){if(u!=null&&u.current&&(g.buttons===1||g.buttons===3)&&u.current.style.pointerEvents!=="none"){const v=g.clientX,b=g.clientY,_=document.elementFromPoint(v,b);u.current.contains(_)||(u.current.style.pointerEvents="none")}}function h(g){u!=null&&u.current&&u.current.style.pointerEvents!=="auto"&&(u.current.style.pointerEvents="auto")}he.useEffect(()=>{if(u!=null&&u.current)return document.addEventListener("mousemove",p),document.addEventListener("mouseup",h),()=>{document.removeEventListener("mousemove",p),document.removeEventListener("mouseup",h)}},[u]);const m=he.useCallback(()=>{const g=jt(),v=u.current,b=window.getSelection();if(v===null)return;const _=l.getRootElement();if(g!==null&&b!==null&&!b.isCollapsed&&_!==null&&_.contains(b.anchorNode)){const E=qR(b,_);VR(E,v,t,n)}},[l,t,n]);return he.useEffect(()=>{const g=t.parentElement,v=()=>{l.getEditorState().read(()=>{m()})};return window.addEventListener("resize",v),g&&g.addEventListener("scroll",v),()=>{window.removeEventListener("resize",v),g&&g.removeEventListener("scroll",v)}},[l,m,t]),he.useEffect(()=>(l.getEditorState().read(()=>{m()}),xr(l.registerUpdateListener(({editorState:g})=>{g.read(()=>{m()})}),l.registerCommand(ai,()=>(m(),!1),Jn))),[l,m]),ae.jsxs("div",{ref:u,className:"floating-text-format-popup",children:[l.isEditable()&&ae.jsxs(ae.Fragment,{children:[ae.jsx("button",{type:"button",onClick:()=>{l.dispatchCommand(Yr,"bold")},className:"popup-item spaced "+(e?"active":""),"aria-label":"Format text as bold",children:ae.jsx("i",{className:"format bold"})}),ae.jsx("button",{type:"button",onClick:()=>{l.dispatchCommand(Yr,"italic")},className:"popup-item spaced "+(s?"active":""),"aria-label":"Format text as italics",children:ae.jsx("i",{className:"format italic"})}),ae.jsx("button",{type:"button",onClick:()=>{l.dispatchCommand(Yr,"underline")},className:"popup-item spaced "+(r?"active":""),"aria-label":"Format text to underlined",children:ae.jsx("i",{className:"format underline"})}),ae.jsx("button",{type:"button",onClick:()=>{l.dispatchCommand(Yr,"strikethrough")},className:"popup-item spaced "+(a?"active":""),"aria-label":"Format text with a strikethrough",children:ae.jsx("i",{className:"format strikethrough"})}),ae.jsx("button",{type:"button",onClick:()=>{l.dispatchCommand(Yr,"subscript")},className:"popup-item spaced "+(c?"active":""),title:"Subscript","aria-label":"Format Subscript",children:ae.jsx("i",{className:"format subscript"})}),ae.jsx("button",{type:"button",onClick:()=>{l.dispatchCommand(Yr,"superscript")},className:"popup-item spaced "+(i?"active":""),title:"Superscript","aria-label":"Format Superscript",children:ae.jsx("i",{className:"format superscript"})}),ae.jsx("button",{type:"button",onClick:()=>{l.dispatchCommand(Yr,"code")},className:"popup-item spaced "+(o?"active":""),"aria-label":"Insert code block",children:ae.jsx("i",{className:"format code"})}),ae.jsx("button",{type:"button",onClick:d,className:"popup-item spaced "+(n?"active":""),"aria-label":"Insert link",children:ae.jsx("i",{className:"format link"})})]}),ae.jsx("button",{type:"button",onClick:f,className:"popup-item spaced insert-comment","aria-label":"Insert comment",children:ae.jsx("i",{className:"format add-comment"})})]})}function GR(l,t){const[n,e]=he.useState(!1),[s,r]=he.useState(!1),[o,a]=he.useState(!1),[c,i]=he.useState(!1),[u,d]=he.useState(!1),[f,p]=he.useState(!1),[h,m]=he.useState(!1),[g,v]=he.useState(!1),[b,_]=he.useState(!1),E=he.useCallback(()=>{l.getEditorState().read(()=>{if(l.isComposing())return;const S=jt(),w=window.getSelection(),y=l.getRootElement();if(w!==null&&(!St(S)||y===null||!y.contains(w.anchorNode))){e(!1);return}if(!St(S))return;const x=Fw(S);a(S.hasFormat("bold")),i(S.hasFormat("italic")),d(S.hasFormat("underline")),p(S.hasFormat("strikethrough")),m(S.hasFormat("subscript")),v(S.hasFormat("superscript")),_(S.hasFormat("code"));const C=x.getParent();ti(C)||ti(x)?r(!0):r(!1),!Im(S.anchor.getNode())&&S.getTextContent()!==""?e(Wt(x)||wr(x)):e(!1);const T=S.getTextContent().replace(/\n/g,"");if(!S.isCollapsed()&&T===""){e(!1);return}})},[l]);return he.useEffect(()=>(document.addEventListener("selectionchange",E),()=>{document.removeEventListener("selectionchange",E)}),[E]),he.useEffect(()=>xr(l.registerUpdateListener(()=>{E()}),l.registerRootListener(()=>{l.getRootElement()===null&&e(!1)})),[l,E]),n?ao.createPortal(ae.jsx(KR,{editor:l,anchorElem:t,isLink:s,isBold:o,isItalic:c,isStrikethrough:f,isSubscript:h,isSuperscript:g,isUnderline:u,isCode:b}),t):null}function $R({anchorElem:l=document.body}){const[t]=yn();return GR(t,l)}const e4="";function YR({children:l,label:t,className:n,...e}){return ae.jsxs("div",{className:"Input__wrapper",children:[ae.jsx("label",{style:{marginTop:"-1em"},className:"Input__label",children:t}),ae.jsx("select",{...e,className:n||"select",children:l})]})}const CC=new Set;function ZR(l){if(!CC.has(l))throw new Promise(t=>{const n=new Image;n.src=l,n.onload=()=>{CC.add(l),t(null)}})}function QR({altText:l,className:t,imageRef:n,src:e,width:s,height:r,position:o}){return ZR(e),ae.jsx("img",{className:t||void 0,src:e,alt:l,ref:n,"data-position":o,style:{display:"block",height:r,width:s},draggable:"false"})}function jC({activeEditor:l,nodeKey:t,onClose:n}){const s=l.getEditorState().read(()=>Fn(t)),[r,o]=he.useState(s.getAltText()),[a,c]=he.useState(s.getShowCaption()),[i,u]=he.useState(s.getPosition()),d=h=>{c(h.target.checked)},f=h=>{u(h.target.value)},p=()=>{const h={altText:r,position:i,showCaption:a};s&&l.update(()=>{s.update(h)}),n()};return ae.jsxs(ae.Fragment,{children:[ae.jsx("div",{style:{marginBottom:"1em"},children:ae.jsx(Ac,{label:"Alt Text",placeholder:"Descriptive alternative text",onChange:o,value:r,"data-test-id":"image-modal-alt-text-input"})}),ae.jsxs(YR,{style:{marginBottom:"1em",width:"208px"},value:i,label:"Position",name:"position",id:"position-select",onChange:f,children:[ae.jsx("option",{value:"left",children:"Left"}),ae.jsx("option",{value:"right",children:"Right"}),ae.jsx("option",{value:"full",children:"Full Width"})]}),ae.jsxs("div",{className:"Input__wrapper",children:[ae.jsx("input",{id:"caption",type:"checkbox",checked:a,onChange:d}),ae.jsx("label",{htmlFor:"caption",children:"Show Caption"})]}),ae.jsx(Mp,{children:ae.jsx(Fi,{"data-test-id":"image-modal-file-upload-btn",onClick:()=>p(),children:"Confirm"})})]})}function XR({src:l,altText:t,nodeKey:n,width:e,height:s,showCaption:r,caption:o,position:a}){const[c,i]=La(),u=he.useRef(null),d=he.useRef(null),[f,p,h]=Ec(n),[m]=yn(),[g,v]=he.useState(null),b=he.useRef(null),_=he.useCallback(x=>{if(f&&fr(jt())){x.preventDefault();const T=Fn(n);if(wT(T))return T.remove(),!0}return!1},[f,n]),E=he.useCallback(x=>{const C=jt(),T=d.current;if(f&&fr(C)&&C.getNodes().length===1){if(r)return _r(null),x.preventDefault(),o.focus(),!0;if(T!==null&&T!==document.activeElement)return x.preventDefault(),T.focus(),!0}return!1},[o,f,r]),S=he.useCallback(x=>b.current===o||d.current===x.target?(_r(null),m.update(()=>{p(!0);const C=m.getRootElement();C!==null&&C.focus()}),!0):!1,[o,m,p]);he.useEffect(()=>{let x=!0;const C=xr(m.registerUpdateListener(({editorState:T})=>{x&&v(T.read(()=>jt()))}),m.registerCommand(ai,(T,R)=>(b.current=R,!1),Jn),m.registerCommand(ba,T=>{const R=T;return R.target===u.current?(R.shiftKey?p(!f):(h(),p(!0)),!0):!1},Jn),m.registerCommand(ac,T=>T.target===u.current?(T.preventDefault(),!0):!1,Jn),m.registerCommand(Qi,_,Jn),m.registerCommand(Zi,_,Jn),m.registerCommand(Ls,E,Jn),m.registerCommand(Fs,S,Jn));return()=>{x=!1,C()}},[h,m,f,n,_,E,S,p]);const w=f&&fr(g),y=f;return ae.jsxs(he.Suspense,{fallback:null,children:[ae.jsxs(ae.Fragment,{children:[ae.jsxs("div",{draggable:w,children:[ae.jsx("button",{className:"image-edit-button",ref:d,onClick:()=>{i("Update Inline Image",x=>ae.jsx(jC,{activeEditor:m,nodeKey:n,onClose:x}))},children:"Edit"}),ae.jsx(QR,{className:y?`focused ${fr(g)?"draggable":""}`:null,src:l,altText:t,imageRef:u,width:e,height:s,position:a})]}),r&&ae.jsx("div",{className:"image-caption-container",children:ae.jsxs(xC,{initialEditor:o,children:[ae.jsx(Dp,{}),ae.jsx(fy,{}),ae.jsx($R,{}),ae.jsx(qp,{contentEditable:ae.jsx(Od,{className:"InlineImageNode__contentEditable"}),placeholder:ae.jsx(Nd,{className:"InlineImageNode__placeholder",children:"Enter a caption..."}),ErrorBoundary:Dl})]})})]}),c]})}const eD=Object.freeze(Object.defineProperty({__proto__:null,UpdateInlineImageDialog:jC,default:XR},Symbol.toStringTag,{value:"Module"})),t4="";function tD(l){return l.reduce((t,n)=>t+n.votes.length,0)}function nD({option:l,index:t,options:n,totalVotes:e,withPollNode:s}){const{clientID:r}=Pd(),o=he.useRef(null),a=l.votes,i=a.indexOf(r)!==-1,u=a.length,d=l.text;return ae.jsxs("div",{className:"PollNode__optionContainer",children:[ae.jsx("div",{className:ny("PollNode__optionCheckboxWrapper",i&&"PollNode__optionCheckboxChecked"),children:ae.jsx("input",{ref:o,className:"PollNode__optionCheckbox",type:"checkbox",onChange:f=>{s(p=>{p.toggleVote(l,r)})},checked:i})}),ae.jsxs("div",{className:"PollNode__optionInputWrapper",children:[ae.jsx("div",{className:"PollNode__optionInputVotes",style:{width:`${u===0?0:u/e*100}%`}}),ae.jsx("span",{className:"PollNode__optionInputVotesCount",children:u>0&&(u===1?"1 vote":`${u} votes`)}),ae.jsx("input",{className:"PollNode__optionInput",type:"text",value:d,onChange:f=>{const p=f.target,h=p.value,m=p.selectionStart,g=p.selectionEnd;s(v=>{v.setOptionText(l,h)},()=>{p.selectionStart=m,p.selectionEnd=g})},placeholder:`Option ${t+1}`})]}),ae.jsx("button",{disabled:n.length<3,className:ny("PollNode__optionDelete",n.length<3&&"PollNode__optionDeleteDisabled"),"aria-label":"Remove",onClick:()=>{s(f=>{f.deleteOption(l)})}})]})}function rD({question:l,options:t,nodeKey:n}){const[e]=yn(),s=he.useMemo(()=>tD(t),[t]),[r,o,a]=Ec(n),[c,i]=he.useState(null),u=he.useRef(null),d=he.useCallback(m=>{if(r&&fr(jt())){m.preventDefault();const v=Fn(n);if(k1(v))return v.remove(),!0}return!1},[r,n]);he.useEffect(()=>xr(e.registerUpdateListener(({editorState:m})=>{i(m.read(()=>jt()))}),e.registerCommand(ba,m=>{const g=m;return g.target===u.current?(g.shiftKey||a(),o(!r),!0):!1},Jn),e.registerCommand(Qi,d,Jn),e.registerCommand(Zi,d,Jn)),[a,e,r,n,d,o]);const f=(m,g)=>{e.update(()=>{const v=Fn(n);k1(v)&&m(v)},{onUpdate:g})},p=()=>{f(m=>{m.addOption(NT())})},h=fr(c)&&r;return ae.jsx("div",{className:`PollNode__container ${h?"focused":""}`,ref:u,children:ae.jsxs("div",{className:"PollNode__inner",children:[ae.jsx("h2",{className:"PollNode__heading",children:l}),t.map((m,g)=>{const v=m.uid;return ae.jsx(nD,{withPollNode:f,option:m,index:g,options:t,totalVotes:s},v)}),ae.jsx("div",{className:"PollNode__footer",children:ae.jsx(Fi,{onClick:p,small:!0,children:"Add Option"})})]})})}const oD=Object.freeze(Object.defineProperty({__proto__:null,default:rD},Symbol.toStringTag,{value:"Module"})),iD=Object.freeze(Object.defineProperty({__proto__:null,default:[{description:"grinning face",emoji:"😀",category:"Smileys & Emotion",aliases:["grinning"],tags:["smile","happy"],unicode_version:"6.1",ios_version:"6.0"},{emoji:"😃",description:"grinning face with big eyes",category:"Smileys & Emotion",aliases:["smiley"],tags:["happy","joy","haha"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"😄",description:"grinning face with smiling eyes",category:"Smileys & Emotion",aliases:["smile"],tags:["happy","joy","laugh","pleased"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"😁",description:"beaming face with smiling eyes",category:"Smileys & Emotion",aliases:["grin"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"😆",description:"grinning squinting face",category:"Smileys & Emotion",aliases:["laughing","satisfied"],tags:["happy","haha"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"😅",description:"grinning face with sweat",category:"Smileys & Emotion",aliases:["sweat_smile"],tags:["hot"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🤣",description:"rolling on the floor laughing",category:"Smileys & Emotion",aliases:["rofl"],tags:["lol","laughing"],unicode_version:"9.0",ios_version:"10.2"},{emoji:"😂",description:"face with tears of joy",category:"Smileys & Emotion",aliases:["joy"],tags:["tears"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🙂",description:"slightly smiling face",category:"Smileys & Emotion",aliases:["slightly_smiling_face"],tags:[],unicode_version:"7.0",ios_version:"9.1"},{emoji:"🙃",description:"upside-down face",category:"Smileys & Emotion",aliases:["upside_down_face"],tags:[],unicode_version:"8.0",ios_version:"9.1"},{emoji:"😉",description:"winking face",category:"Smileys & Emotion",aliases:["wink"],tags:["flirt"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"😊",description:"smiling face with smiling eyes",category:"Smileys & Emotion",aliases:["blush"],tags:["proud"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"😇",description:"smiling face with halo",category:"Smileys & Emotion",aliases:["innocent"],tags:["angel"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🥰",description:"smiling face with hearts",category:"Smileys & Emotion",aliases:["smiling_face_with_three_hearts"],tags:["love"],unicode_version:"11.0",ios_version:"12.1"},{emoji:"😍",description:"smiling face with heart-eyes",category:"Smileys & Emotion",aliases:["heart_eyes"],tags:["love","crush"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🤩",description:"star-struck",category:"Smileys & Emotion",aliases:["star_struck"],tags:["eyes"],unicode_version:"11.0",ios_version:"12.1"},{emoji:"😘",description:"face blowing a kiss",category:"Smileys & Emotion",aliases:["kissing_heart"],tags:["flirt"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"😗",description:"kissing face",category:"Smileys & Emotion",aliases:["kissing"],tags:[],unicode_version:"6.1",ios_version:"6.0"},{emoji:"☺️",description:"smiling face",category:"Smileys & Emotion",aliases:["relaxed"],tags:["blush","pleased"],unicode_version:"",ios_version:"6.0"},{emoji:"😚",description:"kissing face with closed eyes",category:"Smileys & Emotion",aliases:["kissing_closed_eyes"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"😙",description:"kissing face with smiling eyes",category:"Smileys & Emotion",aliases:["kissing_smiling_eyes"],tags:[],unicode_version:"6.1",ios_version:"6.0"},{emoji:"🥲",description:"smiling face with tear",category:"Smileys & Emotion",aliases:["smiling_face_with_tear"],tags:[],unicode_version:"13.0",ios_version:"14.0"},{emoji:"😋",description:"face savoring food",category:"Smileys & Emotion",aliases:["yum"],tags:["tongue","lick"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"😛",description:"face with tongue",category:"Smileys & Emotion",aliases:["stuck_out_tongue"],tags:[],unicode_version:"6.1",ios_version:"6.0"},{emoji:"😜",description:"winking face with tongue",category:"Smileys & Emotion",aliases:["stuck_out_tongue_winking_eye"],tags:["prank","silly"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🤪",description:"zany face",category:"Smileys & Emotion",aliases:["zany_face"],tags:["goofy","wacky"],unicode_version:"11.0",ios_version:"12.1"},{emoji:"😝",description:"squinting face with tongue",category:"Smileys & Emotion",aliases:["stuck_out_tongue_closed_eyes"],tags:["prank"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🤑",description:"money-mouth face",category:"Smileys & Emotion",aliases:["money_mouth_face"],tags:["rich"],unicode_version:"8.0",ios_version:"9.1"},{emoji:"🤗",description:"hugging face",category:"Smileys & Emotion",aliases:["hugs"],tags:[],unicode_version:"8.0",ios_version:"9.1"},{emoji:"🤭",description:"face with hand over mouth",category:"Smileys & Emotion",aliases:["hand_over_mouth"],tags:["quiet","whoops"],unicode_version:"11.0",ios_version:"12.1"},{emoji:"🤫",description:"shushing face",category:"Smileys & Emotion",aliases:["shushing_face"],tags:["silence","quiet"],unicode_version:"11.0",ios_version:"12.1"},{emoji:"🤔",description:"thinking face",category:"Smileys & Emotion",aliases:["thinking"],tags:[],unicode_version:"8.0",ios_version:"9.1"},{emoji:"🤐",description:"zipper-mouth face",category:"Smileys & Emotion",aliases:["zipper_mouth_face"],tags:["silence","hush"],unicode_version:"8.0",ios_version:"9.1"},{emoji:"🤨",description:"face with raised eyebrow",category:"Smileys & Emotion",aliases:["raised_eyebrow"],tags:["suspicious"],unicode_version:"11.0",ios_version:"12.1"},{emoji:"😐",description:"neutral face",category:"Smileys & Emotion",aliases:["neutral_face"],tags:["meh"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"😑",description:"expressionless face",category:"Smileys & Emotion",aliases:["expressionless"],tags:[],unicode_version:"6.1",ios_version:"6.0"},{emoji:"😶",description:"face without mouth",category:"Smileys & Emotion",aliases:["no_mouth"],tags:["mute","silence"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"😶🌫️",description:"face in clouds",category:"Smileys & Emotion",aliases:["face_in_clouds"],tags:[],unicode_version:"13.1",ios_version:"14.0"},{emoji:"😏",description:"smirking face",category:"Smileys & Emotion",aliases:["smirk"],tags:["smug"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"😒",description:"unamused face",category:"Smileys & Emotion",aliases:["unamused"],tags:["meh"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🙄",description:"face with rolling eyes",category:"Smileys & Emotion",aliases:["roll_eyes"],tags:[],unicode_version:"8.0",ios_version:"9.1"},{emoji:"😬",description:"grimacing face",category:"Smileys & Emotion",aliases:["grimacing"],tags:[],unicode_version:"6.1",ios_version:"6.0"},{emoji:"😮💨",description:"face exhaling",category:"Smileys & Emotion",aliases:["face_exhaling"],tags:[],unicode_version:"13.1",ios_version:"14.0"},{emoji:"🤥",description:"lying face",category:"Smileys & Emotion",aliases:["lying_face"],tags:["liar"],unicode_version:"9.0",ios_version:"10.2"},{emoji:"😌",description:"relieved face",category:"Smileys & Emotion",aliases:["relieved"],tags:["whew"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"😔",description:"pensive face",category:"Smileys & Emotion",aliases:["pensive"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"😪",description:"sleepy face",category:"Smileys & Emotion",aliases:["sleepy"],tags:["tired"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🤤",description:"drooling face",category:"Smileys & Emotion",aliases:["drooling_face"],tags:[],unicode_version:"9.0",ios_version:"10.2"},{emoji:"😴",description:"sleeping face",category:"Smileys & Emotion",aliases:["sleeping"],tags:["zzz"],unicode_version:"6.1",ios_version:"6.0"},{emoji:"😷",description:"face with medical mask",category:"Smileys & Emotion",aliases:["mask"],tags:["sick","ill"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🤒",description:"face with thermometer",category:"Smileys & Emotion",aliases:["face_with_thermometer"],tags:["sick"],unicode_version:"8.0",ios_version:"9.1"},{emoji:"🤕",description:"face with head-bandage",category:"Smileys & Emotion",aliases:["face_with_head_bandage"],tags:["hurt"],unicode_version:"8.0",ios_version:"9.1"},{emoji:"🤢",description:"nauseated face",category:"Smileys & Emotion",aliases:["nauseated_face"],tags:["sick","barf","disgusted"],unicode_version:"9.0",ios_version:"10.2"},{emoji:"🤮",description:"face vomiting",category:"Smileys & Emotion",aliases:["vomiting_face"],tags:["barf","sick"],unicode_version:"11.0",ios_version:"12.1"},{emoji:"🤧",description:"sneezing face",category:"Smileys & Emotion",aliases:["sneezing_face"],tags:["achoo","sick"],unicode_version:"9.0",ios_version:"10.2"},{emoji:"🥵",description:"hot face",category:"Smileys & Emotion",aliases:["hot_face"],tags:["heat","sweating"],unicode_version:"11.0",ios_version:"12.1"},{emoji:"🥶",description:"cold face",category:"Smileys & Emotion",aliases:["cold_face"],tags:["freezing","ice"],unicode_version:"11.0",ios_version:"12.1"},{emoji:"🥴",description:"woozy face",category:"Smileys & Emotion",aliases:["woozy_face"],tags:["groggy"],unicode_version:"11.0",ios_version:"12.1"},{emoji:"😵",description:"knocked-out face",category:"Smileys & Emotion",aliases:["dizzy_face"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"😵💫",description:"face with spiral eyes",category:"Smileys & Emotion",aliases:["face_with_spiral_eyes"],tags:[],unicode_version:"13.1",ios_version:"14.0"},{emoji:"🤯",description:"exploding head",category:"Smileys & Emotion",aliases:["exploding_head"],tags:["mind","blown"],unicode_version:"11.0",ios_version:"12.1"},{emoji:"🤠",description:"cowboy hat face",category:"Smileys & Emotion",aliases:["cowboy_hat_face"],tags:[],unicode_version:"9.0",ios_version:"10.2"},{emoji:"🥳",description:"partying face",category:"Smileys & Emotion",aliases:["partying_face"],tags:["celebration","birthday"],unicode_version:"11.0",ios_version:"12.1"},{emoji:"🥸",description:"disguised face",category:"Smileys & Emotion",aliases:["disguised_face"],tags:[],unicode_version:"13.0",ios_version:"14.0"},{emoji:"😎",description:"smiling face with sunglasses",category:"Smileys & Emotion",aliases:["sunglasses"],tags:["cool"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🤓",description:"nerd face",category:"Smileys & Emotion",aliases:["nerd_face"],tags:["geek","glasses"],unicode_version:"8.0",ios_version:"9.1"},{emoji:"🧐",description:"face with monocle",category:"Smileys & Emotion",aliases:["monocle_face"],tags:[],unicode_version:"11.0",ios_version:"12.1"},{emoji:"😕",description:"confused face",category:"Smileys & Emotion",aliases:["confused"],tags:[],unicode_version:"6.1",ios_version:"6.0"},{emoji:"😟",description:"worried face",category:"Smileys & Emotion",aliases:["worried"],tags:["nervous"],unicode_version:"6.1",ios_version:"6.0"},{emoji:"🙁",description:"slightly frowning face",category:"Smileys & Emotion",aliases:["slightly_frowning_face"],tags:[],unicode_version:"7.0",ios_version:"9.1"},{emoji:"☹️",description:"frowning face",category:"Smileys & Emotion",aliases:["frowning_face"],tags:[],unicode_version:"",ios_version:"9.1"},{emoji:"😮",description:"face with open mouth",category:"Smileys & Emotion",aliases:["open_mouth"],tags:["surprise","impressed","wow"],unicode_version:"6.1",ios_version:"6.0"},{emoji:"😯",description:"hushed face",category:"Smileys & Emotion",aliases:["hushed"],tags:["silence","speechless"],unicode_version:"6.1",ios_version:"6.0"},{emoji:"😲",description:"astonished face",category:"Smileys & Emotion",aliases:["astonished"],tags:["amazed","gasp"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"😳",description:"flushed face",category:"Smileys & Emotion",aliases:["flushed"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🥺",description:"pleading face",category:"Smileys & Emotion",aliases:["pleading_face"],tags:["puppy","eyes"],unicode_version:"11.0",ios_version:"12.1"},{emoji:"😦",description:"frowning face with open mouth",category:"Smileys & Emotion",aliases:["frowning"],tags:[],unicode_version:"6.1",ios_version:"6.0"},{emoji:"😧",description:"anguished face",category:"Smileys & Emotion",aliases:["anguished"],tags:["stunned"],unicode_version:"6.1",ios_version:"6.0"},{emoji:"😨",description:"fearful face",category:"Smileys & Emotion",aliases:["fearful"],tags:["scared","shocked","oops"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"😰",description:"anxious face with sweat",category:"Smileys & Emotion",aliases:["cold_sweat"],tags:["nervous"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"😥",description:"sad but relieved face",category:"Smileys & Emotion",aliases:["disappointed_relieved"],tags:["phew","sweat","nervous"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"😢",description:"crying face",category:"Smileys & Emotion",aliases:["cry"],tags:["sad","tear"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"😭",description:"loudly crying face",category:"Smileys & Emotion",aliases:["sob"],tags:["sad","cry","bawling"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"😱",description:"face screaming in fear",category:"Smileys & Emotion",aliases:["scream"],tags:["horror","shocked"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"😖",description:"confounded face",category:"Smileys & Emotion",aliases:["confounded"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"😣",description:"persevering face",category:"Smileys & Emotion",aliases:["persevere"],tags:["struggling"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"😞",description:"disappointed face",category:"Smileys & Emotion",aliases:["disappointed"],tags:["sad"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"😓",description:"downcast face with sweat",category:"Smileys & Emotion",aliases:["sweat"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"😩",description:"weary face",category:"Smileys & Emotion",aliases:["weary"],tags:["tired"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"😫",description:"tired face",category:"Smileys & Emotion",aliases:["tired_face"],tags:["upset","whine"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🥱",description:"yawning face",category:"Smileys & Emotion",aliases:["yawning_face"],tags:[],unicode_version:"12.0",ios_version:"13.0"},{emoji:"😤",description:"face with steam from nose",category:"Smileys & Emotion",aliases:["triumph"],tags:["smug"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"😡",description:"pouting face",category:"Smileys & Emotion",aliases:["rage","pout"],tags:["angry"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"😠",description:"angry face",category:"Smileys & Emotion",aliases:["angry"],tags:["mad","annoyed"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🤬",description:"face with symbols on mouth",category:"Smileys & Emotion",aliases:["cursing_face"],tags:["foul"],unicode_version:"11.0",ios_version:"12.1"},{emoji:"😈",description:"smiling face with horns",category:"Smileys & Emotion",aliases:["smiling_imp"],tags:["devil","evil","horns"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"👿",description:"angry face with horns",category:"Smileys & Emotion",aliases:["imp"],tags:["angry","devil","evil","horns"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"💀",description:"skull",category:"Smileys & Emotion",aliases:["skull"],tags:["dead","danger","poison"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"☠️",description:"skull and crossbones",category:"Smileys & Emotion",aliases:["skull_and_crossbones"],tags:["danger","pirate"],unicode_version:"",ios_version:"9.1"},{emoji:"💩",description:"pile of poo",category:"Smileys & Emotion",aliases:["hankey","poop","shit"],tags:["crap"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🤡",description:"clown face",category:"Smileys & Emotion",aliases:["clown_face"],tags:[],unicode_version:"9.0",ios_version:"10.2"},{emoji:"👹",description:"ogre",category:"Smileys & Emotion",aliases:["japanese_ogre"],tags:["monster"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"👺",description:"goblin",category:"Smileys & Emotion",aliases:["japanese_goblin"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"👻",description:"ghost",category:"Smileys & Emotion",aliases:["ghost"],tags:["halloween"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"👽",description:"alien",category:"Smileys & Emotion",aliases:["alien"],tags:["ufo"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"👾",description:"alien monster",category:"Smileys & Emotion",aliases:["space_invader"],tags:["game","retro"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🤖",description:"robot",category:"Smileys & Emotion",aliases:["robot"],tags:[],unicode_version:"8.0",ios_version:"9.1"},{emoji:"😺",description:"grinning cat",category:"Smileys & Emotion",aliases:["smiley_cat"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"😸",description:"grinning cat with smiling eyes",category:"Smileys & Emotion",aliases:["smile_cat"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"😹",description:"cat with tears of joy",category:"Smileys & Emotion",aliases:["joy_cat"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"😻",description:"smiling cat with heart-eyes",category:"Smileys & Emotion",aliases:["heart_eyes_cat"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"😼",description:"cat with wry smile",category:"Smileys & Emotion",aliases:["smirk_cat"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"😽",description:"kissing cat",category:"Smileys & Emotion",aliases:["kissing_cat"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🙀",description:"weary cat",category:"Smileys & Emotion",aliases:["scream_cat"],tags:["horror"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"😿",description:"crying cat",category:"Smileys & Emotion",aliases:["crying_cat_face"],tags:["sad","tear"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"😾",description:"pouting cat",category:"Smileys & Emotion",aliases:["pouting_cat"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🙈",description:"see-no-evil monkey",category:"Smileys & Emotion",aliases:["see_no_evil"],tags:["monkey","blind","ignore"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🙉",description:"hear-no-evil monkey",category:"Smileys & Emotion",aliases:["hear_no_evil"],tags:["monkey","deaf"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🙊",description:"speak-no-evil monkey",category:"Smileys & Emotion",aliases:["speak_no_evil"],tags:["monkey","mute","hush"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"💋",description:"kiss mark",category:"Smileys & Emotion",aliases:["kiss"],tags:["lipstick"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"💌",description:"love letter",category:"Smileys & Emotion",aliases:["love_letter"],tags:["email","envelope"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"💘",description:"heart with arrow",category:"Smileys & Emotion",aliases:["cupid"],tags:["love","heart"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"💝",description:"heart with ribbon",category:"Smileys & Emotion",aliases:["gift_heart"],tags:["chocolates"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"💖",description:"sparkling heart",category:"Smileys & Emotion",aliases:["sparkling_heart"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"💗",description:"growing heart",category:"Smileys & Emotion",aliases:["heartpulse"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"💓",description:"beating heart",category:"Smileys & Emotion",aliases:["heartbeat"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"💞",description:"revolving hearts",category:"Smileys & Emotion",aliases:["revolving_hearts"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"💕",description:"two hearts",category:"Smileys & Emotion",aliases:["two_hearts"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"💟",description:"heart decoration",category:"Smileys & Emotion",aliases:["heart_decoration"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"❣️",description:"heart exclamation",category:"Smileys & Emotion",aliases:["heavy_heart_exclamation"],tags:[],unicode_version:"",ios_version:"9.1"},{emoji:"💔",description:"broken heart",category:"Smileys & Emotion",aliases:["broken_heart"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"❤️🔥",description:"heart on fire",category:"Smileys & Emotion",aliases:["heart_on_fire"],tags:[],unicode_version:"13.1",ios_version:"14.0"},{emoji:"❤️🩹",description:"mending heart",category:"Smileys & Emotion",aliases:["mending_heart"],tags:[],unicode_version:"13.1",ios_version:"14.0"},{emoji:"❤️",description:"red heart",category:"Smileys & Emotion",aliases:["heart"],tags:["love"],unicode_version:"",ios_version:"6.0"},{emoji:"🧡",description:"orange heart",category:"Smileys & Emotion",aliases:["orange_heart"],tags:[],unicode_version:"11.0",ios_version:"12.1"},{emoji:"💛",description:"yellow heart",category:"Smileys & Emotion",aliases:["yellow_heart"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"💚",description:"green heart",category:"Smileys & Emotion",aliases:["green_heart"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"💙",description:"blue heart",category:"Smileys & Emotion",aliases:["blue_heart"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"💜",description:"purple heart",category:"Smileys & Emotion",aliases:["purple_heart"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🤎",description:"brown heart",category:"Smileys & Emotion",aliases:["brown_heart"],tags:[],unicode_version:"12.0",ios_version:"13.0"},{emoji:"🖤",description:"black heart",category:"Smileys & Emotion",aliases:["black_heart"],tags:[],unicode_version:"9.0",ios_version:"10.2"},{emoji:"🤍",description:"white heart",category:"Smileys & Emotion",aliases:["white_heart"],tags:[],unicode_version:"12.0",ios_version:"13.0"},{emoji:"💯",description:"hundred points",category:"Smileys & Emotion",aliases:["100"],tags:["score","perfect"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"💢",description:"anger symbol",category:"Smileys & Emotion",aliases:["anger"],tags:["angry"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"💥",description:"collision",category:"Smileys & Emotion",aliases:["boom","collision"],tags:["explode"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"💫",description:"dizzy",category:"Smileys & Emotion",aliases:["dizzy"],tags:["star"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"💦",description:"sweat droplets",category:"Smileys & Emotion",aliases:["sweat_drops"],tags:["water","workout"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"💨",description:"dashing away",category:"Smileys & Emotion",aliases:["dash"],tags:["wind","blow","fast"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🕳️",description:"hole",category:"Smileys & Emotion",aliases:["hole"],tags:[],unicode_version:"7.0",ios_version:"9.1"},{emoji:"💣",description:"bomb",category:"Smileys & Emotion",aliases:["bomb"],tags:["boom"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"💬",description:"speech balloon",category:"Smileys & Emotion",aliases:["speech_balloon"],tags:["comment"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"👁️🗨️",description:"eye in speech bubble",category:"Smileys & Emotion",aliases:["eye_speech_bubble"],tags:[],unicode_version:"11.0",ios_version:"12.1"},{emoji:"🗨️",description:"left speech bubble",category:"Smileys & Emotion",aliases:["left_speech_bubble"],tags:[],unicode_version:"11.0",ios_version:"12.1"},{emoji:"🗯️",description:"right anger bubble",category:"Smileys & Emotion",aliases:["right_anger_bubble"],tags:[],unicode_version:"7.0",ios_version:"9.1"},{emoji:"💭",description:"thought balloon",category:"Smileys & Emotion",aliases:["thought_balloon"],tags:["thinking"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"💤",description:"zzz",category:"Smileys & Emotion",aliases:["zzz"],tags:["sleeping"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"👋",description:"waving hand",category:"People & Body",aliases:["wave"],tags:["goodbye"],unicode_version:"6.0",ios_version:"6.0",skin_tones:!0},{emoji:"🤚",description:"raised back of hand",category:"People & Body",aliases:["raised_back_of_hand"],tags:[],unicode_version:"9.0",ios_version:"10.2",skin_tones:!0},{emoji:"🖐️",description:"hand with fingers splayed",category:"People & Body",aliases:["raised_hand_with_fingers_splayed"],tags:[],unicode_version:"7.0",ios_version:"9.1",skin_tones:!0},{emoji:"✋",description:"raised hand",category:"People & Body",aliases:["hand","raised_hand"],tags:["highfive","stop"],unicode_version:"6.0",ios_version:"6.0",skin_tones:!0},{emoji:"🖖",description:"vulcan salute",category:"People & Body",aliases:["vulcan_salute"],tags:["prosper","spock"],unicode_version:"7.0",ios_version:"8.3",skin_tones:!0},{emoji:"👌",description:"OK hand",category:"People & Body",aliases:["ok_hand"],tags:[],unicode_version:"6.0",ios_version:"6.0",skin_tones:!0},{emoji:"🤌",description:"pinched fingers",category:"People & Body",aliases:["pinched_fingers"],tags:[],unicode_version:"13.0",ios_version:"14.0",skin_tones:!0},{emoji:"🤏",description:"pinching hand",category:"People & Body",aliases:["pinching_hand"],tags:[],unicode_version:"12.0",ios_version:"13.0",skin_tones:!0},{emoji:"✌️",description:"victory hand",category:"People & Body",aliases:["v"],tags:["victory","peace"],unicode_version:"",ios_version:"6.0",skin_tones:!0},{emoji:"🤞",description:"crossed fingers",category:"People & Body",aliases:["crossed_fingers"],tags:["luck","hopeful"],unicode_version:"9.0",ios_version:"10.2",skin_tones:!0},{emoji:"🤟",description:"love-you gesture",category:"People & Body",aliases:["love_you_gesture"],tags:[],unicode_version:"11.0",ios_version:"12.1",skin_tones:!0},{emoji:"🤘",description:"sign of the horns",category:"People & Body",aliases:["metal"],tags:[],unicode_version:"8.0",ios_version:"9.1",skin_tones:!0},{emoji:"🤙",description:"call me hand",category:"People & Body",aliases:["call_me_hand"],tags:[],unicode_version:"9.0",ios_version:"10.2",skin_tones:!0},{emoji:"👈",description:"backhand index pointing left",category:"People & Body",aliases:["point_left"],tags:[],unicode_version:"6.0",ios_version:"6.0",skin_tones:!0},{emoji:"👉",description:"backhand index pointing right",category:"People & Body",aliases:["point_right"],tags:[],unicode_version:"6.0",ios_version:"6.0",skin_tones:!0},{emoji:"👆",description:"backhand index pointing up",category:"People & Body",aliases:["point_up_2"],tags:[],unicode_version:"6.0",ios_version:"6.0",skin_tones:!0},{emoji:"🖕",description:"middle finger",category:"People & Body",aliases:["middle_finger","fu"],tags:[],unicode_version:"7.0",ios_version:"9.1",skin_tones:!0},{emoji:"👇",description:"backhand index pointing down",category:"People & Body",aliases:["point_down"],tags:[],unicode_version:"6.0",ios_version:"6.0",skin_tones:!0},{emoji:"☝️",description:"index pointing up",category:"People & Body",aliases:["point_up"],tags:[],unicode_version:"",ios_version:"6.0",skin_tones:!0},{emoji:"👍",description:"thumbs up",category:"People & Body",aliases:["+1","thumbsup"],tags:["approve","ok"],unicode_version:"6.0",ios_version:"6.0",skin_tones:!0},{emoji:"👎",description:"thumbs down",category:"People & Body",aliases:["-1","thumbsdown"],tags:["disapprove","bury"],unicode_version:"6.0",ios_version:"6.0",skin_tones:!0},{emoji:"✊",description:"raised fist",category:"People & Body",aliases:["fist_raised","fist"],tags:["power"],unicode_version:"6.0",ios_version:"6.0",skin_tones:!0},{emoji:"👊",description:"oncoming fist",category:"People & Body",aliases:["fist_oncoming","facepunch","punch"],tags:["attack"],unicode_version:"6.0",ios_version:"6.0",skin_tones:!0},{emoji:"🤛",description:"left-facing fist",category:"People & Body",aliases:["fist_left"],tags:[],unicode_version:"9.0",ios_version:"10.2",skin_tones:!0},{emoji:"🤜",description:"right-facing fist",category:"People & Body",aliases:["fist_right"],tags:[],unicode_version:"9.0",ios_version:"10.2",skin_tones:!0},{emoji:"👏",description:"clapping hands",category:"People & Body",aliases:["clap"],tags:["praise","applause"],unicode_version:"6.0",ios_version:"6.0",skin_tones:!0},{emoji:"🙌",description:"raising hands",category:"People & Body",aliases:["raised_hands"],tags:["hooray"],unicode_version:"6.0",ios_version:"6.0",skin_tones:!0},{emoji:"👐",description:"open hands",category:"People & Body",aliases:["open_hands"],tags:[],unicode_version:"6.0",ios_version:"6.0",skin_tones:!0},{emoji:"🤲",description:"palms up together",category:"People & Body",aliases:["palms_up_together"],tags:[],unicode_version:"11.0",ios_version:"12.1",skin_tones:!0},{emoji:"🤝",description:"handshake",category:"People & Body",aliases:["handshake"],tags:["deal"],unicode_version:"9.0",ios_version:"10.2"},{emoji:"🙏",description:"folded hands",category:"People & Body",aliases:["pray"],tags:["please","hope","wish"],unicode_version:"6.0",ios_version:"6.0",skin_tones:!0},{emoji:"✍️",description:"writing hand",category:"People & Body",aliases:["writing_hand"],tags:[],unicode_version:"",ios_version:"9.1",skin_tones:!0},{emoji:"💅",description:"nail polish",category:"People & Body",aliases:["nail_care"],tags:["beauty","manicure"],unicode_version:"6.0",ios_version:"6.0",skin_tones:!0},{emoji:"🤳",description:"selfie",category:"People & Body",aliases:["selfie"],tags:[],unicode_version:"9.0",ios_version:"10.2",skin_tones:!0},{emoji:"💪",description:"flexed biceps",category:"People & Body",aliases:["muscle"],tags:["flex","bicep","strong","workout"],unicode_version:"6.0",ios_version:"6.0",skin_tones:!0},{emoji:"🦾",description:"mechanical arm",category:"People & Body",aliases:["mechanical_arm"],tags:[],unicode_version:"12.0",ios_version:"13.0"},{emoji:"🦿",description:"mechanical leg",category:"People & Body",aliases:["mechanical_leg"],tags:[],unicode_version:"12.0",ios_version:"13.0"},{emoji:"🦵",description:"leg",category:"People & Body",aliases:["leg"],tags:[],unicode_version:"11.0",ios_version:"12.1",skin_tones:!0},{emoji:"🦶",description:"foot",category:"People & Body",aliases:["foot"],tags:[],unicode_version:"11.0",ios_version:"12.1",skin_tones:!0},{emoji:"👂",description:"ear",category:"People & Body",aliases:["ear"],tags:["hear","sound","listen"],unicode_version:"6.0",ios_version:"6.0",skin_tones:!0},{emoji:"🦻",description:"ear with hearing aid",category:"People & Body",aliases:["ear_with_hearing_aid"],tags:[],unicode_version:"12.0",ios_version:"13.0",skin_tones:!0},{emoji:"👃",description:"nose",category:"People & Body",aliases:["nose"],tags:["smell"],unicode_version:"6.0",ios_version:"6.0",skin_tones:!0},{emoji:"🧠",description:"brain",category:"People & Body",aliases:["brain"],tags:[],unicode_version:"11.0",ios_version:"12.1"},{emoji:"🫀",description:"anatomical heart",category:"People & Body",aliases:["anatomical_heart"],tags:[],unicode_version:"13.0",ios_version:"14.0"},{emoji:"🫁",description:"lungs",category:"People & Body",aliases:["lungs"],tags:[],unicode_version:"13.0",ios_version:"14.0"},{emoji:"🦷",description:"tooth",category:"People & Body",aliases:["tooth"],tags:[],unicode_version:"11.0",ios_version:"12.1"},{emoji:"🦴",description:"bone",category:"People & Body",aliases:["bone"],tags:[],unicode_version:"11.0",ios_version:"12.1"},{emoji:"👀",description:"eyes",category:"People & Body",aliases:["eyes"],tags:["look","see","watch"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"👁️",description:"eye",category:"People & Body",aliases:["eye"],tags:[],unicode_version:"7.0",ios_version:"9.1"},{emoji:"👅",description:"tongue",category:"People & Body",aliases:["tongue"],tags:["taste"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"👄",description:"mouth",category:"People & Body",aliases:["lips"],tags:["kiss"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"👶",description:"baby",category:"People & Body",aliases:["baby"],tags:["child","newborn"],unicode_version:"6.0",ios_version:"6.0",skin_tones:!0},{emoji:"🧒",description:"child",category:"People & Body",aliases:["child"],tags:[],unicode_version:"11.0",ios_version:"12.1",skin_tones:!0},{emoji:"👦",description:"boy",category:"People & Body",aliases:["boy"],tags:["child"],unicode_version:"6.0",ios_version:"6.0",skin_tones:!0},{emoji:"👧",description:"girl",category:"People & Body",aliases:["girl"],tags:["child"],unicode_version:"6.0",ios_version:"6.0",skin_tones:!0},{emoji:"🧑",description:"person",category:"People & Body",aliases:["adult"],tags:[],unicode_version:"11.0",ios_version:"12.1",skin_tones:!0},{emoji:"👱",description:"person: blond hair",category:"People & Body",aliases:["blond_haired_person"],tags:[],unicode_version:"6.0",ios_version:"6.0",skin_tones:!0},{emoji:"👨",description:"man",category:"People & Body",aliases:["man"],tags:["mustache","father","dad"],unicode_version:"6.0",ios_version:"6.0",skin_tones:!0},{emoji:"🧔",description:"person: beard",category:"People & Body",aliases:["bearded_person"],tags:[],unicode_version:"11.0",ios_version:"12.1",skin_tones:!0},{emoji:"🧔♂️",description:"man: beard",category:"People & Body",aliases:["man_beard"],tags:[],unicode_version:"13.1",ios_version:"14.0",skin_tones:!0},{emoji:"🧔♀️",description:"woman: beard",category:"People & Body",aliases:["woman_beard"],tags:[],unicode_version:"13.1",ios_version:"14.0",skin_tones:!0},{emoji:"👨🦰",description:"man: red hair",category:"People & Body",aliases:["red_haired_man"],tags:[],unicode_version:"11.0",ios_version:"12.1",skin_tones:!0},{emoji:"👨🦱",description:"man: curly hair",category:"People & Body",aliases:["curly_haired_man"],tags:[],unicode_version:"11.0",ios_version:"12.1",skin_tones:!0},{emoji:"👨🦳",description:"man: white hair",category:"People & Body",aliases:["white_haired_man"],tags:[],unicode_version:"11.0",ios_version:"12.1",skin_tones:!0},{emoji:"👨🦲",description:"man: bald",category:"People & Body",aliases:["bald_man"],tags:[],unicode_version:"11.0",ios_version:"12.1",skin_tones:!0},{emoji:"👩",description:"woman",category:"People & Body",aliases:["woman"],tags:["girls"],unicode_version:"6.0",ios_version:"6.0",skin_tones:!0},{emoji:"👩🦰",description:"woman: red hair",category:"People & Body",aliases:["red_haired_woman"],tags:[],unicode_version:"11.0",ios_version:"12.1",skin_tones:!0},{emoji:"🧑🦰",description:"person: red hair",category:"People & Body",aliases:["person_red_hair"],tags:[],unicode_version:"12.1",ios_version:"13.2",skin_tones:!0},{emoji:"👩🦱",description:"woman: curly hair",category:"People & Body",aliases:["curly_haired_woman"],tags:[],unicode_version:"11.0",ios_version:"12.1",skin_tones:!0},{emoji:"🧑🦱",description:"person: curly hair",category:"People & Body",aliases:["person_curly_hair"],tags:[],unicode_version:"12.1",ios_version:"13.2",skin_tones:!0},{emoji:"👩🦳",description:"woman: white hair",category:"People & Body",aliases:["white_haired_woman"],tags:[],unicode_version:"11.0",ios_version:"12.1",skin_tones:!0},{emoji:"🧑🦳",description:"person: white hair",category:"People & Body",aliases:["person_white_hair"],tags:[],unicode_version:"12.1",ios_version:"13.2",skin_tones:!0},{emoji:"👩🦲",description:"woman: bald",category:"People & Body",aliases:["bald_woman"],tags:[],unicode_version:"11.0",ios_version:"12.1",skin_tones:!0},{emoji:"🧑🦲",description:"person: bald",category:"People & Body",aliases:["person_bald"],tags:[],unicode_version:"12.1",ios_version:"13.2",skin_tones:!0},{emoji:"👱♀️",description:"woman: blond hair",category:"People & Body",aliases:["blond_haired_woman","blonde_woman"],tags:[],unicode_version:"6.0",ios_version:"10.0",skin_tones:!0},{emoji:"👱♂️",description:"man: blond hair",category:"People & Body",aliases:["blond_haired_man"],tags:[],unicode_version:"11.0",ios_version:"12.1",skin_tones:!0},{emoji:"🧓",description:"older person",category:"People & Body",aliases:["older_adult"],tags:[],unicode_version:"11.0",ios_version:"12.1",skin_tones:!0},{emoji:"👴",description:"old man",category:"People & Body",aliases:["older_man"],tags:[],unicode_version:"6.0",ios_version:"6.0",skin_tones:!0},{emoji:"👵",description:"old woman",category:"People & Body",aliases:["older_woman"],tags:[],unicode_version:"6.0",ios_version:"6.0",skin_tones:!0},{emoji:"🙍",description:"person frowning",category:"People & Body",aliases:["frowning_person"],tags:[],unicode_version:"6.0",ios_version:"6.0",skin_tones:!0},{emoji:"🙍♂️",description:"man frowning",category:"People & Body",aliases:["frowning_man"],tags:[],unicode_version:"6.0",ios_version:"10.0",skin_tones:!0},{emoji:"🙍♀️",description:"woman frowning",category:"People & Body",aliases:["frowning_woman"],tags:[],unicode_version:"11.0",ios_version:"12.1",skin_tones:!0},{emoji:"🙎",description:"person pouting",category:"People & Body",aliases:["pouting_face"],tags:[],unicode_version:"6.0",ios_version:"6.0",skin_tones:!0},{emoji:"🙎♂️",description:"man pouting",category:"People & Body",aliases:["pouting_man"],tags:[],unicode_version:"6.0",ios_version:"10.0",skin_tones:!0},{emoji:"🙎♀️",description:"woman pouting",category:"People & Body",aliases:["pouting_woman"],tags:[],unicode_version:"11.0",ios_version:"12.1",skin_tones:!0},{emoji:"🙅",description:"person gesturing NO",category:"People & Body",aliases:["no_good"],tags:["stop","halt","denied"],unicode_version:"6.0",ios_version:"6.0",skin_tones:!0},{emoji:"🙅♂️",description:"man gesturing NO",category:"People & Body",aliases:["no_good_man","ng_man"],tags:["stop","halt","denied"],unicode_version:"6.0",ios_version:"10.0",skin_tones:!0},{emoji:"🙅♀️",description:"woman gesturing NO",category:"People & Body",aliases:["no_good_woman","ng_woman"],tags:["stop","halt","denied"],unicode_version:"11.0",ios_version:"12.1",skin_tones:!0},{emoji:"🙆",description:"person gesturing OK",category:"People & Body",aliases:["ok_person"],tags:[],unicode_version:"6.0",ios_version:"6.0",skin_tones:!0},{emoji:"🙆♂️",description:"man gesturing OK",category:"People & Body",aliases:["ok_man"],tags:[],unicode_version:"6.0",ios_version:"10.0",skin_tones:!0},{emoji:"🙆♀️",description:"woman gesturing OK",category:"People & Body",aliases:["ok_woman"],tags:[],unicode_version:"11.0",ios_version:"12.1",skin_tones:!0},{emoji:"💁",description:"person tipping hand",category:"People & Body",aliases:["tipping_hand_person","information_desk_person"],tags:[],unicode_version:"6.0",ios_version:"6.0",skin_tones:!0},{emoji:"💁♂️",description:"man tipping hand",category:"People & Body",aliases:["tipping_hand_man","sassy_man"],tags:["information"],unicode_version:"6.0",ios_version:"10.0",skin_tones:!0},{emoji:"💁♀️",description:"woman tipping hand",category:"People & Body",aliases:["tipping_hand_woman","sassy_woman"],tags:["information"],unicode_version:"11.0",ios_version:"12.1",skin_tones:!0},{emoji:"🙋",description:"person raising hand",category:"People & Body",aliases:["raising_hand"],tags:[],unicode_version:"6.0",ios_version:"6.0",skin_tones:!0},{emoji:"🙋♂️",description:"man raising hand",category:"People & Body",aliases:["raising_hand_man"],tags:[],unicode_version:"6.0",ios_version:"10.0",skin_tones:!0},{emoji:"🙋♀️",description:"woman raising hand",category:"People & Body",aliases:["raising_hand_woman"],tags:[],unicode_version:"11.0",ios_version:"12.1",skin_tones:!0},{emoji:"🧏",description:"deaf person",category:"People & Body",aliases:["deaf_person"],tags:[],unicode_version:"12.0",ios_version:"13.0",skin_tones:!0},{emoji:"🧏♂️",description:"deaf man",category:"People & Body",aliases:["deaf_man"],tags:[],unicode_version:"12.0",ios_version:"13.0",skin_tones:!0},{emoji:"🧏♀️",description:"deaf woman",category:"People & Body",aliases:["deaf_woman"],tags:[],unicode_version:"12.0",ios_version:"13.0",skin_tones:!0},{emoji:"🙇",description:"person bowing",category:"People & Body",aliases:["bow"],tags:["respect","thanks"],unicode_version:"6.0",ios_version:"6.0",skin_tones:!0},{emoji:"🙇♂️",description:"man bowing",category:"People & Body",aliases:["bowing_man"],tags:["respect","thanks"],unicode_version:"11.0",ios_version:"12.1",skin_tones:!0},{emoji:"🙇♀️",description:"woman bowing",category:"People & Body",aliases:["bowing_woman"],tags:["respect","thanks"],unicode_version:"6.0",ios_version:"10.0",skin_tones:!0},{emoji:"🤦",description:"person facepalming",category:"People & Body",aliases:["facepalm"],tags:[],unicode_version:"11.0",ios_version:"12.1",skin_tones:!0},{emoji:"🤦♂️",description:"man facepalming",category:"People & Body",aliases:["man_facepalming"],tags:[],unicode_version:"9.0",ios_version:"10.2",skin_tones:!0},{emoji:"🤦♀️",description:"woman facepalming",category:"People & Body",aliases:["woman_facepalming"],tags:[],unicode_version:"9.0",ios_version:"10.2",skin_tones:!0},{emoji:"🤷",description:"person shrugging",category:"People & Body",aliases:["shrug"],tags:[],unicode_version:"11.0",ios_version:"12.1",skin_tones:!0},{emoji:"🤷♂️",description:"man shrugging",category:"People & Body",aliases:["man_shrugging"],tags:[],unicode_version:"9.0",ios_version:"10.2",skin_tones:!0},{emoji:"🤷♀️",description:"woman shrugging",category:"People & Body",aliases:["woman_shrugging"],tags:[],unicode_version:"9.0",ios_version:"10.2",skin_tones:!0},{emoji:"🧑⚕️",description:"health worker",category:"People & Body",aliases:["health_worker"],tags:[],unicode_version:"12.1",ios_version:"13.2",skin_tones:!0},{emoji:"👨⚕️",description:"man health worker",category:"People & Body",aliases:["man_health_worker"],tags:["doctor","nurse"],unicode_version:"",ios_version:"10.2",skin_tones:!0},{emoji:"👩⚕️",description:"woman health worker",category:"People & Body",aliases:["woman_health_worker"],tags:["doctor","nurse"],unicode_version:"",ios_version:"10.2",skin_tones:!0},{emoji:"🧑🎓",description:"student",category:"People & Body",aliases:["student"],tags:[],unicode_version:"12.1",ios_version:"13.2",skin_tones:!0},{emoji:"👨🎓",description:"man student",category:"People & Body",aliases:["man_student"],tags:["graduation"],unicode_version:"",ios_version:"10.2",skin_tones:!0},{emoji:"👩🎓",description:"woman student",category:"People & Body",aliases:["woman_student"],tags:["graduation"],unicode_version:"",ios_version:"10.2",skin_tones:!0},{emoji:"🧑🏫",description:"teacher",category:"People & Body",aliases:["teacher"],tags:[],unicode_version:"12.1",ios_version:"13.2",skin_tones:!0},{emoji:"👨🏫",description:"man teacher",category:"People & Body",aliases:["man_teacher"],tags:["school","professor"],unicode_version:"",ios_version:"10.2",skin_tones:!0},{emoji:"👩🏫",description:"woman teacher",category:"People & Body",aliases:["woman_teacher"],tags:["school","professor"],unicode_version:"",ios_version:"10.2",skin_tones:!0},{emoji:"🧑⚖️",description:"judge",category:"People & Body",aliases:["judge"],tags:[],unicode_version:"12.1",ios_version:"13.2",skin_tones:!0},{emoji:"👨⚖️",description:"man judge",category:"People & Body",aliases:["man_judge"],tags:["justice"],unicode_version:"",ios_version:"10.2",skin_tones:!0},{emoji:"👩⚖️",description:"woman judge",category:"People & Body",aliases:["woman_judge"],tags:["justice"],unicode_version:"",ios_version:"10.2",skin_tones:!0},{emoji:"🧑🌾",description:"farmer",category:"People & Body",aliases:["farmer"],tags:[],unicode_version:"12.1",ios_version:"13.2",skin_tones:!0},{emoji:"👨🌾",description:"man farmer",category:"People & Body",aliases:["man_farmer"],tags:[],unicode_version:"",ios_version:"10.2",skin_tones:!0},{emoji:"👩🌾",description:"woman farmer",category:"People & Body",aliases:["woman_farmer"],tags:[],unicode_version:"",ios_version:"10.2",skin_tones:!0},{emoji:"🧑🍳",description:"cook",category:"People & Body",aliases:["cook"],tags:[],unicode_version:"12.1",ios_version:"13.2",skin_tones:!0},{emoji:"👨🍳",description:"man cook",category:"People & Body",aliases:["man_cook"],tags:["chef"],unicode_version:"",ios_version:"10.2",skin_tones:!0},{emoji:"👩🍳",description:"woman cook",category:"People & Body",aliases:["woman_cook"],tags:["chef"],unicode_version:"",ios_version:"10.2",skin_tones:!0},{emoji:"🧑🔧",description:"mechanic",category:"People & Body",aliases:["mechanic"],tags:[],unicode_version:"12.1",ios_version:"13.2",skin_tones:!0},{emoji:"👨🔧",description:"man mechanic",category:"People & Body",aliases:["man_mechanic"],tags:[],unicode_version:"",ios_version:"10.2",skin_tones:!0},{emoji:"👩🔧",description:"woman mechanic",category:"People & Body",aliases:["woman_mechanic"],tags:[],unicode_version:"",ios_version:"10.2",skin_tones:!0},{emoji:"🧑🏭",description:"factory worker",category:"People & Body",aliases:["factory_worker"],tags:[],unicode_version:"12.1",ios_version:"13.2",skin_tones:!0},{emoji:"👨🏭",description:"man factory worker",category:"People & Body",aliases:["man_factory_worker"],tags:[],unicode_version:"",ios_version:"10.2",skin_tones:!0},{emoji:"👩🏭",description:"woman factory worker",category:"People & Body",aliases:["woman_factory_worker"],tags:[],unicode_version:"",ios_version:"10.2",skin_tones:!0},{emoji:"🧑💼",description:"office worker",category:"People & Body",aliases:["office_worker"],tags:[],unicode_version:"12.1",ios_version:"13.2",skin_tones:!0},{emoji:"👨💼",description:"man office worker",category:"People & Body",aliases:["man_office_worker"],tags:["business"],unicode_version:"",ios_version:"10.2",skin_tones:!0},{emoji:"👩💼",description:"woman office worker",category:"People & Body",aliases:["woman_office_worker"],tags:["business"],unicode_version:"",ios_version:"10.2",skin_tones:!0},{emoji:"🧑🔬",description:"scientist",category:"People & Body",aliases:["scientist"],tags:[],unicode_version:"12.1",ios_version:"13.2",skin_tones:!0},{emoji:"👨🔬",description:"man scientist",category:"People & Body",aliases:["man_scientist"],tags:["research"],unicode_version:"",ios_version:"10.2",skin_tones:!0},{emoji:"👩🔬",description:"woman scientist",category:"People & Body",aliases:["woman_scientist"],tags:["research"],unicode_version:"",ios_version:"10.2",skin_tones:!0},{emoji:"🧑💻",description:"technologist",category:"People & Body",aliases:["technologist"],tags:[],unicode_version:"12.1",ios_version:"13.2",skin_tones:!0},{emoji:"👨💻",description:"man technologist",category:"People & Body",aliases:["man_technologist"],tags:["coder"],unicode_version:"",ios_version:"10.2",skin_tones:!0},{emoji:"👩💻",description:"woman technologist",category:"People & Body",aliases:["woman_technologist"],tags:["coder"],unicode_version:"",ios_version:"10.2",skin_tones:!0},{emoji:"🧑🎤",description:"singer",category:"People & Body",aliases:["singer"],tags:[],unicode_version:"12.1",ios_version:"13.2",skin_tones:!0},{emoji:"👨🎤",description:"man singer",category:"People & Body",aliases:["man_singer"],tags:["rockstar"],unicode_version:"",ios_version:"10.2",skin_tones:!0},{emoji:"👩🎤",description:"woman singer",category:"People & Body",aliases:["woman_singer"],tags:["rockstar"],unicode_version:"",ios_version:"10.2",skin_tones:!0},{emoji:"🧑🎨",description:"artist",category:"People & Body",aliases:["artist"],tags:[],unicode_version:"12.1",ios_version:"13.2",skin_tones:!0},{emoji:"👨🎨",description:"man artist",category:"People & Body",aliases:["man_artist"],tags:["painter"],unicode_version:"",ios_version:"10.2",skin_tones:!0},{emoji:"👩🎨",description:"woman artist",category:"People & Body",aliases:["woman_artist"],tags:["painter"],unicode_version:"",ios_version:"10.2",skin_tones:!0},{emoji:"🧑✈️",description:"pilot",category:"People & Body",aliases:["pilot"],tags:[],unicode_version:"12.1",ios_version:"13.2",skin_tones:!0},{emoji:"👨✈️",description:"man pilot",category:"People & Body",aliases:["man_pilot"],tags:[],unicode_version:"",ios_version:"10.2",skin_tones:!0},{emoji:"👩✈️",description:"woman pilot",category:"People & Body",aliases:["woman_pilot"],tags:[],unicode_version:"",ios_version:"10.2",skin_tones:!0},{emoji:"🧑🚀",description:"astronaut",category:"People & Body",aliases:["astronaut"],tags:[],unicode_version:"12.1",ios_version:"13.2",skin_tones:!0},{emoji:"👨🚀",description:"man astronaut",category:"People & Body",aliases:["man_astronaut"],tags:["space"],unicode_version:"",ios_version:"10.2",skin_tones:!0},{emoji:"👩🚀",description:"woman astronaut",category:"People & Body",aliases:["woman_astronaut"],tags:["space"],unicode_version:"",ios_version:"10.2",skin_tones:!0},{emoji:"🧑🚒",description:"firefighter",category:"People & Body",aliases:["firefighter"],tags:[],unicode_version:"12.1",ios_version:"13.2",skin_tones:!0},{emoji:"👨🚒",description:"man firefighter",category:"People & Body",aliases:["man_firefighter"],tags:[],unicode_version:"",ios_version:"10.2",skin_tones:!0},{emoji:"👩🚒",description:"woman firefighter",category:"People & Body",aliases:["woman_firefighter"],tags:[],unicode_version:"",ios_version:"10.2",skin_tones:!0},{emoji:"👮",description:"police officer",category:"People & Body",aliases:["police_officer","cop"],tags:["law"],unicode_version:"6.0",ios_version:"6.0",skin_tones:!0},{emoji:"👮♂️",description:"man police officer",category:"People & Body",aliases:["policeman"],tags:["law","cop"],unicode_version:"11.0",ios_version:"12.1",skin_tones:!0},{emoji:"👮♀️",description:"woman police officer",category:"People & Body",aliases:["policewoman"],tags:["law","cop"],unicode_version:"6.0",ios_version:"10.0",skin_tones:!0},{emoji:"🕵️",description:"detective",category:"People & Body",aliases:["detective"],tags:["sleuth"],unicode_version:"7.0",ios_version:"9.1",skin_tones:!0},{emoji:"🕵️♂️",description:"man detective",category:"People & Body",aliases:["male_detective"],tags:["sleuth"],unicode_version:"11.0",ios_version:"12.1",skin_tones:!0},{emoji:"🕵️♀️",description:"woman detective",category:"People & Body",aliases:["female_detective"],tags:["sleuth"],unicode_version:"6.0",ios_version:"10.0",skin_tones:!0},{emoji:"💂",description:"guard",category:"People & Body",aliases:["guard"],tags:[],unicode_version:"6.0",ios_version:"6.0",skin_tones:!0},{emoji:"💂♂️",description:"man guard",category:"People & Body",aliases:["guardsman"],tags:[],unicode_version:"11.0",ios_version:"12.1",skin_tones:!0},{emoji:"💂♀️",description:"woman guard",category:"People & Body",aliases:["guardswoman"],tags:[],unicode_version:"6.0",ios_version:"10.0",skin_tones:!0},{emoji:"🥷",description:"ninja",category:"People & Body",aliases:["ninja"],tags:[],unicode_version:"13.0",ios_version:"14.0",skin_tones:!0},{emoji:"👷",description:"construction worker",category:"People & Body",aliases:["construction_worker"],tags:["helmet"],unicode_version:"6.0",ios_version:"6.0",skin_tones:!0},{emoji:"👷♂️",description:"man construction worker",category:"People & Body",aliases:["construction_worker_man"],tags:["helmet"],unicode_version:"11.0",ios_version:"12.1",skin_tones:!0},{emoji:"👷♀️",description:"woman construction worker",category:"People & Body",aliases:["construction_worker_woman"],tags:["helmet"],unicode_version:"6.0",ios_version:"10.0",skin_tones:!0},{emoji:"🤴",description:"prince",category:"People & Body",aliases:["prince"],tags:["crown","royal"],unicode_version:"9.0",ios_version:"10.2",skin_tones:!0},{emoji:"👸",description:"princess",category:"People & Body",aliases:["princess"],tags:["crown","royal"],unicode_version:"6.0",ios_version:"6.0",skin_tones:!0},{emoji:"👳",description:"person wearing turban",category:"People & Body",aliases:["person_with_turban"],tags:[],unicode_version:"6.0",ios_version:"6.0",skin_tones:!0},{emoji:"👳♂️",description:"man wearing turban",category:"People & Body",aliases:["man_with_turban"],tags:[],unicode_version:"11.0",ios_version:"12.1",skin_tones:!0},{emoji:"👳♀️",description:"woman wearing turban",category:"People & Body",aliases:["woman_with_turban"],tags:[],unicode_version:"6.0",ios_version:"10.0",skin_tones:!0},{emoji:"👲",description:"person with skullcap",category:"People & Body",aliases:["man_with_gua_pi_mao"],tags:[],unicode_version:"6.0",ios_version:"6.0",skin_tones:!0},{emoji:"🧕",description:"woman with headscarf",category:"People & Body",aliases:["woman_with_headscarf"],tags:["hijab"],unicode_version:"11.0",ios_version:"12.1",skin_tones:!0},{emoji:"🤵",description:"person in tuxedo",category:"People & Body",aliases:["person_in_tuxedo"],tags:["groom","marriage","wedding"],unicode_version:"9.0",ios_version:"10.2",skin_tones:!0},{emoji:"🤵♂️",description:"man in tuxedo",category:"People & Body",aliases:["man_in_tuxedo"],tags:[],unicode_version:"13.0",ios_version:"14.0",skin_tones:!0},{emoji:"🤵♀️",description:"woman in tuxedo",category:"People & Body",aliases:["woman_in_tuxedo"],tags:[],unicode_version:"13.0",ios_version:"14.0",skin_tones:!0},{emoji:"👰",description:"person with veil",category:"People & Body",aliases:["person_with_veil"],tags:["marriage","wedding"],unicode_version:"6.0",ios_version:"6.0",skin_tones:!0},{emoji:"👰♂️",description:"man with veil",category:"People & Body",aliases:["man_with_veil"],tags:[],unicode_version:"13.0",ios_version:"14.0",skin_tones:!0},{emoji:"👰♀️",description:"woman with veil",category:"People & Body",aliases:["woman_with_veil","bride_with_veil"],tags:[],unicode_version:"13.0",ios_version:"14.0",skin_tones:!0},{emoji:"🤰",description:"pregnant woman",category:"People & Body",aliases:["pregnant_woman"],tags:[],unicode_version:"9.0",ios_version:"10.2",skin_tones:!0},{emoji:"🤱",description:"breast-feeding",category:"People & Body",aliases:["breast_feeding"],tags:["nursing"],unicode_version:"11.0",ios_version:"12.1",skin_tones:!0},{emoji:"👩🍼",description:"woman feeding baby",category:"People & Body",aliases:["woman_feeding_baby"],tags:[],unicode_version:"13.0",ios_version:"14.0",skin_tones:!0},{emoji:"👨🍼",description:"man feeding baby",category:"People & Body",aliases:["man_feeding_baby"],tags:[],unicode_version:"13.0",ios_version:"14.0",skin_tones:!0},{emoji:"🧑🍼",description:"person feeding baby",category:"People & Body",aliases:["person_feeding_baby"],tags:[],unicode_version:"13.0",ios_version:"14.0",skin_tones:!0},{emoji:"👼",description:"baby angel",category:"People & Body",aliases:["angel"],tags:[],unicode_version:"6.0",ios_version:"6.0",skin_tones:!0},{emoji:"🎅",description:"Santa Claus",category:"People & Body",aliases:["santa"],tags:["christmas"],unicode_version:"6.0",ios_version:"6.0",skin_tones:!0},{emoji:"🤶",description:"Mrs. Claus",category:"People & Body",aliases:["mrs_claus"],tags:["santa"],unicode_version:"9.0",ios_version:"10.2",skin_tones:!0},{emoji:"🧑🎄",description:"mx claus",category:"People & Body",aliases:["mx_claus"],tags:[],unicode_version:"13.0",ios_version:"14.0",skin_tones:!0},{emoji:"🦸",description:"superhero",category:"People & Body",aliases:["superhero"],tags:[],unicode_version:"11.0",ios_version:"12.1",skin_tones:!0},{emoji:"🦸♂️",description:"man superhero",category:"People & Body",aliases:["superhero_man"],tags:[],unicode_version:"11.0",ios_version:"12.1",skin_tones:!0},{emoji:"🦸♀️",description:"woman superhero",category:"People & Body",aliases:["superhero_woman"],tags:[],unicode_version:"11.0",ios_version:"12.1",skin_tones:!0},{emoji:"🦹",description:"supervillain",category:"People & Body",aliases:["supervillain"],tags:[],unicode_version:"11.0",ios_version:"12.1",skin_tones:!0},{emoji:"🦹♂️",description:"man supervillain",category:"People & Body",aliases:["supervillain_man"],tags:[],unicode_version:"11.0",ios_version:"12.1",skin_tones:!0},{emoji:"🦹♀️",description:"woman supervillain",category:"People & Body",aliases:["supervillain_woman"],tags:[],unicode_version:"11.0",ios_version:"12.1",skin_tones:!0},{emoji:"🧙",description:"mage",category:"People & Body",aliases:["mage"],tags:["wizard"],unicode_version:"11.0",ios_version:"12.1",skin_tones:!0},{emoji:"🧙♂️",description:"man mage",category:"People & Body",aliases:["mage_man"],tags:["wizard"],unicode_version:"11.0",ios_version:"12.1",skin_tones:!0},{emoji:"🧙♀️",description:"woman mage",category:"People & Body",aliases:["mage_woman"],tags:["wizard"],unicode_version:"11.0",ios_version:"12.1",skin_tones:!0},{emoji:"🧚",description:"fairy",category:"People & Body",aliases:["fairy"],tags:[],unicode_version:"11.0",ios_version:"12.1",skin_tones:!0},{emoji:"🧚♂️",description:"man fairy",category:"People & Body",aliases:["fairy_man"],tags:[],unicode_version:"11.0",ios_version:"12.1",skin_tones:!0},{emoji:"🧚♀️",description:"woman fairy",category:"People & Body",aliases:["fairy_woman"],tags:[],unicode_version:"11.0",ios_version:"12.1",skin_tones:!0},{emoji:"🧛",description:"vampire",category:"People & Body",aliases:["vampire"],tags:[],unicode_version:"11.0",ios_version:"12.1",skin_tones:!0},{emoji:"🧛♂️",description:"man vampire",category:"People & Body",aliases:["vampire_man"],tags:[],unicode_version:"11.0",ios_version:"12.1",skin_tones:!0},{emoji:"🧛♀️",description:"woman vampire",category:"People & Body",aliases:["vampire_woman"],tags:[],unicode_version:"11.0",ios_version:"12.1",skin_tones:!0},{emoji:"🧜",description:"merperson",category:"People & Body",aliases:["merperson"],tags:[],unicode_version:"11.0",ios_version:"12.1",skin_tones:!0},{emoji:"🧜♂️",description:"merman",category:"People & Body",aliases:["merman"],tags:[],unicode_version:"11.0",ios_version:"12.1",skin_tones:!0},{emoji:"🧜♀️",description:"mermaid",category:"People & Body",aliases:["mermaid"],tags:[],unicode_version:"11.0",ios_version:"12.1",skin_tones:!0},{emoji:"🧝",description:"elf",category:"People & Body",aliases:["elf"],tags:[],unicode_version:"11.0",ios_version:"12.1",skin_tones:!0},{emoji:"🧝♂️",description:"man elf",category:"People & Body",aliases:["elf_man"],tags:[],unicode_version:"11.0",ios_version:"12.1",skin_tones:!0},{emoji:"🧝♀️",description:"woman elf",category:"People & Body",aliases:["elf_woman"],tags:[],unicode_version:"11.0",ios_version:"12.1",skin_tones:!0},{emoji:"🧞",description:"genie",category:"People & Body",aliases:["genie"],tags:[],unicode_version:"11.0",ios_version:"12.1"},{emoji:"🧞♂️",description:"man genie",category:"People & Body",aliases:["genie_man"],tags:[],unicode_version:"11.0",ios_version:"12.1"},{emoji:"🧞♀️",description:"woman genie",category:"People & Body",aliases:["genie_woman"],tags:[],unicode_version:"11.0",ios_version:"12.1"},{emoji:"🧟",description:"zombie",category:"People & Body",aliases:["zombie"],tags:[],unicode_version:"11.0",ios_version:"12.1"},{emoji:"🧟♂️",description:"man zombie",category:"People & Body",aliases:["zombie_man"],tags:[],unicode_version:"11.0",ios_version:"12.1"},{emoji:"🧟♀️",description:"woman zombie",category:"People & Body",aliases:["zombie_woman"],tags:[],unicode_version:"11.0",ios_version:"12.1"},{emoji:"💆",description:"person getting massage",category:"People & Body",aliases:["massage"],tags:["spa"],unicode_version:"6.0",ios_version:"6.0",skin_tones:!0},{emoji:"💆♂️",description:"man getting massage",category:"People & Body",aliases:["massage_man"],tags:["spa"],unicode_version:"6.0",ios_version:"10.0",skin_tones:!0},{emoji:"💆♀️",description:"woman getting massage",category:"People & Body",aliases:["massage_woman"],tags:["spa"],unicode_version:"11.0",ios_version:"12.1",skin_tones:!0},{emoji:"💇",description:"person getting haircut",category:"People & Body",aliases:["haircut"],tags:["beauty"],unicode_version:"6.0",ios_version:"6.0",skin_tones:!0},{emoji:"💇♂️",description:"man getting haircut",category:"People & Body",aliases:["haircut_man"],tags:[],unicode_version:"6.0",ios_version:"10.0",skin_tones:!0},{emoji:"💇♀️",description:"woman getting haircut",category:"People & Body",aliases:["haircut_woman"],tags:[],unicode_version:"11.0",ios_version:"12.1",skin_tones:!0},{emoji:"🚶",description:"person walking",category:"People & Body",aliases:["walking"],tags:[],unicode_version:"6.0",ios_version:"6.0",skin_tones:!0},{emoji:"🚶♂️",description:"man walking",category:"People & Body",aliases:["walking_man"],tags:[],unicode_version:"11.0",ios_version:"12.1",skin_tones:!0},{emoji:"🚶♀️",description:"woman walking",category:"People & Body",aliases:["walking_woman"],tags:[],unicode_version:"6.0",ios_version:"10.0",skin_tones:!0},{emoji:"🧍",description:"person standing",category:"People & Body",aliases:["standing_person"],tags:[],unicode_version:"12.0",ios_version:"13.0",skin_tones:!0},{emoji:"🧍♂️",description:"man standing",category:"People & Body",aliases:["standing_man"],tags:[],unicode_version:"12.0",ios_version:"13.0",skin_tones:!0},{emoji:"🧍♀️",description:"woman standing",category:"People & Body",aliases:["standing_woman"],tags:[],unicode_version:"12.0",ios_version:"13.0",skin_tones:!0},{emoji:"🧎",description:"person kneeling",category:"People & Body",aliases:["kneeling_person"],tags:[],unicode_version:"12.0",ios_version:"13.0",skin_tones:!0},{emoji:"🧎♂️",description:"man kneeling",category:"People & Body",aliases:["kneeling_man"],tags:[],unicode_version:"12.0",ios_version:"13.0",skin_tones:!0},{emoji:"🧎♀️",description:"woman kneeling",category:"People & Body",aliases:["kneeling_woman"],tags:[],unicode_version:"12.0",ios_version:"13.0",skin_tones:!0},{emoji:"🧑🦯",description:"person with white cane",category:"People & Body",aliases:["person_with_probing_cane"],tags:[],unicode_version:"12.1",ios_version:"13.2",skin_tones:!0},{emoji:"👨🦯",description:"man with white cane",category:"People & Body",aliases:["man_with_probing_cane"],tags:[],unicode_version:"12.0",ios_version:"13.0",skin_tones:!0},{emoji:"👩🦯",description:"woman with white cane",category:"People & Body",aliases:["woman_with_probing_cane"],tags:[],unicode_version:"12.0",ios_version:"13.0",skin_tones:!0},{emoji:"🧑🦼",description:"person in motorized wheelchair",category:"People & Body",aliases:["person_in_motorized_wheelchair"],tags:[],unicode_version:"12.1",ios_version:"13.2",skin_tones:!0},{emoji:"👨🦼",description:"man in motorized wheelchair",category:"People & Body",aliases:["man_in_motorized_wheelchair"],tags:[],unicode_version:"12.0",ios_version:"13.0",skin_tones:!0},{emoji:"👩🦼",description:"woman in motorized wheelchair",category:"People & Body",aliases:["woman_in_motorized_wheelchair"],tags:[],unicode_version:"12.0",ios_version:"13.0",skin_tones:!0},{emoji:"🧑🦽",description:"person in manual wheelchair",category:"People & Body",aliases:["person_in_manual_wheelchair"],tags:[],unicode_version:"12.1",ios_version:"13.2",skin_tones:!0},{emoji:"👨🦽",description:"man in manual wheelchair",category:"People & Body",aliases:["man_in_manual_wheelchair"],tags:[],unicode_version:"12.0",ios_version:"13.0",skin_tones:!0},{emoji:"👩🦽",description:"woman in manual wheelchair",category:"People & Body",aliases:["woman_in_manual_wheelchair"],tags:[],unicode_version:"12.0",ios_version:"13.0",skin_tones:!0},{emoji:"🏃",description:"person running",category:"People & Body",aliases:["runner","running"],tags:["exercise","workout","marathon"],unicode_version:"6.0",ios_version:"6.0",skin_tones:!0},{emoji:"🏃♂️",description:"man running",category:"People & Body",aliases:["running_man"],tags:["exercise","workout","marathon"],unicode_version:"11.0",ios_version:"12.1",skin_tones:!0},{emoji:"🏃♀️",description:"woman running",category:"People & Body",aliases:["running_woman"],tags:["exercise","workout","marathon"],unicode_version:"6.0",ios_version:"10.0",skin_tones:!0},{emoji:"💃",description:"woman dancing",category:"People & Body",aliases:["woman_dancing","dancer"],tags:["dress"],unicode_version:"6.0",ios_version:"6.0",skin_tones:!0},{emoji:"🕺",description:"man dancing",category:"People & Body",aliases:["man_dancing"],tags:["dancer"],unicode_version:"9.0",ios_version:"10.2",skin_tones:!0},{emoji:"🕴️",description:"person in suit levitating",category:"People & Body",aliases:["business_suit_levitating"],tags:[],unicode_version:"7.0",ios_version:"9.1",skin_tones:!0},{emoji:"👯",description:"people with bunny ears",category:"People & Body",aliases:["dancers"],tags:["bunny"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"👯♂️",description:"men with bunny ears",category:"People & Body",aliases:["dancing_men"],tags:["bunny"],unicode_version:"6.0",ios_version:"10.0"},{emoji:"👯♀️",description:"women with bunny ears",category:"People & Body",aliases:["dancing_women"],tags:["bunny"],unicode_version:"11.0",ios_version:"12.1"},{emoji:"🧖",description:"person in steamy room",category:"People & Body",aliases:["sauna_person"],tags:["steamy"],unicode_version:"11.0",ios_version:"12.1",skin_tones:!0},{emoji:"🧖♂️",description:"man in steamy room",category:"People & Body",aliases:["sauna_man"],tags:["steamy"],unicode_version:"11.0",ios_version:"12.1",skin_tones:!0},{emoji:"🧖♀️",description:"woman in steamy room",category:"People & Body",aliases:["sauna_woman"],tags:["steamy"],unicode_version:"11.0",ios_version:"12.1",skin_tones:!0},{emoji:"🧗",description:"person climbing",category:"People & Body",aliases:["climbing"],tags:["bouldering"],unicode_version:"11.0",ios_version:"12.1",skin_tones:!0},{emoji:"🧗♂️",description:"man climbing",category:"People & Body",aliases:["climbing_man"],tags:["bouldering"],unicode_version:"11.0",ios_version:"12.1",skin_tones:!0},{emoji:"🧗♀️",description:"woman climbing",category:"People & Body",aliases:["climbing_woman"],tags:["bouldering"],unicode_version:"11.0",ios_version:"12.1",skin_tones:!0},{emoji:"🤺",description:"person fencing",category:"People & Body",aliases:["person_fencing"],tags:[],unicode_version:"9.0",ios_version:"10.2"},{emoji:"🏇",description:"horse racing",category:"People & Body",aliases:["horse_racing"],tags:[],unicode_version:"6.0",ios_version:"6.0",skin_tones:!0},{emoji:"⛷️",description:"skier",category:"People & Body",aliases:["skier"],tags:[],unicode_version:"5.2",ios_version:"9.1"},{emoji:"🏂",description:"snowboarder",category:"People & Body",aliases:["snowboarder"],tags:[],unicode_version:"6.0",ios_version:"6.0",skin_tones:!0},{emoji:"🏌️",description:"person golfing",category:"People & Body",aliases:["golfing"],tags:[],unicode_version:"7.0",ios_version:"9.1",skin_tones:!0},{emoji:"🏌️♂️",description:"man golfing",category:"People & Body",aliases:["golfing_man"],tags:[],unicode_version:"11.0",ios_version:"12.1",skin_tones:!0},{emoji:"🏌️♀️",description:"woman golfing",category:"People & Body",aliases:["golfing_woman"],tags:[],unicode_version:"",ios_version:"10.0",skin_tones:!0},{emoji:"🏄",description:"person surfing",category:"People & Body",aliases:["surfer"],tags:[],unicode_version:"6.0",ios_version:"6.0",skin_tones:!0},{emoji:"🏄♂️",description:"man surfing",category:"People & Body",aliases:["surfing_man"],tags:[],unicode_version:"11.0",ios_version:"12.1",skin_tones:!0},{emoji:"🏄♀️",description:"woman surfing",category:"People & Body",aliases:["surfing_woman"],tags:[],unicode_version:"7.0",ios_version:"10.0",skin_tones:!0},{emoji:"🚣",description:"person rowing boat",category:"People & Body",aliases:["rowboat"],tags:[],unicode_version:"6.0",ios_version:"6.0",skin_tones:!0},{emoji:"🚣♂️",description:"man rowing boat",category:"People & Body",aliases:["rowing_man"],tags:[],unicode_version:"11.0",ios_version:"12.1",skin_tones:!0},{emoji:"🚣♀️",description:"woman rowing boat",category:"People & Body",aliases:["rowing_woman"],tags:[],unicode_version:"6.0",ios_version:"10.0",skin_tones:!0},{emoji:"🏊",description:"person swimming",category:"People & Body",aliases:["swimmer"],tags:[],unicode_version:"6.0",ios_version:"6.0",skin_tones:!0},{emoji:"🏊♂️",description:"man swimming",category:"People & Body",aliases:["swimming_man"],tags:[],unicode_version:"11.0",ios_version:"12.1",skin_tones:!0},{emoji:"🏊♀️",description:"woman swimming",category:"People & Body",aliases:["swimming_woman"],tags:[],unicode_version:"6.0",ios_version:"10.0",skin_tones:!0},{emoji:"⛹️",description:"person bouncing ball",category:"People & Body",aliases:["bouncing_ball_person"],tags:["basketball"],unicode_version:"5.2",ios_version:"9.1",skin_tones:!0},{emoji:"⛹️♂️",description:"man bouncing ball",category:"People & Body",aliases:["bouncing_ball_man","basketball_man"],tags:[],unicode_version:"11.0",ios_version:"12.1",skin_tones:!0},{emoji:"⛹️♀️",description:"woman bouncing ball",category:"People & Body",aliases:["bouncing_ball_woman","basketball_woman"],tags:[],unicode_version:"7.0",ios_version:"10.0",skin_tones:!0},{emoji:"🏋️",description:"person lifting weights",category:"People & Body",aliases:["weight_lifting"],tags:["gym","workout"],unicode_version:"7.0",ios_version:"9.1",skin_tones:!0},{emoji:"🏋️♂️",description:"man lifting weights",category:"People & Body",aliases:["weight_lifting_man"],tags:["gym","workout"],unicode_version:"11.0",ios_version:"12.1",skin_tones:!0},{emoji:"🏋️♀️",description:"woman lifting weights",category:"People & Body",aliases:["weight_lifting_woman"],tags:["gym","workout"],unicode_version:"6.0",ios_version:"10.0",skin_tones:!0},{emoji:"🚴",description:"person biking",category:"People & Body",aliases:["bicyclist"],tags:[],unicode_version:"6.0",ios_version:"6.0",skin_tones:!0},{emoji:"🚴♂️",description:"man biking",category:"People & Body",aliases:["biking_man"],tags:[],unicode_version:"11.0",ios_version:"12.1",skin_tones:!0},{emoji:"🚴♀️",description:"woman biking",category:"People & Body",aliases:["biking_woman"],tags:[],unicode_version:"6.0",ios_version:"10.0",skin_tones:!0},{emoji:"🚵",description:"person mountain biking",category:"People & Body",aliases:["mountain_bicyclist"],tags:[],unicode_version:"6.0",ios_version:"6.0",skin_tones:!0},{emoji:"🚵♂️",description:"man mountain biking",category:"People & Body",aliases:["mountain_biking_man"],tags:[],unicode_version:"11.0",ios_version:"12.1",skin_tones:!0},{emoji:"🚵♀️",description:"woman mountain biking",category:"People & Body",aliases:["mountain_biking_woman"],tags:[],unicode_version:"6.0",ios_version:"10.0",skin_tones:!0},{emoji:"🤸",description:"person cartwheeling",category:"People & Body",aliases:["cartwheeling"],tags:[],unicode_version:"11.0",ios_version:"12.1",skin_tones:!0},{emoji:"🤸♂️",description:"man cartwheeling",category:"People & Body",aliases:["man_cartwheeling"],tags:[],unicode_version:"",ios_version:"10.2",skin_tones:!0},{emoji:"🤸♀️",description:"woman cartwheeling",category:"People & Body",aliases:["woman_cartwheeling"],tags:[],unicode_version:"",ios_version:"10.2",skin_tones:!0},{emoji:"🤼",description:"people wrestling",category:"People & Body",aliases:["wrestling"],tags:[],unicode_version:"11.0",ios_version:"12.1"},{emoji:"🤼♂️",description:"men wrestling",category:"People & Body",aliases:["men_wrestling"],tags:[],unicode_version:"9.0",ios_version:"10.2"},{emoji:"🤼♀️",description:"women wrestling",category:"People & Body",aliases:["women_wrestling"],tags:[],unicode_version:"9.0",ios_version:"10.2"},{emoji:"🤽",description:"person playing water polo",category:"People & Body",aliases:["water_polo"],tags:[],unicode_version:"11.0",ios_version:"12.1",skin_tones:!0},{emoji:"🤽♂️",description:"man playing water polo",category:"People & Body",aliases:["man_playing_water_polo"],tags:[],unicode_version:"9.0",ios_version:"10.2",skin_tones:!0},{emoji:"🤽♀️",description:"woman playing water polo",category:"People & Body",aliases:["woman_playing_water_polo"],tags:[],unicode_version:"9.0",ios_version:"10.2",skin_tones:!0},{emoji:"🤾",description:"person playing handball",category:"People & Body",aliases:["handball_person"],tags:[],unicode_version:"11.0",ios_version:"12.1",skin_tones:!0},{emoji:"🤾♂️",description:"man playing handball",category:"People & Body",aliases:["man_playing_handball"],tags:[],unicode_version:"9.0",ios_version:"10.2",skin_tones:!0},{emoji:"🤾♀️",description:"woman playing handball",category:"People & Body",aliases:["woman_playing_handball"],tags:[],unicode_version:"9.0",ios_version:"10.2",skin_tones:!0},{emoji:"🤹",description:"person juggling",category:"People & Body",aliases:["juggling_person"],tags:[],unicode_version:"11.0",ios_version:"12.1",skin_tones:!0},{emoji:"🤹♂️",description:"man juggling",category:"People & Body",aliases:["man_juggling"],tags:[],unicode_version:"9.0",ios_version:"10.2",skin_tones:!0},{emoji:"🤹♀️",description:"woman juggling",category:"People & Body",aliases:["woman_juggling"],tags:[],unicode_version:"9.0",ios_version:"10.2",skin_tones:!0},{emoji:"🧘",description:"person in lotus position",category:"People & Body",aliases:["lotus_position"],tags:["meditation"],unicode_version:"11.0",ios_version:"12.1",skin_tones:!0},{emoji:"🧘♂️",description:"man in lotus position",category:"People & Body",aliases:["lotus_position_man"],tags:["meditation"],unicode_version:"11.0",ios_version:"12.1",skin_tones:!0},{emoji:"🧘♀️",description:"woman in lotus position",category:"People & Body",aliases:["lotus_position_woman"],tags:["meditation"],unicode_version:"11.0",ios_version:"12.1",skin_tones:!0},{emoji:"🛀",description:"person taking bath",category:"People & Body",aliases:["bath"],tags:["shower"],unicode_version:"6.0",ios_version:"6.0",skin_tones:!0},{emoji:"🛌",description:"person in bed",category:"People & Body",aliases:["sleeping_bed"],tags:[],unicode_version:"7.0",ios_version:"9.1",skin_tones:!0},{emoji:"🧑🤝🧑",description:"people holding hands",category:"People & Body",aliases:["people_holding_hands"],tags:["couple","date"],unicode_version:"12.0",ios_version:"13.0",skin_tones:!0},{emoji:"👭",description:"women holding hands",category:"People & Body",aliases:["two_women_holding_hands"],tags:["couple","date"],unicode_version:"6.0",ios_version:"6.0",skin_tones:!0},{emoji:"👫",description:"woman and man holding hands",category:"People & Body",aliases:["couple"],tags:["date"],unicode_version:"6.0",ios_version:"6.0",skin_tones:!0},{emoji:"👬",description:"men holding hands",category:"People & Body",aliases:["two_men_holding_hands"],tags:["couple","date"],unicode_version:"6.0",ios_version:"6.0",skin_tones:!0},{emoji:"💏",description:"kiss",category:"People & Body",aliases:["couplekiss"],tags:[],unicode_version:"6.0",ios_version:"6.0",skin_tones:!0},{emoji:"👩❤️💋👨",description:"kiss: woman, man",category:"People & Body",aliases:["couplekiss_man_woman"],tags:[],unicode_version:"11.0",ios_version:"12.1",skin_tones:!0},{emoji:"👨❤️💋👨",description:"kiss: man, man",category:"People & Body",aliases:["couplekiss_man_man"],tags:[],unicode_version:"6.0",ios_version:"8.3",skin_tones:!0},{emoji:"👩❤️💋👩",description:"kiss: woman, woman",category:"People & Body",aliases:["couplekiss_woman_woman"],tags:[],unicode_version:"6.0",ios_version:"8.3",skin_tones:!0},{emoji:"💑",description:"couple with heart",category:"People & Body",aliases:["couple_with_heart"],tags:[],unicode_version:"6.0",ios_version:"6.0",skin_tones:!0},{emoji:"👩❤️👨",description:"couple with heart: woman, man",category:"People & Body",aliases:["couple_with_heart_woman_man"],tags:[],unicode_version:"11.0",ios_version:"12.1",skin_tones:!0},{emoji:"👨❤️👨",description:"couple with heart: man, man",category:"People & Body",aliases:["couple_with_heart_man_man"],tags:[],unicode_version:"6.0",ios_version:"8.3",skin_tones:!0},{emoji:"👩❤️👩",description:"couple with heart: woman, woman",category:"People & Body",aliases:["couple_with_heart_woman_woman"],tags:[],unicode_version:"6.0",ios_version:"8.3",skin_tones:!0},{emoji:"👪",description:"family",category:"People & Body",aliases:["family"],tags:["home","parents","child"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"👨👩👦",description:"family: man, woman, boy",category:"People & Body",aliases:["family_man_woman_boy"],tags:[],unicode_version:"11.0",ios_version:"12.1"},{emoji:"👨👩👧",description:"family: man, woman, girl",category:"People & Body",aliases:["family_man_woman_girl"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"👨👩👧👦",description:"family: man, woman, girl, boy",category:"People & Body",aliases:["family_man_woman_girl_boy"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"👨👩👦👦",description:"family: man, woman, boy, boy",category:"People & Body",aliases:["family_man_woman_boy_boy"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"👨👩👧👧",description:"family: man, woman, girl, girl",category:"People & Body",aliases:["family_man_woman_girl_girl"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"👨👨👦",description:"family: man, man, boy",category:"People & Body",aliases:["family_man_man_boy"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"👨👨👧",description:"family: man, man, girl",category:"People & Body",aliases:["family_man_man_girl"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"👨👨👧👦",description:"family: man, man, girl, boy",category:"People & Body",aliases:["family_man_man_girl_boy"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"👨👨👦👦",description:"family: man, man, boy, boy",category:"People & Body",aliases:["family_man_man_boy_boy"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"👨👨👧👧",description:"family: man, man, girl, girl",category:"People & Body",aliases:["family_man_man_girl_girl"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"👩👩👦",description:"family: woman, woman, boy",category:"People & Body",aliases:["family_woman_woman_boy"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"👩👩👧",description:"family: woman, woman, girl",category:"People & Body",aliases:["family_woman_woman_girl"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"👩👩👧👦",description:"family: woman, woman, girl, boy",category:"People & Body",aliases:["family_woman_woman_girl_boy"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"👩👩👦👦",description:"family: woman, woman, boy, boy",category:"People & Body",aliases:["family_woman_woman_boy_boy"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"👩👩👧👧",description:"family: woman, woman, girl, girl",category:"People & Body",aliases:["family_woman_woman_girl_girl"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"👨👦",description:"family: man, boy",category:"People & Body",aliases:["family_man_boy"],tags:[],unicode_version:"6.0",ios_version:"10.0"},{emoji:"👨👦👦",description:"family: man, boy, boy",category:"People & Body",aliases:["family_man_boy_boy"],tags:[],unicode_version:"6.0",ios_version:"10.0"},{emoji:"👨👧",description:"family: man, girl",category:"People & Body",aliases:["family_man_girl"],tags:[],unicode_version:"6.0",ios_version:"10.0"},{emoji:"👨👧👦",description:"family: man, girl, boy",category:"People & Body",aliases:["family_man_girl_boy"],tags:[],unicode_version:"6.0",ios_version:"10.0"},{emoji:"👨👧👧",description:"family: man, girl, girl",category:"People & Body",aliases:["family_man_girl_girl"],tags:[],unicode_version:"6.0",ios_version:"10.0"},{emoji:"👩👦",description:"family: woman, boy",category:"People & Body",aliases:["family_woman_boy"],tags:[],unicode_version:"6.0",ios_version:"10.0"},{emoji:"👩👦👦",description:"family: woman, boy, boy",category:"People & Body",aliases:["family_woman_boy_boy"],tags:[],unicode_version:"6.0",ios_version:"10.0"},{emoji:"👩👧",description:"family: woman, girl",category:"People & Body",aliases:["family_woman_girl"],tags:[],unicode_version:"6.0",ios_version:"10.0"},{emoji:"👩👧👦",description:"family: woman, girl, boy",category:"People & Body",aliases:["family_woman_girl_boy"],tags:[],unicode_version:"6.0",ios_version:"10.0"},{emoji:"👩👧👧",description:"family: woman, girl, girl",category:"People & Body",aliases:["family_woman_girl_girl"],tags:[],unicode_version:"6.0",ios_version:"10.0"},{emoji:"🗣️",description:"speaking head",category:"People & Body",aliases:["speaking_head"],tags:[],unicode_version:"7.0",ios_version:"9.1"},{emoji:"👤",description:"bust in silhouette",category:"People & Body",aliases:["bust_in_silhouette"],tags:["user"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"👥",description:"busts in silhouette",category:"People & Body",aliases:["busts_in_silhouette"],tags:["users","group","team"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🫂",description:"people hugging",category:"People & Body",aliases:["people_hugging"],tags:[],unicode_version:"13.0",ios_version:"14.0"},{emoji:"👣",description:"footprints",category:"People & Body",aliases:["footprints"],tags:["feet","tracks"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🐵",description:"monkey face",category:"Animals & Nature",aliases:["monkey_face"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🐒",description:"monkey",category:"Animals & Nature",aliases:["monkey"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🦍",description:"gorilla",category:"Animals & Nature",aliases:["gorilla"],tags:[],unicode_version:"9.0",ios_version:"10.2"},{emoji:"🦧",description:"orangutan",category:"Animals & Nature",aliases:["orangutan"],tags:[],unicode_version:"12.0",ios_version:"13.0"},{emoji:"🐶",description:"dog face",category:"Animals & Nature",aliases:["dog"],tags:["pet"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🐕",description:"dog",category:"Animals & Nature",aliases:["dog2"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🦮",description:"guide dog",category:"Animals & Nature",aliases:["guide_dog"],tags:[],unicode_version:"12.0",ios_version:"13.0"},{emoji:"🐕🦺",description:"service dog",category:"Animals & Nature",aliases:["service_dog"],tags:[],unicode_version:"12.0",ios_version:"13.0"},{emoji:"🐩",description:"poodle",category:"Animals & Nature",aliases:["poodle"],tags:["dog"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🐺",description:"wolf",category:"Animals & Nature",aliases:["wolf"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🦊",description:"fox",category:"Animals & Nature",aliases:["fox_face"],tags:[],unicode_version:"9.0",ios_version:"10.2"},{emoji:"🦝",description:"raccoon",category:"Animals & Nature",aliases:["raccoon"],tags:[],unicode_version:"11.0",ios_version:"12.1"},{emoji:"🐱",description:"cat face",category:"Animals & Nature",aliases:["cat"],tags:["pet"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🐈",description:"cat",category:"Animals & Nature",aliases:["cat2"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🐈⬛",description:"black cat",category:"Animals & Nature",aliases:["black_cat"],tags:[],unicode_version:"13.0",ios_version:"14.0"},{emoji:"🦁",description:"lion",category:"Animals & Nature",aliases:["lion"],tags:[],unicode_version:"8.0",ios_version:"9.1"},{emoji:"🐯",description:"tiger face",category:"Animals & Nature",aliases:["tiger"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🐅",description:"tiger",category:"Animals & Nature",aliases:["tiger2"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🐆",description:"leopard",category:"Animals & Nature",aliases:["leopard"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🐴",description:"horse face",category:"Animals & Nature",aliases:["horse"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🐎",description:"horse",category:"Animals & Nature",aliases:["racehorse"],tags:["speed"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🦄",description:"unicorn",category:"Animals & Nature",aliases:["unicorn"],tags:[],unicode_version:"8.0",ios_version:"9.1"},{emoji:"🦓",description:"zebra",category:"Animals & Nature",aliases:["zebra"],tags:[],unicode_version:"11.0",ios_version:"12.1"},{emoji:"🦌",description:"deer",category:"Animals & Nature",aliases:["deer"],tags:[],unicode_version:"9.0",ios_version:"10.2"},{emoji:"🦬",description:"bison",category:"Animals & Nature",aliases:["bison"],tags:[],unicode_version:"13.0",ios_version:"14.0"},{emoji:"🐮",description:"cow face",category:"Animals & Nature",aliases:["cow"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🐂",description:"ox",category:"Animals & Nature",aliases:["ox"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🐃",description:"water buffalo",category:"Animals & Nature",aliases:["water_buffalo"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🐄",description:"cow",category:"Animals & Nature",aliases:["cow2"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🐷",description:"pig face",category:"Animals & Nature",aliases:["pig"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🐖",description:"pig",category:"Animals & Nature",aliases:["pig2"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🐗",description:"boar",category:"Animals & Nature",aliases:["boar"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🐽",description:"pig nose",category:"Animals & Nature",aliases:["pig_nose"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🐏",description:"ram",category:"Animals & Nature",aliases:["ram"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🐑",description:"ewe",category:"Animals & Nature",aliases:["sheep"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🐐",description:"goat",category:"Animals & Nature",aliases:["goat"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🐪",description:"camel",category:"Animals & Nature",aliases:["dromedary_camel"],tags:["desert"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🐫",description:"two-hump camel",category:"Animals & Nature",aliases:["camel"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🦙",description:"llama",category:"Animals & Nature",aliases:["llama"],tags:[],unicode_version:"11.0",ios_version:"12.1"},{emoji:"🦒",description:"giraffe",category:"Animals & Nature",aliases:["giraffe"],tags:[],unicode_version:"11.0",ios_version:"12.1"},{emoji:"🐘",description:"elephant",category:"Animals & Nature",aliases:["elephant"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🦣",description:"mammoth",category:"Animals & Nature",aliases:["mammoth"],tags:[],unicode_version:"13.0",ios_version:"14.0"},{emoji:"🦏",description:"rhinoceros",category:"Animals & Nature",aliases:["rhinoceros"],tags:[],unicode_version:"9.0",ios_version:"10.2"},{emoji:"🦛",description:"hippopotamus",category:"Animals & Nature",aliases:["hippopotamus"],tags:[],unicode_version:"11.0",ios_version:"12.1"},{emoji:"🐭",description:"mouse face",category:"Animals & Nature",aliases:["mouse"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🐁",description:"mouse",category:"Animals & Nature",aliases:["mouse2"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🐀",description:"rat",category:"Animals & Nature",aliases:["rat"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🐹",description:"hamster",category:"Animals & Nature",aliases:["hamster"],tags:["pet"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🐰",description:"rabbit face",category:"Animals & Nature",aliases:["rabbit"],tags:["bunny"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🐇",description:"rabbit",category:"Animals & Nature",aliases:["rabbit2"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🐿️",description:"chipmunk",category:"Animals & Nature",aliases:["chipmunk"],tags:[],unicode_version:"7.0",ios_version:"9.1"},{emoji:"🦫",description:"beaver",category:"Animals & Nature",aliases:["beaver"],tags:[],unicode_version:"13.0",ios_version:"14.0"},{emoji:"🦔",description:"hedgehog",category:"Animals & Nature",aliases:["hedgehog"],tags:[],unicode_version:"11.0",ios_version:"12.1"},{emoji:"🦇",description:"bat",category:"Animals & Nature",aliases:["bat"],tags:[],unicode_version:"9.0",ios_version:"10.2"},{emoji:"🐻",description:"bear",category:"Animals & Nature",aliases:["bear"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🐻❄️",description:"polar bear",category:"Animals & Nature",aliases:["polar_bear"],tags:[],unicode_version:"13.0",ios_version:"14.0"},{emoji:"🐨",description:"koala",category:"Animals & Nature",aliases:["koala"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🐼",description:"panda",category:"Animals & Nature",aliases:["panda_face"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🦥",description:"sloth",category:"Animals & Nature",aliases:["sloth"],tags:[],unicode_version:"12.0",ios_version:"13.0"},{emoji:"🦦",description:"otter",category:"Animals & Nature",aliases:["otter"],tags:[],unicode_version:"12.0",ios_version:"13.0"},{emoji:"🦨",description:"skunk",category:"Animals & Nature",aliases:["skunk"],tags:[],unicode_version:"12.0",ios_version:"13.0"},{emoji:"🦘",description:"kangaroo",category:"Animals & Nature",aliases:["kangaroo"],tags:[],unicode_version:"11.0",ios_version:"12.1"},{emoji:"🦡",description:"badger",category:"Animals & Nature",aliases:["badger"],tags:[],unicode_version:"11.0",ios_version:"12.1"},{emoji:"🐾",description:"paw prints",category:"Animals & Nature",aliases:["feet","paw_prints"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🦃",description:"turkey",category:"Animals & Nature",aliases:["turkey"],tags:["thanksgiving"],unicode_version:"8.0",ios_version:"9.1"},{emoji:"🐔",description:"chicken",category:"Animals & Nature",aliases:["chicken"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🐓",description:"rooster",category:"Animals & Nature",aliases:["rooster"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🐣",description:"hatching chick",category:"Animals & Nature",aliases:["hatching_chick"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🐤",description:"baby chick",category:"Animals & Nature",aliases:["baby_chick"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🐥",description:"front-facing baby chick",category:"Animals & Nature",aliases:["hatched_chick"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🐦",description:"bird",category:"Animals & Nature",aliases:["bird"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🐧",description:"penguin",category:"Animals & Nature",aliases:["penguin"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🕊️",description:"dove",category:"Animals & Nature",aliases:["dove"],tags:["peace"],unicode_version:"7.0",ios_version:"9.1"},{emoji:"🦅",description:"eagle",category:"Animals & Nature",aliases:["eagle"],tags:[],unicode_version:"9.0",ios_version:"10.2"},{emoji:"🦆",description:"duck",category:"Animals & Nature",aliases:["duck"],tags:[],unicode_version:"9.0",ios_version:"10.2"},{emoji:"🦢",description:"swan",category:"Animals & Nature",aliases:["swan"],tags:[],unicode_version:"11.0",ios_version:"12.1"},{emoji:"🦉",description:"owl",category:"Animals & Nature",aliases:["owl"],tags:[],unicode_version:"9.0",ios_version:"10.2"},{emoji:"🦤",description:"dodo",category:"Animals & Nature",aliases:["dodo"],tags:[],unicode_version:"13.0",ios_version:"14.0"},{emoji:"🪶",description:"feather",category:"Animals & Nature",aliases:["feather"],tags:[],unicode_version:"13.0",ios_version:"14.0"},{emoji:"🦩",description:"flamingo",category:"Animals & Nature",aliases:["flamingo"],tags:[],unicode_version:"12.0",ios_version:"13.0"},{emoji:"🦚",description:"peacock",category:"Animals & Nature",aliases:["peacock"],tags:[],unicode_version:"11.0",ios_version:"12.1"},{emoji:"🦜",description:"parrot",category:"Animals & Nature",aliases:["parrot"],tags:[],unicode_version:"11.0",ios_version:"12.1"},{emoji:"🐸",description:"frog",category:"Animals & Nature",aliases:["frog"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🐊",description:"crocodile",category:"Animals & Nature",aliases:["crocodile"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🐢",description:"turtle",category:"Animals & Nature",aliases:["turtle"],tags:["slow"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🦎",description:"lizard",category:"Animals & Nature",aliases:["lizard"],tags:[],unicode_version:"9.0",ios_version:"10.2"},{emoji:"🐍",description:"snake",category:"Animals & Nature",aliases:["snake"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🐲",description:"dragon face",category:"Animals & Nature",aliases:["dragon_face"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🐉",description:"dragon",category:"Animals & Nature",aliases:["dragon"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🦕",description:"sauropod",category:"Animals & Nature",aliases:["sauropod"],tags:["dinosaur"],unicode_version:"11.0",ios_version:"12.1"},{emoji:"🦖",description:"T-Rex",category:"Animals & Nature",aliases:["t-rex"],tags:["dinosaur"],unicode_version:"11.0",ios_version:"12.1"},{emoji:"🐳",description:"spouting whale",category:"Animals & Nature",aliases:["whale"],tags:["sea"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🐋",description:"whale",category:"Animals & Nature",aliases:["whale2"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🐬",description:"dolphin",category:"Animals & Nature",aliases:["dolphin","flipper"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🦭",description:"seal",category:"Animals & Nature",aliases:["seal"],tags:[],unicode_version:"13.0",ios_version:"14.0"},{emoji:"🐟",description:"fish",category:"Animals & Nature",aliases:["fish"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🐠",description:"tropical fish",category:"Animals & Nature",aliases:["tropical_fish"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🐡",description:"blowfish",category:"Animals & Nature",aliases:["blowfish"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🦈",description:"shark",category:"Animals & Nature",aliases:["shark"],tags:[],unicode_version:"9.0",ios_version:"10.2"},{emoji:"🐙",description:"octopus",category:"Animals & Nature",aliases:["octopus"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🐚",description:"spiral shell",category:"Animals & Nature",aliases:["shell"],tags:["sea","beach"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🐌",description:"snail",category:"Animals & Nature",aliases:["snail"],tags:["slow"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🦋",description:"butterfly",category:"Animals & Nature",aliases:["butterfly"],tags:[],unicode_version:"9.0",ios_version:"10.2"},{emoji:"🐛",description:"bug",category:"Animals & Nature",aliases:["bug"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🐜",description:"ant",category:"Animals & Nature",aliases:["ant"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🐝",description:"honeybee",category:"Animals & Nature",aliases:["bee","honeybee"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🪲",description:"beetle",category:"Animals & Nature",aliases:["beetle"],tags:[],unicode_version:"13.0",ios_version:"14.0"},{emoji:"🐞",description:"lady beetle",category:"Animals & Nature",aliases:["lady_beetle"],tags:["bug"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🦗",description:"cricket",category:"Animals & Nature",aliases:["cricket"],tags:[],unicode_version:"11.0",ios_version:"12.1"},{emoji:"🪳",description:"cockroach",category:"Animals & Nature",aliases:["cockroach"],tags:[],unicode_version:"13.0",ios_version:"14.0"},{emoji:"🕷️",description:"spider",category:"Animals & Nature",aliases:["spider"],tags:[],unicode_version:"7.0",ios_version:"9.1"},{emoji:"🕸️",description:"spider web",category:"Animals & Nature",aliases:["spider_web"],tags:[],unicode_version:"7.0",ios_version:"9.1"},{emoji:"🦂",description:"scorpion",category:"Animals & Nature",aliases:["scorpion"],tags:[],unicode_version:"8.0",ios_version:"9.1"},{emoji:"🦟",description:"mosquito",category:"Animals & Nature",aliases:["mosquito"],tags:[],unicode_version:"11.0",ios_version:"12.1"},{emoji:"🪰",description:"fly",category:"Animals & Nature",aliases:["fly"],tags:[],unicode_version:"13.0",ios_version:"14.0"},{emoji:"🪱",description:"worm",category:"Animals & Nature",aliases:["worm"],tags:[],unicode_version:"13.0",ios_version:"14.0"},{emoji:"🦠",description:"microbe",category:"Animals & Nature",aliases:["microbe"],tags:["germ"],unicode_version:"11.0",ios_version:"12.1"},{emoji:"💐",description:"bouquet",category:"Animals & Nature",aliases:["bouquet"],tags:["flowers"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🌸",description:"cherry blossom",category:"Animals & Nature",aliases:["cherry_blossom"],tags:["flower","spring"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"💮",description:"white flower",category:"Animals & Nature",aliases:["white_flower"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🏵️",description:"rosette",category:"Animals & Nature",aliases:["rosette"],tags:[],unicode_version:"7.0",ios_version:"9.1"},{emoji:"🌹",description:"rose",category:"Animals & Nature",aliases:["rose"],tags:["flower"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🥀",description:"wilted flower",category:"Animals & Nature",aliases:["wilted_flower"],tags:[],unicode_version:"9.0",ios_version:"10.2"},{emoji:"🌺",description:"hibiscus",category:"Animals & Nature",aliases:["hibiscus"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🌻",description:"sunflower",category:"Animals & Nature",aliases:["sunflower"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🌼",description:"blossom",category:"Animals & Nature",aliases:["blossom"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🌷",description:"tulip",category:"Animals & Nature",aliases:["tulip"],tags:["flower"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🌱",description:"seedling",category:"Animals & Nature",aliases:["seedling"],tags:["plant"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🪴",description:"potted plant",category:"Animals & Nature",aliases:["potted_plant"],tags:[],unicode_version:"13.0",ios_version:"14.0"},{emoji:"🌲",description:"evergreen tree",category:"Animals & Nature",aliases:["evergreen_tree"],tags:["wood"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🌳",description:"deciduous tree",category:"Animals & Nature",aliases:["deciduous_tree"],tags:["wood"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🌴",description:"palm tree",category:"Animals & Nature",aliases:["palm_tree"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🌵",description:"cactus",category:"Animals & Nature",aliases:["cactus"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🌾",description:"sheaf of rice",category:"Animals & Nature",aliases:["ear_of_rice"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🌿",description:"herb",category:"Animals & Nature",aliases:["herb"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"☘️",description:"shamrock",category:"Animals & Nature",aliases:["shamrock"],tags:[],unicode_version:"4.1",ios_version:"9.1"},{emoji:"🍀",description:"four leaf clover",category:"Animals & Nature",aliases:["four_leaf_clover"],tags:["luck"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🍁",description:"maple leaf",category:"Animals & Nature",aliases:["maple_leaf"],tags:["canada"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🍂",description:"fallen leaf",category:"Animals & Nature",aliases:["fallen_leaf"],tags:["autumn"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🍃",description:"leaf fluttering in wind",category:"Animals & Nature",aliases:["leaves"],tags:["leaf"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🍇",description:"grapes",category:"Food & Drink",aliases:["grapes"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🍈",description:"melon",category:"Food & Drink",aliases:["melon"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🍉",description:"watermelon",category:"Food & Drink",aliases:["watermelon"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🍊",description:"tangerine",category:"Food & Drink",aliases:["tangerine","orange","mandarin"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🍋",description:"lemon",category:"Food & Drink",aliases:["lemon"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🍌",description:"banana",category:"Food & Drink",aliases:["banana"],tags:["fruit"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🍍",description:"pineapple",category:"Food & Drink",aliases:["pineapple"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🥭",description:"mango",category:"Food & Drink",aliases:["mango"],tags:[],unicode_version:"11.0",ios_version:"12.1"},{emoji:"🍎",description:"red apple",category:"Food & Drink",aliases:["apple"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🍏",description:"green apple",category:"Food & Drink",aliases:["green_apple"],tags:["fruit"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🍐",description:"pear",category:"Food & Drink",aliases:["pear"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🍑",description:"peach",category:"Food & Drink",aliases:["peach"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🍒",description:"cherries",category:"Food & Drink",aliases:["cherries"],tags:["fruit"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🍓",description:"strawberry",category:"Food & Drink",aliases:["strawberry"],tags:["fruit"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🫐",description:"blueberries",category:"Food & Drink",aliases:["blueberries"],tags:[],unicode_version:"13.0",ios_version:"14.0"},{emoji:"🥝",description:"kiwi fruit",category:"Food & Drink",aliases:["kiwi_fruit"],tags:[],unicode_version:"9.0",ios_version:"10.2"},{emoji:"🍅",description:"tomato",category:"Food & Drink",aliases:["tomato"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🫒",description:"olive",category:"Food & Drink",aliases:["olive"],tags:[],unicode_version:"13.0",ios_version:"14.0"},{emoji:"🥥",description:"coconut",category:"Food & Drink",aliases:["coconut"],tags:[],unicode_version:"11.0",ios_version:"12.1"},{emoji:"🥑",description:"avocado",category:"Food & Drink",aliases:["avocado"],tags:[],unicode_version:"9.0",ios_version:"10.2"},{emoji:"🍆",description:"eggplant",category:"Food & Drink",aliases:["eggplant"],tags:["aubergine"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🥔",description:"potato",category:"Food & Drink",aliases:["potato"],tags:[],unicode_version:"9.0",ios_version:"10.2"},{emoji:"🥕",description:"carrot",category:"Food & Drink",aliases:["carrot"],tags:[],unicode_version:"9.0",ios_version:"10.2"},{emoji:"🌽",description:"ear of corn",category:"Food & Drink",aliases:["corn"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🌶️",description:"hot pepper",category:"Food & Drink",aliases:["hot_pepper"],tags:["spicy"],unicode_version:"7.0",ios_version:"9.1"},{emoji:"🫑",description:"bell pepper",category:"Food & Drink",aliases:["bell_pepper"],tags:[],unicode_version:"13.0",ios_version:"14.0"},{emoji:"🥒",description:"cucumber",category:"Food & Drink",aliases:["cucumber"],tags:[],unicode_version:"9.0",ios_version:"10.2"},{emoji:"🥬",description:"leafy green",category:"Food & Drink",aliases:["leafy_green"],tags:[],unicode_version:"11.0",ios_version:"12.1"},{emoji:"🥦",description:"broccoli",category:"Food & Drink",aliases:["broccoli"],tags:[],unicode_version:"11.0",ios_version:"12.1"},{emoji:"🧄",description:"garlic",category:"Food & Drink",aliases:["garlic"],tags:[],unicode_version:"12.0",ios_version:"13.0"},{emoji:"🧅",description:"onion",category:"Food & Drink",aliases:["onion"],tags:[],unicode_version:"12.0",ios_version:"13.0"},{emoji:"🍄",description:"mushroom",category:"Food & Drink",aliases:["mushroom"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🥜",description:"peanuts",category:"Food & Drink",aliases:["peanuts"],tags:[],unicode_version:"9.0",ios_version:"10.2"},{emoji:"🌰",description:"chestnut",category:"Food & Drink",aliases:["chestnut"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🍞",description:"bread",category:"Food & Drink",aliases:["bread"],tags:["toast"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🥐",description:"croissant",category:"Food & Drink",aliases:["croissant"],tags:[],unicode_version:"9.0",ios_version:"10.2"},{emoji:"🥖",description:"baguette bread",category:"Food & Drink",aliases:["baguette_bread"],tags:[],unicode_version:"9.0",ios_version:"10.2"},{emoji:"🫓",description:"flatbread",category:"Food & Drink",aliases:["flatbread"],tags:[],unicode_version:"13.0",ios_version:"14.0"},{emoji:"🥨",description:"pretzel",category:"Food & Drink",aliases:["pretzel"],tags:[],unicode_version:"11.0",ios_version:"12.1"},{emoji:"🥯",description:"bagel",category:"Food & Drink",aliases:["bagel"],tags:[],unicode_version:"11.0",ios_version:"12.1"},{emoji:"🥞",description:"pancakes",category:"Food & Drink",aliases:["pancakes"],tags:[],unicode_version:"9.0",ios_version:"10.2"},{emoji:"🧇",description:"waffle",category:"Food & Drink",aliases:["waffle"],tags:[],unicode_version:"12.0",ios_version:"13.0"},{emoji:"🧀",description:"cheese wedge",category:"Food & Drink",aliases:["cheese"],tags:[],unicode_version:"8.0",ios_version:"9.1"},{emoji:"🍖",description:"meat on bone",category:"Food & Drink",aliases:["meat_on_bone"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🍗",description:"poultry leg",category:"Food & Drink",aliases:["poultry_leg"],tags:["meat","chicken"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🥩",description:"cut of meat",category:"Food & Drink",aliases:["cut_of_meat"],tags:[],unicode_version:"11.0",ios_version:"12.1"},{emoji:"🥓",description:"bacon",category:"Food & Drink",aliases:["bacon"],tags:[],unicode_version:"9.0",ios_version:"10.2"},{emoji:"🍔",description:"hamburger",category:"Food & Drink",aliases:["hamburger"],tags:["burger"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🍟",description:"french fries",category:"Food & Drink",aliases:["fries"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🍕",description:"pizza",category:"Food & Drink",aliases:["pizza"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🌭",description:"hot dog",category:"Food & Drink",aliases:["hotdog"],tags:[],unicode_version:"8.0",ios_version:"9.1"},{emoji:"🥪",description:"sandwich",category:"Food & Drink",aliases:["sandwich"],tags:[],unicode_version:"11.0",ios_version:"12.1"},{emoji:"🌮",description:"taco",category:"Food & Drink",aliases:["taco"],tags:[],unicode_version:"8.0",ios_version:"9.1"},{emoji:"🌯",description:"burrito",category:"Food & Drink",aliases:["burrito"],tags:[],unicode_version:"8.0",ios_version:"9.1"},{emoji:"🫔",description:"tamale",category:"Food & Drink",aliases:["tamale"],tags:[],unicode_version:"13.0",ios_version:"14.0"},{emoji:"🥙",description:"stuffed flatbread",category:"Food & Drink",aliases:["stuffed_flatbread"],tags:[],unicode_version:"9.0",ios_version:"10.2"},{emoji:"🧆",description:"falafel",category:"Food & Drink",aliases:["falafel"],tags:[],unicode_version:"12.0",ios_version:"13.0"},{emoji:"🥚",description:"egg",category:"Food & Drink",aliases:["egg"],tags:[],unicode_version:"9.0",ios_version:"10.2"},{emoji:"🍳",description:"cooking",category:"Food & Drink",aliases:["fried_egg"],tags:["breakfast"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🥘",description:"shallow pan of food",category:"Food & Drink",aliases:["shallow_pan_of_food"],tags:["paella","curry"],unicode_version:"",ios_version:"10.2"},{emoji:"🍲",description:"pot of food",category:"Food & Drink",aliases:["stew"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🫕",description:"fondue",category:"Food & Drink",aliases:["fondue"],tags:[],unicode_version:"13.0",ios_version:"14.0"},{emoji:"🥣",description:"bowl with spoon",category:"Food & Drink",aliases:["bowl_with_spoon"],tags:[],unicode_version:"11.0",ios_version:"12.1"},{emoji:"🥗",description:"green salad",category:"Food & Drink",aliases:["green_salad"],tags:[],unicode_version:"9.0",ios_version:"10.2"},{emoji:"🍿",description:"popcorn",category:"Food & Drink",aliases:["popcorn"],tags:[],unicode_version:"8.0",ios_version:"9.1"},{emoji:"🧈",description:"butter",category:"Food & Drink",aliases:["butter"],tags:[],unicode_version:"12.0",ios_version:"13.0"},{emoji:"🧂",description:"salt",category:"Food & Drink",aliases:["salt"],tags:[],unicode_version:"11.0",ios_version:"12.1"},{emoji:"🥫",description:"canned food",category:"Food & Drink",aliases:["canned_food"],tags:[],unicode_version:"11.0",ios_version:"12.1"},{emoji:"🍱",description:"bento box",category:"Food & Drink",aliases:["bento"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🍘",description:"rice cracker",category:"Food & Drink",aliases:["rice_cracker"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🍙",description:"rice ball",category:"Food & Drink",aliases:["rice_ball"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🍚",description:"cooked rice",category:"Food & Drink",aliases:["rice"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🍛",description:"curry rice",category:"Food & Drink",aliases:["curry"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🍜",description:"steaming bowl",category:"Food & Drink",aliases:["ramen"],tags:["noodle"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🍝",description:"spaghetti",category:"Food & Drink",aliases:["spaghetti"],tags:["pasta"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🍠",description:"roasted sweet potato",category:"Food & Drink",aliases:["sweet_potato"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🍢",description:"oden",category:"Food & Drink",aliases:["oden"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🍣",description:"sushi",category:"Food & Drink",aliases:["sushi"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🍤",description:"fried shrimp",category:"Food & Drink",aliases:["fried_shrimp"],tags:["tempura"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🍥",description:"fish cake with swirl",category:"Food & Drink",aliases:["fish_cake"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🥮",description:"moon cake",category:"Food & Drink",aliases:["moon_cake"],tags:[],unicode_version:"11.0",ios_version:"12.1"},{emoji:"🍡",description:"dango",category:"Food & Drink",aliases:["dango"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🥟",description:"dumpling",category:"Food & Drink",aliases:["dumpling"],tags:[],unicode_version:"11.0",ios_version:"12.1"},{emoji:"🥠",description:"fortune cookie",category:"Food & Drink",aliases:["fortune_cookie"],tags:[],unicode_version:"11.0",ios_version:"12.1"},{emoji:"🥡",description:"takeout box",category:"Food & Drink",aliases:["takeout_box"],tags:[],unicode_version:"11.0",ios_version:"12.1"},{emoji:"🦀",description:"crab",category:"Food & Drink",aliases:["crab"],tags:[],unicode_version:"8.0",ios_version:"9.1"},{emoji:"🦞",description:"lobster",category:"Food & Drink",aliases:["lobster"],tags:[],unicode_version:"11.0",ios_version:"12.1"},{emoji:"🦐",description:"shrimp",category:"Food & Drink",aliases:["shrimp"],tags:[],unicode_version:"9.0",ios_version:"10.2"},{emoji:"🦑",description:"squid",category:"Food & Drink",aliases:["squid"],tags:[],unicode_version:"9.0",ios_version:"10.2"},{emoji:"🦪",description:"oyster",category:"Food & Drink",aliases:["oyster"],tags:[],unicode_version:"12.0",ios_version:"13.0"},{emoji:"🍦",description:"soft ice cream",category:"Food & Drink",aliases:["icecream"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🍧",description:"shaved ice",category:"Food & Drink",aliases:["shaved_ice"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🍨",description:"ice cream",category:"Food & Drink",aliases:["ice_cream"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🍩",description:"doughnut",category:"Food & Drink",aliases:["doughnut"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🍪",description:"cookie",category:"Food & Drink",aliases:["cookie"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🎂",description:"birthday cake",category:"Food & Drink",aliases:["birthday"],tags:["party"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🍰",description:"shortcake",category:"Food & Drink",aliases:["cake"],tags:["dessert"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🧁",description:"cupcake",category:"Food & Drink",aliases:["cupcake"],tags:[],unicode_version:"11.0",ios_version:"12.1"},{emoji:"🥧",description:"pie",category:"Food & Drink",aliases:["pie"],tags:[],unicode_version:"11.0",ios_version:"12.1"},{emoji:"🍫",description:"chocolate bar",category:"Food & Drink",aliases:["chocolate_bar"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🍬",description:"candy",category:"Food & Drink",aliases:["candy"],tags:["sweet"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🍭",description:"lollipop",category:"Food & Drink",aliases:["lollipop"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🍮",description:"custard",category:"Food & Drink",aliases:["custard"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🍯",description:"honey pot",category:"Food & Drink",aliases:["honey_pot"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🍼",description:"baby bottle",category:"Food & Drink",aliases:["baby_bottle"],tags:["milk"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🥛",description:"glass of milk",category:"Food & Drink",aliases:["milk_glass"],tags:[],unicode_version:"9.0",ios_version:"10.2"},{emoji:"☕",description:"hot beverage",category:"Food & Drink",aliases:["coffee"],tags:["cafe","espresso"],unicode_version:"4.0",ios_version:"6.0"},{emoji:"🫖",description:"teapot",category:"Food & Drink",aliases:["teapot"],tags:[],unicode_version:"13.0",ios_version:"14.0"},{emoji:"🍵",description:"teacup without handle",category:"Food & Drink",aliases:["tea"],tags:["green","breakfast"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🍶",description:"sake",category:"Food & Drink",aliases:["sake"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🍾",description:"bottle with popping cork",category:"Food & Drink",aliases:["champagne"],tags:["bottle","bubbly","celebration"],unicode_version:"8.0",ios_version:"9.1"},{emoji:"🍷",description:"wine glass",category:"Food & Drink",aliases:["wine_glass"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🍸",description:"cocktail glass",category:"Food & Drink",aliases:["cocktail"],tags:["drink"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🍹",description:"tropical drink",category:"Food & Drink",aliases:["tropical_drink"],tags:["summer","vacation"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🍺",description:"beer mug",category:"Food & Drink",aliases:["beer"],tags:["drink"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🍻",description:"clinking beer mugs",category:"Food & Drink",aliases:["beers"],tags:["drinks"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🥂",description:"clinking glasses",category:"Food & Drink",aliases:["clinking_glasses"],tags:["cheers","toast"],unicode_version:"9.0",ios_version:"10.2"},{emoji:"🥃",description:"tumbler glass",category:"Food & Drink",aliases:["tumbler_glass"],tags:["whisky"],unicode_version:"9.0",ios_version:"10.2"},{emoji:"🥤",description:"cup with straw",category:"Food & Drink",aliases:["cup_with_straw"],tags:[],unicode_version:"11.0",ios_version:"12.1"},{emoji:"🧋",description:"bubble tea",category:"Food & Drink",aliases:["bubble_tea"],tags:[],unicode_version:"13.0",ios_version:"14.0"},{emoji:"🧃",description:"beverage box",category:"Food & Drink",aliases:["beverage_box"],tags:[],unicode_version:"12.0",ios_version:"13.0"},{emoji:"🧉",description:"mate",category:"Food & Drink",aliases:["mate"],tags:[],unicode_version:"12.0",ios_version:"13.0"},{emoji:"🧊",description:"ice",category:"Food & Drink",aliases:["ice_cube"],tags:[],unicode_version:"12.0",ios_version:"13.0"},{emoji:"🥢",description:"chopsticks",category:"Food & Drink",aliases:["chopsticks"],tags:[],unicode_version:"11.0",ios_version:"12.1"},{emoji:"🍽️",description:"fork and knife with plate",category:"Food & Drink",aliases:["plate_with_cutlery"],tags:["dining","dinner"],unicode_version:"7.0",ios_version:"9.1"},{emoji:"🍴",description:"fork and knife",category:"Food & Drink",aliases:["fork_and_knife"],tags:["cutlery"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🥄",description:"spoon",category:"Food & Drink",aliases:["spoon"],tags:[],unicode_version:"9.0",ios_version:"10.2"},{emoji:"🔪",description:"kitchen knife",category:"Food & Drink",aliases:["hocho","knife"],tags:["cut","chop"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🏺",description:"amphora",category:"Food & Drink",aliases:["amphora"],tags:[],unicode_version:"8.0",ios_version:"9.1"},{emoji:"🌍",description:"globe showing Europe-Africa",category:"Travel & Places",aliases:["earth_africa"],tags:["globe","world","international"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🌎",description:"globe showing Americas",category:"Travel & Places",aliases:["earth_americas"],tags:["globe","world","international"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🌏",description:"globe showing Asia-Australia",category:"Travel & Places",aliases:["earth_asia"],tags:["globe","world","international"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🌐",description:"globe with meridians",category:"Travel & Places",aliases:["globe_with_meridians"],tags:["world","global","international"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🗺️",description:"world map",category:"Travel & Places",aliases:["world_map"],tags:["travel"],unicode_version:"7.0",ios_version:"9.1"},{emoji:"🗾",description:"map of Japan",category:"Travel & Places",aliases:["japan"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🧭",description:"compass",category:"Travel & Places",aliases:["compass"],tags:[],unicode_version:"11.0",ios_version:"12.1"},{emoji:"🏔️",description:"snow-capped mountain",category:"Travel & Places",aliases:["mountain_snow"],tags:[],unicode_version:"7.0",ios_version:"9.1"},{emoji:"⛰️",description:"mountain",category:"Travel & Places",aliases:["mountain"],tags:[],unicode_version:"5.2",ios_version:"9.1"},{emoji:"🌋",description:"volcano",category:"Travel & Places",aliases:["volcano"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🗻",description:"mount fuji",category:"Travel & Places",aliases:["mount_fuji"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🏕️",description:"camping",category:"Travel & Places",aliases:["camping"],tags:[],unicode_version:"7.0",ios_version:"9.1"},{emoji:"🏖️",description:"beach with umbrella",category:"Travel & Places",aliases:["beach_umbrella"],tags:[],unicode_version:"7.0",ios_version:"9.1"},{emoji:"🏜️",description:"desert",category:"Travel & Places",aliases:["desert"],tags:[],unicode_version:"7.0",ios_version:"9.1"},{emoji:"🏝️",description:"desert island",category:"Travel & Places",aliases:["desert_island"],tags:[],unicode_version:"7.0",ios_version:"9.1"},{emoji:"🏞️",description:"national park",category:"Travel & Places",aliases:["national_park"],tags:[],unicode_version:"7.0",ios_version:"9.1"},{emoji:"🏟️",description:"stadium",category:"Travel & Places",aliases:["stadium"],tags:[],unicode_version:"7.0",ios_version:"9.1"},{emoji:"🏛️",description:"classical building",category:"Travel & Places",aliases:["classical_building"],tags:[],unicode_version:"7.0",ios_version:"9.1"},{emoji:"🏗️",description:"building construction",category:"Travel & Places",aliases:["building_construction"],tags:[],unicode_version:"7.0",ios_version:"9.1"},{emoji:"🧱",description:"brick",category:"Travel & Places",aliases:["bricks"],tags:[],unicode_version:"11.0",ios_version:"12.1"},{emoji:"🪨",description:"rock",category:"Travel & Places",aliases:["rock"],tags:[],unicode_version:"13.0",ios_version:"14.0"},{emoji:"🪵",description:"wood",category:"Travel & Places",aliases:["wood"],tags:[],unicode_version:"13.0",ios_version:"14.0"},{emoji:"🛖",description:"hut",category:"Travel & Places",aliases:["hut"],tags:[],unicode_version:"13.0",ios_version:"14.0"},{emoji:"🏘️",description:"houses",category:"Travel & Places",aliases:["houses"],tags:[],unicode_version:"7.0",ios_version:"9.1"},{emoji:"🏚️",description:"derelict house",category:"Travel & Places",aliases:["derelict_house"],tags:[],unicode_version:"7.0",ios_version:"9.1"},{emoji:"🏠",description:"house",category:"Travel & Places",aliases:["house"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🏡",description:"house with garden",category:"Travel & Places",aliases:["house_with_garden"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🏢",description:"office building",category:"Travel & Places",aliases:["office"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🏣",description:"Japanese post office",category:"Travel & Places",aliases:["post_office"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🏤",description:"post office",category:"Travel & Places",aliases:["european_post_office"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🏥",description:"hospital",category:"Travel & Places",aliases:["hospital"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🏦",description:"bank",category:"Travel & Places",aliases:["bank"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🏨",description:"hotel",category:"Travel & Places",aliases:["hotel"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🏩",description:"love hotel",category:"Travel & Places",aliases:["love_hotel"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🏪",description:"convenience store",category:"Travel & Places",aliases:["convenience_store"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🏫",description:"school",category:"Travel & Places",aliases:["school"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🏬",description:"department store",category:"Travel & Places",aliases:["department_store"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🏭",description:"factory",category:"Travel & Places",aliases:["factory"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🏯",description:"Japanese castle",category:"Travel & Places",aliases:["japanese_castle"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🏰",description:"castle",category:"Travel & Places",aliases:["european_castle"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"💒",description:"wedding",category:"Travel & Places",aliases:["wedding"],tags:["marriage"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🗼",description:"Tokyo tower",category:"Travel & Places",aliases:["tokyo_tower"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🗽",description:"Statue of Liberty",category:"Travel & Places",aliases:["statue_of_liberty"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"⛪",description:"church",category:"Travel & Places",aliases:["church"],tags:[],unicode_version:"5.2",ios_version:"6.0"},{emoji:"🕌",description:"mosque",category:"Travel & Places",aliases:["mosque"],tags:[],unicode_version:"8.0",ios_version:"9.1"},{emoji:"🛕",description:"hindu temple",category:"Travel & Places",aliases:["hindu_temple"],tags:[],unicode_version:"12.0",ios_version:"13.0"},{emoji:"🕍",description:"synagogue",category:"Travel & Places",aliases:["synagogue"],tags:[],unicode_version:"8.0",ios_version:"9.1"},{emoji:"⛩️",description:"shinto shrine",category:"Travel & Places",aliases:["shinto_shrine"],tags:[],unicode_version:"5.2",ios_version:"9.1"},{emoji:"🕋",description:"kaaba",category:"Travel & Places",aliases:["kaaba"],tags:[],unicode_version:"8.0",ios_version:"9.1"},{emoji:"⛲",description:"fountain",category:"Travel & Places",aliases:["fountain"],tags:[],unicode_version:"5.2",ios_version:"6.0"},{emoji:"⛺",description:"tent",category:"Travel & Places",aliases:["tent"],tags:["camping"],unicode_version:"5.2",ios_version:"6.0"},{emoji:"🌁",description:"foggy",category:"Travel & Places",aliases:["foggy"],tags:["karl"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🌃",description:"night with stars",category:"Travel & Places",aliases:["night_with_stars"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🏙️",description:"cityscape",category:"Travel & Places",aliases:["cityscape"],tags:["skyline"],unicode_version:"7.0",ios_version:"9.1"},{emoji:"🌄",description:"sunrise over mountains",category:"Travel & Places",aliases:["sunrise_over_mountains"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🌅",description:"sunrise",category:"Travel & Places",aliases:["sunrise"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🌆",description:"cityscape at dusk",category:"Travel & Places",aliases:["city_sunset"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🌇",description:"sunset",category:"Travel & Places",aliases:["city_sunrise"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🌉",description:"bridge at night",category:"Travel & Places",aliases:["bridge_at_night"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"♨️",description:"hot springs",category:"Travel & Places",aliases:["hotsprings"],tags:[],unicode_version:"",ios_version:"6.0"},{emoji:"🎠",description:"carousel horse",category:"Travel & Places",aliases:["carousel_horse"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🎡",description:"ferris wheel",category:"Travel & Places",aliases:["ferris_wheel"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🎢",description:"roller coaster",category:"Travel & Places",aliases:["roller_coaster"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"💈",description:"barber pole",category:"Travel & Places",aliases:["barber"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🎪",description:"circus tent",category:"Travel & Places",aliases:["circus_tent"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🚂",description:"locomotive",category:"Travel & Places",aliases:["steam_locomotive"],tags:["train"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🚃",description:"railway car",category:"Travel & Places",aliases:["railway_car"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🚄",description:"high-speed train",category:"Travel & Places",aliases:["bullettrain_side"],tags:["train"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🚅",description:"bullet train",category:"Travel & Places",aliases:["bullettrain_front"],tags:["train"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🚆",description:"train",category:"Travel & Places",aliases:["train2"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🚇",description:"metro",category:"Travel & Places",aliases:["metro"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🚈",description:"light rail",category:"Travel & Places",aliases:["light_rail"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🚉",description:"station",category:"Travel & Places",aliases:["station"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🚊",description:"tram",category:"Travel & Places",aliases:["tram"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🚝",description:"monorail",category:"Travel & Places",aliases:["monorail"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🚞",description:"mountain railway",category:"Travel & Places",aliases:["mountain_railway"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🚋",description:"tram car",category:"Travel & Places",aliases:["train"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🚌",description:"bus",category:"Travel & Places",aliases:["bus"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🚍",description:"oncoming bus",category:"Travel & Places",aliases:["oncoming_bus"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🚎",description:"trolleybus",category:"Travel & Places",aliases:["trolleybus"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🚐",description:"minibus",category:"Travel & Places",aliases:["minibus"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🚑",description:"ambulance",category:"Travel & Places",aliases:["ambulance"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🚒",description:"fire engine",category:"Travel & Places",aliases:["fire_engine"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🚓",description:"police car",category:"Travel & Places",aliases:["police_car"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🚔",description:"oncoming police car",category:"Travel & Places",aliases:["oncoming_police_car"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🚕",description:"taxi",category:"Travel & Places",aliases:["taxi"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🚖",description:"oncoming taxi",category:"Travel & Places",aliases:["oncoming_taxi"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🚗",description:"automobile",category:"Travel & Places",aliases:["car","red_car"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🚘",description:"oncoming automobile",category:"Travel & Places",aliases:["oncoming_automobile"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🚙",description:"sport utility vehicle",category:"Travel & Places",aliases:["blue_car"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🛻",description:"pickup truck",category:"Travel & Places",aliases:["pickup_truck"],tags:[],unicode_version:"13.0",ios_version:"14.0"},{emoji:"🚚",description:"delivery truck",category:"Travel & Places",aliases:["truck"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🚛",description:"articulated lorry",category:"Travel & Places",aliases:["articulated_lorry"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🚜",description:"tractor",category:"Travel & Places",aliases:["tractor"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🏎️",description:"racing car",category:"Travel & Places",aliases:["racing_car"],tags:[],unicode_version:"7.0",ios_version:"9.1"},{emoji:"🏍️",description:"motorcycle",category:"Travel & Places",aliases:["motorcycle"],tags:[],unicode_version:"7.0",ios_version:"9.1"},{emoji:"🛵",description:"motor scooter",category:"Travel & Places",aliases:["motor_scooter"],tags:[],unicode_version:"9.0",ios_version:"10.2"},{emoji:"🦽",description:"manual wheelchair",category:"Travel & Places",aliases:["manual_wheelchair"],tags:[],unicode_version:"12.0",ios_version:"13.0"},{emoji:"🦼",description:"motorized wheelchair",category:"Travel & Places",aliases:["motorized_wheelchair"],tags:[],unicode_version:"12.0",ios_version:"13.0"},{emoji:"🛺",description:"auto rickshaw",category:"Travel & Places",aliases:["auto_rickshaw"],tags:[],unicode_version:"12.0",ios_version:"13.0"},{emoji:"🚲",description:"bicycle",category:"Travel & Places",aliases:["bike"],tags:["bicycle"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🛴",description:"kick scooter",category:"Travel & Places",aliases:["kick_scooter"],tags:[],unicode_version:"9.0",ios_version:"10.2"},{emoji:"🛹",description:"skateboard",category:"Travel & Places",aliases:["skateboard"],tags:[],unicode_version:"11.0",ios_version:"12.1"},{emoji:"🛼",description:"roller skate",category:"Travel & Places",aliases:["roller_skate"],tags:[],unicode_version:"13.0",ios_version:"14.0"},{emoji:"🚏",description:"bus stop",category:"Travel & Places",aliases:["busstop"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🛣️",description:"motorway",category:"Travel & Places",aliases:["motorway"],tags:[],unicode_version:"7.0",ios_version:"9.1"},{emoji:"🛤️",description:"railway track",category:"Travel & Places",aliases:["railway_track"],tags:[],unicode_version:"7.0",ios_version:"9.1"},{emoji:"🛢️",description:"oil drum",category:"Travel & Places",aliases:["oil_drum"],tags:[],unicode_version:"7.0",ios_version:"9.1"},{emoji:"⛽",description:"fuel pump",category:"Travel & Places",aliases:["fuelpump"],tags:[],unicode_version:"5.2",ios_version:"6.0"},{emoji:"🚨",description:"police car light",category:"Travel & Places",aliases:["rotating_light"],tags:["911","emergency"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🚥",description:"horizontal traffic light",category:"Travel & Places",aliases:["traffic_light"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🚦",description:"vertical traffic light",category:"Travel & Places",aliases:["vertical_traffic_light"],tags:["semaphore"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🛑",description:"stop sign",category:"Travel & Places",aliases:["stop_sign"],tags:[],unicode_version:"9.0",ios_version:"10.2"},{emoji:"🚧",description:"construction",category:"Travel & Places",aliases:["construction"],tags:["wip"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"⚓",description:"anchor",category:"Travel & Places",aliases:["anchor"],tags:["ship"],unicode_version:"4.1",ios_version:"6.0"},{emoji:"⛵",description:"sailboat",category:"Travel & Places",aliases:["boat","sailboat"],tags:[],unicode_version:"5.2",ios_version:"6.0"},{emoji:"🛶",description:"canoe",category:"Travel & Places",aliases:["canoe"],tags:[],unicode_version:"9.0",ios_version:"10.2"},{emoji:"🚤",description:"speedboat",category:"Travel & Places",aliases:["speedboat"],tags:["ship"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🛳️",description:"passenger ship",category:"Travel & Places",aliases:["passenger_ship"],tags:["cruise"],unicode_version:"7.0",ios_version:"9.1"},{emoji:"⛴️",description:"ferry",category:"Travel & Places",aliases:["ferry"],tags:[],unicode_version:"5.2",ios_version:"9.1"},{emoji:"🛥️",description:"motor boat",category:"Travel & Places",aliases:["motor_boat"],tags:[],unicode_version:"7.0",ios_version:"9.1"},{emoji:"🚢",description:"ship",category:"Travel & Places",aliases:["ship"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"✈️",description:"airplane",category:"Travel & Places",aliases:["airplane"],tags:["flight"],unicode_version:"",ios_version:"6.0"},{emoji:"🛩️",description:"small airplane",category:"Travel & Places",aliases:["small_airplane"],tags:["flight"],unicode_version:"7.0",ios_version:"9.1"},{emoji:"🛫",description:"airplane departure",category:"Travel & Places",aliases:["flight_departure"],tags:[],unicode_version:"7.0",ios_version:"9.1"},{emoji:"🛬",description:"airplane arrival",category:"Travel & Places",aliases:["flight_arrival"],tags:[],unicode_version:"7.0",ios_version:"9.1"},{emoji:"🪂",description:"parachute",category:"Travel & Places",aliases:["parachute"],tags:[],unicode_version:"12.0",ios_version:"13.0"},{emoji:"💺",description:"seat",category:"Travel & Places",aliases:["seat"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🚁",description:"helicopter",category:"Travel & Places",aliases:["helicopter"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🚟",description:"suspension railway",category:"Travel & Places",aliases:["suspension_railway"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🚠",description:"mountain cableway",category:"Travel & Places",aliases:["mountain_cableway"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🚡",description:"aerial tramway",category:"Travel & Places",aliases:["aerial_tramway"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🛰️",description:"satellite",category:"Travel & Places",aliases:["artificial_satellite"],tags:["orbit","space"],unicode_version:"7.0",ios_version:"9.1"},{emoji:"🚀",description:"rocket",category:"Travel & Places",aliases:["rocket"],tags:["ship","launch"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🛸",description:"flying saucer",category:"Travel & Places",aliases:["flying_saucer"],tags:["ufo"],unicode_version:"11.0",ios_version:"12.1"},{emoji:"🛎️",description:"bellhop bell",category:"Travel & Places",aliases:["bellhop_bell"],tags:[],unicode_version:"7.0",ios_version:"9.1"},{emoji:"🧳",description:"luggage",category:"Travel & Places",aliases:["luggage"],tags:[],unicode_version:"11.0",ios_version:"12.1"},{emoji:"⌛",description:"hourglass done",category:"Travel & Places",aliases:["hourglass"],tags:["time"],unicode_version:"",ios_version:"6.0"},{emoji:"⏳",description:"hourglass not done",category:"Travel & Places",aliases:["hourglass_flowing_sand"],tags:["time"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"⌚",description:"watch",category:"Travel & Places",aliases:["watch"],tags:["time"],unicode_version:"",ios_version:"6.0"},{emoji:"⏰",description:"alarm clock",category:"Travel & Places",aliases:["alarm_clock"],tags:["morning"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"⏱️",description:"stopwatch",category:"Travel & Places",aliases:["stopwatch"],tags:[],unicode_version:"6.0",ios_version:"9.1"},{emoji:"⏲️",description:"timer clock",category:"Travel & Places",aliases:["timer_clock"],tags:[],unicode_version:"6.0",ios_version:"9.1"},{emoji:"🕰️",description:"mantelpiece clock",category:"Travel & Places",aliases:["mantelpiece_clock"],tags:[],unicode_version:"7.0",ios_version:"9.1"},{emoji:"🕛",description:"twelve o’clock",category:"Travel & Places",aliases:["clock12"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🕧",description:"twelve-thirty",category:"Travel & Places",aliases:["clock1230"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🕐",description:"one o’clock",category:"Travel & Places",aliases:["clock1"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🕜",description:"one-thirty",category:"Travel & Places",aliases:["clock130"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🕑",description:"two o’clock",category:"Travel & Places",aliases:["clock2"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🕝",description:"two-thirty",category:"Travel & Places",aliases:["clock230"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🕒",description:"three o’clock",category:"Travel & Places",aliases:["clock3"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🕞",description:"three-thirty",category:"Travel & Places",aliases:["clock330"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🕓",description:"four o’clock",category:"Travel & Places",aliases:["clock4"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🕟",description:"four-thirty",category:"Travel & Places",aliases:["clock430"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🕔",description:"five o’clock",category:"Travel & Places",aliases:["clock5"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🕠",description:"five-thirty",category:"Travel & Places",aliases:["clock530"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🕕",description:"six o’clock",category:"Travel & Places",aliases:["clock6"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🕡",description:"six-thirty",category:"Travel & Places",aliases:["clock630"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🕖",description:"seven o’clock",category:"Travel & Places",aliases:["clock7"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🕢",description:"seven-thirty",category:"Travel & Places",aliases:["clock730"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🕗",description:"eight o’clock",category:"Travel & Places",aliases:["clock8"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🕣",description:"eight-thirty",category:"Travel & Places",aliases:["clock830"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🕘",description:"nine o’clock",category:"Travel & Places",aliases:["clock9"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🕤",description:"nine-thirty",category:"Travel & Places",aliases:["clock930"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🕙",description:"ten o’clock",category:"Travel & Places",aliases:["clock10"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🕥",description:"ten-thirty",category:"Travel & Places",aliases:["clock1030"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🕚",description:"eleven o’clock",category:"Travel & Places",aliases:["clock11"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🕦",description:"eleven-thirty",category:"Travel & Places",aliases:["clock1130"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🌑",description:"new moon",category:"Travel & Places",aliases:["new_moon"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🌒",description:"waxing crescent moon",category:"Travel & Places",aliases:["waxing_crescent_moon"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🌓",description:"first quarter moon",category:"Travel & Places",aliases:["first_quarter_moon"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🌔",description:"waxing gibbous moon",category:"Travel & Places",aliases:["moon","waxing_gibbous_moon"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🌕",description:"full moon",category:"Travel & Places",aliases:["full_moon"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🌖",description:"waning gibbous moon",category:"Travel & Places",aliases:["waning_gibbous_moon"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🌗",description:"last quarter moon",category:"Travel & Places",aliases:["last_quarter_moon"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🌘",description:"waning crescent moon",category:"Travel & Places",aliases:["waning_crescent_moon"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🌙",description:"crescent moon",category:"Travel & Places",aliases:["crescent_moon"],tags:["night"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🌚",description:"new moon face",category:"Travel & Places",aliases:["new_moon_with_face"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🌛",description:"first quarter moon face",category:"Travel & Places",aliases:["first_quarter_moon_with_face"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🌜",description:"last quarter moon face",category:"Travel & Places",aliases:["last_quarter_moon_with_face"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🌡️",description:"thermometer",category:"Travel & Places",aliases:["thermometer"],tags:[],unicode_version:"7.0",ios_version:"9.1"},{emoji:"☀️",description:"sun",category:"Travel & Places",aliases:["sunny"],tags:["weather"],unicode_version:"",ios_version:"6.0"},{emoji:"🌝",description:"full moon face",category:"Travel & Places",aliases:["full_moon_with_face"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🌞",description:"sun with face",category:"Travel & Places",aliases:["sun_with_face"],tags:["summer"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🪐",description:"ringed planet",category:"Travel & Places",aliases:["ringed_planet"],tags:[],unicode_version:"12.0",ios_version:"13.0"},{emoji:"⭐",description:"star",category:"Travel & Places",aliases:["star"],tags:[],unicode_version:"5.1",ios_version:"6.0"},{emoji:"🌟",description:"glowing star",category:"Travel & Places",aliases:["star2"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🌠",description:"shooting star",category:"Travel & Places",aliases:["stars"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🌌",description:"milky way",category:"Travel & Places",aliases:["milky_way"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"☁️",description:"cloud",category:"Travel & Places",aliases:["cloud"],tags:[],unicode_version:"",ios_version:"6.0"},{emoji:"⛅",description:"sun behind cloud",category:"Travel & Places",aliases:["partly_sunny"],tags:["weather","cloud"],unicode_version:"5.2",ios_version:"6.0"},{emoji:"⛈️",description:"cloud with lightning and rain",category:"Travel & Places",aliases:["cloud_with_lightning_and_rain"],tags:[],unicode_version:"5.2",ios_version:"9.1"},{emoji:"🌤️",description:"sun behind small cloud",category:"Travel & Places",aliases:["sun_behind_small_cloud"],tags:[],unicode_version:"7.0",ios_version:"9.1"},{emoji:"🌥️",description:"sun behind large cloud",category:"Travel & Places",aliases:["sun_behind_large_cloud"],tags:[],unicode_version:"7.0",ios_version:"9.1"},{emoji:"🌦️",description:"sun behind rain cloud",category:"Travel & Places",aliases:["sun_behind_rain_cloud"],tags:[],unicode_version:"7.0",ios_version:"9.1"},{emoji:"🌧️",description:"cloud with rain",category:"Travel & Places",aliases:["cloud_with_rain"],tags:[],unicode_version:"7.0",ios_version:"9.1"},{emoji:"🌨️",description:"cloud with snow",category:"Travel & Places",aliases:["cloud_with_snow"],tags:[],unicode_version:"7.0",ios_version:"9.1"},{emoji:"🌩️",description:"cloud with lightning",category:"Travel & Places",aliases:["cloud_with_lightning"],tags:[],unicode_version:"7.0",ios_version:"9.1"},{emoji:"🌪️",description:"tornado",category:"Travel & Places",aliases:["tornado"],tags:[],unicode_version:"7.0",ios_version:"9.1"},{emoji:"🌫️",description:"fog",category:"Travel & Places",aliases:["fog"],tags:[],unicode_version:"7.0",ios_version:"9.1"},{emoji:"🌬️",description:"wind face",category:"Travel & Places",aliases:["wind_face"],tags:[],unicode_version:"7.0",ios_version:"9.1"},{emoji:"🌀",description:"cyclone",category:"Travel & Places",aliases:["cyclone"],tags:["swirl"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🌈",description:"rainbow",category:"Travel & Places",aliases:["rainbow"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🌂",description:"closed umbrella",category:"Travel & Places",aliases:["closed_umbrella"],tags:["weather","rain"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"☂️",description:"umbrella",category:"Travel & Places",aliases:["open_umbrella"],tags:[],unicode_version:"",ios_version:"9.1"},{emoji:"☔",description:"umbrella with rain drops",category:"Travel & Places",aliases:["umbrella"],tags:["rain","weather"],unicode_version:"4.0",ios_version:"6.0"},{emoji:"⛱️",description:"umbrella on ground",category:"Travel & Places",aliases:["parasol_on_ground"],tags:["beach_umbrella"],unicode_version:"5.2",ios_version:"9.1"},{emoji:"⚡",description:"high voltage",category:"Travel & Places",aliases:["zap"],tags:["lightning","thunder"],unicode_version:"4.0",ios_version:"6.0"},{emoji:"❄️",description:"snowflake",category:"Travel & Places",aliases:["snowflake"],tags:["winter","cold","weather"],unicode_version:"",ios_version:"6.0"},{emoji:"☃️",description:"snowman",category:"Travel & Places",aliases:["snowman_with_snow"],tags:["winter","christmas"],unicode_version:"",ios_version:"9.1"},{emoji:"⛄",description:"snowman without snow",category:"Travel & Places",aliases:["snowman"],tags:["winter"],unicode_version:"5.2",ios_version:"6.0"},{emoji:"☄️",description:"comet",category:"Travel & Places",aliases:["comet"],tags:[],unicode_version:"",ios_version:"9.1"},{emoji:"🔥",description:"fire",category:"Travel & Places",aliases:["fire"],tags:["burn"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"💧",description:"droplet",category:"Travel & Places",aliases:["droplet"],tags:["water"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🌊",description:"water wave",category:"Travel & Places",aliases:["ocean"],tags:["sea"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🎃",description:"jack-o-lantern",category:"Activities",aliases:["jack_o_lantern"],tags:["halloween"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🎄",description:"Christmas tree",category:"Activities",aliases:["christmas_tree"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🎆",description:"fireworks",category:"Activities",aliases:["fireworks"],tags:["festival","celebration"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🎇",description:"sparkler",category:"Activities",aliases:["sparkler"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🧨",description:"firecracker",category:"Activities",aliases:["firecracker"],tags:[],unicode_version:"11.0",ios_version:"12.1"},{emoji:"✨",description:"sparkles",category:"Activities",aliases:["sparkles"],tags:["shiny"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🎈",description:"balloon",category:"Activities",aliases:["balloon"],tags:["party","birthday"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🎉",description:"party popper",category:"Activities",aliases:["tada"],tags:["hooray","party"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🎊",description:"confetti ball",category:"Activities",aliases:["confetti_ball"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🎋",description:"tanabata tree",category:"Activities",aliases:["tanabata_tree"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🎍",description:"pine decoration",category:"Activities",aliases:["bamboo"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🎎",description:"Japanese dolls",category:"Activities",aliases:["dolls"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🎏",description:"carp streamer",category:"Activities",aliases:["flags"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🎐",description:"wind chime",category:"Activities",aliases:["wind_chime"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🎑",description:"moon viewing ceremony",category:"Activities",aliases:["rice_scene"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🧧",description:"red envelope",category:"Activities",aliases:["red_envelope"],tags:[],unicode_version:"11.0",ios_version:"12.1"},{emoji:"🎀",description:"ribbon",category:"Activities",aliases:["ribbon"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🎁",description:"wrapped gift",category:"Activities",aliases:["gift"],tags:["present","birthday","christmas"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🎗️",description:"reminder ribbon",category:"Activities",aliases:["reminder_ribbon"],tags:[],unicode_version:"7.0",ios_version:"9.1"},{emoji:"🎟️",description:"admission tickets",category:"Activities",aliases:["tickets"],tags:[],unicode_version:"7.0",ios_version:"9.1"},{emoji:"🎫",description:"ticket",category:"Activities",aliases:["ticket"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🎖️",description:"military medal",category:"Activities",aliases:["medal_military"],tags:[],unicode_version:"7.0",ios_version:"9.1"},{emoji:"🏆",description:"trophy",category:"Activities",aliases:["trophy"],tags:["award","contest","winner"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🏅",description:"sports medal",category:"Activities",aliases:["medal_sports"],tags:["gold","winner"],unicode_version:"7.0",ios_version:"9.1"},{emoji:"🥇",description:"1st place medal",category:"Activities",aliases:["1st_place_medal"],tags:["gold"],unicode_version:"9.0",ios_version:"10.2"},{emoji:"🥈",description:"2nd place medal",category:"Activities",aliases:["2nd_place_medal"],tags:["silver"],unicode_version:"9.0",ios_version:"10.2"},{emoji:"🥉",description:"3rd place medal",category:"Activities",aliases:["3rd_place_medal"],tags:["bronze"],unicode_version:"9.0",ios_version:"10.2"},{emoji:"⚽",description:"soccer ball",category:"Activities",aliases:["soccer"],tags:["sports"],unicode_version:"5.2",ios_version:"6.0"},{emoji:"⚾",description:"baseball",category:"Activities",aliases:["baseball"],tags:["sports"],unicode_version:"5.2",ios_version:"6.0"},{emoji:"🥎",description:"softball",category:"Activities",aliases:["softball"],tags:[],unicode_version:"11.0",ios_version:"12.1"},{emoji:"🏀",description:"basketball",category:"Activities",aliases:["basketball"],tags:["sports"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🏐",description:"volleyball",category:"Activities",aliases:["volleyball"],tags:[],unicode_version:"8.0",ios_version:"9.1"},{emoji:"🏈",description:"american football",category:"Activities",aliases:["football"],tags:["sports"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🏉",description:"rugby football",category:"Activities",aliases:["rugby_football"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🎾",description:"tennis",category:"Activities",aliases:["tennis"],tags:["sports"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🥏",description:"flying disc",category:"Activities",aliases:["flying_disc"],tags:[],unicode_version:"11.0",ios_version:"12.1"},{emoji:"🎳",description:"bowling",category:"Activities",aliases:["bowling"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🏏",description:"cricket game",category:"Activities",aliases:["cricket_game"],tags:[],unicode_version:"8.0",ios_version:"9.1"},{emoji:"🏑",description:"field hockey",category:"Activities",aliases:["field_hockey"],tags:[],unicode_version:"8.0",ios_version:"9.1"},{emoji:"🏒",description:"ice hockey",category:"Activities",aliases:["ice_hockey"],tags:[],unicode_version:"8.0",ios_version:"9.1"},{emoji:"🥍",description:"lacrosse",category:"Activities",aliases:["lacrosse"],tags:[],unicode_version:"11.0",ios_version:"12.1"},{emoji:"🏓",description:"ping pong",category:"Activities",aliases:["ping_pong"],tags:[],unicode_version:"8.0",ios_version:"9.1"},{emoji:"🏸",description:"badminton",category:"Activities",aliases:["badminton"],tags:[],unicode_version:"8.0",ios_version:"9.1"},{emoji:"🥊",description:"boxing glove",category:"Activities",aliases:["boxing_glove"],tags:[],unicode_version:"9.0",ios_version:"10.2"},{emoji:"🥋",description:"martial arts uniform",category:"Activities",aliases:["martial_arts_uniform"],tags:[],unicode_version:"9.0",ios_version:"10.2"},{emoji:"🥅",description:"goal net",category:"Activities",aliases:["goal_net"],tags:[],unicode_version:"9.0",ios_version:"10.2"},{emoji:"⛳",description:"flag in hole",category:"Activities",aliases:["golf"],tags:[],unicode_version:"5.2",ios_version:"6.0"},{emoji:"⛸️",description:"ice skate",category:"Activities",aliases:["ice_skate"],tags:["skating"],unicode_version:"5.2",ios_version:"9.1"},{emoji:"🎣",description:"fishing pole",category:"Activities",aliases:["fishing_pole_and_fish"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🤿",description:"diving mask",category:"Activities",aliases:["diving_mask"],tags:[],unicode_version:"12.0",ios_version:"13.0"},{emoji:"🎽",description:"running shirt",category:"Activities",aliases:["running_shirt_with_sash"],tags:["marathon"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🎿",description:"skis",category:"Activities",aliases:["ski"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🛷",description:"sled",category:"Activities",aliases:["sled"],tags:[],unicode_version:"11.0",ios_version:"12.1"},{emoji:"🥌",description:"curling stone",category:"Activities",aliases:["curling_stone"],tags:[],unicode_version:"11.0",ios_version:"12.1"},{emoji:"🎯",description:"bullseye",category:"Activities",aliases:["dart"],tags:["target"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🪀",description:"yo-yo",category:"Activities",aliases:["yo_yo"],tags:[],unicode_version:"12.0",ios_version:"13.0"},{emoji:"🪁",description:"kite",category:"Activities",aliases:["kite"],tags:[],unicode_version:"12.0",ios_version:"13.0"},{emoji:"🎱",description:"pool 8 ball",category:"Activities",aliases:["8ball"],tags:["pool","billiards"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🔮",description:"crystal ball",category:"Activities",aliases:["crystal_ball"],tags:["fortune"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🪄",description:"magic wand",category:"Activities",aliases:["magic_wand"],tags:[],unicode_version:"13.0",ios_version:"14.0"},{emoji:"🧿",description:"nazar amulet",category:"Activities",aliases:["nazar_amulet"],tags:[],unicode_version:"11.0",ios_version:"12.1"},{emoji:"🎮",description:"video game",category:"Activities",aliases:["video_game"],tags:["play","controller","console"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🕹️",description:"joystick",category:"Activities",aliases:["joystick"],tags:[],unicode_version:"7.0",ios_version:"9.1"},{emoji:"🎰",description:"slot machine",category:"Activities",aliases:["slot_machine"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🎲",description:"game die",category:"Activities",aliases:["game_die"],tags:["dice","gambling"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🧩",description:"puzzle piece",category:"Activities",aliases:["jigsaw"],tags:[],unicode_version:"11.0",ios_version:"12.1"},{emoji:"🧸",description:"teddy bear",category:"Activities",aliases:["teddy_bear"],tags:[],unicode_version:"11.0",ios_version:"12.1"},{emoji:"🪅",description:"piñata",category:"Activities",aliases:["pinata"],tags:[],unicode_version:"13.0",ios_version:"14.0"},{emoji:"🪆",description:"nesting dolls",category:"Activities",aliases:["nesting_dolls"],tags:[],unicode_version:"13.0",ios_version:"14.0"},{emoji:"♠️",description:"spade suit",category:"Activities",aliases:["spades"],tags:[],unicode_version:"",ios_version:"6.0"},{emoji:"♥️",description:"heart suit",category:"Activities",aliases:["hearts"],tags:[],unicode_version:"",ios_version:"6.0"},{emoji:"♦️",description:"diamond suit",category:"Activities",aliases:["diamonds"],tags:[],unicode_version:"",ios_version:"6.0"},{emoji:"♣️",description:"club suit",category:"Activities",aliases:["clubs"],tags:[],unicode_version:"",ios_version:"6.0"},{emoji:"♟️",description:"chess pawn",category:"Activities",aliases:["chess_pawn"],tags:[],unicode_version:"11.0",ios_version:"12.1"},{emoji:"🃏",description:"joker",category:"Activities",aliases:["black_joker"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🀄",description:"mahjong red dragon",category:"Activities",aliases:["mahjong"],tags:[],unicode_version:"",ios_version:"6.0"},{emoji:"🎴",description:"flower playing cards",category:"Activities",aliases:["flower_playing_cards"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🎭",description:"performing arts",category:"Activities",aliases:["performing_arts"],tags:["theater","drama"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🖼️",description:"framed picture",category:"Activities",aliases:["framed_picture"],tags:[],unicode_version:"7.0",ios_version:"9.1"},{emoji:"🎨",description:"artist palette",category:"Activities",aliases:["art"],tags:["design","paint"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🧵",description:"thread",category:"Activities",aliases:["thread"],tags:[],unicode_version:"11.0",ios_version:"12.1"},{emoji:"🪡",description:"sewing needle",category:"Activities",aliases:["sewing_needle"],tags:[],unicode_version:"13.0",ios_version:"14.0"},{emoji:"🧶",description:"yarn",category:"Activities",aliases:["yarn"],tags:[],unicode_version:"11.0",ios_version:"12.1"},{emoji:"🪢",description:"knot",category:"Activities",aliases:["knot"],tags:[],unicode_version:"13.0",ios_version:"14.0"},{emoji:"👓",description:"glasses",category:"Objects",aliases:["eyeglasses"],tags:["glasses"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🕶️",description:"sunglasses",category:"Objects",aliases:["dark_sunglasses"],tags:[],unicode_version:"7.0",ios_version:"9.1"},{emoji:"🥽",description:"goggles",category:"Objects",aliases:["goggles"],tags:[],unicode_version:"11.0",ios_version:"12.1"},{emoji:"🥼",description:"lab coat",category:"Objects",aliases:["lab_coat"],tags:[],unicode_version:"11.0",ios_version:"12.1"},{emoji:"🦺",description:"safety vest",category:"Objects",aliases:["safety_vest"],tags:[],unicode_version:"12.0",ios_version:"13.0"},{emoji:"👔",description:"necktie",category:"Objects",aliases:["necktie"],tags:["shirt","formal"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"👕",description:"t-shirt",category:"Objects",aliases:["shirt","tshirt"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"👖",description:"jeans",category:"Objects",aliases:["jeans"],tags:["pants"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🧣",description:"scarf",category:"Objects",aliases:["scarf"],tags:[],unicode_version:"11.0",ios_version:"12.1"},{emoji:"🧤",description:"gloves",category:"Objects",aliases:["gloves"],tags:[],unicode_version:"11.0",ios_version:"12.1"},{emoji:"🧥",description:"coat",category:"Objects",aliases:["coat"],tags:[],unicode_version:"11.0",ios_version:"12.1"},{emoji:"🧦",description:"socks",category:"Objects",aliases:["socks"],tags:[],unicode_version:"11.0",ios_version:"12.1"},{emoji:"👗",description:"dress",category:"Objects",aliases:["dress"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"👘",description:"kimono",category:"Objects",aliases:["kimono"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🥻",description:"sari",category:"Objects",aliases:["sari"],tags:[],unicode_version:"12.0",ios_version:"13.0"},{emoji:"🩱",description:"one-piece swimsuit",category:"Objects",aliases:["one_piece_swimsuit"],tags:[],unicode_version:"12.0",ios_version:"13.0"},{emoji:"🩲",description:"briefs",category:"Objects",aliases:["swim_brief"],tags:[],unicode_version:"12.0",ios_version:"13.0"},{emoji:"🩳",description:"shorts",category:"Objects",aliases:["shorts"],tags:[],unicode_version:"12.0",ios_version:"13.0"},{emoji:"👙",description:"bikini",category:"Objects",aliases:["bikini"],tags:["beach"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"👚",description:"woman’s clothes",category:"Objects",aliases:["womans_clothes"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"👛",description:"purse",category:"Objects",aliases:["purse"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"👜",description:"handbag",category:"Objects",aliases:["handbag"],tags:["bag"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"👝",description:"clutch bag",category:"Objects",aliases:["pouch"],tags:["bag"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🛍️",description:"shopping bags",category:"Objects",aliases:["shopping"],tags:["bags"],unicode_version:"7.0",ios_version:"9.1"},{emoji:"🎒",description:"backpack",category:"Objects",aliases:["school_satchel"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🩴",description:"thong sandal",category:"Objects",aliases:["thong_sandal"],tags:[],unicode_version:"13.0",ios_version:"14.0"},{emoji:"👞",description:"man’s shoe",category:"Objects",aliases:["mans_shoe","shoe"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"👟",description:"running shoe",category:"Objects",aliases:["athletic_shoe"],tags:["sneaker","sport","running"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🥾",description:"hiking boot",category:"Objects",aliases:["hiking_boot"],tags:[],unicode_version:"11.0",ios_version:"12.1"},{emoji:"🥿",description:"flat shoe",category:"Objects",aliases:["flat_shoe"],tags:[],unicode_version:"11.0",ios_version:"12.1"},{emoji:"👠",description:"high-heeled shoe",category:"Objects",aliases:["high_heel"],tags:["shoe"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"👡",description:"woman’s sandal",category:"Objects",aliases:["sandal"],tags:["shoe"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🩰",description:"ballet shoes",category:"Objects",aliases:["ballet_shoes"],tags:[],unicode_version:"12.0",ios_version:"13.0"},{emoji:"👢",description:"woman’s boot",category:"Objects",aliases:["boot"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"👑",description:"crown",category:"Objects",aliases:["crown"],tags:["king","queen","royal"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"👒",description:"woman’s hat",category:"Objects",aliases:["womans_hat"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🎩",description:"top hat",category:"Objects",aliases:["tophat"],tags:["hat","classy"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🎓",description:"graduation cap",category:"Objects",aliases:["mortar_board"],tags:["education","college","university","graduation"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🧢",description:"billed cap",category:"Objects",aliases:["billed_cap"],tags:[],unicode_version:"11.0",ios_version:"12.1"},{emoji:"🪖",description:"military helmet",category:"Objects",aliases:["military_helmet"],tags:[],unicode_version:"13.0",ios_version:"14.0"},{emoji:"⛑️",description:"rescue worker’s helmet",category:"Objects",aliases:["rescue_worker_helmet"],tags:[],unicode_version:"5.2",ios_version:"9.1"},{emoji:"📿",description:"prayer beads",category:"Objects",aliases:["prayer_beads"],tags:[],unicode_version:"8.0",ios_version:"9.1"},{emoji:"💄",description:"lipstick",category:"Objects",aliases:["lipstick"],tags:["makeup"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"💍",description:"ring",category:"Objects",aliases:["ring"],tags:["wedding","marriage","engaged"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"💎",description:"gem stone",category:"Objects",aliases:["gem"],tags:["diamond"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🔇",description:"muted speaker",category:"Objects",aliases:["mute"],tags:["sound","volume"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🔈",description:"speaker low volume",category:"Objects",aliases:["speaker"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🔉",description:"speaker medium volume",category:"Objects",aliases:["sound"],tags:["volume"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🔊",description:"speaker high volume",category:"Objects",aliases:["loud_sound"],tags:["volume"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"📢",description:"loudspeaker",category:"Objects",aliases:["loudspeaker"],tags:["announcement"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"📣",description:"megaphone",category:"Objects",aliases:["mega"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"📯",description:"postal horn",category:"Objects",aliases:["postal_horn"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🔔",description:"bell",category:"Objects",aliases:["bell"],tags:["sound","notification"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🔕",description:"bell with slash",category:"Objects",aliases:["no_bell"],tags:["volume","off"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🎼",description:"musical score",category:"Objects",aliases:["musical_score"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🎵",description:"musical note",category:"Objects",aliases:["musical_note"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🎶",description:"musical notes",category:"Objects",aliases:["notes"],tags:["music"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🎙️",description:"studio microphone",category:"Objects",aliases:["studio_microphone"],tags:["podcast"],unicode_version:"7.0",ios_version:"9.1"},{emoji:"🎚️",description:"level slider",category:"Objects",aliases:["level_slider"],tags:[],unicode_version:"7.0",ios_version:"9.1"},{emoji:"🎛️",description:"control knobs",category:"Objects",aliases:["control_knobs"],tags:[],unicode_version:"7.0",ios_version:"9.1"},{emoji:"🎤",description:"microphone",category:"Objects",aliases:["microphone"],tags:["sing"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🎧",description:"headphone",category:"Objects",aliases:["headphones"],tags:["music","earphones"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"📻",description:"radio",category:"Objects",aliases:["radio"],tags:["podcast"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🎷",description:"saxophone",category:"Objects",aliases:["saxophone"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🪗",description:"accordion",category:"Objects",aliases:["accordion"],tags:[],unicode_version:"13.0",ios_version:"14.0"},{emoji:"🎸",description:"guitar",category:"Objects",aliases:["guitar"],tags:["rock"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🎹",description:"musical keyboard",category:"Objects",aliases:["musical_keyboard"],tags:["piano"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🎺",description:"trumpet",category:"Objects",aliases:["trumpet"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🎻",description:"violin",category:"Objects",aliases:["violin"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🪕",description:"banjo",category:"Objects",aliases:["banjo"],tags:[],unicode_version:"12.0",ios_version:"13.0"},{emoji:"🥁",description:"drum",category:"Objects",aliases:["drum"],tags:[],unicode_version:"",ios_version:"10.2"},{emoji:"🪘",description:"long drum",category:"Objects",aliases:["long_drum"],tags:[],unicode_version:"13.0",ios_version:"14.0"},{emoji:"📱",description:"mobile phone",category:"Objects",aliases:["iphone"],tags:["smartphone","mobile"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"📲",description:"mobile phone with arrow",category:"Objects",aliases:["calling"],tags:["call","incoming"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"☎️",description:"telephone",category:"Objects",aliases:["phone","telephone"],tags:[],unicode_version:"",ios_version:"6.0"},{emoji:"📞",description:"telephone receiver",category:"Objects",aliases:["telephone_receiver"],tags:["phone","call"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"📟",description:"pager",category:"Objects",aliases:["pager"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"📠",description:"fax machine",category:"Objects",aliases:["fax"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🔋",description:"battery",category:"Objects",aliases:["battery"],tags:["power"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🔌",description:"electric plug",category:"Objects",aliases:["electric_plug"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"💻",description:"laptop",category:"Objects",aliases:["computer"],tags:["desktop","screen"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🖥️",description:"desktop computer",category:"Objects",aliases:["desktop_computer"],tags:[],unicode_version:"7.0",ios_version:"9.1"},{emoji:"🖨️",description:"printer",category:"Objects",aliases:["printer"],tags:[],unicode_version:"7.0",ios_version:"9.1"},{emoji:"⌨️",description:"keyboard",category:"Objects",aliases:["keyboard"],tags:[],unicode_version:"",ios_version:"9.1"},{emoji:"🖱️",description:"computer mouse",category:"Objects",aliases:["computer_mouse"],tags:[],unicode_version:"7.0",ios_version:"9.1"},{emoji:"🖲️",description:"trackball",category:"Objects",aliases:["trackball"],tags:[],unicode_version:"7.0",ios_version:"9.1"},{emoji:"💽",description:"computer disk",category:"Objects",aliases:["minidisc"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"💾",description:"floppy disk",category:"Objects",aliases:["floppy_disk"],tags:["save"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"💿",description:"optical disk",category:"Objects",aliases:["cd"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"📀",description:"dvd",category:"Objects",aliases:["dvd"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🧮",description:"abacus",category:"Objects",aliases:["abacus"],tags:[],unicode_version:"11.0",ios_version:"12.1"},{emoji:"🎥",description:"movie camera",category:"Objects",aliases:["movie_camera"],tags:["film","video"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🎞️",description:"film frames",category:"Objects",aliases:["film_strip"],tags:[],unicode_version:"7.0",ios_version:"9.1"},{emoji:"📽️",description:"film projector",category:"Objects",aliases:["film_projector"],tags:[],unicode_version:"7.0",ios_version:"9.1"},{emoji:"🎬",description:"clapper board",category:"Objects",aliases:["clapper"],tags:["film"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"📺",description:"television",category:"Objects",aliases:["tv"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"📷",description:"camera",category:"Objects",aliases:["camera"],tags:["photo"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"📸",description:"camera with flash",category:"Objects",aliases:["camera_flash"],tags:["photo"],unicode_version:"7.0",ios_version:"9.1"},{emoji:"📹",description:"video camera",category:"Objects",aliases:["video_camera"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"📼",description:"videocassette",category:"Objects",aliases:["vhs"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🔍",description:"magnifying glass tilted left",category:"Objects",aliases:["mag"],tags:["search","zoom"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🔎",description:"magnifying glass tilted right",category:"Objects",aliases:["mag_right"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🕯️",description:"candle",category:"Objects",aliases:["candle"],tags:[],unicode_version:"7.0",ios_version:"9.1"},{emoji:"💡",description:"light bulb",category:"Objects",aliases:["bulb"],tags:["idea","light"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🔦",description:"flashlight",category:"Objects",aliases:["flashlight"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🏮",description:"red paper lantern",category:"Objects",aliases:["izakaya_lantern","lantern"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🪔",description:"diya lamp",category:"Objects",aliases:["diya_lamp"],tags:[],unicode_version:"12.0",ios_version:"13.0"},{emoji:"📔",description:"notebook with decorative cover",category:"Objects",aliases:["notebook_with_decorative_cover"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"📕",description:"closed book",category:"Objects",aliases:["closed_book"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"📖",description:"open book",category:"Objects",aliases:["book","open_book"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"📗",description:"green book",category:"Objects",aliases:["green_book"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"📘",description:"blue book",category:"Objects",aliases:["blue_book"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"📙",description:"orange book",category:"Objects",aliases:["orange_book"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"📚",description:"books",category:"Objects",aliases:["books"],tags:["library"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"📓",description:"notebook",category:"Objects",aliases:["notebook"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"📒",description:"ledger",category:"Objects",aliases:["ledger"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"📃",description:"page with curl",category:"Objects",aliases:["page_with_curl"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"📜",description:"scroll",category:"Objects",aliases:["scroll"],tags:["document"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"📄",description:"page facing up",category:"Objects",aliases:["page_facing_up"],tags:["document"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"📰",description:"newspaper",category:"Objects",aliases:["newspaper"],tags:["press"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🗞️",description:"rolled-up newspaper",category:"Objects",aliases:["newspaper_roll"],tags:["press"],unicode_version:"7.0",ios_version:"9.1"},{emoji:"📑",description:"bookmark tabs",category:"Objects",aliases:["bookmark_tabs"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🔖",description:"bookmark",category:"Objects",aliases:["bookmark"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🏷️",description:"label",category:"Objects",aliases:["label"],tags:["tag"],unicode_version:"7.0",ios_version:"9.1"},{emoji:"💰",description:"money bag",category:"Objects",aliases:["moneybag"],tags:["dollar","cream"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🪙",description:"coin",category:"Objects",aliases:["coin"],tags:[],unicode_version:"13.0",ios_version:"14.0"},{emoji:"💴",description:"yen banknote",category:"Objects",aliases:["yen"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"💵",description:"dollar banknote",category:"Objects",aliases:["dollar"],tags:["money"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"💶",description:"euro banknote",category:"Objects",aliases:["euro"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"💷",description:"pound banknote",category:"Objects",aliases:["pound"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"💸",description:"money with wings",category:"Objects",aliases:["money_with_wings"],tags:["dollar"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"💳",description:"credit card",category:"Objects",aliases:["credit_card"],tags:["subscription"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🧾",description:"receipt",category:"Objects",aliases:["receipt"],tags:[],unicode_version:"11.0",ios_version:"12.1"},{emoji:"💹",description:"chart increasing with yen",category:"Objects",aliases:["chart"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"✉️",description:"envelope",category:"Objects",aliases:["envelope"],tags:["letter","email"],unicode_version:"",ios_version:"6.0"},{emoji:"📧",description:"e-mail",category:"Objects",aliases:["email","e-mail"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"📨",description:"incoming envelope",category:"Objects",aliases:["incoming_envelope"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"📩",description:"envelope with arrow",category:"Objects",aliases:["envelope_with_arrow"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"📤",description:"outbox tray",category:"Objects",aliases:["outbox_tray"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"📥",description:"inbox tray",category:"Objects",aliases:["inbox_tray"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"📦",description:"package",category:"Objects",aliases:["package"],tags:["shipping"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"📫",description:"closed mailbox with raised flag",category:"Objects",aliases:["mailbox"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"📪",description:"closed mailbox with lowered flag",category:"Objects",aliases:["mailbox_closed"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"📬",description:"open mailbox with raised flag",category:"Objects",aliases:["mailbox_with_mail"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"📭",description:"open mailbox with lowered flag",category:"Objects",aliases:["mailbox_with_no_mail"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"📮",description:"postbox",category:"Objects",aliases:["postbox"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🗳️",description:"ballot box with ballot",category:"Objects",aliases:["ballot_box"],tags:[],unicode_version:"7.0",ios_version:"9.1"},{emoji:"✏️",description:"pencil",category:"Objects",aliases:["pencil2"],tags:[],unicode_version:"",ios_version:"6.0"},{emoji:"✒️",description:"black nib",category:"Objects",aliases:["black_nib"],tags:[],unicode_version:"",ios_version:"6.0"},{emoji:"🖋️",description:"fountain pen",category:"Objects",aliases:["fountain_pen"],tags:[],unicode_version:"7.0",ios_version:"9.1"},{emoji:"🖊️",description:"pen",category:"Objects",aliases:["pen"],tags:[],unicode_version:"7.0",ios_version:"9.1"},{emoji:"🖌️",description:"paintbrush",category:"Objects",aliases:["paintbrush"],tags:[],unicode_version:"7.0",ios_version:"9.1"},{emoji:"🖍️",description:"crayon",category:"Objects",aliases:["crayon"],tags:[],unicode_version:"7.0",ios_version:"9.1"},{emoji:"📝",description:"memo",category:"Objects",aliases:["memo","pencil"],tags:["document","note"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"💼",description:"briefcase",category:"Objects",aliases:["briefcase"],tags:["business"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"📁",description:"file folder",category:"Objects",aliases:["file_folder"],tags:["directory"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"📂",description:"open file folder",category:"Objects",aliases:["open_file_folder"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🗂️",description:"card index dividers",category:"Objects",aliases:["card_index_dividers"],tags:[],unicode_version:"7.0",ios_version:"9.1"},{emoji:"📅",description:"calendar",category:"Objects",aliases:["date"],tags:["calendar","schedule"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"📆",description:"tear-off calendar",category:"Objects",aliases:["calendar"],tags:["schedule"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🗒️",description:"spiral notepad",category:"Objects",aliases:["spiral_notepad"],tags:[],unicode_version:"7.0",ios_version:"9.1"},{emoji:"🗓️",description:"spiral calendar",category:"Objects",aliases:["spiral_calendar"],tags:[],unicode_version:"7.0",ios_version:"9.1"},{emoji:"📇",description:"card index",category:"Objects",aliases:["card_index"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"📈",description:"chart increasing",category:"Objects",aliases:["chart_with_upwards_trend"],tags:["graph","metrics"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"📉",description:"chart decreasing",category:"Objects",aliases:["chart_with_downwards_trend"],tags:["graph","metrics"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"📊",description:"bar chart",category:"Objects",aliases:["bar_chart"],tags:["stats","metrics"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"📋",description:"clipboard",category:"Objects",aliases:["clipboard"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"📌",description:"pushpin",category:"Objects",aliases:["pushpin"],tags:["location"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"📍",description:"round pushpin",category:"Objects",aliases:["round_pushpin"],tags:["location"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"📎",description:"paperclip",category:"Objects",aliases:["paperclip"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🖇️",description:"linked paperclips",category:"Objects",aliases:["paperclips"],tags:[],unicode_version:"7.0",ios_version:"9.1"},{emoji:"📏",description:"straight ruler",category:"Objects",aliases:["straight_ruler"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"📐",description:"triangular ruler",category:"Objects",aliases:["triangular_ruler"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"✂️",description:"scissors",category:"Objects",aliases:["scissors"],tags:["cut"],unicode_version:"",ios_version:"6.0"},{emoji:"🗃️",description:"card file box",category:"Objects",aliases:["card_file_box"],tags:[],unicode_version:"7.0",ios_version:"9.1"},{emoji:"🗄️",description:"file cabinet",category:"Objects",aliases:["file_cabinet"],tags:[],unicode_version:"7.0",ios_version:"9.1"},{emoji:"🗑️",description:"wastebasket",category:"Objects",aliases:["wastebasket"],tags:["trash"],unicode_version:"7.0",ios_version:"9.1"},{emoji:"🔒",description:"locked",category:"Objects",aliases:["lock"],tags:["security","private"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🔓",description:"unlocked",category:"Objects",aliases:["unlock"],tags:["security"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🔏",description:"locked with pen",category:"Objects",aliases:["lock_with_ink_pen"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🔐",description:"locked with key",category:"Objects",aliases:["closed_lock_with_key"],tags:["security"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🔑",description:"key",category:"Objects",aliases:["key"],tags:["lock","password"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🗝️",description:"old key",category:"Objects",aliases:["old_key"],tags:[],unicode_version:"7.0",ios_version:"9.1"},{emoji:"🔨",description:"hammer",category:"Objects",aliases:["hammer"],tags:["tool"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🪓",description:"axe",category:"Objects",aliases:["axe"],tags:[],unicode_version:"12.0",ios_version:"13.0"},{emoji:"⛏️",description:"pick",category:"Objects",aliases:["pick"],tags:[],unicode_version:"5.2",ios_version:"9.1"},{emoji:"⚒️",description:"hammer and pick",category:"Objects",aliases:["hammer_and_pick"],tags:[],unicode_version:"4.1",ios_version:"9.1"},{emoji:"🛠️",description:"hammer and wrench",category:"Objects",aliases:["hammer_and_wrench"],tags:[],unicode_version:"7.0",ios_version:"9.1"},{emoji:"🗡️",description:"dagger",category:"Objects",aliases:["dagger"],tags:[],unicode_version:"7.0",ios_version:"9.1"},{emoji:"⚔️",description:"crossed swords",category:"Objects",aliases:["crossed_swords"],tags:[],unicode_version:"4.1",ios_version:"9.1"},{emoji:"🔫",description:"water pistol",category:"Objects",aliases:["gun"],tags:["shoot","weapon"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🪃",description:"boomerang",category:"Objects",aliases:["boomerang"],tags:[],unicode_version:"13.0",ios_version:"14.0"},{emoji:"🏹",description:"bow and arrow",category:"Objects",aliases:["bow_and_arrow"],tags:["archery"],unicode_version:"8.0",ios_version:"9.1"},{emoji:"🛡️",description:"shield",category:"Objects",aliases:["shield"],tags:[],unicode_version:"7.0",ios_version:"9.1"},{emoji:"🪚",description:"carpentry saw",category:"Objects",aliases:["carpentry_saw"],tags:[],unicode_version:"13.0",ios_version:"14.0"},{emoji:"🔧",description:"wrench",category:"Objects",aliases:["wrench"],tags:["tool"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🪛",description:"screwdriver",category:"Objects",aliases:["screwdriver"],tags:[],unicode_version:"13.0",ios_version:"14.0"},{emoji:"🔩",description:"nut and bolt",category:"Objects",aliases:["nut_and_bolt"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"⚙️",description:"gear",category:"Objects",aliases:["gear"],tags:[],unicode_version:"4.1",ios_version:"9.1"},{emoji:"🗜️",description:"clamp",category:"Objects",aliases:["clamp"],tags:[],unicode_version:"7.0",ios_version:"9.1"},{emoji:"⚖️",description:"balance scale",category:"Objects",aliases:["balance_scale"],tags:[],unicode_version:"4.1",ios_version:"9.1"},{emoji:"🦯",description:"white cane",category:"Objects",aliases:["probing_cane"],tags:[],unicode_version:"12.0",ios_version:"13.0"},{emoji:"🔗",description:"link",category:"Objects",aliases:["link"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"⛓️",description:"chains",category:"Objects",aliases:["chains"],tags:[],unicode_version:"5.2",ios_version:"9.1"},{emoji:"🪝",description:"hook",category:"Objects",aliases:["hook"],tags:[],unicode_version:"13.0",ios_version:"14.0"},{emoji:"🧰",description:"toolbox",category:"Objects",aliases:["toolbox"],tags:[],unicode_version:"11.0",ios_version:"12.1"},{emoji:"🧲",description:"magnet",category:"Objects",aliases:["magnet"],tags:[],unicode_version:"11.0",ios_version:"12.1"},{emoji:"🪜",description:"ladder",category:"Objects",aliases:["ladder"],tags:[],unicode_version:"13.0",ios_version:"14.0"},{emoji:"⚗️",description:"alembic",category:"Objects",aliases:["alembic"],tags:[],unicode_version:"4.1",ios_version:"9.1"},{emoji:"🧪",description:"test tube",category:"Objects",aliases:["test_tube"],tags:[],unicode_version:"11.0",ios_version:"12.1"},{emoji:"🧫",description:"petri dish",category:"Objects",aliases:["petri_dish"],tags:[],unicode_version:"11.0",ios_version:"12.1"},{emoji:"🧬",description:"dna",category:"Objects",aliases:["dna"],tags:[],unicode_version:"11.0",ios_version:"12.1"},{emoji:"🔬",description:"microscope",category:"Objects",aliases:["microscope"],tags:["science","laboratory","investigate"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🔭",description:"telescope",category:"Objects",aliases:["telescope"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"📡",description:"satellite antenna",category:"Objects",aliases:["satellite"],tags:["signal"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"💉",description:"syringe",category:"Objects",aliases:["syringe"],tags:["health","hospital","needle"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🩸",description:"drop of blood",category:"Objects",aliases:["drop_of_blood"],tags:[],unicode_version:"12.0",ios_version:"13.0"},{emoji:"💊",description:"pill",category:"Objects",aliases:["pill"],tags:["health","medicine"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🩹",description:"adhesive bandage",category:"Objects",aliases:["adhesive_bandage"],tags:[],unicode_version:"12.0",ios_version:"13.0"},{emoji:"🩺",description:"stethoscope",category:"Objects",aliases:["stethoscope"],tags:[],unicode_version:"12.0",ios_version:"13.0"},{emoji:"🚪",description:"door",category:"Objects",aliases:["door"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🛗",description:"elevator",category:"Objects",aliases:["elevator"],tags:[],unicode_version:"13.0",ios_version:"14.0"},{emoji:"🪞",description:"mirror",category:"Objects",aliases:["mirror"],tags:[],unicode_version:"13.0",ios_version:"14.0"},{emoji:"🪟",description:"window",category:"Objects",aliases:["window"],tags:[],unicode_version:"13.0",ios_version:"14.0"},{emoji:"🛏️",description:"bed",category:"Objects",aliases:["bed"],tags:[],unicode_version:"7.0",ios_version:"9.1"},{emoji:"🛋️",description:"couch and lamp",category:"Objects",aliases:["couch_and_lamp"],tags:[],unicode_version:"7.0",ios_version:"9.1"},{emoji:"🪑",description:"chair",category:"Objects",aliases:["chair"],tags:[],unicode_version:"12.0",ios_version:"13.0"},{emoji:"🚽",description:"toilet",category:"Objects",aliases:["toilet"],tags:["wc"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🪠",description:"plunger",category:"Objects",aliases:["plunger"],tags:[],unicode_version:"13.0",ios_version:"14.0"},{emoji:"🚿",description:"shower",category:"Objects",aliases:["shower"],tags:["bath"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🛁",description:"bathtub",category:"Objects",aliases:["bathtub"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🪤",description:"mouse trap",category:"Objects",aliases:["mouse_trap"],tags:[],unicode_version:"13.0",ios_version:"14.0"},{emoji:"🪒",description:"razor",category:"Objects",aliases:["razor"],tags:[],unicode_version:"12.0",ios_version:"13.0"},{emoji:"🧴",description:"lotion bottle",category:"Objects",aliases:["lotion_bottle"],tags:[],unicode_version:"11.0",ios_version:"12.1"},{emoji:"🧷",description:"safety pin",category:"Objects",aliases:["safety_pin"],tags:[],unicode_version:"11.0",ios_version:"12.1"},{emoji:"🧹",description:"broom",category:"Objects",aliases:["broom"],tags:[],unicode_version:"11.0",ios_version:"12.1"},{emoji:"🧺",description:"basket",category:"Objects",aliases:["basket"],tags:[],unicode_version:"11.0",ios_version:"12.1"},{emoji:"🧻",description:"roll of paper",category:"Objects",aliases:["roll_of_paper"],tags:["toilet"],unicode_version:"11.0",ios_version:"12.1"},{emoji:"🪣",description:"bucket",category:"Objects",aliases:["bucket"],tags:[],unicode_version:"13.0",ios_version:"14.0"},{emoji:"🧼",description:"soap",category:"Objects",aliases:["soap"],tags:[],unicode_version:"11.0",ios_version:"12.1"},{emoji:"🪥",description:"toothbrush",category:"Objects",aliases:["toothbrush"],tags:[],unicode_version:"13.0",ios_version:"14.0"},{emoji:"🧽",description:"sponge",category:"Objects",aliases:["sponge"],tags:[],unicode_version:"11.0",ios_version:"12.1"},{emoji:"🧯",description:"fire extinguisher",category:"Objects",aliases:["fire_extinguisher"],tags:[],unicode_version:"11.0",ios_version:"12.1"},{emoji:"🛒",description:"shopping cart",category:"Objects",aliases:["shopping_cart"],tags:[],unicode_version:"9.0",ios_version:"10.2"},{emoji:"🚬",description:"cigarette",category:"Objects",aliases:["smoking"],tags:["cigarette"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"⚰️",description:"coffin",category:"Objects",aliases:["coffin"],tags:["funeral"],unicode_version:"4.1",ios_version:"9.1"},{emoji:"🪦",description:"headstone",category:"Objects",aliases:["headstone"],tags:[],unicode_version:"13.0",ios_version:"14.0"},{emoji:"⚱️",description:"funeral urn",category:"Objects",aliases:["funeral_urn"],tags:[],unicode_version:"4.1",ios_version:"9.1"},{emoji:"🗿",description:"moai",category:"Objects",aliases:["moyai"],tags:["stone"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🪧",description:"placard",category:"Objects",aliases:["placard"],tags:[],unicode_version:"13.0",ios_version:"14.0"},{emoji:"🏧",description:"ATM sign",category:"Symbols",aliases:["atm"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🚮",description:"litter in bin sign",category:"Symbols",aliases:["put_litter_in_its_place"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🚰",description:"potable water",category:"Symbols",aliases:["potable_water"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"♿",description:"wheelchair symbol",category:"Symbols",aliases:["wheelchair"],tags:["accessibility"],unicode_version:"4.1",ios_version:"6.0"},{emoji:"🚹",description:"men’s room",category:"Symbols",aliases:["mens"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🚺",description:"women’s room",category:"Symbols",aliases:["womens"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🚻",description:"restroom",category:"Symbols",aliases:["restroom"],tags:["toilet"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🚼",description:"baby symbol",category:"Symbols",aliases:["baby_symbol"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🚾",description:"water closet",category:"Symbols",aliases:["wc"],tags:["toilet","restroom"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🛂",description:"passport control",category:"Symbols",aliases:["passport_control"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🛃",description:"customs",category:"Symbols",aliases:["customs"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🛄",description:"baggage claim",category:"Symbols",aliases:["baggage_claim"],tags:["airport"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🛅",description:"left luggage",category:"Symbols",aliases:["left_luggage"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"⚠️",description:"warning",category:"Symbols",aliases:["warning"],tags:["wip"],unicode_version:"4.0",ios_version:"6.0"},{emoji:"🚸",description:"children crossing",category:"Symbols",aliases:["children_crossing"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"⛔",description:"no entry",category:"Symbols",aliases:["no_entry"],tags:["limit"],unicode_version:"5.2",ios_version:"6.0"},{emoji:"🚫",description:"prohibited",category:"Symbols",aliases:["no_entry_sign"],tags:["block","forbidden"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🚳",description:"no bicycles",category:"Symbols",aliases:["no_bicycles"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🚭",description:"no smoking",category:"Symbols",aliases:["no_smoking"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🚯",description:"no littering",category:"Symbols",aliases:["do_not_litter"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🚱",description:"non-potable water",category:"Symbols",aliases:["non-potable_water"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🚷",description:"no pedestrians",category:"Symbols",aliases:["no_pedestrians"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"📵",description:"no mobile phones",category:"Symbols",aliases:["no_mobile_phones"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🔞",description:"no one under eighteen",category:"Symbols",aliases:["underage"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"☢️",description:"radioactive",category:"Symbols",aliases:["radioactive"],tags:[],unicode_version:"",ios_version:"9.1"},{emoji:"☣️",description:"biohazard",category:"Symbols",aliases:["biohazard"],tags:[],unicode_version:"",ios_version:"9.1"},{emoji:"⬆️",description:"up arrow",category:"Symbols",aliases:["arrow_up"],tags:[],unicode_version:"4.0",ios_version:"6.0"},{emoji:"↗️",description:"up-right arrow",category:"Symbols",aliases:["arrow_upper_right"],tags:[],unicode_version:"",ios_version:"6.0"},{emoji:"➡️",description:"right arrow",category:"Symbols",aliases:["arrow_right"],tags:[],unicode_version:"",ios_version:"6.0"},{emoji:"↘️",description:"down-right arrow",category:"Symbols",aliases:["arrow_lower_right"],tags:[],unicode_version:"",ios_version:"6.0"},{emoji:"⬇️",description:"down arrow",category:"Symbols",aliases:["arrow_down"],tags:[],unicode_version:"4.0",ios_version:"6.0"},{emoji:"↙️",description:"down-left arrow",category:"Symbols",aliases:["arrow_lower_left"],tags:[],unicode_version:"",ios_version:"6.0"},{emoji:"⬅️",description:"left arrow",category:"Symbols",aliases:["arrow_left"],tags:[],unicode_version:"4.0",ios_version:"6.0"},{emoji:"↖️",description:"up-left arrow",category:"Symbols",aliases:["arrow_upper_left"],tags:[],unicode_version:"",ios_version:"6.0"},{emoji:"↕️",description:"up-down arrow",category:"Symbols",aliases:["arrow_up_down"],tags:[],unicode_version:"",ios_version:"6.0"},{emoji:"↔️",description:"left-right arrow",category:"Symbols",aliases:["left_right_arrow"],tags:[],unicode_version:"",ios_version:"6.0"},{emoji:"↩️",description:"right arrow curving left",category:"Symbols",aliases:["leftwards_arrow_with_hook"],tags:["return"],unicode_version:"",ios_version:"6.0"},{emoji:"↪️",description:"left arrow curving right",category:"Symbols",aliases:["arrow_right_hook"],tags:[],unicode_version:"",ios_version:"6.0"},{emoji:"⤴️",description:"right arrow curving up",category:"Symbols",aliases:["arrow_heading_up"],tags:[],unicode_version:"",ios_version:"6.0"},{emoji:"⤵️",description:"right arrow curving down",category:"Symbols",aliases:["arrow_heading_down"],tags:[],unicode_version:"",ios_version:"6.0"},{emoji:"🔃",description:"clockwise vertical arrows",category:"Symbols",aliases:["arrows_clockwise"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🔄",description:"counterclockwise arrows button",category:"Symbols",aliases:["arrows_counterclockwise"],tags:["sync"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🔙",description:"BACK arrow",category:"Symbols",aliases:["back"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🔚",description:"END arrow",category:"Symbols",aliases:["end"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🔛",description:"ON! arrow",category:"Symbols",aliases:["on"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🔜",description:"SOON arrow",category:"Symbols",aliases:["soon"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🔝",description:"TOP arrow",category:"Symbols",aliases:["top"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🛐",description:"place of worship",category:"Symbols",aliases:["place_of_worship"],tags:[],unicode_version:"8.0",ios_version:"9.1"},{emoji:"⚛️",description:"atom symbol",category:"Symbols",aliases:["atom_symbol"],tags:[],unicode_version:"4.1",ios_version:"9.1"},{emoji:"🕉️",description:"om",category:"Symbols",aliases:["om"],tags:[],unicode_version:"7.0",ios_version:"9.1"},{emoji:"✡️",description:"star of David",category:"Symbols",aliases:["star_of_david"],tags:[],unicode_version:"",ios_version:"9.1"},{emoji:"☸️",description:"wheel of dharma",category:"Symbols",aliases:["wheel_of_dharma"],tags:[],unicode_version:"",ios_version:"9.1"},{emoji:"☯️",description:"yin yang",category:"Symbols",aliases:["yin_yang"],tags:[],unicode_version:"",ios_version:"9.1"},{emoji:"✝️",description:"latin cross",category:"Symbols",aliases:["latin_cross"],tags:[],unicode_version:"",ios_version:"9.1"},{emoji:"☦️",description:"orthodox cross",category:"Symbols",aliases:["orthodox_cross"],tags:[],unicode_version:"",ios_version:"9.1"},{emoji:"☪️",description:"star and crescent",category:"Symbols",aliases:["star_and_crescent"],tags:[],unicode_version:"",ios_version:"9.1"},{emoji:"☮️",description:"peace symbol",category:"Symbols",aliases:["peace_symbol"],tags:[],unicode_version:"",ios_version:"9.1"},{emoji:"🕎",description:"menorah",category:"Symbols",aliases:["menorah"],tags:[],unicode_version:"8.0",ios_version:"9.1"},{emoji:"🔯",description:"dotted six-pointed star",category:"Symbols",aliases:["six_pointed_star"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"♈",description:"Aries",category:"Symbols",aliases:["aries"],tags:[],unicode_version:"",ios_version:"6.0"},{emoji:"♉",description:"Taurus",category:"Symbols",aliases:["taurus"],tags:[],unicode_version:"",ios_version:"6.0"},{emoji:"♊",description:"Gemini",category:"Symbols",aliases:["gemini"],tags:[],unicode_version:"",ios_version:"6.0"},{emoji:"♋",description:"Cancer",category:"Symbols",aliases:["cancer"],tags:[],unicode_version:"",ios_version:"6.0"},{emoji:"♌",description:"Leo",category:"Symbols",aliases:["leo"],tags:[],unicode_version:"",ios_version:"6.0"},{emoji:"♍",description:"Virgo",category:"Symbols",aliases:["virgo"],tags:[],unicode_version:"",ios_version:"6.0"},{emoji:"♎",description:"Libra",category:"Symbols",aliases:["libra"],tags:[],unicode_version:"",ios_version:"6.0"},{emoji:"♏",description:"Scorpio",category:"Symbols",aliases:["scorpius"],tags:[],unicode_version:"",ios_version:"6.0"},{emoji:"♐",description:"Sagittarius",category:"Symbols",aliases:["sagittarius"],tags:[],unicode_version:"",ios_version:"6.0"},{emoji:"♑",description:"Capricorn",category:"Symbols",aliases:["capricorn"],tags:[],unicode_version:"",ios_version:"6.0"},{emoji:"♒",description:"Aquarius",category:"Symbols",aliases:["aquarius"],tags:[],unicode_version:"",ios_version:"6.0"},{emoji:"♓",description:"Pisces",category:"Symbols",aliases:["pisces"],tags:[],unicode_version:"",ios_version:"6.0"},{emoji:"⛎",description:"Ophiuchus",category:"Symbols",aliases:["ophiuchus"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🔀",description:"shuffle tracks button",category:"Symbols",aliases:["twisted_rightwards_arrows"],tags:["shuffle"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🔁",description:"repeat button",category:"Symbols",aliases:["repeat"],tags:["loop"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🔂",description:"repeat single button",category:"Symbols",aliases:["repeat_one"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"▶️",description:"play button",category:"Symbols",aliases:["arrow_forward"],tags:[],unicode_version:"",ios_version:"6.0"},{emoji:"⏩",description:"fast-forward button",category:"Symbols",aliases:["fast_forward"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"⏭️",description:"next track button",category:"Symbols",aliases:["next_track_button"],tags:[],unicode_version:"6.0",ios_version:"9.1"},{emoji:"⏯️",description:"play or pause button",category:"Symbols",aliases:["play_or_pause_button"],tags:[],unicode_version:"6.0",ios_version:"9.1"},{emoji:"◀️",description:"reverse button",category:"Symbols",aliases:["arrow_backward"],tags:[],unicode_version:"",ios_version:"6.0"},{emoji:"⏪",description:"fast reverse button",category:"Symbols",aliases:["rewind"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"⏮️",description:"last track button",category:"Symbols",aliases:["previous_track_button"],tags:[],unicode_version:"6.0",ios_version:"9.1"},{emoji:"🔼",description:"upwards button",category:"Symbols",aliases:["arrow_up_small"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"⏫",description:"fast up button",category:"Symbols",aliases:["arrow_double_up"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🔽",description:"downwards button",category:"Symbols",aliases:["arrow_down_small"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"⏬",description:"fast down button",category:"Symbols",aliases:["arrow_double_down"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"⏸️",description:"pause button",category:"Symbols",aliases:["pause_button"],tags:[],unicode_version:"7.0",ios_version:"9.1"},{emoji:"⏹️",description:"stop button",category:"Symbols",aliases:["stop_button"],tags:[],unicode_version:"7.0",ios_version:"9.1"},{emoji:"⏺️",description:"record button",category:"Symbols",aliases:["record_button"],tags:[],unicode_version:"7.0",ios_version:"9.1"},{emoji:"⏏️",description:"eject button",category:"Symbols",aliases:["eject_button"],tags:[],unicode_version:"11.0",ios_version:"12.1"},{emoji:"🎦",description:"cinema",category:"Symbols",aliases:["cinema"],tags:["film","movie"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🔅",description:"dim button",category:"Symbols",aliases:["low_brightness"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🔆",description:"bright button",category:"Symbols",aliases:["high_brightness"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"📶",description:"antenna bars",category:"Symbols",aliases:["signal_strength"],tags:["wifi"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"📳",description:"vibration mode",category:"Symbols",aliases:["vibration_mode"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"📴",description:"mobile phone off",category:"Symbols",aliases:["mobile_phone_off"],tags:["mute","off"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"♀️",description:"female sign",category:"Symbols",aliases:["female_sign"],tags:[],unicode_version:"11.0",ios_version:"12.1"},{emoji:"♂️",description:"male sign",category:"Symbols",aliases:["male_sign"],tags:[],unicode_version:"11.0",ios_version:"12.1"},{emoji:"⚧️",description:"transgender symbol",category:"Symbols",aliases:["transgender_symbol"],tags:[],unicode_version:"13.0",ios_version:"14.0"},{emoji:"✖️",description:"multiply",category:"Symbols",aliases:["heavy_multiplication_x"],tags:[],unicode_version:"",ios_version:"6.0"},{emoji:"➕",description:"plus",category:"Symbols",aliases:["heavy_plus_sign"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"➖",description:"minus",category:"Symbols",aliases:["heavy_minus_sign"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"➗",description:"divide",category:"Symbols",aliases:["heavy_division_sign"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"♾️",description:"infinity",category:"Symbols",aliases:["infinity"],tags:[],unicode_version:"11.0",ios_version:"12.1"},{emoji:"‼️",description:"double exclamation mark",category:"Symbols",aliases:["bangbang"],tags:[],unicode_version:"",ios_version:"6.0"},{emoji:"⁉️",description:"exclamation question mark",category:"Symbols",aliases:["interrobang"],tags:[],unicode_version:"3.0",ios_version:"6.0"},{emoji:"❓",description:"red question mark",category:"Symbols",aliases:["question"],tags:["confused"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"❔",description:"white question mark",category:"Symbols",aliases:["grey_question"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"❕",description:"white exclamation mark",category:"Symbols",aliases:["grey_exclamation"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"❗",description:"red exclamation mark",category:"Symbols",aliases:["exclamation","heavy_exclamation_mark"],tags:["bang"],unicode_version:"5.2",ios_version:"6.0"},{emoji:"〰️",description:"wavy dash",category:"Symbols",aliases:["wavy_dash"],tags:[],unicode_version:"",ios_version:"6.0"},{emoji:"💱",description:"currency exchange",category:"Symbols",aliases:["currency_exchange"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"💲",description:"heavy dollar sign",category:"Symbols",aliases:["heavy_dollar_sign"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"⚕️",description:"medical symbol",category:"Symbols",aliases:["medical_symbol"],tags:[],unicode_version:"11.0",ios_version:"12.1"},{emoji:"♻️",description:"recycling symbol",category:"Symbols",aliases:["recycle"],tags:["environment","green"],unicode_version:"3.2",ios_version:"6.0"},{emoji:"⚜️",description:"fleur-de-lis",category:"Symbols",aliases:["fleur_de_lis"],tags:[],unicode_version:"4.1",ios_version:"9.1"},{emoji:"🔱",description:"trident emblem",category:"Symbols",aliases:["trident"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"📛",description:"name badge",category:"Symbols",aliases:["name_badge"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🔰",description:"Japanese symbol for beginner",category:"Symbols",aliases:["beginner"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"⭕",description:"hollow red circle",category:"Symbols",aliases:["o"],tags:[],unicode_version:"5.2",ios_version:"6.0"},{emoji:"✅",description:"check mark button",category:"Symbols",aliases:["white_check_mark"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"☑️",description:"check box with check",category:"Symbols",aliases:["ballot_box_with_check"],tags:[],unicode_version:"",ios_version:"6.0"},{emoji:"✔️",description:"check mark",category:"Symbols",aliases:["heavy_check_mark"],tags:[],unicode_version:"",ios_version:"6.0"},{emoji:"❌",description:"cross mark",category:"Symbols",aliases:["x"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"❎",description:"cross mark button",category:"Symbols",aliases:["negative_squared_cross_mark"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"➰",description:"curly loop",category:"Symbols",aliases:["curly_loop"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"➿",description:"double curly loop",category:"Symbols",aliases:["loop"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"〽️",description:"part alternation mark",category:"Symbols",aliases:["part_alternation_mark"],tags:[],unicode_version:"3.2",ios_version:"6.0"},{emoji:"✳️",description:"eight-spoked asterisk",category:"Symbols",aliases:["eight_spoked_asterisk"],tags:[],unicode_version:"",ios_version:"6.0"},{emoji:"✴️",description:"eight-pointed star",category:"Symbols",aliases:["eight_pointed_black_star"],tags:[],unicode_version:"",ios_version:"6.0"},{emoji:"❇️",description:"sparkle",category:"Symbols",aliases:["sparkle"],tags:[],unicode_version:"",ios_version:"6.0"},{emoji:"©️",description:"copyright",category:"Symbols",aliases:["copyright"],tags:[],unicode_version:"",ios_version:"6.0"},{emoji:"®️",description:"registered",category:"Symbols",aliases:["registered"],tags:[],unicode_version:"",ios_version:"6.0"},{emoji:"™️",description:"trade mark",category:"Symbols",aliases:["tm"],tags:["trademark"],unicode_version:"",ios_version:"6.0"},{emoji:"#️⃣",description:"keycap: #",category:"Symbols",aliases:["hash"],tags:["number"],unicode_version:"",ios_version:"6.0"},{emoji:"*️⃣",description:"keycap: *",category:"Symbols",aliases:["asterisk"],tags:[],unicode_version:"",ios_version:"9.1"},{emoji:"0️⃣",description:"keycap: 0",category:"Symbols",aliases:["zero"],tags:[],unicode_version:"",ios_version:"6.0"},{emoji:"1️⃣",description:"keycap: 1",category:"Symbols",aliases:["one"],tags:[],unicode_version:"",ios_version:"6.0"},{emoji:"2️⃣",description:"keycap: 2",category:"Symbols",aliases:["two"],tags:[],unicode_version:"",ios_version:"6.0"},{emoji:"3️⃣",description:"keycap: 3",category:"Symbols",aliases:["three"],tags:[],unicode_version:"",ios_version:"6.0"},{emoji:"4️⃣",description:"keycap: 4",category:"Symbols",aliases:["four"],tags:[],unicode_version:"",ios_version:"6.0"},{emoji:"5️⃣",description:"keycap: 5",category:"Symbols",aliases:["five"],tags:[],unicode_version:"",ios_version:"6.0"},{emoji:"6️⃣",description:"keycap: 6",category:"Symbols",aliases:["six"],tags:[],unicode_version:"",ios_version:"6.0"},{emoji:"7️⃣",description:"keycap: 7",category:"Symbols",aliases:["seven"],tags:[],unicode_version:"",ios_version:"6.0"},{emoji:"8️⃣",description:"keycap: 8",category:"Symbols",aliases:["eight"],tags:[],unicode_version:"",ios_version:"6.0"},{emoji:"9️⃣",description:"keycap: 9",category:"Symbols",aliases:["nine"],tags:[],unicode_version:"",ios_version:"6.0"},{emoji:"🔟",description:"keycap: 10",category:"Symbols",aliases:["keycap_ten"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🔠",description:"input latin uppercase",category:"Symbols",aliases:["capital_abcd"],tags:["letters"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🔡",description:"input latin lowercase",category:"Symbols",aliases:["abcd"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🔢",description:"input numbers",category:"Symbols",aliases:["1234"],tags:["numbers"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🔣",description:"input symbols",category:"Symbols",aliases:["symbols"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🔤",description:"input latin letters",category:"Symbols",aliases:["abc"],tags:["alphabet"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🅰️",description:"A button (blood type)",category:"Symbols",aliases:["a"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🆎",description:"AB button (blood type)",category:"Symbols",aliases:["ab"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🅱️",description:"B button (blood type)",category:"Symbols",aliases:["b"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🆑",description:"CL button",category:"Symbols",aliases:["cl"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🆒",description:"COOL button",category:"Symbols",aliases:["cool"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🆓",description:"FREE button",category:"Symbols",aliases:["free"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"ℹ️",description:"information",category:"Symbols",aliases:["information_source"],tags:[],unicode_version:"3.0",ios_version:"6.0"},{emoji:"🆔",description:"ID button",category:"Symbols",aliases:["id"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"Ⓜ️",description:"circled M",category:"Symbols",aliases:["m"],tags:[],unicode_version:"",ios_version:"6.0"},{emoji:"🆕",description:"NEW button",category:"Symbols",aliases:["new"],tags:["fresh"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🆖",description:"NG button",category:"Symbols",aliases:["ng"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🅾️",description:"O button (blood type)",category:"Symbols",aliases:["o2"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🆗",description:"OK button",category:"Symbols",aliases:["ok"],tags:["yes"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🅿️",description:"P button",category:"Symbols",aliases:["parking"],tags:[],unicode_version:"5.2",ios_version:"6.0"},{emoji:"🆘",description:"SOS button",category:"Symbols",aliases:["sos"],tags:["help","emergency"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🆙",description:"UP! button",category:"Symbols",aliases:["up"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🆚",description:"VS button",category:"Symbols",aliases:["vs"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🈁",description:"Japanese “here” button",category:"Symbols",aliases:["koko"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🈂️",description:"Japanese “service charge” button",category:"Symbols",aliases:["sa"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🈷️",description:"Japanese “monthly amount” button",category:"Symbols",aliases:["u6708"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🈶",description:"Japanese “not free of charge” button",category:"Symbols",aliases:["u6709"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🈯",description:"Japanese “reserved” button",category:"Symbols",aliases:["u6307"],tags:[],unicode_version:"",ios_version:"6.0"},{emoji:"🉐",description:"Japanese “bargain” button",category:"Symbols",aliases:["ideograph_advantage"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🈹",description:"Japanese “discount” button",category:"Symbols",aliases:["u5272"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🈚",description:"Japanese “free of charge” button",category:"Symbols",aliases:["u7121"],tags:[],unicode_version:"",ios_version:"6.0"},{emoji:"🈲",description:"Japanese “prohibited” button",category:"Symbols",aliases:["u7981"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🉑",description:"Japanese “acceptable” button",category:"Symbols",aliases:["accept"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🈸",description:"Japanese “application” button",category:"Symbols",aliases:["u7533"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🈴",description:"Japanese “passing grade” button",category:"Symbols",aliases:["u5408"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🈳",description:"Japanese “vacancy” button",category:"Symbols",aliases:["u7a7a"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"㊗️",description:"Japanese “congratulations” button",category:"Symbols",aliases:["congratulations"],tags:[],unicode_version:"",ios_version:"6.0"},{emoji:"㊙️",description:"Japanese “secret” button",category:"Symbols",aliases:["secret"],tags:[],unicode_version:"",ios_version:"6.0"},{emoji:"🈺",description:"Japanese “open for business” button",category:"Symbols",aliases:["u55b6"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🈵",description:"Japanese “no vacancy” button",category:"Symbols",aliases:["u6e80"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🔴",description:"red circle",category:"Symbols",aliases:["red_circle"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🟠",description:"orange circle",category:"Symbols",aliases:["orange_circle"],tags:[],unicode_version:"12.0",ios_version:"13.0"},{emoji:"🟡",description:"yellow circle",category:"Symbols",aliases:["yellow_circle"],tags:[],unicode_version:"12.0",ios_version:"13.0"},{emoji:"🟢",description:"green circle",category:"Symbols",aliases:["green_circle"],tags:[],unicode_version:"12.0",ios_version:"13.0"},{emoji:"🔵",description:"blue circle",category:"Symbols",aliases:["large_blue_circle"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🟣",description:"purple circle",category:"Symbols",aliases:["purple_circle"],tags:[],unicode_version:"12.0",ios_version:"13.0"},{emoji:"🟤",description:"brown circle",category:"Symbols",aliases:["brown_circle"],tags:[],unicode_version:"12.0",ios_version:"13.0"},{emoji:"⚫",description:"black circle",category:"Symbols",aliases:["black_circle"],tags:[],unicode_version:"4.1",ios_version:"6.0"},{emoji:"⚪",description:"white circle",category:"Symbols",aliases:["white_circle"],tags:[],unicode_version:"4.1",ios_version:"6.0"},{emoji:"🟥",description:"red square",category:"Symbols",aliases:["red_square"],tags:[],unicode_version:"12.0",ios_version:"13.0"},{emoji:"🟧",description:"orange square",category:"Symbols",aliases:["orange_square"],tags:[],unicode_version:"12.0",ios_version:"13.0"},{emoji:"🟨",description:"yellow square",category:"Symbols",aliases:["yellow_square"],tags:[],unicode_version:"12.0",ios_version:"13.0"},{emoji:"🟩",description:"green square",category:"Symbols",aliases:["green_square"],tags:[],unicode_version:"12.0",ios_version:"13.0"},{emoji:"🟦",description:"blue square",category:"Symbols",aliases:["blue_square"],tags:[],unicode_version:"12.0",ios_version:"13.0"},{emoji:"🟪",description:"purple square",category:"Symbols",aliases:["purple_square"],tags:[],unicode_version:"12.0",ios_version:"13.0"},{emoji:"🟫",description:"brown square",category:"Symbols",aliases:["brown_square"],tags:[],unicode_version:"12.0",ios_version:"13.0"},{emoji:"⬛",description:"black large square",category:"Symbols",aliases:["black_large_square"],tags:[],unicode_version:"5.1",ios_version:"6.0"},{emoji:"⬜",description:"white large square",category:"Symbols",aliases:["white_large_square"],tags:[],unicode_version:"5.1",ios_version:"6.0"},{emoji:"◼️",description:"black medium square",category:"Symbols",aliases:["black_medium_square"],tags:[],unicode_version:"3.2",ios_version:"6.0"},{emoji:"◻️",description:"white medium square",category:"Symbols",aliases:["white_medium_square"],tags:[],unicode_version:"3.2",ios_version:"6.0"},{emoji:"◾",description:"black medium-small square",category:"Symbols",aliases:["black_medium_small_square"],tags:[],unicode_version:"3.2",ios_version:"6.0"},{emoji:"◽",description:"white medium-small square",category:"Symbols",aliases:["white_medium_small_square"],tags:[],unicode_version:"3.2",ios_version:"6.0"},{emoji:"▪️",description:"black small square",category:"Symbols",aliases:["black_small_square"],tags:[],unicode_version:"",ios_version:"6.0"},{emoji:"▫️",description:"white small square",category:"Symbols",aliases:["white_small_square"],tags:[],unicode_version:"",ios_version:"6.0"},{emoji:"🔶",description:"large orange diamond",category:"Symbols",aliases:["large_orange_diamond"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🔷",description:"large blue diamond",category:"Symbols",aliases:["large_blue_diamond"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🔸",description:"small orange diamond",category:"Symbols",aliases:["small_orange_diamond"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🔹",description:"small blue diamond",category:"Symbols",aliases:["small_blue_diamond"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🔺",description:"red triangle pointed up",category:"Symbols",aliases:["small_red_triangle"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🔻",description:"red triangle pointed down",category:"Symbols",aliases:["small_red_triangle_down"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"💠",description:"diamond with a dot",category:"Symbols",aliases:["diamond_shape_with_a_dot_inside"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🔘",description:"radio button",category:"Symbols",aliases:["radio_button"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🔳",description:"white square button",category:"Symbols",aliases:["white_square_button"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🔲",description:"black square button",category:"Symbols",aliases:["black_square_button"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🏁",description:"chequered flag",category:"Flags",aliases:["checkered_flag"],tags:["milestone","finish"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🚩",description:"triangular flag",category:"Flags",aliases:["triangular_flag_on_post"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🎌",description:"crossed flags",category:"Flags",aliases:["crossed_flags"],tags:[],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🏴",description:"black flag",category:"Flags",aliases:["black_flag"],tags:[],unicode_version:"7.0",ios_version:"9.1"},{emoji:"🏳️",description:"white flag",category:"Flags",aliases:["white_flag"],tags:[],unicode_version:"7.0",ios_version:"9.1"},{emoji:"🏳️🌈",description:"rainbow flag",category:"Flags",aliases:["rainbow_flag"],tags:["pride"],unicode_version:"6.0",ios_version:"10.0"},{emoji:"🏳️⚧️",description:"transgender flag",category:"Flags",aliases:["transgender_flag"],tags:[],unicode_version:"13.0",ios_version:"14.0"},{emoji:"🏴☠️",description:"pirate flag",category:"Flags",aliases:["pirate_flag"],tags:[],unicode_version:"11.0",ios_version:"12.1"},{emoji:"🇦🇨",description:"flag: Ascension Island",category:"Flags",aliases:["ascension_island"],tags:[],unicode_version:"11.0",ios_version:"12.1"},{emoji:"🇦🇩",description:"flag: Andorra",category:"Flags",aliases:["andorra"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇦🇪",description:"flag: United Arab Emirates",category:"Flags",aliases:["united_arab_emirates"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇦🇫",description:"flag: Afghanistan",category:"Flags",aliases:["afghanistan"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇦🇬",description:"flag: Antigua & Barbuda",category:"Flags",aliases:["antigua_barbuda"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇦🇮",description:"flag: Anguilla",category:"Flags",aliases:["anguilla"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇦🇱",description:"flag: Albania",category:"Flags",aliases:["albania"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇦🇲",description:"flag: Armenia",category:"Flags",aliases:["armenia"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇦🇴",description:"flag: Angola",category:"Flags",aliases:["angola"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇦🇶",description:"flag: Antarctica",category:"Flags",aliases:["antarctica"],tags:[],unicode_version:"6.0",ios_version:"9.0"},{emoji:"🇦🇷",description:"flag: Argentina",category:"Flags",aliases:["argentina"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇦🇸",description:"flag: American Samoa",category:"Flags",aliases:["american_samoa"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇦🇹",description:"flag: Austria",category:"Flags",aliases:["austria"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇦🇺",description:"flag: Australia",category:"Flags",aliases:["australia"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇦🇼",description:"flag: Aruba",category:"Flags",aliases:["aruba"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇦🇽",description:"flag: Åland Islands",category:"Flags",aliases:["aland_islands"],tags:[],unicode_version:"6.0",ios_version:"9.0"},{emoji:"🇦🇿",description:"flag: Azerbaijan",category:"Flags",aliases:["azerbaijan"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇧🇦",description:"flag: Bosnia & Herzegovina",category:"Flags",aliases:["bosnia_herzegovina"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇧🇧",description:"flag: Barbados",category:"Flags",aliases:["barbados"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇧🇩",description:"flag: Bangladesh",category:"Flags",aliases:["bangladesh"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇧🇪",description:"flag: Belgium",category:"Flags",aliases:["belgium"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇧🇫",description:"flag: Burkina Faso",category:"Flags",aliases:["burkina_faso"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇧🇬",description:"flag: Bulgaria",category:"Flags",aliases:["bulgaria"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇧🇭",description:"flag: Bahrain",category:"Flags",aliases:["bahrain"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇧🇮",description:"flag: Burundi",category:"Flags",aliases:["burundi"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇧🇯",description:"flag: Benin",category:"Flags",aliases:["benin"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇧🇱",description:"flag: St. Barthélemy",category:"Flags",aliases:["st_barthelemy"],tags:[],unicode_version:"6.0",ios_version:"9.0"},{emoji:"🇧🇲",description:"flag: Bermuda",category:"Flags",aliases:["bermuda"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇧🇳",description:"flag: Brunei",category:"Flags",aliases:["brunei"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇧🇴",description:"flag: Bolivia",category:"Flags",aliases:["bolivia"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇧🇶",description:"flag: Caribbean Netherlands",category:"Flags",aliases:["caribbean_netherlands"],tags:[],unicode_version:"6.0",ios_version:"9.0"},{emoji:"🇧🇷",description:"flag: Brazil",category:"Flags",aliases:["brazil"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇧🇸",description:"flag: Bahamas",category:"Flags",aliases:["bahamas"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇧🇹",description:"flag: Bhutan",category:"Flags",aliases:["bhutan"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇧🇻",description:"flag: Bouvet Island",category:"Flags",aliases:["bouvet_island"],tags:[],unicode_version:"11.0",ios_version:"12.1"},{emoji:"🇧🇼",description:"flag: Botswana",category:"Flags",aliases:["botswana"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇧🇾",description:"flag: Belarus",category:"Flags",aliases:["belarus"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇧🇿",description:"flag: Belize",category:"Flags",aliases:["belize"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇨🇦",description:"flag: Canada",category:"Flags",aliases:["canada"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇨🇨",description:"flag: Cocos (Keeling) Islands",category:"Flags",aliases:["cocos_islands"],tags:["keeling"],unicode_version:"6.0",ios_version:"9.0"},{emoji:"🇨🇩",description:"flag: Congo - Kinshasa",category:"Flags",aliases:["congo_kinshasa"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇨🇫",description:"flag: Central African Republic",category:"Flags",aliases:["central_african_republic"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇨🇬",description:"flag: Congo - Brazzaville",category:"Flags",aliases:["congo_brazzaville"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇨🇭",description:"flag: Switzerland",category:"Flags",aliases:["switzerland"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇨🇮",description:"flag: Côte d’Ivoire",category:"Flags",aliases:["cote_divoire"],tags:["ivory"],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇨🇰",description:"flag: Cook Islands",category:"Flags",aliases:["cook_islands"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇨🇱",description:"flag: Chile",category:"Flags",aliases:["chile"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇨🇲",description:"flag: Cameroon",category:"Flags",aliases:["cameroon"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇨🇳",description:"flag: China",category:"Flags",aliases:["cn"],tags:["china"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🇨🇴",description:"flag: Colombia",category:"Flags",aliases:["colombia"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇨🇵",description:"flag: Clipperton Island",category:"Flags",aliases:["clipperton_island"],tags:[],unicode_version:"11.0",ios_version:"12.1"},{emoji:"🇨🇷",description:"flag: Costa Rica",category:"Flags",aliases:["costa_rica"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇨🇺",description:"flag: Cuba",category:"Flags",aliases:["cuba"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇨🇻",description:"flag: Cape Verde",category:"Flags",aliases:["cape_verde"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇨🇼",description:"flag: Curaçao",category:"Flags",aliases:["curacao"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇨🇽",description:"flag: Christmas Island",category:"Flags",aliases:["christmas_island"],tags:[],unicode_version:"6.0",ios_version:"9.0"},{emoji:"🇨🇾",description:"flag: Cyprus",category:"Flags",aliases:["cyprus"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇨🇿",description:"flag: Czechia",category:"Flags",aliases:["czech_republic"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇩🇪",description:"flag: Germany",category:"Flags",aliases:["de"],tags:["flag","germany"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🇩🇬",description:"flag: Diego Garcia",category:"Flags",aliases:["diego_garcia"],tags:[],unicode_version:"11.0",ios_version:"12.1"},{emoji:"🇩🇯",description:"flag: Djibouti",category:"Flags",aliases:["djibouti"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇩🇰",description:"flag: Denmark",category:"Flags",aliases:["denmark"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇩🇲",description:"flag: Dominica",category:"Flags",aliases:["dominica"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇩🇴",description:"flag: Dominican Republic",category:"Flags",aliases:["dominican_republic"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇩🇿",description:"flag: Algeria",category:"Flags",aliases:["algeria"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇪🇦",description:"flag: Ceuta & Melilla",category:"Flags",aliases:["ceuta_melilla"],tags:[],unicode_version:"11.0",ios_version:"12.1"},{emoji:"🇪🇨",description:"flag: Ecuador",category:"Flags",aliases:["ecuador"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇪🇪",description:"flag: Estonia",category:"Flags",aliases:["estonia"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇪🇬",description:"flag: Egypt",category:"Flags",aliases:["egypt"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇪🇭",description:"flag: Western Sahara",category:"Flags",aliases:["western_sahara"],tags:[],unicode_version:"6.0",ios_version:"9.0"},{emoji:"🇪🇷",description:"flag: Eritrea",category:"Flags",aliases:["eritrea"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇪🇸",description:"flag: Spain",category:"Flags",aliases:["es"],tags:["spain"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🇪🇹",description:"flag: Ethiopia",category:"Flags",aliases:["ethiopia"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇪🇺",description:"flag: European Union",category:"Flags",aliases:["eu","european_union"],tags:[],unicode_version:"6.0",ios_version:"9.0"},{emoji:"🇫🇮",description:"flag: Finland",category:"Flags",aliases:["finland"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇫🇯",description:"flag: Fiji",category:"Flags",aliases:["fiji"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇫🇰",description:"flag: Falkland Islands",category:"Flags",aliases:["falkland_islands"],tags:[],unicode_version:"6.0",ios_version:"9.0"},{emoji:"🇫🇲",description:"flag: Micronesia",category:"Flags",aliases:["micronesia"],tags:[],unicode_version:"6.0",ios_version:"9.0"},{emoji:"🇫🇴",description:"flag: Faroe Islands",category:"Flags",aliases:["faroe_islands"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇫🇷",description:"flag: France",category:"Flags",aliases:["fr"],tags:["france","french"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🇬🇦",description:"flag: Gabon",category:"Flags",aliases:["gabon"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇬🇧",description:"flag: United Kingdom",category:"Flags",aliases:["gb","uk"],tags:["flag","british"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🇬🇩",description:"flag: Grenada",category:"Flags",aliases:["grenada"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇬🇪",description:"flag: Georgia",category:"Flags",aliases:["georgia"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇬🇫",description:"flag: French Guiana",category:"Flags",aliases:["french_guiana"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇬🇬",description:"flag: Guernsey",category:"Flags",aliases:["guernsey"],tags:[],unicode_version:"6.0",ios_version:"9.0"},{emoji:"🇬🇭",description:"flag: Ghana",category:"Flags",aliases:["ghana"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇬🇮",description:"flag: Gibraltar",category:"Flags",aliases:["gibraltar"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇬🇱",description:"flag: Greenland",category:"Flags",aliases:["greenland"],tags:[],unicode_version:"6.0",ios_version:"9.0"},{emoji:"🇬🇲",description:"flag: Gambia",category:"Flags",aliases:["gambia"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇬🇳",description:"flag: Guinea",category:"Flags",aliases:["guinea"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇬🇵",description:"flag: Guadeloupe",category:"Flags",aliases:["guadeloupe"],tags:[],unicode_version:"6.0",ios_version:"9.0"},{emoji:"🇬🇶",description:"flag: Equatorial Guinea",category:"Flags",aliases:["equatorial_guinea"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇬🇷",description:"flag: Greece",category:"Flags",aliases:["greece"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇬🇸",description:"flag: South Georgia & South Sandwich Islands",category:"Flags",aliases:["south_georgia_south_sandwich_islands"],tags:[],unicode_version:"6.0",ios_version:"9.0"},{emoji:"🇬🇹",description:"flag: Guatemala",category:"Flags",aliases:["guatemala"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇬🇺",description:"flag: Guam",category:"Flags",aliases:["guam"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇬🇼",description:"flag: Guinea-Bissau",category:"Flags",aliases:["guinea_bissau"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇬🇾",description:"flag: Guyana",category:"Flags",aliases:["guyana"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇭🇰",description:"flag: Hong Kong SAR China",category:"Flags",aliases:["hong_kong"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇭🇲",description:"flag: Heard & McDonald Islands",category:"Flags",aliases:["heard_mcdonald_islands"],tags:[],unicode_version:"11.0",ios_version:"12.1"},{emoji:"🇭🇳",description:"flag: Honduras",category:"Flags",aliases:["honduras"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇭🇷",description:"flag: Croatia",category:"Flags",aliases:["croatia"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇭🇹",description:"flag: Haiti",category:"Flags",aliases:["haiti"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇭🇺",description:"flag: Hungary",category:"Flags",aliases:["hungary"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇮🇨",description:"flag: Canary Islands",category:"Flags",aliases:["canary_islands"],tags:[],unicode_version:"6.0",ios_version:"9.0"},{emoji:"🇮🇩",description:"flag: Indonesia",category:"Flags",aliases:["indonesia"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇮🇪",description:"flag: Ireland",category:"Flags",aliases:["ireland"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇮🇱",description:"flag: Israel",category:"Flags",aliases:["israel"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇮🇲",description:"flag: Isle of Man",category:"Flags",aliases:["isle_of_man"],tags:[],unicode_version:"6.0",ios_version:"9.0"},{emoji:"🇮🇳",description:"flag: India",category:"Flags",aliases:["india"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇮🇴",description:"flag: British Indian Ocean Territory",category:"Flags",aliases:["british_indian_ocean_territory"],tags:[],unicode_version:"6.0",ios_version:"9.0"},{emoji:"🇮🇶",description:"flag: Iraq",category:"Flags",aliases:["iraq"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇮🇷",description:"flag: Iran",category:"Flags",aliases:["iran"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇮🇸",description:"flag: Iceland",category:"Flags",aliases:["iceland"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇮🇹",description:"flag: Italy",category:"Flags",aliases:["it"],tags:["italy"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🇯🇪",description:"flag: Jersey",category:"Flags",aliases:["jersey"],tags:[],unicode_version:"6.0",ios_version:"9.0"},{emoji:"🇯🇲",description:"flag: Jamaica",category:"Flags",aliases:["jamaica"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇯🇴",description:"flag: Jordan",category:"Flags",aliases:["jordan"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇯🇵",description:"flag: Japan",category:"Flags",aliases:["jp"],tags:["japan"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🇰🇪",description:"flag: Kenya",category:"Flags",aliases:["kenya"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇰🇬",description:"flag: Kyrgyzstan",category:"Flags",aliases:["kyrgyzstan"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇰🇭",description:"flag: Cambodia",category:"Flags",aliases:["cambodia"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇰🇮",description:"flag: Kiribati",category:"Flags",aliases:["kiribati"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇰🇲",description:"flag: Comoros",category:"Flags",aliases:["comoros"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇰🇳",description:"flag: St. Kitts & Nevis",category:"Flags",aliases:["st_kitts_nevis"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇰🇵",description:"flag: North Korea",category:"Flags",aliases:["north_korea"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇰🇷",description:"flag: South Korea",category:"Flags",aliases:["kr"],tags:["korea"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🇰🇼",description:"flag: Kuwait",category:"Flags",aliases:["kuwait"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇰🇾",description:"flag: Cayman Islands",category:"Flags",aliases:["cayman_islands"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇰🇿",description:"flag: Kazakhstan",category:"Flags",aliases:["kazakhstan"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇱🇦",description:"flag: Laos",category:"Flags",aliases:["laos"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇱🇧",description:"flag: Lebanon",category:"Flags",aliases:["lebanon"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇱🇨",description:"flag: St. Lucia",category:"Flags",aliases:["st_lucia"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇱🇮",description:"flag: Liechtenstein",category:"Flags",aliases:["liechtenstein"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇱🇰",description:"flag: Sri Lanka",category:"Flags",aliases:["sri_lanka"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇱🇷",description:"flag: Liberia",category:"Flags",aliases:["liberia"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇱🇸",description:"flag: Lesotho",category:"Flags",aliases:["lesotho"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇱🇹",description:"flag: Lithuania",category:"Flags",aliases:["lithuania"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇱🇺",description:"flag: Luxembourg",category:"Flags",aliases:["luxembourg"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇱🇻",description:"flag: Latvia",category:"Flags",aliases:["latvia"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇱🇾",description:"flag: Libya",category:"Flags",aliases:["libya"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇲🇦",description:"flag: Morocco",category:"Flags",aliases:["morocco"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇲🇨",description:"flag: Monaco",category:"Flags",aliases:["monaco"],tags:[],unicode_version:"6.0",ios_version:"9.0"},{emoji:"🇲🇩",description:"flag: Moldova",category:"Flags",aliases:["moldova"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇲🇪",description:"flag: Montenegro",category:"Flags",aliases:["montenegro"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇲🇫",description:"flag: St. Martin",category:"Flags",aliases:["st_martin"],tags:[],unicode_version:"11.0",ios_version:"12.1"},{emoji:"🇲🇬",description:"flag: Madagascar",category:"Flags",aliases:["madagascar"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇲🇭",description:"flag: Marshall Islands",category:"Flags",aliases:["marshall_islands"],tags:[],unicode_version:"6.0",ios_version:"9.0"},{emoji:"🇲🇰",description:"flag: North Macedonia",category:"Flags",aliases:["macedonia"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇲🇱",description:"flag: Mali",category:"Flags",aliases:["mali"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇲🇲",description:"flag: Myanmar (Burma)",category:"Flags",aliases:["myanmar"],tags:["burma"],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇲🇳",description:"flag: Mongolia",category:"Flags",aliases:["mongolia"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇲🇴",description:"flag: Macao SAR China",category:"Flags",aliases:["macau"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇲🇵",description:"flag: Northern Mariana Islands",category:"Flags",aliases:["northern_mariana_islands"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇲🇶",description:"flag: Martinique",category:"Flags",aliases:["martinique"],tags:[],unicode_version:"6.0",ios_version:"9.0"},{emoji:"🇲🇷",description:"flag: Mauritania",category:"Flags",aliases:["mauritania"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇲🇸",description:"flag: Montserrat",category:"Flags",aliases:["montserrat"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇲🇹",description:"flag: Malta",category:"Flags",aliases:["malta"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇲🇺",description:"flag: Mauritius",category:"Flags",aliases:["mauritius"],tags:[],unicode_version:"6.0",ios_version:"9.0"},{emoji:"🇲🇻",description:"flag: Maldives",category:"Flags",aliases:["maldives"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇲🇼",description:"flag: Malawi",category:"Flags",aliases:["malawi"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇲🇽",description:"flag: Mexico",category:"Flags",aliases:["mexico"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇲🇾",description:"flag: Malaysia",category:"Flags",aliases:["malaysia"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇲🇿",description:"flag: Mozambique",category:"Flags",aliases:["mozambique"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇳🇦",description:"flag: Namibia",category:"Flags",aliases:["namibia"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇳🇨",description:"flag: New Caledonia",category:"Flags",aliases:["new_caledonia"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇳🇪",description:"flag: Niger",category:"Flags",aliases:["niger"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇳🇫",description:"flag: Norfolk Island",category:"Flags",aliases:["norfolk_island"],tags:[],unicode_version:"6.0",ios_version:"9.0"},{emoji:"🇳🇬",description:"flag: Nigeria",category:"Flags",aliases:["nigeria"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇳🇮",description:"flag: Nicaragua",category:"Flags",aliases:["nicaragua"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇳🇱",description:"flag: Netherlands",category:"Flags",aliases:["netherlands"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇳🇴",description:"flag: Norway",category:"Flags",aliases:["norway"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇳🇵",description:"flag: Nepal",category:"Flags",aliases:["nepal"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇳🇷",description:"flag: Nauru",category:"Flags",aliases:["nauru"],tags:[],unicode_version:"6.0",ios_version:"9.0"},{emoji:"🇳🇺",description:"flag: Niue",category:"Flags",aliases:["niue"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇳🇿",description:"flag: New Zealand",category:"Flags",aliases:["new_zealand"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇴🇲",description:"flag: Oman",category:"Flags",aliases:["oman"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇵🇦",description:"flag: Panama",category:"Flags",aliases:["panama"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇵🇪",description:"flag: Peru",category:"Flags",aliases:["peru"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇵🇫",description:"flag: French Polynesia",category:"Flags",aliases:["french_polynesia"],tags:[],unicode_version:"6.0",ios_version:"9.0"},{emoji:"🇵🇬",description:"flag: Papua New Guinea",category:"Flags",aliases:["papua_new_guinea"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇵🇭",description:"flag: Philippines",category:"Flags",aliases:["philippines"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇵🇰",description:"flag: Pakistan",category:"Flags",aliases:["pakistan"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇵🇱",description:"flag: Poland",category:"Flags",aliases:["poland"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇵🇲",description:"flag: St. Pierre & Miquelon",category:"Flags",aliases:["st_pierre_miquelon"],tags:[],unicode_version:"6.0",ios_version:"9.0"},{emoji:"🇵🇳",description:"flag: Pitcairn Islands",category:"Flags",aliases:["pitcairn_islands"],tags:[],unicode_version:"6.0",ios_version:"9.0"},{emoji:"🇵🇷",description:"flag: Puerto Rico",category:"Flags",aliases:["puerto_rico"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇵🇸",description:"flag: Palestinian Territories",category:"Flags",aliases:["palestinian_territories"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇵🇹",description:"flag: Portugal",category:"Flags",aliases:["portugal"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇵🇼",description:"flag: Palau",category:"Flags",aliases:["palau"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇵🇾",description:"flag: Paraguay",category:"Flags",aliases:["paraguay"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇶🇦",description:"flag: Qatar",category:"Flags",aliases:["qatar"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇷🇪",description:"flag: Réunion",category:"Flags",aliases:["reunion"],tags:[],unicode_version:"6.0",ios_version:"9.0"},{emoji:"🇷🇴",description:"flag: Romania",category:"Flags",aliases:["romania"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇷🇸",description:"flag: Serbia",category:"Flags",aliases:["serbia"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇷🇺",description:"flag: Russia",category:"Flags",aliases:["ru"],tags:["russia"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🇷🇼",description:"flag: Rwanda",category:"Flags",aliases:["rwanda"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇸🇦",description:"flag: Saudi Arabia",category:"Flags",aliases:["saudi_arabia"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇸🇧",description:"flag: Solomon Islands",category:"Flags",aliases:["solomon_islands"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇸🇨",description:"flag: Seychelles",category:"Flags",aliases:["seychelles"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇸🇩",description:"flag: Sudan",category:"Flags",aliases:["sudan"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇸🇪",description:"flag: Sweden",category:"Flags",aliases:["sweden"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇸🇬",description:"flag: Singapore",category:"Flags",aliases:["singapore"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇸🇭",description:"flag: St. Helena",category:"Flags",aliases:["st_helena"],tags:[],unicode_version:"6.0",ios_version:"9.0"},{emoji:"🇸🇮",description:"flag: Slovenia",category:"Flags",aliases:["slovenia"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇸🇯",description:"flag: Svalbard & Jan Mayen",category:"Flags",aliases:["svalbard_jan_mayen"],tags:[],unicode_version:"11.0",ios_version:"12.1"},{emoji:"🇸🇰",description:"flag: Slovakia",category:"Flags",aliases:["slovakia"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇸🇱",description:"flag: Sierra Leone",category:"Flags",aliases:["sierra_leone"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇸🇲",description:"flag: San Marino",category:"Flags",aliases:["san_marino"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇸🇳",description:"flag: Senegal",category:"Flags",aliases:["senegal"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇸🇴",description:"flag: Somalia",category:"Flags",aliases:["somalia"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇸🇷",description:"flag: Suriname",category:"Flags",aliases:["suriname"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇸🇸",description:"flag: South Sudan",category:"Flags",aliases:["south_sudan"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇸🇹",description:"flag: São Tomé & Príncipe",category:"Flags",aliases:["sao_tome_principe"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇸🇻",description:"flag: El Salvador",category:"Flags",aliases:["el_salvador"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇸🇽",description:"flag: Sint Maarten",category:"Flags",aliases:["sint_maarten"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇸🇾",description:"flag: Syria",category:"Flags",aliases:["syria"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇸🇿",description:"flag: Eswatini",category:"Flags",aliases:["swaziland"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇹🇦",description:"flag: Tristan da Cunha",category:"Flags",aliases:["tristan_da_cunha"],tags:[],unicode_version:"11.0",ios_version:"12.1"},{emoji:"🇹🇨",description:"flag: Turks & Caicos Islands",category:"Flags",aliases:["turks_caicos_islands"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇹🇩",description:"flag: Chad",category:"Flags",aliases:["chad"],tags:[],unicode_version:"6.0",ios_version:"9.0"},{emoji:"🇹🇫",description:"flag: French Southern Territories",category:"Flags",aliases:["french_southern_territories"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇹🇬",description:"flag: Togo",category:"Flags",aliases:["togo"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇹🇭",description:"flag: Thailand",category:"Flags",aliases:["thailand"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇹🇯",description:"flag: Tajikistan",category:"Flags",aliases:["tajikistan"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇹🇰",description:"flag: Tokelau",category:"Flags",aliases:["tokelau"],tags:[],unicode_version:"6.0",ios_version:"9.0"},{emoji:"🇹🇱",description:"flag: Timor-Leste",category:"Flags",aliases:["timor_leste"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇹🇲",description:"flag: Turkmenistan",category:"Flags",aliases:["turkmenistan"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇹🇳",description:"flag: Tunisia",category:"Flags",aliases:["tunisia"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇹🇴",description:"flag: Tonga",category:"Flags",aliases:["tonga"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇹🇷",description:"flag: Turkey",category:"Flags",aliases:["tr"],tags:["turkey"],unicode_version:"8.0",ios_version:"9.1"},{emoji:"🇹🇹",description:"flag: Trinidad & Tobago",category:"Flags",aliases:["trinidad_tobago"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇹🇻",description:"flag: Tuvalu",category:"Flags",aliases:["tuvalu"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇹🇼",description:"flag: Taiwan",category:"Flags",aliases:["taiwan"],tags:[],unicode_version:"6.0",ios_version:"9.0"},{emoji:"🇹🇿",description:"flag: Tanzania",category:"Flags",aliases:["tanzania"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇺🇦",description:"flag: Ukraine",category:"Flags",aliases:["ukraine"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇺🇬",description:"flag: Uganda",category:"Flags",aliases:["uganda"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇺🇲",description:"flag: U.S. Outlying Islands",category:"Flags",aliases:["us_outlying_islands"],tags:[],unicode_version:"11.0",ios_version:"12.1"},{emoji:"🇺🇳",description:"flag: United Nations",category:"Flags",aliases:["united_nations"],tags:[],unicode_version:"11.0",ios_version:"12.1"},{emoji:"🇺🇸",description:"flag: United States",category:"Flags",aliases:["us"],tags:["flag","united","america"],unicode_version:"6.0",ios_version:"6.0"},{emoji:"🇺🇾",description:"flag: Uruguay",category:"Flags",aliases:["uruguay"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇺🇿",description:"flag: Uzbekistan",category:"Flags",aliases:["uzbekistan"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇻🇦",description:"flag: Vatican City",category:"Flags",aliases:["vatican_city"],tags:[],unicode_version:"6.0",ios_version:"9.0"},{emoji:"🇻🇨",description:"flag: St. Vincent & Grenadines",category:"Flags",aliases:["st_vincent_grenadines"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇻🇪",description:"flag: Venezuela",category:"Flags",aliases:["venezuela"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇻🇬",description:"flag: British Virgin Islands",category:"Flags",aliases:["british_virgin_islands"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇻🇮",description:"flag: U.S. Virgin Islands",category:"Flags",aliases:["us_virgin_islands"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇻🇳",description:"flag: Vietnam",category:"Flags",aliases:["vietnam"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇻🇺",description:"flag: Vanuatu",category:"Flags",aliases:["vanuatu"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇼🇫",description:"flag: Wallis & Futuna",category:"Flags",aliases:["wallis_futuna"],tags:[],unicode_version:"6.0",ios_version:"9.0"},{emoji:"🇼🇸",description:"flag: Samoa",category:"Flags",aliases:["samoa"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇽🇰",description:"flag: Kosovo",category:"Flags",aliases:["kosovo"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇾🇪",description:"flag: Yemen",category:"Flags",aliases:["yemen"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇾🇹",description:"flag: Mayotte",category:"Flags",aliases:["mayotte"],tags:[],unicode_version:"6.0",ios_version:"9.0"},{emoji:"🇿🇦",description:"flag: South Africa",category:"Flags",aliases:["south_africa"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇿🇲",description:"flag: Zambia",category:"Flags",aliases:["zambia"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🇿🇼",description:"flag: Zimbabwe",category:"Flags",aliases:["zimbabwe"],tags:[],unicode_version:"6.0",ios_version:"8.3"},{emoji:"🏴",description:"flag: England",category:"Flags",aliases:["england"],tags:[],unicode_version:"11.0",ios_version:"12.1"},{emoji:"🏴",description:"flag: Scotland",category:"Flags",aliases:["scotland"],tags:[],unicode_version:"11.0",ios_version:"12.1"},{emoji:"🏴",description:"flag: Wales",category:"Flags",aliases:["wales"],tags:[],unicode_version:"11.0",ios_version:"12.1"}]},Symbol.toStringTag,{value:"Module"}));Yo.Editor=nR,Yo.EditorTask=PR,Object.defineProperty(Yo,Symbol.toStringTag,{value:"Module"})});
|
|
1546
1546
|
//# sourceMappingURL=index.umd.js.map
|