[^\r]+?<\/pre>)/gm,function(A,T){var M=T;return M=M.replace(/^ /mg,"¨0"),M=M.replace(/¨0/g,""),M}),n.subParser("hashBlock")(`
+`+P+`
+
`,g,p)}),c=p.converter._dispatch("blockQuotes.after",c,g,p),c}),n.subParser("codeBlocks",function(c,g,p){c=p.converter._dispatch("codeBlocks.before",c,g,p),c+="¨0";var k=/(?:\n\n|^)((?:(?:[ ]{4}|\t).*\n+)+)(\n*[ ]{0,3}[^ \t\n]|(?=¨0))/g;return c=c.replace(k,function(P,A,T){var M=A,W=T,K=`
+`;return M=n.subParser("outdent")(M,g,p),M=n.subParser("encodeCode")(M,g,p),M=n.subParser("detab")(M,g,p),M=M.replace(/^\n+/g,""),M=M.replace(/\n+$/g,""),g.omitExtraWLInCodeBlocks&&(K=""),M=""+M+K+"
",n.subParser("hashBlock")(M,g,p)+W}),c=c.replace(/¨0/,""),c=p.converter._dispatch("codeBlocks.after",c,g,p),c}),n.subParser("codeSpans",function(c,g,p){return c=p.converter._dispatch("codeSpans.before",c,g,p),typeof c=="undefined"&&(c=""),c=c.replace(/(^|[^\\])(`+)([^\r]*?[^`])\2(?!`)/gm,function(k,P,A,T){var M=T;return M=M.replace(/^([ \t]*)/g,""),M=M.replace(/[ \t]*$/g,""),M=n.subParser("encodeCode")(M,g,p),M=P+""+M+"",M=n.subParser("hashHTMLSpans")(M,g,p),M}),c=p.converter._dispatch("codeSpans.after",c,g,p),c}),n.subParser("completeHTMLDocument",function(c,g,p){if(!g.completeHTMLDocument)return c;c=p.converter._dispatch("completeHTMLDocument.before",c,g,p);var k="html",P=`
+`,A="",T=`
+`,M="",W="";typeof p.metadata.parsed.doctype!="undefined"&&(P="
+`,k=p.metadata.parsed.doctype.toString().toLowerCase(),(k==="html"||k==="html5")&&(T=''));for(var K in p.metadata.parsed)if(p.metadata.parsed.hasOwnProperty(K))switch(K.toLowerCase()){case"doctype":break;case"title":A=""+p.metadata.parsed.title+`
+`;break;case"charset":k==="html"||k==="html5"?T='
+`:T='
+`;break;case"language":case"lang":M=' lang="'+p.metadata.parsed[K]+'"',W+='
+`;break;default:W+='
+`}return c=P+"
+
+`+A+T+W+`
+
+`+c.trim()+`
+
+`,c=p.converter._dispatch("completeHTMLDocument.after",c,g,p),c}),n.subParser("detab",function(c,g,p){return c=p.converter._dispatch("detab.before",c,g,p),c=c.replace(/\t(?=\t)/g," "),c=c.replace(/\t/g,"¨A¨B"),c=c.replace(/¨B(.+?)¨A/g,function(k,P){for(var A=P,T=4-A.length%4,M=0;M/g,">"),c=p.converter._dispatch("encodeAmpsAndAngles.after",c,g,p),c}),n.subParser("encodeBackslashEscapes",function(c,g,p){return c=p.converter._dispatch("encodeBackslashEscapes.before",c,g,p),c=c.replace(/\\(\\)/g,n.helper.escapeCharactersCallback),c=c.replace(/\\([`*_{}\[\]()>#+.!~=|-])/g,n.helper.escapeCharactersCallback),c=p.converter._dispatch("encodeBackslashEscapes.after",c,g,p),c}),n.subParser("encodeCode",function(c,g,p){return c=p.converter._dispatch("encodeCode.before",c,g,p),c=c.replace(/&/g,"&").replace(//g,">").replace(/([*_{}\[\]\\=~-])/g,n.helper.escapeCharactersCallback),c=p.converter._dispatch("encodeCode.after",c,g,p),c}),n.subParser("escapeSpecialCharsWithinTagAttributes",function(c,g,p){c=p.converter._dispatch("escapeSpecialCharsWithinTagAttributes.before",c,g,p);var k=/<\/?[a-z\d_:-]+(?:[\s]+[\s\S]+?)?>/gi,P=/-]|-[^>])(?:[^-]|-[^-])*)--)>/gi;return c=c.replace(k,function(A){return A.replace(/(.)<\/?code>(?=.)/g,"$1`").replace(/([\\`*_~=|])/g,n.helper.escapeCharactersCallback)}),c=c.replace(P,function(A){return A.replace(/([\\`*_~=|])/g,n.helper.escapeCharactersCallback)}),c=p.converter._dispatch("escapeSpecialCharsWithinTagAttributes.after",c,g,p),c}),n.subParser("githubCodeBlocks",function(c,g,p){return g.ghCodeBlocks?(c=p.converter._dispatch("githubCodeBlocks.before",c,g,p),c+="¨0",c=c.replace(/(?:^|\n)(?: {0,3})(```+|~~~+)(?: *)([^\s`~]*)\n([\s\S]*?)\n(?: {0,3})\1/g,function(k,P,A,T){var M=g.omitExtraWLInCodeBlocks?"":`
+`;return T=n.subParser("encodeCode")(T,g,p),T=n.subParser("detab")(T,g,p),T=T.replace(/^\n+/g,""),T=T.replace(/\n+$/g,""),T=""+T+M+"
",T=n.subParser("hashBlock")(T,g,p),`
+
+¨G`+(p.ghCodeBlocks.push({text:k,codeblock:T})-1)+`G
+
+`}),c=c.replace(/¨0/,""),p.converter._dispatch("githubCodeBlocks.after",c,g,p)):c}),n.subParser("hashBlock",function(c,g,p){return c=p.converter._dispatch("hashBlock.before",c,g,p),c=c.replace(/(^\n+|\n+$)/g,""),c=`
+
+¨K`+(p.gHtmlBlocks.push(c)-1)+`K
+
+`,c=p.converter._dispatch("hashBlock.after",c,g,p),c}),n.subParser("hashCodeTags",function(c,g,p){c=p.converter._dispatch("hashCodeTags.before",c,g,p);var k=function(P,A,T,M){var W=T+n.subParser("encodeCode")(A,g,p)+M;return"¨C"+(p.gHtmlSpans.push(W)-1)+"C"};return c=n.helper.replaceRecursiveRegExp(c,k,"]*>","","gim"),c=p.converter._dispatch("hashCodeTags.after",c,g,p),c}),n.subParser("hashElement",function(c,g,p){return function(k,P){var A=P;return A=A.replace(/\n\n/g,`
+`),A=A.replace(/^\n/,""),A=A.replace(/\n+$/g,""),A=`
+
+¨K`+(p.gHtmlBlocks.push(A)-1)+`K
+
+`,A}}),n.subParser("hashHTMLBlocks",function(c,g,p){c=p.converter._dispatch("hashHTMLBlocks.before",c,g,p);var k=["pre","div","h1","h2","h3","h4","h5","h6","blockquote","table","dl","ol","ul","script","noscript","form","fieldset","iframe","math","style","section","header","footer","nav","article","aside","address","audio","canvas","figure","hgroup","output","video","p"],P=function(R,$,I,B){var G=R;return I.search(/\bmarkdown\b/)!==-1&&(G=I+p.converter.makeHtml($)+B),`
+
+¨K`+(p.gHtmlBlocks.push(G)-1)+`K
+
+`};g.backslashEscapesHTMLTags&&(c=c.replace(/\\<(\/?[^>]+?)>/g,function(R,$){return"<"+$+">"}));for(var A=0;A]*>)","im"),W="<"+k[A]+"\\b[^>]*>",K=""+k[A]+">";(T=n.helper.regexIndexOf(c,M))!==-1;){var H=n.helper.splitAtIndex(c,T),L=n.helper.replaceRecursiveRegExp(H[1],P,W,K,"im");if(L===H[1])break;c=H[0].concat(L)}return c=c.replace(/(\n {0,3}(<(hr)\b([^<>])*?\/?>)[ \t]*(?=\n{2,}))/g,n.subParser("hashElement")(c,g,p)),c=n.helper.replaceRecursiveRegExp(c,function(R){return`
+
+¨K`+(p.gHtmlBlocks.push(R)-1)+`K
+
+`},"^ {0,3}","gm"),c=c.replace(/(?:\n\n)( {0,3}(?:<([?%])[^\r]*?\2>)[ \t]*(?=\n{2,}))/g,n.subParser("hashElement")(c,g,p)),c=p.converter._dispatch("hashHTMLBlocks.after",c,g,p),c}),n.subParser("hashHTMLSpans",function(c,g,p){c=p.converter._dispatch("hashHTMLSpans.before",c,g,p);function k(P){return"¨C"+(p.gHtmlSpans.push(P)-1)+"C"}return c=c.replace(/<[^>]+?\/>/gi,function(P){return k(P)}),c=c.replace(/<([^>]+?)>[\s\S]*?<\/\1>/g,function(P){return k(P)}),c=c.replace(/<([^>]+?)\s[^>]+?>[\s\S]*?<\/\1>/g,function(P){return k(P)}),c=c.replace(/<[^>]+?>/gi,function(P){return k(P)}),c=p.converter._dispatch("hashHTMLSpans.after",c,g,p),c}),n.subParser("unhashHTMLSpans",function(c,g,p){c=p.converter._dispatch("unhashHTMLSpans.before",c,g,p);for(var k=0;k]*>\\s*]*>","^ {0,3}\\s* ","gim"),c=p.converter._dispatch("hashPreCodeTags.after",c,g,p),c}),n.subParser("headers",function(c,g,p){c=p.converter._dispatch("headers.before",c,g,p);var k=isNaN(parseInt(g.headerLevelStart))?1:parseInt(g.headerLevelStart),P=g.smoothLivePreview?/^(.+)[ \t]*\n={2,}[ \t]*\n+/gm:/^(.+)[ \t]*\n=+[ \t]*\n+/gm,A=g.smoothLivePreview?/^(.+)[ \t]*\n-{2,}[ \t]*\n+/gm:/^(.+)[ \t]*\n-+[ \t]*\n+/gm;c=c.replace(P,function(W,K){var H=n.subParser("spanGamut")(K,g,p),L=g.noHeaderId?"":' id="'+M(K)+'"',R=k,$=""),M+="
",P.push(M))}for(A=P.length,T=0;T]*>\s*]*>/.test(K)&&(H=!0)}P[T]=K}return c=P.join(`
+`),c=c.replace(/^\n+/g,""),c=c.replace(/\n+$/g,""),p.converter._dispatch("paragraphs.after",c,g,p)}),n.subParser("runExtension",function(c,g,p,k){if(c.filter)g=c.filter(g,k.converter,p);else if(c.regex){var P=c.regex;P instanceof RegExp||(P=new RegExp(P,"g")),g=g.replace(P,c.replace)}return g}),n.subParser("spanGamut",function(c,g,p){return c=p.converter._dispatch("spanGamut.before",c,g,p),c=n.subParser("codeSpans")(c,g,p),c=n.subParser("escapeSpecialCharsWithinTagAttributes")(c,g,p),c=n.subParser("encodeBackslashEscapes")(c,g,p),c=n.subParser("images")(c,g,p),c=n.subParser("anchors")(c,g,p),c=n.subParser("autoLinks")(c,g,p),c=n.subParser("simplifiedAutoLinks")(c,g,p),c=n.subParser("emoji")(c,g,p),c=n.subParser("underline")(c,g,p),c=n.subParser("italicsAndBold")(c,g,p),c=n.subParser("strikethrough")(c,g,p),c=n.subParser("ellipsis")(c,g,p),c=n.subParser("hashHTMLSpans")(c,g,p),c=n.subParser("encodeAmpsAndAngles")(c,g,p),g.simpleLineBreaks?/\n\n¨K/.test(c)||(c=c.replace(/\n+/g,`
+`)):c=c.replace(/ +\n/g,`
+`),c=p.converter._dispatch("spanGamut.after",c,g,p),c}),n.subParser("strikethrough",function(c,g,p){function k(P){return g.simplifiedAutoLink&&(P=n.subParser("simplifiedAutoLinks")(P,g,p)),""+P+""}return g.strikethrough&&(c=p.converter._dispatch("strikethrough.before",c,g,p),c=c.replace(/(?:~){2}([\s\S]+?)(?:~){2}/g,function(P,A){return k(A)}),c=p.converter._dispatch("strikethrough.after",c,g,p)),c}),n.subParser("stripLinkDefinitions",function(c,g,p){var k=/^ {0,3}\[(.+)]:[ \t]*\n?[ \t]*([^>\s]+)>?(?: =([*\d]+[A-Za-z%]{0,4})x([*\d]+[A-Za-z%]{0,4}))?[ \t]*\n?[ \t]*(?:(\n*)["|'(](.+?)["|')][ \t]*)?(?:\n+|(?=¨0))/gm,P=/^ {0,3}\[(.+)]:[ \t]*\n?[ \t]*(data:.+?\/.+?;base64,[A-Za-z0-9+/=\n]+?)>?(?: =([*\d]+[A-Za-z%]{0,4})x([*\d]+[A-Za-z%]{0,4}))?[ \t]*\n?[ \t]*(?:(\n*)["|'(](.+?)["|')][ \t]*)?(?:\n\n|(?=¨0)|(?=\n\[))/gm;c+="¨0";var A=function(T,M,W,K,H,L,R){return M=M.toLowerCase(),W.match(/^data:.+?\/.+?;base64,/)?p.gUrls[M]=W.replace(/\s/g,""):p.gUrls[M]=n.subParser("encodeAmpsAndAngles")(W,g,p),L?L+R:(R&&(p.gTitles[M]=R.replace(/"|'/g,""")),g.parseImgDimensions&&K&&H&&(p.gDimensions[M]={width:K,height:H}),"")};return c=c.replace(P,A),c=c.replace(k,A),c=c.replace(/¨0/,""),c}),n.subParser("tables",function(c,g,p){if(!g.tables)return c;var k=/^ {0,3}\|?.+\|.+\n {0,3}\|?[ \t]*:?[ \t]*(?:[-=]){2,}[ \t]*:?[ \t]*\|[ \t]*:?[ \t]*(?:[-=]){2,}[\s\S]+?(?:\n\n|¨0)/gm,P=/^ {0,3}\|.+\|[ \t]*\n {0,3}\|[ \t]*:?[ \t]*(?:[-=]){2,}[ \t]*:?[ \t]*\|[ \t]*\n( {0,3}\|.+\|[ \t]*\n)*(?:\n|¨0)/gm;function A(H){return/^:[ \t]*--*$/.test(H)?' style="text-align:left;"':/^--*[ \t]*:[ \t]*$/.test(H)?' style="text-align:right;"':/^:[ \t]*--*[ \t]*:$/.test(H)?' style="text-align:center;"':""}function T(H,L){var R="";return H=H.trim(),(g.tablesHeaderId||g.tableHeaderId)&&(R=' id="'+H.replace(/ /g,"_").toLowerCase()+'"'),H=n.subParser("spanGamut")(H,g,p),""+H+`
+`}function M(H,L){var R=n.subParser("spanGamut")(H,g,p);return""+R+`
+`}function W(H,L){for(var R=`
+
+
+`,$=H.length,I=0;I<$;++I)R+=H[I];for(R+=`
+
+
+`,I=0;I
+`;for(var B=0;B<$;++B)R+=L[I][B];R+=`
+`}return R+=`
+
+`,R}function K(H){var L,R=H.split(`
+`);for(L=0;L"+P+""}),c=c.replace(/\b__(\S[\s\S]*?)__\b/g,function(k,P){return""+P+""})):(c=c.replace(/___(\S[\s\S]*?)___/g,function(k,P){return/\S$/.test(P)?""+P+"":k}),c=c.replace(/__(\S[\s\S]*?)__/g,function(k,P){return/\S$/.test(P)?""+P+"":k})),c=c.replace(/(_)/g,n.helper.escapeCharactersCallback),c=p.converter._dispatch("underline.after",c,g,p)),c}),n.subParser("unescapeSpecialChars",function(c,g,p){return c=p.converter._dispatch("unescapeSpecialChars.before",c,g,p),c=c.replace(/¨E(\d+)E/g,function(k,P){var A=parseInt(P);return String.fromCharCode(A)}),c=p.converter._dispatch("unescapeSpecialChars.after",c,g,p),c}),n.subParser("makeMarkdown.blockquote",function(c,g){var p="";if(c.hasChildNodes())for(var k=c.childNodes,P=k.length,A=0;A "+p.split(`
+`).join(`
+> `),p}),n.subParser("makeMarkdown.codeBlock",function(c,g){var p=c.getAttribute("language"),k=c.getAttribute("precodenum");return"```"+p+`
+`+g.preList[k]+"\n```"}),n.subParser("makeMarkdown.codeSpan",function(c){return"`"+c.innerHTML+"`"}),n.subParser("makeMarkdown.emphasis",function(c,g){var p="";if(c.hasChildNodes()){p+="*";for(var k=c.childNodes,P=k.length,A=0;A
",c.hasAttribute("width")&&c.hasAttribute("height")&&(g+=" ="+c.getAttribute("width")+"x"+c.getAttribute("height")),c.hasAttribute("title")&&(g+=' "'+c.getAttribute("title")+'"'),g+=")"),g}),n.subParser("makeMarkdown.links",function(c,g){var p="";if(c.hasChildNodes()&&c.hasAttribute("href")){var k=c.childNodes,P=k.length;p="[";for(var A=0;A
",c.hasAttribute("title")&&(p+=' "'+c.getAttribute("title")+'"'),p+=")"}return p}),n.subParser("makeMarkdown.list",function(c,g,p){var k="";if(!c.hasChildNodes())return"";for(var P=c.childNodes,A=P.length,T=c.getAttribute("start")||1,M=0;M
+`,k.trim()}),n.subParser("makeMarkdown.listItem",function(c,g){for(var p="",k=c.childNodes,P=k.length,A=0;A
+
+`;if(c.nodeType!==1)return"";var P=c.tagName.toLowerCase();switch(P){case"h1":p||(k=n.subParser("makeMarkdown.header")(c,g,1)+`
+
+`);break;case"h2":p||(k=n.subParser("makeMarkdown.header")(c,g,2)+`
+
+`);break;case"h3":p||(k=n.subParser("makeMarkdown.header")(c,g,3)+`
+
+`);break;case"h4":p||(k=n.subParser("makeMarkdown.header")(c,g,4)+`
+
+`);break;case"h5":p||(k=n.subParser("makeMarkdown.header")(c,g,5)+`
+
+`);break;case"h6":p||(k=n.subParser("makeMarkdown.header")(c,g,6)+`
+
+`);break;case"p":p||(k=n.subParser("makeMarkdown.paragraph")(c,g)+`
+
+`);break;case"blockquote":p||(k=n.subParser("makeMarkdown.blockquote")(c,g)+`
+
+`);break;case"hr":p||(k=n.subParser("makeMarkdown.hr")(c,g)+`
+
+`);break;case"ol":p||(k=n.subParser("makeMarkdown.list")(c,g,"ol")+`
+
+`);break;case"ul":p||(k=n.subParser("makeMarkdown.list")(c,g,"ul")+`
+
+`);break;case"precode":p||(k=n.subParser("makeMarkdown.codeBlock")(c,g)+`
+
+`);break;case"pre":p||(k=n.subParser("makeMarkdown.pre")(c,g)+`
+
+`);break;case"table":p||(k=n.subParser("makeMarkdown.table")(c,g)+`
+
+`);break;case"code":k=n.subParser("makeMarkdown.codeSpan")(c,g);break;case"em":case"i":k=n.subParser("makeMarkdown.emphasis")(c,g);break;case"strong":case"b":k=n.subParser("makeMarkdown.strong")(c,g);break;case"del":k=n.subParser("makeMarkdown.strikethrough")(c,g);break;case"a":k=n.subParser("makeMarkdown.links")(c,g);break;case"img":k=n.subParser("makeMarkdown.image")(c,g);break;default:k=c.outerHTML+`
+
+`}return k}),n.subParser("makeMarkdown.paragraph",function(c,g){var p="";if(c.hasChildNodes())for(var k=c.childNodes,P=k.length,A=0;A
"+g.preList[p]+""}),n.subParser("makeMarkdown.strikethrough",function(c,g){var p="";if(c.hasChildNodes()){p+="~~";for(var k=c.childNodes,P=k.length,A=0;A
tr>th"),A=c.querySelectorAll("tbody>tr"),T,M;for(T=0;T
I&&(I=B)}for(T=0;T/g,"\\$1>"),g=g.replace(/^#/gm,"\\#"),g=g.replace(/^(\s*)([-=]{3,})(\s*)$/,"$1\\$2$3"),g=g.replace(/^( {0,3}\d+)\./gm,"$1\\."),g=g.replace(/^( {0,3})([+-])/gm,"$1\\$2"),g=g.replace(/]([\s]*)\(/g,"\\]$1\\("),g=g.replace(/^ {0,3}\[([\S \t]*?)]:/gm,"\\[$1]:"),g});var x=this;e.exports?e.exports=n:x.showdown=n}).call(pr)}),VD=le(function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.useStyles=void 0,t.useStyles=RE.createUseStyles(function(r){return{yamde:{margin:"16px 0",width:"100%",boxSizing:"initial","@media screen and (max-width: 767px)":{overflow:"hidden"}},toolbar:{display:"flex",marginBottom:"-1px",maxHeight:"36px",width:"100%"},buttons:{display:"flex","@media screen and (max-width: 767px)":{display:"none"}},mobileButton:{display:"none","@media screen and (max-width: 767px)":{display:"grid",gridTemplateColumns:"repeat(auto-fill, minmax(34px, 1fr))",marginTop:"-1px"}},viewSwitch:{marginLeft:"auto",display:"flex",marginTop:"-1px"},viewButton:{cursor:"pointer",fontSize:"14px",backgroundColor:r.switchButtonBackgroundColor,display:"flex",justifyContent:"center",alignItems:"center",border:"1px solid "+r.switchButtonBorderColor,transition:"background-color 0.2s ease",fontWeight:400,padding:"0 10px",width:"65px",height:"35px",color:r.switchButtonColorView,zIndex:1,fontFamily:"Helvetica, Arial, sans-serif","&:first-child":{borderRight:0},"&:hover":{color:r.switchButtonColorHover,backgroundColor:r.switchButtonBackgroundColorHover,transition:"background-color 0.2s ease"}},activeView:{borderBottom:"1px solid "+r.switchButtonBorderColorActiveView,color:r.switchButtonColorActiveView,backgroundColor:r.switchButtonBackgroundColorActiveView,"&:hover":{backgroundColor:r.switchButtonBackgroundColorActiveView}},contentArea:{marginTop:"-1px",display:"flex","& > textarea":{borderRadius:0,border:"1px solid "+r.textAreaBorderColor,width:"calc(100% - 34px)",padding:"16px",resize:"none",background:r.contentAreaBackgroundColor,color:r.textColor,"&::selection":{backgroundColor:r.textAreaSelectionBackgroundColor,color:r.textAreaSelectionColor},"&:active, &:focus":{border:"1px solid "+r.textAreaBorderColor,outline:"none"}}},preview:{background:r.contentAreaBackgroundColor,border:"1px solid "+r.previewAreaBorderColor,width:"calc(100% - 34px)",padding:"16px",minHeight:"50px",fontSize:"1rem",fontWeight:400,fontFamily:"Helvetica, Arial, sans-serif","& > p":{color:r.textColor+" !important",fontFamily:"inherit",textAlign:"left",fontSize:"16px",fontWeight:400,marginBottom:"1rem",marginTop:0,"& > img":{maxWidth:"100%"}},"& code":{fontFamily:'source-code-pro, Menlo, Monaco, Consolas, "Courier New", monospace',fontSize:"12px",background:r.codeBlockBackgroundColor,padding:"4px 8px"},"& pre":{width:"auto",background:r.codeBlockBackgroundColor,padding:"4px 8px"},"& > h1, & > h2, & > h3, & > h4, & > h5, & > h6":{color:r.textColor+" !important",fontFamily:"inherit",textAlign:"left"},"& a":{textDecoration:"underline !important",fontFamily:"inherit",color:r.linkColor+" !important"},"& > blockquote":{padding:"8px 24px",lineHeight:"1em",marginBlockStart:"1em",marginBlockEnd:"1em",marginInlineStart:0,marginInlineEnd:0,fontStyle:"italic",borderLeft:"5px solid "+r.quoteAdornmentColor,fontSize:"1.15em","& > p":{color:r.textColor+" !important"}},"& > table":{borderCollapse:"collapse","& th, & td":{border:"1px solid "+r.tableBorderColor,padding:"4px",color:r.textColor}},"& ul, & ol, & li":{color:r.textColor}},button:{cursor:"pointer",backgroundColor:r.buttonBackgroundColor,fontSize:"13px",fontFamily:"Courier, Helvetica, Arial, sans-serif",fontWeight:400,width:"34px",height:"34px",display:"flex",justifyContent:"center",alignItems:"center",border:"1px solid "+r.buttonBorderColor,transition:"background-color 0.2s ease",marginRight:"-1px",color:r.buttonColor,"&:hover":{backgroundColor:r.buttonBackgroundColorHover,transition:"background-color 0.2s ease"},"& > svg":{width:"16px",height:"16px"}}}})}),jE=le(function(e){function t(r){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?(e.exports=t=function(i){return typeof i},e.exports.default=e.exports,e.exports.__esModule=!0):(e.exports=t=function(i){return i&&typeof Symbol=="function"&&i.constructor===Symbol&&i!==Symbol.prototype?"symbol":typeof i},e.exports.default=e.exports,e.exports.__esModule=!0),t(r)}e.exports=t,e.exports.default=e.exports,e.exports.__esModule=!0}),un=le(function(e){var t=jE.default;function r(i){if(typeof WeakMap!="function")return null;var a=new WeakMap,o=new WeakMap;return(r=function(u){return u?o:a})(i)}function n(i,a){if(!a&&i&&i.__esModule)return i;if(i===null||t(i)!=="object"&&typeof i!="function")return{default:i};var o=r(a);if(o&&o.has(i))return o.get(i);var s={},u=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var l in i)if(l!=="default"&&Object.prototype.hasOwnProperty.call(i,l)){var f=u?Object.getOwnPropertyDescriptor(i,l):null;f&&(f.get||f.set)?Object.defineProperty(s,l,f):s[l]=i[l]}return s.default=i,o&&o.set(i,s),s}e.exports=n,e.exports.default=e.exports,e.exports.__esModule=!0}),Ne=le(function(e){function t(r){return r&&r.__esModule?r:{default:r}}e.exports=t,e.exports.default=e.exports,e.exports.__esModule=!0}),PE=le(function(e){function t(r,n,i){return n in r?Object.defineProperty(r,n,{value:i,enumerable:!0,configurable:!0,writable:!0}):r[n]=i,r}e.exports=t,e.exports.default=e.exports,e.exports.__esModule=!0}),Kr=le(function(e){function t(n,i){var a=Object.keys(n);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(n);i&&(o=o.filter(function(s){return Object.getOwnPropertyDescriptor(n,s).enumerable})),a.push.apply(a,o)}return a}function r(n){for(var i=1;ir.length)&&(n=r.length);for(var i=0,a=new Array(n);i=0)&&(i[o]=r[o]);return i}e.exports=t,e.exports.default=e.exports,e.exports.__esModule=!0}),OE=le(function(e){function t(r,n){if(r==null)return{};var i=XD(r,n),a,o;if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(r);for(o=0;o=0)&&(!Object.prototype.propertyIsEnumerable.call(r,a)||(i[a]=r[a]))}return i}e.exports=t,e.exports.default=e.exports,e.exports.__esModule=!0}),QD=le(function(e){(function(){var t={}.hasOwnProperty;function r(){for(var n=[],i=0;i1)&&(e=1),e}function Pf(e){return e<=1?Number(e)*100+"%":e}function Vv(e){return e.length===1?"0"+e:String(e)}function tF(e,t,r){return{r:ln(e,255)*255,g:ln(t,255)*255,b:ln(r,255)*255}}function Wv(e,t,r){return r<0&&(r+=1),r>1&&(r-=1),r<1/6?e+(t-e)*(6*r):r<1/2?t:r<2/3?e+(t-e)*(2/3-r)*6:e}function rF(e,t,r){var n,i,a;if(e=ln(e,360),t=ln(t,100),r=ln(r,100),t===0)i=r,a=r,n=r;else{var o=r<.5?r*(1+t):r+t-r*t,s=2*r-o;n=Wv(s,o,e+1/3),i=Wv(s,o,e),a=Wv(s,o,e-1/3)}return{r:n*255,g:i*255,b:a*255}}function nF(e,t,r){e=ln(e,255),t=ln(t,255),r=ln(r,255);var n=Math.max(e,t,r),i=Math.min(e,t,r),a=0,o=n,s=n-i,u=n===0?0:s/n;if(n===i)a=0;else{switch(n){case e:a=(t-r)/s+(t=60&&Math.round(e.h)<=240?n=r?Math.round(e.h)-Tf*t:Math.round(e.h)+Tf*t:n=r?Math.round(e.h)+Tf*t:Math.round(e.h)-Tf*t,n<0?n+=360:n>=360&&(n-=360),n}function $E(e,t,r){if(e.h===0&&e.s===0)return e.s;var n;return r?n=e.s-DE*t:t===BE?n=e.s+DE:n=e.s+lF*t,n>1&&(n=1),r&&t===FE&&n>.1&&(n=.1),n<.06&&(n=.06),Number(n.toFixed(2))}function UE(e,t,r){var n;return r?n=e.v+cF*t:n=e.v-dF*t,n>1&&(n=1),Number(n.toFixed(2))}function Gv(e){for(var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},r=[],n=dl(e),i=FE;i>0;i-=1){var a=NE(n),o=Af(dl({h:zE(a,i,!0),s:$E(a,i,!0),v:UE(a,i,!0)}));r.push(o)}r.push(Af(n));for(var s=1;s<=BE;s+=1){var u=NE(n),l=Af(dl({h:zE(u,s),s:$E(u,s),v:UE(u,s)}));r.push(l)}return t.theme==="dark"?fF.map(function(f){var h=f.index,m=f.opacity,S=Af(pF(dl(t.backgroundColor||"#141414"),dl(r[h]),m*100));return S}):r}var Of={red:"#F5222D",volcano:"#FA541C",orange:"#FA8C16",gold:"#FAAD14",yellow:"#FADB14",lime:"#A0D911",green:"#52C41A",cyan:"#13C2C2",blue:"#1890FF",geekblue:"#2F54EB",purple:"#722ED1",magenta:"#EB2F96",grey:"#666666"},dr={},If={};Object.keys(Of).forEach(function(e){dr[e]=Gv(Of[e]),dr[e].primary=dr[e][5],If[e]=Gv(Of[e],{theme:"dark",backgroundColor:"#141414"}),If[e].primary=If[e][5]});var mF=dr.red,hF=dr.volcano,gF=dr.gold,vF=dr.orange,yF=dr.yellow,bF=dr.lime,wF=dr.green,SF=dr.cyan,EF=dr.blue,_F=dr.geekblue,kF=dr.purple,xF=dr.magenta,CF=dr.grey,RF=Object.freeze({__proto__:null,blue:EF,cyan:SF,geekblue:_F,generate:Gv,gold:gF,green:wF,grey:CF,lime:bF,magenta:xF,orange:vF,presetDarkPalettes:If,presetPalettes:dr,presetPrimaryColors:Of,purple:kF,red:mF,volcano:hF,yellow:yF}),jF=le(function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.warning=n,t.note=i,t.resetWarned=a,t.call=o,t.warningOnce=s,t.noteOnce=u,t.default=void 0;var r={};function n(f,h){}function i(f,h){}function a(){r={}}function o(f,h,m){!h&&!r[m]&&(f(!1,m),r[m]=!0)}function s(f,h){o(n,f,h)}function u(f,h){o(i,f,h)}var l=s;t.default=l}),PF=le(function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.default=r;function r(){return!!(typeof window!="undefined"&&window.document&&window.document.createElement)}}),TF=le(function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.injectCSS=a,t.updateCSS=s;var r=Ne(PF),n="rc-util-key";function i(u){if(u.attachTo)return u.attachTo;var l=document.querySelector("head");return l||document.body}function a(u){var l,f=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(!(0,r.default)())return null;var h=document.createElement("style");if((l=f.csp)===null||l===void 0?void 0:l.nonce){var m;h.nonce=(m=f.csp)===null||m===void 0?void 0:m.nonce}h.innerHTML=u;var S=i(f),_=S.firstChild;return f.prepend&&S.prepend?S.prepend(h):f.prepend&&_?S.insertBefore(h,_):S.appendChild(h),h}var o=new Map;function s(u,l){var f=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},h=i(f);if(!o.has(h)){var m=a("",f),S=m.parentNode;o.set(h,S),S.removeChild(m)}var _=Array.from(o.get(h).children).find(function(x){return x.tagName==="STYLE"&&x[n]===l});if(_){var b,v;if(((b=f.csp)===null||b===void 0?void 0:b.nonce)&&_.nonce!==((v=f.csp)===null||v===void 0?void 0:v.nonce)){var y;_.nonce=(y=f.csp)===null||y===void 0?void 0:y.nonce}return _.innerHTML!==u&&(_.innerHTML=u),_}var w=a(u,f);return w[n]=l,w}}),si=le(function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.warning=s,t.isIconDefinition=u,t.normalizeAttrs=l,t.generate=f,t.getSecondaryColor=h,t.normalizeTwoToneColors=m,t.useInsertStyles=t.iconStyles=t.svgBaseProps=void 0;var r=Ne(Kr),n=Ne(jE),i=un(d),a=Ne(jF),o=Ne(IE);function s(v,y){(0,a.default)(v,"[@ant-design/icons] ".concat(y))}function u(v){return(0,n.default)(v)==="object"&&typeof v.name=="string"&&typeof v.theme=="string"&&((0,n.default)(v.icon)==="object"||typeof v.icon=="function")}function l(){var v=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return Object.keys(v).reduce(function(y,w){var x=v[w];switch(w){case"class":y.className=x,delete y.class;break;default:y[w]=x}return y},{})}function f(v,y,w){return w?i.default.createElement(v.tag,(0,r.default)((0,r.default)({key:y},l(v.attrs)),w),(v.children||[]).map(function(x,c){return f(x,"".concat(y,"-").concat(v.tag,"-").concat(c))})):i.default.createElement(v.tag,(0,r.default)({key:y},l(v.attrs)),(v.children||[]).map(function(x,c){return f(x,"".concat(y,"-").concat(v.tag,"-").concat(c))}))}function h(v){return(0,RF.generate)(v)[0]}function m(v){return v?Array.isArray(v)?v:[v]:[]}var S={width:"1em",height:"1em",fill:"currentColor","aria-hidden":"true",focusable:"false"};t.svgBaseProps=S;var _=`
+.anticon {
+ display: inline-block;
+ color: inherit;
+ font-style: normal;
+ line-height: 0;
+ text-align: center;
+ text-transform: none;
+ vertical-align: -0.125em;
+ text-rendering: optimizeLegibility;
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
+}
+
+.anticon > * {
+ line-height: 1;
+}
+
+.anticon svg {
+ display: inline-block;
+}
+
+.anticon::before {
+ display: none;
+}
+
+.anticon .anticon-icon {
+ display: block;
+}
+
+.anticon[tabindex] {
+ cursor: pointer;
+}
+
+.anticon-spin::before,
+.anticon-spin {
+ display: inline-block;
+ -webkit-animation: loadingCircle 1s infinite linear;
+ animation: loadingCircle 1s infinite linear;
+}
+
+@-webkit-keyframes loadingCircle {
+ 100% {
+ -webkit-transform: rotate(360deg);
+ transform: rotate(360deg);
+ }
+}
+
+@keyframes loadingCircle {
+ 100% {
+ -webkit-transform: rotate(360deg);
+ transform: rotate(360deg);
+ }
+}
+`;t.iconStyles=_;var b=function(){var y=arguments.length>0&&arguments[0]!==void 0?arguments[0]:_,w=(0,i.useContext)(o.default),x=w.csp;(0,i.useEffect)(function(){(0,TF.updateCSS)(y,"@ant-design-icons",{prepend:!0,csp:x})},[])};t.useInsertStyles=b}),HE=le(function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=Ne(OE),n=Ne(Kr),i=["icon","className","onClick","style","primaryColor","secondaryColor"],a={primaryColor:"#333",secondaryColor:"#E6E6E6",calculated:!1};function o(f){var h=f.primaryColor,m=f.secondaryColor;a.primaryColor=h,a.secondaryColor=m||(0,si.getSecondaryColor)(h),a.calculated=!!m}function s(){return(0,n.default)({},a)}var u=function(h){var m=h.icon,S=h.className,_=h.onClick,b=h.style,v=h.primaryColor,y=h.secondaryColor,w=(0,r.default)(h,i),x=a;if(v&&(x={primaryColor:v,secondaryColor:y||(0,si.getSecondaryColor)(v)}),(0,si.useInsertStyles)(),(0,si.warning)((0,si.isIconDefinition)(m),"icon should be icon definiton, but got ".concat(m)),!(0,si.isIconDefinition)(m))return null;var c=m;return c&&typeof c.icon=="function"&&(c=(0,n.default)((0,n.default)({},c),{},{icon:c.icon(x.primaryColor,x.secondaryColor)})),(0,si.generate)(c.icon,"svg-".concat(c.name),(0,n.default)({className:S,onClick:_,style:b,"data-icon":c.name,width:"1em",height:"1em",fill:"currentColor","aria-hidden":"true"},w))};u.displayName="IconReact",u.getTwoToneColors=s,u.setTwoToneColors=o;var l=u;t.default=l}),Yv=le(function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.setTwoToneColor=i,t.getTwoToneColor=a;var r=Ne(AE),n=Ne(HE);function i(o){var s=(0,si.normalizeTwoToneColors)(o),u=(0,r.default)(s,2),l=u[0],f=u[1];return n.default.setTwoToneColors({primaryColor:l,secondaryColor:f})}function a(){var o=n.default.getTwoToneColors();return o.calculated?[o.primaryColor,o.secondaryColor]:o.primaryColor}}),Dn=le(function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=Ne(Kr),n=Ne(AE),i=Ne(PE),a=Ne(OE),o=un(d),s=Ne(QD),u=Ne(IE),l=Ne(HE),f=["className","icon","spin","rotate","tabIndex","onClick","twoToneColor"];(0,Yv.setTwoToneColor)("#1890ff");var h=o.forwardRef(function(S,_){var b,v=S.className,y=S.icon,w=S.spin,x=S.rotate,c=S.tabIndex,g=S.onClick,p=S.twoToneColor,k=(0,a.default)(S,f),P=o.useContext(u.default),A=P.prefixCls,T=A===void 0?"anticon":A,M=(0,s.default)(T,(b={},(0,i.default)(b,"".concat(T,"-").concat(y.name),!!y.name),(0,i.default)(b,"".concat(T,"-spin"),!!w||y.name==="loading"),b),v),W=c;W===void 0&&g&&(W=-1);var K=x?{msTransform:"rotate(".concat(x,"deg)"),transform:"rotate(".concat(x,"deg)")}:void 0,H=(0,si.normalizeTwoToneColors)(p),L=(0,n.default)(H,2),R=L[0],$=L[1];return o.createElement("span",(0,r.default)((0,r.default)({role:"img","aria-label":y.name},k),{},{ref:_,tabIndex:W,onClick:g,className:M}),o.createElement(l.default,{icon:y,primaryColor:R,secondaryColor:$,style:K}))});h.displayName="AntdIcon",h.getTwoToneColor=Yv.getTwoToneColor,h.setTwoToneColor=Yv.setTwoToneColor;var m=h;t.default=m}),AF=le(function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=Ne(Kr),n=un(d),i=Ne(WD),a=Ne(Dn),o=function(l,f){return n.createElement(a.default,(0,r.default)((0,r.default)({},l),{},{ref:f,icon:i.default}))};o.displayName="BoldOutlined";var s=n.forwardRef(o);t.default=s}),OF=le(function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=n(AF);function n(a){return a&&a.__esModule?a:{default:a}}var i=r;t.default=i,e.exports=i}),IF=le(function(e,t){Object.defineProperty(t,"__esModule",{value:!0});var r={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M798 160H366c-4.4 0-8 3.6-8 8v64c0 4.4 3.6 8 8 8h181.2l-156 544H229c-4.4 0-8 3.6-8 8v64c0 4.4 3.6 8 8 8h432c4.4 0 8-3.6 8-8v-64c0-4.4-3.6-8-8-8H474.4l156-544H798c4.4 0 8-3.6 8-8v-64c0-4.4-3.6-8-8-8z"}}]},name:"italic",theme:"outlined"};t.default=r}),LF=le(function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=Ne(Kr),n=un(d),i=Ne(IF),a=Ne(Dn),o=function(l,f){return n.createElement(a.default,(0,r.default)((0,r.default)({},l),{},{ref:f,icon:i.default}))};o.displayName="ItalicOutlined";var s=n.forwardRef(o);t.default=s}),MF=le(function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=n(LF);function n(a){return a&&a.__esModule?a:{default:a}}var i=r;t.default=i,e.exports=i}),DF=le(function(e,t){Object.defineProperty(t,"__esModule",{value:!0});var r={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M952 474H569.9c-10-2-20.5-4-31.6-6-15.9-2.9-22.2-4.1-30.8-5.8-51.3-10-82.2-20-106.8-34.2-35.1-20.5-52.2-48.3-52.2-85.1 0-37 15.2-67.7 44-89 28.4-21 68.8-32.1 116.8-32.1 54.8 0 97.1 14.4 125.8 42.8 14.6 14.4 25.3 32.1 31.8 52.6 1.3 4.1 2.8 10 4.3 17.8.9 4.8 5.2 8.2 9.9 8.2h72.8c5.6 0 10.1-4.6 10.1-10.1v-1c-.7-6.8-1.3-12.1-2-16-7.3-43.5-28-81.7-59.7-110.3-44.4-40.5-109.7-61.8-188.7-61.8-72.3 0-137.4 18.1-183.3 50.9-25.6 18.4-45.4 41.2-58.6 67.7-13.5 27.1-20.3 58.4-20.3 92.9 0 29.5 5.7 54.5 17.3 76.5 8.3 15.7 19.6 29.5 34.1 42H72c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h433.2c2.1.4 3.9.8 5.9 1.2 30.9 6.2 49.5 10.4 66.6 15.2 23 6.5 40.6 13.3 55.2 21.5 35.8 20.2 53.3 49.2 53.3 89 0 35.3-15.5 66.8-43.6 88.8-30.5 23.9-75.6 36.4-130.5 36.4-43.7 0-80.7-8.5-110.2-25-29.1-16.3-49.1-39.8-59.7-69.5-.8-2.2-1.7-5.2-2.7-9-1.2-4.4-5.3-7.5-9.7-7.5h-79.7c-5.6 0-10.1 4.6-10.1 10.1v1c.2 2.3.4 4.2.6 5.7 6.5 48.8 30.3 88.8 70.7 118.8 47.1 34.8 113.4 53.2 191.8 53.2 84.2 0 154.8-19.8 204.2-57.3 25-18.9 44.2-42.2 57.1-69 13-27.1 19.7-57.9 19.7-91.5 0-31.8-5.8-58.4-17.8-81.4-5.8-11.2-13.1-21.5-21.8-30.8H952c4.4 0 8-3.6 8-8v-60a8 8 0 00-8-7.9z"}}]},name:"strikethrough",theme:"outlined"};t.default=r}),FF=le(function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=Ne(Kr),n=un(d),i=Ne(DF),a=Ne(Dn),o=function(l,f){return n.createElement(a.default,(0,r.default)((0,r.default)({},l),{},{ref:f,icon:i.default}))};o.displayName="StrikethroughOutlined";var s=n.forwardRef(o);t.default=s}),BF=le(function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=n(FF);function n(a){return a&&a.__esModule?a:{default:a}}var i=r;t.default=i,e.exports=i}),NF=le(function(e,t){Object.defineProperty(t,"__esModule",{value:!0});var r={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M912 192H328c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h584c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 284H328c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h584c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 284H328c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h584c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM104 228a56 56 0 10112 0 56 56 0 10-112 0zm0 284a56 56 0 10112 0 56 56 0 10-112 0zm0 284a56 56 0 10112 0 56 56 0 10-112 0z"}}]},name:"unordered-list",theme:"outlined"};t.default=r}),zF=le(function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=Ne(Kr),n=un(d),i=Ne(NF),a=Ne(Dn),o=function(l,f){return n.createElement(a.default,(0,r.default)((0,r.default)({},l),{},{ref:f,icon:i.default}))};o.displayName="UnorderedListOutlined";var s=n.forwardRef(o);t.default=s}),$F=le(function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=n(zF);function n(a){return a&&a.__esModule?a:{default:a}}var i=r;t.default=i,e.exports=i}),UF=le(function(e,t){Object.defineProperty(t,"__esModule",{value:!0});var r={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M920 760H336c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h584c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-568H336c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h584c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 284H336c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h584c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM216 712H100c-2.2 0-4 1.8-4 4v34c0 2.2 1.8 4 4 4h72.4v20.5h-35.7c-2.2 0-4 1.8-4 4v34c0 2.2 1.8 4 4 4h35.7V838H100c-2.2 0-4 1.8-4 4v34c0 2.2 1.8 4 4 4h116c2.2 0 4-1.8 4-4V716c0-2.2-1.8-4-4-4zM100 188h38v120c0 2.2 1.8 4 4 4h40c2.2 0 4-1.8 4-4V152c0-4.4-3.6-8-8-8h-78c-2.2 0-4 1.8-4 4v36c0 2.2 1.8 4 4 4zm116 240H100c-2.2 0-4 1.8-4 4v36c0 2.2 1.8 4 4 4h68.4l-70.3 77.7a8.3 8.3 0 00-2.1 5.4V592c0 2.2 1.8 4 4 4h116c2.2 0 4-1.8 4-4v-36c0-2.2-1.8-4-4-4h-68.4l70.3-77.7a8.3 8.3 0 002.1-5.4V432c0-2.2-1.8-4-4-4z"}}]},name:"ordered-list",theme:"outlined"};t.default=r}),HF=le(function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=Ne(Kr),n=un(d),i=Ne(UF),a=Ne(Dn),o=function(l,f){return n.createElement(a.default,(0,r.default)((0,r.default)({},l),{},{ref:f,icon:i.default}))};o.displayName="OrderedListOutlined";var s=n.forwardRef(o);t.default=s}),VF=le(function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=n(HF);function n(a){return a&&a.__esModule?a:{default:a}}var i=r;t.default=i,e.exports=i}),WF=le(function(e,t){Object.defineProperty(t,"__esModule",{value:!0});var r={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M928 160H96c-17.7 0-32 14.3-32 32v640c0 17.7 14.3 32 32 32h832c17.7 0 32-14.3 32-32V192c0-17.7-14.3-32-32-32zm-40 208H676V232h212v136zm0 224H676V432h212v160zM412 432h200v160H412V432zm200-64H412V232h200v136zm-476 64h212v160H136V432zm0-200h212v136H136V232zm0 424h212v136H136V656zm276 0h200v136H412V656zm476 136H676V656h212v136z"}}]},name:"table",theme:"outlined"};t.default=r}),KF=le(function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=Ne(Kr),n=un(d),i=Ne(WF),a=Ne(Dn),o=function(l,f){return n.createElement(a.default,(0,r.default)((0,r.default)({},l),{},{ref:f,icon:i.default}))};o.displayName="TableOutlined";var s=n.forwardRef(o);t.default=s}),qF=le(function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=n(KF);function n(a){return a&&a.__esModule?a:{default:a}}var i=r;t.default=i,e.exports=i}),GF=le(function(e,t){Object.defineProperty(t,"__esModule",{value:!0});var r={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M553.1 509.1l-77.8 99.2-41.1-52.4a8 8 0 00-12.6 0l-99.8 127.2a7.98 7.98 0 006.3 12.9H696c6.7 0 10.4-7.7 6.3-12.9l-136.5-174a8.1 8.1 0 00-12.7 0zM360 442a40 40 0 1080 0 40 40 0 10-80 0zm494.6-153.4L639.4 73.4c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.7-9.4-22.7zM790.2 326H602V137.8L790.2 326zm1.8 562H232V136h302v216a42 42 0 0042 42h216v494z"}}]},name:"file-image",theme:"outlined"};t.default=r}),YF=le(function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=Ne(Kr),n=un(d),i=Ne(GF),a=Ne(Dn),o=function(l,f){return n.createElement(a.default,(0,r.default)((0,r.default)({},l),{},{ref:f,icon:i.default}))};o.displayName="FileImageOutlined";var s=n.forwardRef(o);t.default=s}),XF=le(function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=n(YF);function n(a){return a&&a.__esModule?a:{default:a}}var i=r;t.default=i,e.exports=i}),QF=le(function(e,t){Object.defineProperty(t,"__esModule",{value:!0});var r={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M574 665.4a8.03 8.03 0 00-11.3 0L446.5 781.6c-53.8 53.8-144.6 59.5-204 0-59.5-59.5-53.8-150.2 0-204l116.2-116.2c3.1-3.1 3.1-8.2 0-11.3l-39.8-39.8a8.03 8.03 0 00-11.3 0L191.4 526.5c-84.6 84.6-84.6 221.5 0 306s221.5 84.6 306 0l116.2-116.2c3.1-3.1 3.1-8.2 0-11.3L574 665.4zm258.6-474c-84.6-84.6-221.5-84.6-306 0L410.3 307.6a8.03 8.03 0 000 11.3l39.7 39.7c3.1 3.1 8.2 3.1 11.3 0l116.2-116.2c53.8-53.8 144.6-59.5 204 0 59.5 59.5 53.8 150.2 0 204L665.3 562.6a8.03 8.03 0 000 11.3l39.8 39.8c3.1 3.1 8.2 3.1 11.3 0l116.2-116.2c84.5-84.6 84.5-221.5 0-306.1zM610.1 372.3a8.03 8.03 0 00-11.3 0L372.3 598.7a8.03 8.03 0 000 11.3l39.6 39.6c3.1 3.1 8.2 3.1 11.3 0l226.4-226.4c3.1-3.1 3.1-8.2 0-11.3l-39.5-39.6z"}}]},name:"link",theme:"outlined"};t.default=r}),JF=le(function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=Ne(Kr),n=un(d),i=Ne(QF),a=Ne(Dn),o=function(l,f){return n.createElement(a.default,(0,r.default)((0,r.default)({},l),{},{ref:f,icon:i.default}))};o.displayName="LinkOutlined";var s=n.forwardRef(o);t.default=s}),ZF=le(function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=n(JF);function n(a){return a&&a.__esModule?a:{default:a}}var i=r;t.default=i,e.exports=i}),eB=le(function(e,t){Object.defineProperty(t,"__esModule",{value:!0});var r={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M765.7 486.8L314.9 134.7A7.97 7.97 0 00302 141v77.3c0 4.9 2.3 9.6 6.1 12.6l360 281.1-360 281.1c-3.9 3-6.1 7.7-6.1 12.6V883c0 6.7 7.7 10.4 12.9 6.3l450.8-352.1a31.96 31.96 0 000-50.4z"}}]},name:"right",theme:"outlined"};t.default=r}),tB=le(function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=Ne(Kr),n=un(d),i=Ne(eB),a=Ne(Dn),o=function(l,f){return n.createElement(a.default,(0,r.default)((0,r.default)({},l),{},{ref:f,icon:i.default}))};o.displayName="RightOutlined";var s=n.forwardRef(o);t.default=s}),rB=le(function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=n(tB);function n(a){return a&&a.__esModule?a:{default:a}}var i=r;t.default=i,e.exports=i}),nB=le(function(e,t){Object.defineProperty(t,"__esModule",{value:!0});var r={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M516 673c0 4.4 3.4 8 7.5 8h185c4.1 0 7.5-3.6 7.5-8v-48c0-4.4-3.4-8-7.5-8h-185c-4.1 0-7.5 3.6-7.5 8v48zm-194.9 6.1l192-161c3.8-3.2 3.8-9.1 0-12.3l-192-160.9A7.95 7.95 0 00308 351v62.7c0 2.4 1 4.6 2.9 6.1L420.7 512l-109.8 92.2a8.1 8.1 0 00-2.9 6.1V673c0 6.8 7.9 10.5 13.1 6.1zM880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656z"}}]},name:"code",theme:"outlined"};t.default=r}),iB=le(function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=Ne(Kr),n=un(d),i=Ne(nB),a=Ne(Dn),o=function(l,f){return n.createElement(a.default,(0,r.default)((0,r.default)({},l),{},{ref:f,icon:i.default}))};o.displayName="CodeOutlined";var s=n.forwardRef(o);t.default=s}),aB=le(function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=n(iB);function n(a){return a&&a.__esModule?a:{default:a}}var i=r;t.default=i,e.exports=i}),VE=le(function(e,t){var r=pr&&pr.__importDefault||function(_){return _&&_.__esModule?_:{default:_}};Object.defineProperty(t,"__esModule",{value:!0}),t.toolbarActions=void 0;var n=r(d),i=r(OF),a=r(MF),o=r(BF),s=r($F),u=r(VF),l=r(qF),f=r(XF),h=r(ZF),m=r(rB),S=r(aB);t.toolbarActions=[{name:"bold",icon:n.default.createElement(i.default,null),schema:{openingTag:"**",closingTag:"**"}},{name:"italic",icon:n.default.createElement(a.default,null),schema:{openingTag:"*",closingTag:"*"}},{name:"strikethrough",icon:n.default.createElement(o.default,null),schema:{openingTag:"~~",closingTag:"~~"}},{name:"heading1",icon:"H1",schema:{openingTag:"# ",closingTag:""}},{name:"heading2",icon:"H2",schema:{openingTag:"## ",closingTag:""}},{name:"heading3",icon:"H3",schema:{openingTag:"### ",closingTag:""}},{name:"ulist",icon:n.default.createElement(s.default,null),schema:{openingTag:"- ",closingTag:""}},{name:"olist",icon:n.default.createElement(u.default,null),schema:{openingTag:"1. ",closingTag:""}},{name:"table",icon:n.default.createElement(l.default,null),schema:{openingTag:`Column 1 | Column 2 | Column 3
+---|:---:|---:
+Left | Center | Right
+1 | 2 | 3
+4 | 5 | 6`,closingTag:""}},{name:"image",icon:n.default.createElement(f.default,null),schema:{openingTag:""}},{name:"link",icon:n.default.createElement(h.default,null),schema:{openingTag:"[",closingTag:"](https://www.example.com)"}},{name:"quote",icon:n.default.createElement(m.default,null),schema:{openingTag:"> ",closingTag:""}},{name:"code",icon:n.default.createElement(S.default,null),schema:{openingTag:"`",closingTag:"`"}},{name:"hr",icon:"HR",schema:{openingTag:"",closingTag:`
+
+---
+`}}]}),oB=le(function(e,t){var r=pr&&pr.__createBinding||(Object.create?function(f,h,m,S){S===void 0&&(S=m),Object.defineProperty(f,S,{enumerable:!0,get:function(){return h[m]}})}:function(f,h,m,S){S===void 0&&(S=m),f[S]=h[m]}),n=pr&&pr.__setModuleDefault||(Object.create?function(f,h){Object.defineProperty(f,"default",{enumerable:!0,value:h})}:function(f,h){f.default=h}),i=pr&&pr.__importStar||function(f){if(f&&f.__esModule)return f;var h={};if(f!=null)for(var m in f)m!=="default"&&Object.prototype.hasOwnProperty.call(f,m)&&r(h,f,m);return n(h,f),h},a=pr&&pr.__importDefault||function(f){return f&&f.__esModule?f:{default:f}};Object.defineProperty(t,"__esModule",{value:!0});var o=i(d),s=a(HD),u=new s.default.Converter({tables:!0,simplifiedAutoLink:!1,strikethrough:!0,tasklists:!0,noHeaderId:!0}),l=function(f){var h=f.value,m=f.handler,S=f.toolbar,_=o.useState(!1),b=_[0],v=_[1],y=o.useRef(null),w=VD.useStyles(),x=u.makeHtml(h),c=function(p){m(p.target.value)},g=function(p){var k=p.name,P=p.schema,A=P.openingTag,T=P.closingTag;if(y&&y.current){var M=y.current,W=M.value,K=M.selectionStart,H=M.selectionEnd,L=W.length,R=y.current.value.substring(K,H),$=/[^\n]+/g,I=R.match($),B="",G=function(N,V,q,X){var z="";return N.forEach(function(ie,te){V==="olist"?z+=te+1+". "+ie+T+`
+`:z+=""+q+ie+X+`
+`}),z};if(I&&I.length>0&&(k==="olist"||k==="ulist"))B=W.substring(0,K)+G(I,k,A,T)+W.substring(H,L);else{var E=""+A+R+T;B=W.substring(0,K)+E+W.substring(H,L)}m(B)}};return o.default.createElement("div",{className:w.yamde},o.default.createElement("div",{className:w.toolbar},o.default.createElement("div",{className:w.buttons},VE.toolbarActions.filter(function(p){return S==null?void 0:S.includes(p.name)}).map(function(p){var k=p.name,P=p.icon,A=p.schema;return o.default.createElement("div",{key:k,className:w.button,onClick:function(){return g({name:k,schema:A})}},P)})),o.default.createElement("div",{className:w.viewSwitch},o.default.createElement("div",{className:w.viewButton+" "+(b?"":w.activeView),onClick:function(){return v(!1)}},"Editor"),o.default.createElement("div",{className:w.viewButton+" "+(b?w.activeView:""),onClick:function(){return v(!0)}},"Preview"))),o.default.createElement("div",{className:w.contentArea},b?o.default.createElement("div",{className:w.preview,dangerouslySetInnerHTML:{__html:x}}):o.default.createElement("textarea",{rows:12,name:"yamdeContent",value:h,onChange:function(p){return c(p)},required:!0,ref:y})),o.default.createElement("div",{className:w.mobileButton},VE.toolbarActions.filter(function(p){return S==null?void 0:S.includes(p.name)}).map(function(p){var k=p.name,P=p.icon,A=p.schema;return o.default.createElement("div",{key:k,className:w.button,onClick:function(){return g({name:k,schema:A})}},P)})))};t.default=l}),sB=le(function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.lightTheme=void 0,t.lightTheme={buttonBackgroundColor:"#fff",buttonBorderColor:"#ddd",buttonColor:"#212121",buttonBackgroundColorHover:"#dcdcdc",switchButtonBackgroundColor:"whitesmoke",switchButtonBorderColor:"#ddd",switchButtonColorHover:"#333",switchButtonBackgroundColorHover:"#dcdcdc",switchButtonColorView:" #a0a0a0",switchButtonColorActiveView:"#333",switchButtonBackgroundColorActiveView:"#fff",switchButtonBorderColorActiveView:"#fff",textColor:"#333",contentAreaBackgroundColor:"#fff",textAreaBorderColor:"#ddd",previewAreaBorderColor:"#ddd",codeBlockBackgroundColor:"#ececec",linkColor:"#4183c4",quoteAdornmentColor:"#b9b9b9",tableBorderColor:"#ddd",textAreaSelectionBackgroundColor:"#a2a2a2",textAreaSelectionColor:"#000"}}),uB=le(function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.darkTheme=void 0,t.darkTheme={buttonBackgroundColor:"#242424",buttonBorderColor:"#151515",buttonColor:"#777777",buttonBackgroundColorHover:"#1b1b1b",switchButtonBackgroundColor:"#242424",switchButtonBorderColor:"#151515",switchButtonColorHover:"#777777",switchButtonBackgroundColorHover:"#1b1b1b",switchButtonColorView:" #777777",switchButtonColorActiveView:"#777777",switchButtonBackgroundColorActiveView:"#1b1b1b",switchButtonBorderColorActiveView:"#1b1b1b",textColor:"#fff",contentAreaBackgroundColor:"#1b1b1b",textAreaBorderColor:"#151515",previewAreaBorderColor:"#151515",codeBlockBackgroundColor:"#383838",linkColor:"#4183c4",quoteAdornmentColor:"#b9b9b9",tableBorderColor:"#ddd",textAreaSelectionBackgroundColor:"#656565",textAreaSelectionColor:"#000"}}),lB=le(function(e,t){Object.defineProperty(t,"__esModule",{value:!0}),t.defaultToolbarAction=void 0,t.defaultToolbarAction=["bold","italic","strikethrough","heading1","heading2","heading3","ulist","olist","table","image","link","quote","code","hr"]}),cB=le(function(e,t){var r=pr&&pr.__importDefault||function(o){return o&&o.__esModule?o:{default:o}};Object.defineProperty(t,"__esModule",{value:!0});var n=r(d),i=r(oB),a=function(o){var s=o.value,u=o.handler,l=o.theme,f=l===void 0?"light":l,h=o.toolbar,m=h===void 0?lB.defaultToolbarAction:h;return n.default.createElement(RE.ThemeProvider,{theme:f==="light"?sB.lightTheme:uB.darkTheme},n.default.createElement(i.default,{value:s,handler:u,toolbar:m}))};t.default=a}),dB=Za(cB),fB=dB});var Pl={};mp(Pl,{MODE:()=>G0,NODE_ENV:()=>qk,SSR:()=>Gk});var G0="production",qk="production",Gk=!1;var pr=typeof globalThis!="undefined"?globalThis:typeof window!="undefined"?window:typeof global!="undefined"?global:typeof self!="undefined"?self:{};function Za(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function le(e,t,r){return r={path:t,exports:{},require:function(n,i){return Yk(n,i??r.path)}},e(r,r.exports),r.exports}function Yk(){throw new Error("Dynamic requires are not currently supported by @rollup/plugin-commonjs")}var Y0=Object.getOwnPropertySymbols,Xk=Object.prototype.hasOwnProperty,Qk=Object.prototype.propertyIsEnumerable;function Jk(e){if(e==null)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}function Zk(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de",Object.getOwnPropertyNames(e)[0]==="5")return!1;for(var t={},r=0;r<10;r++)t["_"+String.fromCharCode(r)]=r;var n=Object.getOwnPropertyNames(t).map(function(a){return t[a]});if(n.join("")!=="0123456789")return!1;var i={};return"abcdefghijklmnopqrst".split("").forEach(function(a){i[a]=a}),Object.keys(Object.assign({},i)).join("")==="abcdefghijklmnopqrst"}catch(a){return!1}}var ct=Zk()?Object.assign:function(e,t){for(var r,n=Jk(e),i,a=1;a=x},a=function(){},t.unstable_forceFrameRate=function(N){0>N||125>>1,z=N[X];if(z!==void 0&&0A(te,q))Se!==void 0&&0>A(Se,te)?(N[X]=Se,N[ke]=q,X=ke):(N[X]=te,N[ie]=q,X=ie);else if(Se!==void 0&&0>A(Se,q))N[X]=Se,N[ke]=q,X=ke;else break e}}return V}return null}function A(N,V){var q=N.sortIndex-V.sortIndex;return q!==0?q:N.id-V.id}var T=[],M=[],W=1,K=null,H=3,L=!1,R=!1,$=!1;function I(N){for(var V=k(M);V!==null;){if(V.callback===null)P(M);else if(V.startTime<=N)P(M),V.sortIndex=V.expirationTime,p(T,V);else break;V=k(M)}}function B(N){if($=!1,I(N),!R)if(k(T)!==null)R=!0,r(G);else{var V=k(M);V!==null&&n(B,V.startTime-N)}}function G(N,V){R=!1,$&&($=!1,i()),L=!0;var q=H;try{for(I(V),K=k(T);K!==null&&(!(K.expirationTime>V)||N&&!t.unstable_shouldYield());){var X=K.callback;if(typeof X=="function"){K.callback=null,H=K.priorityLevel;var z=X(K.expirationTime<=V);V=t.unstable_now(),typeof z=="function"?K.callback=z:K===k(T)&&P(T),I(V)}else P(T);K=k(T)}if(K!==null)var ie=!0;else{var te=k(M);te!==null&&n(B,te.startTime-V),ie=!1}return ie}finally{K=null,H=q,L=!1}}var E=a;t.unstable_IdlePriority=5,t.unstable_ImmediatePriority=1,t.unstable_LowPriority=4,t.unstable_NormalPriority=3,t.unstable_Profiling=null,t.unstable_UserBlockingPriority=2,t.unstable_cancelCallback=function(N){N.callback=null},t.unstable_continueExecution=function(){R||L||(R=!0,r(G))},t.unstable_getCurrentPriorityLevel=function(){return H},t.unstable_getFirstCallbackNode=function(){return k(T)},t.unstable_next=function(N){switch(H){case 1:case 2:case 3:var V=3;break;default:V=H}var q=H;H=V;try{return N()}finally{H=q}},t.unstable_pauseExecution=function(){},t.unstable_requestPaint=E,t.unstable_runWithPriority=function(N,V){switch(N){case 1:case 2:case 3:case 4:case 5:break;default:N=3}var q=H;H=N;try{return V()}finally{H=q}},t.unstable_scheduleCallback=function(N,V,q){var X=t.unstable_now();switch(typeof q=="object"&&q!==null?(q=q.delay,q=typeof q=="number"&&0X?(N.sortIndex=q,p(M,N),k(T)===null&&N===k(M)&&($?i():$=!0,n(B,q-X))):(N.sortIndex=z,p(T,N),R||L||(R=!0,r(G))),N},t.unstable_wrapCallback=function(N){var V=H;return function(){var q=H;H=V;try{return N.apply(this,arguments)}finally{H=q}}}}),Xt=le(function(e){e.exports=t6});function de(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,r=1;rt}return!1}function wr(e,t,r,n,i,a,o){this.acceptsBooleans=t===2||t===3||t===4,this.attributeName=n,this.attributeNamespace=i,this.mustUseProperty=r,this.propertyName=e,this.type=t,this.sanitizeURL=a,this.removeEmptyString=o}var nr={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(e){nr[e]=new wr(e,0,!1,e,null,!1,!1)});[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(e){var t=e[0];nr[t]=new wr(t,1,!1,e[1],null,!1,!1)});["contentEditable","draggable","spellCheck","value"].forEach(function(e){nr[e]=new wr(e,2,!1,e.toLowerCase(),null,!1,!1)});["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(e){nr[e]=new wr(e,2,!1,e,null,!1,!1)});"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function(e){nr[e]=new wr(e,3,!1,e.toLowerCase(),null,!1,!1)});["checked","multiple","muted","selected"].forEach(function(e){nr[e]=new wr(e,3,!0,e,null,!1,!1)});["capture","download"].forEach(function(e){nr[e]=new wr(e,4,!1,e,null,!1,!1)});["cols","rows","size","span"].forEach(function(e){nr[e]=new wr(e,6,!1,e,null,!1,!1)});["rowSpan","start"].forEach(function(e){nr[e]=new wr(e,5,!1,e.toLowerCase(),null,!1,!1)});var hp=/[\-:]([a-z])/g;function gp(e){return e[1].toUpperCase()}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach(function(e){var t=e.replace(hp,gp);nr[t]=new wr(t,1,!1,e,null,!1,!1)});"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(e){var t=e.replace(hp,gp);nr[t]=new wr(t,1,!1,e,"http://www.w3.org/1999/xlink",!1,!1)});["xml:base","xml:lang","xml:space"].forEach(function(e){var t=e.replace(hp,gp);nr[t]=new wr(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)});["tabIndex","crossOrigin"].forEach(function(e){nr[e]=new wr(e,1,!1,e.toLowerCase(),null,!1,!1)});nr.xlinkHref=new wr("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1);["src","href","action","formAction"].forEach(function(e){nr[e]=new wr(e,1,!1,e.toLowerCase(),null,!0,!0)});function vp(e,t,r,n){var i=nr.hasOwnProperty(t)?nr[t]:null,a=i!==null?i.type===0:n?!1:!(!(2s||i[o]!==a[s])return`
+`+i[o].replace(" at new "," at ");while(1<=o&&0<=s);break}}}finally{Rp=!1,Error.prepareStackTrace=r}return(e=e?e.displayName||e.name:"")?Os(e):""}function o6(e){switch(e.tag){case 5:return Os(e.type);case 16:return Os("Lazy");case 13:return Os("Suspense");case 19:return Os("SuspenseList");case 0:case 2:case 15:return e=Ll(e.type,!1),e;case 11:return e=Ll(e.type.render,!1),e;case 22:return e=Ll(e.type._render,!1),e;case 1:return e=Ll(e.type,!0),e;default:return""}}function ro(e){if(e==null)return null;if(typeof e=="function")return e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case ci:return"Fragment";case ga:return"Portal";case Ps:return"Profiler";case yp:return"StrictMode";case Ts:return"Suspense";case Ol:return"SuspenseList"}if(typeof e=="object")switch(e.$$typeof){case wp:return(e.displayName||"Context")+".Consumer";case bp:return(e._context.displayName||"Context")+".Provider";case Al:var t=e.render;return t=t.displayName||t.name||"",e.displayName||(t!==""?"ForwardRef("+t+")":"ForwardRef");case Il:return ro(e.type);case Ep:return ro(e._render);case Sp:t=e._payload,e=e._init;try{return ro(e(t))}catch(r){}}return null}function di(e){switch(typeof e){case"boolean":case"number":case"object":case"string":case"undefined":return e;default:return""}}function i1(e){var t=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(t==="checkbox"||t==="radio")}function s6(e){var t=i1(e)?"checked":"value",r=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),n=""+e[t];if(!e.hasOwnProperty(t)&&typeof r!="undefined"&&typeof r.get=="function"&&typeof r.set=="function"){var i=r.get,a=r.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return i.call(this)},set:function(o){n=""+o,a.call(this,o)}}),Object.defineProperty(e,t,{enumerable:r.enumerable}),{getValue:function(){return n},setValue:function(o){n=""+o},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}function Ml(e){e._valueTracker||(e._valueTracker=s6(e))}function a1(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var r=t.getValue(),n="";return e&&(n=i1(e)?e.checked?"true":"false":e.value),e=n,e!==r?(t.setValue(e),!0):!1}function Dl(e){if(e=e||(typeof document!="undefined"?document:void 0),typeof e=="undefined")return null;try{return e.activeElement||e.body}catch(t){return e.body}}function jp(e,t){var r=t.checked;return ct({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:r??e._wrapperState.initialChecked})}function o1(e,t){var r=t.defaultValue==null?"":t.defaultValue,n=t.checked!=null?t.checked:t.defaultChecked;r=di(t.value!=null?t.value:r),e._wrapperState={initialChecked:n,initialValue:r,controlled:t.type==="checkbox"||t.type==="radio"?t.checked!=null:t.value!=null}}function s1(e,t){t=t.checked,t!=null&&vp(e,"checked",t,!1)}function Tp(e,t){s1(e,t);var r=di(t.value),n=t.type;if(r!=null)n==="number"?(r===0&&e.value===""||e.value!=r)&&(e.value=""+r):e.value!==""+r&&(e.value=""+r);else if(n==="submit"||n==="reset"){e.removeAttribute("value");return}t.hasOwnProperty("value")?Pp(e,t.type,r):t.hasOwnProperty("defaultValue")&&Pp(e,t.type,di(t.defaultValue)),t.checked==null&&t.defaultChecked!=null&&(e.defaultChecked=!!t.defaultChecked)}function u1(e,t,r){if(t.hasOwnProperty("value")||t.hasOwnProperty("defaultValue")){var n=t.type;if(!(n!=="submit"&&n!=="reset"||t.value!==void 0&&t.value!==null))return;t=""+e._wrapperState.initialValue,r||t===e.value||(e.value=t),e.defaultValue=t}r=e.name,r!==""&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,r!==""&&(e.name=r)}function Pp(e,t,r){(t!=="number"||Dl(e.ownerDocument)!==e)&&(r==null?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+r&&(e.defaultValue=""+r))}function u6(e){var t="";return d.Children.forEach(e,function(r){r!=null&&(t+=r)}),t}function Ap(e,t){return e=ct({children:void 0},t),(t=u6(t.children))&&(e.children=t),e}function no(e,t,r,n){if(e=e.options,t){t={};for(var i=0;i=r.length))throw Error(de(93));r=r[0]}t=r}t==null&&(t=""),r=t}e._wrapperState={initialValue:di(r)}}function c1(e,t){var r=di(t.value),n=di(t.defaultValue);r!=null&&(r=""+r,r!==e.value&&(e.value=r),t.defaultValue==null&&e.defaultValue!==r&&(e.defaultValue=r)),n!=null&&(e.defaultValue=""+n)}function d1(e){var t=e.textContent;t===e._wrapperState.initialValue&&t!==""&&t!==null&&(e.value=t)}var Ip={html:"http://www.w3.org/1999/xhtml",mathml:"http://www.w3.org/1998/Math/MathML",svg:"http://www.w3.org/2000/svg"};function f1(e){switch(e){case"svg":return"http://www.w3.org/2000/svg";case"math":return"http://www.w3.org/1998/Math/MathML";default:return"http://www.w3.org/1999/xhtml"}}function Lp(e,t){return e==null||e==="http://www.w3.org/1999/xhtml"?f1(t):e==="http://www.w3.org/2000/svg"&&t==="foreignObject"?"http://www.w3.org/1999/xhtml":e}var Fl,p1=function(e){return typeof MSApp!="undefined"&&MSApp.execUnsafeLocalFunction?function(t,r,n,i){MSApp.execUnsafeLocalFunction(function(){return e(t,r,n,i)})}:e}(function(e,t){if(e.namespaceURI!==Ip.svg||"innerHTML"in e)e.innerHTML=t;else{for(Fl=Fl||document.createElement("div"),Fl.innerHTML="",t=Fl.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}});function Is(e,t){if(t){var r=e.firstChild;if(r&&r===e.lastChild&&r.nodeType===3){r.nodeValue=t;return}}e.textContent=t}var Ls={animationIterationCount:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},l6=["Webkit","ms","Moz","O"];Object.keys(Ls).forEach(function(e){l6.forEach(function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),Ls[t]=Ls[e]})});function m1(e,t,r){return t==null||typeof t=="boolean"||t===""?"":r||typeof t!="number"||t===0||Ls.hasOwnProperty(e)&&Ls[e]?(""+t).trim():t+"px"}function h1(e,t){e=e.style;for(var r in t)if(t.hasOwnProperty(r)){var n=r.indexOf("--")===0,i=m1(r,t[r],n);r==="float"&&(r="cssFloat"),n?e.setProperty(r,i):e[r]=i}}var c6=ct({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function Mp(e,t){if(t){if(c6[e]&&(t.children!=null||t.dangerouslySetInnerHTML!=null))throw Error(de(137,e));if(t.dangerouslySetInnerHTML!=null){if(t.children!=null)throw Error(de(60));if(!(typeof t.dangerouslySetInnerHTML=="object"&&"__html"in t.dangerouslySetInnerHTML))throw Error(de(61))}if(t.style!=null&&typeof t.style!="object")throw Error(de(62))}}function Dp(e,t){if(e.indexOf("-")===-1)return typeof t.is=="string";switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}function Fp(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var Bp=null,io=null,ao=null;function g1(e){if(e=Ms(e)){if(typeof Bp!="function")throw Error(de(280));var t=e.stateNode;t&&(t=Bl(t),Bp(e.stateNode,e.type,t))}}function v1(e){io?ao?ao.push(e):ao=[e]:io=e}function y1(){if(io){var e=io,t=ao;if(ao=io=null,g1(e),t)for(e=0;en?0:1<r;r++)t.push(e);return t}function Wl(e,t,r){e.pendingLanes|=t;var n=t-1;e.suspendedLanes&=n,e.pingedLanes&=n,e=e.eventTimes,t=31-hi(t),e[t]=r}var hi=Math.clz32?Math.clz32:k6,x6=Math.log,C6=Math.LN2;function k6(e){return e===0?32:31-(x6(e)/C6|0)|0}var R6=Xt.unstable_UserBlockingPriority,j6=Xt.unstable_runWithPriority,Kl=!0;function P6(e,t,r,n){va||zp();var i=Zp,a=va;va=!0;try{b1(i,e,t,r,n)}finally{(va=a)||Up()}}function T6(e,t,r,n){j6(R6,Zp.bind(null,e,t,r,n))}function Zp(e,t,r,n){if(Kl){var i;if((i=(t&4)==0)&&0=Ks),K1=String.fromCharCode(32),q1=!1;function G1(e,t){switch(e){case"keyup":return Z6.indexOf(t.keyCode)!==-1;case"keydown":return t.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function Y1(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var fo=!1;function tx(e,t){switch(e){case"compositionend":return Y1(t);case"keypress":return t.which!==32?null:(q1=!0,K1);case"textInput":return e=t.data,e===K1&&q1?null:e;default:return null}}function rx(e,t){if(fo)return e==="compositionend"||!om&&G1(e,t)?(e=z1(),ql=em=gi=null,fo=!1,e):null;switch(e){case"paste":return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1=t)return{node:r,offset:t-e};e=n}e:{for(;r;){if(r.nextSibling){r=r.nextSibling;break e}r=r.parentNode}r=void 0}r=ry(r)}}function iy(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?iy(e,t.parentNode):"contains"in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function ay(){for(var e=window,t=Dl();t instanceof e.HTMLIFrameElement;){try{var r=typeof t.contentWindow.location.href=="string"}catch(n){r=!1}if(r)e=t.contentWindow;else break;t=Dl(e.document)}return t}function um(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&(t==="input"&&(e.type==="text"||e.type==="search"||e.type==="tel"||e.type==="url"||e.type==="password")||t==="textarea"||e.contentEditable==="true")}var fx=Nn&&"documentMode"in document&&11>=document.documentMode,mo=null,lm=null,Xs=null,cm=!1;function oy(e,t,r){var n=r.window===r?r.document:r.nodeType===9?r:r.ownerDocument;cm||mo==null||mo!==Dl(n)||(n=mo,"selectionStart"in n&&um(n)?n={start:n.selectionStart,end:n.selectionEnd}:(n=(n.ownerDocument&&n.ownerDocument.defaultView||window).getSelection(),n={anchorNode:n.anchorNode,anchorOffset:n.anchorOffset,focusNode:n.focusNode,focusOffset:n.focusOffset}),Xs&&Ys(Xs,n)||(Xs=n,n=Ql(lm,"onSelect"),0yo||(e.current=vm[yo],vm[yo]=null,yo--)}function Tt(e,t){yo++,vm[yo]=e.current,e.current=t}var bi={},mr=yi(bi),Rr=yi(!1),wa=bi;function bo(e,t){var r=e.type.contextTypes;if(!r)return bi;var n=e.stateNode;if(n&&n.__reactInternalMemoizedUnmaskedChildContext===t)return n.__reactInternalMemoizedMaskedChildContext;var i={},a;for(a in r)i[a]=t[a];return n&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=i),i}function jr(e){return e=e.childContextTypes,e!=null}function ic(){Et(Rr),Et(mr)}function wy(e,t,r){if(mr.current!==bi)throw Error(de(168));Tt(mr,t),Tt(Rr,r)}function Sy(e,t,r){var n=e.stateNode;if(e=t.childContextTypes,typeof n.getChildContext!="function")return r;n=n.getChildContext();for(var i in n)if(!(i in e))throw Error(de(108,ro(t)||"Unknown",i));return ct({},r,n)}function ac(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||bi,wa=mr.current,Tt(mr,e),Tt(Rr,Rr.current),!0}function Ey(e,t,r){var n=e.stateNode;if(!n)throw Error(de(169));r?(e=Sy(e,t,wa),n.__reactInternalMemoizedMergedChildContext=e,Et(Rr),Et(mr),Tt(mr,e)):Et(Rr),Tt(Rr,r)}var ym=null,Sa=null,hx=Xt.unstable_runWithPriority,bm=Xt.unstable_scheduleCallback,wm=Xt.unstable_cancelCallback,gx=Xt.unstable_shouldYield,_y=Xt.unstable_requestPaint,Sm=Xt.unstable_now,vx=Xt.unstable_getCurrentPriorityLevel,oc=Xt.unstable_ImmediatePriority,ky=Xt.unstable_UserBlockingPriority,xy=Xt.unstable_NormalPriority,Cy=Xt.unstable_LowPriority,Ry=Xt.unstable_IdlePriority,Em={},yx=_y!==void 0?_y:function(){},zn=null,sc=null,_m=!1,jy=Sm(),hr=1e4>jy?Sm:function(){return Sm()-jy};function wo(){switch(vx()){case oc:return 99;case ky:return 98;case xy:return 97;case Cy:return 96;case Ry:return 95;default:throw Error(de(332))}}function Py(e){switch(e){case 99:return oc;case 98:return ky;case 97:return xy;case 96:return Cy;case 95:return Ry;default:throw Error(de(332))}}function Ea(e,t){return e=Py(e),hx(e,t)}function Zs(e,t,r){return e=Py(e),bm(e,t,r)}function En(){if(sc!==null){var e=sc;sc=null,wm(e)}Ty()}function Ty(){if(!_m&&zn!==null){_m=!0;var e=0;try{var t=zn;Ea(99,function(){for(;ek?(P=p,p=null):P=p.sibling;var A=m(v,p,w[k],x);if(A===null){p===null&&(p=P);break}e&&p&&A.alternate===null&&t(v,p),y=a(A,y,k),g===null?c=A:g.sibling=A,g=A,p=P}if(k===w.length)return r(v,p),c;if(p===null){for(;kk?(P=p,p=null):P=p.sibling;var T=m(v,p,A.value,x);if(T===null){p===null&&(p=P);break}e&&p&&T.alternate===null&&t(v,p),y=a(T,y,k),g===null?c=T:g.sibling=T,g=T,p=P}if(A.done)return r(v,p),c;if(p===null){for(;!A.done;k++,A=w.next())A=h(v,A.value,x),A!==null&&(y=a(A,y,k),g===null?c=A:g.sibling=A,g=A);return c}for(p=n(v,p);!A.done;k++,A=w.next())A=S(p,v,k,A.value,x),A!==null&&(e&&A.alternate!==null&&p.delete(A.key===null?k:A.key),y=a(A,y,k),g===null?c=A:g.sibling=A,g=A);return e&&p.forEach(function(M){return t(v,M)}),c}return function(v,y,w,x){var c=typeof w=="object"&&w!==null&&w.type===ci&&w.key===null;c&&(w=w.props.children);var g=typeof w=="object"&&w!==null;if(g)switch(w.$$typeof){case js:e:{for(g=w.key,c=y;c!==null;){if(c.key===g){switch(c.tag){case 7:if(w.type===ci){r(v,c.sibling),y=i(c,w.props.children),y.return=v,v=y;break e}break;default:if(c.elementType===w.type){r(v,c.sibling),y=i(c,w.props),y.ref=ru(v,c,w),y.return=v,v=y;break e}}r(v,c);break}else t(v,c);c=c.sibling}w.type===ci?(y=_o(w.props.children,v.mode,x,w.key),y.return=v,v=y):(x=hc(w.type,w.key,w.props,null,v.mode,x),x.ref=ru(v,y,w),x.return=v,v=x)}return o(v);case ga:e:{for(c=w.key;y!==null;){if(y.key===c)if(y.tag===4&&y.stateNode.containerInfo===w.containerInfo&&y.stateNode.implementation===w.implementation){r(v,y.sibling),y=i(y,w.children||[]),y.return=v,v=y;break e}else{r(v,y);break}else t(v,y);y=y.sibling}y=Pm(w,v.mode,x),y.return=v,v=y}return o(v)}if(typeof w=="string"||typeof w=="number")return w=""+w,y!==null&&y.tag===6?(r(v,y.sibling),y=i(y,w),y.return=v,v=y):(r(v,y),y=jm(w,v.mode,x),y.return=v,v=y),o(v);if(pc(w))return _(v,y,w,x);if(As(w))return b(v,y,w,x);if(g&&mc(v,w),typeof w=="undefined"&&!c)switch(v.tag){case 1:case 22:case 0:case 11:case 15:throw Error(de(152,ro(v.type)||"Component"))}return r(v,y)}}var gc=Ny(!0),zy=Ny(!1),nu={},_n=yi(nu),iu=yi(nu),au=yi(nu);function _a(e){if(e===nu)throw Error(de(174));return e}function Tm(e,t){switch(Tt(au,t),Tt(iu,e),Tt(_n,nu),e=t.nodeType,e){case 9:case 11:t=(t=t.documentElement)?t.namespaceURI:Lp(null,"");break;default:e=e===8?t.parentNode:t,t=e.namespaceURI||null,e=e.tagName,t=Lp(t,e)}Et(_n),Tt(_n,t)}function ko(){Et(_n),Et(iu),Et(au)}function $y(e){_a(au.current);var t=_a(_n.current),r=Lp(t,e.type);t!==r&&(Tt(iu,e),Tt(_n,r))}function Am(e){iu.current===e&&(Et(_n),Et(iu))}var At=yi(0);function vc(e){for(var t=e;t!==null;){if(t.tag===13){var r=t.memoizedState;if(r!==null&&(r=r.dehydrated,r===null||r.data==="$?"||r.data==="$!"))return t}else if(t.tag===19&&t.memoizedProps.revealOrder!==void 0){if((t.flags&64)!=0)return t}else if(t.child!==null){t.child.return=t,t=t.child;continue}if(t===e)break;for(;t.sibling===null;){if(t.return===null||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}return null}var $n=null,Ci=null,kn=!1;function Uy(e,t){var r=Qr(5,null,null,0);r.elementType="DELETED",r.type="DELETED",r.stateNode=t,r.return=e,r.flags=8,e.lastEffect!==null?(e.lastEffect.nextEffect=r,e.lastEffect=r):e.firstEffect=e.lastEffect=r}function Hy(e,t){switch(e.tag){case 5:var r=e.type;return t=t.nodeType!==1||r.toLowerCase()!==t.nodeName.toLowerCase()?null:t,t!==null?(e.stateNode=t,!0):!1;case 6:return t=e.pendingProps===""||t.nodeType!==3?null:t,t!==null?(e.stateNode=t,!0):!1;case 13:return!1;default:return!1}}function Om(e){if(kn){var t=Ci;if(t){var r=t;if(!Hy(e,t)){if(t=vo(r.nextSibling),!t||!Hy(e,t)){e.flags=e.flags&-1025|2,kn=!1,$n=e;return}Uy($n,r)}$n=e,Ci=vo(t.firstChild)}else e.flags=e.flags&-1025|2,kn=!1,$n=e}}function Vy(e){for(e=e.return;e!==null&&e.tag!==5&&e.tag!==3&&e.tag!==13;)e=e.return;$n=e}function yc(e){if(e!==$n)return!1;if(!kn)return Vy(e),kn=!0,!1;var t=e.type;if(e.tag!==5||t!=="head"&&t!=="body"&&!mm(t,e.memoizedProps))for(t=Ci;t;)Uy(e,t),t=vo(t.nextSibling);if(Vy(e),e.tag===13){if(e=e.memoizedState,e=e!==null?e.dehydrated:null,!e)throw Error(de(317));e:{for(e=e.nextSibling,t=0;e;){if(e.nodeType===8){var r=e.data;if(r==="/$"){if(t===0){Ci=vo(e.nextSibling);break e}t--}else r!=="$"&&r!=="$!"&&r!=="$?"||t++}e=e.nextSibling}Ci=null}}else Ci=$n?vo(e.stateNode.nextSibling):null;return!0}function Im(){Ci=$n=null,kn=!1}var xo=[];function Lm(){for(var e=0;ea))throw Error(de(301));a+=1,ir=gr=null,t.updateQueue=null,ou.current=Ex,e=r(n,i)}while(uu)}if(ou.current=wc,t=gr!==null&&gr.next!==null,su=0,ir=gr=Dt=null,bc=!1,t)throw Error(de(300));return e}function ka(){var e={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return ir===null?Dt.memoizedState=ir=e:ir=ir.next=e,ir}function xa(){if(gr===null){var e=Dt.alternate;e=e!==null?e.memoizedState:null}else e=gr.next;var t=ir===null?Dt.memoizedState:ir.next;if(t!==null)ir=t,gr=e;else{if(e===null)throw Error(de(310));gr=e,e={memoizedState:gr.memoizedState,baseState:gr.baseState,baseQueue:gr.baseQueue,queue:gr.queue,next:null},ir===null?Dt.memoizedState=ir=e:ir=ir.next=e}return ir}function xn(e,t){return typeof t=="function"?t(e):t}function lu(e){var t=xa(),r=t.queue;if(r===null)throw Error(de(311));r.lastRenderedReducer=e;var n=gr,i=n.baseQueue,a=r.pending;if(a!==null){if(i!==null){var o=i.next;i.next=a.next,a.next=o}n.baseQueue=i=a,r.pending=null}if(i!==null){i=i.next,n=n.baseState;var s=o=a=null,u=i;do{var l=u.lane;if((su&l)===l)s!==null&&(s=s.next={lane:0,action:u.action,eagerReducer:u.eagerReducer,eagerState:u.eagerState,next:null}),n=u.eagerReducer===e?u.eagerState:e(n,u.action);else{var f={lane:l,action:u.action,eagerReducer:u.eagerReducer,eagerState:u.eagerState,next:null};s===null?(o=s=f,a=n):s=s.next=f,Dt.lanes|=l,eu|=l}u=u.next}while(u!==null&&u!==i);s===null?a=n:s.next=o,Yr(n,t.memoizedState)||(mn=!0),t.memoizedState=n,t.baseState=a,t.baseQueue=s,r.lastRenderedState=n}return[t.memoizedState,r.dispatch]}function cu(e){var t=xa(),r=t.queue;if(r===null)throw Error(de(311));r.lastRenderedReducer=e;var n=r.dispatch,i=r.pending,a=t.memoizedState;if(i!==null){r.pending=null;var o=i=i.next;do a=e(a,o.action),o=o.next;while(o!==i);Yr(a,t.memoizedState)||(mn=!0),t.memoizedState=a,t.baseQueue===null&&(t.baseState=a),r.lastRenderedState=a}return[a,n]}function Wy(e,t,r){var n=t._getVersion;n=n(t._source);var i=t._workInProgressVersionPrimary;if(i!==null?e=i===n:(e=e.mutableReadLanes,(e=(su&e)===e)&&(t._workInProgressVersionPrimary=n,xo.push(t))),e)return r(t._source);throw xo.push(t),Error(de(350))}function Ky(e,t,r,n){var i=Sr;if(i===null)throw Error(de(349));var a=t._getVersion,o=a(t._source),s=ou.current,u=s.useState(function(){return Wy(i,t,r)}),l=u[1],f=u[0];u=ir;var h=e.memoizedState,m=h.refs,S=m.getSnapshot,_=h.source;h=h.subscribe;var b=Dt;return e.memoizedState={refs:m,source:t,subscribe:n},s.useEffect(function(){m.getSnapshot=r,m.setSnapshot=l;var v=a(t._source);if(!Yr(o,v)){v=r(t._source),Yr(f,v)||(l(v),v=_i(b),i.mutableReadLanes|=v&i.pendingLanes),v=i.mutableReadLanes,i.entangledLanes|=v;for(var y=i.entanglements,w=v;0r?98:r,function(){e(!0)}),Ea(97",e=e.removeChild(e.firstChild)):typeof n.is=="string"?e=o.createElement(r,{is:n.is}):(e=o.createElement(r),r==="select"&&(o=e,n.multiple?o.multiple=!0:n.size&&(o.size=n.size))):e=o.createElementNS(e,r),e[vi]=t,e[nc]=n,pb(e,t,!1,!1),t.stateNode=e,o=Dp(r,n),r){case"dialog":St("cancel",e),St("close",e),i=n;break;case"iframe":case"object":case"embed":St("load",e),i=n;break;case"video":case"audio":for(i=0;iGm&&(t.flags|=64,a=!0,fu(n,!1),t.lanes=33554432)}else{if(!a)if(e=vc(o),e!==null){if(t.flags|=64,a=!0,r=e.updateQueue,r!==null&&(t.updateQueue=r,t.flags|=4),fu(n,!0),n.tail===null&&n.tailMode==="hidden"&&!o.alternate&&!kn)return t=t.lastEffect=n.lastEffect,t!==null&&(t.nextEffect=null),null}else 2*hr()-n.renderingStartTime>Gm&&r!==1073741824&&(t.flags|=64,a=!0,fu(n,!1),t.lanes=33554432);n.isBackwards?(o.sibling=t.child,t.child=o):(r=n.last,r!==null?r.sibling=o:t.child=o,n.last=o)}return n.tail!==null?(r=n.tail,n.rendering=r,n.tail=r.sibling,n.lastEffect=t.lastEffect,n.renderingStartTime=hr(),r.sibling=null,t=At.current,Tt(At,a?t&1|2:t&1),r):null;case 23:case 24:return Ym(),e!==null&&e.memoizedState!==null!=(t.memoizedState!==null)&&n.mode!=="unstable-defer-without-hiding"&&(t.flags|=4),null}throw Error(de(156,t.tag))}function Cx(e){switch(e.tag){case 1:jr(e.type)&&ic();var t=e.flags;return t&4096?(e.flags=t&-4097|64,e):null;case 3:if(ko(),Et(Rr),Et(mr),Lm(),t=e.flags,(t&64)!=0)throw Error(de(285));return e.flags=t&-4097|64,e;case 5:return Am(e),null;case 13:return Et(At),t=e.flags,t&4096?(e.flags=t&-4097|64,e):null;case 19:return Et(At),null;case 4:return ko(),null;case 10:return xm(e),null;case 23:case 24:return Ym(),null;default:return null}}function Xm(e,t){try{var r="",n=t;do r+=o6(n),n=n.return;while(n);var i=r}catch(a){i=`
+Error generating stack: `+a.message+`
+`+a.stack}return{value:e,source:t,stack:i}}function Qm(e,t){try{console.error(t.value)}catch(r){setTimeout(function(){throw r})}}var Rx=typeof WeakMap=="function"?WeakMap:Map;function gb(e,t,r){r=Si(-1,r),r.tag=3,r.payload={element:null};var n=t.value;return r.callback=function(){Cc||(Cc=!0,Jm=n),Qm(e,t)},r}function vb(e,t,r){r=Si(-1,r),r.tag=3;var n=e.type.getDerivedStateFromError;if(typeof n=="function"){var i=t.value;r.payload=function(){return Qm(e,t),n(i)}}var a=e.stateNode;return a!==null&&typeof a.componentDidCatch=="function"&&(r.callback=function(){typeof n!="function"&&(Cn===null?Cn=new Set([this]):Cn.add(this),Qm(e,t));var o=t.stack;this.componentDidCatch(t.value,{componentStack:o!==null?o:""})}),r}var jx=typeof WeakSet=="function"?WeakSet:Set;function yb(e){var t=e.ref;if(t!==null)if(typeof t=="function")try{t(null)}catch(r){Ri(e,r)}else t.current=null}function Px(e,t){switch(t.tag){case 0:case 11:case 15:case 22:return;case 1:if(t.flags&256&&e!==null){var r=e.memoizedProps,n=e.memoizedState;e=t.stateNode,t=e.getSnapshotBeforeUpdate(t.elementType===t.type?r:pn(t.type,r),n),e.__reactInternalSnapshotBeforeUpdate=t}return;case 3:t.flags&256&&hm(t.stateNode.containerInfo);return;case 5:case 6:case 4:case 17:return}throw Error(de(163))}function Ax(e,t,r){switch(r.tag){case 0:case 11:case 15:case 22:if(t=r.updateQueue,t=t!==null?t.lastEffect:null,t!==null){e=t=t.next;do{if((e.tag&3)==3){var n=e.create;e.destroy=n()}e=e.next}while(e!==t)}if(t=r.updateQueue,t=t!==null?t.lastEffect:null,t!==null){e=t=t.next;do{var i=e;n=i.next,i=i.tag,(i&4)!=0&&(i&1)!=0&&(bb(r,e),Tx(r,e)),e=n}while(e!==t)}return;case 1:e=r.stateNode,r.flags&4&&(t===null?e.componentDidMount():(n=r.elementType===r.type?t.memoizedProps:pn(r.type,t.memoizedProps),e.componentDidUpdate(n,t.memoizedState,e.__reactInternalSnapshotBeforeUpdate))),t=r.updateQueue,t!==null&&Ly(r,t,e);return;case 3:if(t=r.updateQueue,t!==null){if(e=null,r.child!==null)switch(r.child.tag){case 5:e=r.child.stateNode;break;case 1:e=r.child.stateNode}Ly(r,t,e)}return;case 5:e=r.stateNode,t===null&&r.flags&4&&gy(r.type,r.memoizedProps)&&e.focus();return;case 6:return;case 4:return;case 12:return;case 13:r.memoizedState===null&&(r=r.alternate,r!==null&&(r=r.memoizedState,r!==null&&(r=r.dehydrated,r!==null&&A1(r))));return;case 19:case 17:case 20:case 21:case 23:case 24:return}throw Error(de(163))}function wb(e,t){for(var r=e;;){if(r.tag===5){var n=r.stateNode;if(t)n=n.style,typeof n.setProperty=="function"?n.setProperty("display","none","important"):n.display="none";else{n=r.stateNode;var i=r.memoizedProps.style;i=i!=null&&i.hasOwnProperty("display")?i.display:null,n.style.display=m1("display",i)}}else if(r.tag===6)r.stateNode.nodeValue=t?"":r.memoizedProps;else if((r.tag!==23&&r.tag!==24||r.memoizedState===null||r===e)&&r.child!==null){r.child.return=r,r=r.child;continue}if(r===e)break;for(;r.sibling===null;){if(r.return===null||r.return===e)return;r=r.return}r.sibling.return=r.return,r=r.sibling}}function Eb(e,t){if(Sa&&typeof Sa.onCommitFiberUnmount=="function")try{Sa.onCommitFiberUnmount(ym,t)}catch(a){}switch(t.tag){case 0:case 11:case 14:case 15:case 22:if(e=t.updateQueue,e!==null&&(e=e.lastEffect,e!==null)){var r=e=e.next;do{var n=r,i=n.destroy;if(n=n.tag,i!==void 0)if((n&4)!=0)bb(t,r);else{n=t;try{i()}catch(a){Ri(n,a)}}r=r.next}while(r!==e)}break;case 1:if(yb(t),e=t.stateNode,typeof e.componentWillUnmount=="function")try{e.props=t.memoizedProps,e.state=t.memoizedState,e.componentWillUnmount()}catch(a){Ri(t,a)}break;case 5:yb(t);break;case 4:Sb(e,t)}}function _b(e){e.alternate=null,e.child=null,e.dependencies=null,e.firstEffect=null,e.lastEffect=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.return=null,e.updateQueue=null}function kb(e){return e.tag===5||e.tag===3||e.tag===4}function xb(e){e:{for(var t=e.return;t!==null;){if(kb(t))break e;t=t.return}throw Error(de(160))}var r=t;switch(t=r.stateNode,r.tag){case 5:var n=!1;break;case 3:t=t.containerInfo,n=!0;break;case 4:t=t.containerInfo,n=!0;break;default:throw Error(de(161))}r.flags&16&&(Is(t,""),r.flags&=-17);e:t:for(r=e;;){for(;r.sibling===null;){if(r.return===null||kb(r.return)){r=null;break e}r=r.return}for(r.sibling.return=r.return,r=r.sibling;r.tag!==5&&r.tag!==6&&r.tag!==18;){if(r.flags&2||r.child===null||r.tag===4)continue t;r.child.return=r,r=r.child}if(!(r.flags&2)){r=r.stateNode;break e}}n?Zm(e,r,t):eh(e,r,t)}function Zm(e,t,r){var n=e.tag,i=n===5||n===6;if(i)e=i?e.stateNode:e.stateNode.instance,t?r.nodeType===8?r.parentNode.insertBefore(e,t):r.insertBefore(e,t):(r.nodeType===8?(t=r.parentNode,t.insertBefore(e,r)):(t=r,t.appendChild(e)),r=r._reactRootContainer,r!=null||t.onclick!==null||(t.onclick=tc));else if(n!==4&&(e=e.child,e!==null))for(Zm(e,t,r),e=e.sibling;e!==null;)Zm(e,t,r),e=e.sibling}function eh(e,t,r){var n=e.tag,i=n===5||n===6;if(i)e=i?e.stateNode:e.stateNode.instance,t?r.insertBefore(e,t):r.appendChild(e);else if(n!==4&&(e=e.child,e!==null))for(eh(e,t,r),e=e.sibling;e!==null;)eh(e,t,r),e=e.sibling}function Sb(e,t){for(var r=t,n=!1,i,a;;){if(!n){n=r.return;e:for(;;){if(n===null)throw Error(de(160));switch(i=n.stateNode,n.tag){case 5:a=!1;break e;case 3:i=i.containerInfo,a=!0;break e;case 4:i=i.containerInfo,a=!0;break e}n=n.return}n=!0}if(r.tag===5||r.tag===6){e:for(var o=e,s=r,u=s;;)if(Eb(o,u),u.child!==null&&u.tag!==4)u.child.return=u,u=u.child;else{if(u===s)break e;for(;u.sibling===null;){if(u.return===null||u.return===s)break e;u=u.return}u.sibling.return=u.return,u=u.sibling}a?(o=i,s=r.stateNode,o.nodeType===8?o.parentNode.removeChild(s):o.removeChild(s)):i.removeChild(r.stateNode)}else if(r.tag===4){if(r.child!==null){i=r.stateNode.containerInfo,a=!0,r.child.return=r,r=r.child;continue}}else if(Eb(e,r),r.child!==null){r.child.return=r,r=r.child;continue}if(r===t)break;for(;r.sibling===null;){if(r.return===null||r.return===t)return;r=r.return,r.tag===4&&(n=!1)}r.sibling.return=r.return,r=r.sibling}}function rh(e,t){switch(t.tag){case 0:case 11:case 14:case 15:case 22:var r=t.updateQueue;if(r=r!==null?r.lastEffect:null,r!==null){var n=r=r.next;do(n.tag&3)==3&&(e=n.destroy,n.destroy=void 0,e!==void 0&&e()),n=n.next;while(n!==r)}return;case 1:return;case 5:if(r=t.stateNode,r!=null){n=t.memoizedProps;var i=e!==null?e.memoizedProps:n;e=t.type;var a=t.updateQueue;if(t.updateQueue=null,a!==null){for(r[nc]=n,e==="input"&&n.type==="radio"&&n.name!=null&&s1(r,n),Dp(e,i),t=Dp(e,n),i=0;ii&&(i=o),r&=~a}if(r=i,r=hr()-r,r=(120>r?120:480>r?480:1080>r?1080:1920>r?1920:3e3>r?3e3:4320>r?4320:1960*Lx(r/1960))-r,10 component higher in the tree to provide a loading indicator or placeholder to display.`)}ar!==5&&(ar=2),u=Xm(u,s),m=o;do{switch(m.tag){case 3:a=u,m.flags|=4096,t&=-t,m.lanes|=t;var g=gb(m,a,t);Iy(m,g);break e;case 1:a=u;var p=m.type,k=m.stateNode;if((m.flags&64)==0&&(typeof p.getDerivedStateFromError=="function"||k!==null&&typeof k.componentDidCatch=="function"&&(Cn===null||!Cn.has(k)))){m.flags|=4096,t&=-t,m.lanes|=t;var P=vb(m,a,t);Iy(m,P);break e}}m=m.return}while(m!==null)}Ob(r)}catch(A){t=A,Kt===r&&r!==null&&(Kt=r=r.return);continue}break}while(1)}function Pb(){var e=Rc.current;return Rc.current=wc,e===null?wc:e}function vu(e,t){var r=Be;Be|=16;var n=Pb();Sr===e&&vr===t||To(e,t);do try{Bx();break}catch(i){jb(e,i)}while(1);if(km(),Be=r,Rc.current=n,Kt!==null)throw Error(de(261));return Sr=null,vr=0,ar}function Bx(){for(;Kt!==null;)Ib(Kt)}function Mx(){for(;Kt!==null&&!gx();)Ib(Kt)}function Ib(e){var t=Lb(e.alternate,e,Ca);e.memoizedProps=e.pendingProps,t===null?Ob(e):Kt=t,nh.current=null}function Ob(e){var t=e;do{var r=t.alternate;if(e=t.return,(t.flags&2048)==0){if(r=xx(r,t,Ca),r!==null){Kt=r;return}if(r=t,r.tag!==24&&r.tag!==23||r.memoizedState===null||(Ca&1073741824)!=0||(r.mode&4)==0){for(var n=0,i=r.child;i!==null;)n|=i.lanes|i.childLanes,i=i.sibling;r.childLanes=n}e!==null&&(e.flags&2048)==0&&(e.firstEffect===null&&(e.firstEffect=t.firstEffect),t.lastEffect!==null&&(e.lastEffect!==null&&(e.lastEffect.nextEffect=t.firstEffect),e.lastEffect=t.lastEffect),1o&&(s=o,o=g,g=s),s=ny(w,g),a=ny(w,o),s&&a&&(c.rangeCount!==1||c.anchorNode!==s.node||c.anchorOffset!==s.offset||c.focusNode!==a.node||c.focusOffset!==a.offset)&&(x=x.createRange(),x.setStart(s.node,s.offset),c.removeAllRanges(),g>o?(c.addRange(x),c.extend(a.node,a.offset)):(x.setEnd(a.node,a.offset),c.addRange(x)))))),x=[],c=w;c=c.parentNode;)c.nodeType===1&&x.push({element:c,left:c.scrollLeft,top:c.scrollTop});for(typeof w.focus=="function"&&w.focus(),w=0;whr()-th?To(e,0):ah|=r),Zr(e,t)}function Ox(e,t){var r=e.stateNode;r!==null&&r.delete(t),t=0,t===0&&(t=e.mode,(t&2)==0?t=1:(t&4)==0?t=wo()===99?1:2:(Vn===0&&(Vn=jo),t=lo(62914560&~Vn),t===0&&(t=4194304))),r=zr(),e=Oc(e,t),e!==null&&(Wl(e,t,r),Zr(e,r))}var Lb;Lb=function(e,t,r){var n=t.lanes;if(e!==null)if(e.memoizedProps!==t.pendingProps||Rr.current)mn=!0;else if((r&n)!=0)mn=(e.flags&16384)!=0;else{switch(mn=!1,t.tag){case 3:ob(t),Im();break;case 5:$y(t);break;case 1:jr(t.type)&&ac(t);break;case 4:Tm(t,t.stateNode.containerInfo);break;case 10:n=t.memoizedProps.value;var i=t.type._context;Tt(uc,i._currentValue),i._currentValue=n;break;case 13:if(t.memoizedState!==null)return(r&t.child.childLanes)!=0?cb(e,t,r):(Tt(At,At.current&1),t=Un(e,t,r),t!==null?t.sibling:null);Tt(At,At.current&1);break;case 19:if(n=(r&t.childLanes)!=0,(e.flags&64)!=0){if(n)return fb(e,t,r);t.flags|=64}if(i=t.memoizedState,i!==null&&(i.rendering=null,i.tail=null,i.lastEffect=null),Tt(At,At.current),n)break;return null;case 23:case 24:return t.lanes=0,Hm(e,t,r)}return Un(e,t,r)}else mn=!1;switch(t.lanes=0,t.tag){case 2:if(n=t.type,e!==null&&(e.alternate=null,t.alternate=null,t.flags|=2),e=t.pendingProps,i=bo(t,mr.current),Eo(t,r),i=Dm(null,t,n,e,i,r),t.flags|=1,typeof i=="object"&&i!==null&&typeof i.render=="function"&&i.$$typeof===void 0){if(t.tag=1,t.memoizedState=null,t.updateQueue=null,jr(n)){var a=!0;ac(t)}else a=!1;t.memoizedState=i.state!==null&&i.state!==void 0?i.state:null,Cm(t);var o=n.getDerivedStateFromProps;typeof o=="function"&&dc(t,n,o,e),i.updater=fc,t.stateNode=i,i._reactInternals=t,Rm(t,n,e,r),t=Vm(null,t,n,!0,a,r)}else t.tag=0,Tr(null,t,i,r),t=t.child;return t;case 16:i=t.elementType;e:{switch(e!==null&&(e.alternate=null,t.alternate=null,t.flags|=2),e=t.pendingProps,a=i._init,i=a(i._payload),t.type=i,a=t.tag=Ux(i),e=pn(i,e),a){case 0:t=Um(null,t,i,e,r);break e;case 1:t=ab(null,t,i,e,r);break e;case 11:t=tb(null,t,i,e,r);break e;case 14:t=nb(null,t,i,pn(i.type,e),n,r);break e}throw Error(de(306,i,""))}return t;case 0:return n=t.type,i=t.pendingProps,i=t.elementType===n?i:pn(n,i),Um(e,t,n,i,r);case 1:return n=t.type,i=t.pendingProps,i=t.elementType===n?i:pn(n,i),ab(e,t,n,i,r);case 3:if(ob(t),n=t.updateQueue,e===null||n===null)throw Error(de(282));if(n=t.pendingProps,i=t.memoizedState,i=i!==null?i.element:null,Oy(e,t),tu(t,n,null,r),n=t.memoizedState.element,n===i)Im(),t=Un(e,t,r);else{if(i=t.stateNode,(a=i.hydrate)&&(Ci=vo(t.stateNode.containerInfo.firstChild),$n=t,a=kn=!0),a){if(e=i.mutableSourceEagerHydrationData,e!=null)for(i=0;iencodeURIComponent(e).replace(/[!'()*]/g,t=>`%${t.charCodeAt(0).toString(16).toUpperCase()}`),Bb="%[a-f0-9]{2}",Nb=new RegExp(Bb,"gi"),zb=new RegExp("("+Bb+")+","gi");function mh(e,t){try{return decodeURIComponent(e.join(""))}catch(i){}if(e.length===1)return e;t=t||1;var r=e.slice(0,t),n=e.slice(t);return Array.prototype.concat.call([],mh(r),mh(n))}function fC(e){try{return decodeURIComponent(e)}catch(n){for(var t=e.match(Nb),r=1;r{if(!(typeof e=="string"&&typeof t=="string"))throw new TypeError("Expected the arguments to be of type `string`");if(t==="")return[e];let r=e.indexOf(t);return r===-1?[e]:[e.slice(0,r),e.slice(r+t.length)]},hC=function(e,t){for(var r={},n=Object.keys(e),i=Array.isArray(t),a=0;ab==null,n=Symbol("encodeFragmentIdentifier");function i(b){switch(b.arrayFormat){case"index":return v=>(y,w)=>{let x=y.length;return w===void 0||b.skipNull&&w===null||b.skipEmptyString&&w===""?y:w===null?[...y,[s(v,b),"[",x,"]"].join("")]:[...y,[s(v,b),"[",s(x,b),"]=",s(w,b)].join("")]};case"bracket":return v=>(y,w)=>w===void 0||b.skipNull&&w===null||b.skipEmptyString&&w===""?y:w===null?[...y,[s(v,b),"[]"].join("")]:[...y,[s(v,b),"[]=",s(w,b)].join("")];case"comma":case"separator":case"bracket-separator":{let v=b.arrayFormat==="bracket-separator"?"[]=":"=";return y=>(w,x)=>x===void 0||b.skipNull&&x===null||b.skipEmptyString&&x===""?w:(x=x===null?"":x,w.length===0?[[s(y,b),v,s(x,b)].join("")]:[[w,s(x,b)].join(b.arrayFormatSeparator)])}default:return v=>(y,w)=>w===void 0||b.skipNull&&w===null||b.skipEmptyString&&w===""?y:w===null?[...y,s(v,b)]:[...y,[s(v,b),"=",s(w,b)].join("")]}}function a(b){let v;switch(b.arrayFormat){case"index":return(y,w,x)=>{if(v=/\[(\d*)\]$/.exec(y),y=y.replace(/\[\d*\]$/,""),!v){x[y]=w;return}x[y]===void 0&&(x[y]={}),x[y][v[1]]=w};case"bracket":return(y,w,x)=>{if(v=/(\[\])$/.exec(y),y=y.replace(/\[\]$/,""),!v){x[y]=w;return}if(x[y]===void 0){x[y]=[w];return}x[y]=[].concat(x[y],w)};case"comma":case"separator":return(y,w,x)=>{let c=typeof w=="string"&&w.includes(b.arrayFormatSeparator),g=typeof w=="string"&&!c&&u(w,b).includes(b.arrayFormatSeparator);w=g?u(w,b):w;let p=c||g?w.split(b.arrayFormatSeparator).map(k=>u(k,b)):w===null?w:u(w,b);x[y]=p};case"bracket-separator":return(y,w,x)=>{let c=/(\[\])$/.test(y);if(y=y.replace(/\[\]$/,""),!c){x[y]=w&&u(w,b);return}let g=w===null?[]:w.split(b.arrayFormatSeparator).map(p=>u(p,b));if(x[y]===void 0){x[y]=g;return}x[y]=[].concat(x[y],g)};default:return(y,w,x)=>{if(x[y]===void 0){x[y]=w;return}x[y]=[].concat(x[y],w)}}}function o(b){if(typeof b!="string"||b.length!==1)throw new TypeError("arrayFormatSeparator must be single character string")}function s(b,v){return v.encode?v.strict?dC(b):encodeURIComponent(b):b}function u(b,v){return v.decode?mC(b):b}function l(b){return Array.isArray(b)?b.sort():typeof b=="object"?l(Object.keys(b)).sort((v,y)=>Number(v)-Number(y)).map(v=>b[v]):b}function f(b){let v=b.indexOf("#");return v!==-1&&(b=b.slice(0,v)),b}function h(b){let v="",y=b.indexOf("#");return y!==-1&&(v=b.slice(y)),v}function m(b){b=f(b);let v=b.indexOf("?");return v===-1?"":b.slice(v+1)}function S(b,v){return v.parseNumbers&&!Number.isNaN(Number(b))&&typeof b=="string"&&b.trim()!==""?b=Number(b):v.parseBooleans&&b!==null&&(b.toLowerCase()==="true"||b.toLowerCase()==="false")&&(b=b.toLowerCase()==="true"),b}function _(b,v){v=Object.assign({decode:!0,sort:!0,arrayFormat:"none",arrayFormatSeparator:",",parseNumbers:!1,parseBooleans:!1},v),o(v.arrayFormatSeparator);let y=a(v),w=Object.create(null);if(typeof b!="string"||(b=b.trim().replace(/^[?#&]/,""),!b))return w;for(let x of b.split("&")){if(x==="")continue;let[c,g]=$b(v.decode?x.replace(/\+/g," "):x,"=");g=g===void 0?null:["comma","separator","bracket-separator"].includes(v.arrayFormat)?g:u(g,v),y(u(c,v),g,w)}for(let x of Object.keys(w)){let c=w[x];if(typeof c=="object"&&c!==null)for(let g of Object.keys(c))c[g]=S(c[g],v);else w[x]=S(c,v)}return v.sort===!1?w:(v.sort===!0?Object.keys(w).sort():Object.keys(w).sort(v.sort)).reduce((x,c)=>{let g=w[c];return Boolean(g)&&typeof g=="object"&&!Array.isArray(g)?x[c]=l(g):x[c]=g,x},Object.create(null))}t.extract=m,t.parse=_,t.stringify=(b,v)=>{if(!b)return"";v=Object.assign({encode:!0,strict:!0,arrayFormat:"none",arrayFormatSeparator:","},v),o(v.arrayFormatSeparator);let y=g=>v.skipNull&&r(b[g])||v.skipEmptyString&&b[g]==="",w=i(v),x={};for(let g of Object.keys(b))y(g)||(x[g]=b[g]);let c=Object.keys(x);return v.sort!==!1&&c.sort(v.sort),c.map(g=>{let p=b[g];return p===void 0?"":p===null?s(g,v):Array.isArray(p)?p.length===0&&v.arrayFormat==="bracket-separator"?s(g,v)+"[]":p.reduce(w(g),[]).join("&"):s(g,v)+"="+s(p,v)}).filter(g=>g.length>0).join("&")},t.parseUrl=(b,v)=>{v=Object.assign({decode:!0},v);let[y,w]=$b(b,"#");return Object.assign({url:y.split("?")[0]||"",query:_(m(b),v)},v&&v.parseFragmentIdentifier&&w?{fragmentIdentifier:u(w,v)}:{})},t.stringifyUrl=(b,v)=>{v=Object.assign({encode:!0,strict:!0,[n]:!0},v);let y=f(b.url).split("?")[0]||"",w=t.extract(b.url),x=t.parse(w,{sort:!1}),c=Object.assign(x,b.query),g=t.stringify(c,v);g&&(g=`?${g}`);let p=h(b.url);return b.fragmentIdentifier&&(p=`#${v[n]?s(b.fragmentIdentifier,v):b.fragmentIdentifier}`),`${y}${g}${p}`},t.pick=(b,v,y)=>{y=Object.assign({parseFragmentIdentifier:!0,[n]:!1},y);let{url:w,query:x,fragmentIdentifier:c}=t.parseUrl(b,y);return t.stringifyUrl({url:w,query:hC(x,v),fragmentIdentifier:c},y)},t.exclude=(b,v,y)=>{let w=Array.isArray(v)?x=>!v.includes(x):(x,c)=>!v(x,c);return t.pick(b,w,y)}}),Oo=function(){return Oo=Object.assign||function(e){for(var t,r=1,n=arguments.length;r=0)&&(r[i]=e[i]);return r}var u5={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},l5={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},c5={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},ew={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},_h={};_h[qn.ForwardRef]=c5;_h[qn.Memo]=ew;function tw(e){return qn.isMemo(e)?ew:_h[e.$$typeof]||u5}var d5=Object.defineProperty,f5=Object.getOwnPropertyNames,rw=Object.getOwnPropertySymbols,p5=Object.getOwnPropertyDescriptor,m5=Object.getPrototypeOf,nw=Object.prototype;function iw(e,t,r){if(typeof t!="string"){if(nw){var n=m5(t);n&&n!==nw&&iw(e,n,r)}var i=f5(t);rw&&(i=i.concat(rw(t)));for(var a=tw(e),o=tw(t),s=0;s=0;f--){var h=n[f];h==="."?kh(n,f):h===".."?(kh(n,f),l++):l&&(kh(n,f),l--)}if(!o)for(;l--;l)n.unshift("..");o&&n[0]!==""&&(!n[0]||!Wc(n[0]))&&n.unshift("");var m=n.join("/");return s&&m.substr(-1)!=="/"&&(m+="/"),m}var g5="Invariant failed";function Ai(e,t){if(!e)throw new Error(g5)}function ku(e){return e.charAt(0)==="/"?e:"/"+e}function aw(e){return e.charAt(0)==="/"?e.substr(1):e}function v5(e,t){return e.toLowerCase().indexOf(t.toLowerCase())===0&&"/?#".indexOf(e.charAt(t.length))!==-1}function ow(e,t){return v5(e,t)?e.substr(t.length):e}function sw(e){return e.charAt(e.length-1)==="/"?e.slice(0,-1):e}function y5(e){var t=e||"/",r="",n="",i=t.indexOf("#");i!==-1&&(n=t.substr(i),t=t.substr(0,i));var a=t.indexOf("?");return a!==-1&&(r=t.substr(a),t=t.substr(0,a)),{pathname:t,search:r==="?"?"":r,hash:n==="#"?"":n}}function Er(e){var t=e.pathname,r=e.search,n=e.hash,i=t||"/";return r&&r!=="?"&&(i+=r.charAt(0)==="?"?r:"?"+r),n&&n!=="#"&&(i+=n.charAt(0)==="#"?n:"#"+n),i}function Ar(e,t,r,n){var i;typeof e=="string"?(i=y5(e),i.state=t):(i=Le({},e),i.pathname===void 0&&(i.pathname=""),i.search?i.search.charAt(0)!=="?"&&(i.search="?"+i.search):i.search="",i.hash?i.hash.charAt(0)!=="#"&&(i.hash="#"+i.hash):i.hash="",t!==void 0&&i.state===void 0&&(i.state=t));try{i.pathname=decodeURI(i.pathname)}catch(a){throw a instanceof URIError?new URIError('Pathname "'+i.pathname+'" could not be decoded. This is likely caused by an invalid percent-encoding.'):a}return r&&(i.key=r),n?i.pathname?i.pathname.charAt(0)!=="/"&&(i.pathname=h5(i.pathname,n.pathname)):i.pathname=n.pathname:i.pathname||(i.pathname="/"),i}function xh(){var e=null;function t(o){return e=o,function(){e===o&&(e=null)}}function r(o,s,u,l){if(e!=null){var f=typeof e=="function"?e(o,s):e;typeof f=="string"?typeof u=="function"?u(f,l):l(!0):l(f!==!1)}else l(!0)}var n=[];function i(o){var s=!0;function u(){s&&o.apply(void 0,arguments)}return n.push(u),function(){s=!1,n=n.filter(function(l){return l!==u})}}function a(){for(var o=arguments.length,s=new Array(o),u=0;uH?L.splice(H,L.length-H,M):L.push(M),f({action:T,location:M,index:H,entries:L})}})}function v(P,A){var T="REPLACE",M=Ar(P,A,h(),k.location);l.confirmTransitionTo(M,T,r,function(W){!W||(k.entries[k.index]=M,f({action:T,location:M}))})}function y(P){var A=vw(k.index+P,0,k.entries.length-1),T="POP",M=k.entries[A];l.confirmTransitionTo(M,T,r,function(W){W?f({action:T,location:M,index:A}):f()})}function w(){y(-1)}function x(){y(1)}function c(P){var A=k.index+P;return A>=0&&A=0||(i[r]=e[r]);return i}var je={BASE:"base",BODY:"body",HEAD:"head",HTML:"html",LINK:"link",META:"meta",NOSCRIPT:"noscript",SCRIPT:"script",STYLE:"style",TITLE:"title",FRAGMENT:"Symbol(react.fragment)"},aR={rel:["amphtml","canonical","alternate"]},oR={type:["application/ld+json"]},sR={charset:"",name:["robots","description"],property:["og:type","og:title","og:url","og:image","og:image:alt","og:description","twitter:url","twitter:title","twitter:description","twitter:image","twitter:image:alt","twitter:card","twitter:site"]},Lw=Object.keys(je).map(function(e){return je[e]}),Jc={accesskey:"accessKey",charset:"charSet",class:"className",contenteditable:"contentEditable",contextmenu:"contextMenu","http-equiv":"httpEquiv",itemprop:"itemProp",tabindex:"tabIndex"},uR=Object.keys(Jc).reduce(function(e,t){return e[Jc[t]]=t,e},{}),Mo=function(e,t){for(var r=e.length-1;r>=0;r-=1){var n=e[r];if(Object.prototype.hasOwnProperty.call(n,t))return n[t]}return null},lR=function(e){var t=Mo(e,je.TITLE),r=Mo(e,"titleTemplate");if(Array.isArray(t)&&(t=t.join("")),r&&t)return r.replace(/%s/g,function(){return t});var n=Mo(e,"defaultTitle");return t||n||void 0},cR=function(e){return Mo(e,"onChangeClientState")||function(){}},Bh=function(e,t){return t.filter(function(r){return r[e]!==void 0}).map(function(r){return r[e]}).reduce(function(r,n){return zt({},r,n)},{})},dR=function(e,t){return t.filter(function(r){return r[je.BASE]!==void 0}).map(function(r){return r[je.BASE]}).reverse().reduce(function(r,n){if(!r.length)for(var i=Object.keys(n),a=0;a /g,">").replace(/"/g,""").replace(/'/g,"'")},Fw=function(e){return Object.keys(e).reduce(function(t,r){var n=e[r]!==void 0?r+'="'+e[r]+'"':""+r;return t?t+" "+n:n},"")},Bw=function(e,t){return t===void 0&&(t={}),Object.keys(e).reduce(function(r,n){return r[Jc[n]||n]=e[n],r},t)},Zc=function(e,t){return t.map(function(r,n){var i,a=((i={key:n})["data-rh"]=!0,i);return Object.keys(r).forEach(function(o){var s=Jc[o]||o;s==="innerHTML"||s==="cssText"?a.dangerouslySetInnerHTML={__html:r.innerHTML||r.cssText}:a[s]=r[o]}),d.createElement(e,a)})},en=function(e,t,r){switch(e){case je.TITLE:return{toComponent:function(){return i=t.titleAttributes,(a={key:n=t.title})["data-rh"]=!0,o=Bw(i,a),[d.createElement(je.TITLE,o,n)];var n,i,a,o},toString:function(){return function(n,i,a,o){var s=Fw(a),u=Mw(i);return s?"<"+n+' data-rh="true" '+s+">"+zh(u,o)+""+n+">":"<"+n+' data-rh="true">'+zh(u,o)+""+n+">"}(e,t.title,t.titleAttributes,r)}};case"bodyAttributes":case"htmlAttributes":return{toComponent:function(){return Bw(t)},toString:function(){return Fw(t)}};default:return{toComponent:function(){return Zc(e,t)},toString:function(){return function(n,i,a){return i.reduce(function(o,s){var u=Object.keys(s).filter(function(h){return!(h==="innerHTML"||h==="cssText")}).reduce(function(h,m){var S=s[m]===void 0?m:m+'="'+zh(s[m],a)+'"';return h?h+" "+S:S},""),l=s.innerHTML||s.cssText||"",f=pR.indexOf(n)===-1;return o+"<"+n+' data-rh="true" '+u+(f?"/>":">"+l+""+n+">")},"")}(e,t,r)}}}},$h=function(e){var t=e.baseTag,r=e.bodyAttributes,n=e.encode,i=e.htmlAttributes,a=e.noscriptTags,o=e.styleTags,s=e.title,u=s===void 0?"":s,l=e.titleAttributes,f=e.linkTags,h=e.metaTags,m=e.scriptTags,S={toComponent:function(){},toString:function(){return""}};if(e.prioritizeSeoTags){var _=function(b){var v=b.linkTags,y=b.scriptTags,w=b.encode,x=Nh(b.metaTags,sR),c=Nh(v,aR),g=Nh(y,oR);return{priorityMethods:{toComponent:function(){return[].concat(Zc(je.META,x.priority),Zc(je.LINK,c.priority),Zc(je.SCRIPT,g.priority))},toString:function(){return en(je.META,x.priority,w)+" "+en(je.LINK,c.priority,w)+" "+en(je.SCRIPT,g.priority,w)}},metaTags:x.default,linkTags:c.default,scriptTags:g.default}}(e);S=_.priorityMethods,f=_.linkTags,h=_.metaTags,m=_.scriptTags}return{priority:S,base:en(je.BASE,t,n),bodyAttributes:en("bodyAttributes",r,n),htmlAttributes:en("htmlAttributes",i,n),link:en(je.LINK,f,n),meta:en(je.META,h,n),noscript:en(je.NOSCRIPT,a,n),script:en(je.SCRIPT,m,n),style:en(je.STYLE,o,n),title:en(je.TITLE,{title:u,titleAttributes:l},n)}},ed=[],Uh=function(e,t){var r=this;t===void 0&&(t=typeof document!="undefined"),this.instances=[],this.value={setHelmet:function(n){r.context.helmet=n},helmetInstances:{get:function(){return r.canUseDOM?ed:r.instances},add:function(n){(r.canUseDOM?ed:r.instances).push(n)},remove:function(n){var i=(r.canUseDOM?ed:r.instances).indexOf(n);(r.canUseDOM?ed:r.instances).splice(i,1)}}},this.context=e,this.canUseDOM=t,t||(e.helmet=$h({baseTag:[],bodyAttributes:{},encodeSpecialCharacters:!0,htmlAttributes:{},linkTags:[],metaTags:[],noscriptTags:[],scriptTags:[],styleTags:[],title:"",titleAttributes:{}}))},Nw=d.createContext({}),mR=ce.shape({setHelmet:ce.func,helmetInstances:ce.shape({get:ce.func,add:ce.func,remove:ce.func})}),hR=typeof document!="undefined",Pa=function(e){function t(r){var n;return(n=e.call(this,r)||this).helmetData=new Uh(n.props.context,t.canUseDOM),n}return Fh(t,e),t.prototype.render=function(){return d.createElement(Nw.Provider,{value:this.helmetData.value},this.props.children)},t}(d.Component);Pa.canUseDOM=hR,Pa.propTypes={context:ce.shape({helmet:ce.shape()}),children:ce.node.isRequired},Pa.defaultProps={context:{}},Pa.displayName="HelmetProvider";var Do=function(e,t){var r,n=document.head||document.querySelector(je.HEAD),i=n.querySelectorAll(e+"[data-rh]"),a=[].slice.call(i),o=[];return t&&t.length&&t.forEach(function(s){var u=document.createElement(e);for(var l in s)Object.prototype.hasOwnProperty.call(s,l)&&(l==="innerHTML"?u.innerHTML=s.innerHTML:l==="cssText"?u.styleSheet?u.styleSheet.cssText=s.cssText:u.appendChild(document.createTextNode(s.cssText)):u.setAttribute(l,s[l]===void 0?"":s[l]));u.setAttribute("data-rh","true"),a.some(function(f,h){return r=h,u.isEqualNode(f)})?a.splice(r,1):o.push(u)}),a.forEach(function(s){return s.parentNode.removeChild(s)}),o.forEach(function(s){return n.appendChild(s)}),{oldTags:a,newTags:o}},Hh=function(e,t){var r=document.getElementsByTagName(e)[0];if(r){for(var n=r.getAttribute("data-rh"),i=n?n.split(","):[],a=[].concat(i),o=Object.keys(t),s=0;s=0;h-=1)r.removeAttribute(a[h]);i.length===a.length?r.removeAttribute("data-rh"):r.getAttribute("data-rh")!==o.join(",")&&r.setAttribute("data-rh",o.join(","))}},zw=function(e,t){var r=e.baseTag,n=e.htmlAttributes,i=e.linkTags,a=e.metaTags,o=e.noscriptTags,s=e.onChangeClientState,u=e.scriptTags,l=e.styleTags,f=e.title,h=e.titleAttributes;Hh(je.BODY,e.bodyAttributes),Hh(je.HTML,n),function(b,v){b!==void 0&&document.title!==b&&(document.title=Mw(b)),Hh(je.TITLE,v)}(f,h);var m={baseTag:Do(je.BASE,r),linkTags:Do(je.LINK,i),metaTags:Do(je.META,a),noscriptTags:Do(je.NOSCRIPT,o),scriptTags:Do(je.SCRIPT,u),styleTags:Do(je.STYLE,l)},S={},_={};Object.keys(m).forEach(function(b){var v=m[b],y=v.newTags,w=v.oldTags;y.length&&(S[b]=y),w.length&&(_[b]=m[b].oldTags)}),t&&t(),s(e,S,_)},Pu=null,td=function(e){function t(){for(var n,i=arguments.length,a=new Array(i),o=0;o elements are self-closing and can not contain children. Refer to our API for more information.")}},r.flattenArrayTypeChildren=function(n){var i,a=n.child,o=n.arrayTypeChildren;return zt({},o,((i={})[a.type]=[].concat(o[a.type]||[],[zt({},n.newChildProps,this.mapNestedChildrenToProps(a,n.nestedChildren))]),i))},r.mapObjectTypeChildren=function(n){var i,a,o=n.child,s=n.newProps,u=n.newChildProps,l=n.nestedChildren;switch(o.type){case je.TITLE:return zt({},s,((i={})[o.type]=l,i.titleAttributes=zt({},u),i));case je.BODY:return zt({},s,{bodyAttributes:zt({},u)});case je.HTML:return zt({},s,{htmlAttributes:zt({},u)});default:return zt({},s,((a={})[o.type]=zt({},u),a))}},r.mapArrayTypeChildrenToProps=function(n,i){var a=zt({},i);return Object.keys(n).forEach(function(o){var s;a=zt({},a,((s={})[o]=n[o],s))}),a},r.warnOnInvalidChildren=function(n,i){return Aw(Lw.some(function(a){return n.type===a}),typeof n.type=="function"?"You may be attempting to nest components within each other, which is not allowed. Refer to our API for more information.":"Only elements types "+Lw.join(", ")+" are allowed. Helmet does not support rendering <"+n.type+"> elements. Refer to our API for more information."),Aw(!i||typeof i=="string"||Array.isArray(i)&&!i.some(function(a){return typeof a!="string"}),"Helmet expects a string as a child of <"+n.type+">. Did you forget to wrap your children in braces? ( <"+n.type+">{``}"+n.type+"> ) Refer to our API for more information."),!0},r.mapChildrenToProps=function(n,i){var a=this,o={};return d.Children.forEach(n,function(s){if(s&&s.props){var u=s.props,l=u.children,f=Iw(u,gR),h=Object.keys(f).reduce(function(S,_){return S[uR[_]||_]=f[_],S},{}),m=s.type;switch(typeof m=="symbol"?m=m.toString():a.warnOnInvalidChildren(s,l),m){case je.FRAGMENT:i=a.mapChildrenToProps(l,i);break;case je.LINK:case je.META:case je.NOSCRIPT:case je.SCRIPT:case je.STYLE:o=a.flattenArrayTypeChildren({child:s,arrayTypeChildren:o,newChildProps:h,nestedChildren:l});break;default:i=a.mapObjectTypeChildren({child:s,newProps:i,newChildProps:h,nestedChildren:l})}}}),this.mapArrayTypeChildrenToProps(o,i)},r.render=function(){var n=this.props,i=n.children,a=Iw(n,vR),o=zt({},a),s=a.helmetData;return i&&(o=this.mapChildrenToProps(i,o)),!s||s instanceof Uh||(s=new Uh(s.context,s.instances)),s?d.createElement(td,zt({},o,{context:s.value,helmetData:void 0})):d.createElement(Nw.Consumer,null,function(u){return d.createElement(td,zt({},o,{context:u}))})},t}(d.Component);Ii.propTypes={base:ce.object,bodyAttributes:ce.object,children:ce.oneOfType([ce.arrayOf(ce.node),ce.node]),defaultTitle:ce.string,defer:ce.bool,encodeSpecialCharacters:ce.bool,htmlAttributes:ce.object,link:ce.arrayOf(ce.object),meta:ce.arrayOf(ce.object),noscript:ce.arrayOf(ce.object),onChangeClientState:ce.func,script:ce.arrayOf(ce.object),style:ce.arrayOf(ce.object),title:ce.string,titleAttributes:ce.object,titleTemplate:ce.string,prioritizeSeoTags:ce.bool,helmetData:ce.object},Ii.defaultProps={defer:!0,encodeSpecialCharacters:!0,prioritizeSeoTags:!1},Ii.displayName="Helmet";var yR={};var yr=BigInt(0),et=BigInt(1),Or=BigInt(2),bR=BigInt(8),$w=BigInt(255),qt={a:BigInt(-1),d:BigInt("37095705934669439343138083508754565189542113879843219016388785533085940283555"),P:Or**$w-BigInt(19),n:Or**BigInt(252)+BigInt("27742317777372353535851937790883648493"),h:BigInt(8),Gx:BigInt("15112221349535400772501151409588531511454012693041857206046113283949847762202"),Gy:BigInt("46316835694926478169428394003475163141307993866256225615783033603165251855960")},_r=32,Tu=BigInt("19681161376707505956807079304988542015446066515923890162744021073123829784752"),wR=BigInt("25063068953384623474111414158702152701244531502492656460079210482610430750235"),SR=BigInt("54469307008909316920995813868745141605393597292927456921205312896311721017578"),ER=BigInt("1159843021668779879193775521855586647937357759715417654439879720876111806838"),_R=BigInt("40440834346308536858101042469323190826248399146238708352240133220865137265952"),Ot=class{constructor(t,r,n,i){this.x=t,this.y=r,this.z=n,this.t=i}static fromAffine(t){if(!(t instanceof Ft))throw new TypeError("ExtendedPoint#fromAffine: expected Point");return t.equals(Ft.ZERO)?Ot.ZERO:new Ot(t.x,t.y,et,ue(t.x*t.y))}static toAffineBatch(t){let r=kR(t.map(n=>n.z));return t.map((n,i)=>n.toAffine(r[i]))}static normalizeZ(t){return this.toAffineBatch(t).map(this.fromAffine)}static fromRistrettoHash(t){let r=Wh(t.slice(0,_r)),n=this.calcElligatorRistrettoMap(r),i=Wh(t.slice(_r,_r*2)),a=this.calcElligatorRistrettoMap(i);return n.add(a)}static calcElligatorRistrettoMap(t){let{d:r}=qt,n=ue(Tu*t*t),i=ue((n+et)*ER),a=BigInt(-1),o=ue((a-r*n)*ue(n+r)),{isValid:s,value:u}=qh(i,o),l=ue(u*t);Li(l)||(l=ue(-l)),s||(u=l),s||(a=n);let f=ue(a*(n-et)*_R-o),h=u*u,m=ue((u+u)*o),S=ue(f*wR),_=ue(et-h),b=ue(et+h);return new Ot(ue(m*b),ue(_*S),ue(S*b),ue(m*_))}static fromRistrettoBytes(t){let{a:r,d:n}=qt,i="ExtendedPoint.fromRistrettoBytes: Cannot convert bytes to Ristretto Point",a=Wh(t);if(!xR(Uw(a,_r),t)||Li(a))throw new Error(i);let o=ue(a*a),s=ue(et+r*o),u=ue(et-r*o),l=ue(s*s),f=ue(u*u),h=ue(r*n*l-f),{isValid:m,value:S}=Hw(ue(h*f)),_=ue(S*u),b=ue(S*_*h),v=ue((a+a)*_);Li(v)&&(v=ue(-v));let y=ue(s*b),w=ue(v*y);if(!m||Li(w)||y===yr)throw new Error(i);return new Ot(v,y,et,w)}toRistrettoBytes(){let{x:t,y:r,z:n,t:i}=this,a=ue(ue(n+r)*ue(n-r)),o=ue(t*r),{value:s}=Hw(ue(a*o**Or)),u=ue(s*a),l=ue(s*o),f=ue(u*l*i),h;if(Li(i*f)){let S=ue(r*Tu),_=ue(t*Tu);t=S,r=_,h=ue(u*SR)}else h=l;Li(t*f)&&(r=ue(-r));let m=ue((n-r)*h);return Li(m)&&(m=ue(-m)),Uw(m,_r)}equals(t){let r=this,n=t;return ue(r.t*n.z)===ue(n.t*r.z)}negate(){return new Ot(ue(-this.x),this.y,this.z,ue(-this.t))}double(){let t=this.x,r=this.y,n=this.z,{a:i}=qt,a=ue(t**Or),o=ue(r**Or),s=ue(Or*n**Or),u=ue(i*a),l=ue((t+r)**Or-a-o),f=ue(u+o),h=ue(f-s),m=ue(u-o),S=ue(l*h),_=ue(f*m),b=ue(l*m),v=ue(h*f);return new Ot(S,_,v,b)}add(t){let r=this.x,n=this.y,i=this.z,a=this.t,o=t.x,s=t.y,u=t.z,l=t.t,f=ue((n-r)*(s+o)),h=ue((n+r)*(s-o)),m=ue(h-f);if(m===yr)return this.double();let S=ue(i*Or*l),_=ue(a*Or*u),b=ue(_+S),v=ue(h+f),y=ue(_-S),w=ue(b*m),x=ue(v*y),c=ue(b*y),g=ue(m*v);return new Ot(w,x,g,c)}subtract(t){return this.add(t.negate())}multiplyUnsafe(t){let r=Vw(t);if(r===et)return this;let n=Ot.ZERO,i=this;for(;r>yr;)r&et&&(n=n.add(i)),i=i.double(),r>>=et;return n}precomputeWindow(t){let r=256/t+1,n=[],i=this,a=i;for(let o=0;o>=h,_>u&&(_-=f,t+=et),_===0){let b=i[S];m%2&&(b=b.negate()),o=o.add(b)}else{let b=i[S+Math.abs(_)-1];_<0&&(b=b.negate()),a=a.add(b)}}return[a,o]}multiply(t,r){let n=Vw(t);return Ot.normalizeZ(this.wNAF(n,r))[0]}toAffine(t=Kh(this.z)){let r=ue(this.x*t),n=ue(this.y*t);return new Ft(r,n)}};Ot.BASE=new Ot(qt.Gx,qt.Gy,et,ue(qt.Gx*qt.Gy));Ot.ZERO=new Ot(yr,et,et,yr);var Vh=new WeakMap,Ft=class{constructor(t,r){this.x=t,this.y=r}_setWindowSize(t){this._WINDOW_SIZE=t,Vh.delete(this)}static fromHex(t){let{d:r,P:n}=qt,i=t instanceof Uint8Array?t:Fo(t);if(i.length!==32)throw new Error("Point.fromHex: expected 32 bytes");let a=i[31],o=a&~128,s=(a&128)!=0,u=Uint8Array.from(Array.from(i.slice(0,31)).concat(o)),l=Au(u);if(l>=n)throw new Error("Point.fromHex expects hex <= Fp");let f=ue(l*l),h=ue(f-et),m=ue(r*f+et),{isValid:S,value:_}=qh(h,m);if(!S)throw new Error("Point.fromHex: invalid y coordinate");let b=(_&et)===et;return s!==b&&(_=ue(-_)),new Ft(_,l)}static async fromPrivateKey(t){let r=await Gw(t);return Ft.BASE.multiply(qw(r))}toRawBytes(){let t=Gh(this.y),r=new Uint8Array(_r);for(let i=t.length-2,a=0;a<_r&&i>=0;i-=2,a++)r[a]=Kw(t[i]+t[i+1]);let n=this.x&et?128:0;return r[_r-1]|=n,r}toHex(){return Ww(this.toRawBytes())}toX25519(){return ue((et+this.y)*Kh(et-this.y))}equals(t){return this.x===t.x&&this.y===t.y}negate(){return new Ft(ue(-this.x),this.y)}add(t){return Ot.fromAffine(this).add(Ot.fromAffine(t)).toAffine()}subtract(t){return this.add(t.negate())}multiply(t){return Ot.fromAffine(this).multiply(t,this).toAffine()}};Ft.BASE=new Ft(qt.Gx,qt.Gy);Ft.ZERO=new Ft(yr,et);var rd=class{constructor(t,r){this.r=t,this.s=r}static fromHex(t){t=Yw(t);let r=Ft.fromHex(t.slice(0,32)),n=Au(t.slice(32));if(!Xw(n))throw new Error("Signature.fromHex expects s <= CURVE.n");return new rd(r,n)}toRawBytes(){let t=Fo(Gh(this.s)).reverse(),r=new Uint8Array(_r);r.set(t);let n=new Uint8Array(_r*2);return n.set(this.r.toRawBytes()),n.set(r,32),n}toHex(){return Ww(this.toRawBytes())}};function CR(...e){if(e.length===1)return e[0];let t=e.reduce((n,i)=>n+i.length,0),r=new Uint8Array(t);for(let n=0,i=0;n=yr?r:t+r}function Kh(e,t=qt.P){if(e===yr||t<=yr)throw new Error(`invert: expected positive integers, got n=${e} mod=${t}`);let r=ue(e,t),n=t,i=yr,a=et,o=et,s=yr;for(;r!==yr;){let l=n/r,f=n%r,h=i-o*l,m=a-s*l;n=r,r=f,i=o,a=s,o=h,s=m}if(n!==et)throw new Error("invert: does not exist");return ue(i,t)}function kR(e,t=qt.P){let r=e.length,n=new Array(r),i=et;for(let a=0;a=0;a--){if(e[a]===yr)continue;let o=ue(i*e[a],t);e[a]=ue(i*n[a],t),i=o}return e}function Rn(e,t){let{P:r}=qt,n=e;for(;t-- >yr;)n*=n,n%=r;return n}function RR(e){let{P:t}=qt,[r,n,i,a,o]=[5,10,20,40,80].map(x=>BigInt(x)),u=e*e%t*e%t,l=Rn(u,Or)*u%t,f=Rn(l,et)*e%t,h=Rn(f,r)*f%t,m=Rn(h,n)*h%t,S=Rn(m,i)*m%t,_=Rn(S,a)*S%t,b=Rn(_,o)*_%t,v=Rn(b,o)*_%t,y=Rn(v,n)*h%t;return Rn(y,Or)*e%t}function qh(e,t){let r=ue(t*t*t),n=ue(r*r*t),i=ue(e*r*RR(e*n)),a=ue(t*i*i),o=i,s=ue(i*Tu),u=a===e,l=a===ue(-e),f=a===ue(-e*Tu);return u&&(i=o),(l||f)&&(i=s),Li(i)&&(i=ue(-i)),{isValid:u||l,value:i}}function Hw(e){return qh(et,e)}async function Qw(...e){let t=CR(...e),r=await Bo.sha512(t),n=Au(r);return ue(n,qt.n)}function jR(e){return e.slice(_r)}function qw(e){let t=_r-1,r=e.slice(0,_r);return r[0]&=248,r[t]&=127,r[t]|=64,ue(Au(r),qt.n)}function xR(e,t){if(e.length!==t.length)return!1;for(let r=0;rPR)throw new Error(r);t=Fo(n.toString(16).padStart(_r*2,"0"))}else if(typeof e=="string"){if(e.length!==64)throw new Error(r);t=Fo(e)}else if(e instanceof Uint8Array){if(e.length!==32)throw new Error(r);t=e}else throw new TypeError("Expected valid private key");return t}async function Gw(e){return await Bo.sha512(TR(e))}function Vw(e){if(typeof e=="number"&&e>0&&Number.isSafeInteger(e))return BigInt(e);if(typeof e=="bigint"&&Xw(e))return e;throw new TypeError("Expected valid private scalar: 0 < scalar < curve.n")}async function Yh(e){let t=await Ft.fromPrivateKey(e);return typeof e=="string"?t.toHex():t.toRawBytes()}async function Jw(e,t){let r=await Gw(t),n=qw(r),i=Ft.BASE.multiply(n),a=Yw(e),o=await Qw(jR(r),a),s=Ft.BASE.multiply(o),u=await Qw(s.toRawBytes(),i.toRawBytes(),a),l=ue(o+u*n,qt.n),f=new rd(s,l);return typeof e=="string"?f.toHex():f.toRawBytes()}Ft.BASE._setWindowSize(8);var Mi={node:yR,web:typeof self=="object"&&"crypto"in self?self.crypto:void 0},Bo={TORSION_SUBGROUP:["0100000000000000000000000000000000000000000000000000000000000000","c7176a703d4dd84fba3c0b760d10670f2a2053fa2c39ccc64ec7fd7792ac037a","0000000000000000000000000000000000000000000000000000000000000080","26e8958fc2b227b045c3f489f2ef98f0d5dfac05d3c63339b13802886d53fc05","ecffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f","26e8958fc2b227b045c3f489f2ef98f0d5dfac05d3c63339b13802886d53fc85","0000000000000000000000000000000000000000000000000000000000000000","c7176a703d4dd84fba3c0b760d10670f2a2053fa2c39ccc64ec7fd7792ac03fa"],randomBytes:(e=32)=>{if(Mi.web)return Mi.web.getRandomValues(new Uint8Array(e));if(Mi.node){let{randomBytes:t}=Mi.node;return new Uint8Array(t(e).buffer)}else throw new Error("The environment doesn't have randomBytes function")},randomPrivateKey:()=>Bo.randomBytes(32),sha512:async e=>{if(Mi.web){let t=await Mi.web.subtle.digest("SHA-512",e.buffer);return new Uint8Array(t)}else{if(Mi.node)return Uint8Array.from(Mi.node.createHash("sha512").update(e).digest());throw new Error("The environment doesn't have sha512 function")}},precompute(e=8,t=Ft.BASE){let r=t.equals(Ft.BASE)?t:new Ft(t.x,t.y);return r._setWindowSize(e),r.multiply(et),r}};var AR=function(e,t){t||(t={}),typeof t=="function"&&(t={cmp:t});var r=typeof t.cycles=="boolean"?t.cycles:!1,n=t.cmp&&function(a){return function(o){return function(s,u){var l={key:s,value:o[s]},f={key:u,value:o[u]};return a(l,f)}}}(t.cmp),i=[];return function a(o){if(o&&o.toJSON&&typeof o.toJSON=="function"&&(o=o.toJSON()),o!==void 0){if(typeof o=="number")return isFinite(o)?""+o:"null";if(typeof o!="object")return JSON.stringify(o);var s,u;if(Array.isArray(o)){for(u="[",s=0;s>2],i+=No[(t[r]&3)<<4|t[r+1]>>4],i+=No[(t[r+1]&15)<<2|t[r+2]>>6],i+=No[t[r+2]&63];return n%3==2?i=i.substring(0,i.length-1)+"=":n%3==1&&(i=i.substring(0,i.length-2)+"=="),i},Xh=function(e){var t=e.length*.75,r=e.length,n,i=0,a,o,s,u;e[e.length-1]==="="&&(t--,e[e.length-2]==="="&&t--);var l=new ArrayBuffer(t),f=new Uint8Array(l);for(n=0;n>4,f[i++]=(o&15)<<4|s>>2,f[i++]=(s&3)<<6|u&63;return l};var Ta={getAll:"https://atomicdata.dev/classes/?page_size=999",agent:"https://atomicdata.dev/classes/Agent",collection:"https://atomicdata.dev/classes/Collection",commit:"https://atomicdata.dev/classes/Commit",class:"https://atomicdata.dev/classes/Class",document:"https://atomicdata.dev/classes/Document",elements:{paragraph:"https://atomicdata.dev/classes/elements/Paragraph"},property:"https://atomicdata.dev/classes/Property",datatype:"https://atomicdata.dev/classes/Datatype",endpoint:"https://atomicdata.dev/classes/Endpoint",drive:"https://atomicdata.dev/classes/Drive",redirect:"https://atomicdata.dev/classes/Redirect",invite:"https://atomicdata.dev/classes/Invite",file:"https://atomicdata.dev/classes/File"},J={getAll:"https://atomicdata.dev/properties/?page_size=999",shortname:"https://atomicdata.dev/properties/shortname",description:"https://atomicdata.dev/properties/description",recommends:"https://atomicdata.dev/properties/recommends",requires:"https://atomicdata.dev/properties/requires",name:"https://atomicdata.dev/properties/name",classType:"https://atomicdata.dev/properties/classtype",createdBy:"https://atomicdata.dev/properties/createdBy",incomplete:"https://atomicdata.dev/properties/incomplete",agent:{publicKey:"https://atomicdata.dev/properties/publicKey"},collection:{members:"https://atomicdata.dev/properties/collection/members",currentPage:"https://atomicdata.dev/properties/collection/currentPage",pageSize:"https://atomicdata.dev/properties/collection/pageSize",property:"https://atomicdata.dev/properties/collection/property",totalMembers:"https://atomicdata.dev/properties/collection/totalMembers",totalPages:"https://atomicdata.dev/properties/collection/totalPages",value:"https://atomicdata.dev/properties/collection/value"},commit:{subject:"https://atomicdata.dev/properties/subject",createdAt:"https://atomicdata.dev/properties/createdAt",lastCommit:"https://atomicdata.dev/properties/lastCommit",previousCommit:"https://atomicdata.dev/properties/previousCommit",signer:"https://atomicdata.dev/properties/signer",set:"https://atomicdata.dev/properties/set",remove:"https://atomicdata.dev/properties/remove",destroy:"https://atomicdata.dev/properties/destroy",signature:"https://atomicdata.dev/properties/signature"},document:{elements:"https://atomicdata.dev/properties/documents/elements"},endpoint:{parameters:"https://atomicdata.dev/properties/endpoint/parameters",results:"https://atomicdata.dev/properties/endpoint/results"},search:{query:"https://atomicdata.dev/properties/search/query",limit:"https://atomicdata.dev/properties/search/limit",property:"https://atomicdata.dev/properties/search/property"},redirect:{destination:"https://atomicdata.dev/properties/destination",redirectAgent:"https://atomicdata.dev/properties/invite/redirectAgent"},invite:{agent:"https://atomicdata.dev/properties/invite/agent",publicKey:"https://atomicdata.dev/properties/invite/publicKey",target:"https://atomicdata.dev/properties/invite/target",usagesLeft:"https://atomicdata.dev/properties/invite/usagesLeft",users:"https://atomicdata.dev/properties/invite/users",write:"https://atomicdata.dev/properties/invite/write"},file:{filename:"https://atomicdata.dev/properties/filename",filesize:"https://atomicdata.dev/properties/filesize",downloadUrl:"https://atomicdata.dev/properties/downloadURL",mimetype:"https://atomicdata.dev/properties/mimetype",attachments:"https://atomicdata.dev/properties/attachments"},datatype:"https://atomicdata.dev/properties/datatype",isA:"https://atomicdata.dev/properties/isA",isDynamic:"https://atomicdata.dev/properties/isDynamic",parent:"https://atomicdata.dev/properties/parent",read:"https://atomicdata.dev/properties/read",write:"https://atomicdata.dev/properties/write",children:"https://atomicdata.dev/properties/children",paymentPointer:"https://atomicdata.dev/properties/paymentPointer"},OR={atomicUrl:"https://atomicdata.dev/datatypes/atomicURL",boolean:"https://atomicdata.dev/datatypes/boolean",date:"https://atomicdata.dev/datatypes/date",float:"https://atomicdata.dev/datatypes/float",integer:"https://atomicdata.dev/datatypes/integer",markdown:"https://atomicdata.dev/datatypes/markdown",resourceArray:"https://atomicdata.dev/datatypes/resourceArray",slug:"https://atomicdata.dev/datatypes/slug",string:"https://atomicdata.dev/datatypes/string",timestamp:"https://atomicdata.dev/datatypes/timestamp"},IR={publicAgent:"https://atomicdata.dev/agents/publicAgent"},oe={properties:J,classes:Ta,datatypes:OR,instances:IR};var c2=q0(u2());Bo.sha512=e=>Promise.resolve((0,c2.sha512)(e));function Zh(){return Math.round(new Date().getTime())}var Aa=class{constructor(t){this.subject=l2(t),this.set={},this.remove=[]}async sign(t,r){return await YR(this.clone(),r,t,Zh())}hasUnsavedChanges(){return Object.keys(this.set).length>0||this.destroy||this.remove.length>0}clone(){let t=new Aa(this.subject);return t.set=this.set,t.destroy=this.destroy,t.remove=this.remove,t.previousCommit=this.previousCommit,t}setPreviousCommit(t){this.previousCommit=t}};function Bi(e,t,r){t in e&&t!==r&&(Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(e,t)),delete e[t])}function eg(e){return e.remove?.length==0&&delete e.remove,e.set?.length==0&&delete e.remove,e.destroy==!1&&delete e.destroy,Bi(e,"createdAt",oe.properties.commit.createdAt),Bi(e,"subject",oe.properties.commit.subject),Bi(e,"set",oe.properties.commit.set),Bi(e,"signer",oe.properties.commit.signer),Bi(e,"signature",oe.properties.commit.signature),Bi(e,"remove",oe.properties.commit.remove),Bi(e,"destroy",oe.properties.commit.destroy),Bi(e,"previousCommit",oe.properties.commit.previousCommit),e[oe.properties.isA]=[oe.classes.commit],Zw(e)}var YR=async(e,t,r,n)=>{if(t==null)throw new Error("No agent passed to sign commit");let i={...e,createdAt:n,signer:t},a=eg({...i}),o=await tg(a,r);return{...i,signature:o}},tg=async(e,t)=>{let r=Xh(t),n=new Uint8Array(r),a=new TextEncoder().encode(e),o=await Jw(a,n);return Iu(o)},d2=async e=>{let t=Xh(e),r=new Uint8Array(t),n=await Yh(r);return Iu(n)};async function f2(){let e=Bo.randomPrivateKey(),t=await Yh(e),r=Iu(e);return{publicKey:Iu(t),privateKey:r}}function rg(e){try{let t=JSON.parse(e),r=t[oe.properties.commit.subject],n=t[oe.properties.commit.set],i=t[oe.properties.commit.signer],a=t[oe.properties.commit.createdAt],o=t[oe.properties.commit.remove],s=t[oe.properties.commit.destroy],u=t[oe.properties.commit.signature],l=t["@id"],f=t[oe.properties.commit.previousCommit];return{subject:r,set:n,signer:i,createdAt:a,remove:o,destroy:s,signature:u,id:l,previousCommit:f}}catch(t){throw new Error(`Could not parse commit: ${t}`)}}function p2(e,t){let r=rg(e),{subject:n,set:i,remove:a,previousCommit:o,id:s,destroy:u,signature:l}=r,f=t.resources.get(n);if(f==null&&(f=new ur(n)),i&&Object.keys(i).forEach(h=>{f.setUnsafe(h,i[h])}),a&&a.forEach(h=>{f.removePropValLocally(h)}),o&&s&&f.setUnsafe(J.commit.lastCommit,s),u){t.removeResource(n);return}else f.appliedCommitSignatures.add(l),t.addResource(f)}var Ee;(function(e){e.ATOMIC_URL="https://atomicdata.dev/datatypes/atomicURL",e.BOOLEAN="https://atomicdata.dev/datatypes/boolean",e.DATE="https://atomicdata.dev/datatypes/date",e.FLOAT="https://atomicdata.dev/datatypes/float",e.INTEGER="https://atomicdata.dev/datatypes/integer",e.MARKDOWN="https://atomicdata.dev/datatypes/markdown",e.RESOURCEARRAY="https://atomicdata.dev/datatypes/resourceArray",e.SLUG="https://atomicdata.dev/datatypes/slug",e.STRING="https://atomicdata.dev/datatypes/string",e.TIMESTAMP="https://atomicdata.dev/datatypes/timestamp",e.UNKNOWN="unknown-datatype"})(Ee||(Ee={}));var ud=e=>{switch(e){case oe.datatypes.atomicUrl:return Ee.ATOMIC_URL;case oe.datatypes.boolean:return Ee.BOOLEAN;case oe.datatypes.date:return Ee.DATE;case oe.datatypes.float:return Ee.FLOAT;case oe.datatypes.integer:return Ee.INTEGER;case oe.datatypes.markdown:return Ee.MARKDOWN;case oe.datatypes.resourceArray:return Ee.RESOURCEARRAY;case oe.datatypes.slug:return Ee.SLUG;case oe.datatypes.string:return Ee.STRING;case oe.datatypes.timestamp:return Ee.TIMESTAMP;default:return Ee.UNKNOWN}},XR=/^[a-z0-9]+(?:-[a-z0-9]+)*$/,QR=/^d{4}-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])$/,m2=(e,t)=>{let r=null;switch(t){case Ee.STRING:{if(!ld(e)){r="Not a string";break}break}case Ee.SLUG:{if(!ld(e)){r="Not a slug, not even a string";break}e.match(XR)==null&&(r="Not a valid slug. Only lowercase letters and numbers with dashes `-` between them");break}case Ee.ATOMIC_URL:{if(!ld(e)){r="Not a string. Should be a URL";break}Ir(e);break}case Ee.RESOURCEARRAY:{if(!ng(e)){r="Not an array";break}e.map((n,i)=>{try{Ir(n)}catch(a){let o=new Error("Invalid URL");throw o.index=i,o}});break}case Ee.INTEGER:{if(!JR(e)){r="Not a number";break}e%1!=0&&(r="Not an integer");break}case Ee.DATE:{if(!ld(e)){r="Not a string";break}e.match(QR)==null&&(r="Not a date string: YYYY-MM-DD");break}}if(r!==null)throw new Error(`${r}`)};function ng(e){return Object.prototype.toString.call(e)==="[object Array]"}function ld(e){return typeof e=="string"}function JR(e){return typeof e=="number"}function Yn(e){if(e==null)throw new Error(`Not an array: ${e}, is ${typeof e}`);if(e.constructor==Array)return e;throw new Error(`Not an array: ${e}, is a ${typeof e}`)}function h2(e){if(typeof e!="boolean")throw new Error(`Not a boolean: ${e}, is a ${typeof e}`);return e}function Mu(e){if(typeof e=="number"){let t=new Date(0);return t.setUTCMilliseconds(e),t}if(typeof e=="string")return new Date(e.toString());throw new Error(`Cannot be converted into Date: ${e}, is a ${typeof e}`)}function g2(e){if(typeof e!="number")throw new Error(`Not a number: ${e}, is a ${typeof e}`);return e}function Du(e){return e.toString()}function v2(e){if(typeof e=="string")return e;if(e instanceof Date)throw new Error(`Not a resource: ${e}, is a Date`);if(e.constructor==Array)throw new Error(`Not a resource: ${e}, is an Array`);if(typeof e=="object"){let t=new ur("nested-resource");return Uo(e,t),t}throw typeof e!="object"?new Error(`Not a resource: ${e}, is a ${typeof e}`):new Error(`Not a resource: ${e}, is a ${typeof e}`)}var Ho;(function(e){e.Unauthorized="Unauthorized",e.NotFound="NotFound",e.Server="Server",e.Client="Client"})(Ho||(Ho={}));function cd(e){return e instanceof Xn&&e.type==Ho.Unauthorized}var Xn=class extends Error{constructor(t,r=Ho.Client){super(t);Object.setPrototypeOf(this,Xn.prototype),this.type=r}};var Oa="unknown-subject",ur=class{constructor(t,r){if(t==null)throw new Error("no subject given to resource");this.new=!!r,this.loading=!1,this.subject=t,this.propvals=new Map,this.appliedCommitSignatures=new Set,this.commitBuilder=new Aa(t)}async canWrite(t,r,n){let i=this.get(J.write);if(i&&Yn(i).includes(r))return[!0,null];let a=this.get(J.parent);return a==null?[!1,`No write right or parent in ${this.getSubject()}`]:n==a?(console.warn("Circular parent",n),[!0,`Circular parent in ${this.getSubject()}`]):await(await t.getResourceAsync(a)).canWrite(t,r,this.getSubject())}clone(){let t=new ur(this.subject);return t.propvals=this.propvals,t.destroy=this.destroy,t.new=this.new,t.error=this.error,t.commitError=this.commitError,t.commitBuilder=this.commitBuilder.clone(),t.appliedCommitSignatures=this.appliedCommitSignatures,t}isReady(){return!this.loading&&this.error==null}get(t){let r=this.propvals.get(t);return r??null}getArray(t){let r=this.propvals.get(t);return r==null?[]:Yn(r)}getClasses(){let t=this.get(J.isA);if(t==null)return[];try{return Yn(t)}catch(r){return[]}}getCommitBuilder(){return this.commitBuilder}getError(){return this.error}getSubject(){return this.subject}getSubjectNoParams(){let t=new URL(this.subject);return t.origin+t.pathname}getPropVals(){return this.propvals}async getRights(t){let r=[];this.getArray(J.write).forEach(o=>{r.push({for:o,type:dd.WRITE,setIn:this.subject})}),this.getArray(J.read).forEach(o=>{r.push({for:o,type:dd.READ,setIn:this.subject})});let a=this.get(J.parent);if(a!=null){if(a==this.getSubject())return console.warn("Circular parent",a),r;let s=await(await t.getResourceAsync(a)).getRights(t);r.push(...s)}return console.log("rights",r),r}isUnauthorized(){return this.error!=null&&cd(this.error)}async destroy(t,r){let n=new Aa(this.getSubject());if(n.destroy=!0,r==null&&(r=t.getAgent()),r==null)throw new Error("No agent has been set or passed, you cannot save this.");let i=await n.sign(r.privateKey,r.subject),a=new URL(this.getSubject()).origin+"/commit";await ig(i,a),t.removeResource(this.getSubject())}removePropVal(t){this.propvals.delete(t);try{delete this.commitBuilder.set[t]}catch(r){console.log("Item not present in commitbuilder.set")}this.commitBuilder.remove.push(t)}removePropValLocally(t){this.propvals.delete(t)}async save(t,r){if(r||(r=t.getAgent()),!r)throw new Error("No agent has been set or passed, you cannot save.");this.commitBuilder.setPreviousCommit(this.get(J.commit.lastCommit)?.toString());let n=this.commitBuilder.clone();this.commitBuilder=new Aa(this.getSubject());let i=await n.sign(r.privateKey,r.subject);this.appliedCommitSignatures.add(i.signature),this.loading=!1,this.new=!1,t.addResource(this);let a=new URL(this.getSubject()).origin+"/commit";try{this.commitError=null;let o=await ig(i,a);return this.commitBuilder.setPreviousCommit(o.id),this.getSubject()}catch(o){throw this.commitBuilder=n,this.commitError=o,t.addResource(this),o}}async set(t,r,n,i=!0){if(i){let a=await n.getProperty(t);m2(r,a.datatype)}this.propvals.set(t,r),this.commitBuilder.set[t]=r,this.commitBuilder.remove=this.commitBuilder.remove.filter(a=>a==t)}setUnsafe(t,r){this.propvals.set(t,r)}setError(t){this.error=t}setSubject(t){Ir(t),this.commitBuilder.subject=t,this.subject=t}},dd;(function(e){e.READ="read",e.WRITE="write"})(dd||(dd={}));function Uo(e,t,r){try{for(let n in e){if(n=="@id"){let a=e["@id"];if(typeof a!="string")throw new Error("'@id' field must be a string");if(t.getSubject()!=="undefined"&&t.getSubject()!==Oa&&a!==t.getSubject())throw new Error(`Resource has wrong subject in @id. Received subject was ${a}, expected ${t.getSubject()}.`);t.setSubject(a);continue}let i=e[n];try{if(ng(i)){let a=i.map(o=>y2(r,o,t,n));t.setUnsafe(n,a)}else if(typeof i=="string")t.setUnsafe(n,i);else if(typeof i=="number")t.setUnsafe(n,i);else if(typeof i=="boolean")t.setUnsafe(n,i);else{let a=y2(r,i,t,n);t.setUnsafe(n,a)}}catch(a){throw new Error(`Failed creating value ${i} for key ${n} in resource ${t.getSubject()}. ${a.message}`)}}t.loading==!1,r&&r.addResource(t)}catch(n){throw n.message="Failed parsing JSON "+n.message,t.setError(n),t.loading==!1,r&&r.addResource(t),n}return t}function y2(e,t,r,n){if(typeof t=="string")return t;if(t.constructor==={}.constructor)if(Object.keys(t).includes("@id")){let i=t["@id"],a=new ur(i);return Uo(t,a,e),i}else return t;throw new Error(`Value ${t} in ${n} not a string or a nested Resource`)}function b2(e){let t=[];try{for(let r of e){let n=new ur(Oa);Uo(r,n),t.push(n)}}catch(r){throw r.message="Failed parsing JSON "+r.message,r}return t}var ZR=le(function(e,t){var r=typeof self!="undefined"?self:pr,n=function(){function a(){this.fetch=!1,this.DOMException=r.DOMException}return a.prototype=r,new a}();(function(a){var o=function(s){var u={searchParams:"URLSearchParams"in a,iterable:"Symbol"in a&&"iterator"in Symbol,blob:"FileReader"in a&&"Blob"in a&&function(){try{return new Blob,!0}catch(L){return!1}}(),formData:"FormData"in a,arrayBuffer:"ArrayBuffer"in a};function l(L){return L&&DataView.prototype.isPrototypeOf(L)}if(u.arrayBuffer)var f=["[object Int8Array]","[object Uint8Array]","[object Uint8ClampedArray]","[object Int16Array]","[object Uint16Array]","[object Int32Array]","[object Uint32Array]","[object Float32Array]","[object Float64Array]"],h=ArrayBuffer.isView||function(L){return L&&f.indexOf(Object.prototype.toString.call(L))>-1};function m(L){if(typeof L!="string"&&(L=String(L)),/[^a-z0-9\-#$%&'*+.^_`|~]/i.test(L))throw new TypeError("Invalid character in header field name");return L.toLowerCase()}function S(L){return typeof L!="string"&&(L=String(L)),L}function _(L){var R={next:function(){var $=L.shift();return{done:$===void 0,value:$}}};return u.iterable&&(R[Symbol.iterator]=function(){return R}),R}function b(L){this.map={},L instanceof b?L.forEach(function(R,$){this.append($,R)},this):Array.isArray(L)?L.forEach(function(R){this.append(R[0],R[1])},this):L&&Object.getOwnPropertyNames(L).forEach(function(R){this.append(R,L[R])},this)}b.prototype.append=function(L,R){L=m(L),R=S(R);var $=this.map[L];this.map[L]=$?$+", "+R:R},b.prototype.delete=function(L){delete this.map[m(L)]},b.prototype.get=function(L){return L=m(L),this.has(L)?this.map[L]:null},b.prototype.has=function(L){return this.map.hasOwnProperty(m(L))},b.prototype.set=function(L,R){this.map[m(L)]=S(R)},b.prototype.forEach=function(L,R){for(var $ in this.map)this.map.hasOwnProperty($)&&L.call(R,this.map[$],$,this)},b.prototype.keys=function(){var L=[];return this.forEach(function(R,$){L.push($)}),_(L)},b.prototype.values=function(){var L=[];return this.forEach(function(R){L.push(R)}),_(L)},b.prototype.entries=function(){var L=[];return this.forEach(function(R,$){L.push([$,R])}),_(L)},u.iterable&&(b.prototype[Symbol.iterator]=b.prototype.entries);function v(L){if(L.bodyUsed)return Promise.reject(new TypeError("Already read"));L.bodyUsed=!0}function y(L){return new Promise(function(R,$){L.onload=function(){R(L.result)},L.onerror=function(){$(L.error)}})}function w(L){var R=new FileReader,$=y(R);return R.readAsArrayBuffer(L),$}function x(L){var R=new FileReader,$=y(R);return R.readAsText(L),$}function c(L){for(var R=new Uint8Array(L),$=new Array(R.length),I=0;I-1?R:L}function A(L,R){R=R||{};var $=R.body;if(L instanceof A){if(L.bodyUsed)throw new TypeError("Already read");this.url=L.url,this.credentials=L.credentials,R.headers||(this.headers=new b(L.headers)),this.method=L.method,this.mode=L.mode,this.signal=L.signal,!$&&L._bodyInit!=null&&($=L._bodyInit,L.bodyUsed=!0)}else this.url=String(L);if(this.credentials=R.credentials||this.credentials||"same-origin",(R.headers||!this.headers)&&(this.headers=new b(R.headers)),this.method=P(R.method||this.method||"GET"),this.mode=R.mode||this.mode||null,this.signal=R.signal||this.signal,this.referrer=null,(this.method==="GET"||this.method==="HEAD")&&$)throw new TypeError("Body not allowed for GET or HEAD requests");this._initBody($)}A.prototype.clone=function(){return new A(this,{body:this._bodyInit})};function T(L){var R=new FormData;return L.trim().split("&").forEach(function($){if($){var I=$.split("="),B=I.shift().replace(/\+/g," "),G=I.join("=").replace(/\+/g," ");R.append(decodeURIComponent(B),decodeURIComponent(G))}}),R}function M(L){var R=new b,$=L.replace(/\r?\n[\t ]+/g," ");return $.split(/\r?\n/).forEach(function(I){var B=I.split(":"),G=B.shift().trim();if(G){var E=B.join(":").trim();R.append(G,E)}}),R}p.call(A.prototype);function W(L,R){R||(R={}),this.type="default",this.status=R.status===void 0?200:R.status,this.ok=this.status>=200&&this.status<300,this.statusText="statusText"in R?R.statusText:"OK",this.headers=new b(R.headers),this.url=R.url||"",this._initBody(L)}p.call(W.prototype),W.prototype.clone=function(){return new W(this._bodyInit,{status:this.status,statusText:this.statusText,headers:new b(this.headers),url:this.url})},W.error=function(){var L=new W(null,{status:0,statusText:""});return L.type="error",L};var K=[301,302,303,307,308];W.redirect=function(L,R){if(K.indexOf(R)===-1)throw new RangeError("Invalid status code");return new W(null,{status:R,headers:{location:L}})},s.DOMException=a.DOMException;try{new s.DOMException}catch(L){s.DOMException=function(R,$){this.message=R,this.name=$;var I=Error(R);this.stack=I.stack},s.DOMException.prototype=Object.create(Error.prototype),s.DOMException.prototype.constructor=s.DOMException}function H(L,R){return new Promise(function($,I){var B=new A(L,R);if(B.signal&&B.signal.aborted)return I(new s.DOMException("Aborted","AbortError"));var G=new XMLHttpRequest;function E(){G.abort()}G.onload=function(){var N={status:G.status,statusText:G.statusText,headers:M(G.getAllResponseHeaders()||"")};N.url="responseURL"in G?G.responseURL:N.headers.get("X-Request-URL");var V="response"in G?G.response:G.responseText;$(new W(V,N))},G.onerror=function(){I(new TypeError("Network request failed"))},G.ontimeout=function(){I(new TypeError("Network request failed"))},G.onabort=function(){I(new s.DOMException("Aborted","AbortError"))},G.open(B.method,B.url,!0),B.credentials==="include"?G.withCredentials=!0:B.credentials==="omit"&&(G.withCredentials=!1),"responseType"in G&&u.blob&&(G.responseType="blob"),B.headers.forEach(function(N,V){G.setRequestHeader(V,N)}),B.signal&&(B.signal.addEventListener("abort",E),G.onreadystatechange=function(){G.readyState===4&&B.signal.removeEventListener("abort",E)}),G.send(typeof B._bodyInit=="undefined"?null:B._bodyInit)})}return H.polyfill=!0,a.fetch||(a.fetch=H,a.Headers=b,a.Request=A,a.Response=W),s.Headers=b,s.Request=A,s.Response=W,s.fetch=H,Object.defineProperty(s,"__esModule",{value:!0}),s}({})})(n),n.fetch.ponyfill=!0,delete n.fetch.polyfill;var i=n;t=i.fetch,t.default=i.fetch,t.fetch=i.fetch,t.Headers=i.Headers,t.Request=i.Request,t.Response=i.Response,e.exports=t}),ej=Za(ZR),Fu=ej;async function pd(e,t,r){let n=new ur(e);try{Ir(e);let i={};i.Accept="application/ad+json",t&&t.getAgent()&&await fd(e,t.getAgent(),i);let a=e;if(r!==void 0){let u=new URL(`${r}/path`);u.searchParams.set("path",e),a=u.href}if(Fu==null)throw new Xn("No window object available this lib currently requires the DOM for fetching");let o=await Fu(a,{headers:i}),s=await o.text();if(o.status==200)try{let u=JSON.parse(s);n=Uo(u,n,t)}catch(u){throw new Xn(`Could not parse JSON from fetching ${e}. Is it an Atomic Data resource? Error message: ${u.message}`)}else{if(o.status==401)throw new Xn(`You don't have the rights to do view ${e}. Are you signed in with the right Agent? More detailed error from server: ${s}`,Ho.Unauthorized);{let u=new Xn(`${o.status} error: ${s}`);n.setError(u)}}}catch(i){n.setError(i)}return n.loading=!1,t&&t.addResource(n),n}async function ig(e,t){let r=eg({...e}),n=new Headers;n.set("Content-Type","application/ad+json");let i=null;try{i=await Fu(t,{headers:n,method:"POST",body:r})}catch(o){throw new Error(`Posting Commit to ${t} failed: ${o}`)}let a=await i.text();if(i.status!==200)throw new Error(a);return rg(a)}function Ir(e){try{new URL(e)}catch(t){throw new Error(`Not a valid URL: ${e}. ${t}`)}}function gn(e){try{return Ir(e),!0}catch(t){return!1}}function l2(e){return e?.split("?")[0]}async function fd(e,t,r){if(t.subject!==void 0){let n=t.privateKey,i=Zh(),a=`${e} ${i}`,o=await tg(a,n);r["x-atomic-public-key"]=await t.getPublicKey(),r["x-atomic-signature"]=o,r["x-atomic-timestamp"]=i.toString(),r["x-atomic-agent"]=t?.subject}return r}async function ag(e,t,r){let n=new FormData;e.map(m=>{n.append("assets",m,m.name)});let i=new URL(t.getServerUrl()+"/upload");i.searchParams.set("parent",r);let a=await fd(i.toString(),t.getAgent(),{}),o={method:"POST",body:n,headers:a},s=await Fu(i.toString(),o),u=await s.text();if(s.status!==200)throw Error(u);let l=JSON.parse(u),f=b2(l),h=[];for(let m of f)t.addResource(m),h.push(m.getSubject());return h}var vn=class{constructor(t,r){r&&Ir(r),this.subject=r,this.privateKey=t}async getPublicKey(){if(!this.publicKey){let t=await d2(this.privateKey);this.publicKey=t}return this.publicKey}buildSecret(){let t=JSON.stringify(this);return btoa(t)}async checkPublicKey(){let t=await pd(this.subject);if(t.error)throw new Error(`Could not fetch agent, and could therefore not check validity of public key. ${t.error}`);if(t.get(J.agent.publicKey).toString()!==await this.getPublicKey())throw new Error("Fetched publickey does not match current one - is the private key correct?")}static fromSecret(t){let r=atob(t),n=JSON.parse(r),{privateKey:i,subject:a}=n;return new vn(i,a)}static fromJSON(t){return new vn(t.privateKey,t.subject)}};async function w2(e,t){function r(s,u){return` /** ${s.description}*/
+ "${s.shortname}"${u?"":"?"}: ${tj(s.datatype)};
+`}let n=await Promise.all(e.getArray(J.requires).map(s=>t.getProperty(s))),i=await Promise.all(e.getArray(J.recommends).map(s=>t.getProperty(s))),o=`interface ${e.get(J.shortname)} {
+`;return n.forEach(s=>{o=o.concat(r(s,!0))}),i.forEach(s=>{o=o.concat(r(s,!1))}),o=o.concat("}"),o}function tj(e){switch(e){case Ee.ATOMIC_URL:return"string | Resource";case Ee.BOOLEAN:return"boolean";case Ee.DATE:return"string";case Ee.FLOAT:return"number";case Ee.INTEGER:return"number";case Ee.MARKDOWN:return"string";case Ee.RESOURCEARRAY:return"string[] | Resource[]";case Ee.SLUG:return"string";case Ee.STRING:return"string";case Ee.TIMESTAMP:return"number";case Ee.UNKNOWN:return"unknown"}}function S2(e){let t=new URL(e.getServerUrl());t.protocol=="http:"?t.protocol="ws":t.protocol="wss",t.pathname="/ws";let r=new WebSocket(t.toString());return r.onopen=n=>rj(e),r.onmessage=n=>nj(n,e),r.onerror=ij,r}function rj(e){for(let t of e.subscribers.keys())e.subscribeWebSocket(t)}function nj(e,t){if(e.data.startsWith("COMMIT ")){let r=e.data.slice(7);p2(r,t)}else console.warn("Unknown websocket message:",e)}function ij(e){console.log("websocket error:",e)}var og=class{constructor(t={}){t.serverUrl&&this.setServerUrl(t.serverUrl),t.serverUrl&&this.setAgent(t.agent),this.resources=new Map,this.subscribers=new Map,this.errorHandler=r=>{throw r}}addResource(t){if(t.get(oe.properties.incomplete)){let r=this.resources.get(t.getSubject());if(r&&!r.loading)return}this.resources.set(t.getSubject(),t),this.notify(t.clone())}async checkSubjectTaken(t){return!!(await this.getResourceAsync(t)).isReady()}createSubject(t){let r=Math.random().toString(36).substring(2);return t=t||"things",`${this.getServerUrl()}/${t}/${r}`}async fetchResource(t,r={}){return await pd(t,this,r.fromProxy&&this.getServerUrl())}getAllSubjects(){return Array.from(this.resources.keys())}getServerUrl(){return this.serverUrl==null?null:this.serverUrl}getAgent(){return this.agent==null?null:this.agent}getResourceLoading(t,r={}){if(t==null)return new ur(Oa,r.newResource);let n=this.resources.get(t);if(n==null){let i=new ur(t,r.newResource);return i.loading=!0,this.addResource(i),r.newResource||this.fetchResource(t),i}else if(!r.allowIncomplete&&n.loading==!1)return n.get(oe.properties.incomplete)&&(n.loading=!0,this.addResource(n),this.fetchResource(t)),n;return n}async getResourceAsync(t){let r=this.resources.get(t);return r??await this.fetchResource(t)}async getProperty(t){let r=await this.getResourceAsync(t);if(r==null)throw Error(`Property ${t} is not found`);if(r.error)throw Error(`Property ${t} cannot be loaded: ${r.error}`);let n=new E2,i=r.get(oe.properties.datatype);if(i==null)throw Error(`Property ${t} has no datatype: ${r.getPropVals()}`);let a=r.get(oe.properties.shortname);if(a==null)throw Error(`Property ${t} has no shortname: ${r.getPropVals()}`);let o=r.get(oe.properties.description);if(o==null)throw Error(`Property ${t} has no description: ${r.getPropVals()}`);let s=r.get(oe.properties.classType)?.toString();return n.classType=s,n.shortname=a.toString(),n.description=o.toString(),n.datatype=ud(i.toString()),n}handleError(t){typeof t=="string"&&(t=new Error(t)),this.errorHandler(t)||console.error(t)}notify(t){let r=t.getSubject(),n=this.subscribers.get(r);n!=null&&n.map(i=>{i(t)})}removeResource(t){this.resources.delete(t)}async renameSubject(t,r){Ir(r);let n=this.resources.get(t);if(n==null)throw Error(`Old subject does not exist in store: ${t}`);if(await this.checkSubjectTaken(r))throw Error(`New subject name is already taken: ${r}`);n.setSubject(r),this.resources.set(r,n),this.removeResource(t)}setAgent(t){this.agent=t,t&&this.resources.forEach(r=>{r.isUnauthorized()&&this.fetchResource(r.getSubject())})}setServerUrl(t){if(Ir(t),t.substr(-1)=="/")throw Error("baseUrl should not have a trailing slash");this.serverUrl=t,this.setWebSocket()}setWebSocket(){this.webSocket&&this.webSocket.close(),typeof window!="undefined"?this.webSocket=S2(this):console.warn("WebSockets not supported, no window available")}subscribe(t,r){if(t==null)throw Error("Cannot subscribe to undefined subject");let n=this.subscribers.get(t);n==null&&(this.subscribeWebSocket(t),n=[]),n.push(r),this.subscribers.set(t,n)}subscribeWebSocket(t){if(t!=Oa)try{this.webSocket?.readyState==1&&this.webSocket?.send(`SUBSCRIBE ${t}`)}catch(r){console.log(r)}}unSubscribeWebSocket(t){if(t!=Oa)try{this.webSocket?.send(`UNSUBSCRIBE ${t}`)}catch(r){console.log(r)}}unsubscribe(t,r){if(t==null){console.warn("Cannot unsubscribe from undefined subject");return}let n=this.subscribers.get(t);n=n?.filter(i=>i!==r),this.subscribers.set(t,n)}},E2=class{};function md(e,t,r){let n=e.replace(/(^\w+:|^)\/\//,"");if(typeof window!="undefined"&&window?.location&&n.startsWith(window.location.hostname)&&(n=n.slice(window.location.hostname.length)),n.length<=t)return n;if(r){let i=n.length-t;return"..."+n.slice(i)}return n.slice(0,t)+"..."}function Ia(e,t){let[r,n]=ee(e);return Ce(()=>{let i=setTimeout(()=>{n(e)},t);return()=>{clearTimeout(i)}},[e,t]),r}function xe(e,t={allowIncomplete:!1,newResource:!1}){let{newResource:r,allowIncomplete:n}=t,i=Me(),[a,o]=ee(i.getResourceLoading(e,{newResource:r,allowIncomplete:n}));return Ce(()=>{o(i.getResourceLoading(e,{newResource:r,allowIncomplete:n}))},[e,i]),Ce(()=>{function s(u){o(u)}return e&&i.subscribe(e,s),()=>{i.unsubscribe(e,s)}},[i,e]),a}function _2(e,t={}){let[r,n]=ee(new Map),i=Me();return Ce(()=>{function a(o){r.set(o.getSubject(),o),n(new Map(r))}return e.map(o=>{let s=i.getResourceLoading(o,t);r.set(o,s),n(new Map(r)),i.subscribe(o,a)}),()=>{e.map(o=>i.unsubscribe(o,a))}},[e,i]),r}function Ni(e){let t=xe(e);if(t.loading)return{subject:e,datatype:Ee.UNKNOWN,shortname:"loading",description:`Loading property ${e}`,loading:!0};if(t.error)return{subject:e,datatype:Ee.UNKNOWN,shortname:"error",description:"Error getting Property. "+t.getError().message,error:t.getError()};let r=t.get(oe.properties.datatype),n=ud(r),i=t.get(oe.properties.shortname),a=t.get(oe.properties.description),o=t.get(oe.properties.classType),s=!!t.get(oe.properties.isDynamic);return{subject:e,datatype:n,shortname:i,description:a,classType:o,isDynamic:s}}function La(e,t,r={}){let{commit:n=!1,validate:i=!0,commitDebounce:a=100,handleValidationError:o}=r,[s,u]=ee(null),l=Me(),f=Ia(s,a),[h,m]=ee(!1);Ce(()=>{if(n&&h){async function b(){try{m(!1),await e.save(l,l.getAgent())}catch(v){l.handleError(v)}}b()}},[JSON.stringify(f)]);async function S(b){if(b==null){e.removePropVal(t),u(null);return}u(b),m(!0);async function v(){try{await e.set(t,b,l,i),o&&o(null),l.notify(e)}catch(y){o?o(y):console.log(y)}}await v()}if(s!==null)return[s,S];let _=null;try{_=e.get(t),e.getSubject().startsWith("http://localhost/sear")&&console.log("useValue",s,e.getSubject())}catch(b){l.handleError(b)}return _==null?[null,S]:[_,S]}function he(e,t,r){let[n,i]=La(e,t,r);return n==null?[null,i]:[Du(n),i]}function De(e,t){let[r]=he(e,oe.properties.name),[n]=he(e,oe.properties.shortname),[i]=he(e,oe.properties.file.filename);if(t=t||40,e.loading)return"...";if(r!==null)return r;if(n!==null)return n;if(i!==null)return i;let a=e.getSubject();return typeof a=="string"&&a.length>0?md(a,t):a}function rt(e,t,r){let[n,i]=La(e,t,r);if(n==null)return[[],i];let a=[];try{a=Yn(n)}catch(o){console.log(o,n,t,e.getSubject())}return[a,i]}function Qn(e,t,r){let[n,i]=La(e,t,r);return n==null?[NaN,i]:[g2(n),i]}function hd(e,t,r){let[n,i]=La(e,t,r);return n==null?[!1,i]:[h2(n),i]}function k2(e,t,r){let n=Me(),[i]=La(e,t,r);if(i==null)return null;try{return Mu(i)}catch(a){return n.handleError(a),null}}function Me(){let e=d.useContext(sg);if(e==null)throw new Error("Store is not found in react context. Have you wrapped your application in ``?");return e}function Vo(e,t){let r=Me(),[n,i]=ee(null),[a,o]=ee(null),s=r.getAgent();return Ce(()=>{if(t==null&&(t=s?.subject),t==null){o("No Agent set"),i(!1);return}o("Checking write rights...");async function u(){let[l,f]=await e.canWrite(r,t);i(l),o(l?null:"You don't have write rights in this resource or its parents: "+f)}u()},[e,t,s?.subject]),[n,a]}var sg=d.createContext(void 0);function Ur(e,t){let[r,n]=ee(()=>{try{let a=window.localStorage.getItem(e);return a?JSON.parse(a):t}catch(a){return console.log(`Error finding ${e} in localStorage:`,a),t}});return[r,a=>{try{let o=a instanceof Function?a(r):a;n(o),window.localStorage.setItem(e,JSON.stringify(o))}catch(o){console.log(o)}}]}var x2=()=>{let e=Me(),[t,r]=Ur("serverUrl",e.getServerUrl()),[n,i]=ee(window?.location.origin);return Ce(()=>{n!==null&&(gn(t)?i(t):(e.handleError(new Error(`Invalid base URL: ${t}, defaulting to atomicdata.dev`)),i("https://atomicdata.dev")))},[t]),Ce(()=>{e.setServerUrl(n)},[n]),[n,r]};var C2="agent",R2=()=>{let[e,t]=Ur(C2,null),r=Me(),[n,i]=ee(r.getAgent());function a(o){t(o),i(o),r.setAgent(o)}return Ce(()=>{e&&r.getAgent()==null&&n==null&&a(e)},[e]),[n,a]};function j2(){let e=localStorage.getItem(C2);if(e==null)return null;let t=JSON.parse(e);return t&&vn.fromJSON(t)}var rW=[J.name,J.shortname,J.file.filename,J.description,J.write,J.read];function gd(e,t={}){let{debounce:r=50,include:n=!1,limit:i=30}=t,[a,o]=ee([]),s=Me(),u=Ia(e,r);function l(){let m=new URL(s.getServerUrl());return m.pathname="search",m.searchParams.set("q",u),m.searchParams.set("include",n.toString()),m.searchParams.set("limit",i.toString()),m.toString()}let f=xe(l()),[h]=rt(f,oe.properties.endpoint.results);return Ce(()=>{!f.loading&&h&&o(h)},[h.toString(),f.loading]),e?{results:a,loading:f.loading,error:f.error}:{results:[],loading:!1,error:void 0}}function P2(){throw new Error("setTimeout has not been defined")}function T2(){throw new Error("clearTimeout has not been defined")}var zi=P2,$i=T2,Wo;typeof window!="undefined"?Wo=window:typeof self!="undefined"?Wo=self:Wo={};typeof Wo.setTimeout=="function"&&(zi=setTimeout);typeof Wo.clearTimeout=="function"&&($i=clearTimeout);function A2(e){if(zi===setTimeout)return setTimeout(e,0);if((zi===P2||!zi)&&setTimeout)return zi=setTimeout,setTimeout(e,0);try{return zi(e,0)}catch(t){try{return zi.call(null,e,0)}catch(r){return zi.call(this,e,0)}}}function aj(e){if($i===clearTimeout)return clearTimeout(e);if(($i===T2||!$i)&&clearTimeout)return $i=clearTimeout,clearTimeout(e);try{return $i(e)}catch(t){try{return $i.call(null,e)}catch(r){return $i.call(this,e)}}}var Jn=[],Ko=!1,Ma,vd=-1;function oj(){!Ko||!Ma||(Ko=!1,Ma.length?Jn=Ma.concat(Jn):vd=-1,Jn.length&&O2())}function O2(){if(!Ko){var e=A2(oj);Ko=!0;for(var t=Jn.length;t;){for(Ma=Jn,Jn=[];++vd1)for(var r=1;rPe)&&(He=(we=we.replace(" ",":")).length),0X&&(X=(V=V.trim()).charCodeAt(0)),X){case 38:return V.replace(y,"$1"+N.trim());case 58:return N.trim()+V.replace(y,"$1"+N.trim());default:if(0<1*q&&0te.charCodeAt(8))break;case 115:z=z.replace(te,"-webkit-"+te)+";"+z;break;case 207:case 102:z=z.replace(te,"-webkit-"+(102q.charCodeAt(0)&&(q=q.trim()),E=q,q=[E],01?t-1:0),n=1;n0?" Args: "+r.join(", "):""))}var Fj=function(){function e(r){this.groupSizes=new Uint32Array(512),this.length=512,this.tag=r}var t=e.prototype;return t.indexOfGroup=function(r){for(var n=0,i=0;i=this.groupSizes.length){for(var i=this.groupSizes,a=i.length,o=a;r>=o;)(o<<=1)<0&&yn(16,""+r);this.groupSizes=new Uint32Array(o),this.groupSizes.set(i),this.length=o;for(var s=a;s=this.length||this.groupSizes[r]===0)return n;for(var i=this.groupSizes[r],a=this.indexOfGroup(r),o=a+i,s=a;s=Bu&&(Bu=t+1),bd.set(e,t),wd.set(t,e)},zj="style["+Hi+'][data-styled-version="5.3.3"]',$j=new RegExp("^"+Hi+'\\.g(\\d+)\\[id="([\\w\\d-]+)"\\].*?"([^"]*)'),Uj=function(e,t,r){for(var n,i=r.split(","),a=0,o=i.length;a=0;l--){var f=u[l];if(f&&f.nodeType===1&&f.hasAttribute(Hi))return f}}(r),a=i!==void 0?i.nextSibling:null;n.setAttribute(Hi,"active"),n.setAttribute("data-styled-version","5.3.3");var o=dg();return o&&n.setAttribute("nonce",o),r.insertBefore(n,a),n},Vj=function(){function e(r){var n=this.element=F2(r);n.appendChild(document.createTextNode("")),this.sheet=function(i){if(i.sheet)return i.sheet;for(var a=document.styleSheets,o=0,s=a.length;o=0){var i=document.createTextNode(n),a=this.nodes[r];return this.element.insertBefore(i,a||null),this.length++,!0}return!1},t.deleteRule=function(r){this.element.removeChild(this.nodes[r]),this.length--},t.getRule=function(r){return r0&&(h+=m+",")}),a+=""+l+f+'{content:"'+h+`"}/*!sc*/
+`}}}return a}(this)},e}(),Gj=/(a)(d)/gi,N2=function(e){return String.fromCharCode(e+(e>25?39:97))};function fg(e){var t,r="";for(t=Math.abs(e);t>52;t=t/52|0)r=N2(t%52)+r;return(N2(t%52)+r).replace(Gj,"$1-$2")}var Yo=function(e,t){for(var r=t.length;r;)e=33*e^t.charCodeAt(--r);return e},z2=function(e){return Yo(5381,e)};function $2(e){for(var t=0;t>>0);if(!r.hasNameForId(i,s)){var u=n(o,"."+s,void 0,i);r.insertRules(i,s,u)}a.push(s),this.staticRulesId=s}else{for(var l=this.rules.length,f=Yo(this.baseHash,n.hash),h="",m=0;m>>0);if(!r.hasNameForId(i,v)){var y=n(h,"."+v,void 0,i);r.insertRules(i,v,y)}a.push(v)}}return a.join(" ")},e}(),Qj=/^\s*\/\/.*$/gm,Jj=[":","[",".","#"];function U2(e){var t,r,n,i,a=e===void 0?Ui:e,o=a.options,s=o===void 0?Ui:o,u=a.plugins,l=u===void 0?yd:u,f=new Aj(s),h=[],m=function(b){function v(y){if(y)try{b(y+"}")}catch(w){}}return function(y,w,x,c,g,p,k,P,A,T){switch(y){case 1:if(A===0&&w.charCodeAt(0)===64)return b(w+";"),"";break;case 2:if(P===0)return w+"/*|*/";break;case 3:switch(P){case 102:case 112:return b(x[0]+w),"";default:return w+(T===0?"/*|*/":"")}case-2:w.split("/*|*/}").forEach(v)}}}(function(b){h.push(b)}),S=function(b,v,y){return v===0&&Jj.indexOf(y[r.length])!==-1||y.match(i)?b:"."+t};function _(b,v,y,w){w===void 0&&(w="&");var x=b.replace(Qj,""),c=v&&y?y+" "+v+" { "+x+" }":x;return t=w,r=v,n=new RegExp("\\"+r+"\\b","g"),i=new RegExp("(\\"+r+"\\b){2,}"),f(y||!v?"":v,c)}return f.use([].concat(l,[function(b,v,y){b===2&&y.length&&y[0].lastIndexOf(r)>0&&(y[0]=y[0].replace(n,S))},m,function(b){if(b===-2){var v=h;return h=[],v}}])),_.hash=l.length?l.reduce(function(b,v){return v.name||yn(15),Yo(b,v.name)},5381).toString():"",_}var pg=d.createContext(),_W=pg.Consumer,mg=d.createContext(),Zj=(mg.Consumer,new Nu),hg=U2();function gg(){return d.useContext(pg)||Zj}function H2(){return d.useContext(mg)||hg}function e7(e){var t=d.useState(e.stylisPlugins),r=t[0],n=t[1],i=gg(),a=d.useMemo(function(){var s=i;return e.sheet?s=e.sheet:e.target&&(s=s.reconstructWithOptions({target:e.target},!1)),e.disableCSSOMInjection&&(s=s.reconstructWithOptions({useCSSOMInjection:!1})),s},[e.disableCSSOMInjection,e.sheet,e.target]),o=d.useMemo(function(){return U2({options:{prefix:!e.disableVendorPrefixes},plugins:r})},[e.disableVendorPrefixes,r]);return d.useEffect(function(){Xc(r,e.stylisPlugins)||n(e.stylisPlugins)},[e.stylisPlugins]),d.createElement(pg.Provider,{value:a},d.createElement(mg.Provider,{value:o},e.children))}var t7=function(){function e(t,r){var n=this;this.inject=function(i,a){a===void 0&&(a=hg);var o=n.name+a.hash;i.hasNameForId(n.id,o)||i.insertRules(n.id,o,a(n.rules,o,"@keyframes"))},this.toString=function(){return yn(12,String(n.name))},this.name=t,this.id="sc-keyframes-"+t,this.rules=r}return e.prototype.getName=function(t){return t===void 0&&(t=hg),this.name+t.hash},e}(),r7=/([A-Z])/,n7=/([A-Z])/g,i7=/^ms-/,a7=function(e){return"-"+e.toLowerCase()};function V2(e){return r7.test(e)?e.replace(n7,a7).replace(i7,"-ms-"):e}var W2=function(e){return e==null||e===!1||e===""};function Fa(e,t,r,n){if(Array.isArray(e)){for(var i,a=[],o=0,s=e.length;o1?t-1:0),n=1;n?@[\\\]^`{|}~-]+/g,s7=/(^-|-$)/g;function vg(e){return e.replace(o7,"-").replace(s7,"")}var G2=function(e){return fg(z2(e)>>>0)};function Ed(e){return typeof e=="string"&&!0}var yg=function(e){return typeof e=="function"||typeof e=="object"&&e!==null&&!Array.isArray(e)},u7=function(e){return e!=="__proto__"&&e!=="constructor"&&e!=="prototype"};function l7(e,t,r){var n=e[r];yg(t)&&yg(n)?Y2(n,t):e[r]=t}function Y2(e){for(var t=arguments.length,r=new Array(t>1?t-1:0),n=1;n=0||(T[P]=p[P]);return T}(t,["componentId"]),g=x&&x+"-"+(Ed(w)?w:vg(D2(w)));return Q2(w,tn({},c,{attrs:m,componentId:g}),r)},Object.defineProperty(_,"defaultProps",{get:function(){return this._foldedDefaultProps},set:function(w){this._foldedDefaultProps=n?Y2({},e.defaultProps,w):w}}),_.toString=function(){return"."+_.styledComponentId},i&&_u(_,e,{attrs:!0,componentStyle:!0,displayName:!0,foldedComponentIds:!0,shouldForwardProp:!0,styledComponentId:!0,target:!0,withComponent:!0}),_}var wg=function(e){return function t(r,n,i){if(i===void 0&&(i=Ui),!qn.isValidElementType(n))return yn(1,String(n));var a=function(){return r(n,i,rn.apply(void 0,arguments))};return a.withConfig=function(o){return t(r,n,tn({},i,{},o))},a.attrs=function(o){return t(r,n,tn({},i,{attrs:Array.prototype.concat(i.attrs,o).filter(Boolean)}))},a}(Q2,e)};["a","abbr","address","area","article","aside","audio","b","base","bdi","bdo","big","blockquote","body","br","button","canvas","caption","cite","code","col","colgroup","data","datalist","dd","del","details","dfn","dialog","div","dl","dt","em","embed","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","iframe","img","input","ins","kbd","keygen","label","legend","li","link","main","map","mark","marquee","menu","menuitem","meta","meter","nav","noscript","object","ol","optgroup","option","output","p","param","picture","pre","progress","q","rp","rt","ruby","s","samp","script","section","select","small","source","span","strong","style","sub","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","title","tr","track","u","ul","var","video","wbr","circle","clipPath","defs","ellipse","foreignObject","g","image","line","linearGradient","marker","mask","path","pattern","polygon","polyline","radialGradient","rect","stop","svg","text","textPath","tspan"].forEach(function(e){wg[e]=wg(e)});var c7=function(){function e(r,n){this.rules=r,this.componentId=n,this.isStatic=$2(r),Nu.registerId(this.componentId+1)}var t=e.prototype;return t.createStyles=function(r,n,i,a){var o=a(Fa(this.rules,n,i,a).join(""),""),s=this.componentId+r;i.insertRules(s,s,o)},t.removeStyles=function(r,n){n.clearRules(this.componentId+r)},t.renderStyles=function(r,n,i,a){r>2&&Nu.registerId(this.componentId+r),this.removeStyles(r,i),this.createStyles(r,n,i,a)},e}();function J2(e){for(var t=arguments.length,r=new Array(t>1?t-1:0),n=1;n"+n+""},this.getStyleTags=function(){return r.sealed?yn(2):r._emitSheetCSS()},this.getStyleElement=function(){var n;if(r.sealed)return yn(2);var i=((n={})[Hi]="",n["data-styled-version"]="5.3.3",n.dangerouslySetInnerHTML={__html:r.instance.toString()},n),a=dg();return a&&(i.nonce=a),[d.createElement("style",tn({},i,{key:"sc-0-0"}))]},this.seal=function(){r.sealed=!0},this.instance=new Nu({isServer:!0}),this.sealed=!1}var t=e.prototype;return t.collectStyles=function(r){return this.sealed?yn(2):d.createElement(e7,{sheet:this.instance},r)},t.interleaveWithNodeStream=function(r){return yn(3)},e}();var Z2=function(){return d.useContext(Xo)};var ne=wg;function zu(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function Sg(e){return Sg=Object.setPrototypeOf?Object.getPrototypeOf:function(r){return r.__proto__||Object.getPrototypeOf(r)},Sg(e)}function d7(e){return Function.toString.call(e).indexOf("[native code]")!==-1}function f7(){if(typeof Reflect=="undefined"||!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(e){return!1}}function _d(e,t,r){return f7()?_d=Reflect.construct:_d=function(i,a,o){var s=[null];s.push.apply(s,a);var u=Function.bind.apply(i,s),l=new u;return o&&Io(l,o.prototype),l},_d.apply(null,arguments)}function Eg(e){var t=typeof Map=="function"?new Map:void 0;return Eg=function(n){if(n===null||!d7(n))return n;if(typeof n!="function")throw new TypeError("Super expression must either be null or a function");if(typeof t!="undefined"){if(t.has(n))return t.get(n);t.set(n,i)}function i(){return _d(n,arguments,Sg(this).constructor)}return i.prototype=Object.create(n.prototype,{constructor:{value:i,enumerable:!1,writable:!0,configurable:!0}}),Io(i,n)},Eg(e)}var Pn=function(e){or(t,e);function t(r){var n;return n=e.call(this,"An error occurred. See https://github.com/styled-components/polished/blob/main/src/internalHelpers/errors.md#"+r+" for more information.")||this,zu(n)}return t}(Eg(Error));function _g(e){return Math.round(e*255)}function p7(e,t,r){return _g(e)+","+_g(t)+","+_g(r)}function $u(e,t,r,n){if(n===void 0&&(n=p7),t===0)return n(r,r,r);var i=(e%360+360)%360/60,a=(1-Math.abs(2*r-1))*t,o=a*(1-Math.abs(i%2-1)),s=0,u=0,l=0;i>=0&&i<1?(s=a,u=o):i>=1&&i<2?(s=o,u=a):i>=2&&i<3?(u=a,l=o):i>=3&&i<4?(u=o,l=a):i>=4&&i<5?(s=o,l=a):i>=5&&i<6&&(s=a,l=o);var f=r-a/2,h=s+f,m=u+f,S=l+f;return n(h,m,S)}var e3={aliceblue:"f0f8ff",antiquewhite:"faebd7",aqua:"00ffff",aquamarine:"7fffd4",azure:"f0ffff",beige:"f5f5dc",bisque:"ffe4c4",black:"000",blanchedalmond:"ffebcd",blue:"0000ff",blueviolet:"8a2be2",brown:"a52a2a",burlywood:"deb887",cadetblue:"5f9ea0",chartreuse:"7fff00",chocolate:"d2691e",coral:"ff7f50",cornflowerblue:"6495ed",cornsilk:"fff8dc",crimson:"dc143c",cyan:"00ffff",darkblue:"00008b",darkcyan:"008b8b",darkgoldenrod:"b8860b",darkgray:"a9a9a9",darkgreen:"006400",darkgrey:"a9a9a9",darkkhaki:"bdb76b",darkmagenta:"8b008b",darkolivegreen:"556b2f",darkorange:"ff8c00",darkorchid:"9932cc",darkred:"8b0000",darksalmon:"e9967a",darkseagreen:"8fbc8f",darkslateblue:"483d8b",darkslategray:"2f4f4f",darkslategrey:"2f4f4f",darkturquoise:"00ced1",darkviolet:"9400d3",deeppink:"ff1493",deepskyblue:"00bfff",dimgray:"696969",dimgrey:"696969",dodgerblue:"1e90ff",firebrick:"b22222",floralwhite:"fffaf0",forestgreen:"228b22",fuchsia:"ff00ff",gainsboro:"dcdcdc",ghostwhite:"f8f8ff",gold:"ffd700",goldenrod:"daa520",gray:"808080",green:"008000",greenyellow:"adff2f",grey:"808080",honeydew:"f0fff0",hotpink:"ff69b4",indianred:"cd5c5c",indigo:"4b0082",ivory:"fffff0",khaki:"f0e68c",lavender:"e6e6fa",lavenderblush:"fff0f5",lawngreen:"7cfc00",lemonchiffon:"fffacd",lightblue:"add8e6",lightcoral:"f08080",lightcyan:"e0ffff",lightgoldenrodyellow:"fafad2",lightgray:"d3d3d3",lightgreen:"90ee90",lightgrey:"d3d3d3",lightpink:"ffb6c1",lightsalmon:"ffa07a",lightseagreen:"20b2aa",lightskyblue:"87cefa",lightslategray:"789",lightslategrey:"789",lightsteelblue:"b0c4de",lightyellow:"ffffe0",lime:"0f0",limegreen:"32cd32",linen:"faf0e6",magenta:"f0f",maroon:"800000",mediumaquamarine:"66cdaa",mediumblue:"0000cd",mediumorchid:"ba55d3",mediumpurple:"9370db",mediumseagreen:"3cb371",mediumslateblue:"7b68ee",mediumspringgreen:"00fa9a",mediumturquoise:"48d1cc",mediumvioletred:"c71585",midnightblue:"191970",mintcream:"f5fffa",mistyrose:"ffe4e1",moccasin:"ffe4b5",navajowhite:"ffdead",navy:"000080",oldlace:"fdf5e6",olive:"808000",olivedrab:"6b8e23",orange:"ffa500",orangered:"ff4500",orchid:"da70d6",palegoldenrod:"eee8aa",palegreen:"98fb98",paleturquoise:"afeeee",palevioletred:"db7093",papayawhip:"ffefd5",peachpuff:"ffdab9",peru:"cd853f",pink:"ffc0cb",plum:"dda0dd",powderblue:"b0e0e6",purple:"800080",rebeccapurple:"639",red:"f00",rosybrown:"bc8f8f",royalblue:"4169e1",saddlebrown:"8b4513",salmon:"fa8072",sandybrown:"f4a460",seagreen:"2e8b57",seashell:"fff5ee",sienna:"a0522d",silver:"c0c0c0",skyblue:"87ceeb",slateblue:"6a5acd",slategray:"708090",slategrey:"708090",snow:"fffafa",springgreen:"00ff7f",steelblue:"4682b4",tan:"d2b48c",teal:"008080",thistle:"d8bfd8",tomato:"ff6347",turquoise:"40e0d0",violet:"ee82ee",wheat:"f5deb3",white:"fff",whitesmoke:"f5f5f5",yellow:"ff0",yellowgreen:"9acd32"};function m7(e){if(typeof e!="string")return e;var t=e.toLowerCase();return e3[t]?"#"+e3[t]:e}var h7=/^#[a-fA-F0-9]{6}$/,g7=/^#[a-fA-F0-9]{8}$/,v7=/^#[a-fA-F0-9]{3}$/,y7=/^#[a-fA-F0-9]{4}$/,kg=/^rgb\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*\)$/i,b7=/^rgba\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*([-+]?[0-9]*[.]?[0-9]+)\s*\)$/i,w7=/^hsl\(\s*(\d{0,3}[.]?[0-9]+)\s*,\s*(\d{1,3}[.]?[0-9]?)%\s*,\s*(\d{1,3}[.]?[0-9]?)%\s*\)$/i,S7=/^hsla\(\s*(\d{0,3}[.]?[0-9]+)\s*,\s*(\d{1,3}[.]?[0-9]?)%\s*,\s*(\d{1,3}[.]?[0-9]?)%\s*,\s*([-+]?[0-9]*[.]?[0-9]+)\s*\)$/i;function xg(e){if(typeof e!="string")throw new Pn(3);var t=m7(e);if(t.match(h7))return{red:parseInt(""+t[1]+t[2],16),green:parseInt(""+t[3]+t[4],16),blue:parseInt(""+t[5]+t[6],16)};if(t.match(g7)){var r=parseFloat((parseInt(""+t[7]+t[8],16)/255).toFixed(2));return{red:parseInt(""+t[1]+t[2],16),green:parseInt(""+t[3]+t[4],16),blue:parseInt(""+t[5]+t[6],16),alpha:r}}if(t.match(v7))return{red:parseInt(""+t[1]+t[1],16),green:parseInt(""+t[2]+t[2],16),blue:parseInt(""+t[3]+t[3],16)};if(t.match(y7)){var n=parseFloat((parseInt(""+t[4]+t[4],16)/255).toFixed(2));return{red:parseInt(""+t[1]+t[1],16),green:parseInt(""+t[2]+t[2],16),blue:parseInt(""+t[3]+t[3],16),alpha:n}}var i=kg.exec(t);if(i)return{red:parseInt(""+i[1],10),green:parseInt(""+i[2],10),blue:parseInt(""+i[3],10)};var a=b7.exec(t.substring(0,50));if(a)return{red:parseInt(""+a[1],10),green:parseInt(""+a[2],10),blue:parseInt(""+a[3],10),alpha:parseFloat(""+a[4])};var o=w7.exec(t);if(o){var s=parseInt(""+o[1],10),u=parseInt(""+o[2],10)/100,l=parseInt(""+o[3],10)/100,f="rgb("+$u(s,u,l)+")",h=kg.exec(f);if(!h)throw new Pn(4,t,f);return{red:parseInt(""+h[1],10),green:parseInt(""+h[2],10),blue:parseInt(""+h[3],10)}}var m=S7.exec(t.substring(0,50));if(m){var S=parseInt(""+m[1],10),_=parseInt(""+m[2],10)/100,b=parseInt(""+m[3],10)/100,v="rgb("+$u(S,_,b)+")",y=kg.exec(v);if(!y)throw new Pn(4,t,v);return{red:parseInt(""+y[1],10),green:parseInt(""+y[2],10),blue:parseInt(""+y[3],10),alpha:parseFloat(""+m[4])}}throw new Pn(5)}function E7(e){var t=e.red/255,r=e.green/255,n=e.blue/255,i=Math.max(t,r,n),a=Math.min(t,r,n),o=(i+a)/2;if(i===a)return e.alpha!==void 0?{hue:0,saturation:0,lightness:o,alpha:e.alpha}:{hue:0,saturation:0,lightness:o};var s,u=i-a,l=o>.5?u/(2-i-a):u/(i+a);switch(i){case t:s=(r-n)/u+(r=1?kd(e,t,r):"rgba("+$u(e,t,r)+","+n+")";if(typeof e=="object"&&t===void 0&&r===void 0&&n===void 0)return e.alpha>=1?kd(e.hue,e.saturation,e.lightness):"rgba("+$u(e.hue,e.saturation,e.lightness)+","+e.alpha+")";throw new Pn(2)}function jg(e,t,r){if(typeof e=="number"&&typeof t=="number"&&typeof r=="number")return Cg("#"+Ba(e)+Ba(t)+Ba(r));if(typeof e=="object"&&t===void 0&&r===void 0)return Cg("#"+Ba(e.red)+Ba(e.green)+Ba(e.blue));throw new Pn(6)}function r3(e,t,r,n){if(typeof e=="string"&&typeof t=="number"){var i=xg(e);return"rgba("+i.red+","+i.green+","+i.blue+","+t+")"}else{if(typeof e=="number"&&typeof t=="number"&&typeof r=="number"&&typeof n=="number")return n>=1?jg(e,t,r):"rgba("+e+","+t+","+r+","+n+")";if(typeof e=="object"&&t===void 0&&r===void 0&&n===void 0)return e.alpha>=1?jg(e.red,e.green,e.blue):"rgba("+e.red+","+e.green+","+e.blue+","+e.alpha+")"}throw new Pn(7)}var C7=function(t){return typeof t.red=="number"&&typeof t.green=="number"&&typeof t.blue=="number"&&(typeof t.alpha!="number"||typeof t.alpha=="undefined")},R7=function(t){return typeof t.red=="number"&&typeof t.green=="number"&&typeof t.blue=="number"&&typeof t.alpha=="number"},j7=function(t){return typeof t.hue=="number"&&typeof t.saturation=="number"&&typeof t.lightness=="number"&&(typeof t.alpha!="number"||typeof t.alpha=="undefined")},P7=function(t){return typeof t.hue=="number"&&typeof t.saturation=="number"&&typeof t.lightness=="number"&&typeof t.alpha=="number"};function n3(e){if(typeof e!="object")throw new Pn(8);if(R7(e))return r3(e);if(C7(e))return jg(e);if(P7(e))return x7(e);if(j7(e))return k7(e);throw new Pn(8)}function i3(e,t,r){return function(){var i=r.concat(Array.prototype.slice.call(arguments));return i.length>=t?e.apply(this,i):i3(e,t,i)}}function Pg(e){return i3(e,e.length,[])}function Tg(e,t,r){return Math.max(e,Math.min(t,r))}function T7(e,t){if(t==="transparent")return t;var r=t3(t);return n3(Le({},r,{lightness:Tg(0,1,r.lightness-parseFloat(e))}))}var Zn=Pg(T7);function A7(e,t){if(t==="transparent")return t;var r=t3(t);return n3(Le({},r,{lightness:Tg(0,1,r.lightness+parseFloat(e))}))}var ei=Pg(A7);function O7(e,t){if(t==="transparent")return t;var r=xg(t),n=typeof r.alpha=="number"?r.alpha:1,i=Le({},r,{alpha:Tg(0,1,+(n*100-parseFloat(e)*100).toFixed(2)/100)});return r3(i)}var a3=Pg(O7);var Hr;(function(e){e.always="always",e.never="never",e.auto="auto"})(Hr||(Hr={}));var o3=()=>{let e=!1;Ag()&&(e=!0);let[t,r]=ee(e),[n,i]=Ur("darkMode",Hr.auto);window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change",o=>{a(!!o.matches)});function a(o){o==null?(r(Ag()),i(Hr.auto)):o==!0?(r(o),i(Hr.always)):o==!1&&(r(o),i(Hr.never))}return Ce(()=>{n==Hr.auto?r(Ag()):n==Hr.always?r(!0):n==Hr.never&&r(!1)},[n]),[t,a,n]};function Ag(){return window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches}var I7={data:""},L7=e=>typeof window=="object"?((e?e.querySelector("#_goober"):window._goober)||Object.assign((e||document.head).appendChild(document.createElement("style")),{innerHTML:" ",id:"_goober"})).firstChild:e||I7,M7=/(?:([\u0080-\uFFFF\w-%@]+) *:? *([^{;]+?);|([^;}{]*?) *{)|(})/g,D7=/\/\*[^]*?\*\/|\s\s+|\n/g,Vi=(e,t)=>{let r,n="",i="",a="";for(let o in e){let s=e[o];typeof s=="object"?(r=t?t.replace(/([^,])+/g,u=>o.replace(/([^,])+/g,l=>/&/.test(l)?l.replace(/&/g,u):u?u+" "+l:l)):o,i+=o[0]=="@"?o[1]=="f"?Vi(s,o):o+"{"+Vi(s,o[1]=="k"?"":t)+"}":Vi(s,r)):o[0]=="@"&&o[1]=="i"?n=o+" "+s+";":(o=o.replace(/[A-Z]/g,"-$&").toLowerCase(),a+=Vi.p?Vi.p(o,s):o+":"+s+";")}return a[0]?(r=t?t+"{"+a+"}":a,n+r+i):n+i},Uu={},s3=e=>{let t="";for(let r in e)t+=r+(typeof e[r]=="object"?s3(e[r]):e[r]);return t},F7=(e,t,r,n,i)=>{let a=typeof e=="object"?s3(e):e,o=Uu[a]||(Uu[a]=(s=>{let u=0,l=11;for(;u>>0;return"go"+l})(a));if(!Uu[o]){let s=typeof e=="object"?e:(u=>{let l,f=[{}];for(;l=M7.exec(u.replace(D7,""));)l[4]&&f.shift(),l[3]?f.unshift(f[0][l[3]]=f[0][l[3]]||{}):l[4]||(f[0][l[1]]=l[2]);return f[0]})(e);Uu[o]=Vi(i?{["@keyframes "+o]:s}:s,r?"":"."+o)}return((s,u,l)=>{u.data.indexOf(s)==-1&&(u.data=l?s+u.data:u.data+s)})(Uu[o],t,n),o},B7=(e,t,r)=>e.reduce((n,i,a)=>{let o=t[a];if(o&&o.call){let s=o(r),u=s&&s.props&&s.props.className||/^go/.test(s)&&s;o=u?"."+u:s&&typeof s=="object"?s.props?"":Vi(s,""):s}return n+i+(o??"")},"");function xd(e){let t=this||{},r=e.call?e(t.p):e;return F7(r.unshift?r.raw?B7(r,[].slice.call(arguments,1),t.p):r.reduce((n,i)=>i?Object.assign(n,i.call?i(t.p):i):n,{}):r,L7(t.target),t.g,t.o,t.k)}var u3,Og,Ig,FW=xd.bind({g:1}),ti=xd.bind({k:1});function N7(e,t,r,n){Vi.p=t,u3=e,Og=r,Ig=n}function Wi(e,t){let r=this||{};return function(){let n=arguments;function i(a,o){let s=Object.assign({},a),u=s.className||i.className;r.p=Object.assign({theme:Og&&Og()},s),r.o=/ *go\d+/.test(u),s.className=xd.apply(r,n)+(u?" "+u:""),t&&(s.ref=o);let l=s.as||e;return delete s.as,Ig&&l[0]&&Ig(s),u3(l,s)}return t?t(i):i}}function It(){return It=Object.assign||function(e){for(var t=1;t-1&&jd.splice(o,1)}},[n]);var a=n.toasts.map(function(o){var s,u,l;return It({},t,t[o.type],o,{duration:o.duration||((s=t[o.type])==null?void 0:s.duration)||((u=t)==null?void 0:u.duration)||K7[o.type],style:It({},t.style,(l=t[o.type])==null?void 0:l.style,o.style)})});return It({},n,{toasts:a})},G7=function(t,r,n){return r===void 0&&(r="blank"),It({createdAt:Date.now(),visible:!0,type:r,ariaProps:{role:"status","aria-live":"polite"},message:t,pauseDuration:0},n,{id:(n==null?void 0:n.id)||$7()})},Hu=function(t){return function(r,n){var i=G7(r,t,n);return Na({type:Jt.UPSERT_TOAST,toast:i}),i.id}},Vr=function(t,r){return Hu("blank")(t,r)};Vr.error=Hu("error");Vr.success=Hu("success");Vr.loading=Hu("loading");Vr.custom=Hu("custom");Vr.dismiss=function(e){Na({type:Jt.DISMISS_TOAST,toastId:e})};Vr.remove=function(e){return Na({type:Jt.REMOVE_TOAST,toastId:e})};Vr.promise=function(e,t,r){var n=Vr.loading(t.loading,It({},r,r==null?void 0:r.loading));return e.then(function(i){return Vr.success(Cd(t.success,i),It({id:n},r,r==null?void 0:r.success)),i}).catch(function(i){Vr.error(Cd(t.error,i),It({id:n},r,r==null?void 0:r.error))}),e};var Y7=function(t){var r=q7(t),n=r.toasts,i=r.pausedAt;d.useEffect(function(){if(!i){var o=Date.now(),s=n.map(function(u){if(u.duration!==Infinity){var l=(u.duration||0)+u.pauseDuration-(o-u.createdAt);if(l<0){u.visible&&Vr.dismiss(u.id);return}return setTimeout(function(){return Vr.dismiss(u.id)},l)}});return function(){s.forEach(function(u){return u&&clearTimeout(u)})}}},[n,i]);var a=d.useMemo(function(){return{startPause:function(){Na({type:Jt.START_PAUSE,time:Date.now()})},endPause:function(){i&&Na({type:Jt.END_PAUSE,time:Date.now()})},updateHeight:function(s,u){return Na({type:Jt.UPDATE_TOAST,toast:{id:s,height:u}})},calculateOffset:function(s,u){var l,f=u||{},h=f.reverseOrder,m=h===void 0?!1:h,S=f.gutter,_=S===void 0?8:S,b=f.defaultPosition,v=n.filter(function(c){return(c.position||b)===(s.position||b)&&c.height}),y=v.findIndex(function(c){return c.id===s.id}),w=v.filter(function(c,g){return g * {
+ pointer-events: auto;
+ }
+`]);return C3=function(){return e},e}N7(d.createElement);var v9=function(t,r){var n=t.includes("top"),i=n?{top:0}:{bottom:0},a=t.includes("center")?{justifyContent:"center"}:t.includes("right")?{justifyContent:"flex-end"}:{};return It({left:0,right:0,display:"flex",position:"absolute",transition:l3()?void 0:"all 230ms cubic-bezier(.21,1.02,.73,1)",transform:"translateY("+r*(n?1:-1)+"px)"},i,a)},y9=xd(C3()),Td=16,R3=function(t){var r=t.reverseOrder,n=t.position,i=n===void 0?"top-center":n,a=t.toastOptions,o=t.gutter,s=t.children,u=t.containerStyle,l=t.containerClassName,f=Y7(a),h=f.toasts,m=f.handlers;return d.createElement("div",{style:It({position:"fixed",zIndex:9999,top:Td,left:Td,right:Td,bottom:Td,pointerEvents:"none"},u),className:l,onMouseEnter:m.startPause,onMouseLeave:m.endPause},h.map(function(S){var _=S.position||i,b=m.calculateOffset(S,{reverseOrder:r,gutter:o,defaultPosition:i}),v=v9(_,b),y=S.height?void 0:U7(function(w){m.updateHeight(S.id,w.height)});return d.createElement("div",{ref:y,className:S.visible?y9:"",key:S.id,style:v},S.type==="custom"?Cd(S.message,S):s?s(S):d.createElement(Lg,{toast:S,position:_}))}))},mt=Vr;function j3(e){let[t,r]=ee(!1),n=Vt(null),{current:i}=n,a=()=>r(!0),o=()=>r(!1);return Ce(()=>{let s=i;if(!e&&s)return s.addEventListener("mouseover",a),s.addEventListener("mouseout",o),()=>{s.removeEventListener("mouseover",a),s.removeEventListener("mouseout",o)}},[i,e]),window.matchMedia("(pointer: coarse)").matches?[n,!1]:[n,t]}function P3(){let[e,t]=ee({width:void 0,height:void 0});return Ce(()=>{function r(){t({width:window.innerWidth,height:window.innerHeight})}return window.addEventListener("resize",r),r(),()=>window.removeEventListener("resize",r)},[]),e}function fe({children:e,clean:t,icon:r,loading:n,...i}){let a=T3;return r&&(a=Ad),t&&(a=Mg),d.createElement(a,{type:"button",...i},n?d.createElement(A3,null):e)}var Mg=ne.button`
+ cursor: pointer;
+ border: none;
+ outline: none;
+ font-size: 1rem;
+ padding: 0;
+ color: inherit;
+ margin: 0;
+ -webkit-appearance: none;
+ background-color: initial;
+ -webkit-tap-highlight-color: transparent; /** Remove the tap / click effect on touch devices */
+`,O3=ne(Mg)`
+ height: 2rem;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ background-color: ${e=>e.theme.colors.main};
+ color: ${e=>e.theme.colors.bg};
+ white-space: nowrap;
+ transition: 0.1s transform, 0.1s background-color, 0.1s box-shadow, 0.1s color;
+
+ /** Prevent sticky hover buttons on touch devices */
+ @media (hover: hover) and (pointer: fine) {
+ &:hover:not([disabled]),
+ &:focus-visible:not([disabled]) {
+ border-color: ${e=>e.theme.colors.main};
+ outline: 0;
+ }
+ }
+
+ &:active:not([disabled]) {
+ transition: all 0s;
+ /* background-color: ${e=>e.theme.colors.mainDark}; */
+ /* color: ${e=>e.theme.colors.bg}; */
+ }
+
+ &:disabled {
+ cursor: default;
+ display: auto;
+ opacity: 0.5;
+ }
+`,Ki=ne(Mg)`
+ padding-right: 0.5rem;
+ padding-left: 0.5rem;
+ color: ${e=>e.theme.colors.main};
+ background-color: ${e=>e.selected?e.theme.colors.bg2:e.theme.colors.bg};
+ height: 100%;
+ display: flex;
+ align-items: center;
+
+ &:hover:not([disabled]),
+ /* &:active:not([disabled]), */
+ &:focus-visible:not([disabled]) {
+ background-color: ${e=>e.theme.colors.bg1};
+ }
+
+ &:active:not([disabled]) {
+ background-color: ${e=>e.theme.colors.bg2};
+ }
+
+ padding-left: ${e=>e.leftPadding?"1.2rem":""};
+ padding-right: ${e=>e.rightPadding?"1.2rem":""};
+`,T3=ne(O3)`
+ padding: 0.4rem;
+ margin-bottom: ${e=>e.noMargins?0:e.theme.margin}rem;
+ margin-right: ${e=>e.noMargins?0:e.theme.margin}rem;
+ border-radius: ${e=>e.theme.radius};
+ padding-left: ${e=>e.theme.margin}rem;
+ padding-right: ${e=>e.theme.margin}rem;
+ box-shadow: ${e=>e.subtle?e.theme.boxShadow:"none"};
+ display: inline-flex;
+ background-color: ${e=>e.subtle?e.theme.colors.bg:e.theme.colors.main};
+ color: ${e=>e.subtle?e.theme.colors.textLight:e.theme.colors.bg};
+ border: solid 1px
+ ${e=>e.subtle?e.theme.colors.bg2:e.theme.colors.main};
+
+ &:focus-visible:not([disabled]),
+ &:hover:not([disabled]) {
+ box-shadow: ${e=>e.theme.boxShadowIntense};
+ background-color: ${e=>e.subtle?e.theme.colors.bg:e.theme.colors.mainLight};
+ color: ${e=>e.subtle?e.theme.colors.main:e.theme.colors.bg};
+ border-color: ${e=>e.subtle?e.theme.colors.main:e.theme.colors.mainLight};
+ }
+
+ &:active:not([disabled]) {
+ box-shadow: inset ${e=>e.theme.boxShadowIntense};
+ }
+`,Ad=ne(T3)`
+ box-shadow: none;
+ border-color: transparent;
+ border-radius: 999px;
+ font-size: 0.8rem;
+ width: 1.3rem;
+ height: 1.3rem;
+ display: inline-flex;
+ margin: 0;
+ padding: 0;
+
+ &:active:not([disabled]) {
+ box-shadow: ${e=>e.theme.boxShadowIntense};
+ }
+
+ &:active:not([disabled]) {
+ box-shadow: inset ${e=>e.theme.boxShadowIntense};
+ }
+`,ri=ne(O3)`
+ padding: 0 0.5rem;
+ background-color: ${e=>e.theme.colors.bg};
+ color: ${e=>e.theme.colors.textLight};
+ flex: 0;
+ height: auto;
+ border-left: solid 1px ${e=>e.theme.colors.bg2};
+ border-radius: 0;
+
+ /** Prevent sticky hover buttons on touch devices */
+ @media (hover: hover) and (pointer: fine) {
+ &:hover:not([disabled]),
+ &:active:not([disabled]),
+ &:focus-visible:not([disabled]) {
+ color: ${e=>e.theme.colors.main};
+ background-color: ${e=>e.theme.colors.bg1};
+ }
+ }
+
+ &:last-child {
+ border-radius: ${e=>e.theme.radius};
+ border-top-left-radius: 0;
+ border-bottom-left-radius: 0;
+ }
+`,A3=()=>d.createElement(b9,{viewBox:"0 0 50 50"},d.createElement("circle",{className:"path",cx:"25",cy:"25",r:"20",fill:"none",strokeWidth:"4"})),b9=ne.svg`
+ animation: rotate 2s linear infinite;
+ width: 50px;
+ height: 50px;
+ max-width: 100%;
+ max-height: 100%;
+
+ & .path {
+ stroke: ${e=>e.theme.colors.main};
+ stroke-linecap: round;
+ animation: dash 1.5s ease-in-out infinite;
+ }
+
+ @keyframes rotate {
+ 100% {
+ transform: rotate(360deg);
+ }
+ }
+ @keyframes dash {
+ 0% {
+ stroke-dasharray: 1, 150;
+ stroke-dashoffset: 0;
+ }
+ 50% {
+ stroke-dasharray: 90, 150;
+ stroke-dashoffset: -35;
+ }
+ 100% {
+ stroke-dasharray: 90, 150;
+ stroke-dashoffset: -124;
+ }
+ }
+`,Od=A3;var Fe={agentSettings:"/app/agent",themeSettings:"/app/theme",serverSettings:"/app/server",new:"/app/new",shortcuts:"/app/shortcuts",search:"/app/search",share:"/app/share",show:"/app/show",data:"/app/data",edit:"/app/edit",about:"/app/about",allVersions:"/all-versions"};function Vu(e,t,r){let n=new URL(location.origin);return n.pathname=e,n.searchParams.append(t,r),e+n.search}function Lt(e){let t=new URL(e);if(window.location.origin==t.origin){let r=t.pathname+t.search;return r=="/"?"":r}else return Vu(Fe.show,"subject",e)}function I3(e){return Vu(Fe.search,"query",e)}function Id(){return Ti("query",Kn)}function Qo(e,t,r){let n=new URL(location.origin);return n.pathname=Fe.new,n.searchParams.append("classSubject",e),t&&n.searchParams.append("parent",t),r&&n.searchParams.append("newSubject",r),Fe.new+n.search}function Jo(e){return Vu(Fe.edit,"subject",e)}function L3(e){return Vu(Fe.share,"subject",e)}function Ld(e){return Vu(Fe.data,"subject",e)}function M3(e,t){let r=new URL(t);return r.pathname=Fe.allVersions,r.searchParams.append("subject",e),Lt(r.toString())}function w9(){return Ti("subject",Kn)}function Gt(e){let[t,r]=w9(),n=qe(),{pathname:i,search:a}=ja();function o(s){let u=new URL(s);window.location.origin==u.origin?e?n.replace(u.pathname+u.search):n.push(u.pathname+u.search):r(s)}if(t==null){if(i.startsWith("/app/"))return[null,o];let s=i=="/"?"":i;return[window.location.origin+s+a,o]}return[t,o]}function Zo(e){let[t,r]=Gt(),n=new URL(t).searchParams,[i,a]=ee(n.get(e));function o(s){n.set(e,s);let u=new URL(t);u.searchParams.set(e,s),s==null&&u.searchParams.delete(e),a(s),r(u.href)}return[i,o]}var S9=[{id:"fa",name:"Font Awesome",projectUrl:"https://fontawesome.com/",license:"CC BY 4.0 License",licenseUrl:"https://creativecommons.org/licenses/by/4.0/"},{id:"io",name:"Ionicons 4",projectUrl:"https://ionicons.com/",license:"MIT",licenseUrl:"https://github.com/ionic-team/ionicons/blob/master/LICENSE"},{id:"io5",name:"Ionicons 5",projectUrl:"https://ionicons.com/",license:"MIT",licenseUrl:"https://github.com/ionic-team/ionicons/blob/master/LICENSE"},{id:"md",name:"Material Design icons",projectUrl:"http://google.github.io/material-design-icons/",license:"Apache License Version 2.0",licenseUrl:"https://github.com/google/material-design-icons/blob/master/LICENSE"},{id:"ti",name:"Typicons",projectUrl:"http://s-ings.com/typicons/",license:"CC BY-SA 3.0",licenseUrl:"https://creativecommons.org/licenses/by-sa/3.0/"},{id:"go",name:"Github Octicons icons",projectUrl:"https://octicons.github.com/",license:"MIT",licenseUrl:"https://github.com/primer/octicons/blob/master/LICENSE"},{id:"fi",name:"Feather",projectUrl:"https://feathericons.com/",license:"MIT",licenseUrl:"https://github.com/feathericons/feather/blob/master/LICENSE"},{id:"gi",name:"Game Icons",projectUrl:"https://game-icons.net/",license:"CC BY 3.0",licenseUrl:"https://creativecommons.org/licenses/by/3.0/"},{id:"wi",name:"Weather Icons",projectUrl:"https://erikflowers.github.io/weather-icons/",license:"SIL OFL 1.1",licenseUrl:"http://scripts.sil.org/OFL"},{id:"di",name:"Devicons",projectUrl:"https://vorillaz.github.io/devicons/",license:"MIT",licenseUrl:"https://opensource.org/licenses/MIT"},{id:"ai",name:"Ant Design Icons",projectUrl:"https://github.com/ant-design/ant-design-icons",license:"MIT",licenseUrl:"https://opensource.org/licenses/MIT"},{id:"bs",name:"Bootstrap Icons",projectUrl:"https://github.com/twbs/icons",license:"MIT",licenseUrl:"https://opensource.org/licenses/MIT"},{id:"ri",name:"Remix Icon",projectUrl:"https://github.com/Remix-Design/RemixIcon",license:"Apache License Version 2.0",licenseUrl:"http://www.apache.org/licenses/"},{id:"fc",name:"Flat Color Icons",projectUrl:"https://github.com/icons8/flat-color-icons",license:"MIT",licenseUrl:"https://opensource.org/licenses/MIT"},{id:"gr",name:"Grommet-Icons",projectUrl:"https://github.com/grommet/grommet-icons",license:"Apache License Version 2.0",licenseUrl:"http://www.apache.org/licenses/"},{id:"hi",name:"Heroicons",projectUrl:"https://github.com/tailwindlabs/heroicons",license:"MIT",licenseUrl:"https://opensource.org/licenses/MIT"},{id:"si",name:"Simple Icons",projectUrl:"https://simpleicons.org/",license:"CC0 1.0 Universal",licenseUrl:"https://creativecommons.org/publicdomain/zero/1.0/"},{id:"im",name:"IcoMoon Free",projectUrl:"https://github.com/Keyamoon/IcoMoon-Free",license:"CC BY 4.0 License"},{id:"bi",name:"BoxIcons",projectUrl:"https://github.com/atisawd/boxicons",license:"CC BY 4.0 License"},{id:"cg",name:"css.gg",projectUrl:"https://github.com/astrit/css.gg",license:"MIT",licenseUrl:"https://opensource.org/licenses/MIT"},{id:"vsc",name:"VS Code Icons",projectUrl:"https://github.com/microsoft/vscode-codicons",license:"CC BY 4.0",licenseUrl:"https://creativecommons.org/licenses/by/4.0/"}],Dg={color:void 0,size:void 0,className:void 0,style:void 0,attr:void 0},Fg=d.createContext&&d.createContext(Dg),qi=function(){return qi=Object.assign||function(e){for(var t,r=1,n=arguments.length;r{if(!n){if(l.preventDefault(),r){o.push(r);return}if(t){if(a==t)return;o.push(Lt(t))}}},u=t&&a==t;return d.createElement(x9,{about:t,onClick:s,href:t||n,disabled:u,tabIndex:u||i?-1:0,target:Ud()&&!n?"":"_blank"},e,n&&d.createElement(es,null))}var x9=ne.a`
+ color: ${e=>e.disabled?e.theme.colors.text:e.theme.colors.main};
+ text-decoration: none;
+ cursor: pointer;
+ pointer-events: ${e=>e.disabled?"none":"inherit"};
+
+ svg {
+ margin-left: 0.3rem;
+ font-size: 60%;
+ }
+
+ &:hover {
+ color: ${e=>e.theme.colors.mainLight};
+ text-decoration: underline;
+ }
+ &:active {
+ color: ${e=>e.theme.colors.mainDark};
+ }
+`,$e=C9;function R9({subject:e,untabbable:t}){let r=xe(e,{allowIncomplete:!0}),n=De(r),[i]=he(r,oe.properties.description);return e?r.loading?d.createElement("span",{about:e,title:`${e} is loading..`},"..."):r.error?d.createElement($e,{subject:e,untabbable:t},d.createElement(nt,{about:e,title:r.getError().message},n)):d.createElement($e,{subject:e,untabbable:t},d.createElement("span",{title:i||null},n)):d.createElement(nt,null,"No subject passed")}var nt=ne.span`
+ color: ${e=>e.theme.colors.alert};
+ line-height: 1em;
+ font-family: monospace;
+ display: block;
+`,ut=R9;var Z3=d.memo(function({subject:t,handleClose:r}){let n=xe(t,{allowIncomplete:!0}),[i]=Gt(),a=De(n),[o]=he(n,oe.properties.description),s=qe(),u=i==t,l=()=>{let f=new URL(t);if(r(),i!=t)if(window.location.origin==f.origin){let h=f.pathname+f.search;s.push(h)}else s.push(Lt(t))};return n.loading?d.createElement(Ku,{clean:!0,onClick:l,disabled:u,resource:t,title:`${t} is loading...`},"loading..."):n.error?d.createElement(Ku,{clean:!0,onClick:l,disabled:u,resource:t},d.createElement(nt,{about:t,title:n.getError().message},t)):d.createElement(Ku,{clean:!0,onClick:l,disabled:u,resource:t},d.createElement("span",{title:o||null},a))});function Hd({style:e}){let{darkMode:t}=We(),r=t?"white":"black";return d.createElement("svg",{style:e,viewBox:"0 0 647 75",fill:"none",xmlns:"http://www.w3.org/2000/svg"},d.createElement("path",{d:"M57.512 58.4H23.712L17.264 74H0L32.448 1.19995H49.088L81.64 74H63.96L57.512 58.4ZM52.208 45.608L40.664 17.736L29.12 45.608H52.208Z",fill:r}),d.createElement("path",{d:"M119.469 71.296C117.875 72.4746 115.899 73.376 113.541 74C111.253 74.5546 108.827 74.832 106.261 74.832C99.6052 74.832 94.4398 73.1333 90.7652 69.736C87.1598 66.3386 85.3572 61.3466 85.3572 54.76V31.776H76.7252V19.296H85.3572V5.67196H101.581V19.296H115.517V31.776H101.581V54.552C101.581 56.9093 102.171 58.7466 103.349 60.064C104.597 61.312 106.331 61.936 108.549 61.936C111.115 61.936 113.299 61.2426 115.101 59.856L119.469 71.296Z",fill:r}),d.createElement("path",{d:"M258.334 17.216C265.337 17.216 270.884 19.296 274.974 23.456C279.134 27.5466 281.214 33.7173 281.214 41.9679V74H264.99V44.464C264.99 40.0266 264.054 36.7333 262.182 34.584C260.38 32.3653 257.78 31.256 254.382 31.256C250.569 31.256 247.553 32.504 245.334 35C243.116 37.4266 242.006 41.0666 242.006 45.92V74H225.782V44.464C225.782 35.6586 222.246 31.256 215.174 31.256C211.43 31.256 208.449 32.504 206.23 35C204.012 37.4266 202.902 41.0666 202.902 45.92V74H186.678V18.048H202.174V24.496C204.254 22.1386 206.785 20.336 209.766 19.088C212.817 17.84 216.145 17.216 219.75 17.216C223.702 17.216 227.273 18.0133 230.462 19.608C233.652 21.1333 236.217 23.3866 238.158 26.368C240.446 23.456 243.324 21.2026 246.79 19.608C250.326 18.0133 254.174 17.216 258.334 17.216Z",fill:r}),d.createElement("path",{d:"M291.596 18.048H307.82V74H291.596V18.048Z",fill:r}),d.createElement("path",{d:"M345.758 74.832C339.795 74.832 334.422 73.6186 329.638 71.192C324.923 68.696 321.214 65.264 318.51 60.896C315.875 56.528 314.558 51.5706 314.558 46.0239C314.558 40.4773 315.875 35.52 318.51 31.152C321.214 26.784 324.923 23.3866 329.638 20.96C334.422 18.464 339.795 17.216 345.758 17.216C351.651 17.216 356.782 18.464 361.15 20.96C365.587 23.3866 368.811 26.888 370.822 31.464L358.238 38.224C355.326 33.0933 351.131 30.528 345.654 30.528C341.424 30.528 337.923 31.9146 335.15 34.688C332.376 37.4613 330.99 41.2399 330.99 46.0239C330.99 50.808 332.376 54.5866 335.15 57.36C337.923 60.1333 341.424 61.52 345.654 61.52C351.2 61.52 355.395 58.9546 358.238 53.824L370.822 60.688C368.811 65.1253 365.587 68.592 361.15 71.088C356.782 73.584 351.651 74.832 345.758 74.832Z",fill:r}),d.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M137.633 17.5725C139.483 22.4964 144.235 26 149.806 26C155.376 26 160.128 22.4964 161.979 17.5725C172.482 22.241 179.806 32.7652 179.806 45C179.806 61.5685 166.374 75 149.806 75C133.237 75 119.806 61.5685 119.806 45C119.806 32.7652 127.13 22.241 137.633 17.5725ZM141.39 16.1965C142.679 19.589 145.961 22 149.806 22C153.65 22 156.932 19.589 158.221 16.1965C155.551 15.4176 152.727 15 149.806 15C146.884 15 144.06 15.4176 141.39 16.1965ZM163.806 45C163.806 52.732 157.538 59 149.806 59C142.074 59 135.806 52.732 135.806 45C135.806 37.268 142.074 31 149.806 31C157.538 31 163.806 37.268 163.806 45Z",fill:r}),d.createElement("path",{d:"M143.442 19.364C139.927 15.8492 139.927 10.1508 143.442 6.63604C146.956 3.12132 152.655 3.12132 156.17 6.63604C157.784 8.25001 158.656 10.3245 158.788 12.4365C158.943 14.9238 158.07 17.4632 156.17 19.364C152.655 22.8787 146.956 22.8787 143.442 19.364Z",fill:"url(#paint0_linear)"}),d.createElement("path",{d:"M415.806 1.19995H448.878C456.782 1.19995 463.75 2.72528 469.782 5.77595C475.883 8.75729 480.598 12.9866 483.926 18.464C487.323 23.9413 489.022 30.32 489.022 37.6C489.022 44.88 487.323 51.2586 483.926 56.736C480.598 62.2133 475.883 66.4773 469.782 69.528C463.75 72.5093 456.782 74 448.878 74H415.806V1.19995ZM448.046 60.168C455.326 60.168 461.115 58.1573 465.414 54.136C469.782 50.0453 471.966 44.5333 471.966 37.6C471.966 30.6666 469.782 25.1893 465.414 21.168C461.115 17.0773 455.326 15.032 448.046 15.032H432.654V60.168H448.046Z",fill:r}),d.createElement("path",{d:"M518.992 17.216C527.658 17.216 534.314 19.296 538.96 23.456C543.605 27.5466 545.928 33.752 545.928 42.072V74H530.744V67.032C527.693 72.232 522.008 74.832 513.688 74.832C509.389 74.832 505.645 74.104 502.456 72.648C499.336 71.192 496.944 69.1813 495.28 66.616C493.616 64.0506 492.784 61.1386 492.784 57.88C492.784 52.68 494.725 48.5893 498.608 45.608C502.56 42.6266 508.626 41.136 516.808 41.136H529.704C529.704 37.6 528.629 34.896 526.48 33.024C524.33 31.0826 521.106 30.112 516.808 30.112C513.826 30.112 510.88 30.5973 507.968 31.568C505.125 32.4693 502.698 33.7173 500.688 35.312L494.864 23.976C497.914 21.8266 501.554 20.1626 505.784 18.9839C510.082 17.8053 514.485 17.216 518.992 17.216ZM517.744 63.912C520.517 63.912 522.978 63.288 525.128 62.04C527.277 60.7226 528.802 58.816 529.704 56.32V50.6H518.576C511.92 50.6 508.592 52.784 508.592 57.152C508.592 59.232 509.389 60.896 510.984 62.144C512.648 63.3226 514.901 63.912 517.744 63.912Z",fill:r}),d.createElement("path",{d:"M592.539 71.296C590.944 72.4746 588.968 73.376 586.611 74C584.323 74.5546 581.896 74.832 579.331 74.832C572.675 74.832 567.51 73.1333 563.835 69.736C560.23 66.3386 558.427 61.3466 558.427 54.76V31.776H549.795V19.296H558.427V5.67196H574.651V19.296H588.587V31.776H574.651V54.552C574.651 56.9093 575.24 58.7466 576.419 60.064C577.667 61.312 579.4 61.936 581.619 61.936C584.184 61.936 586.368 61.2426 588.171 59.856L592.539 71.296Z",fill:r}),d.createElement("path",{d:"M620.054 17.216C628.721 17.216 635.377 19.296 640.022 23.456C644.668 27.5466 646.99 33.752 646.99 42.072V74H631.806V67.032C628.756 72.232 623.07 74.832 614.75 74.832C610.452 74.832 606.708 74.104 603.518 72.648C600.398 71.192 598.006 69.1813 596.342 66.616C594.678 64.0506 593.846 61.1386 593.846 57.88C593.846 52.68 595.788 48.5893 599.67 45.608C603.622 42.6266 609.689 41.136 617.87 41.136H630.766C630.766 37.6 629.692 34.896 627.542 33.024C625.393 31.0826 622.169 30.112 617.87 30.112C614.889 30.112 611.942 30.5973 609.03 31.568C606.188 32.4693 603.761 33.7173 601.75 35.312L595.926 23.976C598.977 21.8266 602.617 20.1626 606.846 18.9839C611.145 17.8053 615.548 17.216 620.054 17.216ZM618.806 63.912C621.58 63.912 624.041 63.288 626.19 62.04C628.34 60.7226 629.865 58.816 630.766 56.32V50.6H619.638C612.982 50.6 609.654 52.784 609.654 57.152C609.654 59.232 610.452 60.896 612.046 62.144C613.71 63.3226 615.964 63.912 618.806 63.912Z",fill:r}),d.createElement("defs",null,d.createElement("linearGradient",{id:"paint0_linear",x1:"156.17",y1:"19.364",x2:"143.442",y2:"6.63604",gradientUnits:"userSpaceOnUse"},d.createElement("stop",{stopColor:"#033049"}),d.createElement("stop",{offset:"1",stopColor:"#00C2FF"}))))}function Vd(){let e=qe();return j(fe,{type:"button",onClick:()=>e.push(Fe.agentSettings),title:"Go the the User Settings page"},"Sign in")}var Ng=600,j9=[{icon:j(es,null),label:"github",helper:"View the source code for this application",onClick:()=>window.open("https://github.com/joepio/atomic-data-browser")},{icon:j(es,null),label:"discord",helper:"Chat with the Atomic Data community",onClick:()=>window.open("https://discord.gg/a72Rv2P")},{icon:j(es,null),label:"docs",helper:"View the Atomic Data documentation",onClick:()=>window.open("https://docs.atomicdata.dev")}];function r8(){let{baseURL:e}=We(),t=qe(),{navbarTop:r,sideBarLocked:n,setSideBarLocked:i}=We(),[a,o]=j3(n),s=P3(),u=Q0(()=>[{icon:j(An,null),label:"new resource",helper:"Create a new Resource, based on a Class (n)",onClick:()=>{t.push(Fe.new)}},{icon:j(ts,null),label:"user settings",helper:"See and edit the current Agent / User (u)",onClick:()=>{t.push(Fe.agentSettings)}},{icon:j(Bd,null),label:"theme settings",helper:"Edit the theme, current Agent, and more. (t)",onClick:()=>{t.push(Fe.themeSettings)}},{icon:j(K3,null),label:"keyboard shortcuts",helper:"View the keyboard shortcuts (?)",onClick:()=>{t.push(Fe.shortcuts)}},{icon:j(Tn,null),label:"about",helper:"Welcome page, tells about this app",onClick:()=>{t.push(Fe.about)}}],[]),l=eo(()=>s.width>Ng,[s]),f=eo(()=>{l()||i(!1)},[l]);return j(I9,null,j(A9,{ref:a,locked:l()&&n,exposed:n||o&&l()},r?j(t8,null):null,j(P9,{handleClickItem:f,key:e}),j(O9,null,j(zg,null,"app"),u.map(h=>j(e8,{key:h.label,...h,handleClickItem:f}))," ",j(zg,null,j(Hd,{style:{height:"1.1rem",maxWidth:"100%"}})),j9.map(h=>j(e8,{key:h.label,...h,handleClickItem:f}))),r?j(T9,null):j(t8,null)),j(L9,{onClick:()=>i(!1),visible:n&&!l()}))}function e8(e){return j(Ku,{key:e.label,title:e.helper,clean:!0,onClick:()=>{e.onClick(),e.handleClickItem()}},e.icon&&j(M9,null,e.icon),e.label)}var P9=X0(function({handleClickItem:t}){let{baseURL:r}=We(),{agent:n}=We(),i=xe(r),[a]=rt(i,J.children),o=De(i),s=qe();return j(yt,null,j(zg,null,j(fe,{clean:!0,title:`Your current baseURL is ${r}`,"data-test":"sidebar-drive-open",onClick:()=>{t(),s.push(Lt(r))},style:{flex:1,textAlign:"left"}},j(D9,{"data-test":"current-drive-title"},o||r," ")),j(fe,{onClick:()=>s.push(Fe.serverSettings),icon:!0,subtle:!0,title:"Set a different Server","data-test":"sidebar-drive-edit"},j(q3,null))),i.isReady()?a.map(u=>j(Z3,{key:u,subject:u,handleClose:t})):i.loading?null:j(F9,null,i.error?i.isUnauthorized()?n?"unauthorized":j(Vd,null):i.error.message:"this should not happen"))}),D9=ne.h2`
+ margin: 0;
+ padding: 0;
+ font-size: 1.4rem;
+ flex: 1;
+`,T9=ne("div")`
+ min-height: 1rem;
+`,t8=ne("div")`
+ min-height: 3rem;
+`,F9=ne(nt)`
+ padding-left: ${e=>e.theme.margin}rem;
+`,A9=ne("div")`
+ z-index: 10;
+ box-sizing: border-box;
+ background: ${e=>e.theme.colors.bg};
+ border-right: solid 1px ${e=>e.theme.colors.bg2};
+ transition: opacity 0.3s, left 0.3s;
+ left: ${e=>e.exposed?"0":-e.theme.sideBarWidth+.5+"rem"};
+ /* When the user is hovering, show half opacity */
+ opacity: ${e=>e.exposed?1:0};
+ height: 100vh;
+ width: ${e=>e.theme.sideBarWidth}rem;
+ position: ${e=>e.locked?"relative":"absolute"};
+ display: flex;
+ flex-direction: column;
+ overflow-y: auto;
+`,zg=ne("div")`
+ margin-top: ${e=>e.theme.margin}rem;
+ margin-bottom: 0.5rem;
+ padding-left: ${e=>e.theme.margin}rem;
+ padding-right: ${e=>e.theme.margin}rem;
+ font-size: 1.4rem;
+ font-weight: bold;
+ display: flex;
+`,O9=ne("div")`
+ margin-top: auto;
+ flex-direction: column;
+ justify-items: flex-end;
+ display: flex;
+ justify-content: end;
+`,I9=ne("div")`
+ position: relative;
+`,L9=ne("div")`
+ position: absolute;
+ left: 0;
+ top: 0;
+ bottom: 0;
+ right: 0;
+ width: 100vw;
+ transition: background-color 0.2s;
+ background-color: ${e=>e.visible?"rgba(0, 0, 0, .5)":"rgba(0, 0, 0, 0.0)"};
+ pointer-events: ${e=>e.visible?"auto":"none"};
+ height: 100%;
+ cursor: pointer;
+ z-index: 1;
+ -webkit-tap-highlight-color: transparent;
+`,Ku=ne(fe)`
+ padding-left: ${e=>e.theme.margin}rem;
+ padding-right: ${e=>e.theme.margin}rem;
+ display: flex;
+ min-height: ${e=>e.theme.margin*.5+1}rem;
+ align-items: center;
+ justify-content: flex-start;
+ color: ${e=>e.theme.colors.textLight};
+ white-space: nowrap;
+ overflow: hidden;
+ text-overflow: ellipsis;
+
+ &:disabled {
+ background-color: ${e=>e.theme.colors.bg1};
+ }
+
+ &:hover,
+ &:focus {
+ background-color: ${e=>e.theme.colors.bg1};
+ color: ${e=>e.theme.colors.text};
+ }
+`,M9=ne.span`
+ display: flex;
+ margin-right: 0.5rem;
+`;var n8=e=>{let[t,r,n]=o3(),[i,a]=Ur("mainColor","#1b50d8"),[o,s]=Ur("navbarTop",!0),[u,l]=Ur("navbarFloating",!1),[f,h]=Ur("sideBarOpen",window.innerWidth>Ng),[m,S]=R2(),[_,b]=x2(),v=y=>{try{S(y),y?.subject&&mt.success("Signed in!"),y===null&&mt.success("Signed out.")}catch(w){mt.error("Agent setting failed: "+w.message),console.error(w)}};return d.createElement(Wd.Provider,{value:{baseURL:_,setBaseURL:b,darkMode:t,darkModeSetting:n,setDarkMode:r,mainColor:i,setMainColor:a,navbarTop:o,setNavbarTop:s,navbarFloating:u,setNavbarFloating:l,sideBarLocked:f,setSideBarLocked:h,agent:m,setAgent:v}},e.children)},We=()=>Tl(Wd),Wd=d.createContext(null);var i8=({children:e})=>{let{mainColor:t,darkMode:r}=Tl(Wd);return d.createElement(X2,{key:t,theme:B9(r,t)},e)},B9=(e,t)=>{let r=e?ei(.2,t):t,n=e?"black":"white",i=e?"white":"black",a=e?"rgba(255,255,255,.15)":"rgba(0,0,0,0.07)",o=e?"rgba(255,255,255,.3)":"rgba(0,0,0,0.2)";return{darkMode:e,fontFamilyHeader:"'Montserrat', 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif",fontFamily:"'Open Sans', 'Helvetica Neue', 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif",boxShadow:`0 0 10px 0px ${a}`,boxShadowIntense:`0 0 22px 0px ${o}`,containerWidth:40,fontSizeBody:1,fontSizeH1:2,sideBarWidth:15,margin:1,radius:"9px",colors:{main:r,mainLight:e?ei(.08)(r):ei(.08)(r),mainDark:e?Zn(.08)(r):Zn(.08)(r),bg:n,bgBody:e?n:Zn(.02)(n),bg1:e?ei(.1)(n):Zn(.05)(n),bg2:e?ei(.3)(n):Zn(.2)(n),text:i,text1:e?Zn(.1)(i):ei(.1)(i),textLight:e?Zn(.4)(i):ei(.4)(i),textLight2:e?Zn(.8)(i):ei(.8)(i),alert:"#cf5b5b"}}},a8=J2`
+
+ body {
+ background-color: ${e=>e.theme.colors.bgBody};
+ color: ${e=>e.theme.colors.text};
+ font-family: ${e=>e.theme.fontFamily};
+ line-height: 1.5em;
+ word-wrap: break-word;
+ overflow-wrap: anywhere;
+ margin: 0;
+ /** Pretty dark mode transition */
+ transition: background .2s ease, border-color .2s ease, color .2s ease;
+ }
+
+ input, button, body {
+ /* transition: background .2s ease, border-color .2s ease, color .2s ease; */
+ /* Don't overflow input elements */
+ overflow-wrap: normal;
+ }
+
+ a {
+ color: ${e=>e.theme.colors.main};
+ }
+
+ h1 {
+ font-size: ${e=>e.theme.fontSizeH1}rem;
+ }
+
+ h2 {
+ font-size: 1.7rem;
+ }
+
+ h1,h2,h3,h4,h5,h6 {
+ margin-bottom: ${e=>e.theme.margin}rem;
+ font-weight: bold;
+ font-family: ${e=>e.theme.fontFamilyHeader};
+ line-height: 1em;
+ margin-top: 0;
+ word-break: break-word;
+ }
+
+ i {
+ font-style: italic;
+ }
+
+ p {
+ margin-top: 0;
+ margin-bottom: ${e=>e.theme.margin}rem;
+ }
+
+ ul {
+ margin-top: 0;
+ margin-bottom: ${e=>e.theme.margin}rem;
+ padding: 0;
+
+ li {
+ list-style-type: disc;
+ margin-left: ${e=>e.theme.margin*2}rem;
+ margin-bottom: ${e=>e.theme.margin/2}rem;
+ }
+ }
+
+ code {
+ background-color: ${e=>e.theme.colors.bg1};
+ padding: 0rem 0.2rem;
+ font-family: Monaco, monospace;
+ font-size: .8em;
+ display: inline-flex;
+ white-space: nowrap;
+ overflow: auto;
+ max-width: 100%;
+ }
+
+ b {
+ font-weight: bold;
+ }
+
+ @keyframes toast-enter {
+ 0% {left:110%;}
+ 100% {left:0;}
+ }
+
+ @keyframes toast-exit {
+ 0% {left:0;}
+ 100% {left:110%;}
+ }
+`;var ze=ne.div`
+ max-width: ${e=>e.theme.containerWidth}rem;
+ margin: auto;
+ padding: ${e=>e.theme.margin}rem;
+ // Extra space for the navbar below
+ padding-bottom: 10rem;
+`,o8=ne.div`
+ padding: ${e=>e.theme.margin}rem;
+ padding-bottom: 10rem;
+`;var $g=typeof navigator!="undefined"?navigator.userAgent.toLowerCase().indexOf("firefox")>0:!1;function Ug(e,t,r){e.addEventListener?e.addEventListener(t,r,!1):e.attachEvent&&e.attachEvent("on".concat(t),function(){r(window.event)})}function s8(e,t){for(var r=t.slice(0,t.length-1),n=0;n=0;)t[r-1]+=",",t.splice(r,1),r=t.lastIndexOf("");return t}function N9(e,t){for(var r=e.length>=t.length?e:t,n=e.length>=t.length?t:e,i=!0,a=0;a=0&&_t.splice(r,1),e.key&&e.key.toLowerCase()==="meta"&&_t.splice(0,_t.length),(t===93||t===224)&&(t=91),t in lr){lr[t]=!1;for(var n in za)za[n]===t&&(nn[n]=!1)}}function W9(e){if(!e)Object.keys(Zt).forEach(function(o){return delete Zt[o]});else if(Array.isArray(e))e.forEach(function(o){o.key&&Hg(o)});else if(typeof e=="object")e.key&&Hg(e);else if(typeof e=="string"){for(var t=arguments.length,r=new Array(t>1?t-1:0),n=1;n1?s8(za,l):[];Zt[m]=Zt[m].map(function(_){var b=i?_.method===i:!0;return b&&_.scope===n&&N9(_.mods,S)?{}:_})}})};function m8(e,t,r){var n;if(t.scope===r||t.scope==="all"){n=t.mods.length>0;for(var i in lr)Object.prototype.hasOwnProperty.call(lr,i)&&(!lr[i]&&t.mods.indexOf(+i)>-1||lr[i]&&t.mods.indexOf(+i)===-1)&&(n=!1);(t.mods.length===0&&!lr[16]&&!lr[18]&&!lr[17]&&!lr[91]||n||t.shortcut==="*")&&t.method(e,t)===!1&&(e.preventDefault?e.preventDefault():e.returnValue=!1,e.stopPropagation&&e.stopPropagation(),e.cancelBubble&&(e.cancelBubble=!0))}}function h8(e){var t=Zt["*"],r=e.keyCode||e.which||e.charCode;if(!!nn.filter.call(this,e)){if((r===93||r===224)&&(r=91),_t.indexOf(r)===-1&&r!==229&&_t.push(r),["ctrlKey","altKey","shiftKey","metaKey"].forEach(function(S){var _=c8[S];e[S]&&_t.indexOf(_)===-1?_t.push(_):!e[S]&&_t.indexOf(_)>-1?_t.splice(_t.indexOf(_),1):S==="metaKey"&&e[S]&&_t.length===3&&(e.ctrlKey||e.shiftKey||e.altKey||(_t=_t.slice(_t.indexOf(_))))}),r in lr){lr[r]=!0;for(var n in za)za[n]===r&&(nn[n]=!0);if(!t)return}for(var i in lr)Object.prototype.hasOwnProperty.call(lr,i)&&(lr[i]=e[c8[i]]);e.getModifierState&&!(e.altKey&&!e.ctrlKey)&&e.getModifierState("AltGraph")&&(_t.indexOf(17)===-1&&_t.push(17),_t.indexOf(18)===-1&&_t.push(18),lr[17]=!0,lr[18]=!0);var a=qu();if(t)for(var o=0;o-1}function nn(e,t,r){_t=[];var n=u8(e),i=[],a="all",o=document,s=0,u=!1,l=!0,f="+";for(r===void 0&&typeof t=="function"&&(r=t),Object.prototype.toString.call(t)==="[object Object]"&&(t.scope&&(a=t.scope),t.element&&(o=t.element),t.keyup&&(u=t.keyup),t.keydown!==void 0&&(l=t.keydown),typeof t.splitKey=="string"&&(f=t.splitKey)),typeof t=="string"&&(a=t);s1&&(i=s8(za,e)),e=e[e.length-1],e=e==="*"?"*":qd(e),e in Zt||(Zt[e]=[]),Zt[e].push({keyup:u,keydown:l,scope:a,mods:i,shortcut:n[s],method:r,key:n[s],splitKey:f});typeof o!="undefined"&&!K9(o)&&window&&(f8.push(o),Ug(o,"keydown",function(h){h8(h)}),Ug(window,"focus",function(){_t=[]}),Ug(o,"keyup",function(h){h8(h),V9(h)}))}var Vg={setScope:p8,getScope:qu,deleteScope:H9,getPressedKeyCodes:z9,isPressed:U9,filter:$9,unbind:W9};for(var Wg in Vg)Object.prototype.hasOwnProperty.call(Vg,Wg)&&(nn[Wg]=Vg[Wg]);typeof window!="undefined"&&(g8=window.hotkeys,nn.noConflict=function(e){return e&&window.hotkeys===nn&&(window.hotkeys=g8),nn},window.hotkeys=nn);var g8;nn.filter=function(){return!0};var v8=function(t,r){var n=t.target,i=n&&n.tagName;return Boolean(i&&r&&r.includes(i))},q9=function(t){return v8(t,["INPUT","TEXTAREA","SELECT"])};function Ae(e,t,r,n){r instanceof Array&&(n=r,r=void 0);var i=r||{},a=i.enableOnTags,o=i.filter,s=i.keyup,u=i.keydown,l=i.filterPreventDefault,f=l===void 0?!0:l,h=i.enabled,m=h===void 0?!0:h,S=i.enableOnContentEditable,_=S===void 0?!1:S,b=d.useRef(null),v=d.useCallback(function(y,w){var x;return o&&!o(y)?!f:q9(y)&&!v8(y,a)||(x=y.target)!=null&&x.isContentEditable&&!_?!0:b.current===null||document.activeElement===b.current?(t(y,w),!0):!1},n?[b,a,o].concat(n):[b,a,o]);return d.useEffect(function(){if(!m){nn.unbind(e,v);return}return s&&u!==!0&&(r.keydown=!1),nn(e,r||{},v),function(){return nn.unbind(e,v)}},[v,e,m]),b}var y8=()=>{let[e,t]=d.useState(window.innerWidth);return d.useEffect(()=>{let r=()=>t(window.innerWidth);return window.addEventListener("resize",r),()=>window.removeEventListener("resize",r)},[]),e};var Gu=G9,Y9=Object.prototype.hasOwnProperty;function G9(){for(var e={},t=0;t{if(Object.prototype.toString.call(e)!=="[object Object]")return!1;let t=Object.getPrototypeOf(e);return t===null||t===Object.prototype},Q9=[].slice,P8=J9;function J9(e,t){var r;return n;function n(){var o=Q9.call(arguments,0),s=e.length>o.length,u;s&&o.push(i);try{u=e.apply(null,o)}catch(l){if(s&&r)throw l;return i(l)}s||(u&&typeof u.then=="function"?u.then(a,i):u instanceof Error?i(u):a(u))}function i(){r||(r=!0,t.apply(null,arguments))}function a(o){i(null,o)}}var A8=T8;T8.wrap=P8;var O8=[].slice;function T8(){var e=[],t={};return t.run=r,t.use=n,t;function r(){var i=-1,a=O8.call(arguments,0,-1),o=arguments[arguments.length-1];if(typeof o!="function")throw new Error("Expected function as last argument, not "+o);s.apply(null,[null].concat(a));function s(u){var l=e[++i],f=O8.call(arguments,0),h=f.slice(1),m=a.length,S=-1;if(u){o(u);return}for(;++Se.length){for(;i--;)if(e.charCodeAt(i)===47){if(o){r=i+1;break}}else n<0&&(o=!0,n=i+1);return n<0?"":e.slice(r,n)}if(t===e)return"";for(a=-1,s=t.length-1;i--;)if(e.charCodeAt(i)===47){if(o){r=i+1;break}}else a<0&&(o=!0,a=i+1),s>-1&&(e.charCodeAt(i)===t.charCodeAt(s--)?s<0&&(n=i):(s=-1,n=a));return r===n?n=a:n<0&&(n=e.length),e.slice(r,n)}function iP(e){var t,r,n;if(Xu(e),!e.length)return".";for(t=-1,n=e.length;--n;)if(e.charCodeAt(n)===47){if(r){t=n;break}}else r||(r=!0);return t<0?e.charCodeAt(0)===47?"/":".":t===1&&e.charCodeAt(0)===47?"//":e.slice(0,t)}function oP(e){var t=-1,r=0,n=-1,i=0,a,o,s;for(Xu(e),s=e.length;s--;){if(o=e.charCodeAt(s),o===47){if(a){r=s+1;break}continue}n<0&&(a=!0,n=s+1),o===46?t<0?t=s:i!==1&&(i=1):t>-1&&(i=-1)}return t<0||n<0||i===0||i===1&&t===n-1&&t===r+1?"":e.slice(t,n)}function uP(){for(var e=-1,t;++e2){if(u=r.lastIndexOf("/"),u!==r.length-1){u<0?(r="",n=0):(r=r.slice(0,u),n=r.length-1-r.lastIndexOf("/")),i=o,a=0;continue}}else if(r.length){r="",n=0,i=o,a=0;continue}}t&&(r=r.length?r+"/..":"..",n=2)}else r.length?r+="/"+e.slice(i+1,o):r=e.slice(i+1,o),n=o-i-1;i=o,a=0}else s===46&&a>-1?a++:a=-1}return r}function Xu(e){if(typeof e!="string")throw new TypeError("Path must be a string. Received "+JSON.stringify(e))}var On={basename:nP,dirname:aP,extname:sP,join:lP,sep:cP},mP=pP;function pP(){return"/"}var hP={cwd:mP},Xd=ni,gP={}.hasOwnProperty,Gg=["history","path","basename","stem","extname","dirname"];ni.prototype.toString=vP;Object.defineProperty(ni.prototype,"path",{get:yP,set:bP});Object.defineProperty(ni.prototype,"dirname",{get:wP,set:SP});Object.defineProperty(ni.prototype,"basename",{get:EP,set:_P});Object.defineProperty(ni.prototype,"extname",{get:kP,set:xP});Object.defineProperty(ni.prototype,"stem",{get:CP,set:RP});function ni(e){var t,r;if(!e)e={};else if(typeof e=="string"||w8(e))e={contents:e};else if("message"in e&&"messages"in e)return e;if(!(this instanceof ni))return new ni(e);for(this.data={},this.messages=[],this.history=[],this.cwd=hP.cwd(),r=-1;++r-1)throw new Error("`extname` cannot contain multiple dots")}this.path=On.join(this.dirname,this.stem+(e||""))}function CP(){return typeof this.path=="string"?On.basename(this.path,this.extname):void 0}function RP(e){Yg(e,"stem"),Xg(e,"stem"),this.path=On.join(this.dirname||"",e+(this.extname||""))}function vP(e){return(this.contents||"").toString(e)}function Xg(e,t){if(e&&e.indexOf(On.sep)>-1)throw new Error("`"+t+"` cannot be a path: did not expect `"+On.sep+"`")}function Yg(e,t){if(!e)throw new Error("`"+t+"` cannot be empty")}function D8(e,t){if(!e)throw new Error("Setting `"+t+"` requires `path` to be set too")}var jP=Xd;Xd.prototype.message=PP;Xd.prototype.info=TP;Xd.prototype.fail=AP;function PP(e,t,r){var n=new eP(e,t,r);return this.path&&(n.name=this.path+":"+n.name,n.file=this.path),n.fatal=!1,this.messages.push(n),n}function AP(){var e=this.message.apply(this,arguments);throw e.fatal=!0,e}function TP(){var e=this.message.apply(this,arguments);return e.fatal=null,e}var Qu=jP,OP=F8().freeze(),IP=[].slice,LP={}.hasOwnProperty,BP=A8().use(MP).use(DP).use(FP);function MP(e,t){t.tree=e.parse(t.file)}function DP(e,t,r){e.run(t.tree,t.file,n);function n(i,a,o){i?r(i):(t.tree=a,t.file=o,r())}}function FP(e,t){var r=e.stringify(t.tree,t.file);r==null||(typeof r=="string"||w8(r)?("value"in t.file&&(t.file.value=r),t.file.contents=r):t.file.result=r)}function F8(){var e=[],t=A8(),r={},n=-1,i;return a.data=s,a.freeze=o,a.attachers=e,a.use=u,a.parse=f,a.stringify=S,a.run=h,a.runSync=m,a.process=_,a.processSync=b,a;function a(){for(var v=F8(),y=-1;++y13&&r<32||r>126&&r<160||r>55295&&r<57344||r>64975&&r<65008||(r&65535)==65535||(r&65535)==65534||r>1114111?"�":$a(r)}var KP=WP;function qP(e){return e<-2}var Ue=qP;function GP(e){return e===-2||e===-1||e===32}var $t=GP;function YP(e,t,r,n){var i=n?n-1:Infinity,a=0;return o;function o(u){return $t(u)?(e.enter(r),s(u)):t(u)}function s(u){return $t(u)&&a++T;)l.containerState=f[W][1],f[W][0].exit.call(l,u);f.length=T}function A(T,M){var W=0;return S={},K;function K(B){return W-1?void 0:4)}function s(u,l,f){return ft(u,u.lazy(this.parser.constructs.flow,l,f),"linePrefix",this.parser.constructs.disable.null.indexOf("codeIndented")>-1?void 0:4)}t.tokenize=r});function eT(e){for(var t=-1,r=0;++ti?0:i+t:t=t>i?i:t,r=r>0?r:0,n.length<1e4)o=Array.from(n),o.unshift(t,r),ev.apply(e,o);else for(r&&ev.apply(e,[t,r]);a-1||is(n.events,"linePrefix")<4?e.interrupt(n.parser.constructs.flow,r,t)(o):t(o)}}var fT=lT,pT=le(function(e,t){Object.defineProperty(t,"__esModule",{value:!0});var r=n;function n(i){var a=this,o=i.attempt(Zu,s,i.attempt(this.parser.constructs.flowInitial,u,ft(i,i.attempt(this.parser.constructs.flow,u,i.attempt(fT,u)),"linePrefix")));return o;function s(l){if(l===null){i.consume(l);return}return i.enter("lineEndingBlank"),i.consume(l),i.exit("lineEndingBlank"),a.currentConstruct=void 0,o}function u(l){if(l===null){i.consume(l);return}return i.enter("lineEnding"),i.consume(l),i.exit("lineEnding"),a.currentConstruct=void 0,o}}t.tokenize=r}),tv=le(function(e,t){Object.defineProperty(t,"__esModule",{value:!0});var r=a("text"),n=a("string"),i={resolveAll:o()};function a(u){return{tokenize:l,resolveAll:o(u==="text"?s:void 0)};function l(f){var h=this,m=this.parser.constructs[u],S=f.attempt(m,_,b);return _;function _(w){return y(w)?S(w):b(w)}function b(w){if(w===null){f.consume(w);return}return f.enter("data"),f.consume(w),v}function v(w){return y(w)?(f.exit("data"),S(w)):(f.consume(w),v)}function y(w){var x=m[w],c=-1;if(w===null)return!0;if(x){for(;++c-1&&(o[0]=o[0].slice(n)),a>0&&o.push(e[i].slice(0,a))),o}var kT=_T;function xT(e,t,r){var n=r?kt(r):{line:1,column:1,offset:0},i={},a=[],o=[],s=[],u={consume:w,enter:x,exit:c,attempt:k(g),check:k(p),interrupt:k(p,{interrupt:!0}),lazy:k(p,{lazy:!0})},l={previous:null,events:[],parser:e,sliceStream:S,sliceSerialize:m,now:_,defineSkip:b,write:h},f=t.tokenize.call(l,u);return t.resolveAll&&a.push(t),n._index=0,n._bufferIndex=-1,l;function h(M){return o=an(o,M),v(),o[o.length-1]!==null?[]:(P(t,0),l.events=rv(a,l.events,l),l.events)}function m(M){return ET(S(M))}function S(M){return kT(o,M)}function _(){return kt(n)}function b(M){i[M.line]=M.column,T()}function v(){for(var M,W;n._index-1?X():z.tokenize.call(W?Ju({},l,W):l,u,q,X)(te)}}function q(z){return M(B,G),L}function X(z){return G.restore(),++I<$.length?V($[I]):R}}}function P(M,W){M.resolveAll&&a.indexOf(M)<0&&a.push(M),M.resolve&&In(l.events,W,l.events.length-W,M.resolve(l.events.slice(W),l)),M.resolveTo&&(l.events=M.resolveTo(l.events,l))}function A(){var M=_(),W=l.previous,K=l.currentConstruct,H=l.events.length,L=Array.from(s);return{restore:R,from:H};function R(){n=M,l.previous=W,l.currentConstruct=K,l.events.length=H,s=L,T()}}function T(){n.line in i&&n.column<2&&(n.column=i[n.line],n.offset+=i[n.line]-1)}}var CT=xT;function RT(e){return e<0||e===32}var on=RT,jT=/[!-\/:-@\[-`\{-~\xA1\xA7\xAB\xB6\xB7\xBB\xBF\u037E\u0387\u055A-\u055F\u0589\u058A\u05BE\u05C0\u05C3\u05C6\u05F3\u05F4\u0609\u060A\u060C\u060D\u061B\u061E\u061F\u066A-\u066D\u06D4\u0700-\u070D\u07F7-\u07F9\u0830-\u083E\u085E\u0964\u0965\u0970\u09FD\u0A76\u0AF0\u0C77\u0C84\u0DF4\u0E4F\u0E5A\u0E5B\u0F04-\u0F12\u0F14\u0F3A-\u0F3D\u0F85\u0FD0-\u0FD4\u0FD9\u0FDA\u104A-\u104F\u10FB\u1360-\u1368\u1400\u166E\u169B\u169C\u16EB-\u16ED\u1735\u1736\u17D4-\u17D6\u17D8-\u17DA\u1800-\u180A\u1944\u1945\u1A1E\u1A1F\u1AA0-\u1AA6\u1AA8-\u1AAD\u1B5A-\u1B60\u1BFC-\u1BFF\u1C3B-\u1C3F\u1C7E\u1C7F\u1CC0-\u1CC7\u1CD3\u2010-\u2027\u2030-\u2043\u2045-\u2051\u2053-\u205E\u207D\u207E\u208D\u208E\u2308-\u230B\u2329\u232A\u2768-\u2775\u27C5\u27C6\u27E6-\u27EF\u2983-\u2998\u29D8-\u29DB\u29FC\u29FD\u2CF9-\u2CFC\u2CFE\u2CFF\u2D70\u2E00-\u2E2E\u2E30-\u2E4F\u2E52\u3001-\u3003\u3008-\u3011\u3014-\u301F\u3030\u303D\u30A0\u30FB\uA4FE\uA4FF\uA60D-\uA60F\uA673\uA67E\uA6F2-\uA6F7\uA874-\uA877\uA8CE\uA8CF\uA8F8-\uA8FA\uA8FC\uA92E\uA92F\uA95F\uA9C1-\uA9CD\uA9DE\uA9DF\uAA5C-\uAA5F\uAADE\uAADF\uAAF0\uAAF1\uABEB\uFD3E\uFD3F\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE61\uFE63\uFE68\uFE6A\uFE6B\uFF01-\uFF03\uFF05-\uFF0A\uFF0C-\uFF0F\uFF1A\uFF1B\uFF1F\uFF20\uFF3B-\uFF3D\uFF3F\uFF5B\uFF5D\uFF5F-\uFF65]/,PT=jT;function TT(e){return t;function t(r){return e.test($a(r))}}var Yi=TT,AT=Yi(PT),OT=AT,IT=Yi(/\s/),LT=IT;function MT(e){if(e===null||on(e)||LT(e))return 1;if(OT(e))return 2}var W8=MT;function DT(e,t){return e.column+=t,e.offset+=t,e._bufferIndex+=t,e}var K8=DT,NT={name:"attention",tokenize:BT,resolveAll:FT};function FT(e,t){for(var r=-1,n,i,a,o,s,u,l,f;++r1&&e[r][1].end.offset-e[r][1].start.offset>1?2:1,o={type:u>1?"strongSequence":"emphasisSequence",start:K8(kt(e[n][1].end),-u),end:kt(e[n][1].end)},s={type:u>1?"strongSequence":"emphasisSequence",start:kt(e[r][1].start),end:K8(kt(e[r][1].start),u)},a={type:u>1?"strongText":"emphasisText",start:kt(e[n][1].end),end:kt(e[r][1].start)},i={type:u>1?"strong":"emphasis",start:kt(o.start),end:kt(s.end)},e[n][1].end=kt(o.start),e[r][1].start=kt(s.end),l=[],e[n][1].end.offset-e[n][1].start.offset&&(l=an(l,[["enter",e[n][1],t],["exit",e[n][1],t]])),l=an(l,[["enter",i,t],["enter",o,t],["exit",o,t],["enter",a,t]]),l=an(l,rv(t.parser.constructs.insideSpan.null,e.slice(n+1,r),t)),l=an(l,[["exit",a,t],["enter",s,t],["exit",s,t],["exit",i,t]]),e[r][1].end.offset-e[r][1].start.offset?(f=2,l=an(l,[["enter",e[r][1],t],["exit",e[r][1],t]])):f=0,In(e,n-1,r-n+3,l),r=n+l.length-f-2;break}}for(r=-1;++r-1?void 0:4)}function YT(e){e.exit("blockQuote")}var XT=G8,QT=Yi(/[!-/:-@[-`{-~]/),JT=QT,eA={name:"characterEscape",tokenize:ZT};function ZT(e,t,r){return n;function n(a){return e.enter("characterEscape"),e.enter("escapeMarker"),e.consume(a),e.exit("escapeMarker"),i}function i(a){return JT(a)?(e.enter("characterEscapeValue"),e.consume(a),e.exit("characterEscapeValue"),e.exit("characterEscape"),t):r(a)}}var Y8=eA,Jd,tA=59,X8=rA;function rA(e){var t="&"+e+";",r;return Jd=Jd||document.createElement("i"),Jd.innerHTML=t,r=Jd.textContent,r.charCodeAt(r.length-1)===tA&&e!=="semi"||r===t?!1:r}var nA=Yi(/\d/),av=nA,iA=Yi(/[\dA-Fa-f]/),aA=iA;function oA(e){return e&&typeof e=="object"&&"default"in e?e:{default:e}}var sA=oA(X8),lA={name:"characterReference",tokenize:uA};function uA(e,t,r){var n=this,i=0,a,o;return s;function s(h){return e.enter("characterReference"),e.enter("characterReferenceMarker"),e.consume(h),e.exit("characterReferenceMarker"),u}function u(h){return h===35?(e.enter("characterReferenceMarkerNumeric"),e.consume(h),e.exit("characterReferenceMarkerNumeric"),l):(e.enter("characterReferenceValue"),a=31,o=bn,f(h))}function l(h){return h===88||h===120?(e.enter("characterReferenceMarkerHexadecimal"),e.consume(h),e.exit("characterReferenceMarkerHexadecimal"),e.enter("characterReferenceValue"),a=6,o=aA,f):(e.enter("characterReferenceValue"),a=7,o=av,f(h))}function f(h){var m;return h===59&&i?(m=e.exit("characterReferenceValue"),o===bn&&!sA.default(n.sliceSerialize(m))?r(h):(e.enter("characterReferenceMarker"),e.consume(h),e.exit("characterReferenceMarker"),e.exit("characterReference"),t)):o(h)&&i++-1?void 0:4);function k(T){return x.enter("codeFencedFence"),x.enter("codeFencedFenceSequence"),P(T)}function P(T){return T===s?(x.consume(T),p++,P):pl?r(y):(e.consume(y),b):y===41?f--?(e.consume(y),b):(e.exit("chunkString"),e.exit(s),e.exit(o),e.exit(n),t(y)):y===null||on(y)?f?r(y):(e.exit("chunkString"),e.exit(s),e.exit(o),e.exit(n),t(y)):iv(y)?r(y):(e.consume(y),y===92?v:b)}function v(y){return y===40||y===41||y===92?(e.consume(y),b):b(y)}}var eS=SA;function EA(e,t,r,n,i,a){var o=this,s=0,u;return l;function l(S){return e.enter(n),e.enter(i),e.consume(S),e.exit(i),e.enter(a),f}function f(S){return S===null||S===91||S===93&&!u||S===94&&!s&&"_hiddenFootnoteSupport"in o.parser.constructs||s>999?r(S):S===93?(e.exit(a),e.enter(i),e.consume(S),e.exit(i),e.exit(n),t):Ue(S)?(e.enter("lineEnding"),e.consume(S),e.exit("lineEnding"),f):(e.enter("chunkString",{contentType:"string"}),h(S))}function h(S){return S===null||S===91||S===93||Ue(S)||s++>999?(e.exit("chunkString"),f(S)):(e.consume(S),u=u||!$t(S),S===92?m:h)}function m(S){return S===91||S===92||S===93?(e.consume(S),s++,h):h(S)}}var tS=EA;function _A(e,t){var r;return n;function n(i){return Ue(i)?(e.enter("lineEnding"),e.consume(i),e.exit("lineEnding"),r=!0,n):$t(i)?ft(e,n,r?"linePrefix":"lineSuffix")(i):t(i)}}var tl=_A;function kA(e,t,r,n,i,a){var o;return s;function s(m){return e.enter(n),e.enter(i),e.consume(m),e.exit(i),o=m===40?41:m,u}function u(m){return m===o?(e.enter(i),e.consume(m),e.exit(i),e.exit(n),t):(e.enter(a),l(m))}function l(m){return m===o?(e.exit(a),u(o)):m===null?r(m):Ue(m)?(e.enter("lineEnding"),e.consume(m),e.exit("lineEnding"),ft(e,l,"linePrefix")):(e.enter("chunkString",{contentType:"string"}),f(m))}function f(m){return m===o||m===null||Ue(m)?(e.exit("chunkString"),l(m)):(e.consume(m),m===92?h:f)}function h(m){return m===o||m===92?(e.consume(m),f):f(m)}}var rS=kA,CA={name:"definition",tokenize:xA},jA={tokenize:RA,partial:!0};function xA(e,t,r){var n=this,i;return a;function a(u){return e.enter("definition"),tS.call(n,e,o,r,"definitionLabel","definitionLabelMarker","definitionLabelString")(u)}function o(u){return i=ns(n.sliceSerialize(n.events[n.events.length-1][1]).slice(1,-1)),u===58?(e.enter("definitionMarker"),e.consume(u),e.exit("definitionMarker"),tl(e,eS(e,e.attempt(jA,ft(e,s,"whitespace"),ft(e,s,"whitespace")),r,"definitionDestination","definitionDestinationLiteral","definitionDestinationLiteralMarker","definitionDestinationRaw","definitionDestinationString"))):r(u)}function s(u){return u===null||Ue(u)?(e.exit("definition"),n.parser.defined.indexOf(i)<0&&n.parser.defined.push(i),t(u)):r(u)}}function RA(e,t,r){return n;function n(o){return on(o)?tl(e,i)(o):r(o)}function i(o){return o===34||o===39||o===40?rS(e,ft(e,a,"whitespace"),r,"definitionTitle","definitionTitleMarker","definitionTitleString")(o):r(o)}function a(o){return o===null||Ue(o)?t(o):r(o)}}var PA=CA,AA={name:"hardBreakEscape",tokenize:TA};function TA(e,t,r){return n;function n(a){return e.enter("hardBreakEscape"),e.enter("escapeMarker"),e.consume(a),i}function i(a){return Ue(a)?(e.exit("escapeMarker"),e.exit("hardBreakEscape"),t(a)):r(a)}}var OA=AA,MA={name:"headingAtx",tokenize:LA,resolve:IA};function IA(e,t){var r=e.length-2,n=3,i,a;return e[n][1].type==="whitespace"&&(n+=2),r-2>n&&e[r][1].type==="whitespace"&&(r-=2),e[r][1].type==="atxHeadingSequence"&&(n===r-1||r-4>n&&e[r-2][1].type==="whitespace")&&(r-=n+1===r?2:4),r>n&&(i={type:"atxHeadingText",start:e[n][1].start,end:e[r][1].end},a={type:"chunkText",start:e[n][1].start,end:e[r][1].end,contentType:"text"},In(e,n,r-n+1,[["enter",i,t],["enter",a,t],["exit",a,t],["exit",i,t]])),e}function LA(e,t,r){var n=this,i=0;return a;function a(f){return e.enter("atxHeading"),e.enter("atxHeadingSequence"),o(f)}function o(f){return f===35&&i++<6?(e.consume(f),o):f===null||on(f)?(e.exit("atxHeadingSequence"),n.interrupt?t(f):s(f)):r(f)}function s(f){return f===35?(e.enter("atxHeadingSequence"),u(f)):f===null||Ue(f)?(e.exit("atxHeading"),t(f)):$t(f)?ft(e,s,"whitespace")(f):(e.enter("atxHeadingText"),l(f))}function u(f){return f===35?(e.consume(f),u):(e.exit("atxHeadingSequence"),s(f))}function l(f){return f===null||f===35||on(f)?(e.exit("atxHeadingText"),s(f)):(e.consume(f),l)}}var DA=MA,FA=["address","article","aside","base","basefont","blockquote","body","caption","center","col","colgroup","dd","details","dialog","dir","div","dl","dt","fieldset","figcaption","figure","footer","form","frame","frameset","h1","h2","h3","h4","h5","h6","head","header","hr","html","iframe","legend","li","link","main","menu","menuitem","nav","noframes","ol","optgroup","option","p","param","section","source","summary","table","tbody","td","tfoot","th","thead","title","tr","track","ul"],BA=FA,NA=["pre","script","style","textarea"],nS=NA,UA={name:"htmlFlow",tokenize:$A,resolveTo:zA,concrete:!0},VA={tokenize:HA,partial:!0};function zA(e){for(var t=e.length;t--&&!(e[t][0]==="enter"&&e[t][1].type==="htmlFlow"););return t>1&&e[t-2][1].type==="linePrefix"&&(e[t][1].start=e[t-2][1].start,e[t+1][1].start=e[t-2][1].start,e.splice(t-2,2)),e}function $A(e,t,r){var n=this,i,a,o,s,u;return l;function l(E){return e.enter("htmlFlow"),e.enter("htmlFlowData"),e.consume(E),f}function f(E){return E===33?(e.consume(E),h):E===47?(e.consume(E),_):E===63?(e.consume(E),i=3,n.interrupt?t:I):Ln(E)?(e.consume(E),o=$a(E),a=!0,b):r(E)}function h(E){return E===45?(e.consume(E),i=2,m):E===91?(e.consume(E),i=5,o="CDATA[",s=0,S):Ln(E)?(e.consume(E),i=4,n.interrupt?t:I):r(E)}function m(E){return E===45?(e.consume(E),n.interrupt?t:I):r(E)}function S(E){return E===o.charCodeAt(s++)?(e.consume(E),s===o.length?n.interrupt?t:M:S):r(E)}function _(E){return Ln(E)?(e.consume(E),o=$a(E),b):r(E)}function b(E){return E===null||E===47||E===62||on(E)?E!==47&&a&&nS.indexOf(o.toLowerCase())>-1?(i=1,n.interrupt?t(E):M(E)):BA.indexOf(o.toLowerCase())>-1?(i=6,E===47?(e.consume(E),v):n.interrupt?t(E):M(E)):(i=7,n.interrupt?r(E):a?w(E):y(E)):E===45||bn(E)?(e.consume(E),o+=$a(E),b):r(E)}function v(E){return E===62?(e.consume(E),n.interrupt?t:M):r(E)}function y(E){return $t(E)?(e.consume(E),y):A(E)}function w(E){return E===47?(e.consume(E),A):E===58||E===95||Ln(E)?(e.consume(E),x):$t(E)?(e.consume(E),w):A(E)}function x(E){return E===45||E===46||E===58||E===95||bn(E)?(e.consume(E),x):c(E)}function c(E){return E===61?(e.consume(E),g):$t(E)?(e.consume(E),c):w(E)}function g(E){return E===null||E===60||E===61||E===62||E===96?r(E):E===34||E===39?(e.consume(E),u=E,p):$t(E)?(e.consume(E),g):(u=void 0,k(E))}function p(E){return E===u?(e.consume(E),P):E===null||Ue(E)?r(E):(e.consume(E),p)}function k(E){return E===null||E===34||E===39||E===60||E===61||E===62||E===96||on(E)?c(E):(e.consume(E),k)}function P(E){return E===47||E===62||$t(E)?w(E):r(E)}function A(E){return E===62?(e.consume(E),T):r(E)}function T(E){return $t(E)?(e.consume(E),T):E===null||Ue(E)?M(E):r(E)}function M(E){return E===45&&i===2?(e.consume(E),H):E===60&&i===1?(e.consume(E),L):E===62&&i===4?(e.consume(E),B):E===63&&i===3?(e.consume(E),I):E===93&&i===5?(e.consume(E),$):Ue(E)&&(i===6||i===7)?e.check(VA,B,W)(E):E===null||Ue(E)?W(E):(e.consume(E),M)}function W(E){return e.exit("htmlFlowData"),K(E)}function K(E){return E===null?G(E):Ue(E)?(e.enter("lineEnding"),e.consume(E),e.exit("lineEnding"),K):(e.enter("htmlFlowData"),M(E))}function H(E){return E===45?(e.consume(E),I):M(E)}function L(E){return E===47?(e.consume(E),o="",R):M(E)}function R(E){return E===62&&nS.indexOf(o.toLowerCase())>-1?(e.consume(E),B):Ln(E)&&o.length<8?(e.consume(E),o+=$a(E),R):M(E)}function $(E){return E===93?(e.consume(E),I):M(E)}function I(E){return E===62?(e.consume(E),B):M(E)}function B(E){return E===null||Ue(E)?(e.exit("htmlFlowData"),G(E)):(e.consume(E),B)}function G(E){return e.exit("htmlFlow"),t(E)}}function HA(e,t,r){return n;function n(i){return e.exit("htmlFlowData"),e.enter("lineEndingBlank"),e.consume(i),e.exit("lineEndingBlank"),e.attempt(Zu,t,r)}}var WA=UA,qA={name:"htmlText",tokenize:KA};function KA(e,t,r){var n=this,i,a,o,s;return u;function u(E){return e.enter("htmlText"),e.enter("htmlTextData"),e.consume(E),l}function l(E){return E===33?(e.consume(E),f):E===47?(e.consume(E),k):E===63?(e.consume(E),g):Ln(E)?(e.consume(E),T):r(E)}function f(E){return E===45?(e.consume(E),h):E===91?(e.consume(E),a="CDATA[",o=0,v):Ln(E)?(e.consume(E),c):r(E)}function h(E){return E===45?(e.consume(E),m):r(E)}function m(E){return E===null||E===62?r(E):E===45?(e.consume(E),S):_(E)}function S(E){return E===null||E===62?r(E):_(E)}function _(E){return E===null?r(E):E===45?(e.consume(E),b):Ue(E)?(s=_,I(E)):(e.consume(E),_)}function b(E){return E===45?(e.consume(E),G):_(E)}function v(E){return E===a.charCodeAt(o++)?(e.consume(E),o===a.length?y:v):r(E)}function y(E){return E===null?r(E):E===93?(e.consume(E),w):Ue(E)?(s=y,I(E)):(e.consume(E),y)}function w(E){return E===93?(e.consume(E),x):y(E)}function x(E){return E===62?G(E):E===93?(e.consume(E),x):y(E)}function c(E){return E===null||E===62?G(E):Ue(E)?(s=c,I(E)):(e.consume(E),c)}function g(E){return E===null?r(E):E===63?(e.consume(E),p):Ue(E)?(s=g,I(E)):(e.consume(E),g)}function p(E){return E===62?G(E):g(E)}function k(E){return Ln(E)?(e.consume(E),P):r(E)}function P(E){return E===45||bn(E)?(e.consume(E),P):A(E)}function A(E){return Ue(E)?(s=A,I(E)):$t(E)?(e.consume(E),A):G(E)}function T(E){return E===45||bn(E)?(e.consume(E),T):E===47||E===62||on(E)?M(E):r(E)}function M(E){return E===47?(e.consume(E),G):E===58||E===95||Ln(E)?(e.consume(E),W):Ue(E)?(s=M,I(E)):$t(E)?(e.consume(E),M):G(E)}function W(E){return E===45||E===46||E===58||E===95||bn(E)?(e.consume(E),W):K(E)}function K(E){return E===61?(e.consume(E),H):Ue(E)?(s=K,I(E)):$t(E)?(e.consume(E),K):M(E)}function H(E){return E===null||E===60||E===61||E===62||E===96?r(E):E===34||E===39?(e.consume(E),i=E,L):Ue(E)?(s=H,I(E)):$t(E)?(e.consume(E),H):(e.consume(E),i=void 0,$)}function L(E){return E===i?(e.consume(E),R):E===null?r(E):Ue(E)?(s=L,I(E)):(e.consume(E),L)}function R(E){return E===62||E===47||on(E)?M(E):r(E)}function $(E){return E===null||E===34||E===39||E===60||E===61||E===96?r(E):E===62||on(E)?M(E):(e.consume(E),$)}function I(E){return e.exit("htmlTextData"),e.enter("lineEnding"),e.consume(E),e.exit("lineEnding"),ft(e,B,"linePrefix",n.parser.constructs.disable.null.indexOf("codeIndented")>-1?void 0:4)}function B(E){return e.enter("htmlTextData"),s(E)}function G(E){return E===62?(e.consume(E),e.exit("htmlTextData"),e.exit("htmlText"),t):r(E)}}var GA=qA,JA={name:"labelEnd",tokenize:QA,resolveTo:XA,resolveAll:YA},eO={tokenize:ZA},rO={tokenize:tO},iO={tokenize:nO};function YA(e){for(var t=-1,r;++t-1,e.enter("labelEnd"),e.enter("labelMarker"),e.consume(f),e.exit("labelMarker"),e.exit("labelEnd"),u):r(f)}function u(f){return f===40?e.attempt(eO,t,o?t:l)(f):f===91?e.attempt(rO,t,o?e.attempt(iO,t,l):l)(f):o?t(f):l(f)}function l(f){return a._balanced=!0,r(f)}}function ZA(e,t,r){return n;function n(u){return e.enter("resource"),e.enter("resourceMarker"),e.consume(u),e.exit("resourceMarker"),tl(e,i)}function i(u){return u===41?s(u):eS(e,a,r,"resourceDestination","resourceDestinationLiteral","resourceDestinationLiteralMarker","resourceDestinationRaw","resourceDestinationString",3)(u)}function a(u){return on(u)?tl(e,o)(u):s(u)}function o(u){return u===34||u===39||u===40?rS(e,tl(e,s),r,"resourceTitle","resourceTitleMarker","resourceTitleString")(u):s(u)}function s(u){return u===41?(e.enter("resourceMarker"),e.consume(u),e.exit("resourceMarker"),e.exit("resource"),t):r(u)}}function tO(e,t,r){var n=this;return i;function i(o){return tS.call(n,e,a,r,"reference","referenceMarker","referenceString")(o)}function a(o){return n.parser.defined.indexOf(ns(n.sliceSerialize(n.events[n.events.length-1][1]).slice(1,-1)))<0?r(o):t(o)}}function nO(e,t,r){return n;function n(a){return e.enter("reference"),e.enter("referenceMarker"),e.consume(a),e.exit("referenceMarker"),i}function i(a){return a===93?(e.enter("referenceMarker"),e.consume(a),e.exit("referenceMarker"),e.exit("reference"),t):r(a)}}var sv=JA,oO={name:"labelStartImage",tokenize:aO,resolveAll:sv.resolveAll};function aO(e,t,r){var n=this;return i;function i(s){return e.enter("labelImage"),e.enter("labelImageMarker"),e.consume(s),e.exit("labelImageMarker"),a}function a(s){return s===91?(e.enter("labelMarker"),e.consume(s),e.exit("labelMarker"),e.exit("labelImage"),o):r(s)}function o(s){return s===94&&"_hiddenFootnoteSupport"in n.parser.constructs?r(s):t(s)}}var sO=oO,lO={name:"labelStartLink",tokenize:uO,resolveAll:sv.resolveAll};function uO(e,t,r){var n=this;return i;function i(o){return e.enter("labelLink"),e.enter("labelMarker"),e.consume(o),e.exit("labelMarker"),e.exit("labelLink"),a}function a(o){return o===94&&"_hiddenFootnoteSupport"in n.parser.constructs?r(o):t(o)}}var cO=lO,fO={name:"lineEnding",tokenize:dO};function dO(e,t){return r;function r(n){return e.enter("lineEnding"),e.consume(n),e.exit("lineEnding"),ft(e,t,"linePrefix")}}var uv=fO,mO={name:"thematicBreak",tokenize:pO};function pO(e,t,r){var n=0,i;return a;function a(u){return e.enter("thematicBreak"),i=u,o(u)}function o(u){return u===i?(e.enter("thematicBreakSequence"),s(u)):$t(u)?ft(e,o,"whitespace")(u):n<3||u!==null&&!Ue(u)?r(u):(e.exit("thematicBreak"),t(u))}function s(u){return u===i?(e.consume(u),n++,s):(e.exit("thematicBreakSequence"),o(u))}}var Zd=mO,iS={name:"list",tokenize:hO,continuation:{tokenize:gO},exit:vO},bO={tokenize:yO,partial:!0},SO={tokenize:wO,partial:!0};function hO(e,t,r){var n=this,i=is(n.events,"linePrefix"),a=0;return o;function o(m){var S=n.containerState.type||(m===42||m===43||m===45?"listUnordered":"listOrdered");if(S==="listUnordered"?!n.containerState.marker||m===n.containerState.marker:av(m)){if(n.containerState.type||(n.containerState.type=S,e.enter(S,{_container:!0})),S==="listUnordered")return e.enter("listItemPrefix"),m===42||m===45?e.check(Zd,r,u)(m):u(m);if(!n.interrupt||m===49)return e.enter("listItemPrefix"),e.enter("listItemValue"),s(m)}return r(m)}function s(m){return av(m)&&++a<10?(e.consume(m),s):(!n.interrupt||a<2)&&(n.containerState.marker?m===n.containerState.marker:m===41||m===46)?(e.exit("listItemValue"),u(m)):r(m)}function u(m){return e.enter("listItemMarker"),e.consume(m),e.exit("listItemMarker"),n.containerState.marker=n.containerState.marker||m,e.check(Zu,n.interrupt?r:l,e.attempt(bO,h,f))}function l(m){return n.containerState.initialBlankLine=!0,i++,h(m)}function f(m){return $t(m)?(e.enter("listItemPrefixWhitespace"),e.consume(m),e.exit("listItemPrefixWhitespace"),h):r(m)}function h(m){return n.containerState.size=i+H8(n.sliceStream(e.exit("listItemPrefix"))),t(m)}}function gO(e,t,r){var n=this;return n.containerState._closeFlow=void 0,e.check(Zu,i,a);function i(s){return n.containerState.furtherBlankLines=n.containerState.furtherBlankLines||n.containerState.initialBlankLine,ft(e,t,"listItemIndent",n.containerState.size+1)(s)}function a(s){return n.containerState.furtherBlankLines||!$t(s)?(n.containerState.furtherBlankLines=n.containerState.initialBlankLine=void 0,o(s)):(n.containerState.furtherBlankLines=n.containerState.initialBlankLine=void 0,e.attempt(SO,t,o)(s))}function o(s){return n.containerState._closeFlow=!0,n.interrupt=void 0,ft(e,e.attempt(iS,t,r),"linePrefix",n.parser.constructs.disable.null.indexOf("codeIndented")>-1?void 0:4)(s)}}function wO(e,t,r){var n=this;return ft(e,i,"listItemIndent",n.containerState.size+1);function i(a){return is(n.events,"listItemIndent")===n.containerState.size?t(a):r(a)}}function vO(e){e.exit(this.containerState.type)}function yO(e,t,r){var n=this;return ft(e,i,"listItemPrefixWhitespace",n.parser.constructs.disable.null.indexOf("codeIndented")>-1?void 0:4+1);function i(a){return $t(a)||!is(n.events,"listItemPrefixWhitespace")?r(a):t(a)}}var Wr=iS,kO={name:"setextUnderline",tokenize:_O,resolveTo:EO};function EO(e,t){for(var r=e.length,n,i,a,o;r--;)if(e[r][0]==="enter"){if(e[r][1].type==="content"){n=r;break}e[r][1].type==="paragraph"&&(i=r)}else e[r][1].type==="content"&&e.splice(r,1),!a&&e[r][1].type==="definition"&&(a=r);return o={type:"setextHeading",start:kt(e[i][1].start),end:kt(e[e.length-1][1].end)},e[i][1].type="setextHeadingText",a?(e.splice(i,0,["enter",o,t]),e.splice(a+1,0,["exit",e[n][1],t]),e[n][1].end=kt(e[a][1].end)):e[n][1]=o,e.push(["exit",o,t]),e}function _O(e,t,r){for(var n=this,i=n.events.length,a,o;i--;)if(n.events[i][1].type!=="lineEnding"&&n.events[i][1].type!=="linePrefix"&&n.events[i][1].type!=="content"){o=n.events[i][1].type==="paragraph";break}return s;function s(f){return!n.lazy&&(n.interrupt||o)?(e.enter("setextHeadingLine"),e.enter("setextHeadingLineSequence"),a=f,u(f)):r(f)}function u(f){return f===a?(e.consume(f),u):(e.exit("setextHeadingLineSequence"),ft(e,l,"lineSuffix")(f))}function l(f){return f===null||Ue(f)?(e.exit("setextHeadingLine"),t(f)):r(f)}}var aS=kO,xO=le(function(e,t){Object.defineProperty(t,"__esModule",{value:!0});var r={42:Wr,43:Wr,45:Wr,48:Wr,49:Wr,50:Wr,51:Wr,52:Wr,53:Wr,54:Wr,55:Wr,56:Wr,57:Wr,62:XT},n={91:PA},i={"-2":ov,"-1":ov,32:ov},a={35:DA,42:Zd,45:[aS,Zd],60:WA,61:aS,95:Zd,96:J8,126:J8},o={38:Q8,92:Y8},s={"-5":uv,"-4":uv,"-3":uv,33:sO,38:Q8,42:nv,60:[KT,GA],91:cO,92:[OA,Y8],93:sv,95:nv,96:wA},u={null:[nv,tv.resolver]},l={null:[]};t.contentInitial=n,t.disable=l,t.document=r,t.flow=a,t.flowInitial=i,t.insideSpan=u,t.string=o,t.text=s});function CO(e){var t=e||{},r={defined:[],constructs:yT([xO].concat(el(t.extensions))),content:n(XP),document:n(ZP),flow:n(pT),string:n(tv.string),text:n(tv.text)};return r;function n(i){return a;function a(o){return CT(r,i,o)}}}var RO=CO,oS=/[\0\t\n\r]/g;function jO(){var e=!0,t=1,r="",n;return i;function i(a,o,s){var u=[],l,f,h,m,S;for(a=r+a.toString(o),h=0,r="",e&&(a.charCodeAt(0)===65279&&h++,e=void 0);h-1&&(K.call(this,Q),H.call(this,Q))}function R(){o("atHardBreak",!0)}function $(){var Q=this.resume();this.stack[this.stack.length-1].value=Q}function I(){var Q=this.resume();this.stack[this.stack.length-1].value=Q}function B(){var Q=this.resume();this.stack[this.stack.length-1].value=Q}function G(){var Q=this.stack[this.stack.length-1];s("inReference")?(Q.type+="Reference",Q.referenceType=s("referenceType")||"shortcut",delete Q.url,delete Q.title):(delete Q.identifier,delete Q.label,delete Q.referenceType),o("referenceType")}function E(){var Q=this.stack[this.stack.length-1];s("inReference")?(Q.type+="Reference",Q.referenceType=s("referenceType")||"shortcut",delete Q.url,delete Q.title):(delete Q.identifier,delete Q.label,delete Q.referenceType),o("referenceType")}function N(Q){this.stack[this.stack.length-2].identifier=ns(this.sliceSerialize(Q)).toLowerCase()}function V(){var Q=this.stack[this.stack.length-1],Re=this.resume();this.stack[this.stack.length-1].label=Re,o("inReference",!0),this.stack[this.stack.length-1].type==="link"?this.stack[this.stack.length-1].children=Q.children:this.stack[this.stack.length-1].alt=Re}function q(){var Q=this.resume();this.stack[this.stack.length-1].url=Q}function X(){var Q=this.resume();this.stack[this.stack.length-1].title=Q}function z(){o("inReference")}function ie(){o("referenceType","collapsed")}function te(Q){var Re=this.resume();this.stack[this.stack.length-1].label=Re,this.stack[this.stack.length-1].identifier=ns(this.sliceSerialize(Q)).toLowerCase(),o("referenceType","full")}function ke(Q){o("characterReferenceType",Q.type)}function Se(Q){var Re=this.sliceSerialize(Q),Ye=s("characterReferenceType"),Je,Yt;Ye?(Je=KP(Re,Ye==="characterReferenceMarkerNumeric"?10:16),o("characterReferenceType")):Je=X8(Re),Yt=this.stack.pop(),Yt.value+=Je,Yt.position.end=u(Q.end)}function Pe(Q){H.call(this,Q),this.stack[this.stack.length-1].url=this.sliceSerialize(Q)}function _e(Q){H.call(this,Q),this.stack[this.stack.length-1].url="mailto:"+this.sliceSerialize(Q)}function it(){return{type:"blockquote",children:[]}}function gt(){return{type:"code",lang:null,meta:null,value:""}}function Te(){return{type:"inlineCode",value:""}}function pt(){return{type:"definition",identifier:"",label:null,title:null,url:""}}function se(){return{type:"emphasis",children:[]}}function ye(){return{type:"heading",depth:void 0,children:[]}}function tt(){return{type:"break"}}function He(){return{type:"html",value:""}}function xt(){return{type:"image",title:null,url:"",alt:null}}function Bt(){return{type:"link",title:null,url:"",children:[]}}function ot(Q){return{type:"list",ordered:Q.type==="listOrdered",start:null,spread:Q._spread,children:[]}}function we(Q){return{type:"listItem",spread:Q._spread,checked:null,children:[]}}function Qe(){return{type:"paragraph",children:[]}}function kr(){return{type:"strong",children:[]}}function Mt(){return{type:"text",value:""}}function vt(){return{type:"thematicBreak"}}}function MO(e,t){for(var r=-1;++r":""))+")"),m;function m(){var S=l.concat(s),_=[],b,v;if((!t||a(s,u,l[l.length-1]||null))&&(_=QO(r(s,l)),_[0]===lv))return _;if(s.children&&_[0]!==lS)for(v=(n?s.children.length:-1)+i;v>-1&&v$/i,rI=/^<(\/?)([a-z]+)\s*>$/,sI=function(e){var t,r;return nf(e,"html",function(n,i,a){r!==a&&(t=[],r=a);var o=aI(n);if(o)return a.children.splice(i,1,{type:cS,tag:o,position:n.position}),!0;var s=iI(n);if(!s)return!0;var u=nI(t,s.tag);return u?a.children.splice(i,0,oI(s,u,a)):s.opening||t.push(s),!0},!0),e};function nI(e,t){for(var r=e.length;r--;)if(e[r].tag===t)return e.splice(r,1)[0];return!1}function iI(e,t){var r=e.value.match(rI);return r?{tag:r[2],opening:!r[1],node:e}:!1}function aI(e){var t=e.value.match(tI);return t?t[1]:!1}function oI(e,t,r){var n=r.children.indexOf(e.node),i=r.children.indexOf(t.node),a=r.children.splice(n,i-n+1),o=a.slice(1,-1);return{type:cS,children:o,tag:e.tag,position:{start:e.node.position.start,end:t.node.position.end,indent:[]}}}var uI=[].splice,lI=function(e,t){return dS(r,t);function r(n,i,a){return!e.includes(n.type)}},cI=dS;function dS(e,t){return r;function r(i){return nf(i,n),i}function n(i,a,o){if(o&&!e(i,a,o)){var s=[a,1];return t==="unwrap"&&i.children&&(s=s.concat(i.children)),uI.apply(o.children,s),a}}}var fS={ofType:lI,ifNotMatch:cI};function af(e,t){var r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},n=arguments.length>3&&arguments[3]!==void 0?arguments[3]:0,i=t.renderers[e.type];e.position||(e.position={start:{line:null,column:null,offset:null},end:{line:null,column:null,offset:null}});var a=e.position.start,o=[e.type,a.line,a.column,n].join("-");if(!qn.isValidElementType(i))throw new Error("Renderer for type `".concat(e.type,"` not defined or is not renderable"));var s=dI(e,o,t,i,r,n);return d.createElement(i,s,s.children||u()||void 0);function u(){return e.children&&e.children.map(function(l,f){return af(l,t,{node:e,props:s},f)})}}function dI(e,t,r,n,i,a){var o={key:t},s=typeof n=="string"||n===d.Fragment;r.sourcePos&&e.position&&(o["data-sourcepos"]=pI(e.position)),r.rawSourcePos&&!s&&(o.sourcePosition=e.position),r.includeNodeIndex&&i.node&&i.node.children&&!s&&(o.index=i.node.children.indexOf(e),o.parentChildCount=i.node.children.length);var u=e.identifier!==null&&e.identifier!==void 0?r.definitions[e.identifier.toUpperCase()]||{}:null;switch(e.type){case"root":ii(o,{className:r.className});break;case"text":o.nodeKey=t,o.children=e.value;break;case"heading":o.level=e.depth;break;case"list":o.start=e.start,o.ordered=e.ordered,o.spread=e.spread,o.depth=e.depth;break;case"listItem":o.checked=e.checked,o.spread=e.spread,o.ordered=e.ordered,o.index=e.index,o.children=mI(e,i).map(function(f,h){return af(f,r,{node:e,props:o},h)});break;case"definition":ii(o,{identifier:e.identifier,title:e.title,url:e.url});break;case"code":ii(o,{language:e.lang&&e.lang.split(/\s/,1)[0]});break;case"inlineCode":o.children=e.value,o.inline=!0;break;case"link":ii(o,{title:e.title||void 0,target:typeof r.linkTarget=="function"?r.linkTarget(e.url,e.children,e.title):r.linkTarget,href:r.transformLinkUri?r.transformLinkUri(e.url,e.children,e.title):e.url});break;case"image":ii(o,{src:r.transformImageUri?r.transformImageUri(e.url,e.children,e.title,e.alt):e.url,alt:e.alt||"",title:e.title||void 0});break;case"linkReference":ii(o,Gu(u,{href:r.transformLinkUri?r.transformLinkUri(u.href):u.href}));break;case"imageReference":ii(o,{src:r.transformImageUri&&u.href?r.transformImageUri(u.href,e.children,u.title,e.alt):u.href,alt:e.alt||"",title:u.title||void 0});break;case"table":case"tableHead":case"tableBody":o.columnAlignment=e.align;break;case"tableRow":o.isHeader=i.node.type==="tableHead",o.columnAlignment=i.props.columnAlignment;break;case"tableCell":ii(o,{isHeader:i.props.isHeader,align:i.props.columnAlignment[a]});break;case"virtualHtml":o.tag=e.tag;break;case"html":o.isBlock=e.position.start.line!==e.position.end.line,o.allowDangerousHtml=r.allowDangerousHtml,o.escapeHtml=r.escapeHtml,o.skipHtml=r.skipHtml;break;case"parsedHtml":{var l;e.children&&(l=e.children.map(function(f,h){return af(f,r,{node:e,props:o},h)})),o.allowDangerousHtml=r.allowDangerousHtml,o.escapeHtml=r.escapeHtml,o.skipHtml=r.skipHtml,o.element=e.element?fI(e,l):null;break}default:ii(o,Gu(e,{type:void 0,position:void 0,children:void 0}))}return!s&&e.value&&(o.value=e.value),s||(o.node=e),o}function ii(e,t){for(var r in t)typeof t[r]!="undefined"&&(e[r]=t[r])}function fI(e,t){var r=e.element;if(Array.isArray(r)){var n=d.Fragment||"div";return d.createElement(n,null,r)}if(r.props.children||t){var i=d.Children.toArray(r.props.children).concat(t);return d.cloneElement(r,null,i)}return d.cloneElement(r,null)}function pI(e){return[e.start.line,":",e.start.column,"-",e.end.line,":",e.end.column].map(String).join("")}function mI(e,t){var r=t&&t.node?gI(t.node):pS(e);return r?e.children:hI(e)}function hI(e){return e.children.reduce(function(t,r){return t.concat(r.type==="paragraph"?r.children:[r])},[])}function gI(e){for(var t=e.children,r=e.spread,n=-1;!r&&++n1}var vI=af,bI=function(e){return nf(e,"table",yI),e};function yI(e){var t=e.children;e.children=[{type:"tableHead",align:e.align,children:[t[0]],position:t[0].position}],t.length>1&&e.children.push({type:"tableBody",align:e.align,children:t.slice(1),position:{start:t[1].position.start,end:t[t.length-1].position.end}})}var wI=function(t){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return nf(t,"definition",function(n){var i=n.identifier.toUpperCase();i in r||(r[i]={href:n.url,title:n.title})}),r},mS=["http","https","mailto","tel"],hS=function(t){var r=(t||"").trim(),n=r.charAt(0);if(n==="#"||n==="/")return r;var i=r.indexOf(":");if(i===-1)return r;for(var a=mS.length,o=-1;++oo||(o=r.indexOf("#"),o!==-1&&i>o)?r:"javascript:void(0)"},SI=parseInt((d.version||"16").slice(0,2),10)>=16,Lr=d.createElement,cv={break:"br",paragraph:"p",emphasis:"em",strong:"strong",thematicBreak:"hr",blockquote:"blockquote",delete:"del",link:"a",image:"img",linkReference:"a",imageReference:"img",table:of.bind(null,"table"),tableHead:of.bind(null,"thead"),tableBody:of.bind(null,"tbody"),tableRow:of.bind(null,"tr"),tableCell:kI,root:_I,text:EI,list:CI,listItem:RI,definition:II,heading:xI,inlineCode:PI,code:jI,html:TI,virtualHtml:OI,parsedHtml:AI};function EI(e){var t=e.children||"";return SI?t:Lr("span",null,t)}function _I(e){var t=e.className,r=!t&&d.Fragment||"div";return Lr(r,t?{className:t}:null,e.children)}function of(e,t){return Lr(e,Xi(t),t.children)}function kI(e){var t=e.align?{textAlign:e.align}:void 0,r=Xi(e);return Lr(e.isHeader?"th":"td",t?Gu({style:t},r):r,e.children)}function xI(e){return Lr("h".concat(e.level),Xi(e),e.children)}function CI(e){var t=Xi(e);return e.start!==null&&e.start!==1&&e.start!==void 0&&(t.start=e.start.toString()),Lr(e.ordered?"ol":"ul",t,e.children)}function RI(e){var t=null;if(e.checked!==null&&e.checked!==void 0){var r=e.checked;t=Lr("input",{type:"checkbox",checked:r,readOnly:!0})}return Lr("li",Xi(e),t,e.children)}function jI(e){var t=e.language&&"language-".concat(e.language),r=Lr("code",t?{className:t}:null,e.value);return Lr("pre",Xi(e),r)}function PI(e){return Lr("code",Xi(e),e.children)}function TI(e){if(e.skipHtml)return null;var t=e.allowDangerousHtml||e.escapeHtml===!1,r=e.isBlock?"div":"span";if(!t)return Lr(d.Fragment||r,null,e.value);var n={dangerouslySetInnerHTML:{__html:e.value}};return Lr(r,n)}function AI(e){return e["data-sourcepos"]?d.cloneElement(e.element,{"data-sourcepos":e["data-sourcepos"]}):e.element}function OI(e){return Lr(e.tag,Xi(e),e.children)}function II(){return null}function Xi(e){var t=e["data-sourcepos"];return t?{"data-sourcepos":t}:{}}var gS="__RMD_HTML_PARSER__",LI=typeof Symbol=="undefined"?gS:Symbol(gS),MI={HtmlParser:LI},sf=Object.keys(cv),as=function(t){var r=t.source||t.children||"";if(t.allowedTypes&&t.disallowedTypes)throw new Error("Only one of `allowedTypes` and `disallowedTypes` should be defined");var n=Gu(cv,t.renderers),i=OP().use(NO).use(t.plugins||[]),a=i.runSync(i.parse(r)),o=Gu(t,{renderers:n,definitions:wI(a)});return DI(t).forEach(function(s){a=s(a,o)}),a};function DI(e){var t=[bI,HO()],r=e.disallowedTypes;e.allowedTypes&&(r=sf.filter(function(o){return o!=="root"&&e.allowedTypes.indexOf(o)===-1}));var n=e.unwrapDisallowed?"unwrap":"remove";r&&r.length>0&&t.push(fS.ofType(r,n)),e.allowNode&&t.push(fS.ifNotMatch(e.allowNode,n));var i=(e.allowDangerousHtml||e.escapeHtml===!1)&&!e.skipHtml,a=(e.astPlugins||[]).some(function(o){return o.identity===MI.HtmlParser});return i&&!a&&t.push(sI),e.astPlugins&&(t=t.concat(e.astPlugins)),t.push(vI),t}as.defaultProps={transformLinkUri:hS};as.propTypes={className:ce.string,source:ce.string,children:ce.string,sourcePos:ce.bool,rawSourcePos:ce.bool,escapeHtml:ce.bool,allowDangerousHtml:ce.bool,skipHtml:ce.bool,allowNode:ce.func,allowedTypes:ce.arrayOf(ce.oneOf(sf)),disallowedTypes:ce.arrayOf(ce.oneOf(sf)),transformLinkUri:ce.oneOfType([ce.func,ce.bool]),linkTarget:ce.oneOfType([ce.func,ce.string]),transformImageUri:ce.func,astPlugins:ce.arrayOf(ce.func),unwrapDisallowed:ce.bool,renderers:ce.object,plugins:ce.array};as.types=sf;as.renderers=cv;as.uriTransformer=hS;var FI=as,vS=FI;function NI({text:e,noMargin:t}){return d.createElement(BI,{noMargin:t},d.createElement(vS,null,e))}var BI=ne.div`
+ /* Corrects the margin added by and other HTML elements */
+ margin-bottom: -${e=>e.noMargin?e.theme.margin:0}rem;
+
+ img {
+ max-width: 100%;
+ }
+`,cr=NI;function zI({klass:e,subtle:t,icon:r,parent:n,children:i}){let a=xe(e),o=De(a),s=qe(),u=Me(),[l]=he(a,J.shortname);return n==null&&(n=u.getAgent()?.subject),d.createElement(fe,{onClick:()=>s.push(Qo(e,n,u.createSubject(l))),subtle:t,title:`Create a new ${o}`},r?d.createElement(An,null):`new ${o}`,i)}var ai=zI;var dv=new Map,uf=new WeakMap,yS=0;function $I(e){return e?(uf.has(e)||(yS+=1,uf.set(e,yS.toString())),uf.get(e)):"0"}function UI(e){return Object.keys(e).sort().filter(function(t){return e[t]!==void 0}).map(function(t){return t+"_"+(t==="root"?$I(e.root):e[t])}).toString()}function HI(e){var t=UI(e),r=dv.get(t);if(!r){var n=new Map,i,a=new IntersectionObserver(function(o){o.forEach(function(s){var u,l=s.isIntersecting&&i.some(function(f){return s.intersectionRatio>=f});e.trackVisibility&&typeof s.isVisible=="undefined"&&(s.isVisible=l),(u=n.get(s.target))==null||u.forEach(function(f){f(l,s)})})},e);i=a.thresholds||(Array.isArray(e.threshold)?e.threshold:[e.threshold||0]),r={id:t,observer:a,elements:n},dv.set(t,r)}return r}function VI(e,t,r){if(r===void 0&&(r={}),!e)return function(){};var n=HI(r),i=n.id,a=n.observer,o=n.elements,s=o.get(e)||[];return o.has(e)||o.set(e,s),s.push(t),a.observe(e),function(){s.splice(s.indexOf(t),1),s.length===0&&(o.delete(e),a.unobserve(e)),o.size===0&&(a.disconnect(),dv.delete(i))}}function bS(e){var t=e===void 0?{}:e,r=t.threshold,n=t.delay,i=t.trackVisibility,a=t.rootMargin,o=t.root,s=t.triggerOnce,u=t.skip,l=t.initialInView,f=d.useRef(),h=d.useState({inView:!!l}),m=h[0],S=h[1],_=d.useCallback(function(v){f.current!==void 0&&(f.current(),f.current=void 0),!u&&v&&(f.current=VI(v,function(y,w){S({inView:y,entry:w}),w.isIntersecting&&s&&f.current&&(f.current(),f.current=void 0)},{root:o,rootMargin:a,threshold:r,trackVisibility:i,delay:n}))},[Array.isArray(r)?r.toString():r,o,a,s,u,i,n]);d.useEffect(function(){!f.current&&m.entry&&!s&&!u&&S({inView:!!l})});var b=[_,m.inView,m.entry];return b.ref=b[0],b.inView=b[1],b.entry=b[2],b}var WI=new Intl.RelativeTimeFormat(void 0,{numeric:"auto"}),wS=[{amount:60,name:"seconds"},{amount:60,name:"minutes"},{amount:24,name:"hours"},{amount:7,name:"days"},{amount:4.34524,name:"weeks"},{amount:12,name:"months"},{amount:Number.POSITIVE_INFINITY,name:"years"}];function SS(e){let t=(e.getTime()-new Date().getTime())/1e3;for(let r=0;r<=wS.length;r++){let n=wS[r];if(Math.abs(t)e.theme.margin}rem;
+`,ES=GI;var fv=10;function XI({subjects:e}){let[t,r]=ee(!1),n=e.length>fv,i=e;return!t&&n&&(i=i.slice(0,fv)),d.createElement(d.Fragment,null,i.map((a,o)=>d.createElement(d.Fragment,{key:a},d.createElement(ut,{subject:a}),o!==i.length-1&&", ")),n&&d.createElement(YI,{onClick:()=>r(!t)},t?"show less":`show ${e.length-fv} more`))}var YI=ne.span`
+ cursor: pointer;
+ margin-left: 0.5em;
+
+ &:hover {
+ text-decoration: underline;
+ }
+`,_S=XI;var cf=ne.div`
+ margin-bottom: ${e=>e.theme.margin}rem;
+`,kS=ne.div`
+ display: flex;
+ align-items: center;
+ margin-bottom: 0.2rem;
+`,Mn=ne.label`
+ font-weight: bold;
+ display: block;
+`,xS=ne.label`
+ font-size: 0.9em;
+ display: block;
+`,er=ne.div`
+ display: flex;
+ flex: 1;
+ /* background-color: ${e=>e.theme.colors.bg}; */
+ border: solid 1px ${e=>e.theme.colors.bg2};
+ border-radius: ${e=>e.theme.radius};
+ overflow: hidden;
+`,pv=rn`
+ height: 2rem;
+ flex: 1;
+ color: ${e=>e.theme.colors.text};
+ font-size: 1em;
+ padding: ${e=>e.theme.margin/2}rem;
+ border: none;
+ --webkit-appearance: none;
+ /* Remove iOS inner shadow */
+ box-shadow: none;
+ display: block;
+ background-color: ${e=>e.theme.colors.bg};
+ /* Invisible border, but useful because you need to set :focus styles with Input tags */
+ border: solid 1px ${e=>e.theme.colors.bg};
+ /* border-radius: ${e=>e.theme.radius}; */
+ outline: none;
+ box-sizing: border-box;
+ /* If buttons are inside the input, the edges should be sharp */
+ border-top-left-radius: ${e=>e.theme.radius};
+ border-bottom-left-radius: ${e=>e.theme.radius};
+
+ &:disabled {
+ background-color: ${e=>e.theme.colors.bg1};
+ border-color: ${e=>e.theme.colors.bg1};
+ color: ${e=>e.theme.colors.textLight};
+
+ &:hover {
+ border-color: ${e=>e.theme.colors.bg1};
+ }
+ }
+
+ &:hover {
+ border-color: ${e=>e.theme.colors.main};
+ }
+
+ &:focus {
+ border: solid 1px ${e=>e.theme.colors.main};
+ background-color: ${e=>e.theme.colors.bg};
+ }
+
+ &:last-child {
+ border-radius: ${e=>e.theme.radius};
+ }
+`,Ut=ne.input`
+ ${pv}
+`,lG=ne.textarea`
+ ${pv}
+`,Ge=ne.div`
+ font-size: 0.8em;
+ line-height: 1rem;
+ color: ${e=>e.theme.colors.alert};
+ margin-bottom: ${e=>e.theme.margin}rem;
+`,CS=ne.div`
+ ${pv}
+
+ position: absolute;
+ pointer-events: none !important;
+ /* box-sizing: border-box; */
+ border: transparent;
+ line-height: 1rem;
+ width: 100%;
+ border-color: rgba(0, 0, 0, 0);
+`;function QI({value:e,datatype:t,noMargin:r}){try{switch(t){case Ee.ATOMIC_URL:{let n=v2(e);return typeof n=="string"?d.createElement(ut,{subject:n}):d.createElement(ES,{resource:n})}case(Ee.DATE,Ee.TIMESTAMP):return d.createElement(lf,{date:Mu(e)});case Ee.MARKDOWN:return d.createElement(cr,{text:Du(e),noMargin:r});case Ee.RESOURCEARRAY:return d.createElement(_S,{subjects:Yn(e)});default:return d.createElement("div",null,Du(e))}}catch(n){return d.createElement(Ge,null,n.message," original value: ",e.toString())}}var df=QI;function rl({resource:e,property:t,...r}){let[n,i]=ee(null),[a,o]=he(e,t.subject,{handleValidationError:i});function s(u){let l=u.target.value;o(l)}return d.createElement(d.Fragment,null,d.createElement(er,null,d.createElement(Ut,{value:a??"",onChange:s,...r})),a!==""&&n&&d.createElement(Ge,null,n.message),a==""&&d.createElement(Ge,null,"Required"))}var Qi=class{constructor(t,r){typeof t=="number"?(this.location=t,this.length=r):(this.location=-1,this.length=0)}max(t){return typeof t=="number"&&(this.length=t-this.location),this.location+this.length}isValid(){return this.location>-1}toArray(){return[this.location,this.max()]}toString(){return this.location==-1?"invalid range":"["+this.location+","+this.max()+")"}},JI={wordSeparators:`-/\\:()<>%._=&[]+
+\r`,uppercaseLetters:(()=>{let e="A".charCodeAt(0),t=[];for(let r=0;r<26;r++)t.push(String.fromCharCode(e+r));return t.join("")})(),ignoredScore:.9,skippedScore:.15,emptyQueryScore:0},ZI={longStringLength:150,maxMatchStartPct:.15,minMatchDensityPct:.75,maxMatchDensityPct:.95,beginningOfStringPct:.1},nl=class{constructor(t){Object.assign(this,JI,t)}useSkipReduction(){return!0}adjustRemainingScore(t,r,n,i,a,o,s,u){return n*o.length}},RS=class extends nl{constructor(t){super(Object.assign({},ZI,t))}useSkipReduction(t,r,n,i,a,o,s){let u=t.length,l=u<=this.longStringLength,f=s.location/u;return l||f=this.minMatchDensityPct?1:h,m=h>=this.maxMatchDensityPct?1:m),n*Math.min(o.length,this.longStringLength)*h*m}};function jS(e){return e instanceof nl?e:new RS(e)}var eL=jS(),kG=new nl,xG=new nl({emptyQueryScore:.9,adjustRemainingScore:function(e,t,r,n,i,a,o,s){let u=r*a.length;return n||(u+=(o.location-i.location)/2),u}});function PS(e="",t="",r,n=e.toLocaleLowerCase(),i=t.toLocaleLowerCase(),a=eL,o=new Qi(0,e.length)){if(!t)return a.emptyQueryScore;return s(o,new Qi(0,t.length),new Qi);function s(u,l,f){if(!l.length)return a.ignoredScore;if(l.length>u.length)return 0;let h=r&&r.length;for(let m=l.length;m>0;m--){let S=i.substring(l.location,l.location+m),_=tL(n,S,new Qi(u.location,u.length-l.length+m));if(!_.isValid())continue;f.isValid()?f.location=Math.min(f.location,_.location):f.location=_.location,f.max(_.max()),r&&r.push([_.location,_.max()]);let b=new Qi(_.max(),u.max()-_.max()),v=new Qi(l.location+m,l.length-m),y=s(b,v,f);if(y){let w=b.location-u.location,x=!0,c=a.useSkipReduction(e,t,y,b,u,b,_,f);if(_.location>u.location)if(c&&a.wordSeparators.indexOf(e[_.location-1])>-1)for(let g=_.location-2;g>=u.location;g--)a.wordSeparators.indexOf(e[g])>-1?w--:w-=a.skippedScore;else if(c&&a.uppercaseLetters.indexOf(e[_.location])>-1)for(let g=_.location-1;g>=u.location;g--)a.uppercaseLetters.indexOf(e[g])>-1?w--:w-=a.skippedScore;else w-=_.location-u.location,x=!1;return w+=a.adjustRemainingScore(e,t,y,x,u,b,_,f),w/=u.length,w}else r&&(r.length=h)}return 0}}PS.createConfig=jS;function tL(e,t,r){let i=e.substring(r.location,r.max()).indexOf(t),a=new Qi;return i>-1&&(a.location=i+r.location,a.length=t.length),a}var mv=class{constructor(t=[],r={}){let n=r;r instanceof Array&&(n={keys:r});let{scorer:i=PS,transformString:a=this.transformString,keys:o=[],minimumScore:s=0,config:u}=n;this.scorer=i,this.minimumScore=s,this.config=u,this.transformString=a,typeof i.createConfig=="function"&&(this.config=i.createConfig(u)),this.setKeys(o),this.setItems(t),this.compareScoredStrings=this.compareScoredStrings.bind(this)}search(t){let r=[],{items:n,transformedItems:i,keys:a,config:o}=this,s=t?this.minimumScore:-1,u=this.transformString(t);if(a.length)for(let l=0,f=n.length;l_&&(_=k,b=x)}}_>s&&(S.score=_,S.scoreKey=b,r.push(S))}else for(let l=0,f=n.length;ls&&r.push({item:h,score:_,matches:S,_:m})}return r.sort(this.compareScoredStrings),r}setKeys(t){if(this.keys=[].concat(t),this.keys.length){let{scorer:r}=this;this.keys=this.keys.map(n=>{let i=typeof n=="string"?{name:n,scorer:r}:n;return i.name.indexOf(".")>-1&&(i.path=i.name.split(".")),i}),this.defaultKeyName=this.keys[0].name}else this.defaultKeyName=null}setItems(t){let{keys:r}=this,n=[];if(this.items=[].concat(t),this.transformedItems=n,r.length)for(let i=0,a=t.length;ia&&a[o],t):t[n]}transformString(t){return t.toLocaleLowerCase()}compareScoredStrings(t,r){let n=t._,i=r._,a=typeof n=="string"?n:n[this.defaultKeyName],o=typeof i=="string"?i:i[this.defaultKeyName];return t.score===r.score?a===void 0||o===void 0?a===void 0&&o===void 0?0:a===void 0?1:-1:a===o?0:a{r||i(rL(f))},[f,r]),d.useEffect(()=>{if(r||n==null||gn(l))return;let h=n&&n.search(l);o(h)},[l,n,r]),a}function rL(e){let r=Array.from(e.values()).reduce((a,o)=>{if(!o.isReady()||o.getSubject()==null||o.getClasses().includes(oe.classes.commit))return a;let s=JSON.stringify(Array.from(o.getPropVals().values()).sort().join(`
+ `)),u={subject:o.getSubject(),valuesArray:s};return a.push(u),a},[]),n={keys:["subject","valuesArray"]};return new mv(r,n)}function nL({subject:e,clickable:t}){let r=xe(e),n=De(r),[i]=he(r,oe.properties.description);if(r.loading)return d.createElement("span",{about:e},"Loading...");if(r.error)return d.createElement(nt,{about:e},"Error: ",r.getError().message);let a=40;return i?.length>=a&&(i=i.slice(0,a)+"..."),d.createElement("span",{about:e},t?d.createElement(ut,{untabbable:!0,subject:e}):d.createElement("b",null,n),i?` - ${i}`:null)}var AS=nL;function ff({required:e,initial:t,placeholder:r,onRemove:n,onUpdate:i,options:a,disabled:o,...s}){let[u,l]=ee(t||""),[f,h]=ee(t),[m,S]=ee(0),[_,b]=ee(!1),[v,y]=ee(!1),[w,x]=ee(!1),c=Vt(null),g=Vt(null);Ce(()=>{let T=M=>{!v&&c.current!==null&&!c.current.contains(M.target)&&b(!_)};return _&&window.addEventListener("click",T),()=>{window.removeEventListener("click",T)}},[_,c,v]),Ae("esc",T=>{T.preventDefault(),b(!1)},{enabled:_,enableOnTags:["INPUT"]});function p(T){let M=T.target.value;l(M),x(!0),y(!0),b(!0),S(0),M==""?h(null):h(M)}function k(){l(""),h(null),i(null),g.current.focus()}function P(T){S(0),y(!0),b(!0),T.target.select(),setTimeout(function(){T.target.select()},20)}function A(){y(!1),i(u),setTimeout(function(){b(!1)},150)}return d.createElement(oL,null,d.createElement(er,null,d.createElement(aL,null,f&&!v&&d.createElement(CS,null,d.createElement(ut,{subject:f,untabbable:!0})),d.createElement(Ut,{onFocus:P,onBlur:A,disabled:o,size:5,required:e,placeholder:r,value:u,onChange:p,ref:g,...s})),f?d.createElement(ri,{disabled:o,type:"button",onClick:k,title:"clear selection","aria-label":"clear selection"},d.createElement(zd,null)):null,a.length>0&&f==null&&d.createElement(ri,{disabled:o,type:"button",onClick:()=>b(!_),title:"toggle menu","aria-label":"toggle menu"},d.createElement(Fd,null)),n!==void 0&&d.createElement(ri,{disabled:o,type:"button",onClick:n,title:"remove item","aria-label":"remove item"},d.createElement($d,null)))," ",d.createElement(sL,{onMouseEnter:()=>x(!1)},_?d.createElement(iL,{options:a,dropdownRef:c,selectedIndex:m,setSelectedIndex:S,setInputValue:l,setSelectedItem:h,onUpdate:i,setIsOpen:b,isOpen:_,useKeys:w,setUseKeys:x,inputValue:u}):null))}function OS(e,t){t?.current?.children[e]?.scrollIntoView({behavior:"smooth",block:"nearest"})}function iL({dropdownRef:e,inputValue:t,isOpen:r,onUpdate:n,options:i,selectedIndex:a,setInputValue:o,setIsOpen:s,setSelectedIndex:u,setSelectedItem:l,setUseKeys:f,useKeys:h}){let m=TS(t,i);function S(_){o(_),l(_),n(_),s(!1)}return Ae("enter",_=>{_.preventDefault(),m.length>0?S(m[a].item.subject):S(t)},{enabled:r,enableOnTags:["INPUT"]},[a]),Ae("up",_=>{_.preventDefault(),f(!0);let b=a>0?a-1:m.length-1;u(b),OS(b,e)},{enabled:r,enableOnTags:["INPUT"]},[a]),Ae("down",_=>{_.preventDefault(),f(!0);let b=a==m.length-1?0:a+1;return u(b),OS(b,e),!1},{enabled:r,enableOnTags:["INPUT"]},[a]),d.createElement(uL,{ref:e},m.length>0&&m.map((_,b)=>d.createElement(IS,{onClick:()=>S(_.item.subject),key:_.item.subject,selected:b==a,useKeys:h},d.createElement(AS,{subject:_.item.subject}))),t&&d.createElement(IS,{onClick:()=>S(t),useKeys:h},"Select ",t))}var aL=ne.div`
+ position: relative;
+ display: flex;
+ flex: 1;
+`,oL=ne.div`
+ position: relative;
+ flex: 1;
+`,sL=ne.ul`
+ margin-bottom: 0;
+`,uL=ne.div`
+ display: flex;
+ flex-direction: column;
+ background-color: ${e=>e.theme.colors.bg};
+ border: solid 1px ${e=>e.theme.colors.bg2};
+ border-radius: ${e=>e.theme.radius};
+ box-shadow: ${e=>e.theme.boxShadowIntense};
+ position: absolute;
+ z-index: 1000;
+ max-height: 30rem;
+ overflow-y: auto;
+ left: 0;
+ right: 0;
+ min-width: 10rem;
+`,IS=ne.li`
+ display: flex;
+ flex-direction: row;
+ border-bottom: solid 1px ${e=>e.theme.colors.bg2};
+ cursor: pointer;
+ margin: 0;
+ padding: 0.3rem;
+ text-decoration: ${e=>e.selected?"underline":"none"};
+
+ ${e=>e.selected&&rn`
+ background-color: ${t=>t.theme.colors.main};
+ color: ${t=>t.theme.colors.bg};
+ `}
+
+ ${e=>!e.useKeys&&rn`
+ &:hover,
+ &:active,
+ &:focus {
+ background-color: ${t=>t.theme.colors.main};
+ color: ${t=>t.theme.colors.bg};
+ }
+ `}
+`,LS=ne.div`
+ display: inline-flex;
+ margin-bottom: 1rem;
+ flex: 1;
+ max-width: 20rem;
+`;function Ji({required:e,setSubject:t,value:r,handleRemove:n,error:i,setError:a,classType:o,disabled:s,...u}){let l=xe(lL(o)),[f]=rt(l,oe.properties.collection.members),h=xe(o),m=De(h),S=Me();function _(v){t(v,a),a(null)}f.length==0&&(f=S.getAllSubjects());let b="Enter an Atomic URL...";return o&&m?.length>0&&(b=`Select a ${m} or enter a ${m} URL...`),o&&!h.isReady()&&(b="Loading Class..."),d.createElement("div",{style:{flex:"1"}},d.createElement(ff,{placeholder:b,required:e,onUpdate:_,options:f,onRemove:n,initial:r,disabled:s,...u}),r&&r!==""&&i&&d.createElement(Ge,null,i?.message),e&&r==""&&d.createElement(Ge,null,"Required"))}function lL(e){switch(e){case oe.classes.property:return oe.properties.getAll;case oe.classes.class:return oe.classes.getAll;case oe.classes.agent:return"https://atomicdata.dev/agents/";case oe.classes.commit:return"https://atomicdata.dev/commits";case oe.classes.datatype:return"https://atomicdata.dev/datatypes";default:return null}}function MS({resource:e,property:t,...r}){let[n,i]=ee(null),[a,o]=he(e,t.subject,{handleValidationError:i});return typeof a!="string"&&a!=null?d.createElement(nt,null,"Sorry, there is no support for editing nested resources yet"):d.createElement(Ji,{error:n,setError:i,classType:t.classType,setSubject:o,value:a,...r})}function hv({resource:e,property:t,...r}){let[n,i]=ee(null),[a,o]=rt(e,t.subject,{handleValidationError:i});function s(){a.push(null),o(a)}function u(f){a.splice(f,1);let h=[...a];o(h)}function l(f,h,m){a[m]=f,o(a)}return d.createElement(d.Fragment,null,a.map((f,h)=>d.createElement(Ji,{key:`${t.subject}${h}${f}`,value:f,setSubject:(m,S)=>l(m,S,h),error:n?.index==h&&n,setError:i,classType:t.classType,handleRemove:()=>u(h),...r})),d.createElement(fe,{disabled:r.disabled,title:"Add an item to this list",subtle:!0,type:"button",onClick:s,style:{marginBottom:"-1rem"}},d.createElement(An,null)),n?.index==null&&d.createElement(Ge,null,n?.message),a==[]&&d.createElement(Ge,null,"Required"))}var KE=q0(WE());function Xv({resource:e,property:t,...r}){let[n,i]=ee(null),[a,o]=he(e,t.subject,{handleValidationError:i}),{darkMode:s}=We();return d.createElement(d.Fragment,null,d.createElement(er,null,d.createElement(pB,null,d.createElement(KE.default,{value:a||"",handler:u=>o(u),theme:s?"dark":"light",...r}))),a!==""&&n&&d.createElement(Ge,null,n.message),a==""&&d.createElement(Ge,null,"Required"))}var pB=ne.div`
+ display: flex;
+ flex: 1;
+
+ .yamde-0-2-1 {
+ margin: 0;
+ }
+
+ .contentArea-0-2-8 textarea,
+ .preview-0-2-9 {
+ background: ${e=>e.theme.colors.bg};
+ font-size: ${e=>e.theme.fontSizeBody}rem;
+ }
+`;function Qv({resource:e,property:t,...r}){let[n,i]=ee(null),[a,o]=Qn(e,t.subject,{handleValidationError:i});function s(u){if(u.target.value==""){o(null);return}let l=+u.target.value;o(l)}return d.createElement(d.Fragment,null,d.createElement(er,null,d.createElement(Ut,{placeholder:"Enter a number...",type:"number",value:a===null||Number.isNaN(a)?"":a,onChange:s,...r})),a!==null&&n&&d.createElement(Ge,null,n.message),a===null&&d.createElement(Ge,null,"Required"))}function Jv({resource:e,property:t,...r}){let[n,i]=ee(null),[a,o]=hd(e,t.subject,{handleValidationError:i});function s(u){o(u.target.checked)}return d.createElement(d.Fragment,null,d.createElement(Ut,{type:"checkbox",checked:a,onChange:s,...r}),n&&d.createElement(Ge,null,n.message))}function fl(e){switch(e.property.datatype){case Ee.STRING:return d.createElement(rl,{...e});case Ee.MARKDOWN:return d.createElement(Xv,{...e});case Ee.SLUG:return d.createElement(rl,{...e});case Ee.TIMESTAMP:case Ee.INTEGER:return d.createElement(Qv,{...e});case Ee.ATOMIC_URL:return d.createElement(MS,{...e});case Ee.RESOURCEARRAY:return d.createElement(hv,{...e});case Ee.BOOLEAN:return d.createElement(Jv,{...e});default:return d.createElement(rl,{...e})}}function tr({resource:e,noMargin:t,propertyURL:r}){let[n,i]=ee(!1),a=Ni(r),[o]=La(e,r),s=Me(),{agent:u}=We();Ae("esc",()=>{i(!1)},{enableOnTags:["INPUT","TEXTAREA","SELECT"]});let[l,f]=ee(null),h=u!==null;if(o===null)return null;if(!a)return d.createElement("span",{title:`loading ${r}...`},"...");if(!n)return d.createElement(Zv,null,d.createElement(df,{value:o,datatype:a.datatype,noMargin:t}),d.createElement(mB,{title:"Edit value"},d.createElement(Nd,{onClick:()=>i(!n)})));function m(){f(null),i(!1)}async function S(){try{await e.save(s),i(!1),mt.success("Resource saved")}catch(_){f(_),i(!0),mt.error("Could not save resource...")}}return d.createElement(Zv,null,d.createElement(fl,{"data-test":`input-${a.subject}`,resource:e,property:a,autoFocus:!0}),l&&d.createElement(Ge,null,l.message),d.createElement(fe,{disabled:!h,title:h?"Save the edits":"You cannot save - there is no Agent set. Go to settings.",onClick:S},"save"),d.createElement(fe,{subtle:!0,onClick:m},"cancel"))}var Zv=ne.div`
+ /* Used for positioning the edit button*/
+ position: relative;
+ flex: 1;
+ word-wrap: break-word;
+ max-width: 100%;
+`,mB=ne.div`
+ position: absolute;
+ top: 0;
+ color: ${e=>e.theme.colors.main};
+ right: 100%;
+ cursor: pointer;
+ opacity: 0;
+
+ /** Only show hover edit button on mouse devices, prevents having to tap twice on some mobile devices */
+ @media (hover: hover) and (pointer: fine) {
+ ${Zv}:hover & {
+ opacity: 0.5;
+ &:hover {
+ opacity: 1;
+ }
+ }
+ }
+`;var pl=ne.div`
+ word-break: break-word;
+ margin-bottom: 0.5rem;
+
+ @media screen and (min-width: 500px) {
+ margin-bottom: ${e=>e.columns?0:"0.5rem"};
+ flex-direction: ${e=>e.columns?"row":"column"};
+ display: ${e=>e.columns?"flex":"block"};
+ }
+`,ml=ne.span`
+ font-weight: bold;
+ display: block;
+ width: 8rem;
+`;function hB({propertyURL:e,resource:t,editable:r,columns:n}){let i=Ni(e),a=md(e,10,!0);return i.loading?d.createElement(pl,{columns:n},d.createElement(ml,{title:e+" is loading"},"loading...")):i.error?d.createElement(pl,{columns:n},d.createElement(ml,{title:e+" could not be loaded"},d.createElement($e,{subject:e},d.createElement(nt,null,a))),d.createElement("code",null,JSON.stringify(t.get(e)))):d.createElement(pl,{columns:n},d.createElement($e,{subject:e},d.createElement(ml,{title:i.description},i.error?d.createElement(nt,null,a):i.shortname||a,":")),r?d.createElement(tr,{resource:t,propertyURL:e,noMargin:!0}):d.createElement(df,{datatype:i.datatype,value:t.get(e)}))}var qE=hB;var gB=ne.div`
+ margin-bottom: ${e=>e.theme.margin}rem;
+`;function vB({resource:e,except:t=[],editable:r,columns:n}){return d.createElement(gB,null,[...e.getPropVals()].map(([i,a])=>t.includes(i)?null:d.createElement(qE,{columns:n,key:i,propertyURL:i,resource:e,editable:r})))}var sn=vB;var Fn=ne.div`
+ background-color: ${e=>e.theme.colors.bg};
+ /** Don't put side margins in this component - use a wrapping component */
+ border: solid 1px ${e=>e.theme.colors.bg2};
+ box-shadow: ${e=>e.theme.boxShadow};
+ padding: ${e=>e.theme.margin}rem;
+ margin-bottom: ${e=>e.theme.margin}rem;
+ padding-bottom: 0;
+ border-radius: ${e=>e.theme.radius};
+ max-height: ${e=>e.small?"8rem":"none"};
+ overflow: ${e=>e.small?"hidden":"auto"};
+ border-color: ${e=>e.highlight?e.theme.colors.main:e.theme.colors.bg2};
+`,ia=ne.div`
+ display: block;
+ border-top: solid 1px ${e=>e.theme.colors.bg2};
+ padding: ${e=>e.theme.margin/3}rem
+ ${e=>e.theme.margin}rem;
+`,Wa=ne.div`
+ margin-left: -${e=>e.theme.margin}rem;
+ margin-right: -${e=>e.theme.margin}rem;
+`,GE=ne.div`
+ display: block;
+ height: ${e=>e.theme.margin}rem;
+`;var e0=5;function yB({resource:e,small:t}){let r=De(e),[n]=he(e,J.description),[i]=rt(e,J.collection.members),[a,o]=ee(!1),s=i.length>e0,u=i;return!a&&s&&(u=u.slice(0,e0)),d.createElement(d.Fragment,null,d.createElement($e,{subject:e.getSubject()},d.createElement("h2",null,r)),n&&d.createElement(cr,{text:n}),!t&&d.createElement(Wa,null,u.map(l=>d.createElement(ia,{key:l},d.createElement(ut,{subject:l}))),s&&d.createElement(ia,null,d.createElement(fe,{clean:!0,onClick:()=>o(!a)},a?"show less":`show ${i.length-e0} more`))))}var YE=yB;function XE(e){let[t,r]=ee(!1);return d.createElement(bB,{"data-test":"image-viewer",onClick:()=>r(!t),...e,showFull:t})}var bB=ne.img`
+ max-width: 100%;
+ max-height: 100%;
+ position: ${e=>e.showFull?"fixed":"relative"};
+ cursor: ${e=>e.showFull?"zoom-out":"zoom-in"};
+ width: ${e=>e.showFull?"100%":"auto"};
+ z-index: ${e=>e.showFull?"100":"auto"};
+ object-fit: contain;
+ /* Depends on navbarheight */
+ top: ${e=>e.showFull?"2.5rem":"0"};
+ left: 0;
+ right: 0;
+ bottom: 0;
+`;function SB({resource:e}){let[t]=he(e,J.parent),r=De(e);return d.createElement(d.Fragment,null,t&&d.createElement(wB,null,d.createElement(QE,{subject:t}),d.createElement(t0,null,r)))}function QE({subject:e}){let t=xe(e,{allowIncomplete:!0}),[r]=he(t,J.parent);return d.createElement(d.Fragment,null,r&&d.createElement(QE,{subject:r}),d.createElement(t0,null,d.createElement(ut,{subject:e})),d.createElement(t0,null,"/"))}var t0=ne.div`
+ margin-right: 1rem;
+ white-space: nowrap;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ align-self: center;
+`,wB=ne.div`
+ display: flex;
+ direction: row;
+`,aa=SB;function JE({resource:e}){let t=De(e);return d.createElement(ze,{about:e.getSubject()},d.createElement(aa,{resource:e}),d.createElement("h1",null,t),d.createElement(r0,{resource:e}))}function r0({resource:e}){function t(){window.open(r)}let[r]=he(e,J.file.downloadUrl),[n]=Qn(e,J.file.filesize),i=n?` (${_B(n)})`:"";return d.createElement("div",null,d.createElement(tr,{resource:e,propertyURL:J.description}),d.createElement(fe,{onClick:t},"Download",i),d.createElement("div",null,d.createElement(EB,{resource:e})))}function EB({resource:e}){let[t]=he(e,J.file.downloadUrl),[r]=he(e,J.file.mimetype);return r?.startsWith("image/")?d.createElement(XE,{src:t}):r?.startsWith("video/")?d.createElement("video",{controls:!0,width:"100%"},d.createElement("source",{src:t,type:r}),"Sorry, your browser doesn't support embedded videos."):d.createElement("div",null,"No preview available")}var kB=["bytes","KB","MB","GB","TB","PB","EB","ZB","YB"];function _B(e){let t=0;for(;e>=1024&&++t;)e=e/1024;return e.toFixed(e<10&&t>0?1:0)+" "+kB[t]}function xB({resource:e}){let t=De(e);return d.createElement(d.Fragment,null,d.createElement($e,{subject:e.getSubject()},d.createElement("h2",null,t)),d.createElement(r0,{resource:e}))}var ZE=xB;var Lf=ne.div`
+ margin-bottom: 0.5rem;
+ margin-top: -0.5rem;
+ font-style: italic;
+ display: inline-block;
+ margin-right: 2rem;
+`;function ds({resource:e}){let[t]=he(e,J.isA);return d.createElement(d.Fragment,null,t&&d.createElement(Lf,null,"is a ",d.createElement(ut,{subject:t})))}function e_({commitSubject:e}){let t=xe(e),[r]=he(t,J.commit.signer),n=k2(t,J.commit.createdAt);return!e||!t.isReady?null:d.createElement(d.Fragment,null,d.createElement(Lf,null,d.createElement($e,{subject:e},"edited")," by ",d.createElement(ut,{subject:r})," ",n&&d.createElement(lf,{date:n})))}var hl=[J.name,J.shortname,J.file.filename,J.description,J.isA,J.parent,J.write,J.read,J.commit.lastCommit];function t_({resource:e}){let t=De(e),[r]=he(e,J.commit.lastCommit);return d.createElement(ze,{about:e.getSubject()},d.createElement(aa,{resource:e}),d.createElement("h1",null,t),d.createElement(ds,{resource:e}),d.createElement(e_,{commitSubject:r}),d.createElement(tr,{resource:e,propertyURL:J.description}),d.createElement(sn,{resource:e,except:hl,editable:!0,columns:!0}))}function RB(e){let{subject:t,initialInView:r}=e,[n,i]=ee(!1),{ref:a,inView:o}=bS({threshold:0,initialInView:r});return o&&!n&&i(!0),d.createElement(Fn,{ref:a,...e,about:t},n?d.createElement(CB,{...e}):d.createElement(d.Fragment,null,d.createElement("h2",null,d.createElement($e,{subject:t},t)),d.createElement("p",null,"Resource is loading...")))}function CB(e){let{small:t,subject:r}=e,n=xe(r),i=De(n),[a]=he(n,J.isA);if(n.loading)return d.createElement("p",null,"Loading...");if(n.error)return d.createElement(nt,null,d.createElement($e,{subject:r},d.createElement("h2",null,i)),n.getError().message);switch(a){case oe.classes.collection:return d.createElement(YE,{resource:n,...e});case oe.classes.file:return d.createElement(ZE,{resource:n,...e})}return d.createElement(d.Fragment,null,d.createElement($e,{subject:r},d.createElement("h2",null,i)),d.createElement(tr,{resource:n,propertyURL:oe.properties.description}),!t&&d.createElement(sn,{resource:n,except:hl,editable:!0}))}var oa=RB;function AB({resource:e,members:t,columns:r}){let n=r.filter(i=>i!==oe.properties.shortname);return e===null?null:d.createElement(jB,null,d.createElement(PB,{columns:n}),t.length>0?d.createElement("tbody",null,t.map(i=>d.createElement(TB,{propsArray:n,key:i,subject:i}))):d.createElement("p",null,"This collection is empty"))}var jB=ne.table`
+ overflow-y: auto;
+ border-collapse: collapse;
+ margin-left: ${e=>-e.theme.margin}rem;
+ margin-right: ${e=>-e.theme.margin}rem;
+ margin-bottom: ${e=>e.theme.margin}rem;
+ width: calc(100% + 2rem);
+`;function PB({columns:e}){return d.createElement("thead",null,d.createElement("tr",null,d.createElement(r_,{style:{minWidth:"10rem"}},"subject"),e.map(t=>d.createElement(OB,{key:t,subject:t}))))}function OB({subject:e}){let[t,r]=Zo("sort_by"),[n,i]=Zo("sort_desc"),a=Ni(e);function o(){t==e?n=="true"?i(null):i("true"):r(e)}let s=t==e,u="6rem";switch(a.datatype){case Ee.STRING:case Ee.RESOURCEARRAY:u="15rem";break;case Ee.MARKDOWN:u="25rem";break;case Ee.BOOLEAN:case Ee.INTEGER:u="6rem";break;default:break}return d.createElement(r_,{style:{minWidth:u}},d.createElement(ut,{subject:e})," ",d.createElement(fe,{onClick:o,subtle:!s,icon:!0,"data-test":`sort-${e}`},s?n=="true"?d.createElement(G3,null):d.createElement(Y3,null):d.createElement(X3,null)))}function TB({subject:e,propsArray:t}){let r=xe(e,{allowIncomplete:!0});return r===null?null:d.createElement(IB,{about:e},d.createElement(n_,null,d.createElement(ut,{subject:e})),t.map(n=>d.createElement(LB,{key:n,resource:r,prop:n})))}var IB=ne.tr`
+ background-color: ${e=>e.theme.colors.bg};
+ border-top: solid 1px ${e=>e.theme.colors.bg2};
+
+ &:last-child {
+ border-bottom: solid 1px ${e=>e.theme.colors.bg2};
+ }
+`,MB=ne.div`
+ overflow: auto;
+ /* Not a pretty solution, but it's better than having really large cells. */
+ max-height: 5rem;
+ max-width: 40rem;
+`;function LB({resource:e,prop:t}){return d.createElement(n_,null,d.createElement(MB,null,d.createElement(tr,{key:t,resource:e,propertyURL:t,noMargin:!0})))}var i_=rn`
+ padding: ${e=>e.theme.margin/2}rem;
+ padding-left: ${e=>e.theme.margin}rem;
+ vertical-align: top;
+
+ &:last-child {
+ width: 100% !important;
+ max-width: 100% !important;
+ }
+`,r_=ne.th`
+ text-align: left;
+ ${i_}
+ font-weight: bold;
+ white-space: nowrap;
+`,n_=ne.td`
+ ${i_}
+`,a_=AB;var n0=[{id:"cards",icon:j(J3,null)},{id:"table",icon:j(Q3,null)}];function BB({resource:e}){let t=De(e),[r]=he(e,J.description),i=y8()<700?0:1,[a,o]=Ur("CollectionDisplayStyle",i),[s]=rt(e,J.collection.members),[u]=he(e,J.collection.value),[l]=he(e,J.collection.property),[f]=Qn(e,J.collection.currentPage),[h]=Qn(e,J.collection.totalPages),[,m]=Zo("current_page"),[S,_]=Zo("sort_by"),b=xe(u),[v]=rt(b,J.requires),[y]=rt(b,J.recommends),w=v.concat(y),[x]=he(b,J.description),[c]=he(b,J.shortname),[g,p]=ee(!1),k=u&&l==J.isA,P=Me();Ce(()=>{P.fetchResource(e.getSubject())},[]);function A(){o(T())}function T(){let $=a+1;return $>=n0.length&&($=0),$}function M(){f!==0&&m(f-1)}function W(){f!==h-1&&m(f+1)}function K($){_($)}let H=n0[a],L=n0[T()];Ae("v",A,{},[a]),Ae("right",W,{},[f]),Ae("left",M,{},[f]);let R=()=>j(yt,null,j(fe,{subtle:!0,onClick:M,title:"previous page (left arrow)",disabled:f==0},j(Md,null)),j(fe,{subtle:!0,onClick:W,title:"next page (right arrow)",disabled:f==h-1,"data-test":"next-page"},j(Dd,null)));return j(o8,{about:e.getSubject()},j(aa,{resource:e}),j("h1",null,t),r&&j(cr,{text:r}),j(FB,null,h>1&&j(R,null),j(fe,{subtle:!0,onClick:A,title:`use ${L.id} view (v)`},L.icon),k&&j(ai,{subtle:!0,icon:!0,klass:u,parent:e.getSubjectNoParams()}),k&&j(fe,{subtle:!0,onClick:()=>p(!g),title:g?`Hide ${c} info`:`Show ${c} info`},j(Tn,null)),k&&j(LS,null,j(ff,{placeholder:"sort by...",initial:S,options:w,onUpdate:K}))),g&&u&&j(yt,null,j($e,{subject:u},j("h3",null,c)),j(cr,{text:x})),s.length==0?u?j(ai,{klass:u,parent:e.getSubject()}):j(yt,null,"empty"):j(yt,null,H.id=="cards"&&j(DB,{members:s}),H.id=="table"&&j(a_,{resource:e,members:s,columns:w})),h>1&&j(R,null))}function DB({members:e}){return e.length==0?j("p",null,"This collection is empty"):j(zB,null,e.map((t,r)=>j(NB,{key:t},j(oa,{initialInView:r<10,key:t,subject:t}))))}var NB=ne.div`
+ margin: 0;
+ /* display: grid; */
+ /* grid-template-rows: 1fr auto; */
+ word-break: break-word;
+ overflow: hidden; /* fix for Firefox */
+ break-inside: avoid-column;
+`,FB=ne.div`
+ display: flex;
+ flex-wrap: wrap;
+`,zB=ne.div`
+ column-count: 1;
+ column-gap: ${e=>e.theme.margin}rem;
+ overflow: visible;
+ box-sizing: border-box;
+
+ @supports (grid-template-rows: masonry) {
+ display: grid;
+ grid-template-columns: repeat(1, 1fr);
+ grid-template-rows: masonry;
+ /* grid-gap: ${e=>e.theme.margin}rem; */
+ grid-column-gap: ${e=>e.theme.margin}rem;
+ }
+
+ /* Masonry on small screens */
+ @media only screen and (min-width: 600px) {
+ grid-template-columns: repeat(2, 1fr);
+ column-count: 2;
+ }
+ /* Masonry on medium-sized screens */
+ @media only screen and (min-width: 1000px) {
+ grid-template-columns: repeat(3, 1fr);
+ column-count: 3;
+ }
+ /* Masonry on large screens */
+ @media only screen and (min-width: 1400px) {
+ grid-template-columns: repeat(4, 1fr);
+ column-count: 4;
+ }
+`,o_=BB;function UB({label:e,helper:t,children:r,error:n,handleDelete:i,required:a,disabled:o}){let[s,u]=ee(!0);return d.createElement(cf,null,d.createElement(kS,null,d.createElement(Mn,{"data-test":`field-label-${e}`},e," ",t&&d.createElement(Ad,{subtle:s,type:"button",onClick:()=>u(!s),style:{marginRight:".2rem"},title:"Show helper"},d.createElement(Tn,null)),a&&d.createElement($B,{title:"Required field"},d.createElement(B3,null))),!o&&i&&d.createElement(Ad,{subtle:!0,title:"Delete this property",type:"button",onClick:()=>i("test")},d.createElement($d,null))),!s&&d.createElement(xS,null,t,a&&d.createElement("p",null,"Required field.")),r,n&&d.createElement(Ge,{title:`Error: ${JSON.stringify(n)}`},n.message))}var $B=ne.span`
+ font-size: 0.8rem;
+ color: ${e=>e.theme.colors.textLight};
+`,cn=UB;function HB({handleDelete:e,propertyURL:t,resource:r,required:n,autoFocus:i,disabled:a}){let o=Ni(t),[s,u]=ee(!0);return o===null?j(cn,{label:"loading..."},j(er,null,j(Ut,{disabled:a,placeholder:"loading property..."}))):o.isDynamic&&s?j(cn,{helper:j(s_,{text:o.description,link:o.subject}),label:o.shortname,disabled:a},"This field is calculated server-side, edits will not be saved. ",j(fe,{subtle:!0,onClick:()=>u(!1)},"edit anyway")):j(cn,{helper:j(s_,{text:o.description,link:o.subject}),label:o.shortname,handleDelete:e,required:n,disabled:a},j(fl,{key:t+" input-switcher","data-test":`input-${o.shortname}`,resource:r,property:o,required:n,autoFocus:i,disabled:a}))}var VB=ne.div`
+ position: relative;
+ margin-bottom: 0rem;
+`;function s_({text:e,link:t}){return j(VB,null,j(cr,{text:e}),j($e,{subject:t},"Go to Property"))}var Mr=HB;function WB({resource:e}){let t=De(e),[r]=he(e,J.description),[n]=rt(e,J.endpoint.parameters),[i]=rt(e,J.endpoint.results),a=xe(null,{newResource:!0}),o=Me(),s=qe();async function u(l){l&&l.preventDefault();let f=new URL(e.getSubject());await Promise.all(n.map(async h=>{let m=a.get(h);if(m!=null){let S=await o.getProperty(h);f.searchParams.set(S.shortname,m.toString())}})),s.push(Lt(f.href))}return j(ze,{about:e.getSubject()},j("h1",null,t," endpoint"),r&&j(cr,{text:r}),j("form",{onSubmit:u},n.map(l=>j(Mr,{key:l,propertyURL:l,resource:a}))),j(fe,{onClick:u},"Go"),i&&i.length==0?j("p",null,"No hits"):i.map(l=>j(oa,{key:l,subject:l})))}var u_=WB;function KB({resource:e}){let t=De(e),[r]=rt(e,J.children),{baseURL:n,setBaseURL:i}=We();return j(ze,{about:e.getSubject()},n!==e.getSubject()&&j(fe,{onClick:()=>i(e.getSubject())},"Set as current drive"),j(tr,{resource:e,propertyURL:J.description}),j(Fn,null,j("h3",null,t," children:"),j(Wa,null,r.map(a=>j(ia,{key:a},j(ut,{subject:a}))),j(ia,null,j($e,{path:Fe.new},j(An,null)," Create new resource")))),n.startsWith("http://localhost")&&j("p",null,"You are running Atomic-Server on `localhost`, which means that it will not be available from any other machine than your current local device. If you want your Atomic-Server to be available from the web, you should set this up at a Domain on a server."))}var l_=KB;function qB({resource:e}){let[t]=he(e,J.redirect.destination),[r]=he(e,J.redirect.redirectAgent),n=qe(),{agent:i,setAgent:a}=We(),o=Me();return r&&i&&!i.subject&&(i.subject=r,mt.success(j("div",null,j("p",null,"New User created!"),j(fe,{onClick:()=>n.push(Fe.agentSettings)},"User Settings")),{duration:6e3}),a(i)),t&&n.action!="POP"&&(o.fetchResource(t,!0),n.push(Lt(t))),j(ze,{about:e.getSubject()},j(tr,{resource:e,propertyURL:J.description}),j("h1",null,"Redirect"),j("p",null,"This page should redirect you automatically (unless you have just pressed the back button)"),j(sn,{resource:e,except:[J.isA]}))}var c_=qB;var GB=!1;function YB({resource:e}){let[t]=he(e,J.invite.target),[r]=Qn(e,J.invite.usagesLeft),[n]=hd(e,J.invite.write),i=qe(),{agent:a,setAgent:o}=We(),s=xe(a?.subject),u=De(s,15),l=a?.subject;GB&&l&&r&&r>0&&i.action!="POP"&&h(null,l);async function f(){let m=await f2(),S=new vn(m.privateKey);o(S);let _=await S.getPublicKey();h(_)}function h(m,S){let _=new URL(e.getSubject());m?_.searchParams.set("public-key",m):_.searchParams.set("agent",S),i.push(Lt(_.href))}return j(ze,{about:e.getSubject()},j("h1",null,"Invite to ",n?"edit":"view"," ",j(ut,{subject:t})),j(tr,{resource:e,propertyURL:J.description}),r==0?j("em",null,"Sorry, this Invite has no usages left. Ask for a new one."):j(yt,null,l?j(yt,null,j(fe,{"data-test":"accept-existing",onClick:()=>h(null,l)},"Accept as ",u)):j(yt,null,j(fe,{"data-test":"accept-new",onClick:f},"Accept as new user"),j(fe,{"data-test":"accept-sign-in",onClick:()=>i.push(Fe.agentSettings),subtle:!0},"Sign in")),!isNaN(r)&&j("p",null,"(",r," usages left)")))}var d_=YB;function f_(...e){return d.useMemo(()=>t=>{e.forEach(r=>r(t))},e)}var gl=typeof window!="undefined"&&typeof window.document!="undefined"&&typeof window.document.createElement!="undefined";function Ka(e){let t=Object.prototype.toString.call(e);return t==="[object Window]"||t==="[object global]"}function Mf(e){return"nodeType"in e}function ui(e){var t,r;return e?Ka(e)?e:Mf(e)&&(t=(r=e.ownerDocument)==null?void 0:r.defaultView)!=null?t:window:window}function Df(e){let{Document:t}=ui(e);return e instanceof t}function qa(e){return Ka(e)?!1:e instanceof ui(e).HTMLElement}function p_(e){return e instanceof ui(e).SVGElement}function fs(e){return e?Ka(e)?e.document:Mf(e)?Df(e)?e:qa(e)?e.ownerDocument:document:document:document}var sa=gl?d.useLayoutEffect:d.useEffect;function m_(){let e=d.useRef(null),t=d.useCallback((n,i)=>{e.current=setInterval(n,i)},[]),r=d.useCallback(()=>{e.current!==null&&(clearInterval(e.current),e.current=null)},[]);return[t,r]}function ps(e,t){let r=d.useRef();return d.useMemo(()=>{let n=e(r.current);return r.current=n,n},[...t])}function Ff(){let e=d.useRef(null),t=d.useCallback(r=>{e.current=r},[]);return[e,t]}var i0={};function Ga(e,t){return d.useMemo(()=>{if(t)return t;let r=i0[e]==null?0:i0[e]+1;return i0[e]=r,`${e}-${r}`},[e,t])}function h_(e){return(t,...r)=>r.reduce((n,i)=>{let a=Object.entries(i);for(let[o,s]of a){let u=n[o];u!=null&&(n[o]=u+e*s)}return n},{...t})}var ms=h_(1),a0=h_(-1);function XB(e){return"clientX"in e&&"clientY"in e}function g_(e){if(!e)return!1;let{KeyboardEvent:t}=ui(e.target);return t&&e instanceof t}function QB(e){if(!e)return!1;let{TouchEvent:t}=ui(e.target);return t&&e instanceof t}function Bf(e){if(QB(e)){if(e.touches&&e.touches.length){let{clientX:t,clientY:r}=e.touches[0];return{x:t,y:r}}else if(e.changedTouches&&e.changedTouches.length){let{clientX:t,clientY:r}=e.changedTouches[0];return{x:t,y:r}}}return XB(e)?{x:e.clientX,y:e.clientY}:{x:0,y:0}}var ua=Object.freeze({Translate:{toString(e){if(!e)return;let{x:t,y:r}=e;return`translate3d(${t?Math.round(t):0}px, ${r?Math.round(r):0}px, 0)`}},Scale:{toString(e){if(!e)return;let{scaleX:t,scaleY:r}=e;return`scaleX(${t}) scaleY(${r})`}},Transform:{toString(e){if(!!e)return[ua.Translate.toString(e),ua.Scale.toString(e)].join(" ")}},Transition:{toString({property:e,duration:t,easing:r}){return`${e} ${t}ms ${r}`}}});var JB={display:"none"};function ZB({id:e,value:t}){return d.createElement("div",{id:e,style:JB},t)}var eN={position:"absolute",width:1,height:1,margin:-1,border:0,padding:0,overflow:"hidden",clip:"rect(0 0 0 0)",clipPath:"inset(100%)",whiteSpace:"nowrap"};function tN({id:e,announcement:t}){return d.createElement("div",{id:e,style:eN,role:"status","aria-live":"assertive","aria-atomic":!0},t)}function rN(){let[e,t]=d.useState("");return{announce:d.useCallback(n=>{n!=null&&t(n)},[]),announcement:e}}var nN={draggable:`
+ To pick up a draggable item, press the space bar.
+ While dragging, use the arrow keys to move the item.
+ Press space again to drop the item in its new position, or press escape to cancel.
+ `},iN={onDragStart(e){return`Picked up draggable item ${e}.`},onDragOver(e,t){return t?`Draggable item ${e} was moved over droppable area ${t}.`:`Draggable item ${e} is no longer over a droppable area.`},onDragEnd(e,t){return t?`Draggable item ${e} was dropped over droppable area ${t}`:`Draggable item ${e} was dropped.`},onDragCancel(e){return`Dragging was cancelled. Draggable item ${e} was dropped.`}},ht;(function(e){e.DragStart="dragStart",e.DragMove="dragMove",e.DragEnd="dragEnd",e.DragCancel="dragCancel",e.DragOver="dragOver",e.RegisterDroppable="registerDroppable",e.SetDroppableDisabled="setDroppableDisabled",e.UnregisterDroppable="unregisterDroppable"})(ht||(ht={}));function o0(...e){}var hs=class extends Map{get(t){var r;return t!=null&&(r=super.get(t))!=null?r:void 0}toArray(){return Array.from(this.values())}getEnabled(){return this.toArray().filter(({disabled:t})=>!t)}getNodeFor(t){var r,n;return(r=(n=this.get(t))==null?void 0:n.node.current)!=null?r:void 0}},Nf=d.createContext({activatorEvent:null,active:null,activeNode:null,activeNodeRect:null,activeNodeClientRect:null,activators:[],ariaDescribedById:{draggable:""},containerNodeRect:null,dispatch:o0,draggableNodes:{},droppableRects:new Map,droppableContainers:new hs,over:null,dragOverlay:{nodeRef:{current:null},rect:null,setRef:o0},scrollableAncestors:[],scrollableAncestorRects:[],recomputeLayouts:o0,windowRect:null,willRecomputeLayouts:!1});function aN(){return{draggable:{active:null,initialCoordinates:{x:0,y:0},nodes:{},translate:{x:0,y:0}},droppable:{containers:new hs}}}function oN(e,t){switch(t.type){case ht.DragStart:return{...e,draggable:{...e.draggable,initialCoordinates:t.initialCoordinates,active:t.active}};case ht.DragMove:return e.draggable.active?{...e,draggable:{...e.draggable,translate:{x:t.coordinates.x-e.draggable.initialCoordinates.x,y:t.coordinates.y-e.draggable.initialCoordinates.y}}}:e;case ht.DragEnd:case ht.DragCancel:return{...e,draggable:{...e.draggable,active:null,initialCoordinates:{x:0,y:0},translate:{x:0,y:0}}};case ht.RegisterDroppable:{let{element:r}=t,{id:n}=r,i=new hs(e.droppable.containers);return i.set(n,r),{...e,droppable:{...e.droppable,containers:i}}}case ht.SetDroppableDisabled:{let{id:r,key:n,disabled:i}=t,a=e.droppable.containers.get(r);if(!a||n!==a.key)return e;let o=new hs(e.droppable.containers);return o.set(r,{...a,disabled:i}),{...e,droppable:{...e.droppable,containers:o}}}case ht.UnregisterDroppable:{let{id:r,key:n}=t,i=e.droppable.containers.get(r);if(!i||n!==i.key)return e;let a=new hs(e.droppable.containers);return a.delete(r),{...e,droppable:{...e.droppable,containers:a}}}default:return e}}var v_=d.createContext({type:null,event:null});function sN({onDragStart:e,onDragMove:t,onDragOver:r,onDragEnd:n,onDragCancel:i}){let a=d.useContext(v_),o=d.useRef(a);d.useEffect(()=>{if(a!==o.current){let{type:s,event:u}=a;switch(s){case ht.DragStart:e==null||e(u);break;case ht.DragMove:t==null||t(u);break;case ht.DragOver:r==null||r(u);break;case ht.DragCancel:i==null||i(u);break;case ht.DragEnd:n==null||n(u);break}o.current=a}},[a,e,t,r,n,i])}function uN({announcements:e=iN,hiddenTextDescribedById:t,screenReaderInstructions:r}){let{announce:n,announcement:i}=rN(),a=Ga("DndLiveRegion"),[o,s]=d.useState(!1);return d.useEffect(()=>{s(!0)},[]),sN(d.useMemo(()=>({onDragStart({active:u}){n(e.onDragStart(u.id))},onDragMove({active:u,over:l}){e.onDragMove&&n(e.onDragMove(u.id,l==null?void 0:l.id))},onDragOver({active:u,over:l}){n(e.onDragOver(u.id,l==null?void 0:l.id))},onDragEnd({active:u,over:l}){n(e.onDragEnd(u.id,l==null?void 0:l.id))},onDragCancel({active:u}){n(e.onDragCancel(u.id))}}),[n,e])),o?Wn.createPortal(d.createElement(d.Fragment,null,d.createElement(ZB,{id:t,value:r.draggable}),d.createElement(tN,{id:a,announcement:i})),document.body):null}var li=Object.freeze({x:0,y:0});function y_(e,t){return Math.sqrt(Math.pow(e.x-t.x,2)+Math.pow(e.y-t.y,2))}function b_(e,t=e.offsetLeft,r=e.offsetTop){return{x:t+e.width*.5,y:r+e.height*.5}}var s0=({collisionRect:e,droppableContainers:t})=>{let r=b_(e,e.left,e.top),n=Infinity,i=null;for(let a of t){let{rect:{current:o}}=a;if(o){let s=y_(b_(o),r);s({...i,top:i.top+e*a.y,bottom:i.bottom+e*a.y,left:i.left+e*a.x,right:i.right+e*a.x,offsetLeft:i.offsetLeft+e*a.x,offsetTop:i.offsetTop+e*a.y}),{...r})}}var w_=dN(1);function fN(e,t=window.getComputedStyle(e)){return t.position==="fixed"}function pN(e,t=window.getComputedStyle(e)){let r=/(auto|scroll|overlay)/;return["overflow","overflowX","overflowY"].find(i=>{let a=t[i];return typeof a=="string"?r.test(a):!1})!=null}function zf(e){let t=[];function r(n){if(!n)return t;if(Df(n)&&n.scrollingElement!=null&&!t.includes(n.scrollingElement))return t.push(n.scrollingElement),t;if(!qa(n)||p_(n)||t.includes(n))return t;let i=window.getComputedStyle(n);return pN(n,i)&&t.push(n),fN(n,i)?t:r(n.parentNode)}return e?r(e.parentNode):t}function u0(e){return!gl||!e?null:Ka(e)?e:Mf(e)?Df(e)||e===fs(e).scrollingElement?window:qa(e)?e:null:null}function l0(e){return Ka(e)?{x:e.scrollX,y:e.scrollY}:{x:e.scrollLeft,y:e.scrollTop}}var gs;(function(e){e[e.Forward=1]="Forward",e[e.Backward=-1]="Backward"})(gs||(gs={}));function S_(e){let t={x:0,y:0},r={x:e.scrollWidth-e.clientWidth,y:e.scrollHeight-e.clientHeight},n=e.scrollTop<=t.y,i=e.scrollLeft<=t.x,a=e.scrollTop>=r.y,o=e.scrollLeft>=r.x;return{isTop:n,isLeft:i,isBottom:a,isRight:o,maxScroll:r,minScroll:t}}function mN(e){return!gl||!e?!1:e===document.scrollingElement}var hN={x:.2,y:.2};function gN(e,t,{top:r,left:n,right:i,bottom:a},o=10,s=hN){let{clientHeight:u,clientWidth:l}=e,f=mN(e)?{top:0,left:0,right:l,bottom:u,width:l,height:u}:t,{isTop:h,isBottom:m,isLeft:S,isRight:_}=S_(e),b={x:0,y:0},v={x:0,y:0},y={height:f.height*s.y,width:f.width*s.x};return!h&&r<=f.top+y.height?(b.y=gs.Backward,v.y=o*Math.abs((f.top+y.height-r)/y.height)):!m&&a>=f.bottom-y.height&&(b.y=gs.Forward,v.y=o*Math.abs((f.bottom-y.height-a)/y.height)),!_&&i>=f.right-y.width?(b.x=gs.Forward,v.x=o*Math.abs((f.right-y.width-i)/y.width)):!S&&n<=f.left+y.width&&(b.x=gs.Backward,v.x=o*Math.abs((f.left+y.width-n)/y.width)),{direction:b,speed:v}}function vN(e){if(e===document.scrollingElement){let{innerWidth:a,innerHeight:o}=window;return{top:0,left:0,right:a,bottom:o,width:a,height:o}}let{top:t,left:r,right:n,bottom:i}=e.getBoundingClientRect();return{top:t,left:r,right:n,bottom:i,width:e.clientWidth,height:e.clientHeight}}function E_(e){return e.reduce((t,r)=>ms(t,l0(r)),li)}function __(e,t,r=li){if(!e||!qa(e))return r;let n={x:r.x+e.offsetLeft,y:r.y+e.offsetTop};return e.offsetParent===t?n:__(e.offsetParent,t,n)}function $f(e){let{offsetWidth:t,offsetHeight:r}=e,{x:n,y:i}=__(e,null);return{width:t,height:r,offsetTop:i,offsetLeft:n}}function vl(e){if(Ka(e)){let l=window.innerWidth,f=window.innerHeight;return{top:0,left:0,right:l,bottom:f,width:l,height:f,offsetTop:0,offsetLeft:0}}let{offsetTop:t,offsetLeft:r}=$f(e),{width:n,height:i,top:a,bottom:o,left:s,right:u}=e.getBoundingClientRect();return{width:n,height:i,top:a,bottom:o,right:u,left:s,offsetTop:t,offsetLeft:r}}function Uf(e){let{width:t,height:r,offsetTop:n,offsetLeft:i}=$f(e),a=zf(e),o=E_(a),s=n-o.y,u=i-o.x;return{width:t,height:r,top:s,bottom:s+r,right:u+t,left:u,offsetTop:n,offsetLeft:i}}function k_(e){return"top"in e}function x_(e,t=e.offsetLeft,r=e.offsetTop){return[{x:t,y:r},{x:t+e.width,y:r},{x:t,y:r+e.height},{x:t+e.width,y:r+e.height}]}var C_=({collisionRect:e,droppableContainers:t})=>{let r=Infinity,n=null,i=x_(e,e.left,e.top);for(let a of t){let{rect:{current:o}}=a;if(o){let s=x_(o,k_(o)?o.left:void 0,k_(o)?o.top:void 0),u=i.reduce((f,h,m)=>f+y_(s[m],h),0),l=Number((u/4).toFixed(4));l{let r=0,n=null;for(let i of t){let{rect:{current:a}}=i;if(a){let o=yN(a,e);o>r&&(r=o,n=i.id)}}return n},yl;(function(e){e[e.Pointer=0]="Pointer",e[e.DraggableRect=1]="DraggableRect"})(yl||(yl={}));var Hf;(function(e){e[e.TreeOrder=0]="TreeOrder",e[e.ReversedTreeOrder=1]="ReversedTreeOrder"})(Hf||(Hf={}));function wN({acceleration:e,activator:t=yl.Pointer,canScroll:r,draggingRect:n,enabled:i,interval:a=5,order:o=Hf.TreeOrder,pointerCoordinates:s,scrollableAncestors:u,scrollableAncestorRects:l,threshold:f}){let[h,m]=m_(),S=d.useRef({x:1,y:1}),_=d.useMemo(()=>{switch(t){case yl.Pointer:return s?{top:s.y,bottom:s.y,left:s.x,right:s.x}:null;case yl.DraggableRect:return n}return null},[t,n,s]),b=d.useRef(li),v=d.useRef(null),y=d.useCallback(()=>{let x=v.current;if(!x)return;let c=S.current.x*b.current.x,g=S.current.y*b.current.y;x.scrollBy(c,g)},[]),w=d.useMemo(()=>o===Hf.TreeOrder?[...u].reverse():u,[o,u]);d.useEffect(()=>{if(!i||!u.length||!_){m();return}for(let x of w){if((r==null?void 0:r(x))===!1)continue;let c=u.indexOf(x),g=l[c];if(!g)continue;let{direction:p,speed:k}=gN(x,g,_,e,f);if(k.x>0||k.y>0){m(),v.current=x,h(y,a),S.current=k,b.current=p;return}}S.current={x:0,y:0},b.current={x:0,y:0},m()},[e,y,r,m,i,a,JSON.stringify(_),h,u,w,l,JSON.stringify(f)])}function SN(e,t){let r=t!==null?e[t]:void 0,n=r?r.node.current:null;return ps(i=>{var a;return t===null?null:(a=n??i)!=null?a:null},[n,t])}function EN(e,t){return d.useMemo(()=>e.reduce((r,n)=>{let{sensor:i}=n,a=i.activators.map(o=>({eventName:o.eventName,handler:t(o.handler,n)}));return[...r,...a]},[]),[e,t])}function R_(e){let t=d.useRef(e);return sa(()=>{t.current!==e&&(t.current=e)},[e]),t}var bl;(function(e){e[e.Always=0]="Always",e[e.BeforeDragging=1]="BeforeDragging",e[e.WhileDragging=2]="WhileDragging"})(bl||(bl={}));var c0;(function(e){e.Optimized="optimized"})(c0||(c0={}));var j_=new Map,_N={measure:$f,strategy:bl.WhileDragging,frequency:c0.Optimized};function xN(e,{dragging:t,dependencies:r,config:n}){let[i,a]=d.useState(!1),{frequency:o,measure:s,strategy:u}={..._N,...n},l=d.useRef(e),f=d.useCallback(()=>a(!0),[]),h=d.useRef(null),m=_(),S=ps(b=>{if(m&&!t)return j_;if(!b||b===j_||l.current!==e||i){for(let v of e)!v||(v.rect.current=v.node.current?s(v.node.current):null);return kN(e)}return b},[e,t,m,s,i]);return d.useEffect(()=>{l.current=e},[e]),d.useEffect(()=>{i&&a(!1)},[i]),d.useEffect(function(){m||requestAnimationFrame(f)},[t,m]),d.useEffect(function(){m||typeof o!="number"||h.current!==null||(h.current=setTimeout(()=>{f(),h.current=null},o))},[o,m,f,...r]),{layoutRectMap:S,recomputeLayouts:f,willRecomputeLayouts:i};function _(){switch(u){case bl.Always:return!1;case bl.BeforeDragging:return t;default:return!t}}}function kN(e){let t=new Map;if(e)for(let r of e){if(!r)continue;let{id:n,rect:i}=r;i.current!=null&&t.set(n,i.current)}return t}function CN(e){let[t,r]=d.useState(null),n=d.useRef(e),i=d.useCallback(a=>{let o=u0(a.target);!o||r(s=>s?(s.set(o,l0(o)),new Map(s)):null)},[]);return d.useEffect(()=>{let a=n.current;if(e!==a){o(a);let s=e.map(u=>{let l=u0(u);return l?(l.addEventListener("scroll",i,{passive:!0}),[l,l0(l)]):null}).filter(u=>u!=null);r(s.length?new Map(s):null),n.current=e}return()=>{o(e),o(a)};function o(s){s.forEach(u=>{let l=u0(u);l==null||l.removeEventListener("scroll",i)})}},[i,e]),d.useMemo(()=>e.length?t?Array.from(t.values()).reduce((a,o)=>ms(a,o),li):E_(e):li,[e,t])}var RN=[];function jN(e){let t=d.useRef(e),r=ps(n=>e?n&&e&&t.current&&e.parentNode===t.current.parentNode?n:zf(e):RN,[e]);return d.useEffect(()=>{t.current=e},[e]),r}function PN(e){d.useEffect(()=>{if(!gl)return;let t=e.map(({sensor:r})=>r.setup==null?void 0:r.setup());return()=>{for(let r of t)r==null||r()}},e.map(({sensor:t})=>t))}function TN(e,t){return d.useMemo(()=>e.reduce((r,{eventName:n,handler:i})=>(r[n]=a=>{i(a,t)},r),{}),[e,t])}var d0=P_(vl),ON=AN(vl);function T_(e,t,r){let n=d.useRef(e);return ps(i=>e?r||!i&&e||e!==n.current?qa(e)&&e.parentNode==null?null:t(e):i??null:null,[e,r,t])}function P_(e){return(t,r)=>T_(t,e,r)}function AN(e){let t=[];return function(n,i){let a=d.useRef(n);return ps(o=>n.length?i||!o&&n.length||n!==a.current?n.map(s=>e(s)):o??t:t,[n,i])}}function IN(e){if(!e)return null;if(e.children.length>1)return e;let t=e.children[0];return qa(t)?t:e}function LN(e){let{width:t,height:r,offsetLeft:n,offsetTop:i}=$f(e);return{top:i,bottom:i+r,left:n,right:n+t,width:t,height:r,offsetTop:i,offsetLeft:n}}var MN=P_(LN);function DN({disabled:e,forceRecompute:t}){let[r,n]=Ff(),i=MN(e?null:IN(r.current),t);return d.useMemo(()=>({nodeRef:r,rect:i,setRef:n}),[i,r,n])}function Vf(e,t){return d.useMemo(()=>({sensor:e,options:t??{}}),[e,t])}function f0(...e){return d.useMemo(()=>[...e].filter(t=>t!=null),[...e])}var vs=class{constructor(t){this.target=t,this.listeners=[],this.removeAll=()=>{this.listeners.forEach(r=>{var n;return(n=this.target)==null?void 0:n.removeEventListener(...r)})}}add(t,r,n){var i;(i=this.target)==null||i.addEventListener(t,r,n),this.listeners.push([t,r,n])}};function FN(e){let{EventTarget:t}=ui(e);return e instanceof t?e:fs(e)}function p0(e,t){let r=Math.abs(e.x),n=Math.abs(e.y);return typeof t=="number"?Math.sqrt(r**2+n**2)>t:"x"in t&&"y"in t?r>t.x&&n>t.y:"x"in t?r>t.x:"y"in t?n>t.y:!1}var dn;(function(e){e.Click="click",e.DragStart="dragstart",e.Keydown="keydown",e.ContextMenu="contextmenu",e.Resize="resize",e.SelectionChange="selectionchange",e.VisibilityChange="visibilitychange"})(dn||(dn={}));function A_(e){e.preventDefault()}function BN(e){e.stopPropagation()}var Xe;(function(e){e.Space="Space",e.Down="ArrowDown",e.Right="ArrowRight",e.Left="ArrowLeft",e.Up="ArrowUp",e.Esc="Escape",e.Enter="Enter"})(Xe||(Xe={}));var O_={start:[Xe.Space,Xe.Enter],cancel:[Xe.Esc],end:[Xe.Space,Xe.Enter]},NN=(e,{currentCoordinates:t})=>{switch(e.code){case Xe.Right:return{...t,x:t.x+25};case Xe.Left:return{...t,x:t.x-25};case Xe.Down:return{...t,y:t.y+25};case Xe.Up:return{...t,y:t.y-25}}},ys=class{constructor(t){this.props=t,this.autoScrollEnabled=!1,this.coordinates=li;let{event:{target:r}}=t;this.props=t,this.listeners=new vs(fs(r)),this.windowListeners=new vs(ui(r)),this.handleKeyDown=this.handleKeyDown.bind(this),this.handleCancel=this.handleCancel.bind(this),this.attach()}attach(){this.handleStart(),this.windowListeners.add(dn.Resize,this.handleCancel),this.windowListeners.add(dn.VisibilityChange,this.handleCancel),setTimeout(()=>this.listeners.add(dn.Keydown,this.handleKeyDown))}handleStart(){let{activeNode:t,onStart:r}=this.props;if(!t.node.current)throw new Error("Active draggable node is undefined");let n=vl(t.node.current),i={x:n.left,y:n.top};this.coordinates=i,r(i)}handleKeyDown(t){if(g_(t)){let{coordinates:r}=this,{active:n,context:i,options:a}=this.props,{keyboardCodes:o=O_,coordinateGetter:s=NN,scrollBehavior:u="smooth"}=a,{code:l}=t;if(o.end.includes(l)){this.handleEnd(t);return}if(o.cancel.includes(l)){this.handleCancel(t);return}let f=s(t,{active:n,context:i.current,currentCoordinates:r});if(f){let h={x:0,y:0},{scrollableAncestors:m}=i.current;for(let S of m){let _=t.code,b=a0(f,r),{isTop:v,isRight:y,isLeft:w,isBottom:x,maxScroll:c,minScroll:g}=S_(S),p=vN(S),k={x:Math.min(_===Xe.Right?p.right-p.width/2:p.right,Math.max(_===Xe.Right?p.left:p.left+p.width/2,f.x)),y:Math.min(_===Xe.Down?p.bottom-p.height/2:p.bottom,Math.max(_===Xe.Down?p.top:p.top+p.height/2,f.y))},P=_===Xe.Right&&!y||_===Xe.Left&&!w,A=_===Xe.Down&&!x||_===Xe.Up&&!v;if(P&&k.x!==f.x){if(_===Xe.Right&&S.scrollLeft+b.x<=c.x||_===Xe.Left&&S.scrollLeft+b.x>=g.x){S.scrollBy({left:b.x,behavior:u});return}h.x=_===Xe.Right?S.scrollLeft-c.x:S.scrollLeft-g.x,S.scrollBy({left:-h.x,behavior:u});break}else if(A&&k.y!==f.y){if(_===Xe.Down&&S.scrollTop+b.y<=c.y||_===Xe.Up&&S.scrollTop+b.y>=g.y){S.scrollBy({top:b.y,behavior:u});return}h.y=_===Xe.Down?S.scrollTop-c.y:S.scrollTop-g.y,S.scrollBy({top:-h.y,behavior:u});break}}this.handleMove(t,ms(f,h))}}}handleMove(t,r){let{onMove:n}=this.props;t.preventDefault(),n(r),this.coordinates=r}handleEnd(t){let{onEnd:r}=this.props;t.preventDefault(),this.detach(),r()}handleCancel(t){let{onCancel:r}=this.props;t.preventDefault(),this.detach(),r()}detach(){this.listeners.removeAll(),this.windowListeners.removeAll()}};ys.activators=[{eventName:"onKeyDown",handler:(e,{keyboardCodes:t=O_,onActivation:r})=>{let{code:n}=e.nativeEvent;return t.start.includes(n)?(e.preventDefault(),r==null||r({event:e.nativeEvent}),!0):!1}}];function I_(e){return Boolean(e&&"distance"in e)}function L_(e){return Boolean(e&&"delay"in e)}var M_=class{constructor(t,r,n=FN(t.event.target)){this.props=t,this.events=r,this.autoScrollEnabled=!0,this.activated=!1,this.timeoutId=null;let{event:i}=t,{target:a}=i;this.props=t,this.events=r,this.document=fs(a),this.documentListeners=new vs(this.document),this.listeners=new vs(n),this.windowListeners=new vs(ui(a)),this.initialCoordinates=Bf(i),this.handleStart=this.handleStart.bind(this),this.handleMove=this.handleMove.bind(this),this.handleEnd=this.handleEnd.bind(this),this.handleCancel=this.handleCancel.bind(this),this.handleKeydown=this.handleKeydown.bind(this),this.removeTextSelection=this.removeTextSelection.bind(this),this.attach()}attach(){let{events:t,props:{options:{activationConstraint:r}}}=this;if(this.listeners.add(t.move.name,this.handleMove,{passive:!1}),this.listeners.add(t.end.name,this.handleEnd),this.windowListeners.add(dn.Resize,this.handleCancel),this.windowListeners.add(dn.DragStart,A_),this.windowListeners.add(dn.VisibilityChange,this.handleCancel),this.windowListeners.add(dn.ContextMenu,A_),this.documentListeners.add(dn.Keydown,this.handleKeydown),r){if(I_(r))return;if(L_(r)){this.timeoutId=setTimeout(this.handleStart,r.delay);return}}this.handleStart()}detach(){this.listeners.removeAll(),this.windowListeners.removeAll(),setTimeout(this.documentListeners.removeAll,50),this.timeoutId!==null&&(clearTimeout(this.timeoutId),this.timeoutId=null)}handleStart(){let{initialCoordinates:t}=this,{onStart:r}=this.props;t&&(this.activated=!0,this.documentListeners.add(dn.Click,BN,{capture:!0}),this.removeTextSelection(),this.documentListeners.add(dn.SelectionChange,this.removeTextSelection),r(t))}handleMove(t){let{activated:r,initialCoordinates:n,props:i}=this,{onMove:a,options:{activationConstraint:o}}=i;if(!n)return;let s=Bf(t),u=a0(n,s);if(!r&&o){if(L_(o))return p0(u,o.tolerance)?this.handleCancel():void 0;if(I_(o))return o.tolerance!=null&&p0(u,o.tolerance)?this.handleCancel():p0(u,o.distance)?this.handleStart():void 0}t.cancelable&&t.preventDefault(),a(s)}handleEnd(){let{onEnd:t}=this.props;this.detach(),t()}handleCancel(){let{onCancel:t}=this.props;this.detach(),t()}handleKeydown(t){t.code===Xe.Esc&&this.handleCancel()}removeTextSelection(){var t;(t=this.document.getSelection())==null||t.removeAllRanges()}},zN={move:{name:"pointermove"},end:{name:"pointerup"}},bs=class extends M_{constructor(t){let{event:r}=t,n=fs(r.target);super(t,zN,n)}};bs.activators=[{eventName:"onPointerDown",handler:({nativeEvent:e},{onActivation:t})=>!e.isPrimary||e.button!==0?!1:(t==null||t({event:e}),!0)}];var D_;(function(e){e[e.RightClick=2]="RightClick"})(D_||(D_={}));function $N(e,{transform:t,...r}){return(e==null?void 0:e.length)?e.reduce((n,i)=>i({transform:n,...r}),t):t}var UN=[{sensor:bs,options:{}},{sensor:ys,options:{}}],HN={current:{}},F_=d.createContext({...li,scaleX:1,scaleY:1}),m0=d.memo(function({id:t,autoScroll:r=!0,announcements:n,children:i,sensors:a=UN,collisionDetection:o=bN,measuring:s,modifiers:u,screenReaderInstructions:l=nN,...f}){var h,m,S,_,b;let v=d.useReducer(oN,void 0,aN),[y,w]=v,[x,c]=d.useState(()=>({type:null,event:null})),[g,p]=d.useState(!1),{draggable:{active:k,nodes:P,translate:A},droppable:{containers:T}}=y,M=k?P[k]:null,W=d.useRef({initial:null,translated:null}),K=d.useMemo(()=>{var st;return k!=null?{id:k,data:(st=M==null?void 0:M.data)!=null?st:HN,rect:W}:null},[k,M]),H=d.useRef(null),[L,R]=d.useState(null),[$,I]=d.useState(null),B=d.useRef(f),G=Ga("DndDescribedBy",t),E=d.useMemo(()=>T.getEnabled(),[T]),{layoutRectMap:N,recomputeLayouts:V,willRecomputeLayouts:q}=xN(E,{dragging:g,dependencies:[A.x,A.y],config:s==null?void 0:s.droppable}),X=SN(P,k),z=$?Bf($):null,ie=T_(X,(h=s==null||(m=s.draggable)==null?void 0:m.measure)!=null?h:Uf),te=d0(X),ke=d.useRef(null),Se=ke.current,Pe=d.useRef({active:null,activeNode:X,collisionRect:null,droppableRects:N,draggableNodes:P,draggingNodeRect:null,droppableContainers:T,over:null,scrollableAncestors:[],scrollAdjustedTranslate:null,translatedRect:null}),_e=T.getNodeFor((S=Pe.current.over)==null?void 0:S.id),it=d0(X?X.ownerDocument.defaultView:null),gt=d0(X?X.parentElement:null),Te=jN(k?_e??X:null),pt=ON(Te),se=DN({disabled:k==null,forceRecompute:q}),ye=(_=se.rect)!=null?_:ie,tt=ye===ie?cN(ie,Se):li,He=$N(u,{transform:{x:A.x-tt.x,y:A.y-tt.y,scaleX:1,scaleY:1},activatorEvent:$,active:K,activeNodeRect:te,containerNodeRect:gt,draggingNodeRect:ye,over:Pe.current.over,overlayNodeRect:se.rect,scrollableAncestors:Te,scrollableAncestorRects:pt,windowRect:it}),xt=z?ms(z,A):null,Bt=CN(Te),ot=ms(He,Bt),we=ye?w_(ye,He):null,Qe=we?w_(we,Bt):null,kr=K&&Qe?o({active:K,collisionRect:Qe,droppableContainers:E}):null,[Mt,vt]=d.useState(null),Q=lN(He,(b=Mt==null?void 0:Mt.rect)!=null?b:null,ie),Re=d.useCallback((st,{sensor:jt,options:at})=>{if(!H.current)return;let Ct=P[H.current];if(!Ct)return;let Ke=new jt({active:H.current,activeNode:Ct,event:st.nativeEvent,options:at,context:Pe,onStart(Nt){let la=H.current;if(!la)return;let ca=P[la];if(!ca)return;let{onDragStart:Xa}=B.current,da={active:{id:la,data:ca.data,rect:W}};Wn.unstable_batchedUpdates(()=>{w({type:ht.DragStart,initialCoordinates:Nt,active:la}),c({type:ht.DragStart,event:da})}),Xa==null||Xa(da)},onMove(Nt){w({type:ht.DragMove,coordinates:Nt})},onEnd:Fr(ht.DragEnd),onCancel:Fr(ht.DragCancel)});Wn.unstable_batchedUpdates(()=>{R(Ke),I(st.nativeEvent)});function Fr(Nt){return async function(){let{active:ca,over:Xa,scrollAdjustedTranslate:da}=Pe.current,Br=null;if(ca&&da){let{cancelDrop:fa}=B.current;Br={active:ca,delta:da,over:Xa},Nt===ht.DragEnd&&typeof fa=="function"&&await Promise.resolve(fa(Br))&&(Nt=ht.DragCancel)}if(H.current=null,Wn.unstable_batchedUpdates(()=>{w({type:Nt}),vt(null),p(!1),R(null),I(null),Br&&c({type:Nt,event:Br})}),Br){let{onDragCancel:fa,onDragEnd:Qa}=B.current,_s=Nt===ht.DragEnd?Qa:fa;_s==null||_s(Br)}}}},[w,P]),Ye=d.useCallback((st,jt)=>(at,Ct)=>{let Ke=at.nativeEvent;H.current!==null||Ke.dndKit||Ke.defaultPrevented||st(at,jt.options)===!0&&(Ke.dndKit={capturedBy:jt.sensor},H.current=Ct,Re(at,jt))},[Re]),Je=EN(a,Ye);PN(a),sa(()=>{B.current=f},Object.values(f)),d.useEffect(()=>{k!=null&&p(!0)},[k]),d.useEffect(()=>{K||(ke.current=null),K&&ie&&!ke.current&&(ke.current=ie)},[ie,K]),d.useEffect(()=>{let{onDragMove:st}=B.current,{active:jt,over:at}=Pe.current;if(!jt)return;let Ct={active:jt,delta:{x:ot.x,y:ot.y},over:at};c({type:ht.DragMove,event:Ct}),st==null||st(Ct)},[ot.x,ot.y]),d.useEffect(()=>{let{active:st,droppableContainers:jt,scrollAdjustedTranslate:at}=Pe.current;if(!st||!H.current||!at)return;let{onDragOver:Ct}=B.current,Ke=jt.get(kr),Fr=Ke&&Ke.rect.current?{id:Ke.id,rect:Ke.rect.current,data:Ke.data,disabled:Ke.disabled}:null,Nt={active:st,delta:{x:at.x,y:at.y},over:Fr};Wn.unstable_batchedUpdates(()=>{vt(Fr),c({type:ht.DragOver,event:Nt}),Ct==null||Ct(Nt)})},[kr]),sa(()=>{Pe.current={active:K,activeNode:X,collisionRect:Qe,droppableRects:N,draggableNodes:P,draggingNodeRect:ye,droppableContainers:T,over:Mt,scrollableAncestors:Te,scrollAdjustedTranslate:ot,translatedRect:we},W.current={initial:ye,translated:we}},[K,X,Qe,P,ye,N,T,Mt,Te,ot,we]),wN({...wt(),draggingRect:we,pointerCoordinates:xt,scrollableAncestors:Te,scrollableAncestorRects:pt});let Yt=d.useMemo(()=>({active:K,activeNode:X,activeNodeRect:ie,activeNodeClientRect:te,activatorEvent:$,activators:Je,ariaDescribedById:{draggable:G},containerNodeRect:gt,dispatch:w,dragOverlay:se,draggableNodes:P,droppableContainers:T,droppableRects:N,over:Mt,recomputeLayouts:V,scrollableAncestors:Te,scrollableAncestorRects:pt,willRecomputeLayouts:q,windowRect:it}),[K,X,te,ie,$,Je,gt,se,w,P,G,T,N,Mt,V,Te,pt,q,it]);return d.createElement(v_.Provider,{value:x},d.createElement(Nf.Provider,{value:Yt},d.createElement(F_.Provider,{value:Q},i)),d.createElement(uN,{announcements:n,hiddenTextDescribedById:G,screenReaderInstructions:l}));function wt(){let st=(L==null?void 0:L.autoScrollEnabled)===!1,jt=typeof r=="object"?r.enabled===!1:r===!1,at=!st&&!jt;return typeof r=="object"?{...r,enabled:at}:{enabled:at}}}),VN=d.createContext(null),B_="button",WN="Droppable";function N_({id:e,data:t,disabled:r=!1,attributes:n}){let i=Ga(WN),{active:a,activeNodeRect:o,activatorEvent:s,ariaDescribedById:u,draggableNodes:l,droppableRects:f,activators:h,over:m}=d.useContext(Nf),{role:S=B_,roleDescription:_="draggable",tabIndex:b=0}=n??{},v=(a==null?void 0:a.id)===e,y=d.useContext(v?F_:VN),[w,x]=Ff(),c=TN(h,e),g=R_(t);d.useEffect(()=>(l[e]={id:e,key:i,node:w,data:g},()=>{let k=l[e];k&&k.key===i&&delete l[e]}),[l,e]);let p=d.useMemo(()=>({role:S,tabIndex:b,"aria-pressed":v&&S===B_?!0:void 0,"aria-roledescription":_,"aria-describedby":u.draggable}),[S,b,v,_,u.draggable]);return{active:a,activeNodeRect:o,activatorEvent:s,attributes:p,droppableRects:f,isDragging:v,listeners:r?void 0:c,node:w,over:m,setNodeRef:x,transform:y}}function z_(){return d.useContext(Nf)}var KN="Droppable";function $_({data:e,disabled:t=!1,id:r}){let n=Ga(KN),{active:i,dispatch:a,over:o}=d.useContext(Nf),s=d.useRef(null),[u,l]=Ff(),f=R_(e);return sa(()=>(a({type:ht.RegisterDroppable,element:{id:r,key:n,disabled:t,node:u,rect:s,data:f}}),()=>a({type:ht.UnregisterDroppable,key:n,id:r})),[r]),d.useEffect(()=>{a({type:ht.SetDroppableDisabled,id:r,key:n,disabled:t})},[t]),{active:i,rect:s,isOver:(o==null?void 0:o.id)===r,node:u,over:o,setNodeRef:l}}function U_(e,t,r){let n=e.slice();return n.splice(r<0?n.length+r:r,0,n.splice(t,1)[0]),n}function qN(e,t){return e.reduce((r,n,i)=>{let a=t.get(n);return a&&(r[i]=a),r},Array(e.length))}function Wf(e){return e!==null&&e>=0}var H_=({layoutRects:e,activeIndex:t,overIndex:r,index:n})=>{let i=U_(e,r,t),a=e[n],o=i[n];return!o||!a?null:{x:o.offsetLeft-a.offsetLeft,y:o.offsetTop-a.offsetTop,scaleX:o.width/a.width,scaleY:o.height/a.height}},Kf={scaleX:1,scaleY:1},V_=({activeIndex:e,activeNodeRect:t,index:r,layoutRects:n,overIndex:i})=>{var a;let o=(a=n[e])!=null?a:t;if(!o)return null;if(r===e){let u=n[i];return u?{x:0,y:ee&&r<=i?{x:0,y:-o.height-s,...Kf}:r=i?{x:0,y:o.height+s,...Kf}:{x:0,y:0,...Kf}};function GN(e,t,r){let n=e[t],i=e[t-1],a=e[t+1];return n?rr.map(k=>typeof k=="string"?k:k.id),[r]),S=i!=null,_=d.useRef(!1),b=i?m.indexOf(i.id):-1,v=b!==-1,y=s?m.indexOf(s.id):-1,w=d.useRef(m),x=qN(m,o),c=!YN(m,w.current),g=y!==-1&&b===-1||c;sa(()=>{c&&v&&!l&&u()},[c,v,u,l]),d.useEffect(()=>{w.current=m},[m]),d.useEffect(()=>{let k=setTimeout(()=>{_.current=S},100);return()=>clearTimeout(k)},[S]);let p=d.useMemo(()=>({activeIndex:b,containerId:f,disableTransforms:g,items:m,overIndex:y,useDragOverlay:h,sortedRects:x,strategy:n,wasDragging:_}),[b,f,g,m,y,x,h,n,_]);return d.createElement(K_.Provider,{value:p},e)}function YN(e,t){return e.join()===t.join()}var XN=({id:e,items:t,activeIndex:r,overIndex:n})=>U_(t,r,n).indexOf(e),QN=({containerId:e,isSorting:t,wasDragging:r,index:n,items:i,newIndex:a,previousItems:o,previousContainerId:s,transition:u})=>!u||!r||o!==i&&n===a?!1:t?!0:a!==n&&e===s,JN={duration:200,easing:"ease"},G_="transform",ZN=ua.Transition.toString({property:G_,duration:0,easing:"linear"}),ez={roleDescription:"sortable"};function tz({disabled:e,index:t,node:r,rect:n}){let[i,a]=d.useState(null),o=d.useRef(t);return sa(()=>{if(!e&&t!==o.current&&r.current){let s=n.current;if(s){let u=vl(r.current),l={x:s.offsetLeft-u.offsetLeft,y:s.offsetTop-u.offsetTop,scaleX:s.width/u.width,scaleY:s.height/u.height};(l.x||l.y)&&a(l)}}t!==o.current&&(o.current=t)},[e,t,r,n]),d.useEffect(()=>{i&&requestAnimationFrame(()=>{a(null)})},[i]),i}function Y_({animateLayoutChanges:e=QN,attributes:t,disabled:r,data:n,getNewIndex:i=XN,id:a,strategy:o,transition:s=JN}){let{items:u,containerId:l,activeIndex:f,disableTransforms:h,sortedRects:m,overIndex:S,useDragOverlay:_,strategy:b,wasDragging:v}=d.useContext(K_),y=u.indexOf(a),w=d.useMemo(()=>({sortable:{containerId:l,index:y,items:u},...n}),[l,n,y,u]),{rect:x,node:c,setNodeRef:g}=$_({id:a,data:w}),{active:p,activeNodeRect:k,activatorEvent:P,attributes:A,setNodeRef:T,listeners:M,isDragging:W,over:K,transform:H}=N_({id:a,data:w,attributes:{...ez,...t},disabled:r}),L=f_(g,T),R=Boolean(p),$=R&&v.current&&!h&&Wf(f)&&Wf(S),I=!_&&W,B=I&&$?H:null,E=$?B??(o??b)({layoutRects:m,activeNodeRect:k,activeIndex:f,overIndex:S,index:y}):null,N=Wf(f)&&Wf(S)?i({id:a,items:u,activeIndex:f,overIndex:S}):y,V=d.useRef(u),q=u!==V.current,X=d.useRef(N),z=d.useRef(l),ie=e({active:p,containerId:l,isDragging:W,isSorting:R,id:a,index:y,items:u,newIndex:X.current,previousItems:V.current,previousContainerId:z.current,transition:s,wasDragging:v.current}),te=tz({disabled:!ie,index:y,node:c,rect:x});return d.useEffect(()=>{R&&X.current!==N&&(X.current=N),l!==z.current&&(z.current=l),u!==V.current&&(V.current=u)},[R,N,l,u]),{active:p,attributes:A,activatorEvent:P,rect:x,index:y,isSorting:R,isDragging:W,listeners:M,node:c,overIndex:S,over:K,setNodeRef:L,setDroppableNodeRef:g,setDraggableNodeRef:T,transform:te??E,transition:ke()};function ke(){if(te||q&&X.current===y)return ZN;if(!(I||!s)&&(R||ie))return ua.Transition.toString({...s,property:G_})}}var rz=[Xe.Down,Xe.Right,Xe.Up,Xe.Left],X_=(e,{context:{active:t,droppableContainers:r,translatedRect:n,scrollableAncestors:i}})=>{if(rz.includes(e.code)){if(e.preventDefault(),!t||!n)return;let o=[];r.getEnabled().forEach(u=>{if(!u||(u==null?void 0:u.disabled))return;let l=u==null?void 0:u.node.current;if(!l)return;let f=Uf(l),h={...u,rect:{current:f}};switch(e.code){case Xe.Down:n.top+n.height<=f.top&&o.push(h);break;case Xe.Up:n.top>=f.top+f.height&&o.push(h);break;case Xe.Left:n.left>=f.left+f.width&&o.push(h);break;case Xe.Right:n.left+n.width<=f.left&&o.push(h);break}});let s=C_({active:t,collisionRect:n,droppableContainers:o});if(s){var a;let u=(a=r.get(s))==null?void 0:a.node.current;if(u){let f=zf(u).some((_,b)=>i[b]!==_),h=Uf(u),m=f?{x:0,y:0}:{x:n.width-h.width,y:n.height-h.height};return{x:h.left-m.x,y:h.top-m.y}}}}};var Q_="/",J_="?",nz="[",iz="#";function Z_({subject:e,deleteElement:t,index:r,setCurrent:n,setElementSubject:i,active:a,canDrag:o}){let s=xe(e),[u,l]=ee(null),[f,h]=he(s,J.description,{commit:!0,handleValidationError:l,validate:!1}),[m]=rt(s,J.isA),S=Vt(null),[,_]=Vo(s),b=m.length>0&&!m.includes(Ta.elements.paragraph);function v(x){y(),l(null),h(x.target.value)}function y(){S.current&&(S.current.style.height="0",S.current.style.height=S.current.scrollHeight+"px")}Ce(()=>{y()},[S,f,a]),Ce(()=>{S?.current?.focus(),f&&S?.current?.setSelectionRange(f?.length,f?.length)},[a]),Ae("backspace",x=>{let c=f==""||f==null;(a&&c||a&&b)&&(x.preventDefault(),t(r))},{enableOnTags:["TEXTAREA"],enabled:a},[r,f,a]),Ae("cmd+backspace,ctrl+backspace",x=>{a&&(x.preventDefault(),t(r))},{enableOnTags:["TEXTAREA"],enabled:a},[r,a]);function w(){return u?j(nt,null,u.message):a&&_?j(nt,null,_):null}return b?j(qf,{canDrag:o,tabIndex:0,className:"element",active:a,onFocus:()=>n(r),onBlur:()=>n(null)},j(oa,{subject:e}),j(w,null)):a?j(qf,{canDrag:o,active:a,onClick:()=>n(r)},j(az,{canDrag:o,"data-test":"element-input",className:"element",active:a,ref:S,onChange:v,onFocus:()=>n(r),onBlur:()=>n(null),placeholder:`type something (try ${J_} or ${Q_})`,autoFocus:a,value:f||""}),f?.startsWith(Q_)&&j(oz,{query:f.substring(1),setElement:x=>i(r,x)}),f?.startsWith(J_)&&j(sz,{query:f.substring(1),setElement:x=>i(r,x)}),f?.startsWith(nz)&&j(wl,null,j("p",null,"[link text](https://example.com)")),f?.startsWith(iz)&&j(wl,null,j("p",null,"# Big Header"),j("p",null,"## Header"),j("p",null,"### Smaller Header")),j(w,null)):j(qf,{canDrag:o,tabIndex:0,active:a,onFocus:()=>n(r),onBlur:()=>n(null)},j(cr,{text:f,noMargin:!0}),j(w,null))}function e4({subject:e}){let t=xe(e),[r]=he(t,J.description);return j(qf,null,j(cr,{text:r,noMargin:!0}))}var h0=rn`
+ border-radius: 5px;
+ outline: none;
+`,t4=rn`
+ line-height: 1.4rem;
+ font-family: ${e=>e.theme.fontFamily};
+ font-size: ${e=>e.theme.fontSizeBody}rem;
+`,qf=ne.div`
+ position: relative;
+ display: block;
+ width: 100%;
+ border: none;
+ resize: none;
+ padding: 0.5rem;
+ padding-left: 0rem;
+ cursor: text;
+ min-height: 1.5rem;
+ /* Maintain enters / newlines */
+ white-space: pre-line;
+ display: flex;
+ flex-direction: column;
+
+ ${e=>e.active&&e.canDrag&&h0}
+
+ ${t4}
+
+ &:focus {
+ ${h0}
+ }
+`,az=ne.textarea`
+ ${t4}
+ border: none;
+ width: 100%;
+ resize: none;
+ background-color: ${e=>e.theme.colors.bg};
+ color: ${e=>e.theme.colors.text};
+ padding: 0;
+ &:focus {
+ outline: none;
+ ${h0}
+ }
+`;function oz({query:e,setElement:t}){let{results:r}=gd(e),[n,i]=ee(0);return Ae("tab,enter",a=>{a.preventDefault(),t(r[n])},{enableOnTags:["TEXTAREA"]},[]),Ae("left",a=>{a.preventDefault();let o=n-1;o<0&&(o=r.length-1),i(n-1)},{enableOnTags:["TEXTAREA"]},[n]),Ae("right",a=>{a.preventDefault();let o=n+1;o>r.length-1&&(o=0),i(n+1)},{enableOnTags:["TEXTAREA"]},[n]),e==""?j(wl,null,j("p",null,"Search something...")):j(wl,null,j("p",null," (press tab to select, left / right to browse)"),j("p",null,j(ut,{subject:r[n]})))}var wl=ne.div`
+ position: absolute;
+ top: 100%;
+ right: 0;
+ left: -1rem;
+ border-radius: ${e=>e.theme.radius};
+ border: solid 1px ${e=>e.theme.colors.bg2};
+ padding: ${e=>e.theme.margin}rem;
+ padding-bottom: 0;
+ background-color: ${e=>e.theme.colors.bg1};
+ backdrop-filter: blur(6px);
+ opacity: 0.9;
+ z-index: 1;
+`;function sz({query:e}){return j(wl,null,e&&j(cr,{text:e}),j("p",null,"Try typing these:"),j("p",null,"links: ",j("code",null,"[clickable link](https://example.com)")),j("p",null,"styling:",j("code",null,"**bold** and _cursive_")),j("p",null,"headings:",j("code",null,"## Header")))}function Sl(e,t,r,n){function i(a){return a instanceof r?a:new r(function(o){o(a)})}return new(r||(r=Promise))(function(a,o){function s(f){try{l(n.next(f))}catch(h){o(h)}}function u(f){try{l(n.throw(f))}catch(h){o(h)}}function l(f){f.done?a(f.value):i(f.value).then(s,u)}l((n=n.apply(e,t||[])).next())})}function El(e,t){var r={label:0,sent:function(){if(a[0]&1)throw a[1];return a[1]},trys:[],ops:[]},n,i,a,o;return o={next:s(0),throw:s(1),return:s(2)},typeof Symbol=="function"&&(o[Symbol.iterator]=function(){return this}),o;function s(l){return function(f){return u([l,f])}}function u(l){if(n)throw new TypeError("Generator is already executing.");for(;r;)try{if(n=1,i&&(a=l[0]&2?i.return:l[0]?i.throw||((a=i.return)&&a.call(i),0):i.next)&&!(a=a.call(i,l[1])).done)return a;switch(i=0,a&&(l=[l[0]&2,a.value]),l[0]){case 0:case 1:a=l;break;case 4:return r.label++,{value:l[1],done:!1};case 5:r.label++,i=l[1],l=[0];continue;case 7:l=r.ops.pop(),r.trys.pop();continue;default:if(a=r.trys,!(a=a.length>0&&a[a.length-1])&&(l[0]===6||l[0]===2)){r=0;continue}if(l[0]===3&&(!a||l[1]>a[0]&&l[1]0)&&!(i=n.next()).done;)a.push(i.value)}catch(s){o={error:s}}finally{try{i&&!i.done&&(r=n.return)&&r.call(n)}finally{if(o)throw o.error}}return a}function lz(){for(var e=[],t=0;t0?n:e.name,writable:!1,configurable:!1,enumerable:!0})}return r}function dz(e){var t=e.name,r=t&&t.lastIndexOf(".")!==-1;if(r&&!e.type){var n=t.split(".").pop().toLowerCase(),i=cz.get(n);i&&Object.defineProperty(e,"type",{value:i,writable:!1,configurable:!1,enumerable:!0})}return e}var fz=[".DS_Store","Thumbs.db"];function gz(e){return Sl(this,void 0,void 0,function(){return El(this,function(t){return[2,pz(e)&&e.dataTransfer?hz(e.dataTransfer,e.type):mz(e)]})})}function pz(e){return!!e.dataTransfer}function mz(e){var t=vz(e.target)?e.target.files?g0(e.target.files):[]:[];return t.map(function(r){return Gf(r)})}function vz(e){return e!==null}function hz(e,t){return Sl(this,void 0,void 0,function(){var r,n;return El(this,function(i){switch(i.label){case 0:return e.items?(r=g0(e.items).filter(function(a){return a.kind==="file"}),t!=="drop"?[2,r]:[4,Promise.all(r.map(yz))]):[3,2];case 1:return n=i.sent(),[2,r4(n4(n))];case 2:return[2,r4(g0(e.files).map(function(a){return Gf(a)}))]}})})}function r4(e){return e.filter(function(t){return fz.indexOf(t.name)===-1})}function g0(e){for(var t=[],r=0;re.length)&&(t=e.length);for(var r=0,n=new Array(t);rr)return[!1,u4(r)];if(e.sizer)return[!1,u4(r)]}return[!0,null]}function _l(e){return e!=null}function Iz(e){var t=e.files,r=e.accept,n=e.minSize,i=e.maxSize,a=e.multiple,o=e.maxFiles;return!a&&t.length>1||a&&o>=1&&t.length>o?!1:t.every(function(s){var u=c4(s,r),l=o4(u,1),f=l[0],h=d4(s,n,i),m=o4(h,1),S=m[0];return f&&S})}function Yf(e){return typeof e.isPropagationStopped=="function"?e.isPropagationStopped():typeof e.cancelBubble!="undefined"?e.cancelBubble:!1}function Xf(e){return e.dataTransfer?Array.prototype.some.call(e.dataTransfer.types,function(t){return t==="Files"||t==="application/x-moz-file"}):!!e.target&&!!e.target.files}function f4(e){e.preventDefault()}function Lz(e){return e.indexOf("MSIE")!==-1||e.indexOf("Trident/")!==-1}function Mz(e){return e.indexOf("Edge/")!==-1}function Dz(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:window.navigator.userAgent;return Lz(e)||Mz(e)}function Bn(){for(var e=arguments.length,t=new Array(e),r=0;r1?i-1:0),o=1;oe.length)&&(t=e.length);for(var r=0,n=new Array(t);r=0)&&(!Object.prototype.propertyIsEnumerable.call(e,n)||(r[n]=e[n]))}return r}function Gz(e,t){if(e==null)return{};var r={},n=Object.keys(e),i,a;for(a=0;a=0)&&(r[i]=e[i]);return r}var w0=d.forwardRef(function(e,t){var r=e.children,n=Qf(e,Fz),i=Jf(n),a=i.open,o=Qf(i,Bz);return d.useImperativeHandle(t,function(){return{open:a}},[a]),d.createElement(d.Fragment,null,r(Rt(Rt({},o),{},{open:a})))});w0.displayName="Dropzone";var h4={disabled:!1,getFilesFromEvent:gz,maxSize:Infinity,minSize:0,multiple:!0,maxFiles:0,preventDropOnDocument:!0,noClick:!1,noKeyboard:!1,noDrag:!1,noDragEventsBubbling:!1,validator:null};w0.defaultProps=h4;w0.propTypes={children:ce.func,accept:ce.oneOfType([ce.string,ce.arrayOf(ce.string)]),multiple:ce.bool,preventDropOnDocument:ce.bool,noClick:ce.bool,noKeyboard:ce.bool,noDrag:ce.bool,noDragEventsBubbling:ce.bool,minSize:ce.number,maxSize:ce.number,maxFiles:ce.number,disabled:ce.bool,getFilesFromEvent:ce.func,onFileDialogCancel:ce.func,onDragEnter:ce.func,onDragLeave:ce.func,onDragOver:ce.func,onDrop:ce.func,onDropAccepted:ce.func,onDropRejected:ce.func,validator:ce.func};var g4={isFocused:!1,isFileDialogActive:!1,isDragActive:!1,isDragAccept:!1,isDragReject:!1,draggedFiles:[],acceptedFiles:[],fileRejections:[]};function Jf(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},t=Rt(Rt({},h4),e),r=t.accept,n=t.disabled,i=t.getFilesFromEvent,a=t.maxSize,o=t.minSize,s=t.multiple,u=t.maxFiles,l=t.onDragEnter,f=t.onDragLeave,h=t.onDragOver,m=t.onDrop,S=t.onDropAccepted,_=t.onDropRejected,b=t.onFileDialogCancel,v=t.preventDropOnDocument,y=t.noClick,w=t.noKeyboard,x=t.noDrag,c=t.noDragEventsBubbling,g=t.validator,p=d.useRef(null),k=d.useRef(null),P=d.useReducer(Yz,g4),A=y0(P,2),T=A[0],M=A[1],W=T.isFocused,K=T.isFileDialogActive,H=T.draggedFiles,L=d.useCallback(function(){k.current&&(M({type:"openDialog"}),k.current.value=null,k.current.click())},[M]),R=function(){K&&setTimeout(function(){if(k.current){var ye=k.current.files;ye.length||(M({type:"closeDialog"}),typeof b=="function"&&b())}},300)};d.useEffect(function(){return window.addEventListener("focus",R,!1),function(){window.removeEventListener("focus",R,!1)}},[k,K,b]);var $=d.useCallback(function(se){!p.current||!p.current.isEqualNode(se.target)||(se.keyCode===32||se.keyCode===13)&&(se.preventDefault(),L())},[p,k]),I=d.useCallback(function(){M({type:"focus"})},[]),B=d.useCallback(function(){M({type:"blur"})},[]),G=d.useCallback(function(){y||(Dz()?setTimeout(L,0):L())},[k,y]),E=d.useRef([]),N=function(ye){p.current&&p.current.contains(ye.target)||(ye.preventDefault(),E.current=[])};d.useEffect(function(){return v&&(document.addEventListener("dragover",f4,!1),document.addEventListener("drop",N,!1)),function(){v&&(document.removeEventListener("dragover",f4),document.removeEventListener("drop",N))}},[p,v]);var V=d.useCallback(function(se){se.preventDefault(),se.persist(),Se(se),E.current=[].concat(Vz(E.current),[se.target]),Xf(se)&&Promise.resolve(i(se)).then(function(ye){Yf(se)&&!c||(M({draggedFiles:ye,isDragActive:!0,type:"setDraggedFiles"}),l&&l(se))})},[i,l,c]),q=d.useCallback(function(se){se.preventDefault(),se.persist(),Se(se);var ye=Xf(se);if(ye&&se.dataTransfer)try{se.dataTransfer.dropEffect="copy"}catch(tt){}return ye&&h&&h(se),!1},[h,c]),X=d.useCallback(function(se){se.preventDefault(),se.persist(),Se(se);var ye=E.current.filter(function(He){return p.current&&p.current.contains(He)}),tt=ye.indexOf(se.target);tt!==-1&&ye.splice(tt,1),E.current=ye,!(ye.length>0)&&(M({isDragActive:!1,type:"setDraggedFiles",draggedFiles:[]}),Xf(se)&&f&&f(se))},[p,f,c]),z=d.useCallback(function(se){se.preventDefault(),se.persist(),Se(se),E.current=[],Xf(se)&&Promise.resolve(i(se)).then(function(ye){if(!(Yf(se)&&!c)){var tt=[],He=[];ye.forEach(function(xt){var Bt=c4(xt,r),ot=y0(Bt,2),we=ot[0],Qe=ot[1],kr=d4(xt,o,a),Mt=y0(kr,2),vt=Mt[0],Q=Mt[1],Re=g?g(xt):null;if(we&&vt&&!Re)tt.push(xt);else{var Ye=[Qe,Q];Re&&(Ye=Ye.concat(Re)),He.push({file:xt,errors:Ye.filter(function(Je){return Je})})}}),(!s&&tt.length>1||s&&u>=1&&tt.length>u)&&(tt.forEach(function(xt){He.push({file:xt,errors:[Oz]})}),tt.splice(0)),M({acceptedFiles:tt,fileRejections:He,type:"setFiles"}),m&&m(tt,He,se),He.length>0&&_&&_(He,se),tt.length>0&&S&&S(tt,se)}}),M({type:"reset"})},[s,r,o,a,u,i,m,S,_,c,g]),ie=function(ye){return n?null:ye},te=function(ye){return w?null:ie(ye)},ke=function(ye){return x?null:ie(ye)},Se=function(ye){c&&ye.stopPropagation()},Pe=d.useMemo(function(){return function(){var se=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},ye=se.refKey,tt=ye===void 0?"ref":ye,He=se.onKeyDown,xt=se.onFocus,Bt=se.onBlur,ot=se.onClick,we=se.onDragEnter,Qe=se.onDragOver,kr=se.onDragLeave,Mt=se.onDrop,vt=Qf(se,Nz);return Rt(Rt(b0({onKeyDown:te(Bn(He,$)),onFocus:te(Bn(xt,I)),onBlur:te(Bn(Bt,B)),onClick:ie(Bn(ot,G)),onDragEnter:ke(Bn(we,V)),onDragOver:ke(Bn(Qe,q)),onDragLeave:ke(Bn(kr,X)),onDrop:ke(Bn(Mt,z))},tt,p),!n&&!w?{tabIndex:0}:{}),vt)}},[p,$,I,B,G,V,q,X,z,w,x,n]),_e=d.useCallback(function(se){se.stopPropagation()},[]),it=d.useMemo(function(){return function(){var se=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},ye=se.refKey,tt=ye===void 0?"ref":ye,He=se.onChange,xt=se.onClick,Bt=Qf(se,zz),ot=b0({accept:r,multiple:s,type:"file",style:{display:"none"},onChange:ie(Bn(He,z)),onClick:ie(Bn(xt,_e)),autoComplete:"off",tabIndex:-1},tt,k);return Rt(Rt({},ot),Bt)}},[k,r,s,z,n]),gt=H.length,Te=gt>0&&Iz({files:H,accept:r,minSize:o,maxSize:a,multiple:s,maxFiles:u}),pt=gt>0&&!Te;return Rt(Rt({},T),{},{isDragAccept:Te,isDragReject:pt,isFocused:W&&!n,getRootProps:Pe,getInputProps:it,rootRef:p,inputRef:k,open:ie(L)})}function Yz(e,t){switch(t.type){case"focus":return Rt(Rt({},e),{},{isFocused:!0});case"blur":return Rt(Rt({},e),{},{isFocused:!1});case"openDialog":return Rt(Rt({},e),{},{isFileDialogActive:!0});case"closeDialog":return Rt(Rt({},e),{},{isFileDialogActive:!1});case"setDraggedFiles":var r=t.isDragActive,n=t.draggedFiles;return Rt(Rt({},e),{},{draggedFiles:n,isDragActive:r});case"setFiles":return Rt(Rt({},e),{},{acceptedFiles:t.acceptedFiles,fileRejections:t.fileRejections});case"reset":return Rt({},g4);default:return e}}function Qz({subject:e}){let t=xe(e),r=De(t);return d.createElement(Xz,{"data-test":"file-pill"},d.createElement($e,{subject:t.getSubject()},d.createElement("span",null,r)))}var Xz=ne.div`
+ display: inline-flex;
+ border: solid 1px ${e=>e.theme.colors.main};
+ border-radius: ${e=>e.theme.radius};
+ padding: 0.4rem;
+ margin-bottom: ${e=>e.theme.margin}rem;
+ margin-right: ${e=>e.theme.margin}rem;
+`,v4=Qz;function S0({parentResource:e}){let t=Me(),[r,n]=ee([]),[i,a]=ee(!1),[o,s]=ee(null),u=eo(async m=>{try{s(null),a(!0);let S=await ag(m,t,e.getSubject()),_=[...r,...S];n(_),a(!1)}catch(S){s(S),a(!1)}},[r,n]),{getRootProps:l,getInputProps:f,isDragActive:h}=Jf({onDrop:u});return e.new?d.createElement("p",null,"You can add attachments after saving the resource."):d.createElement("div",null,d.createElement("div",{...l()},d.createElement("input",{...f()}),h?d.createElement("p",null,"Drop the files here ..."):d.createElement(fe,{subtle:!0,onClick:()=>null,loading:i&&"Uploading..."},"Upload file(s)..."),o&&d.createElement(Ge,null,o.message)),r.length>0&&r.map(m=>d.createElement(v4,{key:m,subject:m})))}function y4({parentResource:e,children:t,onFilesUploaded:r}){let n=Me(),[i,a]=ee(!1),[o,s]=ee(null),u=eo(async h=>{try{s(null),a(!0);let S=[...await ag(h,n,e.getSubject())];r(S),a(!1)}catch(m){s(m),a(!1)}},[r]),{getRootProps:l,isDragActive:f}=Jf({onDrop:u});return d.createElement("div",{...l()},i&&d.createElement("p",null,"Uploading..."),o&&d.createElement(Ge,null,o.message),f?d.createElement(Jz,null,"Drop the files here ..."):t)}var Jz=ne.div`
+ height: 100%,
+ width: 100%,
+ minHeight: 4rem,
+`;function r$({resource:e}){let[t]=Vo(e),[r,n]=ee(t);return Ce(()=>{n(t)},[t]),j(t$,{about:e.getSubject()},r?j(Zz,{resource:e,setEditMode:n}):j(e$,{resource:e,setEditMode:n}))}function Zz({resource:e,setEditMode:t}){let[r,n]=rt(e,J.document.elements,{commit:!0,validate:!1,commitDebounce:0}),[i,a]=he(e,J.name,{commit:!0,validate:!1}),o=Vt(null),s=Me(),u=Vt(null),[l,f]=ee(null),[h,m]=ee(null),S=f0(Vf(bs),Vf(ys,{coordinateGetter:X_}));Ce(()=>{m(r.length-1)},[]),Ce(()=>{r.length==0&&_(0)},[JSON.stringify(r)]),Ae("enter",p=>{p.preventDefault(),_(h+1)},{enableOnTags:["TEXTAREA"]},[h]),Ae("enter",p=>{p.preventDefault(),_(0)},{enableOnTags:["INPUT"]},[h]),Ae("up",p=>{p.preventDefault(),!h||h===0?o.current.focus():b(h-1)},{enableOnTags:["TEXTAREA"]},[h]),Ae("down",p=>{p.preventDefault(),!h&&document.activeElement===o.current?b(0):b(h+1)},{enableOnTags:["TEXTAREA","INPUT"]},[h]),Ae("option+up,alt+up",p=>{p.preventDefault(),w(h,h-1)},{enableOnTags:["TEXTAREA"]},[h]),Ae("option+down,alt+down",p=>{p.preventDefault(),w(h,h+1)},{enableOnTags:["TEXTAREA"]},[h]),Ae("esc",p=>{p.preventDefault(),m(null)},{enableOnTags:["TEXTAREA"]});async function _(p){let k=s.createSubject("element");r.splice(p,0,k);try{let P=new ur(k,!0);await Promise.all([P.set(J.isA,[Ta.elements.paragraph],s),P.set(J.parent,e.getSubject(),s),P.set(J.description,"",s)]),s.addResource(P),P.save(s),await n(r),b(p)}catch(P){f(P)}}function b(p){p>r.length-1?p=r.length-1:p<0&&(p=0),m(p);let k=u?.current?.children[p]?.getElementsByClassName("element")[0];k||(k=u?.current?.children[p]),k?k.focus():u.current.focus()}async function v(p){r.splice(p,1),n(r),b(p-1)}async function y(p,k){r[p]=k,n(r),p==r.length-1?_(p+1):b(p+1)}function w(p,k){let P=r[p];r.splice(p,1),r.splice(k,0,P),n(r),b(k)}function x(p){let{active:k,over:P}=p;if(k.id!==P.id){let A=r.indexOf(k.id),T=r.indexOf(P.id);w(A,T)}}function c(p){mt.success("Upload succeeded!"),p.map(k=>r.push(k)),n([...r])}async function g(){let p=r[r.length-1];(await s.getResourceAsync(p)).get(J.description)?.toString()?.length==0?b(r.length-1):_(r.length)}return j(yt,null,j("div",{style:{display:"flex",flexDirection:"row"}},j(a$,{"data-test":"document-title",ref:o,placeholder:"set a title",value:i||"",onChange:p=>a(p.target.value)}),j(fe,{icon:!0,subtle:!0,onClick:()=>t(!1),title:"Read mode"},j(Wu,null))),l&&j(nt,null,l.message),j(y4,{onFilesUploaded:c,parentResource:e},j("div",{ref:u},j(m0,{sensors:S,collisionDetection:s0,onDragEnd:x},j(q_,{items:[...r],strategy:V_},r.map((p,k)=>j(n$,{key:k+p,canDrag:!0,index:k,subject:p,deleteElement:v,setCurrent:m,current:h,setElementSubject:y,active:k==h})))),j(i$,{onClick:g}))))}function e$({resource:e,setEditMode:t}){let[r]=rt(e,J.document.elements),[n]=he(e,J.name);return j(yt,null,j("div",{style:{display:"flex",flexDirection:"row"}},j("h1",{style:{flex:1}},n),j(fe,{"data-test":"document-edit",icon:!0,subtle:!0,onClick:()=>t(!0),title:"Edit mode"},j(Nd,null))),r.map(i=>j(e4,{subject:i,key:i})))}function n$(e){let{subject:t,active:r}=e,{attributes:n,listeners:i,setNodeRef:a,transform:o,transition:s}=Y_({id:t}),u={transform:ua.Transform.toString(o),transition:s};return j(o$,{ref:a,style:u},j(s$,{active:r,...n,...i}),j(Z_,{...e}))}var t$=ne.div`
+ background-color: ${e=>e.theme.colors.bg};
+ border-left: solid 1px ${e=>e.theme.colors.bg2};
+ border-right: solid 1px ${e=>e.theme.colors.bg2};
+ max-width: ${e=>e.theme.containerWidth}rem;
+ display: flex;
+ flex: 1;
+ margin: auto;
+ flex-direction: column;
+ min-height: 100%;
+ box-sizing: border-box;
+ padding: 2rem;
+ @media (max-width: ${e=>e.theme.containerWidth}rem) {
+ padding: ${e=>e.theme.margin}rem;
+ }
+`,i$=ne.div`
+ height: 20rem;
+ flex: 1;
+ cursor: text;
+`,a$=ne.input`
+ margin-bottom: ${e=>e.theme.margin}rem;
+ font-size: ${e=>e.theme.fontSizeH1}rem;
+ color: ${e=>e.theme.colors.text};
+ border: none;
+ font-weight: bold;
+ display: block;
+ width: 100%;
+ padding: 0;
+ margin-top: 0;
+ outline: none;
+ background-color: ${e=>e.theme.colors.bg};
+ margin-bottom: ${e=>e.theme.margin}rem;
+ font-family: ${e=>e.theme.fontFamilyHeader};
+
+ &:focus {
+ outline: none;
+ }
+`,o$=ne.div`
+ display: flex;
+ flex-direction: row;
+ position: relative;
+`,s$=e=>j(u$,{...e,title:"Grab to re-order"},j(W3,null)),u$=ne.div`
+ width: 1rem;
+ flex: 1;
+ display: flex;
+ align-items: center;
+ opacity: ${e=>e.active?.3:0};
+ position: absolute;
+ left: -1rem;
+ bottom: 0;
+ height: 100%;
+ /* TODO fix cursor while dragging */
+ cursor: grab;
+ border: solid 1px transparent;
+ border-radius: ${e=>e.theme.radius};
+
+ &:drop(active),
+ &:focus,
+ &:active {
+ opacity: 0.5;
+ }
+
+ &:hover {
+ opacity: 0.5;
+ }
+`,b4=r$;function l$({resource:e}){let{agent:t}=We(),r=Me(),n=e.getSubject();return cd(e.error)?j(ze,null,j("h1",null,"Unauthorized"),t?j(yt,null,j("p",null,e.error.message),j(fe,{onClick:()=>r.fetchResource(n)},"Retry")):j(yt,null,j("p",null,"You don't have access to this, try signing in:"),j(Vd,null))):j(ze,null,j("h1",null,"⚠️ Error opening ",e.getSubject()),j(nt,null,e.getError().message),j("br",null),j(fe,{onClick:()=>r.fetchResource(n)},"Retry"),j(fe,{onClick:()=>r.fetchResource(n,{fromProxy:!0}),title:`Fetches the URL from your current Atomic-Server (${r.getServerUrl()}), instead of from the actual URL itself. Can be useful if the URL is down, but the resource is cached in your server.`},"Use proxy"))}var w4=l$;function ws({content:e,loading:t}){let[r,n]=ee(null);function i(){n(e),navigator.clipboard.writeText(e),mt.success("Copied to clipboard")}return d.createElement(c$,{"data-code-content":e},t?"loading...":d.createElement(d.Fragment,null,e,d.createElement(fe,{subtle:!0,style:{position:"absolute",bottom:0,top:0,margin:0,right:0},onClick:i,title:r==e?"Copied!":"Copy to clipboard","data-test":"copy-response"},r==e?d.createElement($3,null):d.createElement(U3,null))))}var c$=ne.pre`
+ position: relative;
+ background-color: ${e=>e.theme.colors.bg1};
+ border-radius: ${e=>e.theme.radius};
+ border: solid 1px ${e=>e.theme.colors.bg2};
+ padding: 0.3rem;
+ font-family: monospace;
+ width: 100%;
+ overflow-x: auto;
+`;function S4({resource:e}){let t=De(e),[r,n]=ee(null),i=Me();return d.createElement(ze,{about:e.getSubject()},d.createElement(aa,{resource:e}),d.createElement("h1",null,t),d.createElement(ds,{resource:e}),d.createElement(tr,{resource:e,propertyURL:J.description}),d.createElement(sn,{resource:e,except:hl,editable:!0,columns:!0}),d.createElement(ai,{klass:e.getSubject()}),d.createElement(fe,{subtle:!0,onClick:async()=>n(await w2(e,i))},"typescript interface"),r&&d.createElement(ws,{content:r}))}var d$=()=>{let[e,t]=ee(!1);return Ce(()=>{if(!document.monetization){t(!1);return}let{state:r}=document.monetization;r==="stopped"&&t(!1),document.monetization.addEventListener("monetizationstart",()=>{t(!0)})},[]),e};function f$({resource:e,children:t}){let[r]=he(e,J.paymentPointer),n=De(e),i=d$();return Ce(()=>{i&&mt.success("WebMonetization started, thanks for your support!")},[i]),i?d.createElement(d.Fragment,null,d.createElement(Ii,null,d.createElement("meta",{name:"monetization",content:r})),t):d.createElement(ze,null,d.createElement("h1",null,n),d.createElement(Ii,null,d.createElement("meta",{name:"monetization",content:r})),!i&&d.createElement("p",null,"This content can only be accessed through Webmonetization."),document.monetization==null&&d.createElement("p",null,"Get the"," ",d.createElement($e,{href:"https://help.coil.com/docs/membership/coil-extension/index.html"},"Coil Browser extension")," ","to continue."),document.monetization?.state==="pending"&&d.createElement(d.Fragment,null,d.createElement("p",null,d.createElement(Od,null)),d.createElement("p",null,"Loading...")),document.monetization?.state==="stopped"&&d.createElement("p",null,"Something went wrong. Is your Wallet (e.g. Coil wallet) working, and do you have a subscription?"))}var E4=f$;function m$({subject:e}){let t=xe(e),[r]=he(t,J.isA),[n]=he(t,J.paymentPointer);if(t.loading)return d.createElement(ze,null,d.createElement("p",null,"Loading..."),d.createElement(Od,null));if(t.error)return d.createElement(w4,{resource:t});let i=p$(r);return n?d.createElement(E4,{resource:t},d.createElement(i,{resource:t})):d.createElement(i,{resource:t})}function p$(e){switch(e){case oe.classes.collection:return o_;case oe.classes.endpoint:return u_;case oe.classes.drive:return l_;case oe.classes.redirect:return c_;case oe.classes.invite:return d_;case oe.classes.document:return b4;case oe.classes.class:return S4;case oe.classes.file:return JE;default:return t_}}var Ss=m$;function Zf(){let[e]=Id(),[t,r]=ee(0),{results:n,loading:i,error:a}=gd(e,{debounce:0}),o=qe(),s=Vt(null);function u(f){r(f),s?.current?.children[f]?.scrollIntoView({behavior:"smooth",block:"nearest"})}Ae("enter",f=>{f.preventDefault();let h=s?.current?.children[t]?.getAttribute("about");h&&(document?.activeElement?.blur(),o.push(Lt(h)))},{enableOnTags:["INPUT"]}),Ae("up",f=>{f.preventDefault();let h=t>0?t-1:0;u(h)},{enableOnTags:["INPUT"]}),Ae("down",f=>{f.preventDefault();let h=t==n.length-1?n.length-1:t+1;u(h)},{enableOnTags:["INPUT"]});let l="No hits";return e.length==0&&(l="Enter a search query"),i&&(l="Loading results..."),d.createElement(ze,{ref:s},a&&d.createElement(nt,null,a.message),e.length!==0&&n.length!==0?d.createElement(d.Fragment,null,n.map((f,h)=>d.createElement(oa,{initialInView:h<5,small:!0,subject:f,key:f,highlight:h==t}))):d.createElement(d.Fragment,null,l))}var ep=()=>j(ze,null,j(Hd,{style:{width:"30rem",maxWidth:"100%",marginBottom:"1rem"}}),j("p",null,j("em",null,"The easiest way to ",j("b",null,"create"),", ",j("b",null,"share")," and ",j("b",null,"model")," linked data.")),j("p",null,"Atomic Data is a proposed standard for modeling and exchanging linked data. It uses links to connect pieces of data, and therefore makes it easier to connect datasets to each other - even when these datasets exist on separate machines. It aims to help realize a more decentralized internet that encourages data ownership and interoperability."),j("p",null,"Atomic Data is especially suitable for knowledge graphs, distributed datasets, semantic data, p2p applications, decentralized apps, and data that is meant to be shared. It is designed to be highly extensible, easy to use, and to make the process of domain specific standardization as simple as possible. Check out"," ",j("b",null,j($e,{href:"https://docs.atomicdata.dev/"},"the docs"))," ","for more information about Atomic Data."),j("h2",null,"About this app"),j("p",null,"You're looking at"," ",j($e,{href:"https://github.com/joepio/atomic-data-browser"},"atomic-data-browser"),", an open-source client for viewing and editing data. Please add an issue if you encouter problems or have a feature request. Expect bugs and issues, because this stuff is pretty beta."),j("p",null,"The back-end of this app is"," ",j($e,{href:"https://github.com/joepio/atomic"},"atomic-server"),", which you can think of as an open source, web-native database."),j("h2",null,"Things to visit"),j("ul",null,j("li",null,j($e,{subject:"https://atomicdata.dev/collections"},"List of lists")),j("li",null,j($e,{subject:"https://atomicdata.dev/classes"},"List of Classes")),j("li",null,j($e,{subject:"https://atomicdata.dev/properties"},"List of Properties"))),j("h2",null,"Run your own server"),j("p",null,"The easiest way to run an"," ",j($e,{href:"https://github.com/joepio/atomic"},"atomic-server")," ","is by using Docker:"),j("p",null,j("code",null,"docker run -p 80:80 -p 443:443 -v atomic-storage:/atomic-storage joepmeneer/atomic-server")),j("p",null,"...and visit"," ",j($e,{subject:"http://localhost"},"localhost"),"."),j("h2",null,"Join the community"),j("p",null,"Atomic Data is open and fully powered by volunteers. We're looking for people who want to help discuss various design challenges and work on implmenentations. If you have any questions, or want to help out, feel free to join our"," ",j($e,{href:"https://discord.gg/a72Rv2P"},"Discord"),"! Sign up to"," ",j($e,{href:"https://docs.atomicdata.dev/newsletter.html"},"our newsletter")," ","if you","'","d like to get updated! ."));var h$=()=>{let[e]=Gt();return e==null||e==""?j(ep,null):gn(e)?j(Ss,{key:e,subject:e}):j(Zf,null)},_4=h$;function tp({classSubject:e,resource:t,parent:r}){let n=xe(t.getSubject()),[i]=rt(n,J.isA);e==null&&i?.length>0&&(e=i[0]);let a=xe(e),o=Me(),[s]=rt(a,J.requires),[u]=rt(a,J.recommends),[l]=he(a,J.isA),[f,h]=ee(null),[m,S]=ee(null),[_,b]=ee(!1),v=qe(),[y,w]=ee(null),[x,c]=ee([]),[g,p]=ee([]),[k,P]=ee(!1),[A,T]=ee(!1),[,M]=he(n,J.parent);if(Ce(()=>{r&&M(r)},[r,n]),Ce(()=>{let R=[],$=Array.from(n.getPropVals().keys());for(let I of $)!(s.includes(I)||u.includes(I))&&R.push(I);R=R.filter(I=>I!==J.isA),R=R.filter(I=>I!==J.parent),R=R.filter(I=>I!==J.read),R=R.filter(I=>I!==J.write),p(R.concat(x))},[n,x,s.length,u.length]),!n.new&&n.loading)return d.createElement(d.Fragment,null,"Loading resource...");if(n.error)return d.createElement(Ge,null,n.getError().message);if(a.loading)return d.createElement(d.Fragment,null,"Loading class...");if(l&&l!==Ta.class)return d.createElement(Ge,null,e," is not a Class. Only resources with valid classes can be created or edited at this moment.");async function W(){h(null);try{let R=await n.save(o);b(!1),v.push(Lt(R)),mt.success("Resource saved")}catch(R){h(R),b(!1),mt.error("Could not save resource")}}function K(){S(null),x.includes(y)||s.includes(y)||u.includes(y)?S(new Error("That property already exists in this resource. It can only be added once.")):c(x.concat(y)),w(null)}function H(R){R.preventDefault(),b(!0),W()}function L(R){n.removePropVal(R),c(x.filter($=>$!=R))}return d.createElement("form",{about:n.getSubject()},a.error&&d.createElement(Ge,null,"Error in class. ",a.getError().message,". You can still edit the resource, though."),s.map(R=>d.createElement(Mr,{key:R+" field",propertyURL:R,resource:n,disabled:A,required:!0})),u.map(R=>d.createElement(Mr,{key:R+" field",propertyURL:R,resource:n,disabled:A})),g.map(R=>d.createElement(Mr,{key:R+" field",propertyURL:R,resource:n,disabled:A,handleDelete:()=>L(R)})),d.createElement(cn,{label:"add another property...",helper:"In Atomic Data, any Resource could have any single Property. Use this field to add new property-value combinations to your resource."},d.createElement(g$,null,d.createElement(fe,{subtle:!0,disabled:!y,onClick:K,title:"Add this property"},d.createElement(An,null)),d.createElement(Ji,{value:null,disabled:A,setSubject:(R,$)=>{w(R)},error:m,setError:S,classType:oe.classes.property}))),d.createElement(S0,{parentResource:n}),d.createElement(fe,{title:"show / hide advanced form fields",clean:!0,style:{display:"flex",marginBottom:"1rem",alignItems:"center"},onClick:()=>P(!k)},d.createElement("strong",null,"advanced options ",k?d.createElement(Fd,null):d.createElement(z3,null))),k&&d.createElement(d.Fragment,null,d.createElement(Mr,{propertyURL:J.isA,resource:n}),d.createElement(Mr,{propertyURL:J.parent,resource:n}),d.createElement(Mr,{propertyURL:J.write,resource:n}),d.createElement(Mr,{propertyURL:J.read,resource:n})),f&&d.createElement(Ge,null,f.message),d.createElement(fe,{onClick:H,disabled:A||_,"data-test":"save"},_?"wait...":"save"),A&&d.createElement(fe,{subtle:!0,onClick:()=>T(!1)},"enable editing"))}var g$=ne.div`
+ display: flex;
+ flex-direction: row;
+`;function y$(){let[e]=Ti("classSubject",Kn),[t,r]=ee(null),[n,i]=ee(null),a=qe(),o=xe(t),[s]=he(o,oe.properties.shortname),{agent:u}=We();function l(f){f.preventDefault(),a.push(Qo(t,u?.subject))}return d.createElement(ze,null,e?d.createElement(v$,{classSubject:e}):d.createElement("form",{onSubmit:l},d.createElement("h1",null,"Create something new"),d.createElement(Ji,{setSubject:r,value:t,error:n,setError:i,classType:oe.classes.class}),d.createElement("br",null),t&&d.createElement(fe,{onClick:l},"new ",s),!t&&d.createElement(d.Fragment,null,d.createElement(ai,{klass:oe.classes.document,subtle:!0}),d.createElement(ai,{klass:oe.classes.class,subtle:!0}),d.createElement(ai,{klass:oe.classes.property,subtle:!0}))))}function v$({classSubject:e}){let t=xe(e),[r,n]=Ti("newSubject",Kn),[i]=Ti("parent",Kn),a=De(t),[o]=he(t,J.shortname),[s]=he(t,J.description),[u,l]=ee(!1),[f,h]=ee(null),m=Me(),[S,_]=ee(r),b=xe(r,{newResource:!0});Ce(()=>{r==null&&n(m.createSubject(o))},[r]);let[v]=rt(b,J.isA);v.length==0&&b.set(J.isA,[t.getSubject()],m);async function y(w){let x=b.getSubject();if(x!=w){h(null);try{await m.renameSubject(x,w),n(w)}catch(c){h(c)}}}return d.createElement(d.Fragment,null,d.createElement("h2",null,"new ",d.createElement($e,{subject:e},a)," ",d.createElement(fe,{onClick:()=>l(!u),icon:!0,subtle:!u,title:"Toggle show Class details"},d.createElement(Tn,null))),u&&s&&d.createElement(cr,{text:s}),d.createElement(cn,{error:f,label:"subject",helper:"The identifier of the resource. This also determines where the resource is saved, by default."},d.createElement(er,null,d.createElement(Ut,{value:S,onBlur:w=>y(w.target.value),onChange:w=>_(w.target.value),placeholder:"URL of the new resource..."}))),d.createElement(tp,{resource:b,classSubject:e,key:`${e}+${r}`,parent:i}))}var k4=y$;function rp(){return(rp=Object.assign||function(e){for(var t=1;t=0||(i[r]=e[r]);return i}function E0(e){var t=d.useRef(e),r=d.useRef(function(n){t.current&&t.current(n)});return t.current=e,r.current}var kl=function(e,t,r){return t===void 0&&(t=0),r===void 0&&(r=1),e>r?r:e0:v.buttons>0)&&i.current?a(C4(i.current,v,s.current)):b(!1)},_=function(){return b(!1)};function b(v){var y=u.current,w=v?self.addEventListener:self.removeEventListener;w(y?"touchmove":"mousemove",S),w(y?"touchend":"mouseup",_)}return[function(v){var y=v.nativeEvent,w=i.current;if(w&&(R4(y),!function(c,g){return g&&!xl(c)}(y,u.current)&&w)){if(xl(y)){u.current=!0;var x=y.changedTouches||[];x.length&&(s.current=x[0].identifier)}w.focus(),a(C4(w,y,s.current)),b(!0)}},function(v){var y=v.which||v.keyCode;y<37||y>40||(v.preventDefault(),o({left:y===39?.05:y===37?-.05:0,top:y===40?.05:y===38?-.05:0}))},b]},[o,a]),f=l[0],h=l[1],m=l[2];return d.useEffect(function(){return m},[m]),d.createElement("div",rp({},n,{onTouchStart:f,onMouseDown:f,className:"react-colorful__interactive",ref:i,onKeyDown:h,tabIndex:0,role:"slider"}))}),_0=function(e){return e.filter(Boolean).join(" ")},P4=function(e){var t=e.color,r=e.left,n=e.top,i=n===void 0?.5:n,a=_0(["react-colorful__pointer",e.className]);return d.createElement("div",{className:a,style:{top:100*i+"%",left:100*r+"%"}},d.createElement("div",{className:"react-colorful__pointer-fill",style:{backgroundColor:t}}))},Dr=function(e,t,r){return t===void 0&&(t=0),r===void 0&&(r=Math.pow(10,t)),Math.round(r*e)/r},k0=function(e){return e[0]==="#"&&(e=e.substr(1)),e.length<6?{r:parseInt(e[0]+e[0],16),g:parseInt(e[1]+e[1],16),b:parseInt(e[2]+e[2],16),a:1}:{r:parseInt(e.substr(0,2),16),g:parseInt(e.substr(2,2),16),b:parseInt(e.substr(4,2),16),a:1}},b$=function(e){var t=e.s,r=e.v,n=e.a,i=(200-t)*r/100;return{h:Dr(e.h),s:Dr(i>0&&i<200?t*r/100/(i<=100?i:200-i)*100:0),l:Dr(i/2),a:Dr(n,2)}},x0=function(e){var t=b$(e);return"hsl("+t.h+", "+t.s+"%, "+t.l+"%)"},w$=function(e){var t=e.h,r=e.s,n=e.v,i=e.a;t=t/360*6,r/=100,n/=100;var a=Math.floor(t),o=n*(1-r),s=n*(1-(t-a)*r),u=n*(1-(1-t+a)*r),l=a%6;return{r:Dr(255*[n,s,o,o,u,n][l]),g:Dr(255*[u,n,n,s,o,o][l]),b:Dr(255*[o,o,u,n,n,s][l]),a:Dr(i,2)}},C0=function(e){var t=e.toString(16);return t.length<2?"0"+t:t},S$=function(e){var t=e.r,r=e.g,n=e.b,i=e.a,a=Math.max(t,r,n),o=a-Math.min(t,r,n),s=o?a===t?(r-n)/o:a===r?2+(n-t)/o:4+(t-r)/o:0;return{h:Dr(60*(s<0?s+6:s)),s:Dr(a?o/a*100:0),v:Dr(a/255*100),a:i}},E$=d.memo(function(e){var t=e.hue,r=e.onChange,n=_0(["react-colorful__hue",e.className]);return d.createElement("div",{className:n},d.createElement(j4,{onMove:function(i){r({h:360*i.left})},onKey:function(i){r({h:kl(t+360*i.left,0,360)})},"aria-label":"Hue","aria-valuetext":Dr(t)},d.createElement(P4,{className:"react-colorful__hue-pointer",left:t/360,color:x0({h:t,s:100,v:100,a:1})})))}),_$=d.memo(function(e){var t=e.hsva,r=e.onChange,n={backgroundColor:x0({h:t.h,s:100,v:100,a:1})};return d.createElement("div",{className:"react-colorful__saturation",style:n},d.createElement(j4,{onMove:function(i){r({s:100*i.left,v:100-100*i.top})},onKey:function(i){r({s:kl(t.s+100*i.left,0,100),v:kl(t.v-100*i.top,0,100)})},"aria-label":"Color","aria-valuetext":"Saturation "+Dr(t.s)+"%, Brightness "+Dr(t.v)+"%"},d.createElement(P4,{className:"react-colorful__saturation-pointer",top:1-t.v/100,left:t.s/100,color:x0(t)})))}),T4=function(e,t){if(e===t)return!0;for(var r in e)if(e[r]!==t[r])return!1;return!0};function k$(e,t,r){var n=E0(r),i=d.useState(function(){return e.toHsva(t)}),a=i[0],o=i[1],s=d.useRef({color:t,hsva:a});d.useEffect(function(){if(!e.equal(t,s.current.color)){var l=e.toHsva(t);s.current={hsva:l,color:t},o(l)}},[t,e]),d.useEffect(function(){var l;T4(a,s.current.hsva)||e.equal(l=e.fromHsva(a),s.current.color)||(s.current={hsva:a,color:l},n(l))},[a,e,n]);var u=d.useCallback(function(l){o(function(f){return Object.assign({},f,l)})},[]);return[a,u]}var np,x$=typeof window!="undefined"?d.useLayoutEffect:d.useEffect,C$=function(){return typeof __webpack_nonce__!="undefined"?__webpack_nonce__:void 0},R$=function(){x$(function(){if(typeof document!="undefined"&&!np){(np=document.createElement("style")).innerHTML=`.react-colorful{position:relative;display:flex;flex-direction:column;width:200px;height:200px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:default}.react-colorful__saturation{position:relative;flex-grow:1;border-color:transparent;border-bottom:12px solid #000;border-radius:8px 8px 0 0;background-image:linear-gradient(0deg,#000,transparent),linear-gradient(90deg,#fff,hsla(0,0%,100%,0))}.react-colorful__alpha-gradient,.react-colorful__pointer-fill{content:"";position:absolute;left:0;top:0;right:0;bottom:0;pointer-events:none;border-radius:inherit}.react-colorful__alpha-gradient,.react-colorful__saturation{box-shadow:inset 0 0 0 1px rgba(0,0,0,.05)}.react-colorful__alpha,.react-colorful__hue{position:relative;height:24px}.react-colorful__hue{background:linear-gradient(90deg,red 0,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,red)}.react-colorful__last-control{border-radius:0 0 8px 8px}.react-colorful__interactive{position:absolute;left:0;top:0;right:0;bottom:0;border-radius:inherit;outline:none;touch-action:none}.react-colorful__pointer{position:absolute;z-index:1;box-sizing:border-box;width:28px;height:28px;transform:translate(-50%,-50%);background-color:#fff;border:2px solid #fff;border-radius:50%;box-shadow:0 2px 4px rgba(0,0,0,.2)}.react-colorful__interactive:focus .react-colorful__pointer{transform:translate(-50%,-50%) scale(1.1)}.react-colorful__alpha,.react-colorful__alpha-pointer{background-color:#fff;background-image:url('data:image/svg+xml;charset=utf-8,')}.react-colorful__saturation-pointer{z-index:3}.react-colorful__hue-pointer{z-index:2}`;var e=C$();e&&np.setAttribute("nonce",e),document.head.appendChild(np)}},[])},j$=function(e){var t=e.className,r=e.colorModel,n=e.color,i=n===void 0?r.defaultColor:n,a=e.onChange,o=x4(e,["className","colorModel","color","onChange"]);R$();var s=k$(r,i,a),u=s[0],l=s[1],f=_0(["react-colorful",t]);return d.createElement("div",rp({},o,{className:f}),d.createElement(_$,{hsva:u,onChange:l}),d.createElement(E$,{hue:u.h,onChange:l,className:"react-colorful__last-control"}))},P$={defaultColor:"000",toHsva:function(e){return S$(k0(e))},fromHsva:function(e){return r=(t=w$(e)).g,n=t.b,"#"+C0(t.r)+C0(r)+C0(n);var t,r,n},equal:function(e,t){return e.toLowerCase()===t.toLowerCase()||T4(k0(e),k0(t))}},A4=function(e){return d.createElement(j$,rp({},e,{colorModel:P$}))};function ip({top:e,floating:t,title:r}){let{navbarTop:n,setNavbarTop:i,navbarFloating:a,setNavbarFloating:o}=We();return j(T$,{title:r,current:n==e&&a==t,onClick:()=>{i(e),o(t)}},j("svg",{width:"80",height:"80",viewBox:"0 0 80 80",fill:"none",xmlns:"http://www.w3.org/2000/svg"},t?j("rect",{x:"10",y:"60",width:"60",height:"10",rx:"5"}):j("rect",{x:"0",y:e?"0":"70",width:"80",height:"10"})))}var T$=ne.button`
+ rect {
+ fill: ${e=>e.current?e.theme.colors.main:e.theme.colors.bg2};
+ }
+ &:hover {
+ border-color: ${e=>e.theme.colors.mainLight};
+ }
+ &:active {
+ border-color: ${e=>e.theme.colors.mainDark};
+ }
+ background-color: ${e=>e.theme.colors.bg};
+ cursor: pointer;
+ border: solid 1px
+ ${e=>e.current?e.theme.colors.mainLight:e.theme.colors.bg2};
+ margin-right: 1rem;
+ margin-bottom: 1rem;
+ border-radius: ${e=>e.theme.radius};
+ padding: 0;
+ overflow: hidden;
+ line-height: 0;
+`;var O4=()=>{let{darkModeSetting:e,setDarkMode:t}=We();return j(ze,null,j("h1",null,"Theme Settings"),j(Mn,null,"Dark mode"),j(fe,{subtle:e!=Hr.auto,onClick:()=>t(null),title:"Use the browser's / OS dark mode settings"},"🌓 auto"),j(fe,{subtle:e!=Hr.always,onClick:()=>t(!0)},"🌑 on"),j(fe,{subtle:e!=Hr.never,onClick:()=>t(!1)},"🌕 off"),j(Mn,null,"Navigation bar position"),j(ip,{floating:!0,top:!1,title:"Floating"}),j(ip,{floating:!1,top:!1,title:"Bottom"}),j(ip,{floating:!1,top:!0,title:"Top"}),j(Mn,null,"Main color"),j(A$,null),j("br",null))},A$=()=>{let{mainColor:e,setMainColor:t}=We();return j(A4,{color:e,onChange:r=>t(r)})};function I4(){let[e]=Gt(),t=xe(e),r=De(t),[n,i]=ee(null),a=qe();function o(s){s.preventDefault(),a.push(Qo(n))}return d.createElement(ze,null,e?d.createElement(d.Fragment,null,d.createElement("h1",null,"edit ",r),d.createElement(ds,{resource:t}),d.createElement(tp,{resource:t,key:e})):d.createElement("form",{onSubmit:o},d.createElement("h1",null,"edit a resource"),d.createElement(Ut,{value:n||null,onChange:s=>i(s.target.value),placeholder:"Enter a Resource URL..."})))}function O$(){let[e]=Gt(),t=xe(e),[r,n]=ee(null),[i,a]=ee(!1),[o,s]=ee(null),{agent:u}=We(),l=Me();if(t.loading)return d.createElement(ze,null,"Loading ",e,"...");if(t.error)return d.createElement(ze,null,d.createElement(nt,null,t.getError().message));async function f(h){let m=new Headers;m.set("Accept",h),u&&(m=await fd(e,u,m)),a(!0);try{let _=await(await window.fetch(e,{headers:m})).text();a(!1),n(_),s(null)}catch(S){a(!1),s(S)}}return d.createElement(ze,{about:e},d.createElement("h1",null,"data view"),d.createElement(pl,{columns:!0},d.createElement(ml,{title:"The URL of the resource"},"subject:"),d.createElement($e,{subject:e},e)),d.createElement(sn,{resource:t,editable:!0,columns:!0}),t.getCommitBuilder().hasUnsavedChanges()?d.createElement(d.Fragment,null,d.createElement("h2",null,"⚠️ contains uncommitted changes"),d.createElement("p",null,"This means that (some) of your local changes are not yet saved."),t.commitError&&d.createElement(Ge,null,t.commitError.message),d.createElement(fe,{onClick:()=>t.save(l)},"save")):null,d.createElement("div",null,d.createElement("span",null,"Fetch as: "),d.createElement(fe,{subtle:!0,onClick:()=>f("application/ad+json"),"data-test":"fetch-json-ad"},"JSON-AD"),d.createElement(fe,{subtle:!0,onClick:()=>f("application/json"),"data-test":"fetch-json"},"JSON"),d.createElement(fe,{subtle:!0,onClick:()=>f("application/ld+json"),"data-test":"fetch-json-ld"},"JSON-LD"),d.createElement(fe,{subtle:!0,onClick:()=>f("text/turtle"),"data-test":"fetch-turtle"},"Turtle / N-triples / N3")),o&&d.createElement(Ge,null,o.message),!o&&r&&d.createElement(ws,{content:r,loading:i}))}var L4=O$;var M4=()=>j(ze,null,j("h1",null,"Keyboard shortcuts"),j("h3",null,"Global"),j("p",null,j(fr,null,"/")," search"),j("p",null,j(fr,null,"\\")," show or hide the sidebar"),j("p",null,j(fr,null,"?")," show these keyboard shortcuts"),j("p",null,j(fr,null,"e")," ",j("b",null,"e"),"dit resource"),j("p",null,j(fr,null,"d")," show ",j("b",null,"d"),"ata for resource"),j("p",null,j(fr,null,"a")," show ",j("b",null,"a"),"bout page"),j("p",null,j(fr,null,"n")," ",j("b",null,"n"),"ew resource"),j("p",null,j(fr,null,"m")," open ",j("b",null,"m"),"enu"),j("p",null,j(fr,null,"u")," ",j("b",null,"u"),"ser settings"),j("p",null,j(fr,null,"t")," ",j("b",null,"t"),"heme settings"),j("h3",null,"Collections"),j("p",null,j(fr,null,"v")," toggle ",j("b",null,"v"),"iew (table / grid)"),j("h3",null,"Document"),j("p",null,j(fr,null,"alt"),"+",j(fr,null,"up")," move line / section up"),j("p",null,j(fr,null,"alt"),"+",j(fr,null,"down")," move line / section down"),j("p",null,j(fr,null,"ctrl"),"+",j(fr,null,"backspace")," delete line")),fr=ne.code`
+ font-size: 1rem;
+ min-width: 1.7rem;
+ height: 1.7rem;
+ display: inline-flex;
+ padding: 0 0.5rem;
+ align-items: center;
+ justify-content: center;
+ border: solid 1px ${e=>e.theme.colors.bg2};
+ border-radius: 5px;
+ box-sizing: border-box;
+ font-family: monospace;
+`;function I$(){let{pathname:e,search:t}=ja(),r=window.location.origin+e+t;return j(Ss,{key:r,subject:r})}var D4=I$;var L$=()=>{let{agent:e,setAgent:t}=We(),[r,n]=ee(""),[i,a]=ee(""),[o,s]=ee(null),[u,l]=ee(!1),[f,h]=ee(!1),[m,S]=ee(""),_=qe();Ce(()=>{e!==null?v():S("")},[e]),Ce(()=>{b()},[r,i]);function b(){if(e){let p=e.buildSecret();S(p)}}function v(){try{n(e.subject),a(e.privateKey)}catch(p){let k=new Error("Cannot fill subject and privatekey fields."+p);s(k),n("")}}function y(){window.confirm("If you sign out, your secret will be removed. If you haven't saved your secret somewhere, you will lose access to this User. Are you sure you want to sign out?")&&(t(null),s(null),n(""),a(""))}function w(p,k){JSON.stringify(p)!==JSON.stringify(k)&&t(k)}async function x(){b(),s(null);try{let p=new vn(i,r);await p.getPublicKey(),await p.checkPublicKey(),w(e,p)}catch(p){let k=new Error("Invalid Agent"+p);s(k)}}function c(){navigator.clipboard.writeText(m)}async function g(p){if(S(p),p==""){S(""),s(null);return}s(null);try{let k=vn.fromSecret(p);w(e,k),a(k.privateKey),n(k.subject)}catch(k){let P=new Error("Invalid secret. "+k);s(P)}}return j(ze,null,j("form",null,j("h1",null,"User Settings"),j("p",null,"An Agent is a user, consisting of a Subject (its URL) and Private Key. Together, these can be used to edit data and sign Commits."),e?j(yt,null,j(Mn,null,j(ts,null)," You","'","re signed in as"),j("p",null,j(ut,{subject:e.subject})),j(fe,{onClick:()=>_.push(Jo(e.subject))},"Edit profile"),j(GE,null)):j("p",null,"You can create your own Agent by hosting an"," ",j($e,{href:"https://github.com/joepio/atomic/tree/master/server"},"atomic-server"),". Alternatively, you can use"," ",j($e,{subject:"https://atomicdata.dev/invites"},"an Invite")," ","to get a guest Agent on someone else","'s"," Atomic Server."),j(cn,{label:e?"Agent Secret":"Enter your Agent Secret",helper:"The Agent Secret is a long string of characters that encodes both the Subject and the Private Key. You can think of it as a combined username + password. Store it safely, and don't share it with others.",error:o},j(er,null,j(Ut,{value:m,onChange:p=>g(p.target.value),type:u?"text":"password",disabled:e!==null,name:"secret",id:"current-password",autoComplete:"current-password"}),j(ri,{type:"button",title:u?"Hide secret":"Show secret",onClick:()=>l(!u)},u?j(Bg,null):j(Wu,null)),j(ri,{type:"button",title:f?"Hide advanced":"Show advanced",onClick:()=>h(!f)},j(Bd,null)),e&&j(ri,{type:"button",onClick:c},"copy"))),f?j(yt,null,j(cn,{label:"Subject URL",helper:"The link to your Agent, e.g. https://atomicdata.dev/agents/someAgent"},j(er,null,j(Ut,{disabled:e!==null,value:r,onChange:p=>{n(p.target.value),x()}}))),j(cn,{label:"Private Key",helper:"The private key of the Agent, which is a Base64 encoded string."},j(er,null,j(Ut,{disabled:e!==null,type:u?"text":"password",value:i,onChange:p=>{a(p.target.value),x()}}),j(ri,{type:"button",title:u?"Hide private key":"Show private key",onClick:()=>l(!u)},u?j(Bg,null):j(Wu,null))))):null,e&&j(fe,{subtle:!0,title:"Sign out with current Agent and reset this form",onClick:y,"data-test":"sign-out"},"sign out")))},F4=L$;function B4(){let{baseURL:e,setBaseURL:t}=We(),[r,n]=ee(e),[i,a]=ee(null);function o(s){try{t(s),n(s)}catch(u){a(u)}}return j(ze,null,j("h2",null,"Current Server"),j("p",null,"The Server is the machine hosting Atomic Data. It is the item shown in the sidebar. If you create something new, this is where it will be created by default."),j(cf,null,j(Mn,null,"Server URL"),j(er,null,j(Ut,{"data-test":"server-url-input",value:r,onChange:s=>n(s.target.value)}))),j(Ge,null,i),j(fe,{onClick:()=>o(r),disabled:e==r,"data-test":"server-url-save"},"save"),j("p",null,"Or use:"),j(fe,{onClick:()=>o("https://atomicdata.dev"),subtle:!0,"data-test":"server-url-atomic"},"AtomicData.dev"),j(fe,{onClick:()=>o("http://localhost:9883"),subtle:!0,title:"Set to the default URL of a locally hosted Atomic-Server, at port 9883.","data-test":"server-url-localhost"},"localhost"),j(fe,{onClick:()=>o(window.location.origin),subtle:!0},window.location.origin))}function N4({target:e}){let t=xe(null,{newResource:!0}),r=Me(),[n,i]=ee(null),[a,o]=ee(null);async function s(){await t.set(J.isA,[oe.classes.invite],r),await t.set(J.read,[oe.instances.publicAgent],r),await t.set(J.invite.target,e.getSubject(),r),t.setSubject(r.createSubject("invite"));try{await t.set(J.parent,`${r.getServerUrl()}/invites`,r),await t.save(r),navigator.clipboard.writeText(t.getSubject()),mt.success("Copied to clipboard"),o(t.getSubject())}catch(u){i(u)}}return t.new?d.createElement(Fn,null,d.createElement(Mr,{propertyURL:oe.properties.invite.usagesLeft,resource:t}),d.createElement(Mr,{propertyURL:oe.properties.description,resource:t}),d.createElement(Mr,{propertyURL:oe.properties.invite.write,resource:t}),d.createElement(fe,{onClick:s},"Create Invite"),n&&d.createElement("p",null,d.createElement(nt,null,n.message))):d.createElement(Fn,null,d.createElement("p",null,"Invite created and copied to clipboard! Send it to your buddy:"),d.createElement(ws,{content:a,"data-test":"invite-code"}))}function U4(){let[e]=Gt(),t=xe(e),r=De(t),n=Me(),[i]=Vo(t),[a,o]=ee(!1),[s,u]=rt(t,oe.properties.write),[l,f]=rt(t,oe.properties.read),[h,m]=ee([]);Ce(()=>{async function b(){let w=(await t.getRights(n)).filter(x=>x.setIn!==e).sort((x,c)=>x.for===oe.instances.publicAgent?-1:1);m(w)}b()},[t]);function S(b,v,y){let w=v?s:l;y?(w=w.filter(x=>x!==b),w.push(b)):w=w.filter(x=>x!==b),v?u(w):f(w)}function _(){let b=new Map;b.set(oe.instances.publicAgent,{read:!1,write:!1}),l.map(w=>{b.set(w,{read:!0,write:!1})}),s.map(w=>{let x=b.get(w);b.set(w,{read:x?x.read:!1,write:!0})});let v=[];return b.forEach((w,x)=>{v.push({agentSubject:x,read:w.read,write:w.write})}),v.sort(w=>w.agentSubject===oe.instances.publicAgent?-1:1)}return d.createElement(ze,null,d.createElement("h1",null,d.createElement("code",null,"share settings for")," ",r),i&&!a&&d.createElement(fe,{onClick:()=>o(!0)},"Send Invite..."),a&&d.createElement(N4,{target:t}),d.createElement(Fn,null,d.createElement($4,{text:"rights set here:"}),d.createElement(Wa,null,_().map(b=>d.createElement(z4,{key:JSON.stringify(b),...b,handleSetRight:i&&S})))),i&&d.createElement(fe,{disabled:!t.getCommitBuilder().hasUnsavedChanges(),onClick:()=>t.save(n)},"Save"),h.length>0&&d.createElement(Fn,null,d.createElement($4,{text:"inherited rights:"}),d.createElement(Wa,null,h.map(b=>d.createElement(z4,{inheritedFrom:b.setIn,key:b.for+b.type,read:b.type=="read",write:b.type=="write",agentSubject:b.for})))))}function z4(e){return d.createElement(ia,null,d.createElement("div",{style:{display:"flex"}},d.createElement("div",{style:{flex:1}},e.agentSubject===oe.instances.publicAgent?d.createElement(d.Fragment,null,d.createElement(V3,null)," Public (anyone)"," "):d.createElement(ut,{subject:e.agentSubject}),e.inheritedFrom&&d.createElement(d.Fragment,null," (via ",d.createElement(ut,{subject:e.inheritedFrom}),") ")),d.createElement("div",{style:{alignSelf:"flex-end"}},d.createElement(H4,{type:"checkbox",disabled:!e.handleSetRight,onChange:t=>e.handleSetRight(e.agentSubject,!1,t.target.checked),checked:e.read,title:e.read?"Read access. Toggle to remove access.":"No read access. Toggle to give read access."}),d.createElement(H4,{type:"checkbox",disabled:!e.handleSetRight,onChange:t=>e.handleSetRight(e.agentSubject,!0,t.target.checked),checked:e.write,title:e.write?"Write access. Toggle to remove access.":"No write access. Toggle to give write access."}))))}var H4=ne.input`
+ width: 2rem;
+`;function $4({text:e}){return d.createElement("div",{style:{display:"flex",flexDirection:"row",flex:1,marginBottom:"1rem"}},d.createElement("div",{style:{flex:1,fontWeight:"bold"}},e),d.createElement("div",{style:{alignSelf:"flex-end",justifyContent:"center"}},d.createElement("span",null,"read "),d.createElement("span",null,"write")))}function V4(){return d.createElement(Ih,null,d.createElement(sr,{path:Fe.new},d.createElement(k4,null)),d.createElement(sr,{path:Fe.themeSettings},d.createElement(O4,null)),d.createElement(sr,{path:Fe.agentSettings},d.createElement(F4,null)),d.createElement(sr,{path:Fe.serverSettings},d.createElement(B4,null)),d.createElement(sr,{path:Fe.shortcuts},d.createElement(M4,null)),d.createElement(sr,{path:Fe.data},d.createElement(L4,null)),d.createElement(sr,{path:Fe.edit},d.createElement(I4,null)),d.createElement(sr,{path:Fe.share},d.createElement(U4,null)),d.createElement(sr,{path:Fe.show},d.createElement(_4,null)),d.createElement(sr,{path:Fe.about},d.createElement(ep,null)),d.createElement(sr,{path:Fe.search,component:Zf}),d.createElement(sr,{path:"/:path",component:D4}),d.createElement(sr,{exact:!0,path:""},d.createElement(Ss,{subject:window.location.origin})))}var W4=()=>{let e=Vt(null);return[e,()=>{e.current&&e.current.focus()}]};function K4(e,t){let[r,n]=ee(t);return Ce(()=>{let i=a=>{e.current!==null&&!e.current.contains(a.target)&&n(!r)};return r&&window.addEventListener("click",i),()=>{window.removeEventListener("click",i)}},[r,e]),[r,n]}function q4({items:e}){let t=Vt(null),r=Vt(null),[n,i]=K4(r,!1),[a,o]=ee(0),[s,u]=ee(0),[l,f]=ee(0),h=e.length,[m,S]=ee(!1);Ae("esc",()=>{b()},{enabled:n}),Ae("m",()=>{_(),S(!0)},{},[n]),Ae("enter",v=>{v.preventDefault(),e[l].onClick(),b()},{enabled:n},[l]),Ae("up",v=>{v.preventDefault(),S(!0);let y=l>0?l-1:h-1;f(y)},{enabled:n},[l]),Ae("down",v=>{v.preventDefault(),S(!0);let y=l==h-1?0:l+1;return f(y),!1},{enabled:n},[l]);function _(){console.log("toggle",n);let v=r.current.getBoundingClientRect(),y=t.current.getBoundingClientRect(),w=v.y-y.height;w<0?u(v.y+v.height):u(w),v.x-y.width<0?o(v.x):o(v.x-y.width+v.width),n?b():i(!0)}function b(){i(!1),S(!1),f(0)}return d.createElement(d.Fragment,null,d.createElement(Ki,{selected:n,ref:r,title:"Open menu (m)",type:"button","data-test":"context-menu",onClick:()=>{S(!1),_()}},d.createElement(H3,null)),d.createElement(D$,{ref:t,isActive:n,x:a,y:s},e.map(({label:v,onClick:y,helper:w,id:x,disabled:c},g)=>d.createElement(M$,{onClick:()=>{b(),y()},disabled:c,key:x,helper:w,label:v,selected:m&&l==g}))))}function M$({onClick:e,label:t,selected:r,helper:n,disabled:i}){return d.createElement(F$,{clean:!0,onClick:e,selected:r,title:n,disabled:i},t)}var F$=ne(fe)`
+ display: block;
+ height: 2rem;
+ width: 100%;
+ text-align: left;
+ color: ${e=>e.theme.colors.text};
+ padding: 0.4rem 0.7rem;
+ height: auto;
+ background-color: ${e=>e.selected?e.theme.colors.bg1:e.theme.colors.bg};
+ text-decoration: ${e=>e.selected?"underline":"none"};
+
+ &:hover {
+ background-color: ${e=>e.theme.colors.bg1};
+ }
+ &:active {
+ background-color: ${e=>e.theme.colors.bg2};
+ }
+ &:disabled {
+ color: ${e=>e.theme.colors.textLight};
+ &:hover {
+ cursor: 'default';
+ }
+ background-color: ${e=>e.theme.colors.bg};
+ }
+`,D$=ne.nav`
+ overflow: hidden;
+ background: ${e=>e.theme.colors.bg};
+ border: solid 1px ${e=>e.theme.colors.bg2};
+ padding-top: 0.4rem;
+ padding-bottom: 0.4rem;
+ border-radius: 8px;
+ position: fixed;
+ z-index: 1;
+ top: ${e=>e.y}px;
+ left: ${e=>e.x}px;
+ width: auto;
+ box-shadow: ${e=>e.theme.boxShadowIntense};
+ opacity: ${e=>e.isActive?1:0};
+ visibility: ${e=>e.isActive?"visible":"hidden"};
+`;function B$({subject:e,hide:t}){let r=Me(),n=qe();if(e==null||!gn(e))return null;async function i(){if(window.confirm("Are you sure you want to permanently delete this resource?")){let s=r.getResourceLoading(e);try{await s.destroy(r),mt.success("Resource deleted!"),n.push("/")}catch(u){mt.error(u.message)}}}let a=[{disabled:n.location.pathname.startsWith(Fe.show),id:"view",label:"normal view",helper:"Open the regular, default View.",onClick:()=>n.push(Lt(e))},{disabled:n.location.pathname.startsWith(Fe.data),id:"data",label:"data view",helper:"View the resource and its properties in the Data View. (d)",onClick:()=>n.push(Ld(e))},{id:"refresh",label:"refresh",helper:"Fetch the resouce again from the server, possibly see new changes.",onClick:()=>r.fetchResource(e)},{id:"edit",label:"edit",helper:"Open the edit form. (e)",onClick:()=>n.push(Jo(e))},{id:"share",label:"share",helper:"Open the share menu",onClick:()=>n.push(L3(e))},{id:"delete",label:"delete",helper:"Fetch the resouce again from the server, possibly see new changes.",onClick:i},{id:"versions",label:"versions",helper:"Show the versions of this resource",onClick:()=>n.push(M3(e,r.getServerUrl()))}],o=t?a.filter(s=>!t.includes(s.id)):a;return d.createElement(q4,{items:o})}var G4=B$;function X4({children:e}){let{navbarTop:t,navbarFloating:r}=We(),n=Vt(null),i=ja();return Ce(()=>{n?.current?.scrollTo(0,0)},[i]),j(yt,null,t&&j(Y4,null),j(z$,null,j(r8,null),j(N$,{ref:n,navbarTop:t,navbarFloating:r},e)),!t&&j(Y4,null))}var N$=ne.div`
+ display: block;
+ flex: 1;
+ margin-top: ${e=>e.navbarTop?"2rem":"0"};
+ margin-bottom: ${e=>e.navbarTop||e.navbarFloating?"0":"2rem"};
+ overflow-y: auto;
+ /* For smooth navbar position adjustments */
+ transition: margin 0.2s;
+`;function Y4(){let[e]=Gt(),[t,r]=ee(""),[n]=Id(),i=qe(),[a,o]=W4(),{navbarTop:s,navbarFloating:u,sideBarLocked:l,setSideBarLocked:f,agent:h}=We(),[m,S]=ee(!0);Ce(()=>{r(n)},[n]),Ce(()=>{!n&&r(e)},[e,n]),Ae("/",g=>{g.preventDefault(),a.current.select()}),Ae("esc",g=>{g.preventDefault(),a.current.blur()},{enableOnTags:["INPUT"]}),Ae("/",g=>{g.preventDefault(),o()});function _(g){r(g.target.value);try{Ir(g.target.value),i.replace(Lt(g.target.value))}catch(p){i.replace(I3(g.target.value))}}function b(g){g.target.select()}let v=()=>window.matchMedia("(display-mode: standalone)").matches||window.navigator.standalone||document.referrer.includes("android-app://")||Ud(),y=g=>{g.preventDefault(),a.current.blur(),document.activeElement.blur(),w(Lt(e))},w=g=>{i.push(g)};function x(){a.current.getBoundingClientRect().width<280&&S(!1)}return j(u?$$:U$,{top:s,floating:u,onSubmit:y,autoComplete:"off"},m&&j(yt,null,j(Ki,{leftPadding:!0,type:"button",onClick:()=>f(!l),title:"Show / hide sidebar (\\)","data-test":"sidebar-toggle"},j(N3,null)),j(Ki,{type:"button",onClick:()=>w(Fe.about),title:"Show about page (a)"},j(Tn,null)),h&&j(Ki,{"data-test":"navbar-current-user",type:"button",onClick:()=>w(Fe.agentSettings),title:"Show current User (u)"},j(ts,null)),v()&&j(yt,null,j(Ki,{type:"button",title:"Go back",onClick:i.goBack},j(Md,null))," ",j(Ki,{type:"button",title:"Go forward",onClick:i.goForward},j(Dd,null))),m&&e&&j(G4,{subject:e})),j("input",{autoComplete:"false",ref:a,type:"text","data-test":"address-bar",name:"search","aria-label":"Search",onClick:b,onFocus:x,onBlur:()=>S(!0),value:t||"",onChange:_,placeholder:'Enter an Atomic URL or search (press "/" )'}))}var Q4=ne.form`
+ /* transition: all 0.2s; */
+ position: fixed;
+ z-index: 100;
+ height: 2.5rem;
+ display: flex;
+ border: solid 1px ${e=>e.theme.colors.bg2};
+ background-color: ${e=>e.theme.colors.bg};
+
+ /* Search bar and buttons */
+ input {
+ border: none;
+ font-size: 0.9rem;
+ padding: 0.4rem 1.2rem;
+ color: ${e=>e.theme.colors.text};
+ }
+
+ /* Search bar */
+ input[type='text'] {
+ flex: 1;
+ min-width: 1rem;
+ background-color: ${e=>e.theme.colors.bg};
+ outline: 0;
+ border-radius: 999px;
+ color: ${e=>e.theme.colors.textLight};
+
+ &:hover {
+ color: ${e=>e.theme.colors.text};
+ box-shadow: inset 0 0 0 2px
+ ${e=>a3(.6,e.theme.colors.main)};
+ }
+
+ &:focus {
+ color: ${e=>e.theme.colors.text};
+ outline: none;
+ box-shadow: inset 0 0 0 2px ${e=>e.theme.colors.main};
+ /* border-radius: ${e=>e.theme.radius}; */
+ box-sizing: border-box;
+ /* outline-offset: -1px; */
+ }
+ }
+`,$$=ne(Q4)`
+ box-shadow: ${e=>e.theme.boxShadow};
+ box-sizing: border-box;
+ border-radius: 999px;
+ overflow: hidden;
+ max-width: calc(100% - 2rem);
+ width: ${e=>e.theme.containerWidth+1}rem;
+ margin: auto;
+ /* Center fixed item */
+ left: 50%;
+ margin-left: -${e=>(e.theme.containerWidth+1)/2}rem;
+ margin-right: -${e=>(e.theme.containerWidth+1)/2}rem;
+ top: ${e=>e.top?"2rem":"auto"};
+ bottom: ${e=>e.top?"auto":"2rem"};
+
+ @media (max-width: ${e=>e.theme.containerWidth}rem) {
+ max-width: calc(100% - 1rem);
+ left: auto;
+ right: auto;
+ margin-left: 0.5rem;
+ bottom: 0.5rem;
+ }
+`,U$=ne(Q4)`
+ top: ${e=>e.top?"0":"auto"};
+ bottom: ${e=>e.top?"auto":"0"};
+ left: 0;
+ right: 0;
+ border-width: 0;
+ border-bottom: ${e=>e.top?"solid 1px "+e.theme.colors.bg2:"none"};
+ border-top: ${e=>e.top?"none":"solid 1px "+e.theme.colors.bg2};
+`,z$=ne("div")`
+ display: flex;
+ height: 100vh;
+ position: fixed;
+ top: 0;
+ bottom: 0;
+ left: 0;
+ right: 0;
+`;function J4(){let{mainColor:e,darkMode:t}=We(),[r]=Gt(),n=xe(r),i=De(n),[a]=he(n,J.description),o=n.isReady();return i=o&&i?i:"Atomic Data",a=o&&a?a:"The easiest way to create and share linked data.",d.createElement(Ii,null,d.createElement("title",null,i),d.createElement("meta",{name:"theme-color",content:t?"black":"white"}),d.createElement("meta",{name:"theme-color",content:t?"black":"white"}),d.createElement("meta",{name:"apple-mobile-web-app-status-bar-style",content:t?"black":"default"}),d.createElement("meta",{name:"msapplication-TileColor",content:e}),d.createElement("meta",{name:"description",content:a}),d.createElement("meta",{property:"og:title",content:i}),d.createElement("meta",{property:"og:description",content:a}),d.createElement("meta",{property:"og:url",content:r}))}function Z4(){let e=Z2();return d.createElement(R3,{position:"bottom-right",toastOptions:{style:{background:e.colors.bg,color:e.colors.text,wordBreak:"break-word"}}},t=>d.createElement(Lg,{toast:t,style:{...t.style,border:`solid 1px ${e.colors.bg2}`,position:"relative",animation:t.visible?"toast-enter .5s ease":"toast-exit 1s ease"}},({icon:r,message:n})=>d.createElement(d.Fragment,null,r,n,t.type!=="loading"&&d.createElement(fe,{title:"Clear",noMargins:!0,subtle:!0,onClick:()=>mt.dismiss(t.id)},d.createElement(zd,null)))))}function Es(){return G0=="development"}var H$=le(function(e,t){(function(r){e.exports=r()})(function(){var r=["navigation","request","process","log","user","state","error","manual"],n=function(C,O,F){for(var D=F,U=0,Y=C.length;U=C&&F<=O}},h=function(C){return typeof C=="function"||o(C)&&i(C,function(O){return typeof O=="function"}).length===C.length},m=function(C){return typeof C=="string"&&!!C.length},S={},_=function(){return{unhandledExceptions:!0,unhandledRejections:!0}};S.schema={apiKey:{defaultValue:function(){return null},message:"is required",validate:m},appVersion:{defaultValue:function(){},message:"should be a string",validate:function(C){return C===void 0||m(C)}},appType:{defaultValue:function(){},message:"should be a string",validate:function(C){return C===void 0||m(C)}},autoDetectErrors:{defaultValue:function(){return!0},message:"should be true|false",validate:function(C){return C===!0||C===!1}},enabledErrorTypes:{defaultValue:function(){return _()},message:"should be an object containing the flags { unhandledExceptions:true|false, unhandledRejections:true|false }",allowPartialObject:!0,validate:function(C){if(typeof C!="object"||!C)return!1;var O=l(C),F=l(_());return!(i(O,function(D){return a(F,D)}).length0)}},onError:{defaultValue:function(){return[]},message:"should be a function or array of functions",validate:h},onSession:{defaultValue:function(){return[]},message:"should be a function or array of functions",validate:h},onBreadcrumb:{defaultValue:function(){return[]},message:"should be a function or array of functions",validate:h},endpoints:{defaultValue:function(){return{notify:"https://notify.bugsnag.com",sessions:"https://sessions.bugsnag.com"}},message:"should be an object containing endpoint URLs { notify, sessions }",validate:function(C){return C&&typeof C=="object"&&m(C.notify)&&m(C.sessions)&&i(l(C),function(O){return!a(["notify","sessions"],O)}).length===0}},autoTrackSessions:{defaultValue:function(C){return!0},message:"should be true|false",validate:function(C){return C===!0||C===!1}},enabledReleaseStages:{defaultValue:function(){return null},message:"should be an array of strings",validate:function(C){return C===null||o(C)&&i(C,function(O){return typeof O=="string"}).length===C.length}},releaseStage:{defaultValue:function(){return"production"},message:"should be a string",validate:function(C){return typeof C=="string"&&C.length}},maxBreadcrumbs:{defaultValue:function(){return 25},message:"should be a number ≤100",validate:function(C){return f(0,100)(C)}},enabledBreadcrumbTypes:{defaultValue:function(){return r},message:"should be null or a list of available breadcrumb types ("+r.join(",")+")",validate:function(C){return C===null||o(C)&&n(C,function(O,F){return O===!1?O:a(r,F)},!0)}},context:{defaultValue:function(){},message:"should be a string",validate:function(C){return C===void 0||typeof C=="string"}},user:{defaultValue:function(){return{}},message:"should be an object with { id, email, name } properties",validate:function(C){return C===null||C&&n(l(C),function(O,F){return O&&a(["id","email","name"],F)},!0)}},metadata:{defaultValue:function(){return{}},message:"should be an object",validate:function(C){return typeof C=="object"&&C!==null}},logger:{defaultValue:function(){},message:"should be null or an object with methods { debug, info, warn, error }",validate:function(C){return!C||C&&n(["debug","info","warn","error"],function(O,F){return O&&typeof C[F]=="function"},!0)}},redactedKeys:{defaultValue:function(){return["password"]},message:"should be an array of strings|regexes",validate:function(C){return o(C)&&C.length===i(C,function(O){return typeof O=="string"||O&&typeof O.test=="function"}).length}},plugins:{defaultValue:function(){return[]},message:"should be an array of plugin objects",validate:function(C){return o(C)&&C.length===i(C,function(O){return O&&typeof O=="object"&&typeof O.load=="function"}).length}}};var b=function(C){for(var O=1;O-1&&(ae=ae.replace(/eval code/g,"eval").replace(/(\(eval at [^\()]*)|(\)\,.*$)/g,""));var ve=ae.replace(/^\s+/,"").replace(/\(eval code/g,"("),me=ve.match(/ (\((.+):(\d+):(\d+)\)$)/);ve=me?ve.replace(me[0],""):ve;var Oe=ve.split(/\s+/).slice(1),ge=this.extractLocation(me?me[1]:Oe.pop()),Ze=Oe.join(" ")||void 0,Pt=["eval",""].indexOf(ge[0])>-1?void 0:ge[0];return new O({functionName:Ze,fileName:Pt,lineNumber:ge[1],columnNumber:ge[2],source:ae})},this)},parseFFOrSafari:function(Z){var pe=Z.stack.split(`
+`).filter(function(ae){return!ae.match(U)},this);return pe.map(function(ae){if(ae.indexOf(" > eval")>-1&&(ae=ae.replace(/ line (\d+)(?: > eval line \d+)* > eval\:\d+\:\d+/g,":$1")),ae.indexOf("@")===-1&&ae.indexOf(":")===-1)return new O({functionName:ae});var ve=/((.*".+"[^@]*)?[^@]*)(?:@)/,me=ae.match(ve),Oe=me&&me[1]?me[1]:void 0,ge=this.extractLocation(ae.replace(ve,""));return new O({functionName:Oe,fileName:ge[0],lineNumber:ge[1],columnNumber:ge[2],source:ae})},this)},parseOpera:function(Z){return!Z.stacktrace||Z.message.indexOf(`
+`)>-1&&Z.message.split(`
+`).length>Z.stacktrace.split(`
+`).length?this.parseOpera9(Z):Z.stack?this.parseOpera11(Z):this.parseOpera10(Z)},parseOpera9:function(Z){for(var pe=/Line (\d+).*script (?:in )?(\S+)/i,ae=Z.message.split(`
+`),ve=[],me=2,Oe=ae.length;me/,"$2").replace(/\([^\)]*\)/g,"")||void 0,Ze;Oe.match(/\(([^\)]*)\)/)&&(Ze=Oe.replace(/^[^\(]+\(([^\)]*)\)$/,"$1"));var Pt=Ze===void 0||Ze==="[arguments not available]"?void 0:Ze.split(",");return new O({functionName:ge,args:Pt,fileName:me[0],lineNumber:me[1],columnNumber:me[2],source:ae})},this)}}});var A=P,T=function(C){return!!C&&(!!C.stack||!!C.stacktrace||!!C["opera#sourceloc"])&&typeof(C.stack||C.stacktrace||C["opera#sourceloc"])=="string"&&C.stack!==C.name+": "+C.message},M=W;function W(C){switch(Object.prototype.toString.call(C)){case"[object Error]":return!0;case"[object Exception]":return!0;case"[object DOMException]":return!0;default:return C instanceof Error}}var K=M,H=function(C,O,F,D){var U;if(!!O){var Y;if(F===null)return R(C,O);typeof F=="object"&&(Y=F),typeof F=="string"&&(Y=(U={},U[F]=D,U)),!!Y&&(C[O]||(C[O]={}),C[O]=b({},C[O],Y))}},L=function(C,O,F){if(typeof O=="string"){if(!F)return C[O];if(C[O])return C[O][F]}},R=function(C,O,F){if(typeof O=="string"){if(!F){delete C[O];return}C[O]&&delete C[O][F]}},$={add:H,get:L,clear:R},I={};(function(C,O){typeof I=="object"?I=O(k):C.StackGenerator=O(C.StackFrame)})(this,function(C){return{backtrace:function(F){var D=[],U=10;typeof F=="object"&&typeof F.maxStackSize=="number"&&(U=F.maxStackSize);for(var Y=arguments.callee;Y&&D.length-1&&!O.file&&!O.method&&(O.file="global code"),O},E=function(C){return/^global code$/i.test(C)?"global code":C},N=function(){return{unhandled:!1,severity:"warning",severityReason:{type:"handledException"}}},V=function(C){return typeof C=="string"?C:""};B.getStacktrace=function(C,O,F){if(T(C))return A.parse(C).slice(O);try{return i(I.backtrace(),function(D){return(D.functionName||"").indexOf("StackGenerator$$")===-1}).slice(1+F)}catch(D){return[]}},B.create=function(C,O,F,D,U,Y){U===void 0&&(U=0);var Z=X(C,O,D,Y),pe=Z[0],ae=Z[1],ve;try{var me=B.getStacktrace(pe,ae>0?1+ae+U:0,1+U);ve=new B(pe.name,pe.message,me,F,C)}catch(Oe){ve=new B(pe.name,pe.message,[],F,C)}return pe.name==="InvalidError"&&ve.addMetadata(""+D,"non-error parameter",q(C)),ve};var q=function(C){return C===null?"null":C===void 0?"undefined":C},X=function(C,O,F,D){var U,Y=0,Z=function(pe){D&&D.warn(F+' received a non-error: "'+pe+'"');var ae=new Error(F+' received a non-error. See "'+F+'" tab for more detail.');return ae.name="InvalidError",ae};if(!O)K(C)?U=C:(U=Z(typeof C),Y+=2);else switch(typeof C){case"string":case"number":case"boolean":U=new Error(String(C)),Y+=1;break;case"function":U=Z("function"),Y+=2;break;case"object":C!==null&&K(C)?U=C:C!==null&&z(C)?(U=new Error(C.message||C.errorMessage),U.name=C.name||C.errorClass,Y+=1):(U=Z(C===null?"null":"unsupported object"),Y+=2);break;default:U=Z("nothing"),Y+=2}if(!T(U))try{throw U}catch(pe){T(pe)&&(U=pe,Y=1)}return[U,Y]};B.__type="browserjs";var z=function(C){return(typeof C.name=="string"||typeof C.errorClass=="string")&&(typeof C.message=="string"||typeof C.errorMessage=="string")},ie=B,te=function(C,O,F){var D=0,U=function(){if(D>=C.length)return F(null,!0);O(C[D],function(Y,Z){if(Y)return F(Y);if(Z===!1)return F(null,!1);D++,U()})};U()},ke=function(C,O,F,D){var U=function(Y,Z){if(typeof Y!="function")return Z(null);try{if(Y.length!==2){var pe=Y(O);return pe&&typeof pe.then=="function"?pe.then(function(ae){return setTimeout(function(){return Z(null,ae)})},function(ae){setTimeout(function(){return F(ae),Z(null,!0)})}):Z(null,pe)}Y(O,function(ae,ve){if(ae)return F(ae),Z(null);Z(null,ve)})}catch(ae){F(ae),Z(null)}};te(C,U,D)},Se=function(C,O,F,D){for(var U=!1,Y=C.slice();!U&&Y.length;)try{U=Y.pop()(O)===!1}catch(Z){D.error("Error occurred in "+F+" callback, continuing anyway…"),D.error(Z)}return U},Pe=function(O,F){var D="000000000"+O;return D.substr(D.length-F)},_e=typeof window=="object"?window:self,it=0;for(var gt in _e)Object.hasOwnProperty.call(_e,gt)&&it++;var Te=navigator.mimeTypes?navigator.mimeTypes.length:0,pt=Pe((Te+navigator.userAgent.length).toString(36)+it.toString(36),4),se=function(){return pt},ye=0,tt=4,He=36,xt=Math.pow(He,tt);function Bt(){return Pe((Math.random()*xt<<0).toString(He),tt)}function ot(){return ye=yethis._config.maxBreadcrumbs&&(this._breadcrumbs=this._breadcrumbs.slice(this._breadcrumbs.length-this._config.maxBreadcrumbs))}},O._isBreadcrumbTypeEnabled=function(D){var U=this._config.enabledBreadcrumbTypes;return U===null||a(U,D)},O.notify=function(D,U,Y){Y===void 0&&(Y=vt);var Z=ie.create(D,!0,void 0,"notify()",this._depth+1,this._logger);this._notify(Z,U,Y)},O._notify=function(D,U,Y){var Z=this;if(Y===void 0&&(Y=vt),D.app=b({},D.app,{releaseStage:this._config.releaseStage,version:this._config.appVersion,type:this._config.appType}),D.context=D.context||this._context,D._metadata=b({},D._metadata,this._metadata),D._user=b({},D._user,this._user),D.breadcrumbs=this._breadcrumbs.slice(),this._config.enabledReleaseStages!==null&&!a(this._config.enabledReleaseStages,this._config.releaseStage))return this._logger.warn("Event not sent due to releaseStage/enabledReleaseStages configuration"),Y(null,D);var pe=D.severity,ae=function(me){Z._logger.error("Error occurred in onError callback, continuing anyway…"),Z._logger.error(me)},ve=[].concat(this._cbs.e).concat(U);ke(ve,D,ae,function(me,Oe){if(me&&ae(me),!Oe)return Z._logger.debug("Event not sent due to onError callback"),Y(null,D);Z._isBreadcrumbTypeEnabled("error")&&C.prototype.leaveBreadcrumb.call(Z,D.errors[0].errorClass,{errorClass:D.errors[0].errorClass,errorMessage:D.errors[0].errorMessage,severity:D.severity},"error"),pe!==D.severity&&(D._handledState.severityReason={type:"userCallbackSetSeverity"}),D.unhandled!==D._handledState.unhandled&&(D._handledState.severityReason.unhandledOverridden=!0,D._handledState.unhandled=D.unhandled),Z._session&&(Z._session._track(D),D._session=Z._session),Z._delivery.sendEvent({apiKey:D.apiKey||Z._config.apiKey,notifier:Z._notifier,events:[D]},function(ge){return Y(ge,D)})})},C}(),Re=function(C,O){var F=new Error(`Invalid configuration
+`+v(l(C),function(D){return" - "+D+" "+C[D]+", got "+Ye(O[D])}).join(`
+
+`));return F},Ye=function(C){switch(typeof C){case"string":case"number":case"object":return JSON.stringify(C);default:return String(C)}},Je=Q,Yt=function(C,O,F,D){var U=D&&D.redactedKeys?D.redactedKeys:[],Y=D&&D.redactedPaths?D.redactedPaths:[];return JSON.stringify(da(C,U,Y),O,F)},wt=20,st=25e3,jt=8,at="...";function Ct(C){return C instanceof Error||/^\[object (Error|(Dom)?Exception)\]$/.test(Object.prototype.toString.call(C))}function Ke(C){return"[Throws: "+(C?C.message:"?")+"]"}function Fr(C,O){for(var F=0,D=C.length;Fjt&&U>st}if(U++,pe.length>wt||ae())return at;if(Z===null||typeof Z!="object")return Z;if(Fr(D,Z))return"[Circular]";if(D.push(Z),typeof Z.toJSON=="function")try{U--;var ve=Y(Z.toJSON(),pe);return D.pop(),ve}catch(lt){return Ke(lt)}var me=Ct(Z);if(me){U--;var Oe=Y({name:Z.name,message:Z.message},pe);return D.pop(),Oe}if(ca(Z)){for(var ge=[],Ze=0,Pt=Z.length;Ze1e6&&(C.events[0]._metadata={notifier:`WARNING!
+Serialized payload was `+F.length/1e6+`MB (limit = 1MB)
+metadata was removed`},F=Yt(C,null,null,{redactedPaths:fa,redactedKeys:O}),F.length>1e6))throw new Error("payload exceeded 1MB limit");return F},Br.session=function(C,O){var F=Yt(C,null,null);if(F.length>1e6)throw new Error("payload exceeded 1MB limit");return F};var Qa={};Qa=function(C,O){return O===void 0&&(O=window),{sendEvent:function(F,D){D===void 0&&(D=function(){});var U=_s(C._config,"notify","4",O),Y=new O.XDomainRequest;Y.onload=function(){D(null)},Y.open("POST",U),setTimeout(function(){try{Y.send(Br.event(F,C._config.redactedKeys))}catch(Z){C._logger.error(Z),D(Z)}},0)},sendSession:function(F,D){D===void 0&&(D=function(){});var U=_s(C._config,"sessions","1",O),Y=new O.XDomainRequest;Y.onload=function(){D(null)},Y.open("POST",U),setTimeout(function(){try{Y.send(Br.session(F,C._config.redactedKeys))}catch(Z){C._logger.error(Z),D(Z)}},0)}}};var _s=function(C,O,F,D){var U=JSON.parse(JSON.stringify(new Date)),Y=uk(C.endpoints[O],D.location.protocol);return Y+"?apiKey="+encodeURIComponent(C.apiKey)+"&payloadVersion="+F+"&sentAt="+encodeURIComponent(U)},uk=Qa._matchPageProtocol=function(C,O){return O==="http:"?C.replace(/^https:/,"http:"):C},lk=function(C,O){return O===void 0&&(O=window),{sendEvent:function(F,D){D===void 0&&(D=function(){});try{var U=C._config.endpoints.notify,Y=new O.XMLHttpRequest;Y.onreadystatechange=function(){Y.readyState===O.XMLHttpRequest.DONE&&D(null)},Y.open("POST",U),Y.setRequestHeader("Content-Type","application/json"),Y.setRequestHeader("Bugsnag-Api-Key",F.apiKey||C._config.apiKey),Y.setRequestHeader("Bugsnag-Payload-Version","4"),Y.setRequestHeader("Bugsnag-Sent-At",new Date().toISOString()),Y.send(Br.event(F,C._config.redactedKeys))}catch(Z){C._logger.error(Z)}},sendSession:function(F,D){D===void 0&&(D=function(){});try{var U=C._config.endpoints.sessions,Y=new O.XMLHttpRequest;Y.onreadystatechange=function(){Y.readyState===O.XMLHttpRequest.DONE&&D(null)},Y.open("POST",U),Y.setRequestHeader("Content-Type","application/json"),Y.setRequestHeader("Bugsnag-Api-Key",C._config.apiKey),Y.setRequestHeader("Bugsnag-Payload-Version","1"),Y.setRequestHeader("Bugsnag-Sent-At",new Date().toISOString()),Y.send(Br.session(F,C._config.redactedKeys))}catch(Z){C._logger.error(Z)}}}},R0=new Date,ck=function(){R0=new Date},dk={name:"appDuration",load:function(C){return C.addOnError(function(O){var F=new Date;O.app.duration=F-R0},!0),{reset:ck}}},fk=function(C){return C===void 0&&(C=window),{load:function(O){O.addOnError(function(F){F.context===void 0&&(F.context=C.location.pathname)},!0)}}},op=function(O,F){var D="000000000"+O;return D.substr(D.length-F)},j0=typeof window=="object"?window:self,P0=0;for(var pk in j0)Object.hasOwnProperty.call(j0,pk)&&P0++;var mk=navigator.mimeTypes?navigator.mimeTypes.length:0,hk=op((mk+navigator.userAgent.length).toString(36)+P0.toString(36),4),T0=function(){return hk},ks=0,sp=4,Cl=36,A0=Math.pow(Cl,sp);function O0(){return op((Math.random()*A0<<0).toString(Cl),sp)}function gk(){return ks=ksdocument.documentElement.clientHeight?"landscape":"portrait",F._config.generateAnonymousId&&(D.id=yk()),F.addOnSession(function(U){U.device=b({},U.device,D),F._config.collectUserIp||M0(U)}),F.addOnError(function(U){U.device=b({},U.device,D,{time:new Date}),F._config.collectUserIp||M0(U)},!0)},configSchema:{generateAnonymousId:{validate:function(F){return F===!0||F===!1},defaultValue:function(){return!0},message:"should be true|false"}}}},M0=function(C){var O=C.getUser();(!O||!O.id)&&C.setUser(C.device.id)},wk=function(C){return C===void 0&&(C=window),{load:function(O){O.addOnError(function(F){F.request&&F.request.url||(F.request=b({},F.request,{url:C.location.href}))},!0)}}},Sk={load:function(C){C._sessionDelegate=Ek}},Ek={startSession:function(C,O){var F=C;return F._session=O,F._pausedSession=null,F._config.enabledReleaseStages!==null&&!a(F._config.enabledReleaseStages,F._config.releaseStage)?(F._logger.warn("Session not sent due to releaseStage/enabledReleaseStages configuration"),F):(F._delivery.sendSession({notifier:F._notifier,device:O.device,app:O.app,sessions:[{id:O.id,startedAt:O.startedAt,user:O._user}]}),F)},resumeSession:function(C){return C._session?C:C._pausedSession?(C._session=C._pausedSession,C._pausedSession=null,C):C.startSession()},pauseSession:function(C){C._pausedSession=C._session,C._session=null}},_k={load:function(C){C._config.collectUserIp||C.addOnError(function(O){O._user&&typeof O._user.id=="undefined"&&delete O._user.id,O._user=b({id:"[REDACTED]"},O._user),O.request=b({clientIp:"[REDACTED]"},O.request)})},configSchema:{collectUserIp:{defaultValue:function(){return!0},message:"should be true|false",validate:function(C){return C===!0||C===!1}}}},D0={};D0.load=function(C){var O=/^(local-)?dev(elopment)?$/.test(C._config.releaseStage);O||!C._isBreadcrumbTypeEnabled("log")||v(kk,function(F){var D=console[F];console[F]=function(){for(var U=arguments.length,Y=new Array(U),Z=0;Z"].concat(U.split(`
+`)),Cr=Ie-1,Ht=Math.max(Cr-3,0),Gr=Math.min(Cr+3,lt.length);return n(lt.slice(Ht,Gr),function(fn,Cs,fp){return fn[Ht+1+fp]=Cs.length<=F0?Cs:Cs.substr(0,F0),fn},{})};F.addOnError(function(Ie){Ie.errors[0].stacktrace=i(Ie.errors[0].stacktrace,function(Gr){return!/__trace__$/.test(Gr.method)});var lt=Ie.errors[0].stacktrace[0];if(!(lt&<.file&<.file.replace(/#.*$/,"")!==D.replace(/#.*$/,""))){var Cr=Oe();if(Cr){var Ht=Cr.innerHTML;Ie.addMetadata("script","content",Ht.length<=B0?Ht:Ht.substr(0,B0)),lt&<.lineNumber&&(lt.code=ge(lt.lineNumber))}}},!0);var Ze=v(["setTimeout","setInterval","setImmediate","requestAnimationFrame"],function(Ie){return up(O,Ie,function(lt){return rr(lt,function(Cr){return{get:function(){return Cr[0]},replace:function(Ht){Cr[0]=Ht}}})})}),Pt=Ze[0];v(["EventTarget","Window","Node","ApplicationCache","AudioTrackList","ChannelMergerNode","CryptoOperation","EventSource","FileReader","HTMLUnknownElement","IDBDatabase","IDBRequest","IDBTransaction","KeyOperation","MediaController","MessagePort","ModalWindow","Notification","SVGElementInstance","Screen","TextTrack","TextTrackCue","TextTrackList","WebSocket","WebSocketWorker","Worker","XMLHttpRequest","XMLHttpRequestEventTarget","XMLHttpRequestUpload"],function(Ie){!O[Ie]||!O[Ie].prototype||!Object.prototype.hasOwnProperty.call(O[Ie].prototype,"addEventListener")||(up(O[Ie].prototype,"addEventListener",function(lt){return rr(lt,N0)}),up(O[Ie].prototype,"removeEventListener",function(lt){return rr(lt,N0,!0)}))});function rr(Ie,lt,Cr){return Cr===void 0&&(Cr=!1),function(){var Ht=[].slice.call(arguments);try{var Gr=lt(Ht),fn=Gr.get();if(Cr&&Ie.apply(this,Ht),typeof fn!="function")return Ie.apply(this,Ht);if(fn.__trace__)Gr.replace(fn.__trace__);else{var Cs=Oe();fn.__trace__=function(){me(Cs),Pt(function(){me(null)},0);var zk=fn.apply(this,arguments);return me(null),zk},fn.__trace__.__trace__=fn.__trace__,Gr.replace(fn.__trace__)}}catch(fp){}if(Ie.apply)return Ie.apply(this,Ht);switch(Ht.length){case 1:return Ie(Ht[0]);case 2:return Ie(Ht[0],Ht[1]);default:return Ie()}}}},configSchema:{trackInlineScripts:{validate:function(F){return F===!0||F===!1},defaultValue:function(){return!0},message:"should be true|false"}}}};function up(C,O,F){var D=C[O];if(!D)return D;var U=F(D);return C[O]=U,D}function N0(C){var O=!!C[1]&&typeof C[1].handleEvent=="function";return{get:function(){return O?C[1].handleEvent:C[1]},replace:function(F){O?C[1].handleEvent=F:C[1]=F}}}var Ck=function(C){return C===void 0&&(C=window),{load:function(O){"addEventListener"in C&&(!O._isBreadcrumbTypeEnabled("user")||C.addEventListener("click",function(F){var D,U;try{D=Rk(F.target),U=z0(F.target,C)}catch(Y){D="[hidden]",U="[hidden]",O._logger.error("Cross domain error when tracking click event. See docs: https://tinyurl.com/yy3rn63z")}O.leaveBreadcrumb("UI click",{targetText:D,targetSelector:U},"user")},!0))}}},Rk=function(C){var O=C.textContent||C.innerText||"";return!O&&(C.type==="submit"||C.type==="button")&&(O=C.value),O=O.replace(/^\s+|\s+$/g,""),jk(O,140)};function z0(C,O){var F=[C.tagName];if(C.id&&F.push("#"+C.id),C.className&&C.className.length&&F.push("."+C.className.split(" ").join(".")),!O.document.querySelectorAll||!Array.prototype.indexOf)return F.join("");try{if(O.document.querySelectorAll(F.join("")).length===1)return F.join("")}catch(U){return F.join("")}if(C.parentNode.childNodes.length>1){var D=Array.prototype.indexOf.call(C.parentNode.childNodes,C)+1;F.push(":nth-child("+D+")")}return O.document.querySelectorAll(F.join("")).length===1?F.join(""):C.parentNode?z0(C.parentNode,O)+" > "+F.join(""):F.join("")}function jk(C,O){var F="(...)";return C&&C.length<=O?C:C.slice(0,O-F.length)+F}var $0={};$0=function(C){C===void 0&&(C=window);var O={load:function(F){if("addEventListener"in C&&!!F._isBreadcrumbTypeEnabled("navigation")){var D=function(U){return function(){return F.leaveBreadcrumb(U,{},"navigation")}};C.addEventListener("pagehide",D("Page hidden"),!0),C.addEventListener("pageshow",D("Page shown"),!0),C.addEventListener("load",D("Page loaded"),!0),C.document.addEventListener("DOMContentLoaded",D("DOMContentLoaded"),!0),C.addEventListener("load",function(){return C.addEventListener("popstate",D("Navigated back"),!0)}),C.addEventListener("hashchange",function(U){var Y=U.oldURL?{from:Rl(U.oldURL,C),to:Rl(U.newURL,C),state:H0(C)}:{to:Rl(C.location.href,C)};F.leaveBreadcrumb("Hash changed",Y,"navigation")},!0),C.history.replaceState&&U0(F,C.history,"replaceState",C),C.history.pushState&&U0(F,C.history,"pushState",C)}}};return O};var Rl=function(C,O){var F=O.document.createElement("A");return F.href=C,""+F.pathname+F.search+F.hash},Pk=function(C,O,F,D){var U=Rl(C.location.href,C);return{title:F,state:O,prevState:H0(C),to:D||U,from:U}},U0=function(C,O,F,D){var U=O[F];O[F]=function(Y,Z,pe){C.leaveBreadcrumb("History "+F,Pk(D,Y,Z,pe),"navigation"),typeof C.resetEventCount=="function"&&C.resetEventCount(),C._config.autoTrackSessions&&C.startSession(),U.apply(O,[Y,Z].concat(pe!==void 0?pe:[]))}},H0=function(C){try{return C.history.state}catch(O){}},Ja="request",V0="BS~~S",xs="BS~~U",lp="BS~~M",Tk=function(C,O){C===void 0&&(C=[]),O===void 0&&(O=window);var F={load:function(D){if(!D._isBreadcrumbTypeEnabled("request"))return;var U=[D._config.endpoints.notify,D._config.endpoints.sessions].concat(C);Y(),ae();function Y(){if("addEventListener"in O.XMLHttpRequest.prototype){var Oe=O.XMLHttpRequest.prototype.open;O.XMLHttpRequest.prototype.open=function(Ze,Pt){this[xs]=Pt,this[lp]=Ze,this[V0]&&(this.removeEventListener("load",Z),this.removeEventListener("error",pe)),this.addEventListener("load",Z),this.addEventListener("error",pe),this[V0]=!0,Oe.apply(this,arguments)}}}function Z(){if(!a(U,this[xs].replace(/\?.*$/,""))){var Oe={status:this.status,request:this[lp]+" "+this[xs]};this.status>=400?D.leaveBreadcrumb("XMLHttpRequest failed",Oe,Ja):D.leaveBreadcrumb("XMLHttpRequest succeeded",Oe,Ja)}}function pe(){a(U,this[xs].replace(/\?.*$/,""))||D.leaveBreadcrumb("XMLHttpRequest error",{request:this[lp]+" "+this[xs]},Ja)}function ae(){if(!(!("fetch"in O)||O.fetch.polyfill)){var Oe=O.fetch;O.fetch=function(){var Ze=arguments,Pt=arguments[0],rr=arguments[1],Ie,lt=null;return Pt&&typeof Pt=="object"?(lt=Pt.url,rr&&"method"in rr?Ie=rr.method:Pt&&"method"in Pt&&(Ie=Pt.method)):(lt=Pt,rr&&"method"in rr&&(Ie=rr.method)),Ie===void 0&&(Ie="GET"),new Promise(function(Cr,Ht){Oe.apply(void 0,Ze).then(function(Gr){ve(Gr,Ie,lt),Cr(Gr)}).catch(function(Gr){me(Ie,lt),Ht(Gr)})})}}}var ve=function(Oe,ge,Ze){var Pt={status:Oe.status,request:ge+" "+Ze};Oe.status>=400?D.leaveBreadcrumb("fetch() failed",Pt,Ja):D.leaveBreadcrumb("fetch() succeeded",Pt,Ja)},me=function(Oe,ge){D.leaveBreadcrumb("fetch() error",{request:Oe+" "+ge},Ja)}}};return F},Ak={load:function(C){var O=0;C.addOnError(function(F){if(O>=C._config.maxEvents)return!1;O++}),C.resetEventCount=function(){O=0}},configSchema:{maxEvents:{defaultValue:function(){return 10},message:"should be a positive integer ≤100",validate:function(C){return f(1,100)(C)}}}},cp={};cp={load:function(C){C.addOnError(function(O){var F=n(O.errors,function(D,U){return D.concat(U.stacktrace)},[]);v(F,function(D){D.file=Ok(D.file)})})}};var Ok=cp._strip=function(C){return typeof C=="string"?C.replace(/\?.*$/,"").replace(/#.*$/,""):C},Ik=function(C){return C===void 0&&(C=window),{load:function(O){if(!O._config.autoDetectErrors||!O._config.enabledErrorTypes.unhandledExceptions)return;function F(U,Y,Z,pe,ae){if(Z===0&&/Script error\.?/.test(U))O._logger.warn("Ignoring cross-domain or eval script error. See docs: https://tinyurl.com/yy3rn63z");else{var ve={severity:"error",unhandled:!0,severityReason:{type:"unhandledException"}},me;if(ae)me=O.Event.create(ae,!0,ve,"window onerror",1),W0(me.errors[0].stacktrace,Y,Z,pe);else if(typeof U=="object"&&U!==null&&(!Y||typeof Y!="string")&&!Z&&!pe&&!ae){var Oe=U.type?"Event: "+U.type:"Error",ge=U.message||U.detail||"";me=O.Event.create({name:Oe,message:ge},!0,ve,"window onerror",1),me.originalError=U,me.addMetadata("window onerror",{event:U,extraParameters:Y})}else me=O.Event.create(U,!0,ve,"window onerror",1),W0(me.errors[0].stacktrace,Y,Z,pe);O._notify(me)}typeof D=="function"&&D.apply(this,arguments)}var D=C.onerror;C.onerror=F}}},W0=function(C,O,F,D){C[0]||C.push({});var U=C[0];!U.file&&typeof O=="string"&&(U.file=O),!U.lineNumber&&dp(F)&&(U.lineNumber=F),U.columnNumber||(dp(D)?U.columnNumber=D:window.event&&dp(window.event.errorCharacter)&&(U.columnNumber=window.event.errorCharacter))},dp=function(C){return typeof C=="number"&&String.call(C)!=="NaN"},Lk=function(C){C===void 0&&(C=window);var O={load:function(F){if(!(!F._config.autoDetectErrors||!F._config.enabledErrorTypes.unhandledRejections)){var D=function(U){var Y=U.reason,Z=!1;try{U.detail&&U.detail.reason&&(Y=U.detail.reason,Z=!0)}catch(ae){}var pe=F.Event.create(Y,!1,{severity:"error",unhandled:!0,severityReason:{type:"unhandledPromiseRejection"}},"unhandledrejection handler",1,F._logger);Z&&v(pe.errors[0].stacktrace,Mk(Y)),F._notify(pe,function(ae){if(K(ae.originalError)&&!ae.originalError.stack){var ve;ae.addMetadata("unhandledRejection handler",(ve={},ve[Object.prototype.toString.call(ae.originalError)]={name:ae.originalError.name,message:ae.originalError.message,code:ae.originalError.code},ve))}})};"addEventListener"in C?C.addEventListener("unhandledrejection",D):C.onunhandledrejection=function(U,Y){D({detail:{reason:U,promise:Y}})}}}};return O},Mk=function(C){return function(O){O.file!==C.toString()&&O.method&&(O.method=O.method.replace(/^\s+/,""))}},pa={},Dk="Bugsnag JavaScript",Fk="7.13.2",Bk="https://github.com/bugsnag/bugsnag-js",Nk=b({},S.schema,x),xr={_client:null,createClient:function(C){typeof C=="string"&&(C={apiKey:C}),C||(C={});var O=[dk,bk(),fk(),wk(),Ak,Sk,_k,cp,Ik(),Lk(),$0(),Ck(),Tk(),D0,xk()],F=new Je(C,Nk,O,{name:Dk,version:Fk,url:Bk});return F._setDelivery(window.XDomainRequest?Qa:lk),F._logger.debug("Loaded!"),F.leaveBreadcrumb("Bugsnag loaded",{},"state"),F._config.autoTrackSessions?F.startSession():F},start:function(C){return xr._client?(xr._client._logger.warn("Bugsnag.start() was called more than once. Ignoring."),xr._client):(xr._client=xr.createClient(C),xr._client)}};return v(["resetEventCount"].concat(l(Je.prototype)),function(C){/^_/.test(C)||(xr[C]=function(){if(!xr._client)return console.log("Bugsnag."+C+"() was called before Bugsnag.start()");xr._client._depth+=1;var O=xr._client[C].apply(xr._client,arguments);return xr._client._depth-=1,O})}),pa=xr,pa.Client=Je,pa.Event=ie,pa.Session=Mt,pa.Breadcrumb=p,pa.default=xr,pa})}),V$=H$,ap=V$;var W$=le(function(e,t){(function(r){e.exports=r()})(function(){var r={};function n(){return n=Object.assign||function(l){for(var f=1;f{gn(r)&&t.push(Jo(r))},{},[r]),Ae("d",()=>{gn(r)&&t.push(Ld(r))},{},[r]),Ae("a",()=>{t.push("/")}),Ae("n",()=>{t.push(Fe.new)}),Ae("u",()=>{t.push(Fe.agentSettings)}),Ae("t",()=>{t.push(Fe.themeSettings)}),Ae("shift+/",()=>{t.push(Fe.shortcuts)}),Ae("\\",()=>{i(!n)},{},[n]),j(yt,null,e)}var nk=K$;function q$({resource:e,children:t,error:r,clearError:n}){return j(ze,{resource:e?.getSubject()},j(nt,null,t||JSON.stringify(r?.message)),j("div",null,j(fe,{onClick:n},"Clear error"),j(fe,{onClick:()=>window.setTimeout(window.location.reload.bind(window.location),200)},"Reload page")))}var ik=q$;var Ya=new og;Ya.setServerUrl(window.location.origin);Ya.errorHandler=e=>{tk(e),e.message.length>100&&(e.message=e.message.substring(0,100)+"..."),mt.error(e.message)};var G$=window.bugsnagApiKey?rk(window.bugsnagApiKey):"div",ak=j2();ak&&Ya.setAgent(ak);Ya.fetchResource(oe.properties.getAll);Ya.fetchResource(oe.classes.getAll);Es()&&(window.store=Ya);function Y$(){return d.createElement(sg.Provider,{value:Ya},d.createElement(n8,null,d.createElement(Pa,null,d.createElement(Pw,{basename:"/"},d.createElement(Xb,{ReactRouterRoute:sr},d.createElement(nk,null,d.createElement(i8,null,d.createElement(G$,{FallbackComponent:ik},d.createElement(a8,null),d.createElement(Z4,null),d.createElement(J4,null),d.createElement(X4,null,d.createElement(V4,null))))))))))}var ok=Y$;import.meta.env=Pl;var sk=()=>d.createElement(d.StrictMode,null,d.createElement(ok,null));Wn.render(d.createElement(sk,null),document.getElementById("root"));export{sk as Root};
+/*
+object-assign
+(c) Sindre Sorhus
+@license MIT
+*/
+/*!
+ Copyright (c) 2018 Jed Watson.
+ Licensed under the MIT License (MIT), see
+ http://jedwatson.github.io/classnames
+*/
+/*!
+ * Determine if an object is a Buffer
+ *
+ * @author Feross Aboukhadijeh
+ * @license MIT
+ */
+/*!
+ * hotkeys-js v3.8.7
+ * A simple micro-library for defining and dispatching keyboard shortcuts. It has no dependencies.
+ *
+ * Copyright (c) 2021 kenny wong
+ * http://jaywcjlove.github.io/hotkeys
+ *
+ * Licensed under the MIT license.
+ */
+/*! *****************************************************************************
+Copyright (c) Microsoft Corporation.
+
+Permission to use, copy, modify, and/or distribute this software for any
+purpose with or without fee is hereby granted.
+
+THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
+REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
+AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
+INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
+LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
+OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+PERFORMANCE OF THIS SOFTWARE.
+***************************************************************************** */
+/*! noble-ed25519 - MIT License (c) Paul Miller (paulmillr.com) */
+/*! noble-hashes - MIT License (c) 2021 Paul Miller (paulmillr.com) */
+/**
+ * A better abstraction over CSS.
+ *
+ * @copyright Oleg Isonen (Slobodskoi) / Isonen 2014-present
+ * @website https://github.com/cssinjs/jss
+ * @license MIT
+ */
+/** @license React v16.13.1
+ * react-is.production.min.js
+ *
+ * Copyright (c) Facebook, Inc. and its affiliates.
+ *
+ * This source code is licensed under the MIT license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+//# sourceMappingURL=https://joepio.github.io/atomic-data-browser//dist//index.js.map
diff --git a/server/app_assets/dist/index.js.map b/server/app_assets/dist/index.js.map
new file mode 100644
index 000000000..c513822a5
--- /dev/null
+++ b/server/app_assets/dist/index.js.map
@@ -0,0 +1,7 @@
+{
+ "version": 3,
+ "sources": ["../../publish/dist/pkg/@noble/hashes/sha512.js", "../../publish/dist/pkg/yamde.js", "../../publish/dist/env.js", "../../publish/dist/pkg/common/_commonjsHelpers-8c19dec8.js", "../../publish/dist/pkg/common/index-04f37d11.js", "../../publish/dist/pkg/react.js", "../../publish/dist/pkg/common/index-9c1c5e0b.js", "../../publish/dist/pkg/use-query-params.js", "../../publish/dist/pkg/common/inheritsLoose-302c9f06.js", "../../publish/dist/pkg/common/index-f914c6ce.js", "../../publish/dist/pkg/common/index-147c2973.js", "../../publish/dist/pkg/common/objectWithoutPropertiesLoose-a0217bc6.js", "../../publish/dist/pkg/common/hoist-non-react-statics.cjs-a6490c8b.js", "../../publish/dist/pkg/common/react-router-e568c031.js", "../../publish/dist/pkg/react-router-dom.js", "../../publish/dist/pkg/common/index-d1edd5e3.js", "../../publish/dist/pkg/react-helmet-async.js", "../../publish/dist/pkg/@noble/ed25519.js", "../../publish/dist/pkg/fast-json-stable-stringify.js", "../../publish/dist/pkg/base64-arraybuffer.js", "../../publish/dist/link/lib/src/urls.js", "../../publish/dist/link/lib/src/commit.js", "../../publish/dist/link/lib/src/datatypes.js", "../../publish/dist/link/lib/src/value.js", "../../publish/dist/link/lib/src/error.js", "../../publish/dist/link/lib/src/resource.js", "../../publish/dist/link/lib/src/parse.js", "../../publish/dist/pkg/cross-fetch.js", "../../publish/dist/link/lib/src/client.js", "../../publish/dist/link/lib/src/agent.js", "../../publish/dist/link/lib/src/class.js", "../../publish/dist/link/lib/src/websockets.js", "../../publish/dist/link/lib/src/store.js", "../../publish/dist/link/lib/src/truncate.js", "../../publish/dist/link/react/src/useDebounce.js", "../../publish/dist/link/react/src/hooks.js", "../../publish/dist/link/react/src/useLocalStorage.js", "../../publish/dist/link/react/src/useBaseURL.js", "../../publish/dist/link/react/src/useCurrentAgent.js", "../../publish/dist/link/react/src/useMarkdown.js", "../../publish/dist/link/react/src/useServerSearch.js", "../../publish/dist/pkg/styled-components.js", "../../publish/dist/pkg/common/assertThisInitialized-270cf3b1.js", "../../publish/dist/pkg/polished.js", "../../publish/dist/helpers/useDarkMode.js", "../../publish/dist/pkg/react-hot-toast.js", "../../publish/dist/helpers/useHover.js", "../../publish/dist/helpers/useWindowSize.js", "../../publish/dist/components/Button.js", "../../publish/dist/routes/paths.js", "../../publish/dist/helpers/navigation.js", "../../publish/dist/helpers/useCurrentSubject.js", "../../publish/dist/pkg/react-icons/fa.js", "../../publish/dist/helpers/tauri.js", "../../publish/dist/components/AtomicLink.js", "../../publish/dist/views/ResourceInline.js", "../../publish/dist/components/ResourceSideBar.js", "../../publish/dist/components/Logo.js", "../../publish/dist/components/SignInButton.js", "../../publish/dist/components/SideBar.js", "../../publish/dist/helpers/AppSettings.js", "../../publish/dist/styling.js", "../../publish/dist/components/Containers.js", "../../publish/dist/pkg/react-hotkeys-hook.js", "../../publish/dist/helpers/useMedia.js", "../../publish/dist/pkg/react-markdown.js", "../../publish/dist/components/datatypes/Markdown.js", "../../publish/dist/components/NewInstanceButton.js", "../../publish/dist/pkg/react-intersection-observer.js", "../../publish/dist/helpers/formatTimeAgo.js", "../../publish/dist/components/datatypes/DateTime.js", "../../publish/dist/components/datatypes/NestedResource.js", "../../publish/dist/components/datatypes/ResourceArray.js", "../../publish/dist/components/forms/InputStyles.js", "../../publish/dist/components/ValueComp.js", "../../publish/dist/components/forms/InputString.js", "../../publish/dist/pkg/quick-score.js", "../../publish/dist/helpers/useLocalSearch.js", "../../publish/dist/views/ResourceLine.js", "../../publish/dist/components/forms/DropdownInput.js", "../../publish/dist/components/forms/ResourceSelector.js", "../../publish/dist/components/forms/InputResource.js", "../../publish/dist/components/forms/InputResourceArray.js", "../../publish/dist/components/forms/InputMarkdown.js", "../../publish/dist/components/forms/InputNumber.js", "../../publish/dist/components/forms/InputBoolean.js", "../../publish/dist/components/forms/InputSwitcher.js", "../../publish/dist/components/forms/ValueForm.js", "../../publish/dist/components/PropVal.js", "../../publish/dist/components/AllProps.js", "../../publish/dist/components/Card.js", "../../publish/dist/views/CollectionCard.js", "../../publish/dist/components/ImageViewer.js", "../../publish/dist/components/Parent.js", "../../publish/dist/views/FilePage.js", "../../publish/dist/views/FileCard.js", "../../publish/dist/components/Detail.js", "../../publish/dist/components/ClassDetail.js", "../../publish/dist/components/CommitDetail.js", "../../publish/dist/views/ResourcePageDefault.js", "../../publish/dist/views/ResourceCard.js", "../../publish/dist/components/Table.js", "../../publish/dist/views/CollectionPage.js", "../../publish/dist/components/forms/Field.js", "../../publish/dist/components/forms/ResourceField.js", "../../publish/dist/views/EndpointPage.js", "../../publish/dist/views/DrivePage.js", "../../publish/dist/views/RedirectPage.js", "../../publish/dist/views/InvitePage.js", "../../publish/dist/pkg/common/utilities.esm-f4584f21.js", "../../publish/dist/pkg/common/core.esm-91f38cd0.js", "../../publish/dist/pkg/@dnd-kit/sortable.js", "../../publish/dist/views/Element.js", "../../publish/dist/pkg/react-dropzone.js", "../../publish/dist/components/FilePill.js", "../../publish/dist/components/forms/UploadForm.js", "../../publish/dist/views/DocumentPage.js", "../../publish/dist/views/ErrorPage.js", "../../publish/dist/components/CodeBlock.js", "../../publish/dist/views/ClassPage.js", "../../publish/dist/components/WebMonetizationWrapper.js", "../../publish/dist/views/ResourcePage.js", "../../publish/dist/routes/SearchRoute.js", "../../publish/dist/routes/AboutRoute.js", "../../publish/dist/routes/ShowRoute.js", "../../publish/dist/components/forms/ResourceForm.js", "../../publish/dist/routes/NewRoute.js", "../../publish/dist/pkg/react-colorful.js", "../../publish/dist/components/NavStyleButton.js", "../../publish/dist/routes/SettingsTheme.js", "../../publish/dist/routes/EditRoute.js", "../../publish/dist/routes/DataRoute.js", "../../publish/dist/routes/ShortcutsRoute.js", "../../publish/dist/routes/LocalRoute.js", "../../publish/dist/routes/SettingsAgent.js", "../../publish/dist/routes/SettingsServer.js", "../../publish/dist/components/InviteForm.js", "../../publish/dist/routes/ShareRoute.js", "../../publish/dist/routes/Routes.js", "../../publish/dist/helpers/useFocus.js", "../../publish/dist/helpers/useDetectOutsideClick.js", "../../publish/dist/components/DropdownMenu.js", "../../publish/dist/components/ResourceContextMenu.js", "../../publish/dist/components/Navigation.js", "../../publish/dist/components/MetaSetter.js", "../../publish/dist/components/Toaster.js", "../../publish/dist/config.js", "../../publish/dist/pkg/@bugsnag/js.js", "../../publish/dist/pkg/@bugsnag/plugin-react.js", "../../publish/dist/helpers/handlers.js", "../../publish/dist/components/HotKeyWrapper.js", "../../publish/dist/views/CrashPage.js", "../../publish/dist/App.js", "../../publish/dist/index.js"],
+ "sourcesContent": ["import { c as createCommonjsModule } from '../../common/_commonjsHelpers-8c19dec8.js';\n\nvar cryptoBrowser = createCommonjsModule(function (module, exports) {\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.crypto = void 0;\nexports.crypto = {\n node: undefined,\n web: typeof self === 'object' && 'crypto' in self ? self.crypto : undefined,\n};\n});\n\n/*! noble-hashes - MIT License (c) 2021 Paul Miller (paulmillr.com) */\n// Cast array to view\nconst createView = (arr) => new DataView(arr.buffer, arr.byteOffset, arr.byteLength);\nconst isLE = new Uint8Array(new Uint32Array([0x11223344]).buffer)[0] === 0x44;\n// There is almost no big endian hardware, but js typed arrays uses platform specific endianess.\n// So, just to be sure not to corrupt anything.\nif (!isLE)\n throw new Error('Non little-endian hardware is not supported');\nconst hexes = Array.from({ length: 256 }, (v, i) => i.toString(16).padStart(2, '0'));\n// Currently avoid insertion of polyfills with packers (browserify/webpack/etc)\n// But setTimeout is pretty slow, maybe worth to investigate howto do minimal polyfill here\nconst nextTick = (() => {\n const nodeRequire = typeof module !== 'undefined' &&\n typeof module.require === 'function' &&\n module.require.bind(module);\n try {\n if (nodeRequire) {\n const { setImmediate } = nodeRequire('timers');\n return () => new Promise((resolve) => setImmediate(resolve));\n }\n }\n catch (e) { }\n return () => new Promise((resolve) => setTimeout(resolve, 0));\n})();\nfunction utf8ToBytes(str) {\n if (typeof str !== 'string') {\n throw new TypeError(`utf8ToBytes expected string, got ${typeof str}`);\n }\n return new TextEncoder().encode(str);\n}\nfunction toBytes(data) {\n if (typeof data === 'string')\n data = utf8ToBytes(data);\n if (!(data instanceof Uint8Array))\n throw new TypeError(`Expected input type is Uint8Array (got ${typeof data})`);\n return data;\n}\n// For runtime check if class implements interface\nclass Hash {\n // Safe version that clones internal state\n clone() {\n return this._cloneInto();\n }\n}\nfunction wrapConstructor(hashConstructor) {\n const hashC = (message) => hashConstructor().update(toBytes(message)).digest();\n const tmp = hashConstructor();\n hashC.outputLen = tmp.outputLen;\n hashC.blockLen = tmp.blockLen;\n hashC.create = () => hashConstructor();\n hashC.init = hashC.create;\n return hashC;\n}\n\n// Polyfill for Safari 14\nfunction setBigUint64(view, byteOffset, value, isLE) {\n if (typeof view.setBigUint64 === 'function')\n return view.setBigUint64(byteOffset, value, isLE);\n const _32n = BigInt(32);\n const _u32_max = BigInt(0xffffffff);\n const wh = Number((value >> _32n) & _u32_max);\n const wl = Number(value & _u32_max);\n const h = isLE ? 4 : 0;\n const l = isLE ? 0 : 4;\n view.setUint32(byteOffset + h, wh, isLE);\n view.setUint32(byteOffset + l, wl, isLE);\n}\n// Base SHA2 class (RFC 6234)\nclass SHA2 extends Hash {\n constructor(blockLen, outputLen, padOffset, isLE) {\n super();\n this.blockLen = blockLen;\n this.outputLen = outputLen;\n this.padOffset = padOffset;\n this.isLE = isLE;\n this.finished = false;\n this.length = 0;\n this.pos = 0;\n this.destroyed = false;\n this.buffer = new Uint8Array(blockLen);\n this.view = createView(this.buffer);\n }\n update(data) {\n if (this.destroyed)\n throw new Error('instance is destroyed');\n const { view, buffer, blockLen, finished } = this;\n if (finished)\n throw new Error('digest() was already called');\n data = toBytes(data);\n const len = data.length;\n for (let pos = 0; pos < len;) {\n const take = Math.min(blockLen - this.pos, len - pos);\n // Fast path: we have at least one block in input, cast it to view and process\n if (take === blockLen) {\n const dataView = createView(data);\n for (; blockLen <= len - pos; pos += blockLen)\n this.process(dataView, pos);\n continue;\n }\n buffer.set(data.subarray(pos, pos + take), this.pos);\n this.pos += take;\n pos += take;\n if (this.pos === blockLen) {\n this.process(view, 0);\n this.pos = 0;\n }\n }\n this.length += data.length;\n this.roundClean();\n return this;\n }\n digestInto(out) {\n if (this.destroyed)\n throw new Error('instance is destroyed');\n if (!(out instanceof Uint8Array) || out.length < this.outputLen)\n throw new Error('_Sha2: Invalid output buffer');\n if (this.finished)\n throw new Error('digest() was already called');\n this.finished = true;\n // Padding\n // We can avoid allocation of buffer for padding completely if it\n // was previously not allocated here. But it won't change performance.\n const { buffer, view, blockLen, isLE } = this;\n let { pos } = this;\n // append the bit '1' to the message\n buffer[pos++] = 0b10000000;\n this.buffer.subarray(pos).fill(0);\n // we have less than padOffset left in buffer, so we cannot put length in current block, need process it and pad again\n if (this.padOffset > blockLen - pos) {\n this.process(view, 0);\n pos = 0;\n }\n // Pad until full block byte with zeros\n for (let i = pos; i < blockLen; i++)\n buffer[i] = 0;\n // NOTE: sha512 requires length to be 128bit integer, but length in JS will overflow before that\n // You need to write around 2 exabytes (u64_max / 8 / (1024**6)) for this to happen.\n // So we just write lowest 64bit of that value.\n setBigUint64(view, blockLen - 8, BigInt(this.length * 8), isLE);\n this.process(view, 0);\n const oview = createView(out);\n this.get().forEach((v, i) => oview.setUint32(4 * i, v, isLE));\n }\n digest() {\n const { buffer, outputLen } = this;\n this.digestInto(buffer);\n const res = buffer.slice(0, outputLen);\n this.destroy();\n return res;\n }\n _cloneInto(to) {\n to || (to = new this.constructor());\n to.set(...this.get());\n const { blockLen, buffer, length, finished, destroyed, pos } = this;\n to.length = length;\n to.pos = pos;\n to.finished = finished;\n to.destroyed = destroyed;\n if (length % blockLen)\n to.buffer.set(buffer);\n return to;\n }\n}\n\nconst U32_MASK64 = BigInt(2 ** 32 - 1);\nconst _32n = BigInt(32);\nfunction fromBig(n, le = false) {\n if (le)\n return { h: Number(n & U32_MASK64), l: Number((n >> _32n) & U32_MASK64) };\n return { h: Number((n >> _32n) & U32_MASK64) | 0, l: Number(n & U32_MASK64) | 0 };\n}\nfunction split(lst, le = false) {\n let Ah = new Uint32Array(lst.length);\n let Al = new Uint32Array(lst.length);\n for (let i = 0; i < lst.length; i++) {\n const { h, l } = fromBig(lst[i], le);\n [Ah[i], Al[i]] = [h, l];\n }\n return [Ah, Al];\n}\n// for Shift in [0, 32)\nconst shrSH = (h, l, s) => h >>> s;\nconst shrSL = (h, l, s) => (h << (32 - s)) | (l >>> s);\n// Right rotate for Shift in [1, 32)\nconst rotrSH = (h, l, s) => (h >>> s) | (l << (32 - s));\nconst rotrSL = (h, l, s) => (h << (32 - s)) | (l >>> s);\n// Right rotate for Shift in (32, 64), NOTE: 32 is special case.\nconst rotrBH = (h, l, s) => (h << (64 - s)) | (l >>> (s - 32));\nconst rotrBL = (h, l, s) => (h >>> (s - 32)) | (l << (64 - s));\n// JS uses 32-bit signed integers for bitwise operations which means we cannot\n// simple take carry out of low bit sum by shift, we need to use division.\nfunction add(Ah, Al, Bh, Bl) {\n const l = (Al >>> 0) + (Bl >>> 0);\n return { h: (Ah + Bh + ((l / 2 ** 32) | 0)) | 0, l: l | 0 };\n}\n// Addition with more than 2 elements\nconst add3L = (Al, Bl, Cl) => (Al >>> 0) + (Bl >>> 0) + (Cl >>> 0);\nconst add3H = (low, Ah, Bh, Ch) => (Ah + Bh + Ch + ((low / 2 ** 32) | 0)) | 0;\nconst add4L = (Al, Bl, Cl, Dl) => (Al >>> 0) + (Bl >>> 0) + (Cl >>> 0) + (Dl >>> 0);\nconst add4H = (low, Ah, Bh, Ch, Dh) => (Ah + Bh + Ch + Dh + ((low / 2 ** 32) | 0)) | 0;\nconst add5L = (Al, Bl, Cl, Dl, El) => (Al >>> 0) + (Bl >>> 0) + (Cl >>> 0) + (Dl >>> 0) + (El >>> 0);\nconst add5H = (low, Ah, Bh, Ch, Dh, Eh) => (Ah + Bh + Ch + Dh + Eh + ((low / 2 ** 32) | 0)) | 0;\n\n// Round contants (first 32 bits of the fractional parts of the cube roots of the first 80 primes 2..409):\n// prettier-ignore\nconst [SHA512_Kh, SHA512_Kl] = split([\n '0x428a2f98d728ae22', '0x7137449123ef65cd', '0xb5c0fbcfec4d3b2f', '0xe9b5dba58189dbbc',\n '0x3956c25bf348b538', '0x59f111f1b605d019', '0x923f82a4af194f9b', '0xab1c5ed5da6d8118',\n '0xd807aa98a3030242', '0x12835b0145706fbe', '0x243185be4ee4b28c', '0x550c7dc3d5ffb4e2',\n '0x72be5d74f27b896f', '0x80deb1fe3b1696b1', '0x9bdc06a725c71235', '0xc19bf174cf692694',\n '0xe49b69c19ef14ad2', '0xefbe4786384f25e3', '0x0fc19dc68b8cd5b5', '0x240ca1cc77ac9c65',\n '0x2de92c6f592b0275', '0x4a7484aa6ea6e483', '0x5cb0a9dcbd41fbd4', '0x76f988da831153b5',\n '0x983e5152ee66dfab', '0xa831c66d2db43210', '0xb00327c898fb213f', '0xbf597fc7beef0ee4',\n '0xc6e00bf33da88fc2', '0xd5a79147930aa725', '0x06ca6351e003826f', '0x142929670a0e6e70',\n '0x27b70a8546d22ffc', '0x2e1b21385c26c926', '0x4d2c6dfc5ac42aed', '0x53380d139d95b3df',\n '0x650a73548baf63de', '0x766a0abb3c77b2a8', '0x81c2c92e47edaee6', '0x92722c851482353b',\n '0xa2bfe8a14cf10364', '0xa81a664bbc423001', '0xc24b8b70d0f89791', '0xc76c51a30654be30',\n '0xd192e819d6ef5218', '0xd69906245565a910', '0xf40e35855771202a', '0x106aa07032bbd1b8',\n '0x19a4c116b8d2d0c8', '0x1e376c085141ab53', '0x2748774cdf8eeb99', '0x34b0bcb5e19b48a8',\n '0x391c0cb3c5c95a63', '0x4ed8aa4ae3418acb', '0x5b9cca4f7763e373', '0x682e6ff3d6b2b8a3',\n '0x748f82ee5defb2fc', '0x78a5636f43172f60', '0x84c87814a1f0ab72', '0x8cc702081a6439ec',\n '0x90befffa23631e28', '0xa4506cebde82bde9', '0xbef9a3f7b2c67915', '0xc67178f2e372532b',\n '0xca273eceea26619c', '0xd186b8c721c0c207', '0xeada7dd6cde0eb1e', '0xf57d4f7fee6ed178',\n '0x06f067aa72176fba', '0x0a637dc5a2c898a6', '0x113f9804bef90dae', '0x1b710b35131c471b',\n '0x28db77f523047d84', '0x32caab7b40c72493', '0x3c9ebe0a15c9bebc', '0x431d67c49c100d4c',\n '0x4cc5d4becb3e42b6', '0x597f299cfc657e2a', '0x5fcb6fab3ad6faec', '0x6c44198c4a475817'\n].map(n => BigInt(n)));\n// Temporary buffer, not used to store anything between runs\nconst SHA512_W_H = new Uint32Array(80);\nconst SHA512_W_L = new Uint32Array(80);\nclass SHA512 extends SHA2 {\n constructor() {\n super(128, 64, 16, false);\n // We cannot use array here since array allows indexing by variable which means optimizer/compiler cannot use registers.\n // Also looks cleaner and easier to verify with spec.\n // Initial state (first 32 bits of the fractional parts of the square roots of the first 8 primes 2..19):\n // h -- high 32 bits, l -- low 32 bits\n this.Ah = 0x6a09e667 | 0;\n this.Al = 0xf3bcc908 | 0;\n this.Bh = 0xbb67ae85 | 0;\n this.Bl = 0x84caa73b | 0;\n this.Ch = 0x3c6ef372 | 0;\n this.Cl = 0xfe94f82b | 0;\n this.Dh = 0xa54ff53a | 0;\n this.Dl = 0x5f1d36f1 | 0;\n this.Eh = 0x510e527f | 0;\n this.El = 0xade682d1 | 0;\n this.Fh = 0x9b05688c | 0;\n this.Fl = 0x2b3e6c1f | 0;\n this.Gh = 0x1f83d9ab | 0;\n this.Gl = 0xfb41bd6b | 0;\n this.Hh = 0x5be0cd19 | 0;\n this.Hl = 0x137e2179 | 0;\n }\n // prettier-ignore\n get() {\n const { Ah, Al, Bh, Bl, Ch, Cl, Dh, Dl, Eh, El, Fh, Fl, Gh, Gl, Hh, Hl } = this;\n return [Ah, Al, Bh, Bl, Ch, Cl, Dh, Dl, Eh, El, Fh, Fl, Gh, Gl, Hh, Hl];\n }\n // prettier-ignore\n set(Ah, Al, Bh, Bl, Ch, Cl, Dh, Dl, Eh, El, Fh, Fl, Gh, Gl, Hh, Hl) {\n this.Ah = Ah | 0;\n this.Al = Al | 0;\n this.Bh = Bh | 0;\n this.Bl = Bl | 0;\n this.Ch = Ch | 0;\n this.Cl = Cl | 0;\n this.Dh = Dh | 0;\n this.Dl = Dl | 0;\n this.Eh = Eh | 0;\n this.El = El | 0;\n this.Fh = Fh | 0;\n this.Fl = Fl | 0;\n this.Gh = Gh | 0;\n this.Gl = Gl | 0;\n this.Hh = Hh | 0;\n this.Hl = Hl | 0;\n }\n process(view, offset) {\n // Extend the first 16 words into the remaining 64 words w[16..79] of the message schedule array\n for (let i = 0; i < 16; i++, offset += 4) {\n SHA512_W_H[i] = view.getUint32(offset);\n SHA512_W_L[i] = view.getUint32((offset += 4));\n }\n for (let i = 16; i < 80; i++) {\n // s0 := (w[i-15] rightrotate 1) xor (w[i-15] rightrotate 8) xor (w[i-15] rightshift 7)\n const W15h = SHA512_W_H[i - 15] | 0;\n const W15l = SHA512_W_L[i - 15] | 0;\n const s0h = rotrSH(W15h, W15l, 1) ^ rotrSH(W15h, W15l, 8) ^ shrSH(W15h, W15l, 7);\n const s0l = rotrSL(W15h, W15l, 1) ^ rotrSL(W15h, W15l, 8) ^ shrSL(W15h, W15l, 7);\n // s1 := (w[i-2] rightrotate 19) xor (w[i-2] rightrotate 61) xor (w[i-2] rightshift 6)\n const W2h = SHA512_W_H[i - 2] | 0;\n const W2l = SHA512_W_L[i - 2] | 0;\n const s1h = rotrSH(W2h, W2l, 19) ^ rotrBH(W2h, W2l, 61) ^ shrSH(W2h, W2l, 6);\n const s1l = rotrSL(W2h, W2l, 19) ^ rotrBL(W2h, W2l, 61) ^ shrSL(W2h, W2l, 6);\n // SHA256_W[i] = s0 + s1 + SHA256_W[i - 7] + SHA256_W[i - 16];\n const SUMl = add4L(s0l, s1l, SHA512_W_L[i - 7], SHA512_W_L[i - 16]);\n const SUMh = add4H(SUMl, s0h, s1h, SHA512_W_H[i - 7], SHA512_W_H[i - 16]);\n SHA512_W_H[i] = SUMh | 0;\n SHA512_W_L[i] = SUMl | 0;\n }\n let { Ah, Al, Bh, Bl, Ch, Cl, Dh, Dl, Eh, El, Fh, Fl, Gh, Gl, Hh, Hl } = this;\n // Compression function main loop, 80 rounds\n for (let i = 0; i < 80; i++) {\n // S1 := (e rightrotate 14) xor (e rightrotate 18) xor (e rightrotate 41)\n const sigma1h = rotrSH(Eh, El, 14) ^ rotrSH(Eh, El, 18) ^ rotrBH(Eh, El, 41);\n const sigma1l = rotrSL(Eh, El, 14) ^ rotrSL(Eh, El, 18) ^ rotrBL(Eh, El, 41);\n //const T1 = (H + sigma1 + Chi(E, F, G) + SHA256_K[i] + SHA256_W[i]) | 0;\n const CHIh = (Eh & Fh) ^ (~Eh & Gh);\n const CHIl = (El & Fl) ^ (~El & Gl);\n // T1 = H + sigma1 + Chi(E, F, G) + SHA512_K[i] + SHA512_W[i]\n // prettier-ignore\n const T1ll = add5L(Hl, sigma1l, CHIl, SHA512_Kl[i], SHA512_W_L[i]);\n const T1h = add5H(T1ll, Hh, sigma1h, CHIh, SHA512_Kh[i], SHA512_W_H[i]);\n const T1l = T1ll | 0;\n // S0 := (a rightrotate 28) xor (a rightrotate 34) xor (a rightrotate 39)\n const sigma0h = rotrSH(Ah, Al, 28) ^ rotrBH(Ah, Al, 34) ^ rotrBH(Ah, Al, 39);\n const sigma0l = rotrSL(Ah, Al, 28) ^ rotrBL(Ah, Al, 34) ^ rotrBL(Ah, Al, 39);\n const MAJh = (Ah & Bh) ^ (Ah & Ch) ^ (Bh & Ch);\n const MAJl = (Al & Bl) ^ (Al & Cl) ^ (Bl & Cl);\n Hh = Gh | 0;\n Hl = Gl | 0;\n Gh = Fh | 0;\n Gl = Fl | 0;\n Fh = Eh | 0;\n Fl = El | 0;\n ({ h: Eh, l: El } = add(Dh | 0, Dl | 0, T1h | 0, T1l | 0));\n Dh = Ch | 0;\n Dl = Cl | 0;\n Ch = Bh | 0;\n Cl = Bl | 0;\n Bh = Ah | 0;\n Bl = Al | 0;\n const All = add3L(T1l, sigma0l, MAJl);\n Ah = add3H(All, T1h, sigma0h, MAJh);\n Al = All | 0;\n }\n // Add the compressed chunk to the current hash value\n ({ h: Ah, l: Al } = add(this.Ah | 0, this.Al | 0, Ah | 0, Al | 0));\n ({ h: Bh, l: Bl } = add(this.Bh | 0, this.Bl | 0, Bh | 0, Bl | 0));\n ({ h: Ch, l: Cl } = add(this.Ch | 0, this.Cl | 0, Ch | 0, Cl | 0));\n ({ h: Dh, l: Dl } = add(this.Dh | 0, this.Dl | 0, Dh | 0, Dl | 0));\n ({ h: Eh, l: El } = add(this.Eh | 0, this.El | 0, Eh | 0, El | 0));\n ({ h: Fh, l: Fl } = add(this.Fh | 0, this.Fl | 0, Fh | 0, Fl | 0));\n ({ h: Gh, l: Gl } = add(this.Gh | 0, this.Gl | 0, Gh | 0, Gl | 0));\n ({ h: Hh, l: Hl } = add(this.Hh | 0, this.Hl | 0, Hh | 0, Hl | 0));\n this.set(Ah, Al, Bh, Bl, Ch, Cl, Dh, Dl, Eh, El, Fh, Fl, Gh, Gl, Hh, Hl);\n }\n roundClean() {\n SHA512_W_H.fill(0);\n SHA512_W_L.fill(0);\n }\n destroy() {\n this.buffer.fill(0);\n this.set(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);\n }\n}\nclass SHA512_256 extends SHA512 {\n constructor() {\n super();\n // h -- high 32 bits, l -- low 32 bits\n this.Ah = 0x22312194 | 0;\n this.Al = 0xfc2bf72c | 0;\n this.Bh = 0x9f555fa3 | 0;\n this.Bl = 0xc84c64c2 | 0;\n this.Ch = 0x2393b86b | 0;\n this.Cl = 0x6f53b151 | 0;\n this.Dh = 0x96387719 | 0;\n this.Dl = 0x5940eabd | 0;\n this.Eh = 0x96283ee2 | 0;\n this.El = 0xa88effe3 | 0;\n this.Fh = 0xbe5e1e25 | 0;\n this.Fl = 0x53863992 | 0;\n this.Gh = 0x2b0199fc | 0;\n this.Gl = 0x2c85b8aa | 0;\n this.Hh = 0x0eb72ddc | 0;\n this.Hl = 0x81c52ca2 | 0;\n this.outputLen = 32;\n }\n}\nclass SHA384 extends SHA512 {\n constructor() {\n super();\n // h -- high 32 bits, l -- low 32 bits\n this.Ah = 0xcbbb9d5d | 0;\n this.Al = 0xc1059ed8 | 0;\n this.Bh = 0x629a292a | 0;\n this.Bl = 0x367cd507 | 0;\n this.Ch = 0x9159015a | 0;\n this.Cl = 0x3070dd17 | 0;\n this.Dh = 0x152fecd8 | 0;\n this.Dl = 0xf70e5939 | 0;\n this.Eh = 0x67332667 | 0;\n this.El = 0xffc00b31 | 0;\n this.Fh = 0x8eb44a87 | 0;\n this.Fl = 0x68581511 | 0;\n this.Gh = 0xdb0c2e0d | 0;\n this.Gl = 0x64f98fa7 | 0;\n this.Hh = 0x47b5481d | 0;\n this.Hl = 0xbefa4fa4 | 0;\n this.outputLen = 48;\n }\n}\nconst sha512 = wrapConstructor(() => new SHA512());\nconst sha512_256 = wrapConstructor(() => new SHA512_256());\nconst sha384 = wrapConstructor(() => new SHA384());\n\nexport { sha512 };\n", "import { c as createCommonjsModule, a as commonjsGlobal, g as getDefaultExportFromCjs } from './common/_commonjsHelpers-8c19dec8.js';\nimport { r as react } from './common/index-04f37d11.js';\nimport { a as _extends$1, b as _inheritsLoose$1 } from './common/inheritsLoose-302c9f06.js';\nimport { _ as _objectWithoutPropertiesLoose } from './common/objectWithoutPropertiesLoose-a0217bc6.js';\nimport { h as hoistNonReactStatics_cjs } from './common/hoist-non-react-statics.cjs-a6490c8b.js';\nimport './common/index-f914c6ce.js';\nimport { _ as _assertThisInitialized$1 } from './common/assertThisInitialized-270cf3b1.js';\nimport './common/index-147c2973.js';\n\nvar getDisplayName_1 = createCommonjsModule(function (module, exports) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = getDisplayName;\nfunction getDisplayName(Component) {\n return Component.displayName || Component.name || (typeof Component === 'string' && Component.length > 0 ? Component : 'Unknown');\n}\n});\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction createThemeProvider(context) {\n var ThemeProvider =\n /*#__PURE__*/\n function (_React$Component) {\n _inheritsLoose(ThemeProvider, _React$Component);\n\n function ThemeProvider() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"cachedTheme\", void 0);\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"lastOuterTheme\", void 0);\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"lastTheme\", void 0);\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"renderProvider\", function (outerTheme) {\n var children = _this.props.children;\n return react.createElement(context.Provider, {\n value: _this.getTheme(outerTheme)\n }, children);\n });\n\n return _this;\n }\n\n var _proto = ThemeProvider.prototype;\n\n // Get the theme from the props, supporting both (outerTheme) => {} as well as object notation\n _proto.getTheme = function getTheme(outerTheme) {\n if (this.props.theme !== this.lastTheme || outerTheme !== this.lastOuterTheme || !this.cachedTheme) {\n this.lastOuterTheme = outerTheme;\n this.lastTheme = this.props.theme;\n\n if (typeof this.lastTheme === 'function') {\n var theme = this.props.theme;\n this.cachedTheme = theme(outerTheme);\n } else {\n var _theme = this.props.theme;\n this.cachedTheme = outerTheme ? _extends({}, outerTheme, _theme) : _theme;\n }\n }\n\n return this.cachedTheme;\n };\n\n _proto.render = function render() {\n var children = this.props.children;\n\n if (!children) {\n return null;\n }\n\n return react.createElement(context.Consumer, null, this.renderProvider);\n };\n\n return ThemeProvider;\n }(react.Component);\n\n return ThemeProvider;\n}\n\nfunction createWithTheme(context) {\n return function hoc(Component) {\n var withTheme = react.forwardRef(function (props, ref) {\n return react.createElement(context.Consumer, null, function (theme) {\n return react.createElement(Component, _extends({\n theme: theme,\n ref: ref\n }, props));\n });\n });\n\n hoistNonReactStatics_cjs(withTheme, Component);\n return withTheme;\n };\n}\n\nfunction createUseTheme(context) {\n var useTheme = function useTheme() {\n var theme = react.useContext(context);\n return theme;\n };\n\n return useTheme;\n}\n\nfunction createTheming(context) {\n return {\n context: context,\n withTheme: createWithTheme(context),\n useTheme: createUseTheme(context),\n ThemeProvider: createThemeProvider(context)\n };\n}\n\nvar ThemeContext = react.createContext();\n\nvar _createTheming = createTheming(ThemeContext),\n withTheme = _createTheming.withTheme,\n ThemeProvider = _createTheming.ThemeProvider,\n useTheme = _createTheming.useTheme;\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar isBrowser = (typeof window === \"undefined\" ? \"undefined\" : _typeof(window)) === \"object\" && (typeof document === \"undefined\" ? \"undefined\" : _typeof(document)) === 'object' && document.nodeType === 9;\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nvar plainObjectConstrurctor = {}.constructor;\nfunction cloneStyle(style) {\n if (style == null || typeof style !== 'object') return style;\n if (Array.isArray(style)) return style.map(cloneStyle);\n if (style.constructor !== plainObjectConstrurctor) return style;\n var newStyle = {};\n\n for (var name in style) {\n newStyle[name] = cloneStyle(style[name]);\n }\n\n return newStyle;\n}\n\n/**\n * Create a rule instance.\n */\n\nfunction createRule(name, decl, options) {\n if (name === void 0) {\n name = 'unnamed';\n }\n\n var jss = options.jss;\n var declCopy = cloneStyle(decl);\n var rule = jss.plugins.onCreateRule(name, declCopy, options);\n if (rule) return rule; // It is an at-rule and it has no instance.\n\n if (name[0] === '@') ;\n\n return null;\n}\n\nvar join = function join(value, by) {\n var result = '';\n\n for (var i = 0; i < value.length; i++) {\n // Remove !important from the value, it will be readded later.\n if (value[i] === '!important') break;\n if (result) result += by;\n result += value[i];\n }\n\n return result;\n};\n/**\n * Converts JSS array value to a CSS string.\n *\n * `margin: [['5px', '10px']]` > `margin: 5px 10px;`\n * `border: ['1px', '2px']` > `border: 1px, 2px;`\n * `margin: [['5px', '10px'], '!important']` > `margin: 5px 10px !important;`\n * `color: ['red', !important]` > `color: red !important;`\n */\n\n\nvar toCssValue = function toCssValue(value, ignoreImportant) {\n if (ignoreImportant === void 0) {\n ignoreImportant = false;\n }\n\n if (!Array.isArray(value)) return value;\n var cssValue = ''; // Support space separated values via `[['5px', '10px']]`.\n\n if (Array.isArray(value[0])) {\n for (var i = 0; i < value.length; i++) {\n if (value[i] === '!important') break;\n if (cssValue) cssValue += ', ';\n cssValue += join(value[i], ' ');\n }\n } else cssValue = join(value, ', '); // Add !important, because it was ignored.\n\n\n if (!ignoreImportant && value[value.length - 1] === '!important') {\n cssValue += ' !important';\n }\n\n return cssValue;\n};\n\nfunction getWhitespaceSymbols(options) {\n if (options && options.format === false) {\n return {\n linebreak: '',\n space: ''\n };\n }\n\n return {\n linebreak: '\\n',\n space: ' '\n };\n}\n\n/**\n * Indent a string.\n * http://jsperf.com/array-join-vs-for\n */\n\nfunction indentStr(str, indent) {\n var result = '';\n\n for (var index = 0; index < indent; index++) {\n result += ' ';\n }\n\n return result + str;\n}\n/**\n * Converts a Rule to CSS string.\n */\n\n\nfunction toCss(selector, style, options) {\n if (options === void 0) {\n options = {};\n }\n\n var result = '';\n if (!style) return result;\n var _options = options,\n _options$indent = _options.indent,\n indent = _options$indent === void 0 ? 0 : _options$indent;\n var fallbacks = style.fallbacks;\n\n if (options.format === false) {\n indent = -Infinity;\n }\n\n var _getWhitespaceSymbols = getWhitespaceSymbols(options),\n linebreak = _getWhitespaceSymbols.linebreak,\n space = _getWhitespaceSymbols.space;\n\n if (selector) indent++; // Apply fallbacks first.\n\n if (fallbacks) {\n // Array syntax {fallbacks: [{prop: value}]}\n if (Array.isArray(fallbacks)) {\n for (var index = 0; index < fallbacks.length; index++) {\n var fallback = fallbacks[index];\n\n for (var prop in fallback) {\n var value = fallback[prop];\n\n if (value != null) {\n if (result) result += linebreak;\n result += indentStr(prop + \":\" + space + toCssValue(value) + \";\", indent);\n }\n }\n }\n } else {\n // Object syntax {fallbacks: {prop: value}}\n for (var _prop in fallbacks) {\n var _value = fallbacks[_prop];\n\n if (_value != null) {\n if (result) result += linebreak;\n result += indentStr(_prop + \":\" + space + toCssValue(_value) + \";\", indent);\n }\n }\n }\n }\n\n for (var _prop2 in style) {\n var _value2 = style[_prop2];\n\n if (_value2 != null && _prop2 !== 'fallbacks') {\n if (result) result += linebreak;\n result += indentStr(_prop2 + \":\" + space + toCssValue(_value2) + \";\", indent);\n }\n } // Allow empty style in this case, because properties will be added dynamically.\n\n\n if (!result && !options.allowEmpty) return result; // When rule is being stringified before selector was defined.\n\n if (!selector) return result;\n indent--;\n if (result) result = \"\" + linebreak + result + linebreak;\n return indentStr(\"\" + selector + space + \"{\" + result, indent) + indentStr('}', indent);\n}\n\nvar escapeRegex = /([[\\].#*$><+~=|^:(),\"'`\\s])/g;\nvar nativeEscape = typeof CSS !== 'undefined' && CSS.escape;\nvar escape = (function (str) {\n return nativeEscape ? nativeEscape(str) : str.replace(escapeRegex, '\\\\$1');\n});\n\nvar BaseStyleRule =\n/*#__PURE__*/\nfunction () {\n function BaseStyleRule(key, style, options) {\n this.type = 'style';\n this.isProcessed = false;\n var sheet = options.sheet,\n Renderer = options.Renderer;\n this.key = key;\n this.options = options;\n this.style = style;\n if (sheet) this.renderer = sheet.renderer;else if (Renderer) this.renderer = new Renderer();\n }\n /**\n * Get or set a style property.\n */\n\n\n var _proto = BaseStyleRule.prototype;\n\n _proto.prop = function prop(name, value, options) {\n // It's a getter.\n if (value === undefined) return this.style[name]; // Don't do anything if the value has not changed.\n\n var force = options ? options.force : false;\n if (!force && this.style[name] === value) return this;\n var newValue = value;\n\n if (!options || options.process !== false) {\n newValue = this.options.jss.plugins.onChangeValue(value, name, this);\n }\n\n var isEmpty = newValue == null || newValue === false;\n var isDefined = name in this.style; // Value is empty and wasn't defined before.\n\n if (isEmpty && !isDefined && !force) return this; // We are going to remove this value.\n\n var remove = isEmpty && isDefined;\n if (remove) delete this.style[name];else this.style[name] = newValue; // Renderable is defined if StyleSheet option `link` is true.\n\n if (this.renderable && this.renderer) {\n if (remove) this.renderer.removeProperty(this.renderable, name);else this.renderer.setProperty(this.renderable, name, newValue);\n return this;\n }\n\n var sheet = this.options.sheet;\n\n if (sheet && sheet.attached) ;\n\n return this;\n };\n\n return BaseStyleRule;\n}();\nvar StyleRule =\n/*#__PURE__*/\nfunction (_BaseStyleRule) {\n _inheritsLoose$1(StyleRule, _BaseStyleRule);\n\n function StyleRule(key, style, options) {\n var _this;\n\n _this = _BaseStyleRule.call(this, key, style, options) || this;\n var selector = options.selector,\n scoped = options.scoped,\n sheet = options.sheet,\n generateId = options.generateId;\n\n if (selector) {\n _this.selectorText = selector;\n } else if (scoped !== false) {\n _this.id = generateId(_assertThisInitialized$1(_assertThisInitialized$1(_this)), sheet);\n _this.selectorText = \".\" + escape(_this.id);\n }\n\n return _this;\n }\n /**\n * Set selector string.\n * Attention: use this with caution. Most browsers didn't implement\n * selectorText setter, so this may result in rerendering of entire Style Sheet.\n */\n\n\n var _proto2 = StyleRule.prototype;\n\n /**\n * Apply rule to an element inline.\n */\n _proto2.applyTo = function applyTo(renderable) {\n var renderer = this.renderer;\n\n if (renderer) {\n var json = this.toJSON();\n\n for (var prop in json) {\n renderer.setProperty(renderable, prop, json[prop]);\n }\n }\n\n return this;\n }\n /**\n * Returns JSON representation of the rule.\n * Fallbacks are not supported.\n * Useful for inline styles.\n */\n ;\n\n _proto2.toJSON = function toJSON() {\n var json = {};\n\n for (var prop in this.style) {\n var value = this.style[prop];\n if (typeof value !== 'object') json[prop] = value;else if (Array.isArray(value)) json[prop] = toCssValue(value);\n }\n\n return json;\n }\n /**\n * Generates a CSS string.\n */\n ;\n\n _proto2.toString = function toString(options) {\n var sheet = this.options.sheet;\n var link = sheet ? sheet.options.link : false;\n var opts = link ? _extends$1({}, options, {\n allowEmpty: true\n }) : options;\n return toCss(this.selectorText, this.style, opts);\n };\n\n _createClass(StyleRule, [{\n key: \"selector\",\n set: function set(selector) {\n if (selector === this.selectorText) return;\n this.selectorText = selector;\n var renderer = this.renderer,\n renderable = this.renderable;\n if (!renderable || !renderer) return;\n var hasChanged = renderer.setSelector(renderable, selector); // If selector setter is not implemented, rerender the rule.\n\n if (!hasChanged) {\n renderer.replaceRule(renderable, this);\n }\n }\n /**\n * Get selector string.\n */\n ,\n get: function get() {\n return this.selectorText;\n }\n }]);\n\n return StyleRule;\n}(BaseStyleRule);\nvar pluginStyleRule = {\n onCreateRule: function onCreateRule(key, style, options) {\n if (key[0] === '@' || options.parent && options.parent.type === 'keyframes') {\n return null;\n }\n\n return new StyleRule(key, style, options);\n }\n};\n\nvar defaultToStringOptions = {\n indent: 1,\n children: true\n};\nvar atRegExp = /@([\\w-]+)/;\n/**\n * Conditional rule for @media, @supports\n */\n\nvar ConditionalRule =\n/*#__PURE__*/\nfunction () {\n function ConditionalRule(key, styles, options) {\n this.type = 'conditional';\n this.isProcessed = false;\n this.key = key;\n var atMatch = key.match(atRegExp);\n this.at = atMatch ? atMatch[1] : 'unknown'; // Key might contain a unique suffix in case the `name` passed by user was duplicate.\n\n this.query = options.name || \"@\" + this.at;\n this.options = options;\n this.rules = new RuleList(_extends$1({}, options, {\n parent: this\n }));\n\n for (var name in styles) {\n this.rules.add(name, styles[name]);\n }\n\n this.rules.process();\n }\n /**\n * Get a rule.\n */\n\n\n var _proto = ConditionalRule.prototype;\n\n _proto.getRule = function getRule(name) {\n return this.rules.get(name);\n }\n /**\n * Get index of a rule.\n */\n ;\n\n _proto.indexOf = function indexOf(rule) {\n return this.rules.indexOf(rule);\n }\n /**\n * Create and register rule, run plugins.\n */\n ;\n\n _proto.addRule = function addRule(name, style, options) {\n var rule = this.rules.add(name, style, options);\n if (!rule) return null;\n this.options.jss.plugins.onProcessRule(rule);\n return rule;\n }\n /**\n * Replace rule, run plugins.\n */\n ;\n\n _proto.replaceRule = function replaceRule(name, style, options) {\n var newRule = this.rules.replace(name, style, options);\n if (newRule) this.options.jss.plugins.onProcessRule(newRule);\n return newRule;\n }\n /**\n * Generates a CSS string.\n */\n ;\n\n _proto.toString = function toString(options) {\n if (options === void 0) {\n options = defaultToStringOptions;\n }\n\n var _getWhitespaceSymbols = getWhitespaceSymbols(options),\n linebreak = _getWhitespaceSymbols.linebreak;\n\n if (options.indent == null) options.indent = defaultToStringOptions.indent;\n if (options.children == null) options.children = defaultToStringOptions.children;\n\n if (options.children === false) {\n return this.query + \" {}\";\n }\n\n var children = this.rules.toString(options);\n return children ? this.query + \" {\" + linebreak + children + linebreak + \"}\" : '';\n };\n\n return ConditionalRule;\n}();\nvar keyRegExp = /@media|@supports\\s+/;\nvar pluginConditionalRule = {\n onCreateRule: function onCreateRule(key, styles, options) {\n return keyRegExp.test(key) ? new ConditionalRule(key, styles, options) : null;\n }\n};\n\nvar defaultToStringOptions$1 = {\n indent: 1,\n children: true\n};\nvar nameRegExp = /@keyframes\\s+([\\w-]+)/;\n/**\n * Rule for @keyframes\n */\n\nvar KeyframesRule =\n/*#__PURE__*/\nfunction () {\n function KeyframesRule(key, frames, options) {\n this.type = 'keyframes';\n this.at = '@keyframes';\n this.isProcessed = false;\n var nameMatch = key.match(nameRegExp);\n\n if (nameMatch && nameMatch[1]) {\n this.name = nameMatch[1];\n } else {\n this.name = 'noname';\n }\n\n this.key = this.type + \"-\" + this.name;\n this.options = options;\n var scoped = options.scoped,\n sheet = options.sheet,\n generateId = options.generateId;\n this.id = scoped === false ? this.name : escape(generateId(this, sheet));\n this.rules = new RuleList(_extends$1({}, options, {\n parent: this\n }));\n\n for (var name in frames) {\n this.rules.add(name, frames[name], _extends$1({}, options, {\n parent: this\n }));\n }\n\n this.rules.process();\n }\n /**\n * Generates a CSS string.\n */\n\n\n var _proto = KeyframesRule.prototype;\n\n _proto.toString = function toString(options) {\n if (options === void 0) {\n options = defaultToStringOptions$1;\n }\n\n var _getWhitespaceSymbols = getWhitespaceSymbols(options),\n linebreak = _getWhitespaceSymbols.linebreak;\n\n if (options.indent == null) options.indent = defaultToStringOptions$1.indent;\n if (options.children == null) options.children = defaultToStringOptions$1.children;\n\n if (options.children === false) {\n return this.at + \" \" + this.id + \" {}\";\n }\n\n var children = this.rules.toString(options);\n if (children) children = \"\" + linebreak + children + linebreak;\n return this.at + \" \" + this.id + \" {\" + children + \"}\";\n };\n\n return KeyframesRule;\n}();\nvar keyRegExp$1 = /@keyframes\\s+/;\nvar refRegExp = /\\$([\\w-]+)/g;\n\nvar findReferencedKeyframe = function findReferencedKeyframe(val, keyframes) {\n if (typeof val === 'string') {\n return val.replace(refRegExp, function (match, name) {\n if (name in keyframes) {\n return keyframes[name];\n }\n return match;\n });\n }\n\n return val;\n};\n/**\n * Replace the reference for a animation name.\n */\n\n\nvar replaceRef = function replaceRef(style, prop, keyframes) {\n var value = style[prop];\n var refKeyframe = findReferencedKeyframe(value, keyframes);\n\n if (refKeyframe !== value) {\n style[prop] = refKeyframe;\n }\n};\n\nvar pluginKeyframesRule = {\n onCreateRule: function onCreateRule(key, frames, options) {\n return typeof key === 'string' && keyRegExp$1.test(key) ? new KeyframesRule(key, frames, options) : null;\n },\n // Animation name ref replacer.\n onProcessStyle: function onProcessStyle(style, rule, sheet) {\n if (rule.type !== 'style' || !sheet) return style;\n if ('animation-name' in style) replaceRef(style, 'animation-name', sheet.keyframes);\n if ('animation' in style) replaceRef(style, 'animation', sheet.keyframes);\n return style;\n },\n onChangeValue: function onChangeValue(val, prop, rule) {\n var sheet = rule.options.sheet;\n\n if (!sheet) {\n return val;\n }\n\n switch (prop) {\n case 'animation':\n return findReferencedKeyframe(val, sheet.keyframes);\n\n case 'animation-name':\n return findReferencedKeyframe(val, sheet.keyframes);\n\n default:\n return val;\n }\n }\n};\n\nvar KeyframeRule =\n/*#__PURE__*/\nfunction (_BaseStyleRule) {\n _inheritsLoose$1(KeyframeRule, _BaseStyleRule);\n\n function KeyframeRule() {\n return _BaseStyleRule.apply(this, arguments) || this;\n }\n\n var _proto = KeyframeRule.prototype;\n\n /**\n * Generates a CSS string.\n */\n _proto.toString = function toString(options) {\n var sheet = this.options.sheet;\n var link = sheet ? sheet.options.link : false;\n var opts = link ? _extends$1({}, options, {\n allowEmpty: true\n }) : options;\n return toCss(this.key, this.style, opts);\n };\n\n return KeyframeRule;\n}(BaseStyleRule);\nvar pluginKeyframeRule = {\n onCreateRule: function onCreateRule(key, style, options) {\n if (options.parent && options.parent.type === 'keyframes') {\n return new KeyframeRule(key, style, options);\n }\n\n return null;\n }\n};\n\nvar FontFaceRule =\n/*#__PURE__*/\nfunction () {\n function FontFaceRule(key, style, options) {\n this.type = 'font-face';\n this.at = '@font-face';\n this.isProcessed = false;\n this.key = key;\n this.style = style;\n this.options = options;\n }\n /**\n * Generates a CSS string.\n */\n\n\n var _proto = FontFaceRule.prototype;\n\n _proto.toString = function toString(options) {\n var _getWhitespaceSymbols = getWhitespaceSymbols(options),\n linebreak = _getWhitespaceSymbols.linebreak;\n\n if (Array.isArray(this.style)) {\n var str = '';\n\n for (var index = 0; index < this.style.length; index++) {\n str += toCss(this.at, this.style[index]);\n if (this.style[index + 1]) str += linebreak;\n }\n\n return str;\n }\n\n return toCss(this.at, this.style, options);\n };\n\n return FontFaceRule;\n}();\nvar keyRegExp$2 = /@font-face/;\nvar pluginFontFaceRule = {\n onCreateRule: function onCreateRule(key, style, options) {\n return keyRegExp$2.test(key) ? new FontFaceRule(key, style, options) : null;\n }\n};\n\nvar ViewportRule =\n/*#__PURE__*/\nfunction () {\n function ViewportRule(key, style, options) {\n this.type = 'viewport';\n this.at = '@viewport';\n this.isProcessed = false;\n this.key = key;\n this.style = style;\n this.options = options;\n }\n /**\n * Generates a CSS string.\n */\n\n\n var _proto = ViewportRule.prototype;\n\n _proto.toString = function toString(options) {\n return toCss(this.key, this.style, options);\n };\n\n return ViewportRule;\n}();\nvar pluginViewportRule = {\n onCreateRule: function onCreateRule(key, style, options) {\n return key === '@viewport' || key === '@-ms-viewport' ? new ViewportRule(key, style, options) : null;\n }\n};\n\nvar SimpleRule =\n/*#__PURE__*/\nfunction () {\n function SimpleRule(key, value, options) {\n this.type = 'simple';\n this.isProcessed = false;\n this.key = key;\n this.value = value;\n this.options = options;\n }\n /**\n * Generates a CSS string.\n */\n // eslint-disable-next-line no-unused-vars\n\n\n var _proto = SimpleRule.prototype;\n\n _proto.toString = function toString(options) {\n if (Array.isArray(this.value)) {\n var str = '';\n\n for (var index = 0; index < this.value.length; index++) {\n str += this.key + \" \" + this.value[index] + \";\";\n if (this.value[index + 1]) str += '\\n';\n }\n\n return str;\n }\n\n return this.key + \" \" + this.value + \";\";\n };\n\n return SimpleRule;\n}();\nvar keysMap = {\n '@charset': true,\n '@import': true,\n '@namespace': true\n};\nvar pluginSimpleRule = {\n onCreateRule: function onCreateRule(key, value, options) {\n return key in keysMap ? new SimpleRule(key, value, options) : null;\n }\n};\n\nvar plugins = [pluginStyleRule, pluginConditionalRule, pluginKeyframesRule, pluginKeyframeRule, pluginFontFaceRule, pluginViewportRule, pluginSimpleRule];\n\nvar defaultUpdateOptions = {\n process: true\n};\nvar forceUpdateOptions = {\n force: true,\n process: true\n /**\n * Contains rules objects and allows adding/removing etc.\n * Is used for e.g. by `StyleSheet` or `ConditionalRule`.\n */\n\n};\n\nvar RuleList =\n/*#__PURE__*/\nfunction () {\n // Rules registry for access by .get() method.\n // It contains the same rule registered by name and by selector.\n // Original styles object.\n // Used to ensure correct rules order.\n function RuleList(options) {\n this.map = {};\n this.raw = {};\n this.index = [];\n this.counter = 0;\n this.options = options;\n this.classes = options.classes;\n this.keyframes = options.keyframes;\n }\n /**\n * Create and register rule.\n *\n * Will not render after Style Sheet was rendered the first time.\n */\n\n\n var _proto = RuleList.prototype;\n\n _proto.add = function add(name, decl, ruleOptions) {\n var _this$options = this.options,\n parent = _this$options.parent,\n sheet = _this$options.sheet,\n jss = _this$options.jss,\n Renderer = _this$options.Renderer,\n generateId = _this$options.generateId,\n scoped = _this$options.scoped;\n\n var options = _extends$1({\n classes: this.classes,\n parent: parent,\n sheet: sheet,\n jss: jss,\n Renderer: Renderer,\n generateId: generateId,\n scoped: scoped,\n name: name,\n keyframes: this.keyframes,\n selector: undefined\n }, ruleOptions); // When user uses .createStyleSheet(), duplicate names are not possible, but\n // `sheet.addRule()` opens the door for any duplicate rule name. When this happens\n // we need to make the key unique within this RuleList instance scope.\n\n\n var key = name;\n\n if (name in this.raw) {\n key = name + \"-d\" + this.counter++;\n } // We need to save the original decl before creating the rule\n // because cache plugin needs to use it as a key to return a cached rule.\n\n\n this.raw[key] = decl;\n\n if (key in this.classes) {\n // E.g. rules inside of @media container\n options.selector = \".\" + escape(this.classes[key]);\n }\n\n var rule = createRule(key, decl, options);\n if (!rule) return null;\n this.register(rule);\n var index = options.index === undefined ? this.index.length : options.index;\n this.index.splice(index, 0, rule);\n return rule;\n }\n /**\n * Replace rule.\n * Create a new rule and remove old one instead of overwriting\n * because we want to invoke onCreateRule hook to make plugins work.\n */\n ;\n\n _proto.replace = function replace(name, decl, ruleOptions) {\n var oldRule = this.get(name);\n var oldIndex = this.index.indexOf(oldRule);\n\n if (oldRule) {\n this.remove(oldRule);\n }\n\n var options = ruleOptions;\n if (oldIndex !== -1) options = _extends$1({}, ruleOptions, {\n index: oldIndex\n });\n return this.add(name, decl, options);\n }\n /**\n * Get a rule by name or selector.\n */\n ;\n\n _proto.get = function get(nameOrSelector) {\n return this.map[nameOrSelector];\n }\n /**\n * Delete a rule.\n */\n ;\n\n _proto.remove = function remove(rule) {\n this.unregister(rule);\n delete this.raw[rule.key];\n this.index.splice(this.index.indexOf(rule), 1);\n }\n /**\n * Get index of a rule.\n */\n ;\n\n _proto.indexOf = function indexOf(rule) {\n return this.index.indexOf(rule);\n }\n /**\n * Run `onProcessRule()` plugins on every rule.\n */\n ;\n\n _proto.process = function process() {\n var plugins = this.options.jss.plugins; // We need to clone array because if we modify the index somewhere else during a loop\n // we end up with very hard-to-track-down side effects.\n\n this.index.slice(0).forEach(plugins.onProcessRule, plugins);\n }\n /**\n * Register a rule in `.map`, `.classes` and `.keyframes` maps.\n */\n ;\n\n _proto.register = function register(rule) {\n this.map[rule.key] = rule;\n\n if (rule instanceof StyleRule) {\n this.map[rule.selector] = rule;\n if (rule.id) this.classes[rule.key] = rule.id;\n } else if (rule instanceof KeyframesRule && this.keyframes) {\n this.keyframes[rule.name] = rule.id;\n }\n }\n /**\n * Unregister a rule.\n */\n ;\n\n _proto.unregister = function unregister(rule) {\n delete this.map[rule.key];\n\n if (rule instanceof StyleRule) {\n delete this.map[rule.selector];\n delete this.classes[rule.key];\n } else if (rule instanceof KeyframesRule) {\n delete this.keyframes[rule.name];\n }\n }\n /**\n * Update the function values with a new data.\n */\n ;\n\n _proto.update = function update() {\n var name;\n var data;\n var options;\n\n if (typeof (arguments.length <= 0 ? undefined : arguments[0]) === 'string') {\n name = arguments.length <= 0 ? undefined : arguments[0];\n data = arguments.length <= 1 ? undefined : arguments[1];\n options = arguments.length <= 2 ? undefined : arguments[2];\n } else {\n data = arguments.length <= 0 ? undefined : arguments[0];\n options = arguments.length <= 1 ? undefined : arguments[1];\n name = null;\n }\n\n if (name) {\n this.updateOne(this.get(name), data, options);\n } else {\n for (var index = 0; index < this.index.length; index++) {\n this.updateOne(this.index[index], data, options);\n }\n }\n }\n /**\n * Execute plugins, update rule props.\n */\n ;\n\n _proto.updateOne = function updateOne(rule, data, options) {\n if (options === void 0) {\n options = defaultUpdateOptions;\n }\n\n var _this$options2 = this.options,\n plugins = _this$options2.jss.plugins,\n sheet = _this$options2.sheet; // It is a rules container like for e.g. ConditionalRule.\n\n if (rule.rules instanceof RuleList) {\n rule.rules.update(data, options);\n return;\n }\n\n var style = rule.style;\n plugins.onUpdate(data, rule, sheet, options); // We rely on a new `style` ref in case it was mutated during onUpdate hook.\n\n if (options.process && style && style !== rule.style) {\n // We need to run the plugins in case new `style` relies on syntax plugins.\n plugins.onProcessStyle(rule.style, rule, sheet); // Update and add props.\n\n for (var prop in rule.style) {\n var nextValue = rule.style[prop];\n var prevValue = style[prop]; // We need to use `force: true` because `rule.style` has been updated during onUpdate hook, so `rule.prop()` will not update the CSSOM rule.\n // We do this comparison to avoid unneeded `rule.prop()` calls, since we have the old `style` object here.\n\n if (nextValue !== prevValue) {\n rule.prop(prop, nextValue, forceUpdateOptions);\n }\n } // Remove props.\n\n\n for (var _prop in style) {\n var _nextValue = rule.style[_prop];\n var _prevValue = style[_prop]; // We need to use `force: true` because `rule.style` has been updated during onUpdate hook, so `rule.prop()` will not update the CSSOM rule.\n // We do this comparison to avoid unneeded `rule.prop()` calls, since we have the old `style` object here.\n\n if (_nextValue == null && _nextValue !== _prevValue) {\n rule.prop(_prop, null, forceUpdateOptions);\n }\n }\n }\n }\n /**\n * Convert rules to a CSS string.\n */\n ;\n\n _proto.toString = function toString(options) {\n var str = '';\n var sheet = this.options.sheet;\n var link = sheet ? sheet.options.link : false;\n\n var _getWhitespaceSymbols = getWhitespaceSymbols(options),\n linebreak = _getWhitespaceSymbols.linebreak;\n\n for (var index = 0; index < this.index.length; index++) {\n var rule = this.index[index];\n var css = rule.toString(options); // No need to render an empty rule.\n\n if (!css && !link) continue;\n if (str) str += linebreak;\n str += css;\n }\n\n return str;\n };\n\n return RuleList;\n}();\n\nvar StyleSheet =\n/*#__PURE__*/\nfunction () {\n function StyleSheet(styles, options) {\n this.attached = false;\n this.deployed = false;\n this.classes = {};\n this.keyframes = {};\n this.options = _extends$1({}, options, {\n sheet: this,\n parent: this,\n classes: this.classes,\n keyframes: this.keyframes\n });\n\n if (options.Renderer) {\n this.renderer = new options.Renderer(this);\n }\n\n this.rules = new RuleList(this.options);\n\n for (var name in styles) {\n this.rules.add(name, styles[name]);\n }\n\n this.rules.process();\n }\n /**\n * Attach renderable to the render tree.\n */\n\n\n var _proto = StyleSheet.prototype;\n\n _proto.attach = function attach() {\n if (this.attached) return this;\n if (this.renderer) this.renderer.attach();\n this.attached = true; // Order is important, because we can't use insertRule API if style element is not attached.\n\n if (!this.deployed) this.deploy();\n return this;\n }\n /**\n * Remove renderable from render tree.\n */\n ;\n\n _proto.detach = function detach() {\n if (!this.attached) return this;\n if (this.renderer) this.renderer.detach();\n this.attached = false;\n return this;\n }\n /**\n * Add a rule to the current stylesheet.\n * Will insert a rule also after the stylesheet has been rendered first time.\n */\n ;\n\n _proto.addRule = function addRule(name, decl, options) {\n var queue = this.queue; // Plugins can create rules.\n // In order to preserve the right order, we need to queue all `.addRule` calls,\n // which happen after the first `rules.add()` call.\n\n if (this.attached && !queue) this.queue = [];\n var rule = this.rules.add(name, decl, options);\n if (!rule) return null;\n this.options.jss.plugins.onProcessRule(rule);\n\n if (this.attached) {\n if (!this.deployed) return rule; // Don't insert rule directly if there is no stringified version yet.\n // It will be inserted all together when .attach is called.\n\n if (queue) queue.push(rule);else {\n this.insertRule(rule);\n\n if (this.queue) {\n this.queue.forEach(this.insertRule, this);\n this.queue = undefined;\n }\n }\n return rule;\n } // We can't add rules to a detached style node.\n // We will redeploy the sheet once user will attach it.\n\n\n this.deployed = false;\n return rule;\n }\n /**\n * Replace a rule in the current stylesheet.\n */\n ;\n\n _proto.replaceRule = function replaceRule(nameOrSelector, decl, options) {\n var oldRule = this.rules.get(nameOrSelector);\n if (!oldRule) return this.addRule(nameOrSelector, decl, options);\n var newRule = this.rules.replace(nameOrSelector, decl, options);\n\n if (newRule) {\n this.options.jss.plugins.onProcessRule(newRule);\n }\n\n if (this.attached) {\n if (!this.deployed) return newRule; // Don't replace / delete rule directly if there is no stringified version yet.\n // It will be inserted all together when .attach is called.\n\n if (this.renderer) {\n if (!newRule) {\n this.renderer.deleteRule(oldRule);\n } else if (oldRule.renderable) {\n this.renderer.replaceRule(oldRule.renderable, newRule);\n }\n }\n\n return newRule;\n } // We can't replace rules to a detached style node.\n // We will redeploy the sheet once user will attach it.\n\n\n this.deployed = false;\n return newRule;\n }\n /**\n * Insert rule into the StyleSheet\n */\n ;\n\n _proto.insertRule = function insertRule(rule) {\n if (this.renderer) {\n this.renderer.insertRule(rule);\n }\n }\n /**\n * Create and add rules.\n * Will render also after Style Sheet was rendered the first time.\n */\n ;\n\n _proto.addRules = function addRules(styles, options) {\n var added = [];\n\n for (var name in styles) {\n var rule = this.addRule(name, styles[name], options);\n if (rule) added.push(rule);\n }\n\n return added;\n }\n /**\n * Get a rule by name or selector.\n */\n ;\n\n _proto.getRule = function getRule(nameOrSelector) {\n return this.rules.get(nameOrSelector);\n }\n /**\n * Delete a rule by name.\n * Returns `true`: if rule has been deleted from the DOM.\n */\n ;\n\n _proto.deleteRule = function deleteRule(name) {\n var rule = typeof name === 'object' ? name : this.rules.get(name);\n\n if (!rule || // Style sheet was created without link: true and attached, in this case we\n // won't be able to remove the CSS rule from the DOM.\n this.attached && !rule.renderable) {\n return false;\n }\n\n this.rules.remove(rule);\n\n if (this.attached && rule.renderable && this.renderer) {\n return this.renderer.deleteRule(rule.renderable);\n }\n\n return true;\n }\n /**\n * Get index of a rule.\n */\n ;\n\n _proto.indexOf = function indexOf(rule) {\n return this.rules.indexOf(rule);\n }\n /**\n * Deploy pure CSS string to a renderable.\n */\n ;\n\n _proto.deploy = function deploy() {\n if (this.renderer) this.renderer.deploy();\n this.deployed = true;\n return this;\n }\n /**\n * Update the function values with a new data.\n */\n ;\n\n _proto.update = function update() {\n var _this$rules;\n\n (_this$rules = this.rules).update.apply(_this$rules, arguments);\n\n return this;\n }\n /**\n * Updates a single rule.\n */\n ;\n\n _proto.updateOne = function updateOne(rule, data, options) {\n this.rules.updateOne(rule, data, options);\n return this;\n }\n /**\n * Convert rules to a CSS string.\n */\n ;\n\n _proto.toString = function toString(options) {\n return this.rules.toString(options);\n };\n\n return StyleSheet;\n}();\n\nvar PluginsRegistry =\n/*#__PURE__*/\nfunction () {\n function PluginsRegistry() {\n this.plugins = {\n internal: [],\n external: []\n };\n this.registry = {};\n }\n\n var _proto = PluginsRegistry.prototype;\n\n /**\n * Call `onCreateRule` hooks and return an object if returned by a hook.\n */\n _proto.onCreateRule = function onCreateRule(name, decl, options) {\n for (var i = 0; i < this.registry.onCreateRule.length; i++) {\n var rule = this.registry.onCreateRule[i](name, decl, options);\n if (rule) return rule;\n }\n\n return null;\n }\n /**\n * Call `onProcessRule` hooks.\n */\n ;\n\n _proto.onProcessRule = function onProcessRule(rule) {\n if (rule.isProcessed) return;\n var sheet = rule.options.sheet;\n\n for (var i = 0; i < this.registry.onProcessRule.length; i++) {\n this.registry.onProcessRule[i](rule, sheet);\n }\n\n if (rule.style) this.onProcessStyle(rule.style, rule, sheet);\n rule.isProcessed = true;\n }\n /**\n * Call `onProcessStyle` hooks.\n */\n ;\n\n _proto.onProcessStyle = function onProcessStyle(style, rule, sheet) {\n for (var i = 0; i < this.registry.onProcessStyle.length; i++) {\n rule.style = this.registry.onProcessStyle[i](rule.style, rule, sheet);\n }\n }\n /**\n * Call `onProcessSheet` hooks.\n */\n ;\n\n _proto.onProcessSheet = function onProcessSheet(sheet) {\n for (var i = 0; i < this.registry.onProcessSheet.length; i++) {\n this.registry.onProcessSheet[i](sheet);\n }\n }\n /**\n * Call `onUpdate` hooks.\n */\n ;\n\n _proto.onUpdate = function onUpdate(data, rule, sheet, options) {\n for (var i = 0; i < this.registry.onUpdate.length; i++) {\n this.registry.onUpdate[i](data, rule, sheet, options);\n }\n }\n /**\n * Call `onChangeValue` hooks.\n */\n ;\n\n _proto.onChangeValue = function onChangeValue(value, prop, rule) {\n var processedValue = value;\n\n for (var i = 0; i < this.registry.onChangeValue.length; i++) {\n processedValue = this.registry.onChangeValue[i](processedValue, prop, rule);\n }\n\n return processedValue;\n }\n /**\n * Register a plugin.\n */\n ;\n\n _proto.use = function use(newPlugin, options) {\n if (options === void 0) {\n options = {\n queue: 'external'\n };\n }\n\n var plugins = this.plugins[options.queue]; // Avoids applying same plugin twice, at least based on ref.\n\n if (plugins.indexOf(newPlugin) !== -1) {\n return;\n }\n\n plugins.push(newPlugin);\n this.registry = [].concat(this.plugins.external, this.plugins.internal).reduce(function (registry, plugin) {\n for (var name in plugin) {\n if (name in registry) {\n registry[name].push(plugin[name]);\n }\n }\n\n return registry;\n }, {\n onCreateRule: [],\n onProcessRule: [],\n onProcessStyle: [],\n onProcessSheet: [],\n onChangeValue: [],\n onUpdate: []\n });\n };\n\n return PluginsRegistry;\n}();\n\n/**\n * Sheets registry to access all instances in one place.\n */\n\nvar SheetsRegistry =\n/*#__PURE__*/\nfunction () {\n function SheetsRegistry() {\n this.registry = [];\n }\n\n var _proto = SheetsRegistry.prototype;\n\n /**\n * Register a Style Sheet.\n */\n _proto.add = function add(sheet) {\n var registry = this.registry;\n var index = sheet.options.index;\n if (registry.indexOf(sheet) !== -1) return;\n\n if (registry.length === 0 || index >= this.index) {\n registry.push(sheet);\n return;\n } // Find a position.\n\n\n for (var i = 0; i < registry.length; i++) {\n if (registry[i].options.index > index) {\n registry.splice(i, 0, sheet);\n return;\n }\n }\n }\n /**\n * Reset the registry.\n */\n ;\n\n _proto.reset = function reset() {\n this.registry = [];\n }\n /**\n * Remove a Style Sheet.\n */\n ;\n\n _proto.remove = function remove(sheet) {\n var index = this.registry.indexOf(sheet);\n this.registry.splice(index, 1);\n }\n /**\n * Convert all attached sheets to a CSS string.\n */\n ;\n\n _proto.toString = function toString(_temp) {\n var _ref = _temp === void 0 ? {} : _temp,\n attached = _ref.attached,\n options = _objectWithoutPropertiesLoose(_ref, [\"attached\"]);\n\n var _getWhitespaceSymbols = getWhitespaceSymbols(options),\n linebreak = _getWhitespaceSymbols.linebreak;\n\n var css = '';\n\n for (var i = 0; i < this.registry.length; i++) {\n var sheet = this.registry[i];\n\n if (attached != null && sheet.attached !== attached) {\n continue;\n }\n\n if (css) css += linebreak;\n css += sheet.toString(options);\n }\n\n return css;\n };\n\n _createClass(SheetsRegistry, [{\n key: \"index\",\n\n /**\n * Current highest index number.\n */\n get: function get() {\n return this.registry.length === 0 ? 0 : this.registry[this.registry.length - 1].options.index;\n }\n }]);\n\n return SheetsRegistry;\n}();\n\n/**\n * This is a global sheets registry. Only DomRenderer will add sheets to it.\n * On the server one should use an own SheetsRegistry instance and add the\n * sheets to it, because you need to make sure to create a new registry for\n * each request in order to not leak sheets across requests.\n */\n\nvar sheets = new SheetsRegistry();\n\n/* eslint-disable */\n\n/**\n * Now that `globalThis` is available on most platforms\n * (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/globalThis#browser_compatibility)\n * we check for `globalThis` first. `globalThis` is necessary for jss\n * to run in Agoric's secure version of JavaScript (SES). Under SES,\n * `globalThis` exists, but `window`, `self`, and `Function('return\n * this')()` are all undefined for security reasons.\n *\n * https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\n */\nvar globalThis$1 = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' && window.Math === Math ? window : typeof self !== 'undefined' && self.Math === Math ? self : Function('return this')();\n\nvar ns = '2f1acc6c3a606b082e5eef5e54414ffb';\nif (globalThis$1[ns] == null) globalThis$1[ns] = 0; // Bundle may contain multiple JSS versions at the same time. In order to identify\n// the current version with just one short number and use it for classes generation\n// we use a counter. Also it is more accurate, because user can manually reevaluate\n// the module.\n\nvar moduleId = globalThis$1[ns]++;\n/**\n * Returns a function which generates unique class names based on counters.\n * When new generator function is created, rule counter is reseted.\n * We need to reset the rule counter for SSR for each request.\n */\n\nvar createGenerateId = function createGenerateId(options) {\n if (options === void 0) {\n options = {};\n }\n\n var ruleCounter = 0;\n\n var generateId = function generateId(rule, sheet) {\n ruleCounter += 1;\n\n var jssId = '';\n var prefix = '';\n\n if (sheet) {\n if (sheet.options.classNamePrefix) {\n prefix = sheet.options.classNamePrefix;\n }\n\n if (sheet.options.jss.id != null) {\n jssId = String(sheet.options.jss.id);\n }\n }\n\n if (options.minify) {\n // Using \"c\" because a number can't be the first char in a class name.\n return \"\" + (prefix || 'c') + moduleId + jssId + ruleCounter;\n }\n\n return prefix + rule.key + \"-\" + moduleId + (jssId ? \"-\" + jssId : '') + \"-\" + ruleCounter;\n };\n\n return generateId;\n};\n\n/**\n * Cache the value from the first time a function is called.\n */\n\nvar memoize = function memoize(fn) {\n var value;\n return function () {\n if (!value) value = fn();\n return value;\n };\n};\n/**\n * Get a style property value.\n */\n\n\nvar getPropertyValue = function getPropertyValue(cssRule, prop) {\n try {\n // Support CSSTOM.\n if (cssRule.attributeStyleMap) {\n return cssRule.attributeStyleMap.get(prop);\n }\n\n return cssRule.style.getPropertyValue(prop);\n } catch (err) {\n // IE may throw if property is unknown.\n return '';\n }\n};\n/**\n * Set a style property.\n */\n\n\nvar setProperty = function setProperty(cssRule, prop, value) {\n try {\n var cssValue = value;\n\n if (Array.isArray(value)) {\n cssValue = toCssValue(value, true);\n\n if (value[value.length - 1] === '!important') {\n cssRule.style.setProperty(prop, cssValue, 'important');\n return true;\n }\n } // Support CSSTOM.\n\n\n if (cssRule.attributeStyleMap) {\n cssRule.attributeStyleMap.set(prop, cssValue);\n } else {\n cssRule.style.setProperty(prop, cssValue);\n }\n } catch (err) {\n // IE may throw if property is unknown.\n return false;\n }\n\n return true;\n};\n/**\n * Remove a style property.\n */\n\n\nvar removeProperty = function removeProperty(cssRule, prop) {\n try {\n // Support CSSTOM.\n if (cssRule.attributeStyleMap) {\n cssRule.attributeStyleMap.delete(prop);\n } else {\n cssRule.style.removeProperty(prop);\n }\n } catch (err) {\n }\n};\n/**\n * Set the selector.\n */\n\n\nvar setSelector = function setSelector(cssRule, selectorText) {\n cssRule.selectorText = selectorText; // Return false if setter was not successful.\n // Currently works in chrome only.\n\n return cssRule.selectorText === selectorText;\n};\n/**\n * Gets the `head` element upon the first call and caches it.\n * We assume it can't be null.\n */\n\n\nvar getHead = memoize(function () {\n return document.querySelector('head');\n});\n/**\n * Find attached sheet with an index higher than the passed one.\n */\n\nfunction findHigherSheet(registry, options) {\n for (var i = 0; i < registry.length; i++) {\n var sheet = registry[i];\n\n if (sheet.attached && sheet.options.index > options.index && sheet.options.insertionPoint === options.insertionPoint) {\n return sheet;\n }\n }\n\n return null;\n}\n/**\n * Find attached sheet with the highest index.\n */\n\n\nfunction findHighestSheet(registry, options) {\n for (var i = registry.length - 1; i >= 0; i--) {\n var sheet = registry[i];\n\n if (sheet.attached && sheet.options.insertionPoint === options.insertionPoint) {\n return sheet;\n }\n }\n\n return null;\n}\n/**\n * Find a comment with \"jss\" inside.\n */\n\n\nfunction findCommentNode(text) {\n var head = getHead();\n\n for (var i = 0; i < head.childNodes.length; i++) {\n var node = head.childNodes[i];\n\n if (node.nodeType === 8 && node.nodeValue.trim() === text) {\n return node;\n }\n }\n\n return null;\n}\n/**\n * Find a node before which we can insert the sheet.\n */\n\n\nfunction findPrevNode(options) {\n var registry = sheets.registry;\n\n if (registry.length > 0) {\n // Try to insert before the next higher sheet.\n var sheet = findHigherSheet(registry, options);\n\n if (sheet && sheet.renderer) {\n return {\n parent: sheet.renderer.element.parentNode,\n node: sheet.renderer.element\n };\n } // Otherwise insert after the last attached.\n\n\n sheet = findHighestSheet(registry, options);\n\n if (sheet && sheet.renderer) {\n return {\n parent: sheet.renderer.element.parentNode,\n node: sheet.renderer.element.nextSibling\n };\n }\n } // Try to find a comment placeholder if registry is empty.\n\n\n var insertionPoint = options.insertionPoint;\n\n if (insertionPoint && typeof insertionPoint === 'string') {\n var comment = findCommentNode(insertionPoint);\n\n if (comment) {\n return {\n parent: comment.parentNode,\n node: comment.nextSibling\n };\n } // If user specifies an insertion point and it can't be found in the document -\n }\n\n return false;\n}\n/**\n * Insert style element into the DOM.\n */\n\n\nfunction insertStyle(style, options) {\n var insertionPoint = options.insertionPoint;\n var nextNode = findPrevNode(options);\n\n if (nextNode !== false && nextNode.parent) {\n nextNode.parent.insertBefore(style, nextNode.node);\n return;\n } // Works with iframes and any node types.\n\n\n if (insertionPoint && typeof insertionPoint.nodeType === 'number') {\n var insertionPointElement = insertionPoint;\n var parentNode = insertionPointElement.parentNode;\n if (parentNode) parentNode.insertBefore(style, insertionPointElement.nextSibling);\n return;\n }\n\n getHead().appendChild(style);\n}\n/**\n * Read jss nonce setting from the page if the user has set it.\n */\n\n\nvar getNonce = memoize(function () {\n var node = document.querySelector('meta[property=\"csp-nonce\"]');\n return node ? node.getAttribute('content') : null;\n});\n\nvar _insertRule = function insertRule(container, rule, index) {\n try {\n if ('insertRule' in container) {\n container.insertRule(rule, index);\n } // Keyframes rule.\n else if ('appendRule' in container) {\n container.appendRule(rule);\n }\n } catch (err) {\n return false;\n }\n\n return container.cssRules[index];\n};\n\nvar getValidRuleInsertionIndex = function getValidRuleInsertionIndex(container, index) {\n var maxIndex = container.cssRules.length; // In case previous insertion fails, passed index might be wrong\n\n if (index === undefined || index > maxIndex) {\n // eslint-disable-next-line no-param-reassign\n return maxIndex;\n }\n\n return index;\n};\n\nvar createStyle = function createStyle() {\n var el = document.createElement('style'); // Without it, IE will have a broken source order specificity if we\n // insert rules after we insert the style tag.\n // It seems to kick-off the source order specificity algorithm.\n\n el.textContent = '\\n';\n return el;\n};\n\nvar DomRenderer =\n/*#__PURE__*/\nfunction () {\n // Will be empty if link: true option is not set, because\n // it is only for use together with insertRule API.\n function DomRenderer(sheet) {\n this.getPropertyValue = getPropertyValue;\n this.setProperty = setProperty;\n this.removeProperty = removeProperty;\n this.setSelector = setSelector;\n this.hasInsertedRules = false;\n this.cssRules = [];\n // There is no sheet when the renderer is used from a standalone StyleRule.\n if (sheet) sheets.add(sheet);\n this.sheet = sheet;\n\n var _ref = this.sheet ? this.sheet.options : {},\n media = _ref.media,\n meta = _ref.meta,\n element = _ref.element;\n\n this.element = element || createStyle();\n this.element.setAttribute('data-jss', '');\n if (media) this.element.setAttribute('media', media);\n if (meta) this.element.setAttribute('data-meta', meta);\n var nonce = getNonce();\n if (nonce) this.element.setAttribute('nonce', nonce);\n }\n /**\n * Insert style element into render tree.\n */\n\n\n var _proto = DomRenderer.prototype;\n\n _proto.attach = function attach() {\n // In the case the element node is external and it is already in the DOM.\n if (this.element.parentNode || !this.sheet) return;\n insertStyle(this.element, this.sheet.options); // When rules are inserted using `insertRule` API, after `sheet.detach().attach()`\n // most browsers create a new CSSStyleSheet, except of all IEs.\n\n var deployed = Boolean(this.sheet && this.sheet.deployed);\n\n if (this.hasInsertedRules && deployed) {\n this.hasInsertedRules = false;\n this.deploy();\n }\n }\n /**\n * Remove style element from render tree.\n */\n ;\n\n _proto.detach = function detach() {\n if (!this.sheet) return;\n var parentNode = this.element.parentNode;\n if (parentNode) parentNode.removeChild(this.element); // In the most browsers, rules inserted using insertRule() API will be lost when style element is removed.\n // Though IE will keep them and we need a consistent behavior.\n\n if (this.sheet.options.link) {\n this.cssRules = [];\n this.element.textContent = '\\n';\n }\n }\n /**\n * Inject CSS string into element.\n */\n ;\n\n _proto.deploy = function deploy() {\n var sheet = this.sheet;\n if (!sheet) return;\n\n if (sheet.options.link) {\n this.insertRules(sheet.rules);\n return;\n }\n\n this.element.textContent = \"\\n\" + sheet.toString() + \"\\n\";\n }\n /**\n * Insert RuleList into an element.\n */\n ;\n\n _proto.insertRules = function insertRules(rules, nativeParent) {\n for (var i = 0; i < rules.index.length; i++) {\n this.insertRule(rules.index[i], i, nativeParent);\n }\n }\n /**\n * Insert a rule into element.\n */\n ;\n\n _proto.insertRule = function insertRule(rule, index, nativeParent) {\n if (nativeParent === void 0) {\n nativeParent = this.element.sheet;\n }\n\n if (rule.rules) {\n var parent = rule;\n var latestNativeParent = nativeParent;\n\n if (rule.type === 'conditional' || rule.type === 'keyframes') {\n var _insertionIndex = getValidRuleInsertionIndex(nativeParent, index); // We need to render the container without children first.\n\n\n latestNativeParent = _insertRule(nativeParent, parent.toString({\n children: false\n }), _insertionIndex);\n\n if (latestNativeParent === false) {\n return false;\n }\n\n this.refCssRule(rule, _insertionIndex, latestNativeParent);\n }\n\n this.insertRules(parent.rules, latestNativeParent);\n return latestNativeParent;\n }\n\n var ruleStr = rule.toString();\n if (!ruleStr) return false;\n var insertionIndex = getValidRuleInsertionIndex(nativeParent, index);\n\n var nativeRule = _insertRule(nativeParent, ruleStr, insertionIndex);\n\n if (nativeRule === false) {\n return false;\n }\n\n this.hasInsertedRules = true;\n this.refCssRule(rule, insertionIndex, nativeRule);\n return nativeRule;\n };\n\n _proto.refCssRule = function refCssRule(rule, index, cssRule) {\n rule.renderable = cssRule; // We only want to reference the top level rules, deleteRule API doesn't support removing nested rules\n // like rules inside media queries or keyframes\n\n if (rule.options.parent instanceof StyleSheet) {\n this.cssRules[index] = cssRule;\n }\n }\n /**\n * Delete a rule.\n */\n ;\n\n _proto.deleteRule = function deleteRule(cssRule) {\n var sheet = this.element.sheet;\n var index = this.indexOf(cssRule);\n if (index === -1) return false;\n sheet.deleteRule(index);\n this.cssRules.splice(index, 1);\n return true;\n }\n /**\n * Get index of a CSS Rule.\n */\n ;\n\n _proto.indexOf = function indexOf(cssRule) {\n return this.cssRules.indexOf(cssRule);\n }\n /**\n * Generate a new CSS rule and replace the existing one.\n */\n ;\n\n _proto.replaceRule = function replaceRule(cssRule, rule) {\n var index = this.indexOf(cssRule);\n if (index === -1) return false;\n this.element.sheet.deleteRule(index);\n this.cssRules.splice(index, 1);\n return this.insertRule(rule, index);\n }\n /**\n * Get all rules elements.\n */\n ;\n\n _proto.getRules = function getRules() {\n return this.element.sheet.cssRules;\n };\n\n return DomRenderer;\n}();\n\nvar instanceCounter = 0;\n\nvar Jss =\n/*#__PURE__*/\nfunction () {\n function Jss(options) {\n this.id = instanceCounter++;\n this.version = \"10.8.1\";\n this.plugins = new PluginsRegistry();\n this.options = {\n id: {\n minify: false\n },\n createGenerateId: createGenerateId,\n Renderer: isBrowser ? DomRenderer : null,\n plugins: []\n };\n this.generateId = createGenerateId({\n minify: false\n });\n\n for (var i = 0; i < plugins.length; i++) {\n this.plugins.use(plugins[i], {\n queue: 'internal'\n });\n }\n\n this.setup(options);\n }\n /**\n * Prepares various options, applies plugins.\n * Should not be used twice on the same instance, because there is no plugins\n * deduplication logic.\n */\n\n\n var _proto = Jss.prototype;\n\n _proto.setup = function setup(options) {\n if (options === void 0) {\n options = {};\n }\n\n if (options.createGenerateId) {\n this.options.createGenerateId = options.createGenerateId;\n }\n\n if (options.id) {\n this.options.id = _extends$1({}, this.options.id, options.id);\n }\n\n if (options.createGenerateId || options.id) {\n this.generateId = this.options.createGenerateId(this.options.id);\n }\n\n if (options.insertionPoint != null) this.options.insertionPoint = options.insertionPoint;\n\n if ('Renderer' in options) {\n this.options.Renderer = options.Renderer;\n } // eslint-disable-next-line prefer-spread\n\n\n if (options.plugins) this.use.apply(this, options.plugins);\n return this;\n }\n /**\n * Create a Style Sheet.\n */\n ;\n\n _proto.createStyleSheet = function createStyleSheet(styles, options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options = options,\n index = _options.index;\n\n if (typeof index !== 'number') {\n index = sheets.index === 0 ? 0 : sheets.index + 1;\n }\n\n var sheet = new StyleSheet(styles, _extends$1({}, options, {\n jss: this,\n generateId: options.generateId || this.generateId,\n insertionPoint: this.options.insertionPoint,\n Renderer: this.options.Renderer,\n index: index\n }));\n this.plugins.onProcessSheet(sheet);\n return sheet;\n }\n /**\n * Detach the Style Sheet and remove it from the registry.\n */\n ;\n\n _proto.removeStyleSheet = function removeStyleSheet(sheet) {\n sheet.detach();\n sheets.remove(sheet);\n return this;\n }\n /**\n * Create a rule without a Style Sheet.\n * [Deprecated] will be removed in the next major version.\n */\n ;\n\n _proto.createRule = function createRule$1(name, style, options) {\n if (style === void 0) {\n style = {};\n }\n\n if (options === void 0) {\n options = {};\n }\n\n // Enable rule without name for inline styles.\n if (typeof name === 'object') {\n return this.createRule(undefined, name, style);\n }\n\n var ruleOptions = _extends$1({}, options, {\n name: name,\n jss: this,\n Renderer: this.options.Renderer\n });\n\n if (!ruleOptions.generateId) ruleOptions.generateId = this.generateId;\n if (!ruleOptions.classes) ruleOptions.classes = {};\n if (!ruleOptions.keyframes) ruleOptions.keyframes = {};\n\n var rule = createRule(name, style, ruleOptions);\n\n if (rule) this.plugins.onProcessRule(rule);\n return rule;\n }\n /**\n * Register plugin. Passed function will be invoked with a rule instance.\n */\n ;\n\n _proto.use = function use() {\n var _this = this;\n\n for (var _len = arguments.length, plugins = new Array(_len), _key = 0; _key < _len; _key++) {\n plugins[_key] = arguments[_key];\n }\n\n plugins.forEach(function (plugin) {\n _this.plugins.use(plugin);\n });\n return this;\n };\n\n return Jss;\n}();\n\nvar createJss = function createJss(options) {\n return new Jss(options);\n};\n\n/**\n * SheetsManager is like a WeakMap which is designed to count StyleSheet\n * instances and attach/detach automatically.\n * Used in react-jss.\n */\n\nvar SheetsManager =\n/*#__PURE__*/\nfunction () {\n function SheetsManager() {\n this.length = 0;\n this.sheets = new WeakMap();\n }\n\n var _proto = SheetsManager.prototype;\n\n _proto.get = function get(key) {\n var entry = this.sheets.get(key);\n return entry && entry.sheet;\n };\n\n _proto.add = function add(key, sheet) {\n if (this.sheets.has(key)) return;\n this.length++;\n this.sheets.set(key, {\n sheet: sheet,\n refs: 0\n });\n };\n\n _proto.manage = function manage(key) {\n var entry = this.sheets.get(key);\n\n if (entry) {\n if (entry.refs === 0) {\n entry.sheet.attach();\n }\n\n entry.refs++;\n return entry.sheet;\n }\n return undefined;\n };\n\n _proto.unmanage = function unmanage(key) {\n var entry = this.sheets.get(key);\n\n if (entry) {\n if (entry.refs > 0) {\n entry.refs--;\n if (entry.refs === 0) entry.sheet.detach();\n }\n }\n };\n\n _createClass(SheetsManager, [{\n key: \"size\",\n get: function get() {\n return this.length;\n }\n }]);\n\n return SheetsManager;\n}();\n\n/**\n* Export a constant indicating if this browser has CSSTOM support.\n* https://developers.google.com/web/updates/2018/03/cssom\n*/\nvar hasCSSTOMSupport = typeof CSS === 'object' && CSS != null && 'number' in CSS;\n\n/**\n * Extracts a styles object with only props that contain function values.\n */\nfunction getDynamicStyles(styles) {\n var to = null;\n\n for (var key in styles) {\n var value = styles[key];\n var type = typeof value;\n\n if (type === 'function') {\n if (!to) to = {};\n to[key] = value;\n } else if (type === 'object' && value !== null && !Array.isArray(value)) {\n var extracted = getDynamicStyles(value);\n\n if (extracted) {\n if (!to) to = {};\n to[key] = extracted;\n }\n }\n }\n\n return to;\n}\n\n/**\n * A better abstraction over CSS.\n *\n * @copyright Oleg Isonen (Slobodskoi) / Isonen 2014-present\n * @website https://github.com/cssinjs/jss\n * @license MIT\n */\nvar index = createJss();\n\nvar now = Date.now();\nvar fnValuesNs = \"fnValues\" + now;\nvar fnRuleNs = \"fnStyle\" + ++now;\n\nvar functionPlugin = function functionPlugin() {\n return {\n onCreateRule: function onCreateRule(name, decl, options) {\n if (typeof decl !== 'function') return null;\n var rule = createRule(name, {}, options);\n rule[fnRuleNs] = decl;\n return rule;\n },\n onProcessStyle: function onProcessStyle(style, rule) {\n // We need to extract function values from the declaration, so that we can keep core unaware of them.\n // We need to do that only once.\n // We don't need to extract functions on each style update, since this can happen only once.\n // We don't support function values inside of function rules.\n if (fnValuesNs in rule || fnRuleNs in rule) return style;\n var fnValues = {};\n\n for (var prop in style) {\n var value = style[prop];\n if (typeof value !== 'function') continue;\n delete style[prop];\n fnValues[prop] = value;\n }\n\n rule[fnValuesNs] = fnValues;\n return style;\n },\n onUpdate: function onUpdate(data, rule, sheet, options) {\n var styleRule = rule;\n var fnRule = styleRule[fnRuleNs]; // If we have a style function, the entire rule is dynamic and style object\n // will be returned from that function.\n\n if (fnRule) {\n // Empty object will remove all currently defined props\n // in case function rule returns a falsy value.\n styleRule.style = fnRule(data) || {};\n }\n\n var fnValues = styleRule[fnValuesNs]; // If we have a fn values map, it is a rule with function values.\n\n if (fnValues) {\n for (var _prop in fnValues) {\n styleRule.prop(_prop, fnValues[_prop](data), options);\n }\n }\n }\n };\n};\n\nfunction symbolObservablePonyfill(root) {\n\tvar result;\n\tvar Symbol = root.Symbol;\n\n\tif (typeof Symbol === 'function') {\n\t\tif (Symbol.observable) {\n\t\t\tresult = Symbol.observable;\n\t\t} else {\n\t\t\tresult = Symbol('observable');\n\t\t\tSymbol.observable = result;\n\t\t}\n\t} else {\n\t\tresult = '@@observable';\n\t}\n\n\treturn result;\n}\n\n/* global window */\n\nvar root;\n\nif (typeof self !== 'undefined') {\n root = self;\n} else if (typeof window !== 'undefined') {\n root = window;\n} else if (typeof global !== 'undefined') {\n root = global;\n} else if (typeof module !== 'undefined') {\n root = module;\n} else {\n root = Function('return this')();\n}\n\nvar result = symbolObservablePonyfill(root);\n\nvar isObservable = function isObservable(value) {\n return value && value[result] && value === value[result]();\n};\n\nvar observablePlugin = function observablePlugin(updateOptions) {\n return {\n onCreateRule: function onCreateRule(name, decl, options) {\n if (!isObservable(decl)) return null;\n var style$ = decl;\n var rule = createRule(name, {}, options); // TODO\n // Call `stream.subscribe()` returns a subscription, which should be explicitly\n // unsubscribed from when we know this sheet is no longer needed.\n\n style$.subscribe(function (style) {\n for (var prop in style) {\n rule.prop(prop, style[prop], updateOptions);\n }\n });\n return rule;\n },\n onProcessRule: function onProcessRule(rule) {\n if (rule && rule.type !== 'style') return;\n var styleRule = rule;\n var style = styleRule.style;\n\n var _loop = function _loop(prop) {\n var value = style[prop];\n if (!isObservable(value)) return \"continue\";\n delete style[prop];\n value.subscribe({\n next: function next(nextValue) {\n styleRule.prop(prop, nextValue, updateOptions);\n }\n });\n };\n\n for (var prop in style) {\n var _ret = _loop(prop);\n\n if (_ret === \"continue\") continue;\n }\n }\n };\n};\n\nvar semiWithNl = /;\\n/;\n/**\n * Naive CSS parser.\n * - Supports only rule body (no selectors)\n * - Requires semicolon and new line after the value (except of last line)\n * - No nested rules support\n */\n\nvar parse = function parse(cssText) {\n var style = {};\n var split = cssText.split(semiWithNl);\n\n for (var i = 0; i < split.length; i++) {\n var decl = (split[i] || '').trim();\n if (!decl) continue;\n var colonIndex = decl.indexOf(':');\n\n if (colonIndex === -1) {\n continue;\n }\n\n var prop = decl.substr(0, colonIndex).trim();\n var value = decl.substr(colonIndex + 1).trim();\n style[prop] = value;\n }\n\n return style;\n};\n\nvar onProcessRule = function onProcessRule(rule) {\n if (typeof rule.style === 'string') {\n rule.style = parse(rule.style);\n }\n};\n\nfunction templatePlugin() {\n return {\n onProcessRule: onProcessRule\n };\n}\n\nvar at = '@global';\nvar atPrefix = '@global ';\n\nvar GlobalContainerRule =\n/*#__PURE__*/\nfunction () {\n function GlobalContainerRule(key, styles, options) {\n this.type = 'global';\n this.at = at;\n this.isProcessed = false;\n this.key = key;\n this.options = options;\n this.rules = new RuleList(_extends$1({}, options, {\n parent: this\n }));\n\n for (var selector in styles) {\n this.rules.add(selector, styles[selector]);\n }\n\n this.rules.process();\n }\n /**\n * Get a rule.\n */\n\n\n var _proto = GlobalContainerRule.prototype;\n\n _proto.getRule = function getRule(name) {\n return this.rules.get(name);\n }\n /**\n * Create and register rule, run plugins.\n */\n ;\n\n _proto.addRule = function addRule(name, style, options) {\n var rule = this.rules.add(name, style, options);\n if (rule) this.options.jss.plugins.onProcessRule(rule);\n return rule;\n }\n /**\n * Replace rule, run plugins.\n */\n ;\n\n _proto.replaceRule = function replaceRule(name, style, options) {\n var newRule = this.rules.replace(name, style, options);\n if (newRule) this.options.jss.plugins.onProcessRule(newRule);\n return newRule;\n }\n /**\n * Get index of a rule.\n */\n ;\n\n _proto.indexOf = function indexOf(rule) {\n return this.rules.indexOf(rule);\n }\n /**\n * Generates a CSS string.\n */\n ;\n\n _proto.toString = function toString() {\n return this.rules.toString();\n };\n\n return GlobalContainerRule;\n}();\n\nvar GlobalPrefixedRule =\n/*#__PURE__*/\nfunction () {\n function GlobalPrefixedRule(key, style, options) {\n this.type = 'global';\n this.at = at;\n this.isProcessed = false;\n this.key = key;\n this.options = options;\n var selector = key.substr(atPrefix.length);\n this.rule = options.jss.createRule(selector, style, _extends$1({}, options, {\n parent: this\n }));\n }\n\n var _proto2 = GlobalPrefixedRule.prototype;\n\n _proto2.toString = function toString(options) {\n return this.rule ? this.rule.toString(options) : '';\n };\n\n return GlobalPrefixedRule;\n}();\n\nvar separatorRegExp = /\\s*,\\s*/g;\n\nfunction addScope(selector, scope) {\n var parts = selector.split(separatorRegExp);\n var scoped = '';\n\n for (var i = 0; i < parts.length; i++) {\n scoped += scope + \" \" + parts[i].trim();\n if (parts[i + 1]) scoped += ', ';\n }\n\n return scoped;\n}\n\nfunction handleNestedGlobalContainerRule(rule, sheet) {\n var options = rule.options,\n style = rule.style;\n var rules = style ? style[at] : null;\n if (!rules) return;\n\n for (var name in rules) {\n sheet.addRule(name, rules[name], _extends$1({}, options, {\n selector: addScope(name, rule.selector)\n }));\n }\n\n delete style[at];\n}\n\nfunction handlePrefixedGlobalRule(rule, sheet) {\n var options = rule.options,\n style = rule.style;\n\n for (var prop in style) {\n if (prop[0] !== '@' || prop.substr(0, at.length) !== at) continue;\n var selector = addScope(prop.substr(at.length), rule.selector);\n sheet.addRule(selector, style[prop], _extends$1({}, options, {\n selector: selector\n }));\n delete style[prop];\n }\n}\n/**\n * Convert nested rules to separate, remove them from original styles.\n */\n\n\nfunction jssGlobal() {\n function onCreateRule(name, styles, options) {\n if (!name) return null;\n\n if (name === at) {\n return new GlobalContainerRule(name, styles, options);\n }\n\n if (name[0] === '@' && name.substr(0, atPrefix.length) === atPrefix) {\n return new GlobalPrefixedRule(name, styles, options);\n }\n\n var parent = options.parent;\n\n if (parent) {\n if (parent.type === 'global' || parent.options.parent && parent.options.parent.type === 'global') {\n options.scoped = false;\n }\n }\n\n if (!options.selector && options.scoped === false) {\n options.selector = name;\n }\n\n return null;\n }\n\n function onProcessRule(rule, sheet) {\n if (rule.type !== 'style' || !sheet) return;\n handleNestedGlobalContainerRule(rule, sheet);\n handlePrefixedGlobalRule(rule, sheet);\n }\n\n return {\n onCreateRule: onCreateRule,\n onProcessRule: onProcessRule\n };\n}\n\nvar isObject = function isObject(obj) {\n return obj && typeof obj === 'object' && !Array.isArray(obj);\n};\n\nvar valueNs = \"extendCurrValue\" + Date.now();\n\nfunction mergeExtend(style, rule, sheet, newStyle) {\n var extendType = typeof style.extend; // Extend using a rule name.\n\n if (extendType === 'string') {\n if (!sheet) return;\n var refRule = sheet.getRule(style.extend);\n if (!refRule) return;\n\n if (refRule === rule) {\n return;\n }\n\n var parent = refRule.options.parent;\n\n if (parent) {\n var originalStyle = parent.rules.raw[style.extend];\n extend(originalStyle, rule, sheet, newStyle);\n }\n\n return;\n } // Extend using an array.\n\n\n if (Array.isArray(style.extend)) {\n for (var index = 0; index < style.extend.length; index++) {\n var singleExtend = style.extend[index];\n var singleStyle = typeof singleExtend === 'string' ? _extends$1({}, style, {\n extend: singleExtend\n }) : style.extend[index];\n extend(singleStyle, rule, sheet, newStyle);\n }\n\n return;\n } // Extend is a style object.\n\n\n for (var prop in style.extend) {\n if (prop === 'extend') {\n extend(style.extend.extend, rule, sheet, newStyle);\n continue;\n }\n\n if (isObject(style.extend[prop])) {\n if (!(prop in newStyle)) newStyle[prop] = {};\n extend(style.extend[prop], rule, sheet, newStyle[prop]);\n continue;\n }\n\n newStyle[prop] = style.extend[prop];\n }\n}\n\nfunction mergeRest(style, rule, sheet, newStyle) {\n // Copy base style.\n for (var prop in style) {\n if (prop === 'extend') continue;\n\n if (isObject(newStyle[prop]) && isObject(style[prop])) {\n extend(style[prop], rule, sheet, newStyle[prop]);\n continue;\n }\n\n if (isObject(style[prop])) {\n newStyle[prop] = extend(style[prop], rule, sheet);\n continue;\n }\n\n newStyle[prop] = style[prop];\n }\n}\n/**\n * Recursively extend styles.\n */\n\n\nfunction extend(style, rule, sheet, newStyle) {\n if (newStyle === void 0) {\n newStyle = {};\n }\n\n mergeExtend(style, rule, sheet, newStyle);\n mergeRest(style, rule, sheet, newStyle);\n return newStyle;\n}\n/**\n * Handle `extend` property.\n */\n\n\nfunction jssExtend() {\n function onProcessStyle(style, rule, sheet) {\n if ('extend' in style) return extend(style, rule, sheet);\n return style;\n }\n\n function onChangeValue(value, prop, rule) {\n if (prop !== 'extend') return value; // Value is empty, remove properties set previously.\n\n if (value == null || value === false) {\n for (var key in rule[valueNs]) {\n rule.prop(key, null);\n }\n\n rule[valueNs] = null;\n return null;\n }\n\n if (typeof value === 'object') {\n for (var _key in value) {\n rule.prop(_key, value[_key]);\n }\n\n rule[valueNs] = value;\n } // Make sure we don't set the value in the core.\n\n\n return null;\n }\n\n return {\n onProcessStyle: onProcessStyle,\n onChangeValue: onChangeValue\n };\n}\n\nvar separatorRegExp$1 = /\\s*,\\s*/g;\nvar parentRegExp = /&/g;\nvar refRegExp$1 = /\\$([\\w-]+)/g;\n/**\n * Convert nested rules to separate, remove them from original styles.\n */\n\nfunction jssNested() {\n // Get a function to be used for $ref replacement.\n function getReplaceRef(container, sheet) {\n return function (match, key) {\n var rule = container.getRule(key) || sheet && sheet.getRule(key);\n\n if (rule) {\n return rule.selector;\n }\n return key;\n };\n }\n\n function replaceParentRefs(nestedProp, parentProp) {\n var parentSelectors = parentProp.split(separatorRegExp$1);\n var nestedSelectors = nestedProp.split(separatorRegExp$1);\n var result = '';\n\n for (var i = 0; i < parentSelectors.length; i++) {\n var parent = parentSelectors[i];\n\n for (var j = 0; j < nestedSelectors.length; j++) {\n var nested = nestedSelectors[j];\n if (result) result += ', '; // Replace all & by the parent or prefix & with the parent.\n\n result += nested.indexOf('&') !== -1 ? nested.replace(parentRegExp, parent) : parent + \" \" + nested;\n }\n }\n\n return result;\n }\n\n function getOptions(rule, container, prevOptions) {\n // Options has been already created, now we only increase index.\n if (prevOptions) return _extends$1({}, prevOptions, {\n index: prevOptions.index + 1\n });\n var nestingLevel = rule.options.nestingLevel;\n nestingLevel = nestingLevel === undefined ? 1 : nestingLevel + 1;\n\n var options = _extends$1({}, rule.options, {\n nestingLevel: nestingLevel,\n index: container.indexOf(rule) + 1 // We don't need the parent name to be set options for chlid.\n\n });\n\n delete options.name;\n return options;\n }\n\n function onProcessStyle(style, rule, sheet) {\n if (rule.type !== 'style') return style;\n var styleRule = rule;\n var container = styleRule.options.parent;\n var options;\n var replaceRef;\n\n for (var prop in style) {\n var isNested = prop.indexOf('&') !== -1;\n var isNestedConditional = prop[0] === '@';\n if (!isNested && !isNestedConditional) continue;\n options = getOptions(styleRule, container, options);\n\n if (isNested) {\n var selector = replaceParentRefs(prop, styleRule.selector); // Lazily create the ref replacer function just once for\n // all nested rules within the sheet.\n\n if (!replaceRef) replaceRef = getReplaceRef(container, sheet); // Replace all $refs.\n\n selector = selector.replace(refRegExp$1, replaceRef);\n var name = styleRule.key + \"-\" + prop;\n container.replaceRule(name, style[prop], _extends$1({}, options, {\n selector: selector\n }));\n } else if (isNestedConditional) {\n // Place conditional right after the parent rule to ensure right ordering.\n container.addRule(prop, {}, options).addRule(styleRule.key, style[prop], {\n selector: styleRule.selector\n });\n }\n\n delete style[prop];\n }\n\n return style;\n }\n\n return {\n onProcessStyle: onProcessStyle\n };\n}\n\n/**\n * Set selector.\n *\n * @param original rule\n * @param className class string\n * @return flag indicating function was successfull or not\n */\n\nfunction registerClass(rule, className) {\n // Skip falsy values\n if (!className) return true; // Support array of class names `{composes: ['foo', 'bar']}`\n\n if (Array.isArray(className)) {\n for (var index = 0; index < className.length; index++) {\n var isSetted = registerClass(rule, className[index]);\n if (!isSetted) return false;\n }\n\n return true;\n } // Support space separated class names `{composes: 'foo bar'}`\n\n\n if (className.indexOf(' ') > -1) {\n return registerClass(rule, className.split(' '));\n }\n\n var parent = rule.options.parent; // It is a ref to a local rule.\n\n if (className[0] === '$') {\n var refRule = parent.getRule(className.substr(1));\n\n if (!refRule) {\n return false;\n }\n\n if (refRule === rule) {\n return false;\n }\n\n parent.classes[rule.key] += \" \" + parent.classes[refRule.key];\n return true;\n }\n\n parent.classes[rule.key] += \" \" + className;\n return true;\n}\n/**\n * Convert compose property to additional class, remove property from original styles.\n */\n\n\nfunction jssCompose() {\n function onProcessStyle(style, rule) {\n if (!('composes' in style)) return style;\n registerClass(rule, style.composes); // Remove composes property to prevent infinite loop.\n\n delete style.composes;\n return style;\n }\n\n return {\n onProcessStyle: onProcessStyle\n };\n}\n\n/* eslint-disable no-var, prefer-template */\nvar uppercasePattern = /[A-Z]/g;\nvar msPattern = /^ms-/;\nvar cache = {};\n\nfunction toHyphenLower(match) {\n return '-' + match.toLowerCase()\n}\n\nfunction hyphenateStyleName(name) {\n if (cache.hasOwnProperty(name)) {\n return cache[name]\n }\n\n var hName = name.replace(uppercasePattern, toHyphenLower);\n return (cache[name] = msPattern.test(hName) ? '-' + hName : hName)\n}\n\n/**\n * Convert camel cased property names to dash separated.\n */\n\nfunction convertCase(style) {\n var converted = {};\n\n for (var prop in style) {\n var key = prop.indexOf('--') === 0 ? prop : hyphenateStyleName(prop);\n converted[key] = style[prop];\n }\n\n if (style.fallbacks) {\n if (Array.isArray(style.fallbacks)) converted.fallbacks = style.fallbacks.map(convertCase);else converted.fallbacks = convertCase(style.fallbacks);\n }\n\n return converted;\n}\n/**\n * Allow camel cased property names by converting them back to dasherized.\n */\n\n\nfunction camelCase() {\n function onProcessStyle(style) {\n if (Array.isArray(style)) {\n // Handle rules like @font-face, which can have multiple styles in an array\n for (var index = 0; index < style.length; index++) {\n style[index] = convertCase(style[index]);\n }\n\n return style;\n }\n\n return convertCase(style);\n }\n\n function onChangeValue(value, prop, rule) {\n if (prop.indexOf('--') === 0) {\n return value;\n }\n\n var hyphenatedProp = hyphenateStyleName(prop); // There was no camel case in place\n\n if (prop === hyphenatedProp) return value;\n rule.prop(hyphenatedProp, value); // Core will ignore that property value we set the proper one above.\n\n return null;\n }\n\n return {\n onProcessStyle: onProcessStyle,\n onChangeValue: onChangeValue\n };\n}\n\nvar px = hasCSSTOMSupport && CSS ? CSS.px : 'px';\nvar ms = hasCSSTOMSupport && CSS ? CSS.ms : 'ms';\nvar percent = hasCSSTOMSupport && CSS ? CSS.percent : '%';\n/**\n * Generated jss-plugin-default-unit CSS property units\n */\n\nvar defaultUnits = {\n // Animation properties\n 'animation-delay': ms,\n 'animation-duration': ms,\n // Background properties\n 'background-position': px,\n 'background-position-x': px,\n 'background-position-y': px,\n 'background-size': px,\n // Border Properties\n border: px,\n 'border-bottom': px,\n 'border-bottom-left-radius': px,\n 'border-bottom-right-radius': px,\n 'border-bottom-width': px,\n 'border-left': px,\n 'border-left-width': px,\n 'border-radius': px,\n 'border-right': px,\n 'border-right-width': px,\n 'border-top': px,\n 'border-top-left-radius': px,\n 'border-top-right-radius': px,\n 'border-top-width': px,\n 'border-width': px,\n 'border-block': px,\n 'border-block-end': px,\n 'border-block-end-width': px,\n 'border-block-start': px,\n 'border-block-start-width': px,\n 'border-block-width': px,\n 'border-inline': px,\n 'border-inline-end': px,\n 'border-inline-end-width': px,\n 'border-inline-start': px,\n 'border-inline-start-width': px,\n 'border-inline-width': px,\n 'border-start-start-radius': px,\n 'border-start-end-radius': px,\n 'border-end-start-radius': px,\n 'border-end-end-radius': px,\n // Margin properties\n margin: px,\n 'margin-bottom': px,\n 'margin-left': px,\n 'margin-right': px,\n 'margin-top': px,\n 'margin-block': px,\n 'margin-block-end': px,\n 'margin-block-start': px,\n 'margin-inline': px,\n 'margin-inline-end': px,\n 'margin-inline-start': px,\n // Padding properties\n padding: px,\n 'padding-bottom': px,\n 'padding-left': px,\n 'padding-right': px,\n 'padding-top': px,\n 'padding-block': px,\n 'padding-block-end': px,\n 'padding-block-start': px,\n 'padding-inline': px,\n 'padding-inline-end': px,\n 'padding-inline-start': px,\n // Mask properties\n 'mask-position-x': px,\n 'mask-position-y': px,\n 'mask-size': px,\n // Width and height properties\n height: px,\n width: px,\n 'min-height': px,\n 'max-height': px,\n 'min-width': px,\n 'max-width': px,\n // Position properties\n bottom: px,\n left: px,\n top: px,\n right: px,\n inset: px,\n 'inset-block': px,\n 'inset-block-end': px,\n 'inset-block-start': px,\n 'inset-inline': px,\n 'inset-inline-end': px,\n 'inset-inline-start': px,\n // Shadow properties\n 'box-shadow': px,\n 'text-shadow': px,\n // Column properties\n 'column-gap': px,\n 'column-rule': px,\n 'column-rule-width': px,\n 'column-width': px,\n // Font and text properties\n 'font-size': px,\n 'font-size-delta': px,\n 'letter-spacing': px,\n 'text-decoration-thickness': px,\n 'text-indent': px,\n 'text-stroke': px,\n 'text-stroke-width': px,\n 'word-spacing': px,\n // Motion properties\n motion: px,\n 'motion-offset': px,\n // Outline properties\n outline: px,\n 'outline-offset': px,\n 'outline-width': px,\n // Perspective properties\n perspective: px,\n 'perspective-origin-x': percent,\n 'perspective-origin-y': percent,\n // Transform properties\n 'transform-origin': percent,\n 'transform-origin-x': percent,\n 'transform-origin-y': percent,\n 'transform-origin-z': percent,\n // Transition properties\n 'transition-delay': ms,\n 'transition-duration': ms,\n // Alignment properties\n 'vertical-align': px,\n 'flex-basis': px,\n // Some random properties\n 'shape-margin': px,\n size: px,\n gap: px,\n // Grid properties\n grid: px,\n 'grid-gap': px,\n 'row-gap': px,\n 'grid-row-gap': px,\n 'grid-column-gap': px,\n 'grid-template-rows': px,\n 'grid-template-columns': px,\n 'grid-auto-rows': px,\n 'grid-auto-columns': px,\n // Not existing properties.\n // Used to avoid issues with jss-plugin-expand integration.\n 'box-shadow-x': px,\n 'box-shadow-y': px,\n 'box-shadow-blur': px,\n 'box-shadow-spread': px,\n 'font-line-height': px,\n 'text-shadow-x': px,\n 'text-shadow-y': px,\n 'text-shadow-blur': px\n};\n\n/**\n * Clones the object and adds a camel cased property version.\n */\n\nfunction addCamelCasedVersion(obj) {\n var regExp = /(-[a-z])/g;\n\n var replace = function replace(str) {\n return str[1].toUpperCase();\n };\n\n var newObj = {};\n\n for (var key in obj) {\n newObj[key] = obj[key];\n newObj[key.replace(regExp, replace)] = obj[key];\n }\n\n return newObj;\n}\n\nvar units = addCamelCasedVersion(defaultUnits);\n/**\n * Recursive deep style passing function\n */\n\nfunction iterate(prop, value, options) {\n if (value == null) return value;\n\n if (Array.isArray(value)) {\n for (var i = 0; i < value.length; i++) {\n value[i] = iterate(prop, value[i], options);\n }\n } else if (typeof value === 'object') {\n if (prop === 'fallbacks') {\n for (var innerProp in value) {\n value[innerProp] = iterate(innerProp, value[innerProp], options);\n }\n } else {\n for (var _innerProp in value) {\n value[_innerProp] = iterate(prop + \"-\" + _innerProp, value[_innerProp], options);\n }\n } // eslint-disable-next-line no-restricted-globals\n\n } else if (typeof value === 'number' && isNaN(value) === false) {\n var unit = options[prop] || units[prop]; // Add the unit if available, except for the special case of 0px.\n\n if (unit && !(value === 0 && unit === px)) {\n return typeof unit === 'function' ? unit(value).toString() : \"\" + value + unit;\n }\n\n return value.toString();\n }\n\n return value;\n}\n/**\n * Add unit to numeric values.\n */\n\n\nfunction defaultUnit(options) {\n if (options === void 0) {\n options = {};\n }\n\n var camelCasedOptions = addCamelCasedVersion(options);\n\n function onProcessStyle(style, rule) {\n if (rule.type !== 'style') return style;\n\n for (var prop in style) {\n style[prop] = iterate(prop, style[prop], camelCasedOptions);\n }\n\n return style;\n }\n\n function onChangeValue(value, prop) {\n return iterate(prop, value, camelCasedOptions);\n }\n\n return {\n onProcessStyle: onProcessStyle,\n onChangeValue: onChangeValue\n };\n}\n\n/**\n * A scheme for converting properties from array to regular style.\n * All properties listed below will be transformed to a string separated by space.\n */\nvar propArray = {\n 'background-size': true,\n 'background-position': true,\n border: true,\n 'border-bottom': true,\n 'border-left': true,\n 'border-top': true,\n 'border-right': true,\n 'border-radius': true,\n 'border-image': true,\n 'border-width': true,\n 'border-style': true,\n 'border-color': true,\n 'box-shadow': true,\n flex: true,\n margin: true,\n padding: true,\n outline: true,\n 'transform-origin': true,\n transform: true,\n transition: true\n /**\n * A scheme for converting arrays to regular styles inside of objects.\n * For e.g.: \"{position: [0, 0]}\" => \"background-position: 0 0;\".\n */\n\n};\nvar propArrayInObj = {\n position: true,\n // background-position\n size: true // background-size\n\n /**\n * A scheme for parsing and building correct styles from passed objects.\n */\n\n};\nvar propObj = {\n padding: {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0\n },\n margin: {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0\n },\n background: {\n attachment: null,\n color: null,\n image: null,\n position: null,\n repeat: null\n },\n border: {\n width: null,\n style: null,\n color: null\n },\n 'border-top': {\n width: null,\n style: null,\n color: null\n },\n 'border-right': {\n width: null,\n style: null,\n color: null\n },\n 'border-bottom': {\n width: null,\n style: null,\n color: null\n },\n 'border-left': {\n width: null,\n style: null,\n color: null\n },\n outline: {\n width: null,\n style: null,\n color: null\n },\n 'list-style': {\n type: null,\n position: null,\n image: null\n },\n transition: {\n property: null,\n duration: null,\n 'timing-function': null,\n timingFunction: null,\n // Needed for avoiding comilation issues with jss-plugin-camel-case\n delay: null\n },\n animation: {\n name: null,\n duration: null,\n 'timing-function': null,\n timingFunction: null,\n // Needed to avoid compilation issues with jss-plugin-camel-case\n delay: null,\n 'iteration-count': null,\n iterationCount: null,\n // Needed to avoid compilation issues with jss-plugin-camel-case\n direction: null,\n 'fill-mode': null,\n fillMode: null,\n // Needed to avoid compilation issues with jss-plugin-camel-case\n 'play-state': null,\n playState: null // Needed to avoid compilation issues with jss-plugin-camel-case\n\n },\n 'box-shadow': {\n x: 0,\n y: 0,\n blur: 0,\n spread: 0,\n color: null,\n inset: null\n },\n 'text-shadow': {\n x: 0,\n y: 0,\n blur: null,\n color: null\n }\n /**\n * A scheme for converting non-standart properties inside object.\n * For e.g.: include 'border-radius' property inside 'border' object.\n */\n\n};\nvar customPropObj = {\n border: {\n radius: 'border-radius',\n image: 'border-image',\n width: 'border-width',\n style: 'border-style',\n color: 'border-color'\n },\n 'border-bottom': {\n width: 'border-bottom-width',\n style: 'border-bottom-style',\n color: 'border-bottom-color'\n },\n 'border-top': {\n width: 'border-top-width',\n style: 'border-top-style',\n color: 'border-top-color'\n },\n 'border-left': {\n width: 'border-left-width',\n style: 'border-left-style',\n color: 'border-left-color'\n },\n 'border-right': {\n width: 'border-right-width',\n style: 'border-right-style',\n color: 'border-right-color'\n },\n background: {\n size: 'background-size',\n image: 'background-image'\n },\n font: {\n style: 'font-style',\n variant: 'font-variant',\n weight: 'font-weight',\n stretch: 'font-stretch',\n size: 'font-size',\n family: 'font-family',\n lineHeight: 'line-height',\n // Needed to avoid compilation issues with jss-plugin-camel-case\n 'line-height': 'line-height'\n },\n flex: {\n grow: 'flex-grow',\n basis: 'flex-basis',\n direction: 'flex-direction',\n wrap: 'flex-wrap',\n flow: 'flex-flow',\n shrink: 'flex-shrink'\n },\n align: {\n self: 'align-self',\n items: 'align-items',\n content: 'align-content'\n },\n grid: {\n 'template-columns': 'grid-template-columns',\n templateColumns: 'grid-template-columns',\n 'template-rows': 'grid-template-rows',\n templateRows: 'grid-template-rows',\n 'template-areas': 'grid-template-areas',\n templateAreas: 'grid-template-areas',\n template: 'grid-template',\n 'auto-columns': 'grid-auto-columns',\n autoColumns: 'grid-auto-columns',\n 'auto-rows': 'grid-auto-rows',\n autoRows: 'grid-auto-rows',\n 'auto-flow': 'grid-auto-flow',\n autoFlow: 'grid-auto-flow',\n row: 'grid-row',\n column: 'grid-column',\n 'row-start': 'grid-row-start',\n rowStart: 'grid-row-start',\n 'row-end': 'grid-row-end',\n rowEnd: 'grid-row-end',\n 'column-start': 'grid-column-start',\n columnStart: 'grid-column-start',\n 'column-end': 'grid-column-end',\n columnEnd: 'grid-column-end',\n area: 'grid-area',\n gap: 'grid-gap',\n 'row-gap': 'grid-row-gap',\n rowGap: 'grid-row-gap',\n 'column-gap': 'grid-column-gap',\n columnGap: 'grid-column-gap'\n }\n};\n\n/* eslint-disable no-use-before-define */\n/**\n * Map values by given prop.\n *\n * @param {Array} array of values\n * @param {String} original property\n * @param {String} original rule\n * @return {String} mapped values\n */\n\nfunction mapValuesByProp(value, prop, rule) {\n return value.map(function (item) {\n return objectToArray(item, prop, rule, false, true);\n });\n}\n/**\n * Convert array to nested array, if needed\n */\n\n\nfunction processArray(value, prop, scheme, rule) {\n if (scheme[prop] == null) return value;\n if (value.length === 0) return [];\n if (Array.isArray(value[0])) return processArray(value[0], prop, scheme, rule);\n\n if (typeof value[0] === 'object') {\n return mapValuesByProp(value, prop, rule);\n }\n\n return [value];\n}\n/**\n * Convert object to array.\n */\n\n\nfunction objectToArray(value, prop, rule, isFallback, isInArray) {\n if (!(propObj[prop] || customPropObj[prop])) return [];\n var result = []; // Check if exists any non-standard property\n\n if (customPropObj[prop]) {\n // eslint-disable-next-line no-param-reassign\n value = customPropsToStyle(value, rule, customPropObj[prop], isFallback);\n } // Pass throught all standart props\n\n\n if (Object.keys(value).length) {\n for (var baseProp in propObj[prop]) {\n if (value[baseProp]) {\n if (Array.isArray(value[baseProp])) {\n result.push(propArrayInObj[baseProp] === null ? value[baseProp] : value[baseProp].join(' '));\n } else result.push(value[baseProp]);\n\n continue;\n } // Add default value from props config.\n\n\n if (propObj[prop][baseProp] != null) {\n result.push(propObj[prop][baseProp]);\n }\n }\n }\n\n if (!result.length || isInArray) return result;\n return [result];\n}\n/**\n * Convert custom properties values to styles adding them to rule directly\n */\n\n\nfunction customPropsToStyle(value, rule, customProps, isFallback) {\n for (var prop in customProps) {\n var propName = customProps[prop]; // If current property doesn't exist already in rule - add new one\n\n if (typeof value[prop] !== 'undefined' && (isFallback || !rule.prop(propName))) {\n var _styleDetector;\n\n var appendedValue = styleDetector((_styleDetector = {}, _styleDetector[propName] = value[prop], _styleDetector), rule)[propName]; // Add style directly in rule\n\n if (isFallback) rule.style.fallbacks[propName] = appendedValue;else rule.style[propName] = appendedValue;\n } // Delete converted property to avoid double converting\n\n\n delete value[prop];\n }\n\n return value;\n}\n/**\n * Detect if a style needs to be converted.\n */\n\n\nfunction styleDetector(style, rule, isFallback) {\n for (var prop in style) {\n var value = style[prop];\n\n if (Array.isArray(value)) {\n // Check double arrays to avoid recursion.\n if (!Array.isArray(value[0])) {\n if (prop === 'fallbacks') {\n for (var index = 0; index < style.fallbacks.length; index++) {\n style.fallbacks[index] = styleDetector(style.fallbacks[index], rule, true);\n }\n\n continue;\n }\n\n style[prop] = processArray(value, prop, propArray, rule); // Avoid creating properties with empty values\n\n if (!style[prop].length) delete style[prop];\n }\n } else if (typeof value === 'object') {\n if (prop === 'fallbacks') {\n style.fallbacks = styleDetector(style.fallbacks, rule, true);\n continue;\n }\n\n style[prop] = objectToArray(value, prop, rule, isFallback); // Avoid creating properties with empty values\n\n if (!style[prop].length) delete style[prop];\n } // Maybe a computed value resulting in an empty string\n else if (style[prop] === '') delete style[prop];\n }\n\n return style;\n}\n/**\n * Adds possibility to write expanded styles.\n */\n\n\nfunction jssExpand() {\n function onProcessStyle(style, rule) {\n if (!style || rule.type !== 'style') return style;\n\n if (Array.isArray(style)) {\n // Pass rules one by one and reformat them\n for (var index = 0; index < style.length; index++) {\n style[index] = styleDetector(style[index], rule);\n }\n\n return style;\n }\n\n return styleDetector(style, rule);\n }\n\n return {\n onProcessStyle: onProcessStyle\n };\n}\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return _arrayLikeToArray(arr);\n}\n\nfunction _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();\n}\n\n// Export javascript style and css style vendor prefixes.\nvar js = '';\nvar css = '';\nvar vendor = '';\nvar browser = '';\nvar isTouch = isBrowser && 'ontouchstart' in document.documentElement; // We should not do anything if required serverside.\n\nif (isBrowser) {\n // Order matters. We need to check Webkit the last one because\n // other vendors use to add Webkit prefixes to some properties\n var jsCssMap = {\n Moz: '-moz-',\n ms: '-ms-',\n O: '-o-',\n Webkit: '-webkit-'\n };\n\n var _document$createEleme = document.createElement('p'),\n style = _document$createEleme.style;\n\n var testProp = 'Transform';\n\n for (var key in jsCssMap) {\n if (key + testProp in style) {\n js = key;\n css = jsCssMap[key];\n break;\n }\n } // Correctly detect the Edge browser.\n\n\n if (js === 'Webkit' && 'msHyphens' in style) {\n js = 'ms';\n css = jsCssMap.ms;\n browser = 'edge';\n } // Correctly detect the Safari browser.\n\n\n if (js === 'Webkit' && '-apple-trailing-word' in style) {\n vendor = 'apple';\n }\n}\n/**\n * Vendor prefix string for the current browser.\n *\n * @type {{js: String, css: String, vendor: String, browser: String}}\n * @api public\n */\n\n\nvar prefix = {\n js: js,\n css: css,\n vendor: vendor,\n browser: browser,\n isTouch: isTouch\n};\n\n/**\n * Test if a keyframe at-rule should be prefixed or not\n *\n * @param {String} vendor prefix string for the current browser.\n * @return {String}\n * @api public\n */\n\nfunction supportedKeyframes(key) {\n // Keyframes is already prefixed. e.g. key = '@-webkit-keyframes a'\n if (key[1] === '-') return key; // No need to prefix IE/Edge. Older browsers will ignore unsupported rules.\n // https://caniuse.com/#search=keyframes\n\n if (prefix.js === 'ms') return key;\n return \"@\" + prefix.css + \"keyframes\" + key.substr(10);\n}\n\n// https://caniuse.com/#search=appearance\n\nvar appearence = {\n noPrefill: ['appearance'],\n supportedProperty: function supportedProperty(prop) {\n if (prop !== 'appearance') return false;\n if (prefix.js === 'ms') return \"-webkit-\" + prop;\n return prefix.css + prop;\n }\n};\n\n// https://caniuse.com/#search=color-adjust\n\nvar colorAdjust = {\n noPrefill: ['color-adjust'],\n supportedProperty: function supportedProperty(prop) {\n if (prop !== 'color-adjust') return false;\n if (prefix.js === 'Webkit') return prefix.css + \"print-\" + prop;\n return prop;\n }\n};\n\nvar regExp = /[-\\s]+(.)?/g;\n/**\n * Replaces the letter with the capital letter\n *\n * @param {String} match\n * @param {String} c\n * @return {String}\n * @api private\n */\n\nfunction toUpper(match, c) {\n return c ? c.toUpperCase() : '';\n}\n/**\n * Convert dash separated strings to camel-cased.\n *\n * @param {String} str\n * @return {String}\n * @api private\n */\n\n\nfunction camelize(str) {\n return str.replace(regExp, toUpper);\n}\n\n/**\n * Convert dash separated strings to pascal cased.\n *\n * @param {String} str\n * @return {String}\n * @api private\n */\n\nfunction pascalize(str) {\n return camelize(\"-\" + str);\n}\n\n// but we can use a longhand property instead.\n// https://caniuse.com/#search=mask\n\nvar mask = {\n noPrefill: ['mask'],\n supportedProperty: function supportedProperty(prop, style) {\n if (!/^mask/.test(prop)) return false;\n\n if (prefix.js === 'Webkit') {\n var longhand = 'mask-image';\n\n if (camelize(longhand) in style) {\n return prop;\n }\n\n if (prefix.js + pascalize(longhand) in style) {\n return prefix.css + prop;\n }\n }\n\n return prop;\n }\n};\n\n// https://caniuse.com/#search=text-orientation\n\nvar textOrientation = {\n noPrefill: ['text-orientation'],\n supportedProperty: function supportedProperty(prop) {\n if (prop !== 'text-orientation') return false;\n\n if (prefix.vendor === 'apple' && !prefix.isTouch) {\n return prefix.css + prop;\n }\n\n return prop;\n }\n};\n\n// https://caniuse.com/#search=transform\n\nvar transform = {\n noPrefill: ['transform'],\n supportedProperty: function supportedProperty(prop, style, options) {\n if (prop !== 'transform') return false;\n\n if (options.transform) {\n return prop;\n }\n\n return prefix.css + prop;\n }\n};\n\n// https://caniuse.com/#search=transition\n\nvar transition = {\n noPrefill: ['transition'],\n supportedProperty: function supportedProperty(prop, style, options) {\n if (prop !== 'transition') return false;\n\n if (options.transition) {\n return prop;\n }\n\n return prefix.css + prop;\n }\n};\n\n// https://caniuse.com/#search=writing-mode\n\nvar writingMode = {\n noPrefill: ['writing-mode'],\n supportedProperty: function supportedProperty(prop) {\n if (prop !== 'writing-mode') return false;\n\n if (prefix.js === 'Webkit' || prefix.js === 'ms' && prefix.browser !== 'edge') {\n return prefix.css + prop;\n }\n\n return prop;\n }\n};\n\n// https://caniuse.com/#search=user-select\n\nvar userSelect = {\n noPrefill: ['user-select'],\n supportedProperty: function supportedProperty(prop) {\n if (prop !== 'user-select') return false;\n\n if (prefix.js === 'Moz' || prefix.js === 'ms' || prefix.vendor === 'apple') {\n return prefix.css + prop;\n }\n\n return prop;\n }\n};\n\n// https://caniuse.com/#search=multicolumn\n// https://github.com/postcss/autoprefixer/issues/491\n// https://github.com/postcss/autoprefixer/issues/177\n\nvar breakPropsOld = {\n supportedProperty: function supportedProperty(prop, style) {\n if (!/^break-/.test(prop)) return false;\n\n if (prefix.js === 'Webkit') {\n var jsProp = \"WebkitColumn\" + pascalize(prop);\n return jsProp in style ? prefix.css + \"column-\" + prop : false;\n }\n\n if (prefix.js === 'Moz') {\n var _jsProp = \"page\" + pascalize(prop);\n\n return _jsProp in style ? \"page-\" + prop : false;\n }\n\n return false;\n }\n};\n\n// See https://github.com/postcss/autoprefixer/issues/324.\n\nvar inlineLogicalOld = {\n supportedProperty: function supportedProperty(prop, style) {\n if (!/^(border|margin|padding)-inline/.test(prop)) return false;\n if (prefix.js === 'Moz') return prop;\n var newProp = prop.replace('-inline', '');\n return prefix.js + pascalize(newProp) in style ? prefix.css + newProp : false;\n }\n};\n\n// Camelization is required because we can't test using.\n// CSS syntax for e.g. in FF.\n\nvar unprefixed = {\n supportedProperty: function supportedProperty(prop, style) {\n return camelize(prop) in style ? prop : false;\n }\n};\n\nvar prefixed = {\n supportedProperty: function supportedProperty(prop, style) {\n var pascalized = pascalize(prop); // Return custom CSS variable without prefixing.\n\n if (prop[0] === '-') return prop; // Return already prefixed value without prefixing.\n\n if (prop[0] === '-' && prop[1] === '-') return prop;\n if (prefix.js + pascalized in style) return prefix.css + prop; // Try webkit fallback.\n\n if (prefix.js !== 'Webkit' && \"Webkit\" + pascalized in style) return \"-webkit-\" + prop;\n return false;\n }\n};\n\n// https://caniuse.com/#search=scroll-snap\n\nvar scrollSnap = {\n supportedProperty: function supportedProperty(prop) {\n if (prop.substring(0, 11) !== 'scroll-snap') return false;\n\n if (prefix.js === 'ms') {\n return \"\" + prefix.css + prop;\n }\n\n return prop;\n }\n};\n\n// https://caniuse.com/#search=overscroll-behavior\n\nvar overscrollBehavior = {\n supportedProperty: function supportedProperty(prop) {\n if (prop !== 'overscroll-behavior') return false;\n\n if (prefix.js === 'ms') {\n return prefix.css + \"scroll-chaining\";\n }\n\n return prop;\n }\n};\n\nvar propMap = {\n 'flex-grow': 'flex-positive',\n 'flex-shrink': 'flex-negative',\n 'flex-basis': 'flex-preferred-size',\n 'justify-content': 'flex-pack',\n order: 'flex-order',\n 'align-items': 'flex-align',\n 'align-content': 'flex-line-pack' // 'align-self' is handled by 'align-self' plugin.\n\n}; // Support old flex spec from 2012.\n\nvar flex2012 = {\n supportedProperty: function supportedProperty(prop, style) {\n var newProp = propMap[prop];\n if (!newProp) return false;\n return prefix.js + pascalize(newProp) in style ? prefix.css + newProp : false;\n }\n};\n\nvar propMap$1 = {\n flex: 'box-flex',\n 'flex-grow': 'box-flex',\n 'flex-direction': ['box-orient', 'box-direction'],\n order: 'box-ordinal-group',\n 'align-items': 'box-align',\n 'flex-flow': ['box-orient', 'box-direction'],\n 'justify-content': 'box-pack'\n};\nvar propKeys = Object.keys(propMap$1);\n\nvar prefixCss = function prefixCss(p) {\n return prefix.css + p;\n}; // Support old flex spec from 2009.\n\n\nvar flex2009 = {\n supportedProperty: function supportedProperty(prop, style, _ref) {\n var multiple = _ref.multiple;\n\n if (propKeys.indexOf(prop) > -1) {\n var newProp = propMap$1[prop];\n\n if (!Array.isArray(newProp)) {\n return prefix.js + pascalize(newProp) in style ? prefix.css + newProp : false;\n }\n\n if (!multiple) return false;\n\n for (var i = 0; i < newProp.length; i++) {\n if (!(prefix.js + pascalize(newProp[0]) in style)) {\n return false;\n }\n }\n\n return newProp.map(prefixCss);\n }\n\n return false;\n }\n};\n\n// plugins = [\n// ...plugins,\n// breakPropsOld,\n// inlineLogicalOld,\n// unprefixed,\n// prefixed,\n// scrollSnap,\n// flex2012,\n// flex2009\n// ]\n// Plugins without 'noPrefill' value, going last.\n// 'flex-*' plugins should be at the bottom.\n// 'flex2009' going after 'flex2012'.\n// 'prefixed' going after 'unprefixed'\n\nvar plugins$1 = [appearence, colorAdjust, mask, textOrientation, transform, transition, writingMode, userSelect, breakPropsOld, inlineLogicalOld, unprefixed, prefixed, scrollSnap, overscrollBehavior, flex2012, flex2009];\nvar propertyDetectors = plugins$1.filter(function (p) {\n return p.supportedProperty;\n}).map(function (p) {\n return p.supportedProperty;\n});\nvar noPrefill = plugins$1.filter(function (p) {\n return p.noPrefill;\n}).reduce(function (a, p) {\n a.push.apply(a, _toConsumableArray(p.noPrefill));\n return a;\n}, []);\n\nvar el;\nvar cache$1 = {};\n\nif (isBrowser) {\n el = document.createElement('p'); // We test every property on vendor prefix requirement.\n // Once tested, result is cached. It gives us up to 70% perf boost.\n // http://jsperf.com/element-style-object-access-vs-plain-object\n //\n // Prefill cache with known css properties to reduce amount of\n // properties we need to feature test at runtime.\n // http://davidwalsh.name/vendor-prefix\n\n var computed = window.getComputedStyle(document.documentElement, '');\n\n for (var key$1 in computed) {\n // eslint-disable-next-line no-restricted-globals\n if (!isNaN(key$1)) cache$1[computed[key$1]] = computed[key$1];\n } // Properties that cannot be correctly detected using the\n // cache prefill method.\n\n\n noPrefill.forEach(function (x) {\n return delete cache$1[x];\n });\n}\n/**\n * Test if a property is supported, returns supported property with vendor\n * prefix if required. Returns `false` if not supported.\n *\n * @param {String} prop dash separated\n * @param {Object} [options]\n * @return {String|Boolean}\n * @api public\n */\n\n\nfunction supportedProperty(prop, options) {\n if (options === void 0) {\n options = {};\n }\n\n // For server-side rendering.\n if (!el) return prop; // Remove cache for benchmark tests or return property from the cache.\n\n if ( cache$1[prop] != null) {\n return cache$1[prop];\n } // Check if 'transition' or 'transform' natively supported in browser.\n\n\n if (prop === 'transition' || prop === 'transform') {\n options[prop] = prop in el.style;\n } // Find a plugin for current prefix property.\n\n\n for (var i = 0; i < propertyDetectors.length; i++) {\n cache$1[prop] = propertyDetectors[i](prop, el.style, options); // Break loop, if value found.\n\n if (cache$1[prop]) break;\n } // Reset styles for current property.\n // Firefox can even throw an error for invalid properties, e.g., \"0\".\n\n\n try {\n el.style[prop] = '';\n } catch (err) {\n return false;\n }\n\n return cache$1[prop];\n}\n\nvar cache$1$1 = {};\nvar transitionProperties = {\n transition: 1,\n 'transition-property': 1,\n '-webkit-transition': 1,\n '-webkit-transition-property': 1\n};\nvar transPropsRegExp = /(^\\s*[\\w-]+)|, (\\s*[\\w-]+)(?![^()]*\\))/g;\nvar el$1;\n/**\n * Returns prefixed value transition/transform if needed.\n *\n * @param {String} match\n * @param {String} p1\n * @param {String} p2\n * @return {String}\n * @api private\n */\n\nfunction prefixTransitionCallback(match, p1, p2) {\n if (p1 === 'var') return 'var';\n if (p1 === 'all') return 'all';\n if (p2 === 'all') return ', all';\n var prefixedValue = p1 ? supportedProperty(p1) : \", \" + supportedProperty(p2);\n if (!prefixedValue) return p1 || p2;\n return prefixedValue;\n}\n\nif (isBrowser) el$1 = document.createElement('p');\n/**\n * Returns prefixed value if needed. Returns `false` if value is not supported.\n *\n * @param {String} property\n * @param {String} value\n * @return {String|Boolean}\n * @api public\n */\n\nfunction supportedValue(property, value) {\n // For server-side rendering.\n var prefixedValue = value;\n if (!el$1 || property === 'content') return value; // It is a string or a number as a string like '1'.\n // We want only prefixable values here.\n // eslint-disable-next-line no-restricted-globals\n\n if (typeof prefixedValue !== 'string' || !isNaN(parseInt(prefixedValue, 10))) {\n return prefixedValue;\n } // Create cache key for current value.\n\n\n var cacheKey = property + prefixedValue; // Remove cache for benchmark tests or return value from cache.\n\n if ( cache$1$1[cacheKey] != null) {\n return cache$1$1[cacheKey];\n } // IE can even throw an error in some cases, for e.g. style.content = 'bar'.\n\n\n try {\n // Test value as it is.\n el$1.style[property] = prefixedValue;\n } catch (err) {\n // Return false if value not supported.\n cache$1$1[cacheKey] = false;\n return false;\n } // If 'transition' or 'transition-property' property.\n\n\n if (transitionProperties[property]) {\n prefixedValue = prefixedValue.replace(transPropsRegExp, prefixTransitionCallback);\n } else if (el$1.style[property] === '') {\n // Value with a vendor prefix.\n prefixedValue = prefix.css + prefixedValue; // Hardcode test to convert \"flex\" to \"-ms-flexbox\" for IE10.\n\n if (prefixedValue === '-ms-flex') el$1.style[property] = '-ms-flexbox'; // Test prefixed value.\n\n el$1.style[property] = prefixedValue; // Return false if value not supported.\n\n if (el$1.style[property] === '') {\n cache$1$1[cacheKey] = false;\n return false;\n }\n } // Reset styles for current property.\n\n\n el$1.style[property] = ''; // Write current value to cache.\n\n cache$1$1[cacheKey] = prefixedValue;\n return cache$1$1[cacheKey];\n}\n\n/**\n * Add vendor prefix to a property name when needed.\n */\n\nfunction jssVendorPrefixer() {\n function onProcessRule(rule) {\n if (rule.type === 'keyframes') {\n var atRule = rule;\n atRule.at = supportedKeyframes(atRule.at);\n }\n }\n\n function prefixStyle(style) {\n for (var prop in style) {\n var value = style[prop];\n\n if (prop === 'fallbacks' && Array.isArray(value)) {\n style[prop] = value.map(prefixStyle);\n continue;\n }\n\n var changeProp = false;\n var supportedProp = supportedProperty(prop);\n if (supportedProp && supportedProp !== prop) changeProp = true;\n var changeValue = false;\n var supportedValue$1 = supportedValue(supportedProp, toCssValue(value));\n if (supportedValue$1 && supportedValue$1 !== value) changeValue = true;\n\n if (changeProp || changeValue) {\n if (changeProp) delete style[prop];\n style[supportedProp || prop] = supportedValue$1 || value;\n }\n }\n\n return style;\n }\n\n function onProcessStyle(style, rule) {\n if (rule.type !== 'style') return style;\n return prefixStyle(style);\n }\n\n function onChangeValue(value, prop) {\n return supportedValue(prop, toCssValue(value)) || value;\n }\n\n return {\n onProcessRule: onProcessRule,\n onProcessStyle: onProcessStyle,\n onChangeValue: onChangeValue\n };\n}\n\n/**\n * Sort props by length.\n */\nfunction jssPropsSort() {\n var sort = function sort(prop0, prop1) {\n if (prop0.length === prop1.length) {\n return prop0 > prop1 ? 1 : -1;\n }\n\n return prop0.length - prop1.length;\n };\n\n return {\n onProcessStyle: function onProcessStyle(style, rule) {\n if (rule.type !== 'style') return style;\n var newStyle = {};\n var props = Object.keys(style).sort(sort);\n\n for (var i = 0; i < props.length; i++) {\n newStyle[props[i]] = style[props[i]];\n }\n\n return newStyle;\n }\n };\n}\n\nvar create = function create(options) {\n if (options === void 0) {\n options = {};\n }\n\n return {\n plugins: [functionPlugin(), observablePlugin(options.observable), templatePlugin(), jssGlobal(), jssExtend(), jssNested(), jssCompose(), camelCase(), defaultUnit(options.defaultUnit), jssExpand(), jssVendorPrefixer(), jssPropsSort()]\n };\n};\n\nfunction shallowEqualObjects(objA, objB) {\n if (objA === objB) {\n return true;\n }\n\n if (!objA || !objB) {\n return false;\n }\n\n var aKeys = Object.keys(objA);\n var bKeys = Object.keys(objB);\n var len = aKeys.length;\n\n if (bKeys.length !== len) {\n return false;\n }\n\n for (var i = 0; i < len; i++) {\n var key = aKeys[i];\n\n if (objA[key] !== objB[key] || !Object.prototype.hasOwnProperty.call(objB, key)) {\n return false;\n }\n }\n\n return true;\n}\n\nfunction memoize$1(fn) {\n var cache = {};\n return function (arg) {\n if (cache[arg] === undefined) cache[arg] = fn(arg);\n return cache[arg];\n };\n}\n\nvar reactPropsRegex = /^((children|dangerouslySetInnerHTML|key|ref|autoFocus|defaultValue|defaultChecked|innerHTML|suppressContentEditableWarning|suppressHydrationWarning|valueLink|accept|acceptCharset|accessKey|action|allow|allowUserMedia|allowPaymentRequest|allowFullScreen|allowTransparency|alt|async|autoComplete|autoPlay|capture|cellPadding|cellSpacing|challenge|charSet|checked|cite|classID|className|cols|colSpan|content|contentEditable|contextMenu|controls|controlsList|coords|crossOrigin|data|dateTime|default|defer|dir|disabled|download|draggable|encType|form|formAction|formEncType|formMethod|formNoValidate|formTarget|frameBorder|headers|height|hidden|high|href|hrefLang|htmlFor|httpEquiv|id|inputMode|integrity|is|keyParams|keyType|kind|label|lang|list|loop|low|marginHeight|marginWidth|max|maxLength|media|mediaGroup|method|min|minLength|multiple|muted|name|nonce|noValidate|open|optimum|pattern|placeholder|playsInline|poster|preload|profile|radioGroup|readOnly|referrerPolicy|rel|required|reversed|role|rows|rowSpan|sandbox|scope|scoped|scrolling|seamless|selected|shape|size|sizes|slot|span|spellCheck|src|srcDoc|srcLang|srcSet|start|step|style|summary|tabIndex|target|title|type|useMap|value|width|wmode|wrap|about|datatype|inlist|prefix|property|resource|typeof|vocab|autoCapitalize|autoCorrect|autoSave|color|itemProp|itemScope|itemType|itemID|itemRef|results|security|unselectable|accentHeight|accumulate|additive|alignmentBaseline|allowReorder|alphabetic|amplitude|arabicForm|ascent|attributeName|attributeType|autoReverse|azimuth|baseFrequency|baselineShift|baseProfile|bbox|begin|bias|by|calcMode|capHeight|clip|clipPathUnits|clipPath|clipRule|colorInterpolation|colorInterpolationFilters|colorProfile|colorRendering|contentScriptType|contentStyleType|cursor|cx|cy|d|decelerate|descent|diffuseConstant|direction|display|divisor|dominantBaseline|dur|dx|dy|edgeMode|elevation|enableBackground|end|exponent|externalResourcesRequired|fill|fillOpacity|fillRule|filter|filterRes|filterUnits|floodColor|floodOpacity|focusable|fontFamily|fontSize|fontSizeAdjust|fontStretch|fontStyle|fontVariant|fontWeight|format|from|fr|fx|fy|g1|g2|glyphName|glyphOrientationHorizontal|glyphOrientationVertical|glyphRef|gradientTransform|gradientUnits|hanging|horizAdvX|horizOriginX|ideographic|imageRendering|in|in2|intercept|k|k1|k2|k3|k4|kernelMatrix|kernelUnitLength|kerning|keyPoints|keySplines|keyTimes|lengthAdjust|letterSpacing|lightingColor|limitingConeAngle|local|markerEnd|markerMid|markerStart|markerHeight|markerUnits|markerWidth|mask|maskContentUnits|maskUnits|mathematical|mode|numOctaves|offset|opacity|operator|order|orient|orientation|origin|overflow|overlinePosition|overlineThickness|panose1|paintOrder|pathLength|patternContentUnits|patternTransform|patternUnits|pointerEvents|points|pointsAtX|pointsAtY|pointsAtZ|preserveAlpha|preserveAspectRatio|primitiveUnits|r|radius|refX|refY|renderingIntent|repeatCount|repeatDur|requiredExtensions|requiredFeatures|restart|result|rotate|rx|ry|scale|seed|shapeRendering|slope|spacing|specularConstant|specularExponent|speed|spreadMethod|startOffset|stdDeviation|stemh|stemv|stitchTiles|stopColor|stopOpacity|strikethroughPosition|strikethroughThickness|string|stroke|strokeDasharray|strokeDashoffset|strokeLinecap|strokeLinejoin|strokeMiterlimit|strokeOpacity|strokeWidth|surfaceScale|systemLanguage|tableValues|targetX|targetY|textAnchor|textDecoration|textRendering|textLength|to|transform|u1|u2|underlinePosition|underlineThickness|unicode|unicodeBidi|unicodeRange|unitsPerEm|vAlphabetic|vHanging|vIdeographic|vMathematical|values|vectorEffect|version|vertAdvY|vertOriginX|vertOriginY|viewBox|viewTarget|visibility|widths|wordSpacing|writingMode|x|xHeight|x1|x2|xChannelSelector|xlinkActuate|xlinkArcrole|xlinkHref|xlinkRole|xlinkShow|xlinkTitle|xlinkType|xmlBase|xmlns|xmlnsXlink|xmlLang|xmlSpace|y|y1|y2|yChannelSelector|z|zoomAndPan|for|class|autofocus)|(([Dd][Aa][Tt][Aa]|[Aa][Rr][Ii][Aa]|x)-.*))$/; // https://esbench.com/bench/5bfee68a4cd7e6009ef61d23\n\nvar index$1 = memoize$1(function (prop) {\n return reactPropsRegex.test(prop) || prop.charCodeAt(0) === 111\n /* o */\n && prop.charCodeAt(1) === 110\n /* n */\n && prop.charCodeAt(2) < 91;\n}\n/* Z+1 */\n);\n\n// Since we are in a single sheet mode, user shouldn't care about this.\n\nvar MAX_RULES_PER_SHEET = 10000;\nvar defaultJss = createJss(create());\n\nvar createCss = function createCss(jss) {\n if (jss === void 0) {\n jss = defaultJss;\n }\n\n var cache = new Map();\n var ruleIndex = 0;\n var sheet;\n\n var getSheet = function getSheet() {\n if (!sheet || sheet.rules.index.length > MAX_RULES_PER_SHEET) {\n sheet = jss.createStyleSheet().attach();\n }\n\n return sheet;\n };\n\n function css() {\n // eslint-disable-next-line prefer-rest-params\n var args = arguments; // We can avoid the need for stringification with a babel plugin,\n // which could generate a hash at build time and add it to the object.\n\n var argsStr = JSON.stringify(args);\n var cached = cache.get(argsStr);\n if (cached) return cached.className;\n var flatArgs = []; // Flatten arguments which can be\n // - style objects\n // - array of style objects\n // - arrays of style objects\n\n for (var argIndex in args) {\n var arg = args[argIndex];\n\n if (!Array.isArray(arg)) {\n flatArgs.push(arg);\n continue;\n }\n\n for (var innerArgIndex = 0; innerArgIndex < arg.length; innerArgIndex++) {\n flatArgs.push(arg[innerArgIndex]);\n }\n }\n\n var mergedStyle = {};\n var labels = [];\n\n for (var i = 0; i < flatArgs.length; i++) {\n var style = flatArgs[i];\n if (!style) continue;\n var styleObject = style; // It can be a class name that css() has previously generated.\n\n if (typeof style === 'string') {\n // eslint-disable-next-line no-shadow\n var _cached = cache.get(style);\n\n if (_cached) {\n // eslint-disable-next-line prefer-spread\n if (_cached.labels.length) labels.push.apply(labels, _cached.labels);\n styleObject = _cached.style;\n }\n }\n\n if (styleObject.label && labels.indexOf(styleObject.label) === -1) labels.push(styleObject.label);\n Object.assign(mergedStyle, styleObject);\n }\n\n delete mergedStyle.label;\n var label = labels.length === 0 ? 'css' : labels.join('-');\n var key = label + \"-\" + ruleIndex++;\n getSheet().addRule(key, mergedStyle);\n var className = getSheet().classes[key];\n var cacheValue = {\n style: mergedStyle,\n labels: labels,\n className: className\n };\n cache.set(argsStr, cacheValue);\n cache.set(className, cacheValue);\n return className;\n } // For testing only.\n\n\n css.getSheet = getSheet;\n return css;\n};\n\nvar css$1 = createCss();\n\nvar getDisplayName = function getDisplayName(Component) {\n return Component.displayName || Component.name || 'Component';\n};\n\nvar memoize$2 = function memoize(fn) {\n var lastArgs;\n var lastResult;\n return function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n if (Array.isArray(lastArgs) && args.length === lastArgs.length) {\n var isSame = true;\n\n for (var i = 0; i < args.length; i++) {\n if (args[i] !== lastArgs[i]) {\n isSame = false;\n }\n }\n\n if (isSame) {\n return lastResult;\n }\n }\n\n lastArgs = args;\n lastResult = fn.apply(void 0, args);\n return lastResult;\n };\n};\n\nvar mergeClasses = function mergeClasses(baseClasses, additionalClasses) {\n var combinedClasses = _extends$1({}, baseClasses);\n\n for (var name in additionalClasses) {\n combinedClasses[name] = name in combinedClasses ? combinedClasses[name] + \" \" + additionalClasses[name] : additionalClasses[name];\n }\n\n return combinedClasses;\n};\n\n/**\n * Global index counter to preserve source order.\n * As we create the style sheet during componentWillMount lifecycle,\n * children are handled after the parents, so the order of style elements would\n * be parent->child. It is a problem though when a parent passes a className\n * which needs to override any childs styles. StyleSheet of the child has a higher\n * specificity, because of the source order.\n * So our solution is to render sheets them in the reverse order child->sheet, so\n * that parent has a higher specificity.\n *\n * We start at [Number.MIN_SAFE_INTEGER] to always insert sheets from react-jss first before any\n * sheet which might be inserted manually by the user.\n */\nvar index$2 = Number.MIN_SAFE_INTEGER || -1e9;\n\nvar getSheetIndex = function getSheetIndex() {\n return index$2++;\n};\n\nvar JssContext = react.createContext({\n classNamePrefix: '',\n disableStylesGeneration: false\n});\n\nvar defaultManagers = new Map();\nvar getManager = function getManager(context, managerId) {\n // If `managers` map is present in the context, we use it in order to\n // let JssProvider reset them when new response has to render server-side.\n var managers = context.managers;\n\n if (managers) {\n if (!managers[managerId]) {\n managers[managerId] = new SheetsManager();\n }\n\n return managers[managerId];\n }\n\n var manager = defaultManagers.get(managerId);\n\n if (!manager) {\n manager = new SheetsManager();\n defaultManagers.set(managerId, manager);\n }\n\n return manager;\n};\nvar manageSheet = function manageSheet(options) {\n var sheet = options.sheet,\n context = options.context,\n index = options.index,\n theme = options.theme;\n\n if (!sheet) {\n return;\n }\n\n var manager = getManager(context, index);\n manager.manage(theme);\n\n if (context.registry) {\n context.registry.add(sheet);\n }\n};\nvar unmanageSheet = function unmanageSheet(options) {\n if (!options.sheet) {\n return;\n }\n\n var manager = getManager(options.context, options.index);\n manager.unmanage(options.theme);\n};\n\nvar defaultJss$1 = createJss(create());\n\nvar sheetsMeta = new WeakMap();\nvar getMeta = function getMeta(sheet) {\n return sheetsMeta.get(sheet);\n};\nvar addMeta = function addMeta(sheet, meta) {\n sheetsMeta.set(sheet, meta);\n};\n\nvar getStyles = function getStyles(options) {\n var styles = options.styles;\n\n if (typeof styles !== 'function') {\n return styles;\n }\n return styles(options.theme);\n};\n\nfunction getSheetOptions(options, link) {\n var minify;\n\n if (options.context.id && options.context.id.minify != null) {\n minify = options.context.id.minify;\n }\n\n var classNamePrefix = options.context.classNamePrefix || '';\n\n if (options.name && !minify) {\n classNamePrefix += options.name.replace(/\\s/g, '-') + \"-\";\n }\n\n var meta = '';\n if (options.name) meta = options.name + \", \";\n meta += typeof options.styles === 'function' ? 'Themed' : 'Unthemed';\n return _extends$1({}, options.sheetOptions, {\n index: options.index,\n meta: meta,\n classNamePrefix: classNamePrefix,\n link: link,\n generateId: options.sheetOptions && options.sheetOptions.generateId ? options.sheetOptions.generateId : options.context.generateId\n });\n}\n\nvar createStyleSheet = function createStyleSheet(options) {\n if (options.context.disableStylesGeneration) {\n return undefined;\n }\n\n var manager = getManager(options.context, options.index);\n var existingSheet = manager.get(options.theme);\n\n if (existingSheet) {\n return existingSheet;\n }\n\n var jss = options.context.jss || defaultJss$1;\n var styles = getStyles(options);\n var dynamicStyles = getDynamicStyles(styles);\n var sheet = jss.createStyleSheet(styles, getSheetOptions(options, dynamicStyles !== null));\n addMeta(sheet, {\n dynamicStyles: dynamicStyles,\n styles: styles\n });\n manager.add(options.theme, sheet);\n return sheet;\n};\nvar removeDynamicRules = function removeDynamicRules(sheet, rules) {\n // Loop over each dynamic rule and remove the dynamic rule\n // We can't just remove the whole sheet as this has all of the rules for every component instance\n for (var key in rules) {\n sheet.deleteRule(rules[key]);\n }\n};\nvar updateDynamicRules = function updateDynamicRules(data, sheet, rules) {\n // Loop over each dynamic rule and update it\n // We can't just update the whole sheet as this has all of the rules for every component instance\n for (var key in rules) {\n sheet.updateOne(rules[key], data);\n }\n};\nvar addDynamicRules = function addDynamicRules(sheet, data) {\n var meta = getMeta(sheet);\n\n if (!meta) {\n return undefined;\n }\n\n var rules = {}; // Loop over each dynamic rule and add it to the stylesheet\n\n for (var key in meta.dynamicStyles) {\n var initialRuleCount = sheet.rules.index.length;\n var originalRule = sheet.addRule(key, meta.dynamicStyles[key]); // Loop through all created rules, fixes updating dynamic rules\n\n for (var i = initialRuleCount; i < sheet.rules.index.length; i++) {\n var rule = sheet.rules.index[i];\n sheet.updateOne(rule, data); // If it's the original rule, we need to add it by the correct key so the hook and hoc\n // can correctly concat the dynamic class with the static one\n\n rules[originalRule === rule ? key : rule.key] = rule;\n }\n }\n\n return rules;\n};\n\nvar getSheetClasses = function getSheetClasses(sheet, dynamicRules) {\n if (!dynamicRules) {\n return sheet.classes;\n }\n\n var meta = getMeta(sheet);\n\n if (!meta) {\n return sheet.classes;\n }\n\n var classes = {};\n\n for (var key in meta.styles) {\n classes[key] = sheet.classes[key];\n\n if (key in dynamicRules) {\n classes[key] += \" \" + sheet.classes[dynamicRules[key].key];\n }\n }\n\n return classes;\n};\n\nvar useEffectOrLayoutEffect = isBrowser ? react.useLayoutEffect : react.useEffect;\nvar noTheme = {};\n\nvar createUseStyles = function createUseStyles(styles, options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options = options,\n _options$index = _options.index,\n index = _options$index === void 0 ? getSheetIndex() : _options$index,\n theming = _options.theming,\n name = _options.name,\n sheetOptions = _objectWithoutPropertiesLoose(_options, [\"index\", \"theming\", \"name\"]);\n\n var ThemeContext$1 = theming && theming.context || ThemeContext;\n\n var useTheme = function useTheme(theme) {\n if (typeof styles === 'function') {\n return theme || react.useContext(ThemeContext$1) || noTheme;\n }\n\n return noTheme;\n };\n\n return function useStyles(data) {\n var isFirstMount = react.useRef(true);\n var context = react.useContext(JssContext);\n var theme = useTheme(data && data.theme);\n\n var _React$useMemo = react.useMemo(function () {\n var newSheet = createStyleSheet({\n context: context,\n styles: styles,\n name: name,\n theme: theme,\n index: index,\n sheetOptions: sheetOptions\n });\n var newDynamicRules = newSheet ? addDynamicRules(newSheet, data) : null;\n\n if (newSheet) {\n manageSheet({\n index: index,\n context: context,\n sheet: newSheet,\n theme: theme\n });\n }\n\n return [newSheet, newDynamicRules];\n }, [context, theme]),\n sheet = _React$useMemo[0],\n dynamicRules = _React$useMemo[1];\n\n useEffectOrLayoutEffect(function () {\n // We only need to update the rules on a subsequent update and not in the first mount\n if (sheet && dynamicRules && !isFirstMount.current) {\n updateDynamicRules(data, sheet, dynamicRules);\n }\n }, [data]);\n useEffectOrLayoutEffect(function () {\n return (// cleanup only\n function () {\n if (sheet) {\n unmanageSheet({\n index: index,\n context: context,\n sheet: sheet,\n theme: theme\n });\n }\n\n if (sheet && dynamicRules) {\n removeDynamicRules(sheet, dynamicRules);\n }\n }\n );\n }, [sheet]);\n var classes = sheet && dynamicRules ? getSheetClasses(sheet, dynamicRules) : {};\n react.useDebugValue(classes);\n react.useDebugValue(theme === noTheme ? 'No theme' : theme);\n react.useEffect(function () {\n isFirstMount.current = false;\n });\n return classes;\n };\n};\n\nvar NoRenderer = function NoRenderer(props) {\n return props.children || null;\n};\n/**\n * HOC creator function that wrapps the user component.\n *\n * `withStyles(styles, [options])(Component)`\n */\n\n\nvar createWithStyles = function createWithStyles(styles, options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options = options,\n _options$index = _options.index,\n index = _options$index === void 0 ? getSheetIndex() : _options$index,\n theming = _options.theming,\n injectTheme = _options.injectTheme,\n sheetOptions = _objectWithoutPropertiesLoose(_options, [\"index\", \"theming\", \"injectTheme\"]);\n\n var ThemeContext$1 = theming ? theming.context : ThemeContext;\n return function (InnerComponent) {\n if (InnerComponent === void 0) {\n InnerComponent = NoRenderer;\n }\n\n var displayName = getDisplayName(InnerComponent);\n var mergeClassesProp = memoize$2(function (sheetClasses, classesProp) {\n return classesProp ? mergeClasses(sheetClasses, classesProp) : sheetClasses;\n });\n var hookOptions = Object.assign(sheetOptions, {\n theming: theming,\n index: index,\n name: displayName\n });\n var useStyles = createUseStyles(styles, hookOptions);\n var WithStyles = react.forwardRef(function (props, ref) {\n var theme = react.useContext(ThemeContext$1);\n\n var newProps = _extends$1({}, props);\n\n if (injectTheme && newProps.theme == null) {\n newProps.theme = theme;\n }\n\n var sheetClasses = useStyles(newProps);\n var classes = mergeClassesProp(sheetClasses, props.classes);\n return react.createElement(InnerComponent, _extends$1({}, newProps, {\n classes: classes,\n ref: ref\n }));\n });\n WithStyles.displayName = \"WithStyles(\" + displayName + \")\";\n WithStyles.defaultProps = _extends$1({}, InnerComponent.defaultProps);\n WithStyles.InnerComponent = InnerComponent;\n return hoistNonReactStatics_cjs(WithStyles, InnerComponent);\n };\n};\n\nvar initialContext = {};\nfunction JssProvider(props) {\n var managersRef = react.useRef({});\n var prevContextRef = react.useRef();\n var registryRef = react.useRef(null);\n\n var createContext = function createContext(parentContext, prevContext) {\n if (prevContext === void 0) {\n prevContext = initialContext;\n }\n\n var registry = props.registry,\n classNamePrefix = props.classNamePrefix,\n jss = props.jss,\n generateId = props.generateId,\n disableStylesGeneration = props.disableStylesGeneration,\n media = props.media,\n id = props.id;\n\n var context = _extends$1({}, parentContext);\n\n if (registry) {\n context.registry = registry; // This way we identify a new request on the server, because user will create\n // a new Registry instance for each.\n\n if (registry !== registryRef.current) {\n // We reset managers because we have to regenerate all sheets for the new request.\n managersRef.current = {};\n registryRef.current = registry;\n }\n }\n\n context.managers = managersRef.current;\n\n if (id !== undefined) {\n context.id = id;\n }\n\n if (generateId !== undefined) {\n context.generateId = generateId;\n } else if (!context.generateId || !prevContext || context.id !== prevContext.id) {\n context.generateId = createGenerateId(context.id);\n }\n\n if (classNamePrefix) {\n context.classNamePrefix = (context.classNamePrefix || '') + classNamePrefix;\n }\n\n if (media !== undefined) {\n context.media = media;\n }\n\n if (jss) {\n context.jss = jss;\n }\n\n if (disableStylesGeneration !== undefined) {\n context.disableStylesGeneration = disableStylesGeneration;\n }\n\n if (prevContext && shallowEqualObjects(prevContext, context)) {\n return prevContext;\n }\n\n return context;\n };\n\n var renderProvider = function renderProvider(parentContext) {\n var children = props.children;\n var context = createContext(parentContext, prevContextRef.current);\n prevContextRef.current = context;\n return react.createElement(JssContext.Provider, {\n value: context\n }, children);\n };\n\n return react.createElement(JssContext.Consumer, null, renderProvider);\n}\n\nvar parseStyles = function parseStyles(args) {\n var dynamicStyles = [];\n var staticStyle;\n var labels = []; // Not using ...rest to optimize perf.\n\n for (var key in args) {\n var style = args[key];\n if (!style) continue;\n\n if (typeof style === 'function') {\n dynamicStyles.push(style);\n } else {\n if (!staticStyle) staticStyle = {};\n Object.assign(staticStyle, style);\n var _staticStyle = staticStyle,\n _label = _staticStyle.label;\n\n if (_label) {\n if (labels.indexOf(_label) === -1) labels.push(_label);\n }\n }\n }\n\n var styles = {};\n var label = labels.length === 0 ? 'sc' : labels.join('-');\n\n if (staticStyle) {\n // Label should not leak to the core.\n if ('label' in staticStyle) delete staticStyle.label;\n styles[label] = staticStyle;\n } // When there is only one function rule, we don't need to wrap it.\n\n\n if (dynamicStyles.length === 1) {\n styles.scd = dynamicStyles[0];\n } // We create a new function rule which will call all other function rules\n // and merge the styles they return.\n\n\n if (dynamicStyles.length > 1) {\n styles.scd = function (props) {\n var merged = {};\n\n for (var i = 0; i < dynamicStyles.length; i++) {\n var dynamicStyle = dynamicStyles[i](props);\n if (dynamicStyle) Object.assign(merged, dynamicStyle);\n }\n\n return merged;\n };\n }\n\n return {\n styles: styles,\n label: label\n };\n};\n\nvar shouldForwardPropSymbol = Symbol('react-jss-styled');\n\nvar getShouldForwardProp = function getShouldForwardProp(tagOrComponent, options) {\n var shouldForwardProp = options.shouldForwardProp;\n var childShouldForwardProp = tagOrComponent[shouldForwardPropSymbol];\n var finalShouldForwardProp = shouldForwardProp || childShouldForwardProp;\n\n if (shouldForwardProp && childShouldForwardProp) {\n finalShouldForwardProp = function finalShouldForwardProp(prop) {\n return childShouldForwardProp(prop) && shouldForwardProp(prop);\n };\n }\n\n return finalShouldForwardProp;\n};\n\nvar getChildProps = function getChildProps(props, shouldForwardProp, isTag) {\n var childProps = {};\n\n for (var prop in props) {\n if (shouldForwardProp) {\n if (shouldForwardProp(prop) === true) {\n childProps[prop] = props[prop];\n }\n\n continue;\n } // We don't want to pass non-dom props to the DOM.\n\n\n if (isTag) {\n if (index$1(prop)) {\n childProps[prop] = props[prop];\n }\n\n continue;\n }\n\n childProps[prop] = props[prop];\n }\n\n return childProps;\n}; // eslint-disable-next-line no-unused-vars\n\n\nvar configureStyled = function configureStyled(tagOrComponent, options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options = options,\n theming = _options.theming;\n var isTag = typeof tagOrComponent === 'string';\n var ThemeContext$1 = theming ? theming.context : ThemeContext;\n var shouldForwardProp = getShouldForwardProp(tagOrComponent, options);\n\n var _options2 = options,\n _ = _options2.shouldForwardProp,\n hookOptions = _objectWithoutPropertiesLoose(_options2, [\"shouldForwardProp\"]);\n\n return function createStyledComponent() {\n // eslint-disable-next-line prefer-rest-params\n var _parseStyles = parseStyles(arguments),\n styles = _parseStyles.styles,\n label = _parseStyles.label;\n\n var useStyles = createUseStyles(styles, hookOptions);\n\n var Styled = function Styled(props) {\n var as = props.as,\n className = props.className;\n var theme = react.useContext(ThemeContext$1);\n var propsWithTheme = Object.assign({\n theme: theme\n }, props);\n var classes = useStyles(propsWithTheme);\n var childProps = getChildProps(props, shouldForwardProp, isTag);\n var classNames = ((classes[label] || classes.sc || '') + \" \" + (classes.scd || '')).trim();\n childProps.className = className ? className + \" \" + classNames : classNames;\n\n if (!isTag && shouldForwardProp) {\n tagOrComponent[shouldForwardPropSymbol] = shouldForwardProp;\n }\n\n if (isTag && as) {\n return react.createElement(as, childProps);\n }\n\n return react.createElement(tagOrComponent, childProps);\n };\n\n return Styled;\n };\n};\n\n/* eslint-disable prefer-rest-params, prefer-spread */\nvar create$1 = function create(css) {\n if (css === void 0) {\n css = css$1;\n }\n\n return function createElement$1(type, props) {\n var args = arguments;\n\n if (props && props.css) {\n var className = css(props.css);\n var newProps = Object.assign({}, props);\n newProps.className = props.className ? props.className + \" \" + className : className;\n delete newProps.css;\n args[1] = newProps;\n }\n\n return react.createElement.apply(undefined, args);\n };\n};\nvar jsx = create$1();\n\nvar reactJss_esm = /*#__PURE__*/Object.freeze({\n __proto__: null,\n 'default': createWithStyles,\n JssContext: JssContext,\n JssProvider: JssProvider,\n createJsx: create$1,\n createUseStyles: createUseStyles,\n jss: defaultJss$1,\n jsx: jsx,\n styled: configureStyled,\n withStyles: createWithStyles,\n ThemeProvider: ThemeProvider,\n createTheming: createTheming,\n useTheme: useTheme,\n withTheme: withTheme,\n SheetsRegistry: SheetsRegistry,\n createGenerateId: createGenerateId\n});\n\nvar showdown = createCommonjsModule(function (module) {\n(function(){\r\n/**\n * Created by Tivie on 13-07-2015.\n */\n\nfunction getDefaultOpts (simple) {\n\n var defaultOptions = {\n omitExtraWLInCodeBlocks: {\n defaultValue: false,\n describe: 'Omit the default extra whiteline added to code blocks',\n type: 'boolean'\n },\n noHeaderId: {\n defaultValue: false,\n describe: 'Turn on/off generated header id',\n type: 'boolean'\n },\n prefixHeaderId: {\n defaultValue: false,\n describe: 'Add a prefix to the generated header ids. Passing a string will prefix that string to the header id. Setting to true will add a generic \\'section-\\' prefix',\n type: 'string'\n },\n rawPrefixHeaderId: {\n defaultValue: false,\n describe: 'Setting this option to true will prevent showdown from modifying the prefix. This might result in malformed IDs (if, for instance, the \" char is used in the prefix)',\n type: 'boolean'\n },\n ghCompatibleHeaderId: {\n defaultValue: false,\n describe: 'Generate header ids compatible with github style (spaces are replaced with dashes, a bunch of non alphanumeric chars are removed)',\n type: 'boolean'\n },\n rawHeaderId: {\n defaultValue: false,\n describe: 'Remove only spaces, \\' and \" from generated header ids (including prefixes), replacing them with dashes (-). WARNING: This might result in malformed ids',\n type: 'boolean'\n },\n headerLevelStart: {\n defaultValue: false,\n describe: 'The header blocks level start',\n type: 'integer'\n },\n parseImgDimensions: {\n defaultValue: false,\n describe: 'Turn on/off image dimension parsing',\n type: 'boolean'\n },\n simplifiedAutoLink: {\n defaultValue: false,\n describe: 'Turn on/off GFM autolink style',\n type: 'boolean'\n },\n excludeTrailingPunctuationFromURLs: {\n defaultValue: false,\n describe: 'Excludes trailing punctuation from links generated with autoLinking',\n type: 'boolean'\n },\n literalMidWordUnderscores: {\n defaultValue: false,\n describe: 'Parse midword underscores as literal underscores',\n type: 'boolean'\n },\n literalMidWordAsterisks: {\n defaultValue: false,\n describe: 'Parse midword asterisks as literal asterisks',\n type: 'boolean'\n },\n strikethrough: {\n defaultValue: false,\n describe: 'Turn on/off strikethrough support',\n type: 'boolean'\n },\n tables: {\n defaultValue: false,\n describe: 'Turn on/off tables support',\n type: 'boolean'\n },\n tablesHeaderId: {\n defaultValue: false,\n describe: 'Add an id to table headers',\n type: 'boolean'\n },\n ghCodeBlocks: {\n defaultValue: true,\n describe: 'Turn on/off GFM fenced code blocks support',\n type: 'boolean'\n },\n tasklists: {\n defaultValue: false,\n describe: 'Turn on/off GFM tasklist support',\n type: 'boolean'\n },\n smoothLivePreview: {\n defaultValue: false,\n describe: 'Prevents weird effects in live previews due to incomplete input',\n type: 'boolean'\n },\n smartIndentationFix: {\n defaultValue: false,\n description: 'Tries to smartly fix indentation in es6 strings',\n type: 'boolean'\n },\n disableForced4SpacesIndentedSublists: {\n defaultValue: false,\n description: 'Disables the requirement of indenting nested sublists by 4 spaces',\n type: 'boolean'\n },\n simpleLineBreaks: {\n defaultValue: false,\n description: 'Parses simple line breaks as
(GFM Style)',\n type: 'boolean'\n },\n requireSpaceBeforeHeadingText: {\n defaultValue: false,\n description: 'Makes adding a space between `#` and the header text mandatory (GFM Style)',\n type: 'boolean'\n },\n ghMentions: {\n defaultValue: false,\n description: 'Enables github @mentions',\n type: 'boolean'\n },\n ghMentionsLink: {\n defaultValue: 'https://github.com/{u}',\n description: 'Changes the link generated by @mentions. Only applies if ghMentions option is enabled.',\n type: 'string'\n },\n encodeEmails: {\n defaultValue: true,\n description: 'Encode e-mail addresses through the use of Character Entities, transforming ASCII e-mail addresses into its equivalent decimal entities',\n type: 'boolean'\n },\n openLinksInNewWindow: {\n defaultValue: false,\n description: 'Open all links in new windows',\n type: 'boolean'\n },\n backslashEscapesHTMLTags: {\n defaultValue: false,\n description: 'Support for HTML Tag escaping. ex: \\foo\\',\n type: 'boolean'\n },\n emoji: {\n defaultValue: false,\n description: 'Enable emoji support. Ex: `this is a :smile: emoji`',\n type: 'boolean'\n },\n underline: {\n defaultValue: false,\n description: 'Enable support for underline. Syntax is double or triple underscores: `__underline word__`. With this option enabled, underscores no longer parses into `` and ``',\n type: 'boolean'\n },\n completeHTMLDocument: {\n defaultValue: false,\n description: 'Outputs a complete html document, including ``, `` and `` tags',\n type: 'boolean'\n },\n metadata: {\n defaultValue: false,\n description: 'Enable support for document metadata (defined at the top of the document between `«««` and `»»»` or between `---` and `---`).',\n type: 'boolean'\n },\n splitAdjacentBlockquotes: {\n defaultValue: false,\n description: 'Split adjacent blockquote blocks',\n type: 'boolean'\n }\n };\n if (simple === false) {\n return JSON.parse(JSON.stringify(defaultOptions));\n }\n var ret = {};\n for (var opt in defaultOptions) {\n if (defaultOptions.hasOwnProperty(opt)) {\n ret[opt] = defaultOptions[opt].defaultValue;\n }\n }\n return ret;\n}\n\nfunction allOptionsOn () {\n var options = getDefaultOpts(true),\n ret = {};\n for (var opt in options) {\n if (options.hasOwnProperty(opt)) {\n ret[opt] = true;\n }\n }\n return ret;\n}\n\r\n/**\n * Created by Tivie on 06-01-2015.\n */\n\n// Private properties\nvar showdown = {},\n parsers = {},\n extensions = {},\n globalOptions = getDefaultOpts(true),\n setFlavor = 'vanilla',\n flavor = {\n github: {\n omitExtraWLInCodeBlocks: true,\n simplifiedAutoLink: true,\n excludeTrailingPunctuationFromURLs: true,\n literalMidWordUnderscores: true,\n strikethrough: true,\n tables: true,\n tablesHeaderId: true,\n ghCodeBlocks: true,\n tasklists: true,\n disableForced4SpacesIndentedSublists: true,\n simpleLineBreaks: true,\n requireSpaceBeforeHeadingText: true,\n ghCompatibleHeaderId: true,\n ghMentions: true,\n backslashEscapesHTMLTags: true,\n emoji: true,\n splitAdjacentBlockquotes: true\n },\n original: {\n noHeaderId: true,\n ghCodeBlocks: false\n },\n ghost: {\n omitExtraWLInCodeBlocks: true,\n parseImgDimensions: true,\n simplifiedAutoLink: true,\n excludeTrailingPunctuationFromURLs: true,\n literalMidWordUnderscores: true,\n strikethrough: true,\n tables: true,\n tablesHeaderId: true,\n ghCodeBlocks: true,\n tasklists: true,\n smoothLivePreview: true,\n simpleLineBreaks: true,\n requireSpaceBeforeHeadingText: true,\n ghMentions: false,\n encodeEmails: true\n },\n vanilla: getDefaultOpts(true),\n allOn: allOptionsOn()\n };\n\n/**\n * helper namespace\n * @type {{}}\n */\nshowdown.helper = {};\n\n/**\n * TODO LEGACY SUPPORT CODE\n * @type {{}}\n */\nshowdown.extensions = {};\n\n/**\n * Set a global option\n * @static\n * @param {string} key\n * @param {*} value\n * @returns {showdown}\n */\nshowdown.setOption = function (key, value) {\n globalOptions[key] = value;\n return this;\n};\n\n/**\n * Get a global option\n * @static\n * @param {string} key\n * @returns {*}\n */\nshowdown.getOption = function (key) {\n return globalOptions[key];\n};\n\n/**\n * Get the global options\n * @static\n * @returns {{}}\n */\nshowdown.getOptions = function () {\n return globalOptions;\n};\n\n/**\n * Reset global options to the default values\n * @static\n */\nshowdown.resetOptions = function () {\n globalOptions = getDefaultOpts(true);\n};\n\n/**\n * Set the flavor showdown should use as default\n * @param {string} name\n */\nshowdown.setFlavor = function (name) {\n if (!flavor.hasOwnProperty(name)) {\n throw Error(name + ' flavor was not found');\n }\n showdown.resetOptions();\n var preset = flavor[name];\n setFlavor = name;\n for (var option in preset) {\n if (preset.hasOwnProperty(option)) {\n globalOptions[option] = preset[option];\n }\n }\n};\n\n/**\n * Get the currently set flavor\n * @returns {string}\n */\nshowdown.getFlavor = function () {\n return setFlavor;\n};\n\n/**\n * Get the options of a specified flavor. Returns undefined if the flavor was not found\n * @param {string} name Name of the flavor\n * @returns {{}|undefined}\n */\nshowdown.getFlavorOptions = function (name) {\n if (flavor.hasOwnProperty(name)) {\n return flavor[name];\n }\n};\n\n/**\n * Get the default options\n * @static\n * @param {boolean} [simple=true]\n * @returns {{}}\n */\nshowdown.getDefaultOptions = function (simple) {\n return getDefaultOpts(simple);\n};\n\n/**\n * Get or set a subParser\n *\n * subParser(name) - Get a registered subParser\n * subParser(name, func) - Register a subParser\n * @static\n * @param {string} name\n * @param {function} [func]\n * @returns {*}\n */\nshowdown.subParser = function (name, func) {\n if (showdown.helper.isString(name)) {\n if (typeof func !== 'undefined') {\n parsers[name] = func;\n } else {\n if (parsers.hasOwnProperty(name)) {\n return parsers[name];\n } else {\n throw Error('SubParser named ' + name + ' not registered!');\n }\n }\n }\n};\n\n/**\n * Gets or registers an extension\n * @static\n * @param {string} name\n * @param {object|function=} ext\n * @returns {*}\n */\nshowdown.extension = function (name, ext) {\n\n if (!showdown.helper.isString(name)) {\n throw Error('Extension \\'name\\' must be a string');\n }\n\n name = showdown.helper.stdExtName(name);\n\n // Getter\n if (showdown.helper.isUndefined(ext)) {\n if (!extensions.hasOwnProperty(name)) {\n throw Error('Extension named ' + name + ' is not registered!');\n }\n return extensions[name];\n\n // Setter\n } else {\n // Expand extension if it's wrapped in a function\n if (typeof ext === 'function') {\n ext = ext();\n }\n\n // Ensure extension is an array\n if (!showdown.helper.isArray(ext)) {\n ext = [ext];\n }\n\n var validExtension = validate(ext, name);\n\n if (validExtension.valid) {\n extensions[name] = ext;\n } else {\n throw Error(validExtension.error);\n }\n }\n};\n\n/**\n * Gets all extensions registered\n * @returns {{}}\n */\nshowdown.getAllExtensions = function () {\n return extensions;\n};\n\n/**\n * Remove an extension\n * @param {string} name\n */\nshowdown.removeExtension = function (name) {\n delete extensions[name];\n};\n\n/**\n * Removes all extensions\n */\nshowdown.resetExtensions = function () {\n extensions = {};\n};\n\n/**\n * Validate extension\n * @param {array} extension\n * @param {string} name\n * @returns {{valid: boolean, error: string}}\n */\nfunction validate (extension, name) {\n\n var errMsg = (name) ? 'Error in ' + name + ' extension->' : 'Error in unnamed extension',\n ret = {\n valid: true,\n error: ''\n };\n\n if (!showdown.helper.isArray(extension)) {\n extension = [extension];\n }\n\n for (var i = 0; i < extension.length; ++i) {\n var baseMsg = errMsg + ' sub-extension ' + i + ': ',\n ext = extension[i];\n if (typeof ext !== 'object') {\n ret.valid = false;\n ret.error = baseMsg + 'must be an object, but ' + typeof ext + ' given';\n return ret;\n }\n\n if (!showdown.helper.isString(ext.type)) {\n ret.valid = false;\n ret.error = baseMsg + 'property \"type\" must be a string, but ' + typeof ext.type + ' given';\n return ret;\n }\n\n var type = ext.type = ext.type.toLowerCase();\n\n // normalize extension type\n if (type === 'language') {\n type = ext.type = 'lang';\n }\n\n if (type === 'html') {\n type = ext.type = 'output';\n }\n\n if (type !== 'lang' && type !== 'output' && type !== 'listener') {\n ret.valid = false;\n ret.error = baseMsg + 'type ' + type + ' is not recognized. Valid values: \"lang/language\", \"output/html\" or \"listener\"';\n return ret;\n }\n\n if (type === 'listener') {\n if (showdown.helper.isUndefined(ext.listeners)) {\n ret.valid = false;\n ret.error = baseMsg + '. Extensions of type \"listener\" must have a property called \"listeners\"';\n return ret;\n }\n } else {\n if (showdown.helper.isUndefined(ext.filter) && showdown.helper.isUndefined(ext.regex)) {\n ret.valid = false;\n ret.error = baseMsg + type + ' extensions must define either a \"regex\" property or a \"filter\" method';\n return ret;\n }\n }\n\n if (ext.listeners) {\n if (typeof ext.listeners !== 'object') {\n ret.valid = false;\n ret.error = baseMsg + '\"listeners\" property must be an object but ' + typeof ext.listeners + ' given';\n return ret;\n }\n for (var ln in ext.listeners) {\n if (ext.listeners.hasOwnProperty(ln)) {\n if (typeof ext.listeners[ln] !== 'function') {\n ret.valid = false;\n ret.error = baseMsg + '\"listeners\" property must be an hash of [event name]: [callback]. listeners.' + ln +\n ' must be a function but ' + typeof ext.listeners[ln] + ' given';\n return ret;\n }\n }\n }\n }\n\n if (ext.filter) {\n if (typeof ext.filter !== 'function') {\n ret.valid = false;\n ret.error = baseMsg + '\"filter\" must be a function, but ' + typeof ext.filter + ' given';\n return ret;\n }\n } else if (ext.regex) {\n if (showdown.helper.isString(ext.regex)) {\n ext.regex = new RegExp(ext.regex, 'g');\n }\n if (!(ext.regex instanceof RegExp)) {\n ret.valid = false;\n ret.error = baseMsg + '\"regex\" property must either be a string or a RegExp object, but ' + typeof ext.regex + ' given';\n return ret;\n }\n if (showdown.helper.isUndefined(ext.replace)) {\n ret.valid = false;\n ret.error = baseMsg + '\"regex\" extensions must implement a replace string or function';\n return ret;\n }\n }\n }\n return ret;\n}\n\n/**\n * Validate extension\n * @param {object} ext\n * @returns {boolean}\n */\nshowdown.validateExtension = function (ext) {\n\n var validateExtension = validate(ext, null);\n if (!validateExtension.valid) {\n console.warn(validateExtension.error);\n return false;\n }\n return true;\n};\n\r\n/**\n * showdownjs helper functions\n */\n\nif (!showdown.hasOwnProperty('helper')) {\n showdown.helper = {};\n}\n\n/**\n * Check if var is string\n * @static\n * @param {string} a\n * @returns {boolean}\n */\nshowdown.helper.isString = function (a) {\n return (typeof a === 'string' || a instanceof String);\n};\n\n/**\n * Check if var is a function\n * @static\n * @param {*} a\n * @returns {boolean}\n */\nshowdown.helper.isFunction = function (a) {\n var getType = {};\n return a && getType.toString.call(a) === '[object Function]';\n};\n\n/**\n * isArray helper function\n * @static\n * @param {*} a\n * @returns {boolean}\n */\nshowdown.helper.isArray = function (a) {\n return Array.isArray(a);\n};\n\n/**\n * Check if value is undefined\n * @static\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `undefined`, else `false`.\n */\nshowdown.helper.isUndefined = function (value) {\n return typeof value === 'undefined';\n};\n\n/**\n * ForEach helper function\n * Iterates over Arrays and Objects (own properties only)\n * @static\n * @param {*} obj\n * @param {function} callback Accepts 3 params: 1. value, 2. key, 3. the original array/object\n */\nshowdown.helper.forEach = function (obj, callback) {\n // check if obj is defined\n if (showdown.helper.isUndefined(obj)) {\n throw new Error('obj param is required');\n }\n\n if (showdown.helper.isUndefined(callback)) {\n throw new Error('callback param is required');\n }\n\n if (!showdown.helper.isFunction(callback)) {\n throw new Error('callback param must be a function/closure');\n }\n\n if (typeof obj.forEach === 'function') {\n obj.forEach(callback);\n } else if (showdown.helper.isArray(obj)) {\n for (var i = 0; i < obj.length; i++) {\n callback(obj[i], i, obj);\n }\n } else if (typeof (obj) === 'object') {\n for (var prop in obj) {\n if (obj.hasOwnProperty(prop)) {\n callback(obj[prop], prop, obj);\n }\n }\n } else {\n throw new Error('obj does not seem to be an array or an iterable object');\n }\n};\n\n/**\n * Standardidize extension name\n * @static\n * @param {string} s extension name\n * @returns {string}\n */\nshowdown.helper.stdExtName = function (s) {\n return s.replace(/[_?*+\\/\\\\.^-]/g, '').replace(/\\s/g, '').toLowerCase();\n};\n\nfunction escapeCharactersCallback (wholeMatch, m1) {\n var charCodeToEscape = m1.charCodeAt(0);\n return '¨E' + charCodeToEscape + 'E';\n}\n\n/**\n * Callback used to escape characters when passing through String.replace\n * @static\n * @param {string} wholeMatch\n * @param {string} m1\n * @returns {string}\n */\nshowdown.helper.escapeCharactersCallback = escapeCharactersCallback;\n\n/**\n * Escape characters in a string\n * @static\n * @param {string} text\n * @param {string} charsToEscape\n * @param {boolean} afterBackslash\n * @returns {XML|string|void|*}\n */\nshowdown.helper.escapeCharacters = function (text, charsToEscape, afterBackslash) {\n // First we have to escape the escape characters so that\n // we can build a character class out of them\n var regexString = '([' + charsToEscape.replace(/([\\[\\]\\\\])/g, '\\\\$1') + '])';\n\n if (afterBackslash) {\n regexString = '\\\\\\\\' + regexString;\n }\n\n var regex = new RegExp(regexString, 'g');\n text = text.replace(regex, escapeCharactersCallback);\n\n return text;\n};\n\n/**\n * Unescape HTML entities\n * @param txt\n * @returns {string}\n */\nshowdown.helper.unescapeHTMLEntities = function (txt) {\n\n return txt\n .replace(/"/g, '\"')\n .replace(/</g, '<')\n .replace(/>/g, '>')\n .replace(/&/g, '&');\n};\n\nvar rgxFindMatchPos = function (str, left, right, flags) {\n var f = flags || '',\n g = f.indexOf('g') > -1,\n x = new RegExp(left + '|' + right, 'g' + f.replace(/g/g, '')),\n l = new RegExp(left, f.replace(/g/g, '')),\n pos = [],\n t, s, m, start, end;\n\n do {\n t = 0;\n while ((m = x.exec(str))) {\n if (l.test(m[0])) {\n if (!(t++)) {\n s = x.lastIndex;\n start = s - m[0].length;\n }\n } else if (t) {\n if (!--t) {\n end = m.index + m[0].length;\n var obj = {\n left: {start: start, end: s},\n match: {start: s, end: m.index},\n right: {start: m.index, end: end},\n wholeMatch: {start: start, end: end}\n };\n pos.push(obj);\n if (!g) {\n return pos;\n }\n }\n }\n }\n } while (t && (x.lastIndex = s));\n\n return pos;\n};\n\n/**\n * matchRecursiveRegExp\n *\n * (c) 2007 Steven Levithan \n * MIT License\n *\n * Accepts a string to search, a left and right format delimiter\n * as regex patterns, and optional regex flags. Returns an array\n * of matches, allowing nested instances of left/right delimiters.\n * Use the \"g\" flag to return all matches, otherwise only the\n * first is returned. Be careful to ensure that the left and\n * right format delimiters produce mutually exclusive matches.\n * Backreferences are not supported within the right delimiter\n * due to how it is internally combined with the left delimiter.\n * When matching strings whose format delimiters are unbalanced\n * to the left or right, the output is intentionally as a\n * conventional regex library with recursion support would\n * produce, e.g. \"<\" and \">\" both produce [\"x\"] when using\n * \"<\" and \">\" as the delimiters (both strings contain a single,\n * balanced instance of \"\").\n *\n * examples:\n * matchRecursiveRegExp(\"test\", \"\\\\(\", \"\\\\)\")\n * returns: []\n * matchRecursiveRegExp(\">>t<>\", \"<\", \">\", \"g\")\n * returns: [\"t<>\", \"\"]\n * matchRecursiveRegExp(\"test\", \"]*>\", \"\", \"gi\")\n * returns: [\"test\"]\n */\nshowdown.helper.matchRecursiveRegExp = function (str, left, right, flags) {\n\n var matchPos = rgxFindMatchPos (str, left, right, flags),\n results = [];\n\n for (var i = 0; i < matchPos.length; ++i) {\n results.push([\n str.slice(matchPos[i].wholeMatch.start, matchPos[i].wholeMatch.end),\n str.slice(matchPos[i].match.start, matchPos[i].match.end),\n str.slice(matchPos[i].left.start, matchPos[i].left.end),\n str.slice(matchPos[i].right.start, matchPos[i].right.end)\n ]);\n }\n return results;\n};\n\n/**\n *\n * @param {string} str\n * @param {string|function} replacement\n * @param {string} left\n * @param {string} right\n * @param {string} flags\n * @returns {string}\n */\nshowdown.helper.replaceRecursiveRegExp = function (str, replacement, left, right, flags) {\n\n if (!showdown.helper.isFunction(replacement)) {\n var repStr = replacement;\n replacement = function () {\n return repStr;\n };\n }\n\n var matchPos = rgxFindMatchPos(str, left, right, flags),\n finalStr = str,\n lng = matchPos.length;\n\n if (lng > 0) {\n var bits = [];\n if (matchPos[0].wholeMatch.start !== 0) {\n bits.push(str.slice(0, matchPos[0].wholeMatch.start));\n }\n for (var i = 0; i < lng; ++i) {\n bits.push(\n replacement(\n str.slice(matchPos[i].wholeMatch.start, matchPos[i].wholeMatch.end),\n str.slice(matchPos[i].match.start, matchPos[i].match.end),\n str.slice(matchPos[i].left.start, matchPos[i].left.end),\n str.slice(matchPos[i].right.start, matchPos[i].right.end)\n )\n );\n if (i < lng - 1) {\n bits.push(str.slice(matchPos[i].wholeMatch.end, matchPos[i + 1].wholeMatch.start));\n }\n }\n if (matchPos[lng - 1].wholeMatch.end < str.length) {\n bits.push(str.slice(matchPos[lng - 1].wholeMatch.end));\n }\n finalStr = bits.join('');\n }\n return finalStr;\n};\n\n/**\n * Returns the index within the passed String object of the first occurrence of the specified regex,\n * starting the search at fromIndex. Returns -1 if the value is not found.\n *\n * @param {string} str string to search\n * @param {RegExp} regex Regular expression to search\n * @param {int} [fromIndex = 0] Index to start the search\n * @returns {Number}\n * @throws InvalidArgumentError\n */\nshowdown.helper.regexIndexOf = function (str, regex, fromIndex) {\n if (!showdown.helper.isString(str)) {\n throw 'InvalidArgumentError: first parameter of showdown.helper.regexIndexOf function must be a string';\n }\n if (regex instanceof RegExp === false) {\n throw 'InvalidArgumentError: second parameter of showdown.helper.regexIndexOf function must be an instance of RegExp';\n }\n var indexOf = str.substring(fromIndex || 0).search(regex);\n return (indexOf >= 0) ? (indexOf + (fromIndex || 0)) : indexOf;\n};\n\n/**\n * Splits the passed string object at the defined index, and returns an array composed of the two substrings\n * @param {string} str string to split\n * @param {int} index index to split string at\n * @returns {[string,string]}\n * @throws InvalidArgumentError\n */\nshowdown.helper.splitAtIndex = function (str, index) {\n if (!showdown.helper.isString(str)) {\n throw 'InvalidArgumentError: first parameter of showdown.helper.regexIndexOf function must be a string';\n }\n return [str.substring(0, index), str.substring(index)];\n};\n\n/**\n * Obfuscate an e-mail address through the use of Character Entities,\n * transforming ASCII characters into their equivalent decimal or hex entities.\n *\n * Since it has a random component, subsequent calls to this function produce different results\n *\n * @param {string} mail\n * @returns {string}\n */\nshowdown.helper.encodeEmailAddress = function (mail) {\n var encode = [\n function (ch) {\n return '' + ch.charCodeAt(0) + ';';\n },\n function (ch) {\n return '' + ch.charCodeAt(0).toString(16) + ';';\n },\n function (ch) {\n return ch;\n }\n ];\n\n mail = mail.replace(/./g, function (ch) {\n if (ch === '@') {\n // this *must* be encoded. I insist.\n ch = encode[Math.floor(Math.random() * 2)](ch);\n } else {\n var r = Math.random();\n // roughly 10% raw, 45% hex, 45% dec\n ch = (\n r > 0.9 ? encode[2](ch) : r > 0.45 ? encode[1](ch) : encode[0](ch)\n );\n }\n return ch;\n });\n\n return mail;\n};\n\n/**\n *\n * @param str\n * @param targetLength\n * @param padString\n * @returns {string}\n */\nshowdown.helper.padEnd = function padEnd (str, targetLength, padString) {\n /*jshint bitwise: false*/\n // eslint-disable-next-line space-infix-ops\n targetLength = targetLength>>0; //floor if number or convert non-number to 0;\n /*jshint bitwise: true*/\n padString = String(padString || ' ');\n if (str.length > targetLength) {\n return String(str);\n } else {\n targetLength = targetLength - str.length;\n if (targetLength > padString.length) {\n padString += padString.repeat(targetLength / padString.length); //append to original to ensure we are longer than needed\n }\n return String(str) + padString.slice(0,targetLength);\n }\n};\n\n/**\n * POLYFILLS\n */\n// use this instead of builtin is undefined for IE8 compatibility\nif (typeof console === 'undefined') {\n console = {\n warn: function (msg) {\n alert(msg);\n },\n log: function (msg) {\n alert(msg);\n },\n error: function (msg) {\n throw msg;\n }\n };\n}\n\n/**\n * Common regexes.\n * We declare some common regexes to improve performance\n */\nshowdown.helper.regexes = {\n asteriskDashAndColon: /([*_:~])/g\n};\n\n/**\n * EMOJIS LIST\n */\nshowdown.helper.emojis = {\n '+1':'\\ud83d\\udc4d',\n '-1':'\\ud83d\\udc4e',\n '100':'\\ud83d\\udcaf',\n '1234':'\\ud83d\\udd22',\n '1st_place_medal':'\\ud83e\\udd47',\n '2nd_place_medal':'\\ud83e\\udd48',\n '3rd_place_medal':'\\ud83e\\udd49',\n '8ball':'\\ud83c\\udfb1',\n 'a':'\\ud83c\\udd70\\ufe0f',\n 'ab':'\\ud83c\\udd8e',\n 'abc':'\\ud83d\\udd24',\n 'abcd':'\\ud83d\\udd21',\n 'accept':'\\ud83c\\ude51',\n 'aerial_tramway':'\\ud83d\\udea1',\n 'airplane':'\\u2708\\ufe0f',\n 'alarm_clock':'\\u23f0',\n 'alembic':'\\u2697\\ufe0f',\n 'alien':'\\ud83d\\udc7d',\n 'ambulance':'\\ud83d\\ude91',\n 'amphora':'\\ud83c\\udffa',\n 'anchor':'\\u2693\\ufe0f',\n 'angel':'\\ud83d\\udc7c',\n 'anger':'\\ud83d\\udca2',\n 'angry':'\\ud83d\\ude20',\n 'anguished':'\\ud83d\\ude27',\n 'ant':'\\ud83d\\udc1c',\n 'apple':'\\ud83c\\udf4e',\n 'aquarius':'\\u2652\\ufe0f',\n 'aries':'\\u2648\\ufe0f',\n 'arrow_backward':'\\u25c0\\ufe0f',\n 'arrow_double_down':'\\u23ec',\n 'arrow_double_up':'\\u23eb',\n 'arrow_down':'\\u2b07\\ufe0f',\n 'arrow_down_small':'\\ud83d\\udd3d',\n 'arrow_forward':'\\u25b6\\ufe0f',\n 'arrow_heading_down':'\\u2935\\ufe0f',\n 'arrow_heading_up':'\\u2934\\ufe0f',\n 'arrow_left':'\\u2b05\\ufe0f',\n 'arrow_lower_left':'\\u2199\\ufe0f',\n 'arrow_lower_right':'\\u2198\\ufe0f',\n 'arrow_right':'\\u27a1\\ufe0f',\n 'arrow_right_hook':'\\u21aa\\ufe0f',\n 'arrow_up':'\\u2b06\\ufe0f',\n 'arrow_up_down':'\\u2195\\ufe0f',\n 'arrow_up_small':'\\ud83d\\udd3c',\n 'arrow_upper_left':'\\u2196\\ufe0f',\n 'arrow_upper_right':'\\u2197\\ufe0f',\n 'arrows_clockwise':'\\ud83d\\udd03',\n 'arrows_counterclockwise':'\\ud83d\\udd04',\n 'art':'\\ud83c\\udfa8',\n 'articulated_lorry':'\\ud83d\\ude9b',\n 'artificial_satellite':'\\ud83d\\udef0',\n 'astonished':'\\ud83d\\ude32',\n 'athletic_shoe':'\\ud83d\\udc5f',\n 'atm':'\\ud83c\\udfe7',\n 'atom_symbol':'\\u269b\\ufe0f',\n 'avocado':'\\ud83e\\udd51',\n 'b':'\\ud83c\\udd71\\ufe0f',\n 'baby':'\\ud83d\\udc76',\n 'baby_bottle':'\\ud83c\\udf7c',\n 'baby_chick':'\\ud83d\\udc24',\n 'baby_symbol':'\\ud83d\\udebc',\n 'back':'\\ud83d\\udd19',\n 'bacon':'\\ud83e\\udd53',\n 'badminton':'\\ud83c\\udff8',\n 'baggage_claim':'\\ud83d\\udec4',\n 'baguette_bread':'\\ud83e\\udd56',\n 'balance_scale':'\\u2696\\ufe0f',\n 'balloon':'\\ud83c\\udf88',\n 'ballot_box':'\\ud83d\\uddf3',\n 'ballot_box_with_check':'\\u2611\\ufe0f',\n 'bamboo':'\\ud83c\\udf8d',\n 'banana':'\\ud83c\\udf4c',\n 'bangbang':'\\u203c\\ufe0f',\n 'bank':'\\ud83c\\udfe6',\n 'bar_chart':'\\ud83d\\udcca',\n 'barber':'\\ud83d\\udc88',\n 'baseball':'\\u26be\\ufe0f',\n 'basketball':'\\ud83c\\udfc0',\n 'basketball_man':'\\u26f9\\ufe0f',\n 'basketball_woman':'\\u26f9\\ufe0f\\u2640\\ufe0f',\n 'bat':'\\ud83e\\udd87',\n 'bath':'\\ud83d\\udec0',\n 'bathtub':'\\ud83d\\udec1',\n 'battery':'\\ud83d\\udd0b',\n 'beach_umbrella':'\\ud83c\\udfd6',\n 'bear':'\\ud83d\\udc3b',\n 'bed':'\\ud83d\\udecf',\n 'bee':'\\ud83d\\udc1d',\n 'beer':'\\ud83c\\udf7a',\n 'beers':'\\ud83c\\udf7b',\n 'beetle':'\\ud83d\\udc1e',\n 'beginner':'\\ud83d\\udd30',\n 'bell':'\\ud83d\\udd14',\n 'bellhop_bell':'\\ud83d\\udece',\n 'bento':'\\ud83c\\udf71',\n 'biking_man':'\\ud83d\\udeb4',\n 'bike':'\\ud83d\\udeb2',\n 'biking_woman':'\\ud83d\\udeb4\\u2640\\ufe0f',\n 'bikini':'\\ud83d\\udc59',\n 'biohazard':'\\u2623\\ufe0f',\n 'bird':'\\ud83d\\udc26',\n 'birthday':'\\ud83c\\udf82',\n 'black_circle':'\\u26ab\\ufe0f',\n 'black_flag':'\\ud83c\\udff4',\n 'black_heart':'\\ud83d\\udda4',\n 'black_joker':'\\ud83c\\udccf',\n 'black_large_square':'\\u2b1b\\ufe0f',\n 'black_medium_small_square':'\\u25fe\\ufe0f',\n 'black_medium_square':'\\u25fc\\ufe0f',\n 'black_nib':'\\u2712\\ufe0f',\n 'black_small_square':'\\u25aa\\ufe0f',\n 'black_square_button':'\\ud83d\\udd32',\n 'blonde_man':'\\ud83d\\udc71',\n 'blonde_woman':'\\ud83d\\udc71\\u2640\\ufe0f',\n 'blossom':'\\ud83c\\udf3c',\n 'blowfish':'\\ud83d\\udc21',\n 'blue_book':'\\ud83d\\udcd8',\n 'blue_car':'\\ud83d\\ude99',\n 'blue_heart':'\\ud83d\\udc99',\n 'blush':'\\ud83d\\ude0a',\n 'boar':'\\ud83d\\udc17',\n 'boat':'\\u26f5\\ufe0f',\n 'bomb':'\\ud83d\\udca3',\n 'book':'\\ud83d\\udcd6',\n 'bookmark':'\\ud83d\\udd16',\n 'bookmark_tabs':'\\ud83d\\udcd1',\n 'books':'\\ud83d\\udcda',\n 'boom':'\\ud83d\\udca5',\n 'boot':'\\ud83d\\udc62',\n 'bouquet':'\\ud83d\\udc90',\n 'bowing_man':'\\ud83d\\ude47',\n 'bow_and_arrow':'\\ud83c\\udff9',\n 'bowing_woman':'\\ud83d\\ude47\\u2640\\ufe0f',\n 'bowling':'\\ud83c\\udfb3',\n 'boxing_glove':'\\ud83e\\udd4a',\n 'boy':'\\ud83d\\udc66',\n 'bread':'\\ud83c\\udf5e',\n 'bride_with_veil':'\\ud83d\\udc70',\n 'bridge_at_night':'\\ud83c\\udf09',\n 'briefcase':'\\ud83d\\udcbc',\n 'broken_heart':'\\ud83d\\udc94',\n 'bug':'\\ud83d\\udc1b',\n 'building_construction':'\\ud83c\\udfd7',\n 'bulb':'\\ud83d\\udca1',\n 'bullettrain_front':'\\ud83d\\ude85',\n 'bullettrain_side':'\\ud83d\\ude84',\n 'burrito':'\\ud83c\\udf2f',\n 'bus':'\\ud83d\\ude8c',\n 'business_suit_levitating':'\\ud83d\\udd74',\n 'busstop':'\\ud83d\\ude8f',\n 'bust_in_silhouette':'\\ud83d\\udc64',\n 'busts_in_silhouette':'\\ud83d\\udc65',\n 'butterfly':'\\ud83e\\udd8b',\n 'cactus':'\\ud83c\\udf35',\n 'cake':'\\ud83c\\udf70',\n 'calendar':'\\ud83d\\udcc6',\n 'call_me_hand':'\\ud83e\\udd19',\n 'calling':'\\ud83d\\udcf2',\n 'camel':'\\ud83d\\udc2b',\n 'camera':'\\ud83d\\udcf7',\n 'camera_flash':'\\ud83d\\udcf8',\n 'camping':'\\ud83c\\udfd5',\n 'cancer':'\\u264b\\ufe0f',\n 'candle':'\\ud83d\\udd6f',\n 'candy':'\\ud83c\\udf6c',\n 'canoe':'\\ud83d\\udef6',\n 'capital_abcd':'\\ud83d\\udd20',\n 'capricorn':'\\u2651\\ufe0f',\n 'car':'\\ud83d\\ude97',\n 'card_file_box':'\\ud83d\\uddc3',\n 'card_index':'\\ud83d\\udcc7',\n 'card_index_dividers':'\\ud83d\\uddc2',\n 'carousel_horse':'\\ud83c\\udfa0',\n 'carrot':'\\ud83e\\udd55',\n 'cat':'\\ud83d\\udc31',\n 'cat2':'\\ud83d\\udc08',\n 'cd':'\\ud83d\\udcbf',\n 'chains':'\\u26d3',\n 'champagne':'\\ud83c\\udf7e',\n 'chart':'\\ud83d\\udcb9',\n 'chart_with_downwards_trend':'\\ud83d\\udcc9',\n 'chart_with_upwards_trend':'\\ud83d\\udcc8',\n 'checkered_flag':'\\ud83c\\udfc1',\n 'cheese':'\\ud83e\\uddc0',\n 'cherries':'\\ud83c\\udf52',\n 'cherry_blossom':'\\ud83c\\udf38',\n 'chestnut':'\\ud83c\\udf30',\n 'chicken':'\\ud83d\\udc14',\n 'children_crossing':'\\ud83d\\udeb8',\n 'chipmunk':'\\ud83d\\udc3f',\n 'chocolate_bar':'\\ud83c\\udf6b',\n 'christmas_tree':'\\ud83c\\udf84',\n 'church':'\\u26ea\\ufe0f',\n 'cinema':'\\ud83c\\udfa6',\n 'circus_tent':'\\ud83c\\udfaa',\n 'city_sunrise':'\\ud83c\\udf07',\n 'city_sunset':'\\ud83c\\udf06',\n 'cityscape':'\\ud83c\\udfd9',\n 'cl':'\\ud83c\\udd91',\n 'clamp':'\\ud83d\\udddc',\n 'clap':'\\ud83d\\udc4f',\n 'clapper':'\\ud83c\\udfac',\n 'classical_building':'\\ud83c\\udfdb',\n 'clinking_glasses':'\\ud83e\\udd42',\n 'clipboard':'\\ud83d\\udccb',\n 'clock1':'\\ud83d\\udd50',\n 'clock10':'\\ud83d\\udd59',\n 'clock1030':'\\ud83d\\udd65',\n 'clock11':'\\ud83d\\udd5a',\n 'clock1130':'\\ud83d\\udd66',\n 'clock12':'\\ud83d\\udd5b',\n 'clock1230':'\\ud83d\\udd67',\n 'clock130':'\\ud83d\\udd5c',\n 'clock2':'\\ud83d\\udd51',\n 'clock230':'\\ud83d\\udd5d',\n 'clock3':'\\ud83d\\udd52',\n 'clock330':'\\ud83d\\udd5e',\n 'clock4':'\\ud83d\\udd53',\n 'clock430':'\\ud83d\\udd5f',\n 'clock5':'\\ud83d\\udd54',\n 'clock530':'\\ud83d\\udd60',\n 'clock6':'\\ud83d\\udd55',\n 'clock630':'\\ud83d\\udd61',\n 'clock7':'\\ud83d\\udd56',\n 'clock730':'\\ud83d\\udd62',\n 'clock8':'\\ud83d\\udd57',\n 'clock830':'\\ud83d\\udd63',\n 'clock9':'\\ud83d\\udd58',\n 'clock930':'\\ud83d\\udd64',\n 'closed_book':'\\ud83d\\udcd5',\n 'closed_lock_with_key':'\\ud83d\\udd10',\n 'closed_umbrella':'\\ud83c\\udf02',\n 'cloud':'\\u2601\\ufe0f',\n 'cloud_with_lightning':'\\ud83c\\udf29',\n 'cloud_with_lightning_and_rain':'\\u26c8',\n 'cloud_with_rain':'\\ud83c\\udf27',\n 'cloud_with_snow':'\\ud83c\\udf28',\n 'clown_face':'\\ud83e\\udd21',\n 'clubs':'\\u2663\\ufe0f',\n 'cocktail':'\\ud83c\\udf78',\n 'coffee':'\\u2615\\ufe0f',\n 'coffin':'\\u26b0\\ufe0f',\n 'cold_sweat':'\\ud83d\\ude30',\n 'comet':'\\u2604\\ufe0f',\n 'computer':'\\ud83d\\udcbb',\n 'computer_mouse':'\\ud83d\\uddb1',\n 'confetti_ball':'\\ud83c\\udf8a',\n 'confounded':'\\ud83d\\ude16',\n 'confused':'\\ud83d\\ude15',\n 'congratulations':'\\u3297\\ufe0f',\n 'construction':'\\ud83d\\udea7',\n 'construction_worker_man':'\\ud83d\\udc77',\n 'construction_worker_woman':'\\ud83d\\udc77\\u2640\\ufe0f',\n 'control_knobs':'\\ud83c\\udf9b',\n 'convenience_store':'\\ud83c\\udfea',\n 'cookie':'\\ud83c\\udf6a',\n 'cool':'\\ud83c\\udd92',\n 'policeman':'\\ud83d\\udc6e',\n 'copyright':'\\u00a9\\ufe0f',\n 'corn':'\\ud83c\\udf3d',\n 'couch_and_lamp':'\\ud83d\\udecb',\n 'couple':'\\ud83d\\udc6b',\n 'couple_with_heart_woman_man':'\\ud83d\\udc91',\n 'couple_with_heart_man_man':'\\ud83d\\udc68\\u2764\\ufe0f\\ud83d\\udc68',\n 'couple_with_heart_woman_woman':'\\ud83d\\udc69\\u2764\\ufe0f\\ud83d\\udc69',\n 'couplekiss_man_man':'\\ud83d\\udc68\\u2764\\ufe0f\\ud83d\\udc8b\\ud83d\\udc68',\n 'couplekiss_man_woman':'\\ud83d\\udc8f',\n 'couplekiss_woman_woman':'\\ud83d\\udc69\\u2764\\ufe0f\\ud83d\\udc8b\\ud83d\\udc69',\n 'cow':'\\ud83d\\udc2e',\n 'cow2':'\\ud83d\\udc04',\n 'cowboy_hat_face':'\\ud83e\\udd20',\n 'crab':'\\ud83e\\udd80',\n 'crayon':'\\ud83d\\udd8d',\n 'credit_card':'\\ud83d\\udcb3',\n 'crescent_moon':'\\ud83c\\udf19',\n 'cricket':'\\ud83c\\udfcf',\n 'crocodile':'\\ud83d\\udc0a',\n 'croissant':'\\ud83e\\udd50',\n 'crossed_fingers':'\\ud83e\\udd1e',\n 'crossed_flags':'\\ud83c\\udf8c',\n 'crossed_swords':'\\u2694\\ufe0f',\n 'crown':'\\ud83d\\udc51',\n 'cry':'\\ud83d\\ude22',\n 'crying_cat_face':'\\ud83d\\ude3f',\n 'crystal_ball':'\\ud83d\\udd2e',\n 'cucumber':'\\ud83e\\udd52',\n 'cupid':'\\ud83d\\udc98',\n 'curly_loop':'\\u27b0',\n 'currency_exchange':'\\ud83d\\udcb1',\n 'curry':'\\ud83c\\udf5b',\n 'custard':'\\ud83c\\udf6e',\n 'customs':'\\ud83d\\udec3',\n 'cyclone':'\\ud83c\\udf00',\n 'dagger':'\\ud83d\\udde1',\n 'dancer':'\\ud83d\\udc83',\n 'dancing_women':'\\ud83d\\udc6f',\n 'dancing_men':'\\ud83d\\udc6f\\u2642\\ufe0f',\n 'dango':'\\ud83c\\udf61',\n 'dark_sunglasses':'\\ud83d\\udd76',\n 'dart':'\\ud83c\\udfaf',\n 'dash':'\\ud83d\\udca8',\n 'date':'\\ud83d\\udcc5',\n 'deciduous_tree':'\\ud83c\\udf33',\n 'deer':'\\ud83e\\udd8c',\n 'department_store':'\\ud83c\\udfec',\n 'derelict_house':'\\ud83c\\udfda',\n 'desert':'\\ud83c\\udfdc',\n 'desert_island':'\\ud83c\\udfdd',\n 'desktop_computer':'\\ud83d\\udda5',\n 'male_detective':'\\ud83d\\udd75\\ufe0f',\n 'diamond_shape_with_a_dot_inside':'\\ud83d\\udca0',\n 'diamonds':'\\u2666\\ufe0f',\n 'disappointed':'\\ud83d\\ude1e',\n 'disappointed_relieved':'\\ud83d\\ude25',\n 'dizzy':'\\ud83d\\udcab',\n 'dizzy_face':'\\ud83d\\ude35',\n 'do_not_litter':'\\ud83d\\udeaf',\n 'dog':'\\ud83d\\udc36',\n 'dog2':'\\ud83d\\udc15',\n 'dollar':'\\ud83d\\udcb5',\n 'dolls':'\\ud83c\\udf8e',\n 'dolphin':'\\ud83d\\udc2c',\n 'door':'\\ud83d\\udeaa',\n 'doughnut':'\\ud83c\\udf69',\n 'dove':'\\ud83d\\udd4a',\n 'dragon':'\\ud83d\\udc09',\n 'dragon_face':'\\ud83d\\udc32',\n 'dress':'\\ud83d\\udc57',\n 'dromedary_camel':'\\ud83d\\udc2a',\n 'drooling_face':'\\ud83e\\udd24',\n 'droplet':'\\ud83d\\udca7',\n 'drum':'\\ud83e\\udd41',\n 'duck':'\\ud83e\\udd86',\n 'dvd':'\\ud83d\\udcc0',\n 'e-mail':'\\ud83d\\udce7',\n 'eagle':'\\ud83e\\udd85',\n 'ear':'\\ud83d\\udc42',\n 'ear_of_rice':'\\ud83c\\udf3e',\n 'earth_africa':'\\ud83c\\udf0d',\n 'earth_americas':'\\ud83c\\udf0e',\n 'earth_asia':'\\ud83c\\udf0f',\n 'egg':'\\ud83e\\udd5a',\n 'eggplant':'\\ud83c\\udf46',\n 'eight_pointed_black_star':'\\u2734\\ufe0f',\n 'eight_spoked_asterisk':'\\u2733\\ufe0f',\n 'electric_plug':'\\ud83d\\udd0c',\n 'elephant':'\\ud83d\\udc18',\n 'email':'\\u2709\\ufe0f',\n 'end':'\\ud83d\\udd1a',\n 'envelope_with_arrow':'\\ud83d\\udce9',\n 'euro':'\\ud83d\\udcb6',\n 'european_castle':'\\ud83c\\udff0',\n 'european_post_office':'\\ud83c\\udfe4',\n 'evergreen_tree':'\\ud83c\\udf32',\n 'exclamation':'\\u2757\\ufe0f',\n 'expressionless':'\\ud83d\\ude11',\n 'eye':'\\ud83d\\udc41',\n 'eye_speech_bubble':'\\ud83d\\udc41\\ud83d\\udde8',\n 'eyeglasses':'\\ud83d\\udc53',\n 'eyes':'\\ud83d\\udc40',\n 'face_with_head_bandage':'\\ud83e\\udd15',\n 'face_with_thermometer':'\\ud83e\\udd12',\n 'fist_oncoming':'\\ud83d\\udc4a',\n 'factory':'\\ud83c\\udfed',\n 'fallen_leaf':'\\ud83c\\udf42',\n 'family_man_woman_boy':'\\ud83d\\udc6a',\n 'family_man_boy':'\\ud83d\\udc68\\ud83d\\udc66',\n 'family_man_boy_boy':'\\ud83d\\udc68\\ud83d\\udc66\\ud83d\\udc66',\n 'family_man_girl':'\\ud83d\\udc68\\ud83d\\udc67',\n 'family_man_girl_boy':'\\ud83d\\udc68\\ud83d\\udc67\\ud83d\\udc66',\n 'family_man_girl_girl':'\\ud83d\\udc68\\ud83d\\udc67\\ud83d\\udc67',\n 'family_man_man_boy':'\\ud83d\\udc68\\ud83d\\udc68\\ud83d\\udc66',\n 'family_man_man_boy_boy':'\\ud83d\\udc68\\ud83d\\udc68\\ud83d\\udc66\\ud83d\\udc66',\n 'family_man_man_girl':'\\ud83d\\udc68\\ud83d\\udc68\\ud83d\\udc67',\n 'family_man_man_girl_boy':'\\ud83d\\udc68\\ud83d\\udc68\\ud83d\\udc67\\ud83d\\udc66',\n 'family_man_man_girl_girl':'\\ud83d\\udc68\\ud83d\\udc68\\ud83d\\udc67\\ud83d\\udc67',\n 'family_man_woman_boy_boy':'\\ud83d\\udc68\\ud83d\\udc69\\ud83d\\udc66\\ud83d\\udc66',\n 'family_man_woman_girl':'\\ud83d\\udc68\\ud83d\\udc69\\ud83d\\udc67',\n 'family_man_woman_girl_boy':'\\ud83d\\udc68\\ud83d\\udc69\\ud83d\\udc67\\ud83d\\udc66',\n 'family_man_woman_girl_girl':'\\ud83d\\udc68\\ud83d\\udc69\\ud83d\\udc67\\ud83d\\udc67',\n 'family_woman_boy':'\\ud83d\\udc69\\ud83d\\udc66',\n 'family_woman_boy_boy':'\\ud83d\\udc69\\ud83d\\udc66\\ud83d\\udc66',\n 'family_woman_girl':'\\ud83d\\udc69\\ud83d\\udc67',\n 'family_woman_girl_boy':'\\ud83d\\udc69\\ud83d\\udc67\\ud83d\\udc66',\n 'family_woman_girl_girl':'\\ud83d\\udc69\\ud83d\\udc67\\ud83d\\udc67',\n 'family_woman_woman_boy':'\\ud83d\\udc69\\ud83d\\udc69\\ud83d\\udc66',\n 'family_woman_woman_boy_boy':'\\ud83d\\udc69\\ud83d\\udc69\\ud83d\\udc66\\ud83d\\udc66',\n 'family_woman_woman_girl':'\\ud83d\\udc69\\ud83d\\udc69\\ud83d\\udc67',\n 'family_woman_woman_girl_boy':'\\ud83d\\udc69\\ud83d\\udc69\\ud83d\\udc67\\ud83d\\udc66',\n 'family_woman_woman_girl_girl':'\\ud83d\\udc69\\ud83d\\udc69\\ud83d\\udc67\\ud83d\\udc67',\n 'fast_forward':'\\u23e9',\n 'fax':'\\ud83d\\udce0',\n 'fearful':'\\ud83d\\ude28',\n 'feet':'\\ud83d\\udc3e',\n 'female_detective':'\\ud83d\\udd75\\ufe0f\\u2640\\ufe0f',\n 'ferris_wheel':'\\ud83c\\udfa1',\n 'ferry':'\\u26f4',\n 'field_hockey':'\\ud83c\\udfd1',\n 'file_cabinet':'\\ud83d\\uddc4',\n 'file_folder':'\\ud83d\\udcc1',\n 'film_projector':'\\ud83d\\udcfd',\n 'film_strip':'\\ud83c\\udf9e',\n 'fire':'\\ud83d\\udd25',\n 'fire_engine':'\\ud83d\\ude92',\n 'fireworks':'\\ud83c\\udf86',\n 'first_quarter_moon':'\\ud83c\\udf13',\n 'first_quarter_moon_with_face':'\\ud83c\\udf1b',\n 'fish':'\\ud83d\\udc1f',\n 'fish_cake':'\\ud83c\\udf65',\n 'fishing_pole_and_fish':'\\ud83c\\udfa3',\n 'fist_raised':'\\u270a',\n 'fist_left':'\\ud83e\\udd1b',\n 'fist_right':'\\ud83e\\udd1c',\n 'flags':'\\ud83c\\udf8f',\n 'flashlight':'\\ud83d\\udd26',\n 'fleur_de_lis':'\\u269c\\ufe0f',\n 'flight_arrival':'\\ud83d\\udeec',\n 'flight_departure':'\\ud83d\\udeeb',\n 'floppy_disk':'\\ud83d\\udcbe',\n 'flower_playing_cards':'\\ud83c\\udfb4',\n 'flushed':'\\ud83d\\ude33',\n 'fog':'\\ud83c\\udf2b',\n 'foggy':'\\ud83c\\udf01',\n 'football':'\\ud83c\\udfc8',\n 'footprints':'\\ud83d\\udc63',\n 'fork_and_knife':'\\ud83c\\udf74',\n 'fountain':'\\u26f2\\ufe0f',\n 'fountain_pen':'\\ud83d\\udd8b',\n 'four_leaf_clover':'\\ud83c\\udf40',\n 'fox_face':'\\ud83e\\udd8a',\n 'framed_picture':'\\ud83d\\uddbc',\n 'free':'\\ud83c\\udd93',\n 'fried_egg':'\\ud83c\\udf73',\n 'fried_shrimp':'\\ud83c\\udf64',\n 'fries':'\\ud83c\\udf5f',\n 'frog':'\\ud83d\\udc38',\n 'frowning':'\\ud83d\\ude26',\n 'frowning_face':'\\u2639\\ufe0f',\n 'frowning_man':'\\ud83d\\ude4d\\u2642\\ufe0f',\n 'frowning_woman':'\\ud83d\\ude4d',\n 'middle_finger':'\\ud83d\\udd95',\n 'fuelpump':'\\u26fd\\ufe0f',\n 'full_moon':'\\ud83c\\udf15',\n 'full_moon_with_face':'\\ud83c\\udf1d',\n 'funeral_urn':'\\u26b1\\ufe0f',\n 'game_die':'\\ud83c\\udfb2',\n 'gear':'\\u2699\\ufe0f',\n 'gem':'\\ud83d\\udc8e',\n 'gemini':'\\u264a\\ufe0f',\n 'ghost':'\\ud83d\\udc7b',\n 'gift':'\\ud83c\\udf81',\n 'gift_heart':'\\ud83d\\udc9d',\n 'girl':'\\ud83d\\udc67',\n 'globe_with_meridians':'\\ud83c\\udf10',\n 'goal_net':'\\ud83e\\udd45',\n 'goat':'\\ud83d\\udc10',\n 'golf':'\\u26f3\\ufe0f',\n 'golfing_man':'\\ud83c\\udfcc\\ufe0f',\n 'golfing_woman':'\\ud83c\\udfcc\\ufe0f\\u2640\\ufe0f',\n 'gorilla':'\\ud83e\\udd8d',\n 'grapes':'\\ud83c\\udf47',\n 'green_apple':'\\ud83c\\udf4f',\n 'green_book':'\\ud83d\\udcd7',\n 'green_heart':'\\ud83d\\udc9a',\n 'green_salad':'\\ud83e\\udd57',\n 'grey_exclamation':'\\u2755',\n 'grey_question':'\\u2754',\n 'grimacing':'\\ud83d\\ude2c',\n 'grin':'\\ud83d\\ude01',\n 'grinning':'\\ud83d\\ude00',\n 'guardsman':'\\ud83d\\udc82',\n 'guardswoman':'\\ud83d\\udc82\\u2640\\ufe0f',\n 'guitar':'\\ud83c\\udfb8',\n 'gun':'\\ud83d\\udd2b',\n 'haircut_woman':'\\ud83d\\udc87',\n 'haircut_man':'\\ud83d\\udc87\\u2642\\ufe0f',\n 'hamburger':'\\ud83c\\udf54',\n 'hammer':'\\ud83d\\udd28',\n 'hammer_and_pick':'\\u2692',\n 'hammer_and_wrench':'\\ud83d\\udee0',\n 'hamster':'\\ud83d\\udc39',\n 'hand':'\\u270b',\n 'handbag':'\\ud83d\\udc5c',\n 'handshake':'\\ud83e\\udd1d',\n 'hankey':'\\ud83d\\udca9',\n 'hatched_chick':'\\ud83d\\udc25',\n 'hatching_chick':'\\ud83d\\udc23',\n 'headphones':'\\ud83c\\udfa7',\n 'hear_no_evil':'\\ud83d\\ude49',\n 'heart':'\\u2764\\ufe0f',\n 'heart_decoration':'\\ud83d\\udc9f',\n 'heart_eyes':'\\ud83d\\ude0d',\n 'heart_eyes_cat':'\\ud83d\\ude3b',\n 'heartbeat':'\\ud83d\\udc93',\n 'heartpulse':'\\ud83d\\udc97',\n 'hearts':'\\u2665\\ufe0f',\n 'heavy_check_mark':'\\u2714\\ufe0f',\n 'heavy_division_sign':'\\u2797',\n 'heavy_dollar_sign':'\\ud83d\\udcb2',\n 'heavy_heart_exclamation':'\\u2763\\ufe0f',\n 'heavy_minus_sign':'\\u2796',\n 'heavy_multiplication_x':'\\u2716\\ufe0f',\n 'heavy_plus_sign':'\\u2795',\n 'helicopter':'\\ud83d\\ude81',\n 'herb':'\\ud83c\\udf3f',\n 'hibiscus':'\\ud83c\\udf3a',\n 'high_brightness':'\\ud83d\\udd06',\n 'high_heel':'\\ud83d\\udc60',\n 'hocho':'\\ud83d\\udd2a',\n 'hole':'\\ud83d\\udd73',\n 'honey_pot':'\\ud83c\\udf6f',\n 'horse':'\\ud83d\\udc34',\n 'horse_racing':'\\ud83c\\udfc7',\n 'hospital':'\\ud83c\\udfe5',\n 'hot_pepper':'\\ud83c\\udf36',\n 'hotdog':'\\ud83c\\udf2d',\n 'hotel':'\\ud83c\\udfe8',\n 'hotsprings':'\\u2668\\ufe0f',\n 'hourglass':'\\u231b\\ufe0f',\n 'hourglass_flowing_sand':'\\u23f3',\n 'house':'\\ud83c\\udfe0',\n 'house_with_garden':'\\ud83c\\udfe1',\n 'houses':'\\ud83c\\udfd8',\n 'hugs':'\\ud83e\\udd17',\n 'hushed':'\\ud83d\\ude2f',\n 'ice_cream':'\\ud83c\\udf68',\n 'ice_hockey':'\\ud83c\\udfd2',\n 'ice_skate':'\\u26f8',\n 'icecream':'\\ud83c\\udf66',\n 'id':'\\ud83c\\udd94',\n 'ideograph_advantage':'\\ud83c\\ude50',\n 'imp':'\\ud83d\\udc7f',\n 'inbox_tray':'\\ud83d\\udce5',\n 'incoming_envelope':'\\ud83d\\udce8',\n 'tipping_hand_woman':'\\ud83d\\udc81',\n 'information_source':'\\u2139\\ufe0f',\n 'innocent':'\\ud83d\\ude07',\n 'interrobang':'\\u2049\\ufe0f',\n 'iphone':'\\ud83d\\udcf1',\n 'izakaya_lantern':'\\ud83c\\udfee',\n 'jack_o_lantern':'\\ud83c\\udf83',\n 'japan':'\\ud83d\\uddfe',\n 'japanese_castle':'\\ud83c\\udfef',\n 'japanese_goblin':'\\ud83d\\udc7a',\n 'japanese_ogre':'\\ud83d\\udc79',\n 'jeans':'\\ud83d\\udc56',\n 'joy':'\\ud83d\\ude02',\n 'joy_cat':'\\ud83d\\ude39',\n 'joystick':'\\ud83d\\udd79',\n 'kaaba':'\\ud83d\\udd4b',\n 'key':'\\ud83d\\udd11',\n 'keyboard':'\\u2328\\ufe0f',\n 'keycap_ten':'\\ud83d\\udd1f',\n 'kick_scooter':'\\ud83d\\udef4',\n 'kimono':'\\ud83d\\udc58',\n 'kiss':'\\ud83d\\udc8b',\n 'kissing':'\\ud83d\\ude17',\n 'kissing_cat':'\\ud83d\\ude3d',\n 'kissing_closed_eyes':'\\ud83d\\ude1a',\n 'kissing_heart':'\\ud83d\\ude18',\n 'kissing_smiling_eyes':'\\ud83d\\ude19',\n 'kiwi_fruit':'\\ud83e\\udd5d',\n 'koala':'\\ud83d\\udc28',\n 'koko':'\\ud83c\\ude01',\n 'label':'\\ud83c\\udff7',\n 'large_blue_circle':'\\ud83d\\udd35',\n 'large_blue_diamond':'\\ud83d\\udd37',\n 'large_orange_diamond':'\\ud83d\\udd36',\n 'last_quarter_moon':'\\ud83c\\udf17',\n 'last_quarter_moon_with_face':'\\ud83c\\udf1c',\n 'latin_cross':'\\u271d\\ufe0f',\n 'laughing':'\\ud83d\\ude06',\n 'leaves':'\\ud83c\\udf43',\n 'ledger':'\\ud83d\\udcd2',\n 'left_luggage':'\\ud83d\\udec5',\n 'left_right_arrow':'\\u2194\\ufe0f',\n 'leftwards_arrow_with_hook':'\\u21a9\\ufe0f',\n 'lemon':'\\ud83c\\udf4b',\n 'leo':'\\u264c\\ufe0f',\n 'leopard':'\\ud83d\\udc06',\n 'level_slider':'\\ud83c\\udf9a',\n 'libra':'\\u264e\\ufe0f',\n 'light_rail':'\\ud83d\\ude88',\n 'link':'\\ud83d\\udd17',\n 'lion':'\\ud83e\\udd81',\n 'lips':'\\ud83d\\udc44',\n 'lipstick':'\\ud83d\\udc84',\n 'lizard':'\\ud83e\\udd8e',\n 'lock':'\\ud83d\\udd12',\n 'lock_with_ink_pen':'\\ud83d\\udd0f',\n 'lollipop':'\\ud83c\\udf6d',\n 'loop':'\\u27bf',\n 'loud_sound':'\\ud83d\\udd0a',\n 'loudspeaker':'\\ud83d\\udce2',\n 'love_hotel':'\\ud83c\\udfe9',\n 'love_letter':'\\ud83d\\udc8c',\n 'low_brightness':'\\ud83d\\udd05',\n 'lying_face':'\\ud83e\\udd25',\n 'm':'\\u24c2\\ufe0f',\n 'mag':'\\ud83d\\udd0d',\n 'mag_right':'\\ud83d\\udd0e',\n 'mahjong':'\\ud83c\\udc04\\ufe0f',\n 'mailbox':'\\ud83d\\udceb',\n 'mailbox_closed':'\\ud83d\\udcea',\n 'mailbox_with_mail':'\\ud83d\\udcec',\n 'mailbox_with_no_mail':'\\ud83d\\udced',\n 'man':'\\ud83d\\udc68',\n 'man_artist':'\\ud83d\\udc68\\ud83c\\udfa8',\n 'man_astronaut':'\\ud83d\\udc68\\ud83d\\ude80',\n 'man_cartwheeling':'\\ud83e\\udd38\\u2642\\ufe0f',\n 'man_cook':'\\ud83d\\udc68\\ud83c\\udf73',\n 'man_dancing':'\\ud83d\\udd7a',\n 'man_facepalming':'\\ud83e\\udd26\\u2642\\ufe0f',\n 'man_factory_worker':'\\ud83d\\udc68\\ud83c\\udfed',\n 'man_farmer':'\\ud83d\\udc68\\ud83c\\udf3e',\n 'man_firefighter':'\\ud83d\\udc68\\ud83d\\ude92',\n 'man_health_worker':'\\ud83d\\udc68\\u2695\\ufe0f',\n 'man_in_tuxedo':'\\ud83e\\udd35',\n 'man_judge':'\\ud83d\\udc68\\u2696\\ufe0f',\n 'man_juggling':'\\ud83e\\udd39\\u2642\\ufe0f',\n 'man_mechanic':'\\ud83d\\udc68\\ud83d\\udd27',\n 'man_office_worker':'\\ud83d\\udc68\\ud83d\\udcbc',\n 'man_pilot':'\\ud83d\\udc68\\u2708\\ufe0f',\n 'man_playing_handball':'\\ud83e\\udd3e\\u2642\\ufe0f',\n 'man_playing_water_polo':'\\ud83e\\udd3d\\u2642\\ufe0f',\n 'man_scientist':'\\ud83d\\udc68\\ud83d\\udd2c',\n 'man_shrugging':'\\ud83e\\udd37\\u2642\\ufe0f',\n 'man_singer':'\\ud83d\\udc68\\ud83c\\udfa4',\n 'man_student':'\\ud83d\\udc68\\ud83c\\udf93',\n 'man_teacher':'\\ud83d\\udc68\\ud83c\\udfeb',\n 'man_technologist':'\\ud83d\\udc68\\ud83d\\udcbb',\n 'man_with_gua_pi_mao':'\\ud83d\\udc72',\n 'man_with_turban':'\\ud83d\\udc73',\n 'tangerine':'\\ud83c\\udf4a',\n 'mans_shoe':'\\ud83d\\udc5e',\n 'mantelpiece_clock':'\\ud83d\\udd70',\n 'maple_leaf':'\\ud83c\\udf41',\n 'martial_arts_uniform':'\\ud83e\\udd4b',\n 'mask':'\\ud83d\\ude37',\n 'massage_woman':'\\ud83d\\udc86',\n 'massage_man':'\\ud83d\\udc86\\u2642\\ufe0f',\n 'meat_on_bone':'\\ud83c\\udf56',\n 'medal_military':'\\ud83c\\udf96',\n 'medal_sports':'\\ud83c\\udfc5',\n 'mega':'\\ud83d\\udce3',\n 'melon':'\\ud83c\\udf48',\n 'memo':'\\ud83d\\udcdd',\n 'men_wrestling':'\\ud83e\\udd3c\\u2642\\ufe0f',\n 'menorah':'\\ud83d\\udd4e',\n 'mens':'\\ud83d\\udeb9',\n 'metal':'\\ud83e\\udd18',\n 'metro':'\\ud83d\\ude87',\n 'microphone':'\\ud83c\\udfa4',\n 'microscope':'\\ud83d\\udd2c',\n 'milk_glass':'\\ud83e\\udd5b',\n 'milky_way':'\\ud83c\\udf0c',\n 'minibus':'\\ud83d\\ude90',\n 'minidisc':'\\ud83d\\udcbd',\n 'mobile_phone_off':'\\ud83d\\udcf4',\n 'money_mouth_face':'\\ud83e\\udd11',\n 'money_with_wings':'\\ud83d\\udcb8',\n 'moneybag':'\\ud83d\\udcb0',\n 'monkey':'\\ud83d\\udc12',\n 'monkey_face':'\\ud83d\\udc35',\n 'monorail':'\\ud83d\\ude9d',\n 'moon':'\\ud83c\\udf14',\n 'mortar_board':'\\ud83c\\udf93',\n 'mosque':'\\ud83d\\udd4c',\n 'motor_boat':'\\ud83d\\udee5',\n 'motor_scooter':'\\ud83d\\udef5',\n 'motorcycle':'\\ud83c\\udfcd',\n 'motorway':'\\ud83d\\udee3',\n 'mount_fuji':'\\ud83d\\uddfb',\n 'mountain':'\\u26f0',\n 'mountain_biking_man':'\\ud83d\\udeb5',\n 'mountain_biking_woman':'\\ud83d\\udeb5\\u2640\\ufe0f',\n 'mountain_cableway':'\\ud83d\\udea0',\n 'mountain_railway':'\\ud83d\\ude9e',\n 'mountain_snow':'\\ud83c\\udfd4',\n 'mouse':'\\ud83d\\udc2d',\n 'mouse2':'\\ud83d\\udc01',\n 'movie_camera':'\\ud83c\\udfa5',\n 'moyai':'\\ud83d\\uddff',\n 'mrs_claus':'\\ud83e\\udd36',\n 'muscle':'\\ud83d\\udcaa',\n 'mushroom':'\\ud83c\\udf44',\n 'musical_keyboard':'\\ud83c\\udfb9',\n 'musical_note':'\\ud83c\\udfb5',\n 'musical_score':'\\ud83c\\udfbc',\n 'mute':'\\ud83d\\udd07',\n 'nail_care':'\\ud83d\\udc85',\n 'name_badge':'\\ud83d\\udcdb',\n 'national_park':'\\ud83c\\udfde',\n 'nauseated_face':'\\ud83e\\udd22',\n 'necktie':'\\ud83d\\udc54',\n 'negative_squared_cross_mark':'\\u274e',\n 'nerd_face':'\\ud83e\\udd13',\n 'neutral_face':'\\ud83d\\ude10',\n 'new':'\\ud83c\\udd95',\n 'new_moon':'\\ud83c\\udf11',\n 'new_moon_with_face':'\\ud83c\\udf1a',\n 'newspaper':'\\ud83d\\udcf0',\n 'newspaper_roll':'\\ud83d\\uddde',\n 'next_track_button':'\\u23ed',\n 'ng':'\\ud83c\\udd96',\n 'no_good_man':'\\ud83d\\ude45\\u2642\\ufe0f',\n 'no_good_woman':'\\ud83d\\ude45',\n 'night_with_stars':'\\ud83c\\udf03',\n 'no_bell':'\\ud83d\\udd15',\n 'no_bicycles':'\\ud83d\\udeb3',\n 'no_entry':'\\u26d4\\ufe0f',\n 'no_entry_sign':'\\ud83d\\udeab',\n 'no_mobile_phones':'\\ud83d\\udcf5',\n 'no_mouth':'\\ud83d\\ude36',\n 'no_pedestrians':'\\ud83d\\udeb7',\n 'no_smoking':'\\ud83d\\udead',\n 'non-potable_water':'\\ud83d\\udeb1',\n 'nose':'\\ud83d\\udc43',\n 'notebook':'\\ud83d\\udcd3',\n 'notebook_with_decorative_cover':'\\ud83d\\udcd4',\n 'notes':'\\ud83c\\udfb6',\n 'nut_and_bolt':'\\ud83d\\udd29',\n 'o':'\\u2b55\\ufe0f',\n 'o2':'\\ud83c\\udd7e\\ufe0f',\n 'ocean':'\\ud83c\\udf0a',\n 'octopus':'\\ud83d\\udc19',\n 'oden':'\\ud83c\\udf62',\n 'office':'\\ud83c\\udfe2',\n 'oil_drum':'\\ud83d\\udee2',\n 'ok':'\\ud83c\\udd97',\n 'ok_hand':'\\ud83d\\udc4c',\n 'ok_man':'\\ud83d\\ude46\\u2642\\ufe0f',\n 'ok_woman':'\\ud83d\\ude46',\n 'old_key':'\\ud83d\\udddd',\n 'older_man':'\\ud83d\\udc74',\n 'older_woman':'\\ud83d\\udc75',\n 'om':'\\ud83d\\udd49',\n 'on':'\\ud83d\\udd1b',\n 'oncoming_automobile':'\\ud83d\\ude98',\n 'oncoming_bus':'\\ud83d\\ude8d',\n 'oncoming_police_car':'\\ud83d\\ude94',\n 'oncoming_taxi':'\\ud83d\\ude96',\n 'open_file_folder':'\\ud83d\\udcc2',\n 'open_hands':'\\ud83d\\udc50',\n 'open_mouth':'\\ud83d\\ude2e',\n 'open_umbrella':'\\u2602\\ufe0f',\n 'ophiuchus':'\\u26ce',\n 'orange_book':'\\ud83d\\udcd9',\n 'orthodox_cross':'\\u2626\\ufe0f',\n 'outbox_tray':'\\ud83d\\udce4',\n 'owl':'\\ud83e\\udd89',\n 'ox':'\\ud83d\\udc02',\n 'package':'\\ud83d\\udce6',\n 'page_facing_up':'\\ud83d\\udcc4',\n 'page_with_curl':'\\ud83d\\udcc3',\n 'pager':'\\ud83d\\udcdf',\n 'paintbrush':'\\ud83d\\udd8c',\n 'palm_tree':'\\ud83c\\udf34',\n 'pancakes':'\\ud83e\\udd5e',\n 'panda_face':'\\ud83d\\udc3c',\n 'paperclip':'\\ud83d\\udcce',\n 'paperclips':'\\ud83d\\udd87',\n 'parasol_on_ground':'\\u26f1',\n 'parking':'\\ud83c\\udd7f\\ufe0f',\n 'part_alternation_mark':'\\u303d\\ufe0f',\n 'partly_sunny':'\\u26c5\\ufe0f',\n 'passenger_ship':'\\ud83d\\udef3',\n 'passport_control':'\\ud83d\\udec2',\n 'pause_button':'\\u23f8',\n 'peace_symbol':'\\u262e\\ufe0f',\n 'peach':'\\ud83c\\udf51',\n 'peanuts':'\\ud83e\\udd5c',\n 'pear':'\\ud83c\\udf50',\n 'pen':'\\ud83d\\udd8a',\n 'pencil2':'\\u270f\\ufe0f',\n 'penguin':'\\ud83d\\udc27',\n 'pensive':'\\ud83d\\ude14',\n 'performing_arts':'\\ud83c\\udfad',\n 'persevere':'\\ud83d\\ude23',\n 'person_fencing':'\\ud83e\\udd3a',\n 'pouting_woman':'\\ud83d\\ude4e',\n 'phone':'\\u260e\\ufe0f',\n 'pick':'\\u26cf',\n 'pig':'\\ud83d\\udc37',\n 'pig2':'\\ud83d\\udc16',\n 'pig_nose':'\\ud83d\\udc3d',\n 'pill':'\\ud83d\\udc8a',\n 'pineapple':'\\ud83c\\udf4d',\n 'ping_pong':'\\ud83c\\udfd3',\n 'pisces':'\\u2653\\ufe0f',\n 'pizza':'\\ud83c\\udf55',\n 'place_of_worship':'\\ud83d\\uded0',\n 'plate_with_cutlery':'\\ud83c\\udf7d',\n 'play_or_pause_button':'\\u23ef',\n 'point_down':'\\ud83d\\udc47',\n 'point_left':'\\ud83d\\udc48',\n 'point_right':'\\ud83d\\udc49',\n 'point_up':'\\u261d\\ufe0f',\n 'point_up_2':'\\ud83d\\udc46',\n 'police_car':'\\ud83d\\ude93',\n 'policewoman':'\\ud83d\\udc6e\\u2640\\ufe0f',\n 'poodle':'\\ud83d\\udc29',\n 'popcorn':'\\ud83c\\udf7f',\n 'post_office':'\\ud83c\\udfe3',\n 'postal_horn':'\\ud83d\\udcef',\n 'postbox':'\\ud83d\\udcee',\n 'potable_water':'\\ud83d\\udeb0',\n 'potato':'\\ud83e\\udd54',\n 'pouch':'\\ud83d\\udc5d',\n 'poultry_leg':'\\ud83c\\udf57',\n 'pound':'\\ud83d\\udcb7',\n 'rage':'\\ud83d\\ude21',\n 'pouting_cat':'\\ud83d\\ude3e',\n 'pouting_man':'\\ud83d\\ude4e\\u2642\\ufe0f',\n 'pray':'\\ud83d\\ude4f',\n 'prayer_beads':'\\ud83d\\udcff',\n 'pregnant_woman':'\\ud83e\\udd30',\n 'previous_track_button':'\\u23ee',\n 'prince':'\\ud83e\\udd34',\n 'princess':'\\ud83d\\udc78',\n 'printer':'\\ud83d\\udda8',\n 'purple_heart':'\\ud83d\\udc9c',\n 'purse':'\\ud83d\\udc5b',\n 'pushpin':'\\ud83d\\udccc',\n 'put_litter_in_its_place':'\\ud83d\\udeae',\n 'question':'\\u2753',\n 'rabbit':'\\ud83d\\udc30',\n 'rabbit2':'\\ud83d\\udc07',\n 'racehorse':'\\ud83d\\udc0e',\n 'racing_car':'\\ud83c\\udfce',\n 'radio':'\\ud83d\\udcfb',\n 'radio_button':'\\ud83d\\udd18',\n 'radioactive':'\\u2622\\ufe0f',\n 'railway_car':'\\ud83d\\ude83',\n 'railway_track':'\\ud83d\\udee4',\n 'rainbow':'\\ud83c\\udf08',\n 'rainbow_flag':'\\ud83c\\udff3\\ufe0f\\ud83c\\udf08',\n 'raised_back_of_hand':'\\ud83e\\udd1a',\n 'raised_hand_with_fingers_splayed':'\\ud83d\\udd90',\n 'raised_hands':'\\ud83d\\ude4c',\n 'raising_hand_woman':'\\ud83d\\ude4b',\n 'raising_hand_man':'\\ud83d\\ude4b\\u2642\\ufe0f',\n 'ram':'\\ud83d\\udc0f',\n 'ramen':'\\ud83c\\udf5c',\n 'rat':'\\ud83d\\udc00',\n 'record_button':'\\u23fa',\n 'recycle':'\\u267b\\ufe0f',\n 'red_circle':'\\ud83d\\udd34',\n 'registered':'\\u00ae\\ufe0f',\n 'relaxed':'\\u263a\\ufe0f',\n 'relieved':'\\ud83d\\ude0c',\n 'reminder_ribbon':'\\ud83c\\udf97',\n 'repeat':'\\ud83d\\udd01',\n 'repeat_one':'\\ud83d\\udd02',\n 'rescue_worker_helmet':'\\u26d1',\n 'restroom':'\\ud83d\\udebb',\n 'revolving_hearts':'\\ud83d\\udc9e',\n 'rewind':'\\u23ea',\n 'rhinoceros':'\\ud83e\\udd8f',\n 'ribbon':'\\ud83c\\udf80',\n 'rice':'\\ud83c\\udf5a',\n 'rice_ball':'\\ud83c\\udf59',\n 'rice_cracker':'\\ud83c\\udf58',\n 'rice_scene':'\\ud83c\\udf91',\n 'right_anger_bubble':'\\ud83d\\uddef',\n 'ring':'\\ud83d\\udc8d',\n 'robot':'\\ud83e\\udd16',\n 'rocket':'\\ud83d\\ude80',\n 'rofl':'\\ud83e\\udd23',\n 'roll_eyes':'\\ud83d\\ude44',\n 'roller_coaster':'\\ud83c\\udfa2',\n 'rooster':'\\ud83d\\udc13',\n 'rose':'\\ud83c\\udf39',\n 'rosette':'\\ud83c\\udff5',\n 'rotating_light':'\\ud83d\\udea8',\n 'round_pushpin':'\\ud83d\\udccd',\n 'rowing_man':'\\ud83d\\udea3',\n 'rowing_woman':'\\ud83d\\udea3\\u2640\\ufe0f',\n 'rugby_football':'\\ud83c\\udfc9',\n 'running_man':'\\ud83c\\udfc3',\n 'running_shirt_with_sash':'\\ud83c\\udfbd',\n 'running_woman':'\\ud83c\\udfc3\\u2640\\ufe0f',\n 'sa':'\\ud83c\\ude02\\ufe0f',\n 'sagittarius':'\\u2650\\ufe0f',\n 'sake':'\\ud83c\\udf76',\n 'sandal':'\\ud83d\\udc61',\n 'santa':'\\ud83c\\udf85',\n 'satellite':'\\ud83d\\udce1',\n 'saxophone':'\\ud83c\\udfb7',\n 'school':'\\ud83c\\udfeb',\n 'school_satchel':'\\ud83c\\udf92',\n 'scissors':'\\u2702\\ufe0f',\n 'scorpion':'\\ud83e\\udd82',\n 'scorpius':'\\u264f\\ufe0f',\n 'scream':'\\ud83d\\ude31',\n 'scream_cat':'\\ud83d\\ude40',\n 'scroll':'\\ud83d\\udcdc',\n 'seat':'\\ud83d\\udcba',\n 'secret':'\\u3299\\ufe0f',\n 'see_no_evil':'\\ud83d\\ude48',\n 'seedling':'\\ud83c\\udf31',\n 'selfie':'\\ud83e\\udd33',\n 'shallow_pan_of_food':'\\ud83e\\udd58',\n 'shamrock':'\\u2618\\ufe0f',\n 'shark':'\\ud83e\\udd88',\n 'shaved_ice':'\\ud83c\\udf67',\n 'sheep':'\\ud83d\\udc11',\n 'shell':'\\ud83d\\udc1a',\n 'shield':'\\ud83d\\udee1',\n 'shinto_shrine':'\\u26e9',\n 'ship':'\\ud83d\\udea2',\n 'shirt':'\\ud83d\\udc55',\n 'shopping':'\\ud83d\\udecd',\n 'shopping_cart':'\\ud83d\\uded2',\n 'shower':'\\ud83d\\udebf',\n 'shrimp':'\\ud83e\\udd90',\n 'signal_strength':'\\ud83d\\udcf6',\n 'six_pointed_star':'\\ud83d\\udd2f',\n 'ski':'\\ud83c\\udfbf',\n 'skier':'\\u26f7',\n 'skull':'\\ud83d\\udc80',\n 'skull_and_crossbones':'\\u2620\\ufe0f',\n 'sleeping':'\\ud83d\\ude34',\n 'sleeping_bed':'\\ud83d\\udecc',\n 'sleepy':'\\ud83d\\ude2a',\n 'slightly_frowning_face':'\\ud83d\\ude41',\n 'slightly_smiling_face':'\\ud83d\\ude42',\n 'slot_machine':'\\ud83c\\udfb0',\n 'small_airplane':'\\ud83d\\udee9',\n 'small_blue_diamond':'\\ud83d\\udd39',\n 'small_orange_diamond':'\\ud83d\\udd38',\n 'small_red_triangle':'\\ud83d\\udd3a',\n 'small_red_triangle_down':'\\ud83d\\udd3b',\n 'smile':'\\ud83d\\ude04',\n 'smile_cat':'\\ud83d\\ude38',\n 'smiley':'\\ud83d\\ude03',\n 'smiley_cat':'\\ud83d\\ude3a',\n 'smiling_imp':'\\ud83d\\ude08',\n 'smirk':'\\ud83d\\ude0f',\n 'smirk_cat':'\\ud83d\\ude3c',\n 'smoking':'\\ud83d\\udeac',\n 'snail':'\\ud83d\\udc0c',\n 'snake':'\\ud83d\\udc0d',\n 'sneezing_face':'\\ud83e\\udd27',\n 'snowboarder':'\\ud83c\\udfc2',\n 'snowflake':'\\u2744\\ufe0f',\n 'snowman':'\\u26c4\\ufe0f',\n 'snowman_with_snow':'\\u2603\\ufe0f',\n 'sob':'\\ud83d\\ude2d',\n 'soccer':'\\u26bd\\ufe0f',\n 'soon':'\\ud83d\\udd1c',\n 'sos':'\\ud83c\\udd98',\n 'sound':'\\ud83d\\udd09',\n 'space_invader':'\\ud83d\\udc7e',\n 'spades':'\\u2660\\ufe0f',\n 'spaghetti':'\\ud83c\\udf5d',\n 'sparkle':'\\u2747\\ufe0f',\n 'sparkler':'\\ud83c\\udf87',\n 'sparkles':'\\u2728',\n 'sparkling_heart':'\\ud83d\\udc96',\n 'speak_no_evil':'\\ud83d\\ude4a',\n 'speaker':'\\ud83d\\udd08',\n 'speaking_head':'\\ud83d\\udde3',\n 'speech_balloon':'\\ud83d\\udcac',\n 'speedboat':'\\ud83d\\udea4',\n 'spider':'\\ud83d\\udd77',\n 'spider_web':'\\ud83d\\udd78',\n 'spiral_calendar':'\\ud83d\\uddd3',\n 'spiral_notepad':'\\ud83d\\uddd2',\n 'spoon':'\\ud83e\\udd44',\n 'squid':'\\ud83e\\udd91',\n 'stadium':'\\ud83c\\udfdf',\n 'star':'\\u2b50\\ufe0f',\n 'star2':'\\ud83c\\udf1f',\n 'star_and_crescent':'\\u262a\\ufe0f',\n 'star_of_david':'\\u2721\\ufe0f',\n 'stars':'\\ud83c\\udf20',\n 'station':'\\ud83d\\ude89',\n 'statue_of_liberty':'\\ud83d\\uddfd',\n 'steam_locomotive':'\\ud83d\\ude82',\n 'stew':'\\ud83c\\udf72',\n 'stop_button':'\\u23f9',\n 'stop_sign':'\\ud83d\\uded1',\n 'stopwatch':'\\u23f1',\n 'straight_ruler':'\\ud83d\\udccf',\n 'strawberry':'\\ud83c\\udf53',\n 'stuck_out_tongue':'\\ud83d\\ude1b',\n 'stuck_out_tongue_closed_eyes':'\\ud83d\\ude1d',\n 'stuck_out_tongue_winking_eye':'\\ud83d\\ude1c',\n 'studio_microphone':'\\ud83c\\udf99',\n 'stuffed_flatbread':'\\ud83e\\udd59',\n 'sun_behind_large_cloud':'\\ud83c\\udf25',\n 'sun_behind_rain_cloud':'\\ud83c\\udf26',\n 'sun_behind_small_cloud':'\\ud83c\\udf24',\n 'sun_with_face':'\\ud83c\\udf1e',\n 'sunflower':'\\ud83c\\udf3b',\n 'sunglasses':'\\ud83d\\ude0e',\n 'sunny':'\\u2600\\ufe0f',\n 'sunrise':'\\ud83c\\udf05',\n 'sunrise_over_mountains':'\\ud83c\\udf04',\n 'surfing_man':'\\ud83c\\udfc4',\n 'surfing_woman':'\\ud83c\\udfc4\\u2640\\ufe0f',\n 'sushi':'\\ud83c\\udf63',\n 'suspension_railway':'\\ud83d\\ude9f',\n 'sweat':'\\ud83d\\ude13',\n 'sweat_drops':'\\ud83d\\udca6',\n 'sweat_smile':'\\ud83d\\ude05',\n 'sweet_potato':'\\ud83c\\udf60',\n 'swimming_man':'\\ud83c\\udfca',\n 'swimming_woman':'\\ud83c\\udfca\\u2640\\ufe0f',\n 'symbols':'\\ud83d\\udd23',\n 'synagogue':'\\ud83d\\udd4d',\n 'syringe':'\\ud83d\\udc89',\n 'taco':'\\ud83c\\udf2e',\n 'tada':'\\ud83c\\udf89',\n 'tanabata_tree':'\\ud83c\\udf8b',\n 'taurus':'\\u2649\\ufe0f',\n 'taxi':'\\ud83d\\ude95',\n 'tea':'\\ud83c\\udf75',\n 'telephone_receiver':'\\ud83d\\udcde',\n 'telescope':'\\ud83d\\udd2d',\n 'tennis':'\\ud83c\\udfbe',\n 'tent':'\\u26fa\\ufe0f',\n 'thermometer':'\\ud83c\\udf21',\n 'thinking':'\\ud83e\\udd14',\n 'thought_balloon':'\\ud83d\\udcad',\n 'ticket':'\\ud83c\\udfab',\n 'tickets':'\\ud83c\\udf9f',\n 'tiger':'\\ud83d\\udc2f',\n 'tiger2':'\\ud83d\\udc05',\n 'timer_clock':'\\u23f2',\n 'tipping_hand_man':'\\ud83d\\udc81\\u2642\\ufe0f',\n 'tired_face':'\\ud83d\\ude2b',\n 'tm':'\\u2122\\ufe0f',\n 'toilet':'\\ud83d\\udebd',\n 'tokyo_tower':'\\ud83d\\uddfc',\n 'tomato':'\\ud83c\\udf45',\n 'tongue':'\\ud83d\\udc45',\n 'top':'\\ud83d\\udd1d',\n 'tophat':'\\ud83c\\udfa9',\n 'tornado':'\\ud83c\\udf2a',\n 'trackball':'\\ud83d\\uddb2',\n 'tractor':'\\ud83d\\ude9c',\n 'traffic_light':'\\ud83d\\udea5',\n 'train':'\\ud83d\\ude8b',\n 'train2':'\\ud83d\\ude86',\n 'tram':'\\ud83d\\ude8a',\n 'triangular_flag_on_post':'\\ud83d\\udea9',\n 'triangular_ruler':'\\ud83d\\udcd0',\n 'trident':'\\ud83d\\udd31',\n 'triumph':'\\ud83d\\ude24',\n 'trolleybus':'\\ud83d\\ude8e',\n 'trophy':'\\ud83c\\udfc6',\n 'tropical_drink':'\\ud83c\\udf79',\n 'tropical_fish':'\\ud83d\\udc20',\n 'truck':'\\ud83d\\ude9a',\n 'trumpet':'\\ud83c\\udfba',\n 'tulip':'\\ud83c\\udf37',\n 'tumbler_glass':'\\ud83e\\udd43',\n 'turkey':'\\ud83e\\udd83',\n 'turtle':'\\ud83d\\udc22',\n 'tv':'\\ud83d\\udcfa',\n 'twisted_rightwards_arrows':'\\ud83d\\udd00',\n 'two_hearts':'\\ud83d\\udc95',\n 'two_men_holding_hands':'\\ud83d\\udc6c',\n 'two_women_holding_hands':'\\ud83d\\udc6d',\n 'u5272':'\\ud83c\\ude39',\n 'u5408':'\\ud83c\\ude34',\n 'u55b6':'\\ud83c\\ude3a',\n 'u6307':'\\ud83c\\ude2f\\ufe0f',\n 'u6708':'\\ud83c\\ude37\\ufe0f',\n 'u6709':'\\ud83c\\ude36',\n 'u6e80':'\\ud83c\\ude35',\n 'u7121':'\\ud83c\\ude1a\\ufe0f',\n 'u7533':'\\ud83c\\ude38',\n 'u7981':'\\ud83c\\ude32',\n 'u7a7a':'\\ud83c\\ude33',\n 'umbrella':'\\u2614\\ufe0f',\n 'unamused':'\\ud83d\\ude12',\n 'underage':'\\ud83d\\udd1e',\n 'unicorn':'\\ud83e\\udd84',\n 'unlock':'\\ud83d\\udd13',\n 'up':'\\ud83c\\udd99',\n 'upside_down_face':'\\ud83d\\ude43',\n 'v':'\\u270c\\ufe0f',\n 'vertical_traffic_light':'\\ud83d\\udea6',\n 'vhs':'\\ud83d\\udcfc',\n 'vibration_mode':'\\ud83d\\udcf3',\n 'video_camera':'\\ud83d\\udcf9',\n 'video_game':'\\ud83c\\udfae',\n 'violin':'\\ud83c\\udfbb',\n 'virgo':'\\u264d\\ufe0f',\n 'volcano':'\\ud83c\\udf0b',\n 'volleyball':'\\ud83c\\udfd0',\n 'vs':'\\ud83c\\udd9a',\n 'vulcan_salute':'\\ud83d\\udd96',\n 'walking_man':'\\ud83d\\udeb6',\n 'walking_woman':'\\ud83d\\udeb6\\u2640\\ufe0f',\n 'waning_crescent_moon':'\\ud83c\\udf18',\n 'waning_gibbous_moon':'\\ud83c\\udf16',\n 'warning':'\\u26a0\\ufe0f',\n 'wastebasket':'\\ud83d\\uddd1',\n 'watch':'\\u231a\\ufe0f',\n 'water_buffalo':'\\ud83d\\udc03',\n 'watermelon':'\\ud83c\\udf49',\n 'wave':'\\ud83d\\udc4b',\n 'wavy_dash':'\\u3030\\ufe0f',\n 'waxing_crescent_moon':'\\ud83c\\udf12',\n 'wc':'\\ud83d\\udebe',\n 'weary':'\\ud83d\\ude29',\n 'wedding':'\\ud83d\\udc92',\n 'weight_lifting_man':'\\ud83c\\udfcb\\ufe0f',\n 'weight_lifting_woman':'\\ud83c\\udfcb\\ufe0f\\u2640\\ufe0f',\n 'whale':'\\ud83d\\udc33',\n 'whale2':'\\ud83d\\udc0b',\n 'wheel_of_dharma':'\\u2638\\ufe0f',\n 'wheelchair':'\\u267f\\ufe0f',\n 'white_check_mark':'\\u2705',\n 'white_circle':'\\u26aa\\ufe0f',\n 'white_flag':'\\ud83c\\udff3\\ufe0f',\n 'white_flower':'\\ud83d\\udcae',\n 'white_large_square':'\\u2b1c\\ufe0f',\n 'white_medium_small_square':'\\u25fd\\ufe0f',\n 'white_medium_square':'\\u25fb\\ufe0f',\n 'white_small_square':'\\u25ab\\ufe0f',\n 'white_square_button':'\\ud83d\\udd33',\n 'wilted_flower':'\\ud83e\\udd40',\n 'wind_chime':'\\ud83c\\udf90',\n 'wind_face':'\\ud83c\\udf2c',\n 'wine_glass':'\\ud83c\\udf77',\n 'wink':'\\ud83d\\ude09',\n 'wolf':'\\ud83d\\udc3a',\n 'woman':'\\ud83d\\udc69',\n 'woman_artist':'\\ud83d\\udc69\\ud83c\\udfa8',\n 'woman_astronaut':'\\ud83d\\udc69\\ud83d\\ude80',\n 'woman_cartwheeling':'\\ud83e\\udd38\\u2640\\ufe0f',\n 'woman_cook':'\\ud83d\\udc69\\ud83c\\udf73',\n 'woman_facepalming':'\\ud83e\\udd26\\u2640\\ufe0f',\n 'woman_factory_worker':'\\ud83d\\udc69\\ud83c\\udfed',\n 'woman_farmer':'\\ud83d\\udc69\\ud83c\\udf3e',\n 'woman_firefighter':'\\ud83d\\udc69\\ud83d\\ude92',\n 'woman_health_worker':'\\ud83d\\udc69\\u2695\\ufe0f',\n 'woman_judge':'\\ud83d\\udc69\\u2696\\ufe0f',\n 'woman_juggling':'\\ud83e\\udd39\\u2640\\ufe0f',\n 'woman_mechanic':'\\ud83d\\udc69\\ud83d\\udd27',\n 'woman_office_worker':'\\ud83d\\udc69\\ud83d\\udcbc',\n 'woman_pilot':'\\ud83d\\udc69\\u2708\\ufe0f',\n 'woman_playing_handball':'\\ud83e\\udd3e\\u2640\\ufe0f',\n 'woman_playing_water_polo':'\\ud83e\\udd3d\\u2640\\ufe0f',\n 'woman_scientist':'\\ud83d\\udc69\\ud83d\\udd2c',\n 'woman_shrugging':'\\ud83e\\udd37\\u2640\\ufe0f',\n 'woman_singer':'\\ud83d\\udc69\\ud83c\\udfa4',\n 'woman_student':'\\ud83d\\udc69\\ud83c\\udf93',\n 'woman_teacher':'\\ud83d\\udc69\\ud83c\\udfeb',\n 'woman_technologist':'\\ud83d\\udc69\\ud83d\\udcbb',\n 'woman_with_turban':'\\ud83d\\udc73\\u2640\\ufe0f',\n 'womans_clothes':'\\ud83d\\udc5a',\n 'womans_hat':'\\ud83d\\udc52',\n 'women_wrestling':'\\ud83e\\udd3c\\u2640\\ufe0f',\n 'womens':'\\ud83d\\udeba',\n 'world_map':'\\ud83d\\uddfa',\n 'worried':'\\ud83d\\ude1f',\n 'wrench':'\\ud83d\\udd27',\n 'writing_hand':'\\u270d\\ufe0f',\n 'x':'\\u274c',\n 'yellow_heart':'\\ud83d\\udc9b',\n 'yen':'\\ud83d\\udcb4',\n 'yin_yang':'\\u262f\\ufe0f',\n 'yum':'\\ud83d\\ude0b',\n 'zap':'\\u26a1\\ufe0f',\n 'zipper_mouth_face':'\\ud83e\\udd10',\n 'zzz':'\\ud83d\\udca4',\n\n /* special emojis :P */\n 'octocat': '
',\n 'showdown': 'S'\n};\n\r\n/**\n * Created by Estevao on 31-05-2015.\n */\n\n/**\n * Showdown Converter class\n * @class\n * @param {object} [converterOptions]\n * @returns {Converter}\n */\nshowdown.Converter = function (converterOptions) {\n\n var\n /**\n * Options used by this converter\n * @private\n * @type {{}}\n */\n options = {},\n\n /**\n * Language extensions used by this converter\n * @private\n * @type {Array}\n */\n langExtensions = [],\n\n /**\n * Output modifiers extensions used by this converter\n * @private\n * @type {Array}\n */\n outputModifiers = [],\n\n /**\n * Event listeners\n * @private\n * @type {{}}\n */\n listeners = {},\n\n /**\n * The flavor set in this converter\n */\n setConvFlavor = setFlavor,\n\n /**\n * Metadata of the document\n * @type {{parsed: {}, raw: string, format: string}}\n */\n metadata = {\n parsed: {},\n raw: '',\n format: ''\n };\n\n _constructor();\n\n /**\n * Converter constructor\n * @private\n */\n function _constructor () {\n converterOptions = converterOptions || {};\n\n for (var gOpt in globalOptions) {\n if (globalOptions.hasOwnProperty(gOpt)) {\n options[gOpt] = globalOptions[gOpt];\n }\n }\n\n // Merge options\n if (typeof converterOptions === 'object') {\n for (var opt in converterOptions) {\n if (converterOptions.hasOwnProperty(opt)) {\n options[opt] = converterOptions[opt];\n }\n }\n } else {\n throw Error('Converter expects the passed parameter to be an object, but ' + typeof converterOptions +\n ' was passed instead.');\n }\n\n if (options.extensions) {\n showdown.helper.forEach(options.extensions, _parseExtension);\n }\n }\n\n /**\n * Parse extension\n * @param {*} ext\n * @param {string} [name='']\n * @private\n */\n function _parseExtension (ext, name) {\n\n name = name || null;\n // If it's a string, the extension was previously loaded\n if (showdown.helper.isString(ext)) {\n ext = showdown.helper.stdExtName(ext);\n name = ext;\n\n // LEGACY_SUPPORT CODE\n if (showdown.extensions[ext]) {\n console.warn('DEPRECATION WARNING: ' + ext + ' is an old extension that uses a deprecated loading method.' +\n 'Please inform the developer that the extension should be updated!');\n legacyExtensionLoading(showdown.extensions[ext], ext);\n return;\n // END LEGACY SUPPORT CODE\n\n } else if (!showdown.helper.isUndefined(extensions[ext])) {\n ext = extensions[ext];\n\n } else {\n throw Error('Extension \"' + ext + '\" could not be loaded. It was either not found or is not a valid extension.');\n }\n }\n\n if (typeof ext === 'function') {\n ext = ext();\n }\n\n if (!showdown.helper.isArray(ext)) {\n ext = [ext];\n }\n\n var validExt = validate(ext, name);\n if (!validExt.valid) {\n throw Error(validExt.error);\n }\n\n for (var i = 0; i < ext.length; ++i) {\n switch (ext[i].type) {\n\n case 'lang':\n langExtensions.push(ext[i]);\n break;\n\n case 'output':\n outputModifiers.push(ext[i]);\n break;\n }\n if (ext[i].hasOwnProperty('listeners')) {\n for (var ln in ext[i].listeners) {\n if (ext[i].listeners.hasOwnProperty(ln)) {\n listen(ln, ext[i].listeners[ln]);\n }\n }\n }\n }\n\n }\n\n /**\n * LEGACY_SUPPORT\n * @param {*} ext\n * @param {string} name\n */\n function legacyExtensionLoading (ext, name) {\n if (typeof ext === 'function') {\n ext = ext(new showdown.Converter());\n }\n if (!showdown.helper.isArray(ext)) {\n ext = [ext];\n }\n var valid = validate(ext, name);\n\n if (!valid.valid) {\n throw Error(valid.error);\n }\n\n for (var i = 0; i < ext.length; ++i) {\n switch (ext[i].type) {\n case 'lang':\n langExtensions.push(ext[i]);\n break;\n case 'output':\n outputModifiers.push(ext[i]);\n break;\n default:// should never reach here\n throw Error('Extension loader error: Type unrecognized!!!');\n }\n }\n }\n\n /**\n * Listen to an event\n * @param {string} name\n * @param {function} callback\n */\n function listen (name, callback) {\n if (!showdown.helper.isString(name)) {\n throw Error('Invalid argument in converter.listen() method: name must be a string, but ' + typeof name + ' given');\n }\n\n if (typeof callback !== 'function') {\n throw Error('Invalid argument in converter.listen() method: callback must be a function, but ' + typeof callback + ' given');\n }\n\n if (!listeners.hasOwnProperty(name)) {\n listeners[name] = [];\n }\n listeners[name].push(callback);\n }\n\n function rTrimInputText (text) {\n var rsp = text.match(/^\\s*/)[0].length,\n rgx = new RegExp('^\\\\s{0,' + rsp + '}', 'gm');\n return text.replace(rgx, '');\n }\n\n /**\n * Dispatch an event\n * @private\n * @param {string} evtName Event name\n * @param {string} text Text\n * @param {{}} options Converter Options\n * @param {{}} globals\n * @returns {string}\n */\n this._dispatch = function dispatch (evtName, text, options, globals) {\n if (listeners.hasOwnProperty(evtName)) {\n for (var ei = 0; ei < listeners[evtName].length; ++ei) {\n var nText = listeners[evtName][ei](evtName, text, this, options, globals);\n if (nText && typeof nText !== 'undefined') {\n text = nText;\n }\n }\n }\n return text;\n };\n\n /**\n * Listen to an event\n * @param {string} name\n * @param {function} callback\n * @returns {showdown.Converter}\n */\n this.listen = function (name, callback) {\n listen(name, callback);\n return this;\n };\n\n /**\n * Converts a markdown string into HTML\n * @param {string} text\n * @returns {*}\n */\n this.makeHtml = function (text) {\n //check if text is not falsy\n if (!text) {\n return text;\n }\n\n var globals = {\n gHtmlBlocks: [],\n gHtmlMdBlocks: [],\n gHtmlSpans: [],\n gUrls: {},\n gTitles: {},\n gDimensions: {},\n gListLevel: 0,\n hashLinkCounts: {},\n langExtensions: langExtensions,\n outputModifiers: outputModifiers,\n converter: this,\n ghCodeBlocks: [],\n metadata: {\n parsed: {},\n raw: '',\n format: ''\n }\n };\n\n // This lets us use ¨ trema as an escape char to avoid md5 hashes\n // The choice of character is arbitrary; anything that isn't\n // magic in Markdown will work.\n text = text.replace(/¨/g, '¨T');\n\n // Replace $ with ¨D\n // RegExp interprets $ as a special character\n // when it's in a replacement string\n text = text.replace(/\\$/g, '¨D');\n\n // Standardize line endings\n text = text.replace(/\\r\\n/g, '\\n'); // DOS to Unix\n text = text.replace(/\\r/g, '\\n'); // Mac to Unix\n\n // Stardardize line spaces\n text = text.replace(/\\u00A0/g, ' ');\n\n if (options.smartIndentationFix) {\n text = rTrimInputText(text);\n }\n\n // Make sure text begins and ends with a couple of newlines:\n text = '\\n\\n' + text + '\\n\\n';\n\n // detab\n text = showdown.subParser('detab')(text, options, globals);\n\n /**\n * Strip any lines consisting only of spaces and tabs.\n * This makes subsequent regexs easier to write, because we can\n * match consecutive blank lines with /\\n+/ instead of something\n * contorted like /[ \\t]*\\n+/\n */\n text = text.replace(/^[ \\t]+$/mg, '');\n\n //run languageExtensions\n showdown.helper.forEach(langExtensions, function (ext) {\n text = showdown.subParser('runExtension')(ext, text, options, globals);\n });\n\n // run the sub parsers\n text = showdown.subParser('metadata')(text, options, globals);\n text = showdown.subParser('hashPreCodeTags')(text, options, globals);\n text = showdown.subParser('githubCodeBlocks')(text, options, globals);\n text = showdown.subParser('hashHTMLBlocks')(text, options, globals);\n text = showdown.subParser('hashCodeTags')(text, options, globals);\n text = showdown.subParser('stripLinkDefinitions')(text, options, globals);\n text = showdown.subParser('blockGamut')(text, options, globals);\n text = showdown.subParser('unhashHTMLSpans')(text, options, globals);\n text = showdown.subParser('unescapeSpecialChars')(text, options, globals);\n\n // attacklab: Restore dollar signs\n text = text.replace(/¨D/g, '$$');\n\n // attacklab: Restore tremas\n text = text.replace(/¨T/g, '¨');\n\n // render a complete html document instead of a partial if the option is enabled\n text = showdown.subParser('completeHTMLDocument')(text, options, globals);\n\n // Run output modifiers\n showdown.helper.forEach(outputModifiers, function (ext) {\n text = showdown.subParser('runExtension')(ext, text, options, globals);\n });\n\n // update metadata\n metadata = globals.metadata;\n return text;\n };\n\n /**\n * Converts an HTML string into a markdown string\n * @param src\n * @param [HTMLParser] A WHATWG DOM and HTML parser, such as JSDOM. If none is supplied, window.document will be used.\n * @returns {string}\n */\n this.makeMarkdown = this.makeMd = function (src, HTMLParser) {\n\n // replace \\r\\n with \\n\n src = src.replace(/\\r\\n/g, '\\n');\n src = src.replace(/\\r/g, '\\n'); // old macs\n\n // due to an edge case, we need to find this: > <\n // to prevent removing of non silent white spaces\n // ex: this is sparta\n src = src.replace(/>[ \\t]+, '>¨NBSP;<');\n\n if (!HTMLParser) {\n if (window && window.document) {\n HTMLParser = window.document;\n } else {\n throw new Error('HTMLParser is undefined. If in a webworker or nodejs environment, you need to provide a WHATWG DOM and HTML such as JSDOM');\n }\n }\n\n var doc = HTMLParser.createElement('div');\n doc.innerHTML = src;\n\n var globals = {\n preList: substitutePreCodeTags(doc)\n };\n\n // remove all newlines and collapse spaces\n clean(doc);\n\n // some stuff, like accidental reference links must now be escaped\n // TODO\n // doc.innerHTML = doc.innerHTML.replace(/\\[[\\S\\t ]]/);\n\n var nodes = doc.childNodes,\n mdDoc = '';\n\n for (var i = 0; i < nodes.length; i++) {\n mdDoc += showdown.subParser('makeMarkdown.node')(nodes[i], globals);\n }\n\n function clean (node) {\n for (var n = 0; n < node.childNodes.length; ++n) {\n var child = node.childNodes[n];\n if (child.nodeType === 3) {\n if (!/\\S/.test(child.nodeValue)) {\n node.removeChild(child);\n --n;\n } else {\n child.nodeValue = child.nodeValue.split('\\n').join(' ');\n child.nodeValue = child.nodeValue.replace(/(\\s)+/g, '$1');\n }\n } else if (child.nodeType === 1) {\n clean(child);\n }\n }\n }\n\n // find all pre tags and replace contents with placeholder\n // we need this so that we can remove all indentation from html\n // to ease up parsing\n function substitutePreCodeTags (doc) {\n\n var pres = doc.querySelectorAll('pre'),\n presPH = [];\n\n for (var i = 0; i < pres.length; ++i) {\n\n if (pres[i].childElementCount === 1 && pres[i].firstChild.tagName.toLowerCase() === 'code') {\n var content = pres[i].firstChild.innerHTML.trim(),\n language = pres[i].firstChild.getAttribute('data-language') || '';\n\n // if data-language attribute is not defined, then we look for class language-*\n if (language === '') {\n var classes = pres[i].firstChild.className.split(' ');\n for (var c = 0; c < classes.length; ++c) {\n var matches = classes[c].match(/^language-(.+)$/);\n if (matches !== null) {\n language = matches[1];\n break;\n }\n }\n }\n\n // unescape html entities in content\n content = showdown.helper.unescapeHTMLEntities(content);\n\n presPH.push(content);\n pres[i].outerHTML = ' ';\n } else {\n presPH.push(pres[i].innerHTML);\n pres[i].innerHTML = '';\n pres[i].setAttribute('prenum', i.toString());\n }\n }\n return presPH;\n }\n\n return mdDoc;\n };\n\n /**\n * Set an option of this Converter instance\n * @param {string} key\n * @param {*} value\n */\n this.setOption = function (key, value) {\n options[key] = value;\n };\n\n /**\n * Get the option of this Converter instance\n * @param {string} key\n * @returns {*}\n */\n this.getOption = function (key) {\n return options[key];\n };\n\n /**\n * Get the options of this Converter instance\n * @returns {{}}\n */\n this.getOptions = function () {\n return options;\n };\n\n /**\n * Add extension to THIS converter\n * @param {{}} extension\n * @param {string} [name=null]\n */\n this.addExtension = function (extension, name) {\n name = name || null;\n _parseExtension(extension, name);\n };\n\n /**\n * Use a global registered extension with THIS converter\n * @param {string} extensionName Name of the previously registered extension\n */\n this.useExtension = function (extensionName) {\n _parseExtension(extensionName);\n };\n\n /**\n * Set the flavor THIS converter should use\n * @param {string} name\n */\n this.setFlavor = function (name) {\n if (!flavor.hasOwnProperty(name)) {\n throw Error(name + ' flavor was not found');\n }\n var preset = flavor[name];\n setConvFlavor = name;\n for (var option in preset) {\n if (preset.hasOwnProperty(option)) {\n options[option] = preset[option];\n }\n }\n };\n\n /**\n * Get the currently set flavor of this converter\n * @returns {string}\n */\n this.getFlavor = function () {\n return setConvFlavor;\n };\n\n /**\n * Remove an extension from THIS converter.\n * Note: This is a costly operation. It's better to initialize a new converter\n * and specify the extensions you wish to use\n * @param {Array} extension\n */\n this.removeExtension = function (extension) {\n if (!showdown.helper.isArray(extension)) {\n extension = [extension];\n }\n for (var a = 0; a < extension.length; ++a) {\n var ext = extension[a];\n for (var i = 0; i < langExtensions.length; ++i) {\n if (langExtensions[i] === ext) {\n langExtensions[i].splice(i, 1);\n }\n }\n for (var ii = 0; ii < outputModifiers.length; ++i) {\n if (outputModifiers[ii] === ext) {\n outputModifiers[ii].splice(i, 1);\n }\n }\n }\n };\n\n /**\n * Get all extension of THIS converter\n * @returns {{language: Array, output: Array}}\n */\n this.getAllExtensions = function () {\n return {\n language: langExtensions,\n output: outputModifiers\n };\n };\n\n /**\n * Get the metadata of the previously parsed document\n * @param raw\n * @returns {string|{}}\n */\n this.getMetadata = function (raw) {\n if (raw) {\n return metadata.raw;\n } else {\n return metadata.parsed;\n }\n };\n\n /**\n * Get the metadata format of the previously parsed document\n * @returns {string}\n */\n this.getMetadataFormat = function () {\n return metadata.format;\n };\n\n /**\n * Private: set a single key, value metadata pair\n * @param {string} key\n * @param {string} value\n */\n this._setMetadataPair = function (key, value) {\n metadata.parsed[key] = value;\n };\n\n /**\n * Private: set metadata format\n * @param {string} format\n */\n this._setMetadataFormat = function (format) {\n metadata.format = format;\n };\n\n /**\n * Private: set metadata raw text\n * @param {string} raw\n */\n this._setMetadataRaw = function (raw) {\n metadata.raw = raw;\n };\n};\n\r\n/**\n * Turn Markdown link shortcuts into XHTML tags.\n */\nshowdown.subParser('anchors', function (text, options, globals) {\n\n text = globals.converter._dispatch('anchors.before', text, options, globals);\n\n var writeAnchorTag = function (wholeMatch, linkText, linkId, url, m5, m6, title) {\n if (showdown.helper.isUndefined(title)) {\n title = '';\n }\n linkId = linkId.toLowerCase();\n\n // Special case for explicit empty url\n if (wholeMatch.search(/\\(\\s*>? ?(['\"].*['\"])?\\)$/m) > -1) {\n url = '';\n } else if (!url) {\n if (!linkId) {\n // lower-case and turn embedded newlines into spaces\n linkId = linkText.toLowerCase().replace(/ ?\\n/g, ' ');\n }\n url = '#' + linkId;\n\n if (!showdown.helper.isUndefined(globals.gUrls[linkId])) {\n url = globals.gUrls[linkId];\n if (!showdown.helper.isUndefined(globals.gTitles[linkId])) {\n title = globals.gTitles[linkId];\n }\n } else {\n return wholeMatch;\n }\n }\n\n //url = showdown.helper.escapeCharacters(url, '*_', false); // replaced line to improve performance\n url = url.replace(showdown.helper.regexes.asteriskDashAndColon, showdown.helper.escapeCharactersCallback);\n\n var result = '' + linkText + '';\n\n return result;\n };\n\n // First, handle reference-style links: [link text] [id]\n text = text.replace(/\\[((?:\\[[^\\]]*]|[^\\[\\]])*)] ?(?:\\n *)?\\[(.*?)]()()()()/g, writeAnchorTag);\n\n // Next, inline-style links: [link text](url \"optional title\")\n // cases with crazy urls like ./image/cat1).png\n text = text.replace(/\\[((?:\\[[^\\]]*]|[^\\[\\]])*)]()[ \\t]*\\([ \\t]?<([^>]*)>(?:[ \\t]*(([\"'])([^\"]*?)\\5))?[ \\t]?\\)/g,\n writeAnchorTag);\n\n // normal cases\n text = text.replace(/\\[((?:\\[[^\\]]*]|[^\\[\\]])*)]()[ \\t]*\\([ \\t]?([\\S]+?(?:\\([\\S]*?\\)[\\S]*?)?)>?(?:[ \\t]*(([\"'])([^\"]*?)\\5))?[ \\t]?\\)/g,\n writeAnchorTag);\n\n // handle reference-style shortcuts: [link text]\n // These must come last in case you've also got [link test][1]\n // or [link test](/foo)\n text = text.replace(/\\[([^\\[\\]]+)]()()()()()/g, writeAnchorTag);\n\n // Lastly handle GithubMentions if option is enabled\n if (options.ghMentions) {\n text = text.replace(/(^|\\s)(\\\\)?(@([a-z\\d]+(?:[a-z\\d.-]+?[a-z\\d]+)*))/gmi, function (wm, st, escape, mentions, username) {\n if (escape === '\\\\') {\n return st + mentions;\n }\n\n //check if options.ghMentionsLink is a string\n if (!showdown.helper.isString(options.ghMentionsLink)) {\n throw new Error('ghMentionsLink option must be a string');\n }\n var lnk = options.ghMentionsLink.replace(/\\{u}/g, username),\n target = '';\n if (options.openLinksInNewWindow) {\n target = ' rel=\"noopener noreferrer\" target=\"¨E95Eblank\"';\n }\n return st + '' + mentions + '';\n });\n }\n\n text = globals.converter._dispatch('anchors.after', text, options, globals);\n return text;\n});\n\r\n// url allowed chars [a-z\\d_.~:/?#[]@!$&'()*+,;=-]\n\nvar simpleURLRegex = /([*~_]+|\\b)(((https?|ftp|dict):\\/\\/|www\\.)[^'\">\\s]+?\\.[^'\">\\s]+?)()(\\1)?(?=\\s|$)(?![\"<>])/gi,\n simpleURLRegex2 = /([*~_]+|\\b)(((https?|ftp|dict):\\/\\/|www\\.)[^'\">\\s]+\\.[^'\">\\s]+?)([.!?,()\\[\\]])?(\\1)?(?=\\s|$)(?![\"<>])/gi,\n delimUrlRegex = /()<(((https?|ftp|dict):\\/\\/|www\\.)[^'\">\\s]+)()>()/gi,\n simpleMailRegex = /(^|\\s)(?:mailto:)?([A-Za-z0-9!#$%&'*+-/=?^_`{|}~.]+@[-a-z0-9]+(\\.[-a-z0-9]+)*\\.[a-z]+)(?=$|\\s)/gmi,\n delimMailRegex = /<()(?:mailto:)?([-.\\w]+@[-a-z0-9]+(\\.[-a-z0-9]+)*\\.[a-z]+)>/gi,\n\n replaceLink = function (options) {\n return function (wm, leadingMagicChars, link, m2, m3, trailingPunctuation, trailingMagicChars) {\n link = link.replace(showdown.helper.regexes.asteriskDashAndColon, showdown.helper.escapeCharactersCallback);\n var lnkTxt = link,\n append = '',\n target = '',\n lmc = leadingMagicChars || '',\n tmc = trailingMagicChars || '';\n if (/^www\\./i.test(link)) {\n link = link.replace(/^www\\./i, 'http://www.');\n }\n if (options.excludeTrailingPunctuationFromURLs && trailingPunctuation) {\n append = trailingPunctuation;\n }\n if (options.openLinksInNewWindow) {\n target = ' rel=\"noopener noreferrer\" target=\"¨E95Eblank\"';\n }\n return lmc + '' + lnkTxt + '' + append + tmc;\n };\n },\n\n replaceMail = function (options, globals) {\n return function (wholeMatch, b, mail) {\n var href = 'mailto:';\n b = b || '';\n mail = showdown.subParser('unescapeSpecialChars')(mail, options, globals);\n if (options.encodeEmails) {\n href = showdown.helper.encodeEmailAddress(href + mail);\n mail = showdown.helper.encodeEmailAddress(mail);\n } else {\n href = href + mail;\n }\n return b + '' + mail + '';\n };\n };\n\nshowdown.subParser('autoLinks', function (text, options, globals) {\n\n text = globals.converter._dispatch('autoLinks.before', text, options, globals);\n\n text = text.replace(delimUrlRegex, replaceLink(options));\n text = text.replace(delimMailRegex, replaceMail(options, globals));\n\n text = globals.converter._dispatch('autoLinks.after', text, options, globals);\n\n return text;\n});\n\nshowdown.subParser('simplifiedAutoLinks', function (text, options, globals) {\n\n if (!options.simplifiedAutoLink) {\n return text;\n }\n\n text = globals.converter._dispatch('simplifiedAutoLinks.before', text, options, globals);\n\n if (options.excludeTrailingPunctuationFromURLs) {\n text = text.replace(simpleURLRegex2, replaceLink(options));\n } else {\n text = text.replace(simpleURLRegex, replaceLink(options));\n }\n text = text.replace(simpleMailRegex, replaceMail(options, globals));\n\n text = globals.converter._dispatch('simplifiedAutoLinks.after', text, options, globals);\n\n return text;\n});\n\r\n/**\n * These are all the transformations that form block-level\n * tags like paragraphs, headers, and list items.\n */\nshowdown.subParser('blockGamut', function (text, options, globals) {\n\n text = globals.converter._dispatch('blockGamut.before', text, options, globals);\n\n // we parse blockquotes first so that we can have headings and hrs\n // inside blockquotes\n text = showdown.subParser('blockQuotes')(text, options, globals);\n text = showdown.subParser('headers')(text, options, globals);\n\n // Do Horizontal Rules:\n text = showdown.subParser('horizontalRule')(text, options, globals);\n\n text = showdown.subParser('lists')(text, options, globals);\n text = showdown.subParser('codeBlocks')(text, options, globals);\n text = showdown.subParser('tables')(text, options, globals);\n\n // We already ran _HashHTMLBlocks() before, in Markdown(), but that\n // was to escape raw HTML in the original Markdown source. This time,\n // we're escaping the markup we've just created, so that we don't wrap\n // tags around block-level tags.\n text = showdown.subParser('hashHTMLBlocks')(text, options, globals);\n text = showdown.subParser('paragraphs')(text, options, globals);\n\n text = globals.converter._dispatch('blockGamut.after', text, options, globals);\n\n return text;\n});\n\r\nshowdown.subParser('blockQuotes', function (text, options, globals) {\n\n text = globals.converter._dispatch('blockQuotes.before', text, options, globals);\n\n // add a couple extra lines after the text and endtext mark\n text = text + '\\n\\n';\n\n var rgx = /(^ {0,3}>[ \\t]?.+\\n(.+\\n)*\\n*)+/gm;\n\n if (options.splitAdjacentBlockquotes) {\n rgx = /^ {0,3}>[\\s\\S]*?(?:\\n\\n)/gm;\n }\n\n text = text.replace(rgx, function (bq) {\n // attacklab: hack around Konqueror 3.5.4 bug:\n // \"----------bug\".replace(/^-/g,\"\") == \"bug\"\n bq = bq.replace(/^[ \\t]*>[ \\t]?/gm, ''); // trim one level of quoting\n\n // attacklab: clean up hack\n bq = bq.replace(/¨0/g, '');\n\n bq = bq.replace(/^[ \\t]+$/gm, ''); // trim whitespace-only lines\n bq = showdown.subParser('githubCodeBlocks')(bq, options, globals);\n bq = showdown.subParser('blockGamut')(bq, options, globals); // recurse\n\n bq = bq.replace(/(^|\\n)/g, '$1 ');\n // These leading spaces screw with
content, so we need to fix that:\n bq = bq.replace(/(\\s*[^\\r]+?<\\/pre>)/gm, function (wholeMatch, m1) {\n var pre = m1;\n // attacklab: hack around Konqueror 3.5.4 bug:\n pre = pre.replace(/^ /mg, '¨0');\n pre = pre.replace(/¨0/g, '');\n return pre;\n });\n\n return showdown.subParser('hashBlock')('\\n' + bq + '\\n
', options, globals);\n });\n\n text = globals.converter._dispatch('blockQuotes.after', text, options, globals);\n return text;\n});\n\r\n/**\n * Process Markdown `` blocks.\n */\nshowdown.subParser('codeBlocks', function (text, options, globals) {\n\n text = globals.converter._dispatch('codeBlocks.before', text, options, globals);\n\n // sentinel workarounds for lack of \\A and \\Z, safari\\khtml bug\n text += '¨0';\n\n var pattern = /(?:\\n\\n|^)((?:(?:[ ]{4}|\\t).*\\n+)+)(\\n*[ ]{0,3}[^ \\t\\n]|(?=¨0))/g;\n text = text.replace(pattern, function (wholeMatch, m1, m2) {\n var codeblock = m1,\n nextChar = m2,\n end = '\\n';\n\n codeblock = showdown.subParser('outdent')(codeblock, options, globals);\n codeblock = showdown.subParser('encodeCode')(codeblock, options, globals);\n codeblock = showdown.subParser('detab')(codeblock, options, globals);\n codeblock = codeblock.replace(/^\\n+/g, ''); // trim leading newlines\n codeblock = codeblock.replace(/\\n+$/g, ''); // trim trailing newlines\n\n if (options.omitExtraWLInCodeBlocks) {\n end = '';\n }\n\n codeblock = '' + codeblock + end + '
';\n\n return showdown.subParser('hashBlock')(codeblock, options, globals) + nextChar;\n });\n\n // strip sentinel\n text = text.replace(/¨0/, '');\n\n text = globals.converter._dispatch('codeBlocks.after', text, options, globals);\n return text;\n});\n\r\n/**\n *\n * * Backtick quotes are used for spans.\n *\n * * You can use multiple backticks as the delimiters if you want to\n * include literal backticks in the code span. So, this input:\n *\n * Just type ``foo `bar` baz`` at the prompt.\n *\n * Will translate to:\n *\n * Just type foo `bar` baz at the prompt.
\n *\n * There's no arbitrary limit to the number of backticks you\n * can use as delimters. If you need three consecutive backticks\n * in your code, use four for delimiters, etc.\n *\n * * You can use spaces to get literal backticks at the edges:\n *\n * ... type `` `bar` `` ...\n *\n * Turns to:\n *\n * ... type `bar` ...\n */\nshowdown.subParser('codeSpans', function (text, options, globals) {\n\n text = globals.converter._dispatch('codeSpans.before', text, options, globals);\n\n if (typeof text === 'undefined') {\n text = '';\n }\n text = text.replace(/(^|[^\\\\])(`+)([^\\r]*?[^`])\\2(?!`)/gm,\n function (wholeMatch, m1, m2, m3) {\n var c = m3;\n c = c.replace(/^([ \\t]*)/g, '');\t// leading whitespace\n c = c.replace(/[ \\t]*$/g, '');\t// trailing whitespace\n c = showdown.subParser('encodeCode')(c, options, globals);\n c = m1 + '' + c + '';\n c = showdown.subParser('hashHTMLSpans')(c, options, globals);\n return c;\n }\n );\n\n text = globals.converter._dispatch('codeSpans.after', text, options, globals);\n return text;\n});\n\r\n/**\n * Create a full HTML document from the processed markdown\n */\nshowdown.subParser('completeHTMLDocument', function (text, options, globals) {\n\n if (!options.completeHTMLDocument) {\n return text;\n }\n\n text = globals.converter._dispatch('completeHTMLDocument.before', text, options, globals);\n\n var doctype = 'html',\n doctypeParsed = '\\n',\n title = '',\n charset = '\\n',\n lang = '',\n metadata = '';\n\n if (typeof globals.metadata.parsed.doctype !== 'undefined') {\n doctypeParsed = '\\n';\n doctype = globals.metadata.parsed.doctype.toString().toLowerCase();\n if (doctype === 'html' || doctype === 'html5') {\n charset = '';\n }\n }\n\n for (var meta in globals.metadata.parsed) {\n if (globals.metadata.parsed.hasOwnProperty(meta)) {\n switch (meta.toLowerCase()) {\n case 'doctype':\n break;\n\n case 'title':\n title = '' + globals.metadata.parsed.title + ' \\n';\n break;\n\n case 'charset':\n if (doctype === 'html' || doctype === 'html5') {\n charset = '\\n';\n } else {\n charset = '\\n';\n }\n break;\n\n case 'language':\n case 'lang':\n lang = ' lang=\"' + globals.metadata.parsed[meta] + '\"';\n metadata += '\\n';\n break;\n\n default:\n metadata += '\\n';\n }\n }\n }\n\n text = doctypeParsed + '\\n\\n' + title + charset + metadata + '\\n\\n' + text.trim() + '\\n\\n';\n\n text = globals.converter._dispatch('completeHTMLDocument.after', text, options, globals);\n return text;\n});\n\r\n/**\n * Convert all tabs to spaces\n */\nshowdown.subParser('detab', function (text, options, globals) {\n text = globals.converter._dispatch('detab.before', text, options, globals);\n\n // expand first n-1 tabs\n text = text.replace(/\\t(?=\\t)/g, ' '); // g_tab_width\n\n // replace the nth with two sentinels\n text = text.replace(/\\t/g, '¨A¨B');\n\n // use the sentinel to anchor our regex so it doesn't explode\n text = text.replace(/¨B(.+?)¨A/g, function (wholeMatch, m1) {\n var leadingText = m1,\n numSpaces = 4 - leadingText.length % 4; // g_tab_width\n\n // there *must* be a better way to do this:\n for (var i = 0; i < numSpaces; i++) {\n leadingText += ' ';\n }\n\n return leadingText;\n });\n\n // clean up sentinels\n text = text.replace(/¨A/g, ' '); // g_tab_width\n text = text.replace(/¨B/g, '');\n\n text = globals.converter._dispatch('detab.after', text, options, globals);\n return text;\n});\n\r\nshowdown.subParser('ellipsis', function (text, options, globals) {\n\n text = globals.converter._dispatch('ellipsis.before', text, options, globals);\n\n text = text.replace(/\\.\\.\\./g, '…');\n\n text = globals.converter._dispatch('ellipsis.after', text, options, globals);\n\n return text;\n});\n\r\n/**\n * Turn emoji codes into emojis\n *\n * List of supported emojis: https://github.com/showdownjs/showdown/wiki/Emojis\n */\nshowdown.subParser('emoji', function (text, options, globals) {\n\n if (!options.emoji) {\n return text;\n }\n\n text = globals.converter._dispatch('emoji.before', text, options, globals);\n\n var emojiRgx = /:([\\S]+?):/g;\n\n text = text.replace(emojiRgx, function (wm, emojiCode) {\n if (showdown.helper.emojis.hasOwnProperty(emojiCode)) {\n return showdown.helper.emojis[emojiCode];\n }\n return wm;\n });\n\n text = globals.converter._dispatch('emoji.after', text, options, globals);\n\n return text;\n});\n\r\n/**\n * Smart processing for ampersands and angle brackets that need to be encoded.\n */\nshowdown.subParser('encodeAmpsAndAngles', function (text, options, globals) {\n text = globals.converter._dispatch('encodeAmpsAndAngles.before', text, options, globals);\n\n // Ampersand-encoding based entirely on Nat Irons's Amputator MT plugin:\n // http://bumppo.net/projects/amputator/\n text = text.replace(/&(?!#?[xX]?(?:[0-9a-fA-F]+|\\w+);)/g, '&');\n\n // Encode naked <'s\n text = text.replace(/<(?![a-z\\/?$!])/gi, '<');\n\n // Encode <\n text = text.replace(/\n text = text.replace(/>/g, '>');\n\n text = globals.converter._dispatch('encodeAmpsAndAngles.after', text, options, globals);\n return text;\n});\n\r\n/**\n * Returns the string, with after processing the following backslash escape sequences.\n *\n * attacklab: The polite way to do this is with the new escapeCharacters() function:\n *\n * text = escapeCharacters(text,\"\\\\\",true);\n * text = escapeCharacters(text,\"`*_{}[]()>#+-.!\",true);\n *\n * ...but we're sidestepping its use of the (slow) RegExp constructor\n * as an optimization for Firefox. This function gets called a LOT.\n */\nshowdown.subParser('encodeBackslashEscapes', function (text, options, globals) {\n text = globals.converter._dispatch('encodeBackslashEscapes.before', text, options, globals);\n\n text = text.replace(/\\\\(\\\\)/g, showdown.helper.escapeCharactersCallback);\n text = text.replace(/\\\\([`*_{}\\[\\]()>#+.!~=|-])/g, showdown.helper.escapeCharactersCallback);\n\n text = globals.converter._dispatch('encodeBackslashEscapes.after', text, options, globals);\n return text;\n});\n\r\n/**\n * Encode/escape certain characters inside Markdown code runs.\n * The point is that in code, these characters are literals,\n * and lose their special Markdown meanings.\n */\nshowdown.subParser('encodeCode', function (text, options, globals) {\n\n text = globals.converter._dispatch('encodeCode.before', text, options, globals);\n\n // Encode all ampersands; HTML entities are not\n // entities within a Markdown code span.\n text = text\n .replace(/&/g, '&')\n // Do the angle bracket song and dance:\n .replace(//g, '>')\n // Now, escape characters that are magic in Markdown:\n .replace(/([*_{}\\[\\]\\\\=~-])/g, showdown.helper.escapeCharactersCallback);\n\n text = globals.converter._dispatch('encodeCode.after', text, options, globals);\n return text;\n});\n\r\n/**\n * Within tags -- meaning between < and > -- encode [\\ ` * _ ~ =] so they\n * don't conflict with their use in Markdown for code, italics and strong.\n */\nshowdown.subParser('escapeSpecialCharsWithinTagAttributes', function (text, options, globals) {\n text = globals.converter._dispatch('escapeSpecialCharsWithinTagAttributes.before', text, options, globals);\n\n // Build a regex to find HTML tags.\n var tags = /<\\/?[a-z\\d_:-]+(?:[\\s]+[\\s\\S]+?)?>/gi,\n comments = /-]|-[^>])(?:[^-]|-[^-])*)--)>/gi;\n\n text = text.replace(tags, function (wholeMatch) {\n return wholeMatch\n .replace(/(.)<\\/?code>(?=.)/g, '$1`')\n .replace(/([\\\\`*_~=|])/g, showdown.helper.escapeCharactersCallback);\n });\n\n text = text.replace(comments, function (wholeMatch) {\n return wholeMatch\n .replace(/([\\\\`*_~=|])/g, showdown.helper.escapeCharactersCallback);\n });\n\n text = globals.converter._dispatch('escapeSpecialCharsWithinTagAttributes.after', text, options, globals);\n return text;\n});\n\r\n/**\n * Handle github codeblocks prior to running HashHTML so that\n * HTML contained within the codeblock gets escaped properly\n * Example:\n * ```ruby\n * def hello_world(x)\n * puts \"Hello, #{x}\"\n * end\n * ```\n */\nshowdown.subParser('githubCodeBlocks', function (text, options, globals) {\n\n // early exit if option is not enabled\n if (!options.ghCodeBlocks) {\n return text;\n }\n\n text = globals.converter._dispatch('githubCodeBlocks.before', text, options, globals);\n\n text += '¨0';\n\n text = text.replace(/(?:^|\\n)(?: {0,3})(```+|~~~+)(?: *)([^\\s`~]*)\\n([\\s\\S]*?)\\n(?: {0,3})\\1/g, function (wholeMatch, delim, language, codeblock) {\n var end = (options.omitExtraWLInCodeBlocks) ? '' : '\\n';\n\n // First parse the github code block\n codeblock = showdown.subParser('encodeCode')(codeblock, options, globals);\n codeblock = showdown.subParser('detab')(codeblock, options, globals);\n codeblock = codeblock.replace(/^\\n+/g, ''); // trim leading newlines\n codeblock = codeblock.replace(/\\n+$/g, ''); // trim trailing whitespace\n\n codeblock = '' + codeblock + end + '
';\n\n codeblock = showdown.subParser('hashBlock')(codeblock, options, globals);\n\n // Since GHCodeblocks can be false positives, we need to\n // store the primitive text and the parsed text in a global var,\n // and then return a token\n return '\\n\\n¨G' + (globals.ghCodeBlocks.push({text: wholeMatch, codeblock: codeblock}) - 1) + 'G\\n\\n';\n });\n\n // attacklab: strip sentinel\n text = text.replace(/¨0/, '');\n\n return globals.converter._dispatch('githubCodeBlocks.after', text, options, globals);\n});\n\r\nshowdown.subParser('hashBlock', function (text, options, globals) {\n text = globals.converter._dispatch('hashBlock.before', text, options, globals);\n text = text.replace(/(^\\n+|\\n+$)/g, '');\n text = '\\n\\n¨K' + (globals.gHtmlBlocks.push(text) - 1) + 'K\\n\\n';\n text = globals.converter._dispatch('hashBlock.after', text, options, globals);\n return text;\n});\n\r\n/**\n * Hash and escape elements that should not be parsed as markdown\n */\nshowdown.subParser('hashCodeTags', function (text, options, globals) {\n text = globals.converter._dispatch('hashCodeTags.before', text, options, globals);\n\n var repFunc = function (wholeMatch, match, left, right) {\n var codeblock = left + showdown.subParser('encodeCode')(match, options, globals) + right;\n return '¨C' + (globals.gHtmlSpans.push(codeblock) - 1) + 'C';\n };\n\n // Hash naked \n text = showdown.helper.replaceRecursiveRegExp(text, repFunc, ']*>', '', 'gim');\n\n text = globals.converter._dispatch('hashCodeTags.after', text, options, globals);\n return text;\n});\n\r\nshowdown.subParser('hashElement', function (text, options, globals) {\n\n return function (wholeMatch, m1) {\n var blockText = m1;\n\n // Undo double lines\n blockText = blockText.replace(/\\n\\n/g, '\\n');\n blockText = blockText.replace(/^\\n/, '');\n\n // strip trailing blank lines\n blockText = blockText.replace(/\\n+$/g, '');\n\n // Replace the element text with a marker (\"¨KxK\" where x is its key)\n blockText = '\\n\\n¨K' + (globals.gHtmlBlocks.push(blockText) - 1) + 'K\\n\\n';\n\n return blockText;\n };\n});\n\r\nshowdown.subParser('hashHTMLBlocks', function (text, options, globals) {\n text = globals.converter._dispatch('hashHTMLBlocks.before', text, options, globals);\n\n var blockTags = [\n 'pre',\n 'div',\n 'h1',\n 'h2',\n 'h3',\n 'h4',\n 'h5',\n 'h6',\n 'blockquote',\n 'table',\n 'dl',\n 'ol',\n 'ul',\n 'script',\n 'noscript',\n 'form',\n 'fieldset',\n 'iframe',\n 'math',\n 'style',\n 'section',\n 'header',\n 'footer',\n 'nav',\n 'article',\n 'aside',\n 'address',\n 'audio',\n 'canvas',\n 'figure',\n 'hgroup',\n 'output',\n 'video',\n 'p'\n ],\n repFunc = function (wholeMatch, match, left, right) {\n var txt = wholeMatch;\n // check if this html element is marked as markdown\n // if so, it's contents should be parsed as markdown\n if (left.search(/\\bmarkdown\\b/) !== -1) {\n txt = left + globals.converter.makeHtml(match) + right;\n }\n return '\\n\\n¨K' + (globals.gHtmlBlocks.push(txt) - 1) + 'K\\n\\n';\n };\n\n if (options.backslashEscapesHTMLTags) {\n // encode backslash escaped HTML tags\n text = text.replace(/\\\\<(\\/?[^>]+?)>/g, function (wm, inside) {\n return '<' + inside + '>';\n });\n }\n\n // hash HTML Blocks\n for (var i = 0; i < blockTags.length; ++i) {\n\n var opTagPos,\n rgx1 = new RegExp('^ {0,3}(<' + blockTags[i] + '\\\\b[^>]*>)', 'im'),\n patLeft = '<' + blockTags[i] + '\\\\b[^>]*>',\n patRight = '' + blockTags[i] + '>';\n // 1. Look for the first position of the first opening HTML tag in the text\n while ((opTagPos = showdown.helper.regexIndexOf(text, rgx1)) !== -1) {\n\n // if the HTML tag is \\ escaped, we need to escape it and break\n\n\n //2. Split the text in that position\n var subTexts = showdown.helper.splitAtIndex(text, opTagPos),\n //3. Match recursively\n newSubText1 = showdown.helper.replaceRecursiveRegExp(subTexts[1], repFunc, patLeft, patRight, 'im');\n\n // prevent an infinite loop\n if (newSubText1 === subTexts[1]) {\n break;\n }\n text = subTexts[0].concat(newSubText1);\n }\n }\n // HR SPECIAL CASE\n text = text.replace(/(\\n {0,3}(<(hr)\\b([^<>])*?\\/?>)[ \\t]*(?=\\n{2,}))/g,\n showdown.subParser('hashElement')(text, options, globals));\n\n // Special case for standalone HTML comments\n text = showdown.helper.replaceRecursiveRegExp(text, function (txt) {\n return '\\n\\n¨K' + (globals.gHtmlBlocks.push(txt) - 1) + 'K\\n\\n';\n }, '^ {0,3}', 'gm');\n\n // PHP and ASP-style processor instructions (...?> and <%...%>)\n text = text.replace(/(?:\\n\\n)( {0,3}(?:<([?%])[^\\r]*?\\2>)[ \\t]*(?=\\n{2,}))/g,\n showdown.subParser('hashElement')(text, options, globals));\n\n text = globals.converter._dispatch('hashHTMLBlocks.after', text, options, globals);\n return text;\n});\n\r\n/**\n * Hash span elements that should not be parsed as markdown\n */\nshowdown.subParser('hashHTMLSpans', function (text, options, globals) {\n text = globals.converter._dispatch('hashHTMLSpans.before', text, options, globals);\n\n function hashHTMLSpan (html) {\n return '¨C' + (globals.gHtmlSpans.push(html) - 1) + 'C';\n }\n\n // Hash Self Closing tags\n text = text.replace(/<[^>]+?\\/>/gi, function (wm) {\n return hashHTMLSpan(wm);\n });\n\n // Hash tags without properties\n text = text.replace(/<([^>]+?)>[\\s\\S]*?<\\/\\1>/g, function (wm) {\n return hashHTMLSpan(wm);\n });\n\n // Hash tags with properties\n text = text.replace(/<([^>]+?)\\s[^>]+?>[\\s\\S]*?<\\/\\1>/g, function (wm) {\n return hashHTMLSpan(wm);\n });\n\n // Hash self closing tags without />\n text = text.replace(/<[^>]+?>/gi, function (wm) {\n return hashHTMLSpan(wm);\n });\n\n /*showdown.helper.matchRecursiveRegExp(text, ']*>', '', 'gi');*/\n\n text = globals.converter._dispatch('hashHTMLSpans.after', text, options, globals);\n return text;\n});\n\n/**\n * Unhash HTML spans\n */\nshowdown.subParser('unhashHTMLSpans', function (text, options, globals) {\n text = globals.converter._dispatch('unhashHTMLSpans.before', text, options, globals);\n\n for (var i = 0; i < globals.gHtmlSpans.length; ++i) {\n var repText = globals.gHtmlSpans[i],\n // limiter to prevent infinite loop (assume 10 as limit for recurse)\n limit = 0;\n\n while (/¨C(\\d+)C/.test(repText)) {\n var num = RegExp.$1;\n repText = repText.replace('¨C' + num + 'C', globals.gHtmlSpans[num]);\n if (limit === 10) {\n console.error('maximum nesting of 10 spans reached!!!');\n break;\n }\n ++limit;\n }\n text = text.replace('¨C' + i + 'C', repText);\n }\n\n text = globals.converter._dispatch('unhashHTMLSpans.after', text, options, globals);\n return text;\n});\n\r\n/**\n * Hash and escape elements that should not be parsed as markdown\n */\nshowdown.subParser('hashPreCodeTags', function (text, options, globals) {\n text = globals.converter._dispatch('hashPreCodeTags.before', text, options, globals);\n\n var repFunc = function (wholeMatch, match, left, right) {\n // encode html entities\n var codeblock = left + showdown.subParser('encodeCode')(match, options, globals) + right;\n return '\\n\\n¨G' + (globals.ghCodeBlocks.push({text: wholeMatch, codeblock: codeblock}) - 1) + 'G\\n\\n';\n };\n\n // Hash \n text = showdown.helper.replaceRecursiveRegExp(text, repFunc, '^ {0,3}]*>\\\\s*]*>', '^ {0,3}\\\\s*
', 'gim');\n\n text = globals.converter._dispatch('hashPreCodeTags.after', text, options, globals);\n return text;\n});\n\r\nshowdown.subParser('headers', function (text, options, globals) {\n\n text = globals.converter._dispatch('headers.before', text, options, globals);\n\n var headerLevelStart = (isNaN(parseInt(options.headerLevelStart))) ? 1 : parseInt(options.headerLevelStart),\n\n // Set text-style headers:\n //\tHeader 1\n //\t========\n //\n //\tHeader 2\n //\t--------\n //\n setextRegexH1 = (options.smoothLivePreview) ? /^(.+)[ \\t]*\\n={2,}[ \\t]*\\n+/gm : /^(.+)[ \\t]*\\n=+[ \\t]*\\n+/gm,\n setextRegexH2 = (options.smoothLivePreview) ? /^(.+)[ \\t]*\\n-{2,}[ \\t]*\\n+/gm : /^(.+)[ \\t]*\\n-+[ \\t]*\\n+/gm;\n\n text = text.replace(setextRegexH1, function (wholeMatch, m1) {\n\n var spanGamut = showdown.subParser('spanGamut')(m1, options, globals),\n hID = (options.noHeaderId) ? '' : ' id=\"' + headerId(m1) + '\"',\n hLevel = headerLevelStart,\n hashBlock = '' + spanGamut + ' ';\n return showdown.subParser('hashBlock')(hashBlock, options, globals);\n });\n\n text = text.replace(setextRegexH2, function (matchFound, m1) {\n var spanGamut = showdown.subParser('spanGamut')(m1, options, globals),\n hID = (options.noHeaderId) ? '' : ' id=\"' + headerId(m1) + '\"',\n hLevel = headerLevelStart + 1,\n hashBlock = '' + spanGamut + ' ';\n return showdown.subParser('hashBlock')(hashBlock, options, globals);\n });\n\n // atx-style headers:\n // # Header 1\n // ## Header 2\n // ## Header 2 with closing hashes ##\n // ...\n // ###### Header 6\n //\n var atxStyle = (options.requireSpaceBeforeHeadingText) ? /^(#{1,6})[ \\t]+(.+?)[ \\t]*#*\\n+/gm : /^(#{1,6})[ \\t]*(.+?)[ \\t]*#*\\n+/gm;\n\n text = text.replace(atxStyle, function (wholeMatch, m1, m2) {\n var hText = m2;\n if (options.customizedHeaderId) {\n hText = m2.replace(/\\s?\\{([^{]+?)}\\s*$/, '');\n }\n\n var span = showdown.subParser('spanGamut')(hText, options, globals),\n hID = (options.noHeaderId) ? '' : ' id=\"' + headerId(m2) + '\"',\n hLevel = headerLevelStart - 1 + m1.length,\n header = '' + span + ' ';\n\n return showdown.subParser('hashBlock')(header, options, globals);\n });\n\n function headerId (m) {\n var title,\n prefix;\n\n // It is separate from other options to allow combining prefix and customized\n if (options.customizedHeaderId) {\n var match = m.match(/\\{([^{]+?)}\\s*$/);\n if (match && match[1]) {\n m = match[1];\n }\n }\n\n title = m;\n\n // Prefix id to prevent causing inadvertent pre-existing style matches.\n if (showdown.helper.isString(options.prefixHeaderId)) {\n prefix = options.prefixHeaderId;\n } else if (options.prefixHeaderId === true) {\n prefix = 'section-';\n } else {\n prefix = '';\n }\n\n if (!options.rawPrefixHeaderId) {\n title = prefix + title;\n }\n\n if (options.ghCompatibleHeaderId) {\n title = title\n .replace(/ /g, '-')\n // replace previously escaped chars (&, ¨ and $)\n .replace(/&/g, '')\n .replace(/¨T/g, '')\n .replace(/¨D/g, '')\n // replace rest of the chars (&~$ are repeated as they might have been escaped)\n // borrowed from github's redcarpet (some they should produce similar results)\n .replace(/[&+$,\\/:;=?@\"#{}|^¨~\\[\\]`\\\\*)(%.!'<>]/g, '')\n .toLowerCase();\n } else if (options.rawHeaderId) {\n title = title\n .replace(/ /g, '-')\n // replace previously escaped chars (&, ¨ and $)\n .replace(/&/g, '&')\n .replace(/¨T/g, '¨')\n .replace(/¨D/g, '$')\n // replace \" and '\n .replace(/[\"']/g, '-')\n .toLowerCase();\n } else {\n title = title\n .replace(/[^\\w]/g, '')\n .toLowerCase();\n }\n\n if (options.rawPrefixHeaderId) {\n title = prefix + title;\n }\n\n if (globals.hashLinkCounts[title]) {\n title = title + '-' + (globals.hashLinkCounts[title]++);\n } else {\n globals.hashLinkCounts[title] = 1;\n }\n return title;\n }\n\n text = globals.converter._dispatch('headers.after', text, options, globals);\n return text;\n});\n\r\n/**\n * Turn Markdown link shortcuts into XHTML tags.\n */\nshowdown.subParser('horizontalRule', function (text, options, globals) {\n text = globals.converter._dispatch('horizontalRule.before', text, options, globals);\n\n var key = showdown.subParser('hashBlock')('
', options, globals);\n text = text.replace(/^ {0,2}( ?-){3,}[ \\t]*$/gm, key);\n text = text.replace(/^ {0,2}( ?\\*){3,}[ \\t]*$/gm, key);\n text = text.replace(/^ {0,2}( ?_){3,}[ \\t]*$/gm, key);\n\n text = globals.converter._dispatch('horizontalRule.after', text, options, globals);\n return text;\n});\n\r\n/**\n * Turn Markdown image shortcuts into
tags.\n */\nshowdown.subParser('images', function (text, options, globals) {\n\n text = globals.converter._dispatch('images.before', text, options, globals);\n\n var inlineRegExp = /!\\[([^\\]]*?)][ \\t]*()\\([ \\t]?([\\S]+?(?:\\([\\S]*?\\)[\\S]*?)?)>?(?: =([*\\d]+[A-Za-z%]{0,4})x([*\\d]+[A-Za-z%]{0,4}))?[ \\t]*(?:([\"'])([^\"]*?)\\6)?[ \\t]?\\)/g,\n crazyRegExp = /!\\[([^\\]]*?)][ \\t]*()\\([ \\t]?<([^>]*)>(?: =([*\\d]+[A-Za-z%]{0,4})x([*\\d]+[A-Za-z%]{0,4}))?[ \\t]*(?:(?:([\"'])([^\"]*?)\\6))?[ \\t]?\\)/g,\n base64RegExp = /!\\[([^\\]]*?)][ \\t]*()\\([ \\t]?(data:.+?\\/.+?;base64,[A-Za-z0-9+/=\\n]+?)>?(?: =([*\\d]+[A-Za-z%]{0,4})x([*\\d]+[A-Za-z%]{0,4}))?[ \\t]*(?:([\"'])([^\"]*?)\\6)?[ \\t]?\\)/g,\n referenceRegExp = /!\\[([^\\]]*?)] ?(?:\\n *)?\\[([\\s\\S]*?)]()()()()()/g,\n refShortcutRegExp = /!\\[([^\\[\\]]+)]()()()()()/g;\n\n function writeImageTagBase64 (wholeMatch, altText, linkId, url, width, height, m5, title) {\n url = url.replace(/\\s/g, '');\n return writeImageTag (wholeMatch, altText, linkId, url, width, height, m5, title);\n }\n\n function writeImageTag (wholeMatch, altText, linkId, url, width, height, m5, title) {\n\n var gUrls = globals.gUrls,\n gTitles = globals.gTitles,\n gDims = globals.gDimensions;\n\n linkId = linkId.toLowerCase();\n\n if (!title) {\n title = '';\n }\n // Special case for explicit empty url\n if (wholeMatch.search(/\\(\\s*>? ?(['\"].*['\"])?\\)$/m) > -1) {\n url = '';\n\n } else if (url === '' || url === null) {\n if (linkId === '' || linkId === null) {\n // lower-case and turn embedded newlines into spaces\n linkId = altText.toLowerCase().replace(/ ?\\n/g, ' ');\n }\n url = '#' + linkId;\n\n if (!showdown.helper.isUndefined(gUrls[linkId])) {\n url = gUrls[linkId];\n if (!showdown.helper.isUndefined(gTitles[linkId])) {\n title = gTitles[linkId];\n }\n if (!showdown.helper.isUndefined(gDims[linkId])) {\n width = gDims[linkId].width;\n height = gDims[linkId].height;\n }\n } else {\n return wholeMatch;\n }\n }\n\n altText = altText\n .replace(/\"/g, '"')\n //altText = showdown.helper.escapeCharacters(altText, '*_', false);\n .replace(showdown.helper.regexes.asteriskDashAndColon, showdown.helper.escapeCharactersCallback);\n //url = showdown.helper.escapeCharacters(url, '*_', false);\n url = url.replace(showdown.helper.regexes.asteriskDashAndColon, showdown.helper.escapeCharactersCallback);\n var result = '
';\n\n return result;\n }\n\n // First, handle reference-style labeled images: ![alt text][id]\n text = text.replace(referenceRegExp, writeImageTag);\n\n // Next, handle inline images: \n\n // base64 encoded images\n text = text.replace(base64RegExp, writeImageTagBase64);\n\n // cases with crazy urls like ./image/cat1).png\n text = text.replace(crazyRegExp, writeImageTag);\n\n // normal cases\n text = text.replace(inlineRegExp, writeImageTag);\n\n // handle reference-style shortcuts: ![img text]\n text = text.replace(refShortcutRegExp, writeImageTag);\n\n text = globals.converter._dispatch('images.after', text, options, globals);\n return text;\n});\n\r\nshowdown.subParser('italicsAndBold', function (text, options, globals) {\n\n text = globals.converter._dispatch('italicsAndBold.before', text, options, globals);\n\n // it's faster to have 3 separate regexes for each case than have just one\n // because of backtracing, in some cases, it could lead to an exponential effect\n // called \"catastrophic backtrace\". Ominous!\n\n function parseInside (txt, left, right) {\n /*\n if (options.simplifiedAutoLink) {\n txt = showdown.subParser('simplifiedAutoLinks')(txt, options, globals);\n }\n */\n return left + txt + right;\n }\n\n // Parse underscores\n if (options.literalMidWordUnderscores) {\n text = text.replace(/\\b___(\\S[\\s\\S]*?)___\\b/g, function (wm, txt) {\n return parseInside (txt, '', '');\n });\n text = text.replace(/\\b__(\\S[\\s\\S]*?)__\\b/g, function (wm, txt) {\n return parseInside (txt, '', '');\n });\n text = text.replace(/\\b_(\\S[\\s\\S]*?)_\\b/g, function (wm, txt) {\n return parseInside (txt, '', '');\n });\n } else {\n text = text.replace(/___(\\S[\\s\\S]*?)___/g, function (wm, m) {\n return (/\\S$/.test(m)) ? parseInside (m, '', '') : wm;\n });\n text = text.replace(/__(\\S[\\s\\S]*?)__/g, function (wm, m) {\n return (/\\S$/.test(m)) ? parseInside (m, '', '') : wm;\n });\n text = text.replace(/_([^\\s_][\\s\\S]*?)_/g, function (wm, m) {\n // !/^_[^_]/.test(m) - test if it doesn't start with __ (since it seems redundant, we removed it)\n return (/\\S$/.test(m)) ? parseInside (m, '', '') : wm;\n });\n }\n\n // Now parse asterisks\n if (options.literalMidWordAsterisks) {\n text = text.replace(/([^*]|^)\\B\\*\\*\\*(\\S[\\s\\S]*?)\\*\\*\\*\\B(?!\\*)/g, function (wm, lead, txt) {\n return parseInside (txt, lead + '', '');\n });\n text = text.replace(/([^*]|^)\\B\\*\\*(\\S[\\s\\S]*?)\\*\\*\\B(?!\\*)/g, function (wm, lead, txt) {\n return parseInside (txt, lead + '', '');\n });\n text = text.replace(/([^*]|^)\\B\\*(\\S[\\s\\S]*?)\\*\\B(?!\\*)/g, function (wm, lead, txt) {\n return parseInside (txt, lead + '', '');\n });\n } else {\n text = text.replace(/\\*\\*\\*(\\S[\\s\\S]*?)\\*\\*\\*/g, function (wm, m) {\n return (/\\S$/.test(m)) ? parseInside (m, '', '') : wm;\n });\n text = text.replace(/\\*\\*(\\S[\\s\\S]*?)\\*\\*/g, function (wm, m) {\n return (/\\S$/.test(m)) ? parseInside (m, '', '') : wm;\n });\n text = text.replace(/\\*([^\\s*][\\s\\S]*?)\\*/g, function (wm, m) {\n // !/^\\*[^*]/.test(m) - test if it doesn't start with ** (since it seems redundant, we removed it)\n return (/\\S$/.test(m)) ? parseInside (m, '', '') : wm;\n });\n }\n\n\n text = globals.converter._dispatch('italicsAndBold.after', text, options, globals);\n return text;\n});\n\r\n/**\n * Form HTML ordered (numbered) and unordered (bulleted) lists.\n */\nshowdown.subParser('lists', function (text, options, globals) {\n\n /**\n * Process the contents of a single ordered or unordered list, splitting it\n * into individual list items.\n * @param {string} listStr\n * @param {boolean} trimTrailing\n * @returns {string}\n */\n function processListItems (listStr, trimTrailing) {\n // The $g_list_level global keeps track of when we're inside a list.\n // Each time we enter a list, we increment it; when we leave a list,\n // we decrement. If it's zero, we're not in a list anymore.\n //\n // We do this because when we're not inside a list, we want to treat\n // something like this:\n //\n // I recommend upgrading to version\n // 8. Oops, now this line is treated\n // as a sub-list.\n //\n // As a single paragraph, despite the fact that the second line starts\n // with a digit-period-space sequence.\n //\n // Whereas when we're inside a list (or sub-list), that line will be\n // treated as the start of a sub-list. What a kludge, huh? This is\n // an aspect of Markdown's syntax that's hard to parse perfectly\n // without resorting to mind-reading. Perhaps the solution is to\n // change the syntax rules such that sub-lists must start with a\n // starting cardinal number; e.g. \"1.\" or \"a.\".\n globals.gListLevel++;\n\n // trim trailing blank lines:\n listStr = listStr.replace(/\\n{2,}$/, '\\n');\n\n // attacklab: add sentinel to emulate \\z\n listStr += '¨0';\n\n var rgx = /(\\n)?(^ {0,3})([*+-]|\\d+[.])[ \\t]+((\\[(x|X| )?])?[ \\t]*[^\\r]+?(\\n{1,2}))(?=\\n*(¨0| {0,3}([*+-]|\\d+[.])[ \\t]+))/gm,\n isParagraphed = (/\\n[ \\t]*\\n(?!¨0)/.test(listStr));\n\n // Since version 1.5, nesting sublists requires 4 spaces (or 1 tab) indentation,\n // which is a syntax breaking change\n // activating this option reverts to old behavior\n if (options.disableForced4SpacesIndentedSublists) {\n rgx = /(\\n)?(^ {0,3})([*+-]|\\d+[.])[ \\t]+((\\[(x|X| )?])?[ \\t]*[^\\r]+?(\\n{1,2}))(?=\\n*(¨0|\\2([*+-]|\\d+[.])[ \\t]+))/gm;\n }\n\n listStr = listStr.replace(rgx, function (wholeMatch, m1, m2, m3, m4, taskbtn, checked) {\n checked = (checked && checked.trim() !== '');\n\n var item = showdown.subParser('outdent')(m4, options, globals),\n bulletStyle = '';\n\n // Support for github tasklists\n if (taskbtn && options.tasklists) {\n bulletStyle = ' class=\"task-list-item\" style=\"list-style-type: none;\"';\n item = item.replace(/^[ \\t]*\\[(x|X| )?]/m, function () {\n var otp = '';\n return otp;\n });\n }\n\n // ISSUE #312\n // This input: - - - a\n // causes trouble to the parser, since it interprets it as:\n // - a
\n // instead of:\n // - - - a
\n // So, to prevent it, we will put a marker (¨A)in the beginning of the line\n // Kind of hackish/monkey patching, but seems more effective than overcomplicating the list parser\n item = item.replace(/^([-*+]|\\d\\.)[ \\t]+[\\S\\n ]*/g, function (wm2) {\n return '¨A' + wm2;\n });\n\n // m1 - Leading line or\n // Has a double return (multi paragraph) or\n // Has sublist\n if (m1 || (item.search(/\\n{2,}/) > -1)) {\n item = showdown.subParser('githubCodeBlocks')(item, options, globals);\n item = showdown.subParser('blockGamut')(item, options, globals);\n } else {\n // Recursion for sub-lists:\n item = showdown.subParser('lists')(item, options, globals);\n item = item.replace(/\\n$/, ''); // chomp(item)\n item = showdown.subParser('hashHTMLBlocks')(item, options, globals);\n\n // Colapse double linebreaks\n item = item.replace(/\\n\\n+/g, '\\n\\n');\n if (isParagraphed) {\n item = showdown.subParser('paragraphs')(item, options, globals);\n } else {\n item = showdown.subParser('spanGamut')(item, options, globals);\n }\n }\n\n // now we need to remove the marker (¨A)\n item = item.replace('¨A', '');\n // we can finally wrap the line in list item tags\n item = '' + item + ' \\n';\n\n return item;\n });\n\n // attacklab: strip sentinel\n listStr = listStr.replace(/¨0/g, '');\n\n globals.gListLevel--;\n\n if (trimTrailing) {\n listStr = listStr.replace(/\\s+$/, '');\n }\n\n return listStr;\n }\n\n function styleStartNumber (list, listType) {\n // check if ol and starts by a number different than 1\n if (listType === 'ol') {\n var res = list.match(/^ *(\\d+)\\./);\n if (res && res[1] !== '1') {\n return ' start=\"' + res[1] + '\"';\n }\n }\n return '';\n }\n\n /**\n * Check and parse consecutive lists (better fix for issue #142)\n * @param {string} list\n * @param {string} listType\n * @param {boolean} trimTrailing\n * @returns {string}\n */\n function parseConsecutiveLists (list, listType, trimTrailing) {\n // check if we caught 2 or more consecutive lists by mistake\n // we use the counterRgx, meaning if listType is UL we look for OL and vice versa\n var olRgx = (options.disableForced4SpacesIndentedSublists) ? /^ ?\\d+\\.[ \\t]/gm : /^ {0,3}\\d+\\.[ \\t]/gm,\n ulRgx = (options.disableForced4SpacesIndentedSublists) ? /^ ?[*+-][ \\t]/gm : /^ {0,3}[*+-][ \\t]/gm,\n counterRxg = (listType === 'ul') ? olRgx : ulRgx,\n result = '';\n\n if (list.search(counterRxg) !== -1) {\n (function parseCL (txt) {\n var pos = txt.search(counterRxg),\n style = styleStartNumber(list, listType);\n if (pos !== -1) {\n // slice\n result += '\\n\\n<' + listType + style + '>\\n' + processListItems(txt.slice(0, pos), !!trimTrailing) + '' + listType + '>\\n';\n\n // invert counterType and listType\n listType = (listType === 'ul') ? 'ol' : 'ul';\n counterRxg = (listType === 'ul') ? olRgx : ulRgx;\n\n //recurse\n parseCL(txt.slice(pos));\n } else {\n result += '\\n\\n<' + listType + style + '>\\n' + processListItems(txt, !!trimTrailing) + '' + listType + '>\\n';\n }\n })(list);\n } else {\n var style = styleStartNumber(list, listType);\n result = '\\n\\n<' + listType + style + '>\\n' + processListItems(list, !!trimTrailing) + '' + listType + '>\\n';\n }\n\n return result;\n }\n\n /** Start of list parsing **/\n text = globals.converter._dispatch('lists.before', text, options, globals);\n // add sentinel to hack around khtml/safari bug:\n // http://bugs.webkit.org/show_bug.cgi?id=11231\n text += '¨0';\n\n if (globals.gListLevel) {\n text = text.replace(/^(( {0,3}([*+-]|\\d+[.])[ \\t]+)[^\\r]+?(¨0|\\n{2,}(?=\\S)(?![ \\t]*(?:[*+-]|\\d+[.])[ \\t]+)))/gm,\n function (wholeMatch, list, m2) {\n var listType = (m2.search(/[*+-]/g) > -1) ? 'ul' : 'ol';\n return parseConsecutiveLists(list, listType, true);\n }\n );\n } else {\n text = text.replace(/(\\n\\n|^\\n?)(( {0,3}([*+-]|\\d+[.])[ \\t]+)[^\\r]+?(¨0|\\n{2,}(?=\\S)(?![ \\t]*(?:[*+-]|\\d+[.])[ \\t]+)))/gm,\n function (wholeMatch, m1, list, m3) {\n var listType = (m3.search(/[*+-]/g) > -1) ? 'ul' : 'ol';\n return parseConsecutiveLists(list, listType, false);\n }\n );\n }\n\n // strip sentinel\n text = text.replace(/¨0/, '');\n text = globals.converter._dispatch('lists.after', text, options, globals);\n return text;\n});\n\r\n/**\n * Parse metadata at the top of the document\n */\nshowdown.subParser('metadata', function (text, options, globals) {\n\n if (!options.metadata) {\n return text;\n }\n\n text = globals.converter._dispatch('metadata.before', text, options, globals);\n\n function parseMetadataContents (content) {\n // raw is raw so it's not changed in any way\n globals.metadata.raw = content;\n\n // escape chars forbidden in html attributes\n // double quotes\n content = content\n // ampersand first\n .replace(/&/g, '&')\n // double quotes\n .replace(/\"/g, '"');\n\n content = content.replace(/\\n {4}/g, ' ');\n content.replace(/^([\\S ]+): +([\\s\\S]+?)$/gm, function (wm, key, value) {\n globals.metadata.parsed[key] = value;\n return '';\n });\n }\n\n text = text.replace(/^\\s*«««+(\\S*?)\\n([\\s\\S]+?)\\n»»»+\\n/, function (wholematch, format, content) {\n parseMetadataContents(content);\n return '¨M';\n });\n\n text = text.replace(/^\\s*---+(\\S*?)\\n([\\s\\S]+?)\\n---+\\n/, function (wholematch, format, content) {\n if (format) {\n globals.metadata.format = format;\n }\n parseMetadataContents(content);\n return '¨M';\n });\n\n text = text.replace(/¨M/g, '');\n\n text = globals.converter._dispatch('metadata.after', text, options, globals);\n return text;\n});\n\r\n/**\n * Remove one level of line-leading tabs or spaces\n */\nshowdown.subParser('outdent', function (text, options, globals) {\n text = globals.converter._dispatch('outdent.before', text, options, globals);\n\n // attacklab: hack around Konqueror 3.5.4 bug:\n // \"----------bug\".replace(/^-/g,\"\") == \"bug\"\n text = text.replace(/^(\\t|[ ]{1,4})/gm, '¨0'); // attacklab: g_tab_width\n\n // attacklab: clean up hack\n text = text.replace(/¨0/g, '');\n\n text = globals.converter._dispatch('outdent.after', text, options, globals);\n return text;\n});\n\r\n/**\n *\n */\nshowdown.subParser('paragraphs', function (text, options, globals) {\n\n text = globals.converter._dispatch('paragraphs.before', text, options, globals);\n // Strip leading and trailing lines:\n text = text.replace(/^\\n+/g, '');\n text = text.replace(/\\n+$/g, '');\n\n var grafs = text.split(/\\n{2,}/g),\n grafsOut = [],\n end = grafs.length; // Wrap tags\n\n for (var i = 0; i < end; i++) {\n var str = grafs[i];\n // if this is an HTML marker, copy it\n if (str.search(/¨(K|G)(\\d+)\\1/g) >= 0) {\n grafsOut.push(str);\n\n // test for presence of characters to prevent empty lines being parsed\n // as paragraphs (resulting in undesired extra empty paragraphs)\n } else if (str.search(/\\S/) >= 0) {\n str = showdown.subParser('spanGamut')(str, options, globals);\n str = str.replace(/^([ \\t]*)/g, '
');\n str += '
';\n grafsOut.push(str);\n }\n }\n\n /** Unhashify HTML blocks */\n end = grafsOut.length;\n for (i = 0; i < end; i++) {\n var blockText = '',\n grafsOutIt = grafsOut[i],\n codeFlag = false;\n // if this is a marker for an html block...\n // use RegExp.test instead of string.search because of QML bug\n while (/¨(K|G)(\\d+)\\1/.test(grafsOutIt)) {\n var delim = RegExp.$1,\n num = RegExp.$2;\n\n if (delim === 'K') {\n blockText = globals.gHtmlBlocks[num];\n } else {\n // we need to check if ghBlock is a false positive\n if (codeFlag) {\n // use encoded version of all text\n blockText = showdown.subParser('encodeCode')(globals.ghCodeBlocks[num].text, options, globals);\n } else {\n blockText = globals.ghCodeBlocks[num].codeblock;\n }\n }\n blockText = blockText.replace(/\\$/g, '$$$$'); // Escape any dollar signs\n\n grafsOutIt = grafsOutIt.replace(/(\\n\\n)?¨(K|G)\\d+\\2(\\n\\n)?/, blockText);\n // Check if grafsOutIt is a pre->code\n if (/^]*>\\s*]*>/.test(grafsOutIt)) {\n codeFlag = true;\n }\n }\n grafsOut[i] = grafsOutIt;\n }\n text = grafsOut.join('\\n');\n // Strip leading and trailing lines:\n text = text.replace(/^\\n+/g, '');\n text = text.replace(/\\n+$/g, '');\n return globals.converter._dispatch('paragraphs.after', text, options, globals);\n});\n\r\n/**\n * Run extension\n */\nshowdown.subParser('runExtension', function (ext, text, options, globals) {\n\n if (ext.filter) {\n text = ext.filter(text, globals.converter, options);\n\n } else if (ext.regex) {\n // TODO remove this when old extension loading mechanism is deprecated\n var re = ext.regex;\n if (!(re instanceof RegExp)) {\n re = new RegExp(re, 'g');\n }\n text = text.replace(re, ext.replace);\n }\n\n return text;\n});\n\r\n/**\n * These are all the transformations that occur *within* block-level\n * tags like paragraphs, headers, and list items.\n */\nshowdown.subParser('spanGamut', function (text, options, globals) {\n\n text = globals.converter._dispatch('spanGamut.before', text, options, globals);\n text = showdown.subParser('codeSpans')(text, options, globals);\n text = showdown.subParser('escapeSpecialCharsWithinTagAttributes')(text, options, globals);\n text = showdown.subParser('encodeBackslashEscapes')(text, options, globals);\n\n // Process anchor and image tags. Images must come first,\n // because ![foo][f] looks like an anchor.\n text = showdown.subParser('images')(text, options, globals);\n text = showdown.subParser('anchors')(text, options, globals);\n\n // Make links out of things like ` `\n // Must come after anchors, because you can use < and >\n // delimiters in inline links like [this]().\n text = showdown.subParser('autoLinks')(text, options, globals);\n text = showdown.subParser('simplifiedAutoLinks')(text, options, globals);\n text = showdown.subParser('emoji')(text, options, globals);\n text = showdown.subParser('underline')(text, options, globals);\n text = showdown.subParser('italicsAndBold')(text, options, globals);\n text = showdown.subParser('strikethrough')(text, options, globals);\n text = showdown.subParser('ellipsis')(text, options, globals);\n\n // we need to hash HTML tags inside spans\n text = showdown.subParser('hashHTMLSpans')(text, options, globals);\n\n // now we encode amps and angles\n text = showdown.subParser('encodeAmpsAndAngles')(text, options, globals);\n\n // Do hard breaks\n if (options.simpleLineBreaks) {\n // GFM style hard breaks\n // only add line breaks if the text does not contain a block (special case for lists)\n if (!/\\n\\n¨K/.test(text)) {\n text = text.replace(/\\n+/g, '
\\n');\n }\n } else {\n // Vanilla hard breaks\n text = text.replace(/ +\\n/g, '
\\n');\n }\n\n text = globals.converter._dispatch('spanGamut.after', text, options, globals);\n return text;\n});\n\r\nshowdown.subParser('strikethrough', function (text, options, globals) {\n\n function parseInside (txt) {\n if (options.simplifiedAutoLink) {\n txt = showdown.subParser('simplifiedAutoLinks')(txt, options, globals);\n }\n return '' + txt + '';\n }\n\n if (options.strikethrough) {\n text = globals.converter._dispatch('strikethrough.before', text, options, globals);\n text = text.replace(/(?:~){2}([\\s\\S]+?)(?:~){2}/g, function (wm, txt) { return parseInside(txt); });\n text = globals.converter._dispatch('strikethrough.after', text, options, globals);\n }\n\n return text;\n});\n\r\n/**\n * Strips link definitions from text, stores the URLs and titles in\n * hash references.\n * Link defs are in the form: ^[id]: url \"optional title\"\n */\nshowdown.subParser('stripLinkDefinitions', function (text, options, globals) {\n\n var regex = /^ {0,3}\\[(.+)]:[ \\t]*\\n?[ \\t]*([^>\\s]+)>?(?: =([*\\d]+[A-Za-z%]{0,4})x([*\\d]+[A-Za-z%]{0,4}))?[ \\t]*\\n?[ \\t]*(?:(\\n*)[\"|'(](.+?)[\"|')][ \\t]*)?(?:\\n+|(?=¨0))/gm,\n base64Regex = /^ {0,3}\\[(.+)]:[ \\t]*\\n?[ \\t]*(data:.+?\\/.+?;base64,[A-Za-z0-9+/=\\n]+?)>?(?: =([*\\d]+[A-Za-z%]{0,4})x([*\\d]+[A-Za-z%]{0,4}))?[ \\t]*\\n?[ \\t]*(?:(\\n*)[\"|'(](.+?)[\"|')][ \\t]*)?(?:\\n\\n|(?=¨0)|(?=\\n\\[))/gm;\n\n // attacklab: sentinel workarounds for lack of \\A and \\Z, safari\\khtml bug\n text += '¨0';\n\n var replaceFunc = function (wholeMatch, linkId, url, width, height, blankLines, title) {\n linkId = linkId.toLowerCase();\n if (url.match(/^data:.+?\\/.+?;base64,/)) {\n // remove newlines\n globals.gUrls[linkId] = url.replace(/\\s/g, '');\n } else {\n globals.gUrls[linkId] = showdown.subParser('encodeAmpsAndAngles')(url, options, globals); // Link IDs are case-insensitive\n }\n\n if (blankLines) {\n // Oops, found blank lines, so it's not a title.\n // Put back the parenthetical statement we stole.\n return blankLines + title;\n\n } else {\n if (title) {\n globals.gTitles[linkId] = title.replace(/\"|'/g, '"');\n }\n if (options.parseImgDimensions && width && height) {\n globals.gDimensions[linkId] = {\n width: width,\n height: height\n };\n }\n }\n // Completely remove the definition from the text\n return '';\n };\n\n // first we try to find base64 link references\n text = text.replace(base64Regex, replaceFunc);\n\n text = text.replace(regex, replaceFunc);\n\n // attacklab: strip sentinel\n text = text.replace(/¨0/, '');\n\n return text;\n});\n\r\nshowdown.subParser('tables', function (text, options, globals) {\n\n if (!options.tables) {\n return text;\n }\n\n var tableRgx = /^ {0,3}\\|?.+\\|.+\\n {0,3}\\|?[ \\t]*:?[ \\t]*(?:[-=]){2,}[ \\t]*:?[ \\t]*\\|[ \\t]*:?[ \\t]*(?:[-=]){2,}[\\s\\S]+?(?:\\n\\n|¨0)/gm,\n //singeColTblRgx = /^ {0,3}\\|.+\\|\\n {0,3}\\|[ \\t]*:?[ \\t]*(?:[-=]){2,}[ \\t]*:?[ \\t]*\\|[ \\t]*\\n(?: {0,3}\\|.+\\|\\n)+(?:\\n\\n|¨0)/gm;\n singeColTblRgx = /^ {0,3}\\|.+\\|[ \\t]*\\n {0,3}\\|[ \\t]*:?[ \\t]*(?:[-=]){2,}[ \\t]*:?[ \\t]*\\|[ \\t]*\\n( {0,3}\\|.+\\|[ \\t]*\\n)*(?:\\n|¨0)/gm;\n\n function parseStyles (sLine) {\n if (/^:[ \\t]*--*$/.test(sLine)) {\n return ' style=\"text-align:left;\"';\n } else if (/^--*[ \\t]*:[ \\t]*$/.test(sLine)) {\n return ' style=\"text-align:right;\"';\n } else if (/^:[ \\t]*--*[ \\t]*:$/.test(sLine)) {\n return ' style=\"text-align:center;\"';\n } else {\n return '';\n }\n }\n\n function parseHeaders (header, style) {\n var id = '';\n header = header.trim();\n // support both tablesHeaderId and tableHeaderId due to error in documentation so we don't break backwards compatibility\n if (options.tablesHeaderId || options.tableHeaderId) {\n id = ' id=\"' + header.replace(/ /g, '_').toLowerCase() + '\"';\n }\n header = showdown.subParser('spanGamut')(header, options, globals);\n\n return '' + header + ' \\n';\n }\n\n function parseCells (cell, style) {\n var subText = showdown.subParser('spanGamut')(cell, options, globals);\n return '' + subText + ' \\n';\n }\n\n function buildTable (headers, cells) {\n var tb = '\\n\\n\\n',\n tblLgn = headers.length;\n\n for (var i = 0; i < tblLgn; ++i) {\n tb += headers[i];\n }\n tb += ' \\n\\n\\n';\n\n for (i = 0; i < cells.length; ++i) {\n tb += '\\n';\n for (var ii = 0; ii < tblLgn; ++ii) {\n tb += cells[i][ii];\n }\n tb += ' \\n';\n }\n tb += '\\n
\\n';\n return tb;\n }\n\n function parseTable (rawTable) {\n var i, tableLines = rawTable.split('\\n');\n\n for (i = 0; i < tableLines.length; ++i) {\n // strip wrong first and last column if wrapped tables are used\n if (/^ {0,3}\\|/.test(tableLines[i])) {\n tableLines[i] = tableLines[i].replace(/^ {0,3}\\|/, '');\n }\n if (/\\|[ \\t]*$/.test(tableLines[i])) {\n tableLines[i] = tableLines[i].replace(/\\|[ \\t]*$/, '');\n }\n // parse code spans first, but we only support one line code spans\n tableLines[i] = showdown.subParser('codeSpans')(tableLines[i], options, globals);\n }\n\n var rawHeaders = tableLines[0].split('|').map(function (s) { return s.trim();}),\n rawStyles = tableLines[1].split('|').map(function (s) { return s.trim();}),\n rawCells = [],\n headers = [],\n styles = [],\n cells = [];\n\n tableLines.shift();\n tableLines.shift();\n\n for (i = 0; i < tableLines.length; ++i) {\n if (tableLines[i].trim() === '') {\n continue;\n }\n rawCells.push(\n tableLines[i]\n .split('|')\n .map(function (s) {\n return s.trim();\n })\n );\n }\n\n if (rawHeaders.length < rawStyles.length) {\n return rawTable;\n }\n\n for (i = 0; i < rawStyles.length; ++i) {\n styles.push(parseStyles(rawStyles[i]));\n }\n\n for (i = 0; i < rawHeaders.length; ++i) {\n if (showdown.helper.isUndefined(styles[i])) {\n styles[i] = '';\n }\n headers.push(parseHeaders(rawHeaders[i], styles[i]));\n }\n\n for (i = 0; i < rawCells.length; ++i) {\n var row = [];\n for (var ii = 0; ii < headers.length; ++ii) {\n if (showdown.helper.isUndefined(rawCells[i][ii])) ;\n row.push(parseCells(rawCells[i][ii], styles[ii]));\n }\n cells.push(row);\n }\n\n return buildTable(headers, cells);\n }\n\n text = globals.converter._dispatch('tables.before', text, options, globals);\n\n // find escaped pipe characters\n text = text.replace(/\\\\(\\|)/g, showdown.helper.escapeCharactersCallback);\n\n // parse multi column tables\n text = text.replace(tableRgx, parseTable);\n\n // parse one column tables\n text = text.replace(singeColTblRgx, parseTable);\n\n text = globals.converter._dispatch('tables.after', text, options, globals);\n\n return text;\n});\n\r\nshowdown.subParser('underline', function (text, options, globals) {\n\n if (!options.underline) {\n return text;\n }\n\n text = globals.converter._dispatch('underline.before', text, options, globals);\n\n if (options.literalMidWordUnderscores) {\n text = text.replace(/\\b___(\\S[\\s\\S]*?)___\\b/g, function (wm, txt) {\n return '' + txt + '';\n });\n text = text.replace(/\\b__(\\S[\\s\\S]*?)__\\b/g, function (wm, txt) {\n return '' + txt + '';\n });\n } else {\n text = text.replace(/___(\\S[\\s\\S]*?)___/g, function (wm, m) {\n return (/\\S$/.test(m)) ? '' + m + '' : wm;\n });\n text = text.replace(/__(\\S[\\s\\S]*?)__/g, function (wm, m) {\n return (/\\S$/.test(m)) ? '' + m + '' : wm;\n });\n }\n\n // escape remaining underscores to prevent them being parsed by italic and bold\n text = text.replace(/(_)/g, showdown.helper.escapeCharactersCallback);\n\n text = globals.converter._dispatch('underline.after', text, options, globals);\n\n return text;\n});\n\r\n/**\n * Swap back in all the special characters we've hidden.\n */\nshowdown.subParser('unescapeSpecialChars', function (text, options, globals) {\n text = globals.converter._dispatch('unescapeSpecialChars.before', text, options, globals);\n\n text = text.replace(/¨E(\\d+)E/g, function (wholeMatch, m1) {\n var charCodeToReplace = parseInt(m1);\n return String.fromCharCode(charCodeToReplace);\n });\n\n text = globals.converter._dispatch('unescapeSpecialChars.after', text, options, globals);\n return text;\n});\n\r\nshowdown.subParser('makeMarkdown.blockquote', function (node, globals) {\n\n var txt = '';\n if (node.hasChildNodes()) {\n var children = node.childNodes,\n childrenLength = children.length;\n\n for (var i = 0; i < childrenLength; ++i) {\n var innerTxt = showdown.subParser('makeMarkdown.node')(children[i], globals);\n\n if (innerTxt === '') {\n continue;\n }\n txt += innerTxt;\n }\n }\n // cleanup\n txt = txt.trim();\n txt = '> ' + txt.split('\\n').join('\\n> ');\n return txt;\n});\n\r\nshowdown.subParser('makeMarkdown.codeBlock', function (node, globals) {\n\n var lang = node.getAttribute('language'),\n num = node.getAttribute('precodenum');\n return '```' + lang + '\\n' + globals.preList[num] + '\\n```';\n});\n\r\nshowdown.subParser('makeMarkdown.codeSpan', function (node) {\n\n return '`' + node.innerHTML + '`';\n});\n\r\nshowdown.subParser('makeMarkdown.emphasis', function (node, globals) {\n\n var txt = '';\n if (node.hasChildNodes()) {\n txt += '*';\n var children = node.childNodes,\n childrenLength = children.length;\n for (var i = 0; i < childrenLength; ++i) {\n txt += showdown.subParser('makeMarkdown.node')(children[i], globals);\n }\n txt += '*';\n }\n return txt;\n});\n\r\nshowdown.subParser('makeMarkdown.header', function (node, globals, headerLevel) {\n\n var headerMark = new Array(headerLevel + 1).join('#'),\n txt = '';\n\n if (node.hasChildNodes()) {\n txt = headerMark + ' ';\n var children = node.childNodes,\n childrenLength = children.length;\n\n for (var i = 0; i < childrenLength; ++i) {\n txt += showdown.subParser('makeMarkdown.node')(children[i], globals);\n }\n }\n return txt;\n});\n\r\nshowdown.subParser('makeMarkdown.hr', function () {\n\n return '---';\n});\n\r\nshowdown.subParser('makeMarkdown.image', function (node) {\n\n var txt = '';\n if (node.hasAttribute('src')) {\n txt += ' + '>';\n if (node.hasAttribute('width') && node.hasAttribute('height')) {\n txt += ' =' + node.getAttribute('width') + 'x' + node.getAttribute('height');\n }\n\n if (node.hasAttribute('title')) {\n txt += ' \"' + node.getAttribute('title') + '\"';\n }\n txt += ')';\n }\n return txt;\n});\n\r\nshowdown.subParser('makeMarkdown.links', function (node, globals) {\n\n var txt = '';\n if (node.hasChildNodes() && node.hasAttribute('href')) {\n var children = node.childNodes,\n childrenLength = children.length;\n txt = '[';\n for (var i = 0; i < childrenLength; ++i) {\n txt += showdown.subParser('makeMarkdown.node')(children[i], globals);\n }\n txt += '](';\n txt += '<' + node.getAttribute('href') + '>';\n if (node.hasAttribute('title')) {\n txt += ' \"' + node.getAttribute('title') + '\"';\n }\n txt += ')';\n }\n return txt;\n});\n\r\nshowdown.subParser('makeMarkdown.list', function (node, globals, type) {\n\n var txt = '';\n if (!node.hasChildNodes()) {\n return '';\n }\n var listItems = node.childNodes,\n listItemsLenght = listItems.length,\n listNum = node.getAttribute('start') || 1;\n\n for (var i = 0; i < listItemsLenght; ++i) {\n if (typeof listItems[i].tagName === 'undefined' || listItems[i].tagName.toLowerCase() !== 'li') {\n continue;\n }\n\n // define the bullet to use in list\n var bullet = '';\n if (type === 'ol') {\n bullet = listNum.toString() + '. ';\n } else {\n bullet = '- ';\n }\n\n // parse list item\n txt += bullet + showdown.subParser('makeMarkdown.listItem')(listItems[i], globals);\n ++listNum;\n }\n\n // add comment at the end to prevent consecutive lists to be parsed as one\n txt += '\\n\\n';\n return txt.trim();\n});\n\r\nshowdown.subParser('makeMarkdown.listItem', function (node, globals) {\n\n var listItemTxt = '';\n\n var children = node.childNodes,\n childrenLenght = children.length;\n\n for (var i = 0; i < childrenLenght; ++i) {\n listItemTxt += showdown.subParser('makeMarkdown.node')(children[i], globals);\n }\n // if it's only one liner, we need to add a newline at the end\n if (!/\\n$/.test(listItemTxt)) {\n listItemTxt += '\\n';\n } else {\n // it's multiparagraph, so we need to indent\n listItemTxt = listItemTxt\n .split('\\n')\n .join('\\n ')\n .replace(/^ {4}$/gm, '')\n .replace(/\\n\\n+/g, '\\n\\n');\n }\n\n return listItemTxt;\n});\n\r\n\n\nshowdown.subParser('makeMarkdown.node', function (node, globals, spansOnly) {\n\n spansOnly = spansOnly || false;\n\n var txt = '';\n\n // edge case of text without wrapper paragraph\n if (node.nodeType === 3) {\n return showdown.subParser('makeMarkdown.txt')(node, globals);\n }\n\n // HTML comment\n if (node.nodeType === 8) {\n return '\\n\\n';\n }\n\n // process only node elements\n if (node.nodeType !== 1) {\n return '';\n }\n\n var tagName = node.tagName.toLowerCase();\n\n switch (tagName) {\n\n //\n // BLOCKS\n //\n case 'h1':\n if (!spansOnly) { txt = showdown.subParser('makeMarkdown.header')(node, globals, 1) + '\\n\\n'; }\n break;\n case 'h2':\n if (!spansOnly) { txt = showdown.subParser('makeMarkdown.header')(node, globals, 2) + '\\n\\n'; }\n break;\n case 'h3':\n if (!spansOnly) { txt = showdown.subParser('makeMarkdown.header')(node, globals, 3) + '\\n\\n'; }\n break;\n case 'h4':\n if (!spansOnly) { txt = showdown.subParser('makeMarkdown.header')(node, globals, 4) + '\\n\\n'; }\n break;\n case 'h5':\n if (!spansOnly) { txt = showdown.subParser('makeMarkdown.header')(node, globals, 5) + '\\n\\n'; }\n break;\n case 'h6':\n if (!spansOnly) { txt = showdown.subParser('makeMarkdown.header')(node, globals, 6) + '\\n\\n'; }\n break;\n\n case 'p':\n if (!spansOnly) { txt = showdown.subParser('makeMarkdown.paragraph')(node, globals) + '\\n\\n'; }\n break;\n\n case 'blockquote':\n if (!spansOnly) { txt = showdown.subParser('makeMarkdown.blockquote')(node, globals) + '\\n\\n'; }\n break;\n\n case 'hr':\n if (!spansOnly) { txt = showdown.subParser('makeMarkdown.hr')(node, globals) + '\\n\\n'; }\n break;\n\n case 'ol':\n if (!spansOnly) { txt = showdown.subParser('makeMarkdown.list')(node, globals, 'ol') + '\\n\\n'; }\n break;\n\n case 'ul':\n if (!spansOnly) { txt = showdown.subParser('makeMarkdown.list')(node, globals, 'ul') + '\\n\\n'; }\n break;\n\n case 'precode':\n if (!spansOnly) { txt = showdown.subParser('makeMarkdown.codeBlock')(node, globals) + '\\n\\n'; }\n break;\n\n case 'pre':\n if (!spansOnly) { txt = showdown.subParser('makeMarkdown.pre')(node, globals) + '\\n\\n'; }\n break;\n\n case 'table':\n if (!spansOnly) { txt = showdown.subParser('makeMarkdown.table')(node, globals) + '\\n\\n'; }\n break;\n\n //\n // SPANS\n //\n case 'code':\n txt = showdown.subParser('makeMarkdown.codeSpan')(node, globals);\n break;\n\n case 'em':\n case 'i':\n txt = showdown.subParser('makeMarkdown.emphasis')(node, globals);\n break;\n\n case 'strong':\n case 'b':\n txt = showdown.subParser('makeMarkdown.strong')(node, globals);\n break;\n\n case 'del':\n txt = showdown.subParser('makeMarkdown.strikethrough')(node, globals);\n break;\n\n case 'a':\n txt = showdown.subParser('makeMarkdown.links')(node, globals);\n break;\n\n case 'img':\n txt = showdown.subParser('makeMarkdown.image')(node, globals);\n break;\n\n default:\n txt = node.outerHTML + '\\n\\n';\n }\n\n // common normalization\n // TODO eventually\n\n return txt;\n});\n\r\nshowdown.subParser('makeMarkdown.paragraph', function (node, globals) {\n\n var txt = '';\n if (node.hasChildNodes()) {\n var children = node.childNodes,\n childrenLength = children.length;\n for (var i = 0; i < childrenLength; ++i) {\n txt += showdown.subParser('makeMarkdown.node')(children[i], globals);\n }\n }\n\n // some text normalization\n txt = txt.trim();\n\n return txt;\n});\n\r\nshowdown.subParser('makeMarkdown.pre', function (node, globals) {\n\n var num = node.getAttribute('prenum');\n return '' + globals.preList[num] + '
';\n});\n\r\nshowdown.subParser('makeMarkdown.strikethrough', function (node, globals) {\n\n var txt = '';\n if (node.hasChildNodes()) {\n txt += '~~';\n var children = node.childNodes,\n childrenLength = children.length;\n for (var i = 0; i < childrenLength; ++i) {\n txt += showdown.subParser('makeMarkdown.node')(children[i], globals);\n }\n txt += '~~';\n }\n return txt;\n});\n\r\nshowdown.subParser('makeMarkdown.strong', function (node, globals) {\n\n var txt = '';\n if (node.hasChildNodes()) {\n txt += '**';\n var children = node.childNodes,\n childrenLength = children.length;\n for (var i = 0; i < childrenLength; ++i) {\n txt += showdown.subParser('makeMarkdown.node')(children[i], globals);\n }\n txt += '**';\n }\n return txt;\n});\n\r\nshowdown.subParser('makeMarkdown.table', function (node, globals) {\n\n var txt = '',\n tableArray = [[], []],\n headings = node.querySelectorAll('thead>tr>th'),\n rows = node.querySelectorAll('tbody>tr'),\n i, ii;\n for (i = 0; i < headings.length; ++i) {\n var headContent = showdown.subParser('makeMarkdown.tableCell')(headings[i], globals),\n allign = '---';\n\n if (headings[i].hasAttribute('style')) {\n var style = headings[i].getAttribute('style').toLowerCase().replace(/\\s/g, '');\n switch (style) {\n case 'text-align:left;':\n allign = ':---';\n break;\n case 'text-align:right;':\n allign = '---:';\n break;\n case 'text-align:center;':\n allign = ':---:';\n break;\n }\n }\n tableArray[0][i] = headContent.trim();\n tableArray[1][i] = allign;\n }\n\n for (i = 0; i < rows.length; ++i) {\n var r = tableArray.push([]) - 1,\n cols = rows[i].getElementsByTagName('td');\n\n for (ii = 0; ii < headings.length; ++ii) {\n var cellContent = ' ';\n if (typeof cols[ii] !== 'undefined') {\n cellContent = showdown.subParser('makeMarkdown.tableCell')(cols[ii], globals);\n }\n tableArray[r].push(cellContent);\n }\n }\n\n var cellSpacesCount = 3;\n for (i = 0; i < tableArray.length; ++i) {\n for (ii = 0; ii < tableArray[i].length; ++ii) {\n var strLen = tableArray[i][ii].length;\n if (strLen > cellSpacesCount) {\n cellSpacesCount = strLen;\n }\n }\n }\n\n for (i = 0; i < tableArray.length; ++i) {\n for (ii = 0; ii < tableArray[i].length; ++ii) {\n if (i === 1) {\n if (tableArray[i][ii].slice(-1) === ':') {\n tableArray[i][ii] = showdown.helper.padEnd(tableArray[i][ii].slice(-1), cellSpacesCount - 1, '-') + ':';\n } else {\n tableArray[i][ii] = showdown.helper.padEnd(tableArray[i][ii], cellSpacesCount, '-');\n }\n } else {\n tableArray[i][ii] = showdown.helper.padEnd(tableArray[i][ii], cellSpacesCount);\n }\n }\n txt += '| ' + tableArray[i].join(' | ') + ' |\\n';\n }\n\n return txt.trim();\n});\n\r\nshowdown.subParser('makeMarkdown.tableCell', function (node, globals) {\n\n var txt = '';\n if (!node.hasChildNodes()) {\n return '';\n }\n var children = node.childNodes,\n childrenLength = children.length;\n\n for (var i = 0; i < childrenLength; ++i) {\n txt += showdown.subParser('makeMarkdown.node')(children[i], globals, true);\n }\n return txt.trim();\n});\n\r\nshowdown.subParser('makeMarkdown.txt', function (node) {\n\n var txt = node.nodeValue;\n\n // multiple spaces are collapsed\n txt = txt.replace(/ +/g, ' ');\n\n // replace the custom ¨NBSP; with a space\n txt = txt.replace(/¨NBSP;/g, ' ');\n\n // \", <, > and & should replace escaped html entities\n txt = showdown.helper.unescapeHTMLEntities(txt);\n\n // escape markdown magic characters\n // emphasis, strong and strikethrough - can appear everywhere\n // we also escape pipe (|) because of tables\n // and escape ` because of code blocks and spans\n txt = txt.replace(/([*_~|`])/g, '\\\\$1');\n\n // escape > because of blockquotes\n txt = txt.replace(/^(\\s*)>/g, '\\\\$1>');\n\n // hash character, only troublesome at the beginning of a line because of headers\n txt = txt.replace(/^#/gm, '\\\\#');\n\n // horizontal rules\n txt = txt.replace(/^(\\s*)([-=]{3,})(\\s*)$/, '$1\\\\$2$3');\n\n // dot, because of ordered lists, only troublesome at the beginning of a line when preceded by an integer\n txt = txt.replace(/^( {0,3}\\d+)\\./gm, '$1\\\\.');\n\n // +, * and -, at the beginning of a line becomes a list, so we need to escape them also (asterisk was already escaped)\n txt = txt.replace(/^( {0,3})([+-])/gm, '$1\\\\$2');\n\n // images and links, ] followed by ( is problematic, so we escape it\n txt = txt.replace(/]([\\s]*)\\(/g, '\\\\]$1\\\\(');\n\n // reference URIs must also be escaped\n txt = txt.replace(/^ {0,3}\\[([\\S \\t]*?)]:/gm, '\\\\[$1]:');\n\n return txt;\n});\n\r\nvar root = this;\n\n// AMD Loader\nif ( module.exports) {\n module.exports = showdown;\n\n// Regular Browser loader\n} else {\n root.showdown = showdown;\n}\n}).call(commonjsGlobal);\r\n\n\n});\n\nvar Yamde_styles = createCommonjsModule(function (module, exports) {\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.useStyles = void 0;\n\nexports.useStyles = reactJss_esm.createUseStyles(function (theme) { return ({\n yamde: {\n margin: '16px 0',\n width: '100%',\n boxSizing: 'initial',\n '@media screen and (max-width: 767px)': {\n overflow: 'hidden',\n },\n },\n toolbar: {\n display: 'flex',\n marginBottom: '-1px',\n maxHeight: '36px',\n width: '100%',\n },\n buttons: {\n display: 'flex',\n '@media screen and (max-width: 767px)': {\n display: 'none',\n },\n },\n mobileButton: {\n display: 'none',\n '@media screen and (max-width: 767px)': {\n display: 'grid',\n gridTemplateColumns: 'repeat(auto-fill, minmax(34px, 1fr))',\n marginTop: '-1px',\n },\n },\n viewSwitch: {\n marginLeft: 'auto',\n display: 'flex',\n marginTop: '-1px',\n },\n viewButton: {\n cursor: 'pointer',\n fontSize: '14px',\n backgroundColor: theme.switchButtonBackgroundColor,\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n border: \"1px solid \" + theme.switchButtonBorderColor,\n transition: 'background-color 0.2s ease',\n fontWeight: 400,\n padding: '0 10px',\n width: '65px',\n height: '35px',\n color: theme.switchButtonColorView,\n zIndex: 1,\n fontFamily: 'Helvetica, Arial, sans-serif',\n '&:first-child': {\n borderRight: 0,\n },\n '&:hover': {\n color: theme.switchButtonColorHover,\n backgroundColor: theme.switchButtonBackgroundColorHover,\n transition: 'background-color 0.2s ease',\n },\n },\n activeView: {\n borderBottom: \"1px solid \" + theme.switchButtonBorderColorActiveView,\n color: theme.switchButtonColorActiveView,\n backgroundColor: theme.switchButtonBackgroundColorActiveView,\n '&:hover': {\n backgroundColor: theme.switchButtonBackgroundColorActiveView,\n },\n },\n contentArea: {\n marginTop: '-1px',\n display: 'flex',\n '& > textarea': {\n borderRadius: 0,\n border: \"1px solid \" + theme.textAreaBorderColor,\n width: 'calc(100% - 34px)',\n padding: '16px',\n resize: 'none',\n background: theme.contentAreaBackgroundColor,\n color: theme.textColor,\n '&::selection': {\n backgroundColor: theme.textAreaSelectionBackgroundColor,\n color: theme.textAreaSelectionColor,\n },\n '&:active, &:focus': {\n border: \"1px solid \" + theme.textAreaBorderColor,\n outline: 'none',\n },\n },\n },\n preview: {\n background: theme.contentAreaBackgroundColor,\n border: \"1px solid \" + theme.previewAreaBorderColor,\n width: 'calc(100% - 34px)',\n padding: '16px',\n minHeight: '50px',\n fontSize: '1rem',\n fontWeight: 400,\n fontFamily: 'Helvetica, Arial, sans-serif',\n '& > p': {\n color: theme.textColor + \" !important\",\n fontFamily: 'inherit',\n textAlign: 'left',\n fontSize: '16px',\n fontWeight: 400,\n marginBottom: '1rem',\n marginTop: 0,\n '& > img': {\n maxWidth: '100%',\n },\n },\n '& code': {\n fontFamily: 'source-code-pro, Menlo, Monaco, Consolas, \"Courier New\", monospace',\n fontSize: '12px',\n background: theme.codeBlockBackgroundColor,\n padding: '4px 8px',\n },\n '& pre': {\n width: 'auto',\n background: theme.codeBlockBackgroundColor,\n padding: '4px 8px',\n },\n '& > h1, & > h2, & > h3, & > h4, & > h5, & > h6': {\n color: theme.textColor + \" !important\",\n fontFamily: 'inherit',\n textAlign: 'left',\n },\n '& a': {\n textDecoration: 'underline !important',\n fontFamily: 'inherit',\n color: theme.linkColor + \" !important\",\n },\n '& > blockquote': {\n padding: '8px 24px',\n lineHeight: '1em',\n marginBlockStart: '1em',\n marginBlockEnd: '1em',\n marginInlineStart: 0,\n marginInlineEnd: 0,\n fontStyle: 'italic',\n borderLeft: \"5px solid \" + theme.quoteAdornmentColor,\n fontSize: '1.15em',\n '& > p': {\n color: theme.textColor + \" !important\",\n },\n },\n '& > table': {\n borderCollapse: 'collapse',\n '& th, & td': {\n border: \"1px solid \" + theme.tableBorderColor,\n padding: '4px',\n color: theme.textColor,\n },\n },\n '& ul, & ol, & li': {\n color: theme.textColor,\n },\n },\n button: {\n cursor: 'pointer',\n backgroundColor: theme.buttonBackgroundColor,\n fontSize: '13px',\n fontFamily: 'Courier, Helvetica, Arial, sans-serif',\n fontWeight: 400,\n width: '34px',\n height: '34px',\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n border: \"1px solid \" + theme.buttonBorderColor,\n transition: 'background-color 0.2s ease',\n marginRight: '-1px',\n color: theme.buttonColor,\n '&:hover': {\n backgroundColor: theme.buttonBackgroundColorHover,\n transition: 'background-color 0.2s ease',\n },\n '& > svg': {\n width: '16px',\n height: '16px',\n },\n },\n}); });\n});\n\nvar _typeof_1 = createCommonjsModule(function (module) {\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n module.exports = _typeof = function _typeof(obj) {\n return typeof obj;\n };\n\n module.exports[\"default\"] = module.exports, module.exports.__esModule = true;\n } else {\n module.exports = _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n\n module.exports[\"default\"] = module.exports, module.exports.__esModule = true;\n }\n\n return _typeof(obj);\n}\n\nmodule.exports = _typeof;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;\n});\n\nvar interopRequireWildcard = createCommonjsModule(function (module) {\nvar _typeof = _typeof_1[\"default\"];\n\nfunction _getRequireWildcardCache(nodeInterop) {\n if (typeof WeakMap !== \"function\") return null;\n var cacheBabelInterop = new WeakMap();\n var cacheNodeInterop = new WeakMap();\n return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) {\n return nodeInterop ? cacheNodeInterop : cacheBabelInterop;\n })(nodeInterop);\n}\n\nfunction _interopRequireWildcard(obj, nodeInterop) {\n if (!nodeInterop && obj && obj.__esModule) {\n return obj;\n }\n\n if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") {\n return {\n \"default\": obj\n };\n }\n\n var cache = _getRequireWildcardCache(nodeInterop);\n\n if (cache && cache.has(obj)) {\n return cache.get(obj);\n }\n\n var newObj = {};\n var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;\n\n for (var key in obj) {\n if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;\n\n if (desc && (desc.get || desc.set)) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n\n newObj[\"default\"] = obj;\n\n if (cache) {\n cache.set(obj, newObj);\n }\n\n return newObj;\n}\n\nmodule.exports = _interopRequireWildcard;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;\n});\n\nvar interopRequireDefault = createCommonjsModule(function (module) {\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nmodule.exports = _interopRequireDefault;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;\n});\n\nvar defineProperty = createCommonjsModule(function (module) {\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nmodule.exports = _defineProperty;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;\n});\n\nvar objectSpread2 = createCommonjsModule(function (module) {\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n\n if (enumerableOnly) {\n symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n }\n\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nmodule.exports = _objectSpread2;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;\n});\n\nvar BoldOutlined_1 = createCommonjsModule(function (module, exports) {\n// This icon file is generated automatically.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar BoldOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M697.8 481.4c33.6-35 54.2-82.3 54.2-134.3v-10.2C752 229.3 663.9 142 555.3 142H259.4c-15.1 0-27.4 12.3-27.4 27.4v679.1c0 16.3 13.2 29.5 29.5 29.5h318.7c117 0 211.8-94.2 211.8-210.5v-11c0-73-37.4-137.3-94.2-175.1zM328 238h224.7c57.1 0 103.3 44.4 103.3 99.3v9.5c0 54.8-46.3 99.3-103.3 99.3H328V238zm366.6 429.4c0 62.9-51.7 113.9-115.5 113.9H328V542.7h251.1c63.8 0 115.5 51 115.5 113.9v10.8z\" } }] }, \"name\": \"bold\", \"theme\": \"outlined\" };\nexports.default = BoldOutlined;\n});\n\nvar arrayWithHoles = createCommonjsModule(function (module) {\nfunction _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nmodule.exports = _arrayWithHoles;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;\n});\n\nvar iterableToArrayLimit = createCommonjsModule(function (module) {\nfunction _iterableToArrayLimit(arr, i) {\n var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"];\n\n if (_i == null) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n\n var _s, _e;\n\n try {\n for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}\n\nmodule.exports = _iterableToArrayLimit;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;\n});\n\nvar arrayLikeToArray = createCommonjsModule(function (module) {\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}\n\nmodule.exports = _arrayLikeToArray;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;\n});\n\nvar unsupportedIterableToArray = createCommonjsModule(function (module) {\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}\n\nmodule.exports = _unsupportedIterableToArray;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;\n});\n\nvar nonIterableRest = createCommonjsModule(function (module) {\nfunction _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nmodule.exports = _nonIterableRest;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;\n});\n\nvar slicedToArray = createCommonjsModule(function (module) {\nfunction _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}\n\nmodule.exports = _slicedToArray;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;\n});\n\nvar objectWithoutPropertiesLoose = createCommonjsModule(function (module) {\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nmodule.exports = _objectWithoutPropertiesLoose;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;\n});\n\nvar objectWithoutProperties = createCommonjsModule(function (module) {\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\nmodule.exports = _objectWithoutProperties;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;\n});\n\nvar classnames = createCommonjsModule(function (module) {\n/*!\n Copyright (c) 2018 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames() {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\tif (arg.length) {\n\t\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\t\tif (inner) {\n\t\t\t\t\t\tclasses.push(inner);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tif (arg.toString === Object.prototype.toString) {\n\t\t\t\t\tfor (var key in arg) {\n\t\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tclasses.push(arg.toString());\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif ( module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n});\n\nvar Context = createCommonjsModule(function (module, exports) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\n\n\nvar IconContext = /*#__PURE__*/(0, react.createContext)({});\nvar _default = IconContext;\nexports.default = _default;\n});\n\n/**\n * Take input from [0, n] and return it as [0, 1]\n * @hidden\n */\nfunction bound01(n, max) {\n if (isOnePointZero(n)) {\n n = '100%';\n }\n var isPercent = isPercentage(n);\n n = max === 360 ? n : Math.min(max, Math.max(0, parseFloat(n)));\n // Automatically convert percentage into number\n if (isPercent) {\n n = parseInt(String(n * max), 10) / 100;\n }\n // Handle floating point rounding errors\n if (Math.abs(n - max) < 0.000001) {\n return 1;\n }\n // Convert into [0, 1] range if it isn't already\n if (max === 360) {\n // If n is a hue given in degrees,\n // wrap around out-of-range values into [0, 360] range\n // then convert into [0, 1].\n n = (n < 0 ? (n % max) + max : n % max) / parseFloat(String(max));\n }\n else {\n // If n not a hue given in degrees\n // Convert into [0, 1] range if it isn't already.\n n = (n % max) / parseFloat(String(max));\n }\n return n;\n}\n/**\n * Need to handle 1.0 as 100%, since once it is a number, there is no difference between it and 1\n * \n * @hidden\n */\nfunction isOnePointZero(n) {\n return typeof n === 'string' && n.indexOf('.') !== -1 && parseFloat(n) === 1;\n}\n/**\n * Check to see if string passed in is a percentage\n * @hidden\n */\nfunction isPercentage(n) {\n return typeof n === 'string' && n.indexOf('%') !== -1;\n}\n/**\n * Return a valid alpha value [0,1] with all invalid values being set to 1\n * @hidden\n */\nfunction boundAlpha(a) {\n a = parseFloat(a);\n if (isNaN(a) || a < 0 || a > 1) {\n a = 1;\n }\n return a;\n}\n/**\n * Replace a decimal with it's percentage value\n * @hidden\n */\nfunction convertToPercentage(n) {\n if (n <= 1) {\n return Number(n) * 100 + \"%\";\n }\n return n;\n}\n/**\n * Force a hex value to have 2 characters\n * @hidden\n */\nfunction pad2(c) {\n return c.length === 1 ? '0' + c : String(c);\n}\n\n// `rgbToHsl`, `rgbToHsv`, `hslToRgb`, `hsvToRgb` modified from:\n// \n/**\n * Handle bounds / percentage checking to conform to CSS color spec\n * \n * *Assumes:* r, g, b in [0, 255] or [0, 1]\n * *Returns:* { r, g, b } in [0, 255]\n */\nfunction rgbToRgb(r, g, b) {\n return {\n r: bound01(r, 255) * 255,\n g: bound01(g, 255) * 255,\n b: bound01(b, 255) * 255,\n };\n}\nfunction hue2rgb(p, q, t) {\n if (t < 0) {\n t += 1;\n }\n if (t > 1) {\n t -= 1;\n }\n if (t < 1 / 6) {\n return p + (q - p) * (6 * t);\n }\n if (t < 1 / 2) {\n return q;\n }\n if (t < 2 / 3) {\n return p + (q - p) * (2 / 3 - t) * 6;\n }\n return p;\n}\n/**\n * Converts an HSL color value to RGB.\n *\n * *Assumes:* h is contained in [0, 1] or [0, 360] and s and l are contained [0, 1] or [0, 100]\n * *Returns:* { r, g, b } in the set [0, 255]\n */\nfunction hslToRgb(h, s, l) {\n var r;\n var g;\n var b;\n h = bound01(h, 360);\n s = bound01(s, 100);\n l = bound01(l, 100);\n if (s === 0) {\n // achromatic\n g = l;\n b = l;\n r = l;\n }\n else {\n var q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n var p = 2 * l - q;\n r = hue2rgb(p, q, h + 1 / 3);\n g = hue2rgb(p, q, h);\n b = hue2rgb(p, q, h - 1 / 3);\n }\n return { r: r * 255, g: g * 255, b: b * 255 };\n}\n/**\n * Converts an RGB color value to HSV\n *\n * *Assumes:* r, g, and b are contained in the set [0, 255] or [0, 1]\n * *Returns:* { h, s, v } in [0,1]\n */\nfunction rgbToHsv(r, g, b) {\n r = bound01(r, 255);\n g = bound01(g, 255);\n b = bound01(b, 255);\n var max = Math.max(r, g, b);\n var min = Math.min(r, g, b);\n var h = 0;\n var v = max;\n var d = max - min;\n var s = max === 0 ? 0 : d / max;\n if (max === min) {\n h = 0; // achromatic\n }\n else {\n switch (max) {\n case r:\n h = (g - b) / d + (g < b ? 6 : 0);\n break;\n case g:\n h = (b - r) / d + 2;\n break;\n case b:\n h = (r - g) / d + 4;\n break;\n }\n h /= 6;\n }\n return { h: h, s: s, v: v };\n}\n/**\n * Converts an HSV color value to RGB.\n *\n * *Assumes:* h is contained in [0, 1] or [0, 360] and s and v are contained in [0, 1] or [0, 100]\n * *Returns:* { r, g, b } in the set [0, 255]\n */\nfunction hsvToRgb(h, s, v) {\n h = bound01(h, 360) * 6;\n s = bound01(s, 100);\n v = bound01(v, 100);\n var i = Math.floor(h);\n var f = h - i;\n var p = v * (1 - s);\n var q = v * (1 - f * s);\n var t = v * (1 - (1 - f) * s);\n var mod = i % 6;\n var r = [v, q, p, p, t, v][mod];\n var g = [t, v, v, q, p, p][mod];\n var b = [p, p, t, v, v, q][mod];\n return { r: r * 255, g: g * 255, b: b * 255 };\n}\n/**\n * Converts an RGB color to hex\n *\n * Assumes r, g, and b are contained in the set [0, 255]\n * Returns a 3 or 6 character hex\n */\nfunction rgbToHex(r, g, b, allow3Char) {\n var hex = [\n pad2(Math.round(r).toString(16)),\n pad2(Math.round(g).toString(16)),\n pad2(Math.round(b).toString(16)),\n ];\n // Return a 3 character hex if possible\n if (allow3Char &&\n hex[0].startsWith(hex[0].charAt(1)) &&\n hex[1].startsWith(hex[1].charAt(1)) &&\n hex[2].startsWith(hex[2].charAt(1))) {\n return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0);\n }\n return hex.join('');\n}\n/** Converts a hex value to a decimal */\nfunction convertHexToDecimal(h) {\n return parseIntFromHex(h) / 255;\n}\n/** Parse a base-16 hex value into a base-10 integer */\nfunction parseIntFromHex(val) {\n return parseInt(val, 16);\n}\n\n// https://github.com/bahamas10/css-color-names/blob/master/css-color-names.json\n/**\n * @hidden\n */\nvar names = {\n aliceblue: '#f0f8ff',\n antiquewhite: '#faebd7',\n aqua: '#00ffff',\n aquamarine: '#7fffd4',\n azure: '#f0ffff',\n beige: '#f5f5dc',\n bisque: '#ffe4c4',\n black: '#000000',\n blanchedalmond: '#ffebcd',\n blue: '#0000ff',\n blueviolet: '#8a2be2',\n brown: '#a52a2a',\n burlywood: '#deb887',\n cadetblue: '#5f9ea0',\n chartreuse: '#7fff00',\n chocolate: '#d2691e',\n coral: '#ff7f50',\n cornflowerblue: '#6495ed',\n cornsilk: '#fff8dc',\n crimson: '#dc143c',\n cyan: '#00ffff',\n darkblue: '#00008b',\n darkcyan: '#008b8b',\n darkgoldenrod: '#b8860b',\n darkgray: '#a9a9a9',\n darkgreen: '#006400',\n darkgrey: '#a9a9a9',\n darkkhaki: '#bdb76b',\n darkmagenta: '#8b008b',\n darkolivegreen: '#556b2f',\n darkorange: '#ff8c00',\n darkorchid: '#9932cc',\n darkred: '#8b0000',\n darksalmon: '#e9967a',\n darkseagreen: '#8fbc8f',\n darkslateblue: '#483d8b',\n darkslategray: '#2f4f4f',\n darkslategrey: '#2f4f4f',\n darkturquoise: '#00ced1',\n darkviolet: '#9400d3',\n deeppink: '#ff1493',\n deepskyblue: '#00bfff',\n dimgray: '#696969',\n dimgrey: '#696969',\n dodgerblue: '#1e90ff',\n firebrick: '#b22222',\n floralwhite: '#fffaf0',\n forestgreen: '#228b22',\n fuchsia: '#ff00ff',\n gainsboro: '#dcdcdc',\n ghostwhite: '#f8f8ff',\n goldenrod: '#daa520',\n gold: '#ffd700',\n gray: '#808080',\n green: '#008000',\n greenyellow: '#adff2f',\n grey: '#808080',\n honeydew: '#f0fff0',\n hotpink: '#ff69b4',\n indianred: '#cd5c5c',\n indigo: '#4b0082',\n ivory: '#fffff0',\n khaki: '#f0e68c',\n lavenderblush: '#fff0f5',\n lavender: '#e6e6fa',\n lawngreen: '#7cfc00',\n lemonchiffon: '#fffacd',\n lightblue: '#add8e6',\n lightcoral: '#f08080',\n lightcyan: '#e0ffff',\n lightgoldenrodyellow: '#fafad2',\n lightgray: '#d3d3d3',\n lightgreen: '#90ee90',\n lightgrey: '#d3d3d3',\n lightpink: '#ffb6c1',\n lightsalmon: '#ffa07a',\n lightseagreen: '#20b2aa',\n lightskyblue: '#87cefa',\n lightslategray: '#778899',\n lightslategrey: '#778899',\n lightsteelblue: '#b0c4de',\n lightyellow: '#ffffe0',\n lime: '#00ff00',\n limegreen: '#32cd32',\n linen: '#faf0e6',\n magenta: '#ff00ff',\n maroon: '#800000',\n mediumaquamarine: '#66cdaa',\n mediumblue: '#0000cd',\n mediumorchid: '#ba55d3',\n mediumpurple: '#9370db',\n mediumseagreen: '#3cb371',\n mediumslateblue: '#7b68ee',\n mediumspringgreen: '#00fa9a',\n mediumturquoise: '#48d1cc',\n mediumvioletred: '#c71585',\n midnightblue: '#191970',\n mintcream: '#f5fffa',\n mistyrose: '#ffe4e1',\n moccasin: '#ffe4b5',\n navajowhite: '#ffdead',\n navy: '#000080',\n oldlace: '#fdf5e6',\n olive: '#808000',\n olivedrab: '#6b8e23',\n orange: '#ffa500',\n orangered: '#ff4500',\n orchid: '#da70d6',\n palegoldenrod: '#eee8aa',\n palegreen: '#98fb98',\n paleturquoise: '#afeeee',\n palevioletred: '#db7093',\n papayawhip: '#ffefd5',\n peachpuff: '#ffdab9',\n peru: '#cd853f',\n pink: '#ffc0cb',\n plum: '#dda0dd',\n powderblue: '#b0e0e6',\n purple: '#800080',\n rebeccapurple: '#663399',\n red: '#ff0000',\n rosybrown: '#bc8f8f',\n royalblue: '#4169e1',\n saddlebrown: '#8b4513',\n salmon: '#fa8072',\n sandybrown: '#f4a460',\n seagreen: '#2e8b57',\n seashell: '#fff5ee',\n sienna: '#a0522d',\n silver: '#c0c0c0',\n skyblue: '#87ceeb',\n slateblue: '#6a5acd',\n slategray: '#708090',\n slategrey: '#708090',\n snow: '#fffafa',\n springgreen: '#00ff7f',\n steelblue: '#4682b4',\n tan: '#d2b48c',\n teal: '#008080',\n thistle: '#d8bfd8',\n tomato: '#ff6347',\n turquoise: '#40e0d0',\n violet: '#ee82ee',\n wheat: '#f5deb3',\n white: '#ffffff',\n whitesmoke: '#f5f5f5',\n yellow: '#ffff00',\n yellowgreen: '#9acd32',\n};\n\n/**\n * Given a string or object, convert that input to RGB\n *\n * Possible string inputs:\n * ```\n * \"red\"\n * \"#f00\" or \"f00\"\n * \"#ff0000\" or \"ff0000\"\n * \"#ff000000\" or \"ff000000\"\n * \"rgb 255 0 0\" or \"rgb (255, 0, 0)\"\n * \"rgb 1.0 0 0\" or \"rgb (1, 0, 0)\"\n * \"rgba (255, 0, 0, 1)\" or \"rgba 255, 0, 0, 1\"\n * \"rgba (1.0, 0, 0, 1)\" or \"rgba 1.0, 0, 0, 1\"\n * \"hsl(0, 100%, 50%)\" or \"hsl 0 100% 50%\"\n * \"hsla(0, 100%, 50%, 1)\" or \"hsla 0 100% 50%, 1\"\n * \"hsv(0, 100%, 100%)\" or \"hsv 0 100% 100%\"\n * ```\n */\nfunction inputToRGB(color) {\n var rgb = { r: 0, g: 0, b: 0 };\n var a = 1;\n var s = null;\n var v = null;\n var l = null;\n var ok = false;\n var format = false;\n if (typeof color === 'string') {\n color = stringInputToObject(color);\n }\n if (typeof color === 'object') {\n if (isValidCSSUnit(color.r) && isValidCSSUnit(color.g) && isValidCSSUnit(color.b)) {\n rgb = rgbToRgb(color.r, color.g, color.b);\n ok = true;\n format = String(color.r).substr(-1) === '%' ? 'prgb' : 'rgb';\n }\n else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.v)) {\n s = convertToPercentage(color.s);\n v = convertToPercentage(color.v);\n rgb = hsvToRgb(color.h, s, v);\n ok = true;\n format = 'hsv';\n }\n else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.l)) {\n s = convertToPercentage(color.s);\n l = convertToPercentage(color.l);\n rgb = hslToRgb(color.h, s, l);\n ok = true;\n format = 'hsl';\n }\n if (Object.prototype.hasOwnProperty.call(color, 'a')) {\n a = color.a;\n }\n }\n a = boundAlpha(a);\n return {\n ok: ok,\n format: color.format || format,\n r: Math.min(255, Math.max(rgb.r, 0)),\n g: Math.min(255, Math.max(rgb.g, 0)),\n b: Math.min(255, Math.max(rgb.b, 0)),\n a: a,\n };\n}\n// \nvar CSS_INTEGER = '[-\\\\+]?\\\\d+%?';\n// \nvar CSS_NUMBER = '[-\\\\+]?\\\\d*\\\\.\\\\d+%?';\n// Allow positive/negative integer/number. Don't capture the either/or, just the entire outcome.\nvar CSS_UNIT = \"(?:\" + CSS_NUMBER + \")|(?:\" + CSS_INTEGER + \")\";\n// Actual matching.\n// Parentheses and commas are optional, but not required.\n// Whitespace can take the place of commas or opening paren\nvar PERMISSIVE_MATCH3 = \"[\\\\s|\\\\(]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")\\\\s*\\\\)?\";\nvar PERMISSIVE_MATCH4 = \"[\\\\s|\\\\(]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")[,|\\\\s]+(\" + CSS_UNIT + \")\\\\s*\\\\)?\";\nvar matchers = {\n CSS_UNIT: new RegExp(CSS_UNIT),\n rgb: new RegExp('rgb' + PERMISSIVE_MATCH3),\n rgba: new RegExp('rgba' + PERMISSIVE_MATCH4),\n hsl: new RegExp('hsl' + PERMISSIVE_MATCH3),\n hsla: new RegExp('hsla' + PERMISSIVE_MATCH4),\n hsv: new RegExp('hsv' + PERMISSIVE_MATCH3),\n hsva: new RegExp('hsva' + PERMISSIVE_MATCH4),\n hex3: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex6: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,\n hex4: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex8: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,\n};\n/**\n * Permissive string parsing. Take in a number of formats, and output an object\n * based on detected format. Returns `{ r, g, b }` or `{ h, s, l }` or `{ h, s, v}`\n */\nfunction stringInputToObject(color) {\n color = color.trim().toLowerCase();\n if (color.length === 0) {\n return false;\n }\n var named = false;\n if (names[color]) {\n color = names[color];\n named = true;\n }\n else if (color === 'transparent') {\n return { r: 0, g: 0, b: 0, a: 0, format: 'name' };\n }\n // Try to match string input using regular expressions.\n // Keep most of the number bounding out of this function - don't worry about [0,1] or [0,100] or [0,360]\n // Just return an object and let the conversion functions handle that.\n // This way the result will be the same whether the tinycolor is initialized with string or object.\n var match = matchers.rgb.exec(color);\n if (match) {\n return { r: match[1], g: match[2], b: match[3] };\n }\n match = matchers.rgba.exec(color);\n if (match) {\n return { r: match[1], g: match[2], b: match[3], a: match[4] };\n }\n match = matchers.hsl.exec(color);\n if (match) {\n return { h: match[1], s: match[2], l: match[3] };\n }\n match = matchers.hsla.exec(color);\n if (match) {\n return { h: match[1], s: match[2], l: match[3], a: match[4] };\n }\n match = matchers.hsv.exec(color);\n if (match) {\n return { h: match[1], s: match[2], v: match[3] };\n }\n match = matchers.hsva.exec(color);\n if (match) {\n return { h: match[1], s: match[2], v: match[3], a: match[4] };\n }\n match = matchers.hex8.exec(color);\n if (match) {\n return {\n r: parseIntFromHex(match[1]),\n g: parseIntFromHex(match[2]),\n b: parseIntFromHex(match[3]),\n a: convertHexToDecimal(match[4]),\n format: named ? 'name' : 'hex8',\n };\n }\n match = matchers.hex6.exec(color);\n if (match) {\n return {\n r: parseIntFromHex(match[1]),\n g: parseIntFromHex(match[2]),\n b: parseIntFromHex(match[3]),\n format: named ? 'name' : 'hex',\n };\n }\n match = matchers.hex4.exec(color);\n if (match) {\n return {\n r: parseIntFromHex(match[1] + match[1]),\n g: parseIntFromHex(match[2] + match[2]),\n b: parseIntFromHex(match[3] + match[3]),\n a: convertHexToDecimal(match[4] + match[4]),\n format: named ? 'name' : 'hex8',\n };\n }\n match = matchers.hex3.exec(color);\n if (match) {\n return {\n r: parseIntFromHex(match[1] + match[1]),\n g: parseIntFromHex(match[2] + match[2]),\n b: parseIntFromHex(match[3] + match[3]),\n format: named ? 'name' : 'hex',\n };\n }\n return false;\n}\n/**\n * Check to see if it looks like a CSS unit\n * (see `matchers` above for definition).\n */\nfunction isValidCSSUnit(color) {\n return Boolean(matchers.CSS_UNIT.exec(String(color)));\n}\n\nvar hueStep = 2; // 色相阶梯\n\nvar saturationStep = 0.16; // 饱和度阶梯,浅色部分\n\nvar saturationStep2 = 0.05; // 饱和度阶梯,深色部分\n\nvar brightnessStep1 = 0.05; // 亮度阶梯,浅色部分\n\nvar brightnessStep2 = 0.15; // 亮度阶梯,深色部分\n\nvar lightColorCount = 5; // 浅色数量,主色上\n\nvar darkColorCount = 4; // 深色数量,主色下\n// 暗色主题颜色映射关系表\n\nvar darkColorMap = [{\n index: 7,\n opacity: 0.15\n}, {\n index: 6,\n opacity: 0.25\n}, {\n index: 5,\n opacity: 0.3\n}, {\n index: 5,\n opacity: 0.45\n}, {\n index: 5,\n opacity: 0.65\n}, {\n index: 5,\n opacity: 0.85\n}, {\n index: 4,\n opacity: 0.9\n}, {\n index: 3,\n opacity: 0.95\n}, {\n index: 2,\n opacity: 0.97\n}, {\n index: 1,\n opacity: 0.98\n}]; // Wrapper function ported from TinyColor.prototype.toHsv\n// Keep it here because of `hsv.h * 360`\n\nfunction toHsv(_ref) {\n var r = _ref.r,\n g = _ref.g,\n b = _ref.b;\n var hsv = rgbToHsv(r, g, b);\n return {\n h: hsv.h * 360,\n s: hsv.s,\n v: hsv.v\n };\n} // Wrapper function ported from TinyColor.prototype.toHexString\n// Keep it here because of the prefix `#`\n\n\nfunction toHex(_ref2) {\n var r = _ref2.r,\n g = _ref2.g,\n b = _ref2.b;\n return \"#\".concat(rgbToHex(r, g, b, false));\n} // Wrapper function ported from TinyColor.prototype.mix, not treeshakable.\n// Amount in range [0, 1]\n// Assume color1 & color2 has no alpha, since the following src code did so.\n\n\nfunction mix(rgb1, rgb2, amount) {\n var p = amount / 100;\n var rgb = {\n r: (rgb2.r - rgb1.r) * p + rgb1.r,\n g: (rgb2.g - rgb1.g) * p + rgb1.g,\n b: (rgb2.b - rgb1.b) * p + rgb1.b\n };\n return rgb;\n}\n\nfunction getHue(hsv, i, light) {\n var hue; // 根据色相不同,色相转向不同\n\n if (Math.round(hsv.h) >= 60 && Math.round(hsv.h) <= 240) {\n hue = light ? Math.round(hsv.h) - hueStep * i : Math.round(hsv.h) + hueStep * i;\n } else {\n hue = light ? Math.round(hsv.h) + hueStep * i : Math.round(hsv.h) - hueStep * i;\n }\n\n if (hue < 0) {\n hue += 360;\n } else if (hue >= 360) {\n hue -= 360;\n }\n\n return hue;\n}\n\nfunction getSaturation(hsv, i, light) {\n // grey color don't change saturation\n if (hsv.h === 0 && hsv.s === 0) {\n return hsv.s;\n }\n\n var saturation;\n\n if (light) {\n saturation = hsv.s - saturationStep * i;\n } else if (i === darkColorCount) {\n saturation = hsv.s + saturationStep;\n } else {\n saturation = hsv.s + saturationStep2 * i;\n } // 边界值修正\n\n\n if (saturation > 1) {\n saturation = 1;\n } // 第一格的 s 限制在 0.06-0.1 之间\n\n\n if (light && i === lightColorCount && saturation > 0.1) {\n saturation = 0.1;\n }\n\n if (saturation < 0.06) {\n saturation = 0.06;\n }\n\n return Number(saturation.toFixed(2));\n}\n\nfunction getValue(hsv, i, light) {\n var value;\n\n if (light) {\n value = hsv.v + brightnessStep1 * i;\n } else {\n value = hsv.v - brightnessStep2 * i;\n }\n\n if (value > 1) {\n value = 1;\n }\n\n return Number(value.toFixed(2));\n}\n\nfunction generate(color) {\n var opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var patterns = [];\n var pColor = inputToRGB(color);\n\n for (var i = lightColorCount; i > 0; i -= 1) {\n var hsv = toHsv(pColor);\n var colorString = toHex(inputToRGB({\n h: getHue(hsv, i, true),\n s: getSaturation(hsv, i, true),\n v: getValue(hsv, i, true)\n }));\n patterns.push(colorString);\n }\n\n patterns.push(toHex(pColor));\n\n for (var _i = 1; _i <= darkColorCount; _i += 1) {\n var _hsv = toHsv(pColor);\n\n var _colorString = toHex(inputToRGB({\n h: getHue(_hsv, _i),\n s: getSaturation(_hsv, _i),\n v: getValue(_hsv, _i)\n }));\n\n patterns.push(_colorString);\n } // dark theme patterns\n\n\n if (opts.theme === 'dark') {\n return darkColorMap.map(function (_ref3) {\n var index = _ref3.index,\n opacity = _ref3.opacity;\n var darkColorString = toHex(mix(inputToRGB(opts.backgroundColor || '#141414'), inputToRGB(patterns[index]), opacity * 100));\n return darkColorString;\n });\n }\n\n return patterns;\n}\n\nvar presetPrimaryColors = {\n red: '#F5222D',\n volcano: '#FA541C',\n orange: '#FA8C16',\n gold: '#FAAD14',\n yellow: '#FADB14',\n lime: '#A0D911',\n green: '#52C41A',\n cyan: '#13C2C2',\n blue: '#1890FF',\n geekblue: '#2F54EB',\n purple: '#722ED1',\n magenta: '#EB2F96',\n grey: '#666666'\n};\nvar presetPalettes = {};\nvar presetDarkPalettes = {};\nObject.keys(presetPrimaryColors).forEach(function (key) {\n presetPalettes[key] = generate(presetPrimaryColors[key]);\n presetPalettes[key].primary = presetPalettes[key][5]; // dark presetPalettes\n\n presetDarkPalettes[key] = generate(presetPrimaryColors[key], {\n theme: 'dark',\n backgroundColor: '#141414'\n });\n presetDarkPalettes[key].primary = presetDarkPalettes[key][5];\n});\nvar red = presetPalettes.red;\nvar volcano = presetPalettes.volcano;\nvar gold = presetPalettes.gold;\nvar orange = presetPalettes.orange;\nvar yellow = presetPalettes.yellow;\nvar lime = presetPalettes.lime;\nvar green = presetPalettes.green;\nvar cyan = presetPalettes.cyan;\nvar blue = presetPalettes.blue;\nvar geekblue = presetPalettes.geekblue;\nvar purple = presetPalettes.purple;\nvar magenta = presetPalettes.magenta;\nvar grey = presetPalettes.grey;\n\nvar index_esm = /*#__PURE__*/Object.freeze({\n __proto__: null,\n blue: blue,\n cyan: cyan,\n geekblue: geekblue,\n generate: generate,\n gold: gold,\n green: green,\n grey: grey,\n lime: lime,\n magenta: magenta,\n orange: orange,\n presetDarkPalettes: presetDarkPalettes,\n presetPalettes: presetPalettes,\n presetPrimaryColors: presetPrimaryColors,\n purple: purple,\n red: red,\n volcano: volcano,\n yellow: yellow\n});\n\nvar warning_1 = createCommonjsModule(function (module, exports) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.warning = warning;\nexports.note = note;\nexports.resetWarned = resetWarned;\nexports.call = call;\nexports.warningOnce = warningOnce;\nexports.noteOnce = noteOnce;\nexports.default = void 0;\n\n/* eslint-disable no-console */\nvar warned = {};\n\nfunction warning(valid, message) {\n}\n\nfunction note(valid, message) {\n}\n\nfunction resetWarned() {\n warned = {};\n}\n\nfunction call(method, valid, message) {\n if (!valid && !warned[message]) {\n method(false, message);\n warned[message] = true;\n }\n}\n\nfunction warningOnce(valid, message) {\n call(warning, valid, message);\n}\n\nfunction noteOnce(valid, message) {\n call(note, valid, message);\n}\n\nvar _default = warningOnce;\n/* eslint-enable */\n\nexports.default = _default;\n});\n\nvar canUseDom_1 = createCommonjsModule(function (module, exports) {\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = canUseDom;\n\nfunction canUseDom() {\n return !!(typeof window !== 'undefined' && window.document && window.document.createElement);\n}\n});\n\nvar dynamicCSS = createCommonjsModule(function (module, exports) {\n\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.injectCSS = injectCSS;\nexports.updateCSS = updateCSS;\n\nvar _canUseDom = interopRequireDefault(canUseDom_1);\n\nvar MARK_KEY = \"rc-util-key\";\n\nfunction getContainer(option) {\n if (option.attachTo) {\n return option.attachTo;\n }\n\n var head = document.querySelector('head');\n return head || document.body;\n}\n\nfunction injectCSS(css) {\n var _option$csp;\n\n var option = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n if (!(0, _canUseDom.default)()) {\n return null;\n }\n\n var styleNode = document.createElement('style');\n\n if ((_option$csp = option.csp) === null || _option$csp === void 0 ? void 0 : _option$csp.nonce) {\n var _option$csp2;\n\n styleNode.nonce = (_option$csp2 = option.csp) === null || _option$csp2 === void 0 ? void 0 : _option$csp2.nonce;\n }\n\n styleNode.innerHTML = css;\n var container = getContainer(option);\n var firstChild = container.firstChild;\n\n if (option.prepend && container.prepend) {\n // Use `prepend` first\n container.prepend(styleNode);\n } else if (option.prepend && firstChild) {\n // Fallback to `insertBefore` like IE not support `prepend`\n container.insertBefore(styleNode, firstChild);\n } else {\n container.appendChild(styleNode);\n }\n\n return styleNode;\n}\n\nvar containerCache = new Map();\n\nfunction updateCSS(css, key) {\n var option = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var container = getContainer(option); // Get real parent\n\n if (!containerCache.has(container)) {\n var placeholderStyle = injectCSS('', option);\n var parentNode = placeholderStyle.parentNode;\n containerCache.set(container, parentNode);\n parentNode.removeChild(placeholderStyle);\n }\n\n var existNode = Array.from(containerCache.get(container).children).find(function (node) {\n return node.tagName === 'STYLE' && node[MARK_KEY] === key;\n });\n\n if (existNode) {\n var _option$csp3, _option$csp4;\n\n if (((_option$csp3 = option.csp) === null || _option$csp3 === void 0 ? void 0 : _option$csp3.nonce) && existNode.nonce !== ((_option$csp4 = option.csp) === null || _option$csp4 === void 0 ? void 0 : _option$csp4.nonce)) {\n var _option$csp5;\n\n existNode.nonce = (_option$csp5 = option.csp) === null || _option$csp5 === void 0 ? void 0 : _option$csp5.nonce;\n }\n\n if (existNode.innerHTML !== css) {\n existNode.innerHTML = css;\n }\n\n return existNode;\n }\n\n var newNode = injectCSS(css, option);\n newNode[MARK_KEY] = key;\n return newNode;\n}\n});\n\nvar utils = createCommonjsModule(function (module, exports) {\n\n\n\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.warning = warning;\nexports.isIconDefinition = isIconDefinition;\nexports.normalizeAttrs = normalizeAttrs;\nexports.generate = generate;\nexports.getSecondaryColor = getSecondaryColor;\nexports.normalizeTwoToneColors = normalizeTwoToneColors;\nexports.useInsertStyles = exports.iconStyles = exports.svgBaseProps = void 0;\n\nvar _objectSpread2 = interopRequireDefault(objectSpread2);\n\nvar _typeof2 = interopRequireDefault(_typeof_1);\n\n\n\nvar _react = interopRequireWildcard(react);\n\nvar _warning = interopRequireDefault(warning_1);\n\n\n\nvar _Context = interopRequireDefault(Context);\n\nfunction warning(valid, message) {\n (0, _warning.default)(valid, \"[@ant-design/icons] \".concat(message));\n}\n\nfunction isIconDefinition(target) {\n return (0, _typeof2.default)(target) === 'object' && typeof target.name === 'string' && typeof target.theme === 'string' && ((0, _typeof2.default)(target.icon) === 'object' || typeof target.icon === 'function');\n}\n\nfunction normalizeAttrs() {\n var attrs = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n return Object.keys(attrs).reduce(function (acc, key) {\n var val = attrs[key];\n\n switch (key) {\n case 'class':\n acc.className = val;\n delete acc.class;\n break;\n\n default:\n acc[key] = val;\n }\n\n return acc;\n }, {});\n}\n\nfunction generate(node, key, rootProps) {\n if (!rootProps) {\n return /*#__PURE__*/_react.default.createElement(node.tag, (0, _objectSpread2.default)({\n key: key\n }, normalizeAttrs(node.attrs)), (node.children || []).map(function (child, index) {\n return generate(child, \"\".concat(key, \"-\").concat(node.tag, \"-\").concat(index));\n }));\n }\n\n return /*#__PURE__*/_react.default.createElement(node.tag, (0, _objectSpread2.default)((0, _objectSpread2.default)({\n key: key\n }, normalizeAttrs(node.attrs)), rootProps), (node.children || []).map(function (child, index) {\n return generate(child, \"\".concat(key, \"-\").concat(node.tag, \"-\").concat(index));\n }));\n}\n\nfunction getSecondaryColor(primaryColor) {\n // choose the second color\n return (0, index_esm.generate)(primaryColor)[0];\n}\n\nfunction normalizeTwoToneColors(twoToneColor) {\n if (!twoToneColor) {\n return [];\n }\n\n return Array.isArray(twoToneColor) ? twoToneColor : [twoToneColor];\n} // These props make sure that the SVG behaviours like general text.\n// Reference: https://blog.prototypr.io/align-svg-icons-to-text-and-say-goodbye-to-font-icons-d44b3d7b26b4\n\n\nvar svgBaseProps = {\n width: '1em',\n height: '1em',\n fill: 'currentColor',\n 'aria-hidden': 'true',\n focusable: 'false'\n};\nexports.svgBaseProps = svgBaseProps;\nvar iconStyles = \"\\n.anticon {\\n display: inline-block;\\n color: inherit;\\n font-style: normal;\\n line-height: 0;\\n text-align: center;\\n text-transform: none;\\n vertical-align: -0.125em;\\n text-rendering: optimizeLegibility;\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n}\\n\\n.anticon > * {\\n line-height: 1;\\n}\\n\\n.anticon svg {\\n display: inline-block;\\n}\\n\\n.anticon::before {\\n display: none;\\n}\\n\\n.anticon .anticon-icon {\\n display: block;\\n}\\n\\n.anticon[tabindex] {\\n cursor: pointer;\\n}\\n\\n.anticon-spin::before,\\n.anticon-spin {\\n display: inline-block;\\n -webkit-animation: loadingCircle 1s infinite linear;\\n animation: loadingCircle 1s infinite linear;\\n}\\n\\n@-webkit-keyframes loadingCircle {\\n 100% {\\n -webkit-transform: rotate(360deg);\\n transform: rotate(360deg);\\n }\\n}\\n\\n@keyframes loadingCircle {\\n 100% {\\n -webkit-transform: rotate(360deg);\\n transform: rotate(360deg);\\n }\\n}\\n\";\nexports.iconStyles = iconStyles;\n\nvar useInsertStyles = function useInsertStyles() {\n var styleStr = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : iconStyles;\n\n var _useContext = (0, _react.useContext)(_Context.default),\n csp = _useContext.csp;\n\n (0, _react.useEffect)(function () {\n (0, dynamicCSS.updateCSS)(styleStr, '@ant-design-icons', {\n prepend: true,\n csp: csp\n });\n }, []);\n};\n\nexports.useInsertStyles = useInsertStyles;\n});\n\nvar IconBase_1 = createCommonjsModule(function (module, exports) {\n\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _objectWithoutProperties2 = interopRequireDefault(objectWithoutProperties);\n\nvar _objectSpread2 = interopRequireDefault(objectSpread2);\n\n\n\nvar _excluded = [\"icon\", \"className\", \"onClick\", \"style\", \"primaryColor\", \"secondaryColor\"];\nvar twoToneColorPalette = {\n primaryColor: '#333',\n secondaryColor: '#E6E6E6',\n calculated: false\n};\n\nfunction setTwoToneColors(_ref) {\n var primaryColor = _ref.primaryColor,\n secondaryColor = _ref.secondaryColor;\n twoToneColorPalette.primaryColor = primaryColor;\n twoToneColorPalette.secondaryColor = secondaryColor || (0, utils.getSecondaryColor)(primaryColor);\n twoToneColorPalette.calculated = !!secondaryColor;\n}\n\nfunction getTwoToneColors() {\n return (0, _objectSpread2.default)({}, twoToneColorPalette);\n}\n\nvar IconBase = function IconBase(props) {\n var icon = props.icon,\n className = props.className,\n onClick = props.onClick,\n style = props.style,\n primaryColor = props.primaryColor,\n secondaryColor = props.secondaryColor,\n restProps = (0, _objectWithoutProperties2.default)(props, _excluded);\n var colors = twoToneColorPalette;\n\n if (primaryColor) {\n colors = {\n primaryColor: primaryColor,\n secondaryColor: secondaryColor || (0, utils.getSecondaryColor)(primaryColor)\n };\n }\n\n (0, utils.useInsertStyles)();\n (0, utils.warning)((0, utils.isIconDefinition)(icon), \"icon should be icon definiton, but got \".concat(icon));\n\n if (!(0, utils.isIconDefinition)(icon)) {\n return null;\n }\n\n var target = icon;\n\n if (target && typeof target.icon === 'function') {\n target = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, target), {}, {\n icon: target.icon(colors.primaryColor, colors.secondaryColor)\n });\n }\n\n return (0, utils.generate)(target.icon, \"svg-\".concat(target.name), (0, _objectSpread2.default)({\n className: className,\n onClick: onClick,\n style: style,\n 'data-icon': target.name,\n width: '1em',\n height: '1em',\n fill: 'currentColor',\n 'aria-hidden': 'true'\n }, restProps));\n};\n\nIconBase.displayName = 'IconReact';\nIconBase.getTwoToneColors = getTwoToneColors;\nIconBase.setTwoToneColors = setTwoToneColors;\nvar _default = IconBase;\nexports.default = _default;\n});\n\nvar twoTonePrimaryColor = createCommonjsModule(function (module, exports) {\n\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.setTwoToneColor = setTwoToneColor;\nexports.getTwoToneColor = getTwoToneColor;\n\nvar _slicedToArray2 = interopRequireDefault(slicedToArray);\n\nvar _IconBase = interopRequireDefault(IconBase_1);\n\n\n\nfunction setTwoToneColor(twoToneColor) {\n var _normalizeTwoToneColo = (0, utils.normalizeTwoToneColors)(twoToneColor),\n _normalizeTwoToneColo2 = (0, _slicedToArray2.default)(_normalizeTwoToneColo, 2),\n primaryColor = _normalizeTwoToneColo2[0],\n secondaryColor = _normalizeTwoToneColo2[1];\n\n return _IconBase.default.setTwoToneColors({\n primaryColor: primaryColor,\n secondaryColor: secondaryColor\n });\n}\n\nfunction getTwoToneColor() {\n var colors = _IconBase.default.getTwoToneColors();\n\n if (!colors.calculated) {\n return colors.primaryColor;\n }\n\n return [colors.primaryColor, colors.secondaryColor];\n}\n});\n\nvar AntdIcon = createCommonjsModule(function (module, exports) {\n\n\n\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _objectSpread2 = interopRequireDefault(objectSpread2);\n\nvar _slicedToArray2 = interopRequireDefault(slicedToArray);\n\nvar _defineProperty2 = interopRequireDefault(defineProperty);\n\nvar _objectWithoutProperties2 = interopRequireDefault(objectWithoutProperties);\n\nvar React = interopRequireWildcard(react);\n\nvar _classnames = interopRequireDefault(classnames);\n\nvar _Context = interopRequireDefault(Context);\n\nvar _IconBase = interopRequireDefault(IconBase_1);\n\n\n\n\n\nvar _excluded = [\"className\", \"icon\", \"spin\", \"rotate\", \"tabIndex\", \"onClick\", \"twoToneColor\"];\n// Initial setting\n// should move it to antd main repo?\n(0, twoTonePrimaryColor.setTwoToneColor)('#1890ff');\nvar Icon = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var _classNames;\n\n var className = props.className,\n icon = props.icon,\n spin = props.spin,\n rotate = props.rotate,\n tabIndex = props.tabIndex,\n onClick = props.onClick,\n twoToneColor = props.twoToneColor,\n restProps = (0, _objectWithoutProperties2.default)(props, _excluded);\n\n var _React$useContext = React.useContext(_Context.default),\n _React$useContext$pre = _React$useContext.prefixCls,\n prefixCls = _React$useContext$pre === void 0 ? 'anticon' : _React$useContext$pre;\n\n var classString = (0, _classnames.default)(prefixCls, (_classNames = {}, (0, _defineProperty2.default)(_classNames, \"\".concat(prefixCls, \"-\").concat(icon.name), !!icon.name), (0, _defineProperty2.default)(_classNames, \"\".concat(prefixCls, \"-spin\"), !!spin || icon.name === 'loading'), _classNames), className);\n var iconTabIndex = tabIndex;\n\n if (iconTabIndex === undefined && onClick) {\n iconTabIndex = -1;\n }\n\n var svgStyle = rotate ? {\n msTransform: \"rotate(\".concat(rotate, \"deg)\"),\n transform: \"rotate(\".concat(rotate, \"deg)\")\n } : undefined;\n\n var _normalizeTwoToneColo = (0, utils.normalizeTwoToneColors)(twoToneColor),\n _normalizeTwoToneColo2 = (0, _slicedToArray2.default)(_normalizeTwoToneColo, 2),\n primaryColor = _normalizeTwoToneColo2[0],\n secondaryColor = _normalizeTwoToneColo2[1];\n\n return /*#__PURE__*/React.createElement(\"span\", (0, _objectSpread2.default)((0, _objectSpread2.default)({\n role: \"img\",\n \"aria-label\": icon.name\n }, restProps), {}, {\n ref: ref,\n tabIndex: iconTabIndex,\n onClick: onClick,\n className: classString\n }), /*#__PURE__*/React.createElement(_IconBase.default, {\n icon: icon,\n primaryColor: primaryColor,\n secondaryColor: secondaryColor,\n style: svgStyle\n }));\n});\nIcon.displayName = 'AntdIcon';\nIcon.getTwoToneColor = twoTonePrimaryColor.getTwoToneColor;\nIcon.setTwoToneColor = twoTonePrimaryColor.setTwoToneColor;\nvar _default = Icon;\nexports.default = _default;\n});\n\nvar BoldOutlined_1$1 = createCommonjsModule(function (module, exports) {\n\n\n\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _objectSpread2 = interopRequireDefault(objectSpread2);\n\nvar React = interopRequireWildcard(react);\n\nvar _BoldOutlined = interopRequireDefault(BoldOutlined_1);\n\nvar _AntdIcon = interopRequireDefault(AntdIcon);\n\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nvar BoldOutlined = function BoldOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(_AntdIcon.default, (0, _objectSpread2.default)((0, _objectSpread2.default)({}, props), {}, {\n ref: ref,\n icon: _BoldOutlined.default\n }));\n};\n\nBoldOutlined.displayName = 'BoldOutlined';\n\nvar _default = /*#__PURE__*/React.forwardRef(BoldOutlined);\n\nexports.default = _default;\n});\n\nvar BoldOutlined = createCommonjsModule(function (module, exports) {\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.default = void 0;\n \n var _BoldOutlined = _interopRequireDefault(BoldOutlined_1$1);\n \n function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n \n var _default = _BoldOutlined;\n exports.default = _default;\n module.exports = _default;\n});\n\nvar ItalicOutlined_1 = createCommonjsModule(function (module, exports) {\n// This icon file is generated automatically.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar ItalicOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M798 160H366c-4.4 0-8 3.6-8 8v64c0 4.4 3.6 8 8 8h181.2l-156 544H229c-4.4 0-8 3.6-8 8v64c0 4.4 3.6 8 8 8h432c4.4 0 8-3.6 8-8v-64c0-4.4-3.6-8-8-8H474.4l156-544H798c4.4 0 8-3.6 8-8v-64c0-4.4-3.6-8-8-8z\" } }] }, \"name\": \"italic\", \"theme\": \"outlined\" };\nexports.default = ItalicOutlined;\n});\n\nvar ItalicOutlined_1$1 = createCommonjsModule(function (module, exports) {\n\n\n\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _objectSpread2 = interopRequireDefault(objectSpread2);\n\nvar React = interopRequireWildcard(react);\n\nvar _ItalicOutlined = interopRequireDefault(ItalicOutlined_1);\n\nvar _AntdIcon = interopRequireDefault(AntdIcon);\n\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nvar ItalicOutlined = function ItalicOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(_AntdIcon.default, (0, _objectSpread2.default)((0, _objectSpread2.default)({}, props), {}, {\n ref: ref,\n icon: _ItalicOutlined.default\n }));\n};\n\nItalicOutlined.displayName = 'ItalicOutlined';\n\nvar _default = /*#__PURE__*/React.forwardRef(ItalicOutlined);\n\nexports.default = _default;\n});\n\nvar ItalicOutlined = createCommonjsModule(function (module, exports) {\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.default = void 0;\n \n var _ItalicOutlined = _interopRequireDefault(ItalicOutlined_1$1);\n \n function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n \n var _default = _ItalicOutlined;\n exports.default = _default;\n module.exports = _default;\n});\n\nvar StrikethroughOutlined_1 = createCommonjsModule(function (module, exports) {\n// This icon file is generated automatically.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar StrikethroughOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M952 474H569.9c-10-2-20.5-4-31.6-6-15.9-2.9-22.2-4.1-30.8-5.8-51.3-10-82.2-20-106.8-34.2-35.1-20.5-52.2-48.3-52.2-85.1 0-37 15.2-67.7 44-89 28.4-21 68.8-32.1 116.8-32.1 54.8 0 97.1 14.4 125.8 42.8 14.6 14.4 25.3 32.1 31.8 52.6 1.3 4.1 2.8 10 4.3 17.8.9 4.8 5.2 8.2 9.9 8.2h72.8c5.6 0 10.1-4.6 10.1-10.1v-1c-.7-6.8-1.3-12.1-2-16-7.3-43.5-28-81.7-59.7-110.3-44.4-40.5-109.7-61.8-188.7-61.8-72.3 0-137.4 18.1-183.3 50.9-25.6 18.4-45.4 41.2-58.6 67.7-13.5 27.1-20.3 58.4-20.3 92.9 0 29.5 5.7 54.5 17.3 76.5 8.3 15.7 19.6 29.5 34.1 42H72c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h433.2c2.1.4 3.9.8 5.9 1.2 30.9 6.2 49.5 10.4 66.6 15.2 23 6.5 40.6 13.3 55.2 21.5 35.8 20.2 53.3 49.2 53.3 89 0 35.3-15.5 66.8-43.6 88.8-30.5 23.9-75.6 36.4-130.5 36.4-43.7 0-80.7-8.5-110.2-25-29.1-16.3-49.1-39.8-59.7-69.5-.8-2.2-1.7-5.2-2.7-9-1.2-4.4-5.3-7.5-9.7-7.5h-79.7c-5.6 0-10.1 4.6-10.1 10.1v1c.2 2.3.4 4.2.6 5.7 6.5 48.8 30.3 88.8 70.7 118.8 47.1 34.8 113.4 53.2 191.8 53.2 84.2 0 154.8-19.8 204.2-57.3 25-18.9 44.2-42.2 57.1-69 13-27.1 19.7-57.9 19.7-91.5 0-31.8-5.8-58.4-17.8-81.4-5.8-11.2-13.1-21.5-21.8-30.8H952c4.4 0 8-3.6 8-8v-60a8 8 0 00-8-7.9z\" } }] }, \"name\": \"strikethrough\", \"theme\": \"outlined\" };\nexports.default = StrikethroughOutlined;\n});\n\nvar StrikethroughOutlined_1$1 = createCommonjsModule(function (module, exports) {\n\n\n\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _objectSpread2 = interopRequireDefault(objectSpread2);\n\nvar React = interopRequireWildcard(react);\n\nvar _StrikethroughOutlined = interopRequireDefault(StrikethroughOutlined_1);\n\nvar _AntdIcon = interopRequireDefault(AntdIcon);\n\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nvar StrikethroughOutlined = function StrikethroughOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(_AntdIcon.default, (0, _objectSpread2.default)((0, _objectSpread2.default)({}, props), {}, {\n ref: ref,\n icon: _StrikethroughOutlined.default\n }));\n};\n\nStrikethroughOutlined.displayName = 'StrikethroughOutlined';\n\nvar _default = /*#__PURE__*/React.forwardRef(StrikethroughOutlined);\n\nexports.default = _default;\n});\n\nvar StrikethroughOutlined = createCommonjsModule(function (module, exports) {\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.default = void 0;\n \n var _StrikethroughOutlined = _interopRequireDefault(StrikethroughOutlined_1$1);\n \n function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n \n var _default = _StrikethroughOutlined;\n exports.default = _default;\n module.exports = _default;\n});\n\nvar UnorderedListOutlined_1 = createCommonjsModule(function (module, exports) {\n// This icon file is generated automatically.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar UnorderedListOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M912 192H328c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h584c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 284H328c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h584c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 284H328c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h584c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM104 228a56 56 0 10112 0 56 56 0 10-112 0zm0 284a56 56 0 10112 0 56 56 0 10-112 0zm0 284a56 56 0 10112 0 56 56 0 10-112 0z\" } }] }, \"name\": \"unordered-list\", \"theme\": \"outlined\" };\nexports.default = UnorderedListOutlined;\n});\n\nvar UnorderedListOutlined_1$1 = createCommonjsModule(function (module, exports) {\n\n\n\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _objectSpread2 = interopRequireDefault(objectSpread2);\n\nvar React = interopRequireWildcard(react);\n\nvar _UnorderedListOutlined = interopRequireDefault(UnorderedListOutlined_1);\n\nvar _AntdIcon = interopRequireDefault(AntdIcon);\n\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nvar UnorderedListOutlined = function UnorderedListOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(_AntdIcon.default, (0, _objectSpread2.default)((0, _objectSpread2.default)({}, props), {}, {\n ref: ref,\n icon: _UnorderedListOutlined.default\n }));\n};\n\nUnorderedListOutlined.displayName = 'UnorderedListOutlined';\n\nvar _default = /*#__PURE__*/React.forwardRef(UnorderedListOutlined);\n\nexports.default = _default;\n});\n\nvar UnorderedListOutlined = createCommonjsModule(function (module, exports) {\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.default = void 0;\n \n var _UnorderedListOutlined = _interopRequireDefault(UnorderedListOutlined_1$1);\n \n function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n \n var _default = _UnorderedListOutlined;\n exports.default = _default;\n module.exports = _default;\n});\n\nvar OrderedListOutlined_1 = createCommonjsModule(function (module, exports) {\n// This icon file is generated automatically.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar OrderedListOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M920 760H336c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h584c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0-568H336c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h584c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zm0 284H336c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h584c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8zM216 712H100c-2.2 0-4 1.8-4 4v34c0 2.2 1.8 4 4 4h72.4v20.5h-35.7c-2.2 0-4 1.8-4 4v34c0 2.2 1.8 4 4 4h35.7V838H100c-2.2 0-4 1.8-4 4v34c0 2.2 1.8 4 4 4h116c2.2 0 4-1.8 4-4V716c0-2.2-1.8-4-4-4zM100 188h38v120c0 2.2 1.8 4 4 4h40c2.2 0 4-1.8 4-4V152c0-4.4-3.6-8-8-8h-78c-2.2 0-4 1.8-4 4v36c0 2.2 1.8 4 4 4zm116 240H100c-2.2 0-4 1.8-4 4v36c0 2.2 1.8 4 4 4h68.4l-70.3 77.7a8.3 8.3 0 00-2.1 5.4V592c0 2.2 1.8 4 4 4h116c2.2 0 4-1.8 4-4v-36c0-2.2-1.8-4-4-4h-68.4l70.3-77.7a8.3 8.3 0 002.1-5.4V432c0-2.2-1.8-4-4-4z\" } }] }, \"name\": \"ordered-list\", \"theme\": \"outlined\" };\nexports.default = OrderedListOutlined;\n});\n\nvar OrderedListOutlined_1$1 = createCommonjsModule(function (module, exports) {\n\n\n\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _objectSpread2 = interopRequireDefault(objectSpread2);\n\nvar React = interopRequireWildcard(react);\n\nvar _OrderedListOutlined = interopRequireDefault(OrderedListOutlined_1);\n\nvar _AntdIcon = interopRequireDefault(AntdIcon);\n\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nvar OrderedListOutlined = function OrderedListOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(_AntdIcon.default, (0, _objectSpread2.default)((0, _objectSpread2.default)({}, props), {}, {\n ref: ref,\n icon: _OrderedListOutlined.default\n }));\n};\n\nOrderedListOutlined.displayName = 'OrderedListOutlined';\n\nvar _default = /*#__PURE__*/React.forwardRef(OrderedListOutlined);\n\nexports.default = _default;\n});\n\nvar OrderedListOutlined = createCommonjsModule(function (module, exports) {\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.default = void 0;\n \n var _OrderedListOutlined = _interopRequireDefault(OrderedListOutlined_1$1);\n \n function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n \n var _default = _OrderedListOutlined;\n exports.default = _default;\n module.exports = _default;\n});\n\nvar TableOutlined_1 = createCommonjsModule(function (module, exports) {\n// This icon file is generated automatically.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar TableOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M928 160H96c-17.7 0-32 14.3-32 32v640c0 17.7 14.3 32 32 32h832c17.7 0 32-14.3 32-32V192c0-17.7-14.3-32-32-32zm-40 208H676V232h212v136zm0 224H676V432h212v160zM412 432h200v160H412V432zm200-64H412V232h200v136zm-476 64h212v160H136V432zm0-200h212v136H136V232zm0 424h212v136H136V656zm276 0h200v136H412V656zm476 136H676V656h212v136z\" } }] }, \"name\": \"table\", \"theme\": \"outlined\" };\nexports.default = TableOutlined;\n});\n\nvar TableOutlined_1$1 = createCommonjsModule(function (module, exports) {\n\n\n\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _objectSpread2 = interopRequireDefault(objectSpread2);\n\nvar React = interopRequireWildcard(react);\n\nvar _TableOutlined = interopRequireDefault(TableOutlined_1);\n\nvar _AntdIcon = interopRequireDefault(AntdIcon);\n\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nvar TableOutlined = function TableOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(_AntdIcon.default, (0, _objectSpread2.default)((0, _objectSpread2.default)({}, props), {}, {\n ref: ref,\n icon: _TableOutlined.default\n }));\n};\n\nTableOutlined.displayName = 'TableOutlined';\n\nvar _default = /*#__PURE__*/React.forwardRef(TableOutlined);\n\nexports.default = _default;\n});\n\nvar TableOutlined = createCommonjsModule(function (module, exports) {\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.default = void 0;\n \n var _TableOutlined = _interopRequireDefault(TableOutlined_1$1);\n \n function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n \n var _default = _TableOutlined;\n exports.default = _default;\n module.exports = _default;\n});\n\nvar FileImageOutlined_1 = createCommonjsModule(function (module, exports) {\n// This icon file is generated automatically.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar FileImageOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M553.1 509.1l-77.8 99.2-41.1-52.4a8 8 0 00-12.6 0l-99.8 127.2a7.98 7.98 0 006.3 12.9H696c6.7 0 10.4-7.7 6.3-12.9l-136.5-174a8.1 8.1 0 00-12.7 0zM360 442a40 40 0 1080 0 40 40 0 10-80 0zm494.6-153.4L639.4 73.4c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.7-9.4-22.7zM790.2 326H602V137.8L790.2 326zm1.8 562H232V136h302v216a42 42 0 0042 42h216v494z\" } }] }, \"name\": \"file-image\", \"theme\": \"outlined\" };\nexports.default = FileImageOutlined;\n});\n\nvar FileImageOutlined_1$1 = createCommonjsModule(function (module, exports) {\n\n\n\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _objectSpread2 = interopRequireDefault(objectSpread2);\n\nvar React = interopRequireWildcard(react);\n\nvar _FileImageOutlined = interopRequireDefault(FileImageOutlined_1);\n\nvar _AntdIcon = interopRequireDefault(AntdIcon);\n\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nvar FileImageOutlined = function FileImageOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(_AntdIcon.default, (0, _objectSpread2.default)((0, _objectSpread2.default)({}, props), {}, {\n ref: ref,\n icon: _FileImageOutlined.default\n }));\n};\n\nFileImageOutlined.displayName = 'FileImageOutlined';\n\nvar _default = /*#__PURE__*/React.forwardRef(FileImageOutlined);\n\nexports.default = _default;\n});\n\nvar FileImageOutlined = createCommonjsModule(function (module, exports) {\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.default = void 0;\n \n var _FileImageOutlined = _interopRequireDefault(FileImageOutlined_1$1);\n \n function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n \n var _default = _FileImageOutlined;\n exports.default = _default;\n module.exports = _default;\n});\n\nvar LinkOutlined_1 = createCommonjsModule(function (module, exports) {\n// This icon file is generated automatically.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar LinkOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M574 665.4a8.03 8.03 0 00-11.3 0L446.5 781.6c-53.8 53.8-144.6 59.5-204 0-59.5-59.5-53.8-150.2 0-204l116.2-116.2c3.1-3.1 3.1-8.2 0-11.3l-39.8-39.8a8.03 8.03 0 00-11.3 0L191.4 526.5c-84.6 84.6-84.6 221.5 0 306s221.5 84.6 306 0l116.2-116.2c3.1-3.1 3.1-8.2 0-11.3L574 665.4zm258.6-474c-84.6-84.6-221.5-84.6-306 0L410.3 307.6a8.03 8.03 0 000 11.3l39.7 39.7c3.1 3.1 8.2 3.1 11.3 0l116.2-116.2c53.8-53.8 144.6-59.5 204 0 59.5 59.5 53.8 150.2 0 204L665.3 562.6a8.03 8.03 0 000 11.3l39.8 39.8c3.1 3.1 8.2 3.1 11.3 0l116.2-116.2c84.5-84.6 84.5-221.5 0-306.1zM610.1 372.3a8.03 8.03 0 00-11.3 0L372.3 598.7a8.03 8.03 0 000 11.3l39.6 39.6c3.1 3.1 8.2 3.1 11.3 0l226.4-226.4c3.1-3.1 3.1-8.2 0-11.3l-39.5-39.6z\" } }] }, \"name\": \"link\", \"theme\": \"outlined\" };\nexports.default = LinkOutlined;\n});\n\nvar LinkOutlined_1$1 = createCommonjsModule(function (module, exports) {\n\n\n\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _objectSpread2 = interopRequireDefault(objectSpread2);\n\nvar React = interopRequireWildcard(react);\n\nvar _LinkOutlined = interopRequireDefault(LinkOutlined_1);\n\nvar _AntdIcon = interopRequireDefault(AntdIcon);\n\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nvar LinkOutlined = function LinkOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(_AntdIcon.default, (0, _objectSpread2.default)((0, _objectSpread2.default)({}, props), {}, {\n ref: ref,\n icon: _LinkOutlined.default\n }));\n};\n\nLinkOutlined.displayName = 'LinkOutlined';\n\nvar _default = /*#__PURE__*/React.forwardRef(LinkOutlined);\n\nexports.default = _default;\n});\n\nvar LinkOutlined = createCommonjsModule(function (module, exports) {\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.default = void 0;\n \n var _LinkOutlined = _interopRequireDefault(LinkOutlined_1$1);\n \n function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n \n var _default = _LinkOutlined;\n exports.default = _default;\n module.exports = _default;\n});\n\nvar RightOutlined_1 = createCommonjsModule(function (module, exports) {\n// This icon file is generated automatically.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar RightOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M765.7 486.8L314.9 134.7A7.97 7.97 0 00302 141v77.3c0 4.9 2.3 9.6 6.1 12.6l360 281.1-360 281.1c-3.9 3-6.1 7.7-6.1 12.6V883c0 6.7 7.7 10.4 12.9 6.3l450.8-352.1a31.96 31.96 0 000-50.4z\" } }] }, \"name\": \"right\", \"theme\": \"outlined\" };\nexports.default = RightOutlined;\n});\n\nvar RightOutlined_1$1 = createCommonjsModule(function (module, exports) {\n\n\n\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _objectSpread2 = interopRequireDefault(objectSpread2);\n\nvar React = interopRequireWildcard(react);\n\nvar _RightOutlined = interopRequireDefault(RightOutlined_1);\n\nvar _AntdIcon = interopRequireDefault(AntdIcon);\n\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nvar RightOutlined = function RightOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(_AntdIcon.default, (0, _objectSpread2.default)((0, _objectSpread2.default)({}, props), {}, {\n ref: ref,\n icon: _RightOutlined.default\n }));\n};\n\nRightOutlined.displayName = 'RightOutlined';\n\nvar _default = /*#__PURE__*/React.forwardRef(RightOutlined);\n\nexports.default = _default;\n});\n\nvar RightOutlined = createCommonjsModule(function (module, exports) {\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.default = void 0;\n \n var _RightOutlined = _interopRequireDefault(RightOutlined_1$1);\n \n function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n \n var _default = _RightOutlined;\n exports.default = _default;\n module.exports = _default;\n});\n\nvar CodeOutlined_1 = createCommonjsModule(function (module, exports) {\n// This icon file is generated automatically.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar CodeOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M516 673c0 4.4 3.4 8 7.5 8h185c4.1 0 7.5-3.6 7.5-8v-48c0-4.4-3.4-8-7.5-8h-185c-4.1 0-7.5 3.6-7.5 8v48zm-194.9 6.1l192-161c3.8-3.2 3.8-9.1 0-12.3l-192-160.9A7.95 7.95 0 00308 351v62.7c0 2.4 1 4.6 2.9 6.1L420.7 512l-109.8 92.2a8.1 8.1 0 00-2.9 6.1V673c0 6.8 7.9 10.5 13.1 6.1zM880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656z\" } }] }, \"name\": \"code\", \"theme\": \"outlined\" };\nexports.default = CodeOutlined;\n});\n\nvar CodeOutlined_1$1 = createCommonjsModule(function (module, exports) {\n\n\n\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _objectSpread2 = interopRequireDefault(objectSpread2);\n\nvar React = interopRequireWildcard(react);\n\nvar _CodeOutlined = interopRequireDefault(CodeOutlined_1);\n\nvar _AntdIcon = interopRequireDefault(AntdIcon);\n\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nvar CodeOutlined = function CodeOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(_AntdIcon.default, (0, _objectSpread2.default)((0, _objectSpread2.default)({}, props), {}, {\n ref: ref,\n icon: _CodeOutlined.default\n }));\n};\n\nCodeOutlined.displayName = 'CodeOutlined';\n\nvar _default = /*#__PURE__*/React.forwardRef(CodeOutlined);\n\nexports.default = _default;\n});\n\nvar CodeOutlined = createCommonjsModule(function (module, exports) {\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n exports.default = void 0;\n \n var _CodeOutlined = _interopRequireDefault(CodeOutlined_1$1);\n \n function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n \n var _default = _CodeOutlined;\n exports.default = _default;\n module.exports = _default;\n});\n\nvar toolbarActions = createCommonjsModule(function (module, exports) {\nvar __importDefault = (commonjsGlobal && commonjsGlobal.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.toolbarActions = void 0;\nvar react_1 = __importDefault(react);\nvar BoldOutlined_1 = __importDefault(BoldOutlined);\nvar ItalicOutlined_1 = __importDefault(ItalicOutlined);\nvar StrikethroughOutlined_1 = __importDefault(StrikethroughOutlined);\nvar UnorderedListOutlined_1 = __importDefault(UnorderedListOutlined);\nvar OrderedListOutlined_1 = __importDefault(OrderedListOutlined);\nvar TableOutlined_1 = __importDefault(TableOutlined);\nvar FileImageOutlined_1 = __importDefault(FileImageOutlined);\nvar LinkOutlined_1 = __importDefault(LinkOutlined);\nvar RightOutlined_1 = __importDefault(RightOutlined);\nvar CodeOutlined_1 = __importDefault(CodeOutlined);\nexports.toolbarActions = [\n {\n name: 'bold',\n icon: react_1.default.createElement(BoldOutlined_1.default, null),\n schema: {\n openingTag: '**',\n closingTag: '**',\n },\n },\n {\n name: 'italic',\n icon: react_1.default.createElement(ItalicOutlined_1.default, null),\n schema: {\n openingTag: '*',\n closingTag: '*',\n },\n },\n {\n name: 'strikethrough',\n icon: react_1.default.createElement(StrikethroughOutlined_1.default, null),\n schema: {\n openingTag: '~~',\n closingTag: '~~',\n },\n },\n {\n name: 'heading1',\n icon: 'H1',\n schema: {\n openingTag: '# ',\n closingTag: '',\n },\n },\n {\n name: 'heading2',\n icon: 'H2',\n schema: {\n openingTag: '## ',\n closingTag: '',\n },\n },\n {\n name: 'heading3',\n icon: 'H3',\n schema: {\n openingTag: '### ',\n closingTag: '',\n },\n },\n {\n name: 'ulist',\n icon: react_1.default.createElement(UnorderedListOutlined_1.default, null),\n schema: {\n openingTag: '- ',\n closingTag: '',\n },\n },\n {\n name: 'olist',\n icon: react_1.default.createElement(OrderedListOutlined_1.default, null),\n schema: {\n openingTag: '1. ',\n closingTag: '',\n },\n },\n {\n name: 'table',\n icon: react_1.default.createElement(TableOutlined_1.default, null),\n schema: {\n openingTag: 'Column 1 | Column 2 | Column 3\\n---|:---:|---:\\nLeft | Center | Right\\n1 | 2 | 3\\n4 | 5 | 6',\n closingTag: '',\n },\n },\n {\n name: 'image',\n icon: react_1.default.createElement(FileImageOutlined_1.default, null),\n schema: {\n openingTag: '',\n },\n },\n {\n name: 'link',\n icon: react_1.default.createElement(LinkOutlined_1.default, null),\n schema: {\n openingTag: '[',\n closingTag: '](https://www.example.com)',\n },\n },\n {\n name: 'quote',\n icon: react_1.default.createElement(RightOutlined_1.default, null),\n schema: {\n openingTag: '> ',\n closingTag: '',\n },\n },\n {\n name: 'code',\n icon: react_1.default.createElement(CodeOutlined_1.default, null),\n schema: {\n openingTag: '`',\n closingTag: '`',\n },\n },\n {\n name: 'hr',\n icon: 'HR',\n schema: {\n openingTag: '',\n closingTag: '\\n\\n---\\n',\n },\n },\n];\n});\n\nvar Yamde_1 = createCommonjsModule(function (module, exports) {\nvar __createBinding = (commonjsGlobal && commonjsGlobal.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (commonjsGlobal && commonjsGlobal.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (commonjsGlobal && commonjsGlobal.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __importDefault = (commonjsGlobal && commonjsGlobal.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar react_1 = __importStar(react);\nvar showdown_1 = __importDefault(showdown);\n\n\nvar converter = new showdown_1.default.Converter({\n tables: true,\n simplifiedAutoLink: false,\n strikethrough: true,\n tasklists: true,\n noHeaderId: true,\n});\nvar Yamde = function (_a) {\n var value = _a.value, handler = _a.handler, toolbar = _a.toolbar;\n var _b = react_1.useState(false), isPreviewMode = _b[0], setisPreviewMode = _b[1];\n var textEditor = react_1.useRef(null);\n var classes = Yamde_styles.useStyles();\n var htmlPreview = converter.makeHtml(value);\n var handleChange = function (e) {\n handler(e.target.value);\n };\n var handleClick = function (_a) {\n var name = _a.name, schema = _a.schema;\n var openingTag = schema.openingTag, closingTag = schema.closingTag;\n if (textEditor && textEditor.current) {\n var _b = textEditor.current, editorValue = _b.value, selectionStart = _b.selectionStart, selectionEnd = _b.selectionEnd;\n var len = editorValue.length;\n var selectedText = textEditor.current.value.substring(selectionStart, selectionEnd);\n var regex = /[^\\n]+/g;\n var list = selectedText.match(regex);\n var fullReplacement = '';\n var formatText = function (selectionList, actionName, actionOpeningTag, actionClosingTag) {\n var newString = '';\n selectionList.forEach(function (item, i) {\n if (actionName === 'olist') {\n newString += i + 1 + \". \" + item + closingTag + \"\\n\";\n }\n else {\n newString += \"\" + actionOpeningTag + item + actionClosingTag + \"\\n\";\n }\n });\n return newString;\n };\n if (list && list.length > 0 && (name === 'olist' || name === 'ulist')) {\n fullReplacement =\n editorValue.substring(0, selectionStart) +\n formatText(list, name, openingTag, closingTag) +\n editorValue.substring(selectionEnd, len);\n }\n else {\n var replacement = \"\" + openingTag + selectedText + closingTag;\n fullReplacement =\n editorValue.substring(0, selectionStart) +\n replacement +\n editorValue.substring(selectionEnd, len);\n }\n handler(fullReplacement);\n }\n };\n return (react_1.default.createElement(\"div\", { className: classes.yamde },\n react_1.default.createElement(\"div\", { className: classes.toolbar },\n react_1.default.createElement(\"div\", { className: classes.buttons }, toolbarActions.toolbarActions\n .filter(function (action) { return toolbar === null || toolbar === void 0 ? void 0 : toolbar.includes(action.name); })\n .map(function (_a) {\n var name = _a.name, icon = _a.icon, schema = _a.schema;\n return (react_1.default.createElement(\"div\", { key: name, className: classes.button, onClick: function () { return handleClick({ name: name, schema: schema }); } }, icon));\n })),\n react_1.default.createElement(\"div\", { className: classes.viewSwitch },\n react_1.default.createElement(\"div\", { className: classes.viewButton + \" \" + (!isPreviewMode ? classes.activeView : ''), onClick: function () { return setisPreviewMode(false); } }, \"Editor\"),\n react_1.default.createElement(\"div\", { className: classes.viewButton + \" \" + (isPreviewMode ? classes.activeView : ''), onClick: function () { return setisPreviewMode(true); } }, \"Preview\"))),\n react_1.default.createElement(\"div\", { className: classes.contentArea }, !isPreviewMode ? (react_1.default.createElement(\"textarea\", { rows: 12, name: \"yamdeContent\", value: value, onChange: function (e) { return handleChange(e); }, required: true, ref: textEditor })) : (react_1.default.createElement(\"div\", { className: classes.preview, dangerouslySetInnerHTML: { __html: htmlPreview } }))),\n react_1.default.createElement(\"div\", { className: classes.mobileButton }, toolbarActions.toolbarActions\n .filter(function (action) { return toolbar === null || toolbar === void 0 ? void 0 : toolbar.includes(action.name); })\n .map(function (_a) {\n var name = _a.name, icon = _a.icon, schema = _a.schema;\n return (react_1.default.createElement(\"div\", { key: name, className: classes.button, onClick: function () { return handleClick({ name: name, schema: schema }); } }, icon));\n }))));\n};\nexports.default = Yamde;\n});\n\nvar light = createCommonjsModule(function (module, exports) {\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.lightTheme = void 0;\nexports.lightTheme = {\n // Toolbar/Action buttons\n buttonBackgroundColor: '#fff',\n buttonBorderColor: '#ddd',\n buttonColor: '#212121',\n buttonBackgroundColorHover: '#dcdcdc',\n // View switch buttons\n switchButtonBackgroundColor: 'whitesmoke',\n switchButtonBorderColor: '#ddd',\n switchButtonColorHover: '#333',\n switchButtonBackgroundColorHover: '#dcdcdc',\n switchButtonColorView: ' #a0a0a0',\n switchButtonColorActiveView: '#333',\n switchButtonBackgroundColorActiveView: '#fff',\n switchButtonBorderColorActiveView: '#fff',\n // Misc\n textColor: '#333',\n contentAreaBackgroundColor: '#fff',\n textAreaBorderColor: '#ddd',\n previewAreaBorderColor: '#ddd',\n codeBlockBackgroundColor: '#ececec',\n linkColor: '#4183c4',\n quoteAdornmentColor: '#b9b9b9',\n tableBorderColor: '#ddd',\n textAreaSelectionBackgroundColor: '#a2a2a2',\n textAreaSelectionColor: '#000',\n};\n});\n\nvar dark = createCommonjsModule(function (module, exports) {\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.darkTheme = void 0;\nexports.darkTheme = {\n // Toolbar/Action buttons\n buttonBackgroundColor: '#242424',\n buttonBorderColor: '#151515',\n buttonColor: '#777777',\n buttonBackgroundColorHover: '#1b1b1b',\n // View switch buttons\n switchButtonBackgroundColor: '#242424',\n switchButtonBorderColor: '#151515',\n switchButtonColorHover: '#777777',\n switchButtonBackgroundColorHover: '#1b1b1b',\n switchButtonColorView: ' #777777',\n switchButtonColorActiveView: '#777777',\n switchButtonBackgroundColorActiveView: '#1b1b1b',\n switchButtonBorderColorActiveView: '#1b1b1b',\n // Misc\n textColor: '#fff',\n contentAreaBackgroundColor: '#1b1b1b',\n textAreaBorderColor: '#151515',\n previewAreaBorderColor: '#151515',\n codeBlockBackgroundColor: '#383838',\n linkColor: '#4183c4',\n quoteAdornmentColor: '#b9b9b9',\n tableBorderColor: '#ddd',\n textAreaSelectionBackgroundColor: '#656565',\n textAreaSelectionColor: '#000',\n};\n});\n\nvar defaultToolbarActions = createCommonjsModule(function (module, exports) {\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.defaultToolbarAction = void 0;\nexports.defaultToolbarAction = [\n 'bold',\n 'italic',\n 'strikethrough',\n 'heading1',\n 'heading2',\n 'heading3',\n 'ulist',\n 'olist',\n 'table',\n 'image',\n 'link',\n 'quote',\n 'code',\n 'hr',\n];\n});\n\nvar dist = createCommonjsModule(function (module, exports) {\nvar __importDefault = (commonjsGlobal && commonjsGlobal.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar react_1 = __importDefault(react);\n\nvar Yamde_1$1 = __importDefault(Yamde_1);\n\n\n\nvar YamdeComp = function (_a) {\n var value = _a.value, handler = _a.handler, _b = _a.theme, theme = _b === void 0 ? 'light' : _b, _c = _a.toolbar, toolbar = _c === void 0 ? defaultToolbarActions.defaultToolbarAction : _c;\n return (react_1.default.createElement(reactJss_esm.ThemeProvider, { theme: theme === 'light' ? light.lightTheme : dark.darkTheme },\n react_1.default.createElement(Yamde_1$1.default, { value: value, handler: handler, toolbar: toolbar })));\n};\nexports.default = YamdeComp;\n});\n\nvar __pika_web_default_export_for_treeshaking__ = /*@__PURE__*/getDefaultExportFromCjs(dist);\n\nexport default __pika_web_default_export_for_treeshaking__;\n", "export const MODE = \"production\";\nexport const NODE_ENV = \"production\";\nexport const SSR = false;", "var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};\n\nfunction getDefaultExportFromCjs (x) {\n\treturn x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;\n}\n\nfunction createCommonjsModule(fn, basedir, module) {\n\treturn module = {\n\t\tpath: basedir,\n\t\texports: {},\n\t\trequire: function (path, base) {\n\t\t\treturn commonjsRequire(path, (base === undefined || base === null) ? module.path : base);\n\t\t}\n\t}, fn(module, module.exports), module.exports;\n}\n\nfunction commonjsRequire () {\n\tthrow new Error('Dynamic requires are not currently supported by @rollup/plugin-commonjs');\n}\n\nexport { commonjsGlobal as a, createCommonjsModule as c, getDefaultExportFromCjs as g };\n", "import { c as createCommonjsModule } from './_commonjsHelpers-8c19dec8.js';\n\n/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nvar objectAssign = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n\nvar react_production_min = createCommonjsModule(function (module, exports) {\nvar n=60103,p=60106;exports.Fragment=60107;exports.StrictMode=60108;exports.Profiler=60114;var q=60109,r=60110,t=60112;exports.Suspense=60113;var u=60115,v=60116;\nif(\"function\"===typeof Symbol&&Symbol.for){var w=Symbol.for;n=w(\"react.element\");p=w(\"react.portal\");exports.Fragment=w(\"react.fragment\");exports.StrictMode=w(\"react.strict_mode\");exports.Profiler=w(\"react.profiler\");q=w(\"react.provider\");r=w(\"react.context\");t=w(\"react.forward_ref\");exports.Suspense=w(\"react.suspense\");u=w(\"react.memo\");v=w(\"react.lazy\");}var x=\"function\"===typeof Symbol&&Symbol.iterator;\nfunction y(a){if(null===a||\"object\"!==typeof a)return null;a=x&&a[x]||a[\"@@iterator\"];return \"function\"===typeof a?a:null}function z(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;c=\nE};k=function(){};exports.unstable_forceFrameRate=function(a){0>a||125>>1,e=a[d];if(void 0!==e&&0I(n,c))void 0!==r&&0>I(r,n)?(a[d]=r,a[v]=c,d=v):(a[d]=n,a[m]=c,d=m);else if(void 0!==r&&0>I(r,c))a[d]=r,a[v]=c,d=v;else break a}}return b}return null}function I(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}var L=[],M=[],N=1,O=null,P=3,Q=!1,R=!1,S=!1;\nfunction T(a){for(var b=J(M);null!==b;){if(null===b.callback)K(M);else if(b.startTime<=a)K(M),b.sortIndex=b.expirationTime,H(L,b);else break;b=J(M);}}function U(a){S=!1;T(a);if(!R)if(null!==J(L))R=!0,f(V);else {var b=J(M);null!==b&&g(U,b.startTime-a);}}\nfunction V(a,b){R=!1;S&&(S=!1,h());Q=!0;var c=P;try{T(b);for(O=J(L);null!==O&&(!(O.expirationTime>b)||a&&!exports.unstable_shouldYield());){var d=O.callback;if(\"function\"===typeof d){O.callback=null;P=O.priorityLevel;var e=d(O.expirationTime<=b);b=exports.unstable_now();\"function\"===typeof e?O.callback=e:O===J(L)&&K(L);T(b);}else K(L);O=J(L);}if(null!==O)var m=!0;else {var n=J(M);null!==n&&g(U,n.startTime-b);m=!1;}return m}finally{O=null,P=c,Q=!1;}}var W=k;exports.unstable_IdlePriority=5;\nexports.unstable_ImmediatePriority=1;exports.unstable_LowPriority=4;exports.unstable_NormalPriority=3;exports.unstable_Profiling=null;exports.unstable_UserBlockingPriority=2;exports.unstable_cancelCallback=function(a){a.callback=null;};exports.unstable_continueExecution=function(){R||Q||(R=!0,f(V));};exports.unstable_getCurrentPriorityLevel=function(){return P};exports.unstable_getFirstCallbackNode=function(){return J(L)};\nexports.unstable_next=function(a){switch(P){case 1:case 2:case 3:var b=3;break;default:b=P;}var c=P;P=b;try{return a()}finally{P=c;}};exports.unstable_pauseExecution=function(){};exports.unstable_requestPaint=W;exports.unstable_runWithPriority=function(a,b){switch(a){case 1:case 2:case 3:case 4:case 5:break;default:a=3;}var c=P;P=a;try{return b()}finally{P=c;}};\nexports.unstable_scheduleCallback=function(a,b,c){var d=exports.unstable_now();\"object\"===typeof c&&null!==c?(c=c.delay,c=\"number\"===typeof c&&0d?(a.sortIndex=c,H(M,a),null===J(L)&&a===J(M)&&(S?h():S=!0,g(U,c-d))):(a.sortIndex=e,H(L,a),R||Q||(R=!0,f(V)));return a};\nexports.unstable_wrapCallback=function(a){var b=P;return function(){var c=P;P=b;try{return a.apply(this,arguments)}finally{P=c;}}};\n});\n\nvar scheduler = createCommonjsModule(function (module) {\n\n{\n module.exports = scheduler_production_min;\n}\n});\n\nfunction y(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;cb}return !1}function B(a,b,c,d,e,f,g){this.acceptsBooleans=2===b||3===b||4===b;this.attributeName=d;this.attributeNamespace=e;this.mustUseProperty=c;this.propertyName=a;this.type=b;this.sanitizeURL=f;this.removeEmptyString=g;}var D={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){D[a]=new B(a,0,!1,a,null,!1,!1);});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];D[b]=new B(b,1,!1,a[1],null,!1,!1);});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){D[a]=new B(a,2,!1,a.toLowerCase(),null,!1,!1);});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){D[a]=new B(a,2,!1,a,null,!1,!1);});\"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function(a){D[a]=new B(a,3,!1,a.toLowerCase(),null,!1,!1);});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){D[a]=new B(a,3,!0,a,null,!1,!1);});[\"capture\",\"download\"].forEach(function(a){D[a]=new B(a,4,!1,a,null,!1,!1);});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){D[a]=new B(a,6,!1,a,null,!1,!1);});[\"rowSpan\",\"start\"].forEach(function(a){D[a]=new B(a,5,!1,a.toLowerCase(),null,!1,!1);});var oa=/[\\-:]([a-z])/g;function pa(a){return a[1].toUpperCase()}\n\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height\".split(\" \").forEach(function(a){var b=a.replace(oa,\npa);D[b]=new B(b,1,!1,a,null,!1,!1);});\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function(a){var b=a.replace(oa,pa);D[b]=new B(b,1,!1,a,\"http://www.w3.org/1999/xlink\",!1,!1);});[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach(function(a){var b=a.replace(oa,pa);D[b]=new B(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1,!1);});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){D[a]=new B(a,1,!1,a.toLowerCase(),null,!1,!1);});\nD.xlinkHref=new B(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0,!1);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){D[a]=new B(a,1,!1,a.toLowerCase(),null,!0,!0);});\nfunction qa(a,b,c,d){var e=D.hasOwnProperty(b)?D[b]:null;var f=null!==e?0===e.type:d?!1:!(2h||e[g]!==f[h])return \"\\n\"+e[g].replace(\" at new \",\" at \");while(1<=g&&0<=h)}break}}}finally{Oa=!1,Error.prepareStackTrace=c;}return (a=a?a.displayName||a.name:\"\")?Na(a):\"\"}\nfunction Qa(a){switch(a.tag){case 5:return Na(a.type);case 16:return Na(\"Lazy\");case 13:return Na(\"Suspense\");case 19:return Na(\"SuspenseList\");case 0:case 2:case 15:return a=Pa(a.type,!1),a;case 11:return a=Pa(a.type.render,!1),a;case 22:return a=Pa(a.type._render,!1),a;case 1:return a=Pa(a.type,!0),a;default:return \"\"}}\nfunction Ra(a){if(null==a)return null;if(\"function\"===typeof a)return a.displayName||a.name||null;if(\"string\"===typeof a)return a;switch(a){case ua:return \"Fragment\";case ta:return \"Portal\";case xa:return \"Profiler\";case wa:return \"StrictMode\";case Ba:return \"Suspense\";case Ca:return \"SuspenseList\"}if(\"object\"===typeof a)switch(a.$$typeof){case za:return (a.displayName||\"Context\")+\".Consumer\";case ya:return (a._context.displayName||\"Context\")+\".Provider\";case Aa:var b=a.render;b=b.displayName||b.name||\"\";\nreturn a.displayName||(\"\"!==b?\"ForwardRef(\"+b+\")\":\"ForwardRef\");case Da:return Ra(a.type);case Fa:return Ra(a._render);case Ea:b=a._payload;a=a._init;try{return Ra(a(b))}catch(c){}}return null}function Sa(a){switch(typeof a){case \"boolean\":case \"number\":case \"object\":case \"string\":case \"undefined\":return a;default:return \"\"}}function Ta(a){var b=a.type;return (a=a.nodeName)&&\"input\"===a.toLowerCase()&&(\"checkbox\"===b||\"radio\"===b)}\nfunction Ua(a){var b=Ta(a)?\"checked\":\"value\",c=Object.getOwnPropertyDescriptor(a.constructor.prototype,b),d=\"\"+a[b];if(!a.hasOwnProperty(b)&&\"undefined\"!==typeof c&&\"function\"===typeof c.get&&\"function\"===typeof c.set){var e=c.get,f=c.set;Object.defineProperty(a,b,{configurable:!0,get:function(){return e.call(this)},set:function(a){d=\"\"+a;f.call(this,a);}});Object.defineProperty(a,b,{enumerable:c.enumerable});return {getValue:function(){return d},setValue:function(a){d=\"\"+a;},stopTracking:function(){a._valueTracker=\nnull;delete a[b];}}}}function Va(a){a._valueTracker||(a._valueTracker=Ua(a));}function Wa(a){if(!a)return !1;var b=a._valueTracker;if(!b)return !0;var c=b.getValue();var d=\"\";a&&(d=Ta(a)?a.checked?\"true\":\"false\":a.value);a=d;return a!==c?(b.setValue(a),!0):!1}function Xa(a){a=a||(\"undefined\"!==typeof document?document:void 0);if(\"undefined\"===typeof a)return null;try{return a.activeElement||a.body}catch(b){return a.body}}\nfunction Ya(a,b){var c=b.checked;return objectAssign({},b,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=c?c:a._wrapperState.initialChecked})}function Za(a,b){var c=null==b.defaultValue?\"\":b.defaultValue,d=null!=b.checked?b.checked:b.defaultChecked;c=Sa(null!=b.value?b.value:c);a._wrapperState={initialChecked:d,initialValue:c,controlled:\"checkbox\"===b.type||\"radio\"===b.type?null!=b.checked:null!=b.value};}function $a(a,b){b=b.checked;null!=b&&qa(a,\"checked\",b,!1);}\nfunction ab(a,b){$a(a,b);var c=Sa(b.value),d=b.type;if(null!=c)if(\"number\"===d){if(0===c&&\"\"===a.value||a.value!=c)a.value=\"\"+c;}else a.value!==\"\"+c&&(a.value=\"\"+c);else if(\"submit\"===d||\"reset\"===d){a.removeAttribute(\"value\");return}b.hasOwnProperty(\"value\")?bb(a,b.type,c):b.hasOwnProperty(\"defaultValue\")&&bb(a,b.type,Sa(b.defaultValue));null==b.checked&&null!=b.defaultChecked&&(a.defaultChecked=!!b.defaultChecked);}\nfunction cb(a,b,c){if(b.hasOwnProperty(\"value\")||b.hasOwnProperty(\"defaultValue\")){var d=b.type;if(!(\"submit\"!==d&&\"reset\"!==d||void 0!==b.value&&null!==b.value))return;b=\"\"+a._wrapperState.initialValue;c||b===a.value||(a.value=b);a.defaultValue=b;}c=a.name;\"\"!==c&&(a.name=\"\");a.defaultChecked=!!a._wrapperState.initialChecked;\"\"!==c&&(a.name=c);}\nfunction bb(a,b,c){if(\"number\"!==b||Xa(a.ownerDocument)!==a)null==c?a.defaultValue=\"\"+a._wrapperState.initialValue:a.defaultValue!==\"\"+c&&(a.defaultValue=\"\"+c);}function db(a){var b=\"\";react.Children.forEach(a,function(a){null!=a&&(b+=a);});return b}function eb(a,b){a=objectAssign({children:void 0},b);if(b=db(b.children))a.children=b;return a}\nfunction fb(a,b,c,d){a=a.options;if(b){b={};for(var e=0;e=c.length))throw Error(y(93));c=c[0];}b=c;}null==b&&(b=\"\");c=b;}a._wrapperState={initialValue:Sa(c)};}\nfunction ib(a,b){var c=Sa(b.value),d=Sa(b.defaultValue);null!=c&&(c=\"\"+c,c!==a.value&&(a.value=c),null==b.defaultValue&&a.defaultValue!==c&&(a.defaultValue=c));null!=d&&(a.defaultValue=\"\"+d);}function jb(a){var b=a.textContent;b===a._wrapperState.initialValue&&\"\"!==b&&null!==b&&(a.value=b);}var kb={html:\"http://www.w3.org/1999/xhtml\",mathml:\"http://www.w3.org/1998/Math/MathML\",svg:\"http://www.w3.org/2000/svg\"};\nfunction lb(a){switch(a){case \"svg\":return \"http://www.w3.org/2000/svg\";case \"math\":return \"http://www.w3.org/1998/Math/MathML\";default:return \"http://www.w3.org/1999/xhtml\"}}function mb(a,b){return null==a||\"http://www.w3.org/1999/xhtml\"===a?lb(b):\"http://www.w3.org/2000/svg\"===a&&\"foreignObject\"===b?\"http://www.w3.org/1999/xhtml\":a}\nvar nb,ob=function(a){return \"undefined\"!==typeof MSApp&&MSApp.execUnsafeLocalFunction?function(b,c,d,e){MSApp.execUnsafeLocalFunction(function(){return a(b,c,d,e)});}:a}(function(a,b){if(a.namespaceURI!==kb.svg||\"innerHTML\"in a)a.innerHTML=b;else {nb=nb||document.createElement(\"div\");nb.innerHTML=\"\";for(b=nb.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild);}});\nfunction pb(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b;}\nvar qb={animationIterationCount:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,\nfloodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},rb=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(qb).forEach(function(a){rb.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1);qb[b]=qb[a];});});function sb(a,b,c){return null==b||\"boolean\"===typeof b||\"\"===b?\"\":c||\"number\"!==typeof b||0===b||qb.hasOwnProperty(a)&&qb[a]?(\"\"+b).trim():b+\"px\"}\nfunction tb(a,b){a=a.style;for(var c in b)if(b.hasOwnProperty(c)){var d=0===c.indexOf(\"--\"),e=sb(c,b[c],d);\"float\"===c&&(c=\"cssFloat\");d?a.setProperty(c,e):a[c]=e;}}var ub=objectAssign({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});\nfunction vb(a,b){if(b){if(ub[a]&&(null!=b.children||null!=b.dangerouslySetInnerHTML))throw Error(y(137,a));if(null!=b.dangerouslySetInnerHTML){if(null!=b.children)throw Error(y(60));if(!(\"object\"===typeof b.dangerouslySetInnerHTML&&\"__html\"in b.dangerouslySetInnerHTML))throw Error(y(61));}if(null!=b.style&&\"object\"!==typeof b.style)throw Error(y(62));}}\nfunction wb(a,b){if(-1===a.indexOf(\"-\"))return \"string\"===typeof b.is;switch(a){case \"annotation-xml\":case \"color-profile\":case \"font-face\":case \"font-face-src\":case \"font-face-uri\":case \"font-face-format\":case \"font-face-name\":case \"missing-glyph\":return !1;default:return !0}}function xb(a){a=a.target||a.srcElement||window;a.correspondingUseElement&&(a=a.correspondingUseElement);return 3===a.nodeType?a.parentNode:a}var yb=null,zb=null,Ab=null;\nfunction Bb(a){if(a=Cb(a)){if(\"function\"!==typeof yb)throw Error(y(280));var b=a.stateNode;b&&(b=Db(b),yb(a.stateNode,a.type,b));}}function Eb(a){zb?Ab?Ab.push(a):Ab=[a]:zb=a;}function Fb(){if(zb){var a=zb,b=Ab;Ab=zb=null;Bb(a);if(b)for(a=0;ad?0:1<c;c++)b.push(a);return b}\nfunction $c(a,b,c){a.pendingLanes|=b;var d=b-1;a.suspendedLanes&=d;a.pingedLanes&=d;a=a.eventTimes;b=31-Vc(b);a[b]=c;}var Vc=Math.clz32?Math.clz32:ad,bd=Math.log,cd=Math.LN2;function ad(a){return 0===a?32:31-(bd(a)/cd|0)|0}var dd=scheduler.unstable_UserBlockingPriority,ed=scheduler.unstable_runWithPriority,fd=!0;function gd(a,b,c,d){Kb||Ib();var e=hd,f=Kb;Kb=!0;try{Hb(e,a,b,c,d);}finally{(Kb=f)||Mb();}}function id(a,b,c,d){ed(dd,hd.bind(null,a,b,c,d));}\nfunction hd(a,b,c,d){if(fd){var e;if((e=0===(b&4))&&0=be),ee=String.fromCharCode(32),fe=!1;\nfunction ge(a,b){switch(a){case \"keyup\":return -1!==$d.indexOf(b.keyCode);case \"keydown\":return 229!==b.keyCode;case \"keypress\":case \"mousedown\":case \"focusout\":return !0;default:return !1}}function he(a){a=a.detail;return \"object\"===typeof a&&\"data\"in a?a.data:null}var ie=!1;function je(a,b){switch(a){case \"compositionend\":return he(b);case \"keypress\":if(32!==b.which)return null;fe=!0;return ee;case \"textInput\":return a=b.data,a===ee&&fe?null:a;default:return null}}\nfunction ke(a,b){if(ie)return \"compositionend\"===a||!ae&&ge(a,b)?(a=nd(),md=ld=kd=null,ie=!1,a):null;switch(a){case \"paste\":return null;case \"keypress\":if(!(b.ctrlKey||b.altKey||b.metaKey)||b.ctrlKey&&b.altKey){if(b.char&&1=b)return {node:c,offset:b-a};a=d;}a:{for(;c;){if(c.nextSibling){c=c.nextSibling;break a}c=c.parentNode;}c=void 0;}c=Ke(c);}}function Me(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?Me(a,b.parentNode):\"contains\"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}\nfunction Ne(){for(var a=window,b=Xa();b instanceof a.HTMLIFrameElement;){try{var c=\"string\"===typeof b.contentWindow.location.href;}catch(d){c=!1;}if(c)a=b.contentWindow;else break;b=Xa(a.document);}return b}function Oe(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return b&&(\"input\"===b&&(\"text\"===a.type||\"search\"===a.type||\"tel\"===a.type||\"url\"===a.type||\"password\"===a.type)||\"textarea\"===b||\"true\"===a.contentEditable)}\nvar Pe=fa&&\"documentMode\"in document&&11>=document.documentMode,Qe=null,Re=null,Se=null,Te=!1;\nfunction Ue(a,b,c){var d=c.window===c?c.document:9===c.nodeType?c:c.ownerDocument;Te||null==Qe||Qe!==Xa(d)||(d=Qe,\"selectionStart\"in d&&Oe(d)?d={start:d.selectionStart,end:d.selectionEnd}:(d=(d.ownerDocument&&d.ownerDocument.defaultView||window).getSelection(),d={anchorNode:d.anchorNode,anchorOffset:d.anchorOffset,focusNode:d.focusNode,focusOffset:d.focusOffset}),Se&&Je(Se,d)||(Se=d,d=oe(Re,\"onSelect\"),0Af||(a.current=zf[Af],zf[Af]=null,Af--);}function I(a,b){Af++;zf[Af]=a.current;a.current=b;}var Cf={},M=Bf(Cf),N=Bf(!1),Df=Cf;\nfunction Ef(a,b){var c=a.type.contextTypes;if(!c)return Cf;var d=a.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===b)return d.__reactInternalMemoizedMaskedChildContext;var e={},f;for(f in c)e[f]=b[f];d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=b,a.__reactInternalMemoizedMaskedChildContext=e);return e}function Ff(a){a=a.childContextTypes;return null!==a&&void 0!==a}function Gf(){H(N);H(M);}function Hf(a,b,c){if(M.current!==Cf)throw Error(y(168));I(M,b);I(N,c);}\nfunction If(a,b,c){var d=a.stateNode;a=b.childContextTypes;if(\"function\"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)if(!(e in a))throw Error(y(108,Ra(b)||\"Unknown\",e));return objectAssign({},c,d)}function Jf(a){a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||Cf;Df=M.current;I(M,a);I(N,N.current);return !0}function Kf(a,b,c){var d=a.stateNode;if(!d)throw Error(y(169));c?(a=If(a,b,Df),d.__reactInternalMemoizedMergedChildContext=a,H(N),H(M),I(M,a)):H(N);I(N,c);}\nvar Lf=null,Mf=null,Nf=scheduler.unstable_runWithPriority,Of=scheduler.unstable_scheduleCallback,Pf=scheduler.unstable_cancelCallback,Qf=scheduler.unstable_shouldYield,Rf=scheduler.unstable_requestPaint,Sf=scheduler.unstable_now,Tf=scheduler.unstable_getCurrentPriorityLevel,Uf=scheduler.unstable_ImmediatePriority,Vf=scheduler.unstable_UserBlockingPriority,Wf=scheduler.unstable_NormalPriority,Xf=scheduler.unstable_LowPriority,Yf=scheduler.unstable_IdlePriority,Zf={},$f=void 0!==Rf?Rf:function(){},ag=null,bg=null,cg=!1,dg=Sf(),O=1E4>dg?Sf:function(){return Sf()-dg};\nfunction eg(){switch(Tf()){case Uf:return 99;case Vf:return 98;case Wf:return 97;case Xf:return 96;case Yf:return 95;default:throw Error(y(332));}}function fg(a){switch(a){case 99:return Uf;case 98:return Vf;case 97:return Wf;case 96:return Xf;case 95:return Yf;default:throw Error(y(332));}}function gg(a,b){a=fg(a);return Nf(a,b)}function hg(a,b,c){a=fg(a);return Of(a,b,c)}function ig(){if(null!==bg){var a=bg;bg=null;Pf(a);}jg();}\nfunction jg(){if(!cg&&null!==ag){cg=!0;var a=0;try{var b=ag;gg(99,function(){for(;az?(q=u,u=null):q=u.sibling;var n=p(e,u,h[z],k);if(null===n){null===u&&(u=q);break}a&&u&&null===\nn.alternate&&b(e,u);g=f(n,g,z);null===t?l=n:t.sibling=n;t=n;u=q;}if(z===h.length)return c(e,u),l;if(null===u){for(;zz?(q=u,u=null):q=u.sibling;var w=p(e,u,n.value,k);if(null===w){null===u&&(u=q);break}a&&u&&null===w.alternate&&b(e,u);g=f(w,g,z);null===t?l=w:t.sibling=w;t=w;u=q;}if(n.done)return c(e,u),l;if(null===u){for(;!n.done;z++,n=h.next())n=A(e,n.value,k),null!==n&&(g=f(n,g,z),null===t?l=n:t.sibling=n,t=n);return l}for(u=d(e,u);!n.done;z++,n=h.next())n=C(u,e,z,n.value,k),null!==n&&(a&&null!==n.alternate&&\nu.delete(null===n.key?z:n.key),g=f(n,g,z),null===t?l=n:t.sibling=n,t=n);a&&u.forEach(function(a){return b(e,a)});return l}return function(a,d,f,h){var k=\"object\"===typeof f&&null!==f&&f.type===ua&&null===f.key;k&&(f=f.props.children);var l=\"object\"===typeof f&&null!==f;if(l)switch(f.$$typeof){case sa:a:{l=f.key;for(k=d;null!==k;){if(k.key===l){switch(k.tag){case 7:if(f.type===ua){c(a,k.sibling);d=e(k,f.props.children);d.return=a;a=d;break a}break;default:if(k.elementType===f.type){c(a,k.sibling);\nd=e(k,f.props);d.ref=Qg(a,k,f);d.return=a;a=d;break a}}c(a,k);break}else b(a,k);k=k.sibling;}f.type===ua?(d=Xg(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=Vg(f.type,f.key,f.props,null,a.mode,h),h.ref=Qg(a,d,f),h.return=a,a=h);}return g(a);case ta:a:{for(k=f.key;null!==d;){if(d.key===k)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===f.implementation){c(a,d.sibling);d=e(d,f.children||[]);d.return=a;a=d;break a}else {c(a,d);break}else b(a,d);d=d.sibling;}d=\nWg(f,a.mode,h);d.return=a;a=d;}return g(a)}if(\"string\"===typeof f||\"number\"===typeof f)return f=\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f),d.return=a,a=d):(c(a,d),d=Ug(f,a.mode,h),d.return=a,a=d),g(a);if(Pg(f))return x(a,d,f,h);if(La(f))return w(a,d,f,h);l&&Rg(a,f);if(\"undefined\"===typeof f&&!k)switch(a.tag){case 1:case 22:case 0:case 11:case 15:throw Error(y(152,Ra(a.type)||\"Component\"));}return c(a,d)}}var Yg=Sg(!0),Zg=Sg(!1),$g={},ah=Bf($g),bh=Bf($g),ch=Bf($g);\nfunction dh(a){if(a===$g)throw Error(y(174));return a}function eh(a,b){I(ch,b);I(bh,a);I(ah,$g);a=b.nodeType;switch(a){case 9:case 11:b=(b=b.documentElement)?b.namespaceURI:mb(null,\"\");break;default:a=8===a?b.parentNode:b,b=a.namespaceURI||null,a=a.tagName,b=mb(b,a);}H(ah);I(ah,b);}function fh(){H(ah);H(bh);H(ch);}function gh(a){dh(ch.current);var b=dh(ah.current);var c=mb(b,a.type);b!==c&&(I(bh,a),I(ah,c));}function hh(a){bh.current===a&&(H(ah),H(bh));}var P=Bf(0);\nfunction ih(a){for(var b=a;null!==b;){if(13===b.tag){var c=b.memoizedState;if(null!==c&&(c=c.dehydrated,null===c||\"$?\"===c.data||\"$!\"===c.data))return b}else if(19===b.tag&&void 0!==b.memoizedProps.revealOrder){if(0!==(b.flags&64))return b}else if(null!==b.child){b.child.return=b;b=b.child;continue}if(b===a)break;for(;null===b.sibling;){if(null===b.return||b.return===a)return null;b=b.return;}b.sibling.return=b.return;b=b.sibling;}return null}var jh=null,kh=null,lh=!1;\nfunction mh(a,b){var c=nh(5,null,null,0);c.elementType=\"DELETED\";c.type=\"DELETED\";c.stateNode=b;c.return=a;c.flags=8;null!==a.lastEffect?(a.lastEffect.nextEffect=c,a.lastEffect=c):a.firstEffect=a.lastEffect=c;}function oh(a,b){switch(a.tag){case 5:var c=a.type;b=1!==b.nodeType||c.toLowerCase()!==b.nodeName.toLowerCase()?null:b;return null!==b?(a.stateNode=b,!0):!1;case 6:return b=\"\"===a.pendingProps||3!==b.nodeType?null:b,null!==b?(a.stateNode=b,!0):!1;case 13:return !1;default:return !1}}\nfunction ph(a){if(lh){var b=kh;if(b){var c=b;if(!oh(a,b)){b=rf(c.nextSibling);if(!b||!oh(a,b)){a.flags=a.flags&-1025|2;lh=!1;jh=a;return}mh(jh,c);}jh=a;kh=rf(b.firstChild);}else a.flags=a.flags&-1025|2,lh=!1,jh=a;}}function qh(a){for(a=a.return;null!==a&&5!==a.tag&&3!==a.tag&&13!==a.tag;)a=a.return;jh=a;}\nfunction rh(a){if(a!==jh)return !1;if(!lh)return qh(a),lh=!0,!1;var b=a.type;if(5!==a.tag||\"head\"!==b&&\"body\"!==b&&!nf(b,a.memoizedProps))for(b=kh;b;)mh(a,b),b=rf(b.nextSibling);qh(a);if(13===a.tag){a=a.memoizedState;a=null!==a?a.dehydrated:null;if(!a)throw Error(y(317));a:{a=a.nextSibling;for(b=0;a;){if(8===a.nodeType){var c=a.data;if(\"/$\"===c){if(0===b){kh=rf(a.nextSibling);break a}b--;}else \"$\"!==c&&\"$!\"!==c&&\"$?\"!==c||b++;}a=a.nextSibling;}kh=null;}}else kh=jh?rf(a.stateNode.nextSibling):null;return !0}\nfunction sh(){kh=jh=null;lh=!1;}var th=[];function uh(){for(var a=0;af))throw Error(y(301));f+=1;T=S=null;b.updateQueue=null;vh.current=Fh;a=c(d,e);}while(zh)}vh.current=Gh;b=null!==S&&null!==S.next;xh=0;T=S=R=null;yh=!1;if(b)throw Error(y(300));return a}function Hh(){var a={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};null===T?R.memoizedState=T=a:T=T.next=a;return T}\nfunction Ih(){if(null===S){var a=R.alternate;a=null!==a?a.memoizedState:null;}else a=S.next;var b=null===T?R.memoizedState:T.next;if(null!==b)T=b,S=a;else {if(null===a)throw Error(y(310));S=a;a={memoizedState:S.memoizedState,baseState:S.baseState,baseQueue:S.baseQueue,queue:S.queue,next:null};null===T?R.memoizedState=T=a:T=T.next=a;}return T}function Jh(a,b){return \"function\"===typeof b?b(a):b}\nfunction Kh(a){var b=Ih(),c=b.queue;if(null===c)throw Error(y(311));c.lastRenderedReducer=a;var d=S,e=d.baseQueue,f=c.pending;if(null!==f){if(null!==e){var g=e.next;e.next=f.next;f.next=g;}d.baseQueue=e=f;c.pending=null;}if(null!==e){e=e.next;d=d.baseState;var h=g=f=null,k=e;do{var l=k.lane;if((xh&l)===l)null!==h&&(h=h.next={lane:0,action:k.action,eagerReducer:k.eagerReducer,eagerState:k.eagerState,next:null}),d=k.eagerReducer===a?k.eagerState:a(d,k.action);else {var n={lane:l,action:k.action,eagerReducer:k.eagerReducer,\neagerState:k.eagerState,next:null};null===h?(g=h=n,f=d):h=h.next=n;R.lanes|=l;Dg|=l;}k=k.next;}while(null!==k&&k!==e);null===h?f=d:h.next=g;He(d,b.memoizedState)||(ug=!0);b.memoizedState=d;b.baseState=f;b.baseQueue=h;c.lastRenderedState=d;}return [b.memoizedState,c.dispatch]}\nfunction Lh(a){var b=Ih(),c=b.queue;if(null===c)throw Error(y(311));c.lastRenderedReducer=a;var d=c.dispatch,e=c.pending,f=b.memoizedState;if(null!==e){c.pending=null;var g=e=e.next;do f=a(f,g.action),g=g.next;while(g!==e);He(f,b.memoizedState)||(ug=!0);b.memoizedState=f;null===b.baseQueue&&(b.baseState=f);c.lastRenderedState=f;}return [f,d]}\nfunction Mh(a,b,c){var d=b._getVersion;d=d(b._source);var e=b._workInProgressVersionPrimary;if(null!==e)a=e===d;else if(a=a.mutableReadLanes,a=(xh&a)===a)b._workInProgressVersionPrimary=d,th.push(b);if(a)return c(b._source);th.push(b);throw Error(y(350));}\nfunction Nh(a,b,c,d){var e=U;if(null===e)throw Error(y(349));var f=b._getVersion,g=f(b._source),h=vh.current,k=h.useState(function(){return Mh(e,b,c)}),l=k[1],n=k[0];k=T;var A=a.memoizedState,p=A.refs,C=p.getSnapshot,x=A.source;A=A.subscribe;var w=R;a.memoizedState={refs:p,source:b,subscribe:d};h.useEffect(function(){p.getSnapshot=c;p.setSnapshot=l;var a=f(b._source);if(!He(g,a)){a=c(b._source);He(n,a)||(l(a),a=Ig(w),e.mutableReadLanes|=a&e.pendingLanes);a=e.mutableReadLanes;e.entangledLanes|=a;for(var d=\ne.entanglements,h=a;0c?98:c,function(){a(!0);});gg(97\\x3c/script>\",a=a.removeChild(a.firstChild)):\"string\"===typeof d.is?a=g.createElement(c,{is:d.is}):(a=g.createElement(c),\"select\"===c&&(g=a,d.multiple?g.multiple=!0:d.size&&(g.size=d.size))):a=g.createElementNS(a,c);a[wf]=b;a[xf]=d;Bi(a,b,!1,!1);b.stateNode=a;g=wb(c,d);switch(c){case \"dialog\":G(\"cancel\",a);G(\"close\",a);\ne=d;break;case \"iframe\":case \"object\":case \"embed\":G(\"load\",a);e=d;break;case \"video\":case \"audio\":for(e=0;eJi&&(b.flags|=64,f=!0,Fi(d,!1),b.lanes=33554432);}else {if(!f)if(a=ih(g),null!==a){if(b.flags|=64,f=!0,c=a.updateQueue,null!==c&&(b.updateQueue=c,b.flags|=4),Fi(d,!0),null===d.tail&&\"hidden\"===d.tailMode&&!g.alternate&&!lh)return b=b.lastEffect=d.lastEffect,null!==b&&(b.nextEffect=null),null}else 2*O()-d.renderingStartTime>Ji&&1073741824!==c&&(b.flags|=\n64,f=!0,Fi(d,!1),b.lanes=33554432);d.isBackwards?(g.sibling=b.child,b.child=g):(c=d.last,null!==c?c.sibling=g:b.child=g,d.last=g);}return null!==d.tail?(c=d.tail,d.rendering=c,d.tail=c.sibling,d.lastEffect=b.lastEffect,d.renderingStartTime=O(),c.sibling=null,b=P.current,I(P,f?b&1|2:b&1),c):null;case 23:case 24:return Ki(),null!==a&&null!==a.memoizedState!==(null!==b.memoizedState)&&\"unstable-defer-without-hiding\"!==d.mode&&(b.flags|=4),null}throw Error(y(156,b.tag));}\nfunction Li(a){switch(a.tag){case 1:Ff(a.type)&&Gf();var b=a.flags;return b&4096?(a.flags=b&-4097|64,a):null;case 3:fh();H(N);H(M);uh();b=a.flags;if(0!==(b&64))throw Error(y(285));a.flags=b&-4097|64;return a;case 5:return hh(a),null;case 13:return H(P),b=a.flags,b&4096?(a.flags=b&-4097|64,a):null;case 19:return H(P),null;case 4:return fh(),null;case 10:return rg(a),null;case 23:case 24:return Ki(),null;default:return null}}\nfunction Mi(a,b){try{var c=\"\",d=b;do c+=Qa(d),d=d.return;while(d);var e=c;}catch(f){e=\"\\nError generating stack: \"+f.message+\"\\n\"+f.stack;}return {value:a,source:b,stack:e}}function Ni(a,b){try{console.error(b.value);}catch(c){setTimeout(function(){throw c;});}}var Oi=\"function\"===typeof WeakMap?WeakMap:Map;function Pi(a,b,c){c=zg(-1,c);c.tag=3;c.payload={element:null};var d=b.value;c.callback=function(){Qi||(Qi=!0,Ri=d);Ni(a,b);};return c}\nfunction Si(a,b,c){c=zg(-1,c);c.tag=3;var d=a.type.getDerivedStateFromError;if(\"function\"===typeof d){var e=b.value;c.payload=function(){Ni(a,b);return d(e)};}var f=a.stateNode;null!==f&&\"function\"===typeof f.componentDidCatch&&(c.callback=function(){\"function\"!==typeof d&&(null===Ti?Ti=new Set([this]):Ti.add(this),Ni(a,b));var c=b.stack;this.componentDidCatch(b.value,{componentStack:null!==c?c:\"\"});});return c}var Ui=\"function\"===typeof WeakSet?WeakSet:Set;\nfunction Vi(a){var b=a.ref;if(null!==b)if(\"function\"===typeof b)try{b(null);}catch(c){Wi(a,c);}else b.current=null;}function Xi(a,b){switch(b.tag){case 0:case 11:case 15:case 22:return;case 1:if(b.flags&256&&null!==a){var c=a.memoizedProps,d=a.memoizedState;a=b.stateNode;b=a.getSnapshotBeforeUpdate(b.elementType===b.type?c:lg(b.type,c),d);a.__reactInternalSnapshotBeforeUpdate=b;}return;case 3:b.flags&256&&qf(b.stateNode.containerInfo);return;case 5:case 6:case 4:case 17:return}throw Error(y(163));}\nfunction Yi(a,b,c){switch(c.tag){case 0:case 11:case 15:case 22:b=c.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){a=b=b.next;do{if(3===(a.tag&3)){var d=a.create;a.destroy=d();}a=a.next;}while(a!==b)}b=c.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){a=b=b.next;do{var e=a;d=e.next;e=e.tag;0!==(e&4)&&0!==(e&1)&&(Zi(c,a),$i(c,a));a=d;}while(a!==b)}return;case 1:a=c.stateNode;c.flags&4&&(null===b?a.componentDidMount():(d=c.elementType===c.type?b.memoizedProps:lg(c.type,b.memoizedProps),a.componentDidUpdate(d,\nb.memoizedState,a.__reactInternalSnapshotBeforeUpdate)));b=c.updateQueue;null!==b&&Eg(c,b,a);return;case 3:b=c.updateQueue;if(null!==b){a=null;if(null!==c.child)switch(c.child.tag){case 5:a=c.child.stateNode;break;case 1:a=c.child.stateNode;}Eg(c,b,a);}return;case 5:a=c.stateNode;null===b&&c.flags&4&&mf(c.type,c.memoizedProps)&&a.focus();return;case 6:return;case 4:return;case 12:return;case 13:null===c.memoizedState&&(c=c.alternate,null!==c&&(c=c.memoizedState,null!==c&&(c=c.dehydrated,null!==c&&Cc(c))));\nreturn;case 19:case 17:case 20:case 21:case 23:case 24:return}throw Error(y(163));}\nfunction aj(a,b){for(var c=a;;){if(5===c.tag){var d=c.stateNode;if(b)d=d.style,\"function\"===typeof d.setProperty?d.setProperty(\"display\",\"none\",\"important\"):d.display=\"none\";else {d=c.stateNode;var e=c.memoizedProps.style;e=void 0!==e&&null!==e&&e.hasOwnProperty(\"display\")?e.display:null;d.style.display=sb(\"display\",e);}}else if(6===c.tag)c.stateNode.nodeValue=b?\"\":c.memoizedProps;else if((23!==c.tag&&24!==c.tag||null===c.memoizedState||c===a)&&null!==c.child){c.child.return=c;c=c.child;continue}if(c===\na)break;for(;null===c.sibling;){if(null===c.return||c.return===a)return;c=c.return;}c.sibling.return=c.return;c=c.sibling;}}\nfunction bj(a,b){if(Mf&&\"function\"===typeof Mf.onCommitFiberUnmount)try{Mf.onCommitFiberUnmount(Lf,b);}catch(f){}switch(b.tag){case 0:case 11:case 14:case 15:case 22:a=b.updateQueue;if(null!==a&&(a=a.lastEffect,null!==a)){var c=a=a.next;do{var d=c,e=d.destroy;d=d.tag;if(void 0!==e)if(0!==(d&4))Zi(b,c);else {d=b;try{e();}catch(f){Wi(d,f);}}c=c.next;}while(c!==a)}break;case 1:Vi(b);a=b.stateNode;if(\"function\"===typeof a.componentWillUnmount)try{a.props=b.memoizedProps,a.state=b.memoizedState,a.componentWillUnmount();}catch(f){Wi(b,\nf);}break;case 5:Vi(b);break;case 4:cj(a,b);}}function dj(a){a.alternate=null;a.child=null;a.dependencies=null;a.firstEffect=null;a.lastEffect=null;a.memoizedProps=null;a.memoizedState=null;a.pendingProps=null;a.return=null;a.updateQueue=null;}function ej(a){return 5===a.tag||3===a.tag||4===a.tag}\nfunction fj(a){a:{for(var b=a.return;null!==b;){if(ej(b))break a;b=b.return;}throw Error(y(160));}var c=b;b=c.stateNode;switch(c.tag){case 5:var d=!1;break;case 3:b=b.containerInfo;d=!0;break;case 4:b=b.containerInfo;d=!0;break;default:throw Error(y(161));}c.flags&16&&(pb(b,\"\"),c.flags&=-17);a:b:for(c=a;;){for(;null===c.sibling;){if(null===c.return||ej(c.return)){c=null;break a}c=c.return;}c.sibling.return=c.return;for(c=c.sibling;5!==c.tag&&6!==c.tag&&18!==c.tag;){if(c.flags&2)continue b;if(null===\nc.child||4===c.tag)continue b;else c.child.return=c,c=c.child;}if(!(c.flags&2)){c=c.stateNode;break a}}d?gj(a,c,b):hj(a,c,b);}\nfunction gj(a,b,c){var d=a.tag,e=5===d||6===d;if(e)a=e?a.stateNode:a.stateNode.instance,b?8===c.nodeType?c.parentNode.insertBefore(a,b):c.insertBefore(a,b):(8===c.nodeType?(b=c.parentNode,b.insertBefore(a,c)):(b=c,b.appendChild(a)),c=c._reactRootContainer,null!==c&&void 0!==c||null!==b.onclick||(b.onclick=jf));else if(4!==d&&(a=a.child,null!==a))for(gj(a,b,c),a=a.sibling;null!==a;)gj(a,b,c),a=a.sibling;}\nfunction hj(a,b,c){var d=a.tag,e=5===d||6===d;if(e)a=e?a.stateNode:a.stateNode.instance,b?c.insertBefore(a,b):c.appendChild(a);else if(4!==d&&(a=a.child,null!==a))for(hj(a,b,c),a=a.sibling;null!==a;)hj(a,b,c),a=a.sibling;}\nfunction cj(a,b){for(var c=b,d=!1,e,f;;){if(!d){d=c.return;a:for(;;){if(null===d)throw Error(y(160));e=d.stateNode;switch(d.tag){case 5:f=!1;break a;case 3:e=e.containerInfo;f=!0;break a;case 4:e=e.containerInfo;f=!0;break a}d=d.return;}d=!0;}if(5===c.tag||6===c.tag){a:for(var g=a,h=c,k=h;;)if(bj(g,k),null!==k.child&&4!==k.tag)k.child.return=k,k=k.child;else {if(k===h)break a;for(;null===k.sibling;){if(null===k.return||k.return===h)break a;k=k.return;}k.sibling.return=k.return;k=k.sibling;}f?(g=e,h=c.stateNode,\n8===g.nodeType?g.parentNode.removeChild(h):g.removeChild(h)):e.removeChild(c.stateNode);}else if(4===c.tag){if(null!==c.child){e=c.stateNode.containerInfo;f=!0;c.child.return=c;c=c.child;continue}}else if(bj(a,c),null!==c.child){c.child.return=c;c=c.child;continue}if(c===b)break;for(;null===c.sibling;){if(null===c.return||c.return===b)return;c=c.return;4===c.tag&&(d=!1);}c.sibling.return=c.return;c=c.sibling;}}\nfunction ij(a,b){switch(b.tag){case 0:case 11:case 14:case 15:case 22:var c=b.updateQueue;c=null!==c?c.lastEffect:null;if(null!==c){var d=c=c.next;do 3===(d.tag&3)&&(a=d.destroy,d.destroy=void 0,void 0!==a&&a()),d=d.next;while(d!==c)}return;case 1:return;case 5:c=b.stateNode;if(null!=c){d=b.memoizedProps;var e=null!==a?a.memoizedProps:d;a=b.type;var f=b.updateQueue;b.updateQueue=null;if(null!==f){c[xf]=d;\"input\"===a&&\"radio\"===d.type&&null!=d.name&&$a(c,d);wb(a,e);b=wb(a,d);for(e=0;ee&&(e=g);c&=~f;}c=e;c=O()-c;c=(120>c?120:480>c?480:1080>c?1080:1920>c?1920:3E3>c?3E3:4320>\nc?4320:1960*nj(c/1960))-c;if(10 component higher in the tree to provide a loading indicator or placeholder to display.\");}5!==V&&(V=2);k=Mi(k,h);p=\ng;do{switch(p.tag){case 3:f=k;p.flags|=4096;b&=-b;p.lanes|=b;var J=Pi(p,f,b);Bg(p,J);break a;case 1:f=k;var K=p.type,Q=p.stateNode;if(0===(p.flags&64)&&(\"function\"===typeof K.getDerivedStateFromError||null!==Q&&\"function\"===typeof Q.componentDidCatch&&(null===Ti||!Ti.has(Q)))){p.flags|=4096;b&=-b;p.lanes|=b;var L=Si(p,f,b);Bg(p,L);break a}}p=p.return;}while(null!==p)}Zj(c);}catch(va){b=va;Y===c&&null!==c&&(Y=c=c.return);continue}break}while(1)}\nfunction Pj(){var a=oj.current;oj.current=Gh;return null===a?Gh:a}function Tj(a,b){var c=X;X|=16;var d=Pj();U===a&&W===b||Qj(a,b);do try{ak();break}catch(e){Sj(a,e);}while(1);qg();X=c;oj.current=d;if(null!==Y)throw Error(y(261));U=null;W=0;return V}function ak(){for(;null!==Y;)bk(Y);}function Rj(){for(;null!==Y&&!Qf();)bk(Y);}function bk(a){var b=ck(a.alternate,a,qj);a.memoizedProps=a.pendingProps;null===b?Zj(a):Y=b;pj.current=null;}\nfunction Zj(a){var b=a;do{var c=b.alternate;a=b.return;if(0===(b.flags&2048)){c=Gi(c,b,qj);if(null!==c){Y=c;return}c=b;if(24!==c.tag&&23!==c.tag||null===c.memoizedState||0!==(qj&1073741824)||0===(c.mode&4)){for(var d=0,e=c.child;null!==e;)d|=e.lanes|e.childLanes,e=e.sibling;c.childLanes=d;}null!==a&&0===(a.flags&2048)&&(null===a.firstEffect&&(a.firstEffect=b.firstEffect),null!==b.lastEffect&&(null!==a.lastEffect&&(a.lastEffect.nextEffect=b.firstEffect),a.lastEffect=b.lastEffect),1g&&(h=g,g=J,J=h),h=Le(t,J),f=Le(t,g),h&&f&&(1!==v.rangeCount||v.anchorNode!==h.node||v.anchorOffset!==h.offset||v.focusNode!==f.node||v.focusOffset!==f.offset)&&(q=q.createRange(),q.setStart(h.node,h.offset),v.removeAllRanges(),J>g?(v.addRange(q),v.extend(f.node,f.offset)):(q.setEnd(f.node,f.offset),v.addRange(q))))));q=[];for(v=t;v=v.parentNode;)1===v.nodeType&&q.push({element:v,left:v.scrollLeft,top:v.scrollTop});\"function\"===typeof t.focus&&t.focus();for(t=\n0;tO()-jj?Qj(a,0):uj|=c);Mj(a,b);}function lj(a,b){var c=a.stateNode;null!==c&&c.delete(b);b=0;0===b&&(b=a.mode,0===(b&2)?b=1:0===(b&4)?b=99===eg()?1:2:(0===Gj&&(Gj=tj),b=Yc(62914560&~Gj),0===b&&(b=4194304)));c=Hg();a=Kj(a,b);null!==a&&($c(a,b,c),Mj(a,c));}var ck;\nck=function(a,b,c){var d=b.lanes;if(null!==a)if(a.memoizedProps!==b.pendingProps||N.current)ug=!0;else if(0!==(c&d))ug=0!==(a.flags&16384)?!0:!1;else {ug=!1;switch(b.tag){case 3:ri(b);sh();break;case 5:gh(b);break;case 1:Ff(b.type)&&Jf(b);break;case 4:eh(b,b.stateNode.containerInfo);break;case 10:d=b.memoizedProps.value;var e=b.type._context;I(mg,e._currentValue);e._currentValue=d;break;case 13:if(null!==b.memoizedState){if(0!==(c&b.child.childLanes))return ti(a,b,c);I(P,P.current&1);b=hi(a,b,c);return null!==\nb?b.sibling:null}I(P,P.current&1);break;case 19:d=0!==(c&b.childLanes);if(0!==(a.flags&64)){if(d)return Ai(a,b,c);b.flags|=64;}e=b.memoizedState;null!==e&&(e.rendering=null,e.tail=null,e.lastEffect=null);I(P,P.current);if(d)break;else return null;case 23:case 24:return b.lanes=0,mi(a,b,c)}return hi(a,b,c)}else ug=!1;b.lanes=0;switch(b.tag){case 2:d=b.type;null!==a&&(a.alternate=null,b.alternate=null,b.flags|=2);a=b.pendingProps;e=Ef(b,M.current);tg(b,c);e=Ch(null,b,d,a,e,c);b.flags|=1;if(\"object\"===\ntypeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof){b.tag=1;b.memoizedState=null;b.updateQueue=null;if(Ff(d)){var f=!0;Jf(b);}else f=!1;b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null;xg(b);var g=d.getDerivedStateFromProps;\"function\"===typeof g&&Gg(b,d,g,a);e.updater=Kg;b.stateNode=e;e._reactInternals=b;Og(b,d,a,c);b=qi(null,b,d,!0,f,c);}else b.tag=0,fi(null,b,e,c),b=b.child;return b;case 16:e=b.elementType;a:{null!==a&&(a.alternate=null,b.alternate=null,b.flags|=2);\na=b.pendingProps;f=e._init;e=f(e._payload);b.type=e;f=b.tag=hk(e);a=lg(e,a);switch(f){case 0:b=li(null,b,e,a,c);break a;case 1:b=pi(null,b,e,a,c);break a;case 11:b=gi(null,b,e,a,c);break a;case 14:b=ii(null,b,e,lg(e.type,a),d,c);break a}throw Error(y(306,e,\"\"));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:lg(d,e),li(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:lg(d,e),pi(a,b,d,e,c);case 3:ri(b);d=b.updateQueue;if(null===a||null===d)throw Error(y(282));\nd=b.pendingProps;e=b.memoizedState;e=null!==e?e.element:null;yg(a,b);Cg(b,d,null,c);d=b.memoizedState.element;if(d===e)sh(),b=hi(a,b,c);else {e=b.stateNode;if(f=e.hydrate)kh=rf(b.stateNode.containerInfo.firstChild),jh=b,f=lh=!0;if(f){a=e.mutableSourceEagerHydrationData;if(null!=a)for(e=0;e encodeURIComponent(str).replace(/[!'()*]/g, x => `%${x.charCodeAt(0).toString(16).toUpperCase()}`);\n\nvar token = '%[a-f0-9]{2}';\nvar singleMatcher = new RegExp(token, 'gi');\nvar multiMatcher = new RegExp('(' + token + ')+', 'gi');\n\nfunction decodeComponents(components, split) {\n\ttry {\n\t\t// Try to decode the entire string first\n\t\treturn decodeURIComponent(components.join(''));\n\t} catch (err) {\n\t\t// Do nothing\n\t}\n\n\tif (components.length === 1) {\n\t\treturn components;\n\t}\n\n\tsplit = split || 1;\n\n\t// Split the array in 2 parts\n\tvar left = components.slice(0, split);\n\tvar right = components.slice(split);\n\n\treturn Array.prototype.concat.call([], decodeComponents(left), decodeComponents(right));\n}\n\nfunction decode(input) {\n\ttry {\n\t\treturn decodeURIComponent(input);\n\t} catch (err) {\n\t\tvar tokens = input.match(singleMatcher);\n\n\t\tfor (var i = 1; i < tokens.length; i++) {\n\t\t\tinput = decodeComponents(tokens, i).join('');\n\n\t\t\ttokens = input.match(singleMatcher);\n\t\t}\n\n\t\treturn input;\n\t}\n}\n\nfunction customDecodeURIComponent(input) {\n\t// Keep track of all the replacements and prefill the map with the `BOM`\n\tvar replaceMap = {\n\t\t'%FE%FF': '\\uFFFD\\uFFFD',\n\t\t'%FF%FE': '\\uFFFD\\uFFFD'\n\t};\n\n\tvar match = multiMatcher.exec(input);\n\twhile (match) {\n\t\ttry {\n\t\t\t// Decode as big chunks as possible\n\t\t\treplaceMap[match[0]] = decodeURIComponent(match[0]);\n\t\t} catch (err) {\n\t\t\tvar result = decode(match[0]);\n\n\t\t\tif (result !== match[0]) {\n\t\t\t\treplaceMap[match[0]] = result;\n\t\t\t}\n\t\t}\n\n\t\tmatch = multiMatcher.exec(input);\n\t}\n\n\t// Add `%C2` at the end of the map to make sure it does not replace the combinator before everything else\n\treplaceMap['%C2'] = '\\uFFFD';\n\n\tvar entries = Object.keys(replaceMap);\n\n\tfor (var i = 0; i < entries.length; i++) {\n\t\t// Replace all decoded components\n\t\tvar key = entries[i];\n\t\tinput = input.replace(new RegExp(key, 'g'), replaceMap[key]);\n\t}\n\n\treturn input;\n}\n\nvar decodeUriComponent = function (encodedURI) {\n\tif (typeof encodedURI !== 'string') {\n\t\tthrow new TypeError('Expected `encodedURI` to be of type `string`, got `' + typeof encodedURI + '`');\n\t}\n\n\ttry {\n\t\tencodedURI = encodedURI.replace(/\\+/g, ' ');\n\n\t\t// Try the built in decoder first\n\t\treturn decodeURIComponent(encodedURI);\n\t} catch (err) {\n\t\t// Fallback to a more advanced decoder\n\t\treturn customDecodeURIComponent(encodedURI);\n\t}\n};\n\nvar splitOnFirst = (string, separator) => {\n\tif (!(typeof string === 'string' && typeof separator === 'string')) {\n\t\tthrow new TypeError('Expected the arguments to be of type `string`');\n\t}\n\n\tif (separator === '') {\n\t\treturn [string];\n\t}\n\n\tconst separatorIndex = string.indexOf(separator);\n\n\tif (separatorIndex === -1) {\n\t\treturn [string];\n\t}\n\n\treturn [\n\t\tstring.slice(0, separatorIndex),\n\t\tstring.slice(separatorIndex + separator.length)\n\t];\n};\n\nvar filterObj = function (obj, predicate) {\n\tvar ret = {};\n\tvar keys = Object.keys(obj);\n\tvar isArr = Array.isArray(predicate);\n\n\tfor (var i = 0; i < keys.length; i++) {\n\t\tvar key = keys[i];\n\t\tvar val = obj[key];\n\n\t\tif (isArr ? predicate.indexOf(key) !== -1 : predicate(key, val, obj)) {\n\t\t\tret[key] = val;\n\t\t}\n\t}\n\n\treturn ret;\n};\n\nvar queryString = createCommonjsModule(function (module, exports) {\n\n\n\n\n\nconst isNullOrUndefined = value => value === null || value === undefined;\n\nconst encodeFragmentIdentifier = Symbol('encodeFragmentIdentifier');\n\nfunction encoderForArrayFormat(options) {\n\tswitch (options.arrayFormat) {\n\t\tcase 'index':\n\t\t\treturn key => (result, value) => {\n\t\t\t\tconst index = result.length;\n\n\t\t\t\tif (\n\t\t\t\t\tvalue === undefined ||\n\t\t\t\t\t(options.skipNull && value === null) ||\n\t\t\t\t\t(options.skipEmptyString && value === '')\n\t\t\t\t) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\tif (value === null) {\n\t\t\t\t\treturn [...result, [encode(key, options), '[', index, ']'].join('')];\n\t\t\t\t}\n\n\t\t\t\treturn [\n\t\t\t\t\t...result,\n\t\t\t\t\t[encode(key, options), '[', encode(index, options), ']=', encode(value, options)].join('')\n\t\t\t\t];\n\t\t\t};\n\n\t\tcase 'bracket':\n\t\t\treturn key => (result, value) => {\n\t\t\t\tif (\n\t\t\t\t\tvalue === undefined ||\n\t\t\t\t\t(options.skipNull && value === null) ||\n\t\t\t\t\t(options.skipEmptyString && value === '')\n\t\t\t\t) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\tif (value === null) {\n\t\t\t\t\treturn [...result, [encode(key, options), '[]'].join('')];\n\t\t\t\t}\n\n\t\t\t\treturn [...result, [encode(key, options), '[]=', encode(value, options)].join('')];\n\t\t\t};\n\n\t\tcase 'comma':\n\t\tcase 'separator':\n\t\tcase 'bracket-separator': {\n\t\t\tconst keyValueSep = options.arrayFormat === 'bracket-separator' ?\n\t\t\t\t'[]=' :\n\t\t\t\t'=';\n\n\t\t\treturn key => (result, value) => {\n\t\t\t\tif (\n\t\t\t\t\tvalue === undefined ||\n\t\t\t\t\t(options.skipNull && value === null) ||\n\t\t\t\t\t(options.skipEmptyString && value === '')\n\t\t\t\t) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\t// Translate null to an empty string so that it doesn't serialize as 'null'\n\t\t\t\tvalue = value === null ? '' : value;\n\n\t\t\t\tif (result.length === 0) {\n\t\t\t\t\treturn [[encode(key, options), keyValueSep, encode(value, options)].join('')];\n\t\t\t\t}\n\n\t\t\t\treturn [[result, encode(value, options)].join(options.arrayFormatSeparator)];\n\t\t\t};\n\t\t}\n\n\t\tdefault:\n\t\t\treturn key => (result, value) => {\n\t\t\t\tif (\n\t\t\t\t\tvalue === undefined ||\n\t\t\t\t\t(options.skipNull && value === null) ||\n\t\t\t\t\t(options.skipEmptyString && value === '')\n\t\t\t\t) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\tif (value === null) {\n\t\t\t\t\treturn [...result, encode(key, options)];\n\t\t\t\t}\n\n\t\t\t\treturn [...result, [encode(key, options), '=', encode(value, options)].join('')];\n\t\t\t};\n\t}\n}\n\nfunction parserForArrayFormat(options) {\n\tlet result;\n\n\tswitch (options.arrayFormat) {\n\t\tcase 'index':\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tresult = /\\[(\\d*)\\]$/.exec(key);\n\n\t\t\t\tkey = key.replace(/\\[\\d*\\]$/, '');\n\n\t\t\t\tif (!result) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = {};\n\t\t\t\t}\n\n\t\t\t\taccumulator[key][result[1]] = value;\n\t\t\t};\n\n\t\tcase 'bracket':\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tresult = /(\\[\\])$/.exec(key);\n\t\t\t\tkey = key.replace(/\\[\\]$/, '');\n\n\t\t\t\tif (!result) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = [value];\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\taccumulator[key] = [].concat(accumulator[key], value);\n\t\t\t};\n\n\t\tcase 'comma':\n\t\tcase 'separator':\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tconst isArray = typeof value === 'string' && value.includes(options.arrayFormatSeparator);\n\t\t\t\tconst isEncodedArray = (typeof value === 'string' && !isArray && decode(value, options).includes(options.arrayFormatSeparator));\n\t\t\t\tvalue = isEncodedArray ? decode(value, options) : value;\n\t\t\t\tconst newValue = isArray || isEncodedArray ? value.split(options.arrayFormatSeparator).map(item => decode(item, options)) : value === null ? value : decode(value, options);\n\t\t\t\taccumulator[key] = newValue;\n\t\t\t};\n\n\t\tcase 'bracket-separator':\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tconst isArray = /(\\[\\])$/.test(key);\n\t\t\t\tkey = key.replace(/\\[\\]$/, '');\n\n\t\t\t\tif (!isArray) {\n\t\t\t\t\taccumulator[key] = value ? decode(value, options) : value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tconst arrayValue = value === null ?\n\t\t\t\t\t[] :\n\t\t\t\t\tvalue.split(options.arrayFormatSeparator).map(item => decode(item, options));\n\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = arrayValue;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\taccumulator[key] = [].concat(accumulator[key], arrayValue);\n\t\t\t};\n\n\t\tdefault:\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\taccumulator[key] = [].concat(accumulator[key], value);\n\t\t\t};\n\t}\n}\n\nfunction validateArrayFormatSeparator(value) {\n\tif (typeof value !== 'string' || value.length !== 1) {\n\t\tthrow new TypeError('arrayFormatSeparator must be single character string');\n\t}\n}\n\nfunction encode(value, options) {\n\tif (options.encode) {\n\t\treturn options.strict ? strictUriEncode(value) : encodeURIComponent(value);\n\t}\n\n\treturn value;\n}\n\nfunction decode(value, options) {\n\tif (options.decode) {\n\t\treturn decodeUriComponent(value);\n\t}\n\n\treturn value;\n}\n\nfunction keysSorter(input) {\n\tif (Array.isArray(input)) {\n\t\treturn input.sort();\n\t}\n\n\tif (typeof input === 'object') {\n\t\treturn keysSorter(Object.keys(input))\n\t\t\t.sort((a, b) => Number(a) - Number(b))\n\t\t\t.map(key => input[key]);\n\t}\n\n\treturn input;\n}\n\nfunction removeHash(input) {\n\tconst hashStart = input.indexOf('#');\n\tif (hashStart !== -1) {\n\t\tinput = input.slice(0, hashStart);\n\t}\n\n\treturn input;\n}\n\nfunction getHash(url) {\n\tlet hash = '';\n\tconst hashStart = url.indexOf('#');\n\tif (hashStart !== -1) {\n\t\thash = url.slice(hashStart);\n\t}\n\n\treturn hash;\n}\n\nfunction extract(input) {\n\tinput = removeHash(input);\n\tconst queryStart = input.indexOf('?');\n\tif (queryStart === -1) {\n\t\treturn '';\n\t}\n\n\treturn input.slice(queryStart + 1);\n}\n\nfunction parseValue(value, options) {\n\tif (options.parseNumbers && !Number.isNaN(Number(value)) && (typeof value === 'string' && value.trim() !== '')) {\n\t\tvalue = Number(value);\n\t} else if (options.parseBooleans && value !== null && (value.toLowerCase() === 'true' || value.toLowerCase() === 'false')) {\n\t\tvalue = value.toLowerCase() === 'true';\n\t}\n\n\treturn value;\n}\n\nfunction parse(query, options) {\n\toptions = Object.assign({\n\t\tdecode: true,\n\t\tsort: true,\n\t\tarrayFormat: 'none',\n\t\tarrayFormatSeparator: ',',\n\t\tparseNumbers: false,\n\t\tparseBooleans: false\n\t}, options);\n\n\tvalidateArrayFormatSeparator(options.arrayFormatSeparator);\n\n\tconst formatter = parserForArrayFormat(options);\n\n\t// Create an object with no prototype\n\tconst ret = Object.create(null);\n\n\tif (typeof query !== 'string') {\n\t\treturn ret;\n\t}\n\n\tquery = query.trim().replace(/^[?#&]/, '');\n\n\tif (!query) {\n\t\treturn ret;\n\t}\n\n\tfor (const param of query.split('&')) {\n\t\tif (param === '') {\n\t\t\tcontinue;\n\t\t}\n\n\t\tlet [key, value] = splitOnFirst(options.decode ? param.replace(/\\+/g, ' ') : param, '=');\n\n\t\t// Missing `=` should be `null`:\n\t\t// http://w3.org/TR/2012/WD-url-20120524/#collect-url-parameters\n\t\tvalue = value === undefined ? null : ['comma', 'separator', 'bracket-separator'].includes(options.arrayFormat) ? value : decode(value, options);\n\t\tformatter(decode(key, options), value, ret);\n\t}\n\n\tfor (const key of Object.keys(ret)) {\n\t\tconst value = ret[key];\n\t\tif (typeof value === 'object' && value !== null) {\n\t\t\tfor (const k of Object.keys(value)) {\n\t\t\t\tvalue[k] = parseValue(value[k], options);\n\t\t\t}\n\t\t} else {\n\t\t\tret[key] = parseValue(value, options);\n\t\t}\n\t}\n\n\tif (options.sort === false) {\n\t\treturn ret;\n\t}\n\n\treturn (options.sort === true ? Object.keys(ret).sort() : Object.keys(ret).sort(options.sort)).reduce((result, key) => {\n\t\tconst value = ret[key];\n\t\tif (Boolean(value) && typeof value === 'object' && !Array.isArray(value)) {\n\t\t\t// Sort object keys, not values\n\t\t\tresult[key] = keysSorter(value);\n\t\t} else {\n\t\t\tresult[key] = value;\n\t\t}\n\n\t\treturn result;\n\t}, Object.create(null));\n}\n\nexports.extract = extract;\nexports.parse = parse;\n\nexports.stringify = (object, options) => {\n\tif (!object) {\n\t\treturn '';\n\t}\n\n\toptions = Object.assign({\n\t\tencode: true,\n\t\tstrict: true,\n\t\tarrayFormat: 'none',\n\t\tarrayFormatSeparator: ','\n\t}, options);\n\n\tvalidateArrayFormatSeparator(options.arrayFormatSeparator);\n\n\tconst shouldFilter = key => (\n\t\t(options.skipNull && isNullOrUndefined(object[key])) ||\n\t\t(options.skipEmptyString && object[key] === '')\n\t);\n\n\tconst formatter = encoderForArrayFormat(options);\n\n\tconst objectCopy = {};\n\n\tfor (const key of Object.keys(object)) {\n\t\tif (!shouldFilter(key)) {\n\t\t\tobjectCopy[key] = object[key];\n\t\t}\n\t}\n\n\tconst keys = Object.keys(objectCopy);\n\n\tif (options.sort !== false) {\n\t\tkeys.sort(options.sort);\n\t}\n\n\treturn keys.map(key => {\n\t\tconst value = object[key];\n\n\t\tif (value === undefined) {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (value === null) {\n\t\t\treturn encode(key, options);\n\t\t}\n\n\t\tif (Array.isArray(value)) {\n\t\t\tif (value.length === 0 && options.arrayFormat === 'bracket-separator') {\n\t\t\t\treturn encode(key, options) + '[]';\n\t\t\t}\n\n\t\t\treturn value\n\t\t\t\t.reduce(formatter(key), [])\n\t\t\t\t.join('&');\n\t\t}\n\n\t\treturn encode(key, options) + '=' + encode(value, options);\n\t}).filter(x => x.length > 0).join('&');\n};\n\nexports.parseUrl = (url, options) => {\n\toptions = Object.assign({\n\t\tdecode: true\n\t}, options);\n\n\tconst [url_, hash] = splitOnFirst(url, '#');\n\n\treturn Object.assign(\n\t\t{\n\t\t\turl: url_.split('?')[0] || '',\n\t\t\tquery: parse(extract(url), options)\n\t\t},\n\t\toptions && options.parseFragmentIdentifier && hash ? {fragmentIdentifier: decode(hash, options)} : {}\n\t);\n};\n\nexports.stringifyUrl = (object, options) => {\n\toptions = Object.assign({\n\t\tencode: true,\n\t\tstrict: true,\n\t\t[encodeFragmentIdentifier]: true\n\t}, options);\n\n\tconst url = removeHash(object.url).split('?')[0] || '';\n\tconst queryFromUrl = exports.extract(object.url);\n\tconst parsedQueryFromUrl = exports.parse(queryFromUrl, {sort: false});\n\n\tconst query = Object.assign(parsedQueryFromUrl, object.query);\n\tlet queryString = exports.stringify(query, options);\n\tif (queryString) {\n\t\tqueryString = `?${queryString}`;\n\t}\n\n\tlet hash = getHash(object.url);\n\tif (object.fragmentIdentifier) {\n\t\thash = `#${options[encodeFragmentIdentifier] ? encode(object.fragmentIdentifier, options) : object.fragmentIdentifier}`;\n\t}\n\n\treturn `${url}${queryString}${hash}`;\n};\n\nexports.pick = (input, filter, options) => {\n\toptions = Object.assign({\n\t\tparseFragmentIdentifier: true,\n\t\t[encodeFragmentIdentifier]: false\n\t}, options);\n\n\tconst {url, query, fragmentIdentifier} = exports.parseUrl(input, options);\n\treturn exports.stringifyUrl({\n\t\turl,\n\t\tquery: filterObj(query, filter),\n\t\tfragmentIdentifier\n\t}, options);\n};\n\nexports.exclude = (input, filter, options) => {\n\tconst exclusionFilter = Array.isArray(filter) ? key => !filter.includes(key) : (key, value) => !filter(key, value);\n\n\treturn exports.pick(input, exclusionFilter, options);\n};\n});\n\nvar __assign$1 = (undefined && undefined.__assign) || function () {\n __assign$1 = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign$1.apply(this, arguments);\n};\n/**\n * Update a location, wiping out parameters not included in encodedQuery\n * If a param is set to undefined it will be removed from the URL.\n */\nfunction updateLocation(encodedQuery, location, stringifyOptions) {\n var encodedSearchString = queryString.stringify(encodedQuery, stringifyOptions);\n if (stringifyOptions && stringifyOptions.transformSearchString) {\n encodedSearchString = stringifyOptions.transformSearchString(encodedSearchString);\n }\n var search = encodedSearchString.length ? \"?\" + encodedSearchString : '';\n var href = queryString.parseUrl(location.href || '').url + search;\n var newLocation = __assign$1(__assign$1({}, location), { key: \"\" + Date.now(), // needed for some routers (e.g. react-router)\n href: href,\n search: search, query: encodedQuery });\n return newLocation;\n}\n/**\n * Update a location while retaining existing parameters.\n * If a param is set to undefined it will be removed from the URL.\n */\nfunction updateInLocation(encodedQueryReplacements, location, stringifyOptions) {\n // explicitly avoid parsing numbers to ensure the\n // return type has the same shape as EncodeQuery\n var currQuery = queryString.parse(location.search, { parseNumbers: false });\n var newQuery = __assign$1(__assign$1({}, currQuery), encodedQueryReplacements);\n return updateLocation(newQuery, location, stringifyOptions);\n}\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license at\n * https://github.com/facebook/fbjs/blob/master/LICENSE\n */\n/*eslint-disable no-self-compare */\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n/**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\nfunction is(x, y) {\n // SameValue algorithm\n if (x === y) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n // Added the nonzero y check to make Flow happy, but it is redundant\n return x !== 0 || y !== 0 || 1 / x === 1 / y;\n }\n else {\n // Step 6.a: NaN == NaN\n return x !== x && y !== y;\n }\n}\n/**\n * Performs equality by iterating through keys on an object and returning false\n * when any key has values which are not strictly equal between the arguments.\n * Returns true when the values of all keys are strictly equal.\n\n * @pbeshai modification of shallowEqual to take into consideration a map providing\n * equals functions\n */\nfunction shallowEqual(objA, objB, equalMap) {\n var _a, _b;\n if (is(objA, objB)) {\n return true;\n }\n if (typeof objA !== 'object' ||\n objA === null ||\n typeof objB !== 'object' ||\n objB === null) {\n return false;\n }\n var keysA = Object.keys(objA);\n var keysB = Object.keys(objB);\n if (keysA.length !== keysB.length) {\n return false;\n }\n // Test for A's keys different from B.\n for (var i = 0; i < keysA.length; i++) {\n var isEqual = (_b = (_a = equalMap === null || equalMap === void 0 ? void 0 : equalMap[keysA[i]]) === null || _a === void 0 ? void 0 : _a.equals) !== null && _b !== void 0 ? _b : is;\n if (!hasOwnProperty.call(objB, keysA[i]) ||\n !isEqual(objA[keysA[i]], objB[keysA[i]])) {\n return false;\n }\n }\n return true;\n}\n\nfunction useUpdateRefIfShallowNew(ref, newValue, isEqual) {\n if (isEqual === void 0) { isEqual = shallowEqual; }\n var hasNew = ((ref.current == null || newValue == null) && ref.current === newValue) ||\n !isEqual(ref.current, newValue);\n react.useEffect(function () {\n if (hasNew) {\n ref.current = newValue;\n }\n }, [ref, newValue, hasNew]);\n}\nfunction getSSRSafeSearchString(location) {\n // handle checking SSR (#13)\n if (typeof location === 'object') {\n // in browser\n if (typeof window !== 'undefined') {\n return location.search;\n }\n else {\n return queryString.extract(\"\" + location.pathname + (location.search ? location.search : ''));\n }\n }\n return '';\n}\n\n/**\n * Creates a new location object containing the specified query changes.\n * If replaceIn or pushIn are used as the updateType, then parameters\n * not specified in queryReplacements are retained. If replace or push\n * are used, only the values in queryReplacements will be available.\n * The default is pushIn.\n */\nfunction createLocationWithChanges(queryReplacements, location, updateType, stringifyOptions) {\n if (updateType === void 0) { updateType = 'pushIn'; }\n switch (updateType) {\n case 'replace':\n case 'push':\n return updateLocation(queryReplacements, location, stringifyOptions);\n case 'replaceIn':\n case 'pushIn':\n default:\n return updateInLocation(queryReplacements, location, stringifyOptions);\n }\n}\n/**\n * Updates the URL to the new location.\n */\nfunction updateUrlQuery(history, location, updateType) {\n if (updateType === void 0) { updateType = 'pushIn'; }\n switch (updateType) {\n case 'pushIn':\n case 'push':\n history.push(location);\n break;\n case 'replaceIn':\n case 'replace':\n default:\n history.replace(location);\n break;\n }\n}\n\nvar providerlessContextValue = {\n location: {},\n getLocation: function () { return ({}); },\n setLocation: function () { },\n};\nvar LocationContext = react.createContext(providerlessContextValue);\nfunction useLocationContext() {\n var context = react.useContext(LocationContext);\n return context;\n}\n/**\n * An internal-only context provider which provides down the most\n * recent location object and a callback to update the history.\n */\nfunction LocationProvider(_a) {\n var history = _a.history, location = _a.location, children = _a.children, stringifyOptions = _a.stringifyOptions;\n var locationRef = react.useRef(location);\n react.useEffect(function () {\n locationRef.current = location;\n }, [location]);\n // TODO: we can probably simplify this now that we are reading location from history\n var getLocation = react.useCallback(function () { return locationRef.current; }, [\n locationRef,\n ]);\n var setLocation = react.useCallback(function (queryReplacements, updateType) {\n // A ref is needed here to stop setLocation updating constantly (see #46)\n locationRef.current = createLocationWithChanges(queryReplacements, history == null || history.location == null\n ? locationRef.current\n : history.location, updateType, stringifyOptions);\n if (history) {\n updateUrlQuery(history, locationRef.current, updateType);\n }\n }, [history, stringifyOptions]);\n return (react.createElement(LocationContext.Provider, { value: { location: location, getLocation: getLocation, setLocation: setLocation } }, children));\n}\n\nvar makeMemoizedQueryParser = function (initialSearchString) {\n var cachedSearchString = initialSearchString;\n var cachedParsedQuery = queryString.parse(cachedSearchString || '');\n return function (newSearchString) {\n if (cachedSearchString !== newSearchString) {\n cachedSearchString = newSearchString;\n cachedParsedQuery = queryString.parse(cachedSearchString);\n }\n return cachedParsedQuery;\n };\n};\nvar sharedMemoizedQueryParser = makeMemoizedQueryParser();\n\n/**\n * Helper to get the latest decoded value with smart caching.\n * Abstracted into its own function to allow re-use in a functional setter (#26)\n */\nfunction getLatestDecodedValue(location, name, paramConfig, paramConfigRef, encodedValueCacheRef, decodedValueCacheRef) {\n var _a;\n // check if we have a new param config\n var hasNewParamConfig = !shallowEqual(paramConfigRef.current, paramConfig);\n var isValueEqual = (_a = paramConfig.equals) !== null && _a !== void 0 ? _a : shallowEqual;\n // read in the parsed query\n var parsedQuery = sharedMemoizedQueryParser(getSSRSafeSearchString(location) // get the latest location object\n );\n // read in the encoded string value (we have to check cache if available because\n // sometimes the query string changes so we get a new parsedQuery but this value\n // didn't change, so we should avoid generating a new array or whatever value)\n var hasNewEncodedValue = !shallowEqual(encodedValueCacheRef.current, parsedQuery[name]);\n var encodedValue = hasNewEncodedValue\n ? parsedQuery[name]\n : encodedValueCacheRef.current;\n // only decode if we have changes to encoded value or the config.\n // check for undefined to handle initial case\n if (!hasNewEncodedValue &&\n !hasNewParamConfig &&\n decodedValueCacheRef.current !== undefined) {\n return decodedValueCacheRef.current;\n }\n var newDecodedValue = paramConfig.decode(encodedValue);\n var hasNewDecodedValue = ((decodedValueCacheRef.current == null || newDecodedValue == null) &&\n decodedValueCacheRef.current === newDecodedValue) ||\n !isValueEqual(decodedValueCacheRef.current, newDecodedValue);\n // if we have a new decoded value use it, otherwise use cached\n return hasNewDecodedValue\n ? newDecodedValue\n : decodedValueCacheRef.current;\n}\n/**\n * Given a query param name and query parameter configuration ({ encode, decode })\n * return the decoded value and a setter for updating it.\n *\n * The setter takes two arguments (newValue, updateType) where updateType\n * is one of 'replace' | 'replaceIn' | 'push' | 'pushIn', defaulting to\n * 'pushIn'.\n *\n * You may optionally pass in a rawQuery object, otherwise the query is derived\n * from the location available in the context.\n *\n * D = decoded type\n * D2 = return value from decode (typically same as D)\n */\nvar useQueryParam = function (name, paramConfig) {\n if (paramConfig === void 0) { paramConfig = StringParam; }\n var _a = useLocationContext(), location = _a.location, getLocation = _a.getLocation, setLocation = _a.setLocation;\n // read in the raw query\n var parsedQuery = sharedMemoizedQueryParser(getSSRSafeSearchString(location));\n // make caches\n var encodedValueCacheRef = react.useRef();\n var paramConfigRef = react.useRef(paramConfig);\n var decodedValueCacheRef = react.useRef();\n var decodedValue = getLatestDecodedValue(location, name, paramConfig, paramConfigRef, encodedValueCacheRef, decodedValueCacheRef);\n // update cached values in a useEffect\n useUpdateRefIfShallowNew(encodedValueCacheRef, parsedQuery[name]);\n useUpdateRefIfShallowNew(paramConfigRef, paramConfig);\n useUpdateRefIfShallowNew(decodedValueCacheRef, decodedValue, paramConfig.equals);\n // create the setter, memoizing via useCallback\n var setValueDeps = {\n paramConfig: paramConfig,\n name: name,\n setLocation: setLocation,\n getLocation: getLocation,\n };\n var setValueDepsRef = react.useRef(setValueDeps);\n setValueDepsRef.current = setValueDeps;\n var setValue = react.useCallback(function setValueCallback(newValue, updateType) {\n var _a;\n var deps = setValueDepsRef.current;\n var newEncodedValue;\n // allow functional updates #26\n if (typeof newValue === 'function') {\n // get latest decoded value to pass as a fresh arg to the setter fn\n var latestValue = getLatestDecodedValue(deps.getLocation(), deps.name, deps.paramConfig, paramConfigRef, encodedValueCacheRef, decodedValueCacheRef);\n decodedValueCacheRef.current = latestValue; // keep cache in sync\n newEncodedValue = deps.paramConfig.encode(newValue(latestValue));\n }\n else {\n newEncodedValue = deps.paramConfig.encode(newValue);\n }\n // update the URL\n deps.setLocation((_a = {}, _a[deps.name] = newEncodedValue, _a), updateType);\n }, []);\n return [decodedValue, setValue];\n};\n\nvar __assign$2 = (undefined && undefined.__assign) || function () {\n __assign$2 = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign$2.apply(this, arguments);\n};\n\nvar __assign$3 = (undefined && undefined.__assign) || function () {\n __assign$3 = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign$3.apply(this, arguments);\n};\n// we use a lazy caching solution to prevent #46 from happening\nvar cachedWindowHistory;\nvar cachedAdaptedWindowHistory;\n/**\n * Adapts standard DOM window history to work with our\n * { replace, push } interface.\n *\n * @param history Standard history provided by DOM\n */\nfunction adaptWindowHistory(history) {\n if (history === cachedWindowHistory && cachedAdaptedWindowHistory != null) {\n return cachedAdaptedWindowHistory;\n }\n var adaptedWindowHistory = {\n replace: function (location) {\n history.replaceState(location.state, '', location.protocol + \"//\" + location.host + location.pathname + location.search);\n },\n push: function (location) {\n history.pushState(location.state, '', location.protocol + \"//\" + location.host + location.pathname + location.search);\n },\n get location() {\n return window.location;\n },\n };\n cachedWindowHistory = history;\n cachedAdaptedWindowHistory = adaptedWindowHistory;\n return adaptedWindowHistory;\n}\n// we use a lazy caching solution to prevent #46 from happening\nvar cachedReachHistory;\nvar cachedAdaptedReachHistory;\n/**\n * Adapts @reach/router history to work with our\n * { replace, push } interface.\n *\n * @param history globalHistory from @reach/router\n */\nfunction adaptReachHistory(history) {\n if (history === cachedReachHistory && cachedAdaptedReachHistory != null) {\n return cachedAdaptedReachHistory;\n }\n var adaptedReachHistory = {\n replace: function (location) {\n history.navigate(location.protocol + \"//\" + location.host + location.pathname + location.search, { replace: true });\n },\n push: function (location) {\n history.navigate(location.protocol + \"//\" + location.host + location.pathname + location.search, { replace: false });\n },\n get location() {\n return history.location;\n },\n };\n cachedReachHistory = history;\n cachedAdaptedReachHistory = adaptedReachHistory;\n return adaptedReachHistory;\n}\n/**\n * Helper to produce the context value falling back to\n * window history and location if not provided.\n */\nfunction getLocationProps(_a) {\n var _b = _a === void 0 ? {} : _a, history = _b.history, location = _b.location;\n var hasWindow = typeof window !== 'undefined';\n if (hasWindow) {\n if (!history) {\n history = adaptWindowHistory(window.history);\n }\n if (!location) {\n location = window.location;\n }\n }\n if (!location) {\n throw new Error(\"\\n Could not read the location. Is the router wired up correctly?\\n \");\n }\n return { history: history, location: location };\n}\n/**\n * Context provider for query params to have access to the\n * active routing system, enabling updates to the URL.\n */\nfunction QueryParamProvider(_a) {\n var children = _a.children, ReactRouterRoute = _a.ReactRouterRoute, reachHistory = _a.reachHistory, history = _a.history, location = _a.location, stringifyOptions = _a.stringifyOptions;\n // cache the stringify options object so we users can just do\n // \n var stringifyOptionsRef = react.useRef(stringifyOptions);\n var hasNewStringifyOptions = !shallowEqual(stringifyOptionsRef.current, stringifyOptions);\n var stringifyOptionsCached = hasNewStringifyOptions\n ? stringifyOptions\n : stringifyOptionsRef.current;\n react.useEffect(function () {\n stringifyOptionsRef.current = stringifyOptionsCached;\n }, [stringifyOptionsCached]);\n // if we have React Router, use it to get the context value\n if (ReactRouterRoute) {\n return (react.createElement(ReactRouterRoute, null, function (routeProps) {\n return (react.createElement(LocationProvider, __assign$3({ stringifyOptions: stringifyOptionsCached }, getLocationProps(routeProps)), children));\n }));\n }\n // if we are using reach router, use its history\n if (reachHistory) {\n return (react.createElement(LocationProvider, __assign$3({ stringifyOptions: stringifyOptionsCached }, getLocationProps({\n history: adaptReachHistory(reachHistory),\n location: location,\n })), children));\n }\n // neither reach nor react-router, so allow manual overrides\n return (react.createElement(LocationProvider, __assign$3({ stringifyOptions: stringifyOptionsCached }, getLocationProps({ history: history, location: location })), children));\n}\n\nexport { QueryParamProvider, StringParam, useQueryParam };\n", "function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n _setPrototypeOf(subClass, superClass);\n}\n\nexport { _setPrototypeOf as _, _extends as a, _inheritsLoose as b };\n", "import { c as createCommonjsModule } from './_commonjsHelpers-8c19dec8.js';\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nvar ReactPropTypesSecret_1 = ReactPropTypesSecret;\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nvar factoryWithThrowingShims = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret_1) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n } shim.isRequired = shim;\n function getShim() {\n return shim;\n } // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n\nvar propTypes = createCommonjsModule(function (module) {\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n{\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = factoryWithThrowingShims();\n}\n});\n\nexport { propTypes as p };\n", "import { c as createCommonjsModule } from './_commonjsHelpers-8c19dec8.js';\n\n/** @license React v16.13.1\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nvar b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?\nSymbol.for(\"react.suspense_list\"):60120,r=b?Symbol.for(\"react.memo\"):60115,t=b?Symbol.for(\"react.lazy\"):60116,v=b?Symbol.for(\"react.block\"):60121,w=b?Symbol.for(\"react.fundamental\"):60117,x=b?Symbol.for(\"react.responder\"):60118,y=b?Symbol.for(\"react.scope\"):60119;\nfunction z(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case t:case r:case h:return a;default:return u}}case d:return u}}}function A(a){return z(a)===m}var AsyncMode=l;var ConcurrentMode=m;var ContextConsumer=k;var ContextProvider=h;var Element=c;var ForwardRef=n;var Fragment=e;var Lazy=t;var Memo=r;var Portal=d;\nvar Profiler=g;var StrictMode=f;var Suspense=p;var isAsyncMode=function(a){return A(a)||z(a)===l};var isConcurrentMode=A;var isContextConsumer=function(a){return z(a)===k};var isContextProvider=function(a){return z(a)===h};var isElement=function(a){return \"object\"===typeof a&&null!==a&&a.$$typeof===c};var isForwardRef=function(a){return z(a)===n};var isFragment=function(a){return z(a)===e};var isLazy=function(a){return z(a)===t};\nvar isMemo=function(a){return z(a)===r};var isPortal=function(a){return z(a)===d};var isProfiler=function(a){return z(a)===g};var isStrictMode=function(a){return z(a)===f};var isSuspense=function(a){return z(a)===p};\nvar isValidElementType=function(a){return \"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||\"object\"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===w||a.$$typeof===x||a.$$typeof===y||a.$$typeof===v)};var typeOf=z;\n\nvar reactIs_production_min = {\n\tAsyncMode: AsyncMode,\n\tConcurrentMode: ConcurrentMode,\n\tContextConsumer: ContextConsumer,\n\tContextProvider: ContextProvider,\n\tElement: Element,\n\tForwardRef: ForwardRef,\n\tFragment: Fragment,\n\tLazy: Lazy,\n\tMemo: Memo,\n\tPortal: Portal,\n\tProfiler: Profiler,\n\tStrictMode: StrictMode,\n\tSuspense: Suspense,\n\tisAsyncMode: isAsyncMode,\n\tisConcurrentMode: isConcurrentMode,\n\tisContextConsumer: isContextConsumer,\n\tisContextProvider: isContextProvider,\n\tisElement: isElement,\n\tisForwardRef: isForwardRef,\n\tisFragment: isFragment,\n\tisLazy: isLazy,\n\tisMemo: isMemo,\n\tisPortal: isPortal,\n\tisProfiler: isProfiler,\n\tisStrictMode: isStrictMode,\n\tisSuspense: isSuspense,\n\tisValidElementType: isValidElementType,\n\ttypeOf: typeOf\n};\n\nvar reactIs = createCommonjsModule(function (module) {\n\n{\n module.exports = reactIs_production_min;\n}\n});\n\nexport { reactIs as r };\n", "function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nexport { _objectWithoutPropertiesLoose as _ };\n", "import { r as reactIs } from './index-147c2973.js';\n\n/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\nvar REACT_STATICS = {\n childContextTypes: true,\n contextType: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDefaultProps: true,\n getDerivedStateFromError: true,\n getDerivedStateFromProps: true,\n mixins: true,\n propTypes: true,\n type: true\n};\nvar KNOWN_STATICS = {\n name: true,\n length: true,\n prototype: true,\n caller: true,\n callee: true,\n arguments: true,\n arity: true\n};\nvar FORWARD_REF_STATICS = {\n '$$typeof': true,\n render: true,\n defaultProps: true,\n displayName: true,\n propTypes: true\n};\nvar MEMO_STATICS = {\n '$$typeof': true,\n compare: true,\n defaultProps: true,\n displayName: true,\n propTypes: true,\n type: true\n};\nvar TYPE_STATICS = {};\nTYPE_STATICS[reactIs.ForwardRef] = FORWARD_REF_STATICS;\nTYPE_STATICS[reactIs.Memo] = MEMO_STATICS;\n\nfunction getStatics(component) {\n // React v16.11 and below\n if (reactIs.isMemo(component)) {\n return MEMO_STATICS;\n } // React v16.12 and above\n\n\n return TYPE_STATICS[component['$$typeof']] || REACT_STATICS;\n}\n\nvar defineProperty = Object.defineProperty;\nvar getOwnPropertyNames = Object.getOwnPropertyNames;\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar getPrototypeOf = Object.getPrototypeOf;\nvar objectPrototype = Object.prototype;\nfunction hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {\n if (typeof sourceComponent !== 'string') {\n // don't hoist over string (html) components\n if (objectPrototype) {\n var inheritedComponent = getPrototypeOf(sourceComponent);\n\n if (inheritedComponent && inheritedComponent !== objectPrototype) {\n hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n }\n }\n\n var keys = getOwnPropertyNames(sourceComponent);\n\n if (getOwnPropertySymbols) {\n keys = keys.concat(getOwnPropertySymbols(sourceComponent));\n }\n\n var targetStatics = getStatics(targetComponent);\n var sourceStatics = getStatics(sourceComponent);\n\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n\n if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) {\n var descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n\n try {\n // Avoid failures from read-only properties\n defineProperty(targetComponent, key, descriptor);\n } catch (e) {}\n }\n }\n }\n\n return targetComponent;\n}\n\nvar hoistNonReactStatics_cjs = hoistNonReactStatics;\n\nexport { hoistNonReactStatics_cjs as h };\n", "import { a as _extends, b as _inheritsLoose } from './inheritsLoose-302c9f06.js';\nimport { r as react } from './index-04f37d11.js';\nimport { p as propTypes } from './index-f914c6ce.js';\nimport './index-147c2973.js';\nimport { _ as _objectWithoutPropertiesLoose } from './objectWithoutPropertiesLoose-a0217bc6.js';\nimport './hoist-non-react-statics.cjs-a6490c8b.js';\n\nfunction isAbsolute(pathname) {\n return pathname.charAt(0) === '/';\n}\n\n// About 1.5x faster than the two-arg version of Array#splice()\nfunction spliceOne(list, index) {\n for (var i = index, k = i + 1, n = list.length; k < n; i += 1, k += 1) {\n list[i] = list[k];\n }\n\n list.pop();\n}\n\n// This implementation is based heavily on node's url.parse\nfunction resolvePathname(to, from) {\n if (from === undefined) from = '';\n\n var toParts = (to && to.split('/')) || [];\n var fromParts = (from && from.split('/')) || [];\n\n var isToAbs = to && isAbsolute(to);\n var isFromAbs = from && isAbsolute(from);\n var mustEndAbs = isToAbs || isFromAbs;\n\n if (to && isAbsolute(to)) {\n // to is absolute\n fromParts = toParts;\n } else if (toParts.length) {\n // to is relative, drop the filename\n fromParts.pop();\n fromParts = fromParts.concat(toParts);\n }\n\n if (!fromParts.length) return '/';\n\n var hasTrailingSlash;\n if (fromParts.length) {\n var last = fromParts[fromParts.length - 1];\n hasTrailingSlash = last === '.' || last === '..' || last === '';\n } else {\n hasTrailingSlash = false;\n }\n\n var up = 0;\n for (var i = fromParts.length; i >= 0; i--) {\n var part = fromParts[i];\n\n if (part === '.') {\n spliceOne(fromParts, i);\n } else if (part === '..') {\n spliceOne(fromParts, i);\n up++;\n } else if (up) {\n spliceOne(fromParts, i);\n up--;\n }\n }\n\n if (!mustEndAbs) for (; up--; up) fromParts.unshift('..');\n\n if (\n mustEndAbs &&\n fromParts[0] !== '' &&\n (!fromParts[0] || !isAbsolute(fromParts[0]))\n )\n fromParts.unshift('');\n\n var result = fromParts.join('/');\n\n if (hasTrailingSlash && result.substr(-1) !== '/') result += '/';\n\n return result;\n}\n\nvar prefix = 'Invariant failed';\nfunction invariant(condition, message) {\n if (condition) {\n return;\n }\n {\n throw new Error(prefix);\n }\n}\n\nfunction addLeadingSlash(path) {\n return path.charAt(0) === '/' ? path : '/' + path;\n}\nfunction stripLeadingSlash(path) {\n return path.charAt(0) === '/' ? path.substr(1) : path;\n}\nfunction hasBasename(path, prefix) {\n return path.toLowerCase().indexOf(prefix.toLowerCase()) === 0 && '/?#'.indexOf(path.charAt(prefix.length)) !== -1;\n}\nfunction stripBasename(path, prefix) {\n return hasBasename(path, prefix) ? path.substr(prefix.length) : path;\n}\nfunction stripTrailingSlash(path) {\n return path.charAt(path.length - 1) === '/' ? path.slice(0, -1) : path;\n}\nfunction parsePath(path) {\n var pathname = path || '/';\n var search = '';\n var hash = '';\n var hashIndex = pathname.indexOf('#');\n\n if (hashIndex !== -1) {\n hash = pathname.substr(hashIndex);\n pathname = pathname.substr(0, hashIndex);\n }\n\n var searchIndex = pathname.indexOf('?');\n\n if (searchIndex !== -1) {\n search = pathname.substr(searchIndex);\n pathname = pathname.substr(0, searchIndex);\n }\n\n return {\n pathname: pathname,\n search: search === '?' ? '' : search,\n hash: hash === '#' ? '' : hash\n };\n}\nfunction createPath(location) {\n var pathname = location.pathname,\n search = location.search,\n hash = location.hash;\n var path = pathname || '/';\n if (search && search !== '?') path += search.charAt(0) === '?' ? search : \"?\" + search;\n if (hash && hash !== '#') path += hash.charAt(0) === '#' ? hash : \"#\" + hash;\n return path;\n}\n\nfunction createLocation(path, state, key, currentLocation) {\n var location;\n\n if (typeof path === 'string') {\n // Two-arg form: push(path, state)\n location = parsePath(path);\n location.state = state;\n } else {\n // One-arg form: push(location)\n location = _extends({}, path);\n if (location.pathname === undefined) location.pathname = '';\n\n if (location.search) {\n if (location.search.charAt(0) !== '?') location.search = '?' + location.search;\n } else {\n location.search = '';\n }\n\n if (location.hash) {\n if (location.hash.charAt(0) !== '#') location.hash = '#' + location.hash;\n } else {\n location.hash = '';\n }\n\n if (state !== undefined && location.state === undefined) location.state = state;\n }\n\n try {\n location.pathname = decodeURI(location.pathname);\n } catch (e) {\n if (e instanceof URIError) {\n throw new URIError('Pathname \"' + location.pathname + '\" could not be decoded. ' + 'This is likely caused by an invalid percent-encoding.');\n } else {\n throw e;\n }\n }\n\n if (key) location.key = key;\n\n if (currentLocation) {\n // Resolve incomplete/relative pathname relative to current location.\n if (!location.pathname) {\n location.pathname = currentLocation.pathname;\n } else if (location.pathname.charAt(0) !== '/') {\n location.pathname = resolvePathname(location.pathname, currentLocation.pathname);\n }\n } else {\n // When there is no prior location and pathname is empty, set it to /\n if (!location.pathname) {\n location.pathname = '/';\n }\n }\n\n return location;\n}\n\nfunction createTransitionManager() {\n var prompt = null;\n\n function setPrompt(nextPrompt) {\n prompt = nextPrompt;\n return function () {\n if (prompt === nextPrompt) prompt = null;\n };\n }\n\n function confirmTransitionTo(location, action, getUserConfirmation, callback) {\n // TODO: If another transition starts while we're still confirming\n // the previous one, we may end up in a weird state. Figure out the\n // best way to handle this.\n if (prompt != null) {\n var result = typeof prompt === 'function' ? prompt(location, action) : prompt;\n\n if (typeof result === 'string') {\n if (typeof getUserConfirmation === 'function') {\n getUserConfirmation(result, callback);\n } else {\n callback(true);\n }\n } else {\n // Return false from a transition hook to cancel the transition.\n callback(result !== false);\n }\n } else {\n callback(true);\n }\n }\n\n var listeners = [];\n\n function appendListener(fn) {\n var isActive = true;\n\n function listener() {\n if (isActive) fn.apply(void 0, arguments);\n }\n\n listeners.push(listener);\n return function () {\n isActive = false;\n listeners = listeners.filter(function (item) {\n return item !== listener;\n });\n };\n }\n\n function notifyListeners() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n listeners.forEach(function (listener) {\n return listener.apply(void 0, args);\n });\n }\n\n return {\n setPrompt: setPrompt,\n confirmTransitionTo: confirmTransitionTo,\n appendListener: appendListener,\n notifyListeners: notifyListeners\n };\n}\n\nvar canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\nfunction getConfirmation(message, callback) {\n callback(window.confirm(message)); // eslint-disable-line no-alert\n}\n/**\n * Returns true if the HTML5 history API is supported. Taken from Modernizr.\n *\n * https://github.com/Modernizr/Modernizr/blob/master/LICENSE\n * https://github.com/Modernizr/Modernizr/blob/master/feature-detects/history.js\n * changed to avoid false negatives for Windows Phones: https://github.com/reactjs/react-router/issues/586\n */\n\nfunction supportsHistory() {\n var ua = window.navigator.userAgent;\n if ((ua.indexOf('Android 2.') !== -1 || ua.indexOf('Android 4.0') !== -1) && ua.indexOf('Mobile Safari') !== -1 && ua.indexOf('Chrome') === -1 && ua.indexOf('Windows Phone') === -1) return false;\n return window.history && 'pushState' in window.history;\n}\n/**\n * Returns true if browser fires popstate on hash change.\n * IE10 and IE11 do not.\n */\n\nfunction supportsPopStateOnHashChange() {\n return window.navigator.userAgent.indexOf('Trident') === -1;\n}\n/**\n * Returns false if using go(n) with hash history causes a full page reload.\n */\n\nfunction supportsGoWithoutReloadUsingHash() {\n return window.navigator.userAgent.indexOf('Firefox') === -1;\n}\n/**\n * Returns true if a given popstate event is an extraneous WebKit event.\n * Accounts for the fact that Chrome on iOS fires real popstate events\n * containing undefined state when pressing the back button.\n */\n\nfunction isExtraneousPopstateEvent(event) {\n return event.state === undefined && navigator.userAgent.indexOf('CriOS') === -1;\n}\n\nvar PopStateEvent = 'popstate';\nvar HashChangeEvent = 'hashchange';\n\nfunction getHistoryState() {\n try {\n return window.history.state || {};\n } catch (e) {\n // IE 11 sometimes throws when accessing window.history.state\n // See https://github.com/ReactTraining/history/pull/289\n return {};\n }\n}\n/**\n * Creates a history object that uses the HTML5 history API including\n * pushState, replaceState, and the popstate event.\n */\n\n\nfunction createBrowserHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n !canUseDOM ? invariant(false) : void 0;\n var globalHistory = window.history;\n var canUseHistory = supportsHistory();\n var needsHashChangeListener = !supportsPopStateOnHashChange();\n var _props = props,\n _props$forceRefresh = _props.forceRefresh,\n forceRefresh = _props$forceRefresh === void 0 ? false : _props$forceRefresh,\n _props$getUserConfirm = _props.getUserConfirmation,\n getUserConfirmation = _props$getUserConfirm === void 0 ? getConfirmation : _props$getUserConfirm,\n _props$keyLength = _props.keyLength,\n keyLength = _props$keyLength === void 0 ? 6 : _props$keyLength;\n var basename = props.basename ? stripTrailingSlash(addLeadingSlash(props.basename)) : '';\n\n function getDOMLocation(historyState) {\n var _ref = historyState || {},\n key = _ref.key,\n state = _ref.state;\n\n var _window$location = window.location,\n pathname = _window$location.pathname,\n search = _window$location.search,\n hash = _window$location.hash;\n var path = pathname + search + hash;\n if (basename) path = stripBasename(path, basename);\n return createLocation(path, state, key);\n }\n\n function createKey() {\n return Math.random().toString(36).substr(2, keyLength);\n }\n\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = globalHistory.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n function handlePopState(event) {\n // Ignore extraneous popstate events in WebKit.\n if (isExtraneousPopstateEvent(event)) return;\n handlePop(getDOMLocation(event.state));\n }\n\n function handleHashChange() {\n handlePop(getDOMLocation(getHistoryState()));\n }\n\n var forceNextPop = false;\n\n function handlePop(location) {\n if (forceNextPop) {\n forceNextPop = false;\n setState();\n } else {\n var action = 'POP';\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location\n });\n } else {\n revertPop(location);\n }\n });\n }\n }\n\n function revertPop(fromLocation) {\n var toLocation = history.location; // TODO: We could probably make this more reliable by\n // keeping a list of keys we've seen in sessionStorage.\n // Instead, we just default to 0 for keys we don't know.\n\n var toIndex = allKeys.indexOf(toLocation.key);\n if (toIndex === -1) toIndex = 0;\n var fromIndex = allKeys.indexOf(fromLocation.key);\n if (fromIndex === -1) fromIndex = 0;\n var delta = toIndex - fromIndex;\n\n if (delta) {\n forceNextPop = true;\n go(delta);\n }\n }\n\n var initialLocation = getDOMLocation(getHistoryState());\n var allKeys = [initialLocation.key]; // Public interface\n\n function createHref(location) {\n return basename + createPath(location);\n }\n\n function push(path, state) {\n var action = 'PUSH';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var href = createHref(location);\n var key = location.key,\n state = location.state;\n\n if (canUseHistory) {\n globalHistory.pushState({\n key: key,\n state: state\n }, null, href);\n\n if (forceRefresh) {\n window.location.href = href;\n } else {\n var prevIndex = allKeys.indexOf(history.location.key);\n var nextKeys = allKeys.slice(0, prevIndex + 1);\n nextKeys.push(location.key);\n allKeys = nextKeys;\n setState({\n action: action,\n location: location\n });\n }\n } else {\n window.location.href = href;\n }\n });\n }\n\n function replace(path, state) {\n var action = 'REPLACE';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var href = createHref(location);\n var key = location.key,\n state = location.state;\n\n if (canUseHistory) {\n globalHistory.replaceState({\n key: key,\n state: state\n }, null, href);\n\n if (forceRefresh) {\n window.location.replace(href);\n } else {\n var prevIndex = allKeys.indexOf(history.location.key);\n if (prevIndex !== -1) allKeys[prevIndex] = location.key;\n setState({\n action: action,\n location: location\n });\n }\n } else {\n window.location.replace(href);\n }\n });\n }\n\n function go(n) {\n globalHistory.go(n);\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n var listenerCount = 0;\n\n function checkDOMListeners(delta) {\n listenerCount += delta;\n\n if (listenerCount === 1 && delta === 1) {\n window.addEventListener(PopStateEvent, handlePopState);\n if (needsHashChangeListener) window.addEventListener(HashChangeEvent, handleHashChange);\n } else if (listenerCount === 0) {\n window.removeEventListener(PopStateEvent, handlePopState);\n if (needsHashChangeListener) window.removeEventListener(HashChangeEvent, handleHashChange);\n }\n }\n\n var isBlocked = false;\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n var unblock = transitionManager.setPrompt(prompt);\n\n if (!isBlocked) {\n checkDOMListeners(1);\n isBlocked = true;\n }\n\n return function () {\n if (isBlocked) {\n isBlocked = false;\n checkDOMListeners(-1);\n }\n\n return unblock();\n };\n }\n\n function listen(listener) {\n var unlisten = transitionManager.appendListener(listener);\n checkDOMListeners(1);\n return function () {\n checkDOMListeners(-1);\n unlisten();\n };\n }\n\n var history = {\n length: globalHistory.length,\n action: 'POP',\n location: initialLocation,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n block: block,\n listen: listen\n };\n return history;\n}\n\nvar HashChangeEvent$1 = 'hashchange';\nvar HashPathCoders = {\n hashbang: {\n encodePath: function encodePath(path) {\n return path.charAt(0) === '!' ? path : '!/' + stripLeadingSlash(path);\n },\n decodePath: function decodePath(path) {\n return path.charAt(0) === '!' ? path.substr(1) : path;\n }\n },\n noslash: {\n encodePath: stripLeadingSlash,\n decodePath: addLeadingSlash\n },\n slash: {\n encodePath: addLeadingSlash,\n decodePath: addLeadingSlash\n }\n};\n\nfunction stripHash(url) {\n var hashIndex = url.indexOf('#');\n return hashIndex === -1 ? url : url.slice(0, hashIndex);\n}\n\nfunction getHashPath() {\n // We can't use window.location.hash here because it's not\n // consistent across browsers - Firefox will pre-decode it!\n var href = window.location.href;\n var hashIndex = href.indexOf('#');\n return hashIndex === -1 ? '' : href.substring(hashIndex + 1);\n}\n\nfunction pushHashPath(path) {\n window.location.hash = path;\n}\n\nfunction replaceHashPath(path) {\n window.location.replace(stripHash(window.location.href) + '#' + path);\n}\n\nfunction createHashHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n !canUseDOM ? invariant(false) : void 0;\n var globalHistory = window.history;\n var canGoWithoutReload = supportsGoWithoutReloadUsingHash();\n var _props = props,\n _props$getUserConfirm = _props.getUserConfirmation,\n getUserConfirmation = _props$getUserConfirm === void 0 ? getConfirmation : _props$getUserConfirm,\n _props$hashType = _props.hashType,\n hashType = _props$hashType === void 0 ? 'slash' : _props$hashType;\n var basename = props.basename ? stripTrailingSlash(addLeadingSlash(props.basename)) : '';\n var _HashPathCoders$hashT = HashPathCoders[hashType],\n encodePath = _HashPathCoders$hashT.encodePath,\n decodePath = _HashPathCoders$hashT.decodePath;\n\n function getDOMLocation() {\n var path = decodePath(getHashPath());\n if (basename) path = stripBasename(path, basename);\n return createLocation(path);\n }\n\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = globalHistory.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n var forceNextPop = false;\n var ignorePath = null;\n\n function locationsAreEqual$$1(a, b) {\n return a.pathname === b.pathname && a.search === b.search && a.hash === b.hash;\n }\n\n function handleHashChange() {\n var path = getHashPath();\n var encodedPath = encodePath(path);\n\n if (path !== encodedPath) {\n // Ensure we always have a properly-encoded hash.\n replaceHashPath(encodedPath);\n } else {\n var location = getDOMLocation();\n var prevLocation = history.location;\n if (!forceNextPop && locationsAreEqual$$1(prevLocation, location)) return; // A hashchange doesn't always == location change.\n\n if (ignorePath === createPath(location)) return; // Ignore this change; we already setState in push/replace.\n\n ignorePath = null;\n handlePop(location);\n }\n }\n\n function handlePop(location) {\n if (forceNextPop) {\n forceNextPop = false;\n setState();\n } else {\n var action = 'POP';\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location\n });\n } else {\n revertPop(location);\n }\n });\n }\n }\n\n function revertPop(fromLocation) {\n var toLocation = history.location; // TODO: We could probably make this more reliable by\n // keeping a list of paths we've seen in sessionStorage.\n // Instead, we just default to 0 for paths we don't know.\n\n var toIndex = allPaths.lastIndexOf(createPath(toLocation));\n if (toIndex === -1) toIndex = 0;\n var fromIndex = allPaths.lastIndexOf(createPath(fromLocation));\n if (fromIndex === -1) fromIndex = 0;\n var delta = toIndex - fromIndex;\n\n if (delta) {\n forceNextPop = true;\n go(delta);\n }\n } // Ensure the hash is encoded properly before doing anything else.\n\n\n var path = getHashPath();\n var encodedPath = encodePath(path);\n if (path !== encodedPath) replaceHashPath(encodedPath);\n var initialLocation = getDOMLocation();\n var allPaths = [createPath(initialLocation)]; // Public interface\n\n function createHref(location) {\n var baseTag = document.querySelector('base');\n var href = '';\n\n if (baseTag && baseTag.getAttribute('href')) {\n href = stripHash(window.location.href);\n }\n\n return href + '#' + encodePath(basename + createPath(location));\n }\n\n function push(path, state) {\n var action = 'PUSH';\n var location = createLocation(path, undefined, undefined, history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var path = createPath(location);\n var encodedPath = encodePath(basename + path);\n var hashChanged = getHashPath() !== encodedPath;\n\n if (hashChanged) {\n // We cannot tell if a hashchange was caused by a PUSH, so we'd\n // rather setState here and ignore the hashchange. The caveat here\n // is that other hash histories in the page will consider it a POP.\n ignorePath = path;\n pushHashPath(encodedPath);\n var prevIndex = allPaths.lastIndexOf(createPath(history.location));\n var nextPaths = allPaths.slice(0, prevIndex + 1);\n nextPaths.push(path);\n allPaths = nextPaths;\n setState({\n action: action,\n location: location\n });\n } else {\n setState();\n }\n });\n }\n\n function replace(path, state) {\n var action = 'REPLACE';\n var location = createLocation(path, undefined, undefined, history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var path = createPath(location);\n var encodedPath = encodePath(basename + path);\n var hashChanged = getHashPath() !== encodedPath;\n\n if (hashChanged) {\n // We cannot tell if a hashchange was caused by a REPLACE, so we'd\n // rather setState here and ignore the hashchange. The caveat here\n // is that other hash histories in the page will consider it a POP.\n ignorePath = path;\n replaceHashPath(encodedPath);\n }\n\n var prevIndex = allPaths.indexOf(createPath(history.location));\n if (prevIndex !== -1) allPaths[prevIndex] = path;\n setState({\n action: action,\n location: location\n });\n });\n }\n\n function go(n) {\n globalHistory.go(n);\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n var listenerCount = 0;\n\n function checkDOMListeners(delta) {\n listenerCount += delta;\n\n if (listenerCount === 1 && delta === 1) {\n window.addEventListener(HashChangeEvent$1, handleHashChange);\n } else if (listenerCount === 0) {\n window.removeEventListener(HashChangeEvent$1, handleHashChange);\n }\n }\n\n var isBlocked = false;\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n var unblock = transitionManager.setPrompt(prompt);\n\n if (!isBlocked) {\n checkDOMListeners(1);\n isBlocked = true;\n }\n\n return function () {\n if (isBlocked) {\n isBlocked = false;\n checkDOMListeners(-1);\n }\n\n return unblock();\n };\n }\n\n function listen(listener) {\n var unlisten = transitionManager.appendListener(listener);\n checkDOMListeners(1);\n return function () {\n checkDOMListeners(-1);\n unlisten();\n };\n }\n\n var history = {\n length: globalHistory.length,\n action: 'POP',\n location: initialLocation,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n block: block,\n listen: listen\n };\n return history;\n}\n\nfunction clamp(n, lowerBound, upperBound) {\n return Math.min(Math.max(n, lowerBound), upperBound);\n}\n/**\n * Creates a history object that stores locations in memory.\n */\n\n\nfunction createMemoryHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n var _props = props,\n getUserConfirmation = _props.getUserConfirmation,\n _props$initialEntries = _props.initialEntries,\n initialEntries = _props$initialEntries === void 0 ? ['/'] : _props$initialEntries,\n _props$initialIndex = _props.initialIndex,\n initialIndex = _props$initialIndex === void 0 ? 0 : _props$initialIndex,\n _props$keyLength = _props.keyLength,\n keyLength = _props$keyLength === void 0 ? 6 : _props$keyLength;\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = history.entries.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n function createKey() {\n return Math.random().toString(36).substr(2, keyLength);\n }\n\n var index = clamp(initialIndex, 0, initialEntries.length - 1);\n var entries = initialEntries.map(function (entry) {\n return typeof entry === 'string' ? createLocation(entry, undefined, createKey()) : createLocation(entry, undefined, entry.key || createKey());\n }); // Public interface\n\n var createHref = createPath;\n\n function push(path, state) {\n var action = 'PUSH';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var prevIndex = history.index;\n var nextIndex = prevIndex + 1;\n var nextEntries = history.entries.slice(0);\n\n if (nextEntries.length > nextIndex) {\n nextEntries.splice(nextIndex, nextEntries.length - nextIndex, location);\n } else {\n nextEntries.push(location);\n }\n\n setState({\n action: action,\n location: location,\n index: nextIndex,\n entries: nextEntries\n });\n });\n }\n\n function replace(path, state) {\n var action = 'REPLACE';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n history.entries[history.index] = location;\n setState({\n action: action,\n location: location\n });\n });\n }\n\n function go(n) {\n var nextIndex = clamp(history.index + n, 0, history.entries.length - 1);\n var action = 'POP';\n var location = history.entries[nextIndex];\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location,\n index: nextIndex\n });\n } else {\n // Mimic the behavior of DOM histories by\n // causing a render after a cancelled POP.\n setState();\n }\n });\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n function canGo(n) {\n var nextIndex = history.index + n;\n return nextIndex >= 0 && nextIndex < history.entries.length;\n }\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n return transitionManager.setPrompt(prompt);\n }\n\n function listen(listener) {\n return transitionManager.appendListener(listener);\n }\n\n var history = {\n length: entries.length,\n action: 'POP',\n location: entries[index],\n index: index,\n entries: entries,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n canGo: canGo,\n block: block,\n listen: listen\n };\n return history;\n}\n\nvar MAX_SIGNED_31_BIT_INT = 1073741823;\nvar commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : {};\n\nfunction getUniqueId() {\n var key = '__global_unique_id__';\n return commonjsGlobal[key] = (commonjsGlobal[key] || 0) + 1;\n}\n\nfunction objectIs(x, y) {\n if (x === y) {\n return x !== 0 || 1 / x === 1 / y;\n } else {\n return x !== x && y !== y;\n }\n}\n\nfunction createEventEmitter(value) {\n var handlers = [];\n return {\n on: function on(handler) {\n handlers.push(handler);\n },\n off: function off(handler) {\n handlers = handlers.filter(function (h) {\n return h !== handler;\n });\n },\n get: function get() {\n return value;\n },\n set: function set(newValue, changedBits) {\n value = newValue;\n handlers.forEach(function (handler) {\n return handler(value, changedBits);\n });\n }\n };\n}\n\nfunction onlyChild(children) {\n return Array.isArray(children) ? children[0] : children;\n}\n\nfunction createReactContext(defaultValue, calculateChangedBits) {\n var _Provider$childContex, _Consumer$contextType;\n\n var contextProp = '__create-react-context-' + getUniqueId() + '__';\n\n var Provider = /*#__PURE__*/function (_Component) {\n _inheritsLoose(Provider, _Component);\n\n function Provider() {\n var _this;\n\n _this = _Component.apply(this, arguments) || this;\n _this.emitter = createEventEmitter(_this.props.value);\n return _this;\n }\n\n var _proto = Provider.prototype;\n\n _proto.getChildContext = function getChildContext() {\n var _ref;\n\n return _ref = {}, _ref[contextProp] = this.emitter, _ref;\n };\n\n _proto.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {\n if (this.props.value !== nextProps.value) {\n var oldValue = this.props.value;\n var newValue = nextProps.value;\n var changedBits;\n\n if (objectIs(oldValue, newValue)) {\n changedBits = 0;\n } else {\n changedBits = typeof calculateChangedBits === 'function' ? calculateChangedBits(oldValue, newValue) : MAX_SIGNED_31_BIT_INT;\n\n changedBits |= 0;\n\n if (changedBits !== 0) {\n this.emitter.set(nextProps.value, changedBits);\n }\n }\n }\n };\n\n _proto.render = function render() {\n return this.props.children;\n };\n\n return Provider;\n }(react.Component);\n\n Provider.childContextTypes = (_Provider$childContex = {}, _Provider$childContex[contextProp] = propTypes.object.isRequired, _Provider$childContex);\n\n var Consumer = /*#__PURE__*/function (_Component2) {\n _inheritsLoose(Consumer, _Component2);\n\n function Consumer() {\n var _this2;\n\n _this2 = _Component2.apply(this, arguments) || this;\n _this2.state = {\n value: _this2.getValue()\n };\n\n _this2.onUpdate = function (newValue, changedBits) {\n var observedBits = _this2.observedBits | 0;\n\n if ((observedBits & changedBits) !== 0) {\n _this2.setState({\n value: _this2.getValue()\n });\n }\n };\n\n return _this2;\n }\n\n var _proto2 = Consumer.prototype;\n\n _proto2.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {\n var observedBits = nextProps.observedBits;\n this.observedBits = observedBits === undefined || observedBits === null ? MAX_SIGNED_31_BIT_INT : observedBits;\n };\n\n _proto2.componentDidMount = function componentDidMount() {\n if (this.context[contextProp]) {\n this.context[contextProp].on(this.onUpdate);\n }\n\n var observedBits = this.props.observedBits;\n this.observedBits = observedBits === undefined || observedBits === null ? MAX_SIGNED_31_BIT_INT : observedBits;\n };\n\n _proto2.componentWillUnmount = function componentWillUnmount() {\n if (this.context[contextProp]) {\n this.context[contextProp].off(this.onUpdate);\n }\n };\n\n _proto2.getValue = function getValue() {\n if (this.context[contextProp]) {\n return this.context[contextProp].get();\n } else {\n return defaultValue;\n }\n };\n\n _proto2.render = function render() {\n return onlyChild(this.props.children)(this.state.value);\n };\n\n return Consumer;\n }(react.Component);\n\n Consumer.contextTypes = (_Consumer$contextType = {}, _Consumer$contextType[contextProp] = propTypes.object, _Consumer$contextType);\n return {\n Provider: Provider,\n Consumer: Consumer\n };\n}\n\nvar index = react.createContext || createReactContext;\n\nvar isarray = Array.isArray || function (arr) {\n return Object.prototype.toString.call(arr) == '[object Array]';\n};\n\n/**\n * Expose `pathToRegexp`.\n */\nvar pathToRegexp_1 = pathToRegexp;\nvar parse_1 = parse;\nvar compile_1 = compile;\nvar tokensToFunction_1 = tokensToFunction;\nvar tokensToRegExp_1 = tokensToRegExp;\n\n/**\n * The main path matching regexp utility.\n *\n * @type {RegExp}\n */\nvar PATH_REGEXP = new RegExp([\n // Match escaped characters that would otherwise appear in future matches.\n // This allows the user to escape special characters that won't transform.\n '(\\\\\\\\.)',\n // Match Express-style parameters and un-named parameters with a prefix\n // and optional suffixes. Matches appear as:\n //\n // \"/:test(\\\\d+)?\" => [\"/\", \"test\", \"\\d+\", undefined, \"?\", undefined]\n // \"/route(\\\\d+)\" => [undefined, undefined, undefined, \"\\d+\", undefined, undefined]\n // \"/*\" => [\"/\", undefined, undefined, undefined, undefined, \"*\"]\n '([\\\\/.])?(?:(?:\\\\:(\\\\w+)(?:\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))?|\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))([+*?])?|(\\\\*))'\n].join('|'), 'g');\n\n/**\n * Parse a string for the raw tokens.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!Array}\n */\nfunction parse (str, options) {\n var tokens = [];\n var key = 0;\n var index = 0;\n var path = '';\n var defaultDelimiter = options && options.delimiter || '/';\n var res;\n\n while ((res = PATH_REGEXP.exec(str)) != null) {\n var m = res[0];\n var escaped = res[1];\n var offset = res.index;\n path += str.slice(index, offset);\n index = offset + m.length;\n\n // Ignore already escaped sequences.\n if (escaped) {\n path += escaped[1];\n continue\n }\n\n var next = str[index];\n var prefix = res[2];\n var name = res[3];\n var capture = res[4];\n var group = res[5];\n var modifier = res[6];\n var asterisk = res[7];\n\n // Push the current path onto the tokens.\n if (path) {\n tokens.push(path);\n path = '';\n }\n\n var partial = prefix != null && next != null && next !== prefix;\n var repeat = modifier === '+' || modifier === '*';\n var optional = modifier === '?' || modifier === '*';\n var delimiter = res[2] || defaultDelimiter;\n var pattern = capture || group;\n\n tokens.push({\n name: name || key++,\n prefix: prefix || '',\n delimiter: delimiter,\n optional: optional,\n repeat: repeat,\n partial: partial,\n asterisk: !!asterisk,\n pattern: pattern ? escapeGroup(pattern) : (asterisk ? '.*' : '[^' + escapeString(delimiter) + ']+?')\n });\n }\n\n // Match any characters still remaining.\n if (index < str.length) {\n path += str.substr(index);\n }\n\n // If the path exists, push it onto the end.\n if (path) {\n tokens.push(path);\n }\n\n return tokens\n}\n\n/**\n * Compile a string to a template function for the path.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!function(Object=, Object=)}\n */\nfunction compile (str, options) {\n return tokensToFunction(parse(str, options), options)\n}\n\n/**\n * Prettier encoding of URI path segments.\n *\n * @param {string}\n * @return {string}\n */\nfunction encodeURIComponentPretty (str) {\n return encodeURI(str).replace(/[\\/?#]/g, function (c) {\n return '%' + c.charCodeAt(0).toString(16).toUpperCase()\n })\n}\n\n/**\n * Encode the asterisk parameter. Similar to `pretty`, but allows slashes.\n *\n * @param {string}\n * @return {string}\n */\nfunction encodeAsterisk (str) {\n return encodeURI(str).replace(/[?#]/g, function (c) {\n return '%' + c.charCodeAt(0).toString(16).toUpperCase()\n })\n}\n\n/**\n * Expose a method for transforming tokens into the path function.\n */\nfunction tokensToFunction (tokens, options) {\n // Compile all the tokens into regexps.\n var matches = new Array(tokens.length);\n\n // Compile all the patterns before compilation.\n for (var i = 0; i < tokens.length; i++) {\n if (typeof tokens[i] === 'object') {\n matches[i] = new RegExp('^(?:' + tokens[i].pattern + ')$', flags(options));\n }\n }\n\n return function (obj, opts) {\n var path = '';\n var data = obj || {};\n var options = opts || {};\n var encode = options.pretty ? encodeURIComponentPretty : encodeURIComponent;\n\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n\n if (typeof token === 'string') {\n path += token;\n\n continue\n }\n\n var value = data[token.name];\n var segment;\n\n if (value == null) {\n if (token.optional) {\n // Prepend partial segment prefixes.\n if (token.partial) {\n path += token.prefix;\n }\n\n continue\n } else {\n throw new TypeError('Expected \"' + token.name + '\" to be defined')\n }\n }\n\n if (isarray(value)) {\n if (!token.repeat) {\n throw new TypeError('Expected \"' + token.name + '\" to not repeat, but received `' + JSON.stringify(value) + '`')\n }\n\n if (value.length === 0) {\n if (token.optional) {\n continue\n } else {\n throw new TypeError('Expected \"' + token.name + '\" to not be empty')\n }\n }\n\n for (var j = 0; j < value.length; j++) {\n segment = encode(value[j]);\n\n if (!matches[i].test(segment)) {\n throw new TypeError('Expected all \"' + token.name + '\" to match \"' + token.pattern + '\", but received `' + JSON.stringify(segment) + '`')\n }\n\n path += (j === 0 ? token.prefix : token.delimiter) + segment;\n }\n\n continue\n }\n\n segment = token.asterisk ? encodeAsterisk(value) : encode(value);\n\n if (!matches[i].test(segment)) {\n throw new TypeError('Expected \"' + token.name + '\" to match \"' + token.pattern + '\", but received \"' + segment + '\"')\n }\n\n path += token.prefix + segment;\n }\n\n return path\n }\n}\n\n/**\n * Escape a regular expression string.\n *\n * @param {string} str\n * @return {string}\n */\nfunction escapeString (str) {\n return str.replace(/([.+*?=^!:${}()[\\]|\\/\\\\])/g, '\\\\$1')\n}\n\n/**\n * Escape the capturing group by escaping special characters and meaning.\n *\n * @param {string} group\n * @return {string}\n */\nfunction escapeGroup (group) {\n return group.replace(/([=!:$\\/()])/g, '\\\\$1')\n}\n\n/**\n * Attach the keys as a property of the regexp.\n *\n * @param {!RegExp} re\n * @param {Array} keys\n * @return {!RegExp}\n */\nfunction attachKeys (re, keys) {\n re.keys = keys;\n return re\n}\n\n/**\n * Get the flags for a regexp from the options.\n *\n * @param {Object} options\n * @return {string}\n */\nfunction flags (options) {\n return options && options.sensitive ? '' : 'i'\n}\n\n/**\n * Pull out keys from a regexp.\n *\n * @param {!RegExp} path\n * @param {!Array} keys\n * @return {!RegExp}\n */\nfunction regexpToRegexp (path, keys) {\n // Use a negative lookahead to match only capturing groups.\n var groups = path.source.match(/\\((?!\\?)/g);\n\n if (groups) {\n for (var i = 0; i < groups.length; i++) {\n keys.push({\n name: i,\n prefix: null,\n delimiter: null,\n optional: false,\n repeat: false,\n partial: false,\n asterisk: false,\n pattern: null\n });\n }\n }\n\n return attachKeys(path, keys)\n}\n\n/**\n * Transform an array into a regexp.\n *\n * @param {!Array} path\n * @param {Array} keys\n * @param {!Object} options\n * @return {!RegExp}\n */\nfunction arrayToRegexp (path, keys, options) {\n var parts = [];\n\n for (var i = 0; i < path.length; i++) {\n parts.push(pathToRegexp(path[i], keys, options).source);\n }\n\n var regexp = new RegExp('(?:' + parts.join('|') + ')', flags(options));\n\n return attachKeys(regexp, keys)\n}\n\n/**\n * Create a path regexp from string input.\n *\n * @param {string} path\n * @param {!Array} keys\n * @param {!Object} options\n * @return {!RegExp}\n */\nfunction stringToRegexp (path, keys, options) {\n return tokensToRegExp(parse(path, options), keys, options)\n}\n\n/**\n * Expose a function for taking tokens and returning a RegExp.\n *\n * @param {!Array} tokens\n * @param {(Array|Object)=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction tokensToRegExp (tokens, keys, options) {\n if (!isarray(keys)) {\n options = /** @type {!Object} */ (keys || options);\n keys = [];\n }\n\n options = options || {};\n\n var strict = options.strict;\n var end = options.end !== false;\n var route = '';\n\n // Iterate over the tokens and create our regexp string.\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n\n if (typeof token === 'string') {\n route += escapeString(token);\n } else {\n var prefix = escapeString(token.prefix);\n var capture = '(?:' + token.pattern + ')';\n\n keys.push(token);\n\n if (token.repeat) {\n capture += '(?:' + prefix + capture + ')*';\n }\n\n if (token.optional) {\n if (!token.partial) {\n capture = '(?:' + prefix + '(' + capture + '))?';\n } else {\n capture = prefix + '(' + capture + ')?';\n }\n } else {\n capture = prefix + '(' + capture + ')';\n }\n\n route += capture;\n }\n }\n\n var delimiter = escapeString(options.delimiter || '/');\n var endsWithDelimiter = route.slice(-delimiter.length) === delimiter;\n\n // In non-strict mode we allow a slash at the end of match. If the path to\n // match already ends with a slash, we remove it for consistency. The slash\n // is valid at the end of a path match, not in the middle. This is important\n // in non-ending mode, where \"/test/\" shouldn't match \"/test//route\".\n if (!strict) {\n route = (endsWithDelimiter ? route.slice(0, -delimiter.length) : route) + '(?:' + delimiter + '(?=$))?';\n }\n\n if (end) {\n route += '$';\n } else {\n // In non-ending mode, we need the capturing groups to match as much as\n // possible by using a positive lookahead to the end or next path segment.\n route += strict && endsWithDelimiter ? '' : '(?=' + delimiter + '|$)';\n }\n\n return attachKeys(new RegExp('^' + route, flags(options)), keys)\n}\n\n/**\n * Normalize the given path string, returning a regular expression.\n *\n * An empty array can be passed in for the keys, which will hold the\n * placeholder key descriptions. For example, using `/user/:id`, `keys` will\n * contain `[{ name: 'id', delimiter: '/', optional: false, repeat: false }]`.\n *\n * @param {(string|RegExp|Array)} path\n * @param {(Array|Object)=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction pathToRegexp (path, keys, options) {\n if (!isarray(keys)) {\n options = /** @type {!Object} */ (keys || options);\n keys = [];\n }\n\n options = options || {};\n\n if (path instanceof RegExp) {\n return regexpToRegexp(path, /** @type {!Array} */ (keys))\n }\n\n if (isarray(path)) {\n return arrayToRegexp(/** @type {!Array} */ (path), /** @type {!Array} */ (keys), options)\n }\n\n return stringToRegexp(/** @type {string} */ (path), /** @type {!Array} */ (keys), options)\n}\npathToRegexp_1.parse = parse_1;\npathToRegexp_1.compile = compile_1;\npathToRegexp_1.tokensToFunction = tokensToFunction_1;\npathToRegexp_1.tokensToRegExp = tokensToRegExp_1;\n\n// TODO: Replace with React.createContext once we can assume React 16+\n\nvar createNamedContext = function createNamedContext(name) {\n var context = index();\n context.displayName = name;\n return context;\n};\n\nvar historyContext = /*#__PURE__*/createNamedContext(\"Router-History\");\n\nvar context = /*#__PURE__*/createNamedContext(\"Router\");\n\n/**\n * The public API for putting history on context.\n */\n\nvar Router = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(Router, _React$Component);\n\n Router.computeRootMatch = function computeRootMatch(pathname) {\n return {\n path: \"/\",\n url: \"/\",\n params: {},\n isExact: pathname === \"/\"\n };\n };\n\n function Router(props) {\n var _this;\n\n _this = _React$Component.call(this, props) || this;\n _this.state = {\n location: props.history.location\n }; // This is a bit of a hack. We have to start listening for location\n // changes here in the constructor in case there are any s\n // on the initial render. If there are, they will replace/push when\n // they mount and since cDM fires in children before parents, we may\n // get a new location before the is mounted.\n\n _this._isMounted = false;\n _this._pendingLocation = null;\n\n if (!props.staticContext) {\n _this.unlisten = props.history.listen(function (location) {\n if (_this._isMounted) {\n _this.setState({\n location: location\n });\n } else {\n _this._pendingLocation = location;\n }\n });\n }\n\n return _this;\n }\n\n var _proto = Router.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n this._isMounted = true;\n\n if (this._pendingLocation) {\n this.setState({\n location: this._pendingLocation\n });\n }\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n if (this.unlisten) {\n this.unlisten();\n this._isMounted = false;\n this._pendingLocation = null;\n }\n };\n\n _proto.render = function render() {\n return /*#__PURE__*/react.createElement(context.Provider, {\n value: {\n history: this.props.history,\n location: this.state.location,\n match: Router.computeRootMatch(this.state.location.pathname),\n staticContext: this.props.staticContext\n }\n }, /*#__PURE__*/react.createElement(historyContext.Provider, {\n children: this.props.children || null,\n value: this.props.history\n }));\n };\n\n return Router;\n}(react.Component);\n\n/**\n * The public API for a that stores location in memory.\n */\n\nvar MemoryRouter = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(MemoryRouter, _React$Component);\n\n function MemoryRouter() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n _this.history = createMemoryHistory(_this.props);\n return _this;\n }\n\n var _proto = MemoryRouter.prototype;\n\n _proto.render = function render() {\n return /*#__PURE__*/react.createElement(Router, {\n history: this.history,\n children: this.props.children\n });\n };\n\n return MemoryRouter;\n}(react.Component);\n\nvar Lifecycle = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(Lifecycle, _React$Component);\n\n function Lifecycle() {\n return _React$Component.apply(this, arguments) || this;\n }\n\n var _proto = Lifecycle.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n if (this.props.onMount) this.props.onMount.call(this, this);\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n if (this.props.onUpdate) this.props.onUpdate.call(this, this, prevProps);\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n if (this.props.onUnmount) this.props.onUnmount.call(this, this);\n };\n\n _proto.render = function render() {\n return null;\n };\n\n return Lifecycle;\n}(react.Component);\n\nvar cache$1 = {};\nvar cacheLimit$1 = 10000;\nvar cacheCount$1 = 0;\n\nfunction compilePath$1(path, options) {\n var cacheKey = \"\" + options.end + options.strict + options.sensitive;\n var pathCache = cache$1[cacheKey] || (cache$1[cacheKey] = {});\n if (pathCache[path]) return pathCache[path];\n var keys = [];\n var regexp = pathToRegexp_1(path, keys, options);\n var result = {\n regexp: regexp,\n keys: keys\n };\n\n if (cacheCount$1 < cacheLimit$1) {\n pathCache[path] = result;\n cacheCount$1++;\n }\n\n return result;\n}\n/**\n * Public API for matching a URL pathname to a path.\n */\n\n\nfunction matchPath(pathname, options) {\n if (options === void 0) {\n options = {};\n }\n\n if (typeof options === \"string\" || Array.isArray(options)) {\n options = {\n path: options\n };\n }\n\n var _options = options,\n path = _options.path,\n _options$exact = _options.exact,\n exact = _options$exact === void 0 ? false : _options$exact,\n _options$strict = _options.strict,\n strict = _options$strict === void 0 ? false : _options$strict,\n _options$sensitive = _options.sensitive,\n sensitive = _options$sensitive === void 0 ? false : _options$sensitive;\n var paths = [].concat(path);\n return paths.reduce(function (matched, path) {\n if (!path && path !== \"\") return null;\n if (matched) return matched;\n\n var _compilePath = compilePath$1(path, {\n end: exact,\n strict: strict,\n sensitive: sensitive\n }),\n regexp = _compilePath.regexp,\n keys = _compilePath.keys;\n\n var match = regexp.exec(pathname);\n if (!match) return null;\n var url = match[0],\n values = match.slice(1);\n var isExact = pathname === url;\n if (exact && !isExact) return null;\n return {\n path: path,\n // the path used to match\n url: path === \"/\" && url === \"\" ? \"/\" : url,\n // the matched portion of the URL\n isExact: isExact,\n // whether or not we matched exactly\n params: keys.reduce(function (memo, key, index) {\n memo[key.name] = values[index];\n return memo;\n }, {})\n };\n }, null);\n}\n\nfunction isEmptyChildren(children) {\n return react.Children.count(children) === 0;\n}\n/**\n * The public API for matching a single path and rendering.\n */\n\n\nvar Route = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(Route, _React$Component);\n\n function Route() {\n return _React$Component.apply(this, arguments) || this;\n }\n\n var _proto = Route.prototype;\n\n _proto.render = function render() {\n var _this = this;\n\n return /*#__PURE__*/react.createElement(context.Consumer, null, function (context$1) {\n !context$1 ? invariant(false) : void 0;\n var location = _this.props.location || context$1.location;\n var match = _this.props.computedMatch ? _this.props.computedMatch // already computed the match for us\n : _this.props.path ? matchPath(location.pathname, _this.props) : context$1.match;\n\n var props = _extends({}, context$1, {\n location: location,\n match: match\n });\n\n var _this$props = _this.props,\n children = _this$props.children,\n component = _this$props.component,\n render = _this$props.render; // Preact uses an empty array as children by\n // default, so use null if that's the case.\n\n if (Array.isArray(children) && isEmptyChildren(children)) {\n children = null;\n }\n\n return /*#__PURE__*/react.createElement(context.Provider, {\n value: props\n }, props.match ? children ? typeof children === \"function\" ? children(props) : children : component ? /*#__PURE__*/react.createElement(component, props) : render ? render(props) : null : typeof children === \"function\" ? children(props) : null);\n });\n };\n\n return Route;\n}(react.Component);\n\nfunction addLeadingSlash$1(path) {\n return path.charAt(0) === \"/\" ? path : \"/\" + path;\n}\n\nfunction addBasename(basename, location) {\n if (!basename) return location;\n return _extends({}, location, {\n pathname: addLeadingSlash$1(basename) + location.pathname\n });\n}\n\nfunction stripBasename$1(basename, location) {\n if (!basename) return location;\n var base = addLeadingSlash$1(basename);\n if (location.pathname.indexOf(base) !== 0) return location;\n return _extends({}, location, {\n pathname: location.pathname.substr(base.length)\n });\n}\n\nfunction createURL(location) {\n return typeof location === \"string\" ? location : createPath(location);\n}\n\nfunction staticHandler(methodName) {\n return function () {\n invariant(false) ;\n };\n}\n\nfunction noop() {}\n/**\n * The public top-level API for a \"static\" , so-called because it\n * can't actually change the current location. Instead, it just records\n * location changes in a context object. Useful mainly in testing and\n * server-rendering scenarios.\n */\n\n\nvar StaticRouter = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(StaticRouter, _React$Component);\n\n function StaticRouter() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n\n _this.handlePush = function (location) {\n return _this.navigateTo(location, \"PUSH\");\n };\n\n _this.handleReplace = function (location) {\n return _this.navigateTo(location, \"REPLACE\");\n };\n\n _this.handleListen = function () {\n return noop;\n };\n\n _this.handleBlock = function () {\n return noop;\n };\n\n return _this;\n }\n\n var _proto = StaticRouter.prototype;\n\n _proto.navigateTo = function navigateTo(location, action) {\n var _this$props = this.props,\n _this$props$basename = _this$props.basename,\n basename = _this$props$basename === void 0 ? \"\" : _this$props$basename,\n _this$props$context = _this$props.context,\n context = _this$props$context === void 0 ? {} : _this$props$context;\n context.action = action;\n context.location = addBasename(basename, createLocation(location));\n context.url = createURL(context.location);\n };\n\n _proto.render = function render() {\n var _this$props2 = this.props,\n _this$props2$basename = _this$props2.basename,\n basename = _this$props2$basename === void 0 ? \"\" : _this$props2$basename,\n _this$props2$context = _this$props2.context,\n context = _this$props2$context === void 0 ? {} : _this$props2$context,\n _this$props2$location = _this$props2.location,\n location = _this$props2$location === void 0 ? \"/\" : _this$props2$location,\n rest = _objectWithoutPropertiesLoose(_this$props2, [\"basename\", \"context\", \"location\"]);\n\n var history = {\n createHref: function createHref(path) {\n return addLeadingSlash$1(basename + createURL(path));\n },\n action: \"POP\",\n location: stripBasename$1(basename, createLocation(location)),\n push: this.handlePush,\n replace: this.handleReplace,\n go: staticHandler(),\n goBack: staticHandler(),\n goForward: staticHandler(),\n listen: this.handleListen,\n block: this.handleBlock\n };\n return /*#__PURE__*/react.createElement(Router, _extends({}, rest, {\n history: history,\n staticContext: context\n }));\n };\n\n return StaticRouter;\n}(react.Component);\n\n/**\n * The public API for rendering the first that matches.\n */\n\nvar Switch = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(Switch, _React$Component);\n\n function Switch() {\n return _React$Component.apply(this, arguments) || this;\n }\n\n var _proto = Switch.prototype;\n\n _proto.render = function render() {\n var _this = this;\n\n return /*#__PURE__*/react.createElement(context.Consumer, null, function (context) {\n !context ? invariant(false) : void 0;\n var location = _this.props.location || context.location;\n var element, match; // We use React.Children.forEach instead of React.Children.toArray().find()\n // here because toArray adds keys to all child elements and we do not want\n // to trigger an unmount/remount for two s that render the same\n // component at different URLs.\n\n react.Children.forEach(_this.props.children, function (child) {\n if (match == null && /*#__PURE__*/react.isValidElement(child)) {\n element = child;\n var path = child.props.path || child.props.from;\n match = path ? matchPath(location.pathname, _extends({}, child.props, {\n path: path\n })) : context.match;\n }\n });\n return match ? /*#__PURE__*/react.cloneElement(element, {\n location: location,\n computedMatch: match\n }) : null;\n });\n };\n\n return Switch;\n}(react.Component);\n\nvar useContext = react.useContext;\nfunction useHistory() {\n\n return useContext(historyContext);\n}\nfunction useLocation() {\n\n return useContext(context).location;\n}\n\nexport { Router as R, Switch as S, createHashHistory as a, context as b, createBrowserHistory as c, createLocation as d, createPath as e, Route as f, useLocation as g, invariant as i, matchPath as m, useHistory as u };\n", "import { c as createBrowserHistory, R as Router, a as createHashHistory, b as context, i as invariant, d as createLocation, e as createPath, m as matchPath } from './common/react-router-e568c031.js';\nexport { f as Route, S as Switch, u as useHistory, g as useLocation } from './common/react-router-e568c031.js';\nimport { b as _inheritsLoose, a as _extends } from './common/inheritsLoose-302c9f06.js';\nimport { r as react } from './common/index-04f37d11.js';\nimport './common/index-f914c6ce.js';\nimport { _ as _objectWithoutPropertiesLoose } from './common/objectWithoutPropertiesLoose-a0217bc6.js';\nimport './common/index-147c2973.js';\nimport './common/_commonjsHelpers-8c19dec8.js';\nimport './common/hoist-non-react-statics.cjs-a6490c8b.js';\n\n/**\n * The public API for a that uses HTML5 history.\n */\n\nvar BrowserRouter = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(BrowserRouter, _React$Component);\n\n function BrowserRouter() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n _this.history = createBrowserHistory(_this.props);\n return _this;\n }\n\n var _proto = BrowserRouter.prototype;\n\n _proto.render = function render() {\n return /*#__PURE__*/react.createElement(Router, {\n history: this.history,\n children: this.props.children\n });\n };\n\n return BrowserRouter;\n}(react.Component);\n\n/**\n * The public API for a that uses window.location.hash.\n */\n\nvar HashRouter = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(HashRouter, _React$Component);\n\n function HashRouter() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n _this.history = createHashHistory(_this.props);\n return _this;\n }\n\n var _proto = HashRouter.prototype;\n\n _proto.render = function render() {\n return /*#__PURE__*/react.createElement(Router, {\n history: this.history,\n children: this.props.children\n });\n };\n\n return HashRouter;\n}(react.Component);\n\nvar resolveToLocation = function resolveToLocation(to, currentLocation) {\n return typeof to === \"function\" ? to(currentLocation) : to;\n};\nvar normalizeToLocation = function normalizeToLocation(to, currentLocation) {\n return typeof to === \"string\" ? createLocation(to, null, null, currentLocation) : to;\n};\n\nvar forwardRefShim = function forwardRefShim(C) {\n return C;\n};\n\nvar forwardRef = react.forwardRef;\n\nif (typeof forwardRef === \"undefined\") {\n forwardRef = forwardRefShim;\n}\n\nfunction isModifiedEvent(event) {\n return !!(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);\n}\n\nvar LinkAnchor = forwardRef(function (_ref, forwardedRef) {\n var innerRef = _ref.innerRef,\n navigate = _ref.navigate,\n _onClick = _ref.onClick,\n rest = _objectWithoutPropertiesLoose(_ref, [\"innerRef\", \"navigate\", \"onClick\"]);\n\n var target = rest.target;\n\n var props = _extends({}, rest, {\n onClick: function onClick(event) {\n try {\n if (_onClick) _onClick(event);\n } catch (ex) {\n event.preventDefault();\n throw ex;\n }\n\n if (!event.defaultPrevented && // onClick prevented default\n event.button === 0 && ( // ignore everything but left clicks\n !target || target === \"_self\") && // let browser handle \"target=_blank\" etc.\n !isModifiedEvent(event) // ignore clicks with modifier keys\n ) {\n event.preventDefault();\n navigate();\n }\n }\n }); // React 15 compat\n\n\n if (forwardRefShim !== forwardRef) {\n props.ref = forwardedRef || innerRef;\n } else {\n props.ref = innerRef;\n }\n /* eslint-disable-next-line jsx-a11y/anchor-has-content */\n\n\n return /*#__PURE__*/react.createElement(\"a\", props);\n});\n/**\n * The public API for rendering a history-aware .\n */\n\n\nvar Link = forwardRef(function (_ref2, forwardedRef) {\n var _ref2$component = _ref2.component,\n component = _ref2$component === void 0 ? LinkAnchor : _ref2$component,\n replace = _ref2.replace,\n to = _ref2.to,\n innerRef = _ref2.innerRef,\n rest = _objectWithoutPropertiesLoose(_ref2, [\"component\", \"replace\", \"to\", \"innerRef\"]);\n\n return /*#__PURE__*/react.createElement(context.Consumer, null, function (context) {\n !context ? invariant(false) : void 0;\n var history = context.history;\n var location = normalizeToLocation(resolveToLocation(to, context.location), context.location);\n var href = location ? history.createHref(location) : \"\";\n\n var props = _extends({}, rest, {\n href: href,\n navigate: function navigate() {\n var location = resolveToLocation(to, context.location);\n var isDuplicateNavigation = createPath(context.location) === createPath(normalizeToLocation(location));\n var method = replace || isDuplicateNavigation ? history.replace : history.push;\n method(location);\n }\n }); // React 15 compat\n\n\n if (forwardRefShim !== forwardRef) {\n props.ref = forwardedRef || innerRef;\n } else {\n props.innerRef = innerRef;\n }\n\n return /*#__PURE__*/react.createElement(component, props);\n });\n});\n\nvar forwardRefShim$1 = function forwardRefShim(C) {\n return C;\n};\n\nvar forwardRef$1 = react.forwardRef;\n\nif (typeof forwardRef$1 === \"undefined\") {\n forwardRef$1 = forwardRefShim$1;\n}\n\nfunction joinClassnames() {\n for (var _len = arguments.length, classnames = new Array(_len), _key = 0; _key < _len; _key++) {\n classnames[_key] = arguments[_key];\n }\n\n return classnames.filter(function (i) {\n return i;\n }).join(\" \");\n}\n/**\n * A wrapper that knows if it's \"active\" or not.\n */\n\n\nvar NavLink = forwardRef$1(function (_ref, forwardedRef) {\n var _ref$ariaCurrent = _ref[\"aria-current\"],\n ariaCurrent = _ref$ariaCurrent === void 0 ? \"page\" : _ref$ariaCurrent,\n _ref$activeClassName = _ref.activeClassName,\n activeClassName = _ref$activeClassName === void 0 ? \"active\" : _ref$activeClassName,\n activeStyle = _ref.activeStyle,\n classNameProp = _ref.className,\n exact = _ref.exact,\n isActiveProp = _ref.isActive,\n locationProp = _ref.location,\n sensitive = _ref.sensitive,\n strict = _ref.strict,\n styleProp = _ref.style,\n to = _ref.to,\n innerRef = _ref.innerRef,\n rest = _objectWithoutPropertiesLoose(_ref, [\"aria-current\", \"activeClassName\", \"activeStyle\", \"className\", \"exact\", \"isActive\", \"location\", \"sensitive\", \"strict\", \"style\", \"to\", \"innerRef\"]);\n\n return /*#__PURE__*/react.createElement(context.Consumer, null, function (context) {\n !context ? invariant(false) : void 0;\n var currentLocation = locationProp || context.location;\n var toLocation = normalizeToLocation(resolveToLocation(to, currentLocation), currentLocation);\n var path = toLocation.pathname; // Regex taken from: https://github.com/pillarjs/path-to-regexp/blob/master/index.js#L202\n\n var escapedPath = path && path.replace(/([.+*?=^!:${}()[\\]|/\\\\])/g, \"\\\\$1\");\n var match = escapedPath ? matchPath(currentLocation.pathname, {\n path: escapedPath,\n exact: exact,\n sensitive: sensitive,\n strict: strict\n }) : null;\n var isActive = !!(isActiveProp ? isActiveProp(match, currentLocation) : match);\n var className = typeof classNameProp === \"function\" ? classNameProp(isActive) : classNameProp;\n var style = typeof styleProp === \"function\" ? styleProp(isActive) : styleProp;\n\n if (isActive) {\n className = joinClassnames(className, activeClassName);\n style = _extends({}, style, activeStyle);\n }\n\n var props = _extends({\n \"aria-current\": isActive && ariaCurrent || null,\n className: className,\n style: style,\n to: toLocation\n }, rest); // React 15 compat\n\n\n if (forwardRefShim$1 !== forwardRef$1) {\n props.ref = forwardedRef || innerRef;\n } else {\n props.innerRef = innerRef;\n }\n\n return /*#__PURE__*/react.createElement(Link, props);\n });\n});\n\nexport { BrowserRouter };\n", "//\n\nvar shallowequal = function shallowEqual(objA, objB, compare, compareContext) {\n var ret = compare ? compare.call(compareContext, objA, objB) : void 0;\n\n if (ret !== void 0) {\n return !!ret;\n }\n\n if (objA === objB) {\n return true;\n }\n\n if (typeof objA !== \"object\" || !objA || typeof objB !== \"object\" || !objB) {\n return false;\n }\n\n var keysA = Object.keys(objA);\n var keysB = Object.keys(objB);\n\n if (keysA.length !== keysB.length) {\n return false;\n }\n\n var bHasOwnProperty = Object.prototype.hasOwnProperty.bind(objB);\n\n // Test for A's keys different from B.\n for (var idx = 0; idx < keysA.length; idx++) {\n var key = keysA[idx];\n\n if (!bHasOwnProperty(key)) {\n return false;\n }\n\n var valueA = objA[key];\n var valueB = objB[key];\n\n ret = compare ? compare.call(compareContext, valueA, valueB, key) : void 0;\n\n if (ret === false || (ret === void 0 && valueA !== valueB)) {\n return false;\n }\n }\n\n return true;\n};\n\nexport { shallowequal as s };\n", "import { r as react } from './common/index-04f37d11.js';\nimport { p as propTypes } from './common/index-f914c6ce.js';\nimport { s as shallowequal } from './common/index-d1edd5e3.js';\nimport './common/_commonjsHelpers-8c19dec8.js';\n\n/* global Map:readonly, Set:readonly, ArrayBuffer:readonly */\n\nvar hasElementType = typeof Element !== 'undefined';\nvar hasMap = typeof Map === 'function';\nvar hasSet = typeof Set === 'function';\nvar hasArrayBuffer = typeof ArrayBuffer === 'function' && !!ArrayBuffer.isView;\n\n// Note: We **don't** need `envHasBigInt64Array` in fde es6/index.js\n\nfunction equal(a, b) {\n // START: fast-deep-equal es6/index.js 3.1.1\n if (a === b) return true;\n\n if (a && b && typeof a == 'object' && typeof b == 'object') {\n if (a.constructor !== b.constructor) return false;\n\n var length, i, keys;\n if (Array.isArray(a)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (!equal(a[i], b[i])) return false;\n return true;\n }\n\n // START: Modifications:\n // 1. Extra `has &&` helpers in initial condition allow es6 code\n // to co-exist with es5.\n // 2. Replace `for of` with es5 compliant iteration using `for`.\n // Basically, take:\n //\n // ```js\n // for (i of a.entries())\n // if (!b.has(i[0])) return false;\n // ```\n //\n // ... and convert to:\n //\n // ```js\n // it = a.entries();\n // while (!(i = it.next()).done)\n // if (!b.has(i.value[0])) return false;\n // ```\n //\n // **Note**: `i` access switches to `i.value`.\n var it;\n if (hasMap && (a instanceof Map) && (b instanceof Map)) {\n if (a.size !== b.size) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!b.has(i.value[0])) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!equal(i.value[1], b.get(i.value[0]))) return false;\n return true;\n }\n\n if (hasSet && (a instanceof Set) && (b instanceof Set)) {\n if (a.size !== b.size) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!b.has(i.value[0])) return false;\n return true;\n }\n // END: Modifications\n\n if (hasArrayBuffer && ArrayBuffer.isView(a) && ArrayBuffer.isView(b)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (a[i] !== b[i]) return false;\n return true;\n }\n\n if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n if (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString) return a.toString() === b.toString();\n\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n\n for (i = length; i-- !== 0;)\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n // END: fast-deep-equal\n\n // START: react-fast-compare\n // custom handling for DOM elements\n if (hasElementType && a instanceof Element) return false;\n\n // custom handling for React/Preact\n for (i = length; i-- !== 0;) {\n if ((keys[i] === '_owner' || keys[i] === '__v' || keys[i] === '__o') && a.$$typeof) {\n // React-specific: avoid traversing React elements' _owner\n // Preact-specific: avoid traversing Preact elements' __v and __o\n // __v = $_original / $_vnode\n // __o = $_owner\n // These properties contain circular references and are not needed when\n // comparing the actual elements (and not their owners)\n // .$$typeof and ._store on just reasonable markers of elements\n\n continue;\n }\n\n // all other properties should be traversed as usual\n if (!equal(a[keys[i]], b[keys[i]])) return false;\n }\n // END: react-fast-compare\n\n // START: fast-deep-equal\n return true;\n }\n\n return a !== a && b !== b;\n}\n// end fast-deep-equal\n\nvar reactFastCompare = function isEqual(a, b) {\n try {\n return equal(a, b);\n } catch (error) {\n if (((error.message || '').match(/stack|recursion/i))) {\n // warn on circular references, don't crash\n // browsers give this different errors name and messages:\n // chrome/safari: \"RangeError\", \"Maximum call stack size exceeded\"\n // firefox: \"InternalError\", too much recursion\"\n // edge: \"Error\", \"Out of stack space\"\n console.warn('react-fast-compare cannot handle circular refs');\n return false;\n }\n // some other error. we should definitely know about these\n throw error;\n }\n};\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar invariant = function(condition, format, a, b, c, d, e, f) {\n\n if (!condition) {\n var error;\n if (format === undefined) {\n error = new Error(\n 'Minified exception occurred; use the non-minified dev environment ' +\n 'for the full error message and additional helpful warnings.'\n );\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error(\n format.replace(/%s/g, function() { return args[argIndex++]; })\n );\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // we don't care about invariant's own frame\n throw error;\n }\n};\n\nvar browser = invariant;\n\nfunction a(){return (a=Object.assign||function(t){for(var e=1;e=0||(i[r]=t[r]);return i}var l={BASE:\"base\",BODY:\"body\",HEAD:\"head\",HTML:\"html\",LINK:\"link\",META:\"meta\",NOSCRIPT:\"noscript\",SCRIPT:\"script\",STYLE:\"style\",TITLE:\"title\",FRAGMENT:\"Symbol(react.fragment)\"},p={rel:[\"amphtml\",\"canonical\",\"alternate\"]},f={type:[\"application/ld+json\"]},d={charset:\"\",name:[\"robots\",\"description\"],property:[\"og:type\",\"og:title\",\"og:url\",\"og:image\",\"og:image:alt\",\"og:description\",\"twitter:url\",\"twitter:title\",\"twitter:description\",\"twitter:image\",\"twitter:image:alt\",\"twitter:card\",\"twitter:site\"]},h=Object.keys(l).map(function(t){return l[t]}),m={accesskey:\"accessKey\",charset:\"charSet\",class:\"className\",contenteditable:\"contentEditable\",contextmenu:\"contextMenu\",\"http-equiv\":\"httpEquiv\",itemprop:\"itemProp\",tabindex:\"tabIndex\"},y=Object.keys(m).reduce(function(t,e){return t[m[e]]=e,t},{}),T=function(t,e){for(var r=t.length-1;r>=0;r-=1){var n=t[r];if(Object.prototype.hasOwnProperty.call(n,e))return n[e]}return null},g=function(t){var e=T(t,l.TITLE),r=T(t,\"titleTemplate\");if(Array.isArray(e)&&(e=e.join(\"\")),r&&e)return r.replace(/%s/g,function(){return e});var n=T(t,\"defaultTitle\");return e||n||void 0},b=function(t){return T(t,\"onChangeClientState\")||function(){}},v=function(t,e){return e.filter(function(e){return void 0!==e[t]}).map(function(e){return e[t]}).reduce(function(t,e){return a({},t,e)},{})},A=function(t,e){return e.filter(function(t){return void 0!==t[l.BASE]}).map(function(t){return t[l.BASE]}).reverse().reduce(function(e,r){if(!e.length)for(var n=Object.keys(r),i=0;i /g,\">\").replace(/\"/g,\""\").replace(/'/g,\"'\")},x=function(t){return Object.keys(t).reduce(function(e,r){var n=void 0!==t[r]?r+'=\"'+t[r]+'\"':\"\"+r;return e?e+\" \"+n:n},\"\")},L=function(t,e){return void 0===e&&(e={}),Object.keys(t).reduce(function(e,r){return e[m[r]||r]=t[r],e},e)},j=function(e,r){return r.map(function(r,n){var i,o=((i={key:n})[\"data-rh\"]=!0,i);return Object.keys(r).forEach(function(t){var e=m[t]||t;\"innerHTML\"===e||\"cssText\"===e?o.dangerouslySetInnerHTML={__html:r.innerHTML||r.cssText}:o[e]=r[t];}),react.createElement(e,o)})},M=function(e,r,n){switch(e){case l.TITLE:return {toComponent:function(){return n=r.titleAttributes,(i={key:e=r.title})[\"data-rh\"]=!0,o=L(n,i),[react.createElement(l.TITLE,o,e)];var e,n,i,o;},toString:function(){return function(t,e,r,n){var i=x(r),o=S(e);return i?\"<\"+t+' data-rh=\"true\" '+i+\">\"+w(o,n)+\"\"+t+\">\":\"<\"+t+' data-rh=\"true\">'+w(o,n)+\"\"+t+\">\"}(e,r.title,r.titleAttributes,n)}};case\"bodyAttributes\":case\"htmlAttributes\":return {toComponent:function(){return L(r)},toString:function(){return x(r)}};default:return {toComponent:function(){return j(e,r)},toString:function(){return function(t,e,r){return e.reduce(function(e,n){var i=Object.keys(n).filter(function(t){return !(\"innerHTML\"===t||\"cssText\"===t)}).reduce(function(t,e){var i=void 0===n[e]?e:e+'=\"'+w(n[e],r)+'\"';return t?t+\" \"+i:i},\"\"),o=n.innerHTML||n.cssText||\"\",a=-1===P.indexOf(t);return e+\"<\"+t+' data-rh=\"true\" '+i+(a?\"/>\":\">\"+o+\"\"+t+\">\")},\"\")}(e,r,n)}}}},k=function(t){var e=t.baseTag,r=t.bodyAttributes,n=t.encode,i=t.htmlAttributes,o=t.noscriptTags,a=t.styleTags,s=t.title,c=void 0===s?\"\":s,u=t.titleAttributes,h=t.linkTags,m=t.metaTags,y=t.scriptTags,T={toComponent:function(){},toString:function(){return \"\"}};if(t.prioritizeSeoTags){var g=function(t){var e=t.linkTags,r=t.scriptTags,n=t.encode,i=E(t.metaTags,d),o=E(e,p),a=E(r,f);return {priorityMethods:{toComponent:function(){return [].concat(j(l.META,i.priority),j(l.LINK,o.priority),j(l.SCRIPT,a.priority))},toString:function(){return M(l.META,i.priority,n)+\" \"+M(l.LINK,o.priority,n)+\" \"+M(l.SCRIPT,a.priority,n)}},metaTags:i.default,linkTags:o.default,scriptTags:a.default}}(t);T=g.priorityMethods,h=g.linkTags,m=g.metaTags,y=g.scriptTags;}return {priority:T,base:M(l.BASE,e,n),bodyAttributes:M(\"bodyAttributes\",r,n),htmlAttributes:M(\"htmlAttributes\",i,n),link:M(l.LINK,h,n),meta:M(l.META,m,n),noscript:M(l.NOSCRIPT,o,n),script:M(l.SCRIPT,y,n),style:M(l.STYLE,a,n),title:M(l.TITLE,{title:c,titleAttributes:u},n)}},H=[],N=function(t,e){var r=this;void 0===e&&(e=\"undefined\"!=typeof document),this.instances=[],this.value={setHelmet:function(t){r.context.helmet=t;},helmetInstances:{get:function(){return r.canUseDOM?H:r.instances},add:function(t){(r.canUseDOM?H:r.instances).push(t);},remove:function(t){var e=(r.canUseDOM?H:r.instances).indexOf(t);(r.canUseDOM?H:r.instances).splice(e,1);}}},this.context=t,this.canUseDOM=e,e||(t.helmet=k({baseTag:[],bodyAttributes:{},encodeSpecialCharacters:!0,htmlAttributes:{},linkTags:[],metaTags:[],noscriptTags:[],scriptTags:[],styleTags:[],title:\"\",titleAttributes:{}}));},R=react.createContext({}),D=propTypes.shape({setHelmet:propTypes.func,helmetInstances:propTypes.shape({get:propTypes.func,add:propTypes.func,remove:propTypes.func})}),U=\"undefined\"!=typeof document,q=function(e){function r(t){var n;return (n=e.call(this,t)||this).helmetData=new N(n.props.context,r.canUseDOM),n}return s(r,e),r.prototype.render=function(){return react.createElement(R.Provider,{value:this.helmetData.value},this.props.children)},r}(react.Component);q.canUseDOM=U,q.propTypes={context:propTypes.shape({helmet:propTypes.shape()}),children:propTypes.node.isRequired},q.defaultProps={context:{}},q.displayName=\"HelmetProvider\";var Y=function(t,e){var r,n=document.head||document.querySelector(l.HEAD),i=n.querySelectorAll(t+\"[data-rh]\"),o=[].slice.call(i),a=[];return e&&e.length&&e.forEach(function(e){var n=document.createElement(t);for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&(\"innerHTML\"===i?n.innerHTML=e.innerHTML:\"cssText\"===i?n.styleSheet?n.styleSheet.cssText=e.cssText:n.appendChild(document.createTextNode(e.cssText)):n.setAttribute(i,void 0===e[i]?\"\":e[i]));n.setAttribute(\"data-rh\",\"true\"),o.some(function(t,e){return r=e,n.isEqualNode(t)})?o.splice(r,1):a.push(n);}),o.forEach(function(t){return t.parentNode.removeChild(t)}),a.forEach(function(t){return n.appendChild(t)}),{oldTags:o,newTags:a}},B=function(t,e){var r=document.getElementsByTagName(t)[0];if(r){for(var n=r.getAttribute(\"data-rh\"),i=n?n.split(\",\"):[],o=[].concat(i),a=Object.keys(e),s=0;s=0;p-=1)r.removeAttribute(o[p]);i.length===o.length?r.removeAttribute(\"data-rh\"):r.getAttribute(\"data-rh\")!==a.join(\",\")&&r.setAttribute(\"data-rh\",a.join(\",\"));}},K=function(t,e){var r=t.baseTag,n=t.htmlAttributes,i=t.linkTags,o=t.metaTags,a=t.noscriptTags,s=t.onChangeClientState,c=t.scriptTags,u=t.styleTags,p=t.title,f=t.titleAttributes;B(l.BODY,t.bodyAttributes),B(l.HTML,n),function(t,e){void 0!==t&&document.title!==t&&(document.title=S(t)),B(l.TITLE,e);}(p,f);var d={baseTag:Y(l.BASE,r),linkTags:Y(l.LINK,i),metaTags:Y(l.META,o),noscriptTags:Y(l.NOSCRIPT,a),scriptTags:Y(l.SCRIPT,c),styleTags:Y(l.STYLE,u)},h={},m={};Object.keys(d).forEach(function(t){var e=d[t],r=e.newTags,n=e.oldTags;r.length&&(h[t]=r),n.length&&(m[t]=d[t].oldTags);}),e&&e(),s(t,h,m);},_=null,z=function(t){function e(){for(var e,r=arguments.length,n=new Array(r),i=0;i elements are self-closing and can not contain children. Refer to our API for more information.\")}},o.flattenArrayTypeChildren=function(t){var e,r=t.child,n=t.arrayTypeChildren;return a({},n,((e={})[r.type]=[].concat(n[r.type]||[],[a({},t.newChildProps,this.mapNestedChildrenToProps(r,t.nestedChildren))]),e))},o.mapObjectTypeChildren=function(t){var e,r,n=t.child,i=t.newProps,o=t.newChildProps,s=t.nestedChildren;switch(n.type){case l.TITLE:return a({},i,((e={})[n.type]=s,e.titleAttributes=a({},o),e));case l.BODY:return a({},i,{bodyAttributes:a({},o)});case l.HTML:return a({},i,{htmlAttributes:a({},o)});default:return a({},i,((r={})[n.type]=a({},o),r))}},o.mapArrayTypeChildrenToProps=function(t,e){var r=a({},e);return Object.keys(t).forEach(function(e){var n;r=a({},r,((n={})[e]=t[e],n));}),r},o.warnOnInvalidChildren=function(t,e){return browser(h.some(function(e){return t.type===e}),\"function\"==typeof t.type?\"You may be attempting to nest components within each other, which is not allowed. Refer to our API for more information.\":\"Only elements types \"+h.join(\", \")+\" are allowed. Helmet does not support rendering <\"+t.type+\"> elements. Refer to our API for more information.\"),browser(!e||\"string\"==typeof e||Array.isArray(e)&&!e.some(function(t){return \"string\"!=typeof t}),\"Helmet expects a string as a child of <\"+t.type+\">. Did you forget to wrap your children in braces? ( <\"+t.type+\">{``}\"+t.type+\"> ) Refer to our API for more information.\"),!0},o.mapChildrenToProps=function(e,r){var n=this,i={};return react.Children.forEach(e,function(t){if(t&&t.props){var e=t.props,o=e.children,a=u(e,F),s=Object.keys(a).reduce(function(t,e){return t[y[e]||e]=a[e],t},{}),c=t.type;switch(\"symbol\"==typeof c?c=c.toString():n.warnOnInvalidChildren(t,o),c){case l.FRAGMENT:r=n.mapChildrenToProps(o,r);break;case l.LINK:case l.META:case l.NOSCRIPT:case l.SCRIPT:case l.STYLE:i=n.flattenArrayTypeChildren({child:t,arrayTypeChildren:i,newChildProps:s,nestedChildren:o});break;default:r=n.mapObjectTypeChildren({child:t,newProps:r,newChildProps:s,nestedChildren:o});}}}),this.mapArrayTypeChildrenToProps(i,r)},o.render=function(){var e=this.props,r=e.children,n=u(e,G),i=a({},n),o=n.helmetData;return r&&(i=this.mapChildrenToProps(r,i)),!o||o instanceof N||(o=new N(o.context,o.instances)),o?react.createElement(z,a({},i,{context:o.value,helmetData:void 0})):react.createElement(R.Consumer,null,function(e){return react.createElement(z,a({},i,{context:e}))})},r}(react.Component);W.propTypes={base:propTypes.object,bodyAttributes:propTypes.object,children:propTypes.oneOfType([propTypes.arrayOf(propTypes.node),propTypes.node]),defaultTitle:propTypes.string,defer:propTypes.bool,encodeSpecialCharacters:propTypes.bool,htmlAttributes:propTypes.object,link:propTypes.arrayOf(propTypes.object),meta:propTypes.arrayOf(propTypes.object),noscript:propTypes.arrayOf(propTypes.object),onChangeClientState:propTypes.func,script:propTypes.arrayOf(propTypes.object),style:propTypes.arrayOf(propTypes.object),title:propTypes.string,titleAttributes:propTypes.object,titleTemplate:propTypes.string,prioritizeSeoTags:propTypes.bool,helmetData:propTypes.object},W.defaultProps={defer:!0,encodeSpecialCharacters:!0,prioritizeSeoTags:!1},W.displayName=\"Helmet\";\n\nexport { W as Helmet, q as HelmetProvider };\n", "var nodeCrypto = {};\n\n/*! noble-ed25519 - MIT License (c) Paul Miller (paulmillr.com) */\nconst _0n = BigInt(0);\nconst _1n = BigInt(1);\nconst _2n = BigInt(2);\nconst _8n = BigInt(8);\nconst _255n = BigInt(255);\nconst CURVE = {\n a: BigInt(-1),\n d: BigInt('37095705934669439343138083508754565189542113879843219016388785533085940283555'),\n P: _2n ** _255n - BigInt(19),\n n: _2n ** BigInt(252) + BigInt('27742317777372353535851937790883648493'),\n h: BigInt(8),\n Gx: BigInt('15112221349535400772501151409588531511454012693041857206046113283949847762202'),\n Gy: BigInt('46316835694926478169428394003475163141307993866256225615783033603165251855960'),\n};\nconst B32 = 32;\nconst SQRT_M1 = BigInt('19681161376707505956807079304988542015446066515923890162744021073123829784752');\nconst SQRT_AD_MINUS_ONE = BigInt('25063068953384623474111414158702152701244531502492656460079210482610430750235');\nconst INVSQRT_A_MINUS_D = BigInt('54469307008909316920995813868745141605393597292927456921205312896311721017578');\nconst ONE_MINUS_D_SQ = BigInt('1159843021668779879193775521855586647937357759715417654439879720876111806838');\nconst D_MINUS_ONE_SQ = BigInt('40440834346308536858101042469323190826248399146238708352240133220865137265952');\nclass ExtendedPoint {\n constructor(x, y, z, t) {\n this.x = x;\n this.y = y;\n this.z = z;\n this.t = t;\n }\n static fromAffine(p) {\n if (!(p instanceof Point)) {\n throw new TypeError('ExtendedPoint#fromAffine: expected Point');\n }\n if (p.equals(Point.ZERO))\n return ExtendedPoint.ZERO;\n return new ExtendedPoint(p.x, p.y, _1n, mod(p.x * p.y));\n }\n static toAffineBatch(points) {\n const toInv = invertBatch(points.map((p) => p.z));\n return points.map((p, i) => p.toAffine(toInv[i]));\n }\n static normalizeZ(points) {\n return this.toAffineBatch(points).map(this.fromAffine);\n }\n static fromRistrettoHash(hash) {\n const r1 = bytes255ToNumberLE(hash.slice(0, B32));\n const R1 = this.calcElligatorRistrettoMap(r1);\n const r2 = bytes255ToNumberLE(hash.slice(B32, B32 * 2));\n const R2 = this.calcElligatorRistrettoMap(r2);\n return R1.add(R2);\n }\n static calcElligatorRistrettoMap(r0) {\n const { d } = CURVE;\n const r = mod(SQRT_M1 * r0 * r0);\n const Ns = mod((r + _1n) * ONE_MINUS_D_SQ);\n let c = BigInt(-1);\n const D = mod((c - d * r) * mod(r + d));\n let { isValid: Ns_D_is_sq, value: s } = uvRatio(Ns, D);\n let s_ = mod(s * r0);\n if (!edIsNegative(s_))\n s_ = mod(-s_);\n if (!Ns_D_is_sq)\n s = s_;\n if (!Ns_D_is_sq)\n c = r;\n const Nt = mod(c * (r - _1n) * D_MINUS_ONE_SQ - D);\n const s2 = s * s;\n const W0 = mod((s + s) * D);\n const W1 = mod(Nt * SQRT_AD_MINUS_ONE);\n const W2 = mod(_1n - s2);\n const W3 = mod(_1n + s2);\n return new ExtendedPoint(mod(W0 * W3), mod(W2 * W1), mod(W1 * W3), mod(W0 * W2));\n }\n static fromRistrettoBytes(bytes) {\n const { a, d } = CURVE;\n const emsg = 'ExtendedPoint.fromRistrettoBytes: Cannot convert bytes to Ristretto Point';\n const s = bytes255ToNumberLE(bytes);\n if (!equalBytes(numberToBytesPadded(s, B32), bytes) || edIsNegative(s))\n throw new Error(emsg);\n const s2 = mod(s * s);\n const u1 = mod(_1n + a * s2);\n const u2 = mod(_1n - a * s2);\n const u1_2 = mod(u1 * u1);\n const u2_2 = mod(u2 * u2);\n const v = mod(a * d * u1_2 - u2_2);\n const { isValid, value: I } = invertSqrt(mod(v * u2_2));\n const Dx = mod(I * u2);\n const Dy = mod(I * Dx * v);\n let x = mod((s + s) * Dx);\n if (edIsNegative(x))\n x = mod(-x);\n const y = mod(u1 * Dy);\n const t = mod(x * y);\n if (!isValid || edIsNegative(t) || y === _0n)\n throw new Error(emsg);\n return new ExtendedPoint(x, y, _1n, t);\n }\n toRistrettoBytes() {\n let { x, y, z, t } = this;\n const u1 = mod(mod(z + y) * mod(z - y));\n const u2 = mod(x * y);\n const { value: invsqrt } = invertSqrt(mod(u1 * u2 ** _2n));\n const D1 = mod(invsqrt * u1);\n const D2 = mod(invsqrt * u2);\n const zInv = mod(D1 * D2 * t);\n let D;\n if (edIsNegative(t * zInv)) {\n let _x = mod(y * SQRT_M1);\n let _y = mod(x * SQRT_M1);\n x = _x;\n y = _y;\n D = mod(D1 * INVSQRT_A_MINUS_D);\n }\n else {\n D = D2;\n }\n if (edIsNegative(x * zInv))\n y = mod(-y);\n let s = mod((z - y) * D);\n if (edIsNegative(s))\n s = mod(-s);\n return numberToBytesPadded(s, B32);\n }\n equals(other) {\n const a = this;\n const b = other;\n return mod(a.t * b.z) === mod(b.t * a.z);\n }\n negate() {\n return new ExtendedPoint(mod(-this.x), this.y, this.z, mod(-this.t));\n }\n double() {\n const X1 = this.x;\n const Y1 = this.y;\n const Z1 = this.z;\n const { a } = CURVE;\n const A = mod(X1 ** _2n);\n const B = mod(Y1 ** _2n);\n const C = mod(_2n * Z1 ** _2n);\n const D = mod(a * A);\n const E = mod((X1 + Y1) ** _2n - A - B);\n const G = mod(D + B);\n const F = mod(G - C);\n const H = mod(D - B);\n const X3 = mod(E * F);\n const Y3 = mod(G * H);\n const T3 = mod(E * H);\n const Z3 = mod(F * G);\n return new ExtendedPoint(X3, Y3, Z3, T3);\n }\n add(other) {\n const X1 = this.x;\n const Y1 = this.y;\n const Z1 = this.z;\n const T1 = this.t;\n const X2 = other.x;\n const Y2 = other.y;\n const Z2 = other.z;\n const T2 = other.t;\n const A = mod((Y1 - X1) * (Y2 + X2));\n const B = mod((Y1 + X1) * (Y2 - X2));\n const F = mod(B - A);\n if (F === _0n) {\n return this.double();\n }\n const C = mod(Z1 * _2n * T2);\n const D = mod(T1 * _2n * Z2);\n const E = mod(D + C);\n const G = mod(B + A);\n const H = mod(D - C);\n const X3 = mod(E * F);\n const Y3 = mod(G * H);\n const T3 = mod(E * H);\n const Z3 = mod(F * G);\n return new ExtendedPoint(X3, Y3, Z3, T3);\n }\n subtract(other) {\n return this.add(other.negate());\n }\n multiplyUnsafe(scalar) {\n let n = normalizeScalar(scalar);\n if (n === _1n)\n return this;\n let p = ExtendedPoint.ZERO;\n let d = this;\n while (n > _0n) {\n if (n & _1n)\n p = p.add(d);\n d = d.double();\n n >>= _1n;\n }\n return p;\n }\n precomputeWindow(W) {\n const windows = 256 / W + 1;\n let points = [];\n let p = this;\n let base = p;\n for (let window = 0; window < windows; window++) {\n base = p;\n points.push(base);\n for (let i = 1; i < 2 ** (W - 1); i++) {\n base = base.add(p);\n points.push(base);\n }\n p = base.double();\n }\n return points;\n }\n wNAF(n, affinePoint) {\n if (!affinePoint && this.equals(ExtendedPoint.BASE))\n affinePoint = Point.BASE;\n const W = (affinePoint && affinePoint._WINDOW_SIZE) || 1;\n if (256 % W) {\n throw new Error('Point#wNAF: Invalid precomputation window, must be power of 2');\n }\n let precomputes = affinePoint && pointPrecomputes.get(affinePoint);\n if (!precomputes) {\n precomputes = this.precomputeWindow(W);\n if (affinePoint && W !== 1) {\n precomputes = ExtendedPoint.normalizeZ(precomputes);\n pointPrecomputes.set(affinePoint, precomputes);\n }\n }\n let p = ExtendedPoint.ZERO;\n let f = ExtendedPoint.ZERO;\n const windows = 256 / W + 1;\n const windowSize = 2 ** (W - 1);\n const mask = BigInt(2 ** W - 1);\n const maxNumber = 2 ** W;\n const shiftBy = BigInt(W);\n for (let window = 0; window < windows; window++) {\n const offset = window * windowSize;\n let wbits = Number(n & mask);\n n >>= shiftBy;\n if (wbits > windowSize) {\n wbits -= maxNumber;\n n += _1n;\n }\n if (wbits === 0) {\n let pr = precomputes[offset];\n if (window % 2)\n pr = pr.negate();\n f = f.add(pr);\n }\n else {\n let cached = precomputes[offset + Math.abs(wbits) - 1];\n if (wbits < 0)\n cached = cached.negate();\n p = p.add(cached);\n }\n }\n return [p, f];\n }\n multiply(scalar, affinePoint) {\n const n = normalizeScalar(scalar);\n return ExtendedPoint.normalizeZ(this.wNAF(n, affinePoint))[0];\n }\n toAffine(invZ = invert(this.z)) {\n const x = mod(this.x * invZ);\n const y = mod(this.y * invZ);\n return new Point(x, y);\n }\n}\nExtendedPoint.BASE = new ExtendedPoint(CURVE.Gx, CURVE.Gy, _1n, mod(CURVE.Gx * CURVE.Gy));\nExtendedPoint.ZERO = new ExtendedPoint(_0n, _1n, _1n, _0n);\nconst pointPrecomputes = new WeakMap();\nclass Point {\n constructor(x, y) {\n this.x = x;\n this.y = y;\n }\n _setWindowSize(windowSize) {\n this._WINDOW_SIZE = windowSize;\n pointPrecomputes.delete(this);\n }\n static fromHex(hash) {\n const { d, P } = CURVE;\n const bytes = hash instanceof Uint8Array ? hash : hexToBytes(hash);\n if (bytes.length !== 32)\n throw new Error('Point.fromHex: expected 32 bytes');\n const last = bytes[31];\n const normedLast = last & ~0x80;\n const isLastByteOdd = (last & 0x80) !== 0;\n const normed = Uint8Array.from(Array.from(bytes.slice(0, 31)).concat(normedLast));\n const y = bytesToNumberLE(normed);\n if (y >= P)\n throw new Error('Point.fromHex expects hex <= Fp');\n const y2 = mod(y * y);\n const u = mod(y2 - _1n);\n const v = mod(d * y2 + _1n);\n let { isValid, value: x } = uvRatio(u, v);\n if (!isValid)\n throw new Error('Point.fromHex: invalid y coordinate');\n const isXOdd = (x & _1n) === _1n;\n if (isLastByteOdd !== isXOdd) {\n x = mod(-x);\n }\n return new Point(x, y);\n }\n static async fromPrivateKey(privateKey) {\n const privBytes = await getPrivateBytes(privateKey);\n return Point.BASE.multiply(encodePrivate(privBytes));\n }\n toRawBytes() {\n const hex = numberToHex(this.y);\n const u8 = new Uint8Array(B32);\n for (let i = hex.length - 2, j = 0; j < B32 && i >= 0; i -= 2, j++) {\n u8[j] = parseHexByte(hex[i] + hex[i + 1]);\n }\n const mask = this.x & _1n ? 0x80 : 0;\n u8[B32 - 1] |= mask;\n return u8;\n }\n toHex() {\n return bytesToHex(this.toRawBytes());\n }\n toX25519() {\n return mod((_1n + this.y) * invert(_1n - this.y));\n }\n equals(other) {\n return this.x === other.x && this.y === other.y;\n }\n negate() {\n return new Point(mod(-this.x), this.y);\n }\n add(other) {\n return ExtendedPoint.fromAffine(this).add(ExtendedPoint.fromAffine(other)).toAffine();\n }\n subtract(other) {\n return this.add(other.negate());\n }\n multiply(scalar) {\n return ExtendedPoint.fromAffine(this).multiply(scalar, this).toAffine();\n }\n}\nPoint.BASE = new Point(CURVE.Gx, CURVE.Gy);\nPoint.ZERO = new Point(_0n, _1n);\nclass Signature {\n constructor(r, s) {\n this.r = r;\n this.s = s;\n }\n static fromHex(hex) {\n hex = ensureBytes(hex);\n const r = Point.fromHex(hex.slice(0, 32));\n const s = bytesToNumberLE(hex.slice(32));\n if (!isWithinCurveOrder(s))\n throw new Error('Signature.fromHex expects s <= CURVE.n');\n return new Signature(r, s);\n }\n toRawBytes() {\n const numberBytes = hexToBytes(numberToHex(this.s)).reverse();\n const sBytes = new Uint8Array(B32);\n sBytes.set(numberBytes);\n const res = new Uint8Array(B32 * 2);\n res.set(this.r.toRawBytes());\n res.set(sBytes, 32);\n return res;\n }\n toHex() {\n return bytesToHex(this.toRawBytes());\n }\n}\nfunction concatBytes(...arrays) {\n if (arrays.length === 1)\n return arrays[0];\n const length = arrays.reduce((a, arr) => a + arr.length, 0);\n const result = new Uint8Array(length);\n for (let i = 0, pad = 0; i < arrays.length; i++) {\n const arr = arrays[i];\n result.set(arr, pad);\n pad += arr.length;\n }\n return result;\n}\nfunction bytesToHex(uint8a) {\n let hex = '';\n for (let i = 0; i < uint8a.length; i++) {\n hex += uint8a[i].toString(16).padStart(2, '0');\n }\n return hex;\n}\nfunction parseHexByte(hexByte) {\n const byte = Number.parseInt(hexByte, 16);\n if (Number.isNaN(byte))\n throw new Error('Invalid byte sequence');\n return byte;\n}\nfunction hexToBytes(hex) {\n if (typeof hex !== 'string') {\n throw new TypeError('hexToBytes: expected string, got ' + typeof hex);\n }\n if (hex.length % 2)\n throw new Error('hexToBytes: received invalid unpadded hex');\n const array = new Uint8Array(hex.length / 2);\n for (let i = 0; i < array.length; i++) {\n const j = i * 2;\n array[i] = parseHexByte(hex.slice(j, j + 2));\n }\n return array;\n}\nfunction numberToHex(num) {\n const hex = num.toString(16);\n return hex.length & 1 ? `0${hex}` : hex;\n}\nfunction numberToBytesPadded(num, length = B32) {\n const hex = numberToHex(num).padStart(length * 2, '0');\n return hexToBytes(hex).reverse();\n}\nfunction edIsNegative(num) {\n return (mod(num) & _1n) === _1n;\n}\nfunction bytesToNumberLE(uint8a) {\n let value = _0n;\n for (let i = 0; i < uint8a.length; i++) {\n value += BigInt(uint8a[i]) << (_8n * BigInt(i));\n }\n return value;\n}\nfunction bytes255ToNumberLE(bytes) {\n return mod(bytesToNumberLE(bytes) & (_2n ** _255n - _1n));\n}\nfunction mod(a, b = CURVE.P) {\n const res = a % b;\n return res >= _0n ? res : b + res;\n}\nfunction invert(number, modulo = CURVE.P) {\n if (number === _0n || modulo <= _0n) {\n throw new Error(`invert: expected positive integers, got n=${number} mod=${modulo}`);\n }\n let a = mod(number, modulo);\n let b = modulo;\n let x = _0n, y = _1n, u = _1n, v = _0n;\n while (a !== _0n) {\n const q = b / a;\n const r = b % a;\n const m = x - u * q;\n const n = y - v * q;\n b = a, a = r, x = u, y = v, u = m, v = n;\n }\n const gcd = b;\n if (gcd !== _1n)\n throw new Error('invert: does not exist');\n return mod(x, modulo);\n}\nfunction invertBatch(nums, modulo = CURVE.P) {\n const len = nums.length;\n const scratch = new Array(len);\n let acc = _1n;\n for (let i = 0; i < len; i++) {\n if (nums[i] === _0n)\n continue;\n scratch[i] = acc;\n acc = mod(acc * nums[i], modulo);\n }\n acc = invert(acc, modulo);\n for (let i = len - 1; i >= 0; i--) {\n if (nums[i] === _0n)\n continue;\n let tmp = mod(acc * nums[i], modulo);\n nums[i] = mod(acc * scratch[i], modulo);\n acc = tmp;\n }\n return nums;\n}\nfunction pow2(x, power) {\n const { P } = CURVE;\n let res = x;\n while (power-- > _0n) {\n res *= res;\n res %= P;\n }\n return res;\n}\nfunction pow_2_252_3(x) {\n const { P } = CURVE;\n const [_5n, _10n, _20n, _40n, _80n] = [5, 10, 20, 40, 80].map((n) => BigInt(n));\n const x2 = (x * x) % P;\n const b2 = (x2 * x) % P;\n const b4 = (pow2(b2, _2n) * b2) % P;\n const b5 = (pow2(b4, _1n) * x) % P;\n const b10 = (pow2(b5, _5n) * b5) % P;\n const b20 = (pow2(b10, _10n) * b10) % P;\n const b40 = (pow2(b20, _20n) * b20) % P;\n const b80 = (pow2(b40, _40n) * b40) % P;\n const b160 = (pow2(b80, _80n) * b80) % P;\n const b240 = (pow2(b160, _80n) * b80) % P;\n const b250 = (pow2(b240, _10n) * b10) % P;\n const pow_p_5_8 = (pow2(b250, _2n) * x) % P;\n return pow_p_5_8;\n}\nfunction uvRatio(u, v) {\n const v3 = mod(v * v * v);\n const v7 = mod(v3 * v3 * v);\n let x = mod(u * v3 * pow_2_252_3(u * v7));\n const vx2 = mod(v * x * x);\n const root1 = x;\n const root2 = mod(x * SQRT_M1);\n const useRoot1 = vx2 === u;\n const useRoot2 = vx2 === mod(-u);\n const noRoot = vx2 === mod(-u * SQRT_M1);\n if (useRoot1)\n x = root1;\n if (useRoot2 || noRoot)\n x = root2;\n if (edIsNegative(x))\n x = mod(-x);\n return { isValid: useRoot1 || useRoot2, value: x };\n}\nfunction invertSqrt(number) {\n return uvRatio(_1n, number);\n}\nasync function sha512ToNumberLE(...args) {\n const messageArray = concatBytes(...args);\n const hash = await utils.sha512(messageArray);\n const value = bytesToNumberLE(hash);\n return mod(value, CURVE.n);\n}\nfunction keyPrefix(privateBytes) {\n return privateBytes.slice(B32);\n}\nfunction encodePrivate(privateBytes) {\n const last = B32 - 1;\n const head = privateBytes.slice(0, B32);\n head[0] &= 248;\n head[last] &= 127;\n head[last] |= 64;\n return mod(bytesToNumberLE(head), CURVE.n);\n}\nfunction equalBytes(b1, b2) {\n if (b1.length !== b2.length) {\n return false;\n }\n for (let i = 0; i < b1.length; i++) {\n if (b1[i] !== b2[i]) {\n return false;\n }\n }\n return true;\n}\nfunction ensureBytes(hash) {\n return hash instanceof Uint8Array ? hash : hexToBytes(hash);\n}\nfunction isWithinCurveOrder(num) {\n return 0 < num && num < CURVE.n;\n}\nconst MAX_PRIV_KEY = _2n ** BigInt(256) - _1n;\nfunction normalizePrivateKey(key) {\n let bytes;\n let err = 'Expected 32 bytes of private key';\n if (typeof key === 'bigint' || (typeof key === 'number' && Number.isSafeInteger(key))) {\n let num = BigInt(key);\n if (num < 0 || num > MAX_PRIV_KEY)\n throw new Error(err);\n bytes = hexToBytes(num.toString(16).padStart(B32 * 2, '0'));\n }\n else if (typeof key === 'string') {\n if (key.length !== 64)\n throw new Error(err);\n bytes = hexToBytes(key);\n }\n else if (key instanceof Uint8Array) {\n if (key.length !== 32)\n throw new Error(err);\n bytes = key;\n }\n else {\n throw new TypeError('Expected valid private key');\n }\n return bytes;\n}\nasync function getPrivateBytes(privateKey) {\n return await utils.sha512(normalizePrivateKey(privateKey));\n}\nfunction normalizeScalar(num) {\n if (typeof num === 'number' && num > 0 && Number.isSafeInteger(num))\n return BigInt(num);\n if (typeof num === 'bigint' && isWithinCurveOrder(num))\n return num;\n throw new TypeError('Expected valid private scalar: 0 < scalar < curve.n');\n}\nasync function getPublicKey(privateKey) {\n const key = await Point.fromPrivateKey(privateKey);\n return typeof privateKey === 'string' ? key.toHex() : key.toRawBytes();\n}\nasync function sign(msgHash, privateKey) {\n const privBytes = await getPrivateBytes(privateKey);\n const p = encodePrivate(privBytes);\n const P = Point.BASE.multiply(p);\n const msg = ensureBytes(msgHash);\n const r = await sha512ToNumberLE(keyPrefix(privBytes), msg);\n const R = Point.BASE.multiply(r);\n const h = await sha512ToNumberLE(R.toRawBytes(), P.toRawBytes(), msg);\n const S = mod(r + h * p, CURVE.n);\n const sig = new Signature(R, S);\n return typeof msgHash === 'string' ? sig.toHex() : sig.toRawBytes();\n}\nPoint.BASE._setWindowSize(8);\nconst crypto = {\n node: nodeCrypto,\n web: typeof self === 'object' && 'crypto' in self ? self.crypto : undefined,\n};\nconst utils = {\n TORSION_SUBGROUP: [\n '0100000000000000000000000000000000000000000000000000000000000000',\n 'c7176a703d4dd84fba3c0b760d10670f2a2053fa2c39ccc64ec7fd7792ac037a',\n '0000000000000000000000000000000000000000000000000000000000000080',\n '26e8958fc2b227b045c3f489f2ef98f0d5dfac05d3c63339b13802886d53fc05',\n 'ecffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f',\n '26e8958fc2b227b045c3f489f2ef98f0d5dfac05d3c63339b13802886d53fc85',\n '0000000000000000000000000000000000000000000000000000000000000000',\n 'c7176a703d4dd84fba3c0b760d10670f2a2053fa2c39ccc64ec7fd7792ac03fa',\n ],\n randomBytes: (bytesLength = 32) => {\n if (crypto.web) {\n return crypto.web.getRandomValues(new Uint8Array(bytesLength));\n }\n else if (crypto.node) {\n const { randomBytes } = crypto.node;\n return new Uint8Array(randomBytes(bytesLength).buffer);\n }\n else {\n throw new Error(\"The environment doesn't have randomBytes function\");\n }\n },\n randomPrivateKey: () => {\n return utils.randomBytes(32);\n },\n sha512: async (message) => {\n if (crypto.web) {\n const buffer = await crypto.web.subtle.digest('SHA-512', message.buffer);\n return new Uint8Array(buffer);\n }\n else if (crypto.node) {\n return Uint8Array.from(crypto.node.createHash('sha512').update(message).digest());\n }\n else {\n throw new Error(\"The environment doesn't have sha512 function\");\n }\n },\n precompute(windowSize = 8, point = Point.BASE) {\n const cached = point.equals(Point.BASE) ? point : new Point(point.x, point.y);\n cached._setWindowSize(windowSize);\n cached.multiply(_1n);\n return cached;\n },\n};\n\nexport { getPublicKey, sign, utils };\n", "var fastJsonStableStringify = function (data, opts) {\n if (!opts) opts = {};\n if (typeof opts === 'function') opts = { cmp: opts };\n var cycles = (typeof opts.cycles === 'boolean') ? opts.cycles : false;\n\n var cmp = opts.cmp && (function (f) {\n return function (node) {\n return function (a, b) {\n var aobj = { key: a, value: node[a] };\n var bobj = { key: b, value: node[b] };\n return f(aobj, bobj);\n };\n };\n })(opts.cmp);\n\n var seen = [];\n return (function stringify (node) {\n if (node && node.toJSON && typeof node.toJSON === 'function') {\n node = node.toJSON();\n }\n\n if (node === undefined) return;\n if (typeof node == 'number') return isFinite(node) ? '' + node : 'null';\n if (typeof node !== 'object') return JSON.stringify(node);\n\n var i, out;\n if (Array.isArray(node)) {\n out = '[';\n for (i = 0; i < node.length; i++) {\n if (i) out += ',';\n out += stringify(node[i]) || 'null';\n }\n return out + ']';\n }\n\n if (node === null) return 'null';\n\n if (seen.indexOf(node) !== -1) {\n if (cycles) return JSON.stringify('__cycle__');\n throw new TypeError('Converting circular structure to JSON');\n }\n\n var seenIndex = seen.push(node) - 1;\n var keys = Object.keys(node).sort(cmp && cmp(node));\n out = '';\n for (i = 0; i < keys.length; i++) {\n var key = keys[i];\n var value = stringify(node[key]);\n\n if (!value) continue;\n if (out) out += ',';\n out += JSON.stringify(key) + ':' + value;\n }\n seen.splice(seenIndex, 1);\n return '{' + out + '}';\n })(data);\n};\n\nexport default fastJsonStableStringify;\n", "/*\n * base64-arraybuffer 1.0.2 \n * Copyright (c) 2022 Niklas von Hertzen \n * Released under MIT License\n */\nvar chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n// Use a lookup table to find the index.\nvar lookup = typeof Uint8Array === 'undefined' ? [] : new Uint8Array(256);\nfor (var i = 0; i < chars.length; i++) {\n lookup[chars.charCodeAt(i)] = i;\n}\nvar encode = function (arraybuffer) {\n var bytes = new Uint8Array(arraybuffer), i, len = bytes.length, base64 = '';\n for (i = 0; i < len; i += 3) {\n base64 += chars[bytes[i] >> 2];\n base64 += chars[((bytes[i] & 3) << 4) | (bytes[i + 1] >> 4)];\n base64 += chars[((bytes[i + 1] & 15) << 2) | (bytes[i + 2] >> 6)];\n base64 += chars[bytes[i + 2] & 63];\n }\n if (len % 3 === 2) {\n base64 = base64.substring(0, base64.length - 1) + '=';\n }\n else if (len % 3 === 1) {\n base64 = base64.substring(0, base64.length - 2) + '==';\n }\n return base64;\n};\nvar decode = function (base64) {\n var bufferLength = base64.length * 0.75, len = base64.length, i, p = 0, encoded1, encoded2, encoded3, encoded4;\n if (base64[base64.length - 1] === '=') {\n bufferLength--;\n if (base64[base64.length - 2] === '=') {\n bufferLength--;\n }\n }\n var arraybuffer = new ArrayBuffer(bufferLength), bytes = new Uint8Array(arraybuffer);\n for (i = 0; i < len; i += 4) {\n encoded1 = lookup[base64.charCodeAt(i)];\n encoded2 = lookup[base64.charCodeAt(i + 1)];\n encoded3 = lookup[base64.charCodeAt(i + 2)];\n encoded4 = lookup[base64.charCodeAt(i + 3)];\n bytes[p++] = (encoded1 << 2) | (encoded2 >> 4);\n bytes[p++] = ((encoded2 & 15) << 4) | (encoded3 >> 2);\n bytes[p++] = ((encoded3 & 3) << 6) | (encoded4 & 63);\n }\n return arraybuffer;\n};\n\nexport { decode, encode };\n", "export const classes = {\n getAll: \"https://atomicdata.dev/classes/?page_size=999\",\n agent: \"https://atomicdata.dev/classes/Agent\",\n collection: \"https://atomicdata.dev/classes/Collection\",\n commit: \"https://atomicdata.dev/classes/Commit\",\n class: \"https://atomicdata.dev/classes/Class\",\n document: \"https://atomicdata.dev/classes/Document\",\n elements: {\n paragraph: \"https://atomicdata.dev/classes/elements/Paragraph\"\n },\n property: \"https://atomicdata.dev/classes/Property\",\n datatype: \"https://atomicdata.dev/classes/Datatype\",\n endpoint: \"https://atomicdata.dev/classes/Endpoint\",\n drive: \"https://atomicdata.dev/classes/Drive\",\n redirect: \"https://atomicdata.dev/classes/Redirect\",\n invite: \"https://atomicdata.dev/classes/Invite\",\n file: \"https://atomicdata.dev/classes/File\"\n};\nexport const properties = {\n getAll: \"https://atomicdata.dev/properties/?page_size=999\",\n shortname: \"https://atomicdata.dev/properties/shortname\",\n description: \"https://atomicdata.dev/properties/description\",\n recommends: \"https://atomicdata.dev/properties/recommends\",\n requires: \"https://atomicdata.dev/properties/requires\",\n name: \"https://atomicdata.dev/properties/name\",\n classType: \"https://atomicdata.dev/properties/classtype\",\n createdBy: \"https://atomicdata.dev/properties/createdBy\",\n incomplete: \"https://atomicdata.dev/properties/incomplete\",\n agent: {\n publicKey: \"https://atomicdata.dev/properties/publicKey\"\n },\n collection: {\n members: \"https://atomicdata.dev/properties/collection/members\",\n currentPage: \"https://atomicdata.dev/properties/collection/currentPage\",\n pageSize: \"https://atomicdata.dev/properties/collection/pageSize\",\n property: \"https://atomicdata.dev/properties/collection/property\",\n totalMembers: \"https://atomicdata.dev/properties/collection/totalMembers\",\n totalPages: \"https://atomicdata.dev/properties/collection/totalPages\",\n value: \"https://atomicdata.dev/properties/collection/value\"\n },\n commit: {\n subject: \"https://atomicdata.dev/properties/subject\",\n createdAt: \"https://atomicdata.dev/properties/createdAt\",\n lastCommit: \"https://atomicdata.dev/properties/lastCommit\",\n previousCommit: \"https://atomicdata.dev/properties/previousCommit\",\n signer: \"https://atomicdata.dev/properties/signer\",\n set: \"https://atomicdata.dev/properties/set\",\n remove: \"https://atomicdata.dev/properties/remove\",\n destroy: \"https://atomicdata.dev/properties/destroy\",\n signature: \"https://atomicdata.dev/properties/signature\"\n },\n document: {\n elements: \"https://atomicdata.dev/properties/documents/elements\"\n },\n endpoint: {\n parameters: \"https://atomicdata.dev/properties/endpoint/parameters\",\n results: \"https://atomicdata.dev/properties/endpoint/results\"\n },\n search: {\n query: \"https://atomicdata.dev/properties/search/query\",\n limit: \"https://atomicdata.dev/properties/search/limit\",\n property: \"https://atomicdata.dev/properties/search/property\"\n },\n redirect: {\n destination: \"https://atomicdata.dev/properties/destination\",\n redirectAgent: \"https://atomicdata.dev/properties/invite/redirectAgent\"\n },\n invite: {\n agent: \"https://atomicdata.dev/properties/invite/agent\",\n publicKey: \"https://atomicdata.dev/properties/invite/publicKey\",\n target: \"https://atomicdata.dev/properties/invite/target\",\n usagesLeft: \"https://atomicdata.dev/properties/invite/usagesLeft\",\n users: \"https://atomicdata.dev/properties/invite/users\",\n write: \"https://atomicdata.dev/properties/invite/write\"\n },\n file: {\n filename: \"https://atomicdata.dev/properties/filename\",\n filesize: \"https://atomicdata.dev/properties/filesize\",\n downloadUrl: \"https://atomicdata.dev/properties/downloadURL\",\n mimetype: \"https://atomicdata.dev/properties/mimetype\",\n attachments: \"https://atomicdata.dev/properties/attachments\"\n },\n datatype: \"https://atomicdata.dev/properties/datatype\",\n isA: \"https://atomicdata.dev/properties/isA\",\n isDynamic: \"https://atomicdata.dev/properties/isDynamic\",\n parent: \"https://atomicdata.dev/properties/parent\",\n read: \"https://atomicdata.dev/properties/read\",\n write: \"https://atomicdata.dev/properties/write\",\n children: \"https://atomicdata.dev/properties/children\",\n paymentPointer: \"https://atomicdata.dev/properties/paymentPointer\"\n};\nexport const datatypes = {\n atomicUrl: \"https://atomicdata.dev/datatypes/atomicURL\",\n boolean: \"https://atomicdata.dev/datatypes/boolean\",\n date: \"https://atomicdata.dev/datatypes/date\",\n float: \"https://atomicdata.dev/datatypes/float\",\n integer: \"https://atomicdata.dev/datatypes/integer\",\n markdown: \"https://atomicdata.dev/datatypes/markdown\",\n resourceArray: \"https://atomicdata.dev/datatypes/resourceArray\",\n slug: \"https://atomicdata.dev/datatypes/slug\",\n string: \"https://atomicdata.dev/datatypes/string\",\n timestamp: \"https://atomicdata.dev/datatypes/timestamp\"\n};\nexport const instances = {\n publicAgent: \"https://atomicdata.dev/agents/publicAgent\"\n};\nexport const urls = {\n properties,\n classes,\n datatypes,\n instances\n};\n", "import {sign, getPublicKey, utils} from \"../../../pkg/@noble/ed25519.js\";\nimport stringify from \"../../../pkg/fast-json-stable-stringify.js\";\nimport {decode as decodeB64, encode as encodeB64} from \"../../../pkg/base64-arraybuffer.js\";\nimport {properties, urls} from \"./urls.js\";\nimport {removeQueryParamsFromURL, Resource} from \"./index.js\";\nimport {sha512} from \"../../../pkg/@noble/hashes/sha512.js\";\nutils.sha512 = (msg) => Promise.resolve(sha512(msg));\nexport function getTimestampNow() {\n return Math.round(new Date().getTime());\n}\nexport class CommitBuilder {\n constructor(subject) {\n this.subject = removeQueryParamsFromURL(subject);\n this.set = {};\n this.remove = [];\n }\n async sign(privateKey, agentSubject) {\n const commit = await signAt(this.clone(), agentSubject, privateKey, getTimestampNow());\n return commit;\n }\n hasUnsavedChanges() {\n return Object.keys(this.set).length > 0 || this.destroy || this.remove.length > 0;\n }\n clone() {\n const cm = new CommitBuilder(this.subject);\n cm.set = this.set;\n cm.destroy = this.destroy;\n cm.remove = this.remove;\n cm.previousCommit = this.previousCommit;\n return cm;\n }\n setPreviousCommit(prev) {\n this.previousCommit = prev;\n }\n}\nfunction replaceKey(o, oldKey, newKey) {\n if (oldKey in o && oldKey !== newKey) {\n Object.defineProperty(o, newKey, Object.getOwnPropertyDescriptor(o, oldKey));\n delete o[oldKey];\n }\n}\nexport function serializeDeterministically(commit) {\n if (commit.remove?.length == 0) {\n delete commit.remove;\n }\n if (commit.set?.length == 0) {\n delete commit.remove;\n }\n if (commit.destroy == false) {\n delete commit.destroy;\n }\n replaceKey(commit, \"createdAt\", urls.properties.commit.createdAt);\n replaceKey(commit, \"subject\", urls.properties.commit.subject);\n replaceKey(commit, \"set\", urls.properties.commit.set);\n replaceKey(commit, \"signer\", urls.properties.commit.signer);\n replaceKey(commit, \"signature\", urls.properties.commit.signature);\n replaceKey(commit, \"remove\", urls.properties.commit.remove);\n replaceKey(commit, \"destroy\", urls.properties.commit.destroy);\n replaceKey(commit, \"previousCommit\", urls.properties.commit.previousCommit);\n commit[urls.properties.isA] = [urls.classes.commit];\n return stringify(commit);\n}\nexport const signAt = async (commitBuilder, agent, privateKey, createdAt) => {\n if (agent == void 0) {\n throw new Error(\"No agent passed to sign commit\");\n }\n const commitPreSigned = {\n ...commitBuilder,\n createdAt,\n signer: agent\n };\n const serializedCommit = serializeDeterministically({...commitPreSigned});\n const signature = await signToBase64(serializedCommit, privateKey);\n const commitPostSigned = {\n ...commitPreSigned,\n signature\n };\n return commitPostSigned;\n};\nexport const signToBase64 = async (message, privateKeyBase64) => {\n const privateKeyArrayBuffer = decodeB64(privateKeyBase64);\n const privateKeyBytes = new Uint8Array(privateKeyArrayBuffer);\n const utf8Encode = new TextEncoder();\n const messageBytes = utf8Encode.encode(message);\n const signatureHex = await sign(messageBytes, privateKeyBytes);\n const signatureBase64 = encodeB64(signatureHex);\n return signatureBase64;\n};\nexport const generatePublicKeyFromPrivate = async (privateKey) => {\n const privateKeyArrayBuffer = decodeB64(privateKey);\n const privateKeyBytes = new Uint8Array(privateKeyArrayBuffer);\n const publickey = await getPublicKey(privateKeyBytes);\n const publicBase64 = encodeB64(publickey);\n return publicBase64;\n};\nexport async function generateKeyPair() {\n const privateBytes = utils.randomPrivateKey();\n const publicBytes = await getPublicKey(privateBytes);\n const privateKey = encodeB64(privateBytes);\n const publicKey = encodeB64(publicBytes);\n return {\n publicKey,\n privateKey\n };\n}\nexport function parseCommit(str) {\n try {\n const jsonAdObj = JSON.parse(str);\n const subject = jsonAdObj[urls.properties.commit.subject];\n const set = jsonAdObj[urls.properties.commit.set];\n const signer = jsonAdObj[urls.properties.commit.signer];\n const createdAt = jsonAdObj[urls.properties.commit.createdAt];\n const remove = jsonAdObj[urls.properties.commit.remove];\n const destroy = jsonAdObj[urls.properties.commit.destroy];\n const signature = jsonAdObj[urls.properties.commit.signature];\n const id = jsonAdObj[\"@id\"];\n const previousCommit = jsonAdObj[urls.properties.commit.previousCommit];\n return {\n subject,\n set,\n signer,\n createdAt,\n remove,\n destroy,\n signature,\n id,\n previousCommit\n };\n } catch (e) {\n throw new Error(`Could not parse commit: ${e}`);\n }\n}\nexport function parseAndApplyCommit(jsonAdObjStr, store) {\n const parsed = parseCommit(jsonAdObjStr);\n const {subject, set, remove, previousCommit, id, destroy, signature} = parsed;\n let resource = store.resources.get(subject);\n if (resource == void 0) {\n resource = new Resource(subject);\n } else {\n }\n set && Object.keys(set).forEach((propUrl) => {\n resource.setUnsafe(propUrl, set[propUrl]);\n });\n remove && remove.forEach((propUrl) => {\n resource.removePropValLocally(propUrl);\n });\n if (previousCommit && id) {\n resource.setUnsafe(properties.commit.lastCommit, id);\n }\n if (destroy) {\n store.removeResource(subject);\n return;\n } else {\n resource.appliedCommitSignatures.add(signature);\n store.addResource(resource);\n }\n}\n", "import {urls} from \"./urls.js\";\nimport {tryValidURL} from \"./client.js\";\nexport var Datatype;\n(function(Datatype2) {\n Datatype2[\"ATOMIC_URL\"] = \"https://atomicdata.dev/datatypes/atomicURL\";\n Datatype2[\"BOOLEAN\"] = \"https://atomicdata.dev/datatypes/boolean\";\n Datatype2[\"DATE\"] = \"https://atomicdata.dev/datatypes/date\";\n Datatype2[\"FLOAT\"] = \"https://atomicdata.dev/datatypes/float\";\n Datatype2[\"INTEGER\"] = \"https://atomicdata.dev/datatypes/integer\";\n Datatype2[\"MARKDOWN\"] = \"https://atomicdata.dev/datatypes/markdown\";\n Datatype2[\"RESOURCEARRAY\"] = \"https://atomicdata.dev/datatypes/resourceArray\";\n Datatype2[\"SLUG\"] = \"https://atomicdata.dev/datatypes/slug\";\n Datatype2[\"STRING\"] = \"https://atomicdata.dev/datatypes/string\";\n Datatype2[\"TIMESTAMP\"] = \"https://atomicdata.dev/datatypes/timestamp\";\n Datatype2[\"UNKNOWN\"] = \"unknown-datatype\";\n})(Datatype || (Datatype = {}));\nexport const datatypeFromUrl = (url) => {\n switch (url) {\n case urls.datatypes.atomicUrl: {\n return Datatype.ATOMIC_URL;\n }\n case urls.datatypes.boolean: {\n return Datatype.BOOLEAN;\n }\n case urls.datatypes.date: {\n return Datatype.DATE;\n }\n case urls.datatypes.float: {\n return Datatype.FLOAT;\n }\n case urls.datatypes.integer: {\n return Datatype.INTEGER;\n }\n case urls.datatypes.markdown: {\n return Datatype.MARKDOWN;\n }\n case urls.datatypes.resourceArray: {\n return Datatype.RESOURCEARRAY;\n }\n case urls.datatypes.slug: {\n return Datatype.SLUG;\n }\n case urls.datatypes.string: {\n return Datatype.STRING;\n }\n case urls.datatypes.timestamp: {\n return Datatype.TIMESTAMP;\n }\n default: {\n return Datatype.UNKNOWN;\n }\n }\n};\nconst slug_regex = /^[a-z0-9]+(?:-[a-z0-9]+)*$/;\nconst dateStringRegex = /^d{4}-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])$/;\nexport const validate = (value, datatype) => {\n let err = null;\n switch (datatype) {\n case Datatype.STRING: {\n if (!isString(value)) {\n err = \"Not a string\";\n break;\n }\n break;\n }\n case Datatype.SLUG: {\n if (!isString(value)) {\n err = \"Not a slug, not even a string\";\n break;\n }\n if (value.match(slug_regex) == null) {\n err = \"Not a valid slug. Only lowercase letters and numbers with dashes `-` between them\";\n }\n break;\n }\n case Datatype.ATOMIC_URL: {\n if (!isString(value)) {\n err = \"Not a string. Should be a URL\";\n break;\n }\n tryValidURL(value);\n break;\n }\n case Datatype.RESOURCEARRAY: {\n if (!isArray(value)) {\n err = \"Not an array\";\n break;\n }\n value.map((item, index) => {\n try {\n tryValidURL(item);\n } catch (e) {\n const arrError = new Error(`Invalid URL`);\n arrError.index = index;\n throw arrError;\n }\n });\n break;\n }\n case Datatype.INTEGER: {\n if (!isNumber(value)) {\n err = \"Not a number\";\n break;\n }\n if (value % 1 !== 0) {\n err = \"Not an integer\";\n }\n break;\n }\n case Datatype.DATE: {\n if (!isString(value)) {\n err = \"Not a string\";\n break;\n }\n if (value.match(dateStringRegex) == null) {\n err = \"Not a date string: YYYY-MM-DD\";\n }\n break;\n }\n }\n if (err !== null) {\n throw new Error(`${err}`);\n }\n};\nexport function isArray(val) {\n return Object.prototype.toString.call(val) === \"[object Array]\";\n}\nfunction isString(val) {\n return typeof val === \"string\";\n}\nfunction isNumber(val) {\n return typeof val === \"number\";\n}\n", "import {parseJsonADResource} from \"./index.js\";\nimport {Resource} from \"./resource.js\";\nexport function valToArray(val) {\n if (val == void 0) {\n throw new Error(`Not an array: ${val}, is ${typeof val}`);\n }\n if (val.constructor == Array) {\n return val;\n }\n throw new Error(`Not an array: ${val}, is a ${typeof val}`);\n}\nexport function valToBoolean(val) {\n if (typeof val !== \"boolean\") {\n throw new Error(`Not a boolean: ${val}, is a ${typeof val}`);\n }\n return val;\n}\nexport function valToDate(val) {\n if (typeof val == \"number\") {\n const date = new Date(0);\n date.setUTCMilliseconds(val);\n return date;\n }\n if (typeof val == \"string\") {\n return new Date(val.toString());\n }\n throw new Error(`Cannot be converted into Date: ${val}, is a ${typeof val}`);\n}\nexport function valToNumber(val) {\n if (typeof val !== \"number\") {\n throw new Error(`Not a number: ${val}, is a ${typeof val}`);\n }\n return val;\n}\nexport function valToString(val) {\n return val.toString();\n}\nexport function valToResource(val) {\n if (typeof val == \"string\") {\n return val;\n }\n if (val instanceof Date) {\n throw new Error(`Not a resource: ${val}, is a Date`);\n }\n if (val.constructor == Array) {\n throw new Error(`Not a resource: ${val}, is an Array`);\n }\n if (typeof val == \"object\") {\n const resource = new Resource(\"nested-resource\");\n parseJsonADResource(val, resource);\n return resource;\n }\n if (typeof val !== \"object\") {\n throw new Error(`Not a resource: ${val}, is a ${typeof val}`);\n }\n throw new Error(`Not a resource: ${val}, is a ${typeof val}`);\n}\n", "export var ErrorType;\n(function(ErrorType2) {\n ErrorType2[\"Unauthorized\"] = \"Unauthorized\";\n ErrorType2[\"NotFound\"] = \"NotFound\";\n ErrorType2[\"Server\"] = \"Server\";\n ErrorType2[\"Client\"] = \"Client\";\n})(ErrorType || (ErrorType = {}));\nexport function isUnauthorized(error) {\n if (error instanceof AtomicError) {\n if (error.type == ErrorType.Unauthorized) {\n return true;\n }\n }\n return false;\n}\nexport class AtomicError extends Error {\n constructor(message, type = ErrorType.Client) {\n super(message);\n Object.setPrototypeOf(this, AtomicError.prototype);\n this.type = type;\n }\n}\n", "import {properties} from \"./urls.js\";\nimport {tryValidURL, postCommit} from \"./client.js\";\nimport {CommitBuilder} from \"./commit.js\";\nimport {validate as validateDatatype} from \"./datatypes.js\";\nimport {valToArray} from \"./value.js\";\nimport {isUnauthorized} from \"./error.js\";\nexport const unknownSubject = \"unknown-subject\";\nexport class Resource {\n constructor(subject, newResource) {\n if (subject == void 0) {\n throw new Error(\"no subject given to resource\");\n }\n this.new = newResource ? true : false;\n this.loading = false;\n this.subject = subject;\n this.propvals = new Map();\n this.appliedCommitSignatures = new Set();\n this.commitBuilder = new CommitBuilder(subject);\n }\n async canWrite(store, agent, child) {\n const writeArray = this.get(properties.write);\n if (writeArray && valToArray(writeArray).includes(agent)) {\n return [true, null];\n }\n const parentSubject = this.get(properties.parent);\n if (parentSubject == void 0) {\n return [false, `No write right or parent in ${this.getSubject()}`];\n }\n if (child == parentSubject) {\n console.warn(\"Circular parent\", child);\n return [true, `Circular parent in ${this.getSubject()}`];\n }\n const parent = await store.getResourceAsync(parentSubject);\n return await parent.canWrite(store, agent, this.getSubject());\n }\n clone() {\n const res = new Resource(this.subject);\n res.propvals = this.propvals;\n res.destroy = this.destroy;\n res.new = this.new;\n res.error = this.error;\n res.commitError = this.commitError;\n res.commitBuilder = this.commitBuilder.clone();\n res.appliedCommitSignatures = this.appliedCommitSignatures;\n return res;\n }\n isReady() {\n return !this.loading && this.error == void 0;\n }\n get(propUrl) {\n const result = this.propvals.get(propUrl);\n if (result == void 0) {\n return null;\n }\n return result;\n }\n getArray(propUrl) {\n const result = this.propvals.get(propUrl);\n if (result == void 0) {\n return [];\n }\n return valToArray(result);\n }\n getClasses() {\n const classesVal = this.get(properties.isA);\n if (classesVal == void 0) {\n return [];\n }\n try {\n const arr = valToArray(classesVal);\n return arr;\n } catch (e) {\n return [];\n }\n }\n getCommitBuilder() {\n return this.commitBuilder;\n }\n getError() {\n return this.error;\n }\n getSubject() {\n return this.subject;\n }\n getSubjectNoParams() {\n const url = new URL(this.subject);\n return url.origin + url.pathname;\n }\n getPropVals() {\n return this.propvals;\n }\n async getRights(store) {\n const rights = [];\n const write = this.getArray(properties.write);\n write.forEach((subject) => {\n rights.push({\n for: subject,\n type: RightType.WRITE,\n setIn: this.subject\n });\n });\n const read = this.getArray(properties.read);\n read.forEach((subject) => {\n rights.push({\n for: subject,\n type: RightType.READ,\n setIn: this.subject\n });\n });\n const parentSubject = this.get(properties.parent);\n if (parentSubject != void 0) {\n if (parentSubject == this.getSubject()) {\n console.warn(\"Circular parent\", parentSubject);\n return rights;\n }\n const parent = await store.getResourceAsync(parentSubject);\n const parentRights = await parent.getRights(store);\n rights.push(...parentRights);\n }\n console.log(\"rights\", rights);\n return rights;\n }\n isUnauthorized() {\n return this.error != void 0 && isUnauthorized(this.error);\n }\n async destroy(store, agent) {\n const newCommitBuilder = new CommitBuilder(this.getSubject());\n newCommitBuilder.destroy = true;\n if (agent == void 0) {\n agent = store.getAgent();\n }\n if (agent == void 0) {\n throw new Error(\"No agent has been set or passed, you cannot save this.\");\n }\n const commit = await newCommitBuilder.sign(agent.privateKey, agent.subject);\n const endpoint = new URL(this.getSubject()).origin + `/commit`;\n await postCommit(commit, endpoint);\n store.removeResource(this.getSubject());\n }\n removePropVal(propertyUrl) {\n this.propvals.delete(propertyUrl);\n try {\n delete this.commitBuilder.set[propertyUrl];\n } catch (e) {\n console.log(\"Item not present in commitbuilder.set\");\n }\n this.commitBuilder.remove.push(propertyUrl);\n }\n removePropValLocally(propertyUrl) {\n this.propvals.delete(propertyUrl);\n }\n async save(store, agent) {\n if (!agent) {\n agent = store.getAgent();\n }\n if (!agent) {\n throw new Error(\"No agent has been set or passed, you cannot save.\");\n }\n this.commitBuilder.setPreviousCommit(this.get(properties.commit.lastCommit)?.toString());\n const oldCommitBuilder = this.commitBuilder.clone();\n this.commitBuilder = new CommitBuilder(this.getSubject());\n const commit = await oldCommitBuilder.sign(agent.privateKey, agent.subject);\n this.appliedCommitSignatures.add(commit.signature);\n this.loading = false;\n this.new = false;\n store.addResource(this);\n const endpoint = new URL(this.getSubject()).origin + `/commit`;\n try {\n this.commitError = null;\n const createdCommit = await postCommit(commit, endpoint);\n this.commitBuilder.setPreviousCommit(createdCommit.id);\n return this.getSubject();\n } catch (e) {\n this.commitBuilder = oldCommitBuilder;\n this.commitError = e;\n store.addResource(this);\n throw e;\n }\n }\n async set(prop, value, store, validate = true) {\n if (validate) {\n const fullProp = await store.getProperty(prop);\n validateDatatype(value, fullProp.datatype);\n }\n this.propvals.set(prop, value);\n this.commitBuilder.set[prop] = value;\n this.commitBuilder.remove = this.commitBuilder.remove.filter((item) => item == prop);\n }\n setUnsafe(prop, val) {\n this.propvals.set(prop, val);\n }\n setError(e) {\n this.error = e;\n }\n setSubject(subject) {\n tryValidURL(subject);\n this.commitBuilder.subject = subject;\n this.subject = subject;\n }\n}\nvar RightType;\n(function(RightType2) {\n RightType2[\"READ\"] = \"read\";\n RightType2[\"WRITE\"] = \"write\";\n})(RightType || (RightType = {}));\n", "import {isArray} from \"./index.js\";\nimport {Resource, unknownSubject} from \"./resource.js\";\nexport function parseJsonADResource(jsonObject, resource, store) {\n try {\n for (const key in jsonObject) {\n if (key == \"@id\") {\n const subject = jsonObject[\"@id\"];\n if (typeof subject !== \"string\") {\n throw new Error(\"'@id' field must be a string\");\n }\n if (resource.getSubject() !== \"undefined\" && resource.getSubject() !== unknownSubject && subject !== resource.getSubject()) {\n throw new Error(`Resource has wrong subject in @id. Received subject was ${subject}, expected ${resource.getSubject()}.`);\n }\n resource.setSubject(subject);\n continue;\n }\n const value = jsonObject[key];\n try {\n if (isArray(value)) {\n const newarr = value.map((val) => parseJsonAdResourceValue(store, val, resource, key));\n resource.setUnsafe(key, newarr);\n } else if (typeof value === \"string\") {\n resource.setUnsafe(key, value);\n } else if (typeof value === \"number\") {\n resource.setUnsafe(key, value);\n } else if (typeof value === \"boolean\") {\n resource.setUnsafe(key, value);\n } else {\n const subject = parseJsonAdResourceValue(store, value, resource, key);\n resource.setUnsafe(key, subject);\n }\n } catch (e) {\n throw new Error(`Failed creating value ${value} for key ${key} in resource ${resource.getSubject()}. ${e.message}`);\n }\n }\n resource.loading == false;\n store && store.addResource(resource);\n } catch (e) {\n e.message = \"Failed parsing JSON \" + e.message;\n resource.setError(e);\n resource.loading == false;\n store && store.addResource(resource);\n throw e;\n }\n return resource;\n}\nfunction parseJsonAdResourceValue(store, value, resource, key) {\n if (typeof value === \"string\") {\n return value;\n }\n if (value.constructor === {}.constructor) {\n if (Object.keys(value).includes(\"@id\")) {\n const nestedSubject = value[\"@id\"];\n const nestedResource = new Resource(nestedSubject);\n parseJsonADResource(value, nestedResource, store);\n return nestedSubject;\n } else {\n return value;\n }\n }\n throw new Error(`Value ${value} in ${key} not a string or a nested Resource`);\n}\nexport function parseJsonADArray(jsonArray) {\n const resources = [];\n try {\n for (const jsonObject of jsonArray) {\n const resource = new Resource(unknownSubject);\n parseJsonADResource(jsonObject, resource);\n resources.push(resource);\n }\n } catch (e) {\n e.message = \"Failed parsing JSON \" + e.message;\n throw e;\n }\n return resources;\n}\n", "import { g as getDefaultExportFromCjs, c as createCommonjsModule, a as commonjsGlobal } from './common/_commonjsHelpers-8c19dec8.js';\n\nvar browserPonyfill = createCommonjsModule(function (module, exports) {\nvar global = typeof self !== 'undefined' ? self : commonjsGlobal;\nvar __self__ = (function () {\nfunction F() {\nthis.fetch = false;\nthis.DOMException = global.DOMException;\n}\nF.prototype = global;\nreturn new F();\n})();\n(function(self) {\n\nvar irrelevant = (function (exports) {\n\n var support = {\n searchParams: 'URLSearchParams' in self,\n iterable: 'Symbol' in self && 'iterator' in Symbol,\n blob:\n 'FileReader' in self &&\n 'Blob' in self &&\n (function() {\n try {\n new Blob();\n return true\n } catch (e) {\n return false\n }\n })(),\n formData: 'FormData' in self,\n arrayBuffer: 'ArrayBuffer' in self\n };\n\n function isDataView(obj) {\n return obj && DataView.prototype.isPrototypeOf(obj)\n }\n\n if (support.arrayBuffer) {\n var viewClasses = [\n '[object Int8Array]',\n '[object Uint8Array]',\n '[object Uint8ClampedArray]',\n '[object Int16Array]',\n '[object Uint16Array]',\n '[object Int32Array]',\n '[object Uint32Array]',\n '[object Float32Array]',\n '[object Float64Array]'\n ];\n\n var isArrayBufferView =\n ArrayBuffer.isView ||\n function(obj) {\n return obj && viewClasses.indexOf(Object.prototype.toString.call(obj)) > -1\n };\n }\n\n function normalizeName(name) {\n if (typeof name !== 'string') {\n name = String(name);\n }\n if (/[^a-z0-9\\-#$%&'*+.^_`|~]/i.test(name)) {\n throw new TypeError('Invalid character in header field name')\n }\n return name.toLowerCase()\n }\n\n function normalizeValue(value) {\n if (typeof value !== 'string') {\n value = String(value);\n }\n return value\n }\n\n // Build a destructive iterator for the value list\n function iteratorFor(items) {\n var iterator = {\n next: function() {\n var value = items.shift();\n return {done: value === undefined, value: value}\n }\n };\n\n if (support.iterable) {\n iterator[Symbol.iterator] = function() {\n return iterator\n };\n }\n\n return iterator\n }\n\n function Headers(headers) {\n this.map = {};\n\n if (headers instanceof Headers) {\n headers.forEach(function(value, name) {\n this.append(name, value);\n }, this);\n } else if (Array.isArray(headers)) {\n headers.forEach(function(header) {\n this.append(header[0], header[1]);\n }, this);\n } else if (headers) {\n Object.getOwnPropertyNames(headers).forEach(function(name) {\n this.append(name, headers[name]);\n }, this);\n }\n }\n\n Headers.prototype.append = function(name, value) {\n name = normalizeName(name);\n value = normalizeValue(value);\n var oldValue = this.map[name];\n this.map[name] = oldValue ? oldValue + ', ' + value : value;\n };\n\n Headers.prototype['delete'] = function(name) {\n delete this.map[normalizeName(name)];\n };\n\n Headers.prototype.get = function(name) {\n name = normalizeName(name);\n return this.has(name) ? this.map[name] : null\n };\n\n Headers.prototype.has = function(name) {\n return this.map.hasOwnProperty(normalizeName(name))\n };\n\n Headers.prototype.set = function(name, value) {\n this.map[normalizeName(name)] = normalizeValue(value);\n };\n\n Headers.prototype.forEach = function(callback, thisArg) {\n for (var name in this.map) {\n if (this.map.hasOwnProperty(name)) {\n callback.call(thisArg, this.map[name], name, this);\n }\n }\n };\n\n Headers.prototype.keys = function() {\n var items = [];\n this.forEach(function(value, name) {\n items.push(name);\n });\n return iteratorFor(items)\n };\n\n Headers.prototype.values = function() {\n var items = [];\n this.forEach(function(value) {\n items.push(value);\n });\n return iteratorFor(items)\n };\n\n Headers.prototype.entries = function() {\n var items = [];\n this.forEach(function(value, name) {\n items.push([name, value]);\n });\n return iteratorFor(items)\n };\n\n if (support.iterable) {\n Headers.prototype[Symbol.iterator] = Headers.prototype.entries;\n }\n\n function consumed(body) {\n if (body.bodyUsed) {\n return Promise.reject(new TypeError('Already read'))\n }\n body.bodyUsed = true;\n }\n\n function fileReaderReady(reader) {\n return new Promise(function(resolve, reject) {\n reader.onload = function() {\n resolve(reader.result);\n };\n reader.onerror = function() {\n reject(reader.error);\n };\n })\n }\n\n function readBlobAsArrayBuffer(blob) {\n var reader = new FileReader();\n var promise = fileReaderReady(reader);\n reader.readAsArrayBuffer(blob);\n return promise\n }\n\n function readBlobAsText(blob) {\n var reader = new FileReader();\n var promise = fileReaderReady(reader);\n reader.readAsText(blob);\n return promise\n }\n\n function readArrayBufferAsText(buf) {\n var view = new Uint8Array(buf);\n var chars = new Array(view.length);\n\n for (var i = 0; i < view.length; i++) {\n chars[i] = String.fromCharCode(view[i]);\n }\n return chars.join('')\n }\n\n function bufferClone(buf) {\n if (buf.slice) {\n return buf.slice(0)\n } else {\n var view = new Uint8Array(buf.byteLength);\n view.set(new Uint8Array(buf));\n return view.buffer\n }\n }\n\n function Body() {\n this.bodyUsed = false;\n\n this._initBody = function(body) {\n this._bodyInit = body;\n if (!body) {\n this._bodyText = '';\n } else if (typeof body === 'string') {\n this._bodyText = body;\n } else if (support.blob && Blob.prototype.isPrototypeOf(body)) {\n this._bodyBlob = body;\n } else if (support.formData && FormData.prototype.isPrototypeOf(body)) {\n this._bodyFormData = body;\n } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n this._bodyText = body.toString();\n } else if (support.arrayBuffer && support.blob && isDataView(body)) {\n this._bodyArrayBuffer = bufferClone(body.buffer);\n // IE 10-11 can't handle a DataView body.\n this._bodyInit = new Blob([this._bodyArrayBuffer]);\n } else if (support.arrayBuffer && (ArrayBuffer.prototype.isPrototypeOf(body) || isArrayBufferView(body))) {\n this._bodyArrayBuffer = bufferClone(body);\n } else {\n this._bodyText = body = Object.prototype.toString.call(body);\n }\n\n if (!this.headers.get('content-type')) {\n if (typeof body === 'string') {\n this.headers.set('content-type', 'text/plain;charset=UTF-8');\n } else if (this._bodyBlob && this._bodyBlob.type) {\n this.headers.set('content-type', this._bodyBlob.type);\n } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n this.headers.set('content-type', 'application/x-www-form-urlencoded;charset=UTF-8');\n }\n }\n };\n\n if (support.blob) {\n this.blob = function() {\n var rejected = consumed(this);\n if (rejected) {\n return rejected\n }\n\n if (this._bodyBlob) {\n return Promise.resolve(this._bodyBlob)\n } else if (this._bodyArrayBuffer) {\n return Promise.resolve(new Blob([this._bodyArrayBuffer]))\n } else if (this._bodyFormData) {\n throw new Error('could not read FormData body as blob')\n } else {\n return Promise.resolve(new Blob([this._bodyText]))\n }\n };\n\n this.arrayBuffer = function() {\n if (this._bodyArrayBuffer) {\n return consumed(this) || Promise.resolve(this._bodyArrayBuffer)\n } else {\n return this.blob().then(readBlobAsArrayBuffer)\n }\n };\n }\n\n this.text = function() {\n var rejected = consumed(this);\n if (rejected) {\n return rejected\n }\n\n if (this._bodyBlob) {\n return readBlobAsText(this._bodyBlob)\n } else if (this._bodyArrayBuffer) {\n return Promise.resolve(readArrayBufferAsText(this._bodyArrayBuffer))\n } else if (this._bodyFormData) {\n throw new Error('could not read FormData body as text')\n } else {\n return Promise.resolve(this._bodyText)\n }\n };\n\n if (support.formData) {\n this.formData = function() {\n return this.text().then(decode)\n };\n }\n\n this.json = function() {\n return this.text().then(JSON.parse)\n };\n\n return this\n }\n\n // HTTP methods whose capitalization should be normalized\n var methods = ['DELETE', 'GET', 'HEAD', 'OPTIONS', 'POST', 'PUT'];\n\n function normalizeMethod(method) {\n var upcased = method.toUpperCase();\n return methods.indexOf(upcased) > -1 ? upcased : method\n }\n\n function Request(input, options) {\n options = options || {};\n var body = options.body;\n\n if (input instanceof Request) {\n if (input.bodyUsed) {\n throw new TypeError('Already read')\n }\n this.url = input.url;\n this.credentials = input.credentials;\n if (!options.headers) {\n this.headers = new Headers(input.headers);\n }\n this.method = input.method;\n this.mode = input.mode;\n this.signal = input.signal;\n if (!body && input._bodyInit != null) {\n body = input._bodyInit;\n input.bodyUsed = true;\n }\n } else {\n this.url = String(input);\n }\n\n this.credentials = options.credentials || this.credentials || 'same-origin';\n if (options.headers || !this.headers) {\n this.headers = new Headers(options.headers);\n }\n this.method = normalizeMethod(options.method || this.method || 'GET');\n this.mode = options.mode || this.mode || null;\n this.signal = options.signal || this.signal;\n this.referrer = null;\n\n if ((this.method === 'GET' || this.method === 'HEAD') && body) {\n throw new TypeError('Body not allowed for GET or HEAD requests')\n }\n this._initBody(body);\n }\n\n Request.prototype.clone = function() {\n return new Request(this, {body: this._bodyInit})\n };\n\n function decode(body) {\n var form = new FormData();\n body\n .trim()\n .split('&')\n .forEach(function(bytes) {\n if (bytes) {\n var split = bytes.split('=');\n var name = split.shift().replace(/\\+/g, ' ');\n var value = split.join('=').replace(/\\+/g, ' ');\n form.append(decodeURIComponent(name), decodeURIComponent(value));\n }\n });\n return form\n }\n\n function parseHeaders(rawHeaders) {\n var headers = new Headers();\n // Replace instances of \\r\\n and \\n followed by at least one space or horizontal tab with a space\n // https://tools.ietf.org/html/rfc7230#section-3.2\n var preProcessedHeaders = rawHeaders.replace(/\\r?\\n[\\t ]+/g, ' ');\n preProcessedHeaders.split(/\\r?\\n/).forEach(function(line) {\n var parts = line.split(':');\n var key = parts.shift().trim();\n if (key) {\n var value = parts.join(':').trim();\n headers.append(key, value);\n }\n });\n return headers\n }\n\n Body.call(Request.prototype);\n\n function Response(bodyInit, options) {\n if (!options) {\n options = {};\n }\n\n this.type = 'default';\n this.status = options.status === undefined ? 200 : options.status;\n this.ok = this.status >= 200 && this.status < 300;\n this.statusText = 'statusText' in options ? options.statusText : 'OK';\n this.headers = new Headers(options.headers);\n this.url = options.url || '';\n this._initBody(bodyInit);\n }\n\n Body.call(Response.prototype);\n\n Response.prototype.clone = function() {\n return new Response(this._bodyInit, {\n status: this.status,\n statusText: this.statusText,\n headers: new Headers(this.headers),\n url: this.url\n })\n };\n\n Response.error = function() {\n var response = new Response(null, {status: 0, statusText: ''});\n response.type = 'error';\n return response\n };\n\n var redirectStatuses = [301, 302, 303, 307, 308];\n\n Response.redirect = function(url, status) {\n if (redirectStatuses.indexOf(status) === -1) {\n throw new RangeError('Invalid status code')\n }\n\n return new Response(null, {status: status, headers: {location: url}})\n };\n\n exports.DOMException = self.DOMException;\n try {\n new exports.DOMException();\n } catch (err) {\n exports.DOMException = function(message, name) {\n this.message = message;\n this.name = name;\n var error = Error(message);\n this.stack = error.stack;\n };\n exports.DOMException.prototype = Object.create(Error.prototype);\n exports.DOMException.prototype.constructor = exports.DOMException;\n }\n\n function fetch(input, init) {\n return new Promise(function(resolve, reject) {\n var request = new Request(input, init);\n\n if (request.signal && request.signal.aborted) {\n return reject(new exports.DOMException('Aborted', 'AbortError'))\n }\n\n var xhr = new XMLHttpRequest();\n\n function abortXhr() {\n xhr.abort();\n }\n\n xhr.onload = function() {\n var options = {\n status: xhr.status,\n statusText: xhr.statusText,\n headers: parseHeaders(xhr.getAllResponseHeaders() || '')\n };\n options.url = 'responseURL' in xhr ? xhr.responseURL : options.headers.get('X-Request-URL');\n var body = 'response' in xhr ? xhr.response : xhr.responseText;\n resolve(new Response(body, options));\n };\n\n xhr.onerror = function() {\n reject(new TypeError('Network request failed'));\n };\n\n xhr.ontimeout = function() {\n reject(new TypeError('Network request failed'));\n };\n\n xhr.onabort = function() {\n reject(new exports.DOMException('Aborted', 'AbortError'));\n };\n\n xhr.open(request.method, request.url, true);\n\n if (request.credentials === 'include') {\n xhr.withCredentials = true;\n } else if (request.credentials === 'omit') {\n xhr.withCredentials = false;\n }\n\n if ('responseType' in xhr && support.blob) {\n xhr.responseType = 'blob';\n }\n\n request.headers.forEach(function(value, name) {\n xhr.setRequestHeader(name, value);\n });\n\n if (request.signal) {\n request.signal.addEventListener('abort', abortXhr);\n\n xhr.onreadystatechange = function() {\n // DONE (success or failure)\n if (xhr.readyState === 4) {\n request.signal.removeEventListener('abort', abortXhr);\n }\n };\n }\n\n xhr.send(typeof request._bodyInit === 'undefined' ? null : request._bodyInit);\n })\n }\n\n fetch.polyfill = true;\n\n if (!self.fetch) {\n self.fetch = fetch;\n self.Headers = Headers;\n self.Request = Request;\n self.Response = Response;\n }\n\n exports.Headers = Headers;\n exports.Request = Request;\n exports.Response = Response;\n exports.fetch = fetch;\n\n Object.defineProperty(exports, '__esModule', { value: true });\n\n return exports;\n\n}({}));\n})(__self__);\n__self__.fetch.ponyfill = true;\n// Remove \"polyfill\" property added by whatwg-fetch\ndelete __self__.fetch.polyfill;\n// Choose between native implementation (global) or custom implementation (__self__)\n// var ctx = global.fetch ? global : __self__;\nvar ctx = __self__; // this line disable service worker support temporarily\nexports = ctx.fetch; // To enable: import fetch from 'cross-fetch'\nexports.default = ctx.fetch; // For TypeScript consumers without esModuleInterop.\nexports.fetch = ctx.fetch; // To enable: import {fetch} from 'cross-fetch'\nexports.Headers = ctx.Headers;\nexports.Request = ctx.Request;\nexports.Response = ctx.Response;\nmodule.exports = exports;\n});\n\nvar __pika_web_default_export_for_treeshaking__ = /*@__PURE__*/getDefaultExportFromCjs(browserPonyfill);\n\nexport default __pika_web_default_export_for_treeshaking__;\n", "import {getTimestampNow} from \"./index.js\";\nimport {\n parseCommit,\n serializeDeterministically,\n signToBase64\n} from \"./commit.js\";\nimport {parseJsonADArray, parseJsonADResource} from \"./parse.js\";\nimport {Resource} from \"./resource.js\";\nimport {AtomicError, ErrorType} from \"./error.js\";\nimport fetch from \"../../../pkg/cross-fetch.js\";\nexport async function fetchResource(subject, store, from) {\n let resource = new Resource(subject);\n try {\n tryValidURL(subject);\n const requestHeaders = {};\n requestHeaders[\"Accept\"] = \"application/ad+json\";\n store && store.getAgent() && await signRequest(subject, store.getAgent(), requestHeaders);\n let url = subject;\n if (from !== void 0) {\n const newURL = new URL(`${from}/path`);\n newURL.searchParams.set(\"path\", subject);\n url = newURL.href;\n }\n if (fetch == void 0) {\n throw new AtomicError(`No window object available this lib currently requires the DOM for fetching`);\n }\n const response = await fetch(url, {\n headers: requestHeaders\n });\n const body = await response.text();\n if (response.status == 200) {\n try {\n const json = JSON.parse(body);\n resource = parseJsonADResource(json, resource, store);\n } catch (e) {\n throw new AtomicError(`Could not parse JSON from fetching ${subject}. Is it an Atomic Data resource? Error message: ${e.message}`);\n }\n } else if (response.status == 401) {\n throw new AtomicError(`You don't have the rights to do view ${subject}. Are you signed in with the right Agent? More detailed error from server: ${body}`, ErrorType.Unauthorized);\n } else {\n const error = new AtomicError(`${response.status} error: ${body}`);\n resource.setError(error);\n }\n } catch (e) {\n resource.setError(e);\n }\n resource.loading = false;\n store && store.addResource(resource);\n return resource;\n}\nexport async function postCommit(commit, endpoint) {\n const serialized = serializeDeterministically({...commit});\n const requestHeaders = new Headers();\n requestHeaders.set(\"Content-Type\", \"application/ad+json\");\n let response = null;\n try {\n response = await fetch(endpoint, {\n headers: requestHeaders,\n method: \"POST\",\n body: serialized\n });\n } catch (e) {\n throw new Error(`Posting Commit to ${endpoint} failed: ${e}`);\n }\n const body = await response.text();\n if (response.status !== 200) {\n throw new Error(body);\n }\n return parseCommit(body);\n}\nexport function tryValidURL(subject) {\n try {\n new URL(subject);\n } catch (e) {\n throw new Error(`Not a valid URL: ${subject}. ${e}`);\n }\n}\nexport function isValidURL(subject) {\n try {\n tryValidURL(subject);\n return true;\n } catch (e) {\n return false;\n }\n}\nexport function removeQueryParamsFromURL(subject) {\n return subject?.split(\"?\")[0];\n}\nexport async function signRequest(subject, agent, headers) {\n if (agent.subject !== void 0) {\n const privateKey = agent.privateKey;\n const timestamp = getTimestampNow();\n const message = `${subject} ${timestamp}`;\n const signed = await signToBase64(message, privateKey);\n headers[\"x-atomic-public-key\"] = await agent.getPublicKey();\n headers[\"x-atomic-signature\"] = signed;\n headers[\"x-atomic-timestamp\"] = timestamp.toString();\n headers[\"x-atomic-agent\"] = agent?.subject;\n }\n return headers;\n}\nexport async function uploadFiles(files, store, parent) {\n const formData = new FormData();\n files.map((file) => {\n formData.append(\"assets\", file, file.name);\n });\n const uploadURL = new URL(store.getServerUrl() + \"/upload\");\n uploadURL.searchParams.set(\"parent\", parent);\n const signedHeaders = await signRequest(uploadURL.toString(), store.getAgent(), {});\n const options = {\n method: \"POST\",\n body: formData,\n headers: signedHeaders\n };\n const resp = await fetch(uploadURL.toString(), options);\n const body = await resp.text();\n if (resp.status !== 200) {\n throw Error(body);\n }\n const json = JSON.parse(body);\n const resources = parseJsonADArray(json);\n const fileSubjects = [];\n for (const r of resources) {\n store.addResource(r);\n fileSubjects.push(r.getSubject());\n }\n return fileSubjects;\n}\n", "import {properties} from \"./index.js\";\nimport {fetchResource, tryValidURL} from \"./client.js\";\nimport {generatePublicKeyFromPrivate} from \"./commit.js\";\nexport class Agent {\n constructor(privateKey, subject) {\n if (subject) {\n tryValidURL(subject);\n }\n this.subject = subject;\n this.privateKey = privateKey;\n }\n async getPublicKey() {\n if (!this.publicKey) {\n const pubKey = await generatePublicKeyFromPrivate(this.privateKey);\n this.publicKey = pubKey;\n }\n return this.publicKey;\n }\n buildSecret() {\n const objJsonStr = JSON.stringify(this);\n return btoa(objJsonStr);\n }\n async checkPublicKey() {\n const resource = await fetchResource(this.subject);\n if (resource.error) {\n throw new Error(`Could not fetch agent, and could therefore not check validity of public key. ${resource.error}`);\n }\n const fetchedPubKey = resource.get(properties.agent.publicKey).toString();\n if (fetchedPubKey !== await this.getPublicKey()) {\n throw new Error(\"Fetched publickey does not match current one - is the private key correct?\");\n }\n }\n static fromSecret(secretB64) {\n const agentBytes = atob(secretB64);\n const parsed = JSON.parse(agentBytes);\n const {privateKey, subject} = parsed;\n const agent = new Agent(privateKey, subject);\n return agent;\n }\n static fromJSON(obj) {\n return new Agent(obj.privateKey, obj.subject);\n }\n}\n", "import {Datatype, properties} from \"./index.js\";\nexport async function classToTypescriptDefinition(klass, store) {\n function renderProperty(property, required) {\n return ` /** ${property.description}*/\n \"${property.shortname}\"${required ? \"\" : \"?\"}: ${dataTypeToJSONType(property.datatype)};\n`;\n }\n const requires = await Promise.all(klass.getArray(properties.requires).map((s) => store.getProperty(s)));\n const recommends = await Promise.all(klass.getArray(properties.recommends).map((s) => store.getProperty(s)));\n const className = klass.get(properties.shortname);\n let returnString = `interface ${className} {\n`;\n requires.forEach((prop) => {\n returnString = returnString.concat(renderProperty(prop, true));\n });\n recommends.forEach((prop) => {\n returnString = returnString.concat(renderProperty(prop, false));\n });\n returnString = returnString.concat(\"}\");\n return returnString;\n}\nfunction dataTypeToJSONType(datatype) {\n switch (datatype) {\n case Datatype.ATOMIC_URL:\n return \"string | Resource\";\n case Datatype.BOOLEAN:\n return \"boolean\";\n case Datatype.DATE:\n return \"string\";\n case Datatype.FLOAT:\n return \"number\";\n case Datatype.INTEGER:\n return \"number\";\n case Datatype.MARKDOWN:\n return \"string\";\n case Datatype.RESOURCEARRAY:\n return \"string[] | Resource[]\";\n case Datatype.SLUG:\n return \"string\";\n case Datatype.STRING:\n return \"string\";\n case Datatype.TIMESTAMP:\n return \"number\";\n case Datatype.UNKNOWN:\n return \"unknown\";\n }\n}\n", "import {parseAndApplyCommit} from \"./commit.js\";\nexport function startWebsocket(store) {\n const wsURL = new URL(store.getServerUrl());\n if (wsURL.protocol == \"http:\") {\n wsURL.protocol = \"ws\";\n } else {\n wsURL.protocol = \"wss\";\n }\n wsURL.pathname = \"/ws\";\n const client = new WebSocket(wsURL.toString());\n client.onopen = (_e) => handleOpen(store);\n client.onmessage = (ev) => handleMessage(ev, store);\n client.onerror = handleError;\n return client;\n}\nfunction handleOpen(store) {\n for (const subject of store.subscribers.keys()) {\n store.subscribeWebSocket(subject);\n }\n}\nfunction handleMessage(ev, store) {\n if (ev.data.startsWith(\"COMMIT \")) {\n const commit = ev.data.slice(7);\n parseAndApplyCommit(commit, store);\n } else {\n console.warn(\"Unknown websocket message:\", ev);\n }\n}\nfunction handleError(ev) {\n console.log(\"websocket error:\", ev);\n}\n", "import {Resource, unknownSubject} from \"./resource.js\";\nimport {tryValidURL, fetchResource} from \"./client.js\";\nimport {urls} from \"./urls.js\";\nimport {datatypeFromUrl} from \"./datatypes.js\";\nimport {startWebsocket} from \"./websockets.js\";\nexport class Store {\n constructor(opts = {}) {\n opts.serverUrl && this.setServerUrl(opts.serverUrl);\n opts.serverUrl && this.setAgent(opts.agent);\n this.resources = new Map();\n this.subscribers = new Map();\n this.errorHandler = (e) => {\n throw e;\n };\n }\n addResource(resource) {\n if (resource.get(urls.properties.incomplete)) {\n const existing = this.resources.get(resource.getSubject());\n if (existing && !existing.loading) {\n return;\n }\n }\n this.resources.set(resource.getSubject(), resource);\n this.notify(resource.clone());\n }\n async checkSubjectTaken(subject) {\n const r = await this.getResourceAsync(subject);\n if (r.isReady()) {\n return true;\n }\n return false;\n }\n createSubject(className) {\n const random = Math.random().toString(36).substring(2);\n className = className ? className : \"things\";\n return `${this.getServerUrl()}/${className}/${random}`;\n }\n async fetchResource(subject, opts = {}) {\n const fetched = await fetchResource(subject, this, opts.fromProxy && this.getServerUrl());\n return fetched;\n }\n getAllSubjects() {\n return Array.from(this.resources.keys());\n }\n getServerUrl() {\n if (this.serverUrl == void 0) {\n return null;\n }\n return this.serverUrl;\n }\n getAgent() {\n if (this.agent == void 0) {\n return null;\n }\n return this.agent;\n }\n getResourceLoading(subject, opts = {}) {\n if (subject == void 0) {\n const newR = new Resource(unknownSubject, opts.newResource);\n return newR;\n }\n const found = this.resources.get(subject);\n if (found == void 0) {\n const newR = new Resource(subject, opts.newResource);\n newR.loading = true;\n this.addResource(newR);\n if (!opts.newResource) {\n this.fetchResource(subject);\n }\n return newR;\n } else if (!opts.allowIncomplete && found.loading == false) {\n if (found.get(urls.properties.incomplete)) {\n found.loading = true;\n this.addResource(found);\n this.fetchResource(subject);\n }\n return found;\n }\n return found;\n }\n async getResourceAsync(subject) {\n const found = this.resources.get(subject);\n if (found == void 0) {\n const newR = await this.fetchResource(subject);\n return newR;\n }\n return found;\n }\n async getProperty(subject) {\n const resource = await this.getResourceAsync(subject);\n if (resource == void 0) {\n throw Error(`Property ${subject} is not found`);\n }\n if (resource.error) {\n throw Error(`Property ${subject} cannot be loaded: ${resource.error}`);\n }\n const prop = new Property();\n const datatypeUrl = resource.get(urls.properties.datatype);\n if (datatypeUrl == null) {\n throw Error(`Property ${subject} has no datatype: ${resource.getPropVals()}`);\n }\n const shortname = resource.get(urls.properties.shortname);\n if (shortname == null) {\n throw Error(`Property ${subject} has no shortname: ${resource.getPropVals()}`);\n }\n const description = resource.get(urls.properties.description);\n if (description == null) {\n throw Error(`Property ${subject} has no description: ${resource.getPropVals()}`);\n }\n const classTypeURL = resource.get(urls.properties.classType)?.toString();\n prop.classType = classTypeURL;\n prop.shortname = shortname.toString();\n prop.description = description.toString();\n prop.datatype = datatypeFromUrl(datatypeUrl.toString());\n return prop;\n }\n handleError(e) {\n if (typeof e == \"string\") {\n e = new Error(e);\n }\n this.errorHandler(e) || console.error(e);\n }\n notify(resource) {\n const subject = resource.getSubject();\n const subscribers = this.subscribers.get(subject);\n if (subscribers == void 0) {\n return;\n }\n subscribers.map((callback) => {\n callback(resource);\n });\n }\n removeResource(subject) {\n this.resources.delete(subject);\n }\n async renameSubject(oldSubject, newSubject) {\n tryValidURL(newSubject);\n const old = this.resources.get(oldSubject);\n if (old == void 0) {\n throw Error(`Old subject does not exist in store: ${oldSubject}`);\n }\n if (await this.checkSubjectTaken(newSubject)) {\n throw Error(`New subject name is already taken: ${newSubject}`);\n }\n old.setSubject(newSubject);\n this.resources.set(newSubject, old);\n this.removeResource(oldSubject);\n }\n setAgent(agent) {\n this.agent = agent;\n agent && this.resources.forEach((r) => {\n if (r.isUnauthorized()) {\n this.fetchResource(r.getSubject());\n }\n });\n }\n setServerUrl(url) {\n tryValidURL(url);\n if (url.substr(-1) == \"/\") {\n throw Error(\"baseUrl should not have a trailing slash\");\n }\n this.serverUrl = url;\n this.setWebSocket();\n }\n setWebSocket() {\n this.webSocket && this.webSocket.close();\n if (typeof window !== \"undefined\") {\n this.webSocket = startWebsocket(this);\n } else {\n console.warn(\"WebSockets not supported, no window available\");\n }\n }\n subscribe(subject, callback) {\n if (subject == void 0) {\n throw Error(\"Cannot subscribe to undefined subject\");\n return;\n }\n let callbackArray = this.subscribers.get(subject);\n if (callbackArray == void 0) {\n this.subscribeWebSocket(subject);\n callbackArray = [];\n }\n callbackArray.push(callback);\n this.subscribers.set(subject, callbackArray);\n }\n subscribeWebSocket(subject) {\n if (subject == unknownSubject) {\n return;\n }\n try {\n if (this.webSocket?.readyState == 1) {\n this.webSocket?.send(`SUBSCRIBE ${subject}`);\n }\n } catch (e) {\n console.log(e);\n }\n }\n unSubscribeWebSocket(subject) {\n if (subject == unknownSubject) {\n return;\n }\n try {\n this.webSocket?.send(`UNSUBSCRIBE ${subject}`);\n } catch (e) {\n console.log(e);\n }\n }\n unsubscribe(subject, callback) {\n if (subject == void 0) {\n console.warn(\"Cannot unsubscribe from undefined subject\");\n return;\n }\n let callbackArray = this.subscribers.get(subject);\n callbackArray = callbackArray?.filter((item) => item !== callback);\n this.subscribers.set(subject, callbackArray);\n }\n}\nexport class Property {\n}\n", "export function truncateUrl(url, num, truncateBack) {\n let noSchema = url.replace(/(^\\w+:|^)\\/\\//, \"\");\n if (typeof window !== \"undefined\" && window?.location && noSchema.startsWith(window.location.hostname)) {\n noSchema = noSchema.slice(window.location.hostname.length);\n }\n if (noSchema.length <= num) {\n return noSchema;\n }\n if (truncateBack) {\n const tooMuch = noSchema.length - num;\n return \"...\" + noSchema.slice(tooMuch);\n }\n return noSchema.slice(0, num) + \"...\";\n}\n", "import {useEffect, useState} from \"../../../pkg/react.js\";\nexport function useDebounce(value, delay) {\n const [debouncedValue, setDebouncedValue] = useState(value);\n useEffect(() => {\n const handler = setTimeout(() => {\n setDebouncedValue(value);\n }, delay);\n return () => {\n clearTimeout(handler);\n };\n }, [value, delay]);\n return debouncedValue;\n}\n", "import {useState, useEffect} from \"../../../pkg/react.js\";\nimport {\n Datatype,\n datatypeFromUrl,\n urls,\n truncateUrl,\n valToBoolean,\n valToNumber,\n valToDate,\n valToArray,\n valToString\n} from \"../../lib/src/index.js\";\nimport React from \"../../../pkg/react.js\";\nimport {useDebounce} from \"./useDebounce.js\";\nexport function useResource(subject, opts = {allowIncomplete: false, newResource: false}) {\n const {newResource, allowIncomplete} = opts;\n const store = useStore();\n const [resource, setResource] = useState(store.getResourceLoading(subject, {\n newResource,\n allowIncomplete\n }));\n useEffect(() => {\n setResource(store.getResourceLoading(subject, {\n newResource,\n allowIncomplete\n }));\n }, [subject, store]);\n useEffect(() => {\n function handleNotify(updated) {\n setResource(updated);\n }\n subject && store.subscribe(subject, handleNotify);\n return () => {\n store.unsubscribe(subject, handleNotify);\n };\n }, [store, subject]);\n return resource;\n}\nexport function useResources(subjects, opts = {}) {\n const [resources, setResources] = useState(new Map());\n const store = useStore();\n useEffect(() => {\n function handleNotify(updated) {\n resources.set(updated.getSubject(), updated);\n setResources(new Map(resources));\n }\n subjects.map((subject) => {\n const resource = store.getResourceLoading(subject, opts);\n resources.set(subject, resource);\n setResources(new Map(resources));\n store.subscribe(subject, handleNotify);\n });\n return () => {\n subjects.map((subject) => store.unsubscribe(subject, handleNotify));\n };\n }, [subjects, store]);\n return resources;\n}\nexport function useProperty(subject) {\n const propertyResource = useResource(subject);\n if (propertyResource.loading) {\n return {\n subject,\n datatype: Datatype.UNKNOWN,\n shortname: \"loading\",\n description: `Loading property ${subject}`,\n loading: true\n };\n }\n if (propertyResource.error) {\n return {\n subject,\n datatype: Datatype.UNKNOWN,\n shortname: \"error\",\n description: \"Error getting Property. \" + propertyResource.getError().message,\n error: propertyResource.getError()\n };\n }\n const datatypeUrl = propertyResource.get(urls.properties.datatype);\n const datatype = datatypeFromUrl(datatypeUrl);\n const shortname = propertyResource.get(urls.properties.shortname);\n const description = propertyResource.get(urls.properties.description);\n const classType = propertyResource.get(urls.properties.classType);\n const isDynamic = !!propertyResource.get(urls.properties.isDynamic);\n const property = {\n subject,\n datatype,\n shortname,\n description,\n classType,\n isDynamic\n };\n return property;\n}\nexport function useValue(resource, propertyURL, opts = {}) {\n const {\n commit = false,\n validate = true,\n commitDebounce = 100,\n handleValidationError\n } = opts;\n const [val, set] = useState(null);\n const store = useStore();\n const debounced = useDebounce(val, commitDebounce);\n const [touched, setTouched] = useState(false);\n useEffect(() => {\n if (commit && touched) {\n async function save() {\n try {\n setTouched(false);\n await resource.save(store, store.getAgent());\n } catch (e) {\n store.handleError(e);\n }\n }\n save();\n }\n }, [JSON.stringify(debounced)]);\n async function validateAndSet(newVal) {\n if (newVal == null) {\n resource.removePropVal(propertyURL);\n set(null);\n return;\n }\n set(newVal);\n setTouched(true);\n async function setAsync() {\n try {\n await resource.set(propertyURL, newVal, store, validate);\n handleValidationError && handleValidationError(null);\n store.notify(resource);\n } catch (e) {\n handleValidationError ? handleValidationError(e) : console.log(e);\n }\n }\n await setAsync();\n }\n if (val !== null) {\n return [val, validateAndSet];\n }\n let value = null;\n try {\n value = resource.get(propertyURL);\n if (resource.getSubject().startsWith(\"http://localhost/sear\")) {\n console.log(\"useValue\", val, resource.getSubject());\n }\n } catch (e) {\n store.handleError(e);\n }\n if (value == void 0) {\n return [null, validateAndSet];\n }\n return [value, validateAndSet];\n}\nexport function useString(resource, propertyURL, opts) {\n const [val, setVal] = useValue(resource, propertyURL, opts);\n if (val == null) {\n return [null, setVal];\n }\n return [valToString(val), setVal];\n}\nexport function useTitle(resource, truncateLength) {\n const [name] = useString(resource, urls.properties.name);\n const [shortname] = useString(resource, urls.properties.shortname);\n const [filename] = useString(resource, urls.properties.file.filename);\n truncateLength = truncateLength ? truncateLength : 40;\n if (resource.loading) {\n return \"...\";\n }\n if (name !== null) {\n return name;\n }\n if (shortname !== null) {\n return shortname;\n }\n if (filename !== null) {\n return filename;\n }\n const subject = resource.getSubject();\n if (typeof subject == \"string\" && subject.length > 0) {\n return truncateUrl(subject, truncateLength);\n }\n return subject;\n}\nexport function useArray(resource, propertyURL, opts) {\n const [value, set] = useValue(resource, propertyURL, opts);\n if (value == null) {\n return [[], set];\n }\n let arr = [];\n try {\n arr = valToArray(value);\n } catch (e) {\n console.log(e, value, propertyURL, resource.getSubject());\n }\n return [arr, set];\n}\nexport function useNumber(resource, propertyURL, opts) {\n const [value, set] = useValue(resource, propertyURL, opts);\n if (value == null) {\n return [NaN, set];\n }\n return [valToNumber(value), set];\n}\nexport function useBoolean(resource, propertyURL, opts) {\n const [value, set] = useValue(resource, propertyURL, opts);\n if (value == null) {\n return [false, set];\n }\n return [valToBoolean(value), set];\n}\nexport function useDate(resource, propertyURL, opts) {\n const store = useStore();\n const [value] = useValue(resource, propertyURL, opts);\n if (value == null) {\n return null;\n }\n try {\n return valToDate(value);\n } catch (e) {\n store.handleError(e);\n return null;\n }\n}\nexport function useStore() {\n const store = React.useContext(StoreContext);\n if (store == void 0) {\n throw new Error(\"Store is not found in react context. Have you wrapped your application in ``?\");\n }\n return store;\n}\nexport function useCanWrite(resource, agent) {\n const store = useStore();\n const [canWrite, setCanWrite] = useState(null);\n const [msg, setMsg] = useState(null);\n const agentStore = store.getAgent();\n useEffect(() => {\n if (agent == void 0) {\n agent = agentStore?.subject;\n }\n if (agent == void 0) {\n setMsg(\"No Agent set\");\n setCanWrite(false);\n return;\n }\n setMsg(\"Checking write rights...\");\n async function tryCanWrite() {\n const [canWriteAsync, msg2] = await resource.canWrite(store, agent);\n setCanWrite(canWriteAsync);\n if (canWriteAsync) {\n setMsg(null);\n } else {\n setMsg(\"You don't have write rights in this resource or its parents: \" + msg2);\n }\n }\n tryCanWrite();\n }, [resource, agent, agentStore?.subject]);\n return [canWrite, msg];\n}\nexport const StoreContext = React.createContext(void 0);\n", "import {useState} from \"../../../pkg/react.js\";\nexport function useLocalStorage(key, initialValue) {\n const [storedValue, setStoredValue] = useState(() => {\n try {\n const item = window.localStorage.getItem(key);\n return item ? JSON.parse(item) : initialValue;\n } catch (error) {\n console.log(`Error finding ${key} in localStorage:`, error);\n return initialValue;\n }\n });\n const setValue = (value) => {\n try {\n const valueToStore = value instanceof Function ? value(storedValue) : value;\n setStoredValue(valueToStore);\n window.localStorage.setItem(key, JSON.stringify(valueToStore));\n } catch (error) {\n console.log(error);\n }\n };\n return [storedValue, setValue];\n}\n", "import {isValidURL} from \"../../lib/src/index.js\";\nimport {useEffect, useState} from \"../../../pkg/react.js\";\nimport {useStore} from \"./hooks.js\";\nimport {useLocalStorage} from \"./useLocalStorage.js\";\nexport const useBaseURL = () => {\n const store = useStore();\n const [serverUrlJson, setServerUrlJson] = useLocalStorage(\"serverUrl\", store.getServerUrl());\n const [baseURL, setBaseURL] = useState(window?.location.origin);\n useEffect(() => {\n if (baseURL !== null) {\n if (isValidURL(serverUrlJson)) {\n setBaseURL(serverUrlJson);\n } else {\n store.handleError(new Error(`Invalid base URL: ${serverUrlJson}, defaulting to atomicdata.dev`));\n setBaseURL(\"https://atomicdata.dev\");\n }\n }\n }, [serverUrlJson]);\n useEffect(() => {\n store.setServerUrl(baseURL);\n }, [baseURL]);\n return [baseURL, setServerUrlJson];\n};\n", "import {useEffect, useState} from \"../../../pkg/react.js\";\nimport {Agent} from \"../../lib/src/index.js\";\nimport {useStore} from \"./hooks.js\";\nimport {useLocalStorage} from \"./useLocalStorage.js\";\nconst AGENT_LOCAL_STORAGE_KEY = \"agent\";\nexport const useCurrentAgent = () => {\n const [agentJSON, setAgentJSON] = useLocalStorage(AGENT_LOCAL_STORAGE_KEY, null);\n const store = useStore();\n const [stateAgent, setStateAgent] = useState(store.getAgent());\n function handleSetAgent(agent) {\n setAgentJSON(agent);\n setStateAgent(agent);\n store.setAgent(agent);\n return;\n }\n useEffect(() => {\n if (agentJSON && store.getAgent() == null && stateAgent == null) {\n handleSetAgent(agentJSON);\n }\n }, [agentJSON]);\n return [stateAgent, handleSetAgent];\n};\nexport function initAgentFromLocalStorage() {\n const lsItem = localStorage.getItem(AGENT_LOCAL_STORAGE_KEY);\n if (lsItem == null) {\n return null;\n }\n const agentJSON = JSON.parse(lsItem);\n const agent = agentJSON && Agent.fromJSON(agentJSON);\n return agent;\n}\n", "import {\n Datatype,\n properties,\n urls,\n valToArray,\n valToDate\n} from \"../../lib/src/index.js\";\nimport {useEffect, useState} from \"../../../pkg/react.js\";\nimport {useStore, useString, useTitle} from \"./index.js\";\nconst hiddenProps = [\n properties.name,\n properties.shortname,\n properties.file.filename,\n properties.description,\n properties.write,\n properties.read\n];\nexport function useMarkdown(resource) {\n const title = useTitle(resource);\n const [description] = useString(resource, urls.properties.description);\n const [md, setMd] = useState(`# ${title}`);\n const store = useStore();\n useEffect(() => {\n async function getPropValTexts() {\n let propValLines = \"\";\n for await (const [prop, val] of resource.getPropVals()) {\n if (!hiddenProps.includes(prop)) {\n propValLines = propValLines + await propertyLine(prop, val, store);\n }\n }\n setMd(`# ${title}` + propValLines + \"\\n\\n\" + description);\n }\n getPropValTexts();\n }, [resource]);\n if (resource.error) {\n return resource.error.message;\n }\n return md;\n}\nasync function propertyLine(propertySubject, value, store) {\n const property = await store.getProperty(propertySubject);\n let valString = value.toString();\n switch (property.datatype) {\n case Datatype.ATOMIC_URL:\n valString = `[${value}](${value})`;\n break;\n case Datatype.RESOURCEARRAY:\n {\n valString = \"\";\n valToArray(value).map((item) => {\n valString = valString + `[${item}](${item}),`;\n });\n }\n break;\n case Datatype.TIMESTAMP:\n valString = valToDate(value).toLocaleString();\n break;\n }\n return `\n\n**${property.shortname}**: ${valString}`;\n}\n", "import {useDebounce} from \"./useDebounce.js\";\nimport {useArray, useStore, useResource} from \"./hooks.js\";\nimport {urls} from \"../../lib/src/index.js\";\nimport {useEffect, useState} from \"../../../pkg/react.js\";\nexport function useServerSearch(query, opts = {}) {\n const {debounce = 50, include = false, limit = 30} = opts;\n const [results, setResults] = useState([]);\n const store = useStore();\n const debouncedQuery = useDebounce(query, debounce);\n function createURLString() {\n const url = new URL(store.getServerUrl());\n url.pathname = \"search\";\n url.searchParams.set(\"q\", debouncedQuery);\n url.searchParams.set(\"include\", include.toString());\n url.searchParams.set(\"limit\", limit.toString());\n return url.toString();\n }\n const resource = useResource(createURLString());\n const [resultsIn] = useArray(resource, urls.properties.endpoint.results);\n useEffect(() => {\n if (!resource.loading && resultsIn) {\n setResults(resultsIn);\n }\n }, [\n resultsIn.toString(),\n resource.loading\n ]);\n if (!query) {\n return {\n results: [],\n loading: false,\n error: void 0\n };\n }\n return {results, loading: resource.loading, error: resource.error};\n}\n", "import { r as reactIs } from './common/index-147c2973.js';\nimport { r as react } from './common/index-04f37d11.js';\nimport { s as shallowequal } from './common/index-d1edd5e3.js';\nimport { h as hoistNonReactStatics_cjs } from './common/hoist-non-react-statics.cjs-a6490c8b.js';\nimport './common/_commonjsHelpers-8c19dec8.js';\n\n/* SNOWPACK PROCESS POLYFILL (based on https://github.com/calvinmetcalf/node-process-es6) */\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\nvar cachedSetTimeout = defaultSetTimout;\nvar cachedClearTimeout = defaultClearTimeout;\nvar globalContext;\nif (typeof window !== 'undefined') {\n globalContext = window;\n} else if (typeof self !== 'undefined') {\n globalContext = self;\n} else {\n globalContext = {};\n}\nif (typeof globalContext.setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n}\nif (typeof globalContext.clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n}\n\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\nfunction nextTick(fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n}\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nvar title = 'browser';\nvar platform = 'browser';\nvar browser = true;\nvar argv = [];\nvar version = ''; // empty string to avoid regexp issues\nvar versions = {};\nvar release = {};\nvar config = {};\n\nfunction noop() {}\n\nvar on = noop;\nvar addListener = noop;\nvar once = noop;\nvar off = noop;\nvar removeListener = noop;\nvar removeAllListeners = noop;\nvar emit = noop;\n\nfunction binding(name) {\n throw new Error('process.binding is not supported');\n}\n\nfunction cwd () { return '/' }\nfunction chdir (dir) {\n throw new Error('process.chdir is not supported');\n}function umask() { return 0; }\n\n// from https://github.com/kumavis/browser-process-hrtime/blob/master/index.js\nvar performance = globalContext.performance || {};\nvar performanceNow =\n performance.now ||\n performance.mozNow ||\n performance.msNow ||\n performance.oNow ||\n performance.webkitNow ||\n function(){ return (new Date()).getTime() };\n\n// generate timestamp or delta\n// see http://nodejs.org/api/process.html#process_process_hrtime\nfunction hrtime(previousTimestamp){\n var clocktime = performanceNow.call(performance)*1e-3;\n var seconds = Math.floor(clocktime);\n var nanoseconds = Math.floor((clocktime%1)*1e9);\n if (previousTimestamp) {\n seconds = seconds - previousTimestamp[0];\n nanoseconds = nanoseconds - previousTimestamp[1];\n if (nanoseconds<0) {\n seconds--;\n nanoseconds += 1e9;\n }\n }\n return [seconds,nanoseconds]\n}\n\nvar startTime = new Date();\nfunction uptime() {\n var currentTime = new Date();\n var dif = currentTime - startTime;\n return dif / 1000;\n}\n\nvar process = {\n nextTick: nextTick,\n title: title,\n browser: browser,\n env: {\"NODE_ENV\":\"production\"},\n argv: argv,\n version: version,\n versions: versions,\n on: on,\n addListener: addListener,\n once: once,\n off: off,\n removeListener: removeListener,\n removeAllListeners: removeAllListeners,\n emit: emit,\n binding: binding,\n cwd: cwd,\n chdir: chdir,\n umask: umask,\n hrtime: hrtime,\n platform: platform,\n release: release,\n config: config,\n uptime: uptime\n};\n\nfunction stylis_min (W) {\n function M(d, c, e, h, a) {\n for (var m = 0, b = 0, v = 0, n = 0, q, g, x = 0, K = 0, k, u = k = q = 0, l = 0, r = 0, I = 0, t = 0, B = e.length, J = B - 1, y, f = '', p = '', F = '', G = '', C; l < B;) {\n g = e.charCodeAt(l);\n l === J && 0 !== b + n + v + m && (0 !== b && (g = 47 === b ? 10 : 47), n = v = m = 0, B++, J++);\n\n if (0 === b + n + v + m) {\n if (l === J && (0 < r && (f = f.replace(N, '')), 0 < f.trim().length)) {\n switch (g) {\n case 32:\n case 9:\n case 59:\n case 13:\n case 10:\n break;\n\n default:\n f += e.charAt(l);\n }\n\n g = 59;\n }\n\n switch (g) {\n case 123:\n f = f.trim();\n q = f.charCodeAt(0);\n k = 1;\n\n for (t = ++l; l < B;) {\n switch (g = e.charCodeAt(l)) {\n case 123:\n k++;\n break;\n\n case 125:\n k--;\n break;\n\n case 47:\n switch (g = e.charCodeAt(l + 1)) {\n case 42:\n case 47:\n a: {\n for (u = l + 1; u < J; ++u) {\n switch (e.charCodeAt(u)) {\n case 47:\n if (42 === g && 42 === e.charCodeAt(u - 1) && l + 2 !== u) {\n l = u + 1;\n break a;\n }\n\n break;\n\n case 10:\n if (47 === g) {\n l = u + 1;\n break a;\n }\n\n }\n }\n\n l = u;\n }\n\n }\n\n break;\n\n case 91:\n g++;\n\n case 40:\n g++;\n\n case 34:\n case 39:\n for (; l++ < J && e.charCodeAt(l) !== g;) {\n }\n\n }\n\n if (0 === k) break;\n l++;\n }\n\n k = e.substring(t, l);\n 0 === q && (q = (f = f.replace(ca, '').trim()).charCodeAt(0));\n\n switch (q) {\n case 64:\n 0 < r && (f = f.replace(N, ''));\n g = f.charCodeAt(1);\n\n switch (g) {\n case 100:\n case 109:\n case 115:\n case 45:\n r = c;\n break;\n\n default:\n r = O;\n }\n\n k = M(c, r, k, g, a + 1);\n t = k.length;\n 0 < A && (r = X(O, f, I), C = H(3, k, r, c, D, z, t, g, a, h), f = r.join(''), void 0 !== C && 0 === (t = (k = C.trim()).length) && (g = 0, k = ''));\n if (0 < t) switch (g) {\n case 115:\n f = f.replace(da, ea);\n\n case 100:\n case 109:\n case 45:\n k = f + '{' + k + '}';\n break;\n\n case 107:\n f = f.replace(fa, '$1 $2');\n k = f + '{' + k + '}';\n k = 1 === w || 2 === w && L('@' + k, 3) ? '@-webkit-' + k + '@' + k : '@' + k;\n break;\n\n default:\n k = f + k, 112 === h && (k = (p += k, ''));\n } else k = '';\n break;\n\n default:\n k = M(c, X(c, f, I), k, h, a + 1);\n }\n\n F += k;\n k = I = r = u = q = 0;\n f = '';\n g = e.charCodeAt(++l);\n break;\n\n case 125:\n case 59:\n f = (0 < r ? f.replace(N, '') : f).trim();\n if (1 < (t = f.length)) switch (0 === u && (q = f.charCodeAt(0), 45 === q || 96 < q && 123 > q) && (t = (f = f.replace(' ', ':')).length), 0 < A && void 0 !== (C = H(1, f, c, d, D, z, p.length, h, a, h)) && 0 === (t = (f = C.trim()).length) && (f = '\\x00\\x00'), q = f.charCodeAt(0), g = f.charCodeAt(1), q) {\n case 0:\n break;\n\n case 64:\n if (105 === g || 99 === g) {\n G += f + e.charAt(l);\n break;\n }\n\n default:\n 58 !== f.charCodeAt(t - 1) && (p += P(f, q, g, f.charCodeAt(2)));\n }\n I = r = u = q = 0;\n f = '';\n g = e.charCodeAt(++l);\n }\n }\n\n switch (g) {\n case 13:\n case 10:\n 47 === b ? b = 0 : 0 === 1 + q && 107 !== h && 0 < f.length && (r = 1, f += '\\x00');\n 0 < A * Y && H(0, f, c, d, D, z, p.length, h, a, h);\n z = 1;\n D++;\n break;\n\n case 59:\n case 125:\n if (0 === b + n + v + m) {\n z++;\n break;\n }\n\n default:\n z++;\n y = e.charAt(l);\n\n switch (g) {\n case 9:\n case 32:\n if (0 === n + m + b) switch (x) {\n case 44:\n case 58:\n case 9:\n case 32:\n y = '';\n break;\n\n default:\n 32 !== g && (y = ' ');\n }\n break;\n\n case 0:\n y = '\\\\0';\n break;\n\n case 12:\n y = '\\\\f';\n break;\n\n case 11:\n y = '\\\\v';\n break;\n\n case 38:\n 0 === n + b + m && (r = I = 1, y = '\\f' + y);\n break;\n\n case 108:\n if (0 === n + b + m + E && 0 < u) switch (l - u) {\n case 2:\n 112 === x && 58 === e.charCodeAt(l - 3) && (E = x);\n\n case 8:\n 111 === K && (E = K);\n }\n break;\n\n case 58:\n 0 === n + b + m && (u = l);\n break;\n\n case 44:\n 0 === b + v + n + m && (r = 1, y += '\\r');\n break;\n\n case 34:\n case 39:\n 0 === b && (n = n === g ? 0 : 0 === n ? g : n);\n break;\n\n case 91:\n 0 === n + b + v && m++;\n break;\n\n case 93:\n 0 === n + b + v && m--;\n break;\n\n case 41:\n 0 === n + b + m && v--;\n break;\n\n case 40:\n if (0 === n + b + m) {\n if (0 === q) switch (2 * x + 3 * K) {\n case 533:\n break;\n\n default:\n q = 1;\n }\n v++;\n }\n\n break;\n\n case 64:\n 0 === b + v + n + m + u + k && (k = 1);\n break;\n\n case 42:\n case 47:\n if (!(0 < n + m + v)) switch (b) {\n case 0:\n switch (2 * g + 3 * e.charCodeAt(l + 1)) {\n case 235:\n b = 47;\n break;\n\n case 220:\n t = l, b = 42;\n }\n\n break;\n\n case 42:\n 47 === g && 42 === x && t + 2 !== l && (33 === e.charCodeAt(t + 2) && (p += e.substring(t, l + 1)), y = '', b = 0);\n }\n }\n\n 0 === b && (f += y);\n }\n\n K = x;\n x = g;\n l++;\n }\n\n t = p.length;\n\n if (0 < t) {\n r = c;\n if (0 < A && (C = H(2, p, r, d, D, z, t, h, a, h), void 0 !== C && 0 === (p = C).length)) return G + p + F;\n p = r.join(',') + '{' + p + '}';\n\n if (0 !== w * E) {\n 2 !== w || L(p, 2) || (E = 0);\n\n switch (E) {\n case 111:\n p = p.replace(ha, ':-moz-$1') + p;\n break;\n\n case 112:\n p = p.replace(Q, '::-webkit-input-$1') + p.replace(Q, '::-moz-$1') + p.replace(Q, ':-ms-input-$1') + p;\n }\n\n E = 0;\n }\n }\n\n return G + p + F;\n }\n\n function X(d, c, e) {\n var h = c.trim().split(ia);\n c = h;\n var a = h.length,\n m = d.length;\n\n switch (m) {\n case 0:\n case 1:\n var b = 0;\n\n for (d = 0 === m ? '' : d[0] + ' '; b < a; ++b) {\n c[b] = Z(d, c[b], e).trim();\n }\n\n break;\n\n default:\n var v = b = 0;\n\n for (c = []; b < a; ++b) {\n for (var n = 0; n < m; ++n) {\n c[v++] = Z(d[n] + ' ', h[b], e).trim();\n }\n }\n\n }\n\n return c;\n }\n\n function Z(d, c, e) {\n var h = c.charCodeAt(0);\n 33 > h && (h = (c = c.trim()).charCodeAt(0));\n\n switch (h) {\n case 38:\n return c.replace(F, '$1' + d.trim());\n\n case 58:\n return d.trim() + c.replace(F, '$1' + d.trim());\n\n default:\n if (0 < 1 * e && 0 < c.indexOf('\\f')) return c.replace(F, (58 === d.charCodeAt(0) ? '' : '$1') + d.trim());\n }\n\n return d + c;\n }\n\n function P(d, c, e, h) {\n var a = d + ';',\n m = 2 * c + 3 * e + 4 * h;\n\n if (944 === m) {\n d = a.indexOf(':', 9) + 1;\n var b = a.substring(d, a.length - 1).trim();\n b = a.substring(0, d).trim() + b + ';';\n return 1 === w || 2 === w && L(b, 1) ? '-webkit-' + b + b : b;\n }\n\n if (0 === w || 2 === w && !L(a, 1)) return a;\n\n switch (m) {\n case 1015:\n return 97 === a.charCodeAt(10) ? '-webkit-' + a + a : a;\n\n case 951:\n return 116 === a.charCodeAt(3) ? '-webkit-' + a + a : a;\n\n case 963:\n return 110 === a.charCodeAt(5) ? '-webkit-' + a + a : a;\n\n case 1009:\n if (100 !== a.charCodeAt(4)) break;\n\n case 969:\n case 942:\n return '-webkit-' + a + a;\n\n case 978:\n return '-webkit-' + a + '-moz-' + a + a;\n\n case 1019:\n case 983:\n return '-webkit-' + a + '-moz-' + a + '-ms-' + a + a;\n\n case 883:\n if (45 === a.charCodeAt(8)) return '-webkit-' + a + a;\n if (0 < a.indexOf('image-set(', 11)) return a.replace(ja, '$1-webkit-$2') + a;\n break;\n\n case 932:\n if (45 === a.charCodeAt(4)) switch (a.charCodeAt(5)) {\n case 103:\n return '-webkit-box-' + a.replace('-grow', '') + '-webkit-' + a + '-ms-' + a.replace('grow', 'positive') + a;\n\n case 115:\n return '-webkit-' + a + '-ms-' + a.replace('shrink', 'negative') + a;\n\n case 98:\n return '-webkit-' + a + '-ms-' + a.replace('basis', 'preferred-size') + a;\n }\n return '-webkit-' + a + '-ms-' + a + a;\n\n case 964:\n return '-webkit-' + a + '-ms-flex-' + a + a;\n\n case 1023:\n if (99 !== a.charCodeAt(8)) break;\n b = a.substring(a.indexOf(':', 15)).replace('flex-', '').replace('space-between', 'justify');\n return '-webkit-box-pack' + b + '-webkit-' + a + '-ms-flex-pack' + b + a;\n\n case 1005:\n return ka.test(a) ? a.replace(aa, ':-webkit-') + a.replace(aa, ':-moz-') + a : a;\n\n case 1e3:\n b = a.substring(13).trim();\n c = b.indexOf('-') + 1;\n\n switch (b.charCodeAt(0) + b.charCodeAt(c)) {\n case 226:\n b = a.replace(G, 'tb');\n break;\n\n case 232:\n b = a.replace(G, 'tb-rl');\n break;\n\n case 220:\n b = a.replace(G, 'lr');\n break;\n\n default:\n return a;\n }\n\n return '-webkit-' + a + '-ms-' + b + a;\n\n case 1017:\n if (-1 === a.indexOf('sticky', 9)) break;\n\n case 975:\n c = (a = d).length - 10;\n b = (33 === a.charCodeAt(c) ? a.substring(0, c) : a).substring(d.indexOf(':', 7) + 1).trim();\n\n switch (m = b.charCodeAt(0) + (b.charCodeAt(7) | 0)) {\n case 203:\n if (111 > b.charCodeAt(8)) break;\n\n case 115:\n a = a.replace(b, '-webkit-' + b) + ';' + a;\n break;\n\n case 207:\n case 102:\n a = a.replace(b, '-webkit-' + (102 < m ? 'inline-' : '') + 'box') + ';' + a.replace(b, '-webkit-' + b) + ';' + a.replace(b, '-ms-' + b + 'box') + ';' + a;\n }\n\n return a + ';';\n\n case 938:\n if (45 === a.charCodeAt(5)) switch (a.charCodeAt(6)) {\n case 105:\n return b = a.replace('-items', ''), '-webkit-' + a + '-webkit-box-' + b + '-ms-flex-' + b + a;\n\n case 115:\n return '-webkit-' + a + '-ms-flex-item-' + a.replace(ba, '') + a;\n\n default:\n return '-webkit-' + a + '-ms-flex-line-pack' + a.replace('align-content', '').replace(ba, '') + a;\n }\n break;\n\n case 973:\n case 989:\n if (45 !== a.charCodeAt(3) || 122 === a.charCodeAt(4)) break;\n\n case 931:\n case 953:\n if (!0 === la.test(d)) return 115 === (b = d.substring(d.indexOf(':') + 1)).charCodeAt(0) ? P(d.replace('stretch', 'fill-available'), c, e, h).replace(':fill-available', ':stretch') : a.replace(b, '-webkit-' + b) + a.replace(b, '-moz-' + b.replace('fill-', '')) + a;\n break;\n\n case 962:\n if (a = '-webkit-' + a + (102 === a.charCodeAt(5) ? '-ms-' + a : '') + a, 211 === e + h && 105 === a.charCodeAt(13) && 0 < a.indexOf('transform', 10)) return a.substring(0, a.indexOf(';', 27) + 1).replace(ma, '$1-webkit-$2') + a;\n }\n\n return a;\n }\n\n function L(d, c) {\n var e = d.indexOf(1 === c ? ':' : '{'),\n h = d.substring(0, 3 !== c ? e : 10);\n e = d.substring(e + 1, d.length - 1);\n return R(2 !== c ? h : h.replace(na, '$1'), e, c);\n }\n\n function ea(d, c) {\n var e = P(c, c.charCodeAt(0), c.charCodeAt(1), c.charCodeAt(2));\n return e !== c + ';' ? e.replace(oa, ' or ($1)').substring(4) : '(' + c + ')';\n }\n\n function H(d, c, e, h, a, m, b, v, n, q) {\n for (var g = 0, x = c, w; g < A; ++g) {\n switch (w = S[g].call(B, d, x, e, h, a, m, b, v, n, q)) {\n case void 0:\n case !1:\n case !0:\n case null:\n break;\n\n default:\n x = w;\n }\n }\n\n if (x !== c) return x;\n }\n\n function T(d) {\n switch (d) {\n case void 0:\n case null:\n A = S.length = 0;\n break;\n\n default:\n if ('function' === typeof d) S[A++] = d;else if ('object' === typeof d) for (var c = 0, e = d.length; c < e; ++c) {\n T(d[c]);\n } else Y = !!d | 0;\n }\n\n return T;\n }\n\n function U(d) {\n d = d.prefix;\n void 0 !== d && (R = null, d ? 'function' !== typeof d ? w = 1 : (w = 2, R = d) : w = 0);\n return U;\n }\n\n function B(d, c) {\n var e = d;\n 33 > e.charCodeAt(0) && (e = e.trim());\n V = e;\n e = [V];\n\n if (0 < A) {\n var h = H(-1, c, e, e, D, z, 0, 0, 0, 0);\n void 0 !== h && 'string' === typeof h && (c = h);\n }\n\n var a = M(O, e, c, 0, 0);\n 0 < A && (h = H(-2, a, e, e, D, z, a.length, 0, 0, 0), void 0 !== h && (a = h));\n V = '';\n E = 0;\n z = D = 1;\n return a;\n }\n\n var ca = /^\\0+/g,\n N = /[\\0\\r\\f]/g,\n aa = /: */g,\n ka = /zoo|gra/,\n ma = /([,: ])(transform)/g,\n ia = /,\\r+?/g,\n F = /([\\t\\r\\n ])*\\f?&/g,\n fa = /@(k\\w+)\\s*(\\S*)\\s*/,\n Q = /::(place)/g,\n ha = /:(read-only)/g,\n G = /[svh]\\w+-[tblr]{2}/,\n da = /\\(\\s*(.*)\\s*\\)/g,\n oa = /([\\s\\S]*?);/g,\n ba = /-self|flex-/g,\n na = /[^]*?(:[rp][el]a[\\w-]+)[^]*/,\n la = /stretch|:\\s*\\w+\\-(?:conte|avail)/,\n ja = /([^-])(image-set\\()/,\n z = 1,\n D = 1,\n E = 0,\n w = 1,\n O = [],\n S = [],\n A = 0,\n R = null,\n Y = 0,\n V = '';\n B.use = T;\n B.set = U;\n void 0 !== W && U(W);\n return B;\n}\n\nvar unitlessKeys = {\n animationIterationCount: 1,\n borderImageOutset: 1,\n borderImageSlice: 1,\n borderImageWidth: 1,\n boxFlex: 1,\n boxFlexGroup: 1,\n boxOrdinalGroup: 1,\n columnCount: 1,\n columns: 1,\n flex: 1,\n flexGrow: 1,\n flexPositive: 1,\n flexShrink: 1,\n flexNegative: 1,\n flexOrder: 1,\n gridRow: 1,\n gridRowEnd: 1,\n gridRowSpan: 1,\n gridRowStart: 1,\n gridColumn: 1,\n gridColumnEnd: 1,\n gridColumnSpan: 1,\n gridColumnStart: 1,\n msGridRow: 1,\n msGridRowSpan: 1,\n msGridColumn: 1,\n msGridColumnSpan: 1,\n fontWeight: 1,\n lineHeight: 1,\n opacity: 1,\n order: 1,\n orphans: 1,\n tabSize: 1,\n widows: 1,\n zIndex: 1,\n zoom: 1,\n WebkitLineClamp: 1,\n // SVG-related properties\n fillOpacity: 1,\n floodOpacity: 1,\n stopOpacity: 1,\n strokeDasharray: 1,\n strokeDashoffset: 1,\n strokeMiterlimit: 1,\n strokeOpacity: 1,\n strokeWidth: 1\n};\n\nfunction memoize(fn) {\n var cache = {};\n return function (arg) {\n if (cache[arg] === undefined) cache[arg] = fn(arg);\n return cache[arg];\n };\n}\n\nvar reactPropsRegex = /^((children|dangerouslySetInnerHTML|key|ref|autoFocus|defaultValue|defaultChecked|innerHTML|suppressContentEditableWarning|suppressHydrationWarning|valueLink|accept|acceptCharset|accessKey|action|allow|allowUserMedia|allowPaymentRequest|allowFullScreen|allowTransparency|alt|async|autoComplete|autoPlay|capture|cellPadding|cellSpacing|challenge|charSet|checked|cite|classID|className|cols|colSpan|content|contentEditable|contextMenu|controls|controlsList|coords|crossOrigin|data|dateTime|decoding|default|defer|dir|disabled|disablePictureInPicture|download|draggable|encType|form|formAction|formEncType|formMethod|formNoValidate|formTarget|frameBorder|headers|height|hidden|high|href|hrefLang|htmlFor|httpEquiv|id|inputMode|integrity|is|keyParams|keyType|kind|label|lang|list|loading|loop|low|marginHeight|marginWidth|max|maxLength|media|mediaGroup|method|min|minLength|multiple|muted|name|nonce|noValidate|open|optimum|pattern|placeholder|playsInline|poster|preload|profile|radioGroup|readOnly|referrerPolicy|rel|required|reversed|role|rows|rowSpan|sandbox|scope|scoped|scrolling|seamless|selected|shape|size|sizes|slot|span|spellCheck|src|srcDoc|srcLang|srcSet|start|step|style|summary|tabIndex|target|title|type|useMap|value|width|wmode|wrap|about|datatype|inlist|prefix|property|resource|typeof|vocab|autoCapitalize|autoCorrect|autoSave|color|inert|itemProp|itemScope|itemType|itemID|itemRef|on|results|security|unselectable|accentHeight|accumulate|additive|alignmentBaseline|allowReorder|alphabetic|amplitude|arabicForm|ascent|attributeName|attributeType|autoReverse|azimuth|baseFrequency|baselineShift|baseProfile|bbox|begin|bias|by|calcMode|capHeight|clip|clipPathUnits|clipPath|clipRule|colorInterpolation|colorInterpolationFilters|colorProfile|colorRendering|contentScriptType|contentStyleType|cursor|cx|cy|d|decelerate|descent|diffuseConstant|direction|display|divisor|dominantBaseline|dur|dx|dy|edgeMode|elevation|enableBackground|end|exponent|externalResourcesRequired|fill|fillOpacity|fillRule|filter|filterRes|filterUnits|floodColor|floodOpacity|focusable|fontFamily|fontSize|fontSizeAdjust|fontStretch|fontStyle|fontVariant|fontWeight|format|from|fr|fx|fy|g1|g2|glyphName|glyphOrientationHorizontal|glyphOrientationVertical|glyphRef|gradientTransform|gradientUnits|hanging|horizAdvX|horizOriginX|ideographic|imageRendering|in|in2|intercept|k|k1|k2|k3|k4|kernelMatrix|kernelUnitLength|kerning|keyPoints|keySplines|keyTimes|lengthAdjust|letterSpacing|lightingColor|limitingConeAngle|local|markerEnd|markerMid|markerStart|markerHeight|markerUnits|markerWidth|mask|maskContentUnits|maskUnits|mathematical|mode|numOctaves|offset|opacity|operator|order|orient|orientation|origin|overflow|overlinePosition|overlineThickness|panose1|paintOrder|pathLength|patternContentUnits|patternTransform|patternUnits|pointerEvents|points|pointsAtX|pointsAtY|pointsAtZ|preserveAlpha|preserveAspectRatio|primitiveUnits|r|radius|refX|refY|renderingIntent|repeatCount|repeatDur|requiredExtensions|requiredFeatures|restart|result|rotate|rx|ry|scale|seed|shapeRendering|slope|spacing|specularConstant|specularExponent|speed|spreadMethod|startOffset|stdDeviation|stemh|stemv|stitchTiles|stopColor|stopOpacity|strikethroughPosition|strikethroughThickness|string|stroke|strokeDasharray|strokeDashoffset|strokeLinecap|strokeLinejoin|strokeMiterlimit|strokeOpacity|strokeWidth|surfaceScale|systemLanguage|tableValues|targetX|targetY|textAnchor|textDecoration|textRendering|textLength|to|transform|u1|u2|underlinePosition|underlineThickness|unicode|unicodeBidi|unicodeRange|unitsPerEm|vAlphabetic|vHanging|vIdeographic|vMathematical|values|vectorEffect|version|vertAdvY|vertOriginX|vertOriginY|viewBox|viewTarget|visibility|widths|wordSpacing|writingMode|x|xHeight|x1|x2|xChannelSelector|xlinkActuate|xlinkArcrole|xlinkHref|xlinkRole|xlinkShow|xlinkTitle|xlinkType|xmlBase|xmlns|xmlnsXlink|xmlLang|xmlSpace|y|y1|y2|yChannelSelector|z|zoomAndPan|for|class|autofocus)|(([Dd][Aa][Tt][Aa]|[Aa][Rr][Ii][Aa]|x)-.*))$/; // https://esbench.com/bench/5bfee68a4cd7e6009ef61d23\n\nvar index = memoize(function (prop) {\n return reactPropsRegex.test(prop) || prop.charCodeAt(0) === 111\n /* o */\n && prop.charCodeAt(1) === 110\n /* n */\n && prop.charCodeAt(2) < 91;\n}\n/* Z+1 */\n);\n\nfunction v(){return (v=Object.assign||function(e){for(var t=1;t1?t-1:0),r=1;r0?\" Args: \"+n.join(\", \"):\"\"))}var T=function(){function e(e){this.groupSizes=new Uint32Array(512),this.length=512,this.tag=e;}var t=e.prototype;return t.indexOfGroup=function(e){for(var t=0,n=0;n=this.groupSizes.length){for(var n=this.groupSizes,r=n.length,o=r;e>=o;)(o<<=1)<0&&j(16,\"\"+e);this.groupSizes=new Uint32Array(o),this.groupSizes.set(n),this.length=o;for(var s=r;s=this.length||0===this.groupSizes[e])return t;for(var n=this.groupSizes[e],r=this.indexOfGroup(e),o=r+n,s=r;s=V&&(V=t+1),x.set(e,t),k.set(t,e);},G=\"style[\"+A+'][data-styled-version=\"5.3.3\"]',L=new RegExp(\"^\"+A+'\\\\.g(\\\\d+)\\\\[id=\"([\\\\w\\\\d-]+)\"\\\\].*?\"([^\"]*)'),F=function(e,t,n){for(var r,o=n.split(\",\"),s=0,i=o.length;s=0;n--){var r=t[n];if(r&&1===r.nodeType&&r.hasAttribute(A))return r}}(n),s=void 0!==o?o.nextSibling:null;r.setAttribute(A,\"active\"),r.setAttribute(\"data-styled-version\",\"5.3.3\");var i=q();return i&&r.setAttribute(\"nonce\",i),n.insertBefore(r,s),r},$=function(){function e(e){var t=this.element=H(e);t.appendChild(document.createTextNode(\"\")),this.sheet=function(e){if(e.sheet)return e.sheet;for(var t=document.styleSheets,n=0,r=t.length;n=0){var n=document.createTextNode(t),r=this.nodes[e];return this.element.insertBefore(n,r||null),this.length++,!0}return !1},t.deleteRule=function(e){this.element.removeChild(this.nodes[e]),this.length--;},t.getRule=function(e){return e0&&(u+=e+\",\");})),r+=\"\"+a+c+'{content:\"'+u+'\"}/*!sc*/\\n';}}}return r}(this)},e}(),K=/(a)(d)/gi,Q=function(e){return String.fromCharCode(e+(e>25?39:97))};function ee(e){var t,n=\"\";for(t=Math.abs(e);t>52;t=t/52|0)n=Q(t%52)+n;return (Q(t%52)+n).replace(K,\"$1-$2\")}var te=function(e,t){for(var n=t.length;n;)e=33*e^t.charCodeAt(--n);return e},ne=function(e){return te(5381,e)};function re(e){for(var t=0;t>>0);if(!t.hasNameForId(r,i)){var a=n(s,\".\"+i,void 0,r);t.insertRules(r,i,a);}o.push(i),this.staticRulesId=i;}else {for(var c=this.rules.length,u=te(this.baseHash,n.hash),l=\"\",d=0;d>>0);if(!t.hasNameForId(r,m)){var y=n(l,\".\"+m,void 0,r);t.insertRules(r,m,y);}o.push(m);}}return o.join(\" \")},e}(),ie=/^\\s*\\/\\/.*$/gm,ae=[\":\",\"[\",\".\",\"#\"];function ce(e){var t,n,r,o,s=void 0===e?E:e,i=s.options,a=void 0===i?E:i,c=s.plugins,u=void 0===c?w:c,l=new stylis_min(a),d=[],h=function(e){function t(t){if(t)try{e(t+\"}\");}catch(e){}}return function(n,r,o,s,i,a,c,u,l,d){switch(n){case 1:if(0===l&&64===r.charCodeAt(0))return e(r+\";\"),\"\";break;case 2:if(0===u)return r+\"/*|*/\";break;case 3:switch(u){case 102:case 112:return e(o[0]+r),\"\";default:return r+(0===d?\"/*|*/\":\"\")}case-2:r.split(\"/*|*/}\").forEach(t);}}}((function(e){d.push(e);})),f=function(e,r,s){return 0===r&&-1!==ae.indexOf(s[n.length])||s.match(o)?e:\".\"+t};function m(e,s,i,a){void 0===a&&(a=\"&\");var c=e.replace(ie,\"\"),u=s&&i?i+\" \"+s+\" { \"+c+\" }\":c;return t=a,n=s,r=new RegExp(\"\\\\\"+n+\"\\\\b\",\"g\"),o=new RegExp(\"(\\\\\"+n+\"\\\\b){2,}\"),l(i||!s?\"\":s,u)}return l.use([].concat(u,[function(e,t,o){2===e&&o.length&&o[0].lastIndexOf(n)>0&&(o[0]=o[0].replace(r,f));},h,function(e){if(-2===e){var t=d;return d=[],t}}])),m.hash=u.length?u.reduce((function(e,t){return t.name||j(15),te(e,t.name)}),5381).toString():\"\",m}var ue=react.createContext(),le=ue.Consumer,de=react.createContext(),he=(de.Consumer,new Z),pe=ce();function fe(){return react.useContext(ue)||he}function me(){return react.useContext(de)||pe}function ye(e){var t=react.useState(e.stylisPlugins),n=t[0],s=t[1],c=fe(),u=react.useMemo((function(){var t=c;return e.sheet?t=e.sheet:e.target&&(t=t.reconstructWithOptions({target:e.target},!1)),e.disableCSSOMInjection&&(t=t.reconstructWithOptions({useCSSOMInjection:!1})),t}),[e.disableCSSOMInjection,e.sheet,e.target]),l=react.useMemo((function(){return ce({options:{prefix:!e.disableVendorPrefixes},plugins:n})}),[e.disableVendorPrefixes,n]);return react.useEffect((function(){shallowequal(n,e.stylisPlugins)||s(e.stylisPlugins);}),[e.stylisPlugins]),react.createElement(ue.Provider,{value:u},react.createElement(de.Provider,{value:l},e.children))}var ve=function(){function e(e,t){var n=this;this.inject=function(e,t){void 0===t&&(t=pe);var r=n.name+t.hash;e.hasNameForId(n.id,r)||e.insertRules(n.id,r,t(n.rules,r,\"@keyframes\"));},this.toString=function(){return j(12,String(n.name))},this.name=e,this.id=\"sc-keyframes-\"+e,this.rules=t;}return e.prototype.getName=function(e){return void 0===e&&(e=pe),this.name+e.hash},e}(),ge=/([A-Z])/,Se=/([A-Z])/g,we=/^ms-/,Ee=function(e){return \"-\"+e.toLowerCase()};function be(e){return ge.test(e)?e.replace(Se,Ee).replace(we,\"-ms-\"):e}var _e=function(e){return null==e||!1===e||\"\"===e};function Ne(e,n,r,o){if(Array.isArray(e)){for(var s,i=[],a=0,c=e.length;a1?t-1:0),r=1;r?@[\\\\\\]^`{|}~-]+/g,je=/(^-|-$)/g;function Te(e){return e.replace(De,\"-\").replace(je,\"\")}var xe=function(e){return ee(ne(e)>>>0)};function ke(e){return \"string\"==typeof e&&(\"production\"===\"production\")}var Ve=function(e){return \"function\"==typeof e||\"object\"==typeof e&&null!==e&&!Array.isArray(e)},Be=function(e){return \"__proto__\"!==e&&\"constructor\"!==e&&\"prototype\"!==e};function ze(e,t,n){var r=e[n];Ve(t)&&Ve(r)?Me(r,t):e[n]=t;}function Me(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r=0||(o[n]=e[n]);return o}(t,[\"componentId\"]),s=r&&r+\"-\"+(ke(e)?e:Te(_(e)));return qe(e,v({},o,{attrs:S,componentId:s}),n)},Object.defineProperty(C,\"defaultProps\",{get:function(){return this._foldedDefaultProps},set:function(t){this._foldedDefaultProps=o?Me({},e.defaultProps,t):t;}}),C.toString=function(){return \".\"+C.styledComponentId},i&&hoistNonReactStatics_cjs(C,e,{attrs:!0,componentStyle:!0,displayName:!0,foldedComponentIds:!0,shouldForwardProp:!0,styledComponentId:!0,target:!0,withComponent:!0}),C}var He=function(e){return function e(t,r,o){if(void 0===o&&(o=E),!reactIs.isValidElementType(r))return j(1,String(r));var s=function(){return t(r,o,Ce.apply(void 0,arguments))};return s.withConfig=function(n){return e(t,r,v({},o,{},n))},s.attrs=function(n){return e(t,r,v({},o,{attrs:Array.prototype.concat(o.attrs,n).filter(Boolean)}))},s}(qe,e)};[\"a\",\"abbr\",\"address\",\"area\",\"article\",\"aside\",\"audio\",\"b\",\"base\",\"bdi\",\"bdo\",\"big\",\"blockquote\",\"body\",\"br\",\"button\",\"canvas\",\"caption\",\"cite\",\"code\",\"col\",\"colgroup\",\"data\",\"datalist\",\"dd\",\"del\",\"details\",\"dfn\",\"dialog\",\"div\",\"dl\",\"dt\",\"em\",\"embed\",\"fieldset\",\"figcaption\",\"figure\",\"footer\",\"form\",\"h1\",\"h2\",\"h3\",\"h4\",\"h5\",\"h6\",\"head\",\"header\",\"hgroup\",\"hr\",\"html\",\"i\",\"iframe\",\"img\",\"input\",\"ins\",\"kbd\",\"keygen\",\"label\",\"legend\",\"li\",\"link\",\"main\",\"map\",\"mark\",\"marquee\",\"menu\",\"menuitem\",\"meta\",\"meter\",\"nav\",\"noscript\",\"object\",\"ol\",\"optgroup\",\"option\",\"output\",\"p\",\"param\",\"picture\",\"pre\",\"progress\",\"q\",\"rp\",\"rt\",\"ruby\",\"s\",\"samp\",\"script\",\"section\",\"select\",\"small\",\"source\",\"span\",\"strong\",\"style\",\"sub\",\"summary\",\"sup\",\"table\",\"tbody\",\"td\",\"textarea\",\"tfoot\",\"th\",\"thead\",\"time\",\"title\",\"tr\",\"track\",\"u\",\"ul\",\"var\",\"video\",\"wbr\",\"circle\",\"clipPath\",\"defs\",\"ellipse\",\"foreignObject\",\"g\",\"image\",\"line\",\"linearGradient\",\"marker\",\"mask\",\"path\",\"pattern\",\"polygon\",\"polyline\",\"radialGradient\",\"rect\",\"stop\",\"svg\",\"text\",\"textPath\",\"tspan\"].forEach((function(e){He[e]=He(e);}));var $e=function(){function e(e,t){this.rules=e,this.componentId=t,this.isStatic=re(e),Z.registerId(this.componentId+1);}var t=e.prototype;return t.createStyles=function(e,t,n,r){var o=r(Ne(this.rules,t,n,r).join(\"\"),\"\"),s=this.componentId+e;n.insertRules(s,s,o);},t.removeStyles=function(e,t){t.clearRules(this.componentId+e);},t.renderStyles=function(e,t,n,r){e>2&&Z.registerId(this.componentId+e),this.removeStyles(e,n),this.createStyles(e,t,n,r);},e}();function We(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),o=1;o1?t-1:0),r=1;r\"+t+\"\"},this.getStyleTags=function(){return e.sealed?j(2):e._emitSheetCSS()},this.getStyleElement=function(){var t;if(e.sealed)return j(2);var n=((t={})[A]=\"\",t[\"data-styled-version\"]=\"5.3.3\",t.dangerouslySetInnerHTML={__html:e.instance.toString()},t),o=q();return o&&(n.nonce=o),[react.createElement(\"style\",v({},n,{key:\"sc-0-0\"}))]},this.seal=function(){e.sealed=!0;},this.instance=new Z({isServer:!0}),this.sealed=!1;}var t=e.prototype;return t.collectStyles=function(e){return this.sealed?j(2):react.createElement(ye,{sheet:this.instance},e)},t.interleaveWithNodeStream=function(e){return j(3)},e}(),Xe=function(e){var t=react.forwardRef((function(t,n){var o=react.useContext(Ge),i=e.defaultProps,a=Re(t,o,i);return react.createElement(e,v({},t,{theme:a,ref:n}))}));return hoistNonReactStatics_cjs(t,e),t.displayName=\"WithTheme(\"+_(e)+\")\",t},Ze=function(){return react.useContext(Ge)},Ke={StyleSheet:Z,masterSheet:he};\n\nexport default He;\nexport { Je as ServerStyleSheet, le as StyleSheetConsumer, ue as StyleSheetContext, ye as StyleSheetManager, Le as ThemeConsumer, Ge as ThemeContext, Fe as ThemeProvider, Ke as __PRIVATE__, We as createGlobalStyle, Ce as css, N as isStyledComponent, Ue as keyframes, Ze as useTheme, C as version, Xe as withTheme };\n", "function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nexport { _assertThisInitialized as _ };\n", "import { _ as _setPrototypeOf, a as _extends, b as _inheritsLoose } from './common/inheritsLoose-302c9f06.js';\nimport { _ as _assertThisInitialized } from './common/assertThisInitialized-270cf3b1.js';\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _isNativeFunction(fn) {\n return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\n}\n\nfunction _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\n\nfunction _construct(Parent, args, Class) {\n if (_isNativeReflectConstruct()) {\n _construct = Reflect.construct;\n } else {\n _construct = function _construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n if (Class) _setPrototypeOf(instance, Class.prototype);\n return instance;\n };\n }\n\n return _construct.apply(null, arguments);\n}\n\nfunction _wrapNativeSuper(Class) {\n var _cache = typeof Map === \"function\" ? new Map() : undefined;\n\n _wrapNativeSuper = function _wrapNativeSuper(Class) {\n if (Class === null || !_isNativeFunction(Class)) return Class;\n\n if (typeof Class !== \"function\") {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n if (typeof _cache !== \"undefined\") {\n if (_cache.has(Class)) return _cache.get(Class);\n\n _cache.set(Class, Wrapper);\n }\n\n function Wrapper() {\n return _construct(Class, arguments, _getPrototypeOf(this).constructor);\n }\n\n Wrapper.prototype = Object.create(Class.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n return _setPrototypeOf(Wrapper, Class);\n };\n\n return _wrapNativeSuper(Class);\n}\n\n/**\n * Create an error file out of errors.md for development and a simple web link to the full errors\n * in production mode.\n * @private\n */\n\n\nvar PolishedError = /*#__PURE__*/function (_Error) {\n _inheritsLoose(PolishedError, _Error);\n\n function PolishedError(code) {\n var _this;\n\n {\n _this = _Error.call(this, \"An error occurred. See https://github.com/styled-components/polished/blob/main/src/internalHelpers/errors.md#\" + code + \" for more information.\") || this;\n }\n\n return _assertThisInitialized(_this);\n }\n\n return PolishedError;\n}( /*#__PURE__*/_wrapNativeSuper(Error));\n\nfunction colorToInt(color) {\n return Math.round(color * 255);\n}\n\nfunction convertToInt(red, green, blue) {\n return colorToInt(red) + \",\" + colorToInt(green) + \",\" + colorToInt(blue);\n}\n\nfunction hslToRgb(hue, saturation, lightness, convert) {\n if (convert === void 0) {\n convert = convertToInt;\n }\n\n if (saturation === 0) {\n // achromatic\n return convert(lightness, lightness, lightness);\n } // formulae from https://en.wikipedia.org/wiki/HSL_and_HSV\n\n\n var huePrime = (hue % 360 + 360) % 360 / 60;\n var chroma = (1 - Math.abs(2 * lightness - 1)) * saturation;\n var secondComponent = chroma * (1 - Math.abs(huePrime % 2 - 1));\n var red = 0;\n var green = 0;\n var blue = 0;\n\n if (huePrime >= 0 && huePrime < 1) {\n red = chroma;\n green = secondComponent;\n } else if (huePrime >= 1 && huePrime < 2) {\n red = secondComponent;\n green = chroma;\n } else if (huePrime >= 2 && huePrime < 3) {\n green = chroma;\n blue = secondComponent;\n } else if (huePrime >= 3 && huePrime < 4) {\n green = secondComponent;\n blue = chroma;\n } else if (huePrime >= 4 && huePrime < 5) {\n red = secondComponent;\n blue = chroma;\n } else if (huePrime >= 5 && huePrime < 6) {\n red = chroma;\n blue = secondComponent;\n }\n\n var lightnessModification = lightness - chroma / 2;\n var finalRed = red + lightnessModification;\n var finalGreen = green + lightnessModification;\n var finalBlue = blue + lightnessModification;\n return convert(finalRed, finalGreen, finalBlue);\n}\n\nvar namedColorMap = {\n aliceblue: 'f0f8ff',\n antiquewhite: 'faebd7',\n aqua: '00ffff',\n aquamarine: '7fffd4',\n azure: 'f0ffff',\n beige: 'f5f5dc',\n bisque: 'ffe4c4',\n black: '000',\n blanchedalmond: 'ffebcd',\n blue: '0000ff',\n blueviolet: '8a2be2',\n brown: 'a52a2a',\n burlywood: 'deb887',\n cadetblue: '5f9ea0',\n chartreuse: '7fff00',\n chocolate: 'd2691e',\n coral: 'ff7f50',\n cornflowerblue: '6495ed',\n cornsilk: 'fff8dc',\n crimson: 'dc143c',\n cyan: '00ffff',\n darkblue: '00008b',\n darkcyan: '008b8b',\n darkgoldenrod: 'b8860b',\n darkgray: 'a9a9a9',\n darkgreen: '006400',\n darkgrey: 'a9a9a9',\n darkkhaki: 'bdb76b',\n darkmagenta: '8b008b',\n darkolivegreen: '556b2f',\n darkorange: 'ff8c00',\n darkorchid: '9932cc',\n darkred: '8b0000',\n darksalmon: 'e9967a',\n darkseagreen: '8fbc8f',\n darkslateblue: '483d8b',\n darkslategray: '2f4f4f',\n darkslategrey: '2f4f4f',\n darkturquoise: '00ced1',\n darkviolet: '9400d3',\n deeppink: 'ff1493',\n deepskyblue: '00bfff',\n dimgray: '696969',\n dimgrey: '696969',\n dodgerblue: '1e90ff',\n firebrick: 'b22222',\n floralwhite: 'fffaf0',\n forestgreen: '228b22',\n fuchsia: 'ff00ff',\n gainsboro: 'dcdcdc',\n ghostwhite: 'f8f8ff',\n gold: 'ffd700',\n goldenrod: 'daa520',\n gray: '808080',\n green: '008000',\n greenyellow: 'adff2f',\n grey: '808080',\n honeydew: 'f0fff0',\n hotpink: 'ff69b4',\n indianred: 'cd5c5c',\n indigo: '4b0082',\n ivory: 'fffff0',\n khaki: 'f0e68c',\n lavender: 'e6e6fa',\n lavenderblush: 'fff0f5',\n lawngreen: '7cfc00',\n lemonchiffon: 'fffacd',\n lightblue: 'add8e6',\n lightcoral: 'f08080',\n lightcyan: 'e0ffff',\n lightgoldenrodyellow: 'fafad2',\n lightgray: 'd3d3d3',\n lightgreen: '90ee90',\n lightgrey: 'd3d3d3',\n lightpink: 'ffb6c1',\n lightsalmon: 'ffa07a',\n lightseagreen: '20b2aa',\n lightskyblue: '87cefa',\n lightslategray: '789',\n lightslategrey: '789',\n lightsteelblue: 'b0c4de',\n lightyellow: 'ffffe0',\n lime: '0f0',\n limegreen: '32cd32',\n linen: 'faf0e6',\n magenta: 'f0f',\n maroon: '800000',\n mediumaquamarine: '66cdaa',\n mediumblue: '0000cd',\n mediumorchid: 'ba55d3',\n mediumpurple: '9370db',\n mediumseagreen: '3cb371',\n mediumslateblue: '7b68ee',\n mediumspringgreen: '00fa9a',\n mediumturquoise: '48d1cc',\n mediumvioletred: 'c71585',\n midnightblue: '191970',\n mintcream: 'f5fffa',\n mistyrose: 'ffe4e1',\n moccasin: 'ffe4b5',\n navajowhite: 'ffdead',\n navy: '000080',\n oldlace: 'fdf5e6',\n olive: '808000',\n olivedrab: '6b8e23',\n orange: 'ffa500',\n orangered: 'ff4500',\n orchid: 'da70d6',\n palegoldenrod: 'eee8aa',\n palegreen: '98fb98',\n paleturquoise: 'afeeee',\n palevioletred: 'db7093',\n papayawhip: 'ffefd5',\n peachpuff: 'ffdab9',\n peru: 'cd853f',\n pink: 'ffc0cb',\n plum: 'dda0dd',\n powderblue: 'b0e0e6',\n purple: '800080',\n rebeccapurple: '639',\n red: 'f00',\n rosybrown: 'bc8f8f',\n royalblue: '4169e1',\n saddlebrown: '8b4513',\n salmon: 'fa8072',\n sandybrown: 'f4a460',\n seagreen: '2e8b57',\n seashell: 'fff5ee',\n sienna: 'a0522d',\n silver: 'c0c0c0',\n skyblue: '87ceeb',\n slateblue: '6a5acd',\n slategray: '708090',\n slategrey: '708090',\n snow: 'fffafa',\n springgreen: '00ff7f',\n steelblue: '4682b4',\n tan: 'd2b48c',\n teal: '008080',\n thistle: 'd8bfd8',\n tomato: 'ff6347',\n turquoise: '40e0d0',\n violet: 'ee82ee',\n wheat: 'f5deb3',\n white: 'fff',\n whitesmoke: 'f5f5f5',\n yellow: 'ff0',\n yellowgreen: '9acd32'\n};\n/**\n * Checks if a string is a CSS named color and returns its equivalent hex value, otherwise returns the original color.\n * @private\n */\n\nfunction nameToHex(color) {\n if (typeof color !== 'string') return color;\n var normalizedColorName = color.toLowerCase();\n return namedColorMap[normalizedColorName] ? \"#\" + namedColorMap[normalizedColorName] : color;\n}\n\nvar hexRegex = /^#[a-fA-F0-9]{6}$/;\nvar hexRgbaRegex = /^#[a-fA-F0-9]{8}$/;\nvar reducedHexRegex = /^#[a-fA-F0-9]{3}$/;\nvar reducedRgbaHexRegex = /^#[a-fA-F0-9]{4}$/;\nvar rgbRegex = /^rgb\\(\\s*(\\d{1,3})\\s*,\\s*(\\d{1,3})\\s*,\\s*(\\d{1,3})\\s*\\)$/i;\nvar rgbaRegex = /^rgba\\(\\s*(\\d{1,3})\\s*,\\s*(\\d{1,3})\\s*,\\s*(\\d{1,3})\\s*,\\s*([-+]?[0-9]*[.]?[0-9]+)\\s*\\)$/i;\nvar hslRegex = /^hsl\\(\\s*(\\d{0,3}[.]?[0-9]+)\\s*,\\s*(\\d{1,3}[.]?[0-9]?)%\\s*,\\s*(\\d{1,3}[.]?[0-9]?)%\\s*\\)$/i;\nvar hslaRegex = /^hsla\\(\\s*(\\d{0,3}[.]?[0-9]+)\\s*,\\s*(\\d{1,3}[.]?[0-9]?)%\\s*,\\s*(\\d{1,3}[.]?[0-9]?)%\\s*,\\s*([-+]?[0-9]*[.]?[0-9]+)\\s*\\)$/i;\n/**\n * Returns an RgbColor or RgbaColor object. This utility function is only useful\n * if want to extract a color component. With the color util `toColorString` you\n * can convert a RgbColor or RgbaColor object back to a string.\n *\n * @example\n * // Assigns `{ red: 255, green: 0, blue: 0 }` to color1\n * const color1 = parseToRgb('rgb(255, 0, 0)');\n * // Assigns `{ red: 92, green: 102, blue: 112, alpha: 0.75 }` to color2\n * const color2 = parseToRgb('hsla(210, 10%, 40%, 0.75)');\n */\n\nfunction parseToRgb(color) {\n if (typeof color !== 'string') {\n throw new PolishedError(3);\n }\n\n var normalizedColor = nameToHex(color);\n\n if (normalizedColor.match(hexRegex)) {\n return {\n red: parseInt(\"\" + normalizedColor[1] + normalizedColor[2], 16),\n green: parseInt(\"\" + normalizedColor[3] + normalizedColor[4], 16),\n blue: parseInt(\"\" + normalizedColor[5] + normalizedColor[6], 16)\n };\n }\n\n if (normalizedColor.match(hexRgbaRegex)) {\n var alpha = parseFloat((parseInt(\"\" + normalizedColor[7] + normalizedColor[8], 16) / 255).toFixed(2));\n return {\n red: parseInt(\"\" + normalizedColor[1] + normalizedColor[2], 16),\n green: parseInt(\"\" + normalizedColor[3] + normalizedColor[4], 16),\n blue: parseInt(\"\" + normalizedColor[5] + normalizedColor[6], 16),\n alpha: alpha\n };\n }\n\n if (normalizedColor.match(reducedHexRegex)) {\n return {\n red: parseInt(\"\" + normalizedColor[1] + normalizedColor[1], 16),\n green: parseInt(\"\" + normalizedColor[2] + normalizedColor[2], 16),\n blue: parseInt(\"\" + normalizedColor[3] + normalizedColor[3], 16)\n };\n }\n\n if (normalizedColor.match(reducedRgbaHexRegex)) {\n var _alpha = parseFloat((parseInt(\"\" + normalizedColor[4] + normalizedColor[4], 16) / 255).toFixed(2));\n\n return {\n red: parseInt(\"\" + normalizedColor[1] + normalizedColor[1], 16),\n green: parseInt(\"\" + normalizedColor[2] + normalizedColor[2], 16),\n blue: parseInt(\"\" + normalizedColor[3] + normalizedColor[3], 16),\n alpha: _alpha\n };\n }\n\n var rgbMatched = rgbRegex.exec(normalizedColor);\n\n if (rgbMatched) {\n return {\n red: parseInt(\"\" + rgbMatched[1], 10),\n green: parseInt(\"\" + rgbMatched[2], 10),\n blue: parseInt(\"\" + rgbMatched[3], 10)\n };\n }\n\n var rgbaMatched = rgbaRegex.exec(normalizedColor.substring(0, 50));\n\n if (rgbaMatched) {\n return {\n red: parseInt(\"\" + rgbaMatched[1], 10),\n green: parseInt(\"\" + rgbaMatched[2], 10),\n blue: parseInt(\"\" + rgbaMatched[3], 10),\n alpha: parseFloat(\"\" + rgbaMatched[4])\n };\n }\n\n var hslMatched = hslRegex.exec(normalizedColor);\n\n if (hslMatched) {\n var hue = parseInt(\"\" + hslMatched[1], 10);\n var saturation = parseInt(\"\" + hslMatched[2], 10) / 100;\n var lightness = parseInt(\"\" + hslMatched[3], 10) / 100;\n var rgbColorString = \"rgb(\" + hslToRgb(hue, saturation, lightness) + \")\";\n var hslRgbMatched = rgbRegex.exec(rgbColorString);\n\n if (!hslRgbMatched) {\n throw new PolishedError(4, normalizedColor, rgbColorString);\n }\n\n return {\n red: parseInt(\"\" + hslRgbMatched[1], 10),\n green: parseInt(\"\" + hslRgbMatched[2], 10),\n blue: parseInt(\"\" + hslRgbMatched[3], 10)\n };\n }\n\n var hslaMatched = hslaRegex.exec(normalizedColor.substring(0, 50));\n\n if (hslaMatched) {\n var _hue = parseInt(\"\" + hslaMatched[1], 10);\n\n var _saturation = parseInt(\"\" + hslaMatched[2], 10) / 100;\n\n var _lightness = parseInt(\"\" + hslaMatched[3], 10) / 100;\n\n var _rgbColorString = \"rgb(\" + hslToRgb(_hue, _saturation, _lightness) + \")\";\n\n var _hslRgbMatched = rgbRegex.exec(_rgbColorString);\n\n if (!_hslRgbMatched) {\n throw new PolishedError(4, normalizedColor, _rgbColorString);\n }\n\n return {\n red: parseInt(\"\" + _hslRgbMatched[1], 10),\n green: parseInt(\"\" + _hslRgbMatched[2], 10),\n blue: parseInt(\"\" + _hslRgbMatched[3], 10),\n alpha: parseFloat(\"\" + hslaMatched[4])\n };\n }\n\n throw new PolishedError(5);\n}\n\nfunction rgbToHsl(color) {\n // make sure rgb are contained in a set of [0, 255]\n var red = color.red / 255;\n var green = color.green / 255;\n var blue = color.blue / 255;\n var max = Math.max(red, green, blue);\n var min = Math.min(red, green, blue);\n var lightness = (max + min) / 2;\n\n if (max === min) {\n // achromatic\n if (color.alpha !== undefined) {\n return {\n hue: 0,\n saturation: 0,\n lightness: lightness,\n alpha: color.alpha\n };\n } else {\n return {\n hue: 0,\n saturation: 0,\n lightness: lightness\n };\n }\n }\n\n var hue;\n var delta = max - min;\n var saturation = lightness > 0.5 ? delta / (2 - max - min) : delta / (max + min);\n\n switch (max) {\n case red:\n hue = (green - blue) / delta + (green < blue ? 6 : 0);\n break;\n\n case green:\n hue = (blue - red) / delta + 2;\n break;\n\n default:\n // blue case\n hue = (red - green) / delta + 4;\n break;\n }\n\n hue *= 60;\n\n if (color.alpha !== undefined) {\n return {\n hue: hue,\n saturation: saturation,\n lightness: lightness,\n alpha: color.alpha\n };\n }\n\n return {\n hue: hue,\n saturation: saturation,\n lightness: lightness\n };\n}\n\n/**\n * Returns an HslColor or HslaColor object. This utility function is only useful\n * if want to extract a color component. With the color util `toColorString` you\n * can convert a HslColor or HslaColor object back to a string.\n *\n * @example\n * // Assigns `{ hue: 0, saturation: 1, lightness: 0.5 }` to color1\n * const color1 = parseToHsl('rgb(255, 0, 0)');\n * // Assigns `{ hue: 128, saturation: 1, lightness: 0.5, alpha: 0.75 }` to color2\n * const color2 = parseToHsl('hsla(128, 100%, 50%, 0.75)');\n */\nfunction parseToHsl(color) {\n // Note: At a later stage we can optimize this function as right now a hsl\n // color would be parsed converted to rgb values and converted back to hsl.\n return rgbToHsl(parseToRgb(color));\n}\n\n/**\n * Reduces hex values if possible e.g. #ff8866 to #f86\n * @private\n */\nvar reduceHexValue = function reduceHexValue(value) {\n if (value.length === 7 && value[1] === value[2] && value[3] === value[4] && value[5] === value[6]) {\n return \"#\" + value[1] + value[3] + value[5];\n }\n\n return value;\n};\n\nfunction numberToHex(value) {\n var hex = value.toString(16);\n return hex.length === 1 ? \"0\" + hex : hex;\n}\n\nfunction colorToHex(color) {\n return numberToHex(Math.round(color * 255));\n}\n\nfunction convertToHex(red, green, blue) {\n return reduceHexValue(\"#\" + colorToHex(red) + colorToHex(green) + colorToHex(blue));\n}\n\nfunction hslToHex(hue, saturation, lightness) {\n return hslToRgb(hue, saturation, lightness, convertToHex);\n}\n\n/**\n * Returns a string value for the color. The returned result is the smallest possible hex notation.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: hsl(359, 0.75, 0.4),\n * background: hsl({ hue: 360, saturation: 0.75, lightness: 0.4 }),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${hsl(359, 0.75, 0.4)};\n * background: ${hsl({ hue: 360, saturation: 0.75, lightness: 0.4 })};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * background: \"#b3191c\";\n * background: \"#b3191c\";\n * }\n */\nfunction hsl(value, saturation, lightness) {\n if (typeof value === 'number' && typeof saturation === 'number' && typeof lightness === 'number') {\n return hslToHex(value, saturation, lightness);\n } else if (typeof value === 'object' && saturation === undefined && lightness === undefined) {\n return hslToHex(value.hue, value.saturation, value.lightness);\n }\n\n throw new PolishedError(1);\n}\n\n/**\n * Returns a string value for the color. The returned result is the smallest possible rgba or hex notation.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: hsla(359, 0.75, 0.4, 0.7),\n * background: hsla({ hue: 360, saturation: 0.75, lightness: 0.4, alpha: 0,7 }),\n * background: hsla(359, 0.75, 0.4, 1),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${hsla(359, 0.75, 0.4, 0.7)};\n * background: ${hsla({ hue: 360, saturation: 0.75, lightness: 0.4, alpha: 0,7 })};\n * background: ${hsla(359, 0.75, 0.4, 1)};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * background: \"rgba(179,25,28,0.7)\";\n * background: \"rgba(179,25,28,0.7)\";\n * background: \"#b3191c\";\n * }\n */\nfunction hsla(value, saturation, lightness, alpha) {\n if (typeof value === 'number' && typeof saturation === 'number' && typeof lightness === 'number' && typeof alpha === 'number') {\n return alpha >= 1 ? hslToHex(value, saturation, lightness) : \"rgba(\" + hslToRgb(value, saturation, lightness) + \",\" + alpha + \")\";\n } else if (typeof value === 'object' && saturation === undefined && lightness === undefined && alpha === undefined) {\n return value.alpha >= 1 ? hslToHex(value.hue, value.saturation, value.lightness) : \"rgba(\" + hslToRgb(value.hue, value.saturation, value.lightness) + \",\" + value.alpha + \")\";\n }\n\n throw new PolishedError(2);\n}\n\n/**\n * Returns a string value for the color. The returned result is the smallest possible hex notation.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: rgb(255, 205, 100),\n * background: rgb({ red: 255, green: 205, blue: 100 }),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${rgb(255, 205, 100)};\n * background: ${rgb({ red: 255, green: 205, blue: 100 })};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * background: \"#ffcd64\";\n * background: \"#ffcd64\";\n * }\n */\nfunction rgb(value, green, blue) {\n if (typeof value === 'number' && typeof green === 'number' && typeof blue === 'number') {\n return reduceHexValue(\"#\" + numberToHex(value) + numberToHex(green) + numberToHex(blue));\n } else if (typeof value === 'object' && green === undefined && blue === undefined) {\n return reduceHexValue(\"#\" + numberToHex(value.red) + numberToHex(value.green) + numberToHex(value.blue));\n }\n\n throw new PolishedError(6);\n}\n\n/**\n * Returns a string value for the color. The returned result is the smallest possible rgba or hex notation.\n *\n * Can also be used to fade a color by passing a hex value or named CSS color along with an alpha value.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: rgba(255, 205, 100, 0.7),\n * background: rgba({ red: 255, green: 205, blue: 100, alpha: 0.7 }),\n * background: rgba(255, 205, 100, 1),\n * background: rgba('#ffffff', 0.4),\n * background: rgba('black', 0.7),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${rgba(255, 205, 100, 0.7)};\n * background: ${rgba({ red: 255, green: 205, blue: 100, alpha: 0.7 })};\n * background: ${rgba(255, 205, 100, 1)};\n * background: ${rgba('#ffffff', 0.4)};\n * background: ${rgba('black', 0.7)};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * background: \"rgba(255,205,100,0.7)\";\n * background: \"rgba(255,205,100,0.7)\";\n * background: \"#ffcd64\";\n * background: \"rgba(255,255,255,0.4)\";\n * background: \"rgba(0,0,0,0.7)\";\n * }\n */\nfunction rgba(firstValue, secondValue, thirdValue, fourthValue) {\n if (typeof firstValue === 'string' && typeof secondValue === 'number') {\n var rgbValue = parseToRgb(firstValue);\n return \"rgba(\" + rgbValue.red + \",\" + rgbValue.green + \",\" + rgbValue.blue + \",\" + secondValue + \")\";\n } else if (typeof firstValue === 'number' && typeof secondValue === 'number' && typeof thirdValue === 'number' && typeof fourthValue === 'number') {\n return fourthValue >= 1 ? rgb(firstValue, secondValue, thirdValue) : \"rgba(\" + firstValue + \",\" + secondValue + \",\" + thirdValue + \",\" + fourthValue + \")\";\n } else if (typeof firstValue === 'object' && secondValue === undefined && thirdValue === undefined && fourthValue === undefined) {\n return firstValue.alpha >= 1 ? rgb(firstValue.red, firstValue.green, firstValue.blue) : \"rgba(\" + firstValue.red + \",\" + firstValue.green + \",\" + firstValue.blue + \",\" + firstValue.alpha + \")\";\n }\n\n throw new PolishedError(7);\n}\n\nvar isRgb = function isRgb(color) {\n return typeof color.red === 'number' && typeof color.green === 'number' && typeof color.blue === 'number' && (typeof color.alpha !== 'number' || typeof color.alpha === 'undefined');\n};\n\nvar isRgba = function isRgba(color) {\n return typeof color.red === 'number' && typeof color.green === 'number' && typeof color.blue === 'number' && typeof color.alpha === 'number';\n};\n\nvar isHsl = function isHsl(color) {\n return typeof color.hue === 'number' && typeof color.saturation === 'number' && typeof color.lightness === 'number' && (typeof color.alpha !== 'number' || typeof color.alpha === 'undefined');\n};\n\nvar isHsla = function isHsla(color) {\n return typeof color.hue === 'number' && typeof color.saturation === 'number' && typeof color.lightness === 'number' && typeof color.alpha === 'number';\n};\n/**\n * Converts a RgbColor, RgbaColor, HslColor or HslaColor object to a color string.\n * This util is useful in case you only know on runtime which color object is\n * used. Otherwise we recommend to rely on `rgb`, `rgba`, `hsl` or `hsla`.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: toColorString({ red: 255, green: 205, blue: 100 }),\n * background: toColorString({ red: 255, green: 205, blue: 100, alpha: 0.72 }),\n * background: toColorString({ hue: 240, saturation: 1, lightness: 0.5 }),\n * background: toColorString({ hue: 360, saturation: 0.75, lightness: 0.4, alpha: 0.72 }),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${toColorString({ red: 255, green: 205, blue: 100 })};\n * background: ${toColorString({ red: 255, green: 205, blue: 100, alpha: 0.72 })};\n * background: ${toColorString({ hue: 240, saturation: 1, lightness: 0.5 })};\n * background: ${toColorString({ hue: 360, saturation: 0.75, lightness: 0.4, alpha: 0.72 })};\n * `\n *\n * // CSS in JS Output\n * element {\n * background: \"#ffcd64\";\n * background: \"rgba(255,205,100,0.72)\";\n * background: \"#00f\";\n * background: \"rgba(179,25,25,0.72)\";\n * }\n */\n\n\nfunction toColorString(color) {\n if (typeof color !== 'object') throw new PolishedError(8);\n if (isRgba(color)) return rgba(color);\n if (isRgb(color)) return rgb(color);\n if (isHsla(color)) return hsla(color);\n if (isHsl(color)) return hsl(color);\n throw new PolishedError(8);\n}\n\n// Type definitions taken from https://github.com/gcanti/flow-static-land/blob/master/src/Fun.js\n// eslint-disable-next-line no-unused-vars\n// eslint-disable-next-line no-unused-vars\n// eslint-disable-next-line no-redeclare\nfunction curried(f, length, acc) {\n return function fn() {\n // eslint-disable-next-line prefer-rest-params\n var combined = acc.concat(Array.prototype.slice.call(arguments));\n return combined.length >= length ? f.apply(this, combined) : curried(f, length, combined);\n };\n} // eslint-disable-next-line no-redeclare\n\n\nfunction curry(f) {\n // eslint-disable-line no-redeclare\n return curried(f, f.length, []);\n}\n\nfunction guard(lowerBoundary, upperBoundary, value) {\n return Math.max(lowerBoundary, Math.min(upperBoundary, value));\n}\n\n/**\n * Returns a string value for the darkened color.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: darken(0.2, '#FFCD64'),\n * background: darken('0.2', 'rgba(255,205,100,0.7)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${darken(0.2, '#FFCD64')};\n * background: ${darken('0.2', 'rgba(255,205,100,0.7)')};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * background: \"#ffbd31\";\n * background: \"rgba(255,189,49,0.7)\";\n * }\n */\n\nfunction darken(amount, color) {\n if (color === 'transparent') return color;\n var hslColor = parseToHsl(color);\n return toColorString(_extends({}, hslColor, {\n lightness: guard(0, 1, hslColor.lightness - parseFloat(amount))\n }));\n} // prettier-ignore\n\n\nvar curriedDarken = /*#__PURE__*/curry\n/* :: */\n(darken);\n\n/**\n * Returns a string value for the lightened color.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: lighten(0.2, '#CCCD64'),\n * background: lighten('0.2', 'rgba(204,205,100,0.7)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${lighten(0.2, '#FFCD64')};\n * background: ${lighten('0.2', 'rgba(204,205,100,0.7)')};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * background: \"#e5e6b1\";\n * background: \"rgba(229,230,177,0.7)\";\n * }\n */\n\nfunction lighten(amount, color) {\n if (color === 'transparent') return color;\n var hslColor = parseToHsl(color);\n return toColorString(_extends({}, hslColor, {\n lightness: guard(0, 1, hslColor.lightness + parseFloat(amount))\n }));\n} // prettier-ignore\n\n\nvar curriedLighten = /*#__PURE__*/curry\n/* :: */\n(lighten);\n\n/**\n * Decreases the opacity of a color. Its range for the amount is between 0 to 1.\n *\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: transparentize(0.1, '#fff');\n * background: transparentize(0.2, 'hsl(0, 0%, 100%)'),\n * background: transparentize('0.5', 'rgba(255, 0, 0, 0.8)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${transparentize(0.1, '#fff')};\n * background: ${transparentize(0.2, 'hsl(0, 0%, 100%)')},\n * background: ${transparentize('0.5', 'rgba(255, 0, 0, 0.8)')},\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * background: \"rgba(255,255,255,0.9)\";\n * background: \"rgba(255,255,255,0.8)\";\n * background: \"rgba(255,0,0,0.3)\";\n * }\n */\n\nfunction transparentize(amount, color) {\n if (color === 'transparent') return color;\n var parsedColor = parseToRgb(color);\n var alpha = typeof parsedColor.alpha === 'number' ? parsedColor.alpha : 1;\n\n var colorWithAlpha = _extends({}, parsedColor, {\n alpha: guard(0, 1, +(alpha * 100 - parseFloat(amount) * 100).toFixed(2) / 100)\n });\n\n return rgba(colorWithAlpha);\n} // prettier-ignore\n\n\nvar curriedTransparentize = /*#__PURE__*/curry\n/* :: */\n(transparentize);\n\nexport { curriedDarken as darken, curriedLighten as lighten, curriedTransparentize as transparentize };\n", "import {useEffect, useState} from \"../pkg/react.js\";\nimport {useLocalStorage} from \"../link/react/src/index.js\";\nexport var DarkModeOption;\n(function(DarkModeOption2) {\n DarkModeOption2[\"always\"] = \"always\";\n DarkModeOption2[\"never\"] = \"never\";\n DarkModeOption2[\"auto\"] = \"auto\";\n})(DarkModeOption || (DarkModeOption = {}));\nexport const useDarkMode = () => {\n let def = false;\n if (checkPrefersDark()) {\n def = true;\n }\n const [dark, setDark] = useState(def);\n const [darkLocal, setDarkLocal] = useLocalStorage(\"darkMode\", DarkModeOption.auto);\n window.matchMedia(\"(prefers-color-scheme: dark)\").addEventListener(\"change\", (e) => {\n setDarkBoth(e.matches ? true : false);\n });\n function setDarkBoth(a) {\n if (a == void 0) {\n setDark(checkPrefersDark());\n setDarkLocal(DarkModeOption.auto);\n } else if (a == true) {\n setDark(a);\n setDarkLocal(DarkModeOption.always);\n } else if (a == false) {\n setDark(a);\n setDarkLocal(DarkModeOption.never);\n }\n }\n useEffect(() => {\n if (darkLocal == DarkModeOption.auto) {\n setDark(checkPrefersDark());\n } else if (darkLocal == DarkModeOption.always) {\n setDark(true);\n } else if (darkLocal == DarkModeOption.never) {\n setDark(false);\n }\n }, [darkLocal]);\n return [dark, setDarkBoth, darkLocal];\n};\nfunction checkPrefersDark() {\n return window.matchMedia && window.matchMedia(\"(prefers-color-scheme: dark)\").matches;\n}\n", "import { r as react } from './common/index-04f37d11.js';\nimport './common/_commonjsHelpers-8c19dec8.js';\n\nlet e={data:\"\"},t=t=>\"object\"==typeof window?((t?t.querySelector(\"#_goober\"):window._goober)||Object.assign((t||document.head).appendChild(document.createElement(\"style\")),{innerHTML:\" \",id:\"_goober\"})).firstChild:t||e,l=/(?:([\\u0080-\\uFFFF\\w-%@]+) *:? *([^{;]+?);|([^;}{]*?) *{)|(})/g,a=/\\/\\*[^]*?\\*\\/|\\s\\s+|\\n/g,o=(e,t)=>{let r,l=\"\",a=\"\",n=\"\";for(let c in e){let s=e[c];\"object\"==typeof s?(r=t?t.replace(/([^,])+/g,e=>c.replace(/([^,])+/g,t=>/&/.test(t)?t.replace(/&/g,e):e?e+\" \"+t:t)):c,a+=\"@\"==c[0]?\"f\"==c[1]?o(s,c):c+\"{\"+o(s,\"k\"==c[1]?\"\":t)+\"}\":o(s,r)):\"@\"==c[0]&&\"i\"==c[1]?l=c+\" \"+s+\";\":(c=c.replace(/[A-Z]/g,\"-$&\").toLowerCase(),n+=o.p?o.p(c,s):c+\":\"+s+\";\");}return n[0]?(r=t?t+\"{\"+n+\"}\":n,l+r+a):l+a},n={},c=e=>{let t=\"\";for(let r in e)t+=r+(\"object\"==typeof e[r]?c(e[r]):e[r]);return t},s=(e,t,r,s,i)=>{let p=\"object\"==typeof e?c(e):e,u=n[p]||(n[p]=(e=>{let t=0,r=11;for(;t>>0;return \"go\"+r})(p));if(!n[u]){let t=\"object\"==typeof e?e:(e=>{let t,r=[{}];for(;t=l.exec(e.replace(a,\"\"));)t[4]&&r.shift(),t[3]?r.unshift(r[0][t[3]]=r[0][t[3]]||{}):t[4]||(r[0][t[1]]=t[2]);return r[0]})(e);n[u]=o(i?{[\"@keyframes \"+u]:t}:t,r?\"\":\".\"+u);}return ((e,t,r)=>{-1==t.data.indexOf(e)&&(t.data=r?e+t.data:t.data+e);})(n[u],t,s),u},i=(e,t,r)=>e.reduce((e,l,a)=>{let n=t[a];if(n&&n.call){let e=n(r),t=e&&e.props&&e.props.className||/^go/.test(e)&&e;n=t?\".\"+t:e&&\"object\"==typeof e?e.props?\"\":o(e,\"\"):e;}return e+l+(null==n?\"\":n)},\"\");function p(e){let r=this||{},l=e.call?e(r.p):e;return s(l.unshift?l.raw?i(l,[].slice.call(arguments,1),r.p):l.reduce((e,t)=>t?Object.assign(e,t.call?t(r.p):t):e,{}):l,t(r.target),r.g,r.o,r.k)}let u,f,d,g=p.bind({g:1}),b=p.bind({k:1});function h(e,t,r,l){o.p=t,u=e,f=r,d=l;}function j(e,t){let r=this||{};return function(){let l=arguments;function a(o,n){let c=Object.assign({},o),s=c.className||a.className;r.p=Object.assign({theme:f&&f()},c),r.o=/ *go\\d+/.test(s),c.className=p.apply(r,l)+(s?\" \"+s:\"\"),t&&(c.ref=n);let i=c.as||e;return delete c.as,d&&i[0]&&d(c),u(i,c)}return t?t(a):a}}\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction _taggedTemplateLiteralLoose(strings, raw) {\n if (!raw) {\n raw = strings.slice(0);\n }\n\n strings.raw = raw;\n return strings;\n}\n\nvar isFunction = function isFunction(valOrFunction) {\n return typeof valOrFunction === 'function';\n};\n\nvar resolveValue = function resolveValue(valOrFunction, arg) {\n return isFunction(valOrFunction) ? valOrFunction(arg) : valOrFunction;\n};\n\nvar genId = /*#__PURE__*/function () {\n var count = 0;\n return function () {\n return (++count).toString();\n };\n}();\nvar createRectRef = function createRectRef(onRect) {\n return function (el) {\n if (el) {\n setTimeout(function () {\n var boundingRect = el.getBoundingClientRect();\n onRect(boundingRect);\n });\n }\n };\n};\nvar prefersReducedMotion = /*#__PURE__*/function () {\n // Cache result\n var shouldReduceMotion = undefined;\n return function () {\n if (shouldReduceMotion === undefined && typeof window !== 'undefined') {\n var mediaQuery = matchMedia('(prefers-reduced-motion: reduce)');\n shouldReduceMotion = !mediaQuery || mediaQuery.matches;\n }\n\n return shouldReduceMotion;\n };\n}();\n\nvar TOAST_LIMIT = 20;\nvar ActionType;\n\n(function (ActionType) {\n ActionType[ActionType[\"ADD_TOAST\"] = 0] = \"ADD_TOAST\";\n ActionType[ActionType[\"UPDATE_TOAST\"] = 1] = \"UPDATE_TOAST\";\n ActionType[ActionType[\"UPSERT_TOAST\"] = 2] = \"UPSERT_TOAST\";\n ActionType[ActionType[\"DISMISS_TOAST\"] = 3] = \"DISMISS_TOAST\";\n ActionType[ActionType[\"REMOVE_TOAST\"] = 4] = \"REMOVE_TOAST\";\n ActionType[ActionType[\"START_PAUSE\"] = 5] = \"START_PAUSE\";\n ActionType[ActionType[\"END_PAUSE\"] = 6] = \"END_PAUSE\";\n})(ActionType || (ActionType = {}));\n\nvar toastTimeouts = /*#__PURE__*/new Map();\n\nvar addToRemoveQueue = function addToRemoveQueue(toastId) {\n if (toastTimeouts.has(toastId)) {\n return;\n }\n\n var timeout = setTimeout(function () {\n toastTimeouts[\"delete\"](toastId);\n dispatch({\n type: ActionType.REMOVE_TOAST,\n toastId: toastId\n });\n }, 1000);\n toastTimeouts.set(toastId, timeout);\n};\n\nvar clearFromRemoveQueue = function clearFromRemoveQueue(toastId) {\n var timeout = toastTimeouts.get(toastId);\n\n if (timeout) {\n clearTimeout(timeout);\n }\n};\n\nvar reducer = function reducer(state, action) {\n switch (action.type) {\n case ActionType.ADD_TOAST:\n return _extends({}, state, {\n toasts: [action.toast].concat(state.toasts).slice(0, TOAST_LIMIT)\n });\n\n case ActionType.UPDATE_TOAST:\n // ! Side effects !\n if (action.toast.id) {\n clearFromRemoveQueue(action.toast.id);\n }\n\n return _extends({}, state, {\n toasts: state.toasts.map(function (t) {\n return t.id === action.toast.id ? _extends({}, t, action.toast) : t;\n })\n });\n\n case ActionType.UPSERT_TOAST:\n var toast = action.toast;\n return state.toasts.find(function (t) {\n return t.id === toast.id;\n }) ? reducer(state, {\n type: ActionType.UPDATE_TOAST,\n toast: toast\n }) : reducer(state, {\n type: ActionType.ADD_TOAST,\n toast: toast\n });\n\n case ActionType.DISMISS_TOAST:\n var toastId = action.toastId; // ! Side effects ! - This could be execrated into a dismissToast() action, but I'll keep it here for simplicity\n\n if (toastId) {\n addToRemoveQueue(toastId);\n } else {\n state.toasts.forEach(function (toast) {\n addToRemoveQueue(toast.id);\n });\n }\n\n return _extends({}, state, {\n toasts: state.toasts.map(function (t) {\n return t.id === toastId || toastId === undefined ? _extends({}, t, {\n visible: false\n }) : t;\n })\n });\n\n case ActionType.REMOVE_TOAST:\n if (action.toastId === undefined) {\n return _extends({}, state, {\n toasts: []\n });\n }\n\n return _extends({}, state, {\n toasts: state.toasts.filter(function (t) {\n return t.id !== action.toastId;\n })\n });\n\n case ActionType.START_PAUSE:\n return _extends({}, state, {\n pausedAt: action.time\n });\n\n case ActionType.END_PAUSE:\n var diff = action.time - (state.pausedAt || 0);\n return _extends({}, state, {\n pausedAt: undefined,\n toasts: state.toasts.map(function (t) {\n return _extends({}, t, {\n pauseDuration: t.pauseDuration + diff\n });\n })\n });\n }\n};\nvar listeners = [];\nvar memoryState = {\n toasts: [],\n pausedAt: undefined\n};\nvar dispatch = function dispatch(action) {\n memoryState = reducer(memoryState, action);\n listeners.forEach(function (listener) {\n listener(memoryState);\n });\n};\nvar defaultTimeouts = {\n blank: 4000,\n error: 4000,\n success: 2000,\n loading: Infinity,\n custom: 4000\n};\nvar useStore = function useStore(toastOptions) {\n if (toastOptions === void 0) {\n toastOptions = {};\n }\n\n var _useState = react.useState(memoryState),\n state = _useState[0],\n setState = _useState[1];\n\n react.useEffect(function () {\n listeners.push(setState);\n return function () {\n var index = listeners.indexOf(setState);\n\n if (index > -1) {\n listeners.splice(index, 1);\n }\n };\n }, [state]);\n var mergedToasts = state.toasts.map(function (t) {\n var _toastOptions$t$type, _toastOptions, _toastOptions$t$type2;\n\n return _extends({}, toastOptions, toastOptions[t.type], t, {\n duration: t.duration || ((_toastOptions$t$type = toastOptions[t.type]) == null ? void 0 : _toastOptions$t$type.duration) || ((_toastOptions = toastOptions) == null ? void 0 : _toastOptions.duration) || defaultTimeouts[t.type],\n style: _extends({}, toastOptions.style, (_toastOptions$t$type2 = toastOptions[t.type]) == null ? void 0 : _toastOptions$t$type2.style, t.style)\n });\n });\n return _extends({}, state, {\n toasts: mergedToasts\n });\n};\n\nvar createToast = function createToast(message, type, opts) {\n if (type === void 0) {\n type = 'blank';\n }\n\n return _extends({\n createdAt: Date.now(),\n visible: true,\n type: type,\n ariaProps: {\n role: 'status',\n 'aria-live': 'polite'\n },\n message: message,\n pauseDuration: 0\n }, opts, {\n id: (opts == null ? void 0 : opts.id) || genId()\n });\n};\n\nvar createHandler = function createHandler(type) {\n return function (message, options) {\n var toast = createToast(message, type, options);\n dispatch({\n type: ActionType.UPSERT_TOAST,\n toast: toast\n });\n return toast.id;\n };\n};\n\nvar toast = function toast(message, opts) {\n return createHandler('blank')(message, opts);\n};\n\ntoast.error = /*#__PURE__*/createHandler('error');\ntoast.success = /*#__PURE__*/createHandler('success');\ntoast.loading = /*#__PURE__*/createHandler('loading');\ntoast.custom = /*#__PURE__*/createHandler('custom');\n\ntoast.dismiss = function (toastId) {\n dispatch({\n type: ActionType.DISMISS_TOAST,\n toastId: toastId\n });\n};\n\ntoast.remove = function (toastId) {\n return dispatch({\n type: ActionType.REMOVE_TOAST,\n toastId: toastId\n });\n};\n\ntoast.promise = function (promise, msgs, opts) {\n var id = toast.loading(msgs.loading, _extends({}, opts, opts == null ? void 0 : opts.loading));\n promise.then(function (p) {\n toast.success(resolveValue(msgs.success, p), _extends({\n id: id\n }, opts, opts == null ? void 0 : opts.success));\n return p;\n })[\"catch\"](function (e) {\n toast.error(resolveValue(msgs.error, e), _extends({\n id: id\n }, opts, opts == null ? void 0 : opts.error));\n });\n return promise;\n};\n\nvar useToaster = function useToaster(toastOptions) {\n var _useStore = useStore(toastOptions),\n toasts = _useStore.toasts,\n pausedAt = _useStore.pausedAt;\n\n react.useEffect(function () {\n if (pausedAt) {\n return;\n }\n\n var now = Date.now();\n var timeouts = toasts.map(function (t) {\n if (t.duration === Infinity) {\n return;\n }\n\n var durationLeft = (t.duration || 0) + t.pauseDuration - (now - t.createdAt);\n\n if (durationLeft < 0) {\n if (t.visible) {\n toast.dismiss(t.id);\n }\n\n return;\n }\n\n return setTimeout(function () {\n return toast.dismiss(t.id);\n }, durationLeft);\n });\n return function () {\n timeouts.forEach(function (timeout) {\n return timeout && clearTimeout(timeout);\n });\n };\n }, [toasts, pausedAt]);\n var handlers = react.useMemo(function () {\n return {\n startPause: function startPause() {\n dispatch({\n type: ActionType.START_PAUSE,\n time: Date.now()\n });\n },\n endPause: function endPause() {\n if (pausedAt) {\n dispatch({\n type: ActionType.END_PAUSE,\n time: Date.now()\n });\n }\n },\n updateHeight: function updateHeight(toastId, height) {\n return dispatch({\n type: ActionType.UPDATE_TOAST,\n toast: {\n id: toastId,\n height: height\n }\n });\n },\n calculateOffset: function calculateOffset(toast, opts) {\n var _relevantToasts$filte;\n\n var _ref = opts || {},\n _ref$reverseOrder = _ref.reverseOrder,\n reverseOrder = _ref$reverseOrder === void 0 ? false : _ref$reverseOrder,\n _ref$gutter = _ref.gutter,\n gutter = _ref$gutter === void 0 ? 8 : _ref$gutter,\n defaultPosition = _ref.defaultPosition;\n\n var relevantToasts = toasts.filter(function (t) {\n return (t.position || defaultPosition) === (toast.position || defaultPosition) && t.height;\n });\n var toastIndex = relevantToasts.findIndex(function (t) {\n return t.id === toast.id;\n });\n var toastsBefore = relevantToasts.filter(function (toast, i) {\n return i < toastIndex && toast.visible;\n }).length;\n\n var offset = (_relevantToasts$filte = relevantToasts.filter(function (t) {\n return t.visible;\n })).slice.apply(_relevantToasts$filte, reverseOrder ? [toastsBefore + 1] : [0, toastsBefore]).reduce(function (acc, t) {\n return acc + (t.height || 0) + gutter;\n }, 0);\n\n return offset;\n }\n };\n }, [toasts, pausedAt]);\n return {\n toasts: toasts,\n handlers: handlers\n };\n};\n\nfunction _templateObject4() {\n var data = _taggedTemplateLiteralLoose([\"\\n width: 20px;\\n opacity: 0;\\n height: 20px;\\n border-radius: 10px;\\n background: \", \";\\n position: relative;\\n transform: rotate(45deg);\\n\\n animation: \", \" 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275)\\n forwards;\\n animation-delay: 100ms;\\n\\n &:after,\\n &:before {\\n content: '';\\n animation: \", \" 0.15s ease-out forwards;\\n animation-delay: 150ms;\\n position: absolute;\\n border-radius: 3px;\\n opacity: 0;\\n background: \", \";\\n bottom: 9px;\\n left: 4px;\\n height: 2px;\\n width: 12px;\\n }\\n\\n &:before {\\n animation: \", \" 0.15s ease-out forwards;\\n animation-delay: 180ms;\\n transform: rotate(90deg);\\n }\\n\"]);\n\n _templateObject4 = function _templateObject4() {\n return data;\n };\n\n return data;\n}\n\nfunction _templateObject3() {\n var data = _taggedTemplateLiteralLoose([\"\\nfrom {\\n transform: scale(0) rotate(90deg);\\n\\topacity: 0;\\n}\\nto {\\n transform: scale(1) rotate(90deg);\\n\\topacity: 1;\\n}\"]);\n\n _templateObject3 = function _templateObject3() {\n return data;\n };\n\n return data;\n}\n\nfunction _templateObject2() {\n var data = _taggedTemplateLiteralLoose([\"\\nfrom {\\n transform: scale(0);\\n opacity: 0;\\n}\\nto {\\n transform: scale(1);\\n opacity: 1;\\n}\"]);\n\n _templateObject2 = function _templateObject2() {\n return data;\n };\n\n return data;\n}\n\nfunction _templateObject() {\n var data = _taggedTemplateLiteralLoose([\"\\nfrom {\\n transform: scale(0) rotate(45deg);\\n\\topacity: 0;\\n}\\nto {\\n transform: scale(1) rotate(45deg);\\n opacity: 1;\\n}\"]);\n\n _templateObject = function _templateObject() {\n return data;\n };\n\n return data;\n}\nvar circleAnimation = /*#__PURE__*/b( /*#__PURE__*/_templateObject());\nvar firstLineAnimation = /*#__PURE__*/b( /*#__PURE__*/_templateObject2());\nvar secondLineAnimation = /*#__PURE__*/b( /*#__PURE__*/_templateObject3());\nvar ErrorIcon = /*#__PURE__*/j('div')( /*#__PURE__*/_templateObject4(), function (p) {\n return p.primary || '#ff4b4b';\n}, circleAnimation, firstLineAnimation, function (p) {\n return p.secondary || '#fff';\n}, secondLineAnimation);\n\nfunction _templateObject2$1() {\n var data = _taggedTemplateLiteralLoose([\"\\n width: 12px;\\n height: 12px;\\n box-sizing: border-box;\\n border: 2px solid;\\n border-radius: 100%;\\n border-color: \", \";\\n border-right-color: \", \";\\n animation: \", \" 1s linear infinite;\\n\"]);\n\n _templateObject2$1 = function _templateObject2() {\n return data;\n };\n\n return data;\n}\n\nfunction _templateObject$1() {\n var data = _taggedTemplateLiteralLoose([\"\\n from {\\n transform: rotate(0deg);\\n }\\n to {\\n transform: rotate(360deg);\\n }\\n\"]);\n\n _templateObject$1 = function _templateObject() {\n return data;\n };\n\n return data;\n}\nvar rotate = /*#__PURE__*/b( /*#__PURE__*/_templateObject$1());\nvar LoaderIcon = /*#__PURE__*/j('div')( /*#__PURE__*/_templateObject2$1(), function (p) {\n return p.secondary || '#e0e0e0';\n}, function (p) {\n return p.primary || '#616161';\n}, rotate);\n\nfunction _templateObject3$1() {\n var data = _taggedTemplateLiteralLoose([\"\\n width: 20px;\\n opacity: 0;\\n height: 20px;\\n border-radius: 10px;\\n background: \", \";\\n position: relative;\\n transform: rotate(45deg);\\n\\n animation: \", \" 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275)\\n forwards;\\n animation-delay: 100ms;\\n &:after {\\n content: '';\\n box-sizing: border-box;\\n animation: \", \" 0.2s ease-out forwards;\\n opacity: 0;\\n animation-delay: 200ms;\\n position: absolute;\\n border-right: 2px solid;\\n border-bottom: 2px solid;\\n border-color: \", \";\\n bottom: 6px;\\n left: 6px;\\n height: 10px;\\n width: 6px;\\n }\\n\"]);\n\n _templateObject3$1 = function _templateObject3() {\n return data;\n };\n\n return data;\n}\n\nfunction _templateObject2$2() {\n var data = _taggedTemplateLiteralLoose([\"\\n0% {\\n\\theight: 0;\\n\\twidth: 0;\\n\\topacity: 0;\\n}\\n40% {\\n height: 0;\\n\\twidth: 6px;\\n\\topacity: 1;\\n}\\n100% {\\n opacity: 1;\\n height: 10px;\\n}\"]);\n\n _templateObject2$2 = function _templateObject2() {\n return data;\n };\n\n return data;\n}\n\nfunction _templateObject$2() {\n var data = _taggedTemplateLiteralLoose([\"\\nfrom {\\n transform: scale(0) rotate(45deg);\\n\\topacity: 0;\\n}\\nto {\\n transform: scale(1) rotate(45deg);\\n\\topacity: 1;\\n}\"]);\n\n _templateObject$2 = function _templateObject() {\n return data;\n };\n\n return data;\n}\nvar circleAnimation$1 = /*#__PURE__*/b( /*#__PURE__*/_templateObject$2());\nvar checkmarkAnimation = /*#__PURE__*/b( /*#__PURE__*/_templateObject2$2());\nvar CheckmarkIcon = /*#__PURE__*/j('div')( /*#__PURE__*/_templateObject3$1(), function (p) {\n return p.primary || '#61d345';\n}, circleAnimation$1, checkmarkAnimation, function (p) {\n return p.secondary || '#fff';\n});\n\nfunction _templateObject4$1() {\n var data = _taggedTemplateLiteralLoose([\"\\n position: relative;\\n transform: scale(0.6);\\n opacity: 0.4;\\n min-width: 20px;\\n animation: \", \" 0.3s 0.12s cubic-bezier(0.175, 0.885, 0.32, 1.275)\\n forwards;\\n\"]);\n\n _templateObject4$1 = function _templateObject4() {\n return data;\n };\n\n return data;\n}\n\nfunction _templateObject3$2() {\n var data = _taggedTemplateLiteralLoose([\"\\nfrom {\\n transform: scale(0.6);\\n opacity: 0.4;\\n}\\nto {\\n transform: scale(1);\\n opacity: 1;\\n}\"]);\n\n _templateObject3$2 = function _templateObject3() {\n return data;\n };\n\n return data;\n}\n\nfunction _templateObject2$3() {\n var data = _taggedTemplateLiteralLoose([\"\\n position: relative;\\n display: flex;\\n justify-content: center;\\n align-items: center;\\n min-width: 20px;\\n min-height: 20px;\\n\"]);\n\n _templateObject2$3 = function _templateObject2() {\n return data;\n };\n\n return data;\n}\n\nfunction _templateObject$3() {\n var data = _taggedTemplateLiteralLoose([\"\\n position: absolute;\\n\"]);\n\n _templateObject$3 = function _templateObject() {\n return data;\n };\n\n return data;\n}\nvar StatusWrapper = /*#__PURE__*/j('div')( /*#__PURE__*/_templateObject$3());\nvar IndicatorWrapper = /*#__PURE__*/j('div')( /*#__PURE__*/_templateObject2$3());\nvar enter = /*#__PURE__*/b( /*#__PURE__*/_templateObject3$2());\nvar AnimatedIconWrapper = /*#__PURE__*/j('div')( /*#__PURE__*/_templateObject4$1(), enter);\nvar ToastIcon = function ToastIcon(_ref) {\n var toast = _ref.toast;\n var icon = toast.icon,\n type = toast.type,\n iconTheme = toast.iconTheme;\n\n if (icon !== undefined) {\n if (typeof icon === 'string') {\n return react.createElement(AnimatedIconWrapper, null, icon);\n } else {\n return icon;\n }\n }\n\n if (type === 'blank') {\n return null;\n }\n\n return react.createElement(IndicatorWrapper, null, react.createElement(LoaderIcon, Object.assign({}, iconTheme)), type !== 'loading' && react.createElement(StatusWrapper, null, type === 'error' ? react.createElement(ErrorIcon, Object.assign({}, iconTheme)) : react.createElement(CheckmarkIcon, Object.assign({}, iconTheme))));\n};\n\nfunction _templateObject2$4() {\n var data = _taggedTemplateLiteralLoose([\"\\n display: flex;\\n justify-content: center;\\n margin: 4px 10px;\\n color: inherit;\\n flex: 1 1 auto;\\n\"]);\n\n _templateObject2$4 = function _templateObject2() {\n return data;\n };\n\n return data;\n}\n\nfunction _templateObject$4() {\n var data = _taggedTemplateLiteralLoose([\"\\n display: flex;\\n align-items: center;\\n background: #fff;\\n color: #363636;\\n line-height: 1.3;\\n will-change: transform;\\n box-shadow: 0 3px 10px rgba(0, 0, 0, 0.1), 0 3px 3px rgba(0, 0, 0, 0.05);\\n max-width: 350px;\\n pointer-events: auto;\\n padding: 8px 10px;\\n border-radius: 8px;\\n\"]);\n\n _templateObject$4 = function _templateObject() {\n return data;\n };\n\n return data;\n}\n\nvar enterAnimation = function enterAnimation(factor) {\n return \"\\n0% {transform: translate3d(0,\" + factor * -200 + \"%,0) scale(.6); opacity:.5;}\\n100% {transform: translate3d(0,0,0) scale(1); opacity:1;}\\n\";\n};\n\nvar exitAnimation = function exitAnimation(factor) {\n return \"\\n0% {transform: translate3d(0,0,-1px) scale(1); opacity:1;}\\n100% {transform: translate3d(0,\" + factor * -150 + \"%,-1px) scale(.6); opacity:0;}\\n\";\n};\n\nvar fadeInAnimation = \"0%{opacity:0;} 100%{opacity:1;}\";\nvar fadeOutAnimation = \"0%{opacity:1;} 100%{opacity:0;}\";\nvar ToastBarBase = /*#__PURE__*/j('div', react.forwardRef)( /*#__PURE__*/_templateObject$4());\nvar Message = /*#__PURE__*/j('div')( /*#__PURE__*/_templateObject2$4());\n\nvar getAnimationStyle = function getAnimationStyle(position, visible) {\n var top = position.includes('top');\n var factor = top ? 1 : -1;\n\n var _ref = prefersReducedMotion() ? [fadeInAnimation, fadeOutAnimation] : [enterAnimation(factor), exitAnimation(factor)],\n enter = _ref[0],\n exit = _ref[1];\n\n return {\n animation: visible ? b(enter) + \" 0.35s cubic-bezier(.21,1.02,.73,1) forwards\" : b(exit) + \" 0.4s forwards cubic-bezier(.06,.71,.55,1)\"\n };\n};\n\nvar ToastBar = /*#__PURE__*/react.memo(function (_ref2) {\n var toast = _ref2.toast,\n position = _ref2.position,\n style = _ref2.style,\n children = _ref2.children;\n var animationStyle = toast != null && toast.height ? getAnimationStyle(toast.position || position || 'top-center', toast.visible) : {\n opacity: 0\n };\n var icon = react.createElement(ToastIcon, {\n toast: toast\n });\n var message = react.createElement(Message, Object.assign({}, toast.ariaProps), resolveValue(toast.message, toast));\n return react.createElement(ToastBarBase, {\n className: toast.className,\n style: _extends({}, animationStyle, style, toast.style)\n }, typeof children === 'function' ? children({\n icon: icon,\n message: message\n }) : react.createElement(react.Fragment, null, icon, message));\n});\n\nfunction _templateObject$5() {\n var data = _taggedTemplateLiteralLoose([\"\\n z-index: 9999;\\n > * {\\n pointer-events: auto;\\n }\\n\"]);\n\n _templateObject$5 = function _templateObject() {\n return data;\n };\n\n return data;\n}\nh(react.createElement);\n\nvar getPositionStyle = function getPositionStyle(position, offset) {\n var top = position.includes('top');\n var verticalStyle = top ? {\n top: 0\n } : {\n bottom: 0\n };\n var horizontalStyle = position.includes('center') ? {\n justifyContent: 'center'\n } : position.includes('right') ? {\n justifyContent: 'flex-end'\n } : {};\n return _extends({\n left: 0,\n right: 0,\n display: 'flex',\n position: 'absolute',\n transition: prefersReducedMotion() ? undefined : \"all 230ms cubic-bezier(.21,1.02,.73,1)\",\n transform: \"translateY(\" + offset * (top ? 1 : -1) + \"px)\"\n }, verticalStyle, horizontalStyle);\n};\n\nvar activeClass = /*#__PURE__*/p( /*#__PURE__*/_templateObject$5());\nvar DEFAULT_OFFSET = 16;\nvar Toaster = function Toaster(_ref) {\n var reverseOrder = _ref.reverseOrder,\n _ref$position = _ref.position,\n position = _ref$position === void 0 ? 'top-center' : _ref$position,\n toastOptions = _ref.toastOptions,\n gutter = _ref.gutter,\n children = _ref.children,\n containerStyle = _ref.containerStyle,\n containerClassName = _ref.containerClassName;\n\n var _useToaster = useToaster(toastOptions),\n toasts = _useToaster.toasts,\n handlers = _useToaster.handlers;\n\n return react.createElement(\"div\", {\n style: _extends({\n position: 'fixed',\n zIndex: 9999,\n top: DEFAULT_OFFSET,\n left: DEFAULT_OFFSET,\n right: DEFAULT_OFFSET,\n bottom: DEFAULT_OFFSET,\n pointerEvents: 'none'\n }, containerStyle),\n className: containerClassName,\n onMouseEnter: handlers.startPause,\n onMouseLeave: handlers.endPause\n }, toasts.map(function (t) {\n var toastPosition = t.position || position;\n var offset = handlers.calculateOffset(t, {\n reverseOrder: reverseOrder,\n gutter: gutter,\n defaultPosition: position\n });\n var positionStyle = getPositionStyle(toastPosition, offset);\n var ref = t.height ? undefined : createRectRef(function (rect) {\n handlers.updateHeight(t.id, rect.height);\n });\n return react.createElement(\"div\", {\n ref: ref,\n className: t.visible ? activeClass : '',\n key: t.id,\n style: positionStyle\n }, t.type === 'custom' ? resolveValue(t.message, t) : children ? children(t) : react.createElement(ToastBar, {\n toast: t,\n position: toastPosition\n }));\n }));\n};\n\nexport default toast;\nexport { ToastBar, Toaster };\n", "import {useEffect, useRef, useState} from \"../pkg/react.js\";\nexport function useHover(disabled) {\n const [value, setValue] = useState(false);\n const ref = useRef(null);\n const {current} = ref;\n const handleMouseOver = () => setValue(true);\n const handleMouseOut = () => setValue(false);\n useEffect(() => {\n const node = current;\n if (!disabled && node) {\n node.addEventListener(\"mouseover\", handleMouseOver);\n node.addEventListener(\"mouseout\", handleMouseOut);\n return () => {\n node.removeEventListener(\"mouseover\", handleMouseOver);\n node.removeEventListener(\"mouseout\", handleMouseOut);\n };\n }\n }, [current, disabled]);\n if (window.matchMedia(\"(pointer: coarse)\").matches) {\n return [ref, false];\n }\n return [ref, value];\n}\n", "import {useEffect, useState} from \"../pkg/react.js\";\nexport function useWindowSize() {\n const [windowSize, setWindowSize] = useState({\n width: void 0,\n height: void 0\n });\n useEffect(() => {\n function handleResize() {\n setWindowSize({\n width: window.innerWidth,\n height: window.innerHeight\n });\n }\n window.addEventListener(\"resize\", handleResize);\n handleResize();\n return () => window.removeEventListener(\"resize\", handleResize);\n }, []);\n return windowSize;\n}\n", "import React from \"../pkg/react.js\";\nimport styled from \"../pkg/styled-components.js\";\nexport function Button({\n children,\n clean,\n icon,\n loading,\n ...props\n}) {\n let Comp = ButtonMargin;\n if (icon) {\n Comp = ButtonIcon;\n }\n if (clean) {\n Comp = ButtonClean;\n }\n return /* @__PURE__ */ React.createElement(Comp, {\n type: \"button\",\n ...props\n }, loading ? /* @__PURE__ */ React.createElement(Spinner, null) : children);\n}\nexport const ButtonClean = styled.button`\n cursor: pointer;\n border: none;\n outline: none;\n font-size: 1rem;\n padding: 0;\n color: inherit;\n margin: 0;\n -webkit-appearance: none;\n background-color: initial;\n -webkit-tap-highlight-color: transparent; /** Remove the tap / click effect on touch devices */\n`;\nexport const ButtonBase = styled(ButtonClean)`\n height: 2rem;\n display: flex;\n align-items: center;\n justify-content: center;\n background-color: ${(props) => props.theme.colors.main};\n color: ${(props) => props.theme.colors.bg};\n white-space: nowrap;\n transition: 0.1s transform, 0.1s background-color, 0.1s box-shadow, 0.1s color;\n\n /** Prevent sticky hover buttons on touch devices */\n @media (hover: hover) and (pointer: fine) {\n &:hover:not([disabled]),\n &:focus-visible:not([disabled]) {\n border-color: ${(props) => props.theme.colors.main};\n outline: 0;\n }\n }\n\n &:active:not([disabled]) {\n transition: all 0s;\n /* background-color: ${(props) => props.theme.colors.mainDark}; */\n /* color: ${(props) => props.theme.colors.bg}; */\n }\n\n &:disabled {\n cursor: default;\n display: auto;\n opacity: 0.5;\n }\n`;\nexport const ButtonBar = styled(ButtonClean)`\n padding-right: 0.5rem;\n padding-left: 0.5rem;\n color: ${(p) => p.theme.colors.main};\n background-color: ${(p) => p.selected ? p.theme.colors.bg2 : p.theme.colors.bg};\n height: 100%;\n display: flex;\n align-items: center;\n\n &:hover:not([disabled]),\n /* &:active:not([disabled]), */\n &:focus-visible:not([disabled]) {\n background-color: ${(p) => p.theme.colors.bg1};\n }\n\n &:active:not([disabled]) {\n background-color: ${(p) => p.theme.colors.bg2};\n }\n\n padding-left: ${(p) => p.leftPadding ? \"1.2rem\" : \"\"};\n padding-right: ${(p) => p.rightPadding ? \"1.2rem\" : \"\"};\n`;\nexport const ButtonMargin = styled(ButtonBase)`\n padding: 0.4rem;\n margin-bottom: ${(p) => p.noMargins ? 0 : p.theme.margin}rem;\n margin-right: ${(p) => p.noMargins ? 0 : p.theme.margin}rem;\n border-radius: ${(p) => p.theme.radius};\n padding-left: ${(p) => p.theme.margin}rem;\n padding-right: ${(p) => p.theme.margin}rem;\n box-shadow: ${(p) => p.subtle ? p.theme.boxShadow : \"none\"};\n display: inline-flex;\n background-color: ${(p) => p.subtle ? p.theme.colors.bg : p.theme.colors.main};\n color: ${(p) => p.subtle ? p.theme.colors.textLight : p.theme.colors.bg};\n border: solid 1px\n ${(p) => p.subtle ? p.theme.colors.bg2 : p.theme.colors.main};\n\n &:focus-visible:not([disabled]),\n &:hover:not([disabled]) {\n box-shadow: ${(p) => p.theme.boxShadowIntense};\n background-color: ${(p) => p.subtle ? p.theme.colors.bg : p.theme.colors.mainLight};\n color: ${(p) => p.subtle ? p.theme.colors.main : p.theme.colors.bg};\n border-color: ${(p) => p.subtle ? p.theme.colors.main : p.theme.colors.mainLight};\n }\n\n &:active:not([disabled]) {\n box-shadow: inset ${(p) => p.theme.boxShadowIntense};\n }\n`;\nexport const ButtonIcon = styled(ButtonMargin)`\n box-shadow: none;\n border-color: transparent;\n border-radius: 999px;\n font-size: 0.8rem;\n width: 1.3rem;\n height: 1.3rem;\n display: inline-flex;\n margin: 0;\n padding: 0;\n\n &:active:not([disabled]) {\n box-shadow: ${(props) => props.theme.boxShadowIntense};\n }\n\n &:active:not([disabled]) {\n box-shadow: inset ${(props) => props.theme.boxShadowIntense};\n }\n`;\nexport const ButtonInput = styled(ButtonBase)`\n padding: 0 0.5rem;\n background-color: ${(props) => props.theme.colors.bg};\n color: ${(props) => props.theme.colors.textLight};\n flex: 0;\n height: auto;\n border-left: solid 1px ${(props) => props.theme.colors.bg2};\n border-radius: 0;\n\n /** Prevent sticky hover buttons on touch devices */\n @media (hover: hover) and (pointer: fine) {\n &:hover:not([disabled]),\n &:active:not([disabled]),\n &:focus-visible:not([disabled]) {\n color: ${(props) => props.theme.colors.main};\n background-color: ${(props) => props.theme.colors.bg1};\n }\n }\n\n &:last-child {\n border-radius: ${(props) => props.theme.radius};\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n }\n`;\nconst Spinner = () => /* @__PURE__ */ React.createElement(StyledSpinner, {\n viewBox: \"0 0 50 50\"\n}, /* @__PURE__ */ React.createElement(\"circle\", {\n className: \"path\",\n cx: \"25\",\n cy: \"25\",\n r: \"20\",\n fill: \"none\",\n strokeWidth: \"4\"\n}));\nconst StyledSpinner = styled.svg`\n animation: rotate 2s linear infinite;\n width: 50px;\n height: 50px;\n max-width: 100%;\n max-height: 100%;\n\n & .path {\n stroke: ${(props) => props.theme.colors.main};\n stroke-linecap: round;\n animation: dash 1.5s ease-in-out infinite;\n }\n\n @keyframes rotate {\n 100% {\n transform: rotate(360deg);\n }\n }\n @keyframes dash {\n 0% {\n stroke-dasharray: 1, 150;\n stroke-dashoffset: 0;\n }\n 50% {\n stroke-dasharray: 90, 150;\n stroke-dashoffset: -35;\n }\n 100% {\n stroke-dasharray: 90, 150;\n stroke-dashoffset: -124;\n }\n }\n`;\nexport default Spinner;\n", "export const paths = {\n agentSettings: \"/app/agent\",\n themeSettings: \"/app/theme\",\n serverSettings: \"/app/server\",\n new: \"/app/new\",\n shortcuts: \"/app/shortcuts\",\n search: \"/app/search\",\n share: \"/app/share\",\n show: \"/app/show\",\n data: \"/app/data\",\n edit: \"/app/edit\",\n about: \"/app/about\",\n allVersions: \"/all-versions\"\n};\n", "import {StringParam, useQueryParam} from \"../pkg/use-query-params.js\";\nimport {paths} from \"../routes/paths.js\";\nfunction constructURL(path, queryParam, value) {\n const navTo = new URL(location.origin);\n navTo.pathname = path;\n navTo.searchParams.append(queryParam, value);\n return path + navTo.search;\n}\nexport function openURL(subject) {\n const url = new URL(subject);\n if (window.location.origin == url.origin) {\n const path = url.pathname + url.search;\n if (path == \"/\")\n return \"\";\n return path;\n } else {\n return constructURL(paths.show, \"subject\", subject);\n }\n}\nexport function searchURL(query) {\n return constructURL(paths.search, \"query\", query);\n}\nexport function useSearchQuery() {\n return useQueryParam(\"query\", StringParam);\n}\nexport function newURL(classUrl, parentURL, subject) {\n const navTo = new URL(location.origin);\n navTo.pathname = paths.new;\n navTo.searchParams.append(\"classSubject\", classUrl);\n parentURL && navTo.searchParams.append(\"parent\", parentURL);\n subject && navTo.searchParams.append(\"newSubject\", subject);\n return paths.new + navTo.search;\n}\nexport function editURL(subject) {\n return constructURL(paths.edit, \"subject\", subject);\n}\nexport function shareURL(subject) {\n return constructURL(paths.share, \"subject\", subject);\n}\nexport function dataURL(subject) {\n return constructURL(paths.data, \"subject\", subject);\n}\nexport function versionsURL(subject, baseURL) {\n const url = new URL(baseURL);\n url.pathname = paths.allVersions;\n url.searchParams.append(\"subject\", subject);\n return openURL(url.toString());\n}\nexport function getSubjectFromDom() {\n const found = [];\n const nodeList = document.querySelectorAll(\":hover\");\n nodeList.forEach((node) => {\n const about = node.getAttribute(\"about\");\n if (about !== null) {\n found.unshift(about);\n }\n });\n return found[0];\n}\n", "import {useState} from \"../pkg/react.js\";\nimport {useHistory, useLocation} from \"../pkg/react-router-dom.js\";\nimport {StringParam, useQueryParam} from \"../pkg/use-query-params.js\";\nexport function useCurrentSubjectQueryParam() {\n return useQueryParam(\"subject\", StringParam);\n}\nexport function useCurrentSubject(replace) {\n const [subjectQ, setSubjectQ] = useCurrentSubjectQueryParam();\n const history = useHistory();\n const {pathname, search} = useLocation();\n function handleSetSubject(subject) {\n const url = new URL(subject);\n if (window.location.origin == url.origin) {\n if (replace) {\n history.replace(url.pathname + url.search);\n } else {\n history.push(url.pathname + url.search);\n }\n } else {\n setSubjectQ(subject);\n }\n }\n if (subjectQ == void 0) {\n if (pathname.startsWith(\"/app/\")) {\n return [null, handleSetSubject];\n }\n const correctedPathNamer = pathname == \"/\" ? \"\" : pathname;\n return [\n window.location.origin + correctedPathNamer + search,\n handleSetSubject\n ];\n }\n return [subjectQ, handleSetSubject];\n}\nexport function useSubjectParam(key) {\n const [subject, setSubject] = useCurrentSubject();\n const params = new URL(subject).searchParams;\n const [val, setValInternal] = useState(params.get(key));\n function setVal(newVal) {\n params.set(key, newVal);\n const newUrl = new URL(subject);\n newUrl.searchParams.set(key, newVal);\n if (newVal == null) {\n newUrl.searchParams.delete(key);\n }\n setValInternal(newVal);\n setSubject(newUrl.href);\n }\n return [val, setVal];\n}\n", "import { r as react } from '../common/index-04f37d11.js';\nimport '../common/_commonjsHelpers-8c19dec8.js';\n\nvar IconsManifest = [\n {\n \"id\": \"fa\",\n \"name\": \"Font Awesome\",\n \"projectUrl\": \"https://fontawesome.com/\",\n \"license\": \"CC BY 4.0 License\",\n \"licenseUrl\": \"https://creativecommons.org/licenses/by/4.0/\"\n },\n {\n \"id\": \"io\",\n \"name\": \"Ionicons 4\",\n \"projectUrl\": \"https://ionicons.com/\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://github.com/ionic-team/ionicons/blob/master/LICENSE\"\n },\n {\n \"id\": \"io5\",\n \"name\": \"Ionicons 5\",\n \"projectUrl\": \"https://ionicons.com/\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://github.com/ionic-team/ionicons/blob/master/LICENSE\"\n },\n {\n \"id\": \"md\",\n \"name\": \"Material Design icons\",\n \"projectUrl\": \"http://google.github.io/material-design-icons/\",\n \"license\": \"Apache License Version 2.0\",\n \"licenseUrl\": \"https://github.com/google/material-design-icons/blob/master/LICENSE\"\n },\n {\n \"id\": \"ti\",\n \"name\": \"Typicons\",\n \"projectUrl\": \"http://s-ings.com/typicons/\",\n \"license\": \"CC BY-SA 3.0\",\n \"licenseUrl\": \"https://creativecommons.org/licenses/by-sa/3.0/\"\n },\n {\n \"id\": \"go\",\n \"name\": \"Github Octicons icons\",\n \"projectUrl\": \"https://octicons.github.com/\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://github.com/primer/octicons/blob/master/LICENSE\"\n },\n {\n \"id\": \"fi\",\n \"name\": \"Feather\",\n \"projectUrl\": \"https://feathericons.com/\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://github.com/feathericons/feather/blob/master/LICENSE\"\n },\n {\n \"id\": \"gi\",\n \"name\": \"Game Icons\",\n \"projectUrl\": \"https://game-icons.net/\",\n \"license\": \"CC BY 3.0\",\n \"licenseUrl\": \"https://creativecommons.org/licenses/by/3.0/\"\n },\n {\n \"id\": \"wi\",\n \"name\": \"Weather Icons\",\n \"projectUrl\": \"https://erikflowers.github.io/weather-icons/\",\n \"license\": \"SIL OFL 1.1\",\n \"licenseUrl\": \"http://scripts.sil.org/OFL\"\n },\n {\n \"id\": \"di\",\n \"name\": \"Devicons\",\n \"projectUrl\": \"https://vorillaz.github.io/devicons/\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://opensource.org/licenses/MIT\"\n },\n {\n \"id\": \"ai\",\n \"name\": \"Ant Design Icons\",\n \"projectUrl\": \"https://github.com/ant-design/ant-design-icons\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://opensource.org/licenses/MIT\"\n },\n {\n \"id\": \"bs\",\n \"name\": \"Bootstrap Icons\",\n \"projectUrl\": \"https://github.com/twbs/icons\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://opensource.org/licenses/MIT\"\n },\n {\n \"id\": \"ri\",\n \"name\": \"Remix Icon\",\n \"projectUrl\": \"https://github.com/Remix-Design/RemixIcon\",\n \"license\": \"Apache License Version 2.0\",\n \"licenseUrl\": \"http://www.apache.org/licenses/\"\n },\n {\n \"id\": \"fc\",\n \"name\": \"Flat Color Icons\",\n \"projectUrl\": \"https://github.com/icons8/flat-color-icons\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://opensource.org/licenses/MIT\"\n },\n {\n \"id\": \"gr\",\n \"name\": \"Grommet-Icons\",\n \"projectUrl\": \"https://github.com/grommet/grommet-icons\",\n \"license\": \"Apache License Version 2.0\",\n \"licenseUrl\": \"http://www.apache.org/licenses/\"\n },\n {\n \"id\": \"hi\",\n \"name\": \"Heroicons\",\n \"projectUrl\": \"https://github.com/tailwindlabs/heroicons\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://opensource.org/licenses/MIT\"\n },\n {\n \"id\": \"si\",\n \"name\": \"Simple Icons\",\n \"projectUrl\": \"https://simpleicons.org/\",\n \"license\": \"CC0 1.0 Universal\",\n \"licenseUrl\": \"https://creativecommons.org/publicdomain/zero/1.0/\"\n },\n {\n \"id\": \"im\",\n \"name\": \"IcoMoon Free\",\n \"projectUrl\": \"https://github.com/Keyamoon/IcoMoon-Free\",\n \"license\": \"CC BY 4.0 License\"\n },\n {\n \"id\": \"bi\",\n \"name\": \"BoxIcons\",\n \"projectUrl\": \"https://github.com/atisawd/boxicons\",\n \"license\": \"CC BY 4.0 License\"\n },\n {\n \"id\": \"cg\",\n \"name\": \"css.gg\",\n \"projectUrl\": \"https://github.com/astrit/css.gg\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://opensource.org/licenses/MIT\"\n },\n {\n \"id\": \"vsc\",\n \"name\": \"VS Code Icons\",\n \"projectUrl\": \"https://github.com/microsoft/vscode-codicons\",\n \"license\": \"CC BY 4.0\",\n \"licenseUrl\": \"https://creativecommons.org/licenses/by/4.0/\"\n }\n];\n\nvar DefaultContext = {\n color: undefined,\n size: undefined,\n className: undefined,\n style: undefined,\n attr: undefined\n};\nvar IconContext = react.createContext && react.createContext(DefaultContext);\n\nvar __assign = undefined && undefined.__assign || function () {\n __assign = Object.assign || function (t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n\n return t;\n };\n\n return __assign.apply(this, arguments);\n};\n\nvar __rest = undefined && undefined.__rest || function (s, e) {\n var t = {};\n\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\n\nfunction Tree2Element(tree) {\n return tree && tree.map(function (node, i) {\n return react.createElement(node.tag, __assign({\n key: i\n }, node.attr), Tree2Element(node.child));\n });\n}\n\nfunction GenIcon(data) {\n return function (props) {\n return react.createElement(IconBase, __assign({\n attr: __assign({}, data.attr)\n }, props), Tree2Element(data.child));\n };\n}\nfunction IconBase(props) {\n var elem = function (conf) {\n var attr = props.attr,\n size = props.size,\n title = props.title,\n svgProps = __rest(props, [\"attr\", \"size\", \"title\"]);\n\n var computedSize = size || conf.size || \"1em\";\n var className;\n if (conf.className) className = conf.className;\n if (props.className) className = (className ? className + ' ' : '') + props.className;\n return react.createElement(\"svg\", __assign({\n stroke: \"currentColor\",\n fill: \"currentColor\",\n strokeWidth: \"0\"\n }, conf.attr, attr, svgProps, {\n className: className,\n style: __assign(__assign({\n color: props.color || conf.color\n }, conf.style), props.style),\n height: computedSize,\n width: computedSize,\n xmlns: \"http://www.w3.org/2000/svg\"\n }), title && react.createElement(\"title\", null, title), props.children);\n };\n\n return IconContext !== undefined ? react.createElement(IconContext.Consumer, null, function (conf) {\n return elem(conf);\n }) : elem(DefaultContext);\n}\n\nvar esm = /*#__PURE__*/Object.freeze({\n __proto__: null,\n IconsManifest: IconsManifest,\n GenIcon: GenIcon,\n IconBase: IconBase,\n DefaultContext: DefaultContext,\n IconContext: IconContext\n});\n\n// THIS FILE IS AUTO GENERATED\nvar GenIcon$1 = esm.GenIcon;\nvar FaArrowLeft = function FaArrowLeft (props) {\n return GenIcon$1({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M257.5 445.1l-22.2 22.2c-9.4 9.4-24.6 9.4-33.9 0L7 273c-9.4-9.4-9.4-24.6 0-33.9L201.4 44.7c9.4-9.4 24.6-9.4 33.9 0l22.2 22.2c9.5 9.5 9.3 25-.4 34.3L136.6 216H424c13.3 0 24 10.7 24 24v32c0 13.3-10.7 24-24 24H136.6l120.5 114.8c9.8 9.3 10 24.8.4 34.3z\"}}]})(props);\n};\nvar FaArrowRight = function FaArrowRight (props) {\n return GenIcon$1({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M190.5 66.9l22.2-22.2c9.4-9.4 24.6-9.4 33.9 0L441 239c9.4 9.4 9.4 24.6 0 33.9L246.6 467.3c-9.4 9.4-24.6 9.4-33.9 0l-22.2-22.2c-9.5-9.5-9.3-25 .4-34.3L311.4 296H24c-13.3 0-24-10.7-24-24v-32c0-13.3 10.7-24 24-24h287.4L190.9 101.2c-9.8-9.3-10-24.8-.4-34.3z\"}}]})(props);\n};\nvar FaAsterisk = function FaAsterisk (props) {\n return GenIcon$1({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M478.21 334.093L336 256l142.21-78.093c11.795-6.477 15.961-21.384 9.232-33.037l-19.48-33.741c-6.728-11.653-21.72-15.499-33.227-8.523L296 186.718l3.475-162.204C299.763 11.061 288.937 0 275.48 0h-38.96c-13.456 0-24.283 11.061-23.994 24.514L216 186.718 77.265 102.607c-11.506-6.976-26.499-3.13-33.227 8.523l-19.48 33.741c-6.728 11.653-2.562 26.56 9.233 33.037L176 256 33.79 334.093c-11.795 6.477-15.961 21.384-9.232 33.037l19.48 33.741c6.728 11.653 21.721 15.499 33.227 8.523L216 325.282l-3.475 162.204C212.237 500.939 223.064 512 236.52 512h38.961c13.456 0 24.283-11.061 23.995-24.514L296 325.282l138.735 84.111c11.506 6.976 26.499 3.13 33.227-8.523l19.48-33.741c6.728-11.653 2.563-26.559-9.232-33.036z\"}}]})(props);\n};\nvar FaBars = function FaBars (props) {\n return GenIcon$1({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16 132h416c8.837 0 16-7.163 16-16V76c0-8.837-7.163-16-16-16H16C7.163 60 0 67.163 0 76v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16zm0 160h416c8.837 0 16-7.163 16-16v-40c0-8.837-7.163-16-16-16H16c-8.837 0-16 7.163-16 16v40c0 8.837 7.163 16 16 16z\"}}]})(props);\n};\nvar FaCaretDown = function FaCaretDown (props) {\n return GenIcon$1({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M31.3 192h257.3c17.8 0 26.7 21.5 14.1 34.1L174.1 354.8c-7.8 7.8-20.5 7.8-28.3 0L17.2 226.1C4.6 213.5 13.5 192 31.3 192z\"}}]})(props);\n};\nvar FaCaretRight = function FaCaretRight (props) {\n return GenIcon$1({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 192 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M0 384.662V127.338c0-17.818 21.543-26.741 34.142-14.142l128.662 128.662c7.81 7.81 7.81 20.474 0 28.284L34.142 398.804C21.543 411.404 0 402.48 0 384.662z\"}}]})(props);\n};\nvar FaCheck = function FaCheck (props) {\n return GenIcon$1({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M173.898 439.404l-166.4-166.4c-9.997-9.997-9.997-26.206 0-36.204l36.203-36.204c9.997-9.998 26.207-9.998 36.204 0L192 312.69 432.095 72.596c9.997-9.997 26.207-9.997 36.204 0l36.203 36.204c9.997 9.997 9.997 26.206 0 36.204l-294.4 294.401c-9.998 9.997-26.207 9.997-36.204-.001z\"}}]})(props);\n};\nvar FaCog = function FaCog (props) {\n return GenIcon$1({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M487.4 315.7l-42.6-24.6c4.3-23.2 4.3-47 0-70.2l42.6-24.6c4.9-2.8 7.1-8.6 5.5-14-11.1-35.6-30-67.8-54.7-94.6-3.8-4.1-10-5.1-14.8-2.3L380.8 110c-17.9-15.4-38.5-27.3-60.8-35.1V25.8c0-5.6-3.9-10.5-9.4-11.7-36.7-8.2-74.3-7.8-109.2 0-5.5 1.2-9.4 6.1-9.4 11.7V75c-22.2 7.9-42.8 19.8-60.8 35.1L88.7 85.5c-4.9-2.8-11-1.9-14.8 2.3-24.7 26.7-43.6 58.9-54.7 94.6-1.7 5.4.6 11.2 5.5 14L67.3 221c-4.3 23.2-4.3 47 0 70.2l-42.6 24.6c-4.9 2.8-7.1 8.6-5.5 14 11.1 35.6 30 67.8 54.7 94.6 3.8 4.1 10 5.1 14.8 2.3l42.6-24.6c17.9 15.4 38.5 27.3 60.8 35.1v49.2c0 5.6 3.9 10.5 9.4 11.7 36.7 8.2 74.3 7.8 109.2 0 5.5-1.2 9.4-6.1 9.4-11.7v-49.2c22.2-7.9 42.8-19.8 60.8-35.1l42.6 24.6c4.9 2.8 11 1.9 14.8-2.3 24.7-26.7 43.6-58.9 54.7-94.6 1.5-5.5-.7-11.3-5.6-14.1zM256 336c-44.1 0-80-35.9-80-80s35.9-80 80-80 80 35.9 80 80-35.9 80-80 80z\"}}]})(props);\n};\nvar FaCopy = function FaCopy (props) {\n return GenIcon$1({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M320 448v40c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24V120c0-13.255 10.745-24 24-24h72v296c0 30.879 25.121 56 56 56h168zm0-344V0H152c-13.255 0-24 10.745-24 24v368c0 13.255 10.745 24 24 24h272c13.255 0 24-10.745 24-24V128H344c-13.2 0-24-10.8-24-24zm120.971-31.029L375.029 7.029A24 24 0 0 0 358.059 0H352v96h96v-6.059a24 24 0 0 0-7.029-16.97z\"}}]})(props);\n};\nvar FaEdit = function FaEdit (props) {\n return GenIcon$1({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M402.6 83.2l90.2 90.2c3.8 3.8 3.8 10 0 13.8L274.4 405.6l-92.8 10.3c-12.4 1.4-22.9-9.1-21.5-21.5l10.3-92.8L388.8 83.2c3.8-3.8 10-3.8 13.8 0zm162-22.9l-48.8-48.8c-15.2-15.2-39.9-15.2-55.2 0l-35.4 35.4c-3.8 3.8-3.8 10 0 13.8l90.2 90.2c3.8 3.8 10 3.8 13.8 0l35.4-35.4c15.2-15.3 15.2-40 0-55.2zM384 346.2V448H64V128h229.8c3.2 0 6.2-1.3 8.5-3.5l40-40c7.6-7.6 2.2-20.5-8.5-20.5H48C21.5 64 0 85.5 0 112v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V306.2c0-10.7-12.9-16-20.5-8.5l-40 40c-2.2 2.3-3.5 5.3-3.5 8.5z\"}}]})(props);\n};\nvar FaEllipsisV = function FaEllipsisV (props) {\n return GenIcon$1({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 192 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M96 184c39.8 0 72 32.2 72 72s-32.2 72-72 72-72-32.2-72-72 32.2-72 72-72zM24 80c0 39.8 32.2 72 72 72s72-32.2 72-72S135.8 8 96 8 24 40.2 24 80zm0 352c0 39.8 32.2 72 72 72s72-32.2 72-72-32.2-72-72-72-72 32.2-72 72z\"}}]})(props);\n};\nvar FaExternalLinkAlt = function FaExternalLinkAlt (props) {\n return GenIcon$1({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M432,320H400a16,16,0,0,0-16,16V448H64V128H208a16,16,0,0,0,16-16V80a16,16,0,0,0-16-16H48A48,48,0,0,0,0,112V464a48,48,0,0,0,48,48H400a48,48,0,0,0,48-48V336A16,16,0,0,0,432,320ZM488,0h-128c-21.37,0-32.05,25.91-17,41l35.73,35.73L135,320.37a24,24,0,0,0,0,34L157.67,377a24,24,0,0,0,34,0L435.28,133.32,471,169c15,15,41,4.5,41-17V24A24,24,0,0,0,488,0Z\"}}]})(props);\n};\nvar FaEyeSlash = function FaEyeSlash (props) {\n return GenIcon$1({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 640 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M320 400c-75.85 0-137.25-58.71-142.9-133.11L72.2 185.82c-13.79 17.3-26.48 35.59-36.72 55.59a32.35 32.35 0 0 0 0 29.19C89.71 376.41 197.07 448 320 448c26.91 0 52.87-4 77.89-10.46L346 397.39a144.13 144.13 0 0 1-26 2.61zm313.82 58.1l-110.55-85.44a331.25 331.25 0 0 0 81.25-102.07 32.35 32.35 0 0 0 0-29.19C550.29 135.59 442.93 64 320 64a308.15 308.15 0 0 0-147.32 37.7L45.46 3.37A16 16 0 0 0 23 6.18L3.37 31.45A16 16 0 0 0 6.18 53.9l588.36 454.73a16 16 0 0 0 22.46-2.81l19.64-25.27a16 16 0 0 0-2.82-22.45zm-183.72-142l-39.3-30.38A94.75 94.75 0 0 0 416 256a94.76 94.76 0 0 0-121.31-92.21A47.65 47.65 0 0 1 304 192a46.64 46.64 0 0 1-1.54 10l-73.61-56.89A142.31 142.31 0 0 1 320 112a143.92 143.92 0 0 1 144 144c0 21.63-5.29 41.79-13.9 60.11z\"}}]})(props);\n};\nvar FaEye = function FaEye (props) {\n return GenIcon$1({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M572.52 241.4C518.29 135.59 410.93 64 288 64S57.68 135.64 3.48 241.41a32.35 32.35 0 0 0 0 29.19C57.71 376.41 165.07 448 288 448s230.32-71.64 284.52-177.41a32.35 32.35 0 0 0 0-29.19zM288 400a144 144 0 1 1 144-144 143.93 143.93 0 0 1-144 144zm0-240a95.31 95.31 0 0 0-25.31 3.79 47.85 47.85 0 0 1-66.9 66.9A95.78 95.78 0 1 0 288 160z\"}}]})(props);\n};\nvar FaGlobe = function FaGlobe (props) {\n return GenIcon$1({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 496 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M336.5 160C322 70.7 287.8 8 248 8s-74 62.7-88.5 152h177zM152 256c0 22.2 1.2 43.5 3.3 64h185.3c2.1-20.5 3.3-41.8 3.3-64s-1.2-43.5-3.3-64H155.3c-2.1 20.5-3.3 41.8-3.3 64zm324.7-96c-28.6-67.9-86.5-120.4-158-141.6 24.4 33.8 41.2 84.7 50 141.6h108zM177.2 18.4C105.8 39.6 47.8 92.1 19.3 160h108c8.7-56.9 25.5-107.8 49.9-141.6zM487.4 192H372.7c2.1 21 3.3 42.5 3.3 64s-1.2 43-3.3 64h114.6c5.5-20.5 8.6-41.8 8.6-64s-3.1-43.5-8.5-64zM120 256c0-21.5 1.2-43 3.3-64H8.6C3.2 212.5 0 233.8 0 256s3.2 43.5 8.6 64h114.6c-2-21-3.2-42.5-3.2-64zm39.5 96c14.5 89.3 48.7 152 88.5 152s74-62.7 88.5-152h-177zm159.3 141.6c71.4-21.2 129.4-73.7 158-141.6h-108c-8.8 56.9-25.6 107.8-50 141.6zM19.3 352c28.6 67.9 86.5 120.4 158 141.6-24.4-33.8-41.2-84.7-50-141.6h-108z\"}}]})(props);\n};\nvar FaGripVertical = function FaGripVertical (props) {\n return GenIcon$1({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M96 32H32C14.33 32 0 46.33 0 64v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32V64c0-17.67-14.33-32-32-32zm0 160H32c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zm0 160H32c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zM288 32h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32V64c0-17.67-14.33-32-32-32zm0 160h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32zm0 160h-64c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-64c0-17.67-14.33-32-32-32z\"}}]})(props);\n};\nvar FaInfo = function FaInfo (props) {\n return GenIcon$1({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 192 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20 424.229h20V279.771H20c-11.046 0-20-8.954-20-20V212c0-11.046 8.954-20 20-20h112c11.046 0 20 8.954 20 20v212.229h20c11.046 0 20 8.954 20 20V492c0 11.046-8.954 20-20 20H20c-11.046 0-20-8.954-20-20v-47.771c0-11.046 8.954-20 20-20zM96 0C56.235 0 24 32.235 24 72s32.235 72 72 72 72-32.235 72-72S135.764 0 96 0z\"}}]})(props);\n};\nvar FaKeyboard = function FaKeyboard (props) {\n return GenIcon$1({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 576 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M528 448H48c-26.51 0-48-21.49-48-48V112c0-26.51 21.49-48 48-48h480c26.51 0 48 21.49 48 48v288c0 26.51-21.49 48-48 48zM128 180v-40c0-6.627-5.373-12-12-12H76c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm-336 96v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm-336 96v-40c0-6.627-5.373-12-12-12H76c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12zm288 0v-40c0-6.627-5.373-12-12-12H172c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h232c6.627 0 12-5.373 12-12zm96 0v-40c0-6.627-5.373-12-12-12h-40c-6.627 0-12 5.373-12 12v40c0 6.627 5.373 12 12 12h40c6.627 0 12-5.373 12-12z\"}}]})(props);\n};\nvar FaPlus = function FaPlus (props) {\n return GenIcon$1({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M416 208H272V64c0-17.67-14.33-32-32-32h-32c-17.67 0-32 14.33-32 32v144H32c-17.67 0-32 14.33-32 32v32c0 17.67 14.33 32 32 32h144v144c0 17.67 14.33 32 32 32h32c17.67 0 32-14.33 32-32V304h144c17.67 0 32-14.33 32-32v-32c0-17.67-14.33-32-32-32z\"}}]})(props);\n};\nvar FaServer = function FaServer (props) {\n return GenIcon$1({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M480 160H32c-17.673 0-32-14.327-32-32V64c0-17.673 14.327-32 32-32h448c17.673 0 32 14.327 32 32v64c0 17.673-14.327 32-32 32zm-48-88c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24zm-64 0c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24zm112 248H32c-17.673 0-32-14.327-32-32v-64c0-17.673 14.327-32 32-32h448c17.673 0 32 14.327 32 32v64c0 17.673-14.327 32-32 32zm-48-88c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24zm-64 0c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24zm112 248H32c-17.673 0-32-14.327-32-32v-64c0-17.673 14.327-32 32-32h448c17.673 0 32 14.327 32 32v64c0 17.673-14.327 32-32 32zm-48-88c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24zm-64 0c-13.255 0-24 10.745-24 24s10.745 24 24 24 24-10.745 24-24-10.745-24-24-24z\"}}]})(props);\n};\nvar FaSortDown = function FaSortDown (props) {\n return GenIcon$1({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M41 288h238c21.4 0 32.1 25.9 17 41L177 448c-9.4 9.4-24.6 9.4-33.9 0L24 329c-15.1-15.1-4.4-41 17-41z\"}}]})(props);\n};\nvar FaSortUp = function FaSortUp (props) {\n return GenIcon$1({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M279 224H41c-21.4 0-32.1-25.9-17-41L143 64c9.4-9.4 24.6-9.4 33.9 0l119 119c15.2 15.1 4.5 41-16.9 41z\"}}]})(props);\n};\nvar FaSort = function FaSort (props) {\n return GenIcon$1({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 320 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M41 288h238c21.4 0 32.1 25.9 17 41L177 448c-9.4 9.4-24.6 9.4-33.9 0L24 329c-15.1-15.1-4.4-41 17-41zm255-105L177 64c-9.4-9.4-24.6-9.4-33.9 0L24 183c-15.1 15.1-4.4 41 17 41h238c21.4 0 32.1-25.9 17-41z\"}}]})(props);\n};\nvar FaTable = function FaTable (props) {\n return GenIcon$1({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M464 32H48C21.49 32 0 53.49 0 80v352c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V80c0-26.51-21.49-48-48-48zM224 416H64v-96h160v96zm0-160H64v-96h160v96zm224 160H288v-96h160v96zm0-160H288v-96h160v96z\"}}]})(props);\n};\nvar FaThLarge = function FaThLarge (props) {\n return GenIcon$1({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M296 32h192c13.255 0 24 10.745 24 24v160c0 13.255-10.745 24-24 24H296c-13.255 0-24-10.745-24-24V56c0-13.255 10.745-24 24-24zm-80 0H24C10.745 32 0 42.745 0 56v160c0 13.255 10.745 24 24 24h192c13.255 0 24-10.745 24-24V56c0-13.255-10.745-24-24-24zM0 296v160c0 13.255 10.745 24 24 24h192c13.255 0 24-10.745 24-24V296c0-13.255-10.745-24-24-24H24c-13.255 0-24 10.745-24 24zm296 184h192c13.255 0 24-10.745 24-24V296c0-13.255-10.745-24-24-24H296c-13.255 0-24 10.745-24 24v160c0 13.255 10.745 24 24 24z\"}}]})(props);\n};\nvar FaTimes = function FaTimes (props) {\n return GenIcon$1({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 352 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M242.72 256l100.07-100.07c12.28-12.28 12.28-32.19 0-44.48l-22.24-22.24c-12.28-12.28-32.19-12.28-44.48 0L176 189.28 75.93 89.21c-12.28-12.28-32.19-12.28-44.48 0L9.21 111.45c-12.28 12.28-12.28 32.19 0 44.48L109.28 256 9.21 356.07c-12.28 12.28-12.28 32.19 0 44.48l22.24 22.24c12.28 12.28 32.2 12.28 44.48 0L176 322.72l100.07 100.07c12.28 12.28 32.2 12.28 44.48 0l22.24-22.24c12.28-12.28 12.28-32.19 0-44.48L242.72 256z\"}}]})(props);\n};\nvar FaTrash = function FaTrash (props) {\n return GenIcon$1({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M432 32H312l-9.4-18.7A24 24 0 0 0 281.1 0H166.8a23.72 23.72 0 0 0-21.4 13.3L136 32H16A16 16 0 0 0 0 48v32a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16V48a16 16 0 0 0-16-16zM53.2 467a48 48 0 0 0 47.9 45h245.8a48 48 0 0 0 47.9-45L416 128H32z\"}}]})(props);\n};\nvar FaUser = function FaUser (props) {\n return GenIcon$1({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 448 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-74.2-60.2-134.4-134.4-134.4z\"}}]})(props);\n};\n\nexport { FaArrowLeft, FaArrowRight, FaAsterisk, FaBars, FaCaretDown, FaCaretRight, FaCheck, FaCog, FaCopy, FaEdit, FaEllipsisV, FaExternalLinkAlt, FaEye, FaEyeSlash, FaGlobe, FaGripVertical, FaInfo, FaKeyboard, FaPlus, FaServer, FaSort, FaSortDown, FaSortUp, FaTable, FaThLarge, FaTimes, FaTrash, FaUser };\n", "export function isRunningInTauri() {\n return typeof window !== \"undefined\" && window.__TAURI__ !== void 0;\n}\n", "import React from \"../pkg/react.js\";\nimport {useHistory} from \"../pkg/react-router.js\";\nimport styled from \"../pkg/styled-components.js\";\nimport {openURL} from \"../helpers/navigation.js\";\nimport {useCurrentSubject} from \"../helpers/useCurrentSubject.js\";\nimport {FaExternalLinkAlt} from \"../pkg/react-icons/fa.js\";\nimport {ErrorLook} from \"../views/ResourceInline.js\";\nimport {isRunningInTauri} from \"../helpers/tauri.js\";\nexport function AtomicLink({\n children,\n subject,\n path,\n href,\n untabbable\n}) {\n const [currentUrl] = useCurrentSubject();\n const history = useHistory();\n if (!subject && !href && !path) {\n return /* @__PURE__ */ React.createElement(ErrorLook, null, \"No `subject`, `path` or `href` passed to this AtomicLink.\");\n }\n const handleClick = (e) => {\n if (href) {\n return;\n }\n e.preventDefault();\n if (path) {\n history.push(path);\n return;\n }\n if (subject) {\n if (currentUrl == subject) {\n return;\n }\n history.push(openURL(subject));\n }\n };\n const isOnCurrentPage = subject && currentUrl == subject;\n return /* @__PURE__ */ React.createElement(LinkView, {\n about: subject,\n onClick: handleClick,\n href: subject ? subject : href,\n disabled: isOnCurrentPage,\n tabIndex: isOnCurrentPage || untabbable ? -1 : 0,\n target: isRunningInTauri() && !href ? \"\" : \"_blank\"\n }, children, href && /* @__PURE__ */ React.createElement(FaExternalLinkAlt, null));\n}\nexport const LinkView = styled.a`\n color: ${(props) => props.disabled ? props.theme.colors.text : props.theme.colors.main};\n text-decoration: none;\n cursor: pointer;\n pointer-events: ${(props) => props.disabled ? \"none\" : \"inherit\"};\n\n svg {\n margin-left: 0.3rem;\n font-size: 60%;\n }\n\n &:hover {\n color: ${(props) => props.theme.colors.mainLight};\n text-decoration: underline;\n }\n &:active {\n color: ${(props) => props.theme.colors.mainDark};\n }\n`;\nexport default AtomicLink;\n", "import React from \"../pkg/react.js\";\nimport styled from \"../pkg/styled-components.js\";\nimport {useString, useResource, useTitle} from \"../link/react/src/index.js\";\nimport {urls} from \"../link/lib/src/index.js\";\nimport AtomicLink from \"../components/AtomicLink.js\";\nfunction ResourceInline({subject, untabbable}) {\n const resource = useResource(subject, {allowIncomplete: true});\n const title = useTitle(resource);\n const [description] = useString(resource, urls.properties.description);\n if (!subject) {\n return /* @__PURE__ */ React.createElement(ErrorLook, null, \"No subject passed\");\n }\n if (resource.loading) {\n return /* @__PURE__ */ React.createElement(\"span\", {\n about: subject,\n title: `${subject} is loading..`\n }, \"...\");\n }\n if (resource.error) {\n return /* @__PURE__ */ React.createElement(AtomicLink, {\n subject,\n untabbable\n }, /* @__PURE__ */ React.createElement(ErrorLook, {\n about: subject,\n title: resource.getError().message\n }, title));\n }\n return /* @__PURE__ */ React.createElement(AtomicLink, {\n subject,\n untabbable\n }, /* @__PURE__ */ React.createElement(\"span\", {\n title: description ? description : null\n }, title));\n}\nexport const ErrorLook = styled.span`\n color: ${(props) => props.theme.colors.alert};\n line-height: 1em;\n font-family: monospace;\n display: block;\n`;\nexport default ResourceInline;\n", "import React from \"../pkg/react.js\";\nimport {useString, useResource, useTitle} from \"../link/react/src/index.js\";\nimport {urls} from \"../link/lib/src/index.js\";\nimport {ErrorLook} from \"../views/ResourceInline.js\";\nimport {useHistory} from \"../pkg/react-router-dom.js\";\nimport {useCurrentSubject} from \"../helpers/useCurrentSubject.js\";\nimport {openURL} from \"../helpers/navigation.js\";\nimport {SideBarItem} from \"./SideBar.js\";\nexport const ResourceSideBar = React.memo(function RSB({\n subject,\n handleClose\n}) {\n const resource = useResource(subject, {allowIncomplete: true});\n const [currentUrl] = useCurrentSubject();\n const title = useTitle(resource);\n const [description] = useString(resource, urls.properties.description);\n const history = useHistory();\n const active = currentUrl == subject;\n const handleClick = () => {\n const url = new URL(subject);\n handleClose();\n if (currentUrl == subject) {\n return;\n }\n if (window.location.origin == url.origin) {\n const path = url.pathname + url.search;\n history.push(path);\n } else {\n history.push(openURL(subject));\n }\n };\n if (resource.loading) {\n return /* @__PURE__ */ React.createElement(SideBarItem, {\n clean: true,\n onClick: handleClick,\n disabled: active,\n resource: subject,\n title: `${subject} is loading...`\n }, \"loading...\");\n }\n if (resource.error) {\n return /* @__PURE__ */ React.createElement(SideBarItem, {\n clean: true,\n onClick: handleClick,\n disabled: active,\n resource: subject\n }, /* @__PURE__ */ React.createElement(ErrorLook, {\n about: subject,\n title: resource.getError().message\n }, subject));\n }\n return /* @__PURE__ */ React.createElement(SideBarItem, {\n clean: true,\n onClick: handleClick,\n disabled: active,\n resource: subject\n }, /* @__PURE__ */ React.createElement(\"span\", {\n title: description ? description : null\n }, title));\n});\n", "import React from \"../pkg/react.js\";\nimport {useSettings} from \"../helpers/AppSettings.js\";\nexport function Logo({style}) {\n const {darkMode} = useSettings();\n const fill = darkMode ? \"white\" : \"black\";\n return /* @__PURE__ */ React.createElement(\"svg\", {\n style,\n viewBox: \"0 0 647 75\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\"\n }, /* @__PURE__ */ React.createElement(\"path\", {\n d: \"M57.512 58.4H23.712L17.264 74H0L32.448 1.19995H49.088L81.64 74H63.96L57.512 58.4ZM52.208 45.608L40.664 17.736L29.12 45.608H52.208Z\",\n fill\n }), /* @__PURE__ */ React.createElement(\"path\", {\n d: \"M119.469 71.296C117.875 72.4746 115.899 73.376 113.541 74C111.253 74.5546 108.827 74.832 106.261 74.832C99.6052 74.832 94.4398 73.1333 90.7652 69.736C87.1598 66.3386 85.3572 61.3466 85.3572 54.76V31.776H76.7252V19.296H85.3572V5.67196H101.581V19.296H115.517V31.776H101.581V54.552C101.581 56.9093 102.171 58.7466 103.349 60.064C104.597 61.312 106.331 61.936 108.549 61.936C111.115 61.936 113.299 61.2426 115.101 59.856L119.469 71.296Z\",\n fill\n }), /* @__PURE__ */ React.createElement(\"path\", {\n d: \"M258.334 17.216C265.337 17.216 270.884 19.296 274.974 23.456C279.134 27.5466 281.214 33.7173 281.214 41.9679V74H264.99V44.464C264.99 40.0266 264.054 36.7333 262.182 34.584C260.38 32.3653 257.78 31.256 254.382 31.256C250.569 31.256 247.553 32.504 245.334 35C243.116 37.4266 242.006 41.0666 242.006 45.92V74H225.782V44.464C225.782 35.6586 222.246 31.256 215.174 31.256C211.43 31.256 208.449 32.504 206.23 35C204.012 37.4266 202.902 41.0666 202.902 45.92V74H186.678V18.048H202.174V24.496C204.254 22.1386 206.785 20.336 209.766 19.088C212.817 17.84 216.145 17.216 219.75 17.216C223.702 17.216 227.273 18.0133 230.462 19.608C233.652 21.1333 236.217 23.3866 238.158 26.368C240.446 23.456 243.324 21.2026 246.79 19.608C250.326 18.0133 254.174 17.216 258.334 17.216Z\",\n fill\n }), /* @__PURE__ */ React.createElement(\"path\", {\n d: \"M291.596 18.048H307.82V74H291.596V18.048Z\",\n fill\n }), /* @__PURE__ */ React.createElement(\"path\", {\n d: \"M345.758 74.832C339.795 74.832 334.422 73.6186 329.638 71.192C324.923 68.696 321.214 65.264 318.51 60.896C315.875 56.528 314.558 51.5706 314.558 46.0239C314.558 40.4773 315.875 35.52 318.51 31.152C321.214 26.784 324.923 23.3866 329.638 20.96C334.422 18.464 339.795 17.216 345.758 17.216C351.651 17.216 356.782 18.464 361.15 20.96C365.587 23.3866 368.811 26.888 370.822 31.464L358.238 38.224C355.326 33.0933 351.131 30.528 345.654 30.528C341.424 30.528 337.923 31.9146 335.15 34.688C332.376 37.4613 330.99 41.2399 330.99 46.0239C330.99 50.808 332.376 54.5866 335.15 57.36C337.923 60.1333 341.424 61.52 345.654 61.52C351.2 61.52 355.395 58.9546 358.238 53.824L370.822 60.688C368.811 65.1253 365.587 68.592 361.15 71.088C356.782 73.584 351.651 74.832 345.758 74.832Z\",\n fill\n }), /* @__PURE__ */ React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M137.633 17.5725C139.483 22.4964 144.235 26 149.806 26C155.376 26 160.128 22.4964 161.979 17.5725C172.482 22.241 179.806 32.7652 179.806 45C179.806 61.5685 166.374 75 149.806 75C133.237 75 119.806 61.5685 119.806 45C119.806 32.7652 127.13 22.241 137.633 17.5725ZM141.39 16.1965C142.679 19.589 145.961 22 149.806 22C153.65 22 156.932 19.589 158.221 16.1965C155.551 15.4176 152.727 15 149.806 15C146.884 15 144.06 15.4176 141.39 16.1965ZM163.806 45C163.806 52.732 157.538 59 149.806 59C142.074 59 135.806 52.732 135.806 45C135.806 37.268 142.074 31 149.806 31C157.538 31 163.806 37.268 163.806 45Z\",\n fill\n }), /* @__PURE__ */ React.createElement(\"path\", {\n d: \"M143.442 19.364C139.927 15.8492 139.927 10.1508 143.442 6.63604C146.956 3.12132 152.655 3.12132 156.17 6.63604C157.784 8.25001 158.656 10.3245 158.788 12.4365C158.943 14.9238 158.07 17.4632 156.17 19.364C152.655 22.8787 146.956 22.8787 143.442 19.364Z\",\n fill: \"url(#paint0_linear)\"\n }), /* @__PURE__ */ React.createElement(\"path\", {\n d: \"M415.806 1.19995H448.878C456.782 1.19995 463.75 2.72528 469.782 5.77595C475.883 8.75729 480.598 12.9866 483.926 18.464C487.323 23.9413 489.022 30.32 489.022 37.6C489.022 44.88 487.323 51.2586 483.926 56.736C480.598 62.2133 475.883 66.4773 469.782 69.528C463.75 72.5093 456.782 74 448.878 74H415.806V1.19995ZM448.046 60.168C455.326 60.168 461.115 58.1573 465.414 54.136C469.782 50.0453 471.966 44.5333 471.966 37.6C471.966 30.6666 469.782 25.1893 465.414 21.168C461.115 17.0773 455.326 15.032 448.046 15.032H432.654V60.168H448.046Z\",\n fill\n }), /* @__PURE__ */ React.createElement(\"path\", {\n d: \"M518.992 17.216C527.658 17.216 534.314 19.296 538.96 23.456C543.605 27.5466 545.928 33.752 545.928 42.072V74H530.744V67.032C527.693 72.232 522.008 74.832 513.688 74.832C509.389 74.832 505.645 74.104 502.456 72.648C499.336 71.192 496.944 69.1813 495.28 66.616C493.616 64.0506 492.784 61.1386 492.784 57.88C492.784 52.68 494.725 48.5893 498.608 45.608C502.56 42.6266 508.626 41.136 516.808 41.136H529.704C529.704 37.6 528.629 34.896 526.48 33.024C524.33 31.0826 521.106 30.112 516.808 30.112C513.826 30.112 510.88 30.5973 507.968 31.568C505.125 32.4693 502.698 33.7173 500.688 35.312L494.864 23.976C497.914 21.8266 501.554 20.1626 505.784 18.9839C510.082 17.8053 514.485 17.216 518.992 17.216ZM517.744 63.912C520.517 63.912 522.978 63.288 525.128 62.04C527.277 60.7226 528.802 58.816 529.704 56.32V50.6H518.576C511.92 50.6 508.592 52.784 508.592 57.152C508.592 59.232 509.389 60.896 510.984 62.144C512.648 63.3226 514.901 63.912 517.744 63.912Z\",\n fill\n }), /* @__PURE__ */ React.createElement(\"path\", {\n d: \"M592.539 71.296C590.944 72.4746 588.968 73.376 586.611 74C584.323 74.5546 581.896 74.832 579.331 74.832C572.675 74.832 567.51 73.1333 563.835 69.736C560.23 66.3386 558.427 61.3466 558.427 54.76V31.776H549.795V19.296H558.427V5.67196H574.651V19.296H588.587V31.776H574.651V54.552C574.651 56.9093 575.24 58.7466 576.419 60.064C577.667 61.312 579.4 61.936 581.619 61.936C584.184 61.936 586.368 61.2426 588.171 59.856L592.539 71.296Z\",\n fill\n }), /* @__PURE__ */ React.createElement(\"path\", {\n d: \"M620.054 17.216C628.721 17.216 635.377 19.296 640.022 23.456C644.668 27.5466 646.99 33.752 646.99 42.072V74H631.806V67.032C628.756 72.232 623.07 74.832 614.75 74.832C610.452 74.832 606.708 74.104 603.518 72.648C600.398 71.192 598.006 69.1813 596.342 66.616C594.678 64.0506 593.846 61.1386 593.846 57.88C593.846 52.68 595.788 48.5893 599.67 45.608C603.622 42.6266 609.689 41.136 617.87 41.136H630.766C630.766 37.6 629.692 34.896 627.542 33.024C625.393 31.0826 622.169 30.112 617.87 30.112C614.889 30.112 611.942 30.5973 609.03 31.568C606.188 32.4693 603.761 33.7173 601.75 35.312L595.926 23.976C598.977 21.8266 602.617 20.1626 606.846 18.9839C611.145 17.8053 615.548 17.216 620.054 17.216ZM618.806 63.912C621.58 63.912 624.041 63.288 626.19 62.04C628.34 60.7226 629.865 58.816 630.766 56.32V50.6H619.638C612.982 50.6 609.654 52.784 609.654 57.152C609.654 59.232 610.452 60.896 612.046 62.144C613.71 63.3226 615.964 63.912 618.806 63.912Z\",\n fill\n }), /* @__PURE__ */ React.createElement(\"defs\", null, /* @__PURE__ */ React.createElement(\"linearGradient\", {\n id: \"paint0_linear\",\n x1: \"156.17\",\n y1: \"19.364\",\n x2: \"143.442\",\n y2: \"6.63604\",\n gradientUnits: \"userSpaceOnUse\"\n }, /* @__PURE__ */ React.createElement(\"stop\", {\n stopColor: \"#033049\"\n }), /* @__PURE__ */ React.createElement(\"stop\", {\n offset: \"1\",\n stopColor: \"#00C2FF\"\n }))));\n}\n", "import * as React from \"../pkg/react.js\";\nimport {useHistory} from \"../pkg/react-router-dom.js\";\nimport {paths} from \"../routes/paths.js\";\nimport {Button} from \"./Button.js\";\nexport function SignInButton() {\n const history = useHistory();\n return /* @__PURE__ */ React.createElement(Button, {\n type: \"button\",\n onClick: () => history.push(paths.agentSettings),\n title: \"Go the the User Settings page\"\n }, \"Sign in\");\n}\n", "import styled from \"../pkg/styled-components.js\";\nimport * as React from \"../pkg/react.js\";\nimport {useArray, useResource, useTitle} from \"../link/react/src/index.js\";\nimport {properties} from \"../link/lib/src/index.js\";\nimport {useHover} from \"../helpers/useHover.js\";\nimport {useSettings} from \"../helpers/AppSettings.js\";\nimport {useWindowSize} from \"../helpers/useWindowSize.js\";\nimport {useHistory} from \"../pkg/react-router-dom.js\";\nimport {Button} from \"./Button.js\";\nimport {ResourceSideBar} from \"./ResourceSideBar.js\";\nimport {Logo} from \"./Logo.js\";\nimport {\n FaCog,\n FaExternalLinkAlt,\n FaInfo,\n FaKeyboard,\n FaPlus,\n FaServer,\n FaUser\n} from \"../pkg/react-icons/fa.js\";\nimport {paths} from \"../routes/paths.js\";\nimport {ErrorLook} from \"../views/ResourceInline.js\";\nimport {openURL} from \"../helpers/navigation.js\";\nimport {SignInButton} from \"./SignInButton.js\";\nexport const SIDEBAR_TOGGLE_WIDTH = 600;\nconst aboutMenuItems = [\n {\n icon: /* @__PURE__ */ React.createElement(FaExternalLinkAlt, null),\n label: \"github\",\n helper: \"View the source code for this application\",\n onClick: () => window.open(\"https://github.com/joepio/atomic-data-browser\")\n },\n {\n icon: /* @__PURE__ */ React.createElement(FaExternalLinkAlt, null),\n label: \"discord\",\n helper: \"Chat with the Atomic Data community\",\n onClick: () => window.open(\"https://discord.gg/a72Rv2P\")\n },\n {\n icon: /* @__PURE__ */ React.createElement(FaExternalLinkAlt, null),\n label: \"docs\",\n helper: \"View the Atomic Data documentation\",\n onClick: () => window.open(\"https://docs.atomicdata.dev\")\n }\n];\nexport function SideBar() {\n const {baseURL} = useSettings();\n const history = useHistory();\n const {navbarTop, sideBarLocked, setSideBarLocked} = useSettings();\n const [ref, hoveringOverSideBar] = useHover(sideBarLocked);\n const windowSize = useWindowSize();\n const appMenuItems = React.useMemo(() => {\n return [\n {\n icon: /* @__PURE__ */ React.createElement(FaPlus, null),\n label: \"new resource\",\n helper: \"Create a new Resource, based on a Class (n)\",\n onClick: () => {\n history.push(paths.new);\n }\n },\n {\n icon: /* @__PURE__ */ React.createElement(FaUser, null),\n label: \"user settings\",\n helper: \"See and edit the current Agent / User (u)\",\n onClick: () => {\n history.push(paths.agentSettings);\n }\n },\n {\n icon: /* @__PURE__ */ React.createElement(FaCog, null),\n label: \"theme settings\",\n helper: \"Edit the theme, current Agent, and more. (t)\",\n onClick: () => {\n history.push(paths.themeSettings);\n }\n },\n {\n icon: /* @__PURE__ */ React.createElement(FaKeyboard, null),\n label: \"keyboard shortcuts\",\n helper: \"View the keyboard shortcuts (?)\",\n onClick: () => {\n history.push(paths.shortcuts);\n }\n },\n {\n icon: /* @__PURE__ */ React.createElement(FaInfo, null),\n label: \"about\",\n helper: \"Welcome page, tells about this app\",\n onClick: () => {\n history.push(paths.about);\n }\n }\n ];\n }, []);\n const isWideScreen = React.useCallback(() => windowSize.width > SIDEBAR_TOGGLE_WIDTH, [windowSize]);\n const closeSideBar = React.useCallback(() => {\n if (!isWideScreen()) {\n setSideBarLocked(false);\n }\n }, [isWideScreen]);\n return /* @__PURE__ */ React.createElement(SideBarContainer, null, /* @__PURE__ */ React.createElement(SideBarStyled, {\n ref,\n locked: isWideScreen() && sideBarLocked,\n exposed: sideBarLocked || hoveringOverSideBar && isWideScreen()\n }, navbarTop ? /* @__PURE__ */ React.createElement(PaddingBig, null) : null, /* @__PURE__ */ React.createElement(SideBarDrive, {\n handleClickItem: closeSideBar,\n key: baseURL\n }), /* @__PURE__ */ React.createElement(SideBarBottom, null, /* @__PURE__ */ React.createElement(SideBarHeader, null, \"app\"), appMenuItems.map((p) => /* @__PURE__ */ React.createElement(MenuItem, {\n key: p.label,\n ...p,\n handleClickItem: closeSideBar\n })), \" \", /* @__PURE__ */ React.createElement(SideBarHeader, null, /* @__PURE__ */ React.createElement(Logo, {\n style: {height: \"1.1rem\", maxWidth: \"100%\"}\n })), aboutMenuItems.map((p) => /* @__PURE__ */ React.createElement(MenuItem, {\n key: p.label,\n ...p,\n handleClickItem: closeSideBar\n }))), navbarTop ? /* @__PURE__ */ React.createElement(PaddingSmall, null) : /* @__PURE__ */ React.createElement(PaddingBig, null)), /* @__PURE__ */ React.createElement(SideBarOverlay, {\n onClick: () => setSideBarLocked(false),\n visible: sideBarLocked && !isWideScreen()\n }));\n}\nfunction MenuItem(item) {\n return /* @__PURE__ */ React.createElement(SideBarItem, {\n key: item.label,\n title: item.helper,\n clean: true,\n onClick: () => {\n item.onClick();\n item.handleClickItem();\n }\n }, item.icon && /* @__PURE__ */ React.createElement(SideBarIcon, null, item.icon), item.label);\n}\nconst SideBarDrive = React.memo(function SBD({\n handleClickItem\n}) {\n const {baseURL} = useSettings();\n const {agent} = useSettings();\n const drive = useResource(baseURL);\n const [children] = useArray(drive, properties.children);\n const title = useTitle(drive);\n const history = useHistory();\n return /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(SideBarHeader, null, /* @__PURE__ */ React.createElement(Button, {\n clean: true,\n title: `Your current baseURL is ${baseURL}`,\n \"data-test\": \"sidebar-drive-open\",\n onClick: () => {\n handleClickItem();\n history.push(openURL(baseURL));\n },\n style: {flex: 1, textAlign: \"left\"}\n }, /* @__PURE__ */ React.createElement(DriveTitle, {\n \"data-test\": \"current-drive-title\"\n }, title || baseURL, \" \")), /* @__PURE__ */ React.createElement(Button, {\n onClick: () => history.push(paths.serverSettings),\n icon: true,\n subtle: true,\n title: \"Set a different Server\",\n \"data-test\": \"sidebar-drive-edit\"\n }, /* @__PURE__ */ React.createElement(FaServer, null))), drive.isReady() ? children.map((child) => {\n return /* @__PURE__ */ React.createElement(ResourceSideBar, {\n key: child,\n subject: child,\n handleClose: handleClickItem\n });\n }) : drive.loading ? null : /* @__PURE__ */ React.createElement(SideBarErr, null, drive.error ? drive.isUnauthorized() ? agent ? \"unauthorized\" : /* @__PURE__ */ React.createElement(SignInButton, null) : drive.error.message : \"this should not happen\"));\n});\nconst DriveTitle = styled.h2`\n margin: 0;\n padding: 0;\n font-size: 1.4rem;\n flex: 1;\n`;\nconst PaddingSmall = styled(\"div\")`\n min-height: 1rem;\n`;\nconst PaddingBig = styled(\"div\")`\n min-height: 3rem;\n`;\nconst SideBarErr = styled(ErrorLook)`\n padding-left: ${(props) => props.theme.margin}rem;\n`;\nconst SideBarStyled = styled(\"div\")`\n z-index: 10;\n box-sizing: border-box;\n background: ${(p) => p.theme.colors.bg};\n border-right: solid 1px ${(p) => p.theme.colors.bg2};\n transition: opacity 0.3s, left 0.3s;\n left: ${(p) => p.exposed ? \"0\" : -p.theme.sideBarWidth + 0.5 + \"rem\"};\n /* When the user is hovering, show half opacity */\n opacity: ${(p) => p.exposed ? 1 : 0};\n height: 100vh;\n width: ${(p) => p.theme.sideBarWidth}rem;\n position: ${(p) => p.locked ? \"relative\" : \"absolute\"};\n display: flex;\n flex-direction: column;\n overflow-y: auto;\n`;\nconst SideBarHeader = styled(\"div\")`\n margin-top: ${(props) => props.theme.margin}rem;\n margin-bottom: 0.5rem;\n padding-left: ${(props) => props.theme.margin}rem;\n padding-right: ${(props) => props.theme.margin}rem;\n font-size: 1.4rem;\n font-weight: bold;\n display: flex;\n`;\nconst SideBarBottom = styled(\"div\")`\n margin-top: auto;\n flex-direction: column;\n justify-items: flex-end;\n display: flex;\n justify-content: end;\n`;\nconst SideBarContainer = styled(\"div\")`\n position: relative;\n`;\nconst SideBarOverlay = styled(\"div\")`\n position: absolute;\n left: 0;\n top: 0;\n bottom: 0;\n right: 0;\n width: 100vw;\n transition: background-color 0.2s;\n background-color: ${(p) => p.visible ? \"rgba(0, 0, 0, .5)\" : \"rgba(0, 0, 0, 0.0)\"};\n pointer-events: ${(p) => p.visible ? \"auto\" : \"none\"};\n height: 100%;\n cursor: pointer;\n z-index: 1;\n -webkit-tap-highlight-color: transparent;\n`;\nexport const SideBarItem = styled(Button)`\n padding-left: ${(props) => props.theme.margin}rem;\n padding-right: ${(props) => props.theme.margin}rem;\n display: flex;\n min-height: ${(props) => props.theme.margin * 0.5 + 1}rem;\n align-items: center;\n justify-content: flex-start;\n color: ${(p) => p.theme.colors.textLight};\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n\n &:disabled {\n background-color: ${(p) => p.theme.colors.bg1};\n }\n\n &:hover,\n &:focus {\n background-color: ${(p) => p.theme.colors.bg1};\n color: ${(p) => p.theme.colors.text};\n }\n`;\nconst SideBarIcon = styled.span`\n display: flex;\n margin-right: 0.5rem;\n`;\n", "import React from \"../pkg/react.js\";\nimport {useContext} from \"../pkg/react.js\";\nimport {useDarkMode} from \"./useDarkMode.js\";\nimport {useLocalStorage, useCurrentAgent, useBaseURL} from \"../link/react/src/index.js\";\nimport toast from \"../pkg/react-hot-toast.js\";\nimport {SIDEBAR_TOGGLE_WIDTH} from \"../components/SideBar.js\";\nexport const AppSettingsContextProvider = (props) => {\n const [darkMode, setDarkMode, darkModeSetting] = useDarkMode();\n const [mainColor, setMainColor] = useLocalStorage(\"mainColor\", \"#1b50d8\");\n const [navbarTop, setNavbarTop] = useLocalStorage(\"navbarTop\", true);\n const [navbarFloating, setNavbarFloating] = useLocalStorage(\"navbarFloating\", false);\n const [sideBarLocked, setSideBarLocked] = useLocalStorage(\"sideBarOpen\", window.innerWidth > SIDEBAR_TOGGLE_WIDTH);\n const [agent, setAgent] = useCurrentAgent();\n const [baseURL, setBaseURL] = useBaseURL();\n const setAgentToast = (agent2) => {\n try {\n setAgent(agent2);\n agent2?.subject && toast.success(\"Signed in!\");\n agent2 === null && toast.success(\"Signed out.\");\n } catch (e) {\n toast.error(\"Agent setting failed: \" + e.message);\n console.error(e);\n }\n };\n return /* @__PURE__ */ React.createElement(SettingsContext.Provider, {\n value: {\n baseURL,\n setBaseURL,\n darkMode,\n darkModeSetting,\n setDarkMode,\n mainColor,\n setMainColor,\n navbarTop,\n setNavbarTop,\n navbarFloating,\n setNavbarFloating,\n sideBarLocked,\n setSideBarLocked,\n agent,\n setAgent: setAgentToast\n }\n }, props.children);\n};\nexport const useSettings = () => {\n const settings = useContext(SettingsContext);\n return settings;\n};\nexport const SettingsContext = React.createContext(null);\n", "import {\n createGlobalStyle,\n ThemeProvider\n} from \"./pkg/styled-components.js\";\nimport {darken, lighten} from \"./pkg/polished.js\";\nimport \"../reset.css\";\nimport React from \"./pkg/react.js\";\nimport \"./pkg/styled-components.js\";\nimport {useContext} from \"./pkg/react.js\";\nimport {SettingsContext} from \"./helpers/AppSettings.js\";\nexport const ThemeWrapper = ({children}) => {\n const {mainColor, darkMode} = useContext(SettingsContext);\n return /* @__PURE__ */ React.createElement(ThemeProvider, {\n key: mainColor,\n theme: buildTheme(darkMode, mainColor)\n }, children);\n};\nexport const buildTheme = (darkMode, mainIn) => {\n const main = darkMode ? lighten(0.2, mainIn) : mainIn;\n const bg = darkMode ? \"black\" : \"white\";\n const text = darkMode ? \"white\" : \"black\";\n const shadowColor = darkMode ? \"rgba(255,255,255,.15)\" : \"rgba(0,0,0,0.07)\";\n const shadowColorIntense = darkMode ? \"rgba(255,255,255,.3)\" : \"rgba(0,0,0,0.2)\";\n return {\n darkMode,\n fontFamilyHeader: \"'Montserrat', 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif\",\n fontFamily: \"'Open Sans', 'Helvetica Neue', 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif\",\n boxShadow: `0 0 10px 0px ${shadowColor}`,\n boxShadowIntense: `0 0 22px 0px ${shadowColorIntense}`,\n containerWidth: 40,\n fontSizeBody: 1,\n fontSizeH1: 2,\n sideBarWidth: 15,\n margin: 1,\n radius: \"9px\",\n colors: {\n main,\n mainLight: darkMode ? lighten(0.08)(main) : lighten(0.08)(main),\n mainDark: darkMode ? darken(0.08)(main) : darken(0.08)(main),\n bg,\n bgBody: darkMode ? bg : darken(0.02)(bg),\n bg1: darkMode ? lighten(0.1)(bg) : darken(0.05)(bg),\n bg2: darkMode ? lighten(0.3)(bg) : darken(0.2)(bg),\n text,\n text1: darkMode ? darken(0.1)(text) : lighten(0.1)(text),\n textLight: darkMode ? darken(0.4)(text) : lighten(0.4)(text),\n textLight2: darkMode ? darken(0.8)(text) : lighten(0.8)(text),\n alert: \"#cf5b5b\"\n }\n };\n};\nexport const GlobalStyle = createGlobalStyle`\n\n body {\n background-color: ${(props) => props.theme.colors.bgBody};\n color: ${(props) => props.theme.colors.text};\n font-family: ${(props) => props.theme.fontFamily};\n line-height: 1.5em;\n word-wrap: break-word;\n overflow-wrap: anywhere;\n margin: 0;\n /** Pretty dark mode transition */\n transition: background .2s ease, border-color .2s ease, color .2s ease;\n }\n\n input, button, body {\n /* transition: background .2s ease, border-color .2s ease, color .2s ease; */\n /* Don't overflow input elements */\n overflow-wrap: normal;\n }\n\n a {\n color: ${(props) => props.theme.colors.main};\n }\n\n h1 {\n font-size: ${(p) => p.theme.fontSizeH1}rem;\n }\n\n h2 {\n font-size: 1.7rem;\n }\n\n h1,h2,h3,h4,h5,h6 {\n margin-bottom: ${(props) => props.theme.margin}rem;\n font-weight: bold;\n font-family: ${(p) => p.theme.fontFamilyHeader};\n line-height: 1em;\n margin-top: 0;\n word-break: break-word;\n }\n\n i {\n font-style: italic;\n }\n\n p {\n margin-top: 0;\n margin-bottom: ${(props) => props.theme.margin}rem;\n }\n\n ul {\n margin-top: 0;\n margin-bottom: ${(props) => props.theme.margin}rem;\n padding: 0;\n\n li {\n list-style-type: disc;\n margin-left: ${(props) => props.theme.margin * 2}rem;\n margin-bottom: ${(props) => props.theme.margin / 2}rem;\n }\n }\n\n code {\n background-color: ${(props) => props.theme.colors.bg1};\n padding: 0rem 0.2rem;\n font-family: Monaco, monospace;\n font-size: .8em;\n display: inline-flex;\n white-space: nowrap;\n overflow: auto;\n max-width: 100%;\n }\n\n b {\n font-weight: bold;\n }\n\n @keyframes toast-enter {\n 0% {left:110%;}\n 100% {left:0;}\n }\n\n @keyframes toast-exit {\n 0% {left:0;}\n 100% {left:110%;}\n }\n`;\n", "import styled from \"../pkg/styled-components.js\";\nexport const ContainerNarrow = styled.div`\n max-width: ${(props) => props.theme.containerWidth}rem;\n margin: auto;\n padding: ${(props) => props.theme.margin}rem;\n // Extra space for the navbar below\n padding-bottom: 10rem;\n`;\nexport const ContainerFull = styled.div`\n padding: ${(props) => props.theme.margin}rem;\n padding-bottom: 10rem;\n`;\n", "import { r as react } from './common/index-04f37d11.js';\nimport './common/_commonjsHelpers-8c19dec8.js';\n\n/*!\n * hotkeys-js v3.8.7\n * A simple micro-library for defining and dispatching keyboard shortcuts. It has no dependencies.\n * \n * Copyright (c) 2021 kenny wong \n * http://jaywcjlove.github.io/hotkeys\n * \n * Licensed under the MIT license.\n */\n\nvar isff = typeof navigator !== 'undefined' ? navigator.userAgent.toLowerCase().indexOf('firefox') > 0 : false; // 绑定事件\n\nfunction addEvent(object, event, method) {\n if (object.addEventListener) {\n object.addEventListener(event, method, false);\n } else if (object.attachEvent) {\n object.attachEvent(\"on\".concat(event), function () {\n method(window.event);\n });\n }\n} // 修饰键转换成对应的键码\n\n\nfunction getMods(modifier, key) {\n var mods = key.slice(0, key.length - 1);\n\n for (var i = 0; i < mods.length; i++) {\n mods[i] = modifier[mods[i].toLowerCase()];\n }\n\n return mods;\n} // 处理传的key字符串转换成数组\n\n\nfunction getKeys(key) {\n if (typeof key !== 'string') key = '';\n key = key.replace(/\\s/g, ''); // 匹配任何空白字符,包括空格、制表符、换页符等等\n\n var keys = key.split(','); // 同时设置多个快捷键,以','分割\n\n var index = keys.lastIndexOf(''); // 快捷键可能包含',',需特殊处理\n\n for (; index >= 0;) {\n keys[index - 1] += ',';\n keys.splice(index, 1);\n index = keys.lastIndexOf('');\n }\n\n return keys;\n} // 比较修饰键的数组\n\n\nfunction compareArray(a1, a2) {\n var arr1 = a1.length >= a2.length ? a1 : a2;\n var arr2 = a1.length >= a2.length ? a2 : a1;\n var isIndex = true;\n\n for (var i = 0; i < arr1.length; i++) {\n if (arr2.indexOf(arr1[i]) === -1) isIndex = false;\n }\n\n return isIndex;\n}\n\nvar _keyMap = {\n backspace: 8,\n tab: 9,\n clear: 12,\n enter: 13,\n return: 13,\n esc: 27,\n escape: 27,\n space: 32,\n left: 37,\n up: 38,\n right: 39,\n down: 40,\n del: 46,\n delete: 46,\n ins: 45,\n insert: 45,\n home: 36,\n end: 35,\n pageup: 33,\n pagedown: 34,\n capslock: 20,\n num_0: 96,\n num_1: 97,\n num_2: 98,\n num_3: 99,\n num_4: 100,\n num_5: 101,\n num_6: 102,\n num_7: 103,\n num_8: 104,\n num_9: 105,\n num_multiply: 106,\n num_add: 107,\n num_enter: 108,\n num_subtract: 109,\n num_decimal: 110,\n num_divide: 111,\n '⇪': 20,\n ',': 188,\n '.': 190,\n '/': 191,\n '`': 192,\n '-': isff ? 173 : 189,\n '=': isff ? 61 : 187,\n ';': isff ? 59 : 186,\n '\\'': 222,\n '[': 219,\n ']': 221,\n '\\\\': 220\n}; // Modifier Keys\n\nvar _modifier = {\n // shiftKey\n '⇧': 16,\n shift: 16,\n // altKey\n '⌥': 18,\n alt: 18,\n option: 18,\n // ctrlKey\n '⌃': 17,\n ctrl: 17,\n control: 17,\n // metaKey\n '⌘': 91,\n cmd: 91,\n command: 91\n};\nvar modifierMap = {\n 16: 'shiftKey',\n 18: 'altKey',\n 17: 'ctrlKey',\n 91: 'metaKey',\n shiftKey: 16,\n ctrlKey: 17,\n altKey: 18,\n metaKey: 91\n};\nvar _mods = {\n 16: false,\n 18: false,\n 17: false,\n 91: false\n};\nvar _handlers = {}; // F1~F12 special key\n\nfor (var k = 1; k < 20; k++) {\n _keyMap[\"f\".concat(k)] = 111 + k;\n}\n\nvar _downKeys = []; // 记录摁下的绑定键\n\nvar _scope = 'all'; // 默认热键范围\n\nvar elementHasBindEvent = []; // 已绑定事件的节点记录\n// 返回键码\n\nvar code = function code(x) {\n return _keyMap[x.toLowerCase()] || _modifier[x.toLowerCase()] || x.toUpperCase().charCodeAt(0);\n}; // 设置获取当前范围(默认为'所有')\n\n\nfunction setScope(scope) {\n _scope = scope || 'all';\n} // 获取当前范围\n\n\nfunction getScope() {\n return _scope || 'all';\n} // 获取摁下绑定键的键值\n\n\nfunction getPressedKeyCodes() {\n return _downKeys.slice(0);\n} // 表单控件控件判断 返回 Boolean\n// hotkey is effective only when filter return true\n\n\nfunction filter(event) {\n var target = event.target || event.srcElement;\n var tagName = target.tagName;\n var flag = true; // ignore: isContentEditable === 'true', and