for-takker-memex
code:script.js
var Uc=Object.defineProperty;var YS=Reflect.get,VS=Reflect.set;var px=e=>Uc(e,"__esModule",{value:!0});var ln=(e,t)=>{px(e);for(var r in t)Uc(e,r,{get:tr,enumerable:!0})};var Fc=e=>ux.includes(e.name),ux="SocketIOError","DuplicateTitleError","NotFastForwardError";var pn=async()=>{let t=(await mx())("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},dx="4.2.0",Bc=https://cdnjs.cloudflare.com/ajax/libs/socket.io/${dx}/socket.io.min.js,ei,mx=async()=>{if(ei)throw ei;if(!document.querySelector(script[src="${Bc}"])){let e=document.createElement("script");e.src=Bc,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=u=>{clearTimeout(i),c(new Error(u))};e.emit(o,s,u=>{switch(clearTimeout(i),e.off("disconnect",l),o){case"socket.io-request":"error"in u?typeof u.error=="object"&&u.error&&"name"in u.error&&typeof u.error.name=="string"&&Fc({name:u.error.name})?a({ok:!1,value:u.error}):a({ok:!1,value:{name:"UnexpectedError",value:u.error}}):"data"in u&&a({ok:!0,value:u.data});break;case"cursor":"error"in u?a({ok:!1,value:{name:"UnexpectedError",value:u.error}}):"data"in u&&a({ok:!0,value:u.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 $e=()=>pn(),ri=async e=>{if(e.connected)return;let t=new Promise(r=>e.once("connect",()=>r()));e.connect(),await t},we=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,y){let E=Math.max(x,y),T=E-h;for(;T<n.length&&E<o.length&&nT===oE;)++T,++E;return ah+s=c.length,c.push([{x:T,y:E},ah+(x>y?-1:1)+s]),E}let u=new Array(i);u.fill(-1);let p=-1,m=o.length-n.length;do{++p;for(let h=-p;h<=m-1;++h)uh+s=l(h,uh-1+s+1,uh+1+s);for(let h=m+p;h>=m+1;--h)uh+s=l(h,uh-1+s+1,uh+1+s);um+s=l(m,um-1+s+1,um+1+s)}while(um+s!==o.length);let d=[],g=am+s;for(;g!==-1;)d.push(cg0),g=cg1;return{from:e,to:t,editDistance:m+p*2,buildSES:function*(){let h=0,x=0;for(let{x:y,y:E}of fx(d))for(;h<y||x<E;)E-y>x-h?(yield{value:ox,type:r?"deleted":"added"},++x):E-y<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 Hc(to,ro);for(let o=r.length;o<t.length;o++)yield to}else{for(let o=0;o<t.length;o++)yield Hc(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 Hc=(e,t)=>({value:e.value,oldValue:t.value,type:"replaced"});function*fx(e){for(let t=e.length-1;t>=0;t--)yield et}var V=e=>{let{fetch:t=globalThis.fetch,hostName:r="scrapbox.io",...n}=e;return{fetch:t,hostName:r,...n}};var tt=e=>e==null,Mr=e=>typeof e=="string",_e=e=>typeof e=="number";var gx=e=>typeof e=="object"&&e!==null,hx=e=>gx(e)?(e.name===void 0||typeof e.name=="string")&&typeof e.message=="string":!1,zc=e=>{try{let t=typeof e=="string"?JSON.parse(e):e;return hx(t)?t:!1}catch(t){if(t instanceof SyntaxError)return!1;throw t}};var xt=class extends Error{constructor(t){super(${t.status} ${t.statusText} when fetching ${t.url});this.response=t;this.name="UnexpectedResponseError";Error.captureStackTrace&&Error.captureStackTrace(this,xt)}},ae=async e=>{let t=e.clone(),r=await t.text(),n=zc(r);if(!n)throw new xt(t);return{ok:!1,value:n}};var eo=async e=>{let{sid:t,hostName:r,fetch:n}=V(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 xt(s);return await s.json()};var Z=e=>connect.sid=${e},bt=async e=>globalThis._csrf?globalThis._csrf:(await eo(e)).csrfToken;var Wc=(e,t)=>{let{sid:r,hostName:n}=V(t??{});return new Request(https://${n}/api/projects/${e},r?{headers:{Cookie:Z(r)}}:void 0)},qc=async e=>{if(!e.ok)return ae(e);let t=await e.json();return{ok:!0,value:t}},dt=async(e,t)=>{let{fetch:r}=V(t??{}),n=Wc(e,t),o=await r(n);return qc(o)};dt.toRequest=Wc;dt.fromResponse=qc;var Gc=(e,t)=>{let{sid:r,hostName:n}=V(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)},Kc=async e=>{if(!e.ok)return ae(e);let t=await e.json();return{ok:!0,value:t}},Dr=async(e,t)=>{let{fetch:r}=V(t??{}),n=await r(Gc(e,t));return Kc(n)};Dr.toRequest=Gc;Dr.fromResponse=Kc;var to,Xc=async()=>{if(to!==void 0)return to;let e=await eo();if(e.isGuest)throw new Error("this script can only be executed by Logged in users");return to=e.id,to},Yc=new Map,si=async e=>{let t=Yc.get(e);if(t!==void 0)return t;let r=await dt(e);if(!r.ok){let{name:o,message:s}=r.value;throw new Error(${o} ${s})}let{id:n}=r.value;return Yc.set(e,n),n},Vc=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${Vc(t).slice(-8)}${e.slice(-6)}0000${Vc(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 Ir={};ln(Ir,{getTitle:()=>Nb,parse:()=>rt});var xx=e=>({type:"title",text:e.rows0.text}),bx=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(` )}},Re=(e,{parseOnNested:t,parseOnQuoted:r,patterns:n})=>(o,s,i)=>{var a,c,l,u,p,m;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+((u=(l=g[0])===null||l===void 0?void 0:l.length)!==null&&u!==void 0?u:0)),y=e((p=g[0])!==null&&p!==void 0?p:"",s);return[...At(h,s),...y,...At(x,s)]}return(m=i?.())!==null&&m!==void 0?m:[]},Oe=e=>[{type:"plain",raw:e,text:e}],yx=Re(Oe,{parseOnNested:!0,parseOnQuoted:!0,patterns:[/^()(.*)()$/]}),vx=/^>.*$/,wx=(e,t)=>t.context==="table"?Oe(e,t):[{type:"quote",raw:e,nodes:At(e.substring(1),{...t,quoted:!0})}],kx=Re(wx,{parseOnNested:!1,parseOnQuoted:!1,patterns:[vx]}),Ex=/^\? .+$/,Tx=(e,t)=>t.context==="table"?Oe(e,t):[{type:"helpfeel",raw:e,text:e.substring(2)}],Px=Re(Tx,{parseOnNested:!1,parseOnQuoted:!1,patterns:[Ex]}),Sx=/\[\[https?:\/\/[^\s\]]+\.(?:png|jpe?g|gif|svg)\]\]/i,Lx=/\[\[https?:\/\/(?:[0-9a-z-]+\.)?gyazo\.com\/[0-9a-f]{32}\]\]/,_x=(e,t)=>{if(t.context==="table")return Oe(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}]},Rx=Re(_x,{parseOnNested:!1,parseOnQuoted:!0,patterns:[Sx,Lx]}),Cx=/\[[^[\]]*\.icon(?:\*[1-9]\d*)?\]/;function Qc(e){return(t,r)=>{if(e==="strongIcon"&&r.context==="table")return Oe(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 Mx=Qc("icon"),Dx=Re(Mx,{parseOnNested:!0,parseOnQuoted:!0,patterns:[Cx]}),Ix=/\[\[[^[\]]*\.icon(?:\*\d+)?\]\]/,jx=Qc("strongIcon"),Nx=Re(jx,{parseOnNested:!1,parseOnQuoted:!0,patterns:[Ix]}),$x=/\[\[(?:[^[]|\[[^[]).*?\]*\]\]/,Ox=(e,t)=>t.context==="table"?Oe(e,t):[{type:"strong",raw:e,nodes:At(e.substring(2,e.length-2),{...t,nested:!0})}],Ax=Re(Ox,{parseOnNested:!1,parseOnQuoted:!0,patterns:[$x]}),Ux=/\[\$ .+? \]/,Fx=/\[\$ [^\]]+\]/,Bx=(e,t)=>t.context==="table"?Oe(e,t):[{type:"formula",raw:e,formula:e.substring(3,e.length-(e.endsWith(" ]")?2:1))}],Hx=Re(Bx,{parseOnNested:!1,parseOnQuoted:!0,patterns:[Ux,Fx]}),zx=/\[[!"#%&'()*+,\-./{|}<>_~]+ (?:\[[^[\]]+\]|[^\]])+\]/,Wx=(e,t)=>{if(t.context==="table")return Oe(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:At(o,{...t,nested:!0})}]},qx=Re(Wx,{parseOnNested:!1,parseOnQuoted:!0,patterns:[zx]}),Gx=/.*?/,Kx=(e,t)=>t.context==="table"?Oe(e,t):[{type:"code",raw:e,text:e.substring(1,e.length-1)}],Xx=Re(Kx,{parseOnNested:!1,parseOnQuoted:!0,patterns:[Gx]}),Yx=/^[$%] .+$/,Vx=(e,t)=>{var r;if(t.context==="table")return Oe(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}]},Qx=Re(Vx,{parseOnNested:!1,parseOnQuoted:!1,patterns:[Yx]}),Jx=/\[\s+\]/,Zx=(e,t)=>t.context==="table"?Oe(e,t):[{type:"blank",raw:e,text:e.substring(1,e.length-1)}],eb=Re(Zx,{parseOnNested:!1,parseOnQuoted:!0,patterns:[Jx]}),tb=/\[https?:\/\/[^\s\]]+\.(?:png|jpe?g|gif|svg)(?:\?[^\]\s]+)?(?:\s+https?:\/\/[^\s\]]+)?\]/i,rb=/\[https?:\/\/[^\s\]]+\s+https?:\/\/[^\s\]]+\.(?:png|jpe?g|gif|svg)(?:\?[^\]\s]+)?\]/i,nb=/\[https?:\/\/(?:[0-9a-z-]+\.)?gyazo\.com\/[0-9a-f]{32}(?:\/raw)?(?:\s+https?:\/\/[^\s\]]+)?\]/,ob=/\[https?:\/\/[^\s\]]+\s+https?:\/\/(?:[0-9a-z-]+\.)?gyazo\.com\/[0-9a-f]{32}(?:\/raw)?\]/,sb=e=>/^https?:\/\/[^\s\]]+\.(png|jpe?g|gif|svg)(\?[^\]\s]+)?$/i.test(e)||ib(e),ib=e=>/^https?:\/\/([0-9a-z-]\.)?gyazo\.com\/[0-9a-f]{32}(\/raw)?$/.test(e),ab=(e,t)=>{if(t.context==="table")return Oe(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]=sb(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}]},cb=Re(ab,{parseOnNested:!0,parseOnQuoted:!0,patterns:[tb,rb,nb,ob]}),lb=/\[https?:\/\/[^\s\]]+\s+[^\]]*[^\s]\]/,pb=/\[[^[\]]*[^\s]\s+https?:\/\/[^\s\]]+\]/,ub=/\[https?:\/\/[^\s\]]+\]/,db=/https?:\/\/[^\s]+/,mb=(e,t)=>{if(t.context==="table")return Oe(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()}]},fb=Re(mb,{parseOnNested:!0,parseOnQuoted:!0,patterns:[lb,pb,ub,db]}),Jc=/\[([^\]]*[^\s])\s+([NS]\d+(?:\.\d+)?,[EW]\d+(?:\.\d+)?(?:,Z\d+)?)\]/,Zc=/\[([NS]\d+(?:\.\d+)?,[EW]\d+(?:\.\d+)?(?:,Z\d+)?)(?:\s+([^\]]*[^\s]))?\]/,gb=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}},hb=(e,t)=>{var r;if(t.context==="table")return Oe(e,t);let n=(r=e.match(Jc))!==null&&r!==void 0?r:e.match(Zc);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}=gb(s),u=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:u}]},xb=Re(hb,{parseOnNested:!1,parseOnQuoted:!0,patterns:[Jc,Zc]}),bb=/\[\/?[^[\]]+\]/,yb=e=>{let t=e.substring(1,e.length-1);return[{type:"link",raw:e,pathType:t.startsWith("/")?"root":"relative",href:t,content:""}]},vb=Re(yb,{parseOnNested:!0,parseOnQuoted:!0,patterns:[bb]}),wb=/(?:^|\s)#\S+/,kb=(e,t)=>{if(t.context==="table")return Oe(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[...Oe(r,t),{type:"hashTag",raw:n,href:n.substring(1)}]},Eb=Re(kb,{parseOnNested:!0,parseOnQuoted:!0,patterns:[wb]}),Tb=/^[0-9]+\. .*$/,Pb=(e,t)=>{if(t.context==="table")return Oe(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:At(s,{...t,nested:!0})}]},Sb=Re(Pb,{parseOnNested:!1,parseOnQuoted:!1,patterns:[Tb]}),Lb=(e,t,r)=>{var n;return e===""?[]:(n=r?.())!==null&&n!==void 0?n:[]},_b=(...e)=>(t,r)=>e.reduceRight((n,o)=>()=>o(t,r,n),()=>yx(t,r))(),At=_b(Lb,kx,Px,Xx,Qx,Hx,eb,qx,Rx,Nx,Ax,cb,fb,Dx,xb,vb,Eb,Sb),Rb=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=>At(a,{nested:!1,quoted:!1,context:"table"})))}},Cb=e=>{let{indent:t,text:r}=e.rows[0];return{indent:t,type:"line",nodes:At(r.substring(t),{nested:!1,quoted:!1,context:"line"})}},Mb=e=>{switch(e.type){case"title":return xx(e);case"codeBlock":return bx(e);case"table":return Rb(e);case"line":return Cb(e)}},Db=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}}),Ib=(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)},el=(e,t)=>{let r=e[e.length-1];return r!==void 0&&Ib(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)},jb=(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(el,[])]}return e.reduce(el,[])},rt=(e,t)=>{var r;let n=Db(e);return jb(n,{hasTitle:(r=t?.hasTitle)!==null&&r!==void 0?r:!0}).map(Mb)},Nb=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 K=e=>e.replaceAll(" ","_").toLowerCase(),tl=e=>e.replaceAll("_"," "),Y=e=>[...e].map((t,r)=>t===" "?"_":!$b.includes(t)||r===e.length-1&&Ob.includes(t)?encodeURIComponent(t):t).join(""),$b='@$&+=:;",',Ob=':;",';var Ab=/https?:\/\/(?:www\.|music\.|)youtube\.com\/watch/,Ub=/https?:\/\/youtu\.be\/([a-zA-Z\d_-]+)(?:\?([^\s]{0,100})|)/,Fb=/https?:\/\/(?:www\.|)youtube\.com\/shorts\/([a-zA-Z\d_-]+)(?:\?([^\s]+)|)/,Bb=/https?:\/\/(?:www\.|music\.|)youtube\.com\/playlist\?((?:[^\s]+&|)list=([a-zA-Z\d_-]+)(?:&[^\s]+|))/,ro=e=>{if(Ab.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(Ub);if(t){let[,r,n]=t;return{videoId:r,params:new URLSearchParams(n),pathType:"dotbe"}}}{let t=e.match(Fb);if(t){let[,r,n]=t;return{videoId:r,params:new URLSearchParams(n),pathType:"short"}}}{let t=e.match(Bb);if(t){let[,r,n]=t;return{listId:n,params:new URLSearchParams(r),pathType:"list"}}}};var rl=e=>{let t=rt(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,u=new Set,p=new RegExp(${location?.origin??"https://scrapbox.io"}/files/([a-z0-9]{24})(?:|\\.[a-zA-Z0-9]+)(?:|\\?[^\\s]*)$),m=g=>{switch(g.type){case"hashTag":if(r.has(K(g.href)))return;r.set(K(g.href),!1),n.push(g.href);return;case"link":switch(g.pathType){case"relative":{let h=nl(g.href);if(r.get(K(h)))return;r.set(K(h),!0),n.push(h);return}case"root":{let h=nl(g.href);if(/^\/[\w\d-]+\/?$/.test(h)||o.has(K(h)))return;o.add(K(h)),s.push(h);return}case"absolute":{if(g.content)return;let h=ro(g.href);if(h&&h.pathType!=="list"){c??=https://i.ytimg.com/vi/${h.videoId}/mqdefault.jpg;return}let x=g.href.match(p)?.[1];x&&l.add(x);return}default:return}case"icon":case"strongIcon":{if(g.pathType==="root"||i.has(K(g.path)))return;i.add(K(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(p)?.[1];h&&l.add(h)}if(g.type==="image"){let h=g.link.match(p)?.[1];h&&l.add(h)}return}case"helpfeel":u.add(g.text);return;case"numberList":case"strong":case"quote":case"decoration":{for(let h of g.nodes)m(h);return}default:return}},d=[];for(let g of t)switch(g.type){case"line":for(let h of g.nodes)m(h);continue;case"table":{for(let h of g.cells)for(let x of h)for(let y of x)m(y);if(!["infobox","cosense"].includes(g.fileName))continue;d.push(...g.cells.map(h=>h.map(x=>x.map(y=>y.raw).join("")).join(" ").trim()));continue}}return[n,s,a,c,[...l],[...u],d]},nl=e=>e.replace(/#[a-f\d]{24,32}$/,""),ol=e=>e.flatMap(({text:t})=>/^\s*\? .*$/.test(t)?[t.trimStart().slice(2)]:[]);var Qt=(e,t)=>e.length===t.length&&e.every(r=>t.includes(r));function*sl(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,u,p,m]=rl(n.join(
));Qt(e.links,i)||(yield{links:i}),Qt(e.projectLinks,a)||(yield{projectLinks:a}),Qt(e.icons,c)||(yield{icons:c}),e.image!==l&&(yield{image:l}),Qt(e.files,u)||(yield{files:u}),Qt(ol(e.lines),p)||(yield{helpfeels:p}),Qt(e.infoboxDefinition,m)||(yield{infoboxDefinition:m})}var il=(e,t,r)=>{let{sid:n,hostName:o,followRename:s,projects:i}=V(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}/${Y(t)}?${a.toString()};return new Request(c,n?{headers:{Cookie:Z(n)}}:void 0)},al=async e=>{if(!e.ok)return e.status===414?{ok:!1,value:{name:"TooLongURIError",message:"project ids may be too much."}}:ae(e);let t=await e.json();return{ok:!0,value:t}},Ge=async(e,t,r)=>{let{fetch:n}=V(r??{}),o=il(e,t,r),s=await n(o);return await al(s)};Ge.toRequest=il;Ge.fromResponse=al;var cl=(e,t)=>{let{sid:r,hostName:n,sort:o,limit:s,skip:i}=V(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)},ll=async e=>{if(!e.ok)return ae(e);let t=await e.json();return{ok:!0,value:t}},pl=async(e,t)=>{let{fetch:r}=V(t??{}),n=await r(cl(e,t));return await ll(n)};pl.toRequest=cl;pl.fromResponse=ll;var no=async(e,t)=>{let r=await Ge(e,t);if(!r.ok)throw new Error(You have no privilege of editing "/${e}/${t}".);return r.value};var ce=e=>new Promise(t=>setTimeout(()=>t(),e));var Jt=async(e,t,r,n)=>{let[o,s,i]=await Promise.all([no(e,t),si(e),Xc()]),a={...o,projectId:s,userId:i},c=n?.socket,l=c??await pn();await ri(l);try{let{request:u}=ti(l),p=0,m=[],d;for(;n?.maxAttempts===void 0||p<n.maxAttempts;){let g=r(a,p,m,d);if(m=g instanceof Promise?await g:g,p++,m.length===0)return{ok:!0,value:a.commitId};let h={kind:"page",projectId:s,pageId:a.id,parentId:a.commitId,userId:i,changes:m,cursor:null,freeze:!0};for(;;){let x=await u("socket.io-request",{method:"commit",data:h});if(x.ok)return a.commitId=x.value.commitId,{ok:!0,value:a.commitId};let y=x.value.name;if(y==="UnexpectedError"){let E=new Error;throw E.name=x.value.name,E.message=JSON.stringify(x.value),E}if(y==="TimeoutError"||y==="SocketIOError"){await ce(3e3);break}y==="NotFastForwardError"&&(a={...await no(e,t),projectId:s,userId:i}),d=y}}return{ok:!1,value:{name:"RetryError",attempts:p,message:Retrying exceeded the maxAttempts (${p}).}}}finally{c||await we(l)}};var ul=e=>{let t=e.match(/(.+?)(?:_(\d+))?$/),r=t?.[1]??e,n=t?.[2]?parseInt(t[2])+1:2;return${r}_${n}};var re=(e,t,r,n)=>Jt(e,t,async(o,s,i,a)=>{if(a==="DuplicateTitleError"){let u=ul(t);return i.map(p=>("title"in p&&(p.title=u),p))}let c=r(o.lines,{...o,attempts:s}),l=c instanceof Promise?await c:c;return l===void 0?[]:l.length===0?[{deleted:!0}]:[...sl(o,l,o.userId)]},n);var dl=(e,t,r)=>Jt(e,t,n=>n.persistent?[{deleted:!0}]:[],r);var ml=async e=>{let t=e.title??".watchlistrc",r="projectsLastAccessed.json",n=await fetch(https://${location.hostname}/api/code/${e.project}/${Y(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 re(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 oo,ue,fl,Wb,Zt,gl,hl,ci,li,pi,ui,xl,un={},bl=[],qb=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i,di=Array.isArray;function Ut(e,t){for(var r in t)e[r]=t[r];return e}function yl(e){var t=e.parentNode;t&&t.removeChild(e)}function f(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?oo.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 so(e,i,n,o,null)}function so(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??++fl,__i:-1,__u:0};return o==null&&ue.vnode!=null&&ue.vnode(s),s}function G(e){return e.children}function ao(e,t){this.props=e,this.context=t}function er(e,t){if(t==null)return e.__?er(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"?er(e):null}function vl(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 vl(e)}}function mi(e){(!e.__d&&(e.__d=!0)&&Zt.push(e)&&!co.__r++||gl!==ue.debounceRendering)&&((gl=ue.debounceRendering)||hl)(co)}function co(){var e,t,r,n,o,s,i,a;for(Zt.sort(ci);e=Zt.shift();)e.__d&&(t=Zt.length,n=void 0,s=(o=(r=e).__v).__e,i=[],a=[],r.__P&&((n=Ut({},o)).__v=o.__v+1,ue.vnode&&ue.vnode(n),fi(r.__P,n,o,r.__n,r.__P.namespaceURI,32&o.__u?[s]:null,i,s??er(o),!!(32&o.__u),a),n.__v=o.__v,n.__.__k[n.__i]=n,Pl(i,n,a),n.__e!=s&&vl(n)),Zt.length>t&&Zt.sort(ci));co.__r=0}function wl(e,t,r,n,o,s,i,a,c,l,u){var p,m,d,g,h,x=n&&n.__k||bl,y=t.length;for(r.__d=c,Gb(r,t,x),c=r.__d,p=0;p<y;p++)(d=r.__k[p])!=null&&typeof d!="boolean"&&typeof d!="function"&&(m=d.__i===-1?un:x[d.__i]||un,d.__i=p,fi(e,d,m,o,s,i,a,c,l,u),g=d.__e,d.ref&&m.ref!=d.ref&&(m.ref&&gi(m.ref,null,d),u.push(d.ref,d.__c||g,d)),h==null&&g!=null&&(h=g),65536&d.__u||m.__k===d.__k?(c&&!c.isConnected&&(c=er(m)),c=kl(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 Gb(e,t,r){var n,o,s,i,a,c=t.length,l=r.length,u=l,p=0;for(e.__k=[],n=0;n<c;n++)i=n+p,(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?so(null,o,null,null,null):di(o)?so(G,{children:o},null,null,null):o.constructor===void 0&&o.__b>0?so(o.type,o.props,o.key,o.ref?o.ref:null,o.__v):o)!=null?(o.__=e,o.__b=e.__b+1,a=Kb(o,r,i,u),o.__i=a,s=null,a!==-1&&(u--,(s=r[a])&&(s.__u|=131072)),s==null||s.__v===null?(a==-1&&p--,typeof o.type!="function"&&(o.__u|=65536)):a!==i&&(a===i+1?p++:a>i?u>c-i?p+=a-i:p--:a<i?a==i-1&&(p=a-i):p=0,a!==n+p&&(o.__u|=65536))):(s=r[i])&&s.key==null&&s.__e&&!(131072&s.__u)&&(s.__e==e.__d&&(e.__d=er(s)),hi(s,s,!1),r[i]=null,u--);if(u)for(n=0;n<l;n++)(s=r[n])!=null&&!(131072&s.__u)&&(s.__e==e.__d&&(e.__d=er(s)),hi(s,s))}function kl(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=kl(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 Kb(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 El(e,t,r){t[0]==="-"?e.setProperty(t,r??""):e[t]=r==null?"":typeof r!="number"||qb.test(t)?r:r+"px"}function lo(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||El(e.style,t,"");if(r)for(t in r)n&&r[t]===n[t]||El(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=li,e.addEventListener(t,s?ui:pi,s)):e.removeEventListener(t,s?ui:pi,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 in e)try{e[t]=r??"";break e}catch{}typeof r=="function"||(r==null||r===!1&&t[4]!=="-"?e.removeAttribute(t):e.setAttribute(t,r))}}function Tl(e){return function(t){if(this.l){var r=this.l[t.type+e];if(t.t==null)t.t=li++;else if(t.t<r.u)return;return r(ue.event?ue.event(t):t)}}}function fi(e,t,r,n,o,s,i,a,c,l){var u,p,m,d,g,h,x,y,E,T,b,w,k,R,C,M=t.type;if(t.constructor!==void 0)return null;128&r.__u&&(c=!!(32&r.__u),s=[a=t.__e=r.__e]),(u=ue.__b)&&u(t);e:if(typeof M=="function")try{if(y=t.props,E=(u=M.contextType)&&n[u.__c],T=u?E?E.props.value:u.__:n,r.__c?x=(p=t.__c=r.__c).__=p.__E:("prototype"in M&&M.prototype.render?t.__c=p=new M(y,T):(t.__c=p=new ao(y,T),p.constructor=M,p.render=Yb),E&&E.sub(p),p.props=y,p.state||(p.state={}),p.context=T,p.__n=n,m=p.__d=!0,p.__h=[],p._sb=[]),p.__s==null&&(p.__s=p.state),M.getDerivedStateFromProps!=null&&(p.__s==p.state&&(p.__s=Ut({},p.__s)),Ut(p.__s,M.getDerivedStateFromProps(y,p.__s))),d=p.props,g=p.state,p.__v=t,m)M.getDerivedStateFromProps==null&&p.componentWillMount!=null&&p.componentWillMount(),p.componentDidMount!=null&&p.__h.push(p.componentDidMount);else{if(M.getDerivedStateFromProps==null&&y!==d&&p.componentWillReceiveProps!=null&&p.componentWillReceiveProps(y,T),!p.__e&&(p.shouldComponentUpdate!=null&&p.shouldComponentUpdate(y,p.__s,T)===!1||t.__v===r.__v)){for(t.__v!==r.__v&&(p.props=y,p.state=p.__s,p.__d=!1),t.__e=r.__e,t.__k=r.__k,t.__k.forEach(function(D){D&&(D.__=t)}),b=0;b<p._sb.length;b++)p.__h.push(p._sb[b]);p._sb=[],p.__h.length&&i.push(p);break e}p.componentWillUpdate!=null&&p.componentWillUpdate(y,p.__s,T),p.componentDidUpdate!=null&&p.__h.push(function(){p.componentDidUpdate(d,g,h)})}if(p.context=T,p.props=y,p.__P=e,p.__e=!1,w=ue.__r,k=0,"prototype"in M&&M.prototype.render){for(p.state=p.__s,p.__d=!1,w&&w(t),u=p.render(p.props,p.state,p.context),R=0;R<p._sb.length;R++)p.__h.push(p._sb[R]);p._sb=[]}else do p.__d=!1,w&&w(t),u=p.render(p.props,p.state,p.context),p.state=p.__s;while(p.__d&&++k<25);p.state=p.__s,p.getChildContext!=null&&(n=Ut(Ut({},n),p.getChildContext())),m||p.getSnapshotBeforeUpdate==null||(h=p.getSnapshotBeforeUpdate(d,g)),wl(e,di(C=u!=null&&u.type===G&&u.key==null?u.props.children:u)?C:[C],t,r,n,o,s,i,a,c,l),p.base=t.__e,t.__u&=-161,p.__h.length&&i.push(p),x&&(p.__E=p.__=null)}catch(D){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),ue.__e(D,t,r)}else s==null&&t.__v===r.__v?(t.__k=r.__k,t.__e=r.__e):t.__e=Xb(r.__e,t,r,n,o,s,i,c,l);(u=ue.diffed)&&u(t)}function Pl(e,t,r){t.__d=void 0;for(var n=0;n<r.length;n++)gi(r[n],r[++n],r[++n]);ue.__c&&ue.__c(t,e),e.some(function(o){try{e=o.__h,o.__h=[],e.some(function(s){s.call(o)})}catch(s){ue.__e(s,o.__v)}})}function Xb(e,t,r,n,o,s,i,a,c){var l,u,p,m,d,g,h,x=r.props,y=t.props,E=t.type;if(E==="svg"?o="http://www.w3.org/2000/svg":E==="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==!!E&&(E?d.localName===E:d.nodeType===3)){e=d,s[l]=null;break}}if(e==null){if(E===null)return document.createTextNode(y);e=document.createElementNS(o,E,y.is&&y),s=null,a=!1}if(E===null)x===y||a&&e.data===y||(e.data=y);else{if(s=s&&oo.call(e.childNodes),x=r.props||un,!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")p=d;else if(l!=="key"&&!(l in y)){if(l=="value"&&"defaultValue"in y||l=="checked"&&"defaultChecked"in y)continue;lo(e,l,null,d,o)}}for(l in y)d=y[l],l=="children"?m=d:l=="dangerouslySetInnerHTML"?u=d:l=="value"?g=d:l=="checked"?h=d:l==="key"||a&&typeof d!="function"||x[l]===d||lo(e,l,d,x[l],o);if(u)a||p&&(u.__html===p.__html||u.__html===e.innerHTML)||(e.innerHTML=u.__html),t.__k=[];else if(p&&(e.innerHTML=""),wl(e,di(m)?m:[m],t,r,n,E==="foreignObject"?"http://www.w3.org/1999/xhtml":o,s,i,s?s[0]:r.__k&&er(r,0),a,c),s!=null)for(l=s.length;l--;)s[l]!=null&&yl(s[l]);a||(l="value",g!==void 0&&(g!==e[l]||E==="progress"&&!g||E==="option"&&g!==x[l])&&lo(e,l,g,x[l],o),l="checked",h!==void 0&&h!==e[l]&&lo(e,l,h,x[l],o))}return e}function gi(e,t,r){try{typeof e=="function"?e(t):e.current=t}catch(n){ue.__e(n,r)}}function hi(e,t,r){var n,o;if(ue.unmount&&ue.unmount(e),(n=e.ref)&&(n.current&&n.current!==e.__e||gi(n,null,t)),(n=e.__c)!=null){if(n.componentWillUnmount)try{n.componentWillUnmount()}catch(s){ue.__e(s,t)}n.base=n.__P=null}if(n=e.__k)for(o=0;o<n.length;o++)n[o]&&hi(n[o],t,r||typeof e.type!="function");r||e.__e==null||yl(e.__e),e.__c=e.__=e.__e=e.__d=void 0}function Yb(e,t,r){return this.constructor(e,r)}function Ce(e,t,r){var n,o,s,i;ue.__&&ue.__(e,t),o=(n=typeof r=="function")?null:r&&r.__k||t.__k,s=[],i=[],fi(t,e=(!n&&r||t).__k=f(G,null,[e]),o||un,un,t.namespaceURI,!n&&r?[r]:o?null:t.firstChild?oo.call(t.childNodes):null,s,!n&&r?r:o?o.__e:t.firstChild,n,i),Pl(s,e,i)}function xi(e,t){var r={__c:t="__cC"+xl++,__: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.shouldComponentUpdate=function(i){this.props.value!==i.value&&o.some(function(a){a.__e=!0,mi(a)})},this.sub=function(i){o.push(i);var a=i.componentWillUnmount;i.componentWillUnmount=function(){o.splice(o.indexOf(i),1),a&&a.call(i)}}),n.children}};return r.Provider.__=r.Consumer.contextType=r}oo=bl.slice,ue={__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}},fl=0,Wb=function(e){return e!=null&&e.constructor==null},ao.prototype.setState=function(e,t){var r;r=this.__s!=null&&this.__s!==this.state?this.__s:this.__s=Ut({},this.state),typeof e=="function"&&(e=e(Ut({},r),this.props)),e&&Ut(r,e),e!=null&&this.__v&&(t&&this._sb.push(t),mi(this))},ao.prototype.forceUpdate=function(e){this.__v&&(this.__e=!0,e&&this.__h.push(e),mi(this))},ao.prototype.render=G,Zt=[],hl=typeof Promise=="function"?Promise.prototype.then.bind(Promise.resolve()):setTimeout,ci=function(e,t){return e.__v.__b-t.__v.__b},co.__r=0,li=0,pi=Tl(!1),ui=Tl(!0),xl=0;var tr,de,bi,Sl,dn=0,Ll=[],po=[],he=ue,_l=he.__b,Rl=he.__r,Cl=he.diffed,Ml=he.__c,Dl=he.unmount,Il=he.__;function mn(e,t){he.__h&&he.__h(de,e,dn||t),dn=0;var r=de.__H||(de.__H={__:[],__h:[]});return e>=r.__.length&&r.__.push({__V:po}),r.__[e]}function F(e){return dn=1,fn(Nl,e)}function fn(e,t,r){var n=mn(tr++,2);if(n.t=e,!n.__c&&(n.__=[r?r(t):Nl(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=de,!de.u)){var o=function(a,c,l){if(!n.__c.__H)return!0;var u=n.__c.__H.__.filter(function(m){return!!m.__c});if(u.every(function(m){return!m.__N}))return!s||s.call(this,a,c,l);var p=!1;return u.forEach(function(m){if(m.__N){var d=m.__[0];m.__=m.__N,m.__N=void 0,d!==m.__[0]&&(p=!0)}}),!(!p&&n.__c.props===a)&&(!s||s.call(this,a,c,l))};de.u=!0;var s=de.shouldComponentUpdate,i=de.componentWillUpdate;de.componentWillUpdate=function(a,c,l){if(this.__e){var u=s;s=void 0,o(a,c,l),s=u}i&&i.call(this,a,c,l)},de.shouldComponentUpdate=o}return n.__N||n.__}function B(e,t){var r=mn(tr++,3);!he.__s&&vi(r.__H,t)&&(r.__=e,r.i=t,de.__H.__h.push(r))}function rr(e,t){var r=mn(tr++,4);!he.__s&&vi(r.__H,t)&&(r.__=e,r.i=t,de.__h.push(r))}function ie(e){return dn=5,O(function(){return{current:e}},[])}function O(e,t){var r=mn(tr++,7);return vi(r.__H,t)?(r.__V=e(),r.i=t,r.__h=e,r.__V):r.__}function _(e,t){return dn=8,O(function(){return e},t)}function Ft(e){var t=de.context[e.__c],r=mn(tr++,9);return r.c=e,t?(r.__==null&&(r.__=!0,t.sub(de)),t.props.value):e.__}function Vb(){for(var e;e=Ll.shift();)if(e.__P&&e.__H)try{e.__H.__h.forEach(uo),e.__H.__h.forEach(yi),e.__H.__h=[]}catch(t){e.__H.__h=[],he.__e(t,e.__v)}}he.__b=function(e){de=null,_l&&_l(e)},he.__=function(e,t){e&&t.__k&&t.__k.__m&&(e.__m=t.__k.__m),Il&&Il(e,t)},he.__r=function(e){Rl&&Rl(e),tr=0;var t=(de=e.__c).__H;t&&(bi===de?(t.__h=[],de.__h=[],t.__.forEach(function(r){r.__N&&(r.__=r.__N),r.__V=po,r.__N=r.i=void 0})):(t.__h.forEach(uo),t.__h.forEach(yi),t.__h=[],tr=0)),bi=de},he.diffed=function(e){Cl&&Cl(e);var t=e.__c;t&&t.__H&&(t.__H.__h.length&&(Ll.push(t)!==1&&Sl===he.requestAnimationFrame||((Sl=he.requestAnimationFrame)||Qb)(Vb)),t.__H.__.forEach(function(r){r.i&&(r.__H=r.i),r.__V!==po&&(r.__=r.__V),r.i=void 0,r.__V=po})),bi=de=null},he.__c=function(e,t){t.some(function(r){try{r.__h.forEach(uo),r.__h=r.__h.filter(function(n){return!n.__||yi(n)})}catch(n){t.some(function(o){o.__h&&(o.__h=[])}),t=[],he.__e(n,r.__v)}}),Ml&&Ml(e,t)},he.unmount=function(e){Dl&&Dl(e);var t,r=e.__c;r&&r.__H&&(r.__H.__.forEach(function(n){try{uo(n)}catch(o){t=o}}),r.__H=void 0,t&&he.__e(t,r.__v))};var jl=typeof requestAnimationFrame=="function";function Qb(e){var t,r=function(){clearTimeout(n),jl&&cancelAnimationFrame(t),setTimeout(e)},n=setTimeout(r,100);jl&&(t=requestAnimationFrame(r))}function uo(e){var t=de,r=e.__c;typeof r=="function"&&(e.__c=void 0,r()),de=t}function yi(e){var t=de;e.__c=e.__(),de=t}function vi(e,t){return!e||e.length!==t.length||t.some(function(r,n){return r!==e[n]})}function Nl(e,t){return typeof t=="function"?t(e):t}var $l=(e,t)=>{if(!Array.isArray(e))throw new TypeError("${t}" must be an array but actual is "${e}")};var mo=!1,Ol=null;scrapbox.addListener("lines:changed",()=>mo=!1);scrapbox.addListener("layout:changed",()=>mo=!1);var Al=()=>(mo||(Ol=scrapbox.Page.lines,mo=!0),Ol);var Ul=(e,t)=>{if(!(e instanceof HTMLDivElement))throw new TypeError("${t}" must be HTMLDivElememt but actual is "${e}")};var Fl=(e,t)=>{if(!(e instanceof HTMLTextAreaElement))throw new TypeError("${t}" must be HTMLTextAreaElement but actual is "${e}")};var Bl=()=>fo(document.getElementById("editor"),"div#editor"),gn=()=>fo(document.getElementsByClassName("lines").item(0),"div.lines");var ke=()=>{let e=document.getElementById("text-input");if(!!e)return Fl(e,"textarea#text-input"),e};var Hl=()=>fo(document.getElementsByClassName("popup-menu")?.[0],"div.popup-menu");var zl=()=>fo(document.getElementsByClassName("status-bar")?.[0],"div.status-bar"),fo=(e,t)=>{if(!!e)return Ul(e,t),e};var Be=()=>{let e=gn();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 He=e=>e.match(/^(\s*)/)?.[1]?.length??0,St=(e,t)=>{let r=He(Wl(e,t)),n=0;for(;e+n+1<t.length&&He(Wl(e+n+1,t))>r;)n++;return n},Wl=(e,t)=>{let r=t[e];return Mr(r)?r:r.text};var ki=e=>{if(tt(e))return;if(_e(e))return go(e)?.id;if(Mr(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)},ql=e=>{if(tt(e))return;if(_e(e))return e;let t=ki(e);return t?Be().findIndex(r=>r.id===t):-1};var go=e=>{if(tt(e))return;if(_e(e))return Be()[e];let t=ki(e);return t?Be().find(r=>r.id===t):void 0},nr=e=>{if(Gl(e))return e;let t=ki(e);if(tt(t))return t;let r=document.getElementById(L${t});if(!tt(r))return r},Gl=e=>e instanceof HTMLDivElement&&e.classList.contains("line");var nt=()=>{let e=Al();return $l(e,"scrapbox.Page.lines"),e},xe=e=>{if(tt(e))return;if(_e(e)||Mr(e))return go(e)?.text;if(!(e instanceof HTMLElement))return;if(Gl(e))return go(e)?.text;if(e.classList.contains("char-index"))return e.textContent??void 0;if(e.classList.contains("line")||e.getElementsByClassName("lines")?.[0])return Be().map(({text:n})=>n).join( );let t=[],r=go(e);if(!tt(r)){for(let n of Jb(e))t.push(Zb(n));return r.text.slice(Math.min(...t),Math.max(...t)+1)}};var Kl=()=>{let e=gn()?.firstElementChild;if(!tt(e))return e},Xl=()=>{let e=gn()?.lastElementChild;if(!tt(e))return e};var Ei=e=>{let t=ql(e);if(!tt(t))return St(t,nt())};function*Jb(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"),Zb=e=>{if(!Ti(e))throw Error("A char DOM is required.");let t=e.className.match(/c-(\d+)/)?.[1];if(tt(t))throw Error('.char-index must have ".c-{\\d}"');return parseInt(t)},Yl=e=>{let t=e?.getElementsByClassName?.("c-0")?.[0];return Ti(t)?t:void 0};var hn=(e,t)=>{let r=nr(e)?.getElementsByClassName?.(c-${t})?.[0];return Ti(r)?r:void 0};var be=(e,t)=>{let{noModifiedKeys:r=!1,...n}=t??{},o={bubbles:!0,cancelable:!0,keyCode:ey[e],...r?{}:{...n}},s=ke();if(!s)throw Error("#text-input must exist.");s.dispatchEvent(new KeyboardEvent("keydown",o)),s.dispatchEvent(new KeyboardEvent("keyup",o))},ey={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 Pi=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 ce(10)};var me=()=>{let e=ke();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 Si=e=>{let{top:t,bottom:r}=e.getBoundingClientRect();return t>=0&&r<=globalThis.innerHeight};function*Xe(e,t){for(let r=e;r<t;r++)yield r}var Li=()=>{be("Home"),be("Home")};var Vl=async()=>{let e=Kl();if(!e)throw Error(".line:first-of-type can't be found.");Si(e)||e.scrollIntoView({block:"center"});let t=Yl(e);if(!t)throw Error(".line:first-of-type .c-0 can't be found.");let{left:r,top:n}=t.getBoundingClientRect();await Pi(e,{X:r,Y:n})},Ql=async()=>{await Jl(Xl())},_i=async e=>{await Jl(nr(e))},Jl=async e=>{if(!e)throw Error("The target line DOM is failed to find.");Si(e)||e.scrollIntoView({block:"center"});let{right:t,top:r,height:n}=e.getElementsByClassName("text")0.getBoundingClientRect();await Pi(e,{X:t+1,Y:r+n/2})};var Zl=(e=1)=>{for(let t of Xe(0,e))be("z",{ctrlKey:!0})},ep=(e=1)=>{for(let t of Xe(0,e))be("z",{shiftKey:!0,ctrlKey:!0})};var Ri=async(e,t)=>{await _i(e),Li(),be("Enter"),be("ArrowUp"),await Ee(t)},Me=async(e,t,r)=>{await _i(e),Li();for(let n of Xe(e,t))be("ArrowDown",{shiftKey:!0});be("End",{shiftKey:!0}),await Ee(r)};var ho=(e=1)=>{for(let t of Xe(0,e))be("ArrowRight",{ctrlKey:!0})},xo=(e=1)=>{for(let t of Xe(0,e))be("ArrowLeft",{ctrlKey:!0})};var bo=(e=1)=>{for(let t of Xe(0,e))be("ArrowUp",{ctrlKey:!0})},yo=(e=1)=>{for(let t of Xe(0,e))be("ArrowDown",{ctrlKey:!0})},vo=(e=1)=>{for(let t of Xe(0,e))be("ArrowRight",{altKey:!0})},wo=(e=1)=>{for(let t of Xe(0,e))be("ArrowLeft",{altKey:!0})};var ko=(e=1)=>{for(let t of Xe(0,e))be("ArrowUp",{altKey:!0})},Eo=(e=1)=>{for(let t of Xe(0,e))be("ArrowDown",{altKey:!0})},Ee=async e=>{let t=ke();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 ce(1)};var le=()=>{let e=zl();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=tp(...r);n&&t.append(n)},dispose:()=>t.remove()}},tp=(...e)=>{let t=e.flatMap(n=>{switch(n.type){case"spinner":returnry();case"check-circle":returnny();case"exclamation-triangle":returnoy();case"text":returnTo(n.text);case"group":{let o=tp(...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},To=e=>{let t=document.createElement("span");return t.classList.add("item"),t.append(e),t},ry=()=>{let e=document.createElement("i");return e.classList.add("fa","fa-spinner"),To(e)},ny=()=>{let e=document.createElement("i");return e.classList.add("kamon","kamon-check-circle"),To(e)},oy=()=>{let e=document.createElement("i");return e.classList.add("fas","fa-exclamation-triangle"),To(e)};var jr=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_${K(e.to.title)}]=r,localStorage.setItem("pageTransitionContext",JSON.stringify(t))};var sy=(e,t,r)=>{let n=new URL(/${e}/${Y(t)},location.href);if(r?.body&&(n.search=?body=${encodeURIComponent(r.body)}),r?.id&&(n.hash=#${r.id}),r?.context&&jr({...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()},Nr=(e,t,r)=>sy(e,t,{newTab:!1,reload:!1,body:r});var xn=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}},rp=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(iy(new Date))).put(e,r)},iy=e=>api-${e.getFullYear()}-${${e.getMonth()+1}.padStart(2,"0")}-${${e.getDate()}.padStart(2,"0")};var Ye=()=>{let e=ke();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 Bt=()=>Ye().cursor;var Po=()=>Ye().selection;var bn=e=>e===void 0?0:typeof e=="boolean"?Number(e):(e.capture?1:0)|(e.once?2:0)|(e.passive?4:0),np=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 So=new Map,Ci=new Map,op=(e,t,r)=>{let n=So.get(e)??new Map,o=n.get(t)??new Set;if(o.has(bn(r)))return;if(o.add(bn(r)),n.set(t,o),So.set(e,n),typeof r=="object"&&r?.once){let i=Ci.get(t)??new Map,a=bn(r),c=function(u){return Mi(e,t,r),i.delete(a),t.call(this,u)};i.set(a,c),Ci.set(t,i);let l=ke();if(!l)return;l.addEventListener(e,c,r)}let s=ke();!s||s.addEventListener(e,t,r)};scrapbox.on("layout:changed",()=>{let e=ke();if(!!e)for(lett,rof So)for(letn,oof r)for(let s of o)e.addEventListener(t,n,np(s))});var Mi=(e,t,r)=>{let n=So.get(e);if(!n)return;let o=n.get(t);if(!o)return;let s=bn(r);if(o.delete(s),typeof r=="object"&&r?.once){let a=Ci.get(t);if(!a)return;let c=a.get(s);if(!c)return;let l=ke();if(!l)return;l.removeEventListener(e,c,r),a.delete(s);return}let i=ke();!i||i.removeEventListener(e,t,r)};var sp=e=>e.replace(/[.*+?^=!:${}()|\\/\\]/g,"\\$&");var ip=({project:e,title:t,words:r,lines:n,query:o,close:s})=>{let i=_(c=>{jr({type:"search",query:o,to:{project:e,title:t}}),!(c.metaKey||c.ctrlKey||c.altKey||c.shiftKey)&&s()},e,t,o,s),a=O(()=>{let c=new RegExp((${r.map(l=>sp(l)).join("|")}),"i");return n.flatMap(l=>{let u=l.split(c);return f("span",null,u.map((p,m)=>m%2==0?p:f("strong",null,p)))})},n,r);return f("a",{href:/${e}/${Y(t)},target:${e===scrapbox.Project.name?"":"_blank"},rel:${e===scrapbox.Project.name?"route":"noopener noreferrer"},onClick:i},t,f("div",{className:"description"},a))};var ap=e=>{lett,r=F(e),n=_(()=>r(!0),[]),o=_(()=>r(!1),[]),s=_(()=>r(i=>!i),[]);returnt,{open:n,close:o,toggle:s}};var cp=(e,t,r,n)=>{let{sid:o,hostName:s}=V(n??{}),i=https://${s}/api/table/${e}/${Y(t)}/${encodeURIComponent(r)}.csv;return new Request(i,o?{headers:{Cookie:Z(o)}}:void 0)},lp=async e=>e.ok?{ok:!0,value:await e.text()}:e.status===404?{ok:!1,value:{name:"NotFoundError",message:"Table not found."}}:ae(e),pp=async(e,t,r,n)=>{let{fetch:o}=V(n??{}),s=cp(e,t,r,n),i=await o(s);return await lp(i)};pp.toRequest=cp;pp.fromResponse=lp;var Lo=async(e,t,r,n)=>{let{sid:o,hostName:s,fetch:i,csrf:a}=V(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 bt(n),...o?{Cookie:Z(o)}:{}},body:JSON.stringify({from:t,to:r})}),l=await i(c);if(!l.ok)return ae(l);let{message:u}=await l.json();return{ok:!0,value:parseInt(u.match(/\d+/)?.0??"0")}};var up=async(e,t)=>{let{sid:r,hostName:n,fetch:o,followingId:s}=V(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);if(!a.ok)return a.status===422?{ok:!1,value:{name:"InvalidFollowingIdError",message:await a.text()}}:ae(a);let c=await a.json();return{ok:!0,value:{pages:c,followingId:a.headers.get("X-following-id")??""}}};var dp=async(e,t,r)=>{let{sid:n,hostName:o,fetch:s}=V(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);if(!a.ok)return a.status===422?{ok:!1,value:{name:"NoQueryError",message:(await a.json()).message}}:ae(a);let c=await a.json();return{ok:!0,value:c}};var mp=async(e,t)=>{let{sid:r,hostName:n,fetch:o,csrf:s}=V(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 bt(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}}:ae(a);let{title:c}=await a.json();return{ok:!0,value:c}};var fp=async(e,t)=>{let{sid:r,hostName:n,fetch:o,csrf:s}=V(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 bt(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}}:ae(a);let c=await a.json();return{ok:!0,value:c}};var gp=async e=>{let{sid:t,hostName:r,gyazoTeamsName:n}=V(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 ae(s);let{token:i}=await s.json();return{ok:!0,value:i}};var hp=(e,t,r,n)=>{let{sid:o,hostName:s}=V(n??{}),i=https://${s}/api/code/${e}/${Y(t)}/${Y(r)};return new Request(i,o?{headers:{Cookie:Z(o)}}:void 0)},xp=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"}}:ae(e),_o=async(e,t,r,n)=>{let{fetch:o}=V(n??{}),s=hp(e,t,r,n),i=await o(s);return await xp(i)};_o.toRequest=hp;_o.fromResponse=xp;var bp=new TextEncoder().encode("0123456789abcdef");function yp(e){let t=new Uint8Array(e.length*2);for(let r=0;r<t.length;r++){let n=er;tr*2=bpn>>4,tr*2+1=bpn&15}return t}var vp="md5: data is invalid type",or=64,Ro=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(or),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=C=>tC|tC+1<<8|tC+2<<16|tC+3<<24,a=(C,M)=>C<<M|C>>>32-M,c=i(0),l=i(4),u=i(8),p=i(12),m=i(16),d=i(20),g=i(24),h=i(28),x=i(32),y=i(36),E=i(40),T=i(44),b=i(48),w=i(52),k=i(56),R=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+u+606105819,17),n=o+a(((s^r)&o^r)+n+p+3250441966,22),r=n+a(((o^s)&n^s)+r+m+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+y+2336552879,12),o=s+a(((r^n)&s^n)+o+E+4294925233,17),n=o+a(((s^r)&o^r)+n+T+2304563134,22),r=n+a(((o^s)&n^s)+r+b+1804603682,7),s=r+a(((n^o)&r^o)+s+w+4254626195,12),o=s+a(((r^n)&s^n)+o+k+2792965006,17),n=o+a(((s^r)&o^r)+n+R+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+T+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+E+38016083,9),o=s+a(((s^r)&n^r)+o+R+3634488961,14),n=o+a(((o^s)&r^s)+n+m+3889429448,20),r=n+a(((n^o)&s^o)+r+y+568446438,5),s=r+a(((r^n)&o^n)+s+k+3275163606,9),o=s+a(((s^r)&n^r)+o+p+4107603335,14),n=o+a(((o^s)&r^s)+n+x+1163531501,20),r=n+a(((n^o)&s^o)+r+w+2850285829,5),s=r+a(((r^n)&o^n)+s+u+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+T+1839030562,16),n=o+a((o^s^r)+n+k+4259657740,23),r=n+a((n^o^s)+r+l+2763975236,4),s=r+a((r^n^o)+s+m+1272893353,11),o=s+a((s^r^n)+o+h+4139469664,16),n=o+a((o^s^r)+n+E+3200236656,23),r=n+a((n^o^s)+r+w+681279174,4),s=r+a((r^n^o)+s+c+3936430074,11),o=s+a((s^r^n)+o+p+3572445317,16),n=o+a((o^s^r)+n+g+76029189,23),r=n+a((n^o^s)+r+y+3654602809,4),s=r+a((r^n^o)+s+b+3873151461,11),o=s+a((s^r^n)+o+R+530742520,16),n=o+a((o^s^r)+n+u+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+k+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+p+2399980690,10),o=s+a((r^(s|~n))+o+E+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+R+4264355552,10),o=s+a((r^(s|~n))+o+g+2734768916,15),n=o+a((s^(o|~r))+n+w+1309151649,21),r=n+a((o^(n|~s))+r+m+4149444226,6),s=r+a((n^(r|~o))+s+T+3174756917,10),o=s+a((r^(s|~n))+o+u+718787259,15),n=o+a((s^(o|~r))+n+y+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(vp);else throw new TypeError(vp);let n=this.#i,o=or-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+or<=r.length;)this.#c(r.slice(s,s+or)),s+=or;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=or-this.#i;t<9&&(t+=or);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(yp(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 wp=async(e,t,r)=>{let n=new Ro().update(await e.arrayBuffer()).toString(),o=await ay(e,t,n,r);if(!o.ok)return o;if("embedUrl"in o.value)return{ok:!0,value:o.value};let s=await cy(o.value.signedUrl,e,r);return s.ok?ly(t,o.value.fileId,n,r):s},ay=async(e,t,r,n)=>{let{sid:o,hostName:s,fetch:i,csrf:a}=V(n??{}),c={md5:r,size:e.size,contentType:e.type,name:e.name},l=a??await bt(),u=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)}:{}}}),p=await i(u);return p.ok?{ok:!0,value:await p.json()}:ae(p)},cy=async(e,t,r)=>{let{sid:n,fetch:o}=V(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 xt(s)}return{ok:!0,value:void 0}},ly=async(e,t,r,n)=>{let{sid:o,hostName:s,fetch:i,csrf:a}=V(n??{}),c=a??await bt(),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)}:{}}}),u=await i(l);if(!u.ok){try{if(u.status===404)return{ok:!1,value:{name:"NotFoundError",message:(await u.json()).message}}}catch{throw new xt(u)}throw new xt(u)}let p=await u.json();return{ok:!0,value:p}};var kp=(e,t)=>{letr,n=F(),o,s=F(!1),i=ie(Promise.resolve());return B(()=>{if(t===""){n(void 0);return}let a=!1;return i.current=(async()=>{if(await i.current,!a){s(!0);try{let c=await dp(t,e);if(a)return;n(c.ok?c.value:void 0)}finally{s(!1)}}})(),()=>a=!0},t,e),{loading:o,result:r}};var Ep=()=>f("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 py=()=>f("i",{className:"spinner"}),Tp=({exportOps:e})=>{let[t,r]=F(""),n=scrapbox.Project.name,{loading:o,result:s}=kp(n,t),i=_(d=>{r(d.currentTarget.value)},[]),[a,{open:c,close:l,toggle:u}]=ap(!1),p=ie({open:c,close:l,toggle:u});B(()=>{Object.assign(p.current,{open:c,close:l,toggle:u})},[]),B(()=>e(p.current),[e]);let m=_(d=>{d.target instanceof HTMLElement&&d.target.id==="background"&&l()},[]);return f(G,null,f(Ep,null),f("div",{id:"background",className:modal${a?"":" closed"},onClick:m},f("div",{className:"controller"},f("input",{type:"text",value:t,onInput:i}),f("div",{className:"info"},o&&f(py,null),${s?.pages?.length??0} pages)),s?.pages&&s.pages.length>0&&f("ul",{className:"result"},s.pages.map(d=>f("li",{key:d.title},f(ip,{...d,project:n,query:t,close:l}))))))};var Pp=()=>{let e=document.createElement("div"),t=e.attachShadow({mode:"open"});return document.body.append(e),new Promise(r=>{Ce(f(Tp,{exportOps:r}),t)})};var Sp={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:">"},Lp={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:"/","?"},_p={a:"altKey",c:"ctrlKey",m:"metaKey",s:"shiftKey"},Rp={"<":"lt",">":"gt"},uy=/^($|Unidentified$|Dead$|Alt|Control|Hyper|Meta|Shift|Super|OS)/,Co=(e,t)=>Object.hasOwn(e,t),Cp=e=>{let t=e.toLowerCase();return Co(Sp,t)?Spt:e},dy=(e,t)=>{if(e.startsWith("Key")){let r=e.slice(3);return t||(r=r.toLowerCase()),r}return Co(Lp,e)?Lpet?1:0:e},Di=e=>{let t=e.shiftKey,r=e.key||"Unidentified";if(r==="Unidentified"?r=dy(e.code||"",t):(r=Cp(r),r===" "&&(r="Space")),uy.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-"),Co(Rp,r)&&(r=Rpr),n||r.length>1?<${n}${r}>:r},my=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:Cp(n)};for(let s of r.split("-").slice(0,-1)){let i=s.toLowerCase();if(!Co(_p,i))return{ok:!1,value:{name:"UnknownModifierError",modifier:s,context:e,message:${e}: Unknown modifier: ${s}}};let a=_pi;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}},Mp=e=>{let t=my(e);return t.ok?{ok:!0,value:Di(t.value)}:t},Dp=e=>e.match(/<^<>\s+>|\s\S|^$/g);var ot=!1;var Ip=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)=>{ot!==!0&&(!ot||!ot.has(e))||r(%c${e},"color: gray",...n)}];case"assert":return[t,(n,...o)=>{ot!==!0&&(!ot||!ot.has(e))||r(n,%c${e},"color: gray",...o)}];case"time":case"timeEnd":return[t,n=>{ot!==!0&&(!ot||!ot.has(e))||r(${e} ${n})}];default:returnt,(...n)=>{if(!(ot!==!0&&(!ot||!ot.has(e))))return r(...n)}}}));var sr=Ip("ScrapBindings:mod.ts"),Ii=class{constructor(t,r){this.target=t;this.bindings=new Map;this._sequence="";this.filtered=new Set;this.backToInitial=()=>{clearTimeout(this.timer),this.currentSequence="",this.prevBestMatchCommand=void 0,this.filtered=new Set(this.bindings.keys()),sr.debug("reset the sequence")};this.handleKeydown=t=>{if(!t.isTrusted)return;let r=Di(t);if(!r)return;if(clearTimeout(this.timer),t.isComposing||t.key==="Process"){this.backToInitial();return}this.currentSequence+=r,sr.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=()=>{sr.debug(run ${s});try{i(t)}catch(a){sr.error(a)}finally{this.backToInitial()}}}let o=this.filtered.size;if(sr.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)};this.emitChange=()=>{if(this.bindings.size===0){this.backToInitial(),this.target.removeEventListener("keydown",this.handleKeydown);return}this.target.addEventListener("keydown",this.handleKeydown)};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=jp(s);if(!a.ok){for(let l of a.value)sr.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 sr.debug("Binded the following commands:",o),this.emitChange(),n}unbind(...t){for(let r of t){let n=jp(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()}set currentSequence(t){let r=this._sequence!==t;this._sequence=t,r&&this.onSequenceUpdate?.(t)}get currentSequence(){return this._sequence}},fy={name:"InvalidSequenceError",message:"cannot parse the sequence"},jp=e=>{let t=Dp(e);if(!t)return{ok:!1,value:fy};let r="",n=[];for(let o of t){let s=Mp(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 gy=/https?:\/\/vimeo\.com\/(0-9+)/i,Np=e=>{let t=e.match(gy);if(!!t)return t1};var hy=/https?:\/\/open\.spotify\.com\/(track|artist|playlist|album|episode|show)\/(a-zA-Z\d_-+)(?:\?^\s{0,100}|)/,$p=e=>{let t=e.match(hy);if(!t)return;let,r,n=t;return{videoId:n,pathType:r}};var xy=/https?:\/\/anchor\.fm\/a-zA-Z\d_-+\/episodes\/(a-zA-Z\d_-+(?:\/a-zA-Z\d_-+)?)(?:\?^\s{0,100}|)/,Op=e=>{let t=e.match(xy);if(!t)return;let,r=t;return r};var Ap=e=>{let{type:t,pathType:r,content:n,href:o,...s}=e;if(n===""){let i=ro(o);if(i)return{type:"youtube",href:o,...i,...s};let a=Np(o);if(a)return{type:"vimeo",videoId:a,href:o,...s};let c=$p(o);if(c)return{type:"spotify",href:o,...c,...s};let l=Op(o);if(l)return{type:"anchor-fm",videoId:l,href:o,...s};if(yy(o))return{type:"video",href:o,...s}}return by(o)?{type:"audio",content:n,href:o,...s}:{type:"absoluteLink",content:n,href:o,...s}},by=e=>/\.(?:mp3|ogg|wav|aac)$/.test(e),yy=e=>/\.(?:mp4|webm)$/.test(e);var Up=()=>{if(scrapbox.Layout!=="page")return{selectionRange:{start:{line:0,char:0},end:{line:0,char:0}},selectedText:""};let{selectionRange:e,selectedText:t,position:r}=me();if(!t){let u=Ei(r.line)??0,p={start:{line:r.line,char:0},end:{line:r.line+u,char:xe(r.line+u)?.length??0}};return{selectionRange:p,selectedText:scrapbox.Page.lines.slice(p.start.line,p.end.line+1).map(m=>m.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 ji=(e,{title:t,projectTo:r,mode:n})=>{let[o,...s]=e.split(
),i=o.replaceAll("[","").replaceAll("]","").trim(),a=Math.min(...[o,...s].map(l=>He(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}]}};ji.hookName="default-hook";var Lt=e=>{let{project:t=scrapbox.Project.name,mode:r="newtab"}=e??{},n=[...e?.hooks??[],ji],{selectionRange:{start:o,end:s},selectedText:i}=Up();if(!i||scrapbox.Layout!=="page")return;let a=(()=>{for(let p of n){let m=p(i,{title:scrapbox.Page.title,projectFrom:scrapbox.Project.name,projectTo:t,lines:Be().slice(o.line,s.line+1),mode:r});if(m)return[p.hookName,m]}})();if(!a)return;let[c,l]=a,u=async()=>{let p=l instanceof Promise?await l:l;if(p.pages.length===0&&p.text===i)return;let m,{render:d,dispose:g}=le();try{if(p.pages.length>0){let x=p.pages.length;d({type:"spinner"},{type:"text",text:Create new ${x} pages...}),m=await $e();let y=0;await Promise.all(p.pages.map(async E=>{let T=Array.isArray(E.lines)?b=>[...b.map(w=>w.text),...E.lines]:E.lines;await re(E.project,E.title,T,{socket:m}),d({type:"spinner"},{type:"text",text:Create ${x-++y} pages...})}))}d({type:"spinner"},{type:"text",text:${p.pages.length>0?"Created. ":""}Removing cut text...});let h=p.text;if(i===h)return;await re(scrapbox.Project.name,scrapbox.Page.title,x=>{let y=x.map(E=>E.text);return[...y.slice(0,o.line),...${yo.line.slice(0,o.char)}${h}${y.slice(s.line).join(` ).slice(s.char)}.split(`
)]}),d({type:"check-circle"},{type:"text",text:"Removed."});for(let x of p.pages)switch(x.mode){case"self":x.project===scrapbox.Project.name?Nr(x.project,x.title):window.open(https://scrapbox.io/${x.project}/${Y(x.title)},"_self");break;case"newtab":window.open(https://scrapbox.io/${x.project}/${Y(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=ce(1e3);m&&await we(m),await h,g()}};return u.hookName=c,u};function vy(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 wy={};function ky(){return wy}function Mo(e,t){let r=ky(),n=t?.weekStartsOn??t?.locale?.options?.weekStartsOn??r.weekStartsOn??r.locale?.options?.weekStartsOn??0,o=vy(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 Ty(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 Fp(e){let t=Ty(e);return t.setHours(0,0,0,0),t}function Ni(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 Do(e,t){let r=Ni(e.start),n=Ni(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(Ni(i)),i.setDate(i.getDate()+a),i.setHours(0,0,0,0);return o?c.reverse():c}function Ly(e){return e instanceof Date||typeof e=="object"&&Object.prototype.toString.call(e)==="[object Date]"}function Bp(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 _y(e){if(!Ly(e)&&typeof e!="number")return!1;let t=Bp(e);return!isNaN(Number(t))}function Ht(e,t){let r=e<0?"-":"",n=Math.abs(e).toString().padStart(t,"0");return r+n}var Ry={y(e,t){let r=e.getFullYear(),n=r>0?r:1-r;return Ht(t==="yy"?n%100:n,t.length)},M(e,t){let r=e.getMonth();return t==="M"?String(r+1):Ht(r+1,2)},d(e,t){return Ht(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 Ht(e.getHours()%12||12,t.length)},H(e,t){return Ht(e.getHours(),t.length)},m(e,t){return Ht(e.getMinutes(),t.length)},s(e,t){return Ht(e.getSeconds(),t.length)},S(e,t){let r=t.length,n=e.getMilliseconds(),o=Math.trunc(n*Math.pow(10,r-3));return Ht(o,t.length)}},Cy=/(\w)\1*|''|'(''|[^'])+('|$)|./g,My=/^'([^]*?)'?$/,Dy=/''/g,Iy=/[a-zA-Z]/;function Q(e,t){let r=Bp(e);if(!_y(r))throw new RangeError("Invalid time value");let n=t.match(Cy);return n?n.map(o=>{if(o==="''")return"'";let s=o[0];if(s==="'")return jy(o);let i=Ry[s];if(i)return i(r,o);if(s.match(Iy))throw new RangeError("Format string contains an unescaped latin alphabet character "+s+"");return o}).join(""):""}function jy(e){let t=e.match(My);return t?t[1].replace(Dy,"'"):e}function $y(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 Oy(e,t){return e instanceof Date?new e.constructor(t):new Date(t)}function ze(e,t){let r=$y(e);return isNaN(t)?Oy(e,NaN):(t&&r.setDate(r.getDate()+t),r)}function Uy(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 Fy(e,t){return e instanceof Date?new e.constructor(t):new Date(t)}function By(e,t){let r=Uy(e);return isNaN(t)?Fy(e,NaN):(t&&r.setDate(r.getDate()+t),r)}function _t(e,t){return By(e,-t)}function zy(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 Wy(e,t){return e instanceof Date?new e.constructor(t):new Date(t)}function qy(e,t){let r=+zy(e);return Wy(e,r+t)}function Io(e,t){return qy(e,t*1e3)}function Ky(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 Xy(e,t){return e instanceof Date?new e.constructor(t):new Date(t)}function Yy(e,t){let r=Ky(e);return isNaN(t)?Xy(e,NaN):(t&&r.setDate(r.getDate()+t),r)}function Hp(e,t){let r=t*7;return Yy(e,r)}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 jo(e){return Jy(e).getDate()}var ev=Math.pow(10,8)*24*60*60*1e3,Ej=-ev,tv=6048e5,rv=3600,zp=rv*24,Tj=zp*7,nv=zp*365.2425,ov=nv/12,Pj=ov*3;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)}var sv={};function Oi(){return sv}function No(e,t){let r=Oi(),n=t?.weekStartsOn??t?.locale?.options?.weekStartsOn??r.weekStartsOn??r.locale?.options?.weekStartsOn??0,o=$i(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 Ai(e,t){return e instanceof Date?new e.constructor(t):new Date(t)}function iv(e,t){let r=$i(e),n=r.getFullYear(),o=Oi(),s=t?.firstWeekContainsDate??t?.locale?.options?.firstWeekContainsDate??o.firstWeekContainsDate??o.locale?.options?.firstWeekContainsDate??1,i=Ai(e,0);i.setFullYear(n+1,0,s),i.setHours(0,0,0,0);let a=No(i,t),c=Ai(e,0);c.setFullYear(n,0,s),c.setHours(0,0,0,0);let l=No(c,t);return r.getTime()>=a.getTime()?n+1:r.getTime()>=l.getTime()?n:n-1}function av(e,t){let r=Oi(),n=t?.firstWeekContainsDate??t?.locale?.options?.firstWeekContainsDate??r.firstWeekContainsDate??r.locale?.options?.firstWeekContainsDate??1,o=iv(e,t),s=Ai(e,0);return s.setFullYear(o,0,n),s.setHours(0,0,0,0),No(s,t)}function yn(e,t){let r=$i(e),n=+No(r,t)-+av(r,t);return Math.round(n/tv)+1}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 Wp(e){return lv(e).getMonth()}function uv(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 vn(e){return uv(e).getFullYear()}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 qp(e){let t=mv(e);return t.setHours(0,0,0,0),t}function We(e,t){let r=qp(e),n=qp(t);return+r==+n}var Gp=e=>{let t=new Map;for(let r of e){let n=${vn(r)}-${Wp(r)}-${jo(r)},o=t.get(n);o&&o.getTime()>r.getTime()||t.set(n,r)}return[...t.values()]};function Ui(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 $o(e,t){return e instanceof Date?new e.constructor(t):new Date(t)}function gv(e,t){let r=Ui(e);return isNaN(t)?$o(e,NaN):(t&&r.setDate(r.getDate()+t),r)}function hv(e,t){let r=Ui(e);if(isNaN(t))return $o(e,NaN);if(!t)return r;let n=r.getDate(),o=$o(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 Kp(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=Ui(e),u=n||r?hv(l,n+r*12):l,p=s||o?gv(u,s+o*7):u,m=a+i*60,d=(c+m*60)*1e3;return $o(e,p.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,kN=-vv,wv=36e5,kv=3600,Xp=kv*24,EN=Xp*7,Ev=Xp*365.2425,Tv=Ev/12,TN=Tv*3;function Yp(e,t){return yv(e,t*wv)}function Pv(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 Lv(e,t){let r=+Pv(e);return Sv(e,r+t)}var _v=Math.pow(10,8)*24*60*60*1e3,CN=-_v,Rv=6e4,Cv=3600,Vp=Cv*24,MN=Vp*7,Mv=Vp*365.2425,Dv=Mv/12,DN=Dv*3;function zt(e,t){return Lv(e,t*Rv)}function Qp(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 Jp(e,t){let r=Qp(e),n=Qp(t),o=r.getTime()-n.getTime();return o<0?-1:o>0?1:o}var Iv=Math.pow(10,8)*24*60*60*1e3,p$=-Iv,jv=864e5,Nv=3600,Zp=Nv*24,u$=Zp*7,$v=Zp*365.2425,Ov=$v/12,d$=Ov*3;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)}function tu(e){let t=eu(e);return t.setHours(0,0,0,0),t}function ru(e){let t=eu(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 nu(e,t){let r=tu(e),n=tu(t),o=+r-ru(r),s=+n-ru(n);return Math.round((o-s)/jv)}function ou(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 su(e,t){let r=ou(e),n=ou(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,E$=-Uv,Fv=6e4,Bv=3600,iu=Bv*24,T$=iu*7,Hv=iu*365.2425,zv=Hv/12,P$=zv*3;function au(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+au(e)-+au(t)}function Fi(e,t,r){let n=Wv(e,t)/Fv;return Av(r?.roundingMethod)(n)}function wn(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 e instanceof Date?new e.constructor(t):new Date(t)}function Gv(e,t){let r=wn(e);return isNaN(t)?qv(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 Oo(e,t){let r=Yv(),n=t?.weekStartsOn??t?.locale?.options?.weekStartsOn??r.weekStartsOn??r.locale?.options?.weekStartsOn??0,o=wn(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 cu(e,t){let r=wn(e.start),n=wn(e.end),o=+r>+n,s=Oo(o?n:r,t),i=Oo(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 u=[];for(;+c<=a;)c.setHours(0),u.push(wn(c)),c=Kv(c,l),c.setHours(15);return o?u.reverse():u}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 lu(e){let t=Vv(e);return t.setHours(23,59,59,999),t}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 pu(e){return Qv(e).getHours()}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 uu(e){return Jv(e).getMinutes()}function du(e,t){return e instanceof Date?new e.constructor(t):new Date(t)}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)}var Zv={};function fu(){return Zv}function gu(e,t){let r=fu(),n=t?.weekStartsOn??t?.locale?.options?.weekStartsOn??r.weekStartsOn??r.locale?.options?.weekStartsOn??0,o=mu(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 hu(e,t){let r=mu(e),n=r.getFullYear(),o=fu(),s=t?.firstWeekContainsDate??t?.locale?.options?.firstWeekContainsDate??o.firstWeekContainsDate??o.locale?.options?.firstWeekContainsDate??1,i=du(e,0);i.setFullYear(n+1,0,s),i.setHours(0,0,0,0);let a=gu(i,t),c=du(e,0);c.setFullYear(n,0,s),c.setHours(0,0,0,0);let l=gu(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,LO=-ew;var tw=3600,xu=tw*24,_O=xu*7,rw=xu*365.2425,nw=rw/12,RO=nw*3;function bu(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 ir(e,t){let r=bu(e),n=bu(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 $r(e){if(!ow(e)&&typeof e!="number")return!1;let t=sw(e);return!isNaN(Number(t))}function Bi(e,t){return e instanceof Date?new e.constructor(t):new Date(t)}function Hi(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=Hi(e),r=t.getFullYear(),n=t.getMonth(),o=Bi(e,0);return o.setFullYear(r,n+1,0),o.setHours(0,0,0,0),o.getDate()}function aw(e,t){let r=Hi(e),n=r.getFullYear(),o=r.getDate(),s=Bi(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 yu(e,t){let r=Hi(e);return isNaN(+r)?Bi(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,vA=-cw,lw=6048e5,pw=3600,vu=pw*24,wA=vu*7,uw=vu*365.2425,dw=uw/12,kA=dw*3;function Ao(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 zi(){return mw}function Uo(e,t){let r=zi(),n=t?.weekStartsOn??t?.locale?.options?.weekStartsOn??r.weekStartsOn??r.locale?.options?.weekStartsOn??0,o=Ao(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 Wi(e,t){return e instanceof Date?new e.constructor(t):new Date(t)}function fw(e,t){let r=Ao(e),n=r.getFullYear(),o=zi(),s=t?.firstWeekContainsDate??t?.locale?.options?.firstWeekContainsDate??o.firstWeekContainsDate??o.locale?.options?.firstWeekContainsDate??1,i=Wi(e,0);i.setFullYear(n+1,0,s),i.setHours(0,0,0,0);let a=Uo(i,t),c=Wi(e,0);c.setFullYear(n,0,s),c.setHours(0,0,0,0);let l=Uo(c,t);return r.getTime()>=a.getTime()?n+1:r.getTime()>=l.getTime()?n:n-1}function gw(e,t){let r=zi(),n=t?.firstWeekContainsDate??t?.locale?.options?.firstWeekContainsDate??r.firstWeekContainsDate??r.locale?.options?.firstWeekContainsDate??1,o=fw(e,t),s=Wi(e,0);return s.setFullYear(o,0,n),s.setHours(0,0,0,0),Uo(s,t)}function hw(e,t){let r=Ao(e),n=+Uo(r,t)-+gw(r,t);return Math.round(n/lw)+1}function wu(e,t,r){let n=Ao(e),o=hw(n,r)-t;return n.setDate(n.getDate()-o*7),n}var xw=Math.pow(10,8)*24*60*60*1e3,OA=-xw;var bw=3600,ku=bw*24,AA=ku*7,yw=ku*365.2425,vw=yw/12,UA=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 Eu(e,t){return Tw(e,-t)}var Tu=e=>e==null,Wt=e=>typeof e=="string";async function*Pu(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 Fe=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,u,p,m,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(u)),h.record.start=x}if(p){let x=new Date(h.base);x.setHours(parseInt(p)),x.setMinutes(parseInt(m)),x.setSeconds(parseInt(d)),h.record.start&&ir(h.record.start,x)&&x.setDate(x.getDate()+1),h.record.end=x}return h};var Or=e=>e.record?.start??e.plan?.start??e.base,Su=e=>e.record?.end??(Tu(e.plan?.duration)?e.base:Io(Or(e),e.plan.duration));var ne=({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*Lu(e){for(let t of ar(e))Wt(t)||(yield t)}function*ar(e){for(let t=0;t<e.length;t++){let r=e[t],n=Wt(r)?r:r.text,o=St(t,e),s=Fe(n);if(!s){yield n;continue}yield{...s,lines:e.slice(t+1,t+1+o).map(i=>Wt(i)?i:i.text)},t+=o}}var Pw=5*60,kn=async()=>{let e=me().position.line,t=Fe(xe(e)??""),r=t?.base??new Date,n={start:t?.plan?.start?Io(t.plan.start,Pw+(t.plan.duration??0)):void 0,duration:t?.plan?.duration};await Ri(e+1,ne({title:"",base:r,plan:n,record:{}}))};var cr=async()=>{let e=me().position.line,t=Fe(xe(e)??"");if(!t)return;let{record:{start:r,end:n},...o}=t;n||await Me(e,e,ne({record:{start:r?void 0:new Date},...o}))};var Rt=async()=>{let e=me().position.line,t=Fe(xe(e)??"");if(!t)return;let{record:{start:r,end:n},...o}=t;!r||await Me(e,e,ne({record:{start:r,end:n?void 0:new Date},...o}))};var qi=async()=>{let e=me().position.line,t=Fe(xe(e)??"");if(!t)return;let{record:{start:r,end:n},...o}=t;if(!r){await cr();return}if(!n){await Rt();return}await Me(e,e,ne({record:{},...o}))};var En=async()=>{let e=me().position.line,t=Fe(xe(e)??"");if(!t)return;let{record:{start:r,end:n},...o}=t;if(r){if(n)return;await Rt();return}if(n)return;let s;for(let{text:a}of nt().slice(0,(e??0)+1).reverse()){let{record:c}=Fe(a)??{};if(c?.end){s=c.end;break}}let i=new Date;await Me(e,e,ne({record:{start:s??i,end:i},...o}))};var lr=()=>{let{selectionRange:{start:e,end:t},selectedText:r,position:n}=me();return r===""?[n.line,n.line]:e.line>t.line?[t.line,e.line]:[e.line,t.line]};var Gi=(e,t=7)=>new Date((e+24*60*60*30*((t+1)**1.5-1)/((300+1)**1.5-1))*1e3);var Ki=(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 u=c(l),p=u.isDuration?Kp(t,u):yu(t,u);return s==="s"?{name:n.trimEnd(),start:p,...r!==void 0?{duration:parseInt(r)*60}:{}}:{name:n.trimEnd(),start:Gi(t.getTime()/1e3,(p.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 pr=async()=>{let e=new Date,[t,r]=lr(),n=nt().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}=Ki(i,e)??{};return!a||!c&&!l?s:[ne({title:a.trim(),base:c??e,plan:{start:c,duration:l},record:{}})]}).join( );n.join(
)!==o&&await Me(t,r,o)};var Fo=async(e,t,r)=>{let n=[];for(let o=e;o<=t;o++){let s=xe(o)??"",i=Fe(s);if(!i){n.push(s);continue}n.push(ne(r(i,o)))}await Me(e,t,n.join(
))};var Tn=async(e=1)=>{let[t,r]=lr();await Fo(t,r,n=>(n.base=ze(n.base,e),n))};var Pn=async()=>{let[e,t]=lr(),r=new Date;await Fo(e,t,n=>(We(n.base,r)||(n.base=r),n))};var Lw="日刊記録sheet",_w=/日刊記録sheet (\d{4})-(\d{2})-(\d{2})/,Sn=["[** 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 Xi=e=>{let t=e.match(_w);if(!t)return;let[,r,n,o]=t,s=new Date(parseInt(r),parseInt(n)-1,parseInt(o));return $r(s)?s:void 0},qt=e=>Q(e,'${Lw}' yyyy-MM-dd),ur=e=>{let t=Xi(e[0]);if(!t)return e;let r=Rw(t),n=[],o=[];for(let a of ar(e.slice(1))){if(typeof a=="string"){if(Sn.includes(a)||r!==""&&r===a)continue;o.push(a);continue}n.push(a)}let s=n.sort((a,c)=>Jp(Or(a),Or(c)));if(s.length===0)return[e[0],r,...Sn,...o];let i=[0,0,0,0,0,0,0,0];for(let a=1;a<Sn.length;a++){let c=Yp(new Date(t.getFullYear(),t.getMonth(),t.getDate()),3*a),l=s.findIndex(d=>ir(Or(d),c));if(l<0){i[a]=-1;continue}if(l===0)continue;let u=s[l-1],p=Or(u),m=Su(u);i[a]=(m.getTime()-p.getTime())/2<c.getTime()-p.getTime()?l:l-1}return[e[0],r,...s.flatMap((a,c)=>[...i.flatMap((l,u)=>l===c?[Sn[u]]:[]),ne(a),...a.lines]),...i.flatMap((a,c)=>a===-1?[Sn[c]]:[]),...o]},Rw=e=>yesterday: ${qt(_t(e,1))};var Ln=async(e,t)=>{let r=()=>{},n=setTimeout(()=>{let{render:o,dispose:s}=le();r=s,o({type:"spinner"},{type:"text",text:"formatting..."})},500);await re(e,t,o=>ur(o.map(s=>s.text))),clearTimeout(n),r()};async function*Yi(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++)!We(n[c].base,i)||(a.push(...n.splice(c,1)),c--);o.push((async()=>(await re(e,qt(i),c=>ur([...c.map(l=>l.text),...a.flatMap(l=>[ne(l),...l.lines??[]])]),r),{date:i,size:a.length}))())}yield*Pu(o)}var dr=async({from:{project:e,title:t},to:r})=>{let n=await Ge(e,t);if(!n.ok)throw n.value;let o=Xi(t),{lines:s}=n.value,i=[];for(let u of Lu(s))o&&We(u.base,o)||i.push(u);let{render:a,dispose:c}=le();a({type:"spinner"},{type:"text",text:copying ${i.length} tasks...});let l=await $e();try{let u=0,p=!1;for await(let m of Yi(r,i,{socket:l})){if(m.state!=="fulfilled"){console.error(m.reason),p=!0;continue}u+=m.value.size,a({type:"spinner"},{type:"text",text:copying ${i.length-u} tasks...})}if(p){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 re(e,t,m=>{let d=[];for(let g of ar(m)){if(Wt(g)){d.push(g);continue}o&&We(g.base,o)&&d.push(ne(g),...g.lines)}return d},{socket:l}),a({type:"check-circle"},{type:"text",text:"Moved"})}finally{await we(l),await ce(1e3),c()}};var mt=e=>${e}.padStart(2,"0");var mr=e=>"hours"in e,st=(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,yt=e=>${${e.year}.padStart(4,"0")}-${mt(e.month)}-${mt(e.date)}${"hours"in e?T${mt(e.hours)}:${mt(e.minutes)}:""},ee=e=>{let t=yt(e);return new Date(t.includes("T")?t:${t}T00:00)},qe=e=>({year:e.getFullYear(),month:e.getMonth()+1,date:e.getDate(),hours:e.getHours(),minutes:e.getMinutes()});var _u=e=>{switch(e.toLowerCase()){case"y":return"yearly";case"m":return"monthly";case"w":return"weekly";case"d":return"daily";default:return}};var Ru=e=>{switch(e){case"+":return"todo";case"-":return"note";case"!":return"deadline";case".":return"done";case"~":return"up-down";default:return}},Cu=e=>{switch(e){case"todo":return"+";case"note":return"-";case"deadline":return"!";case"done":return".";case"up-down":return"~"}};var it=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,u,p,m,d,g,h,x,y,E,T,b,w,k,R,C,M,D,S,P,L,j,N,A,I,z]=t,U=${e.slice(0,t.index).trim()}${e.slice((t.index??0)+r.length).trim()},W=Iu(s,i,a,c,l);if(!$r(ee(W)))return{ok:!1,value:{name:"InvalidDateError",message:The reference point of the task "${yt(W)}" is an invalid date.}};let q=ju(W,m,d,g,u||h,p||x,y);if(q!==void 0){if(_e(q)&&isNaN(q)||!_e(q)&&!$r(ee(q)))return{ok:!1,value:{name:"InvalidDateError",message:The estimated end of the task${_e(q)?"": "${yt(q)}"} is an invalid date.}};if(_e(q)&&q<0||!_e(q)&&st(q,W))return{ok:!1,value:{name:"TaskRangeError",message:The reference point of an task cannot be after its estimated end. reference point:${yt(W)}
estimated end:${yt(_e(q)?qe(zt(ee(W),q)):q)}}}}let J=/^[\uFE00-\uFE0F]*[✅❌]/.test(e)?"done":Ru(n),X=J?{status:J,refDate:W}:void 0;X&&o&&(X.speed=parseInt(o));let Le=Iu(k||s,R||i,C||a,b||M||c,w||D||l);if(!$r(ee(Le)))return{ok:!1,value:{name:"InvalidDateError",message:The start of the task/event "${yt(Le)}" is an invalid date.}};let pe=ju(Le,L||m,j||d,N||g,S||A||u||h,P||I||p||x,z||y),$=mr(Le)&&_e(pe)?{start:Le,duration:pe}:void 0;if($){let Ue={name:U,executed:$,generated:!1,raw:e};return X&&(Ue.freshness=X),(E||T)&&(Ue.recurrence={frequency:_u(E??"D")??"daily",count:T?parseInt(T):1}),{ok:!0,value:Ue}}if(!X)return{ok:!1,value:{name:"InvalidDateError",message:"Task requires freshness to be spec"}};let se={name:U,freshness:X,generated:!1,raw:e};return q&&(se.estimated=q),{ok:!0,value:$?{...se,executed:$}:se}},vt=e=>!("executed"in e),Gt=e=>"recurrence"in e,Mu=e=>!("executed"in e||"freshness"in e&&mr(e.freshness.refDate)&&e.estimated&&(_e(e.estimated)||mr(e.estimated))),_n=e=>"executed"in e?e.executed.duration:_e(e.estimated)?e.estimated:void 0,wt=e=>vt(e)?e.freshness.refDate:e.executed.start,Du=e=>{if(!vt(e)){let r=ee(e.executed.start);return qe(zt(r,e.executed.duration))}if(_e(e.estimated)&&mr(e.freshness.refDate)){let r=ee(e.freshness.refDate);return qe(zt(r,e.estimated))}let t=ee(_e(e.estimated)?e.freshness.refDate:e.estimated??e.freshness.refDate);return t.setHours(0),t.setMinutes(0),qe(ze(t,1))},Cw=e=>{let t=e.freshness?${Cu(e.freshness.status)}${e.freshness.speed??""}:"",r=${yt(wt(e))},n=_n(e);return${t}@${r}${n===void 0?"":D${n}}${e.name}},Bo=(e,t)=>{let r=qe(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(su(ee(r),ee(o.start))%(n.count??1)!=0)return;break}case"weekly":case"daily":{let a=n.frequency==="weekly"?7:1;if(nu(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},Ho=e=>e.freshness?e.generated?Cw(e):e.raw:e.generated?void 0:e.raw,Iu=(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}},ju=(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,u=o?parseInt(o):void 0,p=s?parseInt(s):void 0,m=u!==void 0&&p!==void 0?{year:a,month:c,date:l,hours:u,minutes:p}:{year:a,month:c,date:l};return!mr(e)||!mr(m)?m:Math.round((ee(m).getTime()-ee(e).getTime())/(60*1e3))};var fr=(e,t)=>{if(!e.generated&&Gt(e)){let s=Bo(e,t);return s?fr(s,t):void 0}let r=ee(vt(e)?e.freshness.refDate:e.executed.start),n=_n(e),o=Ho(e);return{title:o!==void 0?${o}:e.name,base:r,plan:{start:Mu(e)?void 0:r,duration:n!==void 0?n*60:void 0},record:{}}};var Vi={あさごはん:"#log-breakfast",ひるごはん:"#log-lunch",よるごはん:"#log-dinner"},gr=(e,{title:t,projectTo:r,mode:n})=>{let[o,...s]=e.split( ),i=Fe(o);if(!i)return;if(s.length===0)return{text:e,pages:[]};let{title:a,base:c,record:l,...u}=i,p=Mw(a,c,l),m=ne({title:${p},base:c,record:l,...u}),d=Math.min(...s.map(h=>He(h))),g=[.../[\[\]]/.test(a)&&a!==${p}?[a]:[],...t in Vi?[...s.map(h=>h.slice(d)),"",Vi[t],"#log-eatenfood"]:[...s.map(h=> ${h.slice(d)}),""]];return{text:m,pages:[{project:r,title:p,lines:Nu(t,g,[l.start??c]),mode:n}]}};gr.hookName="task-hook";var Mw=(e,t,r)=>{let n=Q(r.start??t,"yyyy-MM-dd");if(e in Vi)return${n} ${e};if(it(e.slice(1,-1)))return e.slice(1,-1);let o=e.replace(/[\[\]]/g,"").trim();return${o}${o.endsWith(n)?"": ${n}}},hr=(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(p=>He(p))),l=r.startsWith("takker")?Gp([new Date,...o.map(({updated:p})=>new Date(p*1e3))]).sort((p,m)=>m.getTime()-p.getTime()):[],u=["",.../[\[\]]/.test(s)?[s.trimStart()]:[],...i.map(p=>p.slice(c))];return{text:${" ".repeat(He(s))}${a},pages:[{project:r,title:a,lines:Nu(t,u,l),mode:n}]}};hr.hookName="new-page-hook";var xr=(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=>K(a[1])),i=o.replaceAll("[","").replaceAll("]","");return{text:${n}${i},pages:[{project:t,title:i,lines:(a,{links:c})=>{let l=c.map(u=>K(u));if(!s.every(u=>l.includes(u)))return[...a.map(u=>u.text),o]},mode:r}]}};xr.hookName="splitted-link-hook";var Nu=(e,t,r)=>(n,{links:o})=>{let s=o.map(p=>K(p)),i=s.includes(K(e))?[]:[from ${e}],a=r.flatMap(p=>{let m=Q(p,"yyyy-MM-dd");if(s.includes(m))return[];let d=Q(p,"HH:mm:ss");return[#${m} ${d}]}),c=n.map(p=>p.text),l=c.findIndex(p=>/^#\d{4}-\d{2}-\d{2}/.test(p)),u=l<0?c.length:l;return[...c.slice(0,u),...i,...t,"",...a,...c.slice(u)]};var $u=e=>e.preventDefault(),Ou=e=>e.stopPropagation(),Au={"<A-a><A-c>":async e=>{$u(e),Ou(e);let[t,r]=Dw(),n=nt().slice(t,r+1).map(o=>{let s=o.text,i=o.text.match(/\[([^\]]+)\]/)?.[1];if(!i)return s;let a=it(i);if(!a||!a.ok)return s;let c=a.value;if(c.freshness?.status==="done")return s;let l=fr(c,new Date);return l?(l.title=${i},ne(l)):s}).join( );await Me(t,r,n),await pr()},"<A-a><A-m>":e=>{scrapbox.Layout==="page"&&($u(e),Ou(e),dr({from:{project:scrapbox.Project.name,title:scrapbox.Page.title},to:"takker-memex"}))}},Dw=()=>{let{selectionRange:{start:e,end:t},selectedText:r,position:n}=me();return r===""?[n.line,n.line]:e.line>t.line?[t.line,e.line]:[e.line,t.line]};var br=e=>e.preventDefault(),yr=e=>e.stopPropagation(),Qi={"<A-a><A-a>":e=>{br(e),yr(e),kn()},"<A-a><A-s>":e=>{br(e),yr(e),cr()},"<A-a><A-e>":e=>{br(e),yr(e),Rt()},"<A-a><A-0>":e=>{br(e),yr(e),En()},"<A-a><A-1>":e=>{br(e),yr(e),Tn(1)},"<A-a><A-t>":e=>{br(e),yr(e),Pn()},"<A-a><A-S>":e=>{scrapbox.Layout==="page"&&(br(e),yr(e),Ln(scrapbox.Project.name,scrapbox.Page.title))}};var Te=e=>e.preventDefault(),Pe=e=>e.stopPropagation(),vr=(e,t)=>{let r=Hl()?.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&&(Te(e),Pe(e),n.click())},Iw={"-":e=>vr(e,""),"]":e=>vr(e,""),c:e=>vr(e,"Copy plain"),$:e=>vr(e,""),"{":e=>vr(e,/{{c\d+}}/),"}":e=>vr(e,"reset cloze"),n:e=>vr(e,"make note")},jw={"<C-]>":e=>{let{position:{line:t,char:r}}=me(),n=hn(t,r)?.closest("a.page-link")??nr(t)?.querySelector?.("a.page-link");n instanceof HTMLAnchorElement&&(Te(e),Pe(e),n.click())},"<C-o>":e=>{Te(e),Pe(e),history.back()}},Nw={"<C-home>":e=>{Te(e),Pe(e),Vl()},"<C-end>":e=>{Te(e),Pe(e),Ql()}},Uu=[gr,hr,xr],$w={"<C-X>":e=>{let t=window.prompt("Create a new page at",scrapbox.Project.name);!t||(Te(e),Pe(e),Lt({project:t,mode:"self",hooks:Uu})?.())},"<C-D>":e=>{let t=window.prompt("Create a new page at",scrapbox.Project.name);!t||(Te(e),Pe(e),Lt({project:t,mode:"noopen",hooks:Uu})?.())},"<C-h>":e=>{Te(e),Pe(e),xo()},"<C-j>":e=>{Te(e),Pe(e),yo()},"<C-k>":e=>{Te(e),Pe(e),bo()},"<C-l>":e=>{Te(e),Pe(e),ho()},"<A-h>":e=>{Te(e),Pe(e),wo()},"<A-j>":e=>{Te(e),Pe(e),Eo()},"<A-k>":e=>{Te(e),Pe(e),ko()},"<A-l>":e=>{Te(e),Pe(e),vo()}};scrapbox.TimeStamp.removeAllFormats();var Ow={"<A-t><A-t>":e=>{Te(e),Pe(e),Ee(Q(new Date,"#yyyy-MM-dd HH:mm:ss "))},"<A-t><A-j>":e=>{Te(e),Pe(e),Ee(Q(new Date,"yyyy-MM-dd HH:mm:ss "))},"<A-t><A-k>":e=>{Te(e),Pe(e),Ee(Q(new Date,"HH:mm:ss "))},"<A-t><A-l>":e=>{Te(e),Pe(e),Ee(Q(new Date,"yyyy-MM-dd"))}},Fu={...Iw,...jw,...Nw,...$w,...Ow,...Au};var{render:Aw}=le(),Ji,Uw=e=>{Ji!==void 0&&cancelAnimationFrame(Ji),Ji=requestAnimationFrame(()=>Aw({type:"text",text:e}))},Zi=new Ii({addEventListener:op,removeEventListener:Mi},{onSequenceUpdate:Uw}),Bu=Zi.bind({...Fu,...scrapbox.Project.name==="takker-memex"?Qi:{}});Bu.size>0&&alert([...Bu.entries()].map(([e,t])=>${e}:
${t.map(r=>- ${r}).join(`
)}).join(`
));var Hu=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 Dr([]);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 zu;(function(e){})(zu||(zu={}));var Fw="0.13.3",Wu,qu=async(e=Fw)=>{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,Wu??=new Promise((n,o)=>{r.onload=()=>n(window.katex),r.onerror=s=>o(s),document.head.append(r)}),Wu};var Rn=(e,t={})=>{let r=ie(null),[n,o]=F(e),[s,i]=F("");return B(()=>{(async()=>{let{render:a}=await qu();if(!!r.current)try{a(n,r.current,t),i("")}catch(c){if(c instanceof Error&&c.name==="ParseError")i(c.message.slice("KaTeX parse error: ".length));else throw c}})()},[n]),{ref:r,error:s,setFormula:o}};var Gu=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 Bw="0.6.5",Ku=ScrapBubble-${Bw},Xu=await globalThis.caches.open(Ku);(async()=>{for(let e of await globalThis.caches.keys())e.startsWith("ScrapBubble-")&&e!==Ku&&(await globalThis.caches.delete(e),console.log(ScrapBubble deleted old cache :"${e}"))})();var Yu=Gu(3);async function*zo(e,t){let r=((t?.saveFailedResponse?Xu.match(e):void 0)??xn(e,t)).then(i=>["cache",i]);{let i=ce(1e3).then(()=>"timeout"),a=await Promise.race([r,i]);if(a!=="timeout"){a[1]&&(yield["cache",a[1]]);let c=await Yu(()=>fetch(e));!c.ok&&t?.saveFailedResponse&&await Xu.put(e,c.clone()),yield["network",c]}}let n=Yu(()=>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 Vu=(e,t)=>new Date(e.headers.get("Date")??0).getTime()/1e3+t<new Date().getTime()/1e3;var Wo=()=>{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,Qu=e=>{Ve=typeof e=="boolean"?e:new Set(e)},Kt=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 ea=Wo(),qo=new Map,Hw=Kt("ScrapBubble:useProject.ts"),Ju=e=>{let[t,r]=F();return B(()=>{ea.on(e,r);let n=qo.get(e);return n?r(n.loading?void 0:n.value):(qo.set(e,{loading:!0}),r(void 0),(async()=>{try{let o=dt.toRequest(e);for await(let[,s]of zo(o)){let i=await dt.fromResponse(s);qo.set(e,{loading:!1,value:i}),ea.dispatch(e,i);break}}catch(o){Hw.error(o),qo.delete(e)}})()),()=>ea.off(e,r)},[e]),t};var zw=["default-light","default-dark","default-minimal"],Ww=["paper-light","paper-dark-dark","paper-dark"],Zu=["blue","purple","green","orange","red"],qw=["hacker1","hacker2"],ed=["winter","spring","summer","automn"],td=["tropical"],rd=["kyoto","newyork","paris"],nd=["mred","lgreen"],D6=["default-light","default-minimal","paper-light",...Zu,...ed,...td,...rd,...nd];var Gw=[...zw,...Ww,...Zu,...qw,...ed,...td,...rd,...nd];function od(e){return Gw.includes(e)}var sd="default-light",wr=e=>{let t=Ju(e);return O(()=>{if(!t||!t.ok)return sd;let r=t.value.theme;return od(r)?r:sd},[t])};var Ar=(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 Ur=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 id=({project:e,title:t,descriptions:r,thumbnail:n,linkTo:o,bubble:s,delay:i,prefetch:a})=>{let c=O(()=>n?[]:rt(r.join( ),{hasTitle:!1}),[n,r]),l=wr(e),u=_(async({currentTarget:m})=>{a(e,t),!!await Ar(m,i)&&s({project:e,title:t,linkTo:o,type:"link",position:Ur(m)})},[e,t,i,o?.project,o?.titleLc]),p=O(()=>o?()=>{jr({type:"page",from:{project:o.project??e,title:o.titleLc},to:{project:e,title:t}})}:()=>{},[e,t,o?.project,o?.titleLc]);return f("a",{className:"related-page-card page-link",type:"link","data-theme":l,href:/${e}/${Y(t)},rel:e===scrapbox.Project.name?"route":"noopner noreferrer",target:e!==scrapbox.Project.name?"_blank":"",onPointerEnter:u,onClick:p},f("div",{class:"hover"}),f("div",{class:"content"},f("div",{class:"header"},f("div",{class:"title"},t)),n?f("div",{class:"thumbnail"},f("img",{src:n})):f("div",{class:"description"},c.flatMap((m,d)=>m.type==="line"?[f("p",{key:d},m.nodes.map(g=>f(ad,{node:g,project:e})))]:[]))))},ad=({node:e,project:t})=>{switch(e.type){case"code":return f("code",null,e.text);case"formula":return f(Kw,{node:e});case"commandLine":return f("code",null,e.symbol," $",e.text);case"helpfeel":return f("code",null,"? ",e.text);case"quote":case"strong":case"decoration":return f(G,null,e.nodes.map(r=>f(ad,{node:r,project:t})));case"icon":case"strongIcon":return f(Xw,{node:e,project:t});case"hashTag":return f(Yw,{node:e});case"link":return f(Vw,{node:e});case"plain":case"blank":return f(G,null,e.text);default:return f(G,null)}},Kw=({node:{formula:e}})=>{let{ref:t,error:r,setFormula:n}=Rn("");return n(e),f("span",{className:formula ${r?" error":""}},r?f("code",null,e):f("span",{className:"katex-display",ref:t}))},Xw=({node:{pathType:e,path:t},project:r})=>{let[n,o]=e==="relative"?[r,t]:t.match(/\/([\w\-]+)\/(.+)$/)?.slice?.(1)??[r,t];return f("img",{class:"icon",src:/api/pages/${n}/${Y(o)}/icon})},Yw=({node:{href:e}})=>f("span",{class:"page-link"},"#",e),Vw=({node:{pathType:e,href:t,content:r}})=>e!=="absolute"?f("span",{class:"page-link"},t):f("span",{class:"link"},r||t);var oe=(e,t)=>/${e}/${K(t)},Go=e=>{let t=e.match("/([^/]+)/(.+)");if(!t)throw SyntaxError("${e}" cannnot match "/(^/+)/(.+)");return{project:t[1],titleLc:t[2]}};var cd=Symbol.for("immer-nothing"),ld=Symbol.for("immer-draftable"),te=Symbol.for("immer-state");function at(e,...t){throw new Error(Immer minified error nr: ${e}. Full error at: https://bit.ly/3cXEKWf)}var Fr=Object.getPrototypeOf;function Br(e){return!!e&&!!e[te]}function Ct(e){return e?pd(e)||Array.isArray(e)||!!e[ld]||!!e.constructor?.[ld]||Xo(e)||Yo(e):!1}var Qw=Object.prototype.constructor.toString();function pd(e){if(!e||typeof e!="object")return!1;let t=Fr(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 Cn(e,t){Ko(e)===0?Reflect.ownKeys(e).forEach(r=>{t(r,e[r],e)}):e.forEach((r,n)=>t(n,r,e))}function Ko(e){let t=e[te];return t?t.type_:Array.isArray(e)?1:Xo(e)?2:Yo(e)?3:0}function ta(e,t){return Ko(e)===2?e.has(t):Object.prototype.hasOwnProperty.call(e,t)}function ud(e,t,r){let n=Ko(e);n===2?e.set(t,r):n===3?e.add(r):e[t]=r}function Jw(e,t){return e===t?e!==0||1/e==1/t:e!==e&&t!==t}function Xo(e){return e instanceof Map}function Yo(e){return e instanceof Set}function De(e){return e.copy_||e.base_}function ra(e,t){if(Xo(e))return new Map(e);if(Yo(e))return new Set(e);if(Array.isArray(e))return Array.prototype.slice.call(e);let r=pd(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(Fr(e),n)}else{let n=Fr(e);if(n!==null&&r)return{...e};let o=Object.create(n);return Object.assign(o,e)}}function na(e,t=!1){return Vo(e)||Br(e)||!Ct(e)||(Ko(e)>1&&(e.set=e.add=e.clear=e.delete=Zw),Object.freeze(e),t&&Object.entries(e).forEach(([r,n])=>na(n,!0))),e}function Zw(){at(2)}function Vo(e){return Object.isFrozen(e)}var oa={};function kr(e){let t=oa[e];return t||at(0,e),t}function ek(e,t){oa[e]||(oa[e]=t)}var Mn;function Qo(){return Mn}function tk(e,t){return{drafts_:[],parent_:e,immer_:t,canAutoFreeze_:!0,unfinalizedDrafts_:0}}function dd(e,t){t&&(kr("Patches"),e.patches_=[],e.inversePatches_=[],e.patchListener_=t)}function sa(e){ia(e),e.drafts_.forEach(rk),e.drafts_=null}function ia(e){e===Mn&&(Mn=e.parent_)}function md(e){return Mn=tk(Mn,e)}function rk(e){let t=e[te];t.type_===0||t.type_===1?t.revoke_():t.revoked_=!0}function fd(e,t){t.unfinalizedDrafts_=t.drafts_.length;let r=t.drafts_[0];return e!==void 0&&e!==r?(r[te].modified_&&(sa(t),at(4)),Ct(e)&&(e=Jo(t,e),t.parent_||Zo(t,e)),t.patches_&&kr("Patches").generateReplacementPatches_(r[te].base_,e,t.patches_,t.inversePatches_)):e=Jo(t,r,[]),sa(t),t.patches_&&t.patchListener_(t.patches_,t.inversePatches_),e!==cd?e:void 0}function Jo(e,t,r){if(Vo(t))return t;let n=t[te];if(!n)return Cn(t,(o,s)=>gd(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),Cn(s,(a,c)=>gd(e,n,o,a,c,r,i)),Zo(e,o,!1),r&&e.patches_&&kr("Patches").generatePatches_(n,r,e.patches_,e.inversePatches_)}return n.copy_}function gd(e,t,r,n,o,s,i){if(Br(o)){let a=s&&t&&t.type_!==3&&!ta(t.assigned_,n)?s.concat(n):void 0,c=Jo(e,o,a);if(ud(r,n,c),Br(c))e.canAutoFreeze_=!1;else return}else i&&r.add(o);if(Ct(o)&&!Vo(o)){if(!e.immer_.autoFreeze_&&e.unfinalizedDrafts_<1)return;Jo(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_&&na(t,r)}function nk(e,t){let r=Array.isArray(e),n={type_:r?1:0,scope_:t?t.scope_:Qo(),modified_:!1,finalized_:!1,assigned_:{},parent_:t,base_:e,draft_:null,copy_:null,revoke_:null,isManual_:!1},o=n,s=aa;r&&(o=[n],s=Dn);let{revoke:i,proxy:a}=Proxy.revocable(o,s);return n.draft_=a,n.revoke_=i,a}var aa={get(e,t){if(t===te)return e;let r=De(e);if(!ta(r,t))return ok(e,r,t);let n=r[t];return e.finalized_||!Ct(n)?n:n===ca(e.base_,t)?(la(e),e.copy_[t]=In(n,e)):n},has(e,t){return t in De(e)},ownKeys(e){return Reflect.ownKeys(De(e))},set(e,t,r){let n=hd(De(e),t);if(n?.set)return n.set.call(e.draft_,r),!0;if(!e.modified_){let o=ca(De(e),t),s=o?.[te];if(s&&s.base_===r)return e.copy_[t]=r,e.assigned_[t]=!1,!0;if(Jw(r,o)&&(r!==void 0||ta(e.base_,t)))return!0;la(e),Mt(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 ca(e.base_,t)!==void 0||t in e.base_?(e.assigned_[t]=!1,la(e),Mt(e)):delete e.assigned_[t],e.copy_&&delete e.copy_[t],!0},getOwnPropertyDescriptor(e,t){let r=De(e),n=Reflect.getOwnPropertyDescriptor(r,t);return n&&{writable:!0,configurable:e.type_!==1||t!=="length",enumerable:n.enumerable,value:r[t]}},defineProperty(){at(11)},getPrototypeOf(e){return Fr(e.base_)},setPrototypeOf(){at(12)}},Dn={};Cn(aa,(e,t)=>{Dn[e]=function(){return arguments[0]=arguments[0][0],t.apply(this,arguments)}});Dn.deleteProperty=function(e,t){return Dn.set.call(this,e,t,void 0)};Dn.set=function(e,t,r){return aa.set.call(this,e[0],t,r,e[0])};function ca(e,t){let r=e[te];return(r?De(r):e)[t]}function ok(e,t,r){let n=hd(t,r);return n?"value"in n?n.value:n.get?.call(e.draft_):void 0}function hd(e,t){if(!(t in e))return;let r=Fr(e);for(;r;){let n=Object.getOwnPropertyDescriptor(r,t);if(n)return n;r=Fr(r)}}function Mt(e){e.modified_||(e.modified_=!0,e.parent_&&Mt(e.parent_))}function la(e){e.copy_||(e.copy_=ra(e.base_,e.scope_.immer_.useStrictShallowCopy_))}var sk=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"&&at(6),n!==void 0&&typeof n!="function"&&at(7);let o;if(Ct(t)){let s=md(this),i=In(t,void 0),a=!0;try{o=r(i),a=!1}finally{a?sa(s):ia(s)}return dd(s,n),fd(o,s)}else if(!t||typeof t!="object"){if(o=r(t),o===void 0&&(o=t),o===cd&&(o=void 0),this.autoFreeze_&&na(o,!0),n){let s=[],i=[];kr("Patches").generateReplacementPatches_(t,o,s,i),n(s,i)}return o}else at(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)||at(8),Br(e)&&(e=ik(e));let t=md(this),r=In(e,void 0);return r[te].isManual_=!0,ia(t),r}finishDraft(e,t){let r=e&&e[te];(!r||!r.isManual_)&&at(9);let{scope_:n}=r;return dd(n,t),fd(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=kr("Patches").applyPatches_;return Br(e)?n(e,t):this.produce(e,o=>n(o,t))}};function In(e,t){let r=Xo(e)?kr("MapSet").proxyMap_(e,t):Yo(e)?kr("MapSet").proxySet_(e,t):nk(e,t);return(t?t.scope_:Qo()).drafts_.push(r),r}function ik(e){return Br(e)||at(10,e),xd(e)}function xd(e){if(!Ct(e)||Vo(e))return e;let t=e[te],r;if(t){if(!t.modified_)return t.base_;t.finalized_=!0,r=ra(e,t.scope_.immer_.useStrictShallowCopy_)}else r=ra(e,!0);return Cn(r,(n,o)=>{ud(r,n,xd(o))}),t&&(t.finalized_=!1),r}function bd(){class e extends Map{constructor(c,l){super(),this[te]={type_:2,parent_:l,scope_:l?l.scope_:Qo(),modified_:!1,finalized_:!1,copy_:void 0,assigned_:void 0,base_:c,draft_:this,isManual_:!1,revoked_:!1}}get size(){return De(this[te]).size}has(c){return De(this[te]).has(c)}set(c,l){let u=this[te];return i(u),(!De(u).has(c)||De(u).get(c)!==l)&&(r(u),Mt(u),u.assigned_.set(c,!0),u.copy_.set(c,l),u.assigned_.set(c,!0)),this}delete(c){if(!this.has(c))return!1;let l=this[te];return i(l),r(l),Mt(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),De(c).size&&(r(c),Mt(c),c.assigned_=new Map,Cn(c.base_,l=>{c.assigned_.set(l,!1)}),c.copy_.clear())}forEach(c,l){let u=this[te];De(u).forEach((p,m,d)=>{c.call(l,this.get(m),m,this)})}get(c){let l=this[te];i(l);let u=De(l).get(c);if(l.finalized_||!Ct(u)||u!==l.base_.get(c))return u;let p=In(u,l);return r(l),l.copy_.set(c,p),p}keys(){return De(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 u=this.get(l.value);return{done:!1,value:[l.value,u]}}}}[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_:Qo(),modified_:!1,finalized_:!1,copy_:void 0,base_:c,draft_:this,drafts_:new Map,revoked_:!1,isManual_:!1}}get size(){return De(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),Mt(l),l.copy_.add(c)),this}delete(c){if(!this.has(c))return!1;let l=this[te];return i(l),s(l),Mt(l),l.copy_.delete(c)||(l.drafts_.has(c)?l.copy_.delete(l.drafts_.get(c)):!1)}clear(){let c=this[te];i(c),De(c).size&&(s(c),Mt(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 u=this.values(),p=u.next();for(;!p.done;)c.call(l,p.value,p.value,this),p=u.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=In(c,a);a.drafts_.set(c,l),a.copy_.add(l)}else a.copy_.add(c)}))}function i(a){a.revoked_&&at(3,JSON.stringify(De(a)))}ek("MapSet",{proxyMap_:t,proxySet_:o})}var Qe=new sk,es=Qe.produce,J6=Qe.produceWithPatches.bind(Qe),Z6=Qe.setAutoFreeze.bind(Qe),eH=Qe.setUseStrictShallowCopy.bind(Qe),tH=Qe.applyPatches.bind(Qe),rH=Qe.createDraft.bind(Qe),nH=Qe.finishDraft.bind(Qe);bd();var yd=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},vd=(e,t)=>es(e,r=>{if(!r)return t;if(r.updated<t.updated){let{lines:n,linked:o,projectLinked:s,...i}=t;Object.assign(r,i),pa(t)||(r.lines=n),o&&(r.linked??=o),s&&(r.projectLinked??=s);return}pa(r)&&!pa(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)}),pa=e=>e.lines[0].id==="dummy";var wd=(e,t)=>{let r=new Map,n=K(t.title);for(let c of t.links){let l=ak(e,c);l.linked=[n],r.set(oe(e,c),l)}let o=oe(e,n),s=t.projectLinks.map(c=>{let l=Go(c);return oe(l.project,l.titleLc)}),i={...ts(e,t),linked:[],projectLinked:[]};r.set(o,i);let a=t.links.map(c=>K(c));for(let c of t.relatedPages.links1hop){c.linksLc.includes(n)&&i.linked.push(c.titleLc);for(let m of c.linksLc.filter(d=>a.includes(d))){let d=oe(e,m),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=oe(e,c.titleLc),u=ts(e,c),p=r.get(l)?.linked;p&&(u.linked=p),r.set(l,u)}for(let c of t.relatedPages.projectLinks1hop){let l=oe(c.projectName,c.titleLc);s.includes(l)||i.projectLinked.push(l);let u=ts(c.projectName,c),p=r.get(l)?.projectLinked;p&&(u.projectLinked=p),r.set(l,u)}i.isLinkedCorrect=!0;for(let c of t.relatedPages.links2hop){for(let m of c.linksLc){let d=oe(e,m),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=oe(e,c.titleLc),u=ts(e,c),p=r.get(l)?.linked;p&&(u.linked=p),r.set(l,u)}return r},ts=(e,t)=>({project:e,titleLc:"titleLc"in t?t.titleLc:K(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}),ak=(e,t)=>({project:e,titleLc:K(t),exists:!1,descriptions:[],image:null,lines:[{text:t,id:"dummy",userId:"dummy",updated:0,created:0}],updated:0,isLinkedCorrect:!1});var rs=Kt("ScrapBubble:bubble.ts"),ua=new Map,ns=new Set,da=Wo();function*kd(e){for(let t of e)yield ua.get(t)}var Ed=(e,t)=>da.on(e,t),Td=(e,t)=>da.off(e,t),Pd=async(e,t,r,n)=>{let o=[];for(let s of[...t].reverse()){let i=oe(s,e);ns.has(i)||o.push(ck(s,e,r,n))}await Promise.all(o)},Sd=0,ck=async(e,t,r,n)=>{let o=oe(e,t);if(ns.has(o))return;ns.add(o);let s=Sd++,i=${s} Check update ${o};rs.time(i);try{let a=Ge.toRequest(e,t,{followRename:!0,projects:[...r]});for await(let[c,l]of zo(a,{ignoreSearch:!0,saveFailedResponse:!0})){rs.debug(${s}${c} ${o});let u=await Ge.fromResponse(l);if(u.ok){let p=wd(e,u.value);for(let[m,d]of p){let g=ua.get(m),h=vd(g,d);!h||g!==h&&(ua.set(m,h),da.dispatch(m,d))}}if(n?.ignoreFetch===!0||c==="cache"&&!Vu(l,n?.maxAge??60))break}}catch(a){rs.error(a)}finally{ns.delete(o),rs.timeEnd(i),Sd--}};var Ld=Kt("ScrapBubble:useBubbleData.ts"),Hr=e=>{let[t,r]=F([]);return rr(()=>{let n=()=>{r(()=>{let i=[...kd(e)].flatMap(a=>a?[a]:[]);return Ld.debug(Required: ${e.length} pages, ${i.length} found,i),i})};n();let o,s=()=>{clearTimeout(o),o=setTimeout(()=>{Ld.debug(Update ${e.length} pages),n()},10)};return e.forEach(i=>Ed(i,s)),()=>e.forEach(i=>Td(i,s))},e),t};var _d=({source:e,linked:t,externalLinked:r,projectsForSort:n,...o})=>{let s=O(()=>[...t.keys(),...r.keys()],[t,r]),i=Hr(s),a=O(()=>[...n],[n]),c=O(()=>{let u=(p,m)=>{let d=a.indexOf(p.project),g=a.indexOf(m.project);return d===g?m.updated-p.updated:d<0?1:g<0?-1:d-g};return[...i].sort(u)},[i,a]),l=O(()=>({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 f("ul",{className:"card-bubble",style:l,onClick:o.onClick},c.map(({project:u,titleLc:p,lines:[{text:m}],descriptions:d,image:g})=>{let h=oe(u,p),x=t.get(h)??r.get(h);return f("li",{key:h},f(id,{project:u,title:m,linkTo:x,descriptions:d,thumbnail:g??"",...o}))}))};var zr=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 ma=(e,t)=>t.some(r=>{let n=!e.project;switch(r.type){case"hashTag":return n&&K(r.href)===e.titleLc;case"link":{if(r.pathType=="absolute"||r.pathType==="relative"!==n)return!1;let{project:o,title:s=""}=zr({pathType:r.pathType,href:r.href});return n?!o&&K(s)===e.titleLc:o===e.project&&K(s)===e.titleLc}case"quote":case"strong":case"decoration":return ma(e,r.nodes)}});var Xt=xi({title:"",project:"",whiteList:new Set,bubble:()=>{},hide:()=>{},delay:0,prefetch:()=>{}}),Rd=({lines:e,project:t,title:r,whiteList:n,noIndent:o,hash:s,linkTo:i,...a})=>{let c=O(()=>e.flatMap(d=>typeof d=="string"?[]:[d.id]),[e]),l=O(()=>{let d=0;return rt(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]),u=O(()=>{if(s&&c.includes(s))return s;if(!!i)return l.find(d=>d.type!=="line"?!1:ma(i,d.nodes))?.id},[l,c,s,i?.project,i?.titleLc]),p=ie(null);B(()=>{if(!u)return;let d=p.current?.querySelector(data-id="${u}"),g=globalThis.scrollY;d?.scrollIntoView?.({block:"center"}),globalThis.scroll(0,g)},[u]);let m=wr(t);return f("div",{className:"lines","data-theme":m,ref:p},f(Xt.Provider,{value:{project:t,title:r,whiteList:n,...a}},l.map(d=>{switch(d.type){case"title":return f(G,null,f(Wr,{key:d.id,index:d.id,indent:0,noIndent:o,permalink:d.id===u},f("a",{className:"page-link",type:"link",href:/${t}/${Y(d.text)},rel:t===scrapbox.Project.name?"route":"noopener noreferrer",target:t===scrapbox.Project.name?"":"_blank"},d.text)),f("hr",null));case"codeBlock":return f(lk,{key:d.ids[0],block:d,noIndent:o,ids:d.ids,scrollId:u});case"table":return f(pk,{key:d.ids[0],block:d,noIndent:o,ids:d.ids,scrollId:u});case"line":return f(Wr,{key:d.id,index:d.id,indent:d.indent,noIndent:o,permalink:d.id===u},d.nodes.length>0?d.nodes.map(g=>f(qr,{node:g})):f("br",null))}})))},Wr=({index:e,indent:t,noIndent:r,children:n,permalink:o})=>f("div",{className:line${o?" permalink":""},"data-id":e,"data-indent":t,style:{"margin-left":r?"":${1*t}em}},n),lk=({block:{fileName:e,content:t,indent:r},ids:n,scrollId:o})=>{let{project:s,title:i}=Ft(Xt),[a,c]=F(""),l=_(async u=>{u.preventDefault(),u.stopPropagation();try{await navigator.clipboard.writeText(t),c("Copied"),await ce(1e3),c("")}catch(p){alert(Failed to copy the code block Error:${p.message})}},[t]);return f(G,null,f(Wr,{index:n[0],indent:r,permalink:n[0]===o},f("span",{className:"code-block"},f("span",{className:"code-block-start"},f("a",{href:/api/code/${s}/${Y(i)}/${e},target:"_blank"},e)),f("span",{className:"copy",title:"Copy",onClick:l},a))),f(G,null,t.split(
).map((u,p)=>f(Wr,{index:n[p+1],indent:r,permalink:n[p+1]===o},f("code",{className:"code-block"},u)))))},pk=({block:{fileName:e,cells:t,indent:r},ids:n,scrollId:o})=>{let{project:s,title:i}=Ft(Xt);return f(G,null,f(Wr,{index:n[0],indent:r,permalink:n[0]===o},f("span",{className:"table-block"},f("span",{className:"table-block-start"},f("a",{href:/api/table/${s}/${Y(i)}/${e}.csv,target:"_blank"},e)))),f(G,null,t.map((a,c)=>f(Wr,{index:n[c+1],indent:r,permalink:n[c+1]===o},f("span",{className:"table-block table-block-row"},a.map((l,u)=>f("span",{className:cell col-${u}},l.map(p=>f(qr,{node:p})))))))))},qr=({node:e})=>{switch(e.type){case"code":return f("code",{className:"code"},e.text);case"formula":return f(uk,{node:e});case"commandLine":return f(mk,{node:e});case"helpfeel":return f("code",{className:"helpfeel"},f("span",{className:"prefix"},"?")," ",f("span",{className:"entry"},e.text));case"quote":return f("blockquote",{className:"quote"},e.nodes.map(t=>f(qr,{node:t})));case"strong":return f("strong",null,e.nodes.map(t=>f(qr,{node:t})));case"decoration":return f(dk,{node:e});case"plain":case"blank":return f(G,null,e.text);case"hashTag":return f(hk,{node:e});case"link":return f(xk,{node:e});case"googleMap":return f(fk,{node:e});case"icon":return f(Cd,{node:e});case"strongIcon":return f(Cd,{node:e,strong:!0});case"image":return f(gk,{node:e});case"strongImage":return f("img",{className:"image strong-image",src:e.src});case"numberList":return f(G,null,${e.number}. ,e.nodes.map(t=>f(qr,{node:t})))}},uk=({node:{formula:e}})=>{let{ref:t,error:r,setFormula:n}=Rn("");return n(e),f("span",{className:formula ${r?" error":""}},r?f("code",null,e):f("span",{className:"katex-display",ref:t}))},dk=({node:{decos:e,nodes:t}})=>f("span",{className:e.map(r=>deco-${r}).join(" ")},t.map(r=>f(qr,{node:r}))),mk=({node:e})=>{let[t,r]=F(""),n=_(async o=>{o.preventDefault(),o.stopPropagation();try{await navigator.clipboard.writeText(e.text),r("Copied"),await ce(1e3),r("")}catch(s){alert(Failed to copy the code block
Error:${s.message})}},[e.text]);return f(G,null,f("code",{className:"cli"},f("span",{className:"prefix"},e.symbol)," ",f("span",{className:"command"},e.text)),f("span",{className:"tool-buttons"},f("span",{title:"Copy",className:"copy",onClick:n},t)))},fk=({node:{place:e,latitude:t,longitude:r,zoom:n}})=>f("span",{className:"pointing-device-map"},f("a",{href:https://www.google.com/maps/search/${e}/@${t},${r},${n}z,rel:"noopner noreferrer",target:"_blank"},f("img",{className:"google-map",src:/api/google-map/static-map?center=${t}%2C${r}&markers=${e}&zoom=${n}&_csrf=${globalThis._csrf}}))),Cd=({node:{pathType:e,path:t},strong:r})=>{let{project:n}=Ft(Xt),[o,s]=e==="relative"?[n,t]:t.match(/\/([\w\-]+)\/(.+)$/)?.slice?.(1)??[n,t],i=Y(s);return f("a",{href:/${o}/${i},rel:o===scrapbox.Project.name?"route":"noopener noreferrer",target:o===scrapbox.Project.name?"":"_blank"},f("img",{className:r?"icon strong-icon":"icon",alt:s,src:/api/pages/${o}/${i}/icon},s))},gk=({node:{link:e,src:t}})=>{let r=e||(/https:\/\/gyazo\.com\/[^\/]+\/thumb\/1000/.test(t)?t.slice(0,-"/thumb/1000".length):t);return f("a",{className:e?"link":"",href:r,rel:"noopner noreferrer",target:"_blank"},f("img",{className:"image",src:t}))},hk=({node:{href:e}})=>{let{project:t}=Ft(Xt),r=Md(t,e),n=Dd(t,e,"hashtag");return f("a",{href:/${t}/${Y(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)},xk=({node:{pathType:e,...t}})=>{switch(e){case"relative":case"root":return f(bk,{pathType:e,href:t.href});case"absolute":{let r=Ap({pathType:e,...t});switch(r.type){case"youtube":return f(yk,{...r});case"vimeo":return f(vk,{...r});case"spotify":return f(wk,{...r});case"anchor-fm":return f(kk,{...r});case"audio":return f(Ek,{...r});case"video":return f(Pk,{...r});case"absoluteLink":return f("a",{className:"link",href:r.href,rel:"noopener noreferrer",target:"_blank"},r.content||r.href)}}}},bk=({pathType:e,href:t})=>{let{project:r}=Ft(Xt),{project:n=r,title:o,hash:s=""}=zr({pathType:e,href:t}),i=Dd(n,o,"link",s),a=Md(n,o??"");return f("a",{className:page-link${o!==void 0&&a?" empty-page-link":""},type:"link",href:/${n}${o===void 0?"":/${Y(o)}${s===""?"":#${s}}},rel:n===scrapbox.Project.name?"route":"noopener noreferrer",target:n===scrapbox.Project.name?"":"_blank",onPointerEnter:i},t)},yk=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 f("div",{className:"iframe-video-player"},f("iframe",{src:t,allowFullScreen:!0,type:"text/html"}))},vk=({videoId:e})=>f("div",{className:"iframe-video-player"},f("iframe",{src:https://player.vimeo.com/video/${e},allowFullScreen:!0,type:"text/html"})),wk=e=>f("div",{className:"iframe-video-player"},f("iframe",{className:spotify type-${e.pathType},src:https://open.spotify.com/embed/${e.pathType}/${e.videoId},allowFullScreen:!0,type:"text/html",scrolling:"no"})),kk=e=>f("div",{className:"iframe-video-player"},f("iframe",{className:"anchor-fm",src:e.href.replace("/episodes/","/embed/episodes/"),allowFullScreen:!0,type:"text/html",scrolling:"no"})),Ek=e=>e.content===""?f("audio",{className:"audio-player",preload:"none",controls:!0,src:e.href}):f(Tk,{...e}),Tk=({href:e,content:t})=>{let r=ie(null),n=_(()=>{r.current?.paused?(r.current.currentTime=0,r.current.play()):r.current?.pause?.()},[]);return f("span",{className:"audio-link"},f("a",{href:e,rel:"noopener noreferrer",target:"_blank"},t),f("span",{className:"play",onClick:n},"♬"),f("audio",{preload:"none",src:e,ref:r}))},Pk=({href:e})=>f("div",{className:"video-player"},f("video",{class:"video",style:{display:"inline-block"},controls:!0,loop:!0,src:e})),Md=(e,t)=>{let{whiteList:r}=Ft(Xt),n=O(()=>(r.has(e)?[...r]:[e,...r]).map(s=>oe(s,t)),[r,e]),o=Hr(n);return O(()=>yd(o),o)},Dd=(e,t,r,n)=>{let{delay:o,bubble:s,prefetch:i}=Ft(Xt);return _(async({currentTarget:a})=>{!t||(i(e,t),!!await Ar(a,o)&&s({project:e,title:t,hash:n,type:r,position:Ur(a)}))},[e,t,n,r,o,i,s])};var Id=({pages:e,onClick:t,source:r,whiteList:n,...o})=>{let[s,i]=F(oe(e[0].project,e[0].titleLc)),a=O(()=>({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 f("div",{className:"text-bubble",style:a,onClick:t},e.length>1&&f("div",{role:"tablist"},e.map(c=>f(Sk,{key:oe(c.project,c.titleLc),project:c.project,titleLc:c.titleLc,selected:s===oe(c.project,c.titleLc),tabSelector:i}))),e.map(c=>f(Lk,{key:oe(c.project,c.titleLc),selected:s===oe(c.project,c.titleLc),...c,title:c.lines[0].text,hash:r.hash,linkTo:r.linkTo,whiteList:n,...o})))},Sk=({project:e,titleLc:t,tabSelector:r,selected:n})=>{let o=_(()=>r(oe(e,t)),[e,t]),s=wr(e);return f("button",{role:"tab","aria-selected":n,"data-theme":s,tabIndex:-1,onClick:o},e)},Lk=({selected:e,...t})=>{let r=wr(t.project);return f("div",{role:"tabpanel","data-theme":r,hidden:!e},f(Rd,{...t}))};var jd=Kt("ScrapBubble:Bubble.tsx"),Nd=({source:e,parentTitles:t,whiteList:r,...n})=>{let o=O(()=>r.has(e.project)?new Set([e.project,...r]):new Set([e.project]),[r,e.project]),[s,i,a]=Rk(e,o,r,t);return f(G,null,_k(a)&&f(Id,{pages:a,source:e,whiteList:r,onClick:n.hide,...n}),f(_d,{linked:s,externalLinked:i,onClick:n.hide,source:e,projectsForSort:o,...n}))},_k=e=>e.length>0,Rk=(e,t,r,n)=>{let[[o,s,i],a]=F([new Map,new Map,[]]),c=O(()=>{let p=[...t].map(m=>oe(m,e.title));return jd.debug("projects",p),p},[t,e.title]),l=Hr(c),u=O(()=>n.map(p=>K(p)),[n]);return rr(()=>{let p=new Map,m=new Map,d=[];for(let g of l){let h={project:g.project,titleLc:g.titleLc};for(let y of g.projectLinked??[]){let{project:E,titleLc:T}=Go(y);u.includes(T)&&r.has(E)||m.has(y)||m.set(y,h)}if(!r.has(g.project))continue;let x={titleLc:g.titleLc};for(let y of g.linked??[]){if(u.includes(y))continue;let E=oe(g.project,y);p.has(E)||p.set(E,x)}u.includes(g.titleLc)||!g.exists||d.push(g)}a(es(g=>{jd.debug(depth: ${u.length}, bubbled from ${oe(e.project,e.title)}, bubbles,,l,"before",g[0],"internal cards,",p,"external cards",m);for(let h of g[0].keys())p.has(h)||g[0].delete(h);for(let[h,x]of p)g[0].set(h,x);for(let h of g[1].keys())m.has(h)||g[1].delete(h);for(let[h,x]of m)g[1].set(h,x);g[2]=d}))},[l,r,u]),[o,s,i]};var $d=(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 Od=e=>{let t=O(()=>$d(e.style,import.meta.url),[e.style]);return f(G,null,t!==""&&(t instanceof URL?f("link",{rel:"stylesheet",href:t.href}):f("style",null,t)))};var Ad=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 Ud=()=>{let[e,t]=F([]),r=_((s,i)=>t(a=>i?[...a.slice(0,s),i]:[...a.slice(0,s)]),[]),[n,o]=F([{bubble:s=>r(0,s),hide:()=>r(0)}]);return B(()=>{o(([s,...i])=>[s,...e.map((a,c)=>a===i.at(c)?.source?i.at(c):{source:a,parentTitles:[scrapbox.Page.title??"",...e.slice(0,c).map(l=>l.title)],bubble:l=>r(c+1,l),hide:()=>r(c+1)})])},[e]),n};var fa=(e,t,r,n,o)=>{B(()=>(e.addEventListener(t,r,n),()=>e.removeEventListener(t,r,n)),[e,t,n,...o??[]])};var Fd=e=>e instanceof HTMLSpanElement&&e.matches(".line-title .text"),os=e=>e instanceof HTMLAnchorElement&&e.classList.contains("page-link");var ga="scrap-bubble",Bd=({delay:e,whiteList:t,watchList:r,style:n})=>{let[{bubble:o,hide:s},...i]=Ud(),a=_((c,l)=>Pd(l,t.has(c)?t:new Set([c]),r),[t,r]);return fa(document,"pointerenter",async c=>{let l=c.target;if(!os(l)&&!Fd(l))return;let{project:u=scrapbox.Project.name,title:p,hash:m=""}=os(l)?zr({pathType:"root",href:${new URL(l.href).pathname}${new URL(l.href).hash}}):{project:scrapbox.Project.name,title:scrapbox.Page.title};if(u==="")return;let d=decodeURIComponent(p??"");a(u,d),!!await Ar(l,e)&&o({project:u,title:d,hash:m,position:Ur(l),type:Ck(l)})},{capture:!0},[e,t,r]),fa(document,"click",c=>{c.target.dataset.userscriptName!==ga&&s()},{capture:!0},[s]),B(()=>(scrapbox.addListener("page:changed",s),()=>scrapbox.removeListener("page:changed",s)),[s]),f(G,null,f("link",{rel:"stylesheet",href:"https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.12.0/katex.min.css"}),f("style",null,Ad),f(Od,{style:n}),i.map(c=>f(Nd,{key:oe(c.source.project,c.source.title),...c,whiteList:t,delay:e,prefetch:a})))},Ck=e=>os(e)?e.type==="link"?"link":"hashtag":"title";var Hd=async e=>{let{delay:t=500,whiteList:r=[],watchList:n=(await Hu()).slice(0,100),style:o="",debug:s=!1}=e??{};Qu(s);let i=document.createElement("div");i.dataset.userscriptName=ga,document.body.append(i);let a=i.attachShadow({mode:"open"});Ce(f(Bd,{delay:t,whiteList:new Set([scrapbox.Project.name,...r]),watchList:new Set(n),style:o}),a)};var Mk=["takker-memex","takker-private","takker","takker-books","villagepump"],jn=[];switch(scrapbox.Project.name){case"hub":case"villagepump":case"verbalizing-community":jn.push("villagepump","hub","verbalizing-community");break;case"programming-notes":case"customize":case"scrapboxlab":jn.push("programming-notes","customize","scrapboxlab");break;case"sta":jn.push("sta-taskmanagement");break;case"sta-taskmanagement":case"taskmanagement":jn.push("sta-taskmanagement","taskmanagement");break}Hd({delay:/mobile/i.test(navigator.userAgent)?300:500,whiteList:[...Mk,...jn],style:@import "/api/code/takker/kakeruの背景を白にするUserCSS/style.css";
@import "/api/code/takker/アイコン記法を画像記法っぽくするUserCSS/style2.css";});var zd=(e,t,r)=>{if(r.length===0)return[];let n=r.map(a=>a.text).join(
),o=rt(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}/${Y(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 ha(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(ft(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(ft(s)),t(n[s])}},r=new xa;return r.write32(0),r.write32(e.id<<1|+!e.isRequest),t(e.value),ya(r.buf,r.len-4,0),r.buf.subarray(0,r.len)}function Wd(e){let t=()=>{switch(r.read8()){case 0:return null;case 1:return!!r.read8();case 2:return r.read32();case 3:return Gr(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[Gr(r.read())]=t();return a}default:throw new Error("Invalid packet")}},r=new xa(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 xa=class{constructor(t=new Uint8Array(1024)){this.buf=t;this.len=0;this.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);ya(this.buf,t,r)}write(t){let r=this._write(4+t.length);ya(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 ba(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}},ft,Gr,qd;if(typeof TextEncoder!="undefined"&&typeof TextDecoder!="undefined"){let e=new TextEncoder,t=new TextDecoder;ft=r=>e.encode(r),Gr=r=>t.decode(r),qd='new TextEncoder().encode("")'}else throw new Error("No UTF-8 codec found");if(!(ft("")instanceof Uint8Array))throw new Error(Invariant violation: "${qd} 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 ba(e,t){return e[t++]|e[t++]<<8|e[t++]<<16|e[t++]<<24}function ya(e,t,r){e[r++]=t,e[r++]=t>>8,e[r++]=t>>16,e[r++]=t>>24}var Nn="0.21.5";var ye=JSON.stringify,Gd="warning",Kd="silent";function Xd(e){if(Ie(e,"target"),e.indexOf(",")>=0)throw new Error(Invalid target: ${e});return e}var ss=()=>null,fe=e=>typeof e=="boolean"?null:"a boolean",H=e=>typeof e=="string"?null:"a string",is=e=>e instanceof RegExp?null:"a RegExp object",Er=e=>typeof e=="number"&&e===(e|0)?null:"an integer",Yd=e=>typeof e=="function"?null:"a function",ge=e=>Array.isArray(e)?null:"an array",ct=e=>typeof e=="object"&&e!==null&&!Array.isArray(e)?null:"an object",Dk=e=>typeof e=="object"&&e!==null?null:"an array or an object",Ik=e=>e instanceof WebAssembly.Module?null:"a WebAssembly.Module",Vd=e=>typeof e=="object"&&!Array.isArray(e)?null:"an object or null",Qd=e=>typeof e=="string"||typeof e=="boolean"?null:"a string or a boolean",jk=e=>typeof e=="string"||typeof e=="object"&&e!==null&&!Array.isArray(e)?null:"a string or an object",Nk=e=>typeof e=="string"||Array.isArray(e)?null:"a string or an array",Jd=e=>typeof e=="string"||e instanceof Uint8Array?null:"a string or a Uint8Array",$k=e=>typeof e=="string"||e instanceof URL?null:"a string or a URL";function v(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(${ye(r)} must be ${s});return o}function ve(e,t,r){for(let n in e)if(!(n in t))throw new Error(Invalid option ${r}: ${ye(n)})}function Zd(e){let t=Object.create(null),r=v(e,t,"wasmModule",Ik),n=v(e,t,"workerURL",$k);return ve(e,t,"in initialize() call"),{wasmModule:r,workerURL:n}}function em(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 ${ye(r)} in mangle cache to map to either a string or false)}}return t}function as(e,t,r,n,o){let s=v(t,r,"color",fe),i=v(t,r,"logLevel",H),a=v(t,r,"logLimit",Er);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 Ie(e,t,r){if(typeof e!="string")throw new Error(Expected value for ${t}${r!==void 0?" "+ye(r):""} to be a string, got ${typeof e} instead);return e}function tm(e,t,r){let n=v(t,r,"legalComments",H),o=v(t,r,"sourceRoot",H),s=v(t,r,"sourcesContent",fe),i=v(t,r,"target",Nk),a=v(t,r,"format",H),c=v(t,r,"globalName",H),l=v(t,r,"mangleProps",is),u=v(t,r,"reserveProps",is),p=v(t,r,"mangleQuoted",fe),m=v(t,r,"minify",fe),d=v(t,r,"minifySyntax",fe),g=v(t,r,"minifyWhitespace",fe),h=v(t,r,"minifyIdentifiers",fe),x=v(t,r,"lineLimit",Er),y=v(t,r,"drop",ge),E=v(t,r,"dropLabels",ge),T=v(t,r,"charset",H),b=v(t,r,"treeShaking",fe),w=v(t,r,"ignoreAnnotations",fe),k=v(t,r,"jsx",H),R=v(t,r,"jsxFactory",H),C=v(t,r,"jsxFragment",H),M=v(t,r,"jsxImportSource",H),D=v(t,r,"jsxDev",fe),S=v(t,r,"jsxSideEffects",fe),P=v(t,r,"define",ct),L=v(t,r,"logOverride",ct),j=v(t,r,"supported",ct),N=v(t,r,"pure",ge),A=v(t,r,"keepNames",fe),I=v(t,r,"platform",H),z=v(t,r,"tsconfigRaw",jk);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(Xd).join(",")}):e.push(--target=${Xd(i)})),a&&e.push(--format=${a}),c&&e.push(--global-name=${c}),I&&e.push(--platform=${I}),z&&e.push(--tsconfig-raw=${typeof z=="string"?z:JSON.stringify(z)}),m&&e.push("--minify"),d&&e.push("--minify-syntax"),g&&e.push("--minify-whitespace"),h&&e.push("--minify-identifiers"),x&&e.push(--line-limit=${x}),T&&e.push(--charset=${T}),b!==void 0&&e.push(--tree-shaking=${b}),w&&e.push("--ignore-annotations"),y)for(let U of y)e.push(--drop:${Ie(U,"drop")});if(E&&e.push(--drop-labels=${Array.from(E).map(U=>Ie(U,"dropLabels")).join(",")}),l&&e.push(--mangle-props=${l.source}),u&&e.push(--reserve-props=${u.source}),p!==void 0&&e.push(--mangle-quoted=${p}),k&&e.push(--jsx=${k}),R&&e.push(--jsx-factory=${R}),C&&e.push(--jsx-fragment=${C}),M&&e.push(--jsx-import-source=${M}),D&&e.push("--jsx-dev"),S&&e.push("--jsx-side-effects"),P)for(let U in P){if(U.indexOf("=")>=0)throw new Error(Invalid define: ${U});e.push(--define:${U}=${Ie(PU,"define",U)})}if(L)for(let U in L){if(U.indexOf("=")>=0)throw new Error(Invalid log override: ${U});e.push(--log-override:${U}=${Ie(LU,"log override",U)})}if(j)for(let U in j){if(U.indexOf("=")>=0)throw new Error(Invalid supported: ${U});let W=j[U];if(typeof W!="boolean")throw new Error(Expected value for supported ${ye(U)} to be a boolean, got ${typeof W} instead);e.push(--supported:${U}=${W})}if(N)for(let U of N)e.push(--pure:${Ie(U,"pure")});A&&e.push("--keep-names")}function Ok(e,t,r,n,o){let s=[],i=[],a=Object.create(null),c=null,l=null;as(s,t,a,r,n),tm(s,t,a);let u=v(t,a,"sourcemap",Qd),p=v(t,a,"bundle",fe),m=v(t,a,"splitting",fe),d=v(t,a,"preserveSymlinks",fe),g=v(t,a,"metafile",fe),h=v(t,a,"outfile",H),x=v(t,a,"outdir",H),y=v(t,a,"outbase",H),E=v(t,a,"tsconfig",H),T=v(t,a,"resolveExtensions",ge),b=v(t,a,"nodePaths",ge),w=v(t,a,"mainFields",ge),k=v(t,a,"conditions",ge),R=v(t,a,"external",ge),C=v(t,a,"packages",H),M=v(t,a,"alias",ct),D=v(t,a,"loader",ct),S=v(t,a,"outExtension",ct),P=v(t,a,"publicPath",H),L=v(t,a,"entryNames",H),j=v(t,a,"chunkNames",H),N=v(t,a,"assetNames",H),A=v(t,a,"inject",ge),I=v(t,a,"banner",ct),z=v(t,a,"footer",ct),U=v(t,a,"entryPoints",Dk),W=v(t,a,"absWorkingDir",H),q=v(t,a,"stdin",ct),J=v(t,a,"write",fe)??o,X=v(t,a,"allowOverwrite",fe),Le=v(t,a,"mangleCache",ct);if(a.plugins=!0,ve(t,a,in ${e}() call),u&&s.push(--sourcemap${u===!0?"":=${u}}),p&&s.push("--bundle"),X&&s.push("--allow-overwrite"),m&&s.push("--splitting"),d&&s.push("--preserve-symlinks"),g&&s.push("--metafile"),h&&s.push(--outfile=${h}),x&&s.push(--outdir=${x}),y&&s.push(--outbase=${y}),E&&s.push(--tsconfig=${E}),C&&s.push(--packages=${C}),T){let $=[];for(let se of T){if(Ie(se,"resolve extension"),se.indexOf(",")>=0)throw new Error(Invalid resolve extension: ${se});$.push(se)}s.push(--resolve-extensions=${$.join(",")})}if(P&&s.push(--public-path=${P}),L&&s.push(--entry-names=${L}),j&&s.push(--chunk-names=${j}),N&&s.push(--asset-names=${N}),w){let $=[];for(let se of w){if(Ie(se,"main field"),se.indexOf(",")>=0)throw new Error(Invalid main field: ${se});$.push(se)}s.push(--main-fields=${$.join(",")})}if(k){let $=[];for(let se of k){if(Ie(se,"condition"),se.indexOf(",")>=0)throw new Error(Invalid condition: ${se});$.push(se)}s.push(--conditions=${$.join(",")})}if(R)for(let $ of R)s.push(--external:${Ie($,"external")});if(M)for(let $ in M){if($.indexOf("=")>=0)throw new Error(Invalid package name in alias: ${$});s.push(--alias:${$}=${Ie(M$,"alias",$)})}if(I)for(let $ in I){if($.indexOf("=")>=0)throw new Error(Invalid banner file type: ${$});s.push(--banner:${$}=${Ie(I$,"banner",$)})}if(z)for(let $ in z){if($.indexOf("=")>=0)throw new Error(Invalid footer file type: ${$});s.push(--footer:${$}=${Ie(z$,"footer",$)})}if(A)for(let $ of A)s.push(--inject:${Ie($,"inject")});if(D)for(let $ in D){if($.indexOf("=")>=0)throw new Error(Invalid loader extension: ${$});s.push(--loader:${$}=${Ie(D$,"loader",$)})}if(S)for(let $ in S){if($.indexOf("=")>=0)throw new Error(Invalid out extension: ${$});s.push(--out-extension:${$}=${Ie(S$,"out extension",$)})}if(U)if(Array.isArray(U))for(let $=0,se=U.length;$<se;$++){let Ue=U[$];if(typeof Ue=="object"&&Ue!==null){let Tt=Object.create(null),Pt=v(Ue,Tt,"in",H),ht=v(Ue,Tt,"out",H);if(ve(Ue,Tt,"in entry point at index "+$),Pt===void 0)throw new Error('Missing property "in" for entry point at index '+$);if(ht===void 0)throw new Error('Missing property "out" for entry point at index '+$);i.push([ht,Pt])}else i.push(["",Ie(Ue,"entry point at index "+$)])}else for(let $ in U)i.push([$,Ie(U[$],"entry point",$)]);if(q){let $=Object.create(null),se=v(q,$,"contents",Jd),Ue=v(q,$,"resolveDir",H),Tt=v(q,$,"sourcefile",H),Pt=v(q,$,"loader",H);ve(q,$,'in "stdin" object'),Tt&&s.push(--sourcefile=${Tt}),Pt&&s.push(--loader=${Pt}),Ue&&(l=Ue),typeof se=="string"?c=ft(se):se instanceof Uint8Array&&(c=se)}let pe=[];if(b)for(let $ of b)$+="",pe.push($);return{entries:i,flags:s,write:J,stdinContents:c,stdinResolveDir:l,absWorkingDir:W,nodePaths:pe,mangleCache:em(Le)}}function Ak(e,t,r,n){let o=[],s=Object.create(null);as(o,t,s,r,n),tm(o,t,s);let i=v(t,s,"sourcemap",Qd),a=v(t,s,"sourcefile",H),c=v(t,s,"loader",H),l=v(t,s,"banner",H),u=v(t,s,"footer",H),p=v(t,s,"mangleCache",ct);return ve(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}),u&&o.push(--footer=${u}),{flags:o,mangleCache:em(p)}}function rm(e){let t={},r={didClose:!1,reason:""},n={},o=0,s=0,i=new Uint8Array(16*1024),a=0,c=T=>{let b=a+T.length;if(b>i.length){let k=new Uint8Array(b*2);k.set(i),i=k}i.set(T,a),a+=T.length;let w=0;for(;w+4<=a;){let k=ba(i,w);if(w+4+k>a)break;w+=4,g(i.subarray(w,w+k)),w+=k}w>0&&(i.copyWithin(0,w,a),a-=w)},l=T=>{r.didClose=!0,T&&(r.reason=": "+(T.message||T));let b="The service was stopped"+r.reason;for(let w in n)n[w](b,null);n={}},u=(T,b,w)=>{if(r.didClose)return w("The service is no longer running"+r.reason,null);let k=o++;n[k]=(R,C)=>{try{w(R,C)}finally{T&&T.unref()}},T&&T.ref(),e.writeToStdin(ha({id:k,isRequest:!0,value:b}))},p=(T,b)=>{if(r.didClose)throw new Error("The service is no longer running"+r.reason);e.writeToStdin(ha({id:T,isRequest:!1,value:b}))},m=async(T,b)=>{try{if(b.command==="ping"){p(T,{});return}if(typeof b.key=="number"){let w=t[b.key];if(!w)return;let k=w[b.command];if(k){await k(T,b);return}}throw new Error("Invalid command: "+b.command)}catch(w){let k=[Tr(w,e,null,void 0,"")];try{p(T,{errors:k})}catch{}}},d=!0,g=T=>{if(d){d=!1;let w=String.fromCharCode(...T);if(w!==Nn)throw new Error(Cannot start service: Host version "${Nn}" does not match binary version ${ye(w)});return}let b=Wd(T);if(b.isRequest)m(b.id,b.value);else{let w=n[b.id];delete n[b.id],b.value.error?w(b.value.error,{}):w(null,b.value)}};return{readFromStdout:c,afterClose:l,service:{buildOrContext:({callName:T,refs:b,options:w,isTTY:k,defaultWD:R,callback:C})=>{let M=0,D=s++,S={},P={ref(){++M==1&&b&&b.ref()},unref(){--M==0&&(delete t[D],b&&b.unref())}};t[D]=S,P.ref(),Uk(T,D,u,p,P,e,S,w,k,R,(L,j)=>{try{C(L,j)}finally{P.unref()}})},transform:({callName:T,refs:b,input:w,options:k,isTTY:R,fs:C,callback:M})=>{let D=nm(),S=P=>{try{if(typeof w!="string"&&!(w instanceof Uint8Array))throw new Error('The input to "transform" must be a string or a Uint8Array');let{flags:L,mangleCache:j}=Ak(T,k,R,Kd),N={command:"transform",flags:L,inputFS:P!==null,input:P!==null?ft(P):typeof w=="string"?ft(w):w};j&&(N.mangleCache=j),u(b,N,(A,I)=>{if(A)return M(new Error(A),null);let z=Kr(I.errors,D),U=Kr(I.warnings,D),W=1,q=()=>{if(--W==0){let J={warnings:U,code:I.code,map:I.map,mangleCache:void 0,legalComments:void 0};"legalComments"in I&&(J.legalComments=I?.legalComments),I.mangleCache&&(J.mangleCache=I?.mangleCache),M(null,J)}};if(z.length>0)return M($n("Transform failed",z,U),null);I.codeFS&&(W++,C.readFile(I.code,(J,X)=>{J!==null?M(J,null):(I.code=X,q())})),I.mapFS&&(W++,C.readFile(I.map,(J,X)=>{J!==null?M(J,null):(I.map=X,q())})),q()})}catch(L){let j=[];try{as(j,k,{},R,Kd)}catch{}let N=Tr(L,e,D,void 0,"");u(b,{command:"error",flags:j,error:N},()=>{N.detail=D.load(N.detail),M($n("Transform failed",[N],[]),null)})}};if((typeof w=="string"||w instanceof Uint8Array)&&w.length>1024*1024){let P=S;S=()=>C.writeFile(w,P)}S(null)},formatMessages:({callName:T,refs:b,messages:w,options:k,callback:R})=>{if(!k)throw new Error(Missing second argument in ${T}() call);let C={},M=v(k,C,"kind",H),D=v(k,C,"color",fe),S=v(k,C,"terminalWidth",Er);if(ve(k,C,in ${T}() call),M===void 0)throw new Error(Missing "kind" in ${T}() call);if(M!=="error"&&M!=="warning")throw new Error(Expected "kind" to be "error" or "warning" in ${T}() call);let P={command:"format-msgs",messages:Dt(w,"messages",null,"",S),isWarning:M==="warning"};D!==void 0&&(P.color=D),S!==void 0&&(P.terminalWidth=S),u(b,P,(L,j)=>{if(L)return R(new Error(L),null);R(null,j.messages)})},analyzeMetafile:({callName:T,refs:b,metafile:w,options:k,callback:R})=>{k===void 0&&(k={});let C={},M=v(k,C,"color",fe),D=v(k,C,"verbose",fe);ve(k,C,in ${T}() call);let S={command:"analyze-metafile",metafile:w};M!==void 0&&(S.color=M),D!==void 0&&(S.verbose=D),u(b,S,(P,L)=>{if(P)return R(new Error(P),null);R(null,L.result)})}}}}function Uk(e,t,r,n,o,s,i,a,c,l,u){let p=nm(),m=e==="context",d=(x,y)=>{let E=[];try{as(E,a,{},c,Gd)}catch{}let T=Tr(x,s,p,void 0,y);r(o,{command:"error",flags:E,error:T},()=>{T.detail=p.load(T.detail),u($n(m?"Context failed":"Build failed",[T],[]),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"),"");Fk(t,r,n,o,s,i,a,g,p).then(x=>{if(!x.ok)return d(x.error,x.pluginName);try{h(x.requestPlugins,x.runOnEndCallbacks,x.scheduleOnDisposeCallbacks)}catch(y){d(y,"")}},x=>d(x,""));return}try{h(null,(x,y)=>y([],[]),()=>{})}catch(x){d(x,"")}function h(x,y,E){let T=s.hasFS,{entries:b,flags:w,write:k,stdinContents:R,stdinResolveDir:C,absWorkingDir:M,nodePaths:D,mangleCache:S}=Ok(e,a,c,Gd,T);if(k&&!s.hasFS)throw new Error('The "write" option is unavailable in this environment');let P={command:"build",key:t,entries:b,flags:w,write:k,stdinContents:R,stdinResolveDir:C,absWorkingDir:M||l,nodePaths:D,context:m};x&&(P.plugins=x),S&&(P.mangleCache=S);let L=(A,I)=>{let z={errors:Kr(A.errors,p),warnings:Kr(A.warnings,p),outputFiles:void 0,metafile:void 0,mangleCache:void 0},U=z.errors.slice(),W=z.warnings.slice();A.outputFiles&&(z.outputFiles=A.outputFiles.map(Hk)),A.metafile&&(z.metafile=JSON.parse(A.metafile)),A.mangleCache&&(z.mangleCache=A.mangleCache),A.writeToStdout!==void 0&&console.log(Gr(A.writeToStdout).replace(/\n$/,"")),y(z,(q,J)=>{if(U.length>0||q.length>0){let X=$n("Build failed",U.concat(q),W.concat(J));return I(X,null,q,J)}I(null,z,q,J)})},j,N;m&&(i["on-end"]=(A,I)=>new Promise(z=>{L(I,(U,W,q,J)=>{let X={errors:q,warnings:J};N&&N(U,W),j=void 0,N=void 0,n(A,X),z()})})),r(o,P,(A,I)=>{if(A)return u(new Error(A),null);if(!m)return L(I,(W,q)=>(E(),u(W,q)));if(I.errors.length>0)return u($n("Context failed",I.errors,I.warnings),null);let z=!1,U={rebuild:()=>(j||(j=new Promise((W,q)=>{let J;N=(Le,pe)=>{J||(J=()=>Le?q(Le):W(pe))};let X=()=>{r(o,{command:"rebuild",key:t},(pe,$)=>{pe?q(new Error(pe)):J?J():X()})};X()})),j),watch:(W={})=>new Promise((q,J)=>{if(!s.hasFS)throw new Error('Cannot use the "watch" API in this environment');ve(W,{},"in watch() call"),r(o,{command:"watch",key:t},pe=>{pe?J(new Error(pe)):q(void 0)})}),serve:(W={})=>new Promise((q,J)=>{if(!s.hasFS)throw new Error('Cannot use the "serve" API in this environment');let X={},Le=v(W,X,"port",Er),pe=v(W,X,"host",H),$=v(W,X,"servedir",H),se=v(W,X,"keyfile",H),Ue=v(W,X,"certfile",H),Tt=v(W,X,"fallback",H),Pt=v(W,X,"onRequest",Yd);ve(W,X,"in serve() call");let ht={command:"serve",key:t,onRequest:!!Pt};Le!==void 0&&(ht.port=Le),pe!==void 0&&(ht.host=pe),$!==void 0&&(ht.servedir=$),se!==void 0&&(ht.keyfile=se),Ue!==void 0&&(ht.certfile=Ue),Tt!==void 0&&(ht.fallback=Tt),r(o,ht,(Ac,ax)=>{if(Ac)return J(new Error(Ac));Pt&&(i["serve-request"]=(cx,lx)=>{Pt(lx.args),n(cx,{})}),q(ax)})}),cancel:()=>new Promise(W=>{if(z)return W();r(o,{command:"cancel",key:t},()=>{W()})}),dispose:()=>new Promise(W=>{if(z)return W();z=!0,r(o,{command:"dispose",key:t},()=>{W(),E(),o.unref()})})};o.ref(),u(null,U)})}}var Fk=async(e,t,r,n,o,s,i,a,c)=>{let l=[],u=[],p={},m={},d=[],g=0,h=0,x=[],y=!1;a=[...a];for(let b of a){let w={};if(typeof b!="object")throw new Error(Plugin at index ${h} must be an object);let k=v(b,w,"name",H);if(typeof k!="string"||k==="")throw new Error(Plugin at index ${h} is missing a name);try{let R=v(b,w,"setup",Yd);if(typeof R!="function")throw new Error("Plugin is missing a setup function");ve(b,w,on plugin ${ye(k)});let C={name:k,onStart:!1,onEnd:!1,onResolve:[],onLoad:[]};h++;let D=R({initialOptions:i,resolve:(S,P={})=>{if(!y)throw new Error('Cannot call "resolve" before plugin setup has completed');if(typeof S!="string")throw new Error("The path to resolve must be a string");let L=Object.create(null),j=v(P,L,"pluginName",H),N=v(P,L,"importer",H),A=v(P,L,"namespace",H),I=v(P,L,"resolveDir",H),z=v(P,L,"kind",H),U=v(P,L,"pluginData",ss),W=v(P,L,"with",ct);return ve(P,L,"in resolve() call"),new Promise((q,J)=>{let X={command:"resolve",path:S,key:e,pluginName:k};if(j!=null&&(X.pluginName=j),N!=null&&(X.importer=N),A!=null&&(X.namespace=A),I!=null&&(X.resolveDir=I),z!=null)X.kind=z;else throw new Error('Must specify "kind" when calling "resolve"');U!=null&&(X.pluginData=c.store(U)),W!=null&&(X.with=Bk(W,"with")),t(n,X,(Le,pe)=>{Le!==null?J(new Error(Le)):q({errors:Kr(pe.errors,c),warnings:Kr(pe.warnings,c),path:pe.path,external:pe.external,sideEffects:pe.sideEffects,namespace:pe.namespace,suffix:pe.suffix,pluginData:c.load(pe.pluginData)})})})},onStart(S){let P='This error came from the "onStart" callback registered here:',L=cs(new Error(P),o,"onStart");l.push({name:k,callback:S,note:L}),C.onStart=!0},onEnd(S){let P='This error came from the "onEnd" callback registered here:',L=cs(new Error(P),o,"onEnd");u.push({name:k,callback:S,note:L}),C.onEnd=!0},onResolve(S,P){let L='This error came from the "onResolve" callback registered here:',j=cs(new Error(L),o,"onResolve"),N={},A=v(S,N,"filter",is),I=v(S,N,"namespace",H);if(ve(S,N,in onResolve() call for plugin ${ye(k)}),A==null)throw new Error("onResolve() call is missing a filter");let z=g++;p[z]={name:k,callback:P,note:j},C.onResolve.push({id:z,filter:A.source,namespace:I||""})},onLoad(S,P){let L='This error came from the "onLoad" callback registered here:',j=cs(new Error(L),o,"onLoad"),N={},A=v(S,N,"filter",is),I=v(S,N,"namespace",H);if(ve(S,N,in onLoad() call for plugin ${ye(k)}),A==null)throw new Error("onLoad() call is missing a filter");let z=g++;m[z]={name:k,callback:P,note:j},C.onLoad.push({id:z,filter:A.source,namespace:I||""})},onDispose(S){d.push(S)},esbuild:o.esbuild});D&&await D,x.push(C)}catch(R){return{ok:!1,error:R,pluginName:k}}}s["on-start"]=async(b,w)=>{let k={errors:[],warnings:[]};await Promise.all(l.map(async({name:R,callback:C,note:M})=>{try{let D=await C();if(D!=null){if(typeof D!="object")throw new Error(Expected onStart() callback in plugin ${ye(R)} to return an object);let S={},P=v(D,S,"errors",ge),L=v(D,S,"warnings",ge);ve(D,S,from onStart() callback in plugin ${ye(R)}),P!=null&&k.errors.push(...Dt(P,"errors",c,R,void 0)),L!=null&&k.warnings.push(...Dt(L,"warnings",c,R,void 0))}}catch(D){k.errors.push(Tr(D,o,c,M&&M(),R))}})),r(b,k)},s["on-resolve"]=async(b,w)=>{let k={},R="",C,M;for(let D of w.ids)try{({name:R,callback:C,note:M}=p[D]);let S=await C({path:w.path,importer:w.importer,namespace:w.namespace,resolveDir:w.resolveDir,kind:w.kind,pluginData:c.load(w.pluginData),with:w.with});if(S!=null){if(typeof S!="object")throw new Error(Expected onResolve() callback in plugin ${ye(R)} to return an object);let P={},L=v(S,P,"pluginName",H),j=v(S,P,"path",H),N=v(S,P,"namespace",H),A=v(S,P,"suffix",H),I=v(S,P,"external",fe),z=v(S,P,"sideEffects",fe),U=v(S,P,"pluginData",ss),W=v(S,P,"errors",ge),q=v(S,P,"warnings",ge),J=v(S,P,"watchFiles",ge),X=v(S,P,"watchDirs",ge);ve(S,P,from onResolve() callback in plugin ${ye(R)}),k.id=D,L!=null&&(k.pluginName=L),j!=null&&(k.path=j),N!=null&&(k.namespace=N),A!=null&&(k.suffix=A),I!=null&&(k.external=I),z!=null&&(k.sideEffects=z),U!=null&&(k.pluginData=c.store(U)),W!=null&&(k.errors=Dt(W,"errors",c,R,void 0)),q!=null&&(k.warnings=Dt(q,"warnings",c,R,void 0)),J!=null&&(k.watchFiles=ls(J,"watchFiles")),X!=null&&(k.watchDirs=ls(X,"watchDirs"));break}}catch(S){k={id:D,errors:[Tr(S,o,c,M&&M(),R)]};break}r(b,k)},s["on-load"]=async(b,w)=>{let k={},R="",C,M;for(let D of w.ids)try{({name:R,callback:C,note:M}=m[D]);let S=await C({path:w.path,namespace:w.namespace,suffix:w.suffix,pluginData:c.load(w.pluginData),with:w.with});if(S!=null){if(typeof S!="object")throw new Error(Expected onLoad() callback in plugin ${ye(R)} to return an object);let P={},L=v(S,P,"pluginName",H),j=v(S,P,"contents",Jd),N=v(S,P,"resolveDir",H),A=v(S,P,"pluginData",ss),I=v(S,P,"loader",H),z=v(S,P,"errors",ge),U=v(S,P,"warnings",ge),W=v(S,P,"watchFiles",ge),q=v(S,P,"watchDirs",ge);ve(S,P,from onLoad() callback in plugin ${ye(R)}),k.id=D,L!=null&&(k.pluginName=L),j instanceof Uint8Array?k.contents=j:j!=null&&(k.contents=ft(j)),N!=null&&(k.resolveDir=N),A!=null&&(k.pluginData=c.store(A)),I!=null&&(k.loader=I),z!=null&&(k.errors=Dt(z,"errors",c,R,void 0)),U!=null&&(k.warnings=Dt(U,"warnings",c,R,void 0)),W!=null&&(k.watchFiles=ls(W,"watchFiles")),q!=null&&(k.watchDirs=ls(q,"watchDirs"));break}}catch(S){k={id:D,errors:[Tr(S,o,c,M&&M(),R)]};break}r(b,k)};let E=(b,w)=>w([],[]);u.length>0&&(E=(b,w)=>{(async()=>{let k=[],R=[];for(let{name:C,callback:M,note:D}of u){let S,P;try{let L=await M(b);if(L!=null){if(typeof L!="object")throw new Error(Expected onEnd() callback in plugin ${ye(C)} to return an object);let j={},N=v(L,j,"errors",ge),A=v(L,j,"warnings",ge);ve(L,j,from onEnd() callback in plugin ${ye(C)}),N!=null&&(S=Dt(N,"errors",c,C,void 0)),A!=null&&(P=Dt(A,"warnings",c,C,void 0))}}catch(L){S=[Tr(L,o,c,D&&D(),C)]}if(S){k.push(...S);try{b.errors.push(...S)}catch{}}if(P){R.push(...P);try{b.warnings.push(...P)}catch{}}}w(k,R)})()});let T=()=>{for(let b of d)setTimeout(()=>b(),0)};return y=!0,{ok:!0,requestPlugins:x,runOnEndCallbacks:E,scheduleOnDisposeCallbacks:T}};function nm(){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 cs(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=om(t,s,r);if(i)return n={text:e.message,location:i},n}catch{}}}function Tr(e,t,r,n,o){let s="Internal error",i=null;try{s=(e&&e.message||e)+""}catch{}try{i=om(t,(e.stack+"").split(
),"")}catch{}return{id:"",pluginName:o,text:s,location:i,notes:n?[n]:[],detail:r?r.store(e):-1}}function om(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,u=c.slice(l,l+r.length)===r?r.length:0;return{file:i[1],namespace:"file",line:+i[2],column:ft(c.slice(0,l)).length,length:ft(c.slice(l,l+u)).length,lineText:c+
+t.slice(1).join(
),suggestion:""}}break}}return null}function $n(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: ${u}${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 Kr(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=v(e,n,"file",H),s=v(e,n,"namespace",H),i=v(e,n,"line",Er),a=v(e,n,"column",Er),c=v(e,n,"length",Er),l=v(e,n,"lineText",H),u=v(e,n,"suggestion",H);if(ve(e,n,t),l){let p=l.slice(0,(a&&a>0?a:0)+(c&&c>0?c:0)+(r&&r>0?r:80));!/[\x7F-\uFFFF]/.test(p)&&!/\n/.test(l)&&(l=p)}return{file:o||"",namespace:s||"",line:i||0,column:a||0,length:c||0,lineText:l||"",suggestion:u||""}}function Dt(e,t,r,n,o){let s=[],i=0;for(let a of e){let c={},l=v(a,c,"id",H),u=v(a,c,"pluginName",H),p=v(a,c,"text",H),m=v(a,c,"location",Vd),d=v(a,c,"notes",ge),g=v(a,c,"detail",ss),h=in element ${i} of "${t}";ve(a,c,h);let x=[];if(d)for(let y of d){let E={},T=v(y,E,"text",H),b=v(y,E,"location",Vd);ve(y,E,h),x.push({text:T||"",location:sm(b,h,o)})}s.push({id:l||"",pluginName:u||n,text:p||"",location:sm(m,h,o),notes:x,detail:r?r.store(g):-1}),i++}return s}function ls(e,t){let r=[];for(let n of e){if(typeof n!="string")throw new Error(${ye(t)} must be an array of strings);r.push(n)}return r}function Bk(e,t){let r=Object.create(null);for(let n in e){let o=e[n];if(typeof o!="string")throw new Error(key ${ye(n)} in object ${ye(t)} must be a string);r[n]=o}return r}function Hk({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=Gr(o)),n}}}var zk=Nn,ps=e=>ds().build(e),Wk=(e,t)=>ds().transform(e,t),qk=(e,t)=>ds().formatMessages(e,t),Gk=(e,t)=>ds().analyzeMetafile(e,t);var Pr,im,us,ds=()=>{if(us)return us;throw Pr?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')},ms=e=>{e=Zd(e||{});let t=e.wasmModule,r=e.workerURL;if(!t)throw new Error('Must provide the "wasmModule" option');if(Pr)throw new Error('Cannot call "initialize" more than once');return Pr=Kk(t,r),Pr.catch(()=>{Pr=void 0}),Pr},Kk=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}=rm({writeToStdin(c){r.postMessage(c)},isSync:!1,hasFS:!1,esbuild:{build:ps,transform:Wk,formatMessages:qk,analyzeMetafile:Gk,version:zk,initialize:ms}});await s,im=()=>{r.terminate(),Pr=void 0,im=void 0,us=void 0},us={build:c=>new Promise((l,u)=>a.buildOrContext({callName:"build",refs:null,options:c,isTTY:!1,defaultWD:"/",callback:(p,m)=>p?u(p):l(m)})),transform:(c,l)=>new Promise((u,p)=>a.transform({callName:"transform",refs:null,input:c,options:l||{},isTTY:!1,fs:{readFile(m,d){d(new Error("Internal error"),null)},writeFile(m,d){d(null)}},callback:(m,d)=>m?p(m):u(d)})),formatMessages:(c,l)=>new Promise((u,p)=>a.formatMessages({callName:"formatMessages",refs:null,messages:c,options:l,callback:(m,d)=>m?p(m):u(d)})),analyzeMetafile:(c,l)=>new Promise((u,p)=>a.analyzeMetafile({callName:"analyzeMetafile",refs:null,metafile:typeof c=="string"?c:JSON.stringify(c),options:l,callback:(m,d)=>m?p(m):u(d)}))}};var am=e=>["ts","js","tsx","jsx","mjs","javascript","typescript"].includes(e),cm=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 lm=e=>!!(Xk.includes(e.hostname)||e.hostname.endsWith(".openai.azure.com")),Xk=["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 fs(e){return typeof e=="object"&&e!==null&&e.constructor===Object}function gs(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 fs(e)&&(e.imports!==void 0?va(e.imports):!0)&&(e.scopes!==void 0?wa(e.scopes):!0)}function va(e){return fs(e)}function wa(e){return fs(e)&&Object.values(e).every(t=>ka(t))}function ka(e){return fs(e)}function hs(e){try{return new URL(e),!0}catch{return!1}}function um(e,t){let r={};for(let[n,o]of Object.entries(e)){let s=Vk(n,t);if(s===null)continue;if(typeof o!="string"){console.warn("addresses need to be strings."),r[s]=null;continue}let i=Ea(o,t);if(i===null){console.warn("the address was invalid."),r[s]=null;continue}if(n.endsWith("/")&&!kt(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]=kt(i)}return gs(r)}function kt(e){return e.href}function Yk(e,t){let r={};for(let[o,s]of Object.entries(e)){if(!ka(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=kt(i);r[a]=um(s,t)}let n={};for(let o of Object.keys(r))n[o]=gs(r[o]);return gs(n)}function Vk(e,t){if(!e.length)return console.warn("specifier key cannot be an empty string."),null;let r=Ea(e,t);return r!==null?kt(r):e}function Ea(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 Qk=["ftp","file","http","https","ws","wss"];function Jk(e){return Qk.some(t=>kt(e).startsWith(t))}function dm(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(!hs(o))throw new TypeError("resolutionResult must be an URL.");return o}else if(n.endsWith("/")&&e.startsWith(n)&&(t===null||Jk(t))){if(o===null)throw new TypeError("resolution of specifierKey was blocked by a null entry.");if(!hs(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(!hs(i))throw new TypeError("url must be an URL.");if(!kt(i).startsWith(o))throw new TypeError("resolution of normalizedSpecifier was blocked due to it backtracking above its prefix specifierKey.");return kt(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 Ta(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(!va(n))throw new TypeError('"imports" top-level key needs to be an object.');r=um(n,t)}let s={};if(o!==void 0){if(!wa(o))throw new TypeError('"scopes" top-level key needs to be an object.');s=Yk(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 Pa(e,{imports:t={},scopes:r={}},n){let o=kt(n),s=Ea(e,n),i=s!==null?kt(s):e;for(let[c,l]of Object.entries(r))if(c===o||c.endsWith("/")&&o.startsWith(c)){let u=dm(i,s,l);if(u!==null)return u}let a=dm(i,s,t);if(a!==null)return a;if(s!==null)return kt(s);throw new TypeError("specifier was a bare specifier, but was not remapped to anything by importMap.")}function je(e){if(typeof e!="string")throw new TypeError(Path must be a string. Received ${JSON.stringify(e)})}function Sa(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 La(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 _a(e,t){if(je(e),e.length===0)return e;if(typeof t!="string")throw new TypeError(Suffix must be a string. Received ${JSON.stringify(t)})}var mm=65,fm=97,gm=90,hm=122,Sr=46,On=47,xs=92;var It=58;function Xr(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 Et(e){return e===On||e===xs}function jt(e){return e>=fm&&e<=hm||e>=mm&&e<=gm}function bs(e){if(e=e instanceof URL?e:new URL(e),e.protocol!=="file:")throw new TypeError("Must be a file URL.");return e}function xm(e){e=bs(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 Ra(e){je(e);let t=e.length;if(t===0)return!1;let r=e.charCodeAt(0);return Et(r)?!0:!!(jt(r)&&t>2&&e.charCodeAt(1)===It&&Et(e.charCodeAt(2)))}var o0={" ":"%09","\n":"%0A","\v":"%0B","\f":"%0C","\r":"%0D"," ":"%20"};function ys(e){return e.replaceAll(/[\s]/g,t=>o0[t]??t)}function vm(e){if(!Ra(e))throw new TypeError("Must be an absolute path.");let[,t,r]=e.match(/^(?:[/\\]{2}([^/\\]+)(?=[/\\](?:[^/\\]|$)))?(.*)/),n=new URL("file:///");if(n.pathname=ys(r.replace(/%/g,"%25")),t!==void 0&&t!=="localhost"&&(n.hostname=t,!n.hostname))throw new TypeError("Invalid hostname.");return n}function lt(e){return e===On}function Ma(e,t=""){_a(e,t);let r=La(e,lt),n=Xr(r,lt);return t?Sa(n,t):n}function Da(e){je(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(lt(a)){if(!o){r=i+1;break}continue}n===-1&&(o=!1,n=i+1),a===Sr?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 km(e){return e=bs(e),decodeURIComponent(e.pathname.replace(/%(?![0-9A-Fa-f]{2})/g,"%25"))}function Ia(e){return je(e),e.length>0&<(e.charCodeAt(0))}function Em(e){if(!Ia(e))throw new TypeError("Must be an absolute path.");let t=new URL("file:///");return t.pathname=ys(e.replace(/%/g,"%25").replace(/\\/g,"%5C")),t}var g0=(()=>{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"})(),Se=g0==="windows";function Pm(e){return Se?xm(e):km(e)}function vs(e){return Se?vm(e):Em(e)}var Sm={"&":"\\x26","!":"\\x21","#":"\\x23",$:"\\$","%":"\\x25","*":"\\*","+":"\\+",",":"\\x2c",".":"\\.",":":"\\x3a",";":"\\x3b","<":"\\x3c","=":"\\x3d",">":"\\x3e","?":"\\?","@":"\\x40","^":"\\^","":"\\x60","~":"\\x7e","(":"\\(",")":"\\)","[":"\\","":"\\]","{":"\\{","}":"\\}","/":"\\/","-":"\\x2d","\\":"\\\\","|":"\\|"},x0=new RegExp([${Object.values(Sm).join("")}],"gu");function Lm(e){return e.replaceAll(x0,t=>Smt)}var _m=e=>{if(e.protocol==="file:")return{path:Pm(e),namespace:"file"};let t=e.protocol.slice(0,-1);return{path:e.href.slice(t.length+1),namespace:t}},Rm=e=>e.namespace==="file"?vs(e.path):new URL(${e.namespace}:${e.path});function An(e){e.hash="",e.search=""}function Cm(e,t){return e=new URL(e),An(e),Ma(e.href,t)}function Mm(e){return e=new URL(e),An(e),Da(e.pathname)}var b0="base64","binary","copy","css","dataurl","default","empty","file","js","json","jsx","local-css","text","ts","tsx",Dm=e=>b0.includes(e),Im=e=>{let t=e.url,r=Cm(t);if(Dm(r))return r;if(r==="mjs")return"js";let n=Mm(t).slice(1);if(Dm(n))return n;if(n==="mjs")return"js";let s=(e.headers.get("Content-Type")??"text/plain").split(";")0?.trim?.()??"text/plain";return y0(s)},y0=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 jm=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 p=await Nm(${s},e.fetch,i,e.reload,a);c=Ta(JSON.parse(p.contents),s)});let l=(o.external??[]).map(p=>new RegExp(Lm(p).replace(/\\\*/g,".*")));r({filter:/.*/},p=>{let m;if(p.importer!==""){if(p.namespace==="")throw new Error("assert namespace is empty");m=new URL(${p.namespace}:${p.importer})}else if(p.resolveDir!=="")m=new URL(${vs(p.resolveDir).href}/);else return;let d;if(c!==null){let h=Pa(p.path,c,new URL(m));d=new URL(h)}else d=new URL(p.path,m);let g={type:"resolve",external:!1,path:d.href};p.kind!=="entry-point"&&(g.parent=m.href);for(let h of l)if(h.test(d.href))return g.external=!0,a?.(g),g;return a?.(g),_m(d)});let u=p=>Nm(Rm(p).href,e.fetch,i,e.reload,a);n({filter:/.*/,namespace:"file"},u),n({filter:/.*/,namespace:"http"},u),n({filter:/.*/,namespace:"https"},u),n({filter:/.*/,namespace:"data"},u)}}),Nm=async(e,t,r,n,o)=>{let s=r.find(l=>l.path===e);if(s!==void 0)return o?.({type:"load",path:e,done:Promise.resolve({size:new Blob(s.contents).size,isCache:!0})}),{contents:s.contents,loader:s.loader};let i=n?n===!0?!1:n.some(l=>l.test(e)):!0,a=t(new Request(e),i);o?.({type:"load",path:e,done:a.then((l,u)=>({size:parseInt(l.headers.get("Content-Length")??"0"),isCache:u}))});letc=await a;return{contents:await c.text(),loader:Im(c)}};var $m,Om=async(e,t)=>($m??=ms({wasmModule:e,workerURL:t}),await $m,async(r,{extension:n,fileName:o,dirURL:s})=>{o??=codeblock-${Math.floor(16777214*Math.random()).toString(16)}.${cm(n)};let i=${s}${o},{outputFiles:a}=await ps({entryPoints:i,format:"esm",bundle:!0,minify:!0,charset:"utf8",plugins:[jm({fetch:v0,reload:new URLPattern({hostname:location.hostname}),new URLPattern({hostname:"scrapbox.io"}),sources:{path:i,contents:r}})],write:!1});return a0.text}),v0=async(e,t)=>{let r=lm(new URL(e.url))||!GM_fetch?globalThis.fetch:GM_fetch;if(t){let n=await xn(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 rp(e,n),n,!1;throw new TypeError(${n.status} ${n.statusText})}catch(n){if(!(n instanceof TypeError))throw n;let o=await xn(e);if(o)return o.url||Object.defineProperty(o,"url",{value:e.url}),o,!0;throw n}};var Am=()=>{let e=document.createElement("i");return e.classList.add("kamon","kamon-check-circle-fill"),e.style.color="hsl(133, 46.1%, 47.3%)",e},Um=()=>{let e=document.createElement("i");return e.classList.add("kamon","kamon-cross-circle"),e.style.color="hsl(1.7, 64.5%, 58%)",e},Fm=()=>{let e=document.createElement("i");return e.classList.add("i","fa","fa-spinner"),e},Bm=()=>{let e=document.createElement("i");return e.classList.add("kamon","kamon-play"),e};var Hm=()=>{let e;return{show:(n,{x:o,y:s})=>{e=w0(),e.append(k0(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?.()}}},w0=()=>{let e=document.createElement("div");return e.setAttribute("role","tooltip"),e.classList.add("fade","in","tooltip","top"),e},k0=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 zm=()=>{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}=Hm();return{component:e,setStatus:async(s,i)=>{switch(e.textContent="",await n(),s){case"loading":e.append(Fm());break;case"pass":e.append(Am());break;case"fail":e.append(Um());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 Wm=e=>{let t=document.createElement("a");return t.classList.add("tool-btn"),t.type="button",t.setAttribute("aria-haspopup","true"),t.append(Bm()),t.addEventListener("click",e),t};var qm=e=>{let{component:t,setStatus:r}=zm(),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(Wm(e),t),{menu:n,setStatus:r}};function Gm(e){return new Promise(t=>setTimeout(t,e))}function Km(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 Gm(n);let{parameters:l,resolve:u,reject:p}=a();try{let m=await e(...l);s=!1,u({result:m,executed:!0})}catch(m){s=!1,p(m)}finally{r?await c():(i(),await Promise.resolve())}};return(...l)=>new Promise((u,p)=>{i({parameters:l,resolve:u,reject:p}),c()})}var Xm=async(e,t)=>{let r=await Om(e,t),n=[],s=Km(async()=>{let i=zd(scrapbox.Project.name,scrapbox.Page.title??"",Be());n.forEach(({menu:a,setStatus:c})=>{c("none"),a.remove()}),i.forEach(a=>{let c=a.lang.toLowerCase();!am(c)||a.startIds.forEach(l=>{let u=document.getElementById(L${l}),{menu:p,setStatus:m}=qm(async()=>{await m("loading");try{let d=await r(a.lines.join(` ),{extension:c,fileName:a.filename,dirURL:${a.dir}/});console.log("execute:",d),await Function(return (async()=>{${d}})())(),await m("pass")}catch(d){await m("fail",d.toString())}});n.push({menu:p,setStatus:m}),u?.insertBefore?.(p,u?.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 Ym=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}},Vm=async(e,t)=>{let n=(await globalThis.caches.keys()).filter(s=>s.startsWith("api")).sort().reverse().at(0);if(!n)return;await(await caches.open(n)).put(e,t.clone())};var Qm=({title:e,projects:t,selected:r,confirm:n})=>f("div",{className:candidate${r?" selected":""}},f(E0,{title:e,confirm:n}),t.map(o=>f(T0,{project:o.name,title:e,mark:o.mark,confirm:o.confirm}))),E0=({title:e,confirm:t})=>f("a",{className:"button",tabIndex:0,role:"menuitem",href:./${Y(e)},onClick:Jm(t)},e),T0=({project:e,title:t,mark:r,confirm:n})=>r===""?f(G,null):f("a",{className:"mark",tabIndex:0,href:../${e}/${Y(t)},onClick:Jm(n),title:/${e}/${Y(t)}},r instanceof URL?f("img",{src:r.href}):${r}),Jm=e=>_(t=>{t.metaKey||t.ctrlKey||t.altKey||t.shiftKey||(t.preventDefault(),t.stopPropagation(),e())},[e]);var Zm=e=>{let[t,r]=F(-1);B(()=>r(-1),[e]);let n=_(a=>r(c=>a?.cyclic?(c+1)%e:Math.min(c+1,e)),[e]),o=_(a=>r(c=>c<0?e-1:a?.cyclic?(c+e-1)%e:Math.max(c-1,0)),[e]),s=_(()=>r(0),[]),i=_(()=>r(e-1),[e]);return{selectedIndex:t,next:n,prev:o,selectFirst:s,selectLast:i}};var ef=e=>{let t=ie(null),r=O(()=>{if(!t.current)return{};let n=t.current.parentNode;if(!(n instanceof ShadowRoot))throw Error('The parent of "div.container" must be ShadowRoot');let o=n.host?.parentElement?.getBoundingClientRect?.(),i=hn(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.current,e.line,e.char]);return{ref:t,...r}};var tf=(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 rf=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=~(~0<<n),s=1<<n-1;return i=>{let a=0,c=o,l=[...i].reverse(),u=[],p=l.length;u[p]=n;for(let m of l){let d=t.get(m)??0,g=d|a,h=(d&c)+c^c|d,x=a|~(h|c),y=c&h;u[p-1]=u[p]+((x&s)!=0?1:(y&s)!=0?-1:0),c=y<<1|~(g|x<<1),a=x<<1&g,p--}return u}};var P0=[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],nf=e=>{let t=tl(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=S0(o,n);return n}},S0=(e,t)=>{let r=[...e].length,n=P0[r],o=rf(e);return t.flatMap(({title:s,dist:i,matches:a,...c})=>{a??=[],i??=0;let l=o(s).flatMap((p,m)=>p<=n&&a.every(([d,g])=>m+r<=d||g<m)?[[m,p]]:[]);if(l.length===0)return[];let u=l.reduce((p,[m,d])=>(p.dist<=d||(p.dist=d,p.start=m),p),{dist:r,start:0});return a.push([u.start,u.start+r-1]),[{title:s,dist:u.dist+i,matches:a,...c}]})};var Je=!1,of=e=>{Je=typeof e=="boolean"?e:new Set(e)},ws=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)=>{Je!==!0&&(!Je||!Je.has(e))||r(%c${e},"color: gray",...n)}];case"assert":return[t,(n,...o)=>{Je!==!0&&(!Je||!Je.has(e))||r(n,%c${e},"color: gray",...o)}];case"time":case"timeEnd":return[t,n=>{Je!==!0&&(!Je||!Je.has(e))||r(${e} ${n})}];default:return[t,(...n)=>{if(!(Je!==!0&&(!Je||!Je.has(e))))return r(...n)}]}}));var L0=ws("scrapbox-select-suggestion:cancelableSearch.ts");async function*sf(e,t,r){let n=nf(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();L0.debug(search ${(i/s*100).toPrecision(3)}% of the source for "${e}" in ${l}ms)}}var af=(e,t)=>{let[r,n]=fn(_0,{type:"query",source:t,query:e});B(()=>n({source:t}),[t]),B(()=>n({query:e}),[e]);let[o,s]=F(0),[i,a]=F([]),c=ie(Promise.resolve());B(()=>{let p=!1;return c.current=(async()=>{await c.current;let m=[],d=sf(r.query,r.source,{chunk:5e3});if(r.type==="source"){for await(let[x]of d){if(p)return;m.push(...x)}s(1),a(m);return}let g,h=!1;for await(let[x,y]of d){if(p){clearTimeout(g);return}if(m.push(...x),s(y),x.length!==0){if(!h){a([...m]),h=!0;continue}g??=setTimeout(()=>{a([...m]),g=void 0},500)}}(g!==void 0||!h)&&(clearTimeout(g),a([...m]))})(),()=>p=!0},[r]);let[l,u]=O(()=>{let p=new Map,m=[];for(let d of i.sort(tf)){let g=d.metadata.map(({project:h})=>h);for(let h of g)p.set(h,(p.get(h)??0)+.5**d.dist);m.push({title:d.title,dist:d.dist,projects:g})}return[p,m]},[i]);return{projectScore:l,items:u,progress:o}},_0=(e,t)=>"query"in t?t.query===e.query?e:{type:"query",source:e.source,...t}:t.source===e.source?e:{type:"source",query:e.query,...t};var Na="enableProjectsOnSuggestion",cf=(e,t)=>{let[r,n]=F(ks([...e],t)),o=_((s,i)=>{R0(s,i,e,t),n(ks([...e],t))},[e,t.enableSelfProjectOnStart]);return B(()=>{let s=i=>{i.key===Na&&n(ks([...e],t))};return addEventListener("storage",s),()=>removeEventListener("storage",s)},[e,t.enableSelfProjectOnStart]),{projects:r,set:o}},$a=!0,ks=(e,t)=>{try{let r=localStorage.getItem(Na);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)?$a?n:n.filter(o=>o!==scrapbox.Project.name):$a?[...n,scrapbox.Project.name]:n:(Es(e),e)}catch(r){if(!(r instanceof TypeError))throw r;return Es(e),e}},R0=(e,t,r,n)=>{let o=ks([...r],n);n.enableSelfProjectOnStart&&e===scrapbox.Project.name&&($a=t),Es(t?[...o,e]:o.filter(s=>s!==e))},Es=e=>localStorage.setItem(Na,JSON.stringify(e));var lf=()=>O(()=>document.documentElement.dataset.os??"",[]);var Un=(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 pf=({position:e,query:t,start:r,context:n,limit:o,enableSelfProjectOnStart:s,callback:i,projects:a,source:c,mark:l,confirmAfter:u,cancel:p,freezeUntil:m})=>{let{projectScore:d,items:g,progress:h}=af(n==="input"?t.slice(1,-1):t,c),{projects:x,set:y}=cf(a,{enableSelfProjectOnStart:s}),{ref:E,top:T,left:b,right:w}=ef({line:e.line,char:r}),k=lf();return f(G,null,f(M0,{itemCount:g.length,...{enableProjects:x,projects:a,projectScore:d,freezeUntil:m,mark:l,top:T,right:w,set:y,os:k}}),f(C0,{divRef:E,...{start:r,confirmAfter:u,cancel:p,query:t,enableProjects:x,projects:a,items:g,top:T,left:b,progress:h,callback:i,limit:o,mark:l,os:k}}))},C0=({start:e,divRef:t,confirmAfter:r,cancel:n,query:o,enableProjects:s,projects:i,items:a,top:c,left:l,progress:u,callback:p,limit:m,mark:d,os:g})=>{let h=_((M,D)=>{let S=D?/${D}/${M}:${M};r((P,{line:L})=>[${...P.slice(0,e).join("")}${S}${...P.slice(e+...o.length).join("")},{line:L,char:e+[...S].length}])},[e,o]),x=O(()=>i.size>1||!i.has(scrapbox.Project.name),[i]),y=O(()=>{let M=[];for(let D of a){if(M.length===m)break;!D.projects.some(S=>s.includes(S))||M.push({title:D.title,projects:D.projects.flatMap(S=>s.includes(S)?[{name:S,mark:x?Un(d[S]??"",import.meta.url)||S[0]:"",confirm:()=>h(D.title,S)}]:[]),confirm:()=>h(D.title)})}return M},[s,x,a,m,d,h]),{selectedIndex:E,next:T,prev:b,selectLast:w,selectFirst:k}=Zm(y.length),R=_(()=>E===-1?!1:(y.at(E)?.confirm?.(),!0),[E,y]);B(()=>p(y.length===0?void 0:{selectNext:M=>(T(M),!0),selectPrev:M=>(b(M),!0),selectFirst:()=>(k(),!0),selectLast:()=>(w(),!0),confirm:R,cancel:()=>(n(),!0)}),[p,T,b,k,w,R]);let C=O(()=>y.length>0&&c!=null&&l!=null?{top:c,left:l}:{display:"none"},[y.length,c,l]);return f("div",{ref:t,className:"container candidates","data-os":g,style:C},y.map((M,D)=>f(Qm,{key:M.title,...M,selected:E===D})),a.length>m&&f("div",{className:"counter"},${a.length-m} more links),f("div",{className:"progress",style:background: linear-gradient(to right, var(--select-suggest-border-color, #eee) ${(u*100).toPrecision(3)}%, transparent ${(u*100).toPrecision(3)}%)}))},M0=({enableProjects:e,projects:t,projectScore:r,mark:n,itemCount:o,top:s,right:i,set:a,os:c,freezeUntil:l})=>{let u=O(()=>[...t].sort((m,d)=>(r.get(d)??0)-(r.get(m)??0)).flatMap(m=>r.has(m)?[{name:m,enable:e.includes(m),mark:Un(n[m]??"",import.meta.url)||m[0],score:r.get(m),onClick:()=>l(()=>{a(m,!e.includes(m)),ke().focus()})}]:[]),[t,r,e,n]),p=O(()=>o>0&&s!=null&&i!=null&&t.size>1?{top:s,right:i}:{display:"none"},[s,i,o,t.size]);return f("div",{className:"container projects","data-os":c,style:p},u.map(m=>f(D0,{...m})))},D0=e=>f("div",{className:e.enable?"mark":"mark disabled","data-score":e.score.toPrecision(3),onClick:e.onClick,title:e.name},e.mark instanceof URL?f("img",{src:e.mark.href}):${e.mark});var Ze=!1,Oa=e=>{Ze=typeof e=="boolean"?e:new Set(e)},Yr=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)=>{Ze!==!0&&(!Ze||!Ze.has(e))||r(%c${e},"color: gray",...n)}];case"assert":return[t,(n,...o)=>{Ze!==!0&&(!Ze||!Ze.has(e))||r(n,%c${e},"color: gray",...o)}];case"time":case"timeEnd":return[t,n=>{Ze!==!0&&(!Ze||!Ze.has(e))||r(${e} ${n})}];default:return[t,(...n)=>{if(!(Ze!==!0&&(!Ze||!Ze.has(e))))return r(...n)}]}}));var Vr=e=>{let[t,r,n,...o]=e;return{title:t,links:o,image:r,exists:n>=0,updated:Math.min(0,n)}},uf=e=>[e.title,e.image,e.exists?e.updated:-1,...e.links];var df=e=>{let t=new Map;for(let r of e){let n=K(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=K(o);t.has(s)||t.set(s,{title:o,updated:0,links:[],exists:!1})}}return[...t.values()].map(r=>uf(r))};var mf=Yr("scrapbox-storage:remote.ts"),ff=async e=>{let t,r=[],n=download and create Links of "${e}";mf.time(n);do{let s=await up(e,{followingId:t});if(!s.ok)return s;t=s.value.followingId,r.push(...s.value.pages)}while(t);let o=df(r);return mf.timeEnd(n),{ok:!0,value:o}};async function*gf(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 Dr(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 dt(s);yield i.ok?{ok:!0,value:{...i.value,checked:n.get(s)??0}}:{ok:!1,value:{...i.value,project:s}}}}var Aa=(e,t)=>t.some(r=>e instanceof r),hf,xf;function I0(){return hf||(hf=[IDBDatabase,IDBObjectStore,IDBIndex,IDBCursor,IDBTransaction])}function j0(){return xf||(xf=[IDBCursor.prototype.advance,IDBCursor.prototype.continue,IDBCursor.prototype.continuePrimaryKey])}var Ua=new WeakMap,Fa=new WeakMap,Ts=new WeakMap;function N0(e){let t=new Promise((r,n)=>{let o=()=>{e.removeEventListener("success",s),e.removeEventListener("error",i)},s=()=>{r(Yt(e.result)),o()},i=()=>{n(e.error),o()};e.addEventListener("success",s),e.addEventListener("error",i)});return Ts.set(t,e),t}function $0(e){if(Ua.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)});Ua.set(e,t)}var Ba={get(e,t,r){if(e instanceof IDBTransaction){if(t==="done")return Ua.get(e);if(t==="store")return r.objectStoreNames[1]?void 0:r.objectStore(r.objectStoreNames[0])}return Yt(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 bf(e){Ba=e(Ba)}function O0(e){return j0().includes(e)?function(...t){return e.apply(Ha(this),t),Yt(this.request)}:function(...t){return Yt(e.apply(Ha(this),t))}}function A0(e){return typeof e=="function"?O0(e):(e instanceof IDBTransaction&&$0(e),Aa(e,I0())?new Proxy(e,Ba):e)}function Yt(e){if(e instanceof IDBRequest)return N0(e);if(Fa.has(e))return Fa.get(e);let t=A0(e);return t!==e&&(Fa.set(e,t),Ts.set(t,e)),t}var Ha=e=>Ts.get(e);function yf(e,t,{blocked:r,upgrade:n,blocking:o,terminated:s}={}){let i=indexedDB.open(e,t),a=Yt(i);return n&&i.addEventListener("upgradeneeded",c=>{n(Yt(i.result),c.oldVersion,c.newVersion,Yt(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 vf(e,{blocked:t}={}){let r=indexedDB.deleteDatabase(e);return t&&r.addEventListener("blocked",n=>t(n.oldVersion,n)),Yt(r).then(()=>{})}var U0=["get","getKey","getAll","getAllKeys","count"],F0=["put","add","delete","clear"],za=new Map;function wf(e,t){if(!(e instanceof IDBDatabase&&!(t in e)&&typeof t=="string"))return;if(za.get(t))return za.get(t);let r=t.replace(/FromIndex$/,""),n=t!==r,o=F0.includes(r);if(!(r in(n?IDBIndex:IDBObjectStore).prototype)||!(o||U0.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 za.set(t,s),s}bf(e=>({...e,get:(t,r,n)=>wf(t,r)||e.get(t,r,n),has:(t,r)=>!!wf(t,r)||e.has(t,r)}));var B0=["continue","continuePrimaryKey","advance"],kf={},Wa=new WeakMap,Ef=new WeakMap,H0={get(e,t){if(!B0.includes(t))return e[t];let r=kf[t];return r||(r=kf[t]=function(...n){Wa.set(this,Ef.get(this)[t](...n))}),r}};async function*z0(...e){let t=this;if(t instanceof IDBCursor||(t=await t.openCursor(...e)),!t)return;t=t;let r=new Proxy(t,H0);for(Ef.set(r,t),Ts.set(r,Ha(t));t;)yield r,t=await(Wa.get(r)||t.continue()),Wa.delete(r)}function Tf(e,t){return t===Symbol.asyncIterator&&Aa(e,[IDBIndex,IDBObjectStore,IDBCursor])||t==="iterate"&&Aa(e,[IDBIndex,IDBObjectStore])}bf(e=>({...e,get(t,r,n){return Tf(t,r)?z0:e.get(t,r,n)},has(t,r){return Tf(t,r)||e.has(t,r)}}));var Pf=Yr("scrapbox-storage:db.ts"),Sf,Ps=async()=>(Sf??=await yf("scrapbox-storage",1,{upgrade(e){Pf.time("update DB");for(let t of e.objectStoreNames)e.deleteObjectStore(t);e.createObjectStore("links",{keyPath:"project"}),e.createObjectStore("status",{keyPath:"project"}),Pf.timeEnd("update DB")}}),Sf),Lf=async e=>(await Ps()).put("links",e);var Ss=new Map,_f=e=>{let t={type:"update",projects:e};Rf(t);let r=new BroadcastChannel(Cf);r.postMessage(t),r.close()},Rf=e=>{for(let t of new Set(e.projects.flatMap(r=>[...Ss.get(r)??[]])))t?.(e)},Cf="scrapbox-storage-notify",W0=new BroadcastChannel(Cf);W0.addEventListener("message",e=>Rf(e.data));var Fn=(e,t)=>{for(let r of e){let n=Ss.get(r)??new Set;n.add(t),Ss.set(r,n)}return()=>{for(let r of e)Ss.get(r)?.delete?.(t)}};var Nt=Yr("scrapbox-storage:mod.ts"),Ls=async(e,t)=>{let r=await Ps(),n=[],o=[];try{{Nt.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 u=l?.checked??0,p=new Date().getTime()/1e3;if(u+t>p||l?.updating&&u+600>p)return;let m={project:c,id:l?.id,isValid:!0,checked:u,updated:l?.updated??0,updating:!0};n.push(m),a.store.put(m)})),await a.done,Nt.debug(checked. ${n.length} projects maybe need upgrade.)}if(n.length===0)return[];let s=[],i=[];for await(let a of gf(n)){if(!a.ok)switch(o.push({project:a.value.project,isValid:!1}),a.value.name){case"NotFoundError":Nt.warn("${a.value.project}" is not found.);continue;case"NotMemberError":Nt.warn(You are not a member of "${a.value.project}".);continue;case"NotLoggedInError":Nt.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)Nt.debug(no updates in "${a.value.name}");else{let c=await ff(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),Nt.time(write data of "${a.value.name}"),await Lf(l),s.push(a.value.name),Nt.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}},Qr=async e=>{let t=[],r=new Date;{let o=(await Ps()).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 Nt.debug(Read links of ${e.length} projects in ${n}ms),t};vf("userscript-links").catch(e=>console.error(e));var qa=ws("scrapbox-select-suggestion:useSource.ts"),Mf=e=>{let[t,r]=F([]),n=_(o=>{let s=new Date,i=new Map;for(let{project:l,links:u}of o)for(let p of u){let{title:m,updated:d,image:g}=Vr(p),h=K(m),x=i.get(h);i.set(h,{title:x?.title??m,updated:Math.max(x?.updated??0,d),metadata:[...x?.metadata??[],{project:l,image:g}]})}let a=[...i.entries()].map(([l,u])=>({titleLc:l,...u})),c=new Date().getTime()-s.getTime();qa.debug(Compiled ${a.length} source in ${c}ms),r(a)},[]);return B(()=>{let o=!1,s=async()=>{let p=await Qr([...e]);o||n(p)};s();let i,a=new Set,c=Fn([...e],({projects:p})=>{for(let m of p)a.add(m);clearTimeout(i),i=setTimeout(()=>{qa.debug(Detect ${a.size} projects' update),s(),a.clear()},1e4)}),l=async()=>{let p=await Ls([...e],600);p.length===0||o||(qa.debug(Detect ${p.length} projects' update),s())};l();let u=setInterval(l,600*1e3);return()=>{o=!0,clearTimeout(i),clearInterval(u),c()}},[e]),t};var Df=e=>{let t=O(()=>Un(e.style,import.meta.url),[e.style]);return f(G,null,t!==""&&(t instanceof URL?f("link",{rel:"stylesheet",href:t.href}):f("style",null,t)))};var If=()=>f("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*jf(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 Nf=(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(G0(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=q0(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"}},q0=(e,t)=>{for(let{whole:r,start:n}of jf(e))if(!(t<=n||n+[...r].length<=t))return{whole:r,start:n}},G0=(e,t)=>!(t.trim()===""||t.includes(
)||"codeBlock"in e||"title"in e||"tableBlock"in e&&e.tableBlock.start);var $f=()=>{let[e,t]=fn(Nf,{type:"ready"}),r=K0(),n=O(()=>{let c;return l=>{c!==void 0&&clearTimeout(c),c=setTimeout(()=>{let{cursor:u,selection:p}=Ye();t({type:l,lines:r(),range:p.getRange({normalizeOrder:!0}),position:u.getPosition()})},l==="cursor:changed"?100:void 0)}},[]);B(()=>{let c=()=>{n("lines:changed")};return scrapbox.addListener("lines:changed",c),scrapbox.addListener("layout:changed",c),()=>{scrapbox.removeListener("lines:changed",c),scrapbox.removeListener("layout:changed",c)}},[]),B(()=>{let c=()=>{n("selection:changed")},l=Po();return l.addChangeListener(c),()=>l.removeChangeListener(c)},[]),B(()=>{if(e.context!=="input")return;let c=()=>{n("cursor:changed")},l=Bt();return l.addChangeListener(c),()=>l.removeChangeListener(c)},[e.context]);let o=_(c=>t({type:c?"enable":"disable"}),[]),s=_(()=>t({type:"cancel"}),[]),i=_(c=>{t({type:"lock"});let l=c();if(l instanceof Promise)return l.then(()=>{t({type:"unlock"})});t({type:"unlock"})},[]),a=_(async c=>{let l=r();if(!l)return;t({type:"lock"});let{cursor:u,selection:p}=Ye(),m=u.getPosition().line,d=l[m].text,[g,h]=c(d,u.getPosition());p.setRange({start:{line:m,char:0},end:{line:m,char:[...d].length}}),await Ee(g),u.setPosition(h),u.focus(),t({type:"unlock"}),t({type:"cancel"})},[]);return{state:e,setEnable:o,cancel:s,freezeUntil:i,confirmAfter:a}},K0=()=>{let e=ie(scrapbox.Page.lines),t=ie(!1);return B(()=>{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 Of={selectNext:()=>!1,selectPrev:()=>!1,selectFirst:()=>!1,selectLast:()=>!1,confirm:()=>!1,cancel:()=>!1},Af=e=>{let{state:t,setEnable:r,...n}=$f(),o=_(()=>r(!0),[]),s=_(()=>r(!1),[]),i=ie({...Of,enable:o,disable:s}),[a,c]=F();B(()=>{Object.assign(i.current,t.type!=="completion"||!a?Of:a)},[t.type,a]);let{callback:l,style:u,...p}=e;B(()=>l(i.current),[l]);let m=Mf(p.projects);return f(G,null,f(If,null),f(Df,{style:u}),t.type==="completion"&&f(pf,{callback:c,source:m,...t,...n,...p}))};var Uf=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 of(o),Oa(o),new Promise(l=>Ce(f(Af,{limit:n,projects:c,mark:s,style:i,callback:l,enableSelfProjectOnStart:a}),r))};var et=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*Ff(e,t){for(let[r,n]of t.entries()){let o=e.get(r);if(o&&et(o.blocks)===et(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 X0=e=>({type:"title",text:e.rows[0].text}),Y0=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(
)}},Ne=(e,{parseOnNested:t,parseOnQuoted:r,patterns:n})=>(o,s,i)=>{var a,c,l,u,p,m;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+((u=(l=g[0])===null||l===void 0?void 0:l.length)!==null&&u!==void 0?u:0)),y=e((p=g[0])!==null&&p!==void 0?p:"",s);return[...Vt(h,s),...y,...Vt(x,s)]}return(m=i?.())!==null&&m!==void 0?m:[]},Ae=e=>[{type:"plain",raw:e,text:e}],V0=Ne(Ae,{parseOnNested:!0,parseOnQuoted:!0,patterns:[/^()(.*)()$/]}),Q0=/^>.*$/,J0=(e,t)=>t.context==="table"?Ae(e,t):[{type:"quote",raw:e,nodes:Vt(e.substring(1),{...t,quoted:!0})}],Z0=Ne(J0,{parseOnNested:!1,parseOnQuoted:!1,patterns:[Q0]}),eE=/^\? .+$/,tE=(e,t)=>t.context==="table"?Ae(e,t):[{type:"helpfeel",raw:e,text:e.substring(2)}],rE=Ne(tE,{parseOnNested:!1,parseOnQuoted:!1,patterns:[eE]}),nE=/\[\[https?:\/\/[^\s\]]+\.(?:png|jpe?g|gif|svg)\]\]/i,oE=/\[\[https?:\/\/(?:[0-9a-z-]+\.)?gyazo\.com\/[0-9a-f]{32}\]\]/,sE=(e,t)=>{if(t.context==="table")return Ae(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}]},iE=Ne(sE,{parseOnNested:!1,parseOnQuoted:!0,patterns:[nE,oE]}),aE=/\[[^[\]]*\.icon(?:\*[1-9]\d*)?\]/;function Bf(e){return(t,r)=>{if(e==="strongIcon"&&r.context==="table")return Ae(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 cE=Bf("icon"),lE=Ne(cE,{parseOnNested:!0,parseOnQuoted:!0,patterns:[aE]}),pE=/\[\[[^[\]]*\.icon(?:\*\d+)?\]\]/,uE=Bf("strongIcon"),dE=Ne(uE,{parseOnNested:!1,parseOnQuoted:!0,patterns:[pE]}),mE=/\[\[(?:[^[]|\[[^[]).*?\]*\]\]/,fE=(e,t)=>t.context==="table"?Ae(e,t):[{type:"strong",raw:e,nodes:Vt(e.substring(2,e.length-2),{...t,nested:!0})}],gE=Ne(fE,{parseOnNested:!1,parseOnQuoted:!0,patterns:[mE]}),hE=/\[\$ .+? \]/,xE=/\[\$ [^\]]+\]/,bE=(e,t)=>t.context==="table"?Ae(e,t):[{type:"formula",raw:e,formula:e.substring(3,e.length-(e.endsWith(" ]")?2:1))}],yE=Ne(bE,{parseOnNested:!1,parseOnQuoted:!0,patterns:[hE,xE]}),vE=/\[[!"#%&'()*+,\-./{|}<>_~]+ (?:\[[^[\]]+\]|[^\]])+\]/,wE=(e,t)=>{if(t.context==="table")return Ae(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:Vt(o,{...t,nested:!0})}]},kE=Ne(wE,{parseOnNested:!1,parseOnQuoted:!0,patterns:[vE]}),EE=/.*?/,TE=(e,t)=>t.context==="table"?Ae(e,t):[{type:"code",raw:e,text:e.substring(1,e.length-1)}],PE=Ne(TE,{parseOnNested:!1,parseOnQuoted:!0,patterns:[EE]}),SE=/^[$%] .+$/,LE=(e,t)=>{var r;if(t.context==="table")return Ae(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}]},_E=Ne(LE,{parseOnNested:!1,parseOnQuoted:!1,patterns:[SE]}),RE=/\[\s+\]/,CE=(e,t)=>t.context==="table"?Ae(e,t):[{type:"blank",raw:e,text:e.substring(1,e.length-1)}],ME=Ne(CE,{parseOnNested:!1,parseOnQuoted:!0,patterns:[RE]}),DE=/\[https?:\/\/[^\s\]]+\.(?:png|jpe?g|gif|svg)(?:\?[^\]\s]+)?(?:\s+https?:\/\/[^\s\]]+)?\]/i,IE=/\[https?:\/\/[^\s\]]+\s+https?:\/\/[^\s\]]+\.(?:png|jpe?g|gif|svg)(?:\?[^\]\s]+)?\]/i,jE=/\[https?:\/\/(?:[0-9a-z-]+\.)?gyazo\.com\/[0-9a-f]{32}(?:\/raw)?(?:\s+https?:\/\/[^\s\]]+)?\]/,NE=/\[https?:\/\/[^\s\]]+\s+https?:\/\/(?:[0-9a-z-]+\.)?gyazo\.com\/[0-9a-f]{32}(?:\/raw)?\]/,$E=e=>/^https?:\/\/[^\s\]]+\.(png|jpe?g|gif|svg)(\?[^\]\s]+)?$/i.test(e)||OE(e),OE=e=>/^https?:\/\/([0-9a-z-]\.)?gyazo\.com\/[0-9a-f]{32}(\/raw)?$/.test(e),AE=(e,t)=>{if(t.context==="table")return Ae(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]=$E(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}]},UE=Ne(AE,{parseOnNested:!0,parseOnQuoted:!0,patterns:[DE,IE,jE,NE]}),FE=/\[https?:\/\/[^\s\]]+\s+[^\]]*[^\s]\]/,BE=/\[[^[\]]*[^\s]\s+https?:\/\/[^\s\]]+\]/,HE=/\[https?:\/\/[^\s\]]+\]/,zE=/https?:\/\/[^\s]+/,WE=(e,t)=>{if(t.context==="table")return Ae(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()}]},qE=Ne(WE,{parseOnNested:!0,parseOnQuoted:!0,patterns:[FE,BE,HE,zE]}),Hf=/\[([^\]]*[^\s])\s+([NS]\d+(?:\.\d+)?,[EW]\d+(?:\.\d+)?(?:,Z\d+)?)\]/,zf=/\[([NS]\d+(?:\.\d+)?,[EW]\d+(?:\.\d+)?(?:,Z\d+)?)(?:\s+([^\]]*[^\s]))?\]/,GE=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}},KE=(e,t)=>{var r;if(t.context==="table")return Ae(e,t);let n=(r=e.match(Hf))!==null&&r!==void 0?r:e.match(zf);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}=GE(s),u=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:u}]},XE=Ne(KE,{parseOnNested:!1,parseOnQuoted:!0,patterns:[Hf,zf]}),YE=/\[\/?[^[\]]+\]/,VE=e=>{let t=e.substring(1,e.length-1);return[{type:"link",raw:e,pathType:t.startsWith("/")?"root":"relative",href:t,content:""}]},QE=Ne(VE,{parseOnNested:!0,parseOnQuoted:!0,patterns:[YE]}),JE=/(?:^|\s)#\S+/,ZE=(e,t)=>{if(t.context==="table")return Ae(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[...Ae(r,t),{type:"hashTag",raw:n,href:n.substring(1)}]},eT=Ne(ZE,{parseOnNested:!0,parseOnQuoted:!0,patterns:[JE]}),tT=/^[0-9]+\. .*$/,rT=(e,t)=>{if(t.context==="table")return Ae(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:Vt(s,{...t,nested:!0})}]},nT=Ne(rT,{parseOnNested:!1,parseOnQuoted:!1,patterns:[tT]}),oT=(e,t,r)=>{var n;return e===""?[]:(n=r?.())!==null&&n!==void 0?n:[]},sT=(...e)=>(t,r)=>e.reduceRight((n,o)=>()=>o(t,r,n),()=>V0(t,r))(),Vt=sT(oT,Z0,rE,PE,_E,yE,ME,kE,iE,dE,gE,UE,qE,lE,XE,QE,eT,nT),iT=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=>Vt(a,{nested:!1,quoted:!1,context:"table"})))}},aT=e=>{let{indent:t,text:r}=e.rows[0];return{indent:t,type:"line",nodes:Vt(r.substring(t),{nested:!1,quoted:!1,context:"line"})}},Ga=e=>{switch(e.type){case"title":return X0(e);case"codeBlock":return Y0(e);case"table":return iT(e);case"line":return aT(e)}},Ka=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}}),cT=(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)},Wf=(e,t)=>{let r=e[e.length-1];return r!==void 0&&cT(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)},Xa=(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(Wf,[])]}return e.reduce(Wf,[])},Jr=(e,t)=>{var r;let n=Ka(e);return Xa(n,{hasTitle:(r=t?.hasTitle)!==null&&r!==void 0?r:!0}).map(Ga)};var qf=e=>{let t=new Map;if(e.length===0)return t;let r=Xa(Ka(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.rows.length;break;case"codeBlock":{let s=Ga(o);if(s.type!=="codeBlock")throw Error("Must be a codeblock");let i=t.get(s.fileName)??[];i.push(e.slice(n,n+o.rows.length)),t.set(s.fileName,i),n+=o.rows.length;break}}return t};var Gf=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 Ya=class{constructor(t,r){this._filename=t;this._preview=Gf(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||et(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=nr(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}}};var Kf=({previewers:e})=>{let t=new Map,r=()=>{let s=qf(Be());for(let{changed:i,filename:a}of Ff(t,s)){if(!i)continue;let c=s.get(a),l=t.get(a);if(!l){if(!c)continue;let u=e.find(({when:p})=>p.test(a))?.preview;if(!u)continue;l=new Ya(a,u),t.set(a,l)}l.update(c).then(u=>{switch(u.type){case"resolve":u.value&&t.delete(a);return;case"reject":throw u.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 Bn=e=>{let t=new FileReader,r=new Promise(n=>t.onload=()=>n(t.result));return t.readAsDataURL(e),r};var Xf=async e=>{if(!("after"in e))return;let t=et(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 Bn(new Blob([t],{type:"image/svg+xml"})),s=document.createElement("img");s.src=o,e.render(s)};var Ja={};ln(Ja,{default:()=>eg});var Yf=globalThis||(typeof window!="undefined"?window:self),AT=Object.create,Va=Object.defineProperty,UT=Object.getOwnPropertyDescriptor,FT=Object.getOwnPropertyNames,BT=Object.getPrototypeOf,HT=Object.prototype.hasOwnProperty,zT=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),WT=(e,t)=>{for(var r in t)Va(e,r,{get:t[r],enumerable:!0})},Qa=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of FT(t))!HT.call(e,o)&&o!==r&&Va(e,o,{get:()=>t[o],enumerable:!(n=UT(t,o))||n.enumerable});return e},qT=(e,t,r)=>(Qa(e,t,"default"),r&&Qa(r,t,"default")),Vf=(e,t,r)=>(r=e!=null?AT(BT(e)):{},Qa(t||!e||!e.__esModule?Va(r,"default",{value:e,enumerable:!0}):r,e)),Qf=zT((e,t)=>{var r;typeof window<"u"?r=window:typeof Yf<"u"?r=Yf:typeof self<"u"?r=self:r={},t.exports=r}),Jf={};WT(Jf,{default:()=>eg});var GT=Vf(Qf());qT(Jf,Vf(Qf()));var{default:Zf,...KT}=GT,eg=Zf!==void 0?Zf:KT;var tc={};ln(tc,{default:()=>sg});var XT=Object.create,Za=Object.defineProperty,YT=Object.getOwnPropertyDescriptor,VT=Object.getOwnPropertyNames,QT=Object.getPrototypeOf,JT=Object.prototype.hasOwnProperty,ZT=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),eP=(e,t)=>{for(var r in t)Za(e,r,{get:t[r],enumerable:!0})},ec=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of VT(t))!JT.call(e,o)&&o!==r&&Za(e,o,{get:()=>t[o],enumerable:!(n=YT(t,o))||n.enumerable});return e},tP=(e,t,r)=>(ec(e,t,"default"),r&&ec(r,t,"default")),tg=(e,t,r)=>(r=e!=null?XT(QT(e)):{},ec(t||!e||!e.__esModule?Za(r,"default",{value:e,enumerable:!0}):r,e)),rg=ZT((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)}}),ng={};eP(ng,{default:()=>sg});var rP=tg(rg());tP(ng,tg(rg()));var{default:og,...nP}=rP,sg=og!==void 0?og:nP;var oc={};ln(oc,{default:()=>pg});var oP=Object.create,rc=Object.defineProperty,sP=Object.getOwnPropertyDescriptor,iP=Object.getOwnPropertyNames,aP=Object.getPrototypeOf,cP=Object.prototype.hasOwnProperty,lP=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),pP=(e,t)=>{for(var r in t)rc(e,r,{get:t[r],enumerable:!0})},nc=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of iP(t))!cP.call(e,o)&&o!==r&&rc(e,o,{get:()=>t[o],enumerable:!(n=sP(t,o))||n.enumerable});return e},uP=(e,t,r)=>(nc(e,t,"default"),r&&nc(r,t,"default")),ig=(e,t,r)=>(r=e!=null?oP(aP(e)):{},nc(t||!e||!e.__esModule?rc(r,"default",{value:e,enumerable:!0}):r,e)),ag=lP((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(":"),u=r(c.slice(0,l)).toLowerCase(),p=r(c.slice(l+1));typeof s[u]>"u"?s[u]=p:n(s[u])?s[u].push(p):s[u]=[s[u],p]}return s}}),cg={};pP(cg,{default:()=>pg});var dP=ig(ag());uP(cg,ig(ag()));var{default:lg,...mP}=dP,pg=lg!==void 0?lg:mP;var ac={};ln(ac,{default:()=>gg});var fP=Object.create,sc=Object.defineProperty,gP=Object.getOwnPropertyDescriptor,hP=Object.getOwnPropertyNames,xP=Object.getPrototypeOf,bP=Object.prototype.hasOwnProperty,yP=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),vP=(e,t)=>{for(var r in t)sc(e,r,{get:t[r],enumerable:!0})},ic=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of hP(t))!bP.call(e,o)&&o!==r&&sc(e,o,{get:()=>t[o],enumerable:!(n=gP(t,o))||n.enumerable});return e},wP=(e,t,r)=>(ic(e,t,"default"),r&&ic(r,t,"default")),ug=(e,t,r)=>(r=e!=null?fP(xP(e)):{},ic(t||!e||!e.__esModule?sc(r,"default",{value:e,enumerable:!0}):r,e)),dg=yP((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}}),mg={};vP(mg,{default:()=>gg});var kP=ug(dg());wP(mg,ug(dg()));var{default:fg,...EP}=kP,gg=fg!==void 0?fg:EP;var Zr=e=>{let t=n=>typeof n.default<"u"?n.default:n,r=n=>Object.assign({},n);switch(e){case"global/window":return t(Ja);case"is-function":return t(tc);case"parse-headers":return t(oc);case"xtend":return t(ac);default:throw new Error('module "'+e+'" not found')}},TP=Object.create,cc=Object.defineProperty,PP=Object.getOwnPropertyDescriptor,SP=Object.getOwnPropertyNames,LP=Object.getPrototypeOf,_P=Object.prototype.hasOwnProperty,_s=(e=>typeof Zr<"u"?Zr:typeof Proxy<"u"?new Proxy(e,{get:(t,r)=>(typeof Zr<"u"?Zr:t)[r]}):e)(function(e){if(typeof Zr<"u")return Zr.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')}),RP=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),CP=(e,t)=>{for(var r in t)cc(e,r,{get:t[r],enumerable:!0})},lc=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of SP(t))!_P.call(e,o)&&o!==r&&cc(e,o,{get:()=>t[o],enumerable:!(n=PP(t,o))||n.enumerable});return e},MP=(e,t,r)=>(lc(e,t,"default"),r&&lc(r,t,"default")),hg=(e,t,r)=>(r=e!=null?TP(LP(e)):{},lc(t||!e||!e.__esModule?cc(r,"default",{value:e,enumerable:!0}):r,e)),xg=RP((e,t)=>{"use strict";var r=_s("global/window"),n=_s("is-function"),o=_s("parse-headers"),s=_s("xtend");t.exports=l,t.exports.default=l,l.XMLHttpRequest=r.XMLHttpRequest||m,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(),u(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),u(g)}function u(d){if(typeof d.callback>"u")throw new Error("callback argument missing");var g=!1,h=function(N,A,I){g||(g=!0,d.callback(N,A,I))};function x(){b.readyState===4&&setTimeout(T,0)}function y(){var N=void 0;if(b.response?N=b.response:N=b.responseText||p(b),P)try{N=JSON.parse(N)}catch{}return N}function E(N){return clearTimeout(L),N instanceof Error||(N=new Error(""+(N||"Unknown XMLHttpRequest Error"))),N.statusCode=0,h(N,j)}function T(){if(!k){var N;clearTimeout(L),d.useXDR&&b.status===void 0?N=200:N=b.status===1223?204:b.status;var A=j,I=null;return N!==0?(A={body:y(),statusCode:N,method:C,headers:{},url:R,rawRequest:b},b.getAllResponseHeaders&&(A.headers=o(b.getAllResponseHeaders()))):I=new Error("Internal XMLHttpRequest Error"),h(I,A,A.body)}}var b=d.xhr||null;b||(d.cors||d.useXDR?b=new l.XDomainRequest:b=new l.XMLHttpRequest);var w,k,R=b.url=d.uri||d.url,C=b.method=d.method||"GET",M=d.body||d.data,D=b.headers=d.headers||{},S=!!d.sync,P=!1,L,j={body:void 0,headers:{},statusCode:0,method:C,url:R,rawRequest:b};if("json"in d&&d.json!==!1&&(P=!0,D.accept||D.Accept||(D.Accept="application/json"),C!=="GET"&&C!=="HEAD"&&(D["content-type"]||D["Content-Type"]||(D["Content-Type"]="application/json"),M=JSON.stringify(d.json===!0?M:d.json))),b.onreadystatechange=x,b.onload=T,b.onerror=E,b.onprogress=function(){},b.onabort=function(){k=!0},b.ontimeout=E,b.open(C,R,!S,d.username,d.password),S||(b.withCredentials=!!d.withCredentials),!S&&d.timeout>0&&(L=setTimeout(function(){if(!k){k=!0,b.abort("timeout");var N=new Error("XMLHttpRequest timeout");N.code="ETIMEDOUT",E(N)}},d.timeout)),b.setRequestHeader)for(w in D)D.hasOwnProperty(w)&&b.setRequestHeader(w,D[w]);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(M||null),b}function p(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 m(){}}),bg={};CP(bg,{default:()=>Rs});var DP=hg(xg());MP(bg,hg(xg()));var{default:yg,...IP}=DP,Rs=yg!==void 0?yg:IP;var Cs=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},wQ=function(){function e(r){this.value=r}function t(r){var n,o;function s(c,l){return new Promise(function(u,p){var m={key:c,arg:l,resolve:u,reject:p,next:null};o?o=o.next=m:(n=o=m,i(c,l))})}function i(c,l){try{var u=r[c](l),p=u.value;p instanceof e?Promise.resolve(p.value).then(function(m){i("next",m)},function(m){i("throw",m)}):a(u.done?"return":"normal",u.value)}catch(m){a("throw",m)}}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)}}}(),vg=function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")},wg=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}}(),pc=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)},Hn="";function jP(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 NP=
This page requires a browser that supports WebGL.<br/>
,$P=
It does not appear your computer can support WebGL.<br/>
,OP=1,AP=2;function UP(e,t,r){function n(i){var a=e.parentNode;a&&(a.innerHTML=jP(i))}function o(i,a){typeof r=="function"?r(i):n(a)}if(!window.WebGLRenderingContext)return o(OP,NP),null;var s=FP(e,t);return s?s.getExtension("OES_standard_derivatives"):o(AP,$P),s}function FP(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 en(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:(Hn=o.getShaderInfoLog(s),console.error("*** Error compiling shader "+s+":"+Hn),e.trigger("error",{shader:s,source:t,type:r,error:Hn,offset:n||0}),o.deleteShader(s),null)}function kg(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:(Hn=o.getProgramInfoLog(s),console.log("Error in program linking:"+Hn),o.deleteProgram(s),null)}function uc(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(Cs(o[0])==="object")for(s=0;s<o.length;s++)r.push.apply(r,pc(uc(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":Cs(o))==="object"&&r.push.apply(r,pc(uc(o,n)))}return r}function BP(e){var t=e.getBoundingClientRect();return t.top+t.height>0&&t.top<(window.innerHeight||document.documentElement.clientHeight)}function Eg(e){return(e&e-1)==0}function HP(){return/^((?!chrome|android).)*safari/i.test(navigator.userAgent)}function zP(e,t){return e&&t?e.toString()!==t.toString():!1}function WP(e){var t=new XMLHttpRequest;return t.open("GET",e,!1),t.send(),t.status==200?t.responseText:""}function Tg(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 u=l.value,p=!0,m=!1,d=void 0;try{for(var g=Object.keys(u)[Symbol.iterator](),h;!(p=(h=g.next()).done);p=!0){var x=h.value;if(x===r){t.delete(u);return}}}catch(y){m=!0,d=y}finally{try{!p&&g.return&&g.return()}finally{if(m)throw d}}}}catch(y){i=!0,a=y}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](),u;!(i=(u=l.next()).done);i=!0){var p=u.value;typeof p[r]=="function"&&p[r].apply(p,pc(o))}}catch(m){a=!0,c=m}finally{try{!i&&l.return&&l.return()}finally{if(a)throw c}}}})}var dc=function(){function e(t,r){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};vg(this,e),Tg(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 wg(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)},HP()&&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=Eg(this.width)&&Eg(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}();dc.getMaxTextureSize=function(e){return e.getParameter(e.MAX_TEXTURE_SIZE)};dc.activeUnit=-1;var Pg=function(){function e(t,r,n){var o=this;vg(this,e),Tg(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=UP(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");Rs.get(i,function(h,x,y){o.load(y,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");Rs.get(a,function(h,x,y){o.load(o.fragmentString,y)})}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 u=t.getAttribute("data-textures").split(",");for(var p in u)this.setUniform("u_tex"+p,u[p])}var m={x:0,y:0};document.addEventListener("mousemove",function(h){m.x=h.clientX||h.pageX,m.y=h.clientY||h.pageY},!1);var d=this;function g(){d.nMouse>1&&d.setMouse(m),d.resize()&&(d.forceRender=!0),d.render(),d.animationFrameRequest=window.requestAnimationFrame(g)}return this.setMouse({x:0,y:0}),g(),this}return wg(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 y=h.trim();if(y.startsWith('#include "lygia')){var E=y.substring(15).replace(/\'|\"|\;|\s/g,"");if(E.endsWith("glsl")){if(n.deps[E]===void 0){var T="https://lygia.xyz"+E;n.deps[E]=WP(T)}n.fragmentString+=n.deps[E]+
}}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 u=i[a].match(/\s*void\s*main\s*/g);if(u)break}var p=en(this,this.vertexString,this.gl.VERTEX_SHADER),m=en(this,this.fragmentString,this.gl.FRAGMENT_SHADER);m?this.isValid=!0:(m=en(this,void main(){
gl_FragColor = vec4(1.0);
},this.gl.FRAGMENT_SHADER),this.isValid=!1);var d=kg(this,[p,m]);this.gl.useProgram(d),this.gl.deleteShader(p),this.gl.deleteShader(m),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 u=this;function p(){u.paused=i,(r||n)&&u.load(s,o)}function m(){u.forceRender=!0,u.render();var d=a.getQueryObjectEXT(c,a.QUERY_RESULT_AVAILABLE_EXT),g=u.gl.getParameter(a.GPU_DISJOINT_EXT);if(d&&!g){var h={wasValid:l,frag:r||u.fragmentString,vert:n||u.vertexString,timeElapsedMs:a.getQueryObjectEXT(c,a.QUERY_RESULT_EXT)/1e6};p(),t(h)}else window.requestAnimationFrame(m)}m()}},{key:"loadTexture",value:function(t,r,n){var o=this;n||(n={}),typeof r=="string"?n.url=r:(typeof r>"u"?"undefined":Cs(r))==="object"&&r.data&&r.width&&r.height?(n.data=r.data,n.width=r.width,n.height=r.height):(typeof r>"u"?"undefined":Cs(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 dc(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=uc(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=zP(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 u=this.buffers[l];this.gl.useProgram(u.program);var p=this.gl.getUniformLocation(u.program,n);this.gl[o.method].apply(this.gl,[p].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=BP(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=en(r,r.vertexString,n.VERTEX_SHADER);for(var s in t){var i=t[s],a=en(r,i.fragment,n.FRAGMENT_SHADER,1);a?r.isValid=!0:(a=en(r,void main(){
gl_FragColor = vec4(1.0);
},n.FRAGMENT_SHADER),r.isValid=!1);var c=kg(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,u){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,u){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 u=Math.min(c,this.W),p=Math.min(l,this.H),m=new Float32Array(u*p*4);o.readPixels(0,0,u,p,o.RGBA,o.FLOAT,m),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,u,p,o.RGBA,o.FLOAT,m);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 qP(){var e=document.getElementsByClassName("glslCanvas");if(e.length>0){window.glslCanvases=[];for(var t=0;t<e.length;t++){var r=new Pg(e[t]);r.isValid&&window.glslCanvases.push(r)}}}window.addEventListener("load",function(){qP()});var Ms=Pg;var Sg=e=>{if(!("after"in e))return Promise.resolve(void 0);let t=document.createElement("canvas");return new Ms(t).load(et(e.after)),e.render(t),Promise.resolve(void 0)};var Lg=e=>{let t="";for(let r=0;r<e.length;r+=3)r+2===e.length?t+=mc(e[r],e[r+1],0):r+1===e.length?t+=mc(e[r],0,0):t+=mc(e[r],e[r+1],e[r+2]);return t},Ds=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?"_":"?"))),mc=(e,t,r)=>{let n=e>>2,o=(e&3)<<4|t>>4,s=(t&15)<<2|r>>6,i=r&63;return Ds(n&63)+Ds(o&63)+Ds(s&63)+Ds(i&63)};var _g=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${Lg(n)}};var Rg=async e=>{if(!("after"in e))return;let t=document.createElement("img"),r=await _g(et(e.after));t.src=r,e.render(t)};var fc=Promise.resolve({log:new Uint8Array(0)}),Is,Cg=(e,t,r,n)=>(fc=(async()=>{await fc,Is??=await GP(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),Is.removeEventListener("message",a))};Is.addEventListener("message",a)}),s={type:"compile",input:e};return Is.postMessage(s),o})(),fc),GP=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 Mg=(e,t)=>async r=>{if(!("after"in r))return;let n=KP(),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 Cg(et(r.after),e,t,s);if(clearTimeout(a),!c){r.render(n.div),n.log(o);return}i.src=await Bn(new Blob([c],{type:"image/svg+xml"})),r.render(i)},KP=()=>{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 Dg=(e,t,r=0,n=[])=>{let[o,s]=F("uninitialized"),[i,a]=F({ok:!0,value:t}),c=_(e,n);return B(()=>{(async()=>{let l=setTimeout(()=>s("pending"),r);try{let u=await c();if(u===void 0)return;a({ok:!0,value:u})}catch(u){a({ok:!1,value:u})}finally{clearTimeout(l),s("resolved")}})()},[c,r,...n]),i.ok?{result:i.value,state:o}:{result:i.value,state:"rejected"}};var Ig=e=>{let t=e.flatMap(({changes:o,created:s,userId:i})=>o.flatMap(a=>{let c=XP(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:u})=>u===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}},XP=(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 jg=async(e,t)=>{let r=await fetch(/api/commits/${e}/${t}),{commits:n}=await r.json();return Ig(n)},Ng=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 $g=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=>Ce(f(YP,{getController:o=>n(o)}),r))},YP=({getController:e})=>{let[t,r]=F(!0),n=_(()=>r(!1),[]),o=_(()=>r(!0),[]),s=_(()=>r(g=>!g),[]);B(()=>e({open:n,close:o,toggle:s}),[e]);let i=_(g=>{g.target instanceof HTMLElement&&g.target.id==="background"&&o()},[]),{state:a,result:c}=Dg(async()=>{if(t||scrapbox.Layout!=="page")return;let[g,h]=await Promise.all([jg(scrapbox.Project.name,scrapbox.Page.id),Ng(scrapbox.Project.name,scrapbox.Page.id)]);return{range:[...h.range,...g.range],getSnapshot:x=>g.range.includes(x)?g.history.flatMap(({snapshots:y})=>{let E=y.get(x);if(E)return E.text===void 0?[]:[E.text];let T=Math.max(...[...y.keys()].filter(w=>w<x));if(T===x)return[];let b=y.get(T)?.text;return b===void 0?[]:[b]}):h.pages.get(x)?.map?.(y=>y.text)??[]}},{range:[],getSnapshot:()=>[]},1e3,[t]),[l,u]=F(0),[p,m]=F(0);B(()=>{if(a!=="resolved")return;let g=Math.max(0,c.range.length-1);u(g),m(g)},[c]);let d=_(g=>m(parseInt(g.currentTarget.value)),[]);return f(G,null,f("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}'),f("div",{id:"background",className:modal${t?" closed":""},onClick:i},f("div",{className:"controller"},f("button",{className:"close-button",onClick:o},"x"),a==="resolved"&&c.range.length===0&&f("span",{className:"not-found"},"no history found."),a!=="rejected"&&c.range.length>0&&f(G,null,f("input",{type:"range",max:l,min:"0",step:"1",value:p,title:Q(new Date(c.range[p]*1e3),"yyyy-MM-dd HH:mm:ss"),onInput:d}),f("time",{dateTime:Q(new Date(c.range[p]*1e3),"yyyy-MM-dd HH:mm:ss")},Q(new Date(c.range[p]*1e3),"yyyy-MM-dd HH:mm:ss")))),a!=="rejected"?f("div",{className:"viewer"},f("pre",null,c.getSnapshot(c.range[p]).join(
))):f("div",{className:"error viewer"},Error: ${JSON.stringify(c)})))};var $t=()=>/mobile/i.test(navigator.userAgent);function*gc(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 Og=async(e,t,r)=>{if(e.length===0||e.every(({before:o,after:s})=>o===s))return;let n=await $e();try{let o=gc(5,e,async s=>{let i=0,a=0;s.before===s.after&&r({link:s,projectCount:0,replaced:0,done:!0});let c=gc(2,[...new Set(t)],async l=>{let u=await VP(s,l,n);if(!u.ok)throw QP(u.value);i++,a+=u.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 we(n)}},VP=async(e,t,r)=>{let[n]=await Promise.all([Lo(t,e.before,e.after),re(t,e.before,(o,{persistent:s})=>{if(!!s)return[e.after,...o.map(i=>i.text).slice(1)]},{socket:r})]);return n},Lr=e=>e.split(
).flatMap(t=>[...t.matchAll(/\[((?:[^\[!"#%&'()\*\+,\-\.\/\{\|\}<>_~] |.[^ ]*)[^\[\]]*)\]/g)]).map(([,t])=>t),QP=e=>{let t=new Error;return t.name=e.name,t.message=e.message,t};var Ag=e=>rt(e,{hasTitle:!1}).flatMap(r=>{switch(r.type){case"title":return[];case"codeBlock":return JP(r);case"table":return ZP(r);case"line":return eS(r)}}).map(r=>r).join(
),JP=({fileName:e,content:t,indent:r})=>{let n=" ".repeat(r);return[${n}code:${e},...t.split(
).map(o=>${n} ${o})]},ZP=({fileName:e,cells:t,indent:r})=>{let n=" ".repeat(r);return[${n}table:${e},...t.map(o=>${n} ${o.map(s=>s.map(i=>zn(i)).join("")).join(" ")})]},eS=({nodes:e,indent:t})=>[${" ".repeat(t)}${e.map(r=>${zn(r)}).join("")}],zn=e=>{switch(e.type){case"quote":return> ${e.nodes.map(t=>zn(t)).join("")};case"strong":return${e.nodes.map(t=>zn(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=>zn(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=>Lr(e).length>0?"":"",onClick:e=>{let t=Ag(e);if(e!=t)return t}});var Ug=e=>!e.includes(
)&&/\[[^\]]+\]/.test(e);scrapbox.PopupMenu.addButton({title:e=>Ug(e)?"[][]":"",onClick:e=>{if(!Ug(e))return;let t=e.replaceAll("[","").replaceAll("]","");return(async()=>{let{render:r,dispose:n}=le();try{let o=scrapbox.Project.name;r({type:"spinner"},{type:"text",text:create /${o}/${t}}),await re(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 ce(2e3),n()}})(),${t}}});var Fg=(e,t)=>{switch(e.type){case"title":return"";case"codeBlock":return[e.fileName, \\`\`${sS(e.fileName)},e.content,"\n"].join(
);case"table":return tS(e);case"line":return nS(e,t)}},tS=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=>tn(i)).join("")).join(" | ")} |),o===0&&t.push(|${" -- |".repeat(r)})}),t.join(
)},rS=" ",nS=(e,t)=>{let r=e.nodes.map(o=>tn(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},tn=(e,t)=>{let{section:r=!1}=t??{};switch(e.type){case"quote":return> ${e.nodes.map(n=>tn(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=>tn(n)).join("")}**;case"formula":return$${e.formula}$;case"decoration":{let n=e.nodes.map(o=>tn(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=>tn(n)).join("")};case"blank":case"plain":return e.text}},oS=[{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"}],sS=e=>{let t=e.replace(/^.*\.(\w+)$/,"$1");return oS.find(r=>r.extensions.includes(t))?.fileType??""};scrapbox.PopupMenu.addButton({title:"",onClick:e=>{(async()=>{try{let t=Ir.parse(e,{hasTitle:!1}),r=Math.min(...t.map(n=>n.indent));await navigator.clipboard.writeText(t.map(n=>Fg(n,r)).join(` ))}catch(t){alert(Failed to copy:
${JSON.stringify(t)})}})()}});var Ot=e=>typeof e=="string";var hc=(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 rn=e=>e.ok?void 0:{name:"HTTPError",message:${e.status} ${e.statusText},response:e};var Bg=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=rn(r);if(n)return{ok:!1,value:n};let o=await r.json();return{ok:!0,value:o}})()};var js=e=>{let{fetch:t=globalThis.fetch,...r}=e;return{fetch:t,...r}},Hg=e=>typeof e=="object"&&e!==null;var nn=class extends Error{constructor(t){super(${t.status} ${t.statusText} when fetching ${t.path.toString()});this.name="UnexpectedResponseError";this.status=t.status,this.statusText=t.statusText,this.body=t.body,this.path=t.path,Error.captureStackTrace&&Error.captureStackTrace(this,nn)}};var Ns=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(!Hg(r)||typeof r.message!="string")throw new nn({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 nn({status:e.status,statusText:e.statusText,body:t,path:new URL(e.url)})}}catch(r){throw r instanceof SyntaxError?new nn({status:e.status,statusText:e.statusText,body:t,path:new URL(e.url)}):r}};var zg=async(e,t)=>{let{title:r,description:n,metadataIsPublic:o,collectionId:s,refererURL:i,accessToken:a,created:c,app:l,fetch:u}=js(t),p=new FormData;p.append("imagedata",e),p.append("access_token",a),i&&p.append("referer_url",i.toString()),l!==void 0&&p.append("app",l),r!==void 0&&p.append("title",r),n!=null&&p.append("desc",n),s&&p.append("collection_id",s),o&&p.append("metadata_is_public","true"),c!==void 0&&p.append("created_at",${c});let m=await u("https://upload.gyazo.com/api/upload",{method:"POST",mode:"cors",credentials:"omit",body:p}),d=await Ns(m);return d.ok?{ok:!0,value:JSON.parse(d.value)}:d};var Wg=(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 $s="",qg=!1,Os=new Map,Gg=async(e,t,r,n)=>{let o=Os.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",u=new File([await c.blob()],n||${t},{type:l});if(l==="video/mp4"){let d=await Wg(u);if(d.ok){let g=new URL(await d.text());return Os.set(e.href,g),g}}let p=await wp(u,r);if(!p.ok)throw Error(p.value.name);let m=new URL(p.value.embedUrl);return Os.set(e.href,m),m}if(e.hostname!=="pbs.twimg.com"||!e.pathname.startsWith("/media"))return;if(qg){if(!$s)return}else{let c=await gp();if(qg=!0,!c.ok){alert("You haven't logged in Gyazo yet, so you can only upload images to scrapbox.io.");return}if($s=c.value||"",!$s){alert("You haven't connect Gyazo to scrapbox.io yet.");return}}let s=await GM_fetch(e);if(!s.ok)return;let i=await zg(await s.blob(),{accessToken:$s,refererURL:t,description:n});if(!i.ok)throw Error(i.value.name);let a=new URL(i.value.permalink_url);return Os.set(e.href,a),a};var iS={"<":"<",">":">","&":"&",""":'"',"'":"'","`":""},xc=e=>e.replace(/&(lt|gt|amp|quot|#x27|#x60);/g,t=>iSt);var As=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,u="STRING";c?.type===u&&(a.description=c.string_value),l?.type===u&&(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 u=...a.slice(0,c0-i).join("");o.push({type:"plain",text:xc(u)}),o.push(l),a=...a.slice(c1-i).join(""),i=c1}a&&o.push({type:"plain",text:xc(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=As(e.parent)),e.quoted_tweet&&(s.quote=As(e.quoted_tweet)),s};var aS="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",Us=(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||aS.includes(n)?r:o?n===e?[${decodeURIComponent(o)}]:[/${n}/${decodeURIComponent(o)}]:[/${n}]};var Kg=(e=cS)=>t=>{let,r=t.href.match(/^https:\/\/(?:(?:www\.|mobile\.|m\.)?twitter|x)\.com\/\w\d_+\/(?:status|statuses)\/(\d+)/)??[];return r?(async()=>{let n=await(Bg(r)??fp(t.href));if(!n.ok)throw n.value;return e("images"in n.value?{...n.value,id:r}:n.value,t)})():t},cS=async e=>{if("images"in e)return Wn(e);let{quote:t,replyTo:r,...n}=As(e);return[...r?[...(await Wn(r)).split(` ).map(o=> > ${o}),...r.quote?(await Wn(r.quote)).split(
).map(o=> > ${o}):[]]:[],...(await Wn(n)).split(
).map(o=>> ${o}),...t?(await Wn(t)).split(
).map(o=>> > ${o}):[]].join(
)?.map?.(o=>> ${yc(o)})??["> [/ no description provided]"],...e.images.length>0?[> ${e.images.map(o=>[${o}])}]:[]].join(
);let r=e.content,n=e.author.screenName;return[@${yc(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 bc(o.mediai-1,t)}] [${await bc(o.mediai,t)}]);return i===o.media.length&&s.push([${await bc(o.mediai-1,t)}]), ${s.join(`
`)}
}case"url":return${Us()(o.url)} }}))).join("").split(
)].join(
)},Fs="",lS=async()=>{if(Fs)return Fs;let e=await dt(scrapbox.Project.name);if(!e.ok)throw new Error(e.value.name);return Fs=e.value.id,Fs},bc=async(e,t)=>await Gg(e.url,t,await lS(),"")??e.url,yc=e=>e.replace(/\b/gm,"").replace(/[\s\r\n\u2028\u2029]+/gm," ").replace(/\s*[[\]]\s*/g," ").trim();var Xg=e=>{if(!window.GM_fetch)return;let t=window.GM_fetch;return(async()=>{let r=await t(https://t.co/${e}),n=rn(r);if(n)return{ok:!1,value:n};let o=new DOMParser().parseFromString(await r.text(),"text/html");return{ok:!0,value:o.title}})()};var Yg=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=Xg(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 Vg=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 Qg=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 vc=e=>{if(!e.hostname.startsWith("www.google."))return e;let t=e.searchParams.get("url");return t?new URL(decodeURIComponent(t)):e};var Jg=/charset=(^;+)/,Zg=e=>{if(!window.GM_fetch)return;let t=window.GM_fetch;return(async()=>{let r=await t(${e}),n=rn(r);if(n)return{ok:!1,value:n};let o=r.headers.get("content-type")?.match?.(Jg)?.1??await pS(r.clone()),s=new TextDecoder(o).decode(await r.arrayBuffer());return{ok:!0,value:s}})()},pS=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?.(Jg)?.1??"utf-8"};var eh=(e=uS)=>async t=>e(await dS(t),t),uS=(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}},dS=async e=>{let t=Zg(e);if(!t){let n=await mp(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 th=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 rh=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 nh=(e,...t)=>{if(e instanceof URL)return hc(new URL(e),...t);let r=0,n=0,o=0,s=!1,i=e.split(/(https?:\/\/\S+)/g).map(u=>{if(!/^https?:\/\/\S+$/.test(u))return u;r++;try{let p=hc(new URL(u),...t);return Ot(p)?(n++,p):(s=!0,p,u)}catch(p){return console.error(p),o++,u}});if(!s)return i.join("");let{render:a,dispose:c}=le(),l=()=>a({type:"spinner"},{type:"text",text:URL: ${n}/${r} converted, ${o} failed});return l(),Promise.all(i.map(async u=>{if(Ot(u))return u;try{let p=await u0;return n++,p}catch(p){return console.error(p),o++,u1}finally{l()}})).then(u=>(a({type:"check-circle"},{type:"text",text:URL: ${n}/${r} converted, ${o} failed}),u.join(""))).finally(()=>{setTimeout(c,1e3)})};var oh=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 sh=e=>Jr(e,{hasTitle:!1}).flatMap(r=>{switch(r.type){case"title":return[];case"codeBlock":return mS(r);case"table":return fS(r);case"line":return gS(r)}}).map(r=>r).join(` ),mS=({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(" ")})]},gS=({nodes:e,indent:t})=>[${" ".repeat(t)}${e.map(r=>${qn(r)}).join("")}],qn=e=>{switch(e.type){case"quote":return> ${e.nodes.map(t=>qn(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=>qn(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=>qn(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=>qn(t)).join("")};case"blank":case"plain":return${e.text}}};scrapbox.PopupMenu.addButton({title:"",onClick:e=>{let t=sh(e);if(e!==t)return t}});var wc=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=>wc(e)?"replace":"",onClick:e=>{let t=wc(e);if(t!==void 0)return t}});var ih=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(u=>[...u].length))+6}em};i(),s.addEventListener("input",i);let a=o.querySelector(".cancel"),c=o.querySelector(".replace"),l=new Promise(u=>{let p=()=>{u({convert:!1}),t.remove()};o.addEventListener("close",p),o.addEventListener("click",p),a.addEventListener("click",p),c.addEventListener("click",()=>{let m=s.value.split(`
);u({convert:!0,links:e.flatMap((d,g)=>d===m[g]||d===""||!m[g]?[]:[{before:d,after:m[g]??d}])}),t.remove()}),o.querySelector(".container").addEventListener("click",m=>{m.stopPropagation()})});return document.body.append(t),o.showModal(),l};var ah=async(e,t)=>{let r=Lr(e),n=await ih([...new Set(r)]);if(!n.convert||n.links.length===0)return;let o=new Map(n.links.map(s=>[s.before,le()]));await Og(n.links,t,s=>{let{link:i,projectCount:a,replaced:c,done:l}=s,u=o.get(i.before);if(!!u){if(l){u.render({type:"check-circle"},{type:"text",text:"${i.after}", ${c}l. ${a}p.}),setTimeout(()=>u.dispose(),1e3);return}u.render({type:"spinner"},{type:"text",text:"${i.after}", ${c}l. ${a}p.})}})};async function ch(e,t){let r=hS(e);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}=le(),i=await $e();try{o({type:"spinner"},{type:"text",text:Replacing links in ${t.length} projects...});let a=0,l=(await Promise.all(t.map(async u=>{let[p]=await Promise.all([Lo(u,r,n),re(u,r,(m,{persistent:d})=>{if(!!d)return[n,...m.map(g=>g.text).slice(1)]},{socket:i})]);if(!p.ok)throw o({type:"exclamation-triangle"},{type:"text",text:${p.value.name} ${p.value.message}}),xS(p.value);return a++,o({type:"spinner"},{type:"text",text:Replacing links in ${t.length-a} projects...}),p.value}))).reduce((u,p)=>u+p,0);o({type:"check-circle"},{type:"text",text:Successfully replaced ${l} links.})}finally{await we(i),setTimeout(s,1e3)}}function hS(e){return e.match(/\[([^\[!"#%&'()\*\+,\-\.\/\{\|\}<>_~][^\[\]]*)\]/)?.[1]}function xS(e){let t=new Error;return t.name=e.name,t.message=e.message,t}var lh=e=>{let t=[scrapbox.Project.name,...e];scrapbox.PopupMenu.addButton({title:r=>{let n=Lr(r).length;return n>1?"update links":n===1?"update a link":""},onClick:r=>{let n=Lr(r).length;n>1?ah(r,t):n===1&&ch(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 ph=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+=Gn(${o!==r?"\\item":""}\\begin{itemize},o*2)+ ;if(n.indent<r)for(let o=r;o>n.indent;o--)t+=Gn("\\end{itemize}",(o-1)*2)+
;r=n.indent,t+=Gn(${r>0?"\\item ":""}${bS(n)},r*2)+
}for(let n=r;n>0;n--)t+=Gn("\\end{itemize}",(n-1)*2)+
${e.content}
\\end{lstlisting},vS=e=>{let t=\\caption{${Ke(e.fileName)}}\\label{table:${Ke(e.fileName)}},r=Math.max(...e.cells.map(o=>o.length)),n=e.cells.map(o=> ${o.map(s=>s.map(i=>on(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}},wS=e=>e.nodes.map(t=>on(t)).join(""),on=e=>{switch(e.type){case"quote":return\\begin{quote}
${Gn(e.nodes.map(t=>on(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{${Ke(e.path)}};case"strong":return\\textbf{${e.nodes.map(t=>on(t)).join("")}};case"formula":return$${e.formula}$;case"decoration":{let t=e.nodes.map(r=>on(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=>on(t)).join("")};case"helpfeel":return\\lstinline!? ${Ke(e.text)}!;case"code":return\\lstinline!${Ke(e.text)}!;case"commandLine":return\\lstinline!${Ke(e.symbol)} ${Ke(e.text)}!;case"link":return e.pathType==="absolute"?e.content===""?\\url{${e.href}}:\\href{${e.href}}{${Ke(e.content)}}:Ke(e.href);case"googleMap":return\\href{${e.url}}{${Ke(e.place)}};case"hashTag":return Ke(#${e.href});case"blank":case"plain":return Ke(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"}],ES=e=>{let t=e.replace(/^.*\.(\w+)$/,"$1");return kS.find(r=>r.extensions.includes(t))?.fileType??""},Ke=e=>e.replaceAll("\\","\\textbackslash ").replaceAll("#","\\#").replaceAll("%","\\%").replaceAll("$","\\$").replaceAll("&","\\&").replaceAll("~","\\textasciitilde ").replaceAll("^","\\textasciicircum ").replaceAll("_","\\_").replaceAll("{","\\{").replaceAll("}","\\}").replaceAll("|","\\textbar ").replaceAll("<","\\textless ").replaceAll(">","\\textgreater "),Gn=(e,t)=>e.split( ).map(r=>${" ".repeat(t)}${r}).join(
);scrapbox.PopupMenu.addButton({title:"TeX",onClick:e=>{navigator.clipboard.writeText(ph(Jr(e))).catch(t=>{console.error(t),alert(${t.name} ${t.message}
${t.stack})})}});var Bs="https://keicho.herokuapp.com/api/";var uh=async(e,t)=>{if(!window.GM_fetch)return{ok:!1,value:{name:"GMFetchNotAvailableError"}};let r=await window.GM_fetch(${Bs}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 dh=()=>{let{popupMenu:e,render:t}=TS();Bl()?.append?.(e);let r=Bt(),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)}}},TS=()=>{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 mh=async(e="normal")=>{if(!window.GM_fetch)return{ok:!1,value:{name:"GMFetchNotAvailableError"}};let t=await window.GM_fetch(${Bs}web/create/?mode=${e},{mode:"cors"});return t.ok?{ok:!0,value:await t.text()}:{ok:!1,value:{name:"ResponseError",res:t}}};var fh=e=>https://keicho.netlify.app/#talk=${e};var gh=e=>{let t=e.split( ),r=t[1]??t[0],n=e===t[0]?"":t[0];return n?[n.trim(),r].join(
):r};var Hs=async(e,t,r)=>{let n=Bt(),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 Po().clear(),n.setPosition({line:o,char:[...s].length}),await Ee(
${e}),n.getPosition().line};var hh=e=>Jr(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=>zs(s))).join(" ")})].join(
).trimEnd();case"line":return${r}${t.nodes.map(n=>zs(n)).join("")}.trimEnd()}}).join(
),zs=e=>{switch(e.type){case"quote":return> ${e.nodes.map(t=>zs(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=>zs(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 sn=e=>/^[((]/.test(e);var xh=async e=>{let t=scrapbox.Page.lines;if(!t)return;let{cursor:r,selection:n}=Ye(),o=e?.entire||n.hasSelectionAll(),s=o?t.map(P=>P.text).join(
):n.getSelectedText(),i=e?.botIcon??"[/nishio/nisbot.icon]",{render:a,visible:c,open:l,close:u,dispose:p}=dh();u();let m=new Set,d=()=>{p();for(let P of m)P()},g=P=>m.add(P),h={text:"Exit",onClick:d},x=e?.talkId||bh(s)||(o?"":bh(t.slice(0,1+r.getPosition().line).map(P=>P.text).join(
))),y=!x;if(!x){let P=mh(e?.mode),L=setTimeout(()=>{a({text:"Start talking..."}),l();let N=0;L=setInterval(()=>{a({text:Start talking${".".repeat(N%3)}}),N++},1e3)},1e3),j=await P;if(clearTimeout(L),!j.ok){if(j.value.name==="GMFetchNotAvailableError"){alert("GM_fetch is not available. Please use Tampermonkey and install GM_fethc.");return}if(j.value.name==="ResponseError"){a({text:Error: ${j.value.res.status} ${j.value.res.statusText}},h),l(),console.error(Error: ${j.value.res.status} ${j.value.res.statusText},await j.value.res.text());return}return}x=j.value}let E=x,T=n.normalizeOrder(n.getRange()),b=o?t.length-1:T.end.line,w=t[b],k=o?"":" ".repeat(Math.min(...t.slice(T.start.line,T.end.line+1).map(P=>He(P.text)))),R=async P=>{let L=await uh(P,E);if(!L.ok)switch(L.value.name){case"ResponseError":return a({text:Error: ${L.value.res.status} ${L.value.res.statusText}},h),l(),console.error(Error: ${L.value.res.status} ${L.value.res.statusText},await L.value.res.text()),L;case"GMFetchNotAvailableError":return alert("GM_fetch is not available. Please use Tampermonkey and install GM_fethc."),L}return L},C="",M=async P=>{let L=hh(P).split(
).map(I=>I.trim()).join(
).trim();L.startsWith(C)&&(L=L.slice(C.length));let j=L.split(
);if(j.length===0)return;if(j.every(I=>sn(I))&&(C=L),j.filter(I=>!sn(I)).length<2){let I,z;for(let U of j){if(z=await R(U),!z.ok)return z;sn(U)||(I=z)}return I??z}let A=0;{let I;for(;A<j.length&&sn(j[A]);A++)if(I=await R(j[A]),!I.ok)return I}{let I=await R("まず聞いて");if(!I.ok)return I}for(;A<j.length&&!sn(j[A]);A++){let I=await R(j[A]);if(!I.ok)return I}return await R("おしまい")},D=async P=>{if(scrapbox.Layout!=="page"||P==="")return;let L=M(P),j=setTimeout(()=>{a({text:"Asking..."}),l();let U=0;j=setInterval(()=>{a({text:Asking${".".repeat(U%3)}}),U++},1e3)},1e3),N=await L;if(clearTimeout(j),!N||!N.ok)return;let{text:A,buttons:I}=N.value,z=gh(A);if(z.trim()){let U=${k}${i}${z.includes(`
)?
${z.split(`
).map(W=> ${k}${W}).join(
)}:z}
${k};b=await Hs(U,w,b),w=t[b]}a({text:"Send",onClick:S},{text:"🙂",onClick:()=>Ee("🙂")},{text:"🙁",onClick:()=>Ee("🙁")},...I.map(U=>({text:U,onClick:async()=>{b=await Hs(U,w,b),w=t[b],await D(U)}})),h),l()},S=async()=>{if(scrapbox.Layout!=="page")return;let P=scrapbox.Page.lines,L=r.getPosition().line,[j,N,A]=PS(P,L,i);j!==""&&(b=A,w=P[b],k=" ".repeat(Math.min(...P.slice(N,A+1).map(I=>He(I.text)))),await D(j))};return y&&(b=await Hs(fh(E),w,b),w=t[b]),await D(s),{ask:S,open:l,close:u,visible:c,exit:d,onExit:g}},bh=e=>{for(let t of e.split(
).reverse()){let r=t.match(/https?:\/\/keicho\.netlify\.app\/#talk=(\w+)/)?.[1];if(r)return r}},PS=(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 yh=[gr,hr,xr];scrapbox.PopupMenu.addButton({title:e=>{let t=Lt({project:scrapbox.Project.name,mode:"noopen",hooks:yh});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||Lt({project:e,mode:"noopen",hooks:yh})?.()}});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 SS=[vc,Yg,vc,Qg,th,Us(),rh,Kg(),Vg,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,oh,eh()];scrapbox.PopupMenu.addButton({title:e=>/https?:\/\/\S+/.test(e)?"URL":"",onClick:e=>{let t=nh(e,...SS);if(typeof t=="string")return e===t?void 0:t;t.then(r=>{if(e!==r)return Ee(r)})}});lh(["takker","takker-memex","takker-private","takker-books"]);if(!/mobile/i.test(navigator.userAgent)){let e=(t,r)=>{t.trim()!==""&&xh({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())};ke().addEventListener("keydown",a),i(()=>ke().removeEventListener("keydown",a))})};scrapbox.PopupMenu.addButton({title:()=>"🤖",onClick:t=>e(t)})}var Kn=(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==="+"?ze(e,parseInt(s)*(i==="w"?7:1)):_t(e,parseInt(s)*(i==="w"?7:1)):e;return Q(a?ze(Mo(c),LS(a)):c,"yyyy-MM-dd")}).replace(/@yyyy-ww@/g,${vn(e)}-w${${yn(e)}.padStart(2,"0")}).replace(/@yyyy-ww([+-])(\d+)(w?)@/g,(n,o,s,i)=>{let a=o==="+"?ze(e,parseInt(s)*(i==="w"?7:1)):_t(e,parseInt(s)*(i==="w"?7:1));return${vn(a)}-w${${yn(a)}.padStart(2,"0")}})),LS=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 vh=async(e,t,r)=>{if(scrapbox.Project.name!==e)return()=>{};let n=scrapbox.Project.pages;await new Promise(l=>{let u=setInterval(()=>{if(n.length===0){n=scrapbox.Project.pages;return}clearInterval(u),l()},2e3)});let o=new Date(2023,1,3),s=async()=>{let l=new Date,u={start:o,end:ze(l,1)},{render:p,dispose:m}=le(),d;try{let g=await wh(t),h=await wh(r),x=Do(u).filter(T=>{let b=Kn(T,g)[0],w=n.find(k=>k.title===b);return!w||!w.exists}),y=cu(u).filter(T=>{let b=Kn(T,h)[0],w=n.find(k=>k.title===b);return!w||!w.exists});if(x.length===0&&y.length===0)return;let E=x.length+y.length;p({type:"spinner"},{type:"text",text:create ${E} review pages...}),d=await $e();for(let T of[...x.map(b=>Kn(b,g)),...y.map(b=>Kn(b,h))])await re(e,T[0],(b,w)=>w.persistent?void 0:T,d?{socket:d}:{}),E--,p({type:"spinner"},{type:"text",text:create ${E} review pages...});p({type:"check-circle"},{type:"text",text:created ${x.length+y.length} review pages.}),o=l}catch(g){p({type:"exclamation-triangle"},{type:"text",text:g instanceof Error?${g.name} ${g.message}:"Unknown error! (see developper console)"}),console.error(g)}finally{d&&await we(d),await ce(1e3),m()}},i=s(),a=new Date,c=setInterval(()=>{let l=new Date;We(a,l)||(a=l,i.then(()=>i=s()))},1e4);return()=>(clearTimeout(c),i)},wh=async e=>{let t=await _o(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 kc=(...e)=>{let t=e.flatMap(n=>{if(typeof n=="string")return[Ws(n)];if(Array.isArray(n.type))return[kh(n.type)];switch(n.type){case"text":return[Ws(n.text)];case"group":{let o=kc(...n.items);return o?[o]:[]}default:return[kh(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},Ws=e=>{let t=document.createElement("span");return t.classList.add("item"),t.append(e),t},kh=e=>{if(Array.isArray(e)){let t=document.createElement("span");t.classList.add("fa-stack");let r=Ec(e[0]);r.classList.add("fa-stack-1x");let n=Ec(e[1]);return n.classList.add("fa-stack-1x"),t.append(r,n),Ws(t)}return Ws(Ec(e))},Ec=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:Tc,selection:Pc}=Ye(),Eh=e=>{let{className:t,display:r,onClick:n,context:o="page"}=e,s=document.createElement("div");t&&s.classList.add(t),Th(o)||(s.style.display="none");let i=(...l)=>{if(l.length===1&&l[0]===""){s.style.display="none";return}s.textContent="";let u=kc(...l);u&&s.append(u)},a=typeof r=="function"?r({cursor:Tc,selection:Pc}):r;return i(...Array.isArray(a)?a:[a]),s.addEventListener("click",l=>{l.preventDefault(),l.stopPropagation(),n({cursor:Tc,selection:Pc,setDisplay:i})}),{status:s,context:o,update:()=>{if(Th(o)?s.removeAttribute("style"):s.style.display="none",typeof r=="function"){let l=r({cursor:Tc,selection:Pc});i(...Array.isArray(l)?l:[l])}}}},Th=e=>e!=="stream"?scrapbox.Layout===e:scrapbox.Layout==="list"&&location.pathname.startsWith("/stream");var Ph=()=>{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 Sc=new Set,{cursor:_S,selection:RS}=Ye(),CS=Ph();var pt=e=>{let t=Eh(e);return Sc.add(t),CS.append(t.status),()=>{t.status.remove(),Sc.delete(t)}},Lc=()=>{for(let{update:e}of Sc)e()};_S.addChangeListener(()=>Lc());RS.addChangeListener(()=>Lc());scrapbox.addListener("layout:changed",Lc);var Sh=async(e,t)=>{try{let r=t.getSelectedText()||xe(e.getPosition().line);if(!r)return;await navigator.clipboard.writeText(r)}catch(r){console.error(r),alert(Faild to copy:
${JSON.stringify(r)})}},Lh=async(e,t)=>{try{let r=t.hasSelection(),n=r?t.getRange().start.line:e.getPosition().line,o=r?t.getSelectedText():xe(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(),be("Delete")}catch(r){console.error(r),alert(Faild to cut:
${JSON.stringify(r)})}},_h=async e=>{try{let t=await navigator.clipboard.readText();if(!t)return;e.focus(),await Ee(t)}catch(t){console.error(t),alert(Faild to paste:
${JSON.stringify(t)})}},Rh=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=Bt();t.hasFocus||(e.preventDefault(),t.focus())});var Ch=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")}},Mh=new Ch;var Dh=e=>new Promise(t=>setTimeout(t,e));async function gt(e,{wait:t=1}={}){let r=Mh.textInput;r.focus(),r.value=e;let n=document.createEvent("UIEvent");n.initEvent("input",!0,!1),r.dispatchEvent(n),await Dh(t)}if($t()){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:()=>gt(Q(new Date,"#yyyy-MM-dd HH:mm:ss "))}),scrapbox.PageMenu(e).addItem({title:"YYYY-MM-DD HH:mm:ss ",onClick:()=>gt(Q(new Date,"yyyy-MM-dd HH:mm:ss "))}),scrapbox.PageMenu(e).addItem({title:"YYYY-MM-DD",onClick:()=>gt(Q(new Date,"yyyy-MM-dd"))}),scrapbox.PageMenu(e).addItem({title:"HH:mm:ss ",onClick:()=>gt(Q(new Date,"HH:mm:ss "))}),scrapbox.PageMenu(e).addItem({title:"⬜",onClick:()=>gt("⬜")}),scrapbox.PageMenu(e).addItem({title:"🚧",onClick:()=>gt("🚧")}),scrapbox.PageMenu(e).addItem({title:"⌛",onClick:()=>gt("⌛")}),scrapbox.PageMenu(e).addItem({title:"📝",onClick:()=>gt("📝")}),scrapbox.PageMenu(e).addItem({title:"✅",onClick:()=>gt("✅")}),scrapbox.PageMenu(e).addItem({title:"❌",onClick:()=>gt("❌")})}scrapbox.PageMenu.addItem({title:"Open kakeru",image:"https://i.kakeru.app/15c3b1a40b6b3c2ebd68f33f4c86b3f6-opaque.png",onClick:()=>window.open("https://kakeru.app")});async function Ih(e,{from:t,to:r,merge:n}){if(t===r)return{success:!0,dup:!1};let o=await Ge(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 Ge(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 re(r,e,c=>[...c,...s.lines.slice(1)].map(l=>l.text)),await dl(t,e),{success:!0,dup:a.persistent})}var _c=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}=le();n({type:"spinner"},{type:"text",text:/${t}/${e} → /${r}/${e}});try{let s=await Ih(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}/${Y(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 _c()}});scrapbox.PageMenu.addItem({title:"Transport and Open",onClick:async()=>{let e=await _c();!e||window.open(e)}});var Rc=e=>e.replace(/[\[\]]/g,"").replace(/\s/g," "),_r=e=>${e}.padStart(2,"0"),jh=e=>${e.getFullYear()}-${_r(e.getMonth()+1)}-${_r(e.getDate())} ${_r(e.getHours())}:${_r(e.getMinutes())}:${_r(e.getSeconds())},Cc=e=>${e.getFullYear()}-${_r(e.getMonth()+1)}-${_r(e.getDate())};async function Nh(e,t,r,n){let{render:o,dispose:s}=le(),i=[],a=[];for(let l of MS(r)){if(l.type==="line"){i.push(${Rc(l.text)}~@${Cc(new Date)});continue}let u=${Rc(l.lines0)}~@${Cc(new Date)};a.push([u,...l.lines.slice(1),"",#${jh(new Date)}]),i.push(${u})}let c=n?.socket;try{c??=await $e(),o({type:"spinner"},{type:"text",text:Adding ${i.length} items...}),await re(e,t,l=>{let u=l.map(m=>m.text),p=u.flatMap((m,d)=>m.trim()==="[/icons/hr.icon]"?[d]:[]).pop()??-1;return p<0?[...u,...i]:[...u.slice(0,p),...i,...u.slice(p)]},{socket:c}),o({type:"spinner"},{type:"text",text:Create ${a.length} pages...}),await Promise.all(a.map(l=>re(e,l[0],u=>[u[0].text,...u.slice(1).map(p=>p.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),Nr(e,t,[...i,...a].join( ))}finally{let l=ce(1e3);c&&await we(c),await l,s()}}function*MS(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=He(e[t]);yield{type:"block",lines:e.slice(t,t+r+1).map(o=>o.slice(n))},t+=r+1}}var $h=async(e,t)=>{let r=window.prompt("Type all you think of","");if(!r||r.trim()==="")return;let n=r.trim().split(/\s+/);await Nh(e,t,n)};var DS="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)}/${DS},{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 Xn=e=>{let[t,r]=F([]),[n,o]=F([]),[s,i]=F(!1),a=_(async()=>{let l=new Set;i(!0);let u=await Qr(e),p=[],m=u.flatMap(({links:d,project:g})=>d.flatMap(h=>{let{title:x}=Vr(h),y=it(x);if(!y)return[];if(!y.ok)return p.push({project:g,title:x,...y.value}),[];let E=K(x);return l.has(E)?[]:(l.add(E),[{project:g,title:x,...y.value}])}));r(m),o(p),i(!1)},[e]),c=_(async()=>{i(!0),await Ls(e,60),i(!1)},[e]);return B(()=>(a(),Fn(e,a)),[e,a]),{tasks:t,errors:n,load:c,loading:s}};var qs=()=>{let e=ie(null),t=ie(new Set),r=_(()=>{for(let a of t.current)a()},[]),n=_(()=>{e.current?.showModal?.(),r()},[]),o=_(()=>e.current?.close?.(),[]),s=_(()=>e.current?.open?o():n(),[]),i=_(a=>(t.current.add(a),()=>t.current.delete(a)),[]);return{ref:e,open:n,close:o,toggle:s,onOpen:i}};var Yn=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}dialog{flex-direction:column;align-items:center;row-gap:10px;padding:10px;background:unset;margin-top:unset;margin-bottom:unset;border:unset;height:unset;overflow-y:hidden}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;--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}.progress>*{padding:0 2px}a{text-decoration:none;color:var(--page-link-color, #5e8af7)}a: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 lidata-status=done{opacity:.4}.scheduler details lidata-status=expired{font-weight:700}.task-list lidata-type=deadline .label.type{color:var(--takker-scheduler-label-deadline-color, rgb(255, 75, 0))}.task-list lidata-type=todo .label.type{color:var(--takker-scheduler-label-todo-color, rgb(246, 170, 0))}.task-list lidata-type=note .label.type{color:var(--takker-scheduler-label-note-color, rgb(200, 200, 203))}.task-list lidata-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 an=({text:e,title:t})=>{let[r,n]=F(""),o=_(async s=>{s.preventDefault(),s.stopPropagation();try{await navigator.clipboard.writeText(e),n("Copied"),await ce(1e3),n("")}catch(i){alert(Failed to copy the code block
Error:${i.message})}},[e]);return f("button",{className:"copy",title:t??"Copy",onClick:o},r)};var IS=60*60*24*1e3,Oh=(e,t)=>{let r=ee(e.refDate),n=(t.getTime()-r.getTime())/IS;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 Ah=(e,t)=>{if(t.score!==e.score)return t.score-e.score;let r=Uh(e.freshness),n=Uh(t.freshness);return r!==n?n-r:st(wt(e),wt(t))?-1:1},Uh=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()}-${mt(e.getMonth()+1)}-${mt(e.getDate())},Vn=e=>{let[t,r,n]=e.split("-").map(o=>parseInt(o,10));return{year:t,month:r,date:n}},Qn=e=>${hu(e)}-w${mt(yn(e))},Gs=e=>{let[t,r]=e.split("-w").map(n=>parseInt(n,10));return Mo(wu(new Date(t,0,1),r))};var Jn=({loading:e,onClick:t})=>e?f("div",null,f("i",{className:"fa fa-spinner"})):f("button",{className:"navi reload",onClick:t},"");var cn=()=>{let[e,t]=F(new Date);return B(()=>{let r=setInterval(()=>t(new Date),1e3*60);return()=>{clearInterval(r)}},[]),e};var Fh=e=>{switch(e){case"todo":return"ToDo";case"note":return"覚書";case"deadline":return"締切";case"up-down":return"浮遊";case"done":return"完了"}};var Bh=(e,t)=>new URL(/${e.project}/${Y(e.title)},t??location.href);var Ks=({children:e,project:t,title:r,className:n,...o})=>f("a",{...o,className:[n??"","page-link"].join(" "),type:"link",href:Bh({project:t,title:r}).pathname,...t===scrapbox.Project.name?{rel:"route"}:{rel:"noopener noreferrer",target:"_blank"}},e);var Hh=({action:e,pActions:t})=>{let r=O(()=>Fh(e.freshness.status),[e.freshness.status]),n=O(()=>yt(wt(e)).slice(11)||" ",[wt(e)]),o=O(()=>_n(e),[e]),s=Math.floor(Math.round(e.score)/7),i=cn(),a=O(()=>e.executed!==void 0&&ir(zt(ee(e.executed.start),e.executed.duration),i),[e.executed?.start,e.executed?.duration,i]),c=O(()=>[...t,e].map(l=>${l.raw}).join( ),[t,e]);return f("li",{"data-type":e.freshness.status,"data-freshness":e.score.toFixed(0),"data-level":s,...s<0?{style:{opacity:jS(e).toFixed(2)}}:{}},f(an,{text:c,title:"ここまでコピー"}),f("span",{className:"label type"},r),f("i",{className:label far fa-fw${a?" fa-bookmark":""}}),f("span",{className:"label freshness"},e.score.toFixed(0)),f("time",{className:"label start"},n),f("span",{className:"label duration"},o,"m"),f(Ks,{project:e.project,title:e.raw},e.name))},jS=e=>Math.max(.8*Math.exp(Math.log(8/7)/7*e.score),.05);var zh=(e=ut(new Date))=>{let[t,r]=F(e),n=_(()=>{r(s=>{switch(s){case"errors":return"expired";case"expired":return ut(new Date);default:{let i=ee(Vn(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(Vn(s));return a.setDate(a.getDate()-1),ut(a)}}})},[]);return{pageNo:t,next:n,prev:o}};var Zn=()=>_(e=>e.stopPropagation(),[]);var Xs=(e,t)=>B(()=>(scrapbox.on(e,t),()=>scrapbox.off(e,t)),[close]);var Wh=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=>Ce(f(NS,{getController:n,projects:e}),r))},NS=({getController:e,projects:t})=>{let{tasks:r,errors:n,load:o,loading:s}=Xn(t),{pageNo:i,next:a,prev:c}=zh(),l=O(()=>{if(i==="errors")return n.map(y=>({name:${y.title}
name:${y.name}
message:${y.message},raw:y.title,freshness:{refDate:{year:9999,month:1,date:1},status:"todo"},project:y.project,generated:!0,score:0}));if(i==="expired"){let y=new Date;return r.flatMap(E=>!vt(E)&&st(Du(E),qe(y))&&E.freshness===void 0&&E.recurrence===void 0?[{...E,score:0,freshness:{refDate:E.executed.start,status:"todo"}}]:[]).sort((E,T)=>st(wt(E),wt(T))?-1:0)}let x=ee(Vn(i));return r.flatMap(y=>{if(!y.freshness)return[];if(Gt(y))return[];let E=Oh(y.freshness,x);return E>-999?[{...y,score:E}]:[]}).sort(Ah)},[r,n,i]),{ref:u,open:p,close:m,toggle:d}=qs();B(()=>e({open:p,close:m,toggle:d}),[e]);let g=Zn(),h=O(()=>[i,...l.map(x=> ${x.raw})].join( ),[l,i]);return Xs("page:changed",m),f(G,null,f("style",null,Yn),f("dialog",{ref:u,onClick:m},f("div",{className:"controller",onClick:g},f(an,{text:h,title:"Copy All Tasks"}),f("span",null,i),f("button",{className:"navi left",onClick:c},""),f("button",{className:"navi right",onClick:a},""),f(Jn,{loading:s,onClick:o}),f("button",{className:"close",onClick:m},"")),f("ul",{className:"result task-list",onClick:g,"data-page-no":i},l.map((x,y)=>f(Hh,{action:x,pActions:l.slice(0,y)})))))};var Ys=(e,t)=>/${e}/${K(t)},Vs=new Map,Mc=new Map,qh=(e,t)=>{Vs.set(e,t);for(let r of Mc.get(e)??[])r(t)},Qs=()=>{Rr!==void 0&&(clearInterval(Rr),Rr=void 0);let e=scrapbox.Project.name,t=scrapbox.Page.title??"",r=Ys(e,t);if(!Vs.has(r))return;let n=Be().map(o=>o.text);Rr=setInterval(()=>{K(t)===K(n[0])&&(qh(r,n),Rr!==void 0&&(clearInterval(Rr),Rr=void 0))},1e3)},Rr;scrapbox.on("page:changed",()=>{scrapbox.off("lines:changed",Qs);let e=scrapbox.Project.name,t=scrapbox.Page.title??"",r=Ys(e,t);!Vs.has(r)||scrapbox.on("lines:changed",Qs)});var Gh=(e,t)=>{let r=Ys(e,t),n=Vs.get(r);return n||Ge(e,t).then(o=>{if(!o.ok)return[];let s=o.value.lines.map(i=>i.text);qh(r,s),t===scrapbox.Page.title&&!scrapbox.listeners("lines:changed").includes(Qs)&&scrapbox.on("lines:changed",Qs)}),n??[]},Kh=(e,t)=>{let[r,n]=F(Gh(e,t));return rr(()=>n(Gh(e,t)),[e,t]),B(()=>{let o=Ys(e,t),s=Mc.get(o)??new Set;return s.add(n),Mc.set(o,s),()=>{s.delete(n)}},[e,t]),r};var Dc=e=>e.duration===void 0?void 0:qe(zt(ee(e.start),e.duration)),Ic=(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:Dc(s),duration:e.duration-o}]};var Cr=e=>"title"in e,$S=e=>e.record?.duration!==void 0,Xh=(e,t)=>Cr(e)&&e.status==="done"?e.status:$S(e)?Cr(e)&&e.executed?st(qe(t),e.executed.start)?"moved":"expired":"done":st(Dc(e.plan),qe(t))?Cr(e)?"expired":"done":"undone";var Yh=(e,t)=>{let r=it(e.title.slice(1,-1));if(!e.plan.start)return;let n={name:r?.ok?r.value.name:e.title,plan:{start:qe(e.plan.start),duration:(e.plan.duration??0)/60}};if(e.record.start&&(n.record={start:qe(e.record.start)},e.record.end&&(n.record.duration=Fi(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),vt(r.value)||(o.executed=r.value.executed),o},jc=(e,t)=>{let r=Ho(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 Vh=(e,t,r)=>{let n=[Nc(e,_t(t,1),r),Nc(e,t,r),Nc(e,ze(t,1),r)],o=O(()=>n.flat(),n);return O(()=>{let s=Fp(t),i=lu(t);return o.flatMap(a=>{let[,c]=Ic(a.plan,s);if(!c)return[];let[l]=Ic(c,i);if(!l)return[];let{plan:u,...p}=a;return[{plan:l,...p}]}).sort((a,c)=>st(a.plan.start,c.plan.start)?-1:0)},[o,t])},Nc=(e,t,r)=>{let n=Kh(e,qt(t)),o=O(()=>AS(n,e),[n,e]);return O(()=>o.length!==0?o:OS(t,r),[o,t,r])},OS=(e,t)=>t.flatMap(r=>{if(r.freshness?.status==="done")return[];if(vt(r))return[];if(Gt(r)){let o=Bo(r,e);return o?[jc(o,r.project)]:[]}let n=ee(r.executed.start);return We(n,e)?[jc(r,r.project)]:[]}),AS=(e,t)=>{let r=[];for(let n of ar(e)){if(Wt(n))continue;let o=Yh(n,t);!o||r.push(o)}return r};var Qh=({event:e})=>{let t=O(()=>e.plan.start.hours+e.plan.start.minutes/60,[e.plan.start]),r=O(()=>--start: ${t}; --duration: ${e.plan.duration};,[t,e.plan.duration]),n=cn(),o=O(()=>Xh(e,n),[e,n]);return Cr(e)?f(Ks,{className:"event","data-status":o,style:r,title:e.title,project:e.project},e.name):f("div",{className:"event","data-status":o,title:e.name,style:r},e.name)};var Jh=({project:e,date:t,tasks:r})=>{let n=Vh(e,t,r),o=O(()=>n.flatMap(a=>Cr(a)?[${a.title}]:[]).join( ),[n]),s=cn(),i=O(()=>We(s,t)?f("div",{className:"indicator",style:--start: ${pu(s)+uu(s)/60}}):f(G,null),[s,t]);return f("div",{className:"timeline",role:"gridcell"},n.map(a=>f(Qh,{event:a})),i,f(an,{text:o}))};var $c=({dateList:e,tasks:t,project:r,hasColumn:n})=>f("div",{className:"timeline-wrap",role:"grid"},(n??!0)&&f("div",{className:"column-header",role:"row"},e.map(o=>f("div",{className:"cell",role:"columnheader"},f("h2",null,jo(o))))),f("div",{className:"week-container",role:"presentation"},f("div",{className:"week",role:"presentation"},f("div",{className:"borders"},[...Array(24).keys()].map(o=>f("div",{className:"border","data-time":${mt(o)}:00}))),e.map(o=>f(Jh,{project:r,date:o,tasks:t})))));var Oc=(e,t,r)=>{let[n,o]=F(e),s=_(()=>o(t),[t]),i=_(()=>o(r),[t]),a=_(c=>o(c),[]);return{pageNo:n,next:s,prev:i,jump:a}};var Zh=e=>{let t=ie(new Set),[r,n]=F(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 ex=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=>Ce(f(US,{getController:n,projects:e,mainProject:e[0]}),r))},tx=(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=>Ce(f(FS,{getController:o,projects:e,mainProject:e[0],open:t}),n))},US=({getController:e,projects:t,mainProject:r})=>{let{tasks:n,load:o,loading:s}=Xn(t),{pageNo:i,next:a,prev:c,jump:l}=Oc(Qn(new Date),BS,HS),u=O(()=>{let T=Gs(i);return[0,1,2,3,4,5,6].map(b=>ze(T,b))},[i]),{ref:p,open:m,close:d,toggle:g,onOpen:h}=qs();B(()=>e({open:m,close:d,toggle:g}),[e]);let x=Zn();Xs("page:changed",d);let y=_(()=>l(Qn(new Date)),[l]),E=ie(null);return B(()=>{let T=h(()=>{if(!E.current)return;let b=E.current.getElementsByClassName("indicator")[0];if(!b)return;let w=globalThis.scrollY;b.scrollIntoView({block:"center"}),globalThis.scroll(0,w),T()})},[]),f(G,null,f("style",null,Yn),f("dialog",{ref:p,onClick:d},f("div",{className:"controller",onClick:x},f("span",null,i),f("button",{className:"navi left",onClick:c},""),f("button",{className:"navi right",onClick:a},""),f("button",{className:"today",onClick:y},""),f(Jn,{loading:s,onClick:o}),f("button",{className:"close",onClick:d},"")),f("div",{ref:E,className:"result scheduler",onClick:x,"data-page-no":i},f($c,{dateList:u,tasks:n,project:r}))))},FS=({projects:e,mainProject:t,getController:r,open:n})=>{let o=Zn(),{tasks:s,load:i,loading:a}=Xn(e),{pageNo:c,next:l,prev:u,jump:p}=Oc(new Date,zS,WS),m=O(()=>[c],[c]),d=_(()=>p(new Date),[p]),{isOpen:g,open:h,close:x,toggle:y,onOpen:E}=Zh(n);B(()=>r({open:h,close:x,toggle:y}),[r]);let T=ie(null);return B(()=>{let b=()=>{if(!T.current)return!1;let k=T.current.getElementsByClassName("indicator")[0];return k?(requestAnimationFrame(()=>{let R=globalThis.scrollY;k.scrollIntoView({block:"center"}),globalThis.scroll(0,R)}),!0):!1};if(n){b();return}let w=E(()=>{b()&&w()})},[n]),f(G,null,f("style",null,Yn),f("div",{className:wedget${g?" open":""},ref:T},f("div",{className:"controller",onClick:o},f("span",null,ut(c)),f("button",{className:"navi left",onClick:u},""),f("button",{className:"navi right",onClick:l},""),f("button",{className:"today",onClick:d},""),f(Jn,{loading:a,onClick:i})),f($c,{dateList:m,tasks:s,project:t,hasColumn:!1})))},BS=e=>Qn(Hp(Gs(e),1)),HS=e=>Qn(Eu(Gs(e),1)),zS=e=>ze(e,1),WS=e=>_t(e,1);ml({project:"takker-dist"});Pp().then(e=>{scrapbox.PageMenu.addItem({title:"Fulltext Search",onClick:()=>{e.toggle()}})});var qS="https://scrapbox.io/files/666ac977264f7d001ce9d125.wasm",GS="/api/code/takker-dist/esbuild-wasm-no-blob/worker.js";(async()=>{let e=new Request(qS),t=await Ym(e);t||(t=await fetch(e),await Vm(e,t)),await Xm(await WebAssembly.compileStreaming(t),GS)})();(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","june29","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 Uf({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"],["june29","june29"],["jigsaw","jgs"],["sno2wman","SnO2WMaN"],["sushitecture","hashrock"],["unnamedcamp","知を営む"],["unnamed-project","unnamed-project"],["issac-37765679","issac"],["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"},enableSelfProjectOnStart:!0}),r=o=>{o.preventDefault(),o.stopPropagation()},n=()=>document.querySelector(".line .popup-menu")!==null;Zi.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)}})})();Kf({previewers:[{when:/(?:^|\.)svg$/,preview:Xf},{when:/(?:^|\.)glsl$/,preview:Sg},{when:/(?:^|\.)(?:plantuml|puml|pu)$/,preview:Rg},{when:/(?:^|\.)tikz\(tex\)$/,preview:Mg("https://scrapbox.io/api/code/takker-dist/scrapbox-tikz/mod.js","https://scrapbox.io/files/65d1645c19cd8e002433c3df")}]});(async()=>{let{toggle:e}=await $g([]);scrapbox.PageMenu.addItem({title:"履歴スライダー",image:"https://1.bp.blogspot.com/-UZtkSEX0wh4/U5l5_dNcEsI/AAAAAAAAhWs/UzJGVzyiX8Y/s800/kaichu_dokei.png",onClick:e})})();vh("takker",["takker","振り返り(takker-workflow@0.0.1)のtemplate","txt"],["takker","1週間の振り返り(takker-workflow@0.0.1)のtemplate","txt"]);$t()&&(pt({display:{type:"caret-left"},onClick:({cursor:e,selection:t})=>{e.focus(),t.getSelectedText()===""?wo():xo()}}),pt({display:{type:"caret-right"},onClick:({cursor:e,selection:t})=>{e.focus(),t.getSelectedText()===""?vo():ho()}}),pt({display:{type:"caret-up"},onClick:({cursor:e,selection:t})=>{e.focus(),t.getSelectedText()===""?ko():bo()}}),pt({display:{type:"caret-down"},onClick:({cursor:e,selection:t})=>{e.focus(),t.getSelectedText()===""?Eo():yo()}}),pt({display:{type:"copy"},onClick:async({cursor:e,selection:t})=>await Sh(e,t)}),pt({display:{type:"cut"},onClick:async({cursor:e,selection:t})=>await Lh(e,t)}),pt({display:{type:"clipboard"},onClick:async({cursor:e})=>await _h(e)}),pt({display:{type:"undo"},onClick:()=>Zl()}),pt({display:{type:"redo"},onClick:()=>ep()}),pt({display:({cursor:e})=>e.getVisible()&&e.hasFocus&&e.visiblePopupMenu?{type:["i-cursor","slash"]}:{type:"i-cursor"},onClick:({cursor:e})=>Rh(e)}));if($t()&&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:pr}),scrapbox.PageMenu(e).addItem({title:"Transport",onClick:()=>dr({from:{project:scrapbox.Project.name,title:scrapbox.Page.title},to:"takker-memex"})})}if($t()){let e="New Page",t=[gr,hr,xr];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||Lt({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||Lt({project:r,mode:"self",hooks:t})?.()}})}scrapbox.PageMenu.addMenu({title:"Add to inbox",image:"https://img.icons8.com/ios/180/FFFFFF/inbox.png",onClick:()=>$h("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"],{toggle:o}=await Wh(n);scrapbox.PageMenu.addMenu({title:e,image:"/assets/img/favicon/apple-touch-icon.png",onClick:o});let s=await ex(n);scrapbox.PageMenu.addMenu({title:"scheduler",image:"/assets/img/favicon/apple-touch-icon.png",onClick:s.toggle});{let i="takker-scheduler/wedget",a=JSON.parse(localStorage.getItem(i)??"{}"),c=scrapbox.Project.name;a[c]??=!1;let l=await tx(n,a[c]),u=()=>{a[c]=!a[c],l.toggle(),localStorage.setItem(i,JSON.stringify(a))};$t()?pt({display:{type:"calendar"},onClick:u}):scrapbox.PageMenu.addItem({title:"toggle wedget",onClick:u})}})();var rx=e=>String(e).padStart(2,"0"),nx=e=>${e.getFullYear()}-${rx(e.getMonth()+1)}-${rx(e.getDate())};for(let e of document.getElementsByClassName("new-button")){let t=#${nx(new Date)};e.href=/${scrapbox.Project.name}/new?body=${encodeURIComponent(` +t)}}console.log('The hrefs of "New Button" have been changed.');scrapbox.PopupMenu.addButton({title:"",onClick:e=>{let t=Ir.parse(e,{hasTitle:!1});if(console.log("Parserd text:"),console.log(t),navigator.clipboard){let r=KS(t).join(`
);console.log(r),navigator.clipboard.writeText(r).catch(n=>console.log(n)),console.log("Copied.")}}});function KS(e){let t=Math.min(...e.map(o=>o.indent)),r=t,n=["<p>"];for(let o of e.filter(s=>s.type==="line")){let s=o.indent-r;s<0&&n.push(...[...Array(-s)].map(a=>"</ul>")),s>0&&n.push(...[...Array(s)].map(a=>'<ul style="margin-top: 5px;margin-bottom: 5px;">'));let i=o.nodes.map(a=>Js(a)).join("");o.indent>t?n.push(<li>${i}</li>):n.push(${i}<br/>),r=o.indent}return n.push(...[...Array(r-t)].map(o=>"</ul>")),n.push("</p>"),n}function Js(e){switch(e.type){case"quote":return<span style="
font-style: italic;
background-color: rgba(128,128,128,0.1);
display: block;
height: 1.3em;
vertical-align: top;" src="${t}" alt="${n}" /></a>;case"strongIcon":return"";case"formula":return\\( ${e.formula} \\);case"helpfeel":return"";case"decoration":let o=e.nodes.map(s=>Js(s)).join("");return e.decos.includes("*-4")&&(o=<h4>${o}</h4>),e.decos.includes("*-3")&&(o=<h5>${o}</h5>),e.decos.includes("*-2")&&(o=<h6>${o}</h6>),e.decos.includes("*-1")&&(o=<strong>${o}</strong>),e.decos.includes("/")&&(o=<i>${o}</i>),e.decos.includes("-")&&(o=<strike>${o}</strike>),e.decos.includes("!")&&(o=<pre>${o}</pre>),o;case"strong":return<strong>${e.nodes.map(s=>Js(s)).join("")}</strong>;case"code":return<code>${e.text}</code>;case"commandLine":case"googleMap":return"";case"blank":return<span>${e.text}</span>;case"link":switch(e.pathType){case"root":return<a target="_blank" href="https://scrapbox.io${e.href}">${e.href}</a>;case"relative":return<a target="_blank" href="https://scrapbox.io/${scrapbox.Project.name}/${e.href}">${e.href}</a>;case"absolute":return<a target="_blank" href="${e.href}">${e.content||e.href}</a>}case"hashTag":return<a href="https://scrapbox.io/${scrapbox.Project.name}/${e.href}">#${e.href}</a>;case"plain":return<span>${e.text}</span>}}scrapbox.PopupMenu.addButton({title:"",onClick:e=>{let t=window.open();t.document.write(<html> <body>
<textarea spellcheck="true">${e}</textarea>
</body>
</html>),t.document.close()}});scrapbox.PopupMenu.addButton({title:e=>{let t=e.replace(/[\r\n]/g,"").length,r=e.trim().split(/[\r\n\s]+/).length;return${t}c ${r}w},onClick:()=>null});if($t()){let e="task";scrapbox.PageMenu.addMenu({title:e,image:"https://img.icons8.com/ios/180/FFFFFF/todo-list--v2.png"}),scrapbox.PageMenu.addMenu({title:"Toggle task",image:"https://img.icons8.com/ios/180/FFFFFF/repeat.png",onClick:qi}),scrapbox.PageMenu(e).addItem({title:"Add task",image:"https://img.icons8.com/ios/180/FFFFFF/plus-math.png",onClick:kn}),scrapbox.PageMenu(e).addItem({title:"Start task",image:"https://img.icons8.com/ios/180/FFFFFF/start--v1.png",onClick:cr}),scrapbox.PageMenu(e).addItem({title:"End task",image:"https://img.icons8.com/ios/180/FFFFFF/stop-squared.png",onClick:Rt}),scrapbox.PageMenu(e).addItem({title:"Posteriori end task",image:"https://img.icons8.com/ios/180/FFFFFF/end--v1.png",onClick:En}),scrapbox.PageMenu(e).addItem({title:"Book starting",image:"https://img.icons8.com/ios/180/FFFFFF/plus-1day.png",onClick:async()=>{let[t,r]=XS(),n=nt().slice(t,r+1).map(o=>{let s=o.text,i=o.text.match(/\[([^\]]+)\]/)?.[1];if(!i)return s;let a=it(i);if(!a||!a.ok)return s;let c=a.value;if(c.freshness?.status==="done")return s;let l=fr(c);return l.title=${i},l?ne(l):s}).join( );await Me(t,r,n),await pr()}}),scrapbox.PageMenu(e).addItem({title:"Walk a day",image:"https://img.icons8.com/ios/180/FFFFFF/plus-1day.png",onClick:()=>Tn()}),scrapbox.PageMenu(e).addItem({title:"Move today",image:"https://img.icons8.com/ios/180/FFFFFF/date-to.png",onClick:()=>Pn()}),scrapbox.PageMenu(e).addItem({title:"Format",image:"https://img.icons8.com/ios/180/FFFFFF/sort-by-start-date.png",onClick:()=>Ln(scrapbox.Project.name,scrapbox.Page.title)}),scrapbox.PageMenu(e).addItem({title:"Transport",onClick:()=>dr({from:{project:scrapbox.Project.name,title:scrapbox.Page.title},to:"takker-memex"})}),scrapbox.PageMenu(e).addItem({title:"Sync",onClick:()=>window.open("https://script.google.com/macros/s/AKfycbyAgN8nmUXjVXL_tahDzVyyrMzFaI4CJVmIapk8G0GuxxVN-7oUbuDJOf31fP7SFjx9/exec")})}var XS=()=>{let{selectionRange:{start:e,end:t},selectedText:r,position:n}=me();return r===""?[n.line,n.line]:e.line>t.line?[t.line,e.line]:[e.line,t.line]};var ox="scrapbox-episopass",Zs=!1;scrapbox.PopupMenu.addButton({title:e=>Zs?"remove EP":/https:\/\/scrapbox\.io\/files\/\w+\.html/.test(e)?"run EP":"",onClick:async e=>{if(document.getElementById(ox)?.remove(),Zs){Zs=!1;return}if(!/https:\/\/scrapbox\.io\/files\/\w+\.html/.test(e))return;let t=e.match(/https:\/\/scrapbox\.io(\/files\/\w+\.html)/)[1];try{let n=await(await fetch(t)).text();if(!n.includes("<title>EpisoPass</title>"))return;let o=new Blob([n],{type:"text/html"}),s=URL.createObjectURL(o);document.getElementsByClassName("cursor-line")[0].insertAdjacentHTML("beforeend",<iframe id="${ox}" src="${s}" width="800" height="400"></iframe>),Zs=!0;return}catch(r){console.error("Failed to load an EpisoPass html: ",r)}}});var sx="takker-memex",ix=async()=>{if(scrapbox.Project.name!==sx)return()=>{};let e=scrapbox.Project.pages;await new Promise(i=>{let a=setInterval(()=>{if(e.length===0){e=scrapbox.Project.pages;return}clearInterval(a),i()},2e3)});let t=new Date(2023,0,24),r=async()=>{let i=new Date,c=Do({start:t,end:i}).filter(m=>{let d=qt(m),g=e.find(h=>h.title===d);return!g||!g.exists});if(c.length===0)return;let{render:l,dispose:u}=le(),p;try{l({type:"spinner"},{type:"text",text:load tasks for ${c.length} diary pages});let m=new Map,d=new Set,g=c.map(x=>ut(x));for(let{links:x,project:y}of await Qr(["takker","takker-memex"]))for(let E of x){let{title:T}=Vr(E),b=it(T);if(!b)continue;if(!b.ok){console.error(/${y}/${T}: ${b.value.name} ${b.value.message});continue}let w=K(T);if(!d.has(w)&&(d.add(w),b.value.freshness?.status!=="done"))for(let k of c){let R=fr(b.value,k);if(!R)continue;let C=ut(R.base);!g.includes(C)||(m.set(C,[...m.get(C)??[],R]),!!Gt(b.value))}}p=await $e();let h=0;l({type:"spinner"},{type:"text",text:create 0/${c.length} diary pages...});for(let x of c){let y=qt(x),E=m.get(ut(x))?.map?.(w=>ne(w))??[],T=#${Q(x,"yyyy-MM-dd")},b=#${Q(x,"yyyy-MM-dd HH:mm:ss")};await re(sx,y,(w,{persistent:k})=>{if(k)return;let R=[...w.map(C=>C.text),...E];return R.some(C=>C.includes(T))?ur(R):ur([...R,b])},{socket:p}),h++,l({type:"spinner"},{type:"text",text:create ${h}/${c.length} diary pages...})}l({type:"check-circle"},{type:"text",text:created ${c.length} diary pages.}),t=i}catch(m){l({type:"exclamation-triangle"},{type:"text",text:m instanceof Error?${m.name} ${m.message}`:"Unknown error! (see developper console)"}),console.error(m)}finally{p&&await we(p),await ce(1e3),u()}},n=r(),o=new Date,s=setInterval(()=>{let i=new Date;We(o,i)||(o=i,n.then(()=>n=r()))},1e4);return()=>(clearTimeout(s),n)};ix(); /** @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.
*/