for-any-project-min
code:script.js
var kx=Object.defineProperty;var rn=(e,t)=>{for(var r in t)kx(e,r,{get:tr,enumerable:!0})};var Xc=e=>Ex.includes(e.name),Ex="SocketIOError","DuplicateTitleError","NotFastForwardError";var nn=async()=>{let t=(await Lx())("https://scrapbox.io",{reconnectionDelay:5e3,transports:["websocket"]});return await new Promise((r,n)=>{let o=s=>n(s);t.once("connect",()=>{t.off("disconnect",o),r()}),t.once("disconnect",o)}),t},Tx="4.2.0",Yc=https://cdnjs.cloudflare.com/ajax/libs/socket.io/${Tx}/socket.io.min.js,ei,Lx=async()=>{if(ei)throw ei;if(!document.querySelector(script[src="${Yc}"])){let e=document.createElement("script");e.src=Yc,await new Promise((t,r)=>{e.onload=()=>t(),e.onerror=n=>{ei=n,r(n)},document.head.append(e)})}return new Promise(e=>{let t=setInterval(()=>{io&&(clearInterval(t),e(io))},500)})};var ti=(e,t=9e4)=>{let r=(o,s)=>{let i;return new Promise((a,c)=>{let l=p=>{clearTimeout(i),c(new Error(p))};e.emit(o,s,p=>{switch(clearTimeout(i),e.off("disconnect",l),o){case"socket.io-request":"error"in p?typeof p.error=="object"&&p.error&&"name"in p.error&&typeof p.error.name=="string"&&Xc({name:p.error.name})?a({ok:!1,value:p.error}):a({ok:!1,value:{name:"UnexpectedError",value:p.error}}):"data"in p&&a({ok:!0,value:p.data});break;case"cursor":"error"in p?a({ok:!1,value:{name:"UnexpectedError",value:p.error}}):"data"in p&&a({ok:!0,value:p.data});break}c(new Error('Invalid response: missing "data" or "error" field'))}),i=setTimeout(()=>{e.off("disconnect",l),a({ok:!1,value:{name:"TimeoutError",message:Timeout: exceeded ${t}ms}})},t),e.once("disconnect",l)})};async function*n(...o){let s,i=()=>new Promise(c=>s=c),a=c=>{s?.(c)};for(let c of o)e.on(c,a);try{for(;;)yield await i()}finally{for(let c of o)e.off(c,a)}}return{request:r,response:n}};var Ae=()=>nn(),ri=async e=>{if(e.connected)return;let t=new Promise(r=>e.once("connect",()=>r()));e.connect(),await t},De=async e=>{if(e.disconnected)return;let t=new Promise(r=>{let n=o=>{o==="io client disconnect"&&(r(),e.off("disconnect",n))};e.on("disconnect",n)});e.disconnect(),await t};var ni=(e,t)=>{let r=e.length>t.length,n=r?t:e,o=r?e:t,s=n.length+1,i=n.length+o.length+3,a=new Array(i);a.fill(-1);let c=[];function l(h,x,v){let L=Math.max(x,v),S=L-h;for(;S<n.length&&L<o.length&&nS===oL;)++S,++L;return ah+s=c.length,c.push([{x:S,y:L},ah+(x>v?-1:1)+s]),L}let p=new Array(i);p.fill(-1);let u=-1,f=o.length-n.length;do{++u;for(let h=-u;h<=f-1;++h)ph+s=l(h,ph-1+s+1,ph+1+s);for(let h=f+u;h>=f+1;--h)ph+s=l(h,ph-1+s+1,ph+1+s);pf+s=l(f,pf-1+s+1,pf+1+s)}while(pf+s!==o.length);let d=[],g=af+s;for(;g!==-1;)d.push(cg0),g=cg1;return{from:e,to:t,editDistance:f+u*2,buildSES:function*(){let h=0,x=0;for(let{x:v,y:L}of Sx(d))for(;h<v||x<L;)L-v>x-h?(yield{value:ox,type:r?"deleted":"added"},++x):L-v<x-h?(yield{value:nh,type:r?"added":"deleted"},++h):(yield{value:nh,type:"common"},++h,++x)}}};function*oi(e){let t=[],r=[];function*n(){if(t.length>r.length){for(let o=0;o<r.length;o++)yield Vc(to,ro);for(let o=r.length;o<t.length;o++)yield to}else{for(let o=0;o<t.length;o++)yield Vc(to,ro);for(let o=t.length;o<r.length;o++)yield ro}t=[],r=[]}for(let o of e)switch(o.type){case"added":t.push(o);break;case"deleted":r.push(o);break;case"common":yield*n(),yield o;break}yield*n()}var Vc=(e,t)=>({value:e.value,oldValue:t.value,type:"replaced"});function*Sx(e){for(let t=e.length-1;t>=0;t--)yield et}var Y=e=>{let{fetch:t=globalThis.fetch,hostName:r="scrapbox.io",...n}=e;return{fetch:t,hostName:r,...n}};var et=e=>e==null,Lr=e=>typeof e=="string",Se=e=>typeof e=="number";var Px=e=>typeof e=="object"&&e!==null,Rx=e=>Px(e)?(e.name===void 0||typeof e.name=="string")&&typeof e.message=="string":!1,Jc=e=>{try{let t=typeof e=="string"?JSON.parse(e):e;return Rx(t)?t:!1}catch(t){if(t instanceof SyntaxError)return!1;throw t}};var Lt=class e extends Error{constructor(r){super(${r.status} ${r.statusText} when fetching ${r.url});this.response=r;Error.captureStackTrace&&Error.captureStackTrace(this,e)}name="UnexpectedResponseError"},se=async e=>{let t=e.clone(),r=await t.text(),n=Jc(r);if(!n)throw new Lt(t);return{ok:!1,value:n}};var Kn=async e=>{let{sid:t,hostName:r,fetch:n}=Y(e??{}),o=new Request(https://${r}/api/users/me,t?{headers:{Cookie:Z(t)}}:void 0),s=await n(o);if(!s.ok)throw new Lt(s);return await s.json()};var Z=e=>connect.sid=${e},mt=async e=>globalThis._csrf?globalThis._csrf:(await Kn(e)).csrfToken;var Qc=(e,t)=>{let{sid:r,hostName:n}=Y(t??{});return new Request(https://${n}/api/projects/${e},r?{headers:{Cookie:Z(r)}}:void 0)},Zc=async e=>e.ok?{ok:!0,value:await e.json()}:se(e),at=async(e,t)=>{let{fetch:r}=Y(t??{}),n=Qc(e,t),o=await r(n);return Zc(o)};at.toRequest=Qc;at.fromResponse=Zc;var el=(e,t)=>{let{sid:r,hostName:n}=Y(t??{}),o=new URLSearchParams;for(let s of e)o.append("ids",s);return new Request(https://${n}/api/projects?${o.toString()},r?{headers:{Cookie:Z(r)}}:void 0)},tl=async e=>e.ok?{ok:!0,value:await e.json()}:se(e),Sr=async(e,t)=>{let{fetch:r}=Y(t??{}),n=await r(el(e,t));return tl(n)};Sr.toRequest=el;Sr.fromResponse=tl;var Xn,ol=async()=>{if(Xn!==void 0)return Xn;let e=await Kn();if(e.isGuest)throw new Error("this script can only be executed by Logged in users");return Xn=e.id,Xn},rl=new Map,si=async e=>{let t=rl.get(e);if(t!==void 0)return t;let r=await at(e);if(!r.ok){let{name:o,message:s}=r.value;throw new Error(${o} ${s})}let{id:n}=r.value;return rl.set(e,n),n},nl=e=>e.padStart(8,"0"),ii=e=>{let t=Math.floor(new Date().getTime()/1e3).toString(16),r=Math.floor(16777214*Math.random()).toString(16);return${nl(t).slice(-8)}${e.slice(-6)}0000${nl(r)}};function*ai(e,t,{userId:r}){let{buildSES:n}=ni(e.map(({text:i})=>i),t),o=0,s=e0.id;for(let i of oi(n())){switch(i.type){case"added":yield{_insert:s,lines:{id:ii(r),text:i.value}};continue;case"deleted":yield{_delete:s,lines:-1};break;case"replaced":yield{_update:s,lines:{text:i.value}};break}o++,s=eo?.id??"_end"}}var Yn={};rn(Yn,{getTitle:()=>Kb,parse:()=>tt});var _x=e=>({type:"title",text:e.rows0.text}),Cx=e=>{let{rows:t,...r}=e,{indent:n=0,text:o=""}=t??{},s=o.replace(/^\s*code:/,"");return{indent:n,type:"codeBlock",fileName:s,content:r.map(i=>i.text.substring(n+1)).join(` )}},Pe=(e,{parseOnNested:t,parseOnQuoted:r,patterns:n})=>(o,s,i)=>{var a,c,l,p,u,f;if(!t&&s.nested)return(a=i?.())!==null&&a!==void 0?a:[];if(!r&&s.quoted)return(c=i?.())!==null&&c!==void 0?c:[];for(let d of n){let g=d.exec(o);if(g===null)continue;let h=o.substring(0,g.index),x=o.substring(g.index+((p=(l=g[0])===null||l===void 0?void 0:l.length)!==null&&p!==void 0?p:0)),v=e((u=g[0])!==null&&u!==void 0?u:"",s);return[...$t(h,s),...v,...$t(x,s)]}return(f=i?.())!==null&&f!==void 0?f:[]},Ie=e=>[{type:"plain",raw:e,text:e}],Mx=Pe(Ie,{parseOnNested:!0,parseOnQuoted:!0,patterns:[/^()(.*)()$/]}),Dx=/^>.*$/,Ix=(e,t)=>t.context==="table"?Ie(e,t):[{type:"quote",raw:e,nodes:$t(e.substring(1),{...t,quoted:!0})}],Nx=Pe(Ix,{parseOnNested:!1,parseOnQuoted:!1,patterns:[Dx]}),Ox=/^\? .+$/,$x=(e,t)=>t.context==="table"?Ie(e,t):[{type:"helpfeel",raw:e,text:e.substring(2)}],jx=Pe($x,{parseOnNested:!1,parseOnQuoted:!1,patterns:[Ox]}),Ax=/\[\[https?:\/\/[^\s\]]+\.(?:png|jpe?g|gif|svg)\]\]/i,Ux=/\[\[https?:\/\/(?:[0-9a-z-]+\.)?gyazo\.com\/[0-9a-f]{32}\]\]/,Fx=(e,t)=>{if(t.context==="table")return Ie(e,t);let r=e.substring(2,e.length-2),n=/^https?:\/\/([0-9a-z-]\.)?gyazo\.com\/[0-9a-f]{32}$/.test(r);return[{type:"strongImage",raw:e,src:n?${r}/thumb/1000:r}]},Bx=Pe(Fx,{parseOnNested:!1,parseOnQuoted:!0,patterns:[Ax,Ux]}),Hx=/\[[^[\]]*\.icon(?:\*[1-9]\d*)?\]/;function il(e){return(t,r)=>{if(e==="strongIcon"&&r.context==="table")return Ie(t,r);let n=e==="icon"?t.substring(1,t.length-1):t.substring(2,t.length-2),o=n.lastIndexOf(".icon"),s=n.substring(0,o),i=s.startsWith("/")?"root":"relative",a=n.substring(o+5,n.length),c=a.startsWith("*")?parseInt(a.substring(1),10):1;return new Array(c).fill({}).map(()=>({path:s,pathType:i,type:e,raw:t}))}}var zx=il("icon"),qx=Pe(zx,{parseOnNested:!0,parseOnQuoted:!0,patterns:[Hx]}),Wx=/\[\[[^[\]]*\.icon(?:\*\d+)?\]\]/,Gx=il("strongIcon"),Kx=Pe(Gx,{parseOnNested:!1,parseOnQuoted:!0,patterns:[Wx]}),Xx=/\[\[(?:[^[]|\[[^[]).*?\]*\]\]/,Yx=(e,t)=>t.context==="table"?Ie(e,t):[{type:"strong",raw:e,nodes:$t(e.substring(2,e.length-2),{...t,nested:!0})}],Vx=Pe(Yx,{parseOnNested:!1,parseOnQuoted:!0,patterns:[Xx]}),Jx=/\[\$ .+? \]/,Qx=/\[\$ [^\]]+\]/,Zx=(e,t)=>t.context==="table"?Ie(e,t):[{type:"formula",raw:e,formula:e.substring(3,e.length-(e.endsWith(" ]")?2:1))}],eb=Pe(Zx,{parseOnNested:!1,parseOnQuoted:!0,patterns:[Jx,Qx]}),tb=/\[[!"#%&'()*+,\-./{|}<>_~]+ (?:\[[^[\]]+\]|[^\]])+\]/,rb=(e,t)=>{if(t.context==="table")return Ie(e,t);let r=e.indexOf(" "),n=e.substring(1,r),o=e.substring(r+1,e.length-1),s=new Set(n);if(s.has("*")){let i=n.split("*").length-1;s.delete("*"),s.add(*-${Math.min(i,10)})}return[{type:"decoration",raw:e,rawDecos:n,decos:Array.from(s),nodes:$t(o,{...t,nested:!0})}]},nb=Pe(rb,{parseOnNested:!1,parseOnQuoted:!0,patterns:[tb]}),ob=/.*?/,sb=(e,t)=>t.context==="table"?Ie(e,t):[{type:"code",raw:e,text:e.substring(1,e.length-1)}],ib=Pe(sb,{parseOnNested:!1,parseOnQuoted:!0,patterns:[ob]}),ab=/^[$%] .+$/,cb=(e,t)=>{var r;if(t.context==="table")return Ie(e,t);let n=(r=e[0])!==null&&r!==void 0?r:"",o=e.substring(2);return[{type:"commandLine",raw:e,symbol:n,text:o}]},lb=Pe(cb,{parseOnNested:!1,parseOnQuoted:!1,patterns:[ab]}),pb=/\[\s+\]/,ub=(e,t)=>t.context==="table"?Ie(e,t):[{type:"blank",raw:e,text:e.substring(1,e.length-1)}],db=Pe(ub,{parseOnNested:!1,parseOnQuoted:!0,patterns:[pb]}),mb=/\[https?:\/\/[^\s\]]+\.(?:png|jpe?g|gif|svg)(?:\?[^\]\s]+)?(?:\s+https?:\/\/[^\s\]]+)?\]/i,fb=/\[https?:\/\/[^\s\]]+\s+https?:\/\/[^\s\]]+\.(?:png|jpe?g|gif|svg)(?:\?[^\]\s]+)?\]/i,gb=/\[https?:\/\/(?:[0-9a-z-]+\.)?gyazo\.com\/[0-9a-f]{32}(?:\/raw)?(?:\s+https?:\/\/[^\s\]]+)?\]/,hb=/\[https?:\/\/[^\s\]]+\s+https?:\/\/(?:[0-9a-z-]+\.)?gyazo\.com\/[0-9a-f]{32}(?:\/raw)?\]/,xb=e=>/^https?:\/\/[^\s\]]+\.(png|jpe?g|gif|svg)(\?[^\]\s]+)?$/i.test(e)||bb(e),bb=e=>/^https?:\/\/([0-9a-z-]\.)?gyazo\.com\/[0-9a-f]{32}(\/raw)?$/.test(e),yb=(e,t)=>{if(t.context==="table")return Ie(e,t);let r=e.search(/\s/),n=r!==-1?e.substring(1,r):e.substring(1,e.length-1),o=r!==-1?e.substring(r,e.length-1).trimLeft():"",[s,i]=xb(o)?[o,n]:[n,o];return[{type:"image",raw:e,src:/^https?:\/\/([0-9a-z-]\.)?gyazo\.com\/[0-9a-f]{32}$/.test(s)?${s}/thumb/1000:s,link:i}]},vb=Pe(yb,{parseOnNested:!0,parseOnQuoted:!0,patterns:[mb,fb,gb,hb]}),wb=/\[https?:\/\/[^\s\]]+\s+[^\]]*[^\s]\]/,kb=/\[[^[\]]*[^\s]\s+https?:\/\/[^\s\]]+\]/,Eb=/\[https?:\/\/[^\s\]]+\]/,Tb=/https?:\/\/[^\s]+/,Lb=(e,t)=>{if(t.context==="table")return Ie(e,t);let r=e.startsWith("[")&&e.endsWith("]")?e.substring(1,e.length-1):e,n=/^https?:\/\/[^\s\]]/.test(r),o=(n?/^https?:\/\/[^\s\]]+/:/https?:\/\/[^\s\]]+$/).exec(r);if(o?.[0]===void 0)return[];let s=n?r.substring(o[0].length):r.substring(0,o.index-1);return[{type:"link",raw:e,pathType:"absolute",href:o[0],content:s.trim()}]},Sb=Pe(Lb,{parseOnNested:!0,parseOnQuoted:!0,patterns:[wb,kb,Eb,Tb]}),al=/\[([^\]]*[^\s])\s+([NS]\d+(?:\.\d+)?,[EW]\d+(?:\.\d+)?(?:,Z\d+)?)\]/,cl=/\[([NS]\d+(?:\.\d+)?,[EW]\d+(?:\.\d+)?(?:,Z\d+)?)(?:\s+([^\]]*[^\s]))?\]/,Pb=e=>{let[t="",r="",n=""]=e.split(","),o=parseFloat(t.replace(/^N/,"").replace(/^S/,"-")),s=parseFloat(r.replace(/^E/,"").replace(/^W/,"-")),i=/^Z\d+$/.test(n)?parseInt(n.replace(/^Z/,""),10):14;return{latitude:o,longitude:s,zoom:i}},Rb=(e,t)=>{var r;if(t.context==="table")return Ie(e,t);let n=(r=e.match(al))!==null&&r!==void 0?r:e.match(cl);if(n===null)return[];let o=e.startsWith("[N")||e.startsWith("[S"),[,s="",i=""]=o?n:[n[0],n[2],n[1]],{latitude:a,longitude:c,zoom:l}=Pb(s),p=i!==""?https://www.google.com/maps/place/${encodeURIComponent(i)}/@${a},${c},${l}z:https://www.google.com/maps/@${a},${c},${l}z;return[{type:"googleMap",raw:e,latitude:a,longitude:c,zoom:l,place:i,url:p}]},_b=Pe(Rb,{parseOnNested:!1,parseOnQuoted:!0,patterns:[al,cl]}),Cb=/\[\/?[^[\]]+\]/,Mb=e=>{let t=e.substring(1,e.length-1);return[{type:"link",raw:e,pathType:t.startsWith("/")?"root":"relative",href:t,content:""}]},Db=Pe(Mb,{parseOnNested:!0,parseOnQuoted:!0,patterns:[Cb]}),Ib=/(?:^|\s)#\S+/,Nb=(e,t)=>{if(t.context==="table")return Ie(e,t);if(e.startsWith("#"))return[{type:"hashTag",raw:e,href:e.substring(1)}];let r=e.substring(0,1),n=e.substring(1);return[...Ie(r,t),{type:"hashTag",raw:n,href:n.substring(1)}]},Ob=Pe(Nb,{parseOnNested:!0,parseOnQuoted:!0,patterns:[Ib]}),$b=/^[0-9]+\. .*$/,jb=(e,t)=>{if(t.context==="table")return Ie(e,t);let r=e.indexOf(" "),n=e.substring(0,r-1),o=parseInt(n,10),s=e.substring(r+1,e.length);return[{type:"numberList",raw:e,rawNumber:n,number:o,nodes:$t(s,{...t,nested:!0})}]},Ab=Pe(jb,{parseOnNested:!1,parseOnQuoted:!1,patterns:[$b]}),Ub=(e,t,r)=>{var n;return e===""?[]:(n=r?.())!==null&&n!==void 0?n:[]},Fb=(...e)=>(t,r)=>e.reduceRight((n,o)=>()=>o(t,r,n),()=>Mx(t,r))(),$t=Fb(Ub,Nx,jx,ib,lb,eb,db,nb,Bx,Kx,Vx,vb,Sb,qx,_b,Db,Ob,Ab),Bb=e=>{let{rows:[t,...r]}=e,{indent:n=0,text:o=""}=t??{},s=o.replace(/^\s*table:/,"");return{indent:n,type:"table",fileName:s,cells:r.map(i=>i.text.substring(n+1)).map(i=>i.split(" ").map(a=>$t(a,{nested:!1,quoted:!1,context:"table"})))}},Hb=e=>{let{indent:t,text:r}=e.rows[0];return{indent:t,type:"line",nodes:$t(r.substring(t),{nested:!1,quoted:!1,context:"line"})}},zb=e=>{switch(e.type){case"title":return _x(e);case"codeBlock":return Cx(e);case"table":return Bb(e);case"line":return Hb(e)}},qb=e=>e.split( ).map(t=>{var r,n,o;return{indent:(o=(n=(r=/^\s+/.exec(t))===null||r===void 0?void 0:r[0])===null||n===void 0?void 0:n.length)!==null&&o!==void 0?o:0,text:t}}),Wb=(e,t)=>{var r,n;return(e.type==="codeBlock"||e.type==="table")&&t.indent>((n=(r=e.rows[0])===null||r===void 0?void 0:r.indent)!==null&&n!==void 0?n:0)},sl=(e,t)=>{let r=e[e.length-1];return r!==void 0&&Wb(r,t)?(r.rows.push(t),e):(e.push({type:/^\s*code:/.test(t.text)?"codeBlock":/^\s*table:/.test(t.text)?"table":"line",rows:[t]}),e)},Gb=(e,t)=>{var r;if(!((r=t.hasTitle)!==null&&r!==void 0)||r){let[n,...o]=e;return n===void 0?[]:[{type:"title",rows:[n]},...o.reduce(sl,[])]}return e.reduce(sl,[])},tt=(e,t)=>{var r;let n=qb(e);return Gb(n,{hasTitle:(r=t?.hasTitle)!==null&&r!==void 0?r:!0}).map(zb)},Kb=e=>{var t,r;return(r=(t=/^\s*\S.*$/m.exec(e)?.[0])===null||t===void 0?void 0:t.trim())!==null&&r!==void 0?r:"Untitled"};var X=e=>e.replaceAll(" ","_").toLowerCase();var J=e=>[...e].map((t,r)=>t===" "?"_":!Xb.includes(t)||r===e.length-1&&Yb.includes(t)?encodeURIComponent(t):t).join(""),Xb='@$&+=:;",',Yb=':;",';var Vb=/https?:\/\/(?:www\.|music\.|)youtube\.com\/watch/,Jb=/https?:\/\/youtu\.be\/([a-zA-Z\d_-]+)(?:\?([^\s]{0,100})|)/,Qb=/https?:\/\/(?:www\.|)youtube\.com\/shorts\/([a-zA-Z\d_-]+)(?:\?([^\s]+)|)/,Zb=/https?:\/\/(?:www\.|music\.|)youtube\.com\/playlist\?((?:[^\s]+&|)list=([a-zA-Z\d_-]+)(?:&[^\s]+|))/,Vn=e=>{if(Vb.test(e)){let t=new URL(e).searchParams,r=t.get("v");if(r)return{pathType:"com",videoId:r,params:t}}{let t=e.match(Jb);if(t){let[,r,n]=t;return{videoId:r,params:new URLSearchParams(n),pathType:"dotbe"}}}{let t=e.match(Qb);if(t){let[,r,n]=t;return{videoId:r,params:new URLSearchParams(n),pathType:"short"}}}{let t=e.match(Zb);if(t){let[,r,n]=t;return{listId:n,params:new URLSearchParams(r),pathType:"list"}}}};var pl=e=>{let t=tt(e,{hasTitle:!0}).flatMap(g=>{switch(g.type){case"codeBlock":case"title":return[];case"line":case"table":return g}}),r=new Map,n=[],o=new Set,s=[],i=new Set,a=[],c=null,l=new Set,p=new Set,u=new RegExp(${location?.origin??"https://scrapbox.io"}/files/([a-z0-9]{24})(?:|\\.[a-zA-Z0-9]+)(?:|\\?[^\\s]*)$),f=g=>{switch(g.type){case"hashTag":if(r.has(X(g.href)))return;r.set(X(g.href),!1),n.push(g.href);return;case"link":switch(g.pathType){case"relative":{let h=ll(g.href);if(r.get(X(h)))return;r.set(X(h),!0),n.push(h);return}case"root":{let h=ll(g.href);if(/^\/[\w\d-]+\/?$/.test(h)||o.has(X(h)))return;o.add(X(h)),s.push(h);return}case"absolute":{if(g.content)return;let h=Vn(g.href);if(h&&h.pathType!=="list"){c??=https://i.ytimg.com/vi/${h.videoId}/mqdefault.jpg;return}let x=g.href.match(u)?.[1];x&&l.add(x);return}default:return}case"icon":case"strongIcon":{if(g.pathType==="root"||i.has(X(g.path)))return;i.add(X(g.path)),a.push(g.path);return}case"image":case"strongImage":{c??=g.src.endsWith("/thumb/1000")?g.src.replace(/\/thumb\/1000$/,"/raw"):g.src;{let h=g.src.match(u)?.[1];h&&l.add(h)}if(g.type==="image"){let h=g.link.match(u)?.[1];h&&l.add(h)}return}case"helpfeel":p.add(g.text);return;case"numberList":case"strong":case"quote":case"decoration":{for(let h of g.nodes)f(h);return}default:return}},d=[];for(let g of t)switch(g.type){case"line":for(let h of g.nodes)f(h);continue;case"table":{for(let h of g.cells)for(let x of h)for(let v of x)f(v);if(!["infobox","cosense"].includes(g.fileName))continue;d.push(...g.cells.map(h=>h.map(x=>x.map(v=>v.raw).join("")).join(" ").trim()));continue}}return[n,s,a,c,[...l],[...p],d]},ll=e=>e.replace(/#[a-f\d]{24,32}$/,""),ul=e=>e.flatMap(({text:t})=>/^\s*\? .*$/.test(t)?[t.trimStart().slice(2)]:[]);var Yt=(e,t)=>e.length===t.length&&e.every(r=>t.includes(r));function*dl(e,t,r){let n=t.flatMap(d=>d.split( ));for(let d of ai(e.lines,n,{userId:r}))yield d;(e.lines[0].text!==n[0]||!e.persistent)&&(yield{title:n[0]});let o=e.lines.slice(1,6).map(d=>d.text),s=n.slice(1,6);o.join("")!==s.join("")&&(yield{descriptions:s});let[i,a,c,l,p,u,f]=pl(n.join(
));Yt(e.links,i)||(yield{links:i}),Yt(e.projectLinks,a)||(yield{projectLinks:a}),Yt(e.icons,c)||(yield{icons:c}),e.image!==l&&(yield{image:l}),Yt(e.files,p)||(yield{files:p}),Yt(ul(e.lines),u)||(yield{helpfeels:u}),Yt(e.infoboxDefinition,f)||(yield{infoboxDefinition:f})}var ml=(e,t,r)=>{let{sid:n,hostName:o,followRename:s,projects:i}=Y(r??{}),a=new URLSearchParams;a.append("followRename",${s??!0});for(let l of i??[])a.append("projects",l);let c=https://${o}/api/pages/${e}/${J(t)}?${a.toString()};return new Request(c,n?{headers:{Cookie:Z(n)}}:void 0)},fl=async e=>e.ok?{ok:!0,value:await e.json()}:e.status===414?{ok:!1,value:{name:"TooLongURIError",message:"project ids may be too much."}}:se(e),qe=async(e,t,r)=>{let{fetch:n}=Y(r??{}),o=ml(e,t,r),s=await n(o);return await fl(s)};qe.toRequest=ml;qe.fromResponse=fl;var gl=(e,t)=>{let{sid:r,hostName:n,sort:o,limit:s,skip:i}=Y(t??{}),a=new URLSearchParams;o!==void 0&&a.append("sort",o),s!==void 0&&a.append("limit",${s}),i!==void 0&&a.append("skip",${i});let c=https://${n}/api/pages/${e}?${a.toString()};return new Request(c,r?{headers:{Cookie:Z(r)}}:void 0)},hl=async e=>e.ok?{ok:!0,value:await e.json()}:se(e),xl=async(e,t)=>{let{fetch:r}=Y(t??{}),n=await r(gl(e,t));return await hl(n)};xl.toRequest=gl;xl.fromResponse=hl;var Jn=async(e,t)=>{let r=await qe(e,t);if(!r.ok)throw new Error(You have no privilege of editing "/${e}/${t}".);return r.value};var ae=e=>new Promise(t=>setTimeout(()=>t(),e));var Vt=async(e,t,r,n)=>{let o=n?.socket,s=o??await nn();await ri(s);try{let i=await Promise.all([Jn(e,t),si(e),ol()]).then(([u,f,d])=>({...u,projectId:f,userId:d})),{request:a}=ti(s),c=0,l=[],p;for(;n?.maxAttempts===void 0||c<n.maxAttempts;){let u=r(i,c,l,p);if(l=u instanceof Promise?await u:u,c++,l.length===0)return{ok:!0,value:i.commitId};let f={kind:"page",projectId:i.projectId,pageId:i.id,parentId:i.commitId,userId:i.userId,changes:l,cursor:null,freeze:!0};for(;;){let d=await a("socket.io-request",{method:"commit",data:f});if(d.ok)return i.commitId=d.value.commitId,{ok:!0,value:i.commitId};let g=d.value.name;if(g==="UnexpectedError"){let h=new Error;throw h.name=d.value.name,h.message=JSON.stringify(d.value),h}if(g==="TimeoutError"||g==="SocketIOError"){await ae(3e3);continue}g==="NotFastForwardError"&&(await ae(1e3),i={...await Jn(e,t),projectId:i.projectId,userId:i.userId}),p=g;break}}return{ok:!1,value:{name:"RetryError",attempts:c,message:Retrying exceeded the maxAttempts (${c}).}}}finally{o||await De(s)}};var bl=e=>{let t=e.match(/(.+?)(?:_(\d+))?$/),r=t?.[1]??e,n=t?.[2]?parseInt(t[2])+1:2;return${r}_${n}};var oe=(e,t,r,n)=>Vt(e,t,async(o,s,i,a)=>{if(a==="DuplicateTitleError"){let p=bl(t);return i.map(u=>("title"in u&&(u.title=p),u))}let c=r(o.lines,{...o,attempts:s}),l=c instanceof Promise?await c:c;return l===void 0?[]:l.length===0?[{deleted:!0}]:[...dl(o,l,o.userId)]},n);var yl=(e,t,r)=>Vt(e,t,n=>n.persistent?[{deleted:!0}]:[],r);var vl=async e=>{let t=e.title??".watchlistrc",r="projectsLastAccessed.json",n=await fetch(https://${location.hostname}/api/code/${e.project}/${J(t)}/${r}),o=n.ok?await n.json():{},s=localStorage.getItem("projectsLastAccessed")??"{}",i=JSON.parse(s),c=[...new Set([...Object.keys(o),...Object.keys(i)])].map(l=>[l,Math.max(o[l]??0,i[l]??0)]);localStorage.setItem("projectsLastAccessed",JSON.stringify(Object.fromEntries(c))),await oe(e.project,t,()=>[t,"This page is automatically generated. DO NOT EDIT ANYTHING, WHITCH WILL BE OVERWRITTEN.","",code:${r}, ${s},""])};scrapbox.PageMenu.addMenu({title:"Gyazo",image:"https://i.gyazo.com/503a911fea542532aa5aba0a88eb7b60.png",onClick:()=>window.open("https://gyazo.com/captures")});var ro,ce,Tl,ry,Jt,wl,Ll,ci,mi,li,pi,Sl,on={},Pl=[],ny=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i,fi=Array.isArray;function jt(e,t){for(var r in t)e[r]=t[r];return e}function Rl(e){var t=e.parentNode;t&&t.removeChild(e)}function m(e,t,r){var n,o,s,i={};for(s in t)s=="key"?n=t[s]:s=="ref"?o=t[s]:i[s]=t[s];if(arguments.length>2&&(i.children=arguments.length>3?ro.call(arguments,2):r),typeof e=="function"&&e.defaultProps!=null)for(s in e.defaultProps)i[s]===void 0&&(i[s]=e.defaultProps[s]);return Zn(e,i,n,o,null)}function Zn(e,t,r,n,o){var s={type:e,props:t,key:r,ref:n,__k:null,__:null,__b:0,__e:null,__d:void 0,__c:null,constructor:void 0,__v:o??++Tl,__i:-1,__u:0};return o==null&&ce.vnode!=null&&ce.vnode(s),s}function W(e){return e.children}function eo(e,t){this.props=e,this.context=t}function Qt(e,t){if(t==null)return e.__?Qt(e.__,e.__i+1):null;for(var r;t<e.__k.length;t++)if((r=e.__k[t])!=null&&r.__e!=null)return r.__e;return typeof e.type=="function"?Qt(e):null}function _l(e){var t,r;if((e=e.__)!=null&&e.__c!=null){for(e.__e=e.__c.base=null,t=0;t<e.__k.length;t++)if((r=e.__k[t])!=null&&r.__e!=null){e.__e=e.__c.base=r.__e;break}return _l(e)}}function ui(e){(!e.__d&&(e.__d=!0)&&Jt.push(e)&&!to.__r++||wl!==ce.debounceRendering)&&((wl=ce.debounceRendering)||Ll)(to)}function to(){var e,t,r,n,o,s,i,a;for(Jt.sort(ci);e=Jt.shift();)e.__d&&(t=Jt.length,n=void 0,s=(o=(r=e).__v).__e,i=[],a=[],r.__P&&((n=jt({},o)).__v=o.__v+1,ce.vnode&&ce.vnode(n),gi(r.__P,n,o,r.__n,r.__P.namespaceURI,32&o.__u?[s]:null,i,s??Qt(o),!!(32&o.__u),a),n.__v=o.__v,n.__.__k[n.__i]=n,Dl(i,n,a),n.__e!=s&&_l(n)),Jt.length>t&&Jt.sort(ci));to.__r=0}function Cl(e,t,r,n,o,s,i,a,c,l,p){var u,f,d,g,h,x=n&&n.__k||Pl,v=t.length;for(r.__d=c,oy(r,t,x),c=r.__d,u=0;u<v;u++)(d=r.__k[u])!=null&&typeof d!="boolean"&&typeof d!="function"&&(f=d.__i===-1?on:x[d.__i]||on,d.__i=u,gi(e,d,f,o,s,i,a,c,l,p),g=d.__e,d.ref&&f.ref!=d.ref&&(f.ref&&hi(f.ref,null,d),p.push(d.ref,d.__c||g,d)),h==null&&g!=null&&(h=g),65536&d.__u||f.__k===d.__k?(c&&typeof d.type=="string"&&!e.contains(c)&&(c=Qt(f)),c=Ml(d,c,e)):typeof d.type=="function"&&d.__d!==void 0?c=d.__d:g&&(c=g.nextSibling),d.__d=void 0,d.__u&=-196609);r.__d=c,r.__e=h}function oy(e,t,r){var n,o,s,i,a,c=t.length,l=r.length,p=l,u=0;for(e.__k=[],n=0;n<c;n++)i=n+u,(o=e.__k[n]=(o=t[n])==null||typeof o=="boolean"||typeof o=="function"?null:typeof o=="string"||typeof o=="number"||typeof o=="bigint"||o.constructor==String?Zn(null,o,null,null,null):fi(o)?Zn(W,{children:o},null,null,null):o.constructor===void 0&&o.__b>0?Zn(o.type,o.props,o.key,o.ref?o.ref:null,o.__v):o)!=null?(o.__=e,o.__b=e.__b+1,a=sy(o,r,i,p),o.__i=a,s=null,a!==-1&&(p--,(s=r[a])&&(s.__u|=131072)),s==null||s.__v===null?(a==-1&&u--,typeof o.type!="function"&&(o.__u|=65536)):a!==i&&(a==i-1?u=a-i:a==i+1?u++:a>i?p>c-i?u+=a-i:u--:a<i&&u++,a!==n+u&&(o.__u|=65536))):(s=r[i])&&s.key==null&&s.__e&&!(131072&s.__u)&&(s.__e==e.__d&&(e.__d=Qt(s)),di(s,s,!1),r[i]=null,p--);if(p)for(n=0;n<l;n++)(s=r[n])!=null&&!(131072&s.__u)&&(s.__e==e.__d&&(e.__d=Qt(s)),di(s,s))}function Ml(e,t,r){var n,o;if(typeof e.type=="function"){for(n=e.__k,o=0;n&&o<n.length;o++)n[o]&&(n[o].__=e,t=Ml(n[o],t,r));return t}e.__e!=t&&(r.insertBefore(e.__e,t||null),t=e.__e);do t=t&&t.nextSibling;while(t!=null&&t.nodeType===8);return t}function sy(e,t,r,n){var o=e.key,s=e.type,i=r-1,a=r+1,c=t[r];if(c===null||c&&o==c.key&&s===c.type&&!(131072&c.__u))return r;if(n>(c!=null&&!(131072&c.__u)?1:0))for(;i>=0||a<t.length;){if(i>=0){if((c=t[i])&&!(131072&c.__u)&&o==c.key&&s===c.type)return i;i--}if(a<t.length){if((c=t[a])&&!(131072&c.__u)&&o==c.key&&s===c.type)return a;a++}}return-1}function kl(e,t,r){t[0]==="-"?e.setProperty(t,r??""):e[t]=r==null?"":typeof r!="number"||ny.test(t)?r:r+"px"}function Qn(e,t,r,n,o){var s;e:if(t==="style")if(typeof r=="string")e.style.cssText=r;else{if(typeof n=="string"&&(e.style.cssText=n=""),n)for(t in n)r&&t in r||kl(e.style,t,"");if(r)for(t in r)n&&r[t]===n[t]||kl(e.style,t,r[t])}else if(t[0]==="o"&&t[1]==="n")s=t!==(t=t.replace(/(PointerCapture)$|Capture$/i,"$1")),t=t.toLowerCase()in e||t==="onFocusOut"||t==="onFocusIn"?t.toLowerCase().slice(2):t.slice(2),e.l||(e.l={}),e.l[t+s]=r,r?n?r.u=n.u:(r.u=mi,e.addEventListener(t,s?pi:li,s)):e.removeEventListener(t,s?pi:li,s);else{if(o=="http://www.w3.org/2000/svg")t=t.replace(/xlink(H|:h)/,"h").replace(/sName$/,"s");else if(t!="width"&&t!="height"&&t!="href"&&t!="list"&&t!="form"&&t!="tabIndex"&&t!="download"&&t!="rowSpan"&&t!="colSpan"&&t!="role"&&t!="popover"&&t in e)try{e[t]=r??"";break e}catch{}typeof r=="function"||(r==null||r===!1&&t[4]!=="-"?e.removeAttribute(t):e.setAttribute(t,t=="popover"&&r==1?"":r))}}function El(e){return function(t){if(this.l){var r=this.l[t.type+e];if(t.t==null)t.t=mi++;else if(t.t<r.u)return;return r(ce.event?ce.event(t):t)}}}function gi(e,t,r,n,o,s,i,a,c,l){var p,u,f,d,g,h,x,v,L,S,b,E,w,O,$,B,P=t.type;if(t.constructor!==void 0)return null;128&r.__u&&(c=!!(32&r.__u),s=[a=t.__e=r.__e]),(p=ce.__b)&&p(t);e:if(typeof P=="function")try{if(v=t.props,L="prototype"in P&&P.prototype.render,S=(p=P.contextType)&&n[p.__c],b=p?S?S.props.value:p.__:n,r.__c?x=(u=t.__c=r.__c).__=u.__E:(L?t.__c=u=new P(v,b):(t.__c=u=new eo(v,b),u.constructor=P,u.render=ay),S&&S.sub(u),u.props=v,u.state||(u.state={}),u.context=b,u.__n=n,f=u.__d=!0,u.__h=[],u._sb=[]),L&&u.__s==null&&(u.__s=u.state),L&&P.getDerivedStateFromProps!=null&&(u.__s==u.state&&(u.__s=jt({},u.__s)),jt(u.__s,P.getDerivedStateFromProps(v,u.__s))),d=u.props,g=u.state,u.__v=t,f)L&&P.getDerivedStateFromProps==null&&u.componentWillMount!=null&&u.componentWillMount(),L&&u.componentDidMount!=null&&u.__h.push(u.componentDidMount);else{if(L&&P.getDerivedStateFromProps==null&&v!==d&&u.componentWillReceiveProps!=null&&u.componentWillReceiveProps(v,b),!u.__e&&(u.shouldComponentUpdate!=null&&u.shouldComponentUpdate(v,u.__s,b)===!1||t.__v===r.__v)){for(t.__v!==r.__v&&(u.props=v,u.state=u.__s,u.__d=!1),t.__e=r.__e,t.__k=r.__k,t.__k.forEach(function(T){T&&(T.__=t)}),E=0;E<u._sb.length;E++)u.__h.push(u._sb[E]);u._sb=[],u.__h.length&&i.push(u);break e}u.componentWillUpdate!=null&&u.componentWillUpdate(v,u.__s,b),L&&u.componentDidUpdate!=null&&u.__h.push(function(){u.componentDidUpdate(d,g,h)})}if(u.context=b,u.props=v,u.__P=e,u.__e=!1,w=ce.__r,O=0,L){for(u.state=u.__s,u.__d=!1,w&&w(t),p=u.render(u.props,u.state,u.context),$=0;$<u._sb.length;$++)u.__h.push(u._sb[$]);u._sb=[]}else do u.__d=!1,w&&w(t),p=u.render(u.props,u.state,u.context),u.state=u.__s;while(u.__d&&++O<25);u.state=u.__s,u.getChildContext!=null&&(n=jt(jt({},n),u.getChildContext())),L&&!f&&u.getSnapshotBeforeUpdate!=null&&(h=u.getSnapshotBeforeUpdate(d,g)),Cl(e,fi(B=p!=null&&p.type===W&&p.key==null?p.props.children:p)?B:[B],t,r,n,o,s,i,a,c,l),u.base=t.__e,t.__u&=-161,u.__h.length&&i.push(u),x&&(u.__E=u.__=null)}catch(T){t.__v=null,c||s!=null?(t.__e=a,t.__u|=c?160:32,s[s.indexOf(a)]=null):(t.__e=r.__e,t.__k=r.__k),ce.__e(T,t,r)}else s==null&&t.__v===r.__v?(t.__k=r.__k,t.__e=r.__e):t.__e=iy(r.__e,t,r,n,o,s,i,c,l);(p=ce.diffed)&&p(t)}function Dl(e,t,r){t.__d=void 0;for(var n=0;n<r.length;n++)hi(r[n],r[++n],r[++n]);ce.__c&&ce.__c(t,e),e.some(function(o){try{e=o.__h,o.__h=[],e.some(function(s){s.call(o)})}catch(s){ce.__e(s,o.__v)}})}function iy(e,t,r,n,o,s,i,a,c){var l,p,u,f,d,g,h,x=r.props,v=t.props,L=t.type;if(L==="svg"?o="http://www.w3.org/2000/svg":L==="math"?o="http://www.w3.org/1998/Math/MathML":o||(o="http://www.w3.org/1999/xhtml"),s!=null){for(l=0;l<s.length;l++)if((d=s[l])&&"setAttribute"in d==!!L&&(L?d.localName===L:d.nodeType===3)){e=d,s[l]=null;break}}if(e==null){if(L===null)return document.createTextNode(v);e=document.createElementNS(o,L,v.is&&v),s=null,a=!1}if(L===null)x===v||a&&e.data===v||(e.data=v);else{if(s=s&&ro.call(e.childNodes),x=r.props||on,!a&&s!=null)for(x={},l=0;l<e.attributes.length;l++)x[(d=e.attributes[l]).name]=d.value;for(l in x)if(d=x[l],l!="children"){if(l=="dangerouslySetInnerHTML")u=d;else if(l!=="key"&&!(l in v)){if(l=="value"&&"defaultValue"in v||l=="checked"&&"defaultChecked"in v)continue;Qn(e,l,null,d,o)}}for(l in v)d=v[l],l=="children"?f=d:l=="dangerouslySetInnerHTML"?p=d:l=="value"?g=d:l=="checked"?h=d:l==="key"||a&&typeof d!="function"||x[l]===d||Qn(e,l,d,x[l],o);if(p)a||u&&(p.__html===u.__html||p.__html===e.innerHTML)||(e.innerHTML=p.__html),t.__k=[];else if(u&&(e.innerHTML=""),Cl(e,fi(f)?f:[f],t,r,n,L==="foreignObject"?"http://www.w3.org/1999/xhtml":o,s,i,s?s[0]:r.__k&&Qt(r,0),a,c),s!=null)for(l=s.length;l--;)s[l]!=null&&Rl(s[l]);a||(l="value",g!==void 0&&(g!==e[l]||L==="progress"&&!g||L==="option"&&g!==x[l])&&Qn(e,l,g,x[l],o),l="checked",h!==void 0&&h!==e[l]&&Qn(e,l,h,x[l],o))}return e}function hi(e,t,r){try{typeof e=="function"?e(t):e.current=t}catch(n){ce.__e(n,r)}}function di(e,t,r){var n,o;if(ce.unmount&&ce.unmount(e),(n=e.ref)&&(n.current&&n.current!==e.__e||hi(n,null,t)),(n=e.__c)!=null){if(n.componentWillUnmount)try{n.componentWillUnmount()}catch(s){ce.__e(s,t)}n.base=n.__P=null}if(n=e.__k)for(o=0;o<n.length;o++)n[o]&&di(n[o],t,r||typeof e.type!="function");r||e.__e==null||Rl(e.__e),e.__c=e.__=e.__e=e.__d=void 0}function ay(e,t,r){return this.constructor(e,r)}function ye(e,t,r){var n,o,s,i;ce.__&&ce.__(e,t),o=(n=typeof r=="function")?null:r&&r.__k||t.__k,s=[],i=[],gi(t,e=(!n&&r||t).__k=m(W,null,[e]),o||on,on,t.namespaceURI,!n&&r?[r]:o?null:t.firstChild?ro.call(t.childNodes):null,s,!n&&r?r:o?o.__e:t.firstChild,n,i),Dl(s,e,i)}function xi(e,t){var r={__c:t="__cC"+Sl++,__:e,Consumer:function(n,o){return n.children(o)},Provider:function(n){var o,s;return this.getChildContext||(o=[],(s={})[t]=this,this.getChildContext=function(){return s},this.componentWillUnmount=function(){o=null},this.shouldComponentUpdate=function(i){this.props.value!==i.value&&o.some(function(a){a.__e=!0,ui(a)})},this.sub=function(i){o.push(i);var a=i.componentWillUnmount;i.componentWillUnmount=function(){o&&o.splice(o.indexOf(i),1),a&&a.call(i)}}),n.children}};return r.Provider.__=r.Consumer.contextType=r}ro=Pl.slice,ce={__e:function(e,t,r,n){for(var o,s,i;t=t.__;)if((o=t.__c)&&!o.__)try{if((s=o.constructor)&&s.getDerivedStateFromError!=null&&(o.setState(s.getDerivedStateFromError(e)),i=o.__d),o.componentDidCatch!=null&&(o.componentDidCatch(e,n||{}),i=o.__d),i)return o.__E=o}catch(a){e=a}throw e}},Tl=0,ry=function(e){return e!=null&&e.constructor==null},eo.prototype.setState=function(e,t){var r;r=this.__s!=null&&this.__s!==this.state?this.__s:this.__s=jt({},this.state),typeof e=="function"&&(e=e(jt({},r),this.props)),e&&jt(r,e),e!=null&&this.__v&&(t&&this._sb.push(t),ui(this))},eo.prototype.forceUpdate=function(e){this.__v&&(this.__e=!0,e&&this.__h.push(e),ui(this))},eo.prototype.render=W,Jt=[],Ll=typeof Promise=="function"?Promise.prototype.then.bind(Promise.resolve()):setTimeout,ci=function(e,t){return e.__v.__b-t.__v.__b},to.__r=0,mi=0,li=El(!1),pi=El(!0),Sl=0;var Zt,le,bi,Il,sn=0,Bl=[],fe=ce,Nl=fe.__b,Ol=fe.__r,$l=fe.diffed,jl=fe.__c,Al=fe.unmount,Ul=fe.__;function an(e,t){fe.__h&&fe.__h(le,e,sn||t),sn=0;var r=le.__H||(le.__H={__:[],__h:[]});return e>=r.__.length&&r.__.push({}),r.__[e]}function U(e){return sn=1,er(zl,e)}function er(e,t,r){var n=an(Zt++,2);if(n.t=e,!n.__c&&(n.__=[r?r(t):zl(void 0,t),function(a){var c=n.__N?n.__N[0]:n.__[0],l=n.t(c,a);c!==l&&(n.__N=[l,n.__[1]],n.__c.setState({}))}],n.__c=le,!le.u)){var o=function(a,c,l){if(!n.__c.__H)return!0;var p=n.__c.__H.__.filter(function(f){return!!f.__c});if(p.every(function(f){return!f.__N}))return!s||s.call(this,a,c,l);var u=!1;return p.forEach(function(f){if(f.__N){var d=f.__[0];f.__=f.__N,f.__N=void 0,d!==f.__[0]&&(u=!0)}}),!(!u&&n.__c.props===a)&&(!s||s.call(this,a,c,l))};le.u=!0;var s=le.shouldComponentUpdate,i=le.componentWillUpdate;le.componentWillUpdate=function(a,c,l){if(this.__e){var p=s;s=void 0,o(a,c,l),s=p}i&&i.call(this,a,c,l)},le.shouldComponentUpdate=o}return n.__N||n.__}function G(e,t){var r=an(Zt++,3);!fe.__s&&vi(r.__H,t)&&(r.__=e,r.i=t,le.__H.__h.push(r))}function Hl(e,t){var r=an(Zt++,4);!fe.__s&&vi(r.__H,t)&&(r.__=e,r.i=t,le.__h.push(r))}function ve(e){return sn=5,N(function(){return{current:e}},[])}function N(e,t){var r=an(Zt++,7);return vi(r.__H,t)&&(r.__=e(),r.__H=t,r.__h=e),r.__}function _(e,t){return sn=8,N(function(){return e},t)}function At(e){var t=le.context[e.__c],r=an(Zt++,9);return r.c=e,t?(r.__==null&&(r.__=!0,t.sub(le)),t.props.value):e.__}function cy(){for(var e;e=Bl.shift();)if(e.__P&&e.__H)try{e.__H.__h.forEach(no),e.__H.__h.forEach(yi),e.__H.__h=[]}catch(t){e.__H.__h=[],fe.__e(t,e.__v)}}fe.__b=function(e){le=null,Nl&&Nl(e)},fe.__=function(e,t){e&&t.__k&&t.__k.__m&&(e.__m=t.__k.__m),Ul&&Ul(e,t)},fe.__r=function(e){Ol&&Ol(e),Zt=0;var t=(le=e.__c).__H;t&&(bi===le?(t.__h=[],le.__h=[],t.__.forEach(function(r){r.__N&&(r.__=r.__N),r.i=r.__N=void 0})):(t.__h.forEach(no),t.__h.forEach(yi),t.__h=[],Zt=0)),bi=le},fe.diffed=function(e){$l&&$l(e);var t=e.__c;t&&t.__H&&(t.__H.__h.length&&(Bl.push(t)!==1&&Il===fe.requestAnimationFrame||((Il=fe.requestAnimationFrame)||ly)(cy)),t.__H.__.forEach(function(r){r.i&&(r.__H=r.i),r.i=void 0})),bi=le=null},fe.__c=function(e,t){t.some(function(r){try{r.__h.forEach(no),r.__h=r.__h.filter(function(n){return!n.__||yi(n)})}catch(n){t.some(function(o){o.__h&&(o.__h=[])}),t=[],fe.__e(n,r.__v)}}),jl&&jl(e,t)},fe.unmount=function(e){Al&&Al(e);var t,r=e.__c;r&&r.__H&&(r.__H.__.forEach(function(n){try{no(n)}catch(o){t=o}}),r.__H=void 0,t&&fe.__e(t,r.__v))};var Fl=typeof requestAnimationFrame=="function";function ly(e){var t,r=function(){clearTimeout(n),Fl&&cancelAnimationFrame(t),setTimeout(e)},n=setTimeout(r,100);Fl&&(t=requestAnimationFrame(r))}function no(e){var t=le,r=e.__c;typeof r=="function"&&(e.__c=void 0,r()),le=t}function yi(e){var t=le;e.__c=e.__(),le=t}function vi(e,t){return!e||e.length!==t.length||t.some(function(r,n){return r!==e[n]})}function zl(e,t){return typeof t=="function"?t(e):t}var ql=(e,t)=>{if(!Array.isArray(e))throw new TypeError("${t}" must be an array but actual is "${e}")};var oo=!1,Wl=null;scrapbox.addListener("lines:changed",()=>oo=!1);scrapbox.addListener("layout:changed",()=>oo=!1);var Gl=()=>(oo||(Wl=scrapbox.Page.lines,oo=!0),Wl);var Kl=(e,t)=>{if(!(e instanceof HTMLDivElement))throw new TypeError("${t}" must be HTMLDivElememt but actual is "${e}")};var Xl=(e,t)=>{if(!(e instanceof HTMLTextAreaElement))throw new TypeError("${t}" must be HTMLTextAreaElement but actual is "${e}")};var Yl=()=>so(document.getElementById("editor"),"div#editor"),cn=()=>so(document.getElementsByClassName("lines").item(0),"div.lines");var Ne=()=>{let e=document.getElementById("text-input");if(e)return Xl(e,"textarea#text-input"),e};var Vl=()=>so(document.getElementsByClassName("popup-menu")?.[0],"div.popup-menu");var Jl=()=>so(document.getElementsByClassName("status-bar")?.[0],"div.status-bar"),so=(e,t)=>{if(e)return Kl(e,t),e};var Ge=()=>{let e=cn();if(!e)throw Error("div.lines is not found.");let t=Object.keys(e).find(r=>r.startsWith("__reactFiber"));if(!t)throw Error('div.lines must has the property whose name starts with "__reactFiber"');return e[t].return.stateNode.props.lines};var Ue=e=>e.match(/^(\s*)/)?.[1]?.length??0,St=(e,t)=>{let r=Ue(Ql(e,t)),n=0;for(;e+n+1<t.length&&Ue(Ql(e+n+1,t))>r;)n++;return n},Ql=(e,t)=>{let r=t[e];return Lr(r)?r:r.text};var ki=e=>{if(et(e))return;if(Se(e))return ao(e)?.id;if(Lr(e))return e.startsWith("L")?e.slice(1):e;if(e.classList.contains("line"))return e.id.slice(1);let t=e.closest(".line");if(t)return t.id.slice(1)},Zl=e=>{if(et(e))return;if(Se(e))return e;let t=ki(e);return t?Ge().findIndex(r=>r.id===t):-1};var ao=e=>{if(et(e))return;if(Se(e))return Ge()[e];let t=ki(e);return t?Ge().find(r=>r.id===t):void 0},tr=e=>{if(ep(e))return e;let t=ki(e);if(et(t))return t;let r=document.getElementById(L${t});if(!et(r))return r},ep=e=>e instanceof HTMLDivElement&&e.classList.contains("line");var ft=()=>{let e=Gl();return ql(e,"scrapbox.Page.lines"),e},we=e=>{if(et(e))return;if(Se(e)||Lr(e))return ao(e)?.text;if(!(e instanceof HTMLElement))return;if(ep(e))return ao(e)?.text;if(e.classList.contains("char-index"))return e.textContent??void 0;if(e.classList.contains("line")||e.getElementsByClassName("lines")?.[0])return Ge().map(({text:n})=>n).join( );let t=[],r=ao(e);if(!et(r)){for(let n of uy(e))t.push(dy(n));return r.text.slice(Math.min(...t),Math.max(...t)+1)}};var tp=()=>{let e=cn()?.firstElementChild;if(!et(e))return e},rp=()=>{let e=cn()?.lastElementChild;if(!et(e))return e};var Ei=e=>{let t=Zl(e);if(!et(t))return St(t,ft())};function*uy(e){let t=e.getElementsByClassName("char-index");for(let r=0;r<t.length;r++)yield t[0]}var Ti=e=>e instanceof HTMLSpanElement&&e.classList.contains("char-index"),dy=e=>{if(!Ti(e))throw Error("A char DOM is required.");let t=e.className.match(/c-(\d+)/)?.[1];if(et(t))throw Error('.char-index must have ".c-{\\d}"');return parseInt(t)},np=e=>{let t=e?.getElementsByClassName?.("c-0")?.[0];return Ti(t)?t:void 0};var Li=(e,t)=>{let r=tr(e)?.getElementsByClassName?.(c-${t})?.[0];return Ti(r)?r:void 0};var he=(e,t)=>{let{noModifiedKeys:r=!1,...n}=t??{},o={bubbles:!0,cancelable:!0,keyCode:my[e],...r?{}:{...n}},s=Ne();if(!s)throw Error("#text-input must exist.");s.dispatchEvent(new KeyboardEvent("keydown",o)),s.dispatchEvent(new KeyboardEvent("keyup",o))},my={Backspace:8,Tab:9,Enter:13,Delete:46,Escape:27," ":32,PageUp:33,PageDown:34,End:35,Home:36,ArrowLeft:37,ArrowUp:38,ArrowRight:39,ArrowDown:40,a:65,A:65,b:66,B:66,c:67,C:67,d:68,D:68,e:69,E:69,f:70,F:70,g:71,G:71,h:72,H:72,i:73,I:73,j:74,J:74,k:75,K:75,l:76,L:76,m:77,M:77,n:78,N:78,o:79,O:79,p:80,P:80,q:81,Q:81,r:82,R:82,s:83,S:83,t:84,T:84,u:85,U:85,v:86,V:86,w:87,W:87,x:88,X:88,y:89,Y:89,z:90,Z:90,0:48,1:49,2:50,3:51,4:52,5:53,6:54,7:55,8:56,9:57,F1:113,F2:114,F3:115,F4:116,F5:117,F6:118,F7:119,F8:120,F9:121,F10:122,F11:123,F12:124,":":186,"*":186,";":187,"+":187,"-":189,"=":189,".":190,">":190,"/":191,"?":191,"@":192,"":192,"":219,"{":219,"\\":220,"|":220,"":221,"}":221,"^":222,"~":222,_:226};var Si=async(e,t)=>{let r={button:t.button??0,clientX:t.X,clientY:t.Y,bubbles:!0,cancelable:!0,shiftKey:t.shiftKey,ctrlKey:t.ctrlKey,altKey:t.altKey,view:window};e.dispatchEvent(new MouseEvent("mousedown",r)),e.dispatchEvent(new MouseEvent("mouseup",r)),e.dispatchEvent(new MouseEvent("click",r)),await ae(10)};var ge=()=>{let e=Ne();if(!e)throw Error("#text-input is not found.");let t=Object.keys(e).find(r=>r.startsWith("__reactFiber"));if(!t)throw Error('div.cursor must has the property whose name starts with "__reactFiber"');return et.return.return.stateNode.props};var Pi=e=>{let{top:t,bottom:r}=e.getBoundingClientRect();return t>=0&&r<=globalThis.innerHeight};function*Ke(e,t){for(let r=e;r<t;r++)yield r}var Ri=()=>{he("Home"),he("Home")};var op=async()=>{let e=tp();if(!e)throw Error(".line:first-of-type can't be found.");Pi(e)||e.scrollIntoView({block:"center"});let t=np(e);if(!t)throw Error(".line:first-of-type .c-0 can't be found.");let{left:r,top:n}=t.getBoundingClientRect();await Si(e,{X:r,Y:n})},sp=async()=>{await ip(rp())},_i=async e=>{await ip(tr(e))},ip=async e=>{if(!e)throw Error("The target line DOM is failed to find.");Pi(e)||e.scrollIntoView({block:"center"});let{right:t,top:r,height:n}=e.getElementsByClassName("text")0.getBoundingClientRect();await Si(e,{X:t+1,Y:r+n/2})};var ap=(e=1)=>{for(let t of Ke(0,e))he("z",{ctrlKey:!0})},cp=(e=1)=>{for(let t of Ke(0,e))he("z",{shiftKey:!0,ctrlKey:!0})};var Ci=async(e,t)=>{await _i(e),Ri(),he("Enter"),he("ArrowUp"),await Oe(t)},Fe=async(e,t,r)=>{await _i(e),Ri();for(let n of Ke(e,t))he("ArrowDown",{shiftKey:!0});he("End",{shiftKey:!0}),await Oe(r)};var co=(e=1)=>{for(let t of Ke(0,e))he("ArrowRight",{ctrlKey:!0})},lo=(e=1)=>{for(let t of Ke(0,e))he("ArrowLeft",{ctrlKey:!0})};var po=(e=1)=>{for(let t of Ke(0,e))he("ArrowUp",{ctrlKey:!0})},uo=(e=1)=>{for(let t of Ke(0,e))he("ArrowDown",{ctrlKey:!0})},mo=(e=1)=>{for(let t of Ke(0,e))he("ArrowRight",{altKey:!0})},fo=(e=1)=>{for(let t of Ke(0,e))he("ArrowLeft",{altKey:!0})};var go=(e=1)=>{for(let t of Ke(0,e))he("ArrowUp",{altKey:!0})},ho=(e=1)=>{for(let t of Ke(0,e))he("ArrowDown",{altKey:!0})},Oe=async e=>{let t=Ne();if(!t)throw Error("#text-input is not ditected.");t.focus(),t.value=e;let r=new InputEvent("input",{bubbles:!0});t.dispatchEvent(r),await ae(1)};var pe=()=>{let e=Jl();if(!e)throw new Error("div.status-bar can't be found");let t=document.createElement("div");return e.append(t),{render:(...r)=>{t.textContent="";let n=lp(...r);n&&t.append(n)},dispose:()=>t.remove()}},lp=(...e)=>{let t=e.flatMap(n=>{switch(n.type){case"spinner":returngy();case"check-circle":returnhy();case"exclamation-triangle":returnxy();case"text":returnxo(n.text);case"group":{let o=lp(...n.items);return o?o:[]}}});if(t.length===0)return;if(t.length===1)return t0;let r=document.createElement("span");return r.classList.add("item-group"),r.append(...t),r},xo=e=>{let t=document.createElement("span");return t.classList.add("item"),t.append(e),t},gy=()=>{let e=document.createElement("i");return e.classList.add("fa","fa-spinner"),xo(e)},hy=()=>{let e=document.createElement("i");return e.classList.add("kamon","kamon-check-circle"),xo(e)},xy=()=>{let e=document.createElement("i");return e.classList.add("fas","fa-exclamation-triangle"),xo(e)};var Pr=e=>{let t=JSON.parse(localStorage.getItem("pageTransitionContext")??""),r=e.type==="page"?e.from.project===e.to.project?e.from.title===e.to.title?{titleHint:e.to.title}:{linkFrom:e.from.title}:{linkFrom:/${e.from.project}/${e.from.title}}:{searchQuery:e.query};t[page_${X(e.to.title)}]=r,localStorage.setItem("pageTransitionContext",JSON.stringify(t))};var by=(e,t,r)=>{let n=new URL(/${e}/${J(t)},location.href);if(r?.body&&(n.search=?body=${encodeURIComponent(r.body)}),r?.id&&(n.hash=#${r.id}),r?.context&&Pr({...r?.context,to:{project:e,title:t}}),r?.newTab!==!1&&(r?.newTab===!0||e!==scrapbox.Project.name)){globalThis.open(n);return}if(r?.reload!==!1&&(r?.reload===!0||e!==scrapbox.Project.name)){globalThis.open(n,"_self");return}let o=document.createElement("a");o.href=n.toString(),document.body.append(o),o.click(),o.remove()},Rr=(e,t,r)=>by(e,t,{newTab:!1,reload:!1,body:r});var bo=async(e,t)=>{let r=await globalThis.caches.keys();for(let n of r.sort().reverse()){let s=await(await caches.open(n)).match(e,t);if(s)return s}},pp=async(e,t)=>{let r=t.clone();return await(await caches.open(yy(new Date))).put(e,r)},yy=e=>api-${e.getFullYear()}-${${e.getMonth()+1}.padStart(2,"0")}-${${e.getDate()}.padStart(2,"0")};var gt=()=>{let e=Ne();if(!e)throw Error("#text-input is not found.");let t=Object.keys(e).find(s=>s.startsWith("__reactFiber"));if(!t)throw Error('#text-input must has the property whose name starts with "__reactFiber"');let r=et.return.return.stateNode._stores,n=r.find(s=>s.constructor.name==="Cursor");if(!n)throw Error('#text-input must has a "Cursor" store.');let o=r.find(s=>s.constructor.name==="Selection");if(!o)throw Error('#text-input must has a "Selection" store.');return{cursor:n,selection:o}};var _r=()=>gt().cursor;var up=()=>gt().selection;var ln=e=>e===void 0?0:typeof e=="boolean"?Number(e):(e.capture?1:0)|(e.once?2:0)|(e.passive?4:0),dp=e=>{if(e===0)return;let t={};return e&1&&(t.capture=!0),e&2&&(t.once=!0),e&4&&(t.passive=!0),t};var yo=new Map,Mi=new Map,mp=(e,t,r)=>{let n=yo.get(e)??new Map,o=n.get(t)??new Set;if(o.has(ln(r)))return;if(o.add(ln(r)),n.set(t,o),yo.set(e,n),typeof r=="object"&&r?.once){let i=Mi.get(t)??new Map,a=ln(r),c=function(p){return Di(e,t,r),i.delete(a),t.call(this,p)};i.set(a,c),Mi.set(t,i);let l=Ne();if(!l)return;l.addEventListener(e,c,r)}let s=Ne();s&&s.addEventListener(e,t,r)};scrapbox.on("layout:changed",()=>{let e=Ne();if(e)for(lett,rof yo)for(letn,oof r)for(let s of o)e.addEventListener(t,n,dp(s))});var Di=(e,t,r)=>{let n=yo.get(e);if(!n)return;let o=n.get(t);if(!o)return;let s=ln(r);if(o.delete(s),typeof r=="object"&&r?.once){let a=Mi.get(t);if(!a)return;let c=a.get(s);if(!c)return;let l=Ne();if(!l)return;l.removeEventListener(e,c,r),a.delete(s);return}let i=Ne();i&&i.removeEventListener(e,t,r)};var fp=e=>e.replace(/[.*+?^=!:${}()|\\/\\]/g,"\\$&");var gp=({project:e,title:t,words:r,lines:n,query:o,close:s})=>{let i=_(c=>{Pr({type:"search",query:o,to:{project:e,title:t}}),!(c.metaKey||c.ctrlKey||c.altKey||c.shiftKey)&&s()},e,t,o,s),a=N(()=>{let c=new RegExp((${r.map(l=>fp(l)).join("|")}),"i");return n.flatMap(l=>{let p=l.split(c);return m("span",null,p.map((u,f)=>f%2===0?u:m("strong",null,u)))})},n,r);return m("a",{href:/${e}/${J(t)},target:${e===scrapbox.Project.name?"":"_blank"},rel:${e===scrapbox.Project.name?"route":"noopener noreferrer"},onClick:i},t,m("div",{className:"description"},a))};var hp=e=>{lett,r=U(e),n=_(()=>r(!0),[]),o=_(()=>r(!1),[]),s=_(()=>r(i=>!i),[]);returnt,{open:n,close:o,toggle:s}};var xp=(e,t,r,n)=>{let{sid:o,hostName:s}=Y(n??{}),i=https://${s}/api/table/${e}/${J(t)}/${encodeURIComponent(r)}.csv;return new Request(i,o?{headers:{Cookie:Z(o)}}:void 0)},bp=async e=>e.ok?{ok:!0,value:await e.text()}:e.status===404?{ok:!1,value:{name:"NotFoundError",message:"Table not found."}}:se(e),yp=async(e,t,r,n)=>{let{fetch:o}=Y(n??{}),s=xp(e,t,r,n),i=await o(s);return await bp(i)};yp.toRequest=xp;yp.fromResponse=bp;var vo=async(e,t,r,n)=>{let{sid:o,hostName:s,fetch:i,csrf:a}=Y(n??{}),c=new Request(https://${s}/api/pages/${e}/replace/links,{method:"POST",headers:{"Content-Type":"application/json;charset=utf-8","X-CSRF-TOKEN":a??await mt(n),...o?{Cookie:Z(o)}:{}},body:JSON.stringify({from:t,to:r})}),l=await i(c);if(!l.ok)return se(l);let{message:p}=await l.json();return{ok:!0,value:parseInt(p.match(/\d+/)?.0??"0")}};var vp=async(e,t)=>{let{sid:r,hostName:n,fetch:o,followingId:s}=Y(t??{}),i=new Request(https://${n}/api/pages/${e}/search/titles${s??followingId=${s}:""},r?{headers:{Cookie:Z(r)}}:void 0),a=await o(i);return a.ok?{ok:!0,value:{pages:await a.json(),followingId:a.headers.get("X-following-id")??""}}:a.status===422?{ok:!1,value:{name:"InvalidFollowingIdError",message:await a.text()}}:se(a)};var wp=async(e,t,r)=>{let{sid:n,hostName:o,fetch:s}=Y(r??{}),i=new Request(https://${o}/api/pages/${t}/search/query?q=${encodeURIComponent(e)},n?{headers:{Cookie:Z(n)}}:void 0),a=await s(i);return a.ok?{ok:!0,value:await a.json()}:a.status===422?{ok:!1,value:{name:"NoQueryError",message:(await a.json()).message}}:se(a)};var kp=async(e,t)=>{let{sid:r,hostName:n,fetch:o,csrf:s}=Y(t??{}),i=new Request(https://${n}/api/embed-text/url?url=${encodeURIComponent(e.toString())},{method:"POST",headers:{"Content-Type":"application/json;charset=utf-8","X-CSRF-TOKEN":s??await mt(t),...r?{Cookie:Z(r)}:{}},body:JSON.stringify({timeout:3e3})}),a=await o(i);if(!a.ok)return a.status===422?{ok:!1,value:{name:"InvalidURLError",message:(await a.json()).message}}:se(a);let{title:c}=await a.json();return{ok:!0,value:c}};var Ep=async(e,t)=>{let{sid:r,hostName:n,fetch:o,csrf:s}=Y(t??{}),i=new Request(https://${n}/api/embed-text/twitter?url=${encodeURIComponent(e.toString())},{method:"POST",headers:{"Content-Type":"application/json;charset=utf-8","X-CSRF-TOKEN":s??await mt(t),...r?{Cookie:Z(r)}:{}},body:JSON.stringify({timeout:3e3})}),a=await o(i);return a.ok?{ok:!0,value:await a.json()}:a.status===422?{ok:!1,value:{name:"InvalidURLError",message:(await a.json()).message}}:se(a)};var Tp=async e=>{let{sid:t,hostName:r,gyazoTeamsName:n}=Y(e??{}),o=new Request(https://${r}/api/login/gyazo/oauth-upload/token${n??gyazoTeamsName=${n}:""},t?{headers:{Cookie:Z(t)}}:void 0),s=await fetch(o);if(!s.ok)return se(s);let{token:i}=await s.json();return{ok:!0,value:i}};var Lp=(e,t,r,n)=>{let{sid:o,hostName:s}=Y(n??{}),i=https://${s}/api/code/${e}/${J(t)}/${J(r)};return new Request(i,o?{headers:{Cookie:Z(o)}}:void 0)},Sp=async e=>e.ok?{ok:!0,value:await e.text()}:e.status===404&&e.headers.get("Content-Type")?.includes?.("text/plain")?{ok:!1,value:{name:"NotFoundError",message:"Code block is not found"}}:se(e),wo=async(e,t,r,n)=>{let{fetch:o}=Y(n??{}),s=Lp(e,t,r,n),i=await o(s);return await Sp(i)};wo.toRequest=Lp;wo.fromResponse=Sp;var Pp=new TextEncoder().encode("0123456789abcdef");function Rp(e){let t=new Uint8Array(e.length*2);for(let r=0;r<t.length;r++){let n=er;tr*2=Ppn>>4,tr*2+1=Ppn&15}return t}var _p="md5: data is invalid type",rr=64,pn=class{#e;#t;#r;#n;#o;#i;#s;#a;constructor(){this.#e=1732584193,this.#t=4023233417,this.#r=2562383102,this.#n=271733878,this.#o=new Uint8Array(rr),this.#i=0,this.#s=0,this.#a=0}#l(t){let r=this.#s;r+=t,r>4294967295&&(this.#a+=1),this.#s=r>>>0}#c(t){let r=this.#e,n=this.#t,o=this.#r,s=this.#n,i=$=>t$|t$+1<<8|t$+2<<16|t$+3<<24,a=($,B)=>$<<B|$>>>32-B,c=i(0),l=i(4),p=i(8),u=i(12),f=i(16),d=i(20),g=i(24),h=i(28),x=i(32),v=i(36),L=i(40),S=i(44),b=i(48),E=i(52),w=i(56),O=i(60);r=n+a(((o^s)&n^s)+r+c+3614090360,7),s=r+a(((n^o)&r^o)+s+l+3905402710,12),o=s+a(((r^n)&s^n)+o+p+606105819,17),n=o+a(((s^r)&o^r)+n+u+3250441966,22),r=n+a(((o^s)&n^s)+r+f+4118548399,7),s=r+a(((n^o)&r^o)+s+d+1200080426,12),o=s+a(((r^n)&s^n)+o+g+2821735955,17),n=o+a(((s^r)&o^r)+n+h+4249261313,22),r=n+a(((o^s)&n^s)+r+x+1770035416,7),s=r+a(((n^o)&r^o)+s+v+2336552879,12),o=s+a(((r^n)&s^n)+o+L+4294925233,17),n=o+a(((s^r)&o^r)+n+S+2304563134,22),r=n+a(((o^s)&n^s)+r+b+1804603682,7),s=r+a(((n^o)&r^o)+s+E+4254626195,12),o=s+a(((r^n)&s^n)+o+w+2792965006,17),n=o+a(((s^r)&o^r)+n+O+1236535329,22),r=n+a(((n^o)&s^o)+r+l+4129170786,5),s=r+a(((r^n)&o^n)+s+g+3225465664,9),o=s+a(((s^r)&n^r)+o+S+643717713,14),n=o+a(((o^s)&r^s)+n+c+3921069994,20),r=n+a(((n^o)&s^o)+r+d+3593408605,5),s=r+a(((r^n)&o^n)+s+L+38016083,9),o=s+a(((s^r)&n^r)+o+O+3634488961,14),n=o+a(((o^s)&r^s)+n+f+3889429448,20),r=n+a(((n^o)&s^o)+r+v+568446438,5),s=r+a(((r^n)&o^n)+s+w+3275163606,9),o=s+a(((s^r)&n^r)+o+u+4107603335,14),n=o+a(((o^s)&r^s)+n+x+1163531501,20),r=n+a(((n^o)&s^o)+r+E+2850285829,5),s=r+a(((r^n)&o^n)+s+p+4243563512,9),o=s+a(((s^r)&n^r)+o+h+1735328473,14),n=o+a(((o^s)&r^s)+n+b+2368359562,20),r=n+a((n^o^s)+r+d+4294588738,4),s=r+a((r^n^o)+s+x+2272392833,11),o=s+a((s^r^n)+o+S+1839030562,16),n=o+a((o^s^r)+n+w+4259657740,23),r=n+a((n^o^s)+r+l+2763975236,4),s=r+a((r^n^o)+s+f+1272893353,11),o=s+a((s^r^n)+o+h+4139469664,16),n=o+a((o^s^r)+n+L+3200236656,23),r=n+a((n^o^s)+r+E+681279174,4),s=r+a((r^n^o)+s+c+3936430074,11),o=s+a((s^r^n)+o+u+3572445317,16),n=o+a((o^s^r)+n+g+76029189,23),r=n+a((n^o^s)+r+v+3654602809,4),s=r+a((r^n^o)+s+b+3873151461,11),o=s+a((s^r^n)+o+O+530742520,16),n=o+a((o^s^r)+n+p+3299628645,23),r=n+a((o^(n|~s))+r+c+4096336452,6),s=r+a((n^(r|~o))+s+h+1126891415,10),o=s+a((r^(s|~n))+o+w+2878612391,15),n=o+a((s^(o|~r))+n+d+4237533241,21),r=n+a((o^(n|~s))+r+b+1700485571,6),s=r+a((n^(r|~o))+s+u+2399980690,10),o=s+a((r^(s|~n))+o+L+4293915773,15),n=o+a((s^(o|~r))+n+l+2240044497,21),r=n+a((o^(n|~s))+r+x+1873313359,6),s=r+a((n^(r|~o))+s+O+4264355552,10),o=s+a((r^(s|~n))+o+g+2734768916,15),n=o+a((s^(o|~r))+n+E+1309151649,21),r=n+a((o^(n|~s))+r+f+4149444226,6),s=r+a((n^(r|~o))+s+S+3174756917,10),o=s+a((r^(s|~n))+o+p+718787259,15),n=o+a((s^(o|~r))+n+v+3951481745,21),this.#e=this.#e+r>>>0,this.#t=this.#t+n>>>0,this.#r=this.#r+o>>>0,this.#n=this.#n+s>>>0}update(t){let r;if(typeof t=="string")r=new TextEncoder().encode(t);else if(typeof t=="object")if(t instanceof ArrayBuffer||ArrayBuffer.isView(t))r=new Uint8Array(t);else throw new TypeError(_p);else throw new TypeError(_p);let n=this.#i,o=rr-n;if(r.length<o)this.#o.set(r,n),n+=r.length;else{this.#o.set(r.slice(0,o),n),this.#c(this.#o);let s=o;for(;s+rr<=r.length;)this.#c(r.slice(s,s+rr)),s+=rr;this.#o.fill(0).set(r.slice(s),0),n=r.length-s}return this.#i=n,this.#l(r.length),this}digest(){let t=rr-this.#i;t<9&&(t+=rr);let r=new Uint8Array(t);r0=128;let n=this.#s<<3,o=this.#a<<3|this.#s>>>29;rr.length-8=n&255,rr.length-7=n>>>8&255,rr.length-6=n>>>16&255,rr.length-5=n>>>24&255,rr.length-4=o&255,rr.length-3=o>>>8&255,rr.length-2=o>>>16&255,rr.length-1=o>>>24&255,this.update(r.buffer);let s=new ArrayBuffer(16),i=new DataView(s);return i.setUint32(0,this.#e,!0),i.setUint32(4,this.#t,!0),i.setUint32(8,this.#r,!0),i.setUint32(12,this.#n,!0),s}toString(t="hex"){let r=this.digest();switch(t){case"hex":return new TextDecoder().decode(Rp(new Uint8Array(r)));case"base64":{let n=new Uint8Array(r),o="";for(let s=0;s<n.length;++s)o+=String.fromCharCode(ns);return btoa(o)}default:throw new Error("md5: invalid format")}}};var Cp=async(e,t,r)=>{let n=new pn().update(await e.arrayBuffer()).toString(),o=await wy(e,t,n,r);if(!o.ok)return o;if("embedUrl"in o.value)return{ok:!0,value:o.value};let s=await ky(o.value.signedUrl,e,r);return s.ok?Ey(t,o.value.fileId,n,r):s},wy=async(e,t,r,n)=>{let{sid:o,hostName:s,fetch:i,csrf:a}=Y(n??{}),c={md5:r,size:e.size,contentType:e.type,name:e.name},l=a??await mt(),p=new Request(https://${s}/api/gcs/${t}/upload-request,{method:"POST",body:JSON.stringify(c),headers:{"Content-Type":"application/json;charset=utf-8","X-CSRF-TOKEN":l,...o?{Cookie:Z(o)}:{}}}),u=await i(p);return u.ok?{ok:!0,value:await u.json()}:se(u)},ky=async(e,t,r)=>{let{sid:n,fetch:o}=Y(r??{}),s=await o(e,{method:"PUT",body:t,headers:{"Content-Type":t.type,...n?{Cookie:Z(n)}:{}}});if(!s.ok){if(s.headers.get("Content-Type")?.includes?.("/xml"))return{ok:!1,value:{name:"GCSError",message:await s.text()}};throw new Lt(s)}return{ok:!0,value:void 0}},Ey=async(e,t,r,n)=>{let{sid:o,hostName:s,fetch:i,csrf:a}=Y(n??{}),c=a??await mt(),l=new Request(https://${s}/api/gcs/${e}/verify,{method:"POST",body:JSON.stringify({md5:r,fileId:t}),headers:{"Content-Type":"application/json;charset=utf-8","X-CSRF-TOKEN":c,...o?{Cookie:Z(o)}:{}}}),p=await i(l);if(!p.ok){try{if(p.status===404)return{ok:!1,value:{name:"NotFoundError",message:(await p.json()).message}}}catch{throw new Lt(p)}throw new Lt(p)}return{ok:!0,value:await p.json()}};var Mp=(e,t)=>{letr,n=U(),o,s=U(!1),i=ve(Promise.resolve());return G(()=>{if(t===""){n(void 0);return}let a=!1;return i.current=(async()=>{if(await i.current,!a){s(!0);try{let c=await wp(t,e);if(a)return;n(c.ok?c.value:void 0)}finally{s(!1)}}})(),()=>a=!0},t,e),{loading:o,result:r}};var Dp=()=>m("style",null,`.modal { position:fixed;
inset:0;
z-index:1050;
background-color:#000c;
display: flex;
flex-direction: column;
align-items: center;
row-gap: 10px;
padding: 10px;
}
.closed {
display: none;
}
.modal > * {
border-radius: 4px;
padding: 5px;
width: calc(var(--item-width, 100%) - 10px);
}
@media (min-width: 768px) {
.modal {
padding: 30px;
}
}
.controller {
display: flex;
gap: 0.2em;
flex-direction: column;
}
input {
border-radius: 5px;
padding: 0 10px;
height: 32px;
border: transparent;
box-shadow: none;
color: var(--search-form-text-color, rgba(255, 255, 255, 0.35));
background-color: var(--search-form-bg, rgba(255, 255, 255, 0.15))
}
.result {
flex-direction: column;
width: 100%;
padding: 5px 0;
margin: 2px 0 0;
list-style: none;
font-size: 14px;
font-weight: normal;
line-height: 28px;
text-align: left;
border: 1px solid rgba(0,0,0,0.15);
border-radius: 4px;
background-clip: padding-box;
white-space: nowrap;
overflow-x: hidden;
overflow-y: auto;
}
a {
display: block;
padding: 3px 20px;
clear: both;
align-items: center;
user-select: none;
text-decoration: none;
overflow: hidden;
text-overflow: ellipsis;
color: inherit;
}
.description {
margin-top: 0.5em;
color: var(--incremental-fulltext-search-description-text-color, #c4c4c4); font-size: 12px;
line-height: 14px;
max-height: 28px;
overflow: hidden;
text-overflow: ellipsis;
}
.description strong {
}
.spinner::before {
display: inline-block;
font-style: normal;
font-variant: normal;
text-rendering: auto;
line-height: 1;
content: "\f110";
font-family: "Font Awesome 5 Free";
font-weight: 900;
margin: 0;
padding: 0;
box-sizing: border-box;
animation: fa-spin 2s linear infinite;
});var Ty=()=>m("i",{className:"spinner"}),Ip=({exportOps:e})=>{let[t,r]=U(""),n=scrapbox.Project.name,{loading:o,result:s}=Mp(n,t),i=_(d=>{r(d.currentTarget.value)},[]),[a,{open:c,close:l,toggle:p}]=hp(!1),u=ve({open:c,close:l,toggle:p});G(()=>{Object.assign(u.current,{open:c,close:l,toggle:p})},[]),G(()=>e(u.current),[e]);let f=_(d=>{d.target instanceof HTMLElement&&d.target.id==="background"&&l()},[]);return m(W,null,m(Dp,null),m("div",{id:"background",className:modal${a?"":" closed"},onClick:f},m("div",{className:"controller"},m("input",{type:"text",value:t,onInput:i}),m("div",{className:"info"},o&&m(Ty,null),${s?.pages?.length??0} pages)),s?.pages&&s.pages.length>0&&m("ul",{className:"result"},s.pages.map(d=>m("li",{key:d.title},m(gp,{...d,project:n,query:t,close:l}))))))};var Np=()=>{let e=document.createElement("div"),t=e.attachShadow({mode:"open"});return document.body.append(e),new Promise(r=>{ye(m(Ip,{exportOps:r}),t)})};var ko=(e,t)=>Object.hasOwn(e,t),Op={left:"ArrowLeft",right:"ArrowRight",up:"ArrowUp",down:"ArrowDown",bs:"Backspace",menu:"ContextMenu",apps:"ContextMenu",del:"Delete",return:"Enter",cr:"Enter",esc:"Escape",pgup:"PageUp",pgdn:"PageDown",lt:"<",less:"<",lesser:"<",gt:">",greater:">"},Up=e=>{let t=e.toLowerCase();return ko(Op,t)?Op[t]:e},$p={Backquote:["","~"],Digit1:"1","!",Digit2:"2","@",Digit3:"3","#",Digit4:"4","$",Digit5:"5","%",Digit6:"6","^",Digit7:"7","&",Digit8:"8","*",Digit9:"9","(",Digit0:"0",")",Minus:"-","_",Equal:"=","+",Backslash:"\\","|",BracketLeft:["","{",BracketRight:"","}"],Semicolon:";",":",Quote:"'",'"',Comma:",","<",Period:".",">",Slash:"/","?"},Ly=(e,t)=>{if(e.startsWith("Key")){let r=e.slice(3);return t||(r=r.toLowerCase()),r}return ko($p,e)?$pet?1:0:e},jp={"<":"lt",">":"gt"},Sy=/^($|Unidentified$|Process$|Dead$|Alt|Control|Hyper|Meta|Shift|Super|OS)/,Ii=e=>{let t=e.shiftKey,r=e.key||"Unidentified";if(r==="Unidentified"?r=Ly(e.code||"",t):(r=Up(r),r===" "&&(r="Space")),Sy.test(r))return"";r.length===1?t=!1:r=r.toLowerCase();let n="";return e.altKey&&(n+="a-"),e.ctrlKey&&(n+="c-"),e.metaKey&&(n+="m-"),t&&(n+="s-"),ko(jp,r)&&(r=jpr),n||r.length>1?<${n}${r}>:r},Ap={a:"altKey",c:"ctrlKey",m:"metaKey",s:"shiftKey"},Py=e=>{if(e.length===1)return/\s/.test(e)?{ok:!1,value:{name:"InvalidKeyError",key:e,message:Invalid key: ${e}}}:{ok:!0,value:{key:e}};let t=e.match(/^<((?:a-z-)*)(a-z\d+|^<>\s)>$/i);if(!t)return{ok:!1,value:{name:"InvalidKeyError",key:e,message:Invalid key: ${e}}};let,r,n=t,o={key:Up(n)};for(let s of r.split("-").slice(0,-1)){let i=s.toLowerCase();if(!ko(Ap,i))return{ok:!1,value:{name:"UnknownModifierError",modifier:s,context:e,message:${e}: Unknown modifier: ${s}}};let a=Api;if(oa!==void 0)return{ok:!1,value:{name:"DuplicateModifierError",modifier:s,context:e,message:${e}: Duplicate modifier: ${s}}};if(oa=!0,o.key.length===1&&o.shiftKey)return{ok:!1,value:{name:"DisallowedModifierError",modifier:s,context:e,message:${e}: Unusable modifier with single-character keys: ${s}}}}return{ok:!0,value:o}},Fp=e=>{let t=Py(e);return t.ok?{ok:!0,value:Ii(t.value)}:t},Bp=e=>e.match(/<^<>\s+>|\s\S|^$/g);var Xe=!1,Ni=e=>{Xe=typeof e=="boolean"?e:new Set(e)},ht=e=>Object.fromEntries(...Object.entries(console).map((t,r)=>{if(typeof r!="function")returnt,r;switch(t){case"warn":case"error":return[t,(...n)=>r(%c${e},"color: gray",...n)];case"log":case"info":case"debug":return[t,(...n)=>{Xe!==!0&&(!Xe||!Xe.has(e))||r(%c${e},"color: gray",...n)}];case"assert":return[t,(n,...o)=>{Xe!==!0&&(!Xe||!Xe.has(e))||r(n,%c${e},"color: gray",...o)}];case"time":case"timeEnd":return[t,n=>{Xe!==!0&&(!Xe||!Xe.has(e))||r(${e} ${n})}];default:returnt,(...n)=>{if(!(Xe!==!0&&(!Xe||!Xe.has(e))))return r(...n)}}}));var nr=ht("ScrapBindings:mod.ts"),Eo=class{constructor(t,r){this.target=t;this.onSequenceUpdate=r?.onSequenceUpdate,this.flushInterval=r?.flushInterval??1e3}bind(t,r){let n=new Map,o=[];for(lets,iof t instanceof Map?t.entries():typeof t=="string"?t,r:Object.entries(t)){let a=Hp(s);if(!a.ok){for(let l of a.value)nr.error(${s}: ${l.message});n.set(s,a.value);continue}let c=a.value;this.bindings.set(c,i),c.startsWith(this.currentSequence)&&this.filtered.add(c),o.push(c)}return nr.debug("Binded the following commands:",o),this.emitChange(),n}unbind(...t){for(let r of t){let n=Hp(r);if(!n.ok)continue;let o=n.value;this.bindings.delete(o),this.filtered.delete(o)}this.emitChange()}reset(){this.bindings.clear(),this.emitChange()}bindings=new Map;onSequenceUpdate;flushInterval;_sequence="";set currentSequence(t){let r=this._sequence!==t;this._sequence=t,r&&this.onSequenceUpdate?.(t)}get currentSequence(){return this._sequence}prevBestMatchCommand;filtered=new Set;timer;backToInitial=()=>{clearTimeout(this.timer),this.currentSequence="",this.prevBestMatchCommand=void 0,this.filtered=new Set(this.bindings.keys()),nr.debug("reset the sequence")};handleKeydown=t=>{if(!t.isTrusted)return;let r=Ii(t);if(!r)return;if(clearTimeout(this.timer),t.isComposing){this.backToInitial();return}this.currentSequence+=r,nr.debug("sequence",this.currentSequence);let n;for(let s of this.filtered){if(s.startsWith(this.currentSequence)||this.filtered.delete(s),this.currentSequence!==s)continue;let i=this.bindings.get(s);if(!i){this.filtered.delete(s);continue}n=()=>{nr.debug(run ${s});try{i(t)}catch(a){nr.error(a)}finally{this.backToInitial()}}}let o=this.filtered.size;if(nr.debug(${o} candidates: ${[...this.filtered.keys()].join(", ")}),o>0&&(this.prevBestMatchCommand=n),this.prevBestMatchCommand&&o<2){if(this.prevBestMatchCommand(),o===0){this.handleKeydown(t);return}return}if(o===0){this.backToInitial();return}t.preventDefault(),t.stopPropagation(),this.timer=setTimeout(this.prevBestMatchCommand??this.backToInitial,this.flushInterval)};emitChange=()=>{if(this.bindings.size===0){this.backToInitial(),this.target.removeEventListener("keydown",this.handleKeydown);return}this.target.addEventListener("keydown",this.handleKeydown)}},Ry={name:"InvalidSequenceError",message:"cannot parse the sequence"},Hp=e=>{let t=Bp(e);if(!t)return{ok:!1,value:Ry};let r="",n=[];for(let o of t){let s=Fp(o);if(!s.ok){n.push(s.value);continue}r+=s.value}return n.length>0?{ok:!1,value:n}:{ok:!0,value:r}};var _y=/https?:\/\/vimeo\.com\/(0-9+)/i,zp=e=>{let t=e.match(_y);if(t)return t1};var Cy=/https?:\/\/open\.spotify\.com\/(track|artist|playlist|album|episode|show)\/(a-zA-Z\d_-+)(?:\?^\s{0,100}|)/,qp=e=>{let t=e.match(Cy);if(!t)return;let,r,n=t;return{videoId:n,pathType:r}};var My=/https?:\/\/anchor\.fm\/a-zA-Z\d_-+\/episodes\/(a-zA-Z\d_-+(?:\/a-zA-Z\d_-+)?)(?:\?^\s{0,100}|)/,Wp=e=>{let t=e.match(My);if(!t)return;let,r=t;return r};var Gp=e=>{let{type:t,pathType:r,content:n,href:o,...s}=e;if(n===""){let i=Vn(o);if(i)return{type:"youtube",href:o,...i,...s};let a=zp(o);if(a)return{type:"vimeo",videoId:a,href:o,...s};let c=qp(o);if(c)return{type:"spotify",href:o,...c,...s};let l=Wp(o);if(l)return{type:"anchor-fm",videoId:l,href:o,...s};if(Iy(o))return{type:"video",href:o,...s}}return Dy(o)?{type:"audio",content:n,href:o,...s}:{type:"absoluteLink",content:n,href:o,...s}},Dy=e=>/\.(?:mp3|ogg|wav|aac)$/.test(e),Iy=e=>/\.(?:mp4|webm)$/.test(e);var Kp=()=>{if(scrapbox.Layout!=="page")return{selectionRange:{start:{line:0,char:0},end:{line:0,char:0}},selectedText:""};let{selectionRange:e,selectedText:t,position:r}=ge();if(!t){let p=Ei(r.line)??0,u={start:{line:r.line,char:0},end:{line:r.line+p,char:we(r.line+p)?.length??0}};return{selectionRange:u,selectedText:scrapbox.Page.lines.slice(u.start.line,u.end.line+1).map(f=>f.text).join(` )}}let{start:n,end:o}=e,s=n.line>o.line,i=s?o.line:n.line,a=s?o.char:n.char,c=s?n.line:o.line,l=s?n.char:o.char;return{selectedText:t,selectionRange:{start:{line:i,char:a},end:{line:c,char:l}}}};var Oi=(e,{title:t,projectTo:r,mode:n})=>{let[o,...s]=e.split(
),i=o.replaceAll("[","").replaceAll("]","").trim(),a=Math.min(...[o,...s].map(l=>Ue(l))),c=[from ${t},o.slice(a),...s.map(l=>l.slice(a))];return{text:${i},pages:[{project:r,title:i,lines:c,mode:n}]}};Oi.hookName="default-hook";var Pt=e=>{let{project:t=scrapbox.Project.name,mode:r="newtab"}=e??{},n=[...e?.hooks??[],Oi],{selectionRange:{start:o,end:s},selectedText:i}=Kp();if(!i||scrapbox.Layout!=="page")return;let a=(()=>{for(let u of n){let f=u(i,{title:scrapbox.Page.title,projectFrom:scrapbox.Project.name,projectTo:t,lines:Ge().slice(o.line,s.line+1),mode:r});if(f)return[u.hookName,f]}})();if(!a)return;let[c,l]=a,p=async()=>{let u=l instanceof Promise?await l:l;if(u.pages.length===0&&u.text===i)return;let f,{render:d,dispose:g}=pe();try{if(u.pages.length>0){let x=u.pages.length;d({type:"spinner"},{type:"text",text:Create new ${x} pages...}),f=await Ae();let v=0;await Promise.all(u.pages.map(async L=>{let S=Array.isArray(L.lines)?b=>[...b.map(E=>E.text),...L.lines]:L.lines;await oe(L.project,L.title,S,{socket:f}),d({type:"spinner"},{type:"text",text:Create ${x-++v} pages...})}))}d({type:"spinner"},{type:"text",text:${u.pages.length>0?"Created. ":""}Removing cut text...});let h=u.text;if(i===h)return;await oe(scrapbox.Project.name,scrapbox.Page.title,x=>{let v=x.map(L=>L.text);return[...v.slice(0,o.line),...${vo.line.slice(0,o.char)}${h}${v.slice(s.line).join(` ).slice(s.char)}.split(`
)]}),d({type:"check-circle"},{type:"text",text:"Removed."});for(let x of u.pages)switch(x.mode){case"self":x.project===scrapbox.Project.name?Rr(x.project,x.title):window.open(https://scrapbox.io/${x.project}/${J(x.title)},"_self");break;case"newtab":window.open(https://scrapbox.io/${x.project}/${J(x.title)});break}}catch(h){d({type:"exclamation-triangle"},{type:"text",text:"Failed to create new pages (see console)."}),console.error(h)}finally{let h=ae(1e3);f&&await De(f),await h,g()}};return p.hookName=c,p};function Ny(e){let t=Object.prototype.toString.call(e);return e instanceof Date||typeof e=="object"&&t==="[object Date]"?new e.constructor(+e):typeof e=="number"||t==="[object Number]"||typeof e=="string"||t==="[object String]"?new Date(e):new Date(NaN)}var Oy={};function $y(){return Oy}function To(e,t){let r=$y(),n=t?.weekStartsOn??t?.locale?.options?.weekStartsOn??r.weekStartsOn??r.locale?.options?.weekStartsOn??0,o=Ny(e),s=o.getDay(),i=(s<n?7:0)+s-n;return o.setDate(o.getDate()-i),o.setHours(0,0,0,0),o}function jy(e){let t=Object.prototype.toString.call(e);return e instanceof Date||typeof e=="object"&&t==="[object Date]"?new e.constructor(+e):typeof e=="number"||t==="[object Number]"||typeof e=="string"||t==="[object String]"?new Date(e):new Date(NaN)}function Xp(e){let t=jy(e);return t.setHours(0,0,0,0),t}function $i(e){let t=Object.prototype.toString.call(e);return e instanceof Date||typeof e=="object"&&t==="[object Date]"?new e.constructor(+e):typeof e=="number"||t==="[object Number]"||typeof e=="string"||t==="[object String]"?new Date(e):new Date(NaN)}function Yp(e,t){let r=$i(e.start),n=$i(e.end),o=+r>+n,s=o?+r:+n,i=o?n:r;i.setHours(0,0,0,0);let a=t?.step??1;if(!a)return[];a<0&&(a=-a,o=!o);let c=[];for(;+i<=s;)c.push($i(i)),i.setDate(i.getDate()+a),i.setHours(0,0,0,0);return o?c.reverse():c}function Ay(e){return e instanceof Date||typeof e=="object"&&Object.prototype.toString.call(e)==="[object Date]"}function Vp(e){let t=Object.prototype.toString.call(e);return e instanceof Date||typeof e=="object"&&t==="[object Date]"?new e.constructor(+e):typeof e=="number"||t==="[object Number]"||typeof e=="string"||t==="[object String]"?new Date(e):new Date(NaN)}function Uy(e){if(!Ay(e)&&typeof e!="number")return!1;let t=Vp(e);return!isNaN(Number(t))}function Ut(e,t){let r=e<0?"-":"",n=Math.abs(e).toString().padStart(t,"0");return r+n}var Fy={y(e,t){let r=e.getFullYear(),n=r>0?r:1-r;return Ut(t==="yy"?n%100:n,t.length)},M(e,t){let r=e.getMonth();return t==="M"?String(r+1):Ut(r+1,2)},d(e,t){return Ut(e.getDate(),t.length)},a(e,t){let r=e.getHours()/12>=1?"pm":"am";switch(t){case"a":case"aa":return r.toUpperCase();case"aaa":return r;case"aaaaa":return r[0];case"aaaa":default:return r==="am"?"a.m.":"p.m."}},h(e,t){return Ut(e.getHours()%12||12,t.length)},H(e,t){return Ut(e.getHours(),t.length)},m(e,t){return Ut(e.getMinutes(),t.length)},s(e,t){return Ut(e.getSeconds(),t.length)},S(e,t){let r=t.length,n=e.getMilliseconds(),o=Math.trunc(n*Math.pow(10,r-3));return Ut(o,t.length)}},By=/(\w)\1*|''|'(''|[^'])+('|$)|./g,Hy=/^'([^]*?)'?$/,zy=/''/g,qy=/[a-zA-Z]/;function Q(e,t){let r=Vp(e);if(!Uy(r))throw new RangeError("Invalid time value");let n=t.match(By);return n?n.map(o=>{if(o==="''")return"'";let s=o[0];if(s==="'")return Wy(o);let i=Fy[s];if(i)return i(r,o);if(s.match(qy))throw new RangeError("Format string contains an unescaped latin alphabet character "+s+"");return o}).join(""):""}function Wy(e){let t=e.match(Hy);return t?t[1].replace(zy,"'"):e}function Gy(e){let t=Object.prototype.toString.call(e);return e instanceof Date||typeof e=="object"&&t==="[object Date]"?new e.constructor(+e):typeof e=="number"||t==="[object Number]"||typeof e=="string"||t==="[object String]"?new Date(e):new Date(NaN)}function Ky(e,t){return e instanceof Date?new e.constructor(t):new Date(t)}function Be(e,t){let r=Gy(e);return isNaN(t)?Ky(e,NaN):(t&&r.setDate(r.getDate()+t),r)}function Xy(e){let t=Object.prototype.toString.call(e);return e instanceof Date||typeof e=="object"&&t==="[object Date]"?new e.constructor(+e):typeof e=="number"||t==="[object Number]"||typeof e=="string"||t==="[object String]"?new Date(e):new Date(NaN)}function Yy(e,t){return e instanceof Date?new e.constructor(t):new Date(t)}function Vy(e,t){let r=Xy(e);return isNaN(t)?Yy(e,NaN):(t&&r.setDate(r.getDate()+t),r)}function Rt(e,t){return Vy(e,-t)}function Jy(e){let t=Object.prototype.toString.call(e);return e instanceof Date||typeof e=="object"&&t==="[object Date]"?new e.constructor(+e):typeof e=="number"||t==="[object Number]"||typeof e=="string"||t==="[object String]"?new Date(e):new Date(NaN)}function Qy(e,t){return e instanceof Date?new e.constructor(t):new Date(t)}function Zy(e,t){let r=+Jy(e);return Qy(e,r+t)}function Lo(e,t){return Zy(e,t*1e3)}function ev(e){let t=Object.prototype.toString.call(e);return e instanceof Date||typeof e=="object"&&t==="[object Date]"?new e.constructor(+e):typeof e=="number"||t==="[object Number]"||typeof e=="string"||t==="[object String]"?new Date(e):new Date(NaN)}function tv(e,t){return e instanceof Date?new e.constructor(t):new Date(t)}function rv(e,t){let r=ev(e);return isNaN(t)?tv(e,NaN):(t&&r.setDate(r.getDate()+t),r)}function Jp(e,t){let r=t*7;return rv(e,r)}function nv(e){let t=Object.prototype.toString.call(e);return e instanceof Date||typeof e=="object"&&t==="[object Date]"?new e.constructor(+e):typeof e=="number"||t==="[object Number]"||typeof e=="string"||t==="[object String]"?new Date(e):new Date(NaN)}function So(e){return nv(e).getDate()}var ov=Math.pow(10,8)*24*60*60*1e3,qO=-ov,sv=6048e5,iv=3600,Qp=iv*24,WO=Qp*7,av=Qp*365.2425,cv=av/12,GO=cv*3;function Ai(e){let t=Object.prototype.toString.call(e);return e instanceof Date||typeof e=="object"&&t==="[object Date]"?new e.constructor(+e):typeof e=="number"||t==="[object Number]"||typeof e=="string"||t==="[object String]"?new Date(e):new Date(NaN)}var lv={};function Ui(){return lv}function Po(e,t){let r=Ui(),n=t?.weekStartsOn??t?.locale?.options?.weekStartsOn??r.weekStartsOn??r.locale?.options?.weekStartsOn??0,o=Ai(e),s=o.getDay(),i=(s<n?7:0)+s-n;return o.setDate(o.getDate()-i),o.setHours(0,0,0,0),o}function ji(e,t){return e instanceof Date?new e.constructor(t):new Date(t)}function pv(e,t){let r=Ai(e),n=r.getFullYear(),o=Ui(),s=t?.firstWeekContainsDate??t?.locale?.options?.firstWeekContainsDate??o.firstWeekContainsDate??o.locale?.options?.firstWeekContainsDate??1,i=ji(e,0);i.setFullYear(n+1,0,s),i.setHours(0,0,0,0);let a=Po(i,t),c=ji(e,0);c.setFullYear(n,0,s),c.setHours(0,0,0,0);let l=Po(c,t);return r.getTime()>=a.getTime()?n+1:r.getTime()>=l.getTime()?n:n-1}function uv(e,t){let r=Ui(),n=t?.firstWeekContainsDate??t?.locale?.options?.firstWeekContainsDate??r.firstWeekContainsDate??r.locale?.options?.firstWeekContainsDate??1,o=pv(e,t),s=ji(e,0);return s.setFullYear(o,0,n),s.setHours(0,0,0,0),Po(s,t)}function un(e,t){let r=Ai(e),n=+Po(r,t)-+uv(r,t);return Math.round(n/sv)+1}function dv(e){let t=Object.prototype.toString.call(e);return e instanceof Date||typeof e=="object"&&t==="[object Date]"?new e.constructor(+e):typeof e=="number"||t==="[object Number]"||typeof e=="string"||t==="[object String]"?new Date(e):new Date(NaN)}function Zp(e){return dv(e).getMonth()}function mv(e){let t=Object.prototype.toString.call(e);return e instanceof Date||typeof e=="object"&&t==="[object Date]"?new e.constructor(+e):typeof e=="number"||t==="[object Number]"||typeof e=="string"||t==="[object String]"?new Date(e):new Date(NaN)}function dn(e){return mv(e).getFullYear()}function fv(e){let t=Object.prototype.toString.call(e);return e instanceof Date||typeof e=="object"&&t==="[object Date]"?new e.constructor(+e):typeof e=="number"||t==="[object Number]"||typeof e=="string"||t==="[object String]"?new Date(e):new Date(NaN)}function eu(e){let t=fv(e);return t.setHours(0,0,0,0),t}function Ye(e,t){let r=eu(e),n=eu(t);return+r==+n}var tu=e=>{let t=new Map;for(let r of e){let n=${dn(r)}-${Zp(r)}-${So(r)},o=t.get(n);o&&o.getTime()>r.getTime()||t.set(n,r)}return[...t.values()]};function Fi(e){let t=Object.prototype.toString.call(e);return e instanceof Date||typeof e=="object"&&t==="[object Date]"?new e.constructor(+e):typeof e=="number"||t==="[object Number]"||typeof e=="string"||t==="[object String]"?new Date(e):new Date(NaN)}function Ro(e,t){return e instanceof Date?new e.constructor(t):new Date(t)}function gv(e,t){let r=Fi(e);return isNaN(t)?Ro(e,NaN):(t&&r.setDate(r.getDate()+t),r)}function hv(e,t){let r=Fi(e);if(isNaN(t))return Ro(e,NaN);if(!t)return r;let n=r.getDate(),o=Ro(e,r.getTime());o.setMonth(r.getMonth()+t+1,0);let s=o.getDate();return n>=s?o:(r.setFullYear(o.getFullYear(),o.getMonth(),n),r)}function ru(e,t){let{years:r=0,months:n=0,weeks:o=0,days:s=0,hours:i=0,minutes:a=0,seconds:c=0}=t,l=Fi(e),p=n||r?hv(l,n+r*12):l,u=s||o?gv(p,s+o*7):p,f=a+i*60,d=(c+f*60)*1e3;return Ro(e,u.getTime()+d)}function xv(e){let t=Object.prototype.toString.call(e);return e instanceof Date||typeof e=="object"&&t==="[object Date]"?new e.constructor(+e):typeof e=="number"||t==="[object Number]"||typeof e=="string"||t==="[object String]"?new Date(e):new Date(NaN)}function bv(e,t){return e instanceof Date?new e.constructor(t):new Date(t)}function yv(e,t){let r=+xv(e);return bv(e,r+t)}var vv=Math.pow(10,8)*24*60*60*1e3,q$=-vv,wv=36e5,kv=3600,nu=kv*24,W$=nu*7,Ev=nu*365.2425,Tv=Ev/12,G$=Tv*3;function ou(e,t){return yv(e,t*wv)}function Lv(e){let t=Object.prototype.toString.call(e);return e instanceof Date||typeof e=="object"&&t==="[object Date]"?new e.constructor(+e):typeof e=="number"||t==="[object Number]"||typeof e=="string"||t==="[object String]"?new Date(e):new Date(NaN)}function Sv(e,t){return e instanceof Date?new e.constructor(t):new Date(t)}function Pv(e,t){let r=+Lv(e);return Sv(e,r+t)}var Rv=Math.pow(10,8)*24*60*60*1e3,Q$=-Rv,_v=6e4,Cv=3600,su=Cv*24,Z$=su*7,Mv=su*365.2425,Dv=Mv/12,ej=Dv*3;function Ft(e,t){return Pv(e,t*_v)}function iu(e){let t=Object.prototype.toString.call(e);return e instanceof Date||typeof e=="object"&&t==="[object Date]"?new e.constructor(+e):typeof e=="number"||t==="[object Number]"||typeof e=="string"||t==="[object String]"?new Date(e):new Date(NaN)}function au(e,t){let r=iu(e),n=iu(t),o=r.getTime()-n.getTime();return o<0?-1:o>0?1:o}var Iv=Math.pow(10,8)*24*60*60*1e3,Sj=-Iv,Nv=864e5,Ov=3600,pu=Ov*24,Pj=pu*7,$v=pu*365.2425,jv=$v/12,Rj=jv*3;function uu(e){let t=Object.prototype.toString.call(e);return e instanceof Date||typeof e=="object"&&t==="[object Date]"?new e.constructor(+e):typeof e=="number"||t==="[object Number]"||typeof e=="string"||t==="[object String]"?new Date(e):new Date(NaN)}function cu(e){let t=uu(e);return t.setHours(0,0,0,0),t}function lu(e){let t=uu(e),r=new Date(Date.UTC(t.getFullYear(),t.getMonth(),t.getDate(),t.getHours(),t.getMinutes(),t.getSeconds(),t.getMilliseconds()));return r.setUTCFullYear(t.getFullYear()),+e-+r}function du(e,t){let r=cu(e),n=cu(t),o=+r-lu(r),s=+n-lu(n);return Math.round((o-s)/Nv)}function mu(e){let t=Object.prototype.toString.call(e);return e instanceof Date||typeof e=="object"&&t==="[object Date]"?new e.constructor(+e):typeof e=="number"||t==="[object Number]"||typeof e=="string"||t==="[object String]"?new Date(e):new Date(NaN)}function fu(e,t){let r=mu(e),n=mu(t),o=r.getFullYear()-n.getFullYear(),s=r.getMonth()-n.getMonth();return o*12+s}function Av(e){return t=>{let r=(e?Math[e]:Math.trunc)(t);return r===0?0:r}}var Uv=Math.pow(10,8)*24*60*60*1e3,Uj=-Uv,Fv=6e4,Bv=3600,hu=Bv*24,Fj=hu*7,Hv=hu*365.2425,zv=Hv/12,Bj=zv*3;function gu(e){let t=Object.prototype.toString.call(e);return e instanceof Date||typeof e=="object"&&t==="[object Date]"?new e.constructor(+e):typeof e=="number"||t==="[object Number]"||typeof e=="string"||t==="[object String]"?new Date(e):new Date(NaN)}function qv(e,t){return+gu(e)-+gu(t)}function Bi(e,t,r){let n=qv(e,t)/Fv;return Av(r?.roundingMethod)(n)}function mn(e){let t=Object.prototype.toString.call(e);return e instanceof Date||typeof e=="object"&&t==="[object Date]"?new e.constructor(+e):typeof e=="number"||t==="[object Number]"||typeof e=="string"||t==="[object String]"?new Date(e):new Date(NaN)}function Wv(e,t){return e instanceof Date?new e.constructor(t):new Date(t)}function Gv(e,t){let r=mn(e);return isNaN(t)?Wv(e,NaN):(t&&r.setDate(r.getDate()+t),r)}function Kv(e,t){let r=t*7;return Gv(e,r)}var Xv={};function Yv(){return Xv}function _o(e,t){let r=Yv(),n=t?.weekStartsOn??t?.locale?.options?.weekStartsOn??r.weekStartsOn??r.locale?.options?.weekStartsOn??0,o=mn(e),s=o.getDay(),i=(s<n?7:0)+s-n;return o.setDate(o.getDate()-i),o.setHours(0,0,0,0),o}function xu(e,t){let r=mn(e.start),n=mn(e.end),o=+r>+n,s=_o(o?n:r,t),i=_o(o?r:n,t);s.setHours(15),i.setHours(15);let a=+i.getTime(),c=s,l=t?.step??1;if(!l)return[];l<0&&(l=-l,o=!o);let p=[];for(;+c<=a;)c.setHours(0),p.push(mn(c)),c=Kv(c,l),c.setHours(15);return o?p.reverse():p}function Vv(e){let t=Object.prototype.toString.call(e);return e instanceof Date||typeof e=="object"&&t==="[object Date]"?new e.constructor(+e):typeof e=="number"||t==="[object Number]"||typeof e=="string"||t==="[object String]"?new Date(e):new Date(NaN)}function bu(e){let t=Vv(e);return t.setHours(23,59,59,999),t}function Jv(e){let t=Object.prototype.toString.call(e);return e instanceof Date||typeof e=="object"&&t==="[object Date]"?new e.constructor(+e):typeof e=="number"||t==="[object Number]"||typeof e=="string"||t==="[object String]"?new Date(e):new Date(NaN)}function yu(e){return Jv(e).getHours()}function Qv(e){let t=Object.prototype.toString.call(e);return e instanceof Date||typeof e=="object"&&t==="[object Date]"?new e.constructor(+e):typeof e=="number"||t==="[object Number]"||typeof e=="string"||t==="[object String]"?new Date(e):new Date(NaN)}function vu(e){return Qv(e).getMinutes()}function wu(e,t){return e instanceof Date?new e.constructor(t):new Date(t)}function Eu(e){let t=Object.prototype.toString.call(e);return e instanceof Date||typeof e=="object"&&t==="[object Date]"?new e.constructor(+e):typeof e=="number"||t==="[object Number]"||typeof e=="string"||t==="[object String]"?new Date(e):new Date(NaN)}var Zv={};function Tu(){return Zv}function ku(e,t){let r=Tu(),n=t?.weekStartsOn??t?.locale?.options?.weekStartsOn??r.weekStartsOn??r.locale?.options?.weekStartsOn??0,o=Eu(e),s=o.getDay(),i=(s<n?7:0)+s-n;return o.setDate(o.getDate()-i),o.setHours(0,0,0,0),o}function Lu(e,t){let r=Eu(e),n=r.getFullYear(),o=Tu(),s=t?.firstWeekContainsDate??t?.locale?.options?.firstWeekContainsDate??o.firstWeekContainsDate??o.locale?.options?.firstWeekContainsDate??1,i=wu(e,0);i.setFullYear(n+1,0,s),i.setHours(0,0,0,0);let a=ku(i,t),c=wu(e,0);c.setFullYear(n,0,s),c.setHours(0,0,0,0);let l=ku(c,t);return r.getTime()>=a.getTime()?n+1:r.getTime()>=l.getTime()?n:n-1}var ew=Math.pow(10,8)*24*60*60*1e3,RA=-ew;var tw=3600,Su=tw*24,_A=Su*7,rw=Su*365.2425,nw=rw/12,CA=nw*3;function Pu(e){let t=Object.prototype.toString.call(e);return e instanceof Date||typeof e=="object"&&t==="[object Date]"?new e.constructor(+e):typeof e=="number"||t==="[object Number]"||typeof e=="string"||t==="[object String]"?new Date(e):new Date(NaN)}function or(e,t){let r=Pu(e),n=Pu(t);return r.getTime()>n.getTime()}function ow(e){return e instanceof Date||typeof e=="object"&&Object.prototype.toString.call(e)==="[object Date]"}function sw(e){let t=Object.prototype.toString.call(e);return e instanceof Date||typeof e=="object"&&t==="[object Date]"?new e.constructor(+e):typeof e=="number"||t==="[object Number]"||typeof e=="string"||t==="[object String]"?new Date(e):new Date(NaN)}function Cr(e){if(!ow(e)&&typeof e!="number")return!1;let t=sw(e);return!isNaN(Number(t))}function Hi(e,t){return e instanceof Date?new e.constructor(t):new Date(t)}function zi(e){let t=Object.prototype.toString.call(e);return e instanceof Date||typeof e=="object"&&t==="[object Date]"?new e.constructor(+e):typeof e=="number"||t==="[object Number]"||typeof e=="string"||t==="[object String]"?new Date(e):new Date(NaN)}function iw(e){let t=zi(e),r=t.getFullYear(),n=t.getMonth(),o=Hi(e,0);return o.setFullYear(r,n+1,0),o.setHours(0,0,0,0),o.getDate()}function aw(e,t){let r=zi(e),n=r.getFullYear(),o=r.getDate(),s=Hi(e,0);s.setFullYear(n,t,15),s.setHours(0,0,0,0);let i=iw(s);return r.setMonth(t,Math.min(o,i)),r}function Ru(e,t){let r=zi(e);return isNaN(+r)?Hi(e,NaN):(t.year!=null&&r.setFullYear(t.year),t.month!=null&&(r=aw(r,t.month)),t.date!=null&&r.setDate(t.date),t.hours!=null&&r.setHours(t.hours),t.minutes!=null&&r.setMinutes(t.minutes),t.seconds!=null&&r.setSeconds(t.seconds),t.milliseconds!=null&&r.setMilliseconds(t.milliseconds),r)}var cw=Math.pow(10,8)*24*60*60*1e3,d2=-cw,lw=6048e5,pw=3600,_u=pw*24,m2=_u*7,uw=_u*365.2425,dw=uw/12,f2=dw*3;function Mo(e){let t=Object.prototype.toString.call(e);return e instanceof Date||typeof e=="object"&&t==="[object Date]"?new e.constructor(+e):typeof e=="number"||t==="[object Number]"||typeof e=="string"||t==="[object String]"?new Date(e):new Date(NaN)}var mw={};function Wi(){return mw}function Co(e,t){let r=Wi(),n=t?.weekStartsOn??t?.locale?.options?.weekStartsOn??r.weekStartsOn??r.locale?.options?.weekStartsOn??0,o=Mo(e),s=o.getDay(),i=(s<n?7:0)+s-n;return o.setDate(o.getDate()-i),o.setHours(0,0,0,0),o}function qi(e,t){return e instanceof Date?new e.constructor(t):new Date(t)}function fw(e,t){let r=Mo(e),n=r.getFullYear(),o=Wi(),s=t?.firstWeekContainsDate??t?.locale?.options?.firstWeekContainsDate??o.firstWeekContainsDate??o.locale?.options?.firstWeekContainsDate??1,i=qi(e,0);i.setFullYear(n+1,0,s),i.setHours(0,0,0,0);let a=Co(i,t),c=qi(e,0);c.setFullYear(n,0,s),c.setHours(0,0,0,0);let l=Co(c,t);return r.getTime()>=a.getTime()?n+1:r.getTime()>=l.getTime()?n:n-1}function gw(e,t){let r=Wi(),n=t?.firstWeekContainsDate??t?.locale?.options?.firstWeekContainsDate??r.firstWeekContainsDate??r.locale?.options?.firstWeekContainsDate??1,o=fw(e,t),s=qi(e,0);return s.setFullYear(o,0,n),s.setHours(0,0,0,0),Co(s,t)}function hw(e,t){let r=Mo(e),n=+Co(r,t)-+gw(r,t);return Math.round(n/lw)+1}function Cu(e,t,r){let n=Mo(e),o=hw(n,r)-t;return n.setDate(n.getDate()-o*7),n}var xw=Math.pow(10,8)*24*60*60*1e3,v2=-xw;var bw=3600,Mu=bw*24,w2=Mu*7,yw=Mu*365.2425,vw=yw/12,k2=vw*3;function ww(e){let t=Object.prototype.toString.call(e);return e instanceof Date||typeof e=="object"&&t==="[object Date]"?new e.constructor(+e):typeof e=="number"||t==="[object Number]"||typeof e=="string"||t==="[object String]"?new Date(e):new Date(NaN)}function kw(e,t){return e instanceof Date?new e.constructor(t):new Date(t)}function Ew(e,t){let r=ww(e);return isNaN(t)?kw(e,NaN):(t&&r.setDate(r.getDate()+t),r)}function Tw(e,t){let r=t*7;return Ew(e,r)}function Du(e,t){return Tw(e,-t)}var Iu=e=>e==null,Bt=e=>typeof e=="string";async function*Nu(e){let t=[],r,n=i=>{if(!r){t.push(i);return}r(i),r=void 0},o=()=>t.length>0?Promise.resolve(t.pop()):new Promise(i=>r=i),s=0;for(let i of e)i.then(a=>n({state:"fulfilled",value:a})).catch(a=>n({state:"rejected",reason:a})),s++;for(let i=0;i<s;i++)yield await o()}var He=e=>{let t=e.match(/^(\d{4})-(\d{2})-(\d{2}) (?: {5}|(\d{2}):(\d{2})) (?: {4}|(\d{4})) (?: {8}|(\d{2}):(\d{2}):(\d{2})) (?: {8}|(\d{2}):(\d{2}):(\d{2}))([^\n]*)$/);if(!t)return;let[,r,n,o,s,i,a,c,l,p,u,f,d,g]=t,h={title:g,base:new Date(parseInt(r),parseInt(n)-1,parseInt(o)),plan:{},record:{}};if(s){let x=new Date(h.base);x.setHours(parseInt(s)),x.setMinutes(parseInt(i)),h.plan.start=x}if(a&&(h.plan.duration=parseInt(a)*60),c){let x=new Date(h.base);x.setHours(parseInt(c)),x.setMinutes(parseInt(l)),x.setSeconds(parseInt(p)),h.record.start=x}if(u){let x=new Date(h.base);x.setHours(parseInt(u)),x.setMinutes(parseInt(f)),x.setSeconds(parseInt(d)),h.record.start&&or(h.record.start,x)&&x.setDate(x.getDate()+1),h.record.end=x}return h};var Mr=e=>e.record?.start??e.plan?.start??e.base,Ou=e=>e.record?.end??(Iu(e.plan?.duration)?e.base:Lo(Mr(e),e.plan.duration));var ue=({title:e,base:t,plan:r,record:n})=>["",Q(t,"yyyy-MM-dd")," ",r?.start?Q(r.start,"HH:mm"):" ".repeat(5)," ",r?.duration?${r.duration/60}.padStart(4,"0"):" ".repeat(4)," ",n?.start?Q(n?.start,"HH:mm:ss"):" ".repeat(8)," ",n?.end?Q(n?.end,"HH:mm:ss"):" ".repeat(8),"",e].join("");function*$u(e){for(let t of sr(e))Bt(t)||(yield t)}function*sr(e){for(let t=0;t<e.length;t++){let r=e[t],n=Bt(r)?r:r.text,o=St(t,e),s=He(n);if(!s){yield n;continue}yield{...s,lines:e.slice(t+1,t+1+o).map(i=>Bt(i)?i:i.text)},t+=o}}var Lw=5*60,Gi=async()=>{let e=ge().position.line,t=He(we(e)??""),r=t?.base??new Date,n={start:t?.plan?.start?Lo(t.plan.start,Lw+(t.plan.duration??0)):void 0,duration:t?.plan?.duration};await Ci(e+1,ue({title:"",base:r,plan:n,record:{}}))};var Do=async()=>{let e=ge().position.line,t=He(we(e)??"");if(!t)return;let{record:{start:r,end:n},...o}=t;n||await Fe(e,e,ue({record:{start:r?void 0:new Date},...o}))};var Dr=async()=>{let e=ge().position.line,t=He(we(e)??"");if(!t)return;let{record:{start:r,end:n},...o}=t;r&&await Fe(e,e,ue({record:{start:r,end:n?void 0:new Date},...o}))};var Ki=async()=>{let e=ge().position.line,t=He(we(e)??"");if(!t)return;let{record:{start:r,end:n},...o}=t;if(r){if(n)return;await Dr();return}if(n)return;let s;for(let{text:a}of ft().slice(0,(e??0)+1).reverse()){let{record:c}=He(a)??{};if(c?.end){s=c.end;break}}let i=new Date;await Fe(e,e,ue({record:{start:s??i,end:i},...o}))};var ir=()=>{let{selectionRange:{start:e,end:t},selectedText:r,position:n}=ge();return r===""?[n.line,n.line]:e.line>t.line?[t.line,e.line]:[e.line,t.line]};var Xi=(e,t=7)=>new Date((e+2592e3*((t+1)**1.5-1)/5221.154823442138)*1e3);var Yi=(e,t)=>{let r,n,o,s,i=null;if(i=e.match(/^(.*?)(s|e):([^\s]+)\s+d:(\d+)/))[,n,s,o,r]=i;else if(i=e.match(/^(.*?)d:(\d+)\s+(s|e):([^\s]+)/))[,n,r,s,o]=i;else if(i=e.match(/^(.*?)(s|e):([^\s]+)/))[,n,s,o]=i;else return(i=e.match(/^(.*?)d:(\d+)/))?([,n,r]=i,{name:n.trimEnd(),duration:parseInt(r)*60}):void 0;for(let{test:a,parse:c}of Sw){let l=o.match(a);if(!l)continue;let p=c(l),u=p.isDuration?ru(t,p):Ru(t,p);return s==="s"?{name:n.trimEnd(),start:u,...r!==void 0?{duration:parseInt(r)*60}:{}}:{name:n.trimEnd(),start:Xi(t.getTime()/1e3,(u.getTime()-t.getTime())/(24*60*60*1e3)),...r!==void 0?{duration:parseInt(r)*60}:{}}}},Sw=[{test:/(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2})$/i,parse:e=>({isDuration:!1,year:parseInt(e[1]),month:parseInt(e[2])-1,date:parseInt(e[3]),hours:parseInt(e[4]),minutes:parseInt(e[5])})},{test:/(\d{4})-(\d{2})-(\d{2})T(\d{2})$/i,parse:e=>({isDuration:!1,year:parseInt(e[1]),month:parseInt(e[2])-1,date:parseInt(e[3]),hours:parseInt(e[4])})},{test:/(\d{4})-(\d{2})-(\d{2})T?$/i,parse:e=>({isDuration:!1,year:parseInt(e[1]),month:parseInt(e[2])-1,date:parseInt(e[3])})},{test:/(\d{2})-(\d{2})T(\d{2}):(\d{2})$/i,parse:e=>({isDuration:!1,month:parseInt(e[1])-1,date:parseInt(e[2]),hours:parseInt(e[3]),minutes:parseInt(e[4])})},{test:/(\d{2})-(\d{2})T(\d{2})$/i,parse:e=>({isDuration:!1,month:parseInt(e[1])-1,date:parseInt(e[2]),hours:parseInt(e[3])})},{test:/(\d{2})-(\d{2})T?$/i,parse:e=>({isDuration:!1,month:parseInt(e[1])-1,date:parseInt(e[2])})},{test:/(\d{2})T(\d{2}):(\d{2})$/i,parse:e=>({isDuration:!1,date:parseInt(e[1]),hours:parseInt(e[2]),minutes:parseInt(e[3])})},{test:/(\d{2})T(\d{2})$/i,parse:e=>({isDuration:!1,date:parseInt(e[1]),hours:parseInt(e[2])})},{test:/T?(\d{2}):(\d{2})$/i,parse:e=>({isDuration:!1,hours:parseInt(e[1]),minutes:parseInt(e[2])})},{test:/T?(\d{2})$/i,parse:e=>({isDuration:!1,hours:parseInt(e[1])})},{test:/P(\d+)Y(\d+)M(\d+)DT(\d+)H(\d+)M$/i,parse:e=>({isDuration:!0,year:parseInt(e[1]),month:parseInt(e[2])-1,days:parseInt(e[3]),hours:parseInt(e[4]),minutes:parseInt(e[5])})},{test:/P(\d+)Y(\d+)M(\d+)DT(\d+)H$/i,parse:e=>({isDuration:!0,year:parseInt(e[1]),month:parseInt(e[2])-1,days:parseInt(e[3]),hours:parseInt(e[4])})},{test:/P(\d+)Y(\d+)M(\d+)D$/i,parse:e=>({isDuration:!0,year:parseInt(e[1]),month:parseInt(e[2])-1,days:parseInt(e[3])})},{test:/P(\d+)M(\d+)DT(\d+)H(\d+)M$/i,parse:e=>({isDuration:!0,month:parseInt(e[1])-1,days:parseInt(e[2]),hours:parseInt(e[3]),minutes:parseInt(e[4])})},{test:/P(\d+)M(\d+)DT(\d+)H$/i,parse:e=>({isDuration:!0,month:parseInt(e[1])-1,days:parseInt(e[2]),hours:parseInt(e[3])})},{test:/P(\d+)M(\d+)D$/i,parse:e=>({isDuration:!0,month:parseInt(e[1])-1,days:parseInt(e[2])})},{test:/P(\d+)DT(\d+)H(\d+)M$/i,parse:e=>({isDuration:!0,days:parseInt(e[1]),hours:parseInt(e[2]),minutes:parseInt(e[3])})},{test:/P(\d+)DT(\d+)H$/i,parse:e=>({isDuration:!0,days:parseInt(e[1]),hours:parseInt(e[2])})},{test:/P(\d+)D$/i,parse:e=>({isDuration:!0,days:parseInt(e[1])})},{test:/PT?(\d+)H(\d+)M$/i,parse:e=>({isDuration:!0,hours:parseInt(e[1]),minutes:parseInt(e[2])})},{test:/PT?(\d+)H$/i,parse:e=>({isDuration:!0,hours:parseInt(e[1])})},{test:/PT?(\d+)M$/i,parse:e=>({isDuration:!0,minutes:parseInt(e[1])})},{test:/P(\d+)W$/i,parse:e=>({isDuration:!0,weeks:parseInt(e[1])})}];var fn=async()=>{let e=new Date,[t,r]=ir(),n=ft().slice(t,r+1).map(s=>s.text),o=n.flatMap(s=>{let i=s.trimEnd();if(i==="")return s;let{name:a,start:c,duration:l}=Yi(i,e)??{};return!a||!c&&!l?s:[ue({title:a.trim(),base:c??e,plan:{start:c,duration:l},record:{}})]}).join( );n.join(
)!==o&&await Fe(t,r,o)};var Io=async(e,t,r)=>{let n=[];for(let o=e;o<=t;o++){let s=we(o)??"",i=He(s);if(!i){n.push(s);continue}n.push(ue(r(i,o)))}await Fe(e,t,n.join(
))};var Vi=async(e=1)=>{let[t,r]=ir();await Io(t,r,n=>(n.base=Be(n.base,e),n))};var Ji=async()=>{let[e,t]=ir(),r=new Date;await Io(e,t,n=>(Ye(n.base,r)||(n.base=r),n))};var Pw="日刊記録sheet",Rw=/日刊記録sheet (\d{4})-(\d{2})-(\d{2})/,gn=["[** 00:00 - 03:00] 未明","[** 03:00 - 06:00] 明け方","[** 06:00 - 09:00] 朝","[** 09:00 - 12:00] 昼前","[** 12:00 - 15:00] 昼過ぎ","[** 15:00 - 18:00] 夕方","[** 18:00 - 21:00] 夜のはじめ頃","[** 21:00 - 00:00] 夜遅く"];var Qi=e=>{let t=e.match(Rw);if(!t)return;let[,r,n,o]=t,s=new Date(parseInt(r),parseInt(n)-1,parseInt(o));return Cr(s)?s:void 0},hn=e=>Q(e,'${Pw}' yyyy-MM-dd),No=e=>{let t=Qi(e[0]);if(!t)return e;let r=_w(t),n=[],o=[];for(let a of sr(e.slice(1))){if(typeof a=="string"){if(gn.includes(a)||r!==""&&r===a)continue;o.push(a);continue}n.push(a)}let s=n.sort((a,c)=>au(Mr(a),Mr(c)));if(s.length===0)return[e[0],r,...gn,...o];let i=[0,0,0,0,0,0,0,0];for(let a=1;a<gn.length;a++){let c=ou(new Date(t.getFullYear(),t.getMonth(),t.getDate()),3*a),l=s.findIndex(d=>or(Mr(d),c));if(l<0){i[a]=-1;continue}if(l===0)continue;let p=s[l-1],u=Mr(p),f=Ou(p);i[a]=(f.getTime()-u.getTime())/2<c.getTime()-u.getTime()?l:l-1}return[e[0],r,...s.flatMap((a,c)=>[...i.flatMap((l,p)=>l===c?[gn[p]]:[]),ue(a),...a.lines]),...i.flatMap((a,c)=>a===-1?[gn[c]]:[]),...o]},_w=e=>yesterday: ${hn(Rt(e,1))};var Zi=async(e,t)=>{let r=()=>{},n=setTimeout(()=>{let{render:o,dispose:s}=pe();r=s,o({type:"spinner"},{type:"text",text:"formatting..."})},500);await oe(e,t,o=>No(o.map(s=>s.text))),clearTimeout(n),r()};async function*ea(e,t,r){let n=[...t],o=[];for(;n.length>0;){let s=n.shift();if(!s)break;let i=s.base,a=[s];for(let c=0;c<n.length;c++)Ye(n[c].base,i)&&(a.push(...n.splice(c,1)),c--);o.push((async()=>(await oe(e,hn(i),c=>No([...c.map(l=>l.text),...a.flatMap(l=>[ue(l),...l.lines??[]])]),r),{date:i,size:a.length}))())}yield*Nu(o)}var xn=async({from:{project:e,title:t},to:r})=>{let n=await qe(e,t);if(!n.ok)throw n.value;let o=Qi(t),{lines:s}=n.value,i=[];for(let p of $u(s))o&&Ye(p.base,o)||i.push(p);let{render:a,dispose:c}=pe();a({type:"spinner"},{type:"text",text:copying ${i.length} tasks...});let l=await Ae();try{let p=0,u=!1;for await(let f of ea(r,i,{socket:l})){if(f.state!=="fulfilled"){console.error(f.reason),u=!0;continue}p+=f.value.size,a({type:"spinner"},{type:"text",text:copying ${i.length-p} tasks...})}if(u){a({type:"exclamation-triangle"},{type:"text",text:"Some tasks failed to be written"});return}a({type:"spinner"},{type:"text",text:Copied. removing ${i.length} original tasks...}),await oe(e,t,f=>{let d=[];for(let g of sr(f)){if(Bt(g)){d.push(g);continue}o&&Ye(g.base,o)&&d.push(ue(g),...g.lines)}return d},{socket:l}),a({type:"check-circle"},{type:"text",text:"Moved"})}finally{await De(l),await ae(1e3),c()}};var ct=e=>${e}.padStart(2,"0");var ar=e=>"hours"in e,rt=(e,t)=>e.year!==t.year?e.year<t.year:e.month!==t.month?e.month<t.month:e.date!==t.date?e.date<t.date:"hours"in t?"hours"in e?e.hours*60+e.minutes<t.hours*60+t.minutes:0<t.hours*60+t.minutes:!1,xt=e=>${${e.year}.padStart(4,"0")}-${ct(e.month)}-${ct(e.date)}${"hours"in e?T${ct(e.hours)}:${ct(e.minutes)}:""},ee=e=>{let t=xt(e);return new Date(t.includes("T")?t:${t}T00:00)},ze=e=>({year:e.getFullYear(),month:e.getMonth()+1,date:e.getDate(),hours:e.getHours(),minutes:e.getMinutes()});var ju=e=>{switch(e.toLowerCase()){case"y":return"yearly";case"m":return"monthly";case"w":return"weekly";case"d":return"daily";default:return}};var Au=e=>{switch(e){case"+":return"todo";case"-":return"note";case"!":return"deadline";case".":return"done";case"~":return"up-down";default:return}},Uu=e=>{switch(e){case"todo":return"+";case"note":return"-";case"deadline":return"!";case"done":return".";case"up-down":return"~"}};var Ht=e=>{let t=e.match(/(?:([\+\-!~.])(\d+)?)?@(\d{4})-(\d{2})-(\d{2})(?:T(\d{2}):(\d{2}))?(?:\/(\d{2}):(\d{2})|\/(?:(?:(?:(\d{4})-)?(\d{2})-)?(\d{2})(?:T(\d{2}):(\d{2}))?)|D(\d+))?(?:R([YMWD])?(\d+))?(?:@(?:(\d{2}):(\d{2})|(?:(?:(\d{4})-)?(\d{2})-)?(\d{2})(?:T(\d{2}):(\d{2}))?)?(?:\/(\d{2}):(\d{2})|\/(?:(?:(?:(\d{4})-)?(\d{2})-)?(\d{2})(?:T(\d{2}):(\d{2}))?)|D(\d+))?)?/i);if(!t)return;let[r,n,o,s,i,a,c,l,p,u,f,d,g,h,x,v,L,S,b,E,w,O,$,B,P,T,k,R,C,D,j,M,H]=t,A=${e.slice(0,t.index).trim()}${e.slice((t.index??0)+r.length).trim()},z=Fu(s,i,a,c,l);if(!Cr(ee(z)))return{ok:!1,value:{name:"InvalidDateError",message:The reference point of the task "${xt(z)}" is an invalid date.}};let q=Bu(z,f,d,g,p||h,u||x,v);if(q!==void 0){if(Se(q)&&isNaN(q)||!Se(q)&&!Cr(ee(q)))return{ok:!1,value:{name:"InvalidDateError",message:The estimated end of the task${Se(q)?"": "${xt(q)}"} is an invalid date.}};if(Se(q)&&q<0||!Se(q)&&rt(q,z))return{ok:!1,value:{name:"TaskRangeError",message:The reference point of an task cannot be after its estimated end. reference point:${xt(z)}
estimated end:${xt(Se(q)?ze(Ft(ee(z),q)):q)}}}}let V=/^[\uFE00-\uFE0F]*[✅❌]/.test(e)?"done":Au(n),K=V?{status:V,refDate:z}:void 0;K&&o&&(K.speed=parseInt(o));let Le=Fu(w||s,O||i,$||a,b||B||c,E||P||l);if(!Cr(ee(Le)))return{ok:!1,value:{name:"InvalidDateError",message:The start of the task/event "${xt(Le)}" is an invalid date.}};let ie=Bu(Le,R||f,C||d,D||g,T||j||p||h,k||M||u||x,H||v),I=ar(Le)&&Se(ie)?{start:Le,duration:ie}:void 0;if(I){let je={name:A,executed:I,generated:!1,raw:e};return K&&(je.freshness=K),(L||S)&&(je.recurrence={frequency:ju(L??"D")??"daily",count:S?parseInt(S):1}),{ok:!0,value:je}}if(!K)return{ok:!1,value:{name:"InvalidDateError",message:"Task requires freshness to be spec"}};let ne={name:A,freshness:K,generated:!1,raw:e};return q&&(ne.estimated=q),{ok:!0,value:I?{...ne,executed:I}:ne}},bt=e=>!("executed"in e),Ir=e=>"recurrence"in e,Hu=e=>!("executed"in e||"freshness"in e&&ar(e.freshness.refDate)&&e.estimated&&(Se(e.estimated)||ar(e.estimated))),bn=e=>"executed"in e?e.executed.duration:Se(e.estimated)?e.estimated:void 0,yt=e=>bt(e)?e.freshness.refDate:e.executed.start,zu=e=>{if(!bt(e)){let r=ee(e.executed.start);return ze(Ft(r,e.executed.duration))}if(Se(e.estimated)&&ar(e.freshness.refDate)){let r=ee(e.freshness.refDate);return ze(Ft(r,e.estimated))}let t=ee(Se(e.estimated)?e.freshness.refDate:e.estimated??e.freshness.refDate);return t.setHours(0),t.setMinutes(0),ze(Be(t,1))},Cw=e=>{let t=e.freshness?${Uu(e.freshness.status)}${e.freshness.speed??""}:"",r=${xt(yt(e))},n=bn(e);return${t}@${r}${n===void 0?"":D${n}}${e.name}},Oo=(e,t)=>{let r=ze(t),{recurrence:n,executed:o}=e;switch(n.frequency){case"yearly":{if(Math.abs(r.year-o.start.year)%(n.count??1)!==0||o.start.month!==r.month||o.start.date!==r.date)return;break}case"monthly":{if(fu(ee(r),ee(o.start))%(n.count??1)!==0)return;break}case"weekly":case"daily":{let a=n.frequency==="weekly"?7:1;if(du(ee(r),ee(o.start))%((n.count??1)*a)!==0)return;break}}let s={...o.start};s.year=r.year,s.month=r.month,s.date=r.date;let i={name:e.name,executed:{start:s,duration:o.duration},generated:!0,raw:e.raw};return e.freshness&&(i.freshness=e.freshness),i},$o=e=>e.freshness?e.generated?Cw(e):e.raw:e.generated?void 0:e.raw,Fu=(e,t,r,n,o)=>{let s=parseInt(e),i=parseInt(t),a=parseInt(r),c=n?parseInt(n):void 0,l=o?parseInt(o):void 0;return c!==void 0&&l!==void 0?{year:s,month:i,date:a,hours:c,minutes:l}:{year:s,month:i,date:a}},Bu=(e,t,r,n,o,s,i)=>{if(!t&&!r&&!n&&!o&&!s&&!i)return;if(i)return parseInt(i);let a=t?parseInt(t):e.year,c=r?parseInt(r):e.month,l=n?parseInt(n):e.date,p=o?parseInt(o):void 0,u=s?parseInt(s):void 0,f=p!==void 0&&u!==void 0?{year:a,month:c,date:l,hours:p,minutes:u}:{year:a,month:c,date:l};return!ar(e)||!ar(f)?f:Math.round((ee(f).getTime()-ee(e).getTime())/(60*1e3))};var ta=(e,t)=>{if(!e.generated&&Ir(e)){let s=Oo(e,t);return s?ta(s,t):void 0}let r=ee(bt(e)?e.freshness.refDate:e.executed.start),n=bn(e),o=$o(e);return{title:o!==void 0?${o}:e.name,base:r,plan:{start:Hu(e)?void 0:r,duration:n!==void 0?n*60:void 0},record:{}}};var ra={あさごはん:"#log-breakfast",ひるごはん:"#log-lunch",よるごはん:"#log-dinner"},cr=(e,{title:t,projectTo:r,mode:n})=>{let[o,...s]=e.split( ),i=He(o);if(!i)return;if(s.length===0)return{text:e,pages:[]};let{title:a,base:c,record:l,...p}=i,u=Mw(a,c,l),f=ue({title:${u},base:c,record:l,...p}),d=Math.min(...s.map(h=>Ue(h))),g=[.../[\[\]]/.test(a)&&a!==${u}?[a]:[],...t in ra?[...s.map(h=>h.slice(d)),"",ra[t],"#log-eatenfood"]:[...s.map(h=> ${h.slice(d)}),""]];return{text:f,pages:[{project:r,title:u,lines:qu(t,g,[l.start??c]),mode:n}]}};cr.hookName="task-hook";var Mw=(e,t,r)=>{let n=Q(r.start??t,"yyyy-MM-dd");if(e in ra)return${n} ${e};if(Ht(e.slice(1,-1)))return e.slice(1,-1);let o=e.replace(/[\[\]]/g,"").trim();return${o}${o.endsWith(n)?"": ${n}}},lr=(e,{title:t,projectTo:r,mode:n,lines:o})=>{let[s,...i]=e.split( );if(i.length===0)return;let a=s.replace(/[\[\]]/g,"").trim(),c=Math.min(...i.map(u=>Ue(u))),l=r.startsWith("takker")?tu([new Date,...o.map(({updated:u})=>new Date(u*1e3))]).sort((u,f)=>f.getTime()-u.getTime()):[],p=["",.../[\[\]]/.test(s)?[s.trimStart()]:[],...i.map(u=>u.slice(c))];return{text:${" ".repeat(Ue(s))}${a},pages:[{project:r,title:a,lines:qu(t,p,l),mode:n}]}};lr.hookName="new-page-hook";var pr=(e,{projectTo:t,mode:r})=>{if(e.includes( )||!/\[[^\]]+\]/.test(e))return;let[n,o]=e.match(/^(\s*)(.*)$/)?.slice?.(1)??["",e],s=[...o.matchAll(/\[([^\]])\]/g)].map(a=>X(a[1])),i=o.replaceAll("[","").replaceAll("]","");return{text:${n}${i},pages:[{project:t,title:i,lines:(a,{links:c})=>{let l=c.map(p=>X(p));if(!s.every(p=>l.includes(p)))return[...a.map(p=>p.text),o]},mode:r}]}};pr.hookName="splitted-link-hook";var qu=(e,t,r)=>(n,{links:o})=>{let s=o.map(u=>X(u)),i=s.includes(X(e))?[]:[from ${e}],a=r.flatMap(u=>{let f=Q(u,"yyyy-MM-dd");if(s.includes(f))return[];let d=Q(u,"HH:mm:ss");return[#${f} ${d}]}),c=n.map(u=>u.text),l=c.findIndex(u=>/^#\d{4}-\d{2}-\d{2}/.test(u)),p=l<0?c.length:l;return[...c.slice(0,p),...i,...t,"",...a,...c.slice(p)]};var Wu=e=>e.preventDefault(),Gu=e=>e.stopPropagation(),Ku={"<A-a><A-c>":async e=>{Wu(e),Gu(e);let[t,r]=Dw(),n=ft().slice(t,r+1).map(o=>{let s=o.text,i=o.text.match(/\[([^\]]+)\]/)?.[1];if(!i)return s;let a=Ht(i);if(!a||!a.ok)return s;let c=a.value;if(c.freshness?.status==="done")return s;let l=ta(c,new Date);return l?(l.title=${i},ue(l)):s}).join( );await Fe(t,r,n),await fn()},"<A-a><A-m>":e=>{scrapbox.Layout==="page"&&(Wu(e),Gu(e),xn({from:{project:scrapbox.Project.name,title:scrapbox.Page.title},to:"takker-memex"}))}},Dw=()=>{let{selectionRange:{start:e,end:t},selectedText:r,position:n}=ge();return r===""?[n.line,n.line]:e.line>t.line?[t.line,e.line]:[e.line,t.line]};var ur=e=>e.preventDefault(),dr=e=>e.stopPropagation(),na={"<A-a><A-a>":e=>{ur(e),dr(e),Gi()},"<A-a><A-s>":e=>{ur(e),dr(e),Do()},"<A-a><A-e>":e=>{ur(e),dr(e),Dr()},"<A-a><A-0>":e=>{ur(e),dr(e),Ki()},"<A-a><A-1>":e=>{ur(e),dr(e),Vi(1)},"<A-a><A-t>":e=>{ur(e),dr(e),Ji()},"<A-a><A-S>":e=>{scrapbox.Layout==="page"&&(ur(e),dr(e),Zi(scrapbox.Project.name,scrapbox.Page.title))}};var ke=e=>e.preventDefault(),Ee=e=>e.stopPropagation(),mr=(e,t)=>{let r=Vl()?.getElementsByClassName?.("button");if(!r)return;let n=[...r].find(o=>t instanceof RegExp?t.test(o.textContent??""):o.textContent===t);n instanceof HTMLDivElement&&e.target===document.activeElement&&(ke(e),Ee(e),n.click())},Iw={"-":e=>mr(e,""),"]":e=>mr(e,""),c:e=>mr(e,"Copy plain"),$:e=>mr(e,""),"{":e=>mr(e,/{{c\d+}}/),"}":e=>mr(e,"reset cloze"),n:e=>mr(e,"make note")},Nw={"<C-]>":e=>{let{position:{line:t,char:r}}=ge(),n=Li(t,r)?.closest("a.page-link")??tr(t)?.querySelector?.("a.page-link");n instanceof HTMLAnchorElement&&(ke(e),Ee(e),n.click())},"<C-o>":e=>{ke(e),Ee(e),history.back()}},Ow={"<C-home>":e=>{ke(e),Ee(e),op()},"<C-end>":e=>{ke(e),Ee(e),sp()}},Xu=[cr,lr,pr],$w={"<C-X>":e=>{let t=window.prompt("Create a new page at",scrapbox.Project.name);t&&(ke(e),Ee(e),Pt({project:t,mode:"self",hooks:Xu})?.())},"<C-D>":e=>{let t=window.prompt("Create a new page at",scrapbox.Project.name);t&&(ke(e),Ee(e),Pt({project:t,mode:"noopen",hooks:Xu})?.())},"<C-h>":e=>{ke(e),Ee(e),lo()},"<C-j>":e=>{ke(e),Ee(e),uo()},"<C-k>":e=>{ke(e),Ee(e),po()},"<C-l>":e=>{ke(e),Ee(e),co()},"<A-h>":e=>{ke(e),Ee(e),fo()},"<A-j>":e=>{ke(e),Ee(e),ho()},"<A-k>":e=>{ke(e),Ee(e),go()},"<A-l>":e=>{ke(e),Ee(e),mo()}};scrapbox.TimeStamp.removeAllFormats();var jw={"<A-t><A-t>":e=>{ke(e),Ee(e),Oe(Q(new Date,"#yyyy-MM-dd HH:mm:ss "))},"<A-t><A-j>":e=>{ke(e),Ee(e),Oe(Q(new Date,"yyyy-MM-dd HH:mm:ss "))},"<A-t><A-k>":e=>{ke(e),Ee(e),Oe(Q(new Date,"HH:mm:ss "))},"<A-t><A-l>":e=>{ke(e),Ee(e),Oe(Q(new Date,"yyyy-MM-dd"))}},Yu={...Iw,...Nw,...Ow,...$w,...jw,...Ku};var{render:Aw}=pe(),oa,Uw=e=>{oa!==void 0&&cancelAnimationFrame(oa),oa=requestAnimationFrame(()=>Aw({type:"text",text:e}))},sa=new Eo({addEventListener:mp,removeEventListener:Di},{onSequenceUpdate:Uw}),Vu=sa.bind({...Yu,...scrapbox.Project.name==="takker-memex"?na:{}});Vu.size>0&&alert([...Vu.entries()].map(([e,t])=>${e}:
${t.map(r=>- ${r}).join(`
)}).join(`
));var Ju=async()=>{let e=localStorage.getItem("projectsLastAccessed");if(!e)return[];try{let t=JSON.parse(e),r=Object.entries(t).sort(([,s],[,i])=>i-s).map(([s])=>s),n=await Sr([]);if(!n.ok)return r;let o=n.value.projects.map(s=>s.id);return r.filter(s=>!o.includes(s))}catch(t){if(!(t instanceof SyntaxError))throw t;return[]}};var Fw;(e=>{})(Fw||={});var Bw="0.13.3",Qu,Zu=async(e=Bw)=>{let t=https://cdnjs.cloudflare.com/ajax/libs/KaTeX/${e}/katex.min.js;if(document.querySelector(scriptsrc="${t}"))return window.katex!==void 0?Promise.resolve(window.katex):await new Promise(n=>{let o=setInterval(()=>{window.katex!==void 0&&(clearInterval(o),n(window.katex))},500)});let r=document.createElement("script");return r.src=t,Qu??=new Promise((n,o)=>{r.onload=()=>n(window.katex),r.onerror=s=>o(s),document.head.append(r)}),Qu};var yn=(e,t={})=>{let r=ve(null),[n,o]=U(e),[s,i]=U("");return G(()=>{(async()=>{let{render:a}=await Zu();if(r.current)try{a(n,r.current,t),i("")}catch(c){if(c instanceof Error&&c.name==="ParseError")i(c.message.slice(19));else throw c}})()},[n]),{ref:r,error:s,setFormula:o}};var ed=e=>{let t=[],r=new Set,n=o=>{r.delete(o);let s=t.pop();if(!s)return;let i=s[0]().finally(()=>n(i)).then(a=>s[1](a)).catch(a=>s[2](a));r.add(i)};return o=>{if(r.size<e){let s=o().finally(()=>n(s));return r.add(s),s}return new Promise((s,i)=>{t.push([o,s,i])})}};var Hw="0.6.5",nd=ScrapBubble-${Hw},td=await globalThis.caches.open(nd);(async()=>{for(let e of await globalThis.caches.keys())e.startsWith("ScrapBubble-")&&e!==nd&&(await globalThis.caches.delete(e),console.log(ScrapBubble deleted old cache :"${e}"))})();var rd=ed(3);async function*jo(e,t){let r=((t?.saveFailedResponse?td.match(e):void 0)??bo(e,t)).then(i=>["cache",i]);{let i=ae(1e3).then(()=>"timeout"),a=await Promise.race([r,i]);if(a!=="timeout"){a[1]&&(yield["cache",a[1]]);let c=await rd(()=>fetch(e));!c.ok&&t?.saveFailedResponse&&await td.put(e,c.clone()),yield["network",c]}}let n=rd(()=>fetch(e)).then(i=>["network",i]),[o,s]=await Promise.race([r,n]);if(o==="network"){yield[o,s];return}s&&(yield[o,s]),yield await n}var od=(e,t)=>new Date(e.headers.get("Date")??0).getTime()/1e3+t<new Date().getTime()/1e3;var Ao=()=>{let e=new Map;return{dispatch:(t,r)=>{let n=e.get(t);if(n)for(let o of n)o(r)},on:(t,r)=>{let n=e.get(t)??new Set;n.add(r),e.set(t,n)},off:(t,r)=>{let n=e.get(t);n&&n.delete(r)}}};var Ve=!1,sd=e=>{Ve=typeof e=="boolean"?e:new Set(e)},zt=e=>Object.fromEntries([...Object.entries(console)].map(([t,r])=>{if(typeof r!="function")return[t,r];switch(t){case"warn":case"error":return[t,(...n)=>r(%c${e},"color: gray",...n)];case"log":case"info":case"debug":return[t,(...n)=>{Ve!==!0&&(!Ve||!Ve.has(e))||r(%c${e},"color: gray",...n)}];case"assert":return[t,(n,...o)=>{Ve!==!0&&(!Ve||!Ve.has(e))||r(n,%c${e},"color: gray",...o)}];case"time":case"timeEnd":return[t,n=>{Ve!==!0&&(!Ve||!Ve.has(e))||r(${e} ${n})}];default:return[t,(...n)=>{if(!(Ve!==!0&&(!Ve||!Ve.has(e))))return r(...n)}]}}));var ia=Ao(),Uo=new Map,zw=zt("ScrapBubble:useProject.ts"),id=e=>{let[t,r]=U();return G(()=>{ia.on(e,r);let n=Uo.get(e);return n?r(n.loading?void 0:n.value):(Uo.set(e,{loading:!0}),r(void 0),(async()=>{try{let o=at.toRequest(e);for await(let[,s]of jo(o)){let i=await at.fromResponse(s);Uo.set(e,{loading:!1,value:i}),ia.dispatch(e,i);break}}catch(o){zw.error(o),Uo.delete(e)}})()),()=>ia.off(e,r)},[e]),t};var qw=["default-light","default-dark","default-minimal"],Ww=["paper-light","paper-dark-dark","paper-dark"],ad=["blue","purple","green","orange","red"],Gw=["hacker1","hacker2"],cd=["winter","spring","summer","automn"],ld=["tropical"],pd=["kyoto","newyork","paris"],ud=["mred","lgreen"],f3=["default-light","default-minimal","paper-light",...ad,...cd,...ld,...pd,...ud];var Kw=[...qw,...Ww,...ad,...Gw,...cd,...ld,...pd,...ud];function dd(e){return Kw.includes(e)}var md="default-light",fr=e=>{let t=id(e);return N(()=>{if(!t||!t.ok)return md;let r=t.value.theme;return dd(r)?r:md},[t])};var Nr=(e,t)=>new Promise(r=>{let n=!1,o=()=>{n=!0,r(!1)};e.addEventListener("click",o),e.addEventListener("pointerleave",o),setTimeout(()=>{n||r(!0),e.removeEventListener("click",o),e.removeEventListener("pointerleave",o),r(!1)},t)});var Or=e=>{let{top:t,right:r,left:n,bottom:o}=e.getBoundingClientRect(),s=document.body.getBoundingClientRect(),i=(n-s.left)/s.width>.5;return{top:Math.round(o-s.top),bottom:Math.round(globalThis.innerHeight-globalThis.scrollY-t),...i?{right:Math.round(s.right-r)}:{left:Math.round(n-s.left)},maxWidth:i?r-10:document.documentElement.clientWidth-n-10}};var fd=({project:e,title:t,descriptions:r,thumbnail:n,linkTo:o,bubble:s,delay:i,prefetch:a})=>{let c=N(()=>n?[]:tt(r.join( ),{hasTitle:!1}),[n,r]),l=fr(e),p=_(async({currentTarget:f})=>{a(e,t),await Nr(f,i)&&s({project:e,title:t,linkTo:o,type:"link",position:Or(f)})},[e,t,i,o?.project,o?.titleLc]),u=N(()=>o?()=>{Pr({type:"page",from:{project:o.project??e,title:o.titleLc},to:{project:e,title:t}})}:()=>{},[e,t,o?.project,o?.titleLc]);return m("a",{className:"related-page-card page-link",type:"link","data-theme":l,href:/${e}/${J(t)},rel:e===scrapbox.Project.name?"route":"noopner noreferrer",target:e!==scrapbox.Project.name?"_blank":"",onPointerEnter:p,onClick:u},m("div",{class:"hover"}),m("div",{class:"content"},m("div",{class:"header"},m("div",{class:"title"},t)),n?m("div",{class:"thumbnail"},m("img",{src:n})):m("div",{class:"description"},c.flatMap((f,d)=>f.type==="line"?[m("p",{key:d},f.nodes.map(g=>m(gd,{node:g,project:e})))]:[]))))},gd=({node:e,project:t})=>{switch(e.type){case"code":return m("code",null,e.text);case"formula":return m(Xw,{node:e});case"commandLine":return m("code",null,e.symbol," $",e.text);case"helpfeel":return m("code",null,"? ",e.text);case"quote":case"strong":case"decoration":return m(W,null,e.nodes.map(r=>m(gd,{node:r,project:t})));case"icon":case"strongIcon":return m(Yw,{node:e,project:t});case"hashTag":return m(Vw,{node:e});case"link":return m(Jw,{node:e});case"plain":case"blank":return m(W,null,e.text);default:return m(W,null)}},Xw=({node:{formula:e}})=>{let{ref:t,error:r,setFormula:n}=yn("");return n(e),m("span",{className:formula ${r?" error":""}},r?m("code",null,e):m("span",{className:"katex-display",ref:t}))},Yw=({node:{pathType:e,path:t},project:r})=>{let[n,o]=e==="relative"?[r,t]:t.match(/\/([\w\-]+)\/(.+)$/)?.slice?.(1)??[r,t];return m("img",{class:"icon",src:/api/pages/${n}/${J(o)}/icon})},Vw=({node:{href:e}})=>m("span",{class:"page-link"},"#",e),Jw=({node:{pathType:e,href:t,content:r}})=>e!=="absolute"?m("span",{class:"page-link"},t):m("span",{class:"link"},r||t);var re=(e,t)=>/${e}/${X(t)},Fo=e=>{let t=e.match("/([^/]+)/(.+)");if(!t)throw SyntaxError("${e}" cannnot match "/(^/+)/(.+)");return{project:t[1],titleLc:t[2]}};var wd=Symbol.for("immer-nothing"),hd=Symbol.for("immer-draftable"),te=Symbol.for("immer-state");function nt(e,...t){throw new Error(Immer minified error nr: ${e}. Full error at: https://bit.ly/3cXEKWf)}var $r=Object.getPrototypeOf;function jr(e){return!!e&&!!e[te]}function Ct(e){return e?kd(e)||Array.isArray(e)||!!e[hd]||!!e.constructor?.[hd]||Wo(e)||Go(e):!1}var Qw=Object.prototype.constructor.toString();function kd(e){if(!e||typeof e!="object")return!1;let t=$r(e);if(t===null)return!0;let r=Object.hasOwnProperty.call(t,"constructor")&&t.constructor;return r===Object?!0:typeof r=="function"&&Function.toString.call(r)===Qw}function vn(e,t){qo(e)===0?Reflect.ownKeys(e).forEach(r=>{t(r,e[r],e)}):e.forEach((r,n)=>t(n,r,e))}function qo(e){let t=e[te];return t?t.type_:Array.isArray(e)?1:Wo(e)?2:Go(e)?3:0}function la(e,t){return qo(e)===2?e.has(t):Object.prototype.hasOwnProperty.call(e,t)}function Ed(e,t,r){let n=qo(e);n===2?e.set(t,r):n===3?e.add(r):e[t]=r}function Zw(e,t){return e===t?e!==0||1/e===1/t:e!==e&&t!==t}function Wo(e){return e instanceof Map}function Go(e){return e instanceof Set}function Re(e){return e.copy_||e.base_}function pa(e,t){if(Wo(e))return new Map(e);if(Go(e))return new Set(e);if(Array.isArray(e))return Array.prototype.slice.call(e);let r=kd(e);if(t===!0||t==="class_only"&&!r){let n=Object.getOwnPropertyDescriptors(e);delete n[te];let o=Reflect.ownKeys(n);for(let s=0;s<o.length;s++){let i=o[s],a=n[i];a.writable===!1&&(a.writable=!0,a.configurable=!0),(a.get||a.set)&&(n[i]={configurable:!0,writable:!0,enumerable:a.enumerable,value:e[i]})}return Object.create($r(e),n)}else{let n=$r(e);if(n!==null&&r)return{...e};let o=Object.create(n);return Object.assign(o,e)}}function fa(e,t=!1){return Ko(e)||jr(e)||!Ct(e)||(qo(e)>1&&(e.set=e.add=e.clear=e.delete=ek),Object.freeze(e),t&&Object.entries(e).forEach(([r,n])=>fa(n,!0))),e}function ek(){nt(2)}function Ko(e){return Object.isFrozen(e)}var ua={};function gr(e){let t=ua[e];return t||nt(0,e),t}function tk(e,t){ua[e]||(ua[e]=t)}var wn;function Bo(){return wn}function rk(e,t){return{drafts_:[],parent_:e,immer_:t,canAutoFreeze_:!0,unfinalizedDrafts_:0}}function xd(e,t){t&&(gr("Patches"),e.patches_=[],e.inversePatches_=[],e.patchListener_=t)}function da(e){ma(e),e.drafts_.forEach(nk),e.drafts_=null}function ma(e){e===wn&&(wn=e.parent_)}function bd(e){return wn=rk(wn,e)}function nk(e){let t=e[te];t.type_===0||t.type_===1?t.revoke_():t.revoked_=!0}function yd(e,t){t.unfinalizedDrafts_=t.drafts_.length;let r=t.drafts_[0];return e!==void 0&&e!==r?(r[te].modified_&&(da(t),nt(4)),Ct(e)&&(e=Ho(t,e),t.parent_||zo(t,e)),t.patches_&&gr("Patches").generateReplacementPatches_(r[te].base_,e,t.patches_,t.inversePatches_)):e=Ho(t,r,[]),da(t),t.patches_&&t.patchListener_(t.patches_,t.inversePatches_),e!==wd?e:void 0}function Ho(e,t,r){if(Ko(t))return t;let n=t[te];if(!n)return vn(t,(o,s)=>vd(e,n,t,o,s,r)),t;if(n.scope_!==e)return t;if(!n.modified_)return zo(e,n.base_,!0),n.base_;if(!n.finalized_){n.finalized_=!0,n.scope_.unfinalizedDrafts_--;let o=n.copy_,s=o,i=!1;n.type_===3&&(s=new Set(o),o.clear(),i=!0),vn(s,(a,c)=>vd(e,n,o,a,c,r,i)),zo(e,o,!1),r&&e.patches_&&gr("Patches").generatePatches_(n,r,e.patches_,e.inversePatches_)}return n.copy_}function vd(e,t,r,n,o,s,i){if(jr(o)){let a=s&&t&&t.type_!==3&&!la(t.assigned_,n)?s.concat(n):void 0,c=Ho(e,o,a);if(Ed(r,n,c),jr(c))e.canAutoFreeze_=!1;else return}else i&&r.add(o);if(Ct(o)&&!Ko(o)){if(!e.immer_.autoFreeze_&&e.unfinalizedDrafts_<1)return;Ho(e,o),(!t||!t.scope_.parent_)&&typeof n!="symbol"&&Object.prototype.propertyIsEnumerable.call(r,n)&&zo(e,o)}}function zo(e,t,r=!1){!e.parent_&&e.immer_.autoFreeze_&&e.canAutoFreeze_&&fa(t,r)}function ok(e,t){let r=Array.isArray(e),n={type_:r?1:0,scope_:t?t.scope_:Bo(),modified_:!1,finalized_:!1,assigned_:{},parent_:t,base_:e,draft_:null,copy_:null,revoke_:null,isManual_:!1},o=n,s=ga;r&&(o=[n],s=kn);let{revoke:i,proxy:a}=Proxy.revocable(o,s);return n.draft_=a,n.revoke_=i,a}var ga={get(e,t){if(t===te)return e;let r=Re(e);if(!la(r,t))return sk(e,r,t);let n=r[t];return e.finalized_||!Ct(n)?n:n===aa(e.base_,t)?(ca(e),e.copy_[t]=En(n,e)):n},has(e,t){return t in Re(e)},ownKeys(e){return Reflect.ownKeys(Re(e))},set(e,t,r){let n=Td(Re(e),t);if(n?.set)return n.set.call(e.draft_,r),!0;if(!e.modified_){let o=aa(Re(e),t),s=o?.[te];if(s&&s.base_===r)return e.copy_[t]=r,e.assigned_[t]=!1,!0;if(Zw(r,o)&&(r!==void 0||la(e.base_,t)))return!0;ca(e),_t(e)}return e.copy_[t]===r&&(r!==void 0||t in e.copy_)||Number.isNaN(r)&&Number.isNaN(e.copy_[t])||(e.copy_[t]=r,e.assigned_[t]=!0),!0},deleteProperty(e,t){return aa(e.base_,t)!==void 0||t in e.base_?(e.assigned_[t]=!1,ca(e),_t(e)):delete e.assigned_[t],e.copy_&&delete e.copy_[t],!0},getOwnPropertyDescriptor(e,t){let r=Re(e),n=Reflect.getOwnPropertyDescriptor(r,t);return n&&{writable:!0,configurable:e.type_!==1||t!=="length",enumerable:n.enumerable,value:r[t]}},defineProperty(){nt(11)},getPrototypeOf(e){return $r(e.base_)},setPrototypeOf(){nt(12)}},kn={};vn(ga,(e,t)=>{kn[e]=function(){return arguments[0]=arguments[0][0],t.apply(this,arguments)}});kn.deleteProperty=function(e,t){return kn.set.call(this,e,t,void 0)};kn.set=function(e,t,r){return ga.set.call(this,e[0],t,r,e[0])};function aa(e,t){let r=e[te];return(r?Re(r):e)[t]}function sk(e,t,r){let n=Td(t,r);return n?"value"in n?n.value:n.get?.call(e.draft_):void 0}function Td(e,t){if(!(t in e))return;let r=$r(e);for(;r;){let n=Object.getOwnPropertyDescriptor(r,t);if(n)return n;r=$r(r)}}function _t(e){e.modified_||(e.modified_=!0,e.parent_&&_t(e.parent_))}function ca(e){e.copy_||(e.copy_=pa(e.base_,e.scope_.immer_.useStrictShallowCopy_))}var ik=class{constructor(e){this.autoFreeze_=!0,this.useStrictShallowCopy_=!1,this.produce=(t,r,n)=>{if(typeof t=="function"&&typeof r!="function"){let s=r;r=t;let i=this;return function(a=s,...c){return i.produce(a,l=>r.call(this,l,...c))}}typeof r!="function"&&nt(6),n!==void 0&&typeof n!="function"&&nt(7);let o;if(Ct(t)){let s=bd(this),i=En(t,void 0),a=!0;try{o=r(i),a=!1}finally{a?da(s):ma(s)}return xd(s,n),yd(o,s)}else if(!t||typeof t!="object"){if(o=r(t),o===void 0&&(o=t),o===wd&&(o=void 0),this.autoFreeze_&&fa(o,!0),n){let s=[],i=[];gr("Patches").generateReplacementPatches_(t,o,s,i),n(s,i)}return o}else nt(1,t)},this.produceWithPatches=(t,r)=>{if(typeof t=="function")return(s,...i)=>this.produceWithPatches(s,a=>t(a,...i));let n,o;return[this.produce(t,r,(s,i)=>{n=s,o=i}),n,o]},typeof e?.autoFreeze=="boolean"&&this.setAutoFreeze(e.autoFreeze),typeof e?.useStrictShallowCopy=="boolean"&&this.setUseStrictShallowCopy(e.useStrictShallowCopy)}createDraft(e){Ct(e)||nt(8),jr(e)&&(e=ak(e));let t=bd(this),r=En(e,void 0);return r[te].isManual_=!0,ma(t),r}finishDraft(e,t){let r=e&&e[te];(!r||!r.isManual_)&&nt(9);let{scope_:n}=r;return xd(n,t),yd(void 0,n)}setAutoFreeze(e){this.autoFreeze_=e}setUseStrictShallowCopy(e){this.useStrictShallowCopy_=e}applyPatches(e,t){let r;for(r=t.length-1;r>=0;r--){let o=t[r];if(o.path.length===0&&o.op==="replace"){e=o.value;break}}r>-1&&(t=t.slice(r+1));let n=gr("Patches").applyPatches_;return jr(e)?n(e,t):this.produce(e,o=>n(o,t))}};function En(e,t){let r=Wo(e)?gr("MapSet").proxyMap_(e,t):Go(e)?gr("MapSet").proxySet_(e,t):ok(e,t);return(t?t.scope_:Bo()).drafts_.push(r),r}function ak(e){return jr(e)||nt(10,e),Ld(e)}function Ld(e){if(!Ct(e)||Ko(e))return e;let t=e[te],r;if(t){if(!t.modified_)return t.base_;t.finalized_=!0,r=pa(e,t.scope_.immer_.useStrictShallowCopy_)}else r=pa(e,!0);return vn(r,(n,o)=>{Ed(r,n,Ld(o))}),t&&(t.finalized_=!1),r}function Sd(){class e extends Map{constructor(c,l){super(),this[te]={type_:2,parent_:l,scope_:l?l.scope_:Bo(),modified_:!1,finalized_:!1,copy_:void 0,assigned_:void 0,base_:c,draft_:this,isManual_:!1,revoked_:!1}}get size(){return Re(this[te]).size}has(c){return Re(this[te]).has(c)}set(c,l){let p=this[te];return i(p),(!Re(p).has(c)||Re(p).get(c)!==l)&&(r(p),_t(p),p.assigned_.set(c,!0),p.copy_.set(c,l),p.assigned_.set(c,!0)),this}delete(c){if(!this.has(c))return!1;let l=this[te];return i(l),r(l),_t(l),l.base_.has(c)?l.assigned_.set(c,!1):l.assigned_.delete(c),l.copy_.delete(c),!0}clear(){let c=this[te];i(c),Re(c).size&&(r(c),_t(c),c.assigned_=new Map,vn(c.base_,l=>{c.assigned_.set(l,!1)}),c.copy_.clear())}forEach(c,l){let p=this[te];Re(p).forEach((u,f,d)=>{c.call(l,this.get(f),f,this)})}get(c){let l=this[te];i(l);let p=Re(l).get(c);if(l.finalized_||!Ct(p)||p!==l.base_.get(c))return p;let u=En(p,l);return r(l),l.copy_.set(c,u),u}keys(){return Re(this[te]).keys()}values(){let c=this.keys();return{[Symbol.iterator]:()=>this.values(),next:()=>{let l=c.next();return l.done?l:{done:!1,value:this.get(l.value)}}}}entries(){let c=this.keys();return{[Symbol.iterator]:()=>this.entries(),next:()=>{let l=c.next();if(l.done)return l;let p=this.get(l.value);return{done:!1,value:[l.value,p]}}}}[Symbol.iterator](){return this.entries()}}function t(a,c){return new e(a,c)}function r(a){a.copy_||(a.assigned_=new Map,a.copy_=new Map(a.base_))}class n extends Set{constructor(c,l){super(),this[te]={type_:3,parent_:l,scope_:l?l.scope_:Bo(),modified_:!1,finalized_:!1,copy_:void 0,base_:c,draft_:this,drafts_:new Map,revoked_:!1,isManual_:!1}}get size(){return Re(this[te]).size}has(c){let l=this[te];return i(l),l.copy_?!!(l.copy_.has(c)||l.drafts_.has(c)&&l.copy_.has(l.drafts_.get(c))):l.base_.has(c)}add(c){let l=this[te];return i(l),this.has(c)||(s(l),_t(l),l.copy_.add(c)),this}delete(c){if(!this.has(c))return!1;let l=this[te];return i(l),s(l),_t(l),l.copy_.delete(c)||(l.drafts_.has(c)?l.copy_.delete(l.drafts_.get(c)):!1)}clear(){let c=this[te];i(c),Re(c).size&&(s(c),_t(c),c.copy_.clear())}values(){let c=this[te];return i(c),s(c),c.copy_.values()}entries(){let c=this[te];return i(c),s(c),c.copy_.entries()}keys(){return this.values()}[Symbol.iterator](){return this.values()}forEach(c,l){let p=this.values(),u=p.next();for(;!u.done;)c.call(l,u.value,u.value,this),u=p.next()}}function o(a,c){return new n(a,c)}function s(a){a.copy_||(a.copy_=new Set,a.base_.forEach(c=>{if(Ct(c)){let l=En(c,a);a.drafts_.set(c,l),a.copy_.add(l)}else a.copy_.add(c)}))}function i(a){a.revoked_&&nt(3,JSON.stringify(Re(a)))}tk("MapSet",{proxyMap_:t,proxySet_:o})}var Je=new ik,Xo=Je.produce,N3=Je.produceWithPatches.bind(Je),O3=Je.setAutoFreeze.bind(Je),$3=Je.setUseStrictShallowCopy.bind(Je),j3=Je.applyPatches.bind(Je),A3=Je.createDraft.bind(Je),U3=Je.finishDraft.bind(Je);Sd();var Pd=e=>{let t=0;for(let r of e)if(r&&(r.exists||(t+=(r.linked?.length??0)+(r.projectLinked?.length??0),t>1)))return!1;return t<2},Rd=(e,t)=>Xo(e,r=>{if(!r)return t;if(r.updated<t.updated){let{lines:n,linked:o,projectLinked:s,...i}=t;Object.assign(r,i),ha(t)||(r.lines=n),o&&(r.linked??=o),s&&(r.projectLinked??=s);return}ha(r)&&!ha(t)&&(r.lines=t.lines),t.linked&&(t.isLinkedCorrect||!r.isLinkedCorrect&&(r.linked?.length??0)<=t.linked.length)&&(r.linked=t.linked),t.projectLinked&&(r.projectLinked=t.projectLinked)}),ha=e=>e.lines[0].id==="dummy";var _d=(e,t)=>{let r=new Map,n=X(t.title);for(let c of t.links){let l=ck(e,c);l.linked=[n],r.set(re(e,c),l)}let o=re(e,n),s=t.projectLinks.map(c=>{let l=Fo(c);return re(l.project,l.titleLc)}),i={...Yo(e,t),linked:[],projectLinked:[]};r.set(o,i);let a=t.links.map(c=>X(c));for(let c of t.relatedPages.links1hop){c.linksLc.includes(n)&&i.linked.push(c.titleLc);for(let f of c.linksLc.filter(d=>a.includes(d))){let d=re(e,f),g=r.get(d);if(!g)throw Error(storage already must have "${d}");if(!g.linked){g.linked=[c.titleLc];continue}g.linked.push(c.titleLc)}let l=re(e,c.titleLc),p=Yo(e,c),u=r.get(l)?.linked;u&&(p.linked=u),r.set(l,p)}for(let c of t.relatedPages.projectLinks1hop){let l=re(c.projectName,c.titleLc);s.includes(l)||i.projectLinked.push(l);let p=Yo(c.projectName,c),u=r.get(l)?.projectLinked;u&&(p.projectLinked=u),r.set(l,p)}i.isLinkedCorrect=!0;for(let c of t.relatedPages.links2hop){for(let f of c.linksLc){let d=re(e,f),g=r.get(d);if(!g)throw Error(storage already must have "${d}");if(!g.linked){g.linked=[c.titleLc];continue}g.linked.push(c.titleLc)}let l=re(e,c.titleLc),p=Yo(e,c),u=r.get(l)?.linked;u&&(p.linked=u),r.set(l,p)}return r},Yo=(e,t)=>({project:e,titleLc:"titleLc"in t?t.titleLc:X(t.title),exists:"persistent"in t?t.persistent:!0,descriptions:t.descriptions,image:t.image,lines:"lines"in t?t.lines:[t.title,...t.descriptions].map(r=>({text:r,id:"dummy",userId:"dummy",updated:t.updated,created:t.updated})),updated:t.updated,isLinkedCorrect:!1}),ck=(e,t)=>({project:e,titleLc:X(t),exists:!1,descriptions:[],image:null,lines:[{text:t,id:"dummy",userId:"dummy",updated:0,created:0}],updated:0,isLinkedCorrect:!1});var Vo=zt("ScrapBubble:bubble.ts"),xa=new Map,Jo=new Set,ba=Ao();function*Md(e){for(let t of e)yield xa.get(t)}var Dd=(e,t)=>ba.on(e,t),Id=(e,t)=>ba.off(e,t),Nd=async(e,t,r,n)=>{let o=[];for(let s of[...t].reverse()){let i=re(s,e);Jo.has(i)||o.push(lk(s,e,r,n))}await Promise.all(o)},Cd=0,lk=async(e,t,r,n)=>{let o=re(e,t);if(Jo.has(o))return;Jo.add(o);let s=Cd++,i=${s} Check update ${o};Vo.time(i);try{let a=qe.toRequest(e,t,{followRename:!0,projects:[...r]});for await(let[c,l]of jo(a,{ignoreSearch:!0,saveFailedResponse:!0})){Vo.debug(${s}${c} ${o});let p=await qe.fromResponse(l);if(p.ok){let u=_d(e,p.value);for(let[f,d]of u){let g=xa.get(f),h=Rd(g,d);h&&g!==h&&(xa.set(f,h),ba.dispatch(f,d))}}if(n?.ignoreFetch===!0||c==="cache"&&!od(l,n?.maxAge??60))break}}catch(a){Vo.error(a)}finally{Jo.delete(o),Vo.timeEnd(i),Cd--}};var Od=zt("ScrapBubble:useBubbleData.ts"),Ar=e=>{let[t,r]=U(ya(e));return G(()=>{r(ya(e));let n,o=()=>{clearTimeout(n),n=setTimeout(()=>{Od.debug(Update ${e.length} pages),r(ya(e))},10)};return e.forEach(s=>Dd(s,o)),()=>e.forEach(s=>Id(s,o))},e),t},ya=e=>{let t=[...Md(e)].flatMap(r=>r?[r]:[]);return Od.debug(Required: ${e.length} pages, ${t.length} found,t),t};var $d=({source:e,linked:t,externalLinked:r,projectsForSort:n,...o})=>{let s=N(()=>[...t.keys(),...r.keys()],[t,r]),i=Ar(s),a=N(()=>[...n],[n]),c=N(()=>{let p=(u,f)=>{let d=a.indexOf(u.project),g=a.indexOf(f.project);return d===g?f.updated-u.updated:d<0?1:g<0?-1:d-g};return[...i].sort(p)},[i,a]),l=N(()=>({bottom:${e.position.bottom}px,maxWidth:${e.position.maxWidth}px,..."left"in e.position?{left:${e.position.left}px}:{right:${e.position.right}px}}),[e.position]);return m("ul",{className:"card-bubble",style:l,onClick:o.onClick},c.map(({project:p,titleLc:u,lines:[{text:f}],descriptions:d,image:g})=>{let h=re(p,u),x=t.get(h)??r.get(h);return m("li",{key:h},m(fd,{project:p,title:f,linkTo:x,descriptions:d,thumbnail:g??"",...o}))}))};var Ur=e=>{if(e.pathType==="root"){let[,t="",r=""]=e.href.match(/\/([\w\-]+)(?:\/?|\/(.*))$/)??["","",""];if(t==="")throw SyntaxError(Failed to get a project name from "${e.href}");let[,n]=r?.match?.(/#([a-f\d]{24,32})$/)??["",""];return r===""?{project:t}:n===""?{project:t,title:r}:{project:t,title:r.slice(0,-1-n.length),hash:n}}else{let[,t]=e.href.match(/#([a-f\d]{24,32})$/)??["",""];return t===""?{title:e.href}:{title:e.href.slice(0,-1-t.length),hash:t}}};var va=(e,t)=>t.some(r=>{let n=!e.project;switch(r.type){case"hashTag":return n&&X(r.href)===e.titleLc;case"link":{if(r.pathType=="absolute"||r.pathType==="relative"!==n)return!1;let{project:o,title:s=""}=Ur({pathType:r.pathType,href:r.href});return n?!o&&X(s)===e.titleLc:o===e.project&&X(s)===e.titleLc}case"quote":case"strong":case"decoration":return va(e,r.nodes)}});var qt=xi({title:"",project:"",whiteList:new Set,bubble:()=>{},hide:()=>{},delay:0,prefetch:()=>{}}),Ad=({lines:e,project:t,title:r,whiteList:n,noIndent:o,hash:s,linkTo:i,...a})=>{let c=N(()=>e.flatMap(d=>typeof d=="string"?[]:[d.id]),[e]),l=N(()=>{let d=0;return tt(e.map(g=>typeof g=="string"?g:g.text).join( ),{hasTitle:!0}).map(g=>{switch(g.type){case"title":case"line":return{...g,id:c[d++]};case"codeBlock":{let h=d;return d+=g.content.split(
).length+1,{...g,ids:c.slice(h,d)}}case"table":{let h=d;return d+=g.cells.length+1,{...g,ids:c.slice(h,d)}}}})},[e,c]),p=N(()=>{if(s&&c.includes(s))return s;if(i)return l.find(d=>d.type!=="line"?!1:va(i,d.nodes))?.id},[l,c,s,i?.project,i?.titleLc]),u=ve(null);G(()=>{if(!p)return;let d=u.current?.querySelector(data-id="${p}"),g=globalThis.scrollY;d?.scrollIntoView?.({block:"center"}),globalThis.scroll(0,g)},[p]);let f=fr(t);return m("div",{className:"lines","data-theme":f,ref:u},m(qt.Provider,{value:{project:t,title:r,whiteList:n,...a}},l.map(d=>{switch(d.type){case"title":return m(W,null,m(Br,{key:d.id,index:d.id,indent:0,noIndent:o,permalink:d.id===p},m("a",{className:"page-link",type:"link",href:/${t}/${J(d.text)},rel:t===scrapbox.Project.name?"route":"noopener noreferrer",target:t===scrapbox.Project.name?"":"_blank"},d.text)),m("hr",null));case"codeBlock":return m(pk,{key:d.ids[0],block:d,noIndent:o,ids:d.ids,scrollId:p});case"table":return m(uk,{key:d.ids[0],block:d,noIndent:o,ids:d.ids,scrollId:p});case"line":return m(Br,{key:d.id,index:d.id,indent:d.indent,noIndent:o,permalink:d.id===p},d.nodes.length>0?d.nodes.map(g=>m(Fr,{node:g})):m("br",null))}})))},Br=({index:e,indent:t,noIndent:r,children:n,permalink:o})=>m("div",{className:line${o?" permalink":""},"data-id":e,"data-indent":t,style:{"margin-left":r?"":${1*t}em}},n),pk=({block:{fileName:e,content:t,indent:r},ids:n,scrollId:o})=>{let{project:s,title:i}=At(qt),[a,c]=U(""),l=_(async p=>{p.preventDefault(),p.stopPropagation();try{await navigator.clipboard.writeText(t),c("Copied"),await ae(1e3),c("")}catch(u){alert(Failed to copy the code block Error:${u.message})}},[t]);return m(W,null,m(Br,{index:n[0],indent:r,permalink:n[0]===o},m("span",{className:"code-block"},m("span",{className:"code-block-start"},m("a",{href:/api/code/${s}/${J(i)}/${e},target:"_blank"},e)),m("span",{className:"copy",title:"Copy",onClick:l},a))),m(W,null,t.split(
).map((p,u)=>m(Br,{index:n[u+1],indent:r,permalink:n[u+1]===o},m("code",{className:"code-block"},p)))))},uk=({block:{fileName:e,cells:t,indent:r},ids:n,scrollId:o})=>{let{project:s,title:i}=At(qt);return m(W,null,m(Br,{index:n[0],indent:r,permalink:n[0]===o},m("span",{className:"table-block"},m("span",{className:"table-block-start"},m("a",{href:/api/table/${s}/${J(i)}/${e}.csv,target:"_blank"},e)))),m(W,null,t.map((a,c)=>m(Br,{index:n[c+1],indent:r,permalink:n[c+1]===o},m("span",{className:"table-block table-block-row"},a.map((l,p)=>m("span",{className:cell col-${p}},l.map(u=>m(Fr,{node:u})))))))))},Fr=({node:e})=>{switch(e.type){case"code":return m("code",{className:"code"},e.text);case"formula":return m(dk,{node:e});case"commandLine":return m(fk,{node:e});case"helpfeel":return m("code",{className:"helpfeel"},m("span",{className:"prefix"},"?")," ",m("span",{className:"entry"},e.text));case"quote":return m("blockquote",{className:"quote"},e.nodes.map(t=>m(Fr,{node:t})));case"strong":return m("strong",null,e.nodes.map(t=>m(Fr,{node:t})));case"decoration":return m(mk,{node:e});case"plain":case"blank":return m(W,null,e.text);case"hashTag":return m(xk,{node:e});case"link":return m(bk,{node:e});case"googleMap":return m(gk,{node:e});case"icon":return m(jd,{node:e});case"strongIcon":return m(jd,{node:e,strong:!0});case"image":return m(hk,{node:e});case"strongImage":return m("img",{className:"image strong-image",src:e.src});case"numberList":return m(W,null,${e.number}. ,e.nodes.map(t=>m(Fr,{node:t})))}},dk=({node:{formula:e}})=>{let{ref:t,error:r,setFormula:n}=yn("");return n(e),m("span",{className:formula ${r?" error":""}},r?m("code",null,e):m("span",{className:"katex-display",ref:t}))},mk=({node:{decos:e,nodes:t}})=>m("span",{className:e.map(r=>deco-${r}).join(" ")},t.map(r=>m(Fr,{node:r}))),fk=({node:e})=>{let[t,r]=U(""),n=_(async o=>{o.preventDefault(),o.stopPropagation();try{await navigator.clipboard.writeText(e.text),r("Copied"),await ae(1e3),r("")}catch(s){alert(Failed to copy the code block
Error:${s.message})}},[e.text]);return m(W,null,m("code",{className:"cli"},m("span",{className:"prefix"},e.symbol)," ",m("span",{className:"command"},e.text)),m("span",{className:"tool-buttons"},m("span",{title:"Copy",className:"copy",onClick:n},t)))},gk=({node:{place:e,latitude:t,longitude:r,zoom:n}})=>m("span",{className:"pointing-device-map"},m("a",{href:https://www.google.com/maps/search/${e}/@${t},${r},${n}z,rel:"noopner noreferrer",target:"_blank"},m("img",{className:"google-map",src:/api/google-map/static-map?center=${t}%2C${r}&markers=${e}&zoom=${n}&_csrf=${globalThis._csrf}}))),jd=({node:{pathType:e,path:t},strong:r})=>{let{project:n}=At(qt),[o,s]=e==="relative"?[n,t]:t.match(/\/([\w\-]+)\/(.+)$/)?.slice?.(1)??[n,t],i=J(s);return m("a",{href:/${o}/${i},rel:o===scrapbox.Project.name?"route":"noopener noreferrer",target:o===scrapbox.Project.name?"":"_blank"},m("img",{className:r?"icon strong-icon":"icon",alt:s,src:/api/pages/${o}/${i}/icon},s))},hk=({node:{link:e,src:t}})=>{let r=e||(/https:\/\/gyazo\.com\/[^\/]+\/thumb\/1000/.test(t)?t.slice(0,-11):t);return m("a",{className:e?"link":"",href:r,rel:"noopner noreferrer",target:"_blank"},m("img",{className:"image",src:t}))},xk=({node:{href:e}})=>{let{project:t}=At(qt),r=Ud(t,e),n=Fd(t,e,"hashtag");return m("a",{href:/${t}/${J(e)},className:page-link${r?" empty-page-link":""},type:"hashTag",rel:t===scrapbox.Project.name?"route":"noopener noreferrer",target:t===scrapbox.Project.name?"":"_blank",onPointerEnter:n},"#",e)},bk=({node:{pathType:e,...t}})=>{switch(e){case"relative":case"root":return m(yk,{pathType:e,href:t.href});case"absolute":{let r=Gp({pathType:e,...t});switch(r.type){case"youtube":return m(vk,{...r});case"vimeo":return m(wk,{...r});case"spotify":return m(kk,{...r});case"anchor-fm":return m(Ek,{...r});case"audio":return m(Tk,{...r});case"video":return m(Sk,{...r});case"absoluteLink":return m("a",{className:"link",href:r.href,rel:"noopener noreferrer",target:"_blank"},r.content||r.href)}}}},yk=({pathType:e,href:t})=>{let{project:r}=At(qt),{project:n=r,title:o,hash:s=""}=Ur({pathType:e,href:t}),i=Fd(n,o,"link",s),a=Ud(n,o??"");return m("a",{className:page-link${o!==void 0&&a?" empty-page-link":""},type:"link",href:/${n}${o===void 0?"":/${J(o)}${s===""?"":#${s}}},rel:n===scrapbox.Project.name?"route":"noopener noreferrer",target:n===scrapbox.Project.name?"":"_blank",onPointerEnter:i},t)},vk=e=>{e.params.append("autoplay","0");let t=e.pathType==="list"?https://www.youtube.com/embed/?${e.params.toString()}&list=${e.listId}:https://www.youtube.com/embed/${e.videoId}?${e.params.toString()};return m("div",{className:"iframe-video-player"},m("iframe",{src:t,allowFullScreen:!0,type:"text/html"}))},wk=({videoId:e})=>m("div",{className:"iframe-video-player"},m("iframe",{src:https://player.vimeo.com/video/${e},allowFullScreen:!0,type:"text/html"})),kk=e=>m("div",{className:"iframe-video-player"},m("iframe",{className:spotify type-${e.pathType},src:https://open.spotify.com/embed/${e.pathType}/${e.videoId},allowFullScreen:!0,type:"text/html",scrolling:"no"})),Ek=e=>m("div",{className:"iframe-video-player"},m("iframe",{className:"anchor-fm",src:e.href.replace("/episodes/","/embed/episodes/"),allowFullScreen:!0,type:"text/html",scrolling:"no"})),Tk=e=>e.content===""?m("audio",{className:"audio-player",preload:"none",controls:!0,src:e.href}):m(Lk,{...e}),Lk=({href:e,content:t})=>{let r=ve(null),n=_(()=>{r.current?.paused?(r.current.currentTime=0,r.current.play()):r.current?.pause?.()},[]);return m("span",{className:"audio-link"},m("a",{href:e,rel:"noopener noreferrer",target:"_blank"},t),m("span",{className:"play",onClick:n},"♬"),m("audio",{preload:"none",src:e,ref:r}))},Sk=({href:e})=>m("div",{className:"video-player"},m("video",{class:"video",style:{display:"inline-block"},controls:!0,loop:!0,src:e})),Ud=(e,t)=>{let{whiteList:r}=At(qt),n=N(()=>(r.has(e)?[...r]:[e,...r]).map(s=>re(s,t)),[r,e]),o=Ar(n);return N(()=>Pd(o),o)},Fd=(e,t,r,n)=>{let{delay:o,bubble:s,prefetch:i}=At(qt);return _(async({currentTarget:a})=>{t&&(i(e,t),await Nr(a,o)&&s({project:e,title:t,hash:n,type:r,position:Or(a)}))},[e,t,n,r,o,i,s])};var Bd=({pages:e,onClick:t,source:r,whiteList:n,...o})=>{let[s,i]=U(re(e[0].project,e[0].titleLc)),a=N(()=>({top:${r.position.top}px,maxWidth:${r.position.maxWidth}px,..."left"in r.position?{left:${r.position.left}px}:{right:${r.position.right}px}}),[r.position]);return m("div",{className:"text-bubble",style:a,onClick:t},e.length>1&&m("div",{role:"tablist"},e.map(c=>m(Pk,{key:re(c.project,c.titleLc),project:c.project,titleLc:c.titleLc,selected:s===re(c.project,c.titleLc),tabSelector:i}))),e.map(c=>m(Rk,{key:re(c.project,c.titleLc),selected:s===re(c.project,c.titleLc),...c,title:c.lines[0].text,hash:r.hash,linkTo:r.linkTo,whiteList:n,...o})))},Pk=({project:e,titleLc:t,tabSelector:r,selected:n})=>{let o=_(()=>r(re(e,t)),[e,t]),s=fr(e);return m("button",{role:"tab","aria-selected":n,"data-theme":s,tabIndex:-1,onClick:o},e)},Rk=({selected:e,...t})=>{let r=fr(t.project);return m("div",{role:"tabpanel","data-theme":r,hidden:!e},m(Ad,{...t}))};var Hd=zt("ScrapBubble:Bubble.tsx"),zd=({source:e,parentTitles:t,whiteList:r,...n})=>{let o=N(()=>r.has(e.project)?new Set([e.project,...r]):new Set([e.project]),[r,e.project]),[s,i,a]=Ck(e,o,r,t);return m(W,null,_k(a)&&m(Bd,{pages:a,source:e,whiteList:r,onClick:n.hide,...n}),m($d,{linked:s,externalLinked:i,onClick:n.hide,source:e,projectsForSort:o,...n}))},_k=e=>e.length>0,Ck=(e,t,r,n)=>{let[[o,s,i],a]=U([new Map,new Map,[]]),c=N(()=>{let u=[...t].map(f=>re(f,e.title));return Hd.debug("projects",u),u},[t,e.title]),l=Ar(c),p=N(()=>n.map(u=>X(u)),[n]);return Hl(()=>{let u=new Map,f=new Map,d=[];for(let g of l){let h={project:g.project,titleLc:g.titleLc};for(let v of g.projectLinked??[]){let{project:L,titleLc:S}=Fo(v);p.includes(S)&&r.has(L)||f.has(v)||f.set(v,h)}if(!r.has(g.project))continue;let x={titleLc:g.titleLc};for(let v of g.linked??[]){if(p.includes(v))continue;let L=re(g.project,v);u.has(L)||u.set(L,x)}p.includes(g.titleLc)||g.exists&&d.push(g)}a(Xo(g=>{Hd.debug(depth: ${p.length}, bubbled from ${re(e.project,e.title)}, bubbles,,l,"before",g[0],"internal cards,",u,"external cards",f);for(let h of g[0].keys())u.has(h)||g[0].delete(h);for(let[h,x]of u)g[0].set(h,x);for(let h of g[1].keys())f.has(h)||g[1].delete(h);for(let[h,x]of f)g[1].set(h,x);g[2]=d}))},[l,r,p]),[o,s,i]};var qd=(e,t)=>{if(e instanceof URL)return e;try{return new URL(e)}catch(r){if(!(r instanceof TypeError))throw r;if(!t||!/^\.\/|^\.\.\/|^\//.test(e))return e;try{return new URL(e,t)}catch(n){if(!(n instanceof TypeError))throw n;return e}}};var Wd=e=>{let t=N(()=>qd(e.style,import.meta.url),[e.style]);return m(W,null,t!==""&&(t instanceof URL?m("link",{rel:"stylesheet",href:t.href}):m("style",null,t)))};var Gd=String.raw*{box-sizing:border-box}a{background-color:transparent;text-decoration:none;cursor:pointer}img{display:inline-block;max-width:100%;max-height:100px}code{font-family:var(--code-text-font, Menlo, Monaco, Consolas, "Courier New", monospace);font-size:90%;color:var(--code-color, #342d9c);background-color:var(--code-bg, rgba(0,0,0,.04));padding:0;white-space:pre-wrap;word-wrap:break-word}blockquote{background-color:var(--quote-bg-color, rgba(0,0,0,.05));display:block;border-left:solid 4px #a0a0a0;padding-left:4px;margin:0}strong{font-weight:700}iframe{display:inline-block;margin:3px 0;vertical-align:middle;max-width:100%;width:640px;height:360px;border:0}audio{display:inline-block;vertical-align:middle;white-space:initial;max-width:100%}.formula{margin:auto 6px}.formula.error code{color:#fd7373}.katex-display{display:inline-block!important;margin:0!important;text-align:inherit!important}.error .katex-display{display:none}.cli{border-radius:4px}.cli .prefix{color:#9c6248}.helpfeel{background-color:#fbebdd;border-radius:4px;padding:3px!important}.helpfeel .prefix{color:#f17c00}.helpfeel .entry{color:#cc5020}.code-block{display:block;line-height:1.7em;background-color:var(--code-bg, rgba(0,0,0,.04))}.code-block-start{font-family:Menlo,Monaco,Consolas,Courier New,monospace;color:#342d9c;background-color:#ffcfc6;font-size:.9em;padding:1px 2px}.code-block-start a{color:#342d9c;text-decoration:underline}code.code-block,.table-block.table-block-row{padding-left:1em}.copy{font-family:"Font Awesome 5 Free";cursor:pointer}.table-block{white-space:nowrap}.table-block-start{padding:1px 2px;font-size:.9em;background-color:#ffcfc6}.table-block-start a{color:#342d9c;text-decoration:underline}.cell{margin:0;padding:0 2px 0 8px;box-sizing:content-box;display:inline-block;white-space:pre}.cell:nth-child(odd){background-color:#0000000a}.cell:nth-child(2n){background-color:#0000000f}.strong-image{max-height:100%}.icon{height:11px;vertical-align:middle}.strong-icon{height:13.2px}.tool-button{margin-left:1em;cursor:pointer;font-size:.9em}.deco-\/{font-style:italic}.deco-\*-1{font-weight:700}.deco-\*-2{font-weight:700;font-size:1.2em}.deco-\*-3{font-weight:700;font-size:1.44em}.deco-\*-4{font-weight:700;font-size:1.73em}.deco-\*-5{font-weight:700;font-size:2.07em}.deco-\*-6{font-weight:700;font-size:2.49em}.deco-\*-7{font-weight:700;font-size:3em}.deco-\*-8{font-weight:700;font-size:3.58em}.deco-\*-9{font-weight:700;font-size:4.3em}.deco-\*-10{font-weight:700;font-size:5.16em}.deco--{text-decoration:line-through}.deco-_{text-decoration:underline}.page-link{color:var(--page-link-color, #5e8af7)}a.page-link:hover{color:var(--page-link-hover-color, #2d67f5)}.empty-page-link{color:var(--empty-page-link-color, #fd7373)}a.empty-page-link:hover{color:var(--empty-page-link-hover-color, #fd7373)}.link{color:var(--page-link-color, #5e8af7);text-decoration:underline}a.link:hover{color:var(--page-link-color-hover-color, #2d67f5)}.link img{padding-bottom:3px;border-style:none none solid;border-width:1.5px;border-color:#8fadf9}.permalink{background-color:var(--line-permalink-color, rgba(234,218,74,.75))}.status-bar{display:inline-block;position:absolute;background-color:var(--page-bg, #fefefe);cursor:default}.status-bar>*{border:1px solid var(--status-bar-border-color, #a9aaaf)}.status-bar.top-left{top:0;left:0}.status-bar.top-left>*{border-top:none;border-left:none}.status-bar.top-left :last-of-type{border-bottom-right-radius:3px}.status-bar.top-right{top:0;right:0}.status-bar.top-right>*{border-top:none;border-right:none}.status-bar.top-right :last-of-type{border-bottom-left-radius:3px}.status-bar.bottom-right{bottom:0;right:0}.status-bar.bottom-right>*{border-bottom:none;border-right:none}.status-bar.bottom-right :last-of-type{border-top-left-radius:3px}.status-bar.bottom-left{bottom:0;left:0}.status-bar.bottom-left>*{border-bottom:none;border-left:none}.status-bar.bottom-left :last-of-type{border-top-right-radius:3px}.text-bubble{font-size:11px;line-height:1.42857;user-select:text;position:absolute;color:var(--page-text-color, #4a4a4a);box-shadow:0 6px 12px #0000002d;display:flex;flex-direction:column;z-index:9000;&.no-scroll{overflow-y:hidden}data-theme=default-dark{--text-bubble-border-color: hsl(0, 0%, 39%)}data-theme=default-minimal{--text-bubble-border-color: hsl(0, 0%, 89%)}data-theme=paper-light{--text-bubble-border-color: hsl(53, 8%, 58%)}data-theme=paper-dark-dark{--text-bubble-border-color: hsl(203, 42%, 17%)}data-theme=blue{--text-bubble-border-color: hsl(227, 68%, 62%)}data-theme=purple{--text-bubble-border-color: hsl(267, 39%, 60%)}data-theme=green{--text-bubble-border-color: hsl(136, 29%, 50%)}data-theme=orange{--text-bubble-border-color: hsl(43, 71%, 51%)}data-theme=red{--text-bubble-border-color: hsl(4, 58%, 56%)}data-theme=spring{--text-bubble-border-color: hsl(72, 64%, 57%)}data-theme=kyoto{--text-bubble-border-color: hsl(331, 21%, 26%)}data-theme=newyork{--text-bubble-border-color: hsl(176, 29%, 67%)}role=tabpanel{padding:5px 0 5px 5px;border-radius:4px;background-color:var(--page-bg, #fefefe);max-height:80vh;overflow-y:auto}role=tabpanel,button{border:1px solid var(--text-bubble-border-color, hsl(221, 15%, 25%))}button{cursor:default;color:inherit;font-size:inherit;line-height:inherit;background-color:var(--page-bg, #fefefe);border-radius:4px 4px 0 0}buttonaria-selected=true{background-color:var(--text-bubble-border-color, hsl(221, 15%, 25%))}}.project-badge{text-decoration:none;color:var(--tool-text-color, #363c49)}.related-page-carddata-theme=default-dark{--card-title-bg: hsl(0, 0%, 39%)}.related-page-carddata-theme=default-minimal{--card-title-bg: hsl(0, 0%, 89%)}.related-page-carddata-theme=paper-light{--card-title-bg: hsl(53, 8%, 58%)}.related-page-carddata-theme=paper-dark-dark{--card-title-bg: hsl(203, 42%, 17%)}.related-page-carddata-theme=blue{--card-title-bg: hsl(227, 68%, 62%)}.related-page-carddata-theme=purple{--card-title-bg: hsl(267, 39%, 60%)}.text-bubbledata-theme=green{--card-title-bg: hsl(136, 29%, 50%)}.related-page-carddata-theme=orange{--card-title-bg: hsl(43, 71%, 51%)}.related-page-carddata-theme=red{--card-title-bg: hsl(4, 58%, 56%)}.related-page-carddata-theme=spring{--card-title-bg: hsl(72, 64%, 57%)}.related-page-carddata-theme=kyoto{--card-title-bg: hsl(331, 21%, 26%)}.related-page-carddata-theme=newyork{--card-title-bg: hsl(176, 29%, 67%)}.related-page-card{display:block;position:relative;height:inherit;width:inherit;overflow:hidden;text-overflow:ellipsis;font-family:Roboto,Helvetica,Arial,Hiragino Sans,sans-serif;background-color:var(--card-bg, #fff);color:var(--card-title-color, #555);word-break:break-word;text-decoration:none}.related-page-card:hover{box-shadow:var(--card-box-hover-shadow, 0 2px 0 rgba(0,0,0,.23))}.related-page-card:focus{outline:0;box-shadow:0 0 0 3px #66afe999;border-color:#66afe9;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s}.related-page-card.hover{opacity:0;position:absolute;width:100%;height:100%;top:0;left:0;background-color:var(--card-hover-bg, rgba(0,0,0,.05));mix-blend-mode:multiply;z-index:1;transition:background-color .1s}.related-page-card:hover .hover{opacity:1}.related-page-card:active .hover{opacity:1;background-color:var(--card-active-bg, rgba(0,0,0,.1))}.related-page-card .content{height:calc(100% - 5px);width:inherit;display:flex;flex-direction:column;overflow:hidden}.related-page-card .content .header{width:100%;color:#396bdd;text-overflow:ellipsis;border-top:var(--card-title-bg, #f2f2f3) solid 10px;padding:8px 10px}.related-page-card .content .header .title{font-size:11px;line-height:16px;font-weight:700;max-height:48px;color:var(--card-title-color, #363c49);margin:0;overflow:hidden;display:block;-webkit-line-clamp:3;-webkit-box-orient:vertical;text-overflow:ellipsis}.related-page-card .content .description{line-height:16px;padding:8px 10px 0;font-size:10px;white-space:pre-line;column-count:1;column-gap:2em;column-width:10em;height:inherit;color:var(--card-description-color, gray);flex-shrink:16;overflow:hidden}.related-page-card .content .thumbnail{display:block;width:100%;margin:0 auto;padding:0 5px}.related-page-card .content .description p{margin:0;display:block}.related-page-card .content .description code{font-family:Menlo,Monaco,Consolas,Courier New,monospace;font-size:90%;color:var(--code-color, #342d9c);background-color:var(--code-bg, rgba(0,0,0,.04));padding:0;white-space:pre-wrap;word-wrap:break-word}.related-page-card .content .description .icon{height:9px;vertical-align:middle}.related-page-card .content .description .page-link{background-color:transparent;text-decoration:none;cursor:pointer;color:var(--page-link-color, #5e8af7)}.card-bubble{background-color:var(--page-bg, #FFF);box-shadow:0 2px 2px #00000024,0 3px 1px -2px #0003,0 1px 5px #0000001f;position:absolute;max-width:80vw;box-sizing:content-box;z-index:9000;font-size:11px;line-height:1.42857;display:flex;padding:0;margin:0;list-style:none;overflow-x:auto;overflow-y:visible}.card-bubble li{display:block;position:relative;float:none;margin:5px;box-sizing:border-box;box-shadow:var(--card-box-shadow, 0 2px 0 rgba(0,0,0,.12));border-radius:2px;width:120px;height:120px} ;var Kd=()=>{let[e,t]=U([{bubble:n=>r(0,n),hide:()=>r(0)}]),r=_((n,o)=>{t(([s,...i])=>[s,...o?[...i.slice(0,n),o===i.at(n)?.source?i.at(n):{source:o,parentTitles:[scrapbox.Page.title??"",...i.slice(0,n).map(a=>a.source.title)],bubble:a=>r(n+1,a),hide:()=>r(n+1)}]:[...i.slice(0,n)]])},[]);return e};var wa=(e,t,r,n,o)=>{G(()=>(e.addEventListener(t,r,n),()=>e.removeEventListener(t,r,n)),[e,t,n,...o??[]])};var Xd=e=>e instanceof HTMLSpanElement&&e.matches(".line-title .text"),Qo=e=>e instanceof HTMLAnchorElement&&e.classList.contains("page-link");var ka="scrap-bubble",Yd=({delay:e,whiteList:t,watchList:r,style:n})=>{let[{bubble:o,hide:s},...i]=Kd(),a=_((c,l)=>Nd(l,t.has(c)?t:new Set([c]),r),[t,r]);return wa(document,"pointerenter",async c=>{let l=c.target;if(!Qo(l)&&!Xd(l))return;let{project:p=scrapbox.Project.name,title:u,hash:f=""}=Qo(l)?Ur({pathType:"root",href:${new URL(l.href).pathname}${new URL(l.href).hash}}):{project:scrapbox.Project.name,title:scrapbox.Page.title};if(p==="")return;let d=decodeURIComponent(u??"");a(p,d),await Nr(l,e)&&o({project:p,title:d,hash:f,position:Or(l),type:Mk(l)})},{capture:!0},[e,t,r]),wa(document,"click",c=>{c.target.dataset.userscriptName!==ka&&s()},{capture:!0},[s]),G(()=>(scrapbox.addListener("page:changed",s),()=>scrapbox.removeListener("page:changed",s)),[s]),m(W,null,m("link",{rel:"stylesheet",href:"https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.12.0/katex.min.css"}),m("style",null,Gd),m(Wd,{style:n}),i.map(c=>m(zd,{key:re(c.source.project,c.source.title),...c,whiteList:t,delay:e,prefetch:a})))},Mk=e=>Qo(e)?e.type==="link"?"link":"hashtag":"title";var Vd=async e=>{let{delay:t=500,whiteList:r=[],watchList:n=(await Ju()).slice(0,100),style:o="",debug:s=!1}=e??{};sd(s);let i=document.createElement("div");i.dataset.userscriptName=ka,document.body.append(i);let a=i.attachShadow({mode:"open"});ye(m(Yd,{delay:t,whiteList:new Set([scrapbox.Project.name,...r]),watchList:new Set(n),style:o}),a)};var Dk=["takker-memex","takker-private","takker","takker-books","villagepump"],Tn=[];switch(scrapbox.Project.name){case"hub":case"villagepump":case"verbalizing-community":Tn.push("villagepump","hub","verbalizing-community");break;case"programming-notes":case"customize":case"scrapboxlab":Tn.push("programming-notes","customize","scrapboxlab");break;case"sta":Tn.push("sta-taskmanagement");break;case"sta-taskmanagement":case"taskmanagement":Tn.push("sta-taskmanagement","taskmanagement");break}Vd({delay:/mobile/i.test(navigator.userAgent)?300:500,whiteList:[...Dk,...Tn],style:@import "/api/code/takker/kakeruの背景を白にするUserCSS/style.css";
@import "/api/code/takker/アイコン記法を画像記法っぽくするUserCSS/style2.css";});var Ea=e=>e.replaceAll(" ","_").toLowerCase(),Jd=e=>e.replaceAll("_"," "),hr=e=>[...e].map((t,r)=>t===" "?"_":!Ik.includes(t)||r===e.length-1&&Nk.includes(t)?encodeURIComponent(t):t).join(""),Ik='@$&+=:;",',Nk=':;",';var Qd=(e,t,r)=>{if(r.length===0)return[];let n=r.map(a=>a.text).join(
),o=tt(n,{hasTitle:!0}),s=new Map,i=0;for(let a of o)switch(a.type){case"title":case"line":{i++;break}case"table":i+=a.cells.length+1;break;case"codeBlock":{let c=s.get(a.fileName);s.set(a.fileName,{dir:c?.dir??https://scrapbox.io/api/code/${e}/${hr(t)},lang:c?.lang??a.fileName.split(".").pop()??"text",startIds:[...c?.startIds??[],r[i].id],lines:[...c?.lines??[],...a.content.split( )]}),i+=a.content.split(
).length+1;break}}return[...s.entries()].map(([a,c])=>({filename:a,...c}))};function La(e){let t=n=>{if(n===null)r.write8(0);else if(typeof n=="boolean")r.write8(1),r.write8(+n);else if(typeof n=="number")r.write8(2),r.write32(n|0);else if(typeof n=="string")r.write8(3),r.write(lt(n));else if(n instanceof Uint8Array)r.write8(4),r.write(n);else if(n instanceof Array){r.write8(5),r.write32(n.length);for(let o of n)t(o)}else{let o=Object.keys(n);r.write8(6),r.write32(o.length);for(let s of o)r.write(lt(s)),t(n[s])}},r=new Zo;return r.write32(0),r.write32(e.id<<1|+!e.isRequest),t(e.value),Ta(r.buf,r.len-4,0),r.buf.subarray(0,r.len)}function Zd(e){let t=()=>{switch(r.read8()){case 0:return null;case 1:return!!r.read8();case 2:return r.read32();case 3:return Hr(r.read());case 4:return r.read();case 5:{let i=r.read32(),a=[];for(let c=0;c<i;c++)a.push(t());return a}case 6:{let i=r.read32(),a={};for(let c=0;c<i;c++)a[Hr(r.read())]=t();return a}default:throw new Error("Invalid packet")}},r=new Zo(e),n=r.read32(),o=(n&1)===0;n>>>=1;let s=t();if(r.ptr!==e.length)throw new Error("Invalid packet");return{id:n,isRequest:o,value:s}}var Zo=class{constructor(t=new Uint8Array(1024)){this.buf=t}len=0;ptr=0;_write(t){if(this.len+t>this.buf.length){let r=new Uint8Array((this.len+t)*2);r.set(this.buf),this.buf=r}return this.len+=t,this.len-t}write8(t){let r=this._write(1);this.buf[r]=t}write32(t){let r=this._write(4);Ta(this.buf,t,r)}write(t){let r=this._write(4+t.length);Ta(this.buf,t.length,r),this.buf.set(t,r+4)}_read(t){if(this.ptr+t>this.buf.length)throw new Error("Invalid packet");return this.ptr+=t,this.ptr-t}read8(){return this.buf[this._read(1)]}read32(){return Sa(this.buf,this._read(4))}read(){let t=this.read32(),r=new Uint8Array(t),n=this._read(r.length);return r.set(this.buf.subarray(n,n+t)),r}},lt,Hr,em;if(typeof TextEncoder<"u"&&typeof TextDecoder<"u"){let e=new TextEncoder,t=new TextDecoder;lt=r=>e.encode(r),Hr=r=>t.decode(r),em='new TextEncoder().encode("")'}else throw new Error("No UTF-8 codec found");if(!(lt("")instanceof Uint8Array))throw new Error(Invariant violation: "${em} instanceof Uint8Array" is incorrectly false
This indicates that your JavaScript environment is broken. You cannot use
esbuild in this environment because esbuild relies on this invariant. This
is not a problem with esbuild. You need to fix your environment instead.
);function Sa(e,t){return e[t++]|e[t++]<<8|e[t++]<<16|e[t++]<<24}function Ta(e,t,r){e[r++]=t,e[r++]=t>>8,e[r++]=t>>16,e[r++]=t>>24}var Ln="0.21.5";var xe=JSON.stringify,tm="warning",rm="silent";function nm(e){if(_e(e,"target"),e.indexOf(",")>=0)throw new Error(Invalid target: ${e});return e}var rs=()=>null,de=e=>typeof e=="boolean"?null:"a boolean",F=e=>typeof e=="string"?null:"a string",ns=e=>e instanceof RegExp?null:"a RegExp object",br=e=>typeof e=="number"&&e===(e|0)?null:"an integer",im=e=>typeof e=="function"?null:"a function",me=e=>Array.isArray(e)?null:"an array",ot=e=>typeof e=="object"&&e!==null&&!Array.isArray(e)?null:"an object",$k=e=>typeof e=="object"&&e!==null?null:"an array or an object",jk=e=>e instanceof WebAssembly.Module?null:"a WebAssembly.Module",om=e=>typeof e=="object"&&!Array.isArray(e)?null:"an object or null",am=e=>typeof e=="string"||typeof e=="boolean"?null:"a string or a boolean",Ak=e=>typeof e=="string"||typeof e=="object"&&e!==null&&!Array.isArray(e)?null:"a string or an object",Uk=e=>typeof e=="string"||Array.isArray(e)?null:"a string or an array",cm=e=>typeof e=="string"||e instanceof Uint8Array?null:"a string or a Uint8Array",Fk=e=>typeof e=="string"||e instanceof URL?null:"a string or a URL";function y(e,t,r,n){let o=e[r];if(t[r+""]=!0,o===void 0)return;let s=n(o);if(s!==null)throw new Error(${xe(r)} must be ${s});return o}function be(e,t,r){for(let n in e)if(!(n in t))throw new Error(Invalid option ${r}: ${xe(n)})}function lm(e){let t=Object.create(null),r=y(e,t,"wasmModule",jk),n=y(e,t,"workerURL",Fk);return be(e,t,"in initialize() call"),{wasmModule:r,workerURL:n}}function pm(e){let t;if(e!==void 0){t=Object.create(null);for(let r in e){let n=e[r];if(typeof n=="string"||n===!1)t[r]=n;else throw new Error(Expected ${xe(r)} in mangle cache to map to either a string or false)}}return t}function os(e,t,r,n,o){let s=y(t,r,"color",de),i=y(t,r,"logLevel",F),a=y(t,r,"logLimit",br);s!==void 0?e.push(--color=${s}):n&&e.push("--color=true"),e.push(--log-level=${i||o}),e.push(--log-limit=${a||0})}function _e(e,t,r){if(typeof e!="string")throw new Error(Expected value for ${t}${r!==void 0?" "+xe(r):""} to be a string, got ${typeof e} instead);return e}function um(e,t,r){let n=y(t,r,"legalComments",F),o=y(t,r,"sourceRoot",F),s=y(t,r,"sourcesContent",de),i=y(t,r,"target",Uk),a=y(t,r,"format",F),c=y(t,r,"globalName",F),l=y(t,r,"mangleProps",ns),p=y(t,r,"reserveProps",ns),u=y(t,r,"mangleQuoted",de),f=y(t,r,"minify",de),d=y(t,r,"minifySyntax",de),g=y(t,r,"minifyWhitespace",de),h=y(t,r,"minifyIdentifiers",de),x=y(t,r,"lineLimit",br),v=y(t,r,"drop",me),L=y(t,r,"dropLabels",me),S=y(t,r,"charset",F),b=y(t,r,"treeShaking",de),E=y(t,r,"ignoreAnnotations",de),w=y(t,r,"jsx",F),O=y(t,r,"jsxFactory",F),$=y(t,r,"jsxFragment",F),B=y(t,r,"jsxImportSource",F),P=y(t,r,"jsxDev",de),T=y(t,r,"jsxSideEffects",de),k=y(t,r,"define",ot),R=y(t,r,"logOverride",ot),C=y(t,r,"supported",ot),D=y(t,r,"pure",me),j=y(t,r,"keepNames",de),M=y(t,r,"platform",F),H=y(t,r,"tsconfigRaw",Ak);if(n&&e.push(--legal-comments=${n}),o!==void 0&&e.push(--source-root=${o}),s!==void 0&&e.push(--sources-content=${s}),i&&(Array.isArray(i)?e.push(--target=${Array.from(i).map(nm).join(",")}):e.push(--target=${nm(i)})),a&&e.push(--format=${a}),c&&e.push(--global-name=${c}),M&&e.push(--platform=${M}),H&&e.push(--tsconfig-raw=${typeof H=="string"?H:JSON.stringify(H)}),f&&e.push("--minify"),d&&e.push("--minify-syntax"),g&&e.push("--minify-whitespace"),h&&e.push("--minify-identifiers"),x&&e.push(--line-limit=${x}),S&&e.push(--charset=${S}),b!==void 0&&e.push(--tree-shaking=${b}),E&&e.push("--ignore-annotations"),v)for(let A of v)e.push(--drop:${_e(A,"drop")});if(L&&e.push(--drop-labels=${Array.from(L).map(A=>_e(A,"dropLabels")).join(",")}),l&&e.push(--mangle-props=${l.source}),p&&e.push(--reserve-props=${p.source}),u!==void 0&&e.push(--mangle-quoted=${u}),w&&e.push(--jsx=${w}),O&&e.push(--jsx-factory=${O}),$&&e.push(--jsx-fragment=${$}),B&&e.push(--jsx-import-source=${B}),P&&e.push("--jsx-dev"),T&&e.push("--jsx-side-effects"),k)for(let A in k){if(A.indexOf("=")>=0)throw new Error(Invalid define: ${A});e.push(--define:${A}=${_e(kA,"define",A)})}if(R)for(let A in R){if(A.indexOf("=")>=0)throw new Error(Invalid log override: ${A});e.push(--log-override:${A}=${_e(RA,"log override",A)})}if(C)for(let A in C){if(A.indexOf("=")>=0)throw new Error(Invalid supported: ${A});let z=C[A];if(typeof z!="boolean")throw new Error(Expected value for supported ${xe(A)} to be a boolean, got ${typeof z} instead);e.push(--supported:${A}=${z})}if(D)for(let A of D)e.push(--pure:${_e(A,"pure")});j&&e.push("--keep-names")}function Bk(e,t,r,n,o){let s=[],i=[],a=Object.create(null),c=null,l=null;os(s,t,a,r,n),um(s,t,a);let p=y(t,a,"sourcemap",am),u=y(t,a,"bundle",de),f=y(t,a,"splitting",de),d=y(t,a,"preserveSymlinks",de),g=y(t,a,"metafile",de),h=y(t,a,"outfile",F),x=y(t,a,"outdir",F),v=y(t,a,"outbase",F),L=y(t,a,"tsconfig",F),S=y(t,a,"resolveExtensions",me),b=y(t,a,"nodePaths",me),E=y(t,a,"mainFields",me),w=y(t,a,"conditions",me),O=y(t,a,"external",me),$=y(t,a,"packages",F),B=y(t,a,"alias",ot),P=y(t,a,"loader",ot),T=y(t,a,"outExtension",ot),k=y(t,a,"publicPath",F),R=y(t,a,"entryNames",F),C=y(t,a,"chunkNames",F),D=y(t,a,"assetNames",F),j=y(t,a,"inject",me),M=y(t,a,"banner",ot),H=y(t,a,"footer",ot),A=y(t,a,"entryPoints",$k),z=y(t,a,"absWorkingDir",F),q=y(t,a,"stdin",ot),V=y(t,a,"write",de)??o,K=y(t,a,"allowOverwrite",de),Le=y(t,a,"mangleCache",ot);if(a.plugins=!0,be(t,a,in ${e}() call),p&&s.push(--sourcemap${p===!0?"":=${p}}),u&&s.push("--bundle"),K&&s.push("--allow-overwrite"),f&&s.push("--splitting"),d&&s.push("--preserve-symlinks"),g&&s.push("--metafile"),h&&s.push(--outfile=${h}),x&&s.push(--outdir=${x}),v&&s.push(--outbase=${v}),L&&s.push(--tsconfig=${L}),$&&s.push(--packages=${$}),S){let I=[];for(let ne of S){if(_e(ne,"resolve extension"),ne.indexOf(",")>=0)throw new Error(Invalid resolve extension: ${ne});I.push(ne)}s.push(--resolve-extensions=${I.join(",")})}if(k&&s.push(--public-path=${k}),R&&s.push(--entry-names=${R}),C&&s.push(--chunk-names=${C}),D&&s.push(--asset-names=${D}),E){let I=[];for(let ne of E){if(_e(ne,"main field"),ne.indexOf(",")>=0)throw new Error(Invalid main field: ${ne});I.push(ne)}s.push(--main-fields=${I.join(",")})}if(w){let I=[];for(let ne of w){if(_e(ne,"condition"),ne.indexOf(",")>=0)throw new Error(Invalid condition: ${ne});I.push(ne)}s.push(--conditions=${I.join(",")})}if(O)for(let I of O)s.push(--external:${_e(I,"external")});if(B)for(let I in B){if(I.indexOf("=")>=0)throw new Error(Invalid package name in alias: ${I});s.push(--alias:${I}=${_e(BI,"alias",I)})}if(M)for(let I in M){if(I.indexOf("=")>=0)throw new Error(Invalid banner file type: ${I});s.push(--banner:${I}=${_e(MI,"banner",I)})}if(H)for(let I in H){if(I.indexOf("=")>=0)throw new Error(Invalid footer file type: ${I});s.push(--footer:${I}=${_e(HI,"footer",I)})}if(j)for(let I of j)s.push(--inject:${_e(I,"inject")});if(P)for(let I in P){if(I.indexOf("=")>=0)throw new Error(Invalid loader extension: ${I});s.push(--loader:${I}=${_e(PI,"loader",I)})}if(T)for(let I in T){if(I.indexOf("=")>=0)throw new Error(Invalid out extension: ${I});s.push(--out-extension:${I}=${_e(TI,"out extension",I)})}if(A)if(Array.isArray(A))for(let I=0,ne=A.length;I<ne;I++){let je=A[I];if(typeof je=="object"&&je!==null){let Et=Object.create(null),Tt=y(je,Et,"in",F),dt=y(je,Et,"out",F);if(be(je,Et,"in entry point at index "+I),Tt===void 0)throw new Error('Missing property "in" for entry point at index '+I);if(dt===void 0)throw new Error('Missing property "out" for entry point at index '+I);i.push([dt,Tt])}else i.push(["",_e(je,"entry point at index "+I)])}else for(let I in A)i.push([I,_e(A[I],"entry point",I)]);if(q){let I=Object.create(null),ne=y(q,I,"contents",cm),je=y(q,I,"resolveDir",F),Et=y(q,I,"sourcefile",F),Tt=y(q,I,"loader",F);be(q,I,'in "stdin" object'),Et&&s.push(--sourcefile=${Et}),Tt&&s.push(--loader=${Tt}),je&&(l=je),typeof ne=="string"?c=lt(ne):ne instanceof Uint8Array&&(c=ne)}let ie=[];if(b)for(let I of b)I+="",ie.push(I);return{entries:i,flags:s,write:V,stdinContents:c,stdinResolveDir:l,absWorkingDir:z,nodePaths:ie,mangleCache:pm(Le)}}function Hk(e,t,r,n){let o=[],s=Object.create(null);os(o,t,s,r,n),um(o,t,s);let i=y(t,s,"sourcemap",am),a=y(t,s,"sourcefile",F),c=y(t,s,"loader",F),l=y(t,s,"banner",F),p=y(t,s,"footer",F),u=y(t,s,"mangleCache",ot);return be(t,s,in ${e}() call),i&&o.push(--sourcemap=${i===!0?"external":i}),a&&o.push(--sourcefile=${a}),c&&o.push(--loader=${c}),l&&o.push(--banner=${l}),p&&o.push(--footer=${p}),{flags:o,mangleCache:pm(u)}}function dm(e){let t={},r={didClose:!1,reason:""},n={},o=0,s=0,i=new Uint8Array(16*1024),a=0,c=S=>{let b=a+S.length;if(b>i.length){let w=new Uint8Array(b*2);w.set(i),i=w}i.set(S,a),a+=S.length;let E=0;for(;E+4<=a;){let w=Sa(i,E);if(E+4+w>a)break;E+=4,g(i.subarray(E,E+w)),E+=w}E>0&&(i.copyWithin(0,E,a),a-=E)},l=S=>{r.didClose=!0,S&&(r.reason=": "+(S.message||S));let b="The service was stopped"+r.reason;for(let E in n)n[E](b,null);n={}},p=(S,b,E)=>{if(r.didClose)return E("The service is no longer running"+r.reason,null);let w=o++;n[w]=(O,$)=>{try{E(O,$)}finally{S&&S.unref()}},S&&S.ref(),e.writeToStdin(La({id:w,isRequest:!0,value:b}))},u=(S,b)=>{if(r.didClose)throw new Error("The service is no longer running"+r.reason);e.writeToStdin(La({id:S,isRequest:!1,value:b}))},f=async(S,b)=>{try{if(b.command==="ping"){u(S,{});return}if(typeof b.key=="number"){let E=t[b.key];if(!E)return;let w=E[b.command];if(w){await w(S,b);return}}throw new Error("Invalid command: "+b.command)}catch(E){let w=[xr(E,e,null,void 0,"")];try{u(S,{errors:w})}catch{}}},d=!0,g=S=>{if(d){d=!1;let E=String.fromCharCode(...S);if(E!==Ln)throw new Error(Cannot start service: Host version "${Ln}" does not match binary version ${xe(E)});return}let b=Zd(S);if(b.isRequest)f(b.id,b.value);else{let E=n[b.id];delete n[b.id],b.value.error?E(b.value.error,{}):E(null,b.value)}};return{readFromStdout:c,afterClose:l,service:{buildOrContext:({callName:S,refs:b,options:E,isTTY:w,defaultWD:O,callback:$})=>{let B=0,P=s++,T={},k={ref(){++B===1&&b&&b.ref()},unref(){--B===0&&(delete t[P],b&&b.unref())}};t[P]=T,k.ref(),zk(S,P,p,u,k,e,T,E,w,O,(R,C)=>{try{$(R,C)}finally{k.unref()}})},transform:({callName:S,refs:b,input:E,options:w,isTTY:O,fs:$,callback:B})=>{let P=mm(),T=k=>{try{if(typeof E!="string"&&!(E instanceof Uint8Array))throw new Error('The input to "transform" must be a string or a Uint8Array');let{flags:R,mangleCache:C}=Hk(S,w,O,rm),D={command:"transform",flags:R,inputFS:k!==null,input:k!==null?lt(k):typeof E=="string"?lt(E):E};C&&(D.mangleCache=C),p(b,D,(j,M)=>{if(j)return B(new Error(j),null);let H=zr(M.errors,P),A=zr(M.warnings,P),z=1,q=()=>{if(--z===0){let V={warnings:A,code:M.code,map:M.map,mangleCache:void 0,legalComments:void 0};"legalComments"in M&&(V.legalComments=M?.legalComments),M.mangleCache&&(V.mangleCache=M?.mangleCache),B(null,V)}};if(H.length>0)return B(Sn("Transform failed",H,A),null);M.codeFS&&(z++,$.readFile(M.code,(V,K)=>{V!==null?B(V,null):(M.code=K,q())})),M.mapFS&&(z++,$.readFile(M.map,(V,K)=>{V!==null?B(V,null):(M.map=K,q())})),q()})}catch(R){let C=[];try{os(C,w,{},O,rm)}catch{}let D=xr(R,e,P,void 0,"");p(b,{command:"error",flags:C,error:D},()=>{D.detail=P.load(D.detail),B(Sn("Transform failed",[D],[]),null)})}};if((typeof E=="string"||E instanceof Uint8Array)&&E.length>1024*1024){let k=T;T=()=>$.writeFile(E,k)}T(null)},formatMessages:({callName:S,refs:b,messages:E,options:w,callback:O})=>{if(!w)throw new Error(Missing second argument in ${S}() call);let $={},B=y(w,$,"kind",F),P=y(w,$,"color",de),T=y(w,$,"terminalWidth",br);if(be(w,$,in ${S}() call),B===void 0)throw new Error(Missing "kind" in ${S}() call);if(B!=="error"&&B!=="warning")throw new Error(Expected "kind" to be "error" or "warning" in ${S}() call);let k={command:"format-msgs",messages:Mt(E,"messages",null,"",T),isWarning:B==="warning"};P!==void 0&&(k.color=P),T!==void 0&&(k.terminalWidth=T),p(b,k,(R,C)=>{if(R)return O(new Error(R),null);O(null,C.messages)})},analyzeMetafile:({callName:S,refs:b,metafile:E,options:w,callback:O})=>{w===void 0&&(w={});let $={},B=y(w,$,"color",de),P=y(w,$,"verbose",de);be(w,$,in ${S}() call);let T={command:"analyze-metafile",metafile:E};B!==void 0&&(T.color=B),P!==void 0&&(T.verbose=P),p(b,T,(k,R)=>{if(k)return O(new Error(k),null);O(null,R.result)})}}}}function zk(e,t,r,n,o,s,i,a,c,l,p){let u=mm(),f=e==="context",d=(x,v)=>{let L=[];try{os(L,a,{},c,tm)}catch{}let S=xr(x,s,u,void 0,v);r(o,{command:"error",flags:L,error:S},()=>{S.detail=u.load(S.detail),p(Sn(f?"Context failed":"Build failed",[S],[]),null)})},g;if(typeof a=="object"){let x=a.plugins;if(x!==void 0){if(!Array.isArray(x))return d(new Error('"plugins" must be an array'),"");g=x}}if(g&&g.length>0){if(s.isSync)return d(new Error("Cannot use plugins in synchronous API calls"),"");qk(t,r,n,o,s,i,a,g,u).then(x=>{if(!x.ok)return d(x.error,x.pluginName);try{h(x.requestPlugins,x.runOnEndCallbacks,x.scheduleOnDisposeCallbacks)}catch(v){d(v,"")}},x=>d(x,""));return}try{h(null,(x,v)=>v([],[]),()=>{})}catch(x){d(x,"")}function h(x,v,L){let S=s.hasFS,{entries:b,flags:E,write:w,stdinContents:O,stdinResolveDir:$,absWorkingDir:B,nodePaths:P,mangleCache:T}=Bk(e,a,c,tm,S);if(w&&!s.hasFS)throw new Error('The "write" option is unavailable in this environment');let k={command:"build",key:t,entries:b,flags:E,write:w,stdinContents:O,stdinResolveDir:$,absWorkingDir:B||l,nodePaths:P,context:f};x&&(k.plugins=x),T&&(k.mangleCache=T);let R=(j,M)=>{let H={errors:zr(j.errors,u),warnings:zr(j.warnings,u),outputFiles:void 0,metafile:void 0,mangleCache:void 0},A=H.errors.slice(),z=H.warnings.slice();j.outputFiles&&(H.outputFiles=j.outputFiles.map(Gk)),j.metafile&&(H.metafile=JSON.parse(j.metafile)),j.mangleCache&&(H.mangleCache=j.mangleCache),j.writeToStdout!==void 0&&console.log(Hr(j.writeToStdout).replace(/\n$/,"")),v(H,(q,V)=>{if(A.length>0||q.length>0){let K=Sn("Build failed",A.concat(q),z.concat(V));return M(K,null,q,V)}M(null,H,q,V)})},C,D;f&&(i["on-end"]=(j,M)=>new Promise(H=>{R(M,(A,z,q,V)=>{let K={errors:q,warnings:V};D&&D(A,z),C=void 0,D=void 0,n(j,K),H()})})),r(o,k,(j,M)=>{if(j)return p(new Error(j),null);if(!f)return R(M,(z,q)=>(L(),p(z,q)));if(M.errors.length>0)return p(Sn("Context failed",M.errors,M.warnings),null);let H=!1,A={rebuild:()=>(C||(C=new Promise((z,q)=>{let V;D=(Le,ie)=>{V||(V=()=>Le?q(Le):z(ie))};let K=()=>{r(o,{command:"rebuild",key:t},(ie,I)=>{ie?q(new Error(ie)):V?V():K()})};K()})),C),watch:(z={})=>new Promise((q,V)=>{if(!s.hasFS)throw new Error('Cannot use the "watch" API in this environment');be(z,{},"in watch() call"),r(o,{command:"watch",key:t},ie=>{ie?V(new Error(ie)):q(void 0)})}),serve:(z={})=>new Promise((q,V)=>{if(!s.hasFS)throw new Error('Cannot use the "serve" API in this environment');let K={},Le=y(z,K,"port",br),ie=y(z,K,"host",F),I=y(z,K,"servedir",F),ne=y(z,K,"keyfile",F),je=y(z,K,"certfile",F),Et=y(z,K,"fallback",F),Tt=y(z,K,"onRequest",im);be(z,K,"in serve() call");let dt={command:"serve",key:t,onRequest:!!Tt};Le!==void 0&&(dt.port=Le),ie!==void 0&&(dt.host=ie),I!==void 0&&(dt.servedir=I),ne!==void 0&&(dt.keyfile=ne),je!==void 0&&(dt.certfile=je),Et!==void 0&&(dt.fallback=Et),r(o,dt,(Kc,yx)=>{if(Kc)return V(new Error(Kc));Tt&&(i["serve-request"]=(vx,wx)=>{Tt(wx.args),n(vx,{})}),q(yx)})}),cancel:()=>new Promise(z=>{if(H)return z();r(o,{command:"cancel",key:t},()=>{z()})}),dispose:()=>new Promise(z=>{if(H)return z();H=!0,r(o,{command:"dispose",key:t},()=>{z(),L(),o.unref()})})};o.ref(),p(null,A)})}}var qk=async(e,t,r,n,o,s,i,a,c)=>{let l=[],p=[],u={},f={},d=[],g=0,h=0,x=[],v=!1;a=[...a];for(let b of a){let E={};if(typeof b!="object")throw new Error(Plugin at index ${h} must be an object);let w=y(b,E,"name",F);if(typeof w!="string"||w==="")throw new Error(Plugin at index ${h} is missing a name);try{let O=y(b,E,"setup",im);if(typeof O!="function")throw new Error("Plugin is missing a setup function");be(b,E,on plugin ${xe(w)});let $={name:w,onStart:!1,onEnd:!1,onResolve:[],onLoad:[]};h++;let P=O({initialOptions:i,resolve:(T,k={})=>{if(!v)throw new Error('Cannot call "resolve" before plugin setup has completed');if(typeof T!="string")throw new Error("The path to resolve must be a string");let R=Object.create(null),C=y(k,R,"pluginName",F),D=y(k,R,"importer",F),j=y(k,R,"namespace",F),M=y(k,R,"resolveDir",F),H=y(k,R,"kind",F),A=y(k,R,"pluginData",rs),z=y(k,R,"with",ot);return be(k,R,"in resolve() call"),new Promise((q,V)=>{let K={command:"resolve",path:T,key:e,pluginName:w};if(C!=null&&(K.pluginName=C),D!=null&&(K.importer=D),j!=null&&(K.namespace=j),M!=null&&(K.resolveDir=M),H!=null)K.kind=H;else throw new Error('Must specify "kind" when calling "resolve"');A!=null&&(K.pluginData=c.store(A)),z!=null&&(K.with=Wk(z,"with")),t(n,K,(Le,ie)=>{Le!==null?V(new Error(Le)):q({errors:zr(ie.errors,c),warnings:zr(ie.warnings,c),path:ie.path,external:ie.external,sideEffects:ie.sideEffects,namespace:ie.namespace,suffix:ie.suffix,pluginData:c.load(ie.pluginData)})})})},onStart(T){let k='This error came from the "onStart" callback registered here:',R=es(new Error(k),o,"onStart");l.push({name:w,callback:T,note:R}),$.onStart=!0},onEnd(T){let k='This error came from the "onEnd" callback registered here:',R=es(new Error(k),o,"onEnd");p.push({name:w,callback:T,note:R}),$.onEnd=!0},onResolve(T,k){let R='This error came from the "onResolve" callback registered here:',C=es(new Error(R),o,"onResolve"),D={},j=y(T,D,"filter",ns),M=y(T,D,"namespace",F);if(be(T,D,in onResolve() call for plugin ${xe(w)}),j==null)throw new Error("onResolve() call is missing a filter");let H=g++;u[H]={name:w,callback:k,note:C},$.onResolve.push({id:H,filter:j.source,namespace:M||""})},onLoad(T,k){let R='This error came from the "onLoad" callback registered here:',C=es(new Error(R),o,"onLoad"),D={},j=y(T,D,"filter",ns),M=y(T,D,"namespace",F);if(be(T,D,in onLoad() call for plugin ${xe(w)}),j==null)throw new Error("onLoad() call is missing a filter");let H=g++;f[H]={name:w,callback:k,note:C},$.onLoad.push({id:H,filter:j.source,namespace:M||""})},onDispose(T){d.push(T)},esbuild:o.esbuild});P&&await P,x.push($)}catch(O){return{ok:!1,error:O,pluginName:w}}}s["on-start"]=async(b,E)=>{let w={errors:[],warnings:[]};await Promise.all(l.map(async({name:O,callback:$,note:B})=>{try{let P=await $();if(P!=null){if(typeof P!="object")throw new Error(Expected onStart() callback in plugin ${xe(O)} to return an object);let T={},k=y(P,T,"errors",me),R=y(P,T,"warnings",me);be(P,T,from onStart() callback in plugin ${xe(O)}),k!=null&&w.errors.push(...Mt(k,"errors",c,O,void 0)),R!=null&&w.warnings.push(...Mt(R,"warnings",c,O,void 0))}}catch(P){w.errors.push(xr(P,o,c,B&&B(),O))}})),r(b,w)},s["on-resolve"]=async(b,E)=>{let w={},O="",$,B;for(let P of E.ids)try{({name:O,callback:$,note:B}=u[P]);let T=await $({path:E.path,importer:E.importer,namespace:E.namespace,resolveDir:E.resolveDir,kind:E.kind,pluginData:c.load(E.pluginData),with:E.with});if(T!=null){if(typeof T!="object")throw new Error(Expected onResolve() callback in plugin ${xe(O)} to return an object);let k={},R=y(T,k,"pluginName",F),C=y(T,k,"path",F),D=y(T,k,"namespace",F),j=y(T,k,"suffix",F),M=y(T,k,"external",de),H=y(T,k,"sideEffects",de),A=y(T,k,"pluginData",rs),z=y(T,k,"errors",me),q=y(T,k,"warnings",me),V=y(T,k,"watchFiles",me),K=y(T,k,"watchDirs",me);be(T,k,from onResolve() callback in plugin ${xe(O)}),w.id=P,R!=null&&(w.pluginName=R),C!=null&&(w.path=C),D!=null&&(w.namespace=D),j!=null&&(w.suffix=j),M!=null&&(w.external=M),H!=null&&(w.sideEffects=H),A!=null&&(w.pluginData=c.store(A)),z!=null&&(w.errors=Mt(z,"errors",c,O,void 0)),q!=null&&(w.warnings=Mt(q,"warnings",c,O,void 0)),V!=null&&(w.watchFiles=ts(V,"watchFiles")),K!=null&&(w.watchDirs=ts(K,"watchDirs"));break}}catch(T){w={id:P,errors:[xr(T,o,c,B&&B(),O)]};break}r(b,w)},s["on-load"]=async(b,E)=>{let w={},O="",$,B;for(let P of E.ids)try{({name:O,callback:$,note:B}=f[P]);let T=await $({path:E.path,namespace:E.namespace,suffix:E.suffix,pluginData:c.load(E.pluginData),with:E.with});if(T!=null){if(typeof T!="object")throw new Error(Expected onLoad() callback in plugin ${xe(O)} to return an object);let k={},R=y(T,k,"pluginName",F),C=y(T,k,"contents",cm),D=y(T,k,"resolveDir",F),j=y(T,k,"pluginData",rs),M=y(T,k,"loader",F),H=y(T,k,"errors",me),A=y(T,k,"warnings",me),z=y(T,k,"watchFiles",me),q=y(T,k,"watchDirs",me);be(T,k,from onLoad() callback in plugin ${xe(O)}),w.id=P,R!=null&&(w.pluginName=R),C instanceof Uint8Array?w.contents=C:C!=null&&(w.contents=lt(C)),D!=null&&(w.resolveDir=D),j!=null&&(w.pluginData=c.store(j)),M!=null&&(w.loader=M),H!=null&&(w.errors=Mt(H,"errors",c,O,void 0)),A!=null&&(w.warnings=Mt(A,"warnings",c,O,void 0)),z!=null&&(w.watchFiles=ts(z,"watchFiles")),q!=null&&(w.watchDirs=ts(q,"watchDirs"));break}}catch(T){w={id:P,errors:[xr(T,o,c,B&&B(),O)]};break}r(b,w)};let L=(b,E)=>E([],[]);p.length>0&&(L=(b,E)=>{(async()=>{let w=[],O=[];for(let{name:$,callback:B,note:P}of p){let T,k;try{let R=await B(b);if(R!=null){if(typeof R!="object")throw new Error(Expected onEnd() callback in plugin ${xe($)} to return an object);let C={},D=y(R,C,"errors",me),j=y(R,C,"warnings",me);be(R,C,from onEnd() callback in plugin ${xe($)}),D!=null&&(T=Mt(D,"errors",c,$,void 0)),j!=null&&(k=Mt(j,"warnings",c,$,void 0))}}catch(R){T=[xr(R,o,c,P&&P(),$)]}if(T){w.push(...T);try{b.errors.push(...T)}catch{}}if(k){O.push(...k);try{b.warnings.push(...k)}catch{}}}E(w,O)})()});let S=()=>{for(let b of d)setTimeout(()=>b(),0)};return v=!0,{ok:!0,requestPlugins:x,runOnEndCallbacks:L,scheduleOnDisposeCallbacks:S}};function mm(){let e=new Map,t=0;return{load(r){return e.get(r)},store(r){if(r===void 0)return-1;let n=t++;return e.set(n,r),n}}}function es(e,t,r){let n,o=!1;return()=>{if(o)return n;o=!0;try{let s=(e.stack+"").split( );s.splice(1,1);let i=fm(t,s,r);if(i)return n={text:e.message,location:i},n}catch{}}}function xr(e,t,r,n,o){let s="Internal error",i=null;try{s=(e&&e.message||e)+""}catch{}try{i=fm(t,(e.stack+"").split(
),"")}catch{}return{id:"",pluginName:o,text:s,location:i,notes:n?[n]:[],detail:r?r.store(e):-1}}function fm(e,t,r){let n=" at ";if(e.readFileSync&&!t[0].startsWith(n)&&t[1].startsWith(n))for(let o=1;o<t.length;o++){let s=t[o];if(s.startsWith(n))for(s=s.slice(n.length);;){let i=/^(?:new |async )?\S+ \((.*)\)$/.exec(s);if(i){s=i[1];continue}if(i=/^eval at \S+ \((.*)\)(?:, \S+:\d+:\d+)?$/.exec(s),i){s=i[1];continue}if(i=/^(\S+):(\d+):(\d+)$/.exec(s),i){let a;try{a=e.readFileSync(i[1],"utf8")}catch{break}let c=a.split(/\r\n|\r|\n|\u2028|\u2029/)[+i[2]-1]||"",l=+i[3]-1,p=c.slice(l,l+r.length)===r?r.length:0;return{file:i[1],namespace:"file",line:+i[2],column:lt(c.slice(0,l)).length,length:lt(c.slice(l,l+p)).length,lineText:c+
+t.slice(1).join(
),suggestion:""}}break}}return null}function Sn(e,t,r){let n=5;e+=t.length<1?"": with ${t.length} error${t.length<2?"":"s"}:+t.slice(0,n+1).map((s,i)=>{if(i===n)return
...;if(!s.location)return
${a}:${c}:${l}: ERROR: ${p}${s.text}}).join("");let o=new Error(e);for(let[s,i]of[["errors",t],["warnings",r]])Object.defineProperty(o,s,{configurable:!0,enumerable:!0,get:()=>i,set:a=>Object.defineProperty(o,s,{configurable:!0,enumerable:!0,value:a})});return o}function zr(e,t){for(let r of e)r.detail=t.load(r.detail);return e}function sm(e,t,r){if(e==null)return null;let n={},o=y(e,n,"file",F),s=y(e,n,"namespace",F),i=y(e,n,"line",br),a=y(e,n,"column",br),c=y(e,n,"length",br),l=y(e,n,"lineText",F),p=y(e,n,"suggestion",F);if(be(e,n,t),l){let u=l.slice(0,(a&&a>0?a:0)+(c&&c>0?c:0)+(r&&r>0?r:80));!/[\x7F-\uFFFF]/.test(u)&&!/\n/.test(l)&&(l=u)}return{file:o||"",namespace:s||"",line:i||0,column:a||0,length:c||0,lineText:l||"",suggestion:p||""}}function Mt(e,t,r,n,o){let s=[],i=0;for(let a of e){let c={},l=y(a,c,"id",F),p=y(a,c,"pluginName",F),u=y(a,c,"text",F),f=y(a,c,"location",om),d=y(a,c,"notes",me),g=y(a,c,"detail",rs),h=in element ${i} of "${t}";be(a,c,h);let x=[];if(d)for(let v of d){let L={},S=y(v,L,"text",F),b=y(v,L,"location",om);be(v,L,h),x.push({text:S||"",location:sm(b,h,o)})}s.push({id:l||"",pluginName:p||n,text:u||"",location:sm(f,h,o),notes:x,detail:r?r.store(g):-1}),i++}return s}function ts(e,t){let r=[];for(let n of e){if(typeof n!="string")throw new Error(${xe(t)} must be an array of strings);r.push(n)}return r}function Wk(e,t){let r=Object.create(null);for(let n in e){let o=e[n];if(typeof o!="string")throw new Error(key ${xe(n)} in object ${xe(t)} must be a string);r[n]=o}return r}function Gk({path:e,contents:t,hash:r}){let n=null;return{path:e,contents:t,hash:r,get text(){let o=this.contents;return(n===null||o!==t)&&(t=o,n=Hr(o)),n}}}var Xk=Ln,is=e=>as().build(e),Yk=(e,t)=>as().transform(e,t),Vk=(e,t)=>as().formatMessages(e,t),Jk=(e,t)=>as().analyzeMetafile(e,t);var yr,gm,ss,as=()=>{if(ss)return ss;throw yr?new Error('You need to wait for the promise returned from "initialize" to be resolved before calling this'):new Error('You need to call "initialize" before calling this')},cs=e=>{e=lm(e||{});let t=e.wasmModule,r=e.workerURL;if(!t)throw new Error('Must provide the "wasmModule" option');if(yr)throw new Error('Cannot call "initialize" more than once');return yr=Qk(t,r),yr.catch(()=>{yr=void 0}),yr},Qk=async(e,t)=>{let r=new Worker(t.toString(),{type:"module"}),n,o,s=new Promise((c,l)=>{n=c,o=l});r.onmessage=({data:c})=>{r.onmessage=({data:l})=>i(l),c?o(c):n()},r.postMessage(e);let{readFromStdout:i,service:a}=dm({writeToStdin(c){r.postMessage(c)},isSync:!1,hasFS:!1,esbuild:{build:is,transform:Yk,formatMessages:Vk,analyzeMetafile:Jk,version:Xk,initialize:cs}});await s,gm=()=>{r.terminate(),yr=void 0,gm=void 0,ss=void 0},ss={build:c=>new Promise((l,p)=>a.buildOrContext({callName:"build",refs:null,options:c,isTTY:!1,defaultWD:"/",callback:(u,f)=>u?p(u):l(f)})),transform:(c,l)=>new Promise((p,u)=>a.transform({callName:"transform",refs:null,input:c,options:l||{},isTTY:!1,fs:{readFile(f,d){d(new Error("Internal error"),null)},writeFile(f,d){d(null)}},callback:(f,d)=>f?u(f):p(d)})),formatMessages:(c,l)=>new Promise((p,u)=>a.formatMessages({callName:"formatMessages",refs:null,messages:c,options:l,callback:(f,d)=>f?u(f):p(d)})),analyzeMetafile:(c,l)=>new Promise((p,u)=>a.analyzeMetafile({callName:"analyzeMetafile",refs:null,metafile:typeof c=="string"?c:JSON.stringify(c),options:l,callback:(f,d)=>f?u(f):p(d)}))}};var Pn=e=>e==null,ls=e=>typeof e=="string",ps=e=>typeof e=="number";var hm=!1;scrapbox.addListener("lines:changed",()=>hm=!1);scrapbox.addListener("layout:changed",()=>hm=!1);var xm=(e,t)=>{if(!(e instanceof HTMLDivElement))throw new TypeError("${t}" must be HTMLDivElememt but actual is "${e}")};var bm=(e,t)=>{if(!(e instanceof HTMLTextAreaElement))throw new TypeError("${t}" must be HTMLTextAreaElement but actual is "${e}")};var Pa=()=>Zk(document.getElementsByClassName("lines").item(0),"div.lines");var vt=()=>{let e=document.getElementById("text-input");if(e)return bm(e,"textarea#text-input"),e};var Zk=(e,t)=>{if(e)return xm(e,t),e};var Rn=()=>{let e=Pa();if(!e)throw Error("div.lines is not found.");let t=Object.keys(e).find(r=>r.startsWith("__reactFiber"));if(!t)throw Error('div.lines must has the property whose name starts with "__reactFiber"');return e[t].return.stateNode.props.lines};var ym=e=>{if(Pn(e))return;if(ps(e))return t0(e)?.id;if(ls(e))return e.startsWith("L")?e.slice(1):e;if(e.classList.contains("line"))return e.id.slice(1);let t=e.closest(".line");if(t)return t.id.slice(1)};var t0=e=>{if(Pn(e))return;if(ps(e))return Rn()[e];let t=ym(e);return t?Rn().find(r=>r.id===t):void 0},vm=e=>{if(r0(e))return e;let t=ym(e);if(Pn(t))return t;let r=document.getElementById(L${t});if(!Pn(r))return r},r0=e=>e instanceof HTMLDivElement&&e.classList.contains("line");var n0=e=>e instanceof HTMLSpanElement&&e.classList.contains("char-index");var Ra=(e,t)=>{let r=vm(e)?.getElementsByClassName?.(c-${t})?.[0];return n0(r)?r:void 0};var _a=e=>new Promise(t=>setTimeout(()=>t(),e));var wm=async e=>{let t=vt();if(!t)throw Error("#text-input is not ditected.");t.focus(),t.value=e;let r=new InputEvent("input",{bubbles:!0});t.dispatchEvent(r),await _a(1)};var Ca=async(e,t)=>{let r=await globalThis.caches.keys();for(let n of r.sort().reverse()){let s=await(await caches.open(n)).match(e,t);if(s)return s}},km=async(e,t)=>{let r=t.clone();return r.headers.set("X-Serviceworker-Cached",${new Date(r.headers.get("date")??new Date).getTime()}),await(await caches.open(a0(new Date))).put(e,r)},a0=e=>api-${e.getFullYear()}-${${e.getMonth()+1}.padStart(2,"0")}-${${e.getDate()}.padStart(2,"0")};var vr=()=>{let e=vt();if(!e)throw Error("#text-input is not found.");let t=Object.keys(e).find(s=>s.startsWith("__reactFiber"));if(!t)throw Error('#text-input must has the property whose name starts with "__reactFiber"');let r=e[t].return.return.stateNode._stores,n=r.find(s=>s.constructor.name==="Cursor");if(!n)throw Error('#text-input must has a "Cursor" store.');let o=r.find(s=>s.constructor.name==="Selection");if(!o)throw Error('#text-input must has a "Selection" store.');return{cursor:n,selection:o}};var Em=()=>vr().cursor;var Tm=()=>vr().selection;var Lm=e=>{if(e===0)return;let t={};return e&1&&(t.capture=!0),e&2&&(t.once=!0),e&4&&(t.passive=!0),t};var c0=new Map;scrapbox.on("layout:changed",()=>{let e=vt();if(e)for(let[t,r]of c0)for(let[n,o]of r)for(let s of o)e.addEventListener(t,n,Lm(s))});var us=e=>["ts","js","tsx","jsx","mjs","javascript","typescript"].includes(e),ds=e=>{switch(e){case"javascript":case"js":case"mjs":return"js";case"typescript":case"ts":return"ts";case"jsx":return"jsx";case"tsx":return"tsx"}};var Sm=e=>!!(l0.includes(e.hostname)||e.hostname.endsWith(".openai.azure.com")),l0=["i.gyazo.com","t.gyazo.com","scrapbox.io","api.openai.com","*.openai.azure.com","maps.googleapis.com","upload.gyazo.com","storage.googleapis.com","sentry.io"];function ms(e){return typeof e=="object"&&e!==null&&e.constructor===Object}function fs(e){let t={},r=Object.keys(e).sort((n,o)=>o.length-n.length);for(let n of r)t[n]=e[n];return t}function Pm(e){return ms(e)&&(e.imports!==void 0?Ma(e.imports):!0)&&(e.scopes!==void 0?Da(e.scopes):!0)}function Ma(e){return ms(e)}function Da(e){return ms(e)&&Object.values(e).every(t=>Ia(t))}function Ia(e){return ms(e)}function gs(e){try{return new URL(e),!0}catch{return!1}}function _m(e,t){let r={};for(let[n,o]of Object.entries(e)){let s=u0(n,t);if(s===null)continue;if(typeof o!="string"){console.warn("addresses need to be strings."),r[s]=null;continue}let i=Na(o,t);if(i===null){console.warn("the address was invalid."),r[s]=null;continue}if(n.endsWith("/")&&!wt(i).endsWith("/")){console.warn("an invalid address was given for the specifier key specifierKey; since specifierKey ended in a slash, the address needs to as well."),r[s]=null;continue}r[s]=wt(i)}return fs(r)}function wt(e){return e.href}function p0(e,t){let r={};for(let[o,s]of Object.entries(e)){if(!Ia(s))throw new TypeError("the value of the scope with prefix scopePrefix needs to be an object.");let i;try{i=new URL(o,t)}catch{console.warn("the scope prefix URL was not parseable.");continue}let a=wt(i);r[a]=_m(s,t)}let n={};for(let o of Object.keys(r))n[o]=fs(r[o]);return fs(n)}function u0(e,t){if(!e.length)return console.warn("specifier key cannot be an empty string."),null;let r=Na(e,t);return r!==null?wt(r):e}function Na(e,t){if(t&&(e.startsWith("/")||e.startsWith("./")||e.startsWith("../")))try{return new URL(e,t)}catch{return null}try{return new URL(e)}catch{return null}}var d0=["ftp","file","http","https","ws","wss"];function m0(e){return d0.some(t=>wt(e).startsWith(t))}function Rm(e,t,r){for(let[n,o]of Object.entries(r))if(n===e){if(o===null)throw new TypeError("resolution of specifierKey was blocked by a null entry.");if(!gs(o))throw new TypeError("resolutionResult must be an URL.");return o}else if(n.endsWith("/")&&e.startsWith(n)&&(t===null||m0(t))){if(o===null)throw new TypeError("resolution of specifierKey was blocked by a null entry.");if(!gs(o))throw new TypeError("resolutionResult must be an URL.");let s=e.slice(n.length);if(!o.endsWith("/"))throw new TypeError('resolutionResult does not end with "/"');try{let i=new URL(s,o);if(!gs(i))throw new TypeError("url must be an URL.");if(!wt(i).startsWith(o))throw new TypeError("resolution of normalizedSpecifier was blocked due to it backtracking above its prefix specifierKey.");return wt(i)}catch{throw new TypeError("resolution of normalizedSpecifier was blocked since the afterPrefix portion could not be URL-parsed relative to the resolutionResult mapped to by the specifierKey prefix.")}}return null}function Oa(e,t){let r={};if(!Pm(e))throw new TypeError("the top-level value needs to be a JSON object.");let{imports:n,scopes:o}=e;if(n!==void 0){if(!Ma(n))throw new TypeError('"imports" top-level key needs to be an object.');r=_m(n,t)}let s={};if(o!==void 0){if(!Da(o))throw new TypeError('"scopes" top-level key needs to be an object.');s=p0(o,t)}return Object.keys(e).find(i=>i!=="imports"&&i!=="scopes")&&console.warn("an invalid top-level key was present in the import map."),{imports:r,scopes:s}}function $a(e,{imports:t={},scopes:r={}},n){let o=wt(n),s=Na(e,n),i=s!==null?wt(s):e;for(let[c,l]of Object.entries(r))if(c===o||c.endsWith("/")&&o.startsWith(c)){let p=Rm(i,s,l);if(p!==null)return p}let a=Rm(i,s,t);if(a!==null)return a;if(s!==null)return wt(s);throw new TypeError("specifier was a bare specifier, but was not remapped to anything by importMap.")}function Ce(e){if(typeof e!="string")throw new TypeError(Path must be a string. Received ${JSON.stringify(e)})}function ja(e,t){if(t.length>=e.length)return e;let r=e.length-t.length;for(let n=t.length-1;n>=0;--n)if(e.charCodeAt(r+n)!==t.charCodeAt(n))return e;return e.slice(0,-t.length)}function Aa(e,t,r=0){let n=!1,o=e.length;for(let s=e.length-1;s>=r;--s)if(t(e.charCodeAt(s))){if(n){r=s+1;break}}else n||(n=!0,o=s+1);return e.slice(r,o)}function Ua(e,t){if(Ce(e),e.length===0)return e;if(typeof t!="string")throw new TypeError(Suffix must be a string. Received ${JSON.stringify(t)})}function qr(e,t){if(e.length<=1)return e;let r=e.length;for(let n=e.length-1;n>0&&t(e.charCodeAt(n));n--)r=n;return e.slice(0,r)}function kt(e){return e===47||e===92}function Dt(e){return e>=97&&e<=122||e>=65&&e<=90}function xs(e){if(e=e instanceof URL?e:new URL(e),e.protocol!=="file:")throw new TypeError("Must be a file URL.");return e}function Cm(e){e=xs(e);let t=decodeURIComponent(e.pathname.replace(/\//g,"\\").replace(/%(?![0-9A-Fa-f]{2})/g,"%25")).replace(/^\\*([A-Za-z]:)(\\|$)/,"$1\\");return e.hostname!==""&&(t=\\\\${e.hostname}${t}),t}function Ba(e){Ce(e);let t=e.length;if(t===0)return!1;let r=e.charCodeAt(0);return kt(r)?!0:!!(Dt(r)&&t>2&&e.charCodeAt(1)===58&&kt(e.charCodeAt(2)))}var T0={" ":"%09","\n":"%0A","\v":"%0B","\f":"%0C","\r":"%0D"," ":"%20"};function bs(e){return e.replaceAll(/[\s]/g,t=>T0[t]??t)}function Im(e){if(!Ba(e))throw new TypeError("Must be an absolute path.");let[,t,r]=e.match(/^(?:[/\\]{2}([^/\\]+)(?=[/\\](?:[^/\\]|$)))?(.*)/),n=new URL("file:///");if(n.pathname=bs(r.replace(/%/g,"%25")),t!==void 0&&t!=="localhost"&&(n.hostname=t,!n.hostname))throw new TypeError("Invalid hostname.");return n}function st(e){return e===47}function za(e,t=""){Ua(e,t);let r=Aa(e,st),n=qr(r,st);return t?ja(n,t):n}function qa(e){Ce(e);let t=-1,r=0,n=-1,o=!0,s=0;for(let i=e.length-1;i>=0;--i){let a=e.charCodeAt(i);if(st(a)){if(!o){r=i+1;break}continue}n===-1&&(o=!1,n=i+1),a===46?t===-1?t=i:s!==1&&(s=1):t!==-1&&(s=-1)}return t===-1||n===-1||s===0||s===1&&t===n-1&&t===r+1?"":e.slice(t,n)}function Om(e){return e=xs(e),decodeURIComponent(e.pathname.replace(/%(?![0-9A-Fa-f]{2})/g,"%25"))}function Wa(e){return Ce(e),e.length>0&&st(e.charCodeAt(0))}function $m(e){if(!Wa(e))throw new TypeError("Must be an absolute path.");let t=new URL("file:///");return t.pathname=bs(e.replace(/%/g,"%25").replace(/\\/g,"%5C")),t}var O0=(()=>{let{Deno:e}=globalThis;if(typeof e?.build?.os=="string")return e.build.os;let{navigator:t}=globalThis;return t?.appVersion?.includes?.("Win")?"windows":"linux"})(),Te=O0==="windows";function Am(e){return Te?Cm(e):Om(e)}function ys(e){return Te?Im(e):$m(e)}var Um={"&":"\\x26","!":"\\x21","#":"\\x23",$:"\\$","%":"\\x25","*":"\\*","+":"\\+",",":"\\x2c",".":"\\.",":":"\\x3a",";":"\\x3b","<":"\\x3c","=":"\\x3d",">":"\\x3e","?":"\\?","@":"\\x40","^":"\\^","":"\\x60","~":"\\x7e","(":"\\(",")":"\\)","[":"\\","":"\\]","{":"\\{","}":"\\}","/":"\\/","-":"\\x2d","\\":"\\\\","|":"\\|"},j0=new RegExp([${Object.values(Um).join("")}],"gu");function Fm(e){return e.replaceAll(j0,t=>Umt)}function _n(e){e.hash="",e.search=""}function vs(e,t){return e=new URL(e),_n(e),za(e.href,t)}function ws(e){return e=new URL(e),_n(e),qa(e.pathname)}var Bm=e=>{if(e.protocol==="file:")return{path:Am(e),namespace:"file"};let t=e.protocol.slice(0,-1);return{path:e.href.slice(t.length+1),namespace:t}},Hm=e=>e.namespace==="file"?ys(e.path):new URL(${e.namespace}:${e.path});var A0="base64","binary","copy","css","dataurl","default","empty","file","js","json","jsx","local-css","text","ts","tsx",zm=e=>A0.includes(e),qm=e=>{let t=e.url,r=vs(t);if(zm(r))return r;if(r==="mjs")return"js";let n=ws(t).slice(1);if(zm(n))return n;if(n==="mjs")return"js";let s=(e.headers.get("Content-Type")??"text/plain").split(";")0?.trim?.()??"text/plain";return U0(s)},U0=e=>{let t=e.split("/")1??"plain";if(/(?:^plain$|^xml|^svg|^x?html)/.test(t))return"text";if(t.startsWith("json"))return"json";switch(t){case"javascript":return"js";case"typescript":return"ts";case"css":return"css";default:return"text"}};var Gm=e=>({name:"remote-resource",setup({onStart:t,onResolve:r,onLoad:n,initialOptions:o}){let{importMapURL:s,sources:i=[],progressCallback:a}=e??{},c={};t(async()=>{if(!s)return;let u=await Wm(${s},e.fetch,i,e.reload,a);c=Oa(JSON.parse(u.contents instanceof Uint8Array?new TextDecoder().decode(u.contents):u.contents??""),s)});let l=(o.external??[]).map(u=>new RegExp(Fm(u).replace(/\\\*/g,".*")));r({filter:/.*/},u=>{let f;if(u.importer!==""){if(u.namespace==="")throw new Error("assert namespace is empty");f=new URL(${u.namespace}:${u.importer})}else if(u.resolveDir!=="")f=new URL(${ys(u.resolveDir).href}/);else return;let d;if(c!==null){let h=$a(u.path,c,new URL(f));d=new URL(h)}else d=new URL(u.path,f);let g={type:"resolve",external:!1,path:d.href};u.kind!=="entry-point"&&(g.parent=f.href);for(let h of l)if(h.test(d.href))return g.external=!0,a?.(g),{path:g.path,external:g.external};return a?.(g),Bm(d)});let p=u=>Wm(Hm(u).href,e.fetch,i,e.reload,a);n({filter:/.*/,namespace:"file"},p),n({filter:/.*/,namespace:"http"},p),n({filter:/.*/,namespace:"https"},p),n({filter:/.*/,namespace:"data"},p)}}),Wm=async(e,t,r,n,o)=>{let s=r.find(p=>p.path===e);if(s!==void 0){let p=ws(e).slice(1)||vs(e),u=s.loader??(us(p)?ds(p):"text");return o?.({type:"load",path:e,done:Promise.resolve({size:new Blob(s.contents).size,loader:u,isCache:!0})}),{contents:s.contents,loader:u}}let i=n?n===!0?!1:!n.some(p=>p.test(e)):!0,a=t(new Request(e),i).then((p,u)=>{let f=qm(p);return p.blob().then(d=>d,f,u)});o?.({type:"load",path:e,done:a.then((p,u,f)=>({size:p.size,loader:u,isCache:f}))});letc,l=await a;return{contents:new Uint8Array(await c.arrayBuffer()),loader:l}};var Km,Xm=async(e,t)=>(Km??=cs({wasmModule:e,workerURL:t}),await Km,async(r,{extension:n,fileName:o,dirURL:s})=>{o??=codeblock-${Math.floor(16777214*Math.random()).toString(16)}.${ds(n)};let i=${s}${o},a=new Map,{outputFiles:c}=await is({entryPoints:i,format:"esm",bundle:!0,minify:!0,charset:"utf8",plugins:[Gm({fetch:F0,reload:new URLPattern({hostname:location.hostname}),new URLPattern({hostname:"scrapbox.io"}),sources:{path:i,contents:r},progressCallback:l=>{if(l.type==="resolve"){if(!l.parent)return;let p=a.get(l.parent)??{path:l.parent,isCache:!1,children:[]},u=a.get(l.path)??{path:l.path,isCache:!1,children:[]};p.children.push(u),a.set(l.parent,p),a.set(l.path,u);return}l.done.then(({isCache:p})=>{let u=a.get(l.path)??{path:l.path,isCache:p,children:[]};u.isCache=p,a.set(l.path,u)})}})],write:!1});return{contents:c0.text,graph:a.get(new URL(i).href)}}),F0=async(e,t)=>{let r=Sm(new URL(e.url))||!GM_fetch?globalThis.fetch:GM_fetch;if(t){let n=await Ca(e);if(n)return n.url||Object.defineProperty(n,"url",{value:e.url}),n,!0}try{let n=await r(e);if(n.ok)return r===GM_fetch&&await km(e,n),n,!1;throw new TypeError(${n.status} ${n.statusText})}catch(n){if(!(n instanceof TypeError))throw n;let o=await Ca(e);if(o)return o.url||Object.defineProperty(o,"url",{value:e.url}),o,!0;throw n}};var Ym=()=>{let e=document.createElement("i");return e.classList.add("kamon","kamon-check-circle-fill"),e.style.color="hsl(133, 46.1%, 47.3%)",e},Vm=()=>{let e=document.createElement("i");return e.classList.add("kamon","kamon-cross-circle"),e.style.color="hsl(1.7, 64.5%, 58%)",e},Jm=()=>{let e=document.createElement("i");return e.classList.add("i","fa","fa-spinner"),e},Qm=()=>{let e=document.createElement("i");return e.classList.add("kamon","kamon-play"),e};var Zm=()=>{let e;return{show:(n,{x:o,y:s})=>{e=B0(),e.append(H0(n)),e.style.visibility="hidden",document.body.append(e);let{height:i}=e.getBoundingClientRect();e.style.top=${s-i}px,e.style.left=${o}px,e.style.removeProperty("visibility")},hide:async()=>{e?.classList?.remove?.("in"),await new Promise(n=>setTimeout(n,150)),e?.remove?.()}}},B0=()=>{let e=document.createElement("div");return e.setAttribute("role","tooltip"),e.classList.add("fade","in","tooltip","top"),e},H0=e=>{let t=document.createElement("pre");return t.classList.add("tooltip-inner"),t.style.textAlign="unset",t.style.maxWidth="70vw",t.style.margin="unset",t.innerText=e,t};var ef=()=>{let e=document.createElement("a");e.classList.add("tool-btn"),e.type="button",e.setAttribute("aria-haspopup","true");let t=!1,{show:r,hide:n}=Zm();return{component:e,setStatus:async(s,i)=>{switch(e.textContent="",await n(),s){case"loading":e.append(Jm());break;case"pass":e.append(Ym());break;case"fail":e.append(Vm());break;case"none":break}i!==void 0&&s!=="none"?(e.style.removeProperty("pointer-events"),e.onclick=async()=>{if(t)await n();else{let{top:a,left:c}=e.getBoundingClientRect();r(i,{y:a+globalThis.scrollY,x:c})}t=!t}):e.style.pointerEvents="none"}}};var tf=e=>{let t=document.createElement("a");return t.classList.add("tool-btn"),t.type="button",t.setAttribute("aria-haspopup","true"),t.append(Qm()),t.addEventListener("click",e),t};var rf=e=>{let{component:t,setStatus:r}=ef(),n=document.createElement("div");return n.style.position="absolute",n.style.left="-2em",n.style.zIndex="1",n.style.display="flex",n.style.flexFlow="column",n.append(tf(e),t),{menu:n,setStatus:r}};function nf(e){return new Promise(t=>setTimeout(t,e))}function of(e,t){let{trailing:r=!1,interval:n=0}=t??{},o,s=!1,i=l=>{o?.resolve?.({executed:!1}),o=l},a=()=>{let{...l}=o;return o=void 0,l},c=async()=>{if(s||!o)return;s=!0,n>0&&await nf(n);let{parameters:l,resolve:p,reject:u}=a();try{let f=await e(...l);s=!1,p({result:f,executed:!0})}catch(f){s=!1,u(f)}finally{r?await c():(i(),await Promise.resolve())}};return(...l)=>new Promise((p,u)=>{i({parameters:l,resolve:p,reject:u}),c()})}function sf(e,t){if(e===t)return"./";if(e.protocol!==t.protocol)return t.toString();if(e.hostname!==t.hostname)return//${t.hostname}${t.pathname}${t.search}${t.hash};let r=e.pathname.split("/"),n=t.pathname.split("/"),o=1,s=Math.min(r.length,n.length);for(;o<s&&ro===no;)o++;if(o===1)return${t.pathname}${t.search}${t.hash};let i=r.length-o;return${i==0?./${rr.length-1}${r.length<n.length?"/":""}:i===1?"./":"../".repeat(i-1)}${n.slice(o).join("/")}${t.search}${t.hash}}var af=(e,t)=>{let r={},n=[${e.isCache?"Cache":"Network"}] ${decodeURIComponent(e.path)};rn={};let o=new Map;o.set(e.path,rn);for(let s of e.children)Object.assign(rn,cf(s,e.path,t??!1,o));return r},cf=(e,t,r,n)=>{let o=[${e.isCache?"Cache":"Network"}] ${r?sf(new URL(t),new URL(e.path)):decodeURIComponent(e.path)};{let i=n.get(e.path);if(i)return i}let s={};so={};for(let i of e.children)Object.assign(so,cf(i,e.path,r,n));return s};var lf=async(e,t)=>{let r=await Xm(e,t),n=[],s=of(async()=>{let i=Qd(scrapbox.Project.name,scrapbox.Page.title??"",Rn());n.forEach(({menu:a,setStatus:c})=>{c("none"),a.remove()}),i.forEach(a=>{let c=a.lang.toLowerCase();us(c)&&a.startIds.forEach(l=>{let p=document.getElementById(L${l}),{menu:u,setStatus:f}=rf(async()=>{await f("loading");try{let{contents:d,graph:g}=await r(a.lines.join(` ),{extension:c,fileName:a.filename,dirURL:${a.dir}/});console.debug(af(g,!0)),console.debug("execute:",d),await Function(return (async()=>{${d}})())(),await f("pass")}catch(d){await f("fail",d.toString())}});n.push({menu:u,setStatus:f}),p?.insertBefore?.(u,p?.firstElementChild)})}),await Promise.resolve()},{interval:100,trailing:!0});return await s(),scrapbox.addListener("lines:changed",s),()=>{scrapbox.removeListener("lines:changed",s),n.forEach(({menu:i,setStatus:a})=>{a("none"),i.remove()})}};var pf=({title:e,projects:t,selected:r,confirm:n})=>m("div",{className:candidate${r?" selected":""}},m(z0,{title:e,confirm:n}),t.map(o=>m(q0,{project:o.name,title:e,mark:o.mark,confirm:o.confirm}))),z0=({title:e,confirm:t})=>m("a",{className:"button",tabIndex:0,role:"menuitem",href:./${hr(e)},onClick:uf(t)},e),q0=({project:e,title:t,mark:r,confirm:n})=>r===""?m(W,null):m("a",{className:"mark",tabIndex:0,href:../${e}/${hr(t)},onClick:uf(n),title:/${e}/${hr(t)}},r instanceof URL?m("img",{src:r.href}):${r}),uf=e=>_(t=>{t.metaKey||t.ctrlKey||t.altKey||t.shiftKey||(t.preventDefault(),t.stopPropagation(),e())},[e]);var df=(e,t)=>{let[r,n]=U(null),o=_(c=>n(l=>{if(e.length===0)return null;if(l===null)return t(e[0]);let p=e.findIndex(u=>t(u)===l);return t(c?.cyclic?e[(p+1)%e.length]:e.at(p+1)??e[0])}),[e,t]),s=_(c=>n(l=>{if(e.length===0)return null;if(l===null)return t(e[e.length-1]);let p=e.findIndex(u=>t(u)===l);return p<0?t(e[e.length-1]):t(c?.cyclic?e[(p-1+e.length)%e.length]:e.at(p-1)??e[e.length-1])}),[e,t]),i=_(()=>n(e.length===0?null:t(e[0])),[e,t]),a=_(()=>n(e.length===0?null:t(e[e.length-1])),[e,t]);return{selectedId:r,next:o,prev:s,selectFirst:i,selectLast:a}};var mf=e=>{let[t,r]=U(null),n=N(()=>{let o=t?.getBoundingClientRect?.(),i=Ra(e.line,e.char)?.getBoundingClientRect?.();return!i||!o?{}:{top:${i.bottom-o.top}px,left:${i?.left??0-o.left}px,right:${o.right-(i?.left??0)}px}},[t,e.line,e.char]);return{updateStandardElement:r,...n}};var Xa="enableProjectsOnSuggestion",ff=(e,t)=>{let[r,n]=U(ks([...e],t)),o=_((s,i)=>{W0(s,i,e,t),n(ks([...e],t))},[e,t.enableSelfProjectOnStart]);return G(()=>{let s=i=>{i.key===Xa&&n(ks([...e],t))};return addEventListener("storage",s),()=>removeEventListener("storage",s)},[e,t.enableSelfProjectOnStart]),{projects:r,set:o}},Ka=!0,ks=(e,t)=>{try{let r=localStorage.getItem(Xa);if(r===null)return Es(e),e;let n=JSON.parse(r);return Array.isArray(n)&&n.every(o=>typeof o=="string")?!t.enableSelfProjectOnStart||!e.includes(scrapbox.Project.name)?n:n.includes(scrapbox.Project.name)?Ka?n:n.filter(o=>o!==scrapbox.Project.name):Ka?[...n,scrapbox.Project.name]:n:(Es(e),e)}catch(r){if(!(r instanceof TypeError))throw r;return Es(e),e}},W0=(e,t,r,n)=>{let o=ks([...r],n);n.enableSelfProjectOnStart&&e===scrapbox.Project.name&&(Ka=t),Es(t?[...o,e]:o.filter(s=>s!==e))},Es=e=>localStorage.setItem(Xa,JSON.stringify(e));var gf=()=>N(()=>document.documentElement.dataset.os??"",[]);var Cn=(e,t)=>{if(e instanceof URL)return e;try{return new URL(e)}catch(r){if(!(r instanceof TypeError))throw r;if(!t||!/^\.\/|^\.\.\/|^\//.test(e))return e;try{return new URL(e,t)}catch(n){if(!(n instanceof TypeError))throw n;return e}}};var hf=({progress:e})=>m("div",{className:"progress",style:background: linear-gradient(to right, var(--select-suggest-border-color, #eee) ${(e*100).toPrecision(3)}%, transparent ${(e*100).toPrecision(3)}%)});var bf=({position:e,start:t,enableSelfProjectOnStart:r,projects:n,...o})=>{let{projects:s,set:i}=ff(n,{enableSelfProjectOnStart:r}),{updateStandardElement:a,top:c,left:l,right:p}=mf({line:e.line,char:t}),u=gf();return m(W,null,m(K0,{itemCount:o.items.length,enableProjects:s,projects:n,top:c,right:p,set:i,os:u,...o}),m(G0,{updateStandardElement:a,start:t,enableProjects:s,projects:n,top:c,left:l,os:u,...o}))},G0=({start:e,updateStandardElement:t,confirmAfter:r,cancel:n,query:o,enableProjects:s,projects:i,items:a,top:c,left:l,progress:p,callback:u,limit:f,mark:d,os:g})=>{let h=_((P,T)=>{let k=T?/${T}/${P}:${P};r((R,{line:C})=>[${...R.slice(0,e).join("")}${k}${...R.slice(e+...o.length).join("")},{line:C,char:e+[...k].length}])},[e,o]),x=N(()=>i.size>1||!i.has(scrapbox.Project.name),[i]),v=N(()=>{let P=[];for(let T of a){if(P.length===f)break;T.projects.some(k=>s.includes(k))&&P.push({title:T.title,projects:T.projects.flatMap(k=>s.includes(k)?[{name:k,mark:x?Cn(d[k]??"",import.meta.url)||k[0]:"",confirm:()=>h(T.title,k)}]:[]),confirm:()=>h(T.title)})}return P},[s,x,a,f,d,h]),{selectedId:L,next:S,prev:b,selectLast:E,selectFirst:w}=df(v,xf),O=_(()=>L===null?!1:(v.find(P=>xf(P)===L)?.confirm?.(),!0),[L,v]);G(()=>u(v.length===0?void 0:{selectNext:P=>(S(P),!0),selectPrev:P=>(b(P),!0),selectFirst:()=>(w(),!0),selectLast:()=>(E(),!0),confirm:O,cancel:()=>(n(),!0)}),[u,v.length,S,b,w,E,O]);let $=N(()=>v.length>0&&c!=null&&l!=null?{top:c,left:l}:{display:"none"},[v.length,c,l]),B=_(P=>{if(!P){t(P);return}let T=P.parentNode;if(!(T instanceof ShadowRoot))throw Error('The parent of "div.container" must be ShadowRoot');t(T.host.parentElement)},[t]);return m("div",{ref:B,className:"container candidates","data-os":g,style:$},v.map(P=>m(pf,{key:P.title,...P,selected:L===P.title})),a.length>f&&m("div",{className:"counter"},${a.length-f} more links),m(hf,{progress:p}))},K0=({enableProjects:e,projects:t,projectScore:r,mark:n,itemCount:o,top:s,right:i,set:a,os:c,freezeUntil:l})=>{let p=N(()=>[...t].sort((f,d)=>(r.get(d)??0)-(r.get(f)??0)).flatMap(f=>r.has(f)?[{name:f,enable:e.includes(f),mark:Cn(n[f]??"",import.meta.url)||f[0],score:r.get(f),onClick:()=>l(()=>{a(f,!e.includes(f)),vt().focus()})}]:[]),[t,r,e,n]),u=N(()=>o>0&&s!=null&&i!=null&&t.size>1?{top:s,right:i}:{display:"none"},[s,i,o,t.size]);return m("div",{className:"container projects","data-os":c,style:u},p.map(f=>m(X0,{key:f.name,...f})))},X0=e=>m("div",{className:e.enable?"mark":"mark disabled","data-score":e.score.toPrecision(3),onClick:e.onClick,title:e.name},e.mark instanceof URL?m("img",{src:e.mark.href}):${e.mark}),xf=e=>e.title;var Qe=!1,Ya=e=>{Qe=typeof e=="boolean"?e:new Set(e)},Gr=e=>Object.fromEntries([...Object.entries(console)].map(([t,r])=>{if(typeof r!="function")return[t,r];switch(t){case"warn":case"error":return[t,(...n)=>r(%c${e},"color: gray",...n)];case"log":case"info":case"debug":return[t,(...n)=>{Qe!==!0&&(!Qe||!Qe.has(e))||r(%c${e},"color: gray",...n)}];case"assert":return[t,(n,...o)=>{Qe!==!0&&(!Qe||!Qe.has(e))||r(n,%c${e},"color: gray",...o)}];case"time":case"timeEnd":return[t,n=>{Qe!==!0&&(!Qe||!Qe.has(e))||r(${e} ${n})}];default:return[t,(...n)=>{if(!(Qe!==!0&&(!Qe||!Qe.has(e))))return r(...n)}]}}));var Ts=e=>{let[t,r,n,...o]=e;return{title:t,links:o,image:r,exists:n>=0,updated:Math.min(0,n)}},yf=e=>[e.title,e.image,e.exists?e.updated:-1,...e.links];var vf=e=>{let t=new Map;for(let r of e){let n=X(r.title);t.set(n,{title:r.title,image:r.image,updated:r.updated,links:r.links,exists:!0});for(let o of r.links){let s=X(o);t.has(s)||t.set(s,{title:o,updated:0,links:[],exists:!1})}}return[...t.values()].map(r=>yf(r))};var wf=Gr("scrapbox-storage:remote.ts"),kf=async e=>{let t,r=[],n=download and create Links of "${e}";wf.time(n);do{let s=await vp(e,{followingId:t});if(!s.ok)return s;t=s.value.followingId,r.push(...s.value.pages)}while(t);let o=vf(r);return wf.timeEnd(n),{ok:!0,value:o}};async function*Ef(e){let t=[],r=[],n=new Map;for(let s of e)s.id?t.push(s.id):r.push(s.project),n.set(s.project,s.checked);let o=await Sr(t);if(!o.ok)r=e.map(s=>s.project);else for(let s of o.value.projects)n.has(s.name)&&(yield{ok:!0,value:{...s,checked:n.get(s.name)??0}});for(let s of r){let i=await at(s);yield i.ok?{ok:!0,value:{...i.value,checked:n.get(s)??0}}:{ok:!1,value:{...i.value,project:s}}}}var Qa=(e,t)=>t.some(r=>e instanceof r),Tf,Lf;function Y0(){return Tf||(Tf=[IDBDatabase,IDBObjectStore,IDBIndex,IDBCursor,IDBTransaction])}function V0(){return Lf||(Lf=[IDBCursor.prototype.advance,IDBCursor.prototype.continue,IDBCursor.prototype.continuePrimaryKey])}var Za=new WeakMap,Va=new WeakMap,Ls=new WeakMap;function J0(e){let t=new Promise((r,n)=>{let o=()=>{e.removeEventListener("success",s),e.removeEventListener("error",i)},s=()=>{r(Gt(e.result)),o()},i=()=>{n(e.error),o()};e.addEventListener("success",s),e.addEventListener("error",i)});return Ls.set(t,e),t}function Q0(e){if(Za.has(e))return;let t=new Promise((r,n)=>{let o=()=>{e.removeEventListener("complete",s),e.removeEventListener("error",i),e.removeEventListener("abort",i)},s=()=>{r(),o()},i=()=>{n(e.error||new DOMException("AbortError","AbortError")),o()};e.addEventListener("complete",s),e.addEventListener("error",i),e.addEventListener("abort",i)});Za.set(e,t)}var ec={get(e,t,r){if(e instanceof IDBTransaction){if(t==="done")return Za.get(e);if(t==="store")return r.objectStoreNames[1]?void 0:r.objectStore(r.objectStoreNames[0])}return Gt(e[t])},set(e,t,r){return e[t]=r,!0},has(e,t){return e instanceof IDBTransaction&&(t==="done"||t==="store")?!0:t in e}};function _f(e){ec=e(ec)}function Z0(e){return V0().includes(e)?function(...t){return e.apply(tc(this),t),Gt(this.request)}:function(...t){return Gt(e.apply(tc(this),t))}}function eE(e){return typeof e=="function"?Z0(e):(e instanceof IDBTransaction&&Q0(e),Qa(e,Y0())?new Proxy(e,ec):e)}function Gt(e){if(e instanceof IDBRequest)return J0(e);if(Va.has(e))return Va.get(e);let t=eE(e);return t!==e&&(Va.set(e,t),Ls.set(t,e)),t}var tc=e=>Ls.get(e);function Cf(e,t,{blocked:r,upgrade:n,blocking:o,terminated:s}={}){let i=indexedDB.open(e,t),a=Gt(i);return n&&i.addEventListener("upgradeneeded",c=>{n(Gt(i.result),c.oldVersion,c.newVersion,Gt(i.transaction),c)}),r&&i.addEventListener("blocked",c=>r(c.oldVersion,c.newVersion,c)),a.then(c=>{s&&c.addEventListener("close",()=>s()),o&&c.addEventListener("versionchange",l=>o(l.oldVersion,l.newVersion,l))}).catch(()=>{}),a}function Mf(e,{blocked:t}={}){let r=indexedDB.deleteDatabase(e);return t&&r.addEventListener("blocked",n=>t(n.oldVersion,n)),Gt(r).then(()=>{})}var tE=["get","getKey","getAll","getAllKeys","count"],rE=["put","add","delete","clear"],Ja=new Map;function Sf(e,t){if(!(e instanceof IDBDatabase&&!(t in e)&&typeof t=="string"))return;if(Ja.get(t))return Ja.get(t);let r=t.replace(/FromIndex$/,""),n=t!==r,o=rE.includes(r);if(!(r in(n?IDBIndex:IDBObjectStore).prototype)||!(o||tE.includes(r)))return;let s=async function(i,...a){let c=this.transaction(i,o?"readwrite":"readonly"),l=c.store;return n&&(l=l.index(a.shift())),(await Promise.all([l[r](...a),o&&c.done]))[0]};return Ja.set(t,s),s}_f(e=>({...e,get:(t,r,n)=>Sf(t,r)||e.get(t,r,n),has:(t,r)=>!!Sf(t,r)||e.has(t,r)}));var nE=["continue","continuePrimaryKey","advance"],Pf={},rc=new WeakMap,Df=new WeakMap,oE={get(e,t){if(!nE.includes(t))return e[t];let r=Pf[t];return r||(r=Pf[t]=function(...n){rc.set(this,Df.get(this)[t](...n))}),r}};async function*sE(...e){let t=this;if(t instanceof IDBCursor||(t=await t.openCursor(...e)),!t)return;t=t;let r=new Proxy(t,oE);for(Df.set(r,t),Ls.set(r,tc(t));t;)yield r,t=await(rc.get(r)||t.continue()),rc.delete(r)}function Rf(e,t){return t===Symbol.asyncIterator&&Qa(e,[IDBIndex,IDBObjectStore,IDBCursor])||t==="iterate"&&Qa(e,[IDBIndex,IDBObjectStore])}_f(e=>({...e,get(t,r,n){return Rf(t,r)?sE:e.get(t,r,n)},has(t,r){return Rf(t,r)||e.has(t,r)}}));var If=Gr("scrapbox-storage:db.ts"),Nf,Ss=async()=>(Nf??=await Cf("scrapbox-storage",1,{upgrade(e){If.time("update DB");for(let t of e.objectStoreNames)e.deleteObjectStore(t);e.createObjectStore("links",{keyPath:"project"}),e.createObjectStore("status",{keyPath:"project"}),If.timeEnd("update DB")}}),Nf),Of=async e=>(await Ss()).put("links",e);var Ps=new Map,$f=e=>{let t={type:"update",projects:e};jf(t);let r=new BroadcastChannel(Af);r.postMessage(t),r.close()},jf=e=>{for(let t of new Set(e.projects.flatMap(r=>[...Ps.get(r)??[]])))t?.(e)},Af="scrapbox-storage-notify",iE=new BroadcastChannel(Af);iE.addEventListener("message",e=>jf(e.data));var Mn=(e,t)=>{for(let r of e){let n=Ps.get(r)??new Set;n.add(t),Ps.set(r,n)}return()=>{for(let r of e)Ps.get(r)?.delete?.(t)}};var It=Gr("scrapbox-storage:mod.ts"),Rs=async(e,t)=>{let r=await Ss(),n=[],o=[];try{{It.debug("check updates of links...");let a=r.transaction("status","readwrite");await Promise.all(e.map(async c=>{let l=await a.store.get(c);if(l?.isValid===!1)return;let p=l?.checked??0,u=new Date().getTime()/1e3;if(p+t>u||l?.updating&&p+600>u)return;let f={project:c,id:l?.id,isValid:!0,checked:p,updated:l?.updated??0,updating:!0};n.push(f),a.store.put(f)})),await a.done,It.debug(checked. ${n.length} projects maybe need upgrade.)}if(n.length===0)return[];let s=[],i=[];for await(let a of Ef(n)){if(!a.ok)switch(o.push({project:a.value.project,isValid:!1}),a.value.name){case"NotFoundError":It.warn("${a.value.project}" is not found.);continue;case"NotMemberError":It.warn(You are not a member of "${a.value.project}".);continue;case"NotLoggedInError":It.warn(You are not a member of "${a.value.project}" or You are not logged in yet.);continue}if(a.value.updated<a.value.checked)It.debug(no updates in "${a.value.name}");else{let c=await kf(a.value.name);if(!c.ok)throw Error(${c.value.name} ${c.value.message});let l={project:a.value.name,links:c.value};i.push(l),It.time(write data of "${a.value.name}"),await Of(l),s.push(a.value.name),It.timeEnd(write data of "${a.value.name}")}o.push({project:a.value.name,isValid:!0,id:a.value.id,checked:new Date().getTime()/1e3,updated:a.value.updated,updating:!1})}return s.length>0&&$f(s),i}finally{let s=r.transaction("status","readwrite"),i=s.store;await Promise.all(o.map(a=>i.put(a))),await s.done}},_s=async e=>{let t=[],r=new Date;{let o=(await Ss()).transaction("links","readonly");await Promise.all(e.map(async s=>{let i=await o.store.get(s);t.push(i??{project:s,links:[]})})),await o.done}let n=new Date().getTime()-r.getTime();return It.debug(Read links of ${e.length} projects in ${n}ms),t};Mf("userscript-links").catch(e=>console.error(e));var nc=ht("scrapbox-select-suggestion:useSource.ts"),Uf=e=>{let[t,r]=U([]),n=_(o=>{let s=new Date,i=new Map;for(let{project:l,links:p}of o)for(let u of p){let{title:f,updated:d,image:g}=Ts(u),h=Ea(f),x=i.get(h);i.set(h,{title:x?.title??f,updated:Math.max(x?.updated??0,d),metadata:[...x?.metadata??[],{project:l,image:g}]})}let a=[...i.entries()].map(([l,p])=>({titleLc:l,...p})),c=new Date().getTime()-s.getTime();nc.debug(Compiled ${a.length} source in ${c}ms),nc.debug("Detect changes!"),r(a)},[]);return G(()=>{let o=!1,s=async()=>{let l=await _s([...e]);o||n(l)};s();let i=Mn([...e],({projects:l})=>{nc.debug(Detect ${l.length} projects' update:,l),s()}),a=()=>Rs([...e],600);a();let c=setInterval(a,600*1e3);return()=>{o=!0,clearInterval(c),i()}},[e]),t};var Ff=e=>{let t=N(()=>Cn(e.style,import.meta.url),[e.style]);return m(W,null,t!==""&&(t instanceof URL?m("link",{rel:"stylesheet",href:t.href}):m("style",null,t)))};var Bf=()=>m("style",null,.container { position: absolute;
margin-top: 14px;
max-height: 80vh;
z-index: 301;
background-color: var(--select-suggest-bg, #111); font-family: var(--select-suggest-font-family, "Open Sans", Helvetica, Arial, "Hiragino Sans", sans-serif);
font-size: 14px;
color: var(--select-suggest-text-color, #eee); border-radius: 4px;
}
.candidates {
max-width: 80vw;
}
font-size:11px;
}
.projects {
margin-right: 4px;
display: grid;
grid-template-rows: repeat(4, min-content);
grid-auto-flow: column;
direction: rtl;
}
padding: 6px;
}
.candidates > :not(:first-child) {
border-top: 1px solid var(--select-suggest-border-color, #eee); }
.candidates > *{
line-height: 1.2em;
padding: 0.5em 10px;
}
.candidate {
display: flex;
}
a {
display: block;
text-decoration: none;
color: inherit;
}
a:not(.mark) {
width: 100%;
}
.selected a {
background-color: var(--select-suggest-selected-bg, #222); text-decoration: underline
}
img {
height: 1.3em;
width: 1.3em;
position: relative;
object-fit: cover;
object-position: 0% 0%;
}
.disabled {
filter: grayscale(1.0) opacity(0.5);
}
.counter {
color: var(--select-suggest-information-text-color, #aaa); font-size: 80%;
font-style: italic;
}
padding: unset;
border: unset;
height: 0.5px;
transition: background 0.1s;
});function*Hf(e){if(!("nodes"in e))return;let t=0;function*r(n){for(let o of Array.isArray(n)?n:[n]){if(typeof o=="string"){t+=[...o].length;continue}switch(o.type){case"link":yield{whole:o.unit.whole,start:t},t+=[...o.unit.whole].length;break;case"indent":case"quote":t+=[...o.unit.tag].length,yield*r(o.children);break;case"deco":t+=[...o.unit.deco].length+2,yield*r(o.children),t++;break;case"strong":t+=2,yield*r(o.children),t+=2;break;default:t+=[...o.unit.whole].length;break}}}yield*r(e.nodes)}var zf=(e,t)=>{if(t.type==="unlock"){if(!e.lock)return e;let{lock:i,...a}=e;return{...a}}if(e.lock)return e;switch(t.type){case"lock":{let{lock:i,...a}=e;return{lock:!0,...a}}case"enable":return e.type==="disabled"&&e.isManuallyDisabled?{type:"ready"}:e;case"disable":return e.type==="disabled"&&e.isManuallyDisabled?e:{type:"disabled",isManuallyDisabled:!0}}if(e.type==="disabled")return e.isManuallyDisabled||!t.lines?e:{type:"ready"};if(t.type==="cancel")return e.type==="completion"?{type:"cancelled",context:e.context}:e;if(!t.lines)return{type:"disabled"};let r=Math.min(t.range.start.char,t.range.end.char),n=Math.max(t.range.start.char,t.range.end.char),o=t.lines?t.range.start.line!==t.range.end.line?
:[...t.lines[t.range.start.line].text].slice(r,n).join(""):"";if(cE(t.lines[t.position.line],o)&&e.type!=="cancelled")return{type:"completion",context:"selection",query:o,start:r,position:t.position};if(o!=="")return e.type==="completion"?{type:"ready"}:e;let s=aE(t.lines[t.position.line],t.position.char);return s?e.type==="cancelled"&&e.context==="input"?e:e.type==="completion"||t.type==="lines:changed"?{type:"completion",context:"input",query:s.whole,start:s.start,position:t.position}:e.type==="ready"?e:{type:"ready"}:e.type==="ready"?e:{type:"ready"}},aE=(e,t)=>{for(let{whole:r,start:n}of Hf(e))if(!(t<=n||n+[...r].length<=t))return{whole:r,start:n}},cE=(e,t)=>!(t.trim()===""||t.includes(
)||"codeBlock"in e||"title"in e||"tableBlock"in e&&e.tableBlock.start);var qf=()=>{let e=ve(scrapbox.Page.lines),t=ve(!1);return G(()=>{let r=()=>{t.current=!0};return scrapbox.addListener("lines:changed",r),scrapbox.addListener("layout:changed",r),()=>{scrapbox.removeListener("lines:changed",r),scrapbox.removeListener("layout:changed",r)}},[]),_(()=>(t.current&&(e.current=scrapbox.Page.lines,t.current=!1),e.current??void 0),[])};var lE=ht("scrapbox-select-suggestion:useLifecycle.ts"),Wf=()=>{let[e,t]=er(zf,{type:"ready"}),r=qf(),n=N(()=>{let i;return a=>{i!==void 0&&clearTimeout(i),i=setTimeout(()=>{let{cursor:c,selection:l}=vr();t({type:a,lines:r(),range:l.getRange({normalizeOrder:!0}),position:c.getPosition()})},a==="cursor:changed"?100:void 0)}},[]);G(()=>{let i=()=>{n("lines:changed")};scrapbox.addListener("lines:changed",i),scrapbox.addListener("layout:changed",i);let a=()=>{n("selection:changed")},c=Tm();return c.addChangeListener(a),()=>{scrapbox.removeListener("lines:changed",i),scrapbox.removeListener("layout:changed",i),c.removeChangeListener(a)}},[]),G(()=>{if(e.context!=="input")return;let i=()=>{n("cursor:changed")},a=Em();return a.addChangeListener(i),()=>a.removeChangeListener(i)},[e.context]);let[o,s]=U(e);return o!==e&&(s(e),lE.debug("Detect changes",e)),{state:e,setEnable:_(i=>t({type:i?"enable":"disable"}),[]),cancel:_(()=>t({type:"cancel"}),[]),freezeUntil:_(i=>{t({type:"lock"});let a=i();if(a instanceof Promise)return a.then(()=>{t({type:"unlock"})});t({type:"unlock"})},[]),confirmAfter:_(async i=>{let a=r();if(!a)return;t({type:"lock"});let{cursor:c,selection:l}=vr(),p=c.getPosition().line,u=a[p].text,[f,d]=i(u,c.getPosition());l.setRange({start:{line:p,char:0},end:{line:p,char:[...u].length}}),await wm(f),c.setPosition(d),c.focus(),t({type:"unlock"}),t({type:"cancel"})},[])}};var Gf=(e,t)=>{let r=e.dist-t.dist;if(r!==0)return r;let n=e.matches.map(([i])=>i).sort(),o=t.matches.map(([i])=>i).sort();for(let i=0;i<n.length;i++){let a=n[i]-(o[i]??o.length);if(a!==0)return a}let s=e.title.length-t.title.length;return s!==0?s:t.updated-e.updated};var Kf=e=>{let t=new Map,r=[...e].reverse();{let i=1;for(let a of r){t.set(a,(t.get(a)??0)|i);let c=a.toLowerCase();t.set(c,(t.get(c)??0)|i);let l=a.toUpperCase();t.set(l,(t.get(l)??0)|i),i<<=1}}let n=r.length,o=~(-1<<n),s=1<<n-1;return i=>{let a=0,c=o,l=[...i].reverse(),p=[],u=l.length;p[u]=n;for(let f of l){let d=t.get(f)??0,g=d|a,h=(d&c)+c^c|d,x=a|~(h|c),v=c&h;p[u-1]=p[u]+(x&s?1:v&s?-1:0),c=v<<1|~(g|x<<1),a=x<<1&g,u--}return p}};var pE=[0,0,0,1,1,2,2,2,2,3,3,3,3,3,3,4,4,4,4,4,4,4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6],Xf=e=>{let t=Jd(e.trim()).split(/\s+/).sort((r,n)=>n.length-r.length);if(!(t.length===0||t.every(r=>r==="")))return r=>{let n=[...r];for(let o of t)n=uE(o,n);return n}},uE=(e,t)=>{let r=[...e].length,n=pE[r],o=Kf(e);return t.flatMap(({title:s,dist:i,matches:a,...c})=>{a??=[],i??=0;let l=o(s).flatMap((u,f)=>u<=n&&a.every(([d,g])=>f+r<=d||g<f)?[[f,u]]:[]);if(l.length===0)return[];let p=l.reduce((u,[f,d])=>(u.dist<=d||(u.dist=d,u.start=f),u),{dist:r,start:0});return a.push([p.start,p.start+r-1]),[{title:s,dist:p.dist+i,matches:a,...c}]})};var dE=ht("scrapbox-select-suggestion:cancelableSearch.ts");async function*Yf(e,t,r){let n=Xf(e);if(!n)return;let o=r?.chunk??1e3,s=Math.floor(t.length/o)+1,i=0,a=new Date;try{for(;i<s;i++)await new Promise(c=>requestAnimationFrame(c)),yield[n(t.slice(i*o,(i+1)*o)),(i+1)/s]}finally{let l=new Date().getTime()-a.getTime();dE.debug(search ${(i/s*100).toPrecision(3)}% of the source for "${e}" in ${l}ms)}}function Vf(e,t){let r=null,n=null,o=(...s)=>{o.clear(),n=()=>{o.clear(),e.call(o,...s)},r=setTimeout(n,t)};return o.clear=()=>{typeof r=="number"&&(clearTimeout(r),r=null,n=null)},o.flush=()=>{n?.()},Object.defineProperty(o,"pending",{get:()=>typeof r=="number"}),o}var mE=ht("scrapbox-select-suggestion:useSearch.ts"),Jf=e=>{let t=_((o,s,i)=>{let a=!1,c=Yf(o,s,{chunk:5e3});return{run:async()=>{if(i){let f=[];for await(let[d]of c){if(a)return;f.push(...d)}n({progress:1,candidates:f});return}let l=Vf(n,500),p=!1,u=[];for await(let[f,d]of c){if(a){l.clear();return}u=[...u,...f],n({progress:d}),f.length!==0&&(l({progress:d,candidates:u}),p||(l.flush(),p=!0))}l({progress:1,candidates:u}),l.flush()},abort:()=>a=!0}},[]),[r,n]=er(N(()=>fE(t),[t]),{source:e});return[N(()=>{if(!Kr(r))return;let[o,s]=gE(r.candidates);return mE.debug("Detect changes",{progress:r.progress,items:s}),{progress:r.progress,projectScore:o,items:s}},[r]),{search:_(o=>n({query:o}),[]),update:_(o=>n({source:o}),[])}]},Kr=e=>"query"in e,fE=e=>(t,r)=>{if("query"in r){let i=Kr(t)?t.query:"";if(r.query===i)return t;let a=Kr(t)?t.job:void 0;if(!r.query)return a?.abort?.(),{source:t.source};let{run:c,abort:l}=e(r.query,t.source,!1),p=a?.abort?.()?.then?.(c)??c();return{query:r.query,source:t.source,job:{done:p,abort:()=>(l(),p)},progress:0,candidates:!i||!Kr(t)?[]:t.candidates}}if("source"in r){if(!Kr(t))return r.source===t.source?t:r;let{source:i,job:a,...c}=t;if(r.source===i)return t;let{run:l,abort:p}=e(t.query,i,!1),u=a.done.then(l);return{source:r.source,job:{done:u,abort:()=>a.abort().then(()=>(p(),u))},...c}}if(!Kr(t))return t;if(!r.candidates){let{progress:i,...a}=t;return i===r.progress?t:{progress:r.progress,...a}}let{candidates:n,progress:o,...s}=t;return n===r.candidates&&o===r.progress?t:{candidates:r.candidates??n,progress:r.progress,...s}},gE=e=>{let t=new Map,r=[];for(let n of e.sort(Gf)){let o=n.metadata.map(({project:s})=>s);for(let s of o)t.set(s,(t.get(s)??0)+.5**n.dist);r.push({title:n.title,dist:n.dist,projects:o})}return[t,r]};var Qf=(e,t)=>{let r=ve({...t});G(()=>(Object.assign(r.current,t),()=>{for(let n of Object.keys(t))delete r.current[n]}),[...Object.keys(t)].sort().map(n=>t[n])),G(()=>{e(r.current)},[e])};var hE={selectNext:()=>!1,selectPrev:()=>!1,selectFirst:()=>!1,selectLast:()=>!1,confirm:()=>!1,cancel:()=>!1},Zf=e=>{let t=Uf(e.projects),[r,{update:n,search:o}]=Jf(t),{state:s,setEnable:i,...a}=Wf();n(t),o(s.type==="completion"?s.context==="input"?s.query.slice(1,-1):s.query:"");let[c,l]=U(),{callback:p,style:u,...f}=e;return Qf(p,{enable:_(()=>i(!0),[]),disable:_(()=>i(!1),[]),...s.type!=="completion"||!c?hE:c}),m(W,null,m(Bf,null),m(Ff,{style:u}),s.type==="completion"&&r&&m(bf,{callback:l,...r,...s,...a,...f}))};var eg=e=>{let t=document.createElement("div");t.dataset.userscriptName="scrapbox-select-suggestion";let r=t.attachShadow({mode:"open"});document.body.append(t);let{limit:n=5,debug:o=!1,mark:s={},style:i="",enableSelfProjectOnStart:a=!0}=e??{},c=new Set([...a?[scrapbox.Project.name]:[],...e?.projects??[scrapbox.Project.name]]);return Ni(o),Ya(o),new Promise(l=>ye(m(Zf,{limit:n,projects:c,mark:s,style:i,callback:l,enableSelfProjectOnStart:a}),r))};var Ze=e=>e.flatMap(t=>{let r=t.slice(1),n=Math.min(...r.map(o=>o.text.length-o.text.trimStart().length));return r.map(o=>o.text.slice(n))}).join(
).trim();function*tg(e,t){for(let[r,n]of t.entries()){let o=e.get(r);if(o&&Ze(o.blocks)===Ze(n)){yield{changed:!1,filename:r};continue}yield{changed:!0,filename:r}}for(let r of e.keys())t.has(r)||(yield{changed:!0,filename:r})}var rg=e=>{let t=new Map;if(e.length===0)return t;let r=tt(e.map(o=>o.text).join(
),{hasTitle:!0}),n=0;for(let o of r)switch(o.type){case"title":case"line":n++;break;case"table":n+=o.cells.length+1;break;case"codeBlock":{let s=t.get(o.fileName)??[],i=o.content.split(
).length+1;s.push(e.slice(n,n+i)),t.set(o.fileName,s),n+=i;break}}return t};var ng=e=>{let t,r,n=async()=>{for(;t;){let[o,s]=t;t=void 0;try{let i=await e(...o);s({type:"resolve",value:i})}catch(i){s({type:"reject",value:i})}}r=void 0};return(...o)=>{let{resolve:s,promise:i}=Promise.withResolvers();return t?.[1]?.({type:"cancel"}),t=[o,s],r??=n(),i}};var Cs=class{constructor(t,r){this._filename=t;this._preview=ng(async(n,o,s)=>(this._dispose=await r(s?{filename:this.filename,before:n,after:o,render:(...i)=>{s.textContent="",s.append(...i)}}:{filename:this.filename,before:n}),!1))}get filename(){return this._filename}get blocks(){return this._blocks??[]}async update(t){if(await this._dispose?.(),!t||Ze(t)===""){let a=await this._preview(this.blocks);if(a.type==="cancel")return a;if(a.type==="reject")throw a.value;return this._area?.remove?.(),this._style?.remove?.(),this._area=void 0,this._style=void 0,this._blocks=void 0,{type:"resolve",value:!0}}let r=this.blocks;this._blocks=t,this.makeStyle();let n=this.makeArea(),o=t.at(0)?.at?.(-1)?.id,s=tr(o);if(!s)throw new Error("div.lines#L${o}" could not be found.);s.insertAdjacentElement("afterend",n);let i=()=>{let a=s.getElementsByClassName("indent")[0];a instanceof HTMLElement&&(n.style.marginLeft=a.style.marginLeft)};return this._observer?.disconnect?.(),i(),this._observer=new MutationObserver(i),this._observer.observe(s,{childList:!0,subtree:!0}),this._preview(r,t,n)}makeArea(){if(this._area)return this._area;let t=document.createElement("div");return t.classList.add("scrap-run"),t.dataset.filename=this.filename,this._area=t,t}makeStyle(){let t=this.blocks.flatMap(n=>n.slice(1).map(({id:o})=>#L${o})),r=this.blocks.flatMap(n=>n.map(({id:o})=>#L${o}));this._style||(this._style=document.createElement("style"),document.head.append(this._style)),this._style.textContent=.lines:not(:has(:is(${...r.join(",")}).cursor-line)) :is(${...t.join(",")}){display:none}}_blocks;_dispose;_preview;_area;_observer;_style};var og=({previewers:e})=>{let t=new Map,r=()=>{let s=rg(Ge());for(let{changed:i,filename:a}of tg(t,s)){if(!i)continue;let c=s.get(a),l=t.get(a);if(!l){if(!c)continue;let p=e.find(({when:u})=>u.test(a))?.preview;if(!p)continue;l=new Cs(a,p),t.set(a,l)}l.update(c).then(p=>{switch(p.type){case"resolve":p.value&&t.delete(a);return;case"reject":throw p.value;case"cancel":return}})}},n=()=>{if(scrapbox.Layout!=="page"){scrapbox.off("lines:changed",r);return}r(),scrapbox.on("lines:changed",r)};n(),scrapbox.on("page:changed",n);let o=document.createElement("style");return o.textContent=".scrap-run{display:block;width:95%}",document.head.append(o),()=>{scrapbox.off("page:changed",n),o.remove()}};var Dn=e=>{let t=new FileReader,r=new Promise(n=>t.onload=()=>n(t.result));return t.readAsDataURL(e),r};var sg=async e=>{if(!("after"in e))return;let t=Ze(e.after),n=new DOMParser().parseFromString(t,"image/svg+xml").querySelector("parsererror");if(n){let i=document.createElement("pre"),a=document.createElement("code");a.innerText=n.innerHTML,i.append(a),e.render(i);return}let o=await Dn(new Blob([t],{type:"image/svg+xml"})),s=document.createElement("img");s.src=o,e.render(s)};var ic={};rn(ic,{default:()=>ug});var ig=globalThis||(typeof window<"u"?window:self),GE=Object.create,sc=Object.defineProperty,KE=Object.getOwnPropertyDescriptor,XE=Object.getOwnPropertyNames,YE=Object.getPrototypeOf,VE=Object.prototype.hasOwnProperty,JE=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),QE=(e,t)=>{for(var r in t)sc(e,r,{get:t[r],enumerable:!0})},oc=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of XE(t))!VE.call(e,o)&&o!==r&&sc(e,o,{get:()=>t[o],enumerable:!(n=KE(t,o))||n.enumerable});return e},ZE=(e,t,r)=>(oc(e,t,"default"),r&&oc(r,t,"default")),cg=(e,t,r)=>(r=e!=null?GE(YE(e)):{},oc(t||!e||!e.__esModule?sc(r,"default",{value:e,enumerable:!0}):r,e)),lg=JE((e,t)=>{var r;typeof window<"u"?r=window:typeof ig<"u"?r=ig:typeof self<"u"?r=self:r={},t.exports=r}),pg={};QE(pg,{default:()=>ug});var eT=cg(lg());ZE(pg,cg(lg()));var{default:ag,...tT}=eT,ug=ag!==void 0?ag:tT;var lc={};rn(lc,{default:()=>hg});var rT=Object.create,cc=Object.defineProperty,nT=Object.getOwnPropertyDescriptor,oT=Object.getOwnPropertyNames,sT=Object.getPrototypeOf,iT=Object.prototype.hasOwnProperty,aT=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),cT=(e,t)=>{for(var r in t)cc(e,r,{get:t[r],enumerable:!0})},ac=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of oT(t))!iT.call(e,o)&&o!==r&&cc(e,o,{get:()=>t[o],enumerable:!(n=nT(t,o))||n.enumerable});return e},lT=(e,t,r)=>(ac(e,t,"default"),r&&ac(r,t,"default")),mg=(e,t,r)=>(r=e!=null?rT(sT(e)):{},ac(t||!e||!e.__esModule?cc(r,"default",{value:e,enumerable:!0}):r,e)),fg=aT((e,t)=>{t.exports=n;var r=Object.prototype.toString;function n(o){if(!o)return!1;var s=r.call(o);return s==="[object Function]"||typeof o=="function"&&s!=="[object RegExp]"||typeof window<"u"&&(o===window.setTimeout||o===window.alert||o===window.confirm||o===window.prompt)}}),gg={};cT(gg,{default:()=>hg});var pT=mg(fg());lT(gg,mg(fg()));var{default:dg,...uT}=pT,hg=dg!==void 0?dg:uT;var dc={};rn(dc,{default:()=>wg});var dT=Object.create,uc=Object.defineProperty,mT=Object.getOwnPropertyDescriptor,fT=Object.getOwnPropertyNames,gT=Object.getPrototypeOf,hT=Object.prototype.hasOwnProperty,xT=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),bT=(e,t)=>{for(var r in t)uc(e,r,{get:t[r],enumerable:!0})},pc=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of fT(t))!hT.call(e,o)&&o!==r&&uc(e,o,{get:()=>t[o],enumerable:!(n=mT(t,o))||n.enumerable});return e},yT=(e,t,r)=>(pc(e,t,"default"),r&&pc(r,t,"default")),bg=(e,t,r)=>(r=e!=null?dT(gT(e)):{},pc(t||!e||!e.__esModule?uc(r,"default",{value:e,enumerable:!0}):r,e)),yg=xT((e,t)=>{var r=function(o){return o.replace(/^\s+|\s+$/g,"")},n=function(o){return Object.prototype.toString.call(o)==="[object Array]"};t.exports=function(o){if(!o)return{};for(var s={},i=r(o).split( ),a=0;a<i.length;a++){var c=i[a],l=c.indexOf(":"),p=r(c.slice(0,l)).toLowerCase(),u=r(c.slice(l+1));typeof s[p]>"u"?s[p]=u:n(s[p])?s[p].push(u):s[p]=[s[p],u]}return s}}),vg={};bT(vg,{default:()=>wg});var vT=bg(yg());yT(vg,bg(yg()));var{default:xg,...wT}=vT,wg=xg!==void 0?xg:wT;var gc={};rn(gc,{default:()=>Sg});var kT=Object.create,fc=Object.defineProperty,ET=Object.getOwnPropertyDescriptor,TT=Object.getOwnPropertyNames,LT=Object.getPrototypeOf,ST=Object.prototype.hasOwnProperty,PT=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),RT=(e,t)=>{for(var r in t)fc(e,r,{get:t[r],enumerable:!0})},mc=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of TT(t))!ST.call(e,o)&&o!==r&&fc(e,o,{get:()=>t[o],enumerable:!(n=ET(t,o))||n.enumerable});return e},_T=(e,t,r)=>(mc(e,t,"default"),r&&mc(r,t,"default")),Eg=(e,t,r)=>(r=e!=null?kT(LT(e)):{},mc(t||!e||!e.__esModule?fc(r,"default",{value:e,enumerable:!0}):r,e)),Tg=PT((e,t)=>{t.exports=n;var r=Object.prototype.hasOwnProperty;function n(){for(var o={},s=0;s<arguments.length;s++){var i=arguments[s];for(var a in i)r.call(i,a)&&(o[a]=i[a])}return o}}),Lg={};RT(Lg,{default:()=>Sg});var CT=Eg(Tg());_T(Lg,Eg(Tg()));var{default:kg,...MT}=CT,Sg=kg!==void 0?kg:MT;var Xr=e=>{let t=n=>typeof n.default<"u"?n.default:n,r=n=>Object.assign({},n);switch(e){case"global/window":return t(ic);case"is-function":return t(lc);case"parse-headers":return t(dc);case"xtend":return t(gc);default:throw new Error('module "'+e+'" not found')}},DT=Object.create,xc=Object.defineProperty,IT=Object.getOwnPropertyDescriptor,NT=Object.getOwnPropertyNames,OT=Object.getPrototypeOf,$T=Object.prototype.hasOwnProperty,Ms=(e=>typeof Xr<"u"?Xr:typeof Proxy<"u"?new Proxy(e,{get:(t,r)=>(typeof Xr<"u"?Xr:t)[r]}):e)(function(e){if(typeof Xr<"u")return Xr.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')}),jT=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),AT=(e,t)=>{for(var r in t)xc(e,r,{get:t[r],enumerable:!0})},hc=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of NT(t))!$T.call(e,o)&&o!==r&&xc(e,o,{get:()=>t[o],enumerable:!(n=IT(t,o))||n.enumerable});return e},UT=(e,t,r)=>(hc(e,t,"default"),r&&hc(r,t,"default")),Rg=(e,t,r)=>(r=e!=null?DT(OT(e)):{},hc(t||!e||!e.__esModule?xc(r,"default",{value:e,enumerable:!0}):r,e)),_g=jT((e,t)=>{"use strict";var r=Ms("global/window"),n=Ms("is-function"),o=Ms("parse-headers"),s=Ms("xtend");t.exports=l,t.exports.default=l,l.XMLHttpRequest=r.XMLHttpRequest||f,l.XDomainRequest="withCredentials"in new l.XMLHttpRequest?l.XMLHttpRequest:r.XDomainRequest,i(["get","put","post","patch","head","delete"],function(d){l[d==="delete"?"del":d]=function(g,h,x){return h=c(g,h,x),h.method=d.toUpperCase(),p(h)}});function i(d,g){for(var h=0;h<d.length;h++)g(d[h])}function a(d){for(var g in d)if(d.hasOwnProperty(g))return!1;return!0}function c(d,g,h){var x=d;return n(g)?(h=g,typeof d=="string"&&(x={uri:d})):x=s(g,{uri:d}),x.callback=h,x}function l(d,g,h){return g=c(d,g,h),p(g)}function p(d){if(typeof d.callback>"u")throw new Error("callback argument missing");var g=!1,h=function(D,j,M){g||(g=!0,d.callback(D,j,M))};function x(){b.readyState===4&&setTimeout(S,0)}function v(){var D=void 0;if(b.response?D=b.response:D=b.responseText||u(b),k)try{D=JSON.parse(D)}catch{}return D}function L(D){return clearTimeout(R),D instanceof Error||(D=new Error(""+(D||"Unknown XMLHttpRequest Error"))),D.statusCode=0,h(D,C)}function S(){if(!w){var D;clearTimeout(R),d.useXDR&&b.status===void 0?D=200:D=b.status===1223?204:b.status;var j=C,M=null;return D!==0?(j={body:v(),statusCode:D,method:$,headers:{},url:O,rawRequest:b},b.getAllResponseHeaders&&(j.headers=o(b.getAllResponseHeaders()))):M=new Error("Internal XMLHttpRequest Error"),h(M,j,j.body)}}var b=d.xhr||null;b||(d.cors||d.useXDR?b=new l.XDomainRequest:b=new l.XMLHttpRequest);var E,w,O=b.url=d.uri||d.url,$=b.method=d.method||"GET",B=d.body||d.data,P=b.headers=d.headers||{},T=!!d.sync,k=!1,R,C={body:void 0,headers:{},statusCode:0,method:$,url:O,rawRequest:b};if("json"in d&&d.json!==!1&&(k=!0,P.accept||P.Accept||(P.Accept="application/json"),$!=="GET"&&$!=="HEAD"&&(P["content-type"]||P["Content-Type"]||(P["Content-Type"]="application/json"),B=JSON.stringify(d.json===!0?B:d.json))),b.onreadystatechange=x,b.onload=S,b.onerror=L,b.onprogress=function(){},b.onabort=function(){w=!0},b.ontimeout=L,b.open($,O,!T,d.username,d.password),T||(b.withCredentials=!!d.withCredentials),!T&&d.timeout>0&&(R=setTimeout(function(){if(!w){w=!0,b.abort("timeout");var D=new Error("XMLHttpRequest timeout");D.code="ETIMEDOUT",L(D)}},d.timeout)),b.setRequestHeader)for(E in P)P.hasOwnProperty(E)&&b.setRequestHeader(E,P[E]);else if(d.headers&&!a(d.headers))throw new Error("Headers cannot be set on an XDomainRequest object");return"responseType"in d&&(b.responseType=d.responseType),"beforeSend"in d&&typeof d.beforeSend=="function"&&d.beforeSend(b),b.send(B||null),b}function u(d){try{if(d.responseType==="document")return d.responseXML;var g=d.responseXML&&d.responseXML.documentElement.nodeName==="parsererror";if(d.responseType===""&&!g)return d.responseXML}catch{}return null}function f(){}}),Cg={};AT(Cg,{default:()=>Ds});var FT=Rg(_g());UT(Cg,Rg(_g()));var{default:Pg,...BT}=FT,Ds=Pg!==void 0?Pg:BT;var Is=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},PZ=function(){function e(r){this.value=r}function t(r){var n,o;function s(c,l){return new Promise(function(p,u){var f={key:c,arg:l,resolve:p,reject:u,next:null};o?o=o.next=f:(n=o=f,i(c,l))})}function i(c,l){try{var p=r[c](l),u=p.value;u instanceof e?Promise.resolve(u.value).then(function(f){i("next",f)},function(f){i("throw",f)}):a(p.done?"return":"normal",p.value)}catch(f){a("throw",f)}}function a(c,l){switch(c){case"return":n.resolve({value:l,done:!0});break;case"throw":n.reject(l);break;default:n.resolve({value:l,done:!1});break}n=n.next,n?i(n.key,n.arg):o=null}this._invoke=s,typeof r.return!="function"&&(this.return=void 0)}return typeof Symbol=="function"&&Symbol.asyncIterator&&(t.prototype[Symbol.asyncIterator]=function(){return this}),t.prototype.next=function(r){return this._invoke("next",r)},t.prototype.throw=function(r){return this._invoke("throw",r)},t.prototype.return=function(r){return this._invoke("return",r)},{wrap:function(r){return function(){return new t(r.apply(this,arguments))}},await:function(r){return new e(r)}}}(),Ig=function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")},Ng=function(){function e(t,r){for(var n=0;n<r.length;n++){var o=r[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(t,o.key,o)}}return function(t,r,n){return r&&e(t.prototype,r),n&&e(t,n),t}}(),bc=function(e){if(Array.isArray(e)){for(var t=0,r=Array(e.length);t<e.length;t++)r[t]=e[t];return r}else return Array.from(e)},In="";function HT(e){return
<table style="background-color: #8CE; width: 100%; height: 100%;"><tr> <td align="center">
<div style="display: table-cell; vertical-align: middle;">
<div style="">+e+</div>
</div>
</td></tr></table>
}var zT=
This page requires a browser that supports WebGL.<br/>
,qT=
It does not appear your computer can support WebGL.<br/>
,WT=1,GT=2;function KT(e,t,r){function n(i){var a=e.parentNode;a&&(a.innerHTML=HT(i))}function o(i,a){typeof r=="function"?r(i):n(a)}if(!window.WebGLRenderingContext)return o(WT,zT),null;var s=XT(e,t);return s?s.getExtension("OES_standard_derivatives"):o(GT,qT),s}function XT(e,t){for(var r=["webgl","experimental-webgl"],n=null,o=0;o<r.length;++o)try{n=e.getContext(r[o],t)}catch{if(n)break}return n}function Yr(e,t,r,n){var o=e.gl,s=o.createShader(r);o.shaderSource(s,t),o.compileShader(s);var i=o.getShaderParameter(s,o.COMPILE_STATUS);return i?s:(In=o.getShaderInfoLog(s),console.error("*** Error compiling shader "+s+":"+In),e.trigger("error",{shader:s,source:t,type:r,error:In,offset:n||0}),o.deleteShader(s),null)}function Mg(e,t,r,n){for(var o=e.gl,s=o.createProgram(),i=0;i<t.length;++i)o.attachShader(s,t[i]);if(r)for(var a=0;a<r.length;++a)o.bindAttribLocation(s,n?n[a]:a,r[a]);o.linkProgram(s);var c=o.getProgramParameter(s,o.LINK_STATUS);return c?s:(In=o.getProgramInfoLog(s),console.log("Error in program linking:"+In),o.deleteProgram(s),null)}function yc(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null,r=[];for(var n in e){var o=e[n],s=void 0;if(t&&(n=t+"."+n),typeof o=="number")r.push({type:"float",method:"1f",name:n,value:o});else if(Array.isArray(o)){if(typeof o[0]=="number")o.length===1?r.push({type:"float",method:"1f",name:n,value:o}):o.length>=2&&o.length<=4?r.push({type:"vec"+o.length,method:o.length+"fv",name:n,value:o}):o.length>4&&r.push({type:"float[]",method:"1fv",name:n+"[0]",value:o});else if(typeof o[0]=="string")r.push({type:"sampler2D",method:"1i",name:n,value:o});else if(Array.isArray(o[0])&&typeof o[0][0]=="number"){if(o[0].length>=2&&o[0].length<=4)for(s=0;s<o.length;s++)r.push({type:"vec"+o[0].length,method:o[s].length+"fv",name:n+"["+s+"]",value:o[s]})}else if(Is(o[0])==="object")for(s=0;s<o.length;s++)r.push.apply(r,bc(yc(o[s],n+"["+s+"]")))}else typeof o=="boolean"?r.push({type:"bool",method:"1i",name:n,value:o}):typeof o=="string"?r.push({type:"sampler2D",method:"1i",name:n,value:o}):(typeof o>"u"?"undefined":Is(o))==="object"&&r.push.apply(r,bc(yc(o,n)))}return r}function YT(e){var t=e.getBoundingClientRect();return t.top+t.height>0&&t.top<(window.innerHeight||document.documentElement.clientHeight)}function Dg(e){return(e&e-1)===0}function VT(){return/^((?!chrome|android).)*safari/i.test(navigator.userAgent)}function JT(e,t){return e&&t?e.toString()!==t.toString():!1}function QT(e){var t=new XMLHttpRequest;return t.open("GET",e,!1),t.send(),t.status==200?t.responseText:""}function Og(e){var t=new Set;return Object.assign(e,{on:function(r,n){var o={};o[r]=n,t.add(o)},off:function(r,n){if(n){var o={};o[r]=n,t.delete(o)}else{var s=!0,i=!1,a=void 0;try{for(var c=t[Symbol.iterator](),l;!(s=(l=c.next()).done);s=!0){var p=l.value,u=!0,f=!1,d=void 0;try{for(var g=Object.keys(p)[Symbol.iterator](),h;!(u=(h=g.next()).done);u=!0){var x=h.value;if(x===r){t.delete(p);return}}}catch(v){f=!0,d=v}finally{try{!u&&g.return&&g.return()}finally{if(f)throw d}}}}catch(v){i=!0,a=v}finally{try{!s&&c.return&&c.return()}finally{if(i)throw a}}}},listSubscriptions:function(){var r=!0,n=!1,o=void 0;try{for(var s=t[Symbol.iterator](),i;!(r=(i=s.next()).done);r=!0){var a=i.value;console.log(a)}}catch(c){n=!0,o=c}finally{try{!r&&s.return&&s.return()}finally{if(n)throw o}}},subscribe:function(r){t.add(r)},unsubscribe:function(r){t.delete(r)},unsubscribeAll:function(){t.clear()},trigger:function(r){for(var n=arguments.length,o=Array(n>1?n-1:0),s=1;s<n;s++)o[s-1]=arguments[s];var i=!0,a=!1,c=void 0;try{for(var l=t[Symbol.iterator](),p;!(i=(p=l.next()).done);i=!0){var u=p.value;typeof u[r]=="function"&&u[r].apply(u,bc(o))}}catch(f){a=!0,c=f}finally{try{!i&&l.return&&l.return()}finally{if(a)throw c}}}})}var vc=function(){function e(t,r){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Ig(this,e),Og(this),this.gl=t,this.texture=t.createTexture(),this.texture&&(this.valid=!0),this.bind(),this.name=r,this.source=null,this.sourceType=null,this.loading=null,this.setData(1,1,new Uint8Array([0,0,0,255]),{filtering:"linear"}),this.setFiltering(n.filtering),this.load(n)}return Ng(e,[{key:"destroy",value:function(){this.valid&&(this.gl.deleteTexture(this.texture),this.texture=null,delete this.data,this.data=null,this.valid=!1)}},{key:"bind",value:function(t){this.valid&&(typeof t=="number"&&e.activeUnit!==t&&(this.gl.activeTexture(this.gl.TEXTURE0+t),e.activeUnit=t),e.activeTexture!==this.texture&&(this.gl.bindTexture(this.gl.TEXTURE_2D,this.texture),e.activeTexture=this.texture))}},{key:"load",value:function(){var t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};this.loading=null,typeof t.url=="string"?(this.url===void 0||t.url!==this.url)&&this.setUrl(t.url,t):t.element?this.setElement(t.element,t):t.data&&t.width&&t.height&&this.setData(t.width,t.height,t.data,t)}},{key:"setUrl",value:function(t){var r=this,n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(this.valid)return this.url=t,this.source=this.url,this.sourceType="url",this.loading=new Promise(function(o,s){var i=t.split(".").pop().toLowerCase(),a=i==="ogv"||i==="webm"||i==="mp4",c=void 0;a?(c=document.createElement("video"),c.autoplay=!0,c.muted=!0,setTimeout(function(){c.play()},1),n.filtering="nearest"):c=new Image,c.onload=function(){try{r.setElement(c,n)}catch(l){console.log("Texture '"+r.name+"': failed to load url: '"+r.source+"'",l,n)}o(r)},c.onerror=function(l){console.log("Texture '"+r.name+"': failed to load url: '"+r.source+"'",l,n),o(r)},VT()&&r.source.slice(0,5)==="data:"||(c.crossOrigin="anonymous"),c.src=r.source,a&&r.setElement(c,n)}),this.loading}},{key:"setData",value:function(t,r,n){var o=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{};return this.width=t,this.height=r,this.source=n,this.sourceType="data",this.update(o),this.setFiltering(o),this.loading=Promise.resolve(this),this.loading}},{key:"setElement",value:function(t,r){var n=this,o=t;if(typeof t=="string"&&(t=document.querySelector(t)),t instanceof HTMLCanvasElement||t instanceof HTMLImageElement||t instanceof HTMLVideoElement)this.source=t,this.sourceType="element",t instanceof HTMLVideoElement?(this.width=this.source.videoWidth,this.height=this.source.videoHeight,t.addEventListener("canplaythrough",function(){n.intervalID=setInterval(function(){n.update(r)},15)},!0),t.addEventListener("ended",function(){t.currentTime=0,t.play()},!0)):this.update(r),this.setFiltering(r);else{var s="the 'element' parameter (element: "+JSON.stringify(o)+") must be a CSS ";s+="selector string, or a <canvas>, <image> or <video> object",console.log("Texture '"+this.name+"': "+s,r)}return this.loading=Promise.resolve(this),this.loading}},{key:"update",value:function(){var t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};this.valid&&(this.bind(),this.gl.pixelStorei(this.gl.UNPACK_FLIP_Y_WEBGL,t.UNPACK_FLIP_Y_WEBGL!==!1),this.gl.pixelStorei(this.gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL,t.UNPACK_PREMULTIPLY_ALPHA_WEBGL||!1),this.sourceType==="element"&&(this.source instanceof HTMLCanvasElement||this.source instanceof HTMLVideoElement||this.source instanceof HTMLImageElement&&this.source.complete)?(this.source instanceof HTMLVideoElement?(this.width=this.source.videoWidth,this.height=this.source.videoHeight):(this.width=this.source.width,this.height=this.source.height),this.gl.texImage2D(this.gl.TEXTURE_2D,0,this.gl.RGBA,this.gl.RGBA,this.gl.UNSIGNED_BYTE,this.source)):this.sourceType==="data"&&this.gl.texImage2D(this.gl.TEXTURE_2D,0,this.gl.RGBA,this.width,this.height,0,this.gl.RGBA,this.gl.UNSIGNED_BYTE,this.source),this.trigger("loaded",this))}},{key:"setFiltering",value:function(){var t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};if(this.valid){this.powerOf2=Dg(this.width)&&Dg(this.height),this.filtering=t.filtering||"linear";var r=this.gl;this.bind(),this.powerOf2?(r.texParameteri(r.TEXTURE_2D,r.TEXTURE_WRAP_S,t.TEXTURE_WRAP_S||r.REPEAT),r.texParameteri(r.TEXTURE_2D,r.TEXTURE_WRAP_T,t.TEXTURE_WRAP_T||r.REPEAT),this.filtering==="mipmap"?(r.texParameteri(r.TEXTURE_2D,r.TEXTURE_MIN_FILTER,r.LINEAR_MIPMAP_LINEAR),r.texParameteri(r.TEXTURE_2D,r.TEXTURE_MAG_FILTER,r.LINEAR),r.generateMipmap(r.TEXTURE_2D)):this.filtering==="linear"?(r.texParameteri(r.TEXTURE_2D,r.TEXTURE_MIN_FILTER,r.LINEAR),r.texParameteri(r.TEXTURE_2D,r.TEXTURE_MAG_FILTER,r.LINEAR)):this.filtering==="nearest"&&(r.texParameteri(r.TEXTURE_2D,r.TEXTURE_MIN_FILTER,r.NEAREST),r.texParameteri(r.TEXTURE_2D,r.TEXTURE_MAG_FILTER,r.NEAREST))):(r.texParameteri(r.TEXTURE_2D,r.TEXTURE_WRAP_S,r.CLAMP_TO_EDGE),r.texParameteri(r.TEXTURE_2D,r.TEXTURE_WRAP_T,r.CLAMP_TO_EDGE),this.filtering==="mipmap"&&(this.filtering="linear"),this.filtering==="nearest"?(r.texParameteri(r.TEXTURE_2D,r.TEXTURE_MIN_FILTER,r.NEAREST),r.texParameteri(r.TEXTURE_2D,r.TEXTURE_MAG_FILTER,r.NEAREST)):(r.texParameteri(r.TEXTURE_2D,r.TEXTURE_MIN_FILTER,r.LINEAR),r.texParameteri(r.TEXTURE_2D,r.TEXTURE_MAG_FILTER,r.LINEAR)))}}}]),e}();vc.getMaxTextureSize=function(e){return e.getParameter(e.MAX_TEXTURE_SIZE)};vc.activeUnit=-1;var $g=function(){function e(t,r,n){var o=this;Ig(this,e),Og(this),r=r||{},n=n||{},t.hasAttribute("data-fullscreen")&&(t.getAttribute("data-fullscreen")=="1"||t.getAttribute("data-fullscreen")=="true")?(this.width=window.innerWidth,this.height=window.innerHeight,t.width=window.innerWidth,t.height=window.innerHeight):(this.width=t.clientWidth,this.height=t.clientHeight),this.canvas=t,this.gl=void 0,this.deps={},this.program=void 0,this.textures={},this.buffers={},this.uniforms={},this.vbo={},this.isValid=!1,this.animationFrameRequest=void 0,this.BUFFER_COUNT=0,this.vertexString=r.vertexString||
precision mediump float;
attribute vec2 a_position;
attribute vec2 a_texcoord;
varying vec2 v_texcoord;
void main() {
gl_Position = vec4(a_position, 0.0, 1.0);
v_texcoord = a_texcoord;
}
,this.fragmentString=r.fragmentString||
precision mediump float;
varying vec2 v_texcoord;
void main(){
gl_FragColor = vec4(0.0);
}
;var s=KT(t,r,n.onError);if(!s)return;if(this.gl=s,this.timeLoad=this.timePrev=performance.now(),this.timeDelta=0,this.forceRender=!0,this.paused=!1,this.realToCSSPixels=window.devicePixelRatio||1,t.style.backgroundColor=r.backgroundColor||"rgba(1,1,1,0)",t.hasAttribute("data-fragment"))this.fragmentString=t.getAttribute("data-fragment");else if(t.hasAttribute("data-fragment-url")){var i=t.getAttribute("data-fragment-url");Ds.get(i,function(h,x,v){o.load(v,o.vertexString)})}if(t.hasAttribute("data-vertex"))this.vertexString=t.getAttribute("data-vertex");else if(t.hasAttribute("data-vertex-url")){var a=t.getAttribute("data-vertex-url");Ds.get(a,function(h,x,v){o.load(o.fragmentString,v)})}if(this.load(),!this.program)return;var c=s.getAttribLocation(this.program,"a_texcoord");this.vbo.texCoords=s.createBuffer(),this.gl.bindBuffer(s.ARRAY_BUFFER,this.vbo.texCoords),this.gl.bufferData(s.ARRAY_BUFFER,new Float32Array([0,0,1,0,0,1,0,1,1,0,1,1]),s.STATIC_DRAW),this.gl.enableVertexAttribArray(c),this.gl.vertexAttribPointer(c,2,s.FLOAT,!1,0,0);var l=s.getAttribLocation(this.program,"a_position");if(this.vbo.vertices=s.createBuffer(),this.gl.bindBuffer(s.ARRAY_BUFFER,this.vbo.vertices),this.gl.bufferData(s.ARRAY_BUFFER,new Float32Array([-1,-1,1,-1,-1,1,-1,1,1,-1,1,1]),s.STATIC_DRAW),this.gl.enableVertexAttribArray(l),this.gl.vertexAttribPointer(l,2,s.FLOAT,!1,0,0),t.hasAttribute("data-textures")){var p=t.getAttribute("data-textures").split(",");for(var u in p)this.setUniform("u_tex"+u,p[u])}var f={x:0,y:0};document.addEventListener("mousemove",function(h){f.x=h.clientX||h.pageX,f.y=h.clientY||h.pageY},!1);var d=this;function g(){d.nMouse>1&&d.setMouse(f),d.resize()&&(d.forceRender=!0),d.render(),d.animationFrameRequest=window.requestAnimationFrame(g)}return this.setMouse({x:0,y:0}),g(),this}return Ng(e,[{key:"destroy",value:function(){cancelAnimationFrame(this.animationFrameRequest),this.animated=!1,this.isValid=!1;for(var t in this.textures)t.destroy&&t.destroy();this.textures={};for(var r in this.attribs)this.gl.deleteBuffer(this.attribs[r]);this.gl.useProgram(null),this.gl.deleteProgram(this.program);for(var n in this.buffers){var o=this.buffers[n];this.gl.deleteProgram(o.program)}this.program=null,this.gl=null}},{key:"load",value:function(t,r){var n=this;r&&(this.vertexString=r),t&&(this.fragmentString=t);var o=this.fragmentString.split(/\r?\n/);this.fragmentString=#define PLATFORM_WEBGL ,o.forEach(function(h,x){var v=h.trim();if(v.startsWith('#include "lygia')){var L=v.substring(15).replace(/\'|\"|\;|\s/g,"");if(L.endsWith("glsl")){if(n.deps[L]===void 0){var S="https://lygia.xyz"+L;n.deps[L]=QT(S)}n.fragmentString+=n.deps[L]+
}}else n.fragmentString+=h+
}),this.animated=!1,this.nDelta=(this.fragmentString.match(/u_delta/g)||[]).length,this.nTime=(this.fragmentString.match(/u_time/g)||[]).length,this.nDate=(this.fragmentString.match(/u_date/g)||[]).length,this.nMouse=(this.fragmentString.match(/u_mouse/g)||[]).length,this.animated=this.nDate>1||this.nTime>1||this.nMouse>1;var s=this.fragmentString.search(/sampler2D/g);if(s)for(var i=this.fragmentString.split(
),a=0;a<i.length;a++){var c=i[a].match(/uniform\s*sampler2D\s*([\w]*);\s*\/\/\s*([\w|\:\/\/|\.|\-|\_]*)/i);if(c){var l=c[2].split(".").pop().toLowerCase();c[1]&&c[2]&&(l==="jpg"||l==="jpeg"||l==="png"||l==="ogv"||l==="webm"||l==="mp4")&&this.setUniform(c[1],c[2])}var p=i[a].match(/\s*void\s*main\s*/g);if(p)break}var u=Yr(this,this.vertexString,this.gl.VERTEX_SHADER),f=Yr(this,this.fragmentString,this.gl.FRAGMENT_SHADER);f?this.isValid=!0:(f=Yr(this,void main(){
gl_FragColor = vec4(1.0);
},this.gl.FRAGMENT_SHADER),this.isValid=!1);var d=Mg(this,[u,f]);this.gl.useProgram(d),this.gl.deleteShader(u),this.gl.deleteShader(f),this.program=d,this.change=!0,this.BUFFER_COUNT=0;var g=this.getBuffers(this.fragmentString);Object.keys(g).length&&this.loadPrograms(g),this.buffers=g,this.texureIndex=this.BUFFER_COUNT,this.trigger("load",{}),this.forceRender=!0,this.render()}},{key:"test",value:function(t,r,n){var o=this.vertexString,s=this.fragmentString,i=this.paused,a=this.gl.getExtension("EXT_disjoint_timer_query"),c=a.createQueryEXT(),l=this.isValid;(r||n)&&(this.load(r,n),l=this.isValid,this.forceRender=!0,this.render()),this.paused=!0,a.beginQueryEXT(a.TIME_ELAPSED_EXT,c),this.forceRender=!0,this.render(),a.endQueryEXT(a.TIME_ELAPSED_EXT);var p=this;function u(){p.paused=i,(r||n)&&p.load(s,o)}function f(){p.forceRender=!0,p.render();var d=a.getQueryObjectEXT(c,a.QUERY_RESULT_AVAILABLE_EXT),g=p.gl.getParameter(a.GPU_DISJOINT_EXT);if(d&&!g){var h={wasValid:l,frag:r||p.fragmentString,vert:n||p.vertexString,timeElapsedMs:a.getQueryObjectEXT(c,a.QUERY_RESULT_EXT)/1e6};u(),t(h)}else window.requestAnimationFrame(f)}f()}},{key:"loadTexture",value:function(t,r,n){var o=this;n||(n={}),typeof r=="string"?n.url=r:(typeof r>"u"?"undefined":Is(r))==="object"&&r.data&&r.width&&r.height?(n.data=r.data,n.width=r.width,n.height=r.height):(typeof r>"u"?"undefined":Is(r))==="object"&&(n.element=r),this.textures[t]?this.textures[t]&&(this.textures[t].load(n),this.textures[t].on("loaded",function(s){o.forceRender=!0})):(this.textures[t]=new vc(this.gl,t,n),this.textures[t].on("loaded",function(s){o.forceRender=!0}))}},{key:"refreshUniforms",value:function(){this.uniforms={}}},{key:"setUniform",value:function(t){for(var r={},n=arguments.length,o=Array(n>1?n-1:0),s=1;s<n;s++)o[s-1]=arguments[s];r[t]=o,this.setUniforms(r)}},{key:"setUniforms",value:function(t){var r=yc(t);for(var n in r)r[n].type==="sampler2D"?this.loadTexture(r[n].name,r[n].value[0]):this.uniform(r[n].method,r[n].type,r[n].name,r[n].value);this.forceRender=!0}},{key:"setMouse",value:function(t){var r=this.canvas.getBoundingClientRect();if(t&&t.x&&t.x>=r.left&&t.x<=r.right&&t.y&&t.y>=r.top&&t.y<=r.bottom){var n=(t.x-r.left)*this.realToCSSPixels,o=this.canvas.height-(t.y-r.top)*this.realToCSSPixels;this.uniform("2f","vec2","u_mouse",n,o)}}},{key:"uniform",value:function(t,r,n){this.uniforms[n]=this.uniforms[n]||{};for(var o=this.uniforms[n],s=arguments.length,i=Array(s>3?s-3:0),a=3;a<s;a++)i[a-3]=arguments[a];var c=JT(o.value,i);if(c||this.change||!o.location||!o.value){o.name=n,o.type=r,o.value=i,o.method="uniform"+t,this.gl.useProgram(this.program),o.location=this.gl.getUniformLocation(this.program,n),this.gl[o.method].apply(this.gl,[o.location].concat(o.value));for(var l in this.buffers){var p=this.buffers[l];this.gl.useProgram(p.program);var u=this.gl.getUniformLocation(p.program,n);this.gl[o.method].apply(this.gl,[u].concat(o.value))}}}},{key:"uniformTexture",value:function(t,r,n){if(this.textures[t]===void 0)this.loadTexture(t,r,n);else{this.uniform("1i","sampler2D",t,this.texureIndex);for(var o in this.buffers){var s=this.buffers[o];this.gl.useProgram(s.program),this.gl.activeTexture(this.gl.TEXTURE0+this.texureIndex),this.gl.bindTexture(this.gl.TEXTURE_2D,this.textures[t].texture)}this.gl.useProgram(this.program),this.gl.activeTexture(this.gl.TEXTURE0+this.texureIndex),this.gl.bindTexture(this.gl.TEXTURE_2D,this.textures[t].texture),this.uniform("2f","vec2",t+"Resolution",this.textures[t].width,this.textures[t].height)}}},{key:"resize",value:function(){if(this.width!==this.canvas.clientWidth||this.height!==this.canvas.clientHeight){this.realToCSSPixels=window.devicePixelRatio||1;var t=Math.floor(this.gl.canvas.clientWidth*this.realToCSSPixels),r=Math.floor(this.gl.canvas.clientHeight*this.realToCSSPixels);return(this.gl.canvas.width!==t||this.gl.canvas.height!==r)&&(this.gl.canvas.width=t,this.gl.canvas.height=r,this.gl.viewport(0,0,this.gl.canvas.width,this.gl.canvas.height)),this.width=this.canvas.clientWidth,this.height=this.canvas.clientHeight,this.resizeSwappableBuffers(),!0}else return!1}},{key:"render",value:function(){if(this.visible=YT(this.canvas),this.forceRender||this.change||this.animated&&this.visible&&!this.paused){var t=new Date,r=performance.now();this.timeDelta=(r-this.timePrev)/1e3,this.timePrev=r,this.nDelta>1&&this.uniform("1f","float","u_delta",this.timeDelta),this.nTime>1&&this.uniform("1f","float","u_time",(r-this.timeLoad)/1e3),this.nDate&&this.uniform("4f","float","u_date",t.getFullYear(),t.getMonth(),t.getDate(),t.getHours()*3600+t.getMinutes()*60+t.getSeconds()+t.getMilliseconds()*.001),this.uniform("2f","vec2","u_resolution",this.canvas.width,this.canvas.height);for(var n in this.buffers){var o=this.buffers[n];this.uniform("1i","sampler2D",o.name,o.bundle.input.index)}this.texureIndex=this.BUFFER_COUNT;for(var s in this.textures)this.uniformTexture(s),this.texureIndex++;this.renderPrograms(),this.trigger("render",{}),this.change=!1,this.forceRender=!1}}},{key:"pause",value:function(){this.paused=!0}},{key:"play",value:function(){this.paused=!1}},{key:"renderPrograms",value:function(){var t=this.gl,r=t.canvas.width,n=t.canvas.height;t.viewport(0,0,r,n);for(var o in this.buffers){var s=this.buffers[o];s.bundle.render(r,n,s.program,s.name),t.bindFramebuffer(t.FRAMEBUFFER,null)}t.useProgram(this.program),t.drawArrays(t.TRIANGLES,0,6)}},{key:"getBuffers",value:function(t){var r={};return t&&t.replace(/(?:^\s*)((?:#if|#elif)(?:\s*)(defined\s*\(\s*BUFFER_)(\d+)(?:\s*\))|(?:#ifdef)(?:\s*BUFFER_)(\d+)(?:\s*))/gm,function(){var n=arguments[3]||arguments[4];r["u_buffer"+n]={fragment:"#define BUFFER_"+n+
+t}}),r}},{key:"loadPrograms",value:function(t){var r=this,n=this.gl,o=Yr(r,r.vertexString,n.VERTEX_SHADER);for(var s in t){var i=t[s],a=Yr(r,i.fragment,n.FRAGMENT_SHADER,1);a?r.isValid=!0:(a=Yr(r,void main(){
gl_FragColor = vec4(1.0);
},n.FRAGMENT_SHADER),r.isValid=!1);var c=Mg(r,[o,a]);i.name=s,i.program=c,i.bundle=r.createSwappableBuffer(r.canvas.width,r.canvas.height,c),n.deleteShader(a)}n.deleteShader(o)}},{key:"createSwappableBuffer",value:function(t,r,n){var o=this.createBuffer(t,r,n),s=this.createBuffer(t,r,n),i=this.gl;return{input:o,output:s,swap:function(){var a=o;o=s,s=a,this.input=o,this.output=s},render:function(a,c,l,p){i.useProgram(l),i.viewport(0,0,a,c),i.bindFramebuffer(i.FRAMEBUFFER,this.input.buffer),i.framebufferTexture2D(i.FRAMEBUFFER,i.COLOR_ATTACHMENT0,i.TEXTURE_2D,this.output.texture,0),i.drawArrays(i.TRIANGLES,0,6),this.swap()},resize:function(a,c,l,p){i.useProgram(l),i.viewport(0,0,a,c),this.input.resize(a,c),this.output.resize(a,c)}}}},{key:"createBuffer",value:function(t,r,n){var o=this.gl,s=this.BUFFER_COUNT;this.BUFFER_COUNT+=2,o.getExtension("OES_texture_float");var i=o.createTexture();o.activeTexture(o.TEXTURE0+s),o.bindTexture(o.TEXTURE_2D,i),o.texImage2D(o.TEXTURE_2D,0,o.RGBA,t,r,0,o.RGBA,o.FLOAT,null),o.texParameteri(o.TEXTURE_2D,o.TEXTURE_MIN_FILTER,o.NEAREST),o.texParameteri(o.TEXTURE_2D,o.TEXTURE_MAG_FILTER,o.NEAREST),o.texParameteri(o.TEXTURE_2D,o.TEXTURE_WRAP_S,o.CLAMP_TO_EDGE),o.texParameteri(o.TEXTURE_2D,o.TEXTURE_WRAP_T,o.CLAMP_TO_EDGE);var a=o.createFramebuffer();return{index:s,texture:i,buffer:a,W:t,H:r,resize:function(c,l){o.bindFramebuffer(o.FRAMEBUFFER,a);var p=Math.min(c,this.W),u=Math.min(l,this.H),f=new Float32Array(p*u*4);o.readPixels(0,0,p,u,o.RGBA,o.FLOAT,f),o.bindFramebuffer(o.FRAMEBUFFER,null);var d=s+1,g=o.createTexture();o.activeTexture(o.TEXTURE0+d),o.bindTexture(o.TEXTURE_2D,g),o.texImage2D(o.TEXTURE_2D,0,o.RGBA,c,l,0,o.RGBA,o.FLOAT,null),o.texParameteri(o.TEXTURE_2D,o.TEXTURE_MIN_FILTER,o.NEAREST),o.texParameteri(o.TEXTURE_2D,o.TEXTURE_MAG_FILTER,o.NEAREST),o.texParameteri(o.TEXTURE_2D,o.TEXTURE_WRAP_S,o.CLAMP_TO_EDGE),o.texParameteri(o.TEXTURE_2D,o.TEXTURE_WRAP_T,o.CLAMP_TO_EDGE),o.texSubImage2D(o.TEXTURE_2D,0,0,0,p,u,o.RGBA,o.FLOAT,f);var h=o.createFramebuffer();o.bindFramebuffer(o.FRAMEBUFFER,null),o.deleteTexture(i),o.activeTexture(o.TEXTURE0+s),o.bindTexture(o.TEXTURE_2D,g),s=this.index=s,i=this.texture=g,a=this.buffer=h,this.W=c,this.H=l}}}},{key:"resizeSwappableBuffers",value:function(){var t=this.gl,r=t.canvas.width,n=t.canvas.height;t.viewport(0,0,r,n);for(var o in this.buffers){var s=this.buffers[o];s.bundle.resize(r,n,s.program,s.name)}t.useProgram(this.program)}},{key:"version",value:function(){return"0.1.7"}}]),e}();function ZT(){var e=document.getElementsByClassName("glslCanvas");if(e.length>0){window.glslCanvases=[];for(var t=0;t<e.length;t++){var r=new $g(e[t]);r.isValid&&window.glslCanvases.push(r)}}}window.addEventListener("load",function(){ZT()});var Ns=$g;var jg=e=>{if(!("after"in e))return Promise.resolve(void 0);let t=document.createElement("canvas");return new Ns(t).load(Ze(e.after)),e.render(t),Promise.resolve(void 0)};var Ag=e=>{let t="";for(let r=0;r<e.length;r+=3)r+2===e.length?t+=wc(e[r],e[r+1],0):r+1===e.length?t+=wc(e[r],0,0):t+=wc(e[r],e[r+1],e[r+2]);return t},Os=e=>e<10?String.fromCharCode(48+e):(e-=10,e<26?String.fromCharCode(65+e):(e-=26,e<26?String.fromCharCode(97+e):(e-=26,e===0?"-":e===1?"_":"?"))),wc=(e,t,r)=>{let n=e>>2,o=(e&3)<<4|t>>4,s=(t&15)<<2|r>>6,i=r&63;return Os(n&63)+Os(o&63)+Os(s&63)+Os(i&63)};var Ug=async(e,t="svg")=>{let r=new Blob([new TextEncoder().encode(e)]).stream().pipeThrough(new CompressionStream("deflate")),n=new Uint8Array(await new Response(r).arrayBuffer());returnhttps://www.plantuml.com/plantuml/${t}/~1${Ag(n)}};var Fg=async e=>{if(!("after"in e))return;let t=document.createElement("img"),r=await Ug(Ze(e.after));t.src=r,e.render(t)};var kc=Promise.resolve({log:new Uint8Array(0)}),$s,Bg=(e,t,r,n)=>(kc=(async()=>{await kc,$s??=await eL(t,r);let o=new Promise(i=>{let a=c=>{if(c.data.type==="stdout"){n(c.data.message);return}c.data.type==="compile"&&(i(c.data),$s.removeEventListener("message",a))};$s.addEventListener("message",a)}),s={type:"compile",input:e};return $s.postMessage(s),o})(),kc),eL=async(e,t)=>{let r=new Worker(e,{type:"module"}),n=new Promise(s=>{let i=a=>{a.data.type==="asset-url"&&(s(),r.removeEventListener("message",i))};r.addEventListener("message",i)}),o={type:"asset-url",url:${t}};return r.postMessage(o),await n,r};var Hg=(e,t)=>async r=>{if(!("after"in r))return;let n=tL(),o="Compile is not started yet. Please wait...",s=l=>{o=[...o.split( ),l].join(
),n.log(o)},i=document.createElement("img"),a=setTimeout(()=>{r.render(n.div),n.log(o)},2e3),{svg:c}=await Bg(Ze(r.after),e,t,s);if(clearTimeout(a),!c){r.render(n.div),n.log(o);return}i.src=await Dn(new Blob([c],{type:"image/svg+xml"})),r.render(i)},tL=()=>{let e=document.createElement("div"),t=e.attachShadow({mode:"open"}),r=document.createElement("style");r.textContent='*{box-sizing:border-box;}pre{display:block;padding:9.5px;margin:0 0 10px;border:1px solid #ccc;border-radius:4px;height:20em;overflow:auto;font-size:13px;line-height:1.428571429;}pre code{padding:0;font-family:Menlo,Monaco,Consolas,"Courier New",monospace;font-size:inherit;word-break:break-all;word-wrap:break-word;white-space:pre-wrap;color:var(--code-color,#342d9c);background-color: rgba(0,0,0,0);border-radius:0;}',t.append(r);let n=document.createElement("pre"),o=document.createElement("code");return n.append(o),t.append(n),{div:e,log:s=>{o.textContent=s,n.scroll(0,n.scrollHeight)}}};var zg=(e,t,r=0,n=[])=>{let[o,s]=U("uninitialized"),[i,a]=U({ok:!0,value:t}),c=_(e,n);return G(()=>{(async()=>{let l=setTimeout(()=>s("pending"),r);try{let p=await c();if(p===void 0)return;a({ok:!0,value:p})}catch(p){a({ok:!1,value:p})}finally{clearTimeout(l),s("resolved")}})()},[c,r,...n]),i.ok?{result:i.value,state:o}:{result:i.value,state:"rejected"}};var qg=e=>{let t=e.flatMap(({changes:o,created:s,userId:i})=>o.flatMap(a=>{let c=rL(a,i,s);return c?[c]:[]})),r=[...new Set(t.map(({created:o})=>o))].sort();return{history:t.reduce((o,s)=>{if(s.type==="insert"){let a=new Map;a.set(s.created,{text:s.text,type:s.type,userId:s.userId});let c={id:s.id,snapshots:a};if(s.parentId==="_end")return[...o,c];let l=o.findIndex(({id:p})=>p===s.parentId);return l<0?(console.warn("[scrapbox-snapshot@0.1.0] The parent line the snapshot would insert before is not found. change: ",s),[...o,c]):[...o.slice(0,l),c,...o.slice(l)]}let i=o.findIndex(({id:a})=>a===s.id);return i<0?(console.warn("[scrapbox-snapshot@0.1.0] The line data to be append the change is not found. change: ",s),o):(o[i].snapshots.set(s.created,{text:s.type==="update"?s.text:void 0,type:s.type,userId:s.userId}),o)},[]),range:r}},rL=(e,t,r)=>{if("_insert"in e)return{type:"insert",id:e.lines.id,parentId:e._insert,text:e.lines.text,userId:t,created:r};if("_update"in e)return{type:"update",id:e._update,text:e.lines.text,userId:t,created:r};if("_delete"in e)return{type:"delete",id:e._delete,userId:t,created:r}};var Wg=async(e,t)=>{let r=await fetch(/api/commits/${e}/${t}),{commits:n}=await r.json();return qg(n)},Gg=async(e,t)=>{let r=await fetch(/api/page-snapshots/${e}/${t}),{snapshots:n}=await r.json(),o=new Map(n.map(({lines:i,created:a})=>[a,i])),s=n.map(({created:i})=>i).sort();return{pages:o,range:s}};var Kg=e=>{let t=document.createElement("div");t.dataset.userscriptName="takker99/scrapbox-history-slider";let r=t.attachShadow({mode:"open"});return document.body.append(t),new Promise(n=>ye(m(nL,{getController:o=>n(o)}),r))},nL=({getController:e})=>{let[t,r]=U(!0),n=_(()=>r(!1),[]),o=_(()=>r(!0),[]),s=_(()=>r(g=>!g),[]);G(()=>e({open:n,close:o,toggle:s}),[e]);let i=_(g=>{g.target instanceof HTMLElement&&g.target.id==="background"&&o()},[]),{state:a,result:c}=zg(async()=>{if(t||scrapbox.Layout!=="page")return;let[g,h]=await Promise.all([Wg(scrapbox.Project.name,scrapbox.Page.id),Gg(scrapbox.Project.name,scrapbox.Page.id)]);return{range:[...h.range,...g.range],getSnapshot:x=>g.range.includes(x)?g.history.flatMap(({snapshots:v})=>{let L=v.get(x);if(L)return L.text===void 0?[]:[L.text];let S=Math.max(...[...v.keys()].filter(E=>E<x));if(S===x)return[];let b=v.get(S)?.text;return b===void 0?[]:[b]}):h.pages.get(x)?.map?.(v=>v.text)??[]}},{range:[],getSnapshot:()=>[]},1e3,[t]),[l,p]=U(0),[u,f]=U(0);G(()=>{if(a!=="resolved")return;let g=Math.max(0,c.range.length-1);p(g),f(g)},[c]);let d=_(g=>f(parseInt(g.currentTarget.value)),[]);return m(W,null,m("style",null,'.modal{position:fixed;inset:0;z-index:1050;background-color:#000c;display:flex;flex-direction:column;align-items:center;row-gap:10px;padding:10px}.closed{display:none}.modal>*{color:var(--page-text-color, #4a4a4a);background-color:var(--page-bg, #fefefe);border:2px solid var(--body-bg, #dcdde0);border-radius:4px;padding:5px;width:calc(var(--item-width, 100%) - 10px)}@media (min-width: 768px){.modal{padding:30px}}.controller{display:flex;flex-direction:row-reverse;gap:.2em}input{width:100%}time{white-space:nowrap}.viewer{overflow-y:scroll}pre{width:100%;font-family:var(--history-slider-pre-font, Menlo,Monaco,Consolas,"Courier New",monospace);word-break:break-all;word-wrap:break-word;white-space:pre-wrap}'),m("div",{id:"background",className:modal${t?" closed":""},onClick:i},m("div",{className:"controller"},m("button",{className:"close-button",onClick:o},"x"),a==="resolved"&&c.range.length===0&&m("span",{className:"not-found"},"no history found."),a!=="rejected"&&c.range.length>0&&m(W,null,m("input",{type:"range",max:l,min:"0",step:"1",value:u,title:Q(new Date(c.range[u]*1e3),"yyyy-MM-dd HH:mm:ss"),onInput:d}),m("time",{dateTime:Q(new Date(c.range[u]*1e3),"yyyy-MM-dd HH:mm:ss")},Q(new Date(c.range[u]*1e3),"yyyy-MM-dd HH:mm:ss")))),a!=="rejected"?m("div",{className:"viewer"},m("pre",null,c.getSnapshot(c.range[u]).join(
))):m("div",{className:"error viewer"},Error: ${JSON.stringify(c)})))};var wr=()=>/mobile/i.test(navigator.userAgent);function*Ec(e,t,r){let n=0,o=[],s=async()=>(n++,n<=e?n-1:await new Promise(i=>o.push(i)));for(let i of t)yield(async()=>{let a=await s();try{return{success:!0,value:await r(i,a)}}catch(c){return{success:!1,reason:c}}finally{n--,o.shift()?.(a)}})()}var Xg=async(e,t,r)=>{if(e.length===0||e.every(({before:o,after:s})=>o===s))return;let n=await Ae();try{let o=Ec(5,e,async s=>{let i=0,a=0;s.before===s.after&&r({link:s,projectCount:0,replaced:0,done:!0});let c=Ec(2,[...new Set(t)],async l=>{let p=await oL(s,l,n);if(!p.ok)throw sL(p.value);i++,a+=p.value,r({link:s,projectCount:i,replaced:a,done:!1})});await Promise.all([...c]),r({link:s,projectCount:i,replaced:a,done:!0})});await Promise.all([...o])}finally{await De(n)}},oL=async(e,t,r)=>{let[n]=await Promise.all([vo(t,e.before,e.after),oe(t,e.before,(o,{persistent:s})=>{if(s)return[e.after,...o.map(i=>i.text).slice(1)]},{socket:r})]);return n},Nt=e=>e.split(
).flatMap(t=>[...t.matchAll(/\[((?:[^\[!"#%&'()\*\+,\-\.\/\{\|\}<>_~] |.[^ ]*)[^\[\]]*)\]/g)]).map(([,t])=>t),sL=e=>{let t=new Error;return t.name=e.name,t.message=e.message,t};var iL=e=>({type:"title",text:e.rows[0].text}),aL=e=>{let{rows:[t,...r]}=e,{indent:n=0,text:o=""}=t??{},s=o.replace(/^\s*code:/,"");return{indent:n,type:"codeBlock",fileName:s,content:r.map(i=>i.text.substring(n+1)).join(
)}},Me=(e,{parseOnNested:t,parseOnQuoted:r,patterns:n})=>(o,s,i)=>{var a,c,l,p,u,f;if(!t&&s.nested)return(a=i?.())!==null&&a!==void 0?a:[];if(!r&&s.quoted)return(c=i?.())!==null&&c!==void 0?c:[];for(let d of n){let g=d.exec(o);if(g===null)continue;let h=o.substring(0,g.index),x=o.substring(g.index+((p=(l=g[0])===null||l===void 0?void 0:l.length)!==null&&p!==void 0?p:0)),v=e((u=g[0])!==null&&u!==void 0?u:"",s);return[...Kt(h,s),...v,...Kt(x,s)]}return(f=i?.())!==null&&f!==void 0?f:[]},$e=e=>[{type:"plain",raw:e,text:e}],cL=Me($e,{parseOnNested:!0,parseOnQuoted:!0,patterns:[/^()(.*)()$/]}),lL=/^>.*$/,pL=(e,t)=>t.context==="table"?$e(e,t):[{type:"quote",raw:e,nodes:Kt(e.substring(1),{...t,quoted:!0})}],uL=Me(pL,{parseOnNested:!1,parseOnQuoted:!1,patterns:[lL]}),dL=/^\? .+$/,mL=(e,t)=>t.context==="table"?$e(e,t):[{type:"helpfeel",raw:e,text:e.substring(2)}],fL=Me(mL,{parseOnNested:!1,parseOnQuoted:!1,patterns:[dL]}),gL=/\[\[https?:\/\/[^\s\]]+\.(?:png|jpe?g|gif|svg)\]\]/i,hL=/\[\[https?:\/\/(?:[0-9a-z-]+\.)?gyazo\.com\/[0-9a-f]{32}\]\]/,xL=(e,t)=>{if(t.context==="table")return $e(e,t);let r=e.substring(2,e.length-2),n=/^https?:\/\/([0-9a-z-]\.)?gyazo\.com\/[0-9a-f]{32}$/.test(r);return[{type:"strongImage",raw:e,src:n?${r}/thumb/1000:r}]},bL=Me(xL,{parseOnNested:!1,parseOnQuoted:!0,patterns:[gL,hL]}),yL=/\[[^[\]]*\.icon(?:\*[1-9]\d*)?\]/;function Vg(e){return(t,r)=>{if(e==="strongIcon"&&r.context==="table")return $e(t,r);let n=e==="icon"?t.substring(1,t.length-1):t.substring(2,t.length-2),o=n.lastIndexOf(".icon"),s=n.substring(0,o),i=s.startsWith("/")?"root":"relative",a=n.substring(o+5,n.length),c=a.startsWith("*")?parseInt(a.substring(1),10):1;return new Array(c).fill({}).map(()=>({path:s,pathType:i,type:e,raw:t}))}}var vL=Vg("icon"),wL=Me(vL,{parseOnNested:!0,parseOnQuoted:!0,patterns:[yL]}),kL=/\[\[[^[\]]*\.icon(?:\*\d+)?\]\]/,EL=Vg("strongIcon"),TL=Me(EL,{parseOnNested:!1,parseOnQuoted:!0,patterns:[kL]}),LL=/\[\[(?:[^[]|\[[^[]).*?\]*\]\]/,SL=(e,t)=>t.context==="table"?$e(e,t):[{type:"strong",raw:e,nodes:Kt(e.substring(2,e.length-2),{...t,nested:!0})}],PL=Me(SL,{parseOnNested:!1,parseOnQuoted:!0,patterns:[LL]}),RL=/\[\$ .+? \]/,_L=/\[\$ [^\]]+\]/,CL=(e,t)=>t.context==="table"?$e(e,t):[{type:"formula",raw:e,formula:e.substring(3,e.length-(e.endsWith(" ]")?2:1))}],ML=Me(CL,{parseOnNested:!1,parseOnQuoted:!0,patterns:[RL,_L]}),DL=/\[[!"#%&'()*+,\-./{|}<>_~]+ (?:\[[^[\]]+\]|[^\]])+\]/,IL=(e,t)=>{if(t.context==="table")return $e(e,t);let r=e.indexOf(" "),n=e.substring(1,r),o=e.substring(r+1,e.length-1),s=new Set(n);if(s.has("*")){let i=n.split("*").length-1;s.delete("*"),s.add(*-${Math.min(i,10)})}return[{type:"decoration",raw:e,rawDecos:n,decos:Array.from(s),nodes:Kt(o,{...t,nested:!0})}]},NL=Me(IL,{parseOnNested:!1,parseOnQuoted:!0,patterns:[DL]}),OL=/.*?/,$L=(e,t)=>t.context==="table"?$e(e,t):[{type:"code",raw:e,text:e.substring(1,e.length-1)}],jL=Me($L,{parseOnNested:!1,parseOnQuoted:!0,patterns:[OL]}),AL=/^[$%] .+$/,UL=(e,t)=>{var r;if(t.context==="table")return $e(e,t);let n=(r=e[0])!==null&&r!==void 0?r:"",o=e.substring(2);return[{type:"commandLine",raw:e,symbol:n,text:o}]},FL=Me(UL,{parseOnNested:!1,parseOnQuoted:!1,patterns:[AL]}),BL=/\[\s+\]/,HL=(e,t)=>t.context==="table"?$e(e,t):[{type:"blank",raw:e,text:e.substring(1,e.length-1)}],zL=Me(HL,{parseOnNested:!1,parseOnQuoted:!0,patterns:[BL]}),qL=/\[https?:\/\/[^\s\]]+\.(?:png|jpe?g|gif|svg)(?:\?[^\]\s]+)?(?:\s+https?:\/\/[^\s\]]+)?\]/i,WL=/\[https?:\/\/[^\s\]]+\s+https?:\/\/[^\s\]]+\.(?:png|jpe?g|gif|svg)(?:\?[^\]\s]+)?\]/i,GL=/\[https?:\/\/(?:[0-9a-z-]+\.)?gyazo\.com\/[0-9a-f]{32}(?:\/raw)?(?:\s+https?:\/\/[^\s\]]+)?\]/,KL=/\[https?:\/\/[^\s\]]+\s+https?:\/\/(?:[0-9a-z-]+\.)?gyazo\.com\/[0-9a-f]{32}(?:\/raw)?\]/,XL=e=>/^https?:\/\/[^\s\]]+\.(png|jpe?g|gif|svg)(\?[^\]\s]+)?$/i.test(e)||YL(e),YL=e=>/^https?:\/\/([0-9a-z-]\.)?gyazo\.com\/[0-9a-f]{32}(\/raw)?$/.test(e),VL=(e,t)=>{if(t.context==="table")return $e(e,t);let r=e.search(/\s/),n=r!==-1?e.substring(1,r):e.substring(1,e.length-1),o=r!==-1?e.substring(r,e.length-1).trimLeft():"",[s,i]=XL(o)?[o,n]:[n,o];return[{type:"image",raw:e,src:/^https?:\/\/([0-9a-z-]\.)?gyazo\.com\/[0-9a-f]{32}$/.test(s)?${s}/thumb/1000:s,link:i}]},JL=Me(VL,{parseOnNested:!0,parseOnQuoted:!0,patterns:[qL,WL,GL,KL]}),QL=/\[https?:\/\/[^\s\]]+\s+[^\]]*[^\s]\]/,ZL=/\[[^[\]]*[^\s]\s+https?:\/\/[^\s\]]+\]/,eS=/\[https?:\/\/[^\s\]]+\]/,tS=/https?:\/\/[^\s]+/,rS=(e,t)=>{if(t.context==="table")return $e(e,t);let r=e.startsWith("[")&&e.endsWith("]")?e.substring(1,e.length-1):e,n=/^https?:\/\/[^\s\]]/.test(r),o=(n?/^https?:\/\/[^\s\]]+/:/https?:\/\/[^\s\]]+$/).exec(r);if(o?.[0]===void 0)return[];let s=n?r.substring(o[0].length):r.substring(0,o.index-1);return[{type:"link",raw:e,pathType:"absolute",href:o[0],content:s.trim()}]},nS=Me(rS,{parseOnNested:!0,parseOnQuoted:!0,patterns:[QL,ZL,eS,tS]}),Jg=/\[([^\]]*[^\s])\s+([NS]\d+(?:\.\d+)?,[EW]\d+(?:\.\d+)?(?:,Z\d+)?)\]/,Qg=/\[([NS]\d+(?:\.\d+)?,[EW]\d+(?:\.\d+)?(?:,Z\d+)?)(?:\s+([^\]]*[^\s]))?\]/,oS=e=>{let[t="",r="",n=""]=e.split(","),o=parseFloat(t.replace(/^N/,"").replace(/^S/,"-")),s=parseFloat(r.replace(/^E/,"").replace(/^W/,"-")),i=/^Z\d+$/.test(n)?parseInt(n.replace(/^Z/,""),10):14;return{latitude:o,longitude:s,zoom:i}},sS=(e,t)=>{var r;if(t.context==="table")return $e(e,t);let n=(r=e.match(Jg))!==null&&r!==void 0?r:e.match(Qg);if(n===null)return[];let o=e.startsWith("[N")||e.startsWith("[S"),[,s="",i=""]=o?n:[n[0],n[2],n[1]],{latitude:a,longitude:c,zoom:l}=oS(s),p=i!==""?https://www.google.com/maps/place/${encodeURIComponent(i)}/@${a},${c},${l}z:https://www.google.com/maps/@${a},${c},${l}z;return[{type:"googleMap",raw:e,latitude:a,longitude:c,zoom:l,place:i,url:p}]},iS=Me(sS,{parseOnNested:!1,parseOnQuoted:!0,patterns:[Jg,Qg]}),aS=/\[\/?[^[\]]+\]/,cS=e=>{let t=e.substring(1,e.length-1);return[{type:"link",raw:e,pathType:t.startsWith("/")?"root":"relative",href:t,content:""}]},lS=Me(cS,{parseOnNested:!0,parseOnQuoted:!0,patterns:[aS]}),pS=/(?:^|\s)#\S+/,uS=(e,t)=>{if(t.context==="table")return $e(e,t);if(e.startsWith("#"))return[{type:"hashTag",raw:e,href:e.substring(1)}];let r=e.substring(0,1),n=e.substring(1);return[...$e(r,t),{type:"hashTag",raw:n,href:n.substring(1)}]},dS=Me(uS,{parseOnNested:!0,parseOnQuoted:!0,patterns:[pS]}),mS=/^[0-9]+\. .*$/,fS=(e,t)=>{if(t.context==="table")return $e(e,t);let r=e.indexOf(" "),n=e.substring(0,r-1),o=parseInt(n,10),s=e.substring(r+1,e.length);return[{type:"numberList",raw:e,rawNumber:n,number:o,nodes:Kt(s,{...t,nested:!0})}]},gS=Me(fS,{parseOnNested:!1,parseOnQuoted:!1,patterns:[mS]}),hS=(e,t,r)=>{var n;return e===""?[]:(n=r?.())!==null&&n!==void 0?n:[]},xS=(...e)=>(t,r)=>e.reduceRight((n,o)=>()=>o(t,r,n),()=>cL(t,r))(),Kt=xS(hS,uL,fL,jL,FL,ML,zL,NL,bL,TL,PL,JL,nS,wL,iS,lS,dS,gS),bS=e=>{let{rows:[t,...r]}=e,{indent:n=0,text:o=""}=t??{},s=o.replace(/^\s*table:/,"");return{indent:n,type:"table",fileName:s,cells:r.map(i=>i.text.substring(n+1)).map(i=>i.split(" ").map(a=>Kt(a,{nested:!1,quoted:!1,context:"table"})))}},yS=e=>{let{indent:t,text:r}=e.rows[0];return{indent:t,type:"line",nodes:Kt(r.substring(t),{nested:!1,quoted:!1,context:"line"})}},vS=e=>{switch(e.type){case"title":return iL(e);case"codeBlock":return aL(e);case"table":return bS(e);case"line":return yS(e)}},wS=e=>e.split( ).map(t=>{var r,n,o;return{indent:(o=(n=(r=/^\s+/.exec(t))===null||r===void 0?void 0:r[0])===null||n===void 0?void 0:n.length)!==null&&o!==void 0?o:0,text:t}}),kS=(e,t)=>{var r,n;return(e.type==="codeBlock"||e.type==="table")&&t.indent>((n=(r=e.rows[0])===null||r===void 0?void 0:r.indent)!==null&&n!==void 0?n:0)},Yg=(e,t)=>{let r=e[e.length-1];return r!==void 0&&kS(r,t)?(r.rows.push(t),e):(e.push({type:/^\s*code:/.test(t.text)?"codeBlock":/^\s*table:/.test(t.text)?"table":"line",rows:[t]}),e)},ES=(e,t)=>{var r;if(!((r=t.hasTitle)!==null&&r!==void 0)||r){let[n,...o]=e;return n===void 0?[]:[{type:"title",rows:[n]},...o.reduce(Yg,[])]}return e.reduce(Yg,[])},Xt=(e,t)=>{var r;let n=wS(e);return ES(n,{hasTitle:(r=t?.hasTitle)!==null&&r!==void 0?r:!0}).map(vS)};var Zg=e=>Xt(e,{hasTitle:!1}).flatMap(r=>{switch(r.type){case"title":return[];case"codeBlock":return TS(r);case"table":return LS(r);case"line":return SS(r)}}).map(r=>r).join(
),TS=({fileName:e,content:t,indent:r})=>{let n=" ".repeat(r);return[${n}code:${e},...t.split(
).map(o=>${n} ${o})]},LS=({fileName:e,cells:t,indent:r})=>{let n=" ".repeat(r);return[${n}table:${e},...t.map(o=>${n} ${o.map(s=>s.map(i=>Nn(i)).join("")).join(" ")})]},SS=({nodes:e,indent:t})=>[${" ".repeat(t)}${e.map(r=>${Nn(r)}).join("")}],Nn=e=>{switch(e.type){case"quote":return> ${e.nodes.map(t=>Nn(t)).join("")};case"strong":return${e.nodes.map(t=>Nn(t)).join("")};case"decoration":{let t=e.decos.map(r=>{let n=parseInt(r.match(/\*-(\d)/)?.[1]??"0");return n>0?"*".repeat(n):r}).join("");return[${t?${t} :""}${e.nodes.map(r=>Nn(r)).join("")}]}case"hashTag":return e.href;case"link":return e.pathType==="absolute"?e.raw:e.href;default:return e.raw}};scrapbox.PopupMenu.addButton({title:e=>Nt(e).length>0?"":"",onClick:e=>{let t=Zg(e);if(e!=t)return t}});var eh=e=>!e.includes(
)&&/\[[^\]]+\]/.test(e);scrapbox.PopupMenu.addButton({title:e=>eh(e)?"[][]":"",onClick:e=>{if(!eh(e))return;let t=e.replaceAll("[","").replaceAll("]","");return(async()=>{let{render:r,dispose:n}=pe();try{let o=scrapbox.Project.name;r({type:"spinner"},{type:"text",text:create /${o}/${t}}),await oe(o,t,([{text:s}],{persistent:i})=>{if(!i)return[s,e]}),r({type:"check-circle"},{type:"text",text:create /${o}/${t}})}catch(o){if(console.error(o),!(o instanceof Error))throw o;r({type:"exclamation-triangle"},{type:"text",text:${o.name} ${o.message}})}finally{await ae(2e3),n()}})(),${t}}});var th=(e,t)=>{switch(e.type){case"title":return"";case"codeBlock":return[e.fileName, \\`\`${MS(e.fileName)},e.content,"\n"].join(
);case"table":return PS(e);case"line":return _S(e,t)}},PS=e=>{let t=[e.fileName],r=Math.max(...e.cells.map(n=>n.length));return e.cells.forEach((n,o)=>{t.push(| ${n.map(s=>s.map(i=>Vr(i)).join("")).join(" | ")} |),o===0&&t.push(|${" -- |".repeat(r)})}),t.join(
)},RS=" ",_S=(e,t)=>{let r=e.nodes.map(o=>Vr(o,{section:e.indent===t})).join("").trim();if(r==="")return"";if(e.indent===t)return r;let n=RS.repeat(e.indent-t-1);return/^\d+\. /.test(r)||(n+="- "),n+r},Vr=(e,t)=>{let{section:r=!1}=t??{};switch(e.type){case"quote":return> ${e.nodes.map(n=>Vr(n)).join("")};case"helpfeel":return\? ${e.text}\`;case"image":case"strongImage":return![image](${e.src});case"icon":case"strongIcon":return"/icons/hr","/scrapboxlab/hr".includes(e.path)?"---":"";case"strong":return**${e.nodes.map(n=>Vr(n)).join("")}**;case"formula":return$${e.formula}$;case"decoration":{let n=e.nodes.map(o=>Vr(o)).join("");return e.decos.includes("/")&&(n=*${n}*),r?(e.decos.includes("*-3")&&(n=`# ${n} ),e.decos.includes("*-2")&&(n=## ${n}
),e.decos.includes("*-1")&&(n=### ${n}
)):e.decos.some(o=>/\*-/.test(o[0]))&&(n=**${n}**),e.decos.includes("~")&&(n=~~${n}~~),n}case"code":return\${e.text}\`;case"commandLine":return\`${e.symbol} ${e.text}\`;case"link":switch(e.pathType){case"root":return[${e.href}](https://scrapbox.io${e.href});case"relative":return[${e.href}](https://scrapbox.io/${scrapbox.Project.name}/${e.href});default:return e.content===""? ${e.href} :[${e.content}](${e.href})}case"googleMap":return[${e.place}](${e.url});case"hashTag":return[#${e.href}](https://scrapbox.io/${scrapbox.Project.name}/${e.href});case"numberList":return${e.number}. ${e.nodes.map(n=>Vr(n)).join("")};case"blank":case"plain":return e.text}},CS=[{extensions:"javascript","js",fileType:"javascript"},{extensions:"typescript","ts",fileType:"typescript"},{extensions:"cpp","hpp",fileType:"cpp"},{extensions:"c","cc","h",fileType:"c"},{extensions:"cs","csharp",fileType:"cs"},{extensions:"markdown","md",fileType:"markdown"},{extensions:"htm","html",fileType:"html"},{extensions:"json",fileType:"json"},{extensions:"xml",fileType:"xml"},{extensions:"yaml","yml",fileType:"yaml"},{extensions:"toml",fileType:"toml"},{extensions:"ini",fileType:"ini"},{extensions:"tex","sty",fileType:"tex"},{extensions:"svg",fileType:"svg"}],MS=e=>{let t=e.replace(/^.*\.(\w+)$/,"$1");return CS.find(r=>r.extensions.includes(t))?.fileType??""};scrapbox.PopupMenu.addButton({title:"",onClick:e=>{(async()=>{try{let t=Yn.parse(e,{hasTitle:!1}),r=Math.min(...t.map(n=>n.indent));await navigator.clipboard.writeText(t.map(n=>th(n,r)).join(` ))}catch(t){alert(Failed to copy:
${JSON.stringify(t)})}})()}});var Ot=e=>typeof e=="string";var Tc=(e,...t)=>{let r=e;for(let n of t){let o=r instanceof Promise?r.then(s=>Ot(s)?s:n(s)):n(r);if(Ot(o))return o;r=o instanceof URL?new URL(o):o.then(s=>Ot(s)?s:new URL(s))}return r instanceof Promise?r.then(n=>${n}):${e}};var Jr=e=>e.ok?void 0:{name:"HTTPError",message:${e.status} ${e.statusText},response:e};var rh=e=>{if(!window.GM_fetch)return;let t=window.GM_fetch;return(async()=>{let r=await t(https://cdn.syndication.twimg.com/tweet-result?id=${e}&token=x),n=Jr(r);return n?{ok:!1,value:n}:{ok:!0,value:await r.json()}})()};var js=e=>{let{fetch:t=globalThis.fetch,...r}=e;return{fetch:t,...r}},nh=e=>typeof e=="object"&&e!==null;var On=class e extends Error{name="UnexpectedResponseError";status;statusText;body;path;constructor(t){super(${t.status} ${t.statusText} when fetching ${t.path.toString()}),this.status=t.status,this.statusText=t.statusText,this.body=t.body,this.path=t.path,Error.captureStackTrace&&Error.captureStackTrace(this,e)}};var As=async e=>{let t=await e.text();if(e.ok)return{ok:!0,value:t};if(e.status===400)return{ok:!1,value:{name:"BadRequestError",message:t}};try{let r=JSON.parse(t);if(!nh(r)||typeof r.message!="string")throw new On({status:e.status,statusText:e.statusText,body:t,path:new URL(e.url)});switch(e.status){case 401:return{ok:!1,value:{name:"UnauthorizedError",message:r.message}};case 403:return{ok:!1,value:{name:"NotPrivilegeError",message:r.message}};case 404:return{ok:!1,value:{name:"NotFoundError",message:r.message}};case 422:return{ok:!1,value:{name:"InvalidParameterError",message:r.message}};case 429:return{ok:!1,value:{name:"RateLimitError",message:r.message}};default:throw new On({status:e.status,statusText:e.statusText,body:t,path:new URL(e.url)})}}catch(r){throw r instanceof SyntaxError?new On({status:e.status,statusText:e.statusText,body:t,path:new URL(e.url)}):r}};var oh=async(e,t)=>{let{title:r,description:n,metadataIsPublic:o,collectionId:s,refererURL:i,accessToken:a,created:c,app:l,fetch:p}=js(t),u=new FormData;u.append("imagedata",e),u.append("access_token",a),i&&u.append("referer_url",i.toString()),l!==void 0&&u.append("app",l),r!==void 0&&u.append("title",r),n!=null&&u.append("desc",n),s&&u.append("collection_id",s),o&&u.append("metadata_is_public","true"),c!==void 0&&u.append("created_at",${c});let f=await p("https://upload.gyazo.com/api/upload",{method:"POST",mode:"cors",credentials:"omit",body:u}),d=await As(f);return d.ok?{ok:!0,value:JSON.parse(d.value)}:d};var sh=(e,t)=>{let r=new FormData;return r.append("data",e),r.append("metadata",JSON.stringify({app:"Gyazo",title:e.name})),GM_fetch(https://gif.gyazo.com/${t?.teams?"teams":"gif"}/upload,{method:"POST",body:r,credentials:"include",headers:{Origin:"https://gyazo.com","sec-fetch-site":"same-site"},referrer:"https://gyazo.com/"})};var Us="",ih=!1,Fs=new Map,ah=async(e,t,r,n)=>{let o=Fs.get(e.href);if(o)return o;if(e.hostname==="video.twimg.com"||${e}.endsWith(".svg")){let c=await GM_fetch(e);if(!c.ok)return;let l=c.headers.get("content-type")?.split?.(";")?.[0]??${e}.endsWith(".mp4")?"video/mp4":"video/webm",p=new File([await c.blob()],n||${t},{type:l});if(l==="video/mp4"){let d=await sh(p);if(d.ok){let g=new URL(await d.text());return Fs.set(e.href,g),g}}let u=await Cp(p,r);if(!u.ok)throw Error(u.value.name);let f=new URL(u.value.embedUrl);return Fs.set(e.href,f),f}if(e.hostname!=="pbs.twimg.com"||!e.pathname.startsWith("/media"))return;if(ih){if(!Us)return}else{let c=await Tp();if(ih=!0,!c.ok){alert("You haven't logged in Gyazo yet, so you can only upload images to scrapbox.io.");return}if(Us=c.value||"",!Us){alert("You haven't connect Gyazo to scrapbox.io yet.");return}}let s=await GM_fetch(e);if(!s.ok)return;let i=await oh(await s.blob(),{accessToken:Us,refererURL:t,description:n});if(!i.ok)throw Error(i.value.name);let a=new URL(i.value.permalink_url);return Fs.set(e.href,a),a};var DS={"<":"<",">":">","&":"&",""":'"',"'":"'","`":""},Lc=e=>e.replace(/&(lt|gt|amp|quot|#x27|#x60);/g,t=>DSt);var Bs=e=>{let t={name:e.user.name,screenName:e.user.screen_name},r=new Date(e.created_at),n=[...e.entities.hashtags.map(i=>({type:"hashtag",...i})),...e.entities.symbols.map(i=>({type:"symbol",...i})),...e.entities.user_mentions.map(i=>({type:"mention",name:i.name,screenName:i.screen_name,indices:i.indices})),...e.entities.urls.map(i=>{let a={type:"url",indices:i.indices,url:new URL(i.expanded_url)};if(e.card&&e.card?.url===i.url){let{description:c,title:l}=e.card.binding_values,p="STRING";c?.type===p&&(a.description=c.string_value),l?.type===p&&(a.title=l.string_value)}return a}),...e.entities.media?.map?.(i=>({type:"media",indices:i.indices,media:e.mediaDetails?.flatMap?.(a=>a.url===i.url?[{type:a.type,url:new URL(a.video_info?.variants?.sort?.((c,l)=>(l.bitrate??0)-(c.bitrate??0))?.0.url??a.media_url_https)}]:[])??[]}))??[]].sort((i,a)=>i.indices0-a.indices0),o=[];{let i=0,a=e.text;for(let{indices:c,...l}of n){let p=...a.slice(0,c0-i).join("");o.push({type:"plain",text:Lc(p)}),o.push(l),a=...a.slice(c1-i).join(""),i=c1}a&&o.push({type:"plain",text:Lc(a)})}let s={id:e.id_str,content:o,author:t,posted:r,replyCount:"reply_count"in e?e.reply_count:e.conversation_count};return e.self_thread&&(s.rootId=e.self_thread.id_str),e.in_reply_to_status_id_str&&(s.replyId=e.in_reply_to_status_id_str),e.parent&&(s.replyTo=Bs(e.parent)),e.quoted_tweet&&(s.quote=Bs(e.quoted_tweet)),s};var IS="landing","product","enterprise","pricing","try-enterprise","contact","terms","privacy","jp-commercial-act","support","case","features","business","auth","login","logout","oauth2","_","api","app.html","assets","file","files","billing","billings","config","feed","index","io","new","opensearch","project","projects","search","setting","settings","setup-profile","slide","socket.io","stream","user","users",Hs=(e=scrapbox.Project.name,t=location.host)=>r=>{if(r.host!==t)return r;let,n,o=r.pathname.match(/^\/(\w\d\w\d-{0,22}\w\d)(?:\/?|\/(.+))$/)??[];return!n||IS.includes(n)?r:o?n===e?[${decodeURIComponent(o)}]:[/${n}/${decodeURIComponent(o)}]:[/${n}]};var ch=(e=NS)=>t=>{let,r=t.href.match(/^https:\/\/(?:(?:www\.|mobile\.|m\.)?twitter|x)\.com\/\w\d_+\/(?:status|statuses)\/(\d+)/)??[];return r?(async()=>{let n=await(rh(r)??Ep(t.href));if(!n.ok)throw n.value;return e("images"in n.value?{...n.value,id:r}:n.value,t)})():t},NS=async e=>{if("images"in e)return $n(e);let{quote:t,replyTo:r,...n}=Bs(e);return[...r?[...(await $n(r)).split(` ).map(o=> > ${o}),...r.quote?(await $n(r.quote)).split(
).map(o=> > ${o}):[]]:[],...(await $n(n)).split(
).map(o=>> ${o}),...t?(await $n(t)).split(
).map(o=>> > ${o}):[]].join(
)?.map?.(o=>> ${Pc(o)})??["> [/ no description provided]"],...e.images.length>0?[> ${e.images.map(o=>[${o}])}]:[]].join(
);let r=e.content,n=e.author.screenName;return[@${Pc(n)} ${t},...(await Promise.all(r.map(async o=>{switch(o.type){case"plain":return o.text;case"hashtag":return #${o.text} ;case"symbol":return #$${o.text} ;case"mention":return@${o.screenName};case"media":{let s=[],i=1;for(;i<o.media.length;i+=2)s.push([${await Sc(o.mediai-1,t)}] [${await Sc(o.mediai,t)}]);return i===o.media.length&&s.push([${await Sc(o.mediai-1,t)}]), ${s.join(`
`)}
}case"url":return${Hs()(o.url)} }}))).join("").split(
)].join(
)},zs="",OS=async()=>{if(zs)return zs;let e=await at(scrapbox.Project.name);if(!e.ok)throw new Error(e.value.name);return zs=e.value.id,zs},Sc=async(e,t)=>await ah(e.url,t,await OS(),"")??e.url,Pc=e=>e.replace(/\b/gm,"").replace(/[\s\r\n\u2028\u2029]+/gm," ").replace(/\s*[[\]]\s*/g," ").trim();var lh=e=>{if(!window.GM_fetch)return;let t=window.GM_fetch;return(async()=>{let r=await t(https://t.co/${e}),n=Jr(r);return n?{ok:!1,value:n}:{ok:!0,value:new DOMParser().parseFromString(await r.text(),"text/html").title}})()};var ph=e=>{if("bit.ly","amzn.to","amzn.asia","goo.gl","s.nikkei.com","apple.co","nico.ms","w.wiki".includes(e.hostname)&&window.GM_fetch)return window.GM_fetch(e).then(r=>r.ok?new URL(r.url):e);if(e.hostname!=="t.co")return e;let t=lh(e.pathname.slice(1));return t?(async()=>{let r=await t;if(!r.ok)throw r.value;try{return new URL(r.value)}catch(n){if(n instanceof TypeError)return e;throw n}})():e};var uh=e=>{if(!e.pathname.startsWith("/wiki/"))return e;if(!/^\w+\.wikipedia\.org$/.test(e.hostname)){let,o=e.hostname.match(/^(\w+)\.m\.wikipedia\.org$/)??[];if(!o)return e;e.hostname=${o}.wikipedia.org}let t=decodeURIComponent(e.pathname.slice(6)),r=e.hash?decodeURIComponent(e.hash.slice(1)):"",n=${e.origin}/wiki/${t};return r?[${r} | ${t} - Wikipedia ${n}#${r}]:[${t} - Wikipedia ${n}]};var dh=e=>{if(e.hostname!=="www.wikiwand.com")return e;let,t,r=e.pathname.match(/^\/(^\/+)\/(^\/+)/)??[];return!t||!r||(e.hostname=${t}.wikipedia.org,e.pathname=/wiki/${r},e.hash=e.hash.startsWith("#/")?#${e.hash.slice(2)}:e.hash),e};var Rc=e=>{if(!e.hostname.startsWith("www.google."))return e;let t=e.searchParams.get("url");return t?new URL(decodeURIComponent(t)):e};var mh=/charset=(^;+)/,fh=e=>{if(!window.GM_fetch)return;let t=window.GM_fetch;return(async()=>{let r=await t(${e}),n=Jr(r);if(n)return{ok:!1,value:n};let o=r.headers.get("content-type")?.match?.(mh)?.1??await $S(r.clone());return{ok:!0,value:new TextDecoder(o).decode(await r.arrayBuffer())}})()},$S=async e=>{let t=new DOMParser().parseFromString(await e.text(),"text/html");return t.querySelector("metacharset")?.getAttribute?.("charset")??t.querySelector('metahttp-equiv="content-type"')?.getAttribute?.("content")?.match?.(mh)?.1??"utf-8"};var gh=(e=jS)=>async t=>e(await AS(t),t),jS=(e,t)=>{let r=(Ot(e)?e:e.title).replace(/\s/g," ").replaceAll("","[").replaceAll("","]");return r?[${t.hash?${decodeURIComponent(t.hash.slice(1))} | :""}${r} ${t}]:${t}},AS=async e=>{let t=fh(e);if(!t){let n=await kp(e);if(!n.ok)throw n.value;return n.value}let r=await t;if(!r.ok)throw r.value;return new DOMParser().parseFromString(r.value,"text/html")};var hh=e=>{if(!/^(?:www\.)?amazon(?:\.co|com)?\.(?:au|br|ca|fr|de|in|it|jp|mx|nl|sg|es|tr|ae|uk|cn)$/.test(e.hostname))return e;let,t=e.pathname.match(/\/dp\/(\w\d+)/)??e.pathname.match(/\/gp\/product\/(\w\d+)/)??e.pathname.match(/\/exec\/obidos\/asin\/(\w\d+)/)??e.pathname.match(/\/o\/ASIN\/(\w\d+)/)??[];return t&&(e.hash="",e.search="",e.pathname=/dp/${t}),e};var xh=e=>{if(!/(?:0-9a-z-\.)?gyazo\.com/.test(e.hostname))return e;let,t=e.pathname.match(/^\/(0-9a-f{32})(?:\/raw)?$/)??[];return t?[https://gyazo.com/${t}]:e};var bh=(e,...t)=>{if(e instanceof URL)return Tc(new URL(e),...t);let r=0,n=0,o=0,s=!1,i=e.split(/(https?:\/\/\S+)/g).map(p=>{if(!/^https?:\/\/\S+$/.test(p))return p;r++;try{let u=Tc(new URL(p),...t);return Ot(u)?(n++,u):(s=!0,u,p)}catch(u){return console.error(u),o++,p}});if(!s)return i.join("");let{render:a,dispose:c}=pe(),l=()=>a({type:"spinner"},{type:"text",text:URL: ${n}/${r} converted, ${o} failed});return l(),Promise.all(i.map(async p=>{if(Ot(p))return p;try{let u=await p0;return n++,u}catch(u){return console.error(u),o++,p1}finally{l()}})).then(p=>(a({type:"check-circle"},{type:"text",text:URL: ${n}/${r} converted, ${o} failed}),p.join(""))).finally(()=>{setTimeout(c,1e3)})};var yh=e=>{if(!/^(?:\w+\.nicovideo\.jp|nico\.ms)$/.test(e.hostname))return e;let t=e.pathname.match(/(?:sm|nm|so|ca|ax|yo|nl|ig|na|cw|za-e|om|sk|yk|lv)\d{1,14}$/)?.0;return t?[https://nicothumb2img.vercel.app/image/${t}#.png https://nico.ms/${t}]:e};var vh=e=>Xt(e,{hasTitle:!1}).flatMap(r=>{switch(r.type){case"title":return[];case"codeBlock":return US(r);case"table":return FS(r);case"line":return BS(r)}}).map(r=>r).join(` ),US=({fileName:e,content:t,indent:r})=>{let n=" ".repeat(r);return[${n}code:${e},...t.split(
).map(o=>${n} ${o})]},FS=({fileName:e,cells:t,indent:r})=>{let n=" ".repeat(r);return[${n}table:${e},...t.map(o=>${n} ${o.map(s=>s.map(i=>i.raw).join("")).join(" ")})]},BS=({nodes:e,indent:t})=>[${" ".repeat(t)}${e.map(r=>${jn(r)}).join("")}],jn=e=>{switch(e.type){case"quote":return> ${e.nodes.map(t=>jn(t)).join("")};case"helpfeel":return-? ${e.text};case"commandLine":return-${e.symbol} ${e.text};case"icon":case"strongIcon":case"image":case"strongImage":case"formula":case"code":case"googleMap":return e.raw;case"strong":return${e.nodes.map(t=>jn(t)).join("")};case"decoration":{e.decos.includes("-")||e.decos.push("-");let t=e.decos.map(r=>{let n=parseInt(r.match(/\*-(\d)/)?.[1]??"0");return n>0?"*".repeat(n):r}).join("");return[${t?${t} :""}${e.nodes.map(r=>jn(r)).join("")}]}case"link":switch(e.pathType){case"root":case"relative":return${e.href};case"absolute":return[- ${e.content?${e.content} :""}${e.href}]]}case"hashTag":return#${e.href};case"numberList":return${e.number}. ${e.nodes.map(t=>jn(t)).join("")};case"blank":case"plain":return${e.text}}};scrapbox.PopupMenu.addButton({title:"",onClick:e=>{let t=vh(e);if(e!==t)return t}});var _c=e=>{let t=e.indexOf( );if(t<0)return;let r=e.slice(0,t).split(
).map(s=>{let[i="",a=""]=s.split(" => ",2);return[i,a]});if(r.length===0)return;let n=e.slice(t+2).split(
);if(n.length===0)return;for(let[s,i]of r){let a=s.match(/^\/(.*?)\/([gimy]*)$/);if(a){let c=new RegExp(a[1],a[2]);n=n.map(l=>l.replace(c,i.replaceAll("\\n",
)))}else n=n.map(c=>c.replaceAll(s,i.replaceAll("\\n",
)))}let o=${e.slice(0,t+2)}${n.join(`
)};if(e!==o)return o};scrapbox.PopupMenu.addButton({title:e=>_c(e)?"replace":"",onClick:e=>{let t=_c(e);if(t!==void 0)return t}});var wh=e=>{let t=document.createElement("div"),r=t.attachShadow({mode:"open"}),n=document.createElement("style");n.textContent="dialog::backdrop{background-color:#000c}dialog{flex-direction:column;align-items:center;row-gap:10px;padding:10px;background:unset;margin-top:unset;margin-bottom:unset;border:unset;height:unset}dialogopen{display:flex}dialog>*{color:var(--page-text-color, #4a4a4a);background-color:var(--dropdown-menu-bg, #fff);border:1px solid rgba(0,0,0,.2);border-radius:6px}@media (min-width: 768px){dialog{padding:30px 0}}.container{display:flex;padding:5px;gap:0.2em;flex-direction:column;width:100%;}.button-container{flex-direction:unset;}.button-container>*{flex:1;}",r.append(n);let o=document.createElement("dialog");o.insertAdjacentHTML("beforeend",` <div class="container">
Replace Links:
<textarea class="editor"></textarea>
<div class="container button-container">
<button class="cancel">cancel</button>
<button class="replace">replace</button>
</div>
</div>
),r.append(o);let s=o.querySelector(".editor");s.rows=e.length,s.value=e.join(
);let i=()=>{o.style.minWidth=${Math.max(...s.value.split(`
).map(p=>[...p].length))+6}em};i(),s.addEventListener("input",i);let a=o.querySelector(".cancel"),c=o.querySelector(".replace"),l=new Promise(p=>{let u=()=>{p({convert:!1}),t.remove()};o.addEventListener("close",u),o.addEventListener("click",u),a.addEventListener("click",u),c.addEventListener("click",()=>{let f=s.value.split(`
);p({convert:!0,links:e.flatMap((d,g)=>d===f[g]||d===""||!f[g]?[]:[{before:d,after:f[g]??d}])}),t.remove()}),o.querySelector(".container").addEventListener("click",f=>{f.stopPropagation()})});return document.body.append(t),o.showModal(),l};var kh=async(e,t)=>{let r=Nt(e),n=await wh([...new Set(r)]);if(!n.convert||n.links.length===0)return;let o=new Map(n.links.map(s=>[s.before,pe()]));await Xg(n.links,t,s=>{let{link:i,projectCount:a,replaced:c,done:l}=s,p=o.get(i.before);if(p){if(l){p.render({type:"check-circle"},{type:"text",text:"${i.after}", ${c}l. ${a}p.}),setTimeout(()=>p.dispose(),1e3);return}p.render({type:"spinner"},{type:"text",text:"${i.after}", ${c}l. ${a}p.})}})};async function Eh(e,t){let r=Nt(e)[0];if(!r)return;let n=window.prompt(Replace "${r}" to this in ${t.map(a=>"/${a}").join(", ")},r)?.replace?.(/[\[\]\n]/g," ")??"";if(n==="")return;let{render:o,dispose:s}=pe(),i=await Ae();try{o({type:"spinner"},{type:"text",text:Replacing links in ${t.length} projects...});let a=0,l=(await Promise.all(t.map(async p=>{let[u]=await Promise.all([vo(p,r,n),oe(p,r,(f,{persistent:d})=>{if(d)return[n,...f.map(g=>g.text).slice(1)]},{socket:i})]);if(!u.ok)throw o({type:"exclamation-triangle"},{type:"text",text:${u.value.name} ${u.value.message}}),HS(u.value);return a++,o({type:"spinner"},{type:"text",text:Replacing links in ${t.length-a} projects...}),u.value}))).reduce((p,u)=>p+u,0);o({type:"check-circle"},{type:"text",text:Successfully replaced ${l} links.})}finally{await De(i),setTimeout(s,1e3)}}function HS(e){let t=new Error;return t.name=e.name,t.message=e.message,t}var Th=e=>{let t=[scrapbox.Project.name,...e];scrapbox.PopupMenu.addButton({title:r=>{let n=Nt(r).length;return n>1?"update links":n===1?"update a link":""},onClick:r=>{let n=Nt(r).length;n>1?kh(r,t):n===1&&Eh(r,t)}})};scrapbox.PopupMenu.addButton({title:e=>/[\n..。]/.test(e)?"\\n":"",onClick:e=>e.replace(/(\w)\n(\w)/g,"$1 $2").replaceAll(
,"").replaceAll(".",.
).replaceAll(".",.
).replaceAll("。",。
)});scrapbox.PopupMenu.addButton({title:e=>/https:\/\/(?:thumb\.|i\.)?gyazo\.com\/[a-z0-9]+/.test(e)?globalThis.GM_fetch?"copy Gyazo OCR":"open Gyazo":"",onClick:async e=>{let t=e.match(/https:\/\/(?:thumb\.|i\.)?gyazo\.com\/([a-z0-9]+)/)?.[1];if(!t)return;if(!globalThis.GM_fetch){window.open(https://gyazo.com/${t});return}let n=(await(await GM_fetch(https://gyazo.com/${t}.json)).json()).metadata?.ocr?.description;if(n)try{await navigator.clipboard.writeText(n)}catch(o){console.error(o),alert(${o.name} ${o.message})}}});scrapbox.PopupMenu.addButton({title:e=>/https:\/\/gyazo\.com\/[a-z0-9]+/.test(e)?"":"",onClick:e=>{let t=e.match(/https:\/\/gyazo\.com\/([a-z0-9]+)/)?.[1];t&&window.open(https://gyazo.com/${t}/transform)}});var Lh=e=>{let t="",r=0;for(let n of e)if(n.type!=="title"){if(n.indent>r)for(let o=r;o<n.indent;o++)t+=An(${o!==r?"\\item":""}\\begin{itemize},o*2)+ ;if(n.indent<r)for(let o=r;o>n.indent;o--)t+=An("\\end{itemize}",(o-1)*2)+
;r=n.indent,t+=An(${r>0?"\\item ":""}${zS(n)},r*2)+
}for(let n=r;n>0;n--)t+=An("\\end{itemize}",(n-1)*2)+
${e.content}
\\end{lstlisting},WS=e=>{let t=\\caption{${We(e.fileName)}}\\label{table:${We(e.fileName)}},r=Math.max(...e.cells.map(o=>o.length)),n=e.cells.map(o=> ${o.map(s=>s.map(i=>Qr(i)).join("")).join(" & ")}\\\\);return\\begin{table}htbp ${t}
\\centering
\\begin{tabular}{${"c".repeat(r)}}
${n.length===0?"":n.length===1?` \\toprule
${n.join(`
`)}
\\bottomrule: \\toprule
\\midrule
${n.slice(1).join(`
`)}
\\bottomrule`}
\\end{tabular}
\\end{table}},GS=e=>e.nodes.map(t=>Qr(t)).join(""),Qr=e=>{switch(e.type){case"quote":return\\begin{quote}
${An(e.nodes.map(t=>Qr(t)).join(""),2)}
\\end{quote};case"image":case"strongImage":return\\begin{figure}hbtp iamge:\\url{${e.src}}
\\end{figure};case"icon":case"strongIcon":return\\textit{${We(e.path)}};case"strong":return\\textbf{${e.nodes.map(t=>Qr(t)).join("")}};case"formula":return$${e.formula}$;case"decoration":{let t=e.nodes.map(r=>Qr(r)).join("");return e.decos.includes("/")&&(t=\\textit{${t}}),e.decos.some(r=>/\*-/.test(r[0]))&&(t=\\textbf{${t}}),e.decos.includes("_")&&(t=\\uline{${t}}),e.decos.includes("-")&&(t=\\sout{${t}}),t}case"numberList":return${e.number}. ${e.nodes.map(t=>Qr(t)).join("")};case"helpfeel":return\\lstinline!? ${We(e.text)}!;case"code":return\\lstinline!${We(e.text)}!;case"commandLine":return\\lstinline!${We(e.symbol)} ${We(e.text)}!;case"link":return e.pathType==="absolute"?e.content===""?\\url{${e.href}}:\\href{${e.href}}{${We(e.content)}}:We(e.href);case"googleMap":return\\href{${e.url}}{${We(e.place)}};case"hashTag":return We(#${e.href});case"blank":case"plain":return We(e.text)}},KS=[{extensions:["javascript","js"],fileType:"javascript"},{extensions:["typescript","ts"],fileType:"typescript"},{extensions:["cpp","hpp"],fileType:"C++"},{extensions:["c","cc","h"],fileType:"C"},{extensions:["cs","csharp"],fileType:"cs"},{extensions:["markdown","md"],fileType:"markdown"},{extensions:["htm","html"],fileType:"html"},{extensions:["json"],fileType:"json"},{extensions:["xml"],fileType:"xml"},{extensions:["yaml","yml"],fileType:"yaml"},{extensions:["toml"],fileType:"toml"},{extensions:["ini"],fileType:"ini"},{extensions:["tex","sty"],fileType:"tex"},{extensions:["svg"],fileType:"svg"}],XS=e=>{let t=e.replace(/^.*\.(\w+)$/,"$1");return KS.find(r=>r.extensions.includes(t))?.fileType??""},We=e=>e.replaceAll("\\","\\textbackslash ").replaceAll("#","\\#").replaceAll("%","\\%").replaceAll("$","\\$").replaceAll("&","\\&").replaceAll("~","\\textasciitilde ").replaceAll("^","\\textasciicircum ").replaceAll("_","\\_").replaceAll("{","\\{").replaceAll("}","\\}").replaceAll("|","\\textbar ").replaceAll("<","\\textless ").replaceAll(">","\\textgreater "),An=(e,t)=>e.split( ).map(r=>${" ".repeat(t)}${r}).join(
);scrapbox.PopupMenu.addButton({title:"TeX",onClick:e=>{navigator.clipboard.writeText(Lh(Xt(e))).catch(t=>{console.error(t),alert(${t.name} ${t.message}
${t.stack})})}});var qs="https://keicho.herokuapp.com/api/";var Sh=async(e,t)=>{if(!window.GM_fetch)return{ok:!1,value:{name:"GMFetchNotAvailableError"}};let r=await window.GM_fetch(${qs}web/,{mode:"cors",method:"POST",body:JSON.stringify({user:"nobody",talk:t,text:e}),headers:{"Content-Type":"application/json"}});if(!r.ok)return{ok:!1,value:{name:"ResponseError",res:r}};let n=await r.json();return{ok:!0,value:{text:n.text,buttons:n.buttons,canInput:n.can_input}}};var Ph=()=>{let{popupMenu:e,render:t}=YS();Yl()?.append?.(e);let r=_r(),n=()=>{requestAnimationFrame(()=>{let o=document.getElementsByClassName("cursor")[0];e.style.top=${parseInt(o.style.top)+parseInt(o.style.height)+4}px})};return r.addChangeListener(n),{render:t,visible:()=>!e.hidden,open:()=>e.hidden=!1,close:()=>e.hidden=!0,toggle:()=>e.hidden=!e.hidden,dispose:()=>{e.remove(),r.removeChangeListener(n)}}},YS=()=>{let e=document.createElement("div"),t=e.attachShadow({mode:"open"});t.innerHTML=
<style>
:host {
position: absolute;
left: 0px;
width:100%;
z-index:300;
user-select:none;
font-family:"Open Sans",Helvetica,Arial,"Hiragino Sans",sans-serif;
pointer-events:none
}
.button-container {
position: relative;
display:inline-block;
max-width:70vw;
min-width:80px;
text-align:center;
background-color:#111;
padding:0 1px;
border-radius:4px;
pointer-events:auto
}
max-width:90vw
}
max-width:90vw
}
.button {
font-size:11px;
color:#eee;
cursor:pointer;
display:inline-block;
padding:0 5px
}
.button:not(:first-of-type) {
border:0;
border-left:1px solid #eee }
.button.selected {
background-color:#222;
text-decoration:underline
}
font-size:13px;
padding:6px;
min-width:12vw
}
font-size:13px;
padding:6px;
min-width:12vw
}
.button div.icon {
height:2em;
max-width:10em;
display:inline-block;
overflow:hidden;
margin-left:1px;
vertical-align:top
}
.button div.icon img {
max-height:100%;
vertical-align:unset
}
</style>
<div class="button-container"></div>
;let r=t.lastElementChild;return{popupMenu:e,render:(...n)=>{r.textContent="",r.append(...n.map(({text:o,onClick:s})=>{let i=document.createElement("div");return i.classList.add("button"),i.textContent=o,s&&i.addEventListener("click",()=>s()),i}))}}};var Rh=async(e="normal")=>{if(!window.GM_fetch)return{ok:!1,value:{name:"GMFetchNotAvailableError"}};let t=await window.GM_fetch(${qs}web/create/?mode=${e},{mode:"cors"});return t.ok?{ok:!0,value:await t.text()}:{ok:!1,value:{name:"ResponseError",res:t}}};var _h=e=>https://keicho.netlify.app/#talk=${e};var Ch=e=>{let t=e.split( ),r=t[1]??t[0],n=e===t[0]?"":t[0];return n?[n.trim(),r].join(
):r};var Ws=async(e,t,r)=>{let n=_r(),o=n.lines.findIndex(i=>i.id===t.id);o<0&&(o=n.lines.findIndex(i=>i.text===t.text)),o<0&&(o=Math.min(r,Math.max(0,n.lines.length-1)));let s=n.lines[o].text;return up().clear(),n.setPosition({line:o,char:[...s].length}),await Oe(
${e}),n.getPosition().line};var Mh=e=>Xt(e,{hasTitle:!1}).map(t=>{if(t.type==="title")return t.text.trimEnd();let r=" ".repeat(t.indent);switch(t.type){case"codeBlock":return[${r}${t.fileName},...t.content.split(
).map(n=>${r} ${n})].join(
).trimEnd();case"table":return[${r}${t.fileName},...t.cells.map(n=>${r} ${n.flatMap(o=>o.map(s=>Gs(s))).join(" ")})].join(
).trimEnd();case"line":return${r}${t.nodes.map(n=>Gs(n)).join("")}.trimEnd()}}).join(
),Gs=e=>{switch(e.type){case"quote":return> ${e.nodes.map(t=>Gs(t)).join("")};case"helpfeel":case"commandLine":return e.raw;case"strongImage":case"image":case"strongIcon":case"icon":case"googleMap":return"";case"strong":case"decoration":case"numberList":return e.nodes.map(t=>Gs(t)).join("");case"formula":return\\(${e.formula}\\);case"code":return ${e.text} ;case"blank":case"plain":return e.raw;case"hashTag":return e.href;case"link":switch(e.pathType){case"absolute":return e.content? ${e.content} :"";case"root":return e.href.split("/").pop()??"";case"relative":return e.href}}};var Zr=e=>/^[((]/.test(e);var Ih=async e=>{let t=scrapbox.Page.lines;if(!t)return;let{cursor:r,selection:n}=gt(),o=e?.entire||n.hasSelectionAll(),s=o?t.map(k=>k.text).join(
):n.getSelectedText(),i=e?.botIcon??"[/nishio/nisbot.icon]",{render:a,visible:c,open:l,close:p,dispose:u}=Ph();p();let f=new Set,d=()=>{u();for(let k of f)k()},g=k=>f.add(k),h={text:"Exit",onClick:d},x=e?.talkId||Dh(s)||(o?"":Dh(t.slice(0,1+r.getPosition().line).map(k=>k.text).join(
))),v=!x;if(!x){let k=Rh(e?.mode),R=setTimeout(()=>{a({text:"Start talking..."}),l();let D=0;R=setInterval(()=>{a({text:Start talking${".".repeat(D%3)}}),D++},1e3)},1e3),C=await k;if(clearTimeout(R),!C.ok){if(C.value.name==="GMFetchNotAvailableError"){alert("GM_fetch is not available. Please use Tampermonkey and install GM_fethc.");return}if(C.value.name==="ResponseError"){a({text:Error: ${C.value.res.status} ${C.value.res.statusText}},h),l(),console.error(Error: ${C.value.res.status} ${C.value.res.statusText},await C.value.res.text());return}return}x=C.value}let L=x,S=n.normalizeOrder(n.getRange()),b=o?t.length-1:S.end.line,E=t[b],w=o?"":" ".repeat(Math.min(...t.slice(S.start.line,S.end.line+1).map(k=>Ue(k.text)))),O=async k=>{let R=await Sh(k,L);if(!R.ok)switch(R.value.name){case"ResponseError":return a({text:Error: ${R.value.res.status} ${R.value.res.statusText}},h),l(),console.error(Error: ${R.value.res.status} ${R.value.res.statusText},await R.value.res.text()),R;case"GMFetchNotAvailableError":return alert("GM_fetch is not available. Please use Tampermonkey and install GM_fethc."),R}return R},$="",B=async k=>{let R=Mh(k).split(
).map(M=>M.trim()).join(
).trim();R.startsWith($)&&(R=R.slice($.length));let C=R.split(
);if(C.length===0)return;if(C.every(M=>Zr(M))&&($=R),C.filter(M=>!Zr(M)).length<2){let M,H;for(let A of C){if(H=await O(A),!H.ok)return H;Zr(A)||(M=H)}return M??H}let j=0;{let M;for(;j<C.length&&Zr(C[j]);j++)if(M=await O(C[j]),!M.ok)return M}{let M=await O("まず聞いて");if(!M.ok)return M}for(;j<C.length&&!Zr(C[j]);j++){let M=await O(C[j]);if(!M.ok)return M}return await O("おしまい")},P=async k=>{if(scrapbox.Layout!=="page"||k==="")return;let R=B(k),C=setTimeout(()=>{a({text:"Asking..."}),l();let A=0;C=setInterval(()=>{a({text:Asking${".".repeat(A%3)}}),A++},1e3)},1e3),D=await R;if(clearTimeout(C),!D||!D.ok)return;let{text:j,buttons:M}=D.value,H=Ch(j);if(H.trim()){let A=${w}${i}${H.includes(`
)?
${H.split(`
).map(z=> ${w}${z}).join(
)}:H}
${w};b=await Ws(A,E,b),E=t[b]}a({text:"Send",onClick:T},{text:"🙂",onClick:()=>Oe("🙂")},{text:"🙁",onClick:()=>Oe("🙁")},...M.map(A=>({text:A,onClick:async()=>{b=await Ws(A,E,b),E=t[b],await P(A)}})),h),l()},T=async()=>{if(scrapbox.Layout!=="page")return;let k=scrapbox.Page.lines,R=r.getPosition().line,[C,D,j]=VS(k,R,i);C!==""&&(b=j,E=k[b],w=" ".repeat(Math.min(...k.slice(D,j+1).map(M=>Ue(M.text)))),await P(C))};return v&&(b=await Ws(_h(L),E,b),E=t[b]),await P(s),{ask:T,open:l,close:p,visible:c,exit:d,onExit:g}},Dh=e=>{for(let t of e.split(
).reverse()){let r=t.match(/https?:\/\/keicho\.netlify\.app\/#talk=(\w+)/)?.[1];if(r)return r}},VS=(e,t,r)=>{let n=Math.max(e.findLastIndex((s,i)=>i<t&&s.text.trim().startsWith(r)),1),o=n+St(n,e)+1;return[e.slice(o,t+1).map(s=>s.text.trim()).join(
).trim(),o,t]};scrapbox.PopupMenu.addButton({title:"",onClick:e=>${e}});scrapbox.PopupMenu.addButton({title:"",onClick:e=>$ ${e}});var Nh=[cr,lr,pr];scrapbox.PopupMenu.addButton({title:e=>{let t=Pt({project:scrapbox.Project.name,mode:"noopen",hooks:Nh});return!t||t.hookName.includes("default")?"":t.hookName.includes("task")?"":t.hookName.includes("split")?"":""},onClick:()=>{let e=window.prompt("Create a new page at",scrapbox.Project.name);e&&Pt({project:e,mode:"noopen",hooks:Nh})?.()}});scrapbox.PopupMenu.addButton({title:e=>/(https?:\/\/[^\s]+)/g.test(e)?"":"",onClick:e=>{let t=e.replace(/(https?:\/\/[^\s]+)/g,"[$1#.jpg]");if(e!==t)return t}});scrapbox.PopupMenu.addButton({title:"S",onClick:e=>{window.open(https://scrapbox.io/${scrapbox.Project.name}/search/page?q=${e})}});scrapbox.PopupMenu.addButton({title:"",onClick:e=>{let t=e.split(/\n/).map(r=>r.replace(/\[(.*)\]/g,"$1")).join( );if(e!=t)return t}});var JS=[Rc,ph,Rc,dh,hh,Hs(),xh,ch(),uh,e=>{if(e.hostname!=="ekitan.com"||!/^\/transit\/(?:route|first|last)\//.test(e.pathname))return e;let t=e.searchParams.get("dt"),r=e.searchParams.get("tm"),n=e.searchParams.get("sr");return e.search="",t&&e.searchParams.append("dt",t),e.pathname.startsWith("/transit/route/")&&(r&&e.searchParams.append("tm",r),n&&e.searchParams.append("sr",n)),e},e=>{if(e.host!==location.host||!e.pathname.startsWith("/api/code/"))return e;let t=encodeURIComponent(${e.origin}${e.pathname});return${e}.endsWith(".svg")?${e}:${e}.endsWith(".mlt")?${e}:e},e=>{if(e.hostname==="raw.githubusercontent.com")return${e};if(e.hostname!=="github.com")return e;let[t,r,n]=e.pathname.match(/^\/([^\\]+)\/([^\\]+)\/blob\/(.+)$/)?.slice?.(1)??[];if(!t||!r||!n)return e;let[,o,s]=e.hash.match(/L(\d+)-L(\d+)/)??e.hash.match(/L(\d+)/)??[];return[https://code2svg.vercel.app/svg/${o&&s?L${o}-${s}/:o?L${o}/:""}https://raw.githubusercontent.com/${t}/${r}/${n}#.svg ${e}]},e=>e.hostname==="github.com"?${e}:e,yh,gh()];scrapbox.PopupMenu.addButton({title:e=>/https?:\/\/\S+/.test(e)?"URL":"",onClick:e=>{let t=bh(e,...JS);if(typeof t=="string")return e===t?void 0:t;t.then(r=>{if(e!==r)return Oe(r)})}});Th(["takker","takker-memex","takker-private","takker-books"]);if(!/mobile/i.test(navigator.userAgent)){let e=(t,r)=>{t.trim()!==""&&Ih({mode:r}).then(n=>{if(!n)return;let{ask:o,visible:s,onExit:i}=n,a=c=>{!s()||c.key!=="Enter"||!c.ctrlKey||c.altKey||c.shiftKey||(c.preventDefault(),c.stopPropagation(),o())};Ne().addEventListener("keydown",a),i(()=>Ne().removeEventListener("keydown",a))})};scrapbox.PopupMenu.addButton({title:()=>"🤖",onClick:t=>e(t)})}var Un=(e,t)=>t.map(r=>r.replace(/@yyyy-MM-dd HH:mm:ss@/g,Q(e,"yyyy-MM-dd HH:mm:ss")).replace(/@yyyy-MM-dd@/g,Q(e,"yyyy-MM-dd")).replace(/@yyyy-MM-dd(?:([+-])(\d+)(w?))?(?:\((Sun|Mon|Tue|Wed|Thu|Fri|Sat)\))?@/g,(n,o,s,i,a)=>{let c=o?o==="+"?Be(e,parseInt(s)*(i==="w"?7:1)):Rt(e,parseInt(s)*(i==="w"?7:1)):e;return Q(a?Be(To(c),QS(a)):c,"yyyy-MM-dd")}).replace(/@yyyy-ww@/g,${dn(e)}-w${${un(e)}.padStart(2,"0")}).replace(/@yyyy-ww([+-])(\d+)(w?)@/g,(n,o,s,i)=>{let a=o==="+"?Be(e,parseInt(s)*(i==="w"?7:1)):Rt(e,parseInt(s)*(i==="w"?7:1));return${dn(a)}-w${${un(a)}.padStart(2,"0")}})),QS=e=>{switch(e){case"Sun":return 0;case"Mon":return 1;case"Tue":return 2;case"Wed":return 3;case"Thu":return 4;case"Fri":return 5;default:return 6}};var $h=async(e,t,r)=>{if(scrapbox.Project.name!==e)return()=>{};let n=scrapbox.Project.pages;await new Promise(l=>{let p=setInterval(()=>{if(n.length===0){n=scrapbox.Project.pages;return}clearInterval(p),l()},2e3)});let o=new Date(2023,1,3),s=async()=>{let l=new Date,p={start:o,end:Be(l,1)},{render:u,dispose:f}=pe(),d;try{let g=await Oh(t),h=await Oh(r),x=Yp(p).filter(S=>{let b=Un(S,g)[0],E=n.find(w=>w.title===b);return!E||!E.exists}),v=xu(p).filter(S=>{let b=Un(S,h)[0],E=n.find(w=>w.title===b);return!E||!E.exists});if(x.length===0&&v.length===0)return;let L=x.length+v.length;u({type:"spinner"},{type:"text",text:create ${L} review pages...}),d=await Ae();for(let S of[...x.map(b=>Un(b,g)),...v.map(b=>Un(b,h))])await oe(e,S[0],(b,E)=>E.persistent?void 0:S,d?{socket:d}:{}),L--,u({type:"spinner"},{type:"text",text:create ${L} review pages...});u({type:"check-circle"},{type:"text",text:created ${x.length+v.length} review pages.}),o=l}catch(g){u({type:"exclamation-triangle"},{type:"text",text:g instanceof Error?${g.name} ${g.message}:"Unknown error! (see developper console)"}),console.error(g)}finally{d&&await De(d),await ae(1e3),f()}},i=s(),a=new Date,c=setInterval(()=>{let l=new Date;Ye(a,l)||(a=l,i.then(()=>i=s()))},1e4);return()=>(clearTimeout(c),i)},Oh=async e=>{let t=await wo(e[0],e[1],e[2]);if(!t.ok){let n=new Error;throw n.name=t.value.name,n.message=${t.value.message} at fetching /${e0}/${e1}/${e2},n}let r=t.value.split( );if(r.length===0)throw new Error(template "/${e0}/${e1}/${e2}" is empty!);return r};var Mc=(...e)=>{let t=e.flatMap(n=>{if(typeof n=="string")return[Ks(n)];if(Array.isArray(n.type))return[jh(n.type)];switch(n.type){case"text":return[Ks(n.text)];case"group":{let o=Mc(...n.items);return o?[o]:[]}default:return[jh(n.type)]}});if(t.length===0)return;if(t.length===1)return t[0];let r=document.createElement("span");return r.classList.add("item-group"),r.append(...t),r},Ks=e=>{let t=document.createElement("span");return t.classList.add("item"),t.append(e),t},jh=e=>{if(Array.isArray(e)){let t=document.createElement("span");t.classList.add("fa-stack");let r=Cc(e[0]);r.classList.add("fa-stack-1x");let n=Cc(e[1]);return n.classList.add("fa-stack-1x"),t.append(r,n),Ks(t)}return Ks(Cc(e))},Cc=e=>{let t=document.createElement("i");switch(e){case"spinner":t.classList.add("fa","fa-spinner");break;case"check-circle":case"gyazo":case"ocr":case"calendar":case"trim":t.classList.add("kamon",kamon-${e});break;case"markdown":case"google":t.classList.add("fab",fa-${e});break;case"copy":case"clipboard":t.classList.add("far",fa-${e});break;default:t.classList.add("fas",fa-${e});break}return t};var{cursor:Dc,selection:Ic}=gt(),Uh=e=>{let{className:t,display:r,onClick:n,context:o="page"}=e,s=document.createElement("div");t&&s.classList.add(t),Ah(o)||(s.style.display="none");let i=(...l)=>{if(l.length===1&&l[0]===""){s.style.display="none";return}s.textContent="";let p=Mc(...l);p&&s.append(p)},a=typeof r=="function"?r({cursor:Dc,selection:Ic}):r;return i(...Array.isArray(a)?a:[a]),s.addEventListener("click",l=>{l.preventDefault(),l.stopPropagation(),n({cursor:Dc,selection:Ic,setDisplay:i})}),{status:s,context:o,update:()=>{if(Ah(o)?s.removeAttribute("style"):s.style.display="none",typeof r=="function"){let l=r({cursor:Dc,selection:Ic});i(...Array.isArray(l)?l:[l])}}}},Ah=e=>e!=="stream"?scrapbox.Layout===e:scrapbox.Layout==="list"&&location.pathname.startsWith("/stream");var Fh=()=>{let e=document.createElement("style");e.textContent=.status-bar.left { position: absolute;
top: 0;
left: 0;
max-width: 80vw;
overflow-x: auto;
overflow-y: hidden;
}
.status-bar.left:empty {
display: none;
}
.status-bar.left > div {
border-left: unset;
}
.status-bar.left > div {
border-right: 1px solid var(--tool-light-color, #a9aaaf); }
.status-bar.left > div:first-of-type {
border-top-left-radius: unset;
}
.status-bar.left > div:last-of-type {
border-top-right-radius: 3px;
},document.head.append(e);let t=document.createElement("div");return t.classList.add("status-bar","left"),document.getElementsByClassName("footer")[0].append(t),t};var Nc=new Set,{cursor:ZS,selection:eP}=gt(),tP=Fh();var it=e=>{let t=Uh(e);return Nc.add(t),tP.append(t.status),()=>{t.status.remove(),Nc.delete(t)}},Oc=()=>{for(let{update:e}of Nc)e()};ZS.addChangeListener(()=>Oc());eP.addChangeListener(()=>Oc());scrapbox.addListener("layout:changed",Oc);var Bh=async(e,t)=>{try{let r=t.getSelectedText()||we(e.getPosition().line);if(!r)return;await navigator.clipboard.writeText(r)}catch(r){console.error(r),alert(Faild to copy:
${JSON.stringify(r)})}},Hh=async(e,t)=>{try{let r=t.hasSelection(),n=r?t.getRange().start.line:e.getPosition().line,o=r?t.getSelectedText():we(n);if(!o)return;await navigator.clipboard.writeText(o),r||t.setRange({start:{line:n,char:0},end:{line:n,char:o.length}}),e.focus(),he("Delete")}catch(r){console.error(r),alert(Faild to cut:
${JSON.stringify(r)})}},zh=async e=>{try{let t=await navigator.clipboard.readText();if(!t)return;e.focus(),await Oe(t)}catch(t){console.error(t),alert(Faild to paste:
${JSON.stringify(t)})}},qh=e=>{e.getVisible()&&e.hasFocus&&e.visiblePopupMenu?e.hide():(e.focus(),e.showEditPopupMenu())};globalThis.addEventListener("keydown",e=>{if(e.key!=="i"||e.shiftKey||e.altKey||e.metaKey||!e.ctrlKey||e.isComposing)return;let t=_r();t.hasFocus||(e.preventDefault(),t.focus())});var $c=class{get editor(){return document.getElementById("editor")}get lines(){return document.getElementsByClassName("lines")?.[0]}get computeLine(){return document.getElementById("compute-line")}get grid(){return document.getElementsByClassName("related-page-list clearfix")?.[0]?.getElementsByClassName("grid")?.[0]}get cursorLine(){return document.getElementsByClassName("cursor-line")?.[0]}get textInput(){return document.getElementById("text-input")}get cursor(){return document.getElementsByClassName("cursor")?.[0]}get selections(){return document.getElementsByClassName("selections")?.[0]}get popupMenu(){return document.getElementsByClassName("popup-menu")?.[0]}get pageMenus(){return document.getElementsByClassName("page-menu")?.[0]}get pageInfoMenu(){return document.getElementById("page-info-menu")}get pageEditMenu(){return document.getElementById("page-edit-menu")}get pageEditButtons(){return this.pageEditMenu.nextElementSibling.getElementsByTagName("a")}get randomJumpButton(){return document.getElementsByClassName("random-jump-button")?.[0]}get pageCustomButtons(){return document.getElementsByClassName("page-menu-extension")}},Wh=new $c;var Gh=e=>new Promise(t=>setTimeout(t,e));async function pt(e,{wait:t=1}={}){let r=Wh.textInput;r.focus(),r.value=e;let n=document.createEvent("UIEvent");n.initEvent("input",!0,!1),r.dispatchEvent(n),await Gh(t)}if(wr()){let e="Timestamp";scrapbox.PageMenu.addMenu({title:e,image:"https://img.icons8.com/ios/180/FFFFFF/add-time.png"}),scrapbox.PageMenu(e).addItem({title:"#YYYY-MM-DD HH:mm:ss ",onClick:()=>pt(Q(new Date,"#yyyy-MM-dd HH:mm:ss "))}),scrapbox.PageMenu(e).addItem({title:"YYYY-MM-DD HH:mm:ss ",onClick:()=>pt(Q(new Date,"yyyy-MM-dd HH:mm:ss "))}),scrapbox.PageMenu(e).addItem({title:"YYYY-MM-DD",onClick:()=>pt(Q(new Date,"yyyy-MM-dd"))}),scrapbox.PageMenu(e).addItem({title:"HH:mm:ss ",onClick:()=>pt(Q(new Date,"HH:mm:ss "))}),scrapbox.PageMenu(e).addItem({title:"⬜",onClick:()=>pt("⬜")}),scrapbox.PageMenu(e).addItem({title:"🚧",onClick:()=>pt("🚧")}),scrapbox.PageMenu(e).addItem({title:"⌛",onClick:()=>pt("⌛")}),scrapbox.PageMenu(e).addItem({title:"📝",onClick:()=>pt("📝")}),scrapbox.PageMenu(e).addItem({title:"✅",onClick:()=>pt("✅")}),scrapbox.PageMenu(e).addItem({title:"❌",onClick:()=>pt("❌")})}scrapbox.PageMenu.addItem({title:"Open kakeru",image:"https://i.kakeru.app/15c3b1a40b6b3c2ebd68f33f4c86b3f6-opaque.png",onClick:()=>window.open("https://kakeru.app")});async function Kh(e,{from:t,to:r,merge:n}){if(t===r)return{success:!0,dup:!1};let o=await qe(t,e);if(!o.ok)return{success:!1,at:"from",name:o.value.name,message:o.value.message};let s=o.value;if(!s.persistent)return{success:!1,at:"from",name:"EmptyPageError",message:"The request page is empty."};let i=await qe(r,e);if(!i.ok)return{success:!1,at:"to",name:i.value.name,message:i.value.message};let a=o.value;return a.persistent&&!n?{success:!1,at:"to",name:"NoEmptyPageError",message:The same page already exists in "/${r}"}:(await oe(r,e,c=>[...c,...s.lines.slice(1)].map(l=>l.text)),await yl(t,e),{success:!0,dup:a.persistent})}var jc=async()=>{let e=scrapbox.Page.title,t=scrapbox.Project.name,r=window.prompt(Take "/${t}/${e}" from "${t}" to:,"takker");if(!r)return;let{render:n,dispose:o}=pe();n({type:"spinner"},{type:"text",text:/${t}/${e} → /${r}/${e}});try{let s=await Kh(e,{from:t,to:r,merge:!0});if(!s.success){n({type:"exclamation-triangle"},{type:"text",text:${s.name} ${s.message}});return}return n({type:"check-circle"},{type:"text",text:Moved ${s.dup?"and merged ":""}to "/${r}/${e}".}),https://scrapbox.io/${r}/${J(e)}}catch(s){n({type:"exclamation-triangle"},{type:"text",text:s instanceof Error?${s.name} ${s.message}:"Unknown error! (see developper console)"}),console.error(s)}finally{setTimeout(()=>o(),1e3)}};scrapbox.PageMenu.addItem({title:"Transport",onClick:async()=>{await jc()}});scrapbox.PageMenu.addItem({title:"Transport and Open",onClick:async()=>{let e=await jc();e&&window.open(e)}});var Ac=e=>e.replace(/[\[\]]/g,"").replace(/\s/g," "),kr=e=>${e}.padStart(2,"0"),Xh=e=>${e.getFullYear()}-${kr(e.getMonth()+1)}-${kr(e.getDate())} ${kr(e.getHours())}:${kr(e.getMinutes())}:${kr(e.getSeconds())},Uc=e=>${e.getFullYear()}-${kr(e.getMonth()+1)}-${kr(e.getDate())};async function Yh(e,t,r,n){let{render:o,dispose:s}=pe(),i=[],a=[];for(let l of rP(r)){if(l.type==="line"){i.push(${Ac(l.text)}~@${Uc(new Date)});continue}let p=${Ac(l.lines0)}~@${Uc(new Date)};a.push([p,...l.lines.slice(1),"",#${Xh(new Date)}]),i.push(${p})}let c=n?.socket;try{c??=await Ae(),o({type:"spinner"},{type:"text",text:Adding ${i.length} items...}),await oe(e,t,l=>{let p=l.map(f=>f.text),u=p.flatMap((f,d)=>f.trim()==="[/icons/hr.icon]"?[d]:[]).pop()??-1;return u<0?[...p,...i]:[...p.slice(0,u),...i,...p.slice(u)]},{socket:c}),o({type:"spinner"},{type:"text",text:Create ${a.length} pages...}),await Promise.all(a.map(l=>oe(e,l[0],p=>[p[0].text,...p.slice(1).map(u=>u.text),...l.slice(1)],{socket:c}))),o({type:"check-circle"},{type:"text",text:"Added to the inbox."})}catch(l){o({type:"exclamation-triangle"},{type:"text",text:"Failed to add (see console). Write directory instead."}),console.error(l),Rr(e,t,[...i,...a].join( ))}finally{let l=ae(1e3);c&&await De(c),await l,s()}}function*rP(e){let t=0;for(;t<e.length;){let r=St(t,e);if(r===0){yield{type:"line",text:e[t].trim()},t++;continue}let n=Ue(e[t]);yield{type:"block",lines:e.slice(t,t+r+1).map(o=>o.slice(n))},t+=r+1}}var Vh=async(e,t)=>{let r=window.prompt("Type all you think of","");if(!r||r.trim()==="")return;let n=r.trim().split(/\s+/);await Yh(e,t,n)};var nP="button.";document.getElementById("editor").addEventListener("click",async e=>{let t=e.target;if(t.tagName==="IMG"&&t.classList.contains("icon")&&t.title.endsWith("-button")){e.preventDefault(),e.stopImmediatePropagation();try{let r=../${encodeURIComponent(t.title)}/${nP},{execute:n}=await import(r);n()}catch(r){console.log(r)}}});scrapbox.PageMenu.addItem({title:"Copy link for Markdown",onClick:()=>{let e=scrapbox.Page.title.replaceAll(" ","_").replace(/[/?#\{}^|<>]/g,t=>encodeURIComponent(t));navigator.clipboard.writeText(${scrapbox.Page.title}(https://${location.hostname}/${scrapbox.Project.name}/${e}${location.hash})).catch(t=>alert(${t.name}: ${t.message}))}});var Fn=e=>{let[t,r]=U([]),[n,o]=U([]),[s,i]=U(!1),a=_(async()=>{let l=new Set;i(!0);let p=await _s(e),u=[],f=p.flatMap(({links:d,project:g})=>d.flatMap(h=>{let{title:x}=Ts(h),v=Ht(x);if(!v)return[];if(!v.ok)return u.push({project:g,title:x,...v.value}),[];let L=X(x);return l.has(L)?[]:(l.add(L),[{project:g,title:x,...v.value}])}));r(f),o(u),i(!1)},[e]),c=_(async()=>{i(!0),await Rs(e,60),i(!1)},[e]);return G(()=>(a(),Mn(e,a)),[e,a]),{tasks:t,errors:n,load:c,loading:s}};var Jh=()=>_(e=>e.stopPropagation(),[]);var Xs=()=>{let[e,t]=er(oP,{isOpen:!1,prevOverflowY:""}),r=_(()=>t(!0),[]),n=_(()=>t(!1),[]),o=_(({children:s})=>{let i=Jh(),a=N(()=>{let c;return l=>{if(!l){c?.(),t(l);return}let p=new AbortController;l.addEventListener("cancel",()=>t(!1),{signal:p.signal}),c=()=>{p.abort()},t(l)}},[]);return m("dialog",{ref:a,onClick:n},s&&m("div",{className:"dialog-inner",onClick:i},s))},[]);return{isOpen:e.isOpen,open:r,close:n,Dialog:o}},oP=(e,t)=>{let r=e.dialog?.open??!1;if(t instanceof HTMLDialogElement||t===null)return r===e.isOpen&&t===e.dialog?e:{isOpen:r,dialog:t,prevOverflowY:e.prevOverflowY};if(t){e.dialog?.showModal?.();let n=e.isOpen?e.prevOverflowY:document.documentElement.style.overflowY;return document.documentElement.style.overflowY="hidden",e.isOpen&&r?e:{isOpen:!0,prevOverflowY:n,dialog:e.dialog}}return e.dialog?.close?.(),e.prevOverflowY===""?document.documentElement.style.removeProperty("overflow-y"):document.documentElement.style.overflowY=e.prevOverflowY,!e.isOpen&&!r?e:{isOpen:!1,prevOverflowY:"",dialog:e.dialog}};var Bn=String.raw.fa,.far{font-weight:900;font-family:"Font Awesome 5 Free";-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:inline-block;font-style:normal;font-variant:normal;text-rendering:auto;line-height:1}.far{font-weight:400}.fa-spinner{animation:spin 2s infinite linear}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(359deg)}}.fa-spinner:before{content:"\f110"}.fa-sync:before{content:"\f021"}.fa-bookmark:before{content:"\f02e"}.fa-fw{text-align:center;width:1.25em}.kamon:before{font-family:AppIcons;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-style:normal;font-variant:normal;font-weight:400;text-decoration:none;text-transform:none}.kamon-check-circle:before{content:"\e018"}.timeline-wrap{display:flex;flex-direction:column;height:100%;overflow-y:hidden;--timeline-bg: var(--dropdown-menu-bg, #fff);--timeline-text-color: var(--page-text-color, #4a4a4a);--timeline-link-color: var(--page-link-color, #5e8af7);--row-header-width: 40px;--timeline-border-color: #888;--timeline-border: solid 1px var(--timeline-border-color);--timeline-hour-height: 40px;background-color:var(--timeline-bg);color:var(--timeline-text-color);.column-header{flex:none;display:flex;flex-direction:row;.cell{flex:1 1 1px;h2{font-weight:400;margin:0;text-align:center;width:100%}}}.week-container{position:relative;height:100%;overflow-y:auto;scrollbar-width:none;.week{flex:auto;display:flex;width:100%;.borders{.border{height:var(--timeline-hour-height)}.border:after{content:attr(data-time);font-size:10px;text-align:right;border-top:var(--timeline-border);position:absolute;width:100%;margin-top:-1px;pointer-events:none}}.timeline{flex:auto;border-left:var(--timeline-border);position:relative;.indicator{position:absolute;top:calc(var(--start) * 40px - .5px);width:100%;height:1px;background-color:red}.copy{position:absolute;top:1.5em}.event{position:absolute;top:calc(var(--start) * 40px - 1px);height:calc(40px * var(--duration) / 60);outline:none;--event-bg2: var(--timeline-text-color);--event-bg: var(--timeline-bg);--event-bg-ratio: 50%;--event-color-ratio: 0%;--event-border-color-ratio: 0%;background-color:color-mix(in srgb,var(--event-bg) var(--event-bg-ratio),var(--event-bg2));color:color-mix(in srgb,var(--event-bg) var(--event-color-ratio),var(--timeline-text-color));border:var(--timeline-border);border-color:color-mix(in srgb,var(--event-bg) var(--event-border-color-ratio),var(--timeline-border-color));border-radius:4px;overflow:hidden;text-wrap:nowrap;max-width:100%;text-overflow:ellipsis}.eventdata-status=done{--event-bg-ratio: 90%;--event-color-ratio: 50%;--event-border-color-ratio: 50%}.eventdata-status=expired{font-weight:700}a.event{--event-bg2: var(--timeline-link-color);text-decoration:none}}.timeline:first-child{border-right:var(--timeline-border)}}}}.wedget{position:fixed;top:60px;left:10px;max-height:calc(90vh - 60px);max-width:100px;width:calc(100vw / 767 * 100 - 10px);min-width:60px;border:solid 1px #888;border-radius:4px;display:flex;flex-direction:column;background-color:var(--dropdown-menu-bg, #fff);color:var(--page-text-color, #4a4a4a);&:not(.open){display:none}}dialog{&::backdrop{background-color:#000c}padding:10px;background:unset;margin-top:unset;margin-bottom:unset;border:unset;height:unset;overflow-y:hidden;&open>.dialog-inner{display:flex}>.dialog-inner{flex-direction:column;align-items:center;row-gap:10px;height:100%;>*{color:var(--page-text-color, #4a4a4a);background-color:var(--dropdown-menu-bg, #fff);border:1px solid rgba(0,0,0,.2);border-radius:6px}}}@media (min-width: 768px){dialog{padding:30px 0;--item-width: 600px}}.result{padding:15px;width:calc(var(--item-width, 100%) - 30px);overflow-y:scroll}.controller{padding:5px;width:calc(var(--item-width, 100%) - 10px);display:flex;flex-wrap:wrap;flex:none;gap:.2em}.progress{flex-grow:1;>*{padding:0 2px}}a{text-decoration:none;color:var(--page-link-color, #5e8af7);&:hover{color:var(--page-link-hover-color, #2d67f5)}}button{cursor:pointer;background:unset;color:unset;border:unset}.copy,.close,.today{font-family:"Font Awesome 5 Free"}.navi{font-family:AppIcons;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-style:normal;font-variant:normal;font-weight:400;text-decoration:none;text-transform:none}.close,.today{font-weight:900}ul{list-style-type:none;word-break:break-all}.task-list li:not(data-freshness^="-"):not(data-freshness="0"){font-weight:700}.scheduler details li{&data-status=done{opacity:.4}&data-status=expired{font-weight:700}}.task-list li{&data-type=deadline .label.type{color:var(--takker-scheduler-label-deadline-color, rgb(255, 75, 0))}&data-type=todo .label.type{color:var(--takker-scheduler-label-todo-color, rgb(246, 170, 0))}&data-type=note .label.type{color:var(--takker-scheduler-label-note-color, rgb(200, 200, 203))}&data-type=up-down .label.type{color:var(--takker-scheduler-label-up-down-color, rgb(77, 196, 255))}}:is(data-page-no=expired,data-page-no=errors) li{opacity:1!important}.scheduler{--takker-scheduler-summary-meter-width: 10em;overflow-y:hidden}.label{display:inline-block;font-size:90%;padding:0 3px}.type{text-align:center;width:2.5em;border:1px solid;border-radius:3px}.freshness{text-align:right;width:2.5em}.start,.duration{text-align:right;width:3em} ;var en=({text:e,title:t})=>{let[r,n]=U(""),o=_(async s=>{s.preventDefault(),s.stopPropagation();try{await navigator.clipboard.writeText(e),n("Copied"),await ae(1e3),n("")}catch(i){alert(Failed to copy the code block
Error:${i.message})}},[e]);return m("button",{className:"copy",title:t??"Copy",onClick:o},r)};var sP=60*60*24*1e3,Qh=(e,t)=>{let r=ee(e.refDate),n=(t.getTime()-r.getTime())/sP;switch(r.setHours(0),r.setMinutes(0),e.status){case"done":return-1/0;case"deadline":return n/(e.speed??1);case"todo":return Math.min(n/(e.speed??1),0);case"note":return t.getTime()<r.getTime()?-1/0:-n/(e.speed??1);case"up-down":{let o=e.speed??30;return o*(-1+Math.cos(Math.PI*2*n/o))}}};var ex=(e,t)=>{if(t.score!==e.score)return t.score-e.score;let r=Zh(e.freshness),n=Zh(t.freshness);return r!==n?n-r:rt(yt(e),yt(t))?-1:1},Zh=e=>{switch(e.status){case"todo":return 3;case"note":return 2;case"deadline":return 5;case"up-down":return 1;case"done":return 0}};var ut=e=>${e.getFullYear()}-${ct(e.getMonth()+1)}-${ct(e.getDate())},Hn=e=>{let[t,r,n]=e.split("-").map(o=>parseInt(o,10));return{year:t,month:r,date:n}},zn=e=>${Lu(e)}-w${ct(un(e))},Ys=e=>{let[t,r]=e.split("-w").map(n=>parseInt(n,10));return To(Cu(new Date(t,0,1),r))};var qn=({loading:e,onClick:t})=>e?m("div",null,m("i",{className:"fa fa-spinner"})):m("button",{className:"navi reload",onClick:t},"");var tn=()=>{let[e,t]=U(new Date);return G(()=>{let r=setInterval(()=>t(new Date),6e4);return()=>{clearInterval(r)}},[]),e};var tx=e=>{switch(e){case"todo":return"ToDo";case"note":return"覚書";case"deadline":return"締切";case"up-down":return"浮遊";case"done":return"完了"}};var rx=(e,t)=>new URL(/${e.project}/${J(e.title)},t??location.href);var Vs=({children:e,project:t,title:r,className:n,...o})=>m("a",{...o,className:[n??"","page-link"].join(" "),type:"link",href:rx({project:t,title:r}).pathname,...t===scrapbox.Project.name?{rel:"route"}:{rel:"noopener noreferrer",target:"_blank"}},e);var nx=({action:e,pActions:t})=>{let r=N(()=>tx(e.freshness.status),[e.freshness.status]),n=N(()=>xt(yt(e)).slice(11)||" ",[yt(e)]),o=N(()=>bn(e),[e]),s=Math.floor(Math.round(e.score)/7),i=tn(),a=N(()=>e.executed!==void 0&&or(Ft(ee(e.executed.start),e.executed.duration),i),[e.executed?.start,e.executed?.duration,i]),c=N(()=>[...t,e].map(l=>${l.raw}).join( ),[t,e]);return m("li",{"data-type":e.freshness.status,"data-freshness":e.score.toFixed(0),"data-level":s,...s<0?{style:{opacity:iP(e).toFixed(2)}}:{}},m(en,{text:c,title:"ここまでコピー"}),m("span",{className:"label type"},r),m("i",{className:label far fa-fw${a?" fa-bookmark":""}}),m("span",{className:"label freshness"},e.score.toFixed(0)),m("time",{className:"label start"},n),m("span",{className:"label duration"},o,"m"),m(Vs,{project:e.project,title:e.raw},e.name))},iP=e=>Math.max(.8*Math.exp(Math.log(8/7)/7*e.score),.05);var ox=(e=ut(new Date))=>{let[t,r]=U(e),n=_(()=>{r(s=>{switch(s){case"errors":return"expired";case"expired":return ut(new Date);default:{let i=ee(Hn(s));return i.setDate(i.getDate()+1),ut(i)}}})},[]),o=_(()=>{r(s=>{let i=ut(new Date);switch(s){case"errors":return"errors";case"expired":return"errors";case i:return"expired";default:{let a=ee(Hn(s));return a.setDate(a.getDate()-1),ut(a)}}})},[]);return{pageNo:t,next:n,prev:o}};var Js=(e,t)=>G(()=>(scrapbox.on(e,t),()=>scrapbox.off(e,t)),[]);var Wn=(e,t)=>{let r=ve({...t});G(()=>(Object.assign(r.current,t),()=>{for(let n of Object.keys(t))delete r.current[n]}),[...Object.keys(t)].sort().map(n=>t[n])),G(()=>{e(r.current)},[e])};var sx=e=>{let t=document.createElement("div");t.dataset.userscriptName="takker-workflow@0.0.1/next-action-viewer";let r=t.attachShadow({mode:"open"});return document.body.append(t),new Promise(n=>ye(m(aP,{getController:n,projects:e}),r))},aP=({getController:e,projects:t})=>{let{tasks:r,errors:n,load:o,loading:s}=Fn(t),{pageNo:i,next:a,prev:c}=ox(),l=N(()=>{if(i==="errors")return n.map(h=>({name:${h.title}
name:${h.name}
message:${h.message},raw:h.title,freshness:{refDate:{year:9999,month:1,date:1},status:"todo"},project:h.project,generated:!0,score:0}));if(i==="expired"){let h=new Date;return r.flatMap(x=>!bt(x)&&rt(zu(x),ze(h))&&x.freshness===void 0&&x.recurrence===void 0?[{...x,score:0,freshness:{refDate:x.executed.start,status:"todo"}}]:[]).sort((x,v)=>rt(yt(x),yt(v))?-1:0)}let g=ee(Hn(i));return r.flatMap(h=>{if(!h.freshness)return[];if(Ir(h))return[];let x=Qh(h.freshness,g);return x>-999?[{...h,score:x}]:[]}).sort(ex)},[r,n,i]),{Dialog:p,open:u,close:f}=Xs();Wn(e,{open:u,close:f});let d=N(()=>[i,...l.map(g=> ${g.raw})].join( ),[l,i]);return Js("page:changed",f),m(W,null,m("style",null,Bn),m(p,null,m("div",{className:"controller"},m(en,{text:d,title:"Copy All Tasks"}),m("span",null,i),m("button",{className:"navi left",onClick:c},""),m("button",{className:"navi right",onClick:a},""),m(qn,{loading:s,onClick:o}),m("button",{className:"close",onClick:f},"")),m("ul",{className:"result task-list","data-page-no":i},l.map((g,h)=>m(nx,{key:g.raw,action:g,pActions:l.slice(0,h)})))))};var Zs=(e,t)=>/${e}/${X(t)},Gn=new Map,Fc=new Map,ix=(e,t)=>{Gn.set(e,t);for(let r of Fc.get(e)??[])r(t)},Qs=()=>{Er!==void 0&&(clearInterval(Er),Er=void 0);let e=scrapbox.Project.name,t=scrapbox.Page.title??"",r=Zs(e,t);if(!Gn.has(r))return;let n=Ge().map(o=>o.text);Er=setInterval(()=>{X(t)===X(n[0])&&(ix(r,n),Er!==void 0&&(clearInterval(Er),Er=void 0))},1e3)},Er;scrapbox.on("page:changed",()=>{scrapbox.off("lines:changed",Qs);let e=scrapbox.Project.name,t=scrapbox.Page.title??"",r=Zs(e,t);Gn.has(r)&&scrapbox.on("lines:changed",Qs)});var cP=(e,t)=>{let r=Zs(e,t),n=Gn.get(r);return n||(Gn.set(r,[]),qe(e,t).then(o=>{if(!o.ok)return[];let s=o.value.lines.map(i=>i.text);ix(r,s),t===scrapbox.Page.title&&!scrapbox.listeners("lines:changed").includes(Qs)&&scrapbox.on("lines:changed",Qs)})),n??[]},ax=(e,t)=>{let[r,n]=U(cP(e,t));return G(()=>{let o=Zs(e,t),s=Fc.get(o)??new Set;return s.add(n),Fc.set(o,s),()=>{s.delete(n)}},[e,t]),r};var Bc=e=>e.duration===void 0?void 0:ze(Ft(ee(e.start),e.duration)),Hc=(e,t)=>{let r=ee(e.start),n=t.getTime(),o=Math.round((n-r.getTime())/(60*1e3));if(o<=0)return[void 0,e];if(e.duration<=o)return[e,void 0];let s={start:e.start,duration:o};return[s,{start:Bc(s),duration:e.duration-o}]};var Tr=e=>"title"in e,lP=e=>e.record?.duration!==void 0,cx=(e,t)=>Tr(e)&&e.status==="done"?e.status:lP(e)?Tr(e)&&e.executed?rt(ze(t),e.executed.start)?"moved":"expired":"done":rt(Bc(e.plan),ze(t))?Tr(e)?"expired":"done":"undone";var lx=(e,t)=>{let r=Ht(e.title.slice(1,-1));if(!e.plan.start)return;let n={name:r?.ok?r.value.name:e.title,plan:{start:ze(e.plan.start),duration:(e.plan.duration??0)/60}};if(e.record.start&&(n.record={start:ze(e.record.start)},e.record.end&&(n.record.duration=Bi(e.record.end,e.record.start))),!r?.ok)return n;let o={...n,title:r.value.raw,project:t};return r.value.freshness&&(o.status=r?.value.freshness.status),bt(r.value)||(o.executed=r.value.executed),o},zc=(e,t)=>{let r=$o(e);return r!==void 0?{name:e.name,project:t,title:r,executed:e.executed,plan:e.executed,status:e.freshness?.status}:{name:e.name,plan:e.executed}};var px=(e,t,r)=>{let n=[qc(e,Rt(t,1),r),qc(e,t,r),qc(e,Be(t,1),r)],o=N(()=>n.flat(),n);return N(()=>{let s=Xp(t),i=bu(t);return o.flatMap(a=>{let[,c]=Hc(a.plan,s);if(!c)return[];let[l]=Hc(c,i);if(!l)return[];let{plan:p,...u}=a;return[{plan:l,...u}]}).sort((a,c)=>rt(a.plan.start,c.plan.start)?-1:0)},[o,t])},qc=(e,t,r)=>{let n=ax(e,hn(t)),o=N(()=>uP(n,e),[n,e]);return N(()=>o.length!==0?o:pP(t,r),[o,t,r])},pP=(e,t)=>t.flatMap(r=>{if(r.freshness?.status==="done")return[];if(bt(r))return[];if(Ir(r)){let o=Oo(r,e);return o?[zc(o,r.project)]:[]}let n=ee(r.executed.start);return Ye(n,e)?[zc(r,r.project)]:[]}),uP=(e,t)=>{let r=[];for(let n of sr(e)){if(Bt(n))continue;let o=lx(n,t);o&&r.push(o)}return r};var ux=({event:e})=>{let t=N(()=>e.plan.start.hours+e.plan.start.minutes/60,[e.plan.start]),r=N(()=>--start: ${t}; --duration: ${e.plan.duration};,[t,e.plan.duration]),n=tn(),o=N(()=>cx(e,n),[e,n]);return Tr(e)?m(Vs,{className:"event","data-status":o,style:r,title:e.title,project:e.project},e.name):m("div",{className:"event","data-status":o,title:e.name,style:r},e.name)};var dx=({project:e,date:t,tasks:r})=>{let n=px(e,t,r),o=N(()=>n.flatMap(a=>Tr(a)?[${a.title}]:[]).join( ),[n]),s=tn(),i=N(()=>Ye(s,t)?m("div",{className:"indicator",style:--start: ${yu(s)+vu(s)/60}}):m(W,null),[s,t]);return m("div",{className:"timeline",role:"gridcell"},n.map(a=>m(ux,{key:a.name,event:a})),i,m(en,{text:o}))};var Wc=({dateList:e,tasks:t,project:r,hasColumn:n})=>m("div",{className:"timeline-wrap",role:"grid"},(n??!0)&&m("div",{className:"column-header",role:"row"},e.map(o=>m("div",{key:ut(o),className:"cell",role:"columnheader"},m("h2",null,So(o))))),m("div",{className:"week-container",role:"presentation"},m("div",{className:"week",role:"presentation"},m("div",{className:"borders"},[...Array(24).keys()].map(o=>m("div",{key:o,className:"border","data-time":${ct(o)}:00}))),e.map(o=>m(dx,{key:ut(o),project:r,date:o,tasks:t})))));var Gc=(e,t,r)=>{let[n,o]=U(e),s=_(()=>o(t),[t]),i=_(()=>o(r),[t]),a=_(c=>o(c),[]);return{pageNo:n,next:s,prev:i,jump:a}};var mx=e=>{let t=ve(new Set),[r,n]=U(e),o=_(()=>{for(let l of t.current)l()},[]),s=_(()=>{n(!0),o()},[]),i=_(()=>n(!1),[]),a=_(()=>n(l=>(l||o(),!l)),[]),c=_(l=>(t.current.add(l),()=>t.current.delete(l)),[]);return{isOpen:r,open:s,close:i,toggle:a,onOpen:c}};var hx=e=>{let t=document.createElement("div");t.dataset.userscriptName="takker-scheduler/weekly-scheduler";let r=t.attachShadow({mode:"open"});return document.body.append(t),new Promise(n=>ye(m(dP,{getController:n,projects:e,mainProject:e[0]}),r))},xx=(e,t)=>{let r=document.createElement("div");r.dataset.userscriptName="takker-scheduler/timeline-wedget";let n=r.attachShadow({mode:"open"});return document.body.append(r),new Promise(o=>ye(m(mP,{getController:o,projects:e,mainProject:e[0],open:t}),n))},fx=!1,dP=({getController:e,projects:t,mainProject:r})=>{let{tasks:n,load:o,loading:s}=Fn(t),{pageNo:i,next:a,prev:c,jump:l}=Gc(zn(new Date),fP,gP),p=N(()=>{let x=Ys(i);return[0,1,2,3,4,5,6].map(v=>Be(x,v))},[i]),{open:u,close:f,Dialog:d,isOpen:g}=Xs();fx||=g,Wn(e,{open:u,close:f,isOpen:g}),Js("page:changed",f);let h=_(()=>l(zn(new Date)),[l]);return m(W,null,m("style",null,Bn),m(d,null,m("div",{className:"controller"},m("span",null,i),m("button",{className:"navi left",onClick:c},""),m("button",{className:"navi right",onClick:a},""),m("button",{className:"today",onClick:h},""),m(qn,{loading:s,onClick:o}),m("button",{className:"close",onClick:f},"")),fx&&m("div",{ref:bx,className:"result scheduler","data-page-no":i},m(Wc,{dateList:p,tasks:n,project:r}))))},gx=!1,mP=({projects:e,mainProject:t,getController:r,open:n})=>{let{tasks:o,load:s,loading:i}=Fn(e),{pageNo:a,next:c,prev:l,jump:p}=Gc(new Date,hP,xP),u=N(()=>[a],[a]),f=_(()=>p(new Date),[p]),{isOpen:d,open:g,close:h}=mx(n);return gx||=d,Wn(r,{open:g,close:h,isOpen:d}),m(W,null,m("style",null,Bn),gx&&m("div",{className:wedget${d?" open":""},ref:bx},m("div",{className:"controller"},m("span",null,ut(a)),m("button",{className:"navi left",onClick:l},""),m("button",{className:"navi right",onClick:c},""),m("button",{className:"today",onClick:f},""),m(qn,{loading:i,onClick:s})),m(Wc,{dateList:u,tasks:o,project:t,hasColumn:!1})))},fP=e=>zn(Jp(Ys(e),1)),gP=e=>zn(Du(Ys(e),1)),hP=e=>Be(e,1),xP=e=>Rt(e,1),bx=e=>{let t=e?.getElementsByClassName?.("indicator")?.[0];if(!t)return;let r=globalThis.scrollY;t.scrollIntoView({block:"center"}),globalThis.scroll(0,r)};vl({project:"takker-dist"});Np().then(e=>{scrapbox.PageMenu.addItem({title:"Fulltext Search",onClick:()=>{e.toggle()}})});var bP="https://scrapbox.io/files/666ac977264f7d001ce9d125.wasm",yP="/api/code/takker-dist/esbuild-wasm-no-blob/worker.js";(async()=>{let e=new Request(bP),t=await bo(e);t||(t=await fetch(e),await pp(e,t)),await lf(await WebAssembly.compileStreaming(t),yP)})();(async()=>{let e=[scrapbox.Project.name,"takker","takker-memex","takker-books","takker-private","villagepump","hub","arpla","unnamedcamp","unnamed-project","nishio","enchi","rashitamemo","motoso","shokai","masui","rakusai","yuiseki","akiroom","c4j","miyamonz","mrsekut-p","masuilab","kidaaam-92022284","nwtgck","juneboku","marshmallow-rm","sushitecture","sno2wman","inteltank","issac-37765679","blu3mo","yosider","Mijinko","Mijinko-other","scrapbox-drinkup","nota-techconf","customize","scrapboxlab","scrasobox","programming-notes","tus-alpine","tus-alpine-private","guiland"],t=await eg({projects:e,mark:{...Object.fromEntries([["takker","takker"],["takker-memex","takker"],["takker-books","takker-books"],["takker-private","takker-private"],["nishio","nishio"],["rashitamemo","rashita"],["enchi","雑談_2022-04-12~"],["rakusai","rakusai"],["masui","概要"],["shokai","shokai"],["yuiseki","yuiseki"],["akiroom","はじめに"],["inteltank","sawachin"],["motoso","もとそのもと"],["villagepump","井戸端"],["hub","scrapbox.io%2Fhub_について"],["masuilab","増井研に入ったらまずやること"],["marshmallow-rm","読書猿マシュマロ全質問回答"],["miyamonz","miyamonz"],["mrsekut-p","mrsekut"],["kidaaam-92022284","kidooom"],["c4j","Code_for_Japan"],["suto3","suto3"],["blu3mo","blu3mo"],["nwtgck","nwtgck"],["juneboku","juneboku"],["jigsaw","jgs"],["sno2wman","SnO2WMaN"],["sushitecture","hashrock"],["unnamedcamp","知を営む"],["unnamed-project","unnamed-project"],["issac-37765679","cFQ2f7LRuLYP"],["blu3mo","blu3mo"],["yosider","yosider"],["Mijinko","Mijinko_SD"],["Mijinko-other","Mijinko_SD"],["customize","みんなのカスタマイズ"],["scrapboxlab","入会手続き"],["scrasobox","Scrapboxとあそぶ"],["programming-notes","参加する"],["guiland","概要と参加方法"]].map(([o,s])=>[o,https://scrapbox.io/api/pages/${o}/${s}/icon])),"NDLSH-SB":"📚","scrapbox-drinkup":"https://scrapbox.io/assets/img/page-icon/scrapbox_beaver.png","nota-techconf":"https://i.gyazo.com/727f42bbd9e2534d99d70e6ea90705b3.jpg","plurality-japanese":"⿻"},enableSelfProjectOnStart:!0}),r=o=>{o.preventDefault(),o.stopPropagation()},n=()=>document.querySelector(".line .popup-menu")!==null;sa.bind({"<Tab>":o=>{n()||t.selectNext?.({cyclic:!0})&&r(o)},"<S-Tab>":o=>{n()||t.selectPrev?.({cyclic:!0})&&r(o)},"<Enter>":o=>{n()||t.confirm?.()&&r(o)},"<Esc>":o=>{n()||t.cancel?.()&&r(o)}})})();og({previewers:[{when:/(?:^|\.)svg$/,preview:sg},{when:/(?:^|\.)glsl$/,preview:jg},{when:/(?:^|\.)(?:plantuml|puml|pu)$/,preview:Fg},{when:/(?:^|\.)tikz\(tex\)$/,preview:Hg("https://scrapbox.io/api/code/takker-dist/scrapbox-tikz/mod.js","https://scrapbox.io/files/65d1645c19cd8e002433c3df")}]});(async()=>{let{toggle:e}=await Kg([]);scrapbox.PageMenu.addItem({title:"履歴スライダー",image:"https://1.bp.blogspot.com/-UZtkSEX0wh4/U5l5_dNcEsI/AAAAAAAAhWs/UzJGVzyiX8Y/s800/kaichu_dokei.png",onClick:e})})();$h("takker",["takker","振り返り(takker-workflow@0.0.1)のtemplate","txt"],["takker","1週間の振り返り(takker-workflow@0.0.1)のtemplate","txt"]);wr()&&(it({display:{type:"caret-left"},onClick:({cursor:e,selection:t})=>{e.focus(),t.getSelectedText()===""?fo():lo()}}),it({display:{type:"caret-right"},onClick:({cursor:e,selection:t})=>{e.focus(),t.getSelectedText()===""?mo():co()}}),it({display:{type:"caret-up"},onClick:({cursor:e,selection:t})=>{e.focus(),t.getSelectedText()===""?go():po()}}),it({display:{type:"caret-down"},onClick:({cursor:e,selection:t})=>{e.focus(),t.getSelectedText()===""?ho():uo()}}),it({display:{type:"copy"},onClick:async({cursor:e,selection:t})=>await Bh(e,t)}),it({display:{type:"cut"},onClick:async({cursor:e,selection:t})=>await Hh(e,t)}),it({display:{type:"clipboard"},onClick:async({cursor:e})=>await zh(e)}),it({display:{type:"undo"},onClick:()=>ap()}),it({display:{type:"redo"},onClick:()=>cp()}),it({display:({cursor:e})=>e.getVisible()&&e.hasFocus&&e.visiblePopupMenu?{type:["i-cursor","slash"]}:{type:"i-cursor"},onClick:({cursor:e})=>qh(e)}));if(wr()&&scrapbox.Project.name!=="takker-memex"){let e="task";scrapbox.PageMenu.addMenu({title:e,image:"https://img.icons8.com/ios/180/FFFFFF/todo-list--v2.png"}),scrapbox.PageMenu(e).addItem({title:"Book starting",image:"https://img.icons8.com/ios/180/FFFFFF/plus-1day.png",onClick:fn}),scrapbox.PageMenu(e).addItem({title:"Transport",onClick:()=>xn({from:{project:scrapbox.Project.name,title:scrapbox.Page.title},to:"takker-memex"})})}if(wr()){let e="New Page",t=[cr,lr,pr];scrapbox.PageMenu.addMenu({title:e,image:"https://img.icons8.com/ios/180/FFFFFF/cut-paper.png"}),scrapbox.PageMenu(e).addItem({title:"New Page",onClick:()=>{let r=window.prompt("Create a new page at",scrapbox.Project.name);r&&Pt({project:r,mode:"noopen",hooks:t})?.()}}),scrapbox.PageMenu(e).addItem({title:"New Page and Open",onClick:()=>{let r=window.prompt("Create a new page at",scrapbox.Project.name);r&&Pt({project:r,mode:"self",hooks:t})?.()}})}scrapbox.PageMenu.addMenu({title:"Add to inbox",image:"https://img.icons8.com/ios/180/FFFFFF/inbox.png",onClick:()=>Vh("takker-memex","メモ帳")});(async()=>{let e="next-action",t=head styledata-userscript-name="${e}";document.querySelector(t)?.remove?.();let r=document.createElement("style");r.dataset.userscriptName=e,r.textContent= position: absolute;
font: 900 20px/46px "Font Awesome 5 Free";
}
button#${e}.tool-btn::before {
content: "\\f0ae";
}
button#scheduler.tool-btn::before {
content: "\\f073";
font-weight: 400;
}
opacity: 0;
}`,document.head.append(r);let n="takker-memex","takker",{open:o}=await sx(n);scrapbox.PageMenu.addMenu({title:e,image:"/assets/img/favicon/apple-touch-icon.png",onClick:o});let s=await hx(n);scrapbox.PageMenu.addMenu({title:"scheduler",image:"/assets/img/favicon/apple-touch-icon.png",onClick:s.open});{let i="takker-scheduler/wedget",a=JSON.parse(localStorage.getItem(i)??"{}"),c=scrapbox.Project.name;ac??=!1;let l=await xx(n,ac),p=()=>{ac=!l.isOpen,l.isOpen?l.close():l.open(),localStorage.setItem(i,JSON.stringify(a))};wr()?it({display:{type:"calendar"},onClick:p}):scrapbox.PageMenu.addItem({title:"toggle wedget",onClick:p})}})();export{it as addButton,Oe as insertText,sa as scrapBindings}; /** @license
* esbuild-wasm@v0.21.5
*
* MIT License
*
* Copyright (c) 2020 Evan Wallace
*
* Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/