for-any-project-min
code:script.js
var dc=Object.defineProperty;var NP=Reflect.get,jP=Reflect.set;var Oh=e=>dc(e,"__esModule",{value:!0});var zr=(e,t)=>{Oh(e);for(var r in t)dc(e,r,{get:tr,enumerable:!0})};var mc=e=>$h.includes(e.name),$h="SocketIOError","DuplicateTitleError","NotFastForwardError";var qr=async()=>{let t=(await Uh())("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},Ah="4.2.0",fc=https://cdnjs.cloudflare.com/ajax/libs/socket.io/${Ah}/socket.io.min.js,Ds,Uh=async()=>{if(Ds)throw Ds;if(!document.querySelector(script[src="${fc}"])){let e=document.createElement("script");e.src=fc,await new Promise((t,r)=>{e.onload=()=>t(),e.onerror=n=>{Ds=n,r(n)},document.head.append(e)})}return new Promise(e=>{let t=setInterval(()=>{!io||(clearInterval(t),e(io))},500)})};var Os=(e,t=9e4)=>{let r=(o,s)=>{let i;return new Promise((a,c)=>{let l=p=>{clearTimeout(i),c(new Error(p))};e.emit(o,s,p=>{switch(clearTimeout(i),e.off("disconnect",l),o){case"socket.io-request":"error"in p?typeof p.error=="object"&&p.error&&"name"in p.error&&typeof p.error.name=="string"&&mc({name:p.error.name})?a({ok:!1,value:p.error}):a({ok:!1,value:{name:"UnexpectedError",value:p.error}}):"data"in p&&a({ok:!0,value:p.data});break;case"cursor":"error"in p?a({ok:!1,value:{name:"UnexpectedError",value:p.error}}):"data"in p&&a({ok:!0,value:p.data});break}c(new Error('Invalid response: missing "data" or "error" field'))}),i=setTimeout(()=>{e.off("disconnect",l),a({ok:!1,value:{name:"TimeoutError",message:Timeout: exceeded ${t}ms}})},t),e.once("disconnect",l)})};async function*n(...o){let s,i=()=>new Promise(c=>s=c),a=c=>{s?.(c)};for(let c of o)e.on(c,a);try{for(;;)yield await i()}finally{for(let c of o)e.off(c,a)}}return{request:r,response:n}};var Fe=()=>qr(),$s=async e=>{if(e.connected)return;let t=new Promise(r=>e.once("connect",()=>r()));e.connect(),await t},je=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 As=(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,w){let P=Math.max(x,w),_=P-h;for(;_<n.length&&P<o.length&&n_===oP;)++_,++P;return ah+s=c.length,c.push([{x:_,y:P},ah+(x>w?-1:1)+s]),P}let p=new Array(i);p.fill(-1);let u=-1,d=o.length-n.length;do{++u;for(let h=-u;h<=d-1;++h)ph+s=l(h,ph-1+s+1,ph+1+s);for(let h=d+u;h>=d+1;--h)ph+s=l(h,ph-1+s+1,ph+1+s);pd+s=l(d,pd-1+s+1,pd+1+s)}while(pd+s!==o.length);let m=[],g=ad+s;for(;g!==-1;)m.push(cg0),g=cg1;return{from:e,to:t,editDistance:d+u*2,buildSES:function*(){let h=0,x=0;for(let{x:w,y:P}of Fh(m))for(;h<w||x<P;)P-w>x-h?(yield{value:ox,type:r?"deleted":"added"},++x):P-w<x-h?(yield{value:nh,type:r?"added":"deleted"},++h):(yield{value:nh,type:"common"},++h,++x)}}};function*Us(e){let t=[],r=[];function*n(){if(t.length>r.length){for(let o=0;o<r.length;o++)yield gc(to,ro);for(let o=r.length;o<t.length;o++)yield to}else{for(let o=0;o<t.length;o++)yield gc(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 gc=(e,t)=>({value:e.value,oldValue:t.value,type:"replaced"});function*Fh(e){for(let t=e.length-1;t>=0;t--)yield et}var ee=e=>{let{fetch:t=globalThis.fetch,hostName:r="scrapbox.io",...n}=e;return{fetch:t,hostName:r,...n}};var nt=e=>e==null,gr=e=>typeof e=="string",Pe=e=>typeof e=="number";var Bh=e=>typeof e=="object"&&e!==null,Hh=e=>Bh(e)?(e.name===void 0||typeof e.name=="string")&&typeof e.message=="string":!1,hc=e=>{try{let t=typeof e=="string"?JSON.parse(e):e;return Hh(t)?t:!1}catch(t){if(t instanceof SyntaxError)return!1;throw t}};var Ht=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,Ht)}},ue=async e=>{let t=e.clone(),r=await t.text(),n=hc(r);if(!n)throw new Ht(t);return{ok:!1,value:n}};var jn=async e=>{let{sid:t,hostName:r,fetch:n}=ee(e??{}),o=new Request(https://${r}/api/users/me,t?{headers:{Cookie:ie(t)}}:void 0),s=await n(o);if(!s.ok)throw new Ht(s);return await s.json()};var ie=e=>connect.sid=${e},Rt=async e=>globalThis._csrf?globalThis._csrf:(await jn(e)).csrfToken;var xc=(e,t)=>{let{sid:r,hostName:n}=ee(t??{});return new Request(https://${n}/api/projects/${e},r?{headers:{Cookie:ie(r)}}:void 0)},bc=async e=>{if(!e.ok)return ue(e);let t=await e.json();return{ok:!0,value:t}},hr=async(e,t)=>{let{fetch:r}=ee(t??{}),n=xc(e,t),o=await r(n);return bc(o)};hr.toRequest=xc;hr.fromResponse=bc;var yc=(e,t)=>{let{sid:r,hostName:n}=ee(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:ie(r)}}:void 0)},wc=async e=>{if(!e.ok)return ue(e);let t=await e.json();return{ok:!0,value:t}},Dn=async(e,t)=>{let{fetch:r}=ee(t??{}),n=await r(yc(e,t));return wc(n)};Dn.toRequest=yc;Dn.fromResponse=wc;var On,vc=async()=>{if(On!==void 0)return On;let e=await jn();if(e.isGuest)throw new Error("this script can only be executed by Logged in users");return On=e.id,On},kc=new Map,Fs=async e=>{let t=kc.get(e);if(t!==void 0)return t;let r=await hr(e);if(!r.ok){let{name:o,message:s}=r.value;throw new Error(${o} ${s})}let{id:n}=r.value;return kc.set(e,n),n},Ec=e=>e.padStart(8,"0"),Bs=e=>{let t=Math.floor(new Date().getTime()/1e3).toString(16),r=Math.floor(16777214*Math.random()).toString(16);return${Ec(t).slice(-8)}${e.slice(-6)}0000${Ec(r)}};function*Hs(e,t,{userId:r}){let{buildSES:n}=As(e.map(({text:i})=>i),t),o=0,s=e0.id;for(let i of Us(n())){switch(i.type){case"added":yield{_insert:s,lines:{id:Bs(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 $n={};zr($n,{getTitle:()=>ab,parse:()=>Ke});var zh=e=>({type:"title",text:e.rows0.text}),qh=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(` )}},Se=(e,{parseOnNested:t,parseOnQuoted:r,patterns:n})=>(o,s,i)=>{var a,c,l,p,u,d;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 m of n){let g=m.exec(o);if(g===null)continue;let h=o.substring(0,g.index),x=o.substring(g.index+((p=(l=g[0])===null||l===void 0?void 0:l.length)!==null&&p!==void 0?p:0)),w=e((u=g[0])!==null&&u!==void 0?u:"",s);return[...Ct(h,s),...w,...Ct(x,s)]}return(d=i?.())!==null&&d!==void 0?d:[]},De=e=>[{type:"plain",raw:e,text:e}],Wh=Se(De,{parseOnNested:!0,parseOnQuoted:!0,patterns:[/^()(.*)()$/]}),Gh=/^>.*$/,Kh=(e,t)=>t.context==="table"?De(e,t):[{type:"quote",raw:e,nodes:Ct(e.substring(1),{...t,quoted:!0})}],Xh=Se(Kh,{parseOnNested:!1,parseOnQuoted:!1,patterns:[Gh]}),Yh=/^\? .+$/,Vh=(e,t)=>t.context==="table"?De(e,t):[{type:"helpfeel",raw:e,text:e.substring(2)}],Qh=Se(Vh,{parseOnNested:!1,parseOnQuoted:!1,patterns:[Yh]}),Jh=/\[\[https?:\/\/[^\s\]]+\.(?:png|jpe?g|gif|svg)\]\]/i,Zh=/\[\[https?:\/\/(?:[0-9a-z-]+\.)?gyazo\.com\/[0-9a-f]{32}\]\]/,ex=(e,t)=>{if(t.context==="table")return De(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}]},tx=Se(ex,{parseOnNested:!1,parseOnQuoted:!0,patterns:[Jh,Zh]}),rx=/\[[^[\]]*\.icon(?:\*[1-9]\d*)?\]/;function Tc(e){return(t,r)=>{if(e==="strongIcon"&&r.context==="table")return De(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 nx=Tc("icon"),ox=Se(nx,{parseOnNested:!0,parseOnQuoted:!0,patterns:[rx]}),sx=/\[\[[^[\]]*\.icon(?:\*\d+)?\]\]/,ix=Tc("strongIcon"),ax=Se(ix,{parseOnNested:!1,parseOnQuoted:!0,patterns:[sx]}),cx=/\[\[(?:[^[]|\[[^[]).*?\]*\]\]/,lx=(e,t)=>t.context==="table"?De(e,t):[{type:"strong",raw:e,nodes:Ct(e.substring(2,e.length-2),{...t,nested:!0})}],px=Se(lx,{parseOnNested:!1,parseOnQuoted:!0,patterns:[cx]}),ux=/\[\$ .+? \]/,dx=/\[\$ [^\]]+\]/,mx=(e,t)=>t.context==="table"?De(e,t):[{type:"formula",raw:e,formula:e.substring(3,e.length-(e.endsWith(" ]")?2:1))}],fx=Se(mx,{parseOnNested:!1,parseOnQuoted:!0,patterns:[ux,dx]}),gx=/\[[!"#%&'()*+,\-./{|}<>_~]+ (?:\[[^[\]]+\]|[^\]])+\]/,hx=(e,t)=>{if(t.context==="table")return De(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:Ct(o,{...t,nested:!0})}]},xx=Se(hx,{parseOnNested:!1,parseOnQuoted:!0,patterns:[gx]}),bx=/.*?/,yx=(e,t)=>t.context==="table"?De(e,t):[{type:"code",raw:e,text:e.substring(1,e.length-1)}],wx=Se(yx,{parseOnNested:!1,parseOnQuoted:!0,patterns:[bx]}),vx=/^[$%] .+$/,kx=(e,t)=>{var r;if(t.context==="table")return De(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}]},Ex=Se(kx,{parseOnNested:!1,parseOnQuoted:!1,patterns:[vx]}),Tx=/\[\s+\]/,Lx=(e,t)=>t.context==="table"?De(e,t):[{type:"blank",raw:e,text:e.substring(1,e.length-1)}],Px=Se(Lx,{parseOnNested:!1,parseOnQuoted:!0,patterns:[Tx]}),Sx=/\[https?:\/\/[^\s\]]+\.(?:png|jpe?g|gif|svg)(?:\?[^\]\s]+)?(?:\s+https?:\/\/[^\s\]]+)?\]/i,_x=/\[https?:\/\/[^\s\]]+\s+https?:\/\/[^\s\]]+\.(?:png|jpe?g|gif|svg)(?:\?[^\]\s]+)?\]/i,Rx=/\[https?:\/\/(?:[0-9a-z-]+\.)?gyazo\.com\/[0-9a-f]{32}(?:\/raw)?(?:\s+https?:\/\/[^\s\]]+)?\]/,Cx=/\[https?:\/\/[^\s\]]+\s+https?:\/\/(?:[0-9a-z-]+\.)?gyazo\.com\/[0-9a-f]{32}(?:\/raw)?\]/,Mx=e=>/^https?:\/\/[^\s\]]+\.(png|jpe?g|gif|svg)(\?[^\]\s]+)?$/i.test(e)||Ix(e),Ix=e=>/^https?:\/\/([0-9a-z-]\.)?gyazo\.com\/[0-9a-f]{32}(\/raw)?$/.test(e),Nx=(e,t)=>{if(t.context==="table")return De(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]=Mx(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}]},jx=Se(Nx,{parseOnNested:!0,parseOnQuoted:!0,patterns:[Sx,_x,Rx,Cx]}),Dx=/\[https?:\/\/[^\s\]]+\s+[^\]]*[^\s]\]/,Ox=/\[[^[\]]*[^\s]\s+https?:\/\/[^\s\]]+\]/,$x=/\[https?:\/\/[^\s\]]+\]/,Ax=/https?:\/\/[^\s]+/,Ux=(e,t)=>{if(t.context==="table")return De(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()}]},Fx=Se(Ux,{parseOnNested:!0,parseOnQuoted:!0,patterns:[Dx,Ox,$x,Ax]}),Lc=/\[([^\]]*[^\s])\s+([NS]\d+(?:\.\d+)?,[EW]\d+(?:\.\d+)?(?:,Z\d+)?)\]/,Pc=/\[([NS]\d+(?:\.\d+)?,[EW]\d+(?:\.\d+)?(?:,Z\d+)?)(?:\s+([^\]]*[^\s]))?\]/,Bx=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}},Hx=(e,t)=>{var r;if(t.context==="table")return De(e,t);let n=(r=e.match(Lc))!==null&&r!==void 0?r:e.match(Pc);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}=Bx(s),p=i!==""?https://www.google.com/maps/place/${encodeURIComponent(i)}/@${a},${c},${l}z:https://www.google.com/maps/@${a},${c},${l}z;return[{type:"googleMap",raw:e,latitude:a,longitude:c,zoom:l,place:i,url:p}]},zx=Se(Hx,{parseOnNested:!1,parseOnQuoted:!0,patterns:[Lc,Pc]}),qx=/\[\/?[^[\]]+\]/,Wx=e=>{let t=e.substring(1,e.length-1);return[{type:"link",raw:e,pathType:t.startsWith("/")?"root":"relative",href:t,content:""}]},Gx=Se(Wx,{parseOnNested:!0,parseOnQuoted:!0,patterns:[qx]}),Kx=/(?:^|\s)#\S+/,Xx=(e,t)=>{if(t.context==="table")return De(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[...De(r,t),{type:"hashTag",raw:n,href:n.substring(1)}]},Yx=Se(Xx,{parseOnNested:!0,parseOnQuoted:!0,patterns:[Kx]}),Vx=/^[0-9]+\. .*$/,Qx=(e,t)=>{if(t.context==="table")return De(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:Ct(s,{...t,nested:!0})}]},Jx=Se(Qx,{parseOnNested:!1,parseOnQuoted:!1,patterns:[Vx]}),Zx=(e,t,r)=>{var n;return e===""?[]:(n=r?.())!==null&&n!==void 0?n:[]},eb=(...e)=>(t,r)=>e.reduceRight((n,o)=>()=>o(t,r,n),()=>Wh(t,r))(),Ct=eb(Zx,Xh,Qh,wx,Ex,fx,Px,xx,tx,ax,px,jx,Fx,ox,zx,Gx,Yx,Jx),tb=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=>Ct(a,{nested:!1,quoted:!1,context:"table"})))}},rb=e=>{let{indent:t,text:r}=e.rows[0];return{indent:t,type:"line",nodes:Ct(r.substring(t),{nested:!1,quoted:!1,context:"line"})}},nb=e=>{switch(e.type){case"title":return zh(e);case"codeBlock":return qh(e);case"table":return tb(e);case"line":return rb(e)}},ob=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}}),sb=(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)},Sc=(e,t)=>{let r=e[e.length-1];return r!==void 0&&sb(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)},ib=(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(Sc,[])]}return e.reduce(Sc,[])},Ke=(e,t)=>{var r;let n=ob(e);return ib(n,{hasTitle:(r=t?.hasTitle)!==null&&r!==void 0?r:!0}).map(nb)},ab=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 ne=e=>e.replaceAll(" ","_").toLowerCase(),_c=e=>e.replaceAll("_"," "),oe=e=>[...e].map((t,r)=>t===" "?"_":!cb.includes(t)||r===e.length-1&&lb.includes(t)?encodeURIComponent(t):t).join(""),cb='@$&+=:;",',lb=':;",';var pb=/https?:\/\/(?:www\.|music\.|)youtube\.com\/watch/,ub=/https?:\/\/youtu\.be\/([a-zA-Z\d_-]+)(?:\?([^\s]{0,100})|)/,db=/https?:\/\/(?:www\.|)youtube\.com\/shorts\/([a-zA-Z\d_-]+)(?:\?([^\s]+)|)/,mb=/https?:\/\/(?:www\.|music\.|)youtube\.com\/playlist\?((?:[^\s]+&|)list=([a-zA-Z\d_-]+)(?:&[^\s]+|))/,zs=e=>{if(pb.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(db);if(t){let[,r,n]=t;return{videoId:r,params:new URLSearchParams(n),pathType:"short"}}}{let t=e.match(mb);if(t){let[,r,n]=t;return{listId:n,params:new URLSearchParams(r),pathType:"list"}}}};var Rc=e=>{let t=Ke(e,{hasTitle:!0}).flatMap(g=>{switch(g.type){case"codeBlock":case"title":return[];case"line":case"table":return g}}),r=new Map,n=[],o=new Set,s=[],i=new Set,a=[],c=null,l=new Set,p=new Set,u=new RegExp(${location?.origin??"https://scrapbox.io"}/files/([a-z0-9]{24})(?:|\\.[a-zA-Z0-9]+)(?:|\\?[^\\s]*)$),d=g=>{switch(g.type){case"hashTag":if(r.has(ne(g.href)))return;r.set(ne(g.href),!1),n.push(g.href);return;case"link":switch(g.pathType){case"relative":{let h=Cc(g.href);if(r.get(ne(h)))return;r.set(ne(h),!0),n.push(h);return}case"root":{let h=Cc(g.href);if(/^\/[\w\d-]+\/?$/.test(h)||o.has(ne(h)))return;o.add(ne(h)),s.push(h);return}case"absolute":{let h=zs(g.href);if(h&&h.pathType!=="list"){c??=https://i.ytimg.com/vi/${h.videoId}/mqdefault.jpg;return}let x=g.href.match(u)?.[1];x&&l.add(x);return}default:return}case"icon":case"strongIcon":{if(g.pathType==="root"||i.has(ne(g.path)))return;i.add(ne(g.path)),a.push(g.path);return}case"image":case"strongImage":{c??=g.src.endsWith("/thumb/1000")?g.src.replace(/\/thumb\/1000$/,"/raw"):g.src;{let h=g.src.match(u)?.[1];h&&l.add(h)}if(g.type==="image"){let h=g.link.match(u)?.[1];h&&l.add(h)}return}case"helpfeel":p.add(g.text);return;case"numberList":case"strong":case"quote":case"decoration":{for(let h of g.nodes)d(h);return}default:return}},m=[];for(let g of t)switch(g.type){case"line":for(let h of g.nodes)d(h);continue;case"table":{for(let h of g.cells)for(let x of h)for(let w of x)d(w);if(!["infobox","cosense"].includes(g.fileName))continue;m.push(...g.cells.map(h=>h.map(x=>x.map(w=>w.raw).join("")).join(" ").trim()));continue}}return[n,s,a,c,[...l],[...p],m]},Cc=e=>e.replace(/#[a-f\d]{24,32}$/,""),Mc=e=>e.flatMap(({text:t})=>/^\s*\? .*$/.test(t)?[t.trimStart().slice(2)]:[]);var zt=(e,t)=>e.length===t.length&&e.every(r=>t.includes(r));function*Ic(e,t,r){let n=t.flatMap(m=>m.split( ));for(let m of Hs(e.lines,n,{userId:r}))yield m;(e.lines[0].text!==n[0]||!e.persistent)&&(yield{title:n[0]});let o=e.lines.slice(1,6).map(m=>m.text),s=n.slice(1,6);o.join("")!==s.join("")&&(yield{descriptions:s});let[i,a,c,l,p,u,d]=Rc(n.join(
));zt(e.links,i)||(yield{links:i}),zt(e.projectLinks,a)||(yield{projectLinks:a}),zt(e.icons,c)||(yield{icons:c}),e.image!==l&&(yield{image:l}),zt(e.files,p)||(yield{files:p}),zt(Mc(e.lines),u)||(yield{helpfeels:u}),zt(e.infoboxDefinition,d)||(yield{infoboxDefinition:d})}var Nc=(e,t,r)=>{let{sid:n,hostName:o,followRename:s,projects:i}=ee(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}/${oe(t)}?${a.toString()};return new Request(c,n?{headers:{Cookie:ie(n)}}:void 0)},jc=async e=>{if(!e.ok)return e.status===414?{ok:!1,value:{name:"TooLongURIError",message:"project ids may be too much."}}:ue(e);let t=await e.json();return{ok:!0,value:t}},ct=async(e,t,r)=>{let{fetch:n}=ee(r??{}),o=Nc(e,t,r),s=await n(o);return await jc(s)};ct.toRequest=Nc;ct.fromResponse=jc;var Dc=(e,t)=>{let{sid:r,hostName:n,sort:o,limit:s,skip:i}=ee(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:ie(r)}}:void 0)},Oc=async e=>{if(!e.ok)return ue(e);let t=await e.json();return{ok:!0,value:t}},$c=async(e,t)=>{let{fetch:r}=ee(t??{}),n=await r(Dc(e,t));return await Oc(n)};$c.toRequest=Dc;$c.fromResponse=Oc;var An=async(e,t)=>{let r=await ct(e,t);if(!r.ok)throw new Error(You have no privilege of editing "/${e}/${t}".);return r.value};var xe=e=>new Promise(t=>setTimeout(()=>t(),e));var qt=async(e,t,r,n)=>{let[o,s,i]=await Promise.all([An(e,t),Fs(e),vc()]),a={...o,projectId:s,userId:i},c=n?.socket,l=c??await qr();await $s(l);try{let{request:p}=Os(l),u=0,d=[],m;for(;n?.maxAttempts===void 0||u<n.maxAttempts;){let g=r(a,u,d,m);if(d=g instanceof Promise?await g:g,u++,d.length===0)return{ok:!0,value:a.commitId};let h={kind:"page",projectId:s,pageId:a.id,parentId:a.commitId,userId:i,changes:d,cursor:null,freeze:!0};for(;;){let x=await p("socket.io-request",{method:"commit",data:h});if(x.ok)return a.commitId=x.value.commitId,{ok:!0,value:a.commitId};let w=x.value.name;if(w==="UnexpectedError"){let P=new Error;throw P.name=x.value.name,P.message=JSON.stringify(x.value),P}if(w==="TimeoutError"||w==="SocketIOError"){await xe(3e3);break}w==="NotFastForwardError"&&(a={...await An(e,t),projectId:s,userId:i}),m=w}}return{ok:!1,value:{name:"RetryError",attempts:u,message:Retrying exceeded the maxAttempts (${u}).}}}finally{c||await je(l)}};var Ac=e=>{let t=e.match(/(.+?)(?:_(\d+))?$/),r=t?.[1]??e,n=t?.[2]?parseInt(t[2])+1:2;return${r}_${n}};var ce=(e,t,r,n)=>qt(e,t,async(o,s,i,a)=>{if(a==="DuplicateTitleError"){let p=Ac(t);return i.map(u=>("title"in u&&(u.title=p),u))}let c=r(o.lines,{...o,attempts:s}),l=c instanceof Promise?await c:c;return l===void 0?[]:l.length===0?[{deleted:!0}]:[...Ic(o,l,o.userId)]},n);var Uc=(e,t,r)=>qt(e,t,n=>n.persistent?[{deleted:!0}]:[],r);var Fc=async e=>{let t=e.title??".watchlistrc",r="projectsLastAccessed.json",n=await fetch(https://${location.hostname}/api/code/${e.project}/${oe(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 ce(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 Un,J,Bc,hb,Wt,Hc,zc,qs,qc,Fn={},Wc=[],xb=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i;function Mt(e,t){for(var r in t)e[r]=t[r];return e}function Gc(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?Un.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 Bn(e,i,n,o,null)}function Bn(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,__h:null,constructor:void 0,__v:o??++Bc};return o==null&&J.vnode!=null&&J.vnode(s),s}function V(e){return e.children}function Hn(e,t){this.props=e,this.context=t}function Wr(e,t){if(t==null)return e.__?Wr(e.__,e.__.__k.indexOf(e)+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"?Wr(e):null}function Kc(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 Kc(e)}}function Ws(e){(!e.__d&&(e.__d=!0)&&Wt.push(e)&&!zn.__r++||Hc!==J.debounceRendering)&&((Hc=J.debounceRendering)||zc)(zn)}function zn(){var e,t,r,n,o,s,i,a;for(Wt.sort(qs);e=Wt.shift();)e.__d&&(t=Wt.length,n=void 0,o=void 0,i=(s=(r=e).__v).__e,(a=r.__P)&&(n=[],(o=Mt({},s)).__v=s.__v+1,Gs(a,s,o,r.__n,a.ownerSVGElement!==void 0,s.__h!=null?[i]:null,n,i??Wr(s),s.__h),tl(n,s),s.__e!=i&&Kc(s)),Wt.length>t&&Wt.sort(qs));zn.__r=0}function Xc(e,t,r,n,o,s,i,a,c,l){var p,u,d,m,g,h,x,w=n&&n.__k||Wc,P=w.length;for(r.__k=[],p=0;p<t.length;p++)if((m=r.__k[p]=(m=t[p])==null||typeof m=="boolean"||typeof m=="function"?null:typeof m=="string"||typeof m=="number"||typeof m=="bigint"?Bn(null,m,null,null,m):Array.isArray(m)?Bn(V,{children:m},null,null,null):m.__b>0?Bn(m.type,m.props,m.key,m.ref?m.ref:null,m.__v):m)!=null){if(m.__=r,m.__b=r.__b+1,(d=w[p])===null||d&&m.key==d.key&&m.type===d.type)w[p]=void 0;else for(u=0;u<P;u++){if((d=w[u])&&m.key==d.key&&m.type===d.type){w[u]=void 0;break}d=null}Gs(e,m,d=d||Fn,o,s,i,a,c,l),g=m.__e,(u=m.ref)&&d.ref!=u&&(x||(x=[]),d.ref&&x.push(d.ref,null,m),x.push(u,m.__c||g,m)),g!=null?(h==null&&(h=g),typeof m.type=="function"&&m.__k===d.__k?m.__d=c=Yc(m,c,e):c=Vc(e,m,d,w,g,c),typeof r.type=="function"&&(r.__d=c)):c&&d.__e==c&&c.parentNode!=e&&(c=Wr(d))}for(r.__e=h,p=P;p--;)w[p]!=null&&(typeof r.type=="function"&&w[p].__e!=null&&w[p].__e==r.__d&&(r.__d=Qc(n).nextSibling),nl(w[p],w[p]));if(x)for(p=0;p<x.length;p++)rl(x[p],x[++p],x[++p])}function Yc(e,t,r){for(var n,o=e.__k,s=0;o&&s<o.length;s++)(n=o[s])&&(n.__=e,t=typeof n.type=="function"?Yc(n,t,r):Vc(r,n,n,o,n.__e,t));return t}function Vc(e,t,r,n,o,s){var i,a,c;if(t.__d!==void 0)i=t.__d,t.__d=void 0;else if(r==null||o!=s||o.parentNode==null)e:if(s==null||s.parentNode!==e)e.appendChild(o),i=null;else{for(a=s,c=0;(a=a.nextSibling)&&c<n.length;c+=1)if(a==o)break e;e.insertBefore(o,s),i=s}return i!==void 0?i:o.nextSibling}function Qc(e){var t,r,n;if(e.type==null||typeof e.type=="string")return e.__e;if(e.__k){for(t=e.__k.length-1;t>=0;t--)if((r=e.__k[t])&&(n=Qc(r)))return n}return null}function bb(e,t,r,n,o){var s;for(s in r)s==="children"||s==="key"||s in t||qn(e,s,null,r[s],n);for(s in t)o&&typeof t[s]!="function"||s==="children"||s==="key"||s==="value"||s==="checked"||r[s]===t[s]||qn(e,s,t[s],r[s],n)}function Jc(e,t,r){t[0]==="-"?e.setProperty(t,r??""):e[t]=r==null?"":typeof r!="number"||xb.test(t)?r:r+"px"}function qn(e,t,r,n,o){var s;e:if(t==="style")if(typeof r=="string")e.style.cssText=r;else{if(typeof n=="string"&&(e.style.cssText=n=""),n)for(t in n)r&&t in r||Jc(e.style,t,"");if(r)for(t in r)n&&r[t]===n[t]||Jc(e.style,t,r[t])}else if(t[0]==="o"&&t[1]==="n")s=t!==(t=t.replace(/Capture$/,"")),t=t.toLowerCase()in e?t.toLowerCase().slice(2):t.slice(2),e.l||(e.l={}),e.l[t+s]=r,r?n||e.addEventListener(t,s?el:Zc,s):e.removeEventListener(t,s?el:Zc,s);else if(t!=="dangerouslySetInnerHTML"){if(o)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 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 Zc(e){return this.l[e.type+!1](J.event?J.event(e):e)}function el(e){return this.l[e.type+!0](J.event?J.event(e):e)}function Gs(e,t,r,n,o,s,i,a,c){var l,p,u,d,m,g,h,x,w,P,_,y,L,E,I,b=t.type;if(t.constructor!==void 0)return null;r.__h!=null&&(c=r.__h,a=t.__e=r.__e,t.__h=null,s=[a]),(l=J.__b)&&l(t);try{e:if(typeof b=="function"){if(x=t.props,w=(l=b.contextType)&&n[l.__c],P=l?w?w.props.value:l.__:n,r.__c?h=(p=t.__c=r.__c).__=p.__E:("prototype"in b&&b.prototype.render?t.__c=p=new b(x,P):(t.__c=p=new Hn(x,P),p.constructor=b,p.render=wb),w&&w.sub(p),p.props=x,p.state||(p.state={}),p.context=P,p.__n=n,u=p.__d=!0,p.__h=[],p._sb=[]),p.__s==null&&(p.__s=p.state),b.getDerivedStateFromProps!=null&&(p.__s==p.state&&(p.__s=Mt({},p.__s)),Mt(p.__s,b.getDerivedStateFromProps(x,p.__s))),d=p.props,m=p.state,p.__v=t,u)b.getDerivedStateFromProps==null&&p.componentWillMount!=null&&p.componentWillMount(),p.componentDidMount!=null&&p.__h.push(p.componentDidMount);else{if(b.getDerivedStateFromProps==null&&x!==d&&p.componentWillReceiveProps!=null&&p.componentWillReceiveProps(x,P),!p.__e&&p.shouldComponentUpdate!=null&&p.shouldComponentUpdate(x,p.__s,P)===!1||t.__v===r.__v){for(t.__v!==r.__v&&(p.props=x,p.state=p.__s,p.__d=!1),p.__e=!1,t.__e=r.__e,t.__k=r.__k,t.__k.forEach(function(k){k&&(k.__=t)}),_=0;_<p._sb.length;_++)p.__h.push(p._sb[_]);p._sb=[],p.__h.length&&i.push(p);break e}p.componentWillUpdate!=null&&p.componentWillUpdate(x,p.__s,P),p.componentDidUpdate!=null&&p.__h.push(function(){p.componentDidUpdate(d,m,g)})}if(p.context=P,p.props=x,p.__P=e,y=J.__r,L=0,"prototype"in b&&b.prototype.render){for(p.state=p.__s,p.__d=!1,y&&y(t),l=p.render(p.props,p.state,p.context),E=0;E<p._sb.length;E++)p.__h.push(p._sb[E]);p._sb=[]}else do p.__d=!1,y&&y(t),l=p.render(p.props,p.state,p.context),p.state=p.__s;while(p.__d&&++L<25);p.state=p.__s,p.getChildContext!=null&&(n=Mt(Mt({},n),p.getChildContext())),u||p.getSnapshotBeforeUpdate==null||(g=p.getSnapshotBeforeUpdate(d,m)),I=l!=null&&l.type===V&&l.key==null?l.props.children:l,Xc(e,Array.isArray(I)?I:[I],t,r,n,o,s,i,a,c),p.base=t.__e,t.__h=null,p.__h.length&&i.push(p),h&&(p.__E=p.__=null),p.__e=!1}else s==null&&t.__v===r.__v?(t.__k=r.__k,t.__e=r.__e):t.__e=yb(r.__e,t,r,n,o,s,i,c);(l=J.diffed)&&l(t)}catch(k){t.__v=null,(c||s!=null)&&(t.__e=a,t.__h=!!c,s[s.indexOf(a)]=null),J.__e(k,t,r)}}function tl(e,t){J.__c&&J.__c(t,e),e.some(function(r){try{e=r.__h,r.__h=[],e.some(function(n){n.call(r)})}catch(n){J.__e(n,r.__v)}})}function yb(e,t,r,n,o,s,i,a){var c,l,p,u=r.props,d=t.props,m=t.type,g=0;if(m==="svg"&&(o=!0),s!=null){for(;g<s.length;g++)if((c=s[g])&&"setAttribute"in c==!!m&&(m?c.localName===m:c.nodeType===3)){e=c,s[g]=null;break}}if(e==null){if(m===null)return document.createTextNode(d);e=o?document.createElementNS("http://www.w3.org/2000/svg",m):document.createElement(m,d.is&&d),s=null,a=!1}if(m===null)u===d||a&&e.data===d||(e.data=d);else{if(s=s&&Un.call(e.childNodes),l=(u=r.props||Fn).dangerouslySetInnerHTML,p=d.dangerouslySetInnerHTML,!a){if(s!=null)for(u={},g=0;g<e.attributes.length;g++)u[e.attributes[g].name]=e.attributes[g].value;(p||l)&&(p&&(l&&p.__html==l.__html||p.__html===e.innerHTML)||(e.innerHTML=p&&p.__html||""))}if(bb(e,d,u,o,a),p)t.__k=[];else if(g=t.props.children,Xc(e,Array.isArray(g)?g:[g],t,r,n,o&&m!=="foreignObject",s,i,s?s[0]:r.__k&&Wr(r,0),a),s!=null)for(g=s.length;g--;)s[g]!=null&&Gc(s[g]);a||("value"in d&&(g=d.value)!==void 0&&(g!==e.value||m==="progress"&&!g||m==="option"&&g!==u.value)&&qn(e,"value",g,u.value,!1),"checked"in d&&(g=d.checked)!==void 0&&g!==e.checked&&qn(e,"checked",g,u.checked,!1))}return e}function rl(e,t,r){try{typeof e=="function"?e(t):e.current=t}catch(n){J.__e(n,r)}}function nl(e,t,r){var n,o;if(J.unmount&&J.unmount(e),(n=e.ref)&&(n.current&&n.current!==e.__e||rl(n,null,t)),(n=e.__c)!=null){if(n.componentWillUnmount)try{n.componentWillUnmount()}catch(s){J.__e(s,t)}n.base=n.__P=null,e.__c=void 0}if(n=e.__k)for(o=0;o<n.length;o++)n[o]&&nl(n[o],t,r||typeof e.type!="function");r||e.__e==null||Gc(e.__e),e.__=e.__e=e.__d=void 0}function wb(e,t,r){return this.constructor(e,r)}function _e(e,t,r){var n,o,s;J.__&&J.__(e,t),o=(n=typeof r=="function")?null:r&&r.__k||t.__k,s=[],Gs(t,e=(!n&&r||t).__k=f(V,null,[e]),o||Fn,Fn,t.ownerSVGElement!==void 0,!n&&r?[r]:o?null:t.firstChild?Un.call(t.childNodes):null,s,!n&&r?r:o?o.__e:t.firstChild,n),tl(s,e)}function Ks(e,t){var r={__c:t="__cC"+qc++,__: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,Ws(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}Un=Wc.slice,J={__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}},Bc=0,hb=function(e){return e!=null&&e.constructor===void 0},Hn.prototype.setState=function(e,t){var r;r=this.__s!=null&&this.__s!==this.state?this.__s:this.__s=Mt({},this.state),typeof e=="function"&&(e=e(Mt({},r),this.props)),e&&Mt(r,e),e!=null&&this.__v&&(t&&this._sb.push(t),Ws(this))},Hn.prototype.forceUpdate=function(e){this.__v&&(this.__e=!0,e&&this.__h.push(e),Ws(this))},Hn.prototype.render=V,Wt=[],zc=typeof Promise=="function"?Promise.prototype.then.bind(Promise.resolve()):setTimeout,qs=function(e,t){return e.__v.__b-t.__v.__b},zn.__r=0,qc=0;var xr,de,Xs,ol,Gr=0,sl=[],Wn=[],il=J.__b,al=J.__r,cl=J.diffed,ll=J.__c,pl=J.unmount;function Kr(e,t){J.__h&&J.__h(de,e,Gr||t),Gr=0;var r=de.__H||(de.__H={__:[],__h:[]});return e>=r.__.length&&r.__.push({__V:Wn}),r.__[e]}function q(e){return Gr=1,Xr(dl,e)}function Xr(e,t,r){var n=Kr(xr++,2);if(n.t=e,!n.__c&&(n.__=[r?r(t):dl(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 p=n.__c.__H.__.filter(function(d){return d.__c});if(p.every(function(d){return!d.__N}))return!s||s.call(this,a,c,l);var u=!1;return p.forEach(function(d){if(d.__N){var m=d.__[0];d.__=d.__N,d.__N=void 0,m!==d.__[0]&&(u=!0)}}),!(!u&&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 p=s;s=void 0,o(a,c,l),s=p}i&&i.call(this,a,c,l)},de.shouldComponentUpdate=o}return n.__N||n.__}function H(e,t){var r=Kr(xr++,3);!J.__s&&Vs(r.__H,t)&&(r.__=e,r.i=t,de.__H.__h.push(r))}function Gt(e,t){var r=Kr(xr++,4);!J.__s&&Vs(r.__H,t)&&(r.__=e,r.i=t,de.__h.push(r))}function se(e){return Gr=5,A(function(){return{current:e}},[])}function A(e,t){var r=Kr(xr++,7);return Vs(r.__H,t)?(r.__V=e(),r.i=t,r.__h=e,r.__V):r.__}function N(e,t){return Gr=8,A(function(){return e},t)}function It(e){var t=de.context[e.__c],r=Kr(xr++,9);return r.c=e,t?(r.__==null&&(r.__=!0,t.sub(de)),t.props.value):e.__}function vb(){for(var e;e=sl.shift();)if(e.__P&&e.__H)try{e.__H.__h.forEach(Gn),e.__H.__h.forEach(Ys),e.__H.__h=[]}catch(t){e.__H.__h=[],J.__e(t,e.__v)}}J.__b=function(e){de=null,il&&il(e)},J.__r=function(e){al&&al(e),xr=0;var t=(de=e.__c).__H;t&&(Xs===de?(t.__h=[],de.__h=[],t.__.forEach(function(r){r.__N&&(r.__=r.__N),r.__V=Wn,r.__N=r.i=void 0})):(t.__h.forEach(Gn),t.__h.forEach(Ys),t.__h=[])),Xs=de},J.diffed=function(e){cl&&cl(e);var t=e.__c;t&&t.__H&&(t.__H.__h.length&&(sl.push(t)!==1&&ol===J.requestAnimationFrame||((ol=J.requestAnimationFrame)||kb)(vb)),t.__H.__.forEach(function(r){r.i&&(r.__H=r.i),r.__V!==Wn&&(r.__=r.__V),r.i=void 0,r.__V=Wn})),Xs=de=null},J.__c=function(e,t){t.some(function(r){try{r.__h.forEach(Gn),r.__h=r.__h.filter(function(n){return!n.__||Ys(n)})}catch(n){t.some(function(o){o.__h&&(o.__h=[])}),t=[],J.__e(n,r.__v)}}),ll&&ll(e,t)},J.unmount=function(e){pl&&pl(e);var t,r=e.__c;r&&r.__H&&(r.__H.__.forEach(function(n){try{Gn(n)}catch(o){t=o}}),r.__H=void 0,t&&J.__e(t,r.__v))};var ul=typeof requestAnimationFrame=="function";function kb(e){var t,r=function(){clearTimeout(n),ul&&cancelAnimationFrame(t),setTimeout(e)},n=setTimeout(r,100);ul&&(t=requestAnimationFrame(r))}function Gn(e){var t=de,r=e.__c;typeof r=="function"&&(e.__c=void 0,r()),de=t}function Ys(e){var t=de;e.__c=e.__(),de=t}function Vs(e,t){return!e||e.length!==t.length||t.some(function(r,n){return r!==e[n]})}function dl(e,t){return typeof t=="function"?t(e):t}var ml=(e,t)=>{if(!Array.isArray(e))throw new TypeError("${t}" must be an array but actual is "${e}")};var Kn=!1,fl=null;scrapbox.addListener("lines:changed",()=>Kn=!1);scrapbox.addListener("layout:changed",()=>Kn=!1);var gl=()=>(Kn||(fl=scrapbox.Page.lines,Kn=!0),fl);var hl=(e,t)=>{if(!(e instanceof HTMLDivElement))throw new TypeError("${t}" must be HTMLDivElememt but actual is "${e}")};var xl=(e,t)=>{if(!(e instanceof HTMLTextAreaElement))throw new TypeError("${t}" must be HTMLTextAreaElement but actual is "${e}")};var bl=()=>Js(document.getElementById("editor"),"div#editor"),Yr=()=>Js(document.getElementsByClassName("lines").item(0),"div.lines");var Be=()=>{let e=document.getElementById("text-input");if(!!e)return xl(e,"textarea#text-input"),e};var yl=()=>Js(document.getElementsByClassName("status-bar")?.[0],"div.status-bar"),Js=(e,t)=>{if(!!e)return hl(e,t),e};var Ae=()=>{let e=Yr();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,yt=(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 gr(r)?r:r.text};var Zs=e=>{if(nt(e))return;if(Pe(e))return Yn(e)?.id;if(gr(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)},Xn=e=>{if(nt(e))return;if(Pe(e))return e;let t=Zs(e);return t?Ae().findIndex(r=>r.id===t):-1};var Yn=e=>{if(nt(e))return;if(Pe(e))return Ae()[e];let t=Zs(e);return t?Ae().find(r=>r.id===t):void 0},Kt=e=>{if(vl(e))return e;let t=Zs(e);if(nt(t))return t;let r=document.getElementById(L${t});if(!nt(r))return r},vl=e=>e instanceof HTMLDivElement&&e.classList.contains("line"),ei=()=>Ae().length,wt=()=>{let e=gl();return ml(e,"scrapbox.Page.lines"),e},Xe=e=>{if(nt(e))return;if(Pe(e)||gr(e))return Yn(e)?.text;if(!(e instanceof HTMLElement))return;if(vl(e))return Yn(e)?.text;if(e.classList.contains("char-index"))return e.textContent??void 0;if(e.classList.contains("line")||e.getElementsByClassName("lines")?.[0])return Ae().map(({text:n})=>n).join( );let t=[],r=Yn(e);if(!nt(r)){for(let n of Eb(e))t.push(Tb(n));return r.text.slice(Math.min(...t),Math.max(...t)+1)}};var kl=()=>{let e=Yr()?.firstElementChild;if(!nt(e))return e},ti=()=>{let e=Yr()?.lastElementChild;if(!nt(e))return e};var ri=e=>{let t=Xn(e);if(!nt(t))return yt(t,wt())};function*Eb(e){let t=e.getElementsByClassName("char-index");for(let r=0;r<t.length;r++)yield t[0]}var ni=e=>e instanceof HTMLSpanElement&&e.classList.contains("char-index"),Tb=e=>{if(!ni(e))throw Error("A char DOM is required.");let t=e.className.match(/c-(\d+)/)?.[1];if(nt(t))throw Error('.char-index must have ".c-{\\d}"');return parseInt(t)},El=e=>{let t=e?.getElementsByClassName?.("c-0")?.[0];return ni(t)?t:void 0};var Vr=(e,t)=>{let r=Kt(e)?.getElementsByClassName?.(c-${t})?.[0];return ni(r)?r:void 0};var fe=(e,t)=>{let{noModifiedKeys:r=!1,...n}=t??{},o={bubbles:!0,cancelable:!0,keyCode:Lb[e],...r?{}:{...n}},s=Be();if(!s)throw Error("#text-input must exist.");s.dispatchEvent(new KeyboardEvent("keydown",o)),s.dispatchEvent(new KeyboardEvent("keyup",o))},Lb={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 oi=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 xe(10)};var ke=()=>{let e=Be();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*ze(e,t){for(let r=e;r<t;r++)yield r}var Tl=()=>{fe("Home"),fe("Home")};var Ll=async()=>{let e=kl();if(!e)throw Error(".line:first-of-type can't be found.");si(e)||e.scrollIntoView({block:"center"});let t=El(e);if(!t)throw Error(".line:first-of-type .c-0 can't be found.");let{left:r,top:n}=t.getBoundingClientRect();await oi(e,{X:r,Y:n})},Pl=async()=>{await Sl(ti())},Vn=async e=>{await Sl(Kt(e))},Sl=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 oi(e,{X:t+1,Y:r+n/2})};var _l=()=>{let e=ti()?.clientHeight;if(e===void 0)throw Error("Could not find .line:last-of-type");return Math.round(globalThis.innerHeight/e)},Rl=async(e=1)=>{let t=Xn(ke().position.line);if(t===void 0)throw Error("Could not detect the present cursor line No.");let r=Math.round((t-_l()/2)*e);await Vn(Math.max(r,0))},Cl=async(e=1)=>{let t=Xn(ke().position.line);if(t===void 0)throw Error("Could not detect the present cursor line No.");let r=Math.round((t+_l()/2)*e);await Vn(Math.min(r,ei()-1))},Ml=(e=1)=>{for(let t of ze(0,e))fe("PageUp")},Il=(e=1)=>{for(let t of ze(0,e))fe("PageDown")};var Nl=(e=1)=>{for(let t of ze(0,e))fe("z",{ctrlKey:!0})},jl=(e=1)=>{for(let t of ze(0,e))fe("z",{shiftKey:!0,ctrlKey:!0})};var lt=async(e,t,r)=>{await Vn(e),Tl();for(let n of ze(e,t))fe("ArrowDown",{shiftKey:!0});fe("End",{shiftKey:!0}),await Re(r)};var Qn=(e=1)=>{for(let t of ze(0,e))fe("ArrowRight",{ctrlKey:!0})},Jn=(e=1)=>{for(let t of ze(0,e))fe("ArrowLeft",{ctrlKey:!0})};var Zn=(e=1)=>{for(let t of ze(0,e))fe("ArrowUp",{ctrlKey:!0})},eo=(e=1)=>{for(let t of ze(0,e))fe("ArrowDown",{ctrlKey:!0})},to=(e=1)=>{for(let t of ze(0,e))fe("ArrowRight",{altKey:!0})},ro=(e=1)=>{for(let t of ze(0,e))fe("ArrowLeft",{altKey:!0})};var no=(e=1)=>{for(let t of ze(0,e))fe("ArrowUp",{altKey:!0})},oo=(e=1)=>{for(let t of ze(0,e))fe("ArrowDown",{altKey:!0})},Re=async e=>{let t=Be();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 xe(1)};var be=()=>{let e=yl();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=Dl(...r);n&&t.append(n)},dispose:()=>t.remove()}},Dl=(...e)=>{let t=e.flatMap(n=>{switch(n.type){case"spinner":returnPb();case"check-circle":returnSb();case"exclamation-triangle":return_b();case"text":returnso(n.text);case"group":{let o=Dl(...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},so=e=>{let t=document.createElement("span");return t.classList.add("item"),t.append(e),t},Pb=()=>{let e=document.createElement("i");return e.classList.add("fa","fa-spinner"),so(e)},Sb=()=>{let e=document.createElement("i");return e.classList.add("kamon","kamon-check-circle"),so(e)},_b=()=>{let e=document.createElement("i");return e.classList.add("fas","fa-exclamation-triangle"),so(e)};var ao=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_${ne(e.to.title)}]=r,localStorage.setItem("pageTransitionContext",JSON.stringify(t))};var Rb=(e,t,r)=>{let n=new URL(/${e}/${oe(t)},location.href);if(r?.body&&(n.search=?body=${encodeURIComponent(r.body)}),r?.id&&(n.hash=#${r.id}),r?.context&&ao({...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()},br=(e,t,r)=>Rb(e,t,{newTab:!1,reload:!1,body:r});var qe=()=>{let e=Be();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 ft=()=>qe().cursor;var co=()=>qe().selection;var Ol=e=>e.replace(/[.*+?^=!:${}()|\\/\\]/g,"\\$&");var $l=({project:e,title:t,words:r,lines:n,query:o,close:s})=>{let i=N(c=>{ao({type:"search",query:o,to:{project:e,title:t}}),!(c.metaKey||c.ctrlKey||c.altKey||c.shiftKey)&&s()},e,t,o,s),a=A(()=>{let c=new RegExp((${r.map(l=>Ol(l)).join("|")}),"i");return n.flatMap(l=>{let p=l.split(c);return f("span",null,p.map((u,d)=>d%2==0?u:f("strong",null,u)))})},n,r);return f("a",{href:/${e}/${oe(t)},target:${e===scrapbox.Project.name?"":"_blank"},rel:${e===scrapbox.Project.name?"route":"noopener noreferrer"},onClick:i},t,f("div",{className:"description"},a))};var Al=e=>{lett,r=q(e),n=N(()=>r(!0),[]),o=N(()=>r(!1),[]),s=N(()=>r(i=>!i),[]);returnt,{open:n,close:o,toggle:s}};var Ul=(e,t,r,n)=>{let{sid:o,hostName:s}=ee(n??{}),i=https://${s}/api/table/${e}/${oe(t)}/${encodeURIComponent(r)}.csv;return new Request(i,o?{headers:{Cookie:ie(o)}}:void 0)},Fl=async e=>e.ok?{ok:!0,value:await e.text()}:e.status===404?{ok:!1,value:{name:"NotFoundError",message:"Table not found."}}:ue(e),Bl=async(e,t,r,n)=>{let{fetch:o}=ee(n??{}),s=Ul(e,t,r,n),i=await o(s);return await Fl(i)};Bl.toRequest=Ul;Bl.fromResponse=Fl;var lo=async(e,t,r,n)=>{let{sid:o,hostName:s,fetch:i,csrf:a}=ee(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 Rt(n),...o?{Cookie:ie(o)}:{}},body:JSON.stringify({from:t,to:r})}),l=await i(c);if(!l.ok)return ue(l);let{message:p}=await l.json();return{ok:!0,value:parseInt(p.match(/\d+/)?.0??"0")}};var Hl=async(e,t)=>{let{sid:r,hostName:n,fetch:o,followingId:s}=ee(t??{}),i=new Request(https://${n}/api/pages/${e}/search/titles${s??followingId=${s}:""},r?{headers:{Cookie:ie(r)}}:void 0),a=await o(i);if(!a.ok)return a.status===422?{ok:!1,value:{name:"InvalidFollowingIdError",message:await a.text()}}:ue(a);let c=await a.json();return{ok:!0,value:{pages:c,followingId:a.headers.get("X-following-id")??""}}};var zl=async(e,t,r)=>{let{sid:n,hostName:o,fetch:s}=ee(r??{}),i=new Request(https://${o}/api/pages/${t}/search/query?q=${encodeURIComponent(e)},n?{headers:{Cookie:ie(n)}}:void 0),a=await s(i);if(!a.ok)return a.status===422?{ok:!1,value:{name:"NoQueryError",message:(await a.json()).message}}:ue(a);let c=await a.json();return{ok:!0,value:c}};var ql=async(e,t)=>{let{sid:r,hostName:n,fetch:o,csrf:s}=ee(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 Rt(t),...r?{Cookie:ie(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}}:ue(a);let{title:c}=await a.json();return{ok:!0,value:c}};var Wl=async(e,t)=>{let{sid:r,hostName:n,fetch:o,csrf:s}=ee(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 Rt(t),...r?{Cookie:ie(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}}:ue(a);let c=await a.json();return{ok:!0,value:c}};var Gl=async e=>{let{sid:t,hostName:r,gyazoTeamsName:n}=ee(e??{}),o=new Request(https://${r}/api/login/gyazo/oauth-upload/token${n??gyazoTeamsName=${n}:""},t?{headers:{Cookie:ie(t)}}:void 0),s=await fetch(o);if(!s.ok)return ue(s);let{token:i}=await s.json();return{ok:!0,value:i}};var Kl=(e,t,r,n)=>{let{sid:o,hostName:s}=ee(n??{}),i=https://${s}/api/code/${e}/${oe(t)}/${oe(r)};return new Request(i,o?{headers:{Cookie:ie(o)}}:void 0)},Xl=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"}}:ue(e),po=async(e,t,r,n)=>{let{fetch:o}=ee(n??{}),s=Kl(e,t,r,n),i=await o(s);return await Xl(i)};po.toRequest=Kl;po.fromResponse=Xl;var Yl=new TextEncoder().encode("0123456789abcdef");function Vl(e){let t=new Uint8Array(e.length*2);for(let r=0;r<t.length;r++){let n=er;tr*2=Yln>>4,tr*2+1=Yln&15}return t}var Ql="md5: data is invalid type",Xt=64,Qr=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(Xt),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=b=>tb|tb+1<<8|tb+2<<16|tb+3<<24,a=(b,k)=>b<<k|b>>>32-k,c=i(0),l=i(4),p=i(8),u=i(12),d=i(16),m=i(20),g=i(24),h=i(28),x=i(32),w=i(36),P=i(40),_=i(44),y=i(48),L=i(52),E=i(56),I=i(60);r=n+a(((o^s)&n^s)+r+c+3614090360,7),s=r+a(((n^o)&r^o)+s+l+3905402710,12),o=s+a(((r^n)&s^n)+o+p+606105819,17),n=o+a(((s^r)&o^r)+n+u+3250441966,22),r=n+a(((o^s)&n^s)+r+d+4118548399,7),s=r+a(((n^o)&r^o)+s+m+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+w+2336552879,12),o=s+a(((r^n)&s^n)+o+P+4294925233,17),n=o+a(((s^r)&o^r)+n+_+2304563134,22),r=n+a(((o^s)&n^s)+r+y+1804603682,7),s=r+a(((n^o)&r^o)+s+L+4254626195,12),o=s+a(((r^n)&s^n)+o+E+2792965006,17),n=o+a(((s^r)&o^r)+n+I+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+_+643717713,14),n=o+a(((o^s)&r^s)+n+c+3921069994,20),r=n+a(((n^o)&s^o)+r+m+3593408605,5),s=r+a(((r^n)&o^n)+s+P+38016083,9),o=s+a(((s^r)&n^r)+o+I+3634488961,14),n=o+a(((o^s)&r^s)+n+d+3889429448,20),r=n+a(((n^o)&s^o)+r+w+568446438,5),s=r+a(((r^n)&o^n)+s+E+3275163606,9),o=s+a(((s^r)&n^r)+o+u+4107603335,14),n=o+a(((o^s)&r^s)+n+x+1163531501,20),r=n+a(((n^o)&s^o)+r+L+2850285829,5),s=r+a(((r^n)&o^n)+s+p+4243563512,9),o=s+a(((s^r)&n^r)+o+h+1735328473,14),n=o+a(((o^s)&r^s)+n+y+2368359562,20),r=n+a((n^o^s)+r+m+4294588738,4),s=r+a((r^n^o)+s+x+2272392833,11),o=s+a((s^r^n)+o+_+1839030562,16),n=o+a((o^s^r)+n+E+4259657740,23),r=n+a((n^o^s)+r+l+2763975236,4),s=r+a((r^n^o)+s+d+1272893353,11),o=s+a((s^r^n)+o+h+4139469664,16),n=o+a((o^s^r)+n+P+3200236656,23),r=n+a((n^o^s)+r+L+681279174,4),s=r+a((r^n^o)+s+c+3936430074,11),o=s+a((s^r^n)+o+u+3572445317,16),n=o+a((o^s^r)+n+g+76029189,23),r=n+a((n^o^s)+r+w+3654602809,4),s=r+a((r^n^o)+s+y+3873151461,11),o=s+a((s^r^n)+o+I+530742520,16),n=o+a((o^s^r)+n+p+3299628645,23),r=n+a((o^(n|~s))+r+c+4096336452,6),s=r+a((n^(r|~o))+s+h+1126891415,10),o=s+a((r^(s|~n))+o+E+2878612391,15),n=o+a((s^(o|~r))+n+m+4237533241,21),r=n+a((o^(n|~s))+r+y+1700485571,6),s=r+a((n^(r|~o))+s+u+2399980690,10),o=s+a((r^(s|~n))+o+P+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+I+4264355552,10),o=s+a((r^(s|~n))+o+g+2734768916,15),n=o+a((s^(o|~r))+n+L+1309151649,21),r=n+a((o^(n|~s))+r+d+4149444226,6),s=r+a((n^(r|~o))+s+_+3174756917,10),o=s+a((r^(s|~n))+o+p+718787259,15),n=o+a((s^(o|~r))+n+w+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(Ql);else throw new TypeError(Ql);let n=this.#i,o=Xt-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+Xt<=r.length;)this.#c(r.slice(s,s+Xt)),s+=Xt;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=Xt-this.#i;t<9&&(t+=Xt);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(Vl(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 Jl=(e,t)=>{letr,n=q(),o,s=q(!1),i=se(Promise.resolve());return H(()=>{if(t===""){n(void 0);return}let a=!1;return i.current=(async()=>{if(await i.current,!a){s(!0);try{let c=await zl(t,e);if(a)return;n(c.ok?c.value:void 0)}finally{s(!1)}}})(),()=>a=!0},t,e),{loading:o,result:r}};var Zl=()=>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 Cb=()=>f("i",{className:"spinner"}),ep=({exportOps:e})=>{let[t,r]=q(""),n=scrapbox.Project.name,{loading:o,result:s}=Jl(n,t),i=N(m=>{r(m.currentTarget.value)},[]),[a,{open:c,close:l,toggle:p}]=Al(!1),u=se({open:c,close:l,toggle:p});H(()=>{Object.assign(u.current,{open:c,close:l,toggle:p})},[]),H(()=>e(u.current),[e]);let d=N(m=>{m.target instanceof HTMLElement&&m.target.id==="background"&&l()},[]);return f(V,null,f(Zl,null),f("div",{id:"background",className:modal${a?"":" closed"},onClick:d},f("div",{className:"controller"},f("input",{type:"text",value:t,onInput:i}),f("div",{className:"info"},o&&f(Cb,null),${s?.pages?.length??0} pages)),s?.pages&&s.pages.length>0&&f("ul",{className:"result"},s.pages.map(m=>f("li",{key:m.title},f($l,{...m,project:n,query:t,close:l}))))))};var tp=()=>{let e=document.createElement("div"),t=e.attachShadow({mode:"open"});return document.body.append(e),new Promise(r=>{_e(f(ep,{exportOps:r}),t)})};var Mb=Object.create,ii=Object.defineProperty,Ib=Object.getOwnPropertyDescriptor,Nb=Object.getOwnPropertyNames,jb=Object.getPrototypeOf,Db=Object.prototype.hasOwnProperty,Ob=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),$b=(e,t)=>{for(var r in t)ii(e,r,{get:t[r],enumerable:!0})},ai=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of Nb(t))!Db.call(e,o)&&o!==r&&ii(e,o,{get:()=>t[o],enumerable:!(n=Ib(t,o))||n.enumerable});return e},Ab=(e,t,r)=>(ai(e,t,"default"),r&&ai(r,t,"default")),rp=(e,t,r)=>(r=e!=null?Mb(jb(e)):{},ai(t||!e||!e.__esModule?ii(r,"default",{value:e,enumerable:!0}):r,e)),np=Ob((e,t)=>{(function(r,n,o){if(!r)return;for(var s={8:"backspace",9:"tab",13:"enter",16:"shift",17:"ctrl",18:"alt",20:"capslock",27:"esc",32:"space",33:"pageup",34:"pagedown",35:"end",36:"home",37:"left",38:"up",39:"right",40:"down",45:"ins",46:"del",91:"meta",93:"meta",224:"meta"},i={106:"*",107:"+",109:"-",110:".",111:"/",186:";",187:"=",188:",",189:"-",190:".",191:"/",192:"",219:"",220:"\\",221:"",222:"'"},a={"~":"","!":"1","@":"2","#":"3",$:"4","%":"5","^":"6","&":"7","*":"8","(":"9",")":"0",_:"-","+":"=",":":";",'"':"'","<":",",">":".","?":"/","|":"\\"},c={option:"alt",command:"meta",return:"enter",escape:"esc",plus:"+",mod:/Mac|iPod|iPhone|iPad/.test(navigator.platform)?"meta":"ctrl"},l,p=1;p<20;++p)s[111+p]="f"+p;for(p=0;p<=9;++p)s[p+96]=p.toString();function u(b,k,R){if(b.addEventListener){b.addEventListener(k,R,!1);return}b.attachEvent("on"+k,R)}function d(b){if(b.type=="keypress"){var k=String.fromCharCode(b.which);return b.shiftKey||(k=k.toLowerCase()),k}return s[b.which]?s[b.which]:i[b.which]?i[b.which]:String.fromCharCode(b.which).toLowerCase()}function m(b,k){return b.sort().join(",")===k.sort().join(",")}function g(b){var k=[];return b.shiftKey&&k.push("shift"),b.altKey&&k.push("alt"),b.ctrlKey&&k.push("ctrl"),b.metaKey&&k.push("meta"),k}function h(b){if(b.preventDefault){b.preventDefault();return}b.returnValue=!1}function x(b){if(b.stopPropagation){b.stopPropagation();return}b.cancelBubble=!0}function w(b){return b=="shift"||b=="ctrl"||b=="alt"||b=="meta"}function P(){if(!l){l={};for(var b in s)b>95&&b<112||s.hasOwnProperty(b)&&(l[s[b]]=b)}return l}function _(b,k,R){return R||(R=P()[b]?"keydown":"keypress"),R=="keypress"&&k.length&&(R="keydown"),R}function y(b){return b==="+"?["+"]:(b=b.replace(/\+{2}/g,"+plus"),b.split("+"))}function L(b,k){var R,T,S,M=[];for(R=y(b),S=0;S<R.length;++S)T=R[S],c[T]&&(T=c[T]),k&&k!="keypress"&&a[T]&&(T=a[T],M.push("shift")),w(T)&&M.push(T);return k=_(T,M,k),{key:T,modifiers:M,action:k}}function E(b,k){return b===null||b===n?!1:b===k?!0:E(b.parentNode,k)}function I(b){var k=this;if(b=b||n,!(k instanceof I))return new I(b);k.target=b,k._callbacks={},k._directMap={};var R={},T,S=!1,M=!1,O=!1;function $(j){j=j||{};var B=!1,X;for(X in R){if(j[X]){B=!0;continue}R[X]=0}B||(O=!1)}function U(j,B,X,Y,C,Z){var Q,ae,$e=[],ve=X.type;if(!k._callbacks[j])return[];for(ve=="keyup"&&w(j)&&(B=[j]),Q=0;Q<k._callbacks[j].length;++Q)if(ae=k._callbacks[j][Q],!(!Y&&ae.seq&&R[ae.seq]!=ae.level)&&ve==ae.action&&(ve=="keypress"&&!X.metaKey&&!X.ctrlKey||m(B,ae.modifiers))){var Nn=!Y&&ae.combo==C,js=Y&&ae.seq==Y&&ae.level==Z;(Nn||js)&&k._callbacks[j].splice(Q,1),$e.push(ae)}return $e}function D(j,B,X,Y){k.stopCallback(B,B.target||B.srcElement,X,Y)||j(B,X)===!1&&(h(B),x(B))}k._handleKey=function(j,B,X){var Y=U(j,B,X),C,Z={},Q=0,ae=!1;for(C=0;C<Y.length;++C)Y[C].seq&&(Q=Math.max(Q,Y[C].level));for(C=0;C<Y.length;++C){if(Y[C].seq){if(Y[C].level!=Q)continue;ae=!0,Z[Y[C].seq]=1,D(Y[C].callback,X,Y[C].combo,Y[C].seq);continue}ae||D(Y[C].callback,X,Y[C].combo)}var $e=X.type=="keypress"&&M;X.type==O&&!w(j)&&!$e&&$(Z),M=ae&&X.type=="keydown"};function W(j){typeof j.which!="number"&&(j.which=j.keyCode);var B=d(j);if(B){if(j.type=="keyup"&&S===B){S=!1;return}k.handleKey(B,g(j),j)}}function F(){clearTimeout(T),T=setTimeout($,1e3)}function K(j,B,X,Y){R[j]=0;function C(ve){return function(){O=ve,++R[j],F()}}function Z(ve){D(X,ve,j),Y!=="keyup"&&(S=d(ve)),setTimeout($,10)}for(var Q=0;Q<B.length;++Q){var ae=Q+1===B.length,$e=ae?Z:C(Y||L(B[Q+1]).action);G(B[Q],$e,Y,j,Q)}}function G(j,B,X,Y,C){k._directMap[j+":"+X]=B,j=j.replace(/\s+/g," ");var Z=j.split(" "),Q;if(Z.length>1){K(j,Z,B,X);return}Q=L(j,X),k._callbacks[Q.key]=k._callbacks[Q.key]||[],U(Q.key,Q.modifiers,{type:Q.action},Y,j,C),k._callbacks[Q.key][Y?"unshift":"push"]({callback:B,modifiers:Q.modifiers,action:Q.action,seq:Y,level:C,combo:j})}k._bindMultiple=function(j,B,X){for(var Y=0;Y<j.length;++Y)G(j[Y],B,X)},u(b,"keypress",W),u(b,"keydown",W),u(b,"keyup",W)}I.prototype.bind=function(b,k,R){var T=this;return b=b instanceof Array?b:[b],T._bindMultiple.call(T,b,k,R),T},I.prototype.unbind=function(b,k){var R=this;return R.bind.call(R,b,function(){},k)},I.prototype.trigger=function(b,k){var R=this;return R._directMap[b+":"+k]&&R._directMap[b+":"+k]({},b),R},I.prototype.reset=function(){var b=this;return b._callbacks={},b._directMap={},b},I.prototype.stopCallback=function(b,k){var R=this;if((" "+k.className+" ").indexOf(" mousetrap ")>-1||E(k,R.target))return!1;if("composedPath"in b&&typeof b.composedPath=="function"){var T=b.composedPath()[0];T!==b.target&&(k=T)}return k.tagName=="INPUT"||k.tagName=="SELECT"||k.tagName=="TEXTAREA"||k.isContentEditable},I.prototype.handleKey=function(){var b=this;return b._handleKey.apply(b,arguments)},I.addKeycodes=function(b){for(var k in b)b.hasOwnProperty(k)&&(s[k]=b[k]);l=null},I.init=function(){var b=I(n);for(var k in b)k.charAt(0)!=="_"&&(I[k]=function(R){return function(){return b[R].apply(b,arguments)}}(k))},I.init(),r.Mousetrap=I,typeof t<"u"&&t.exports&&(t.exports=I),typeof define=="function"&&define.amd&&define(function(){return I})})(typeof window<"u"?window:null,typeof window<"u"?document:null)}),op={};$b(op,{default:()=>Jr});var Ub=rp(np());Ab(op,rp(np()));var{default:sp,...Fb}=Ub,Jr=sp!==void 0?sp:Fb;var ip=class{constructor(){this.binders={edit:{mousetrap:new Jr(Be()),config:[]},browser:{mousetrap:new Jr,config:[]}}}clear(){for(let t of this.binders)t.config.forEach(({key:r})=>t.mousetrap.unbind(r)),t.config=[]}push(...t){for(let{key:r,command:n,type:o}of t){let s=this.binders[o??"edit"];s.mousetrap.unbind(r),n&&s.mousetrap.bind(r,n)}for(let[r,n]of Object.entries(this.binders)){let o=t.filter(i=>(i.type??"edit")===r),s=o.map(({key:i})=>i);n.config=[...n.config.filter(({key:i})=>!s.includes(i)),...o.filter(({command:i})=>i)]}}show({key:t,type:r="edit"}={}){if(!t){console.log(this.binders);return}console.log(this.binders[r].config.find(n=>n.key===t)??"no command registerd.")}},ci=new ip;window.scrapBindings=ci;function Bb(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 Hb={};function zb(){return Hb}function uo(e,t){let r=zb(),n=t?.weekStartsOn??t?.locale?.options?.weekStartsOn??r.weekStartsOn??r.locale?.options?.weekStartsOn??0,o=Bb(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 Wb(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 ap(e){let t=Wb(e);return t.setHours(0,0,0,0),t}function li(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 cp(e,t){let r=li(e.start),n=li(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(li(i)),i.setDate(i.getDate()+a),i.setHours(0,0,0,0);return o?c.reverse():c}function Xb(e){return e instanceof Date||typeof e=="object"&&Object.prototype.toString.call(e)==="[object Date]"}function lp(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 Yb(e){if(!Xb(e)&&typeof e!="number")return!1;let t=lp(e);return!isNaN(Number(t))}function Nt(e,t){let r=e<0?"-":"",n=Math.abs(e).toString().padStart(t,"0");return r+n}var Vb={y(e,t){let r=e.getFullYear(),n=r>0?r:1-r;return Nt(t==="yy"?n%100:n,t.length)},M(e,t){let r=e.getMonth();return t==="M"?String(r+1):Nt(r+1,2)},d(e,t){return Nt(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 Nt(e.getHours()%12||12,t.length)},H(e,t){return Nt(e.getHours(),t.length)},m(e,t){return Nt(e.getMinutes(),t.length)},s(e,t){return Nt(e.getSeconds(),t.length)},S(e,t){let r=t.length,n=e.getMilliseconds(),o=Math.trunc(n*Math.pow(10,r-3));return Nt(o,t.length)}},Qb=/(\w)\1*|''|'(''|[^'])+('|$)|./g,Jb=/^'([^]*?)'?$/,Zb=/''/g,ey=/[a-zA-Z]/;function le(e,t){let r=lp(e);if(!Yb(r))throw new RangeError("Invalid time value");let n=t.match(Qb);return n?n.map(o=>{if(o==="''")return"'";let s=o[0];if(s==="'")return ty(o);let i=Vb[s];if(i)return i(r,o);if(s.match(ey))throw new RangeError("Format string contains an unescaped latin alphabet character "+s+"");return o}).join(""):""}function ty(e){let t=e.match(Jb);return t?t[1].replace(Zb,"'"):e}function ny(e){let t=Object.prototype.toString.call(e);return e instanceof Date||typeof e=="object"&&t==="[object Date]"?new e.constructor(+e):typeof e=="number"||t==="[object Number]"||typeof e=="string"||t==="[object String]"?new Date(e):new Date(NaN)}function oy(e,t){return e instanceof Date?new e.constructor(t):new Date(t)}function Ye(e,t){let r=ny(e);return isNaN(t)?oy(e,NaN):(t&&r.setDate(r.getDate()+t),r)}function iy(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 ay(e,t){return e instanceof Date?new e.constructor(t):new Date(t)}function cy(e,t){let r=iy(e);return isNaN(t)?ay(e,NaN):(t&&r.setDate(r.getDate()+t),r)}function vt(e,t){return cy(e,-t)}function py(e){let t=Object.prototype.toString.call(e);return e instanceof Date||typeof e=="object"&&t==="[object Date]"?new e.constructor(+e):typeof e=="number"||t==="[object Number]"||typeof e=="string"||t==="[object String]"?new Date(e):new Date(NaN)}function uy(e,t){return e instanceof Date?new e.constructor(t):new Date(t)}function dy(e,t){let r=+py(e);return uy(e,r+t)}function pi(e,t){return dy(e,t*1e3)}function fy(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 gy(e,t){return e instanceof Date?new e.constructor(t):new Date(t)}function hy(e,t){let r=fy(e);return isNaN(t)?gy(e,NaN):(t&&r.setDate(r.getDate()+t),r)}function pp(e,t){let r=t*7;return hy(e,r)}function yy(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 mo(e){return yy(e).getDate()}var vy=Math.pow(10,8)*24*60*60*1e3,n2=-vy,ky=6048e5,Ey=3600,up=Ey*24,o2=up*7,Ty=up*365.2425,Ly=Ty/12,s2=Ly*3;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)}var Py={};function di(){return Py}function fo(e,t){let r=di(),n=t?.weekStartsOn??t?.locale?.options?.weekStartsOn??r.weekStartsOn??r.locale?.options?.weekStartsOn??0,o=ui(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 mi(e,t){return e instanceof Date?new e.constructor(t):new Date(t)}function Sy(e,t){let r=ui(e),n=r.getFullYear(),o=di(),s=t?.firstWeekContainsDate??t?.locale?.options?.firstWeekContainsDate??o.firstWeekContainsDate??o.locale?.options?.firstWeekContainsDate??1,i=mi(e,0);i.setFullYear(n+1,0,s),i.setHours(0,0,0,0);let a=fo(i,t),c=mi(e,0);c.setFullYear(n,0,s),c.setHours(0,0,0,0);let l=fo(c,t);return r.getTime()>=a.getTime()?n+1:r.getTime()>=l.getTime()?n:n-1}function _y(e,t){let r=di(),n=t?.firstWeekContainsDate??t?.locale?.options?.firstWeekContainsDate??r.firstWeekContainsDate??r.locale?.options?.firstWeekContainsDate??1,o=Sy(e,t),s=mi(e,0);return s.setFullYear(o,0,n),s.setHours(0,0,0,0),fo(s,t)}function Zr(e,t){let r=ui(e),n=+fo(r,t)-+_y(r,t);return Math.round(n/ky)+1}function Cy(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 dp(e){return Cy(e).getMonth()}function Iy(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 en(e){return Iy(e).getFullYear()}var mp=()=>{if(scrapbox.Layout!=="page")return{selectionRange:{start:{line:0,char:0},end:{line:0,char:0}},selectedText:""};let{selectionRange:e,selectedText:t,position:r}=ke();if(!t){let p=ri(r.line)??0,u={start:{line:r.line,char:0},end:{line:r.line+p,char:Xe(r.line+p)?.length??0}};return{selectionRange:u,selectedText:scrapbox.Page.lines.slice(u.start.line,u.end.line+1).map(d=>d.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 fi=(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}]}};fi.hookName="default-hook";var kt=e=>{let{project:t=scrapbox.Project.name,mode:r="newtab"}=e??{},n=[...e?.hooks??[],fi],{selectionRange:{start:o,end:s},selectedText:i}=mp();if(!i||scrapbox.Layout!=="page")return;let a=(()=>{for(let u of n){let d=u(i,{title:scrapbox.Page.title,projectFrom:scrapbox.Project.name,projectTo:t,lines:Ae().slice(o.line,s.line+1),mode:r});if(d)return[u.hookName,d]}})();if(!a)return;let[c,l]=a,p=async()=>{let u=l instanceof Promise?await l:l;if(u.pages.length===0&&u.text===i)return;let d,{render:m,dispose:g}=be();try{if(u.pages.length>0){let x=u.pages.length;m({type:"spinner"},{type:"text",text:Create new ${x} pages...}),d=await Fe();let w=0;await Promise.all(u.pages.map(async P=>{let _=Array.isArray(P.lines)?y=>[...y.map(L=>L.text),...P.lines]:P.lines;await ce(P.project,P.title,_,{socket:d}),m({type:"spinner"},{type:"text",text:Create ${x-++w} pages...})}))}m({type:"spinner"},{type:"text",text:${u.pages.length>0?"Created. ":""}Removing cut text...});let h=u.text;if(i===h)return;await ce(scrapbox.Project.name,scrapbox.Page.title,x=>{let w=x.map(P=>P.text);return[...w.slice(0,o.line),...${wo.line.slice(0,o.char)}${h}${w.slice(s.line).join(` ).slice(s.char)}.split(`
)]}),m({type:"check-circle"},{type:"text",text:"Removed."});for(let x of u.pages)switch(x.mode){case"self":x.project===scrapbox.Project.name?br(x.project,x.title):window.open(https://scrapbox.io/${x.project}/${oe(x.title)},"_self");break;case"newtab":window.open(https://scrapbox.io/${x.project}/${oe(x.title)});break}}catch(h){m({type:"exclamation-triangle"},{type:"text",text:"Failed to create new pages (see console)."}),console.error(h)}finally{let h=xe(1e3);d&&await je(d),await h,g()}};return p.hookName=c,p};var fp=e=>{let t=new Map;for(let r of e){let n=${en(r)}-${dp(r)}-${mo(r)},o=t.get(n);o&&o.getTime()>r.getTime()||t.set(n,r)}return[...t.values()]};function gi(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 go(e,t){return e instanceof Date?new e.constructor(t):new Date(t)}function jy(e,t){let r=gi(e);return isNaN(t)?go(e,NaN):(t&&r.setDate(r.getDate()+t),r)}function Dy(e,t){let r=gi(e);if(isNaN(t))return go(e,NaN);if(!t)return r;let n=r.getDate(),o=go(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 gp(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=gi(e),p=n||r?Dy(l,n+r*12):l,u=s||o?jy(p,s+o*7):p,d=a+i*60,m=(c+d*60)*1e3;return go(e,u.getTime()+m)}function Oy(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,t){return e instanceof Date?new e.constructor(t):new Date(t)}function Ay(e,t){let r=+Oy(e);return $y(e,r+t)}var Uy=Math.pow(10,8)*24*60*60*1e3,Nj=-Uy,Fy=36e5,By=3600,hp=By*24,jj=hp*7,Hy=hp*365.2425,zy=Hy/12,Dj=zy*3;function xp(e,t){return Ay(e,t*Fy)}function qy(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 Gy(e,t){let r=+qy(e);return Wy(e,r+t)}var Ky=Math.pow(10,8)*24*60*60*1e3,Bj=-Ky,Xy=6e4,Yy=3600,bp=Yy*24,Hj=bp*7,Vy=bp*365.2425,Qy=Vy/12,zj=Qy*3;function jt(e,t){return Gy(e,t*Xy)}function yp(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,t){let r=yp(e),n=yp(t),o=r.getTime()-n.getTime();return o<0?-1:o>0?1:o}var Jy=Math.pow(10,8)*24*60*60*1e3,vD=-Jy,Zy=864e5,ew=3600,vp=ew*24,kD=vp*7,tw=vp*365.2425,rw=tw/12,ED=rw*3;function kp(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 Ep(e){let t=kp(e);return t.setHours(0,0,0,0),t}function Tp(e){let t=kp(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 Lp(e,t){let r=Ep(e),n=Ep(t),o=+r-Tp(r),s=+n-Tp(n);return Math.round((o-s)/Zy)}function Pp(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 Sp(e,t){let r=Pp(e),n=Pp(t),o=r.getFullYear()-n.getFullYear(),s=r.getMonth()-n.getMonth();return o*12+s}function nw(e){return t=>{let r=(e?Math[e]:Math.trunc)(t);return r===0?0:r}}var ow=Math.pow(10,8)*24*60*60*1e3,jD=-ow,sw=6e4,iw=3600,_p=iw*24,DD=_p*7,aw=_p*365.2425,cw=aw/12,OD=cw*3;function Rp(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 lw(e,t){return+Rp(e)-+Rp(t)}function hi(e,t,r){let n=lw(e,t)/sw;return nw(r?.roundingMethod)(n)}function tn(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 pw(e,t){return e instanceof Date?new e.constructor(t):new Date(t)}function uw(e,t){let r=tn(e);return isNaN(t)?pw(e,NaN):(t&&r.setDate(r.getDate()+t),r)}function dw(e,t){let r=t*7;return uw(e,r)}var mw={};function fw(){return mw}function ho(e,t){let r=fw(),n=t?.weekStartsOn??t?.locale?.options?.weekStartsOn??r.weekStartsOn??r.locale?.options?.weekStartsOn??0,o=tn(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 Cp(e,t){let r=tn(e.start),n=tn(e.end),o=+r>+n,s=ho(o?n:r,t),i=ho(o?r:n,t);s.setHours(15),i.setHours(15);let a=+i.getTime(),c=s,l=t?.step??1;if(!l)return[];l<0&&(l=-l,o=!o);let p=[];for(;+c<=a;)c.setHours(0),p.push(tn(c)),c=dw(c,l),c.setHours(15);return o?p.reverse():p}function gw(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 Mp(e){let t=gw(e);return t.setHours(23,59,59,999),t}function hw(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 Ip(e){return hw(e).getHours()}function xw(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 Np(e){return xw(e).getMinutes()}function jp(e,t){return e instanceof Date?new e.constructor(t):new Date(t)}function Dp(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 bw={};function Op(){return bw}function $p(e,t){let r=Op(),n=t?.weekStartsOn??t?.locale?.options?.weekStartsOn??r.weekStartsOn??r.locale?.options?.weekStartsOn??0,o=Dp(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 Ap(e,t){let r=Dp(e),n=r.getFullYear(),o=Op(),s=t?.firstWeekContainsDate??t?.locale?.options?.firstWeekContainsDate??o.firstWeekContainsDate??o.locale?.options?.firstWeekContainsDate??1,i=jp(e,0);i.setFullYear(n+1,0,s),i.setHours(0,0,0,0);let a=$p(i,t),c=jp(e,0);c.setFullYear(n,0,s),c.setHours(0,0,0,0);let l=$p(c,t);return r.getTime()>=a.getTime()?n+1:r.getTime()>=l.getTime()?n:n-1}var yw=Math.pow(10,8)*24*60*60*1e3,AO=-yw;var ww=3600,Up=ww*24,UO=Up*7,vw=Up*365.2425,kw=vw/12,FO=kw*3;function Fp(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 Yt(e,t){let r=Fp(e),n=Fp(t);return r.getTime()>n.getTime()}function Ew(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 Bp(e){let t=Ew(e);return t.setHours(0,0,0,0),t}function ot(e,t){let r=Bp(e),n=Bp(t);return+r==+n}function Tw(e){return e instanceof Date||typeof e=="object"&&Object.prototype.toString.call(e)==="[object Date]"}function Lw(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 yr(e){if(!Tw(e)&&typeof e!="number")return!1;let t=Lw(e);return!isNaN(Number(t))}function xi(e,t){return e instanceof Date?new e.constructor(t):new Date(t)}function bi(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 Pw(e){let t=bi(e),r=t.getFullYear(),n=t.getMonth(),o=xi(e,0);return o.setFullYear(r,n+1,0),o.setHours(0,0,0,0),o.getDate()}function Sw(e,t){let r=bi(e),n=r.getFullYear(),o=r.getDate(),s=xi(e,0);s.setFullYear(n,t,15),s.setHours(0,0,0,0);let i=Pw(s);return r.setMonth(t,Math.min(o,i)),r}function Hp(e,t){let r=bi(e);return isNaN(+r)?xi(e,NaN):(t.year!=null&&r.setFullYear(t.year),t.month!=null&&(r=Sw(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 _w=Math.pow(10,8)*24*60*60*1e3,N$=-_w,Rw=6048e5,Cw=3600,zp=Cw*24,j$=zp*7,Mw=zp*365.2425,Iw=Mw/12,D$=Iw*3;function xo(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 Nw={};function yi(){return Nw}function bo(e,t){let r=yi(),n=t?.weekStartsOn??t?.locale?.options?.weekStartsOn??r.weekStartsOn??r.locale?.options?.weekStartsOn??0,o=xo(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 jw(e,t){let r=xo(e),n=r.getFullYear(),o=yi(),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=bo(i,t),c=wi(e,0);c.setFullYear(n,0,s),c.setHours(0,0,0,0);let l=bo(c,t);return r.getTime()>=a.getTime()?n+1:r.getTime()>=l.getTime()?n:n-1}function Dw(e,t){let r=yi(),n=t?.firstWeekContainsDate??t?.locale?.options?.firstWeekContainsDate??r.firstWeekContainsDate??r.locale?.options?.firstWeekContainsDate??1,o=jw(e,t),s=wi(e,0);return s.setFullYear(o,0,n),s.setHours(0,0,0,0),bo(s,t)}function Ow(e,t){let r=xo(e),n=+bo(r,t)-+Dw(r,t);return Math.round(n/Rw)+1}function qp(e,t,r){let n=xo(e),o=Ow(n,r)-t;return n.setDate(n.getDate()-o*7),n}var $w=Math.pow(10,8)*24*60*60*1e3,V$=-$w;var Aw=3600,Wp=Aw*24,Q$=Wp*7,Uw=Wp*365.2425,Fw=Uw/12,J$=Fw*3;function Bw(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 Hw(e,t){return e instanceof Date?new e.constructor(t):new Date(t)}function zw(e,t){let r=Bw(e);return isNaN(t)?Hw(e,NaN):(t&&r.setDate(r.getDate()+t),r)}function qw(e,t){let r=t*7;return zw(e,r)}function Gp(e,t){return qw(e,-t)}var Kp=e=>e==null,Dt=e=>typeof e=="string";async function*Xp(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 Et=e=>{let t=e.match(/^(\d{4})-(\d{2})-(\d{2}) (?: {5}|(\d{2}):(\d{2})) (?: {4}|(\d{4})) (?: {8}|(\d{2}):(\d{2}):(\d{2})) (?: {8}|(\d{2}):(\d{2}):(\d{2}))([^\n]*)$/);if(!t)return;let[,r,n,o,s,i,a,c,l,p,u,d,m,g]=t,h={title:g,base:new Date(parseInt(r),parseInt(n)-1,parseInt(o)),plan:{},record:{}};if(s){let x=new Date(h.base);x.setHours(parseInt(s)),x.setMinutes(parseInt(i)),h.plan.start=x}if(a&&(h.plan.duration=parseInt(a)*60),c){let x=new Date(h.base);x.setHours(parseInt(c)),x.setMinutes(parseInt(l)),x.setSeconds(parseInt(p)),h.record.start=x}if(u){let x=new Date(h.base);x.setHours(parseInt(u)),x.setMinutes(parseInt(d)),x.setSeconds(parseInt(m)),h.record.start&&Yt(h.record.start,x)&&x.setDate(x.getDate()+1),h.record.end=x}return h};var wr=e=>e.record?.start??e.plan?.start??e.base,Yp=e=>e.record?.end??(Kp(e.plan?.duration)?e.base:pi(wr(e),e.plan.duration));var Ee=({title:e,base:t,plan:r,record:n})=>["",le(t,"yyyy-MM-dd")," ",r?.start?le(r.start,"HH:mm"):" ".repeat(5)," ",r?.duration?${r.duration/60}.padStart(4,"0"):" ".repeat(4)," ",n?.start?le(n?.start,"HH:mm:ss"):" ".repeat(8)," ",n?.end?le(n?.end,"HH:mm:ss"):" ".repeat(8),"",e].join("");function*Vp(e){for(let t of Vt(e))Dt(t)||(yield t)}function*Vt(e){for(let t=0;t<e.length;t++){let r=e[t],n=Dt(r)?r:r.text,o=yt(t,e),s=Et(n);if(!s){yield n;continue}yield{...s,lines:e.slice(t+1,t+1+o).map(i=>Dt(i)?i:i.text)},t+=o}}var xU=5*60;var rn=()=>{let{selectionRange:{start:e,end:t},selectedText:r,position:n}=ke();return r===""?[n.line,n.line]:e.line>t.line?[t.line,e.line]:[e.line,t.line]};var vi=(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 Kw){let l=o.match(a);if(!l)continue;let p=c(l),u=p.isDuration?gp(t,p):Hp(t,p);return s==="s"?{name:n.trimEnd(),start:u,...r!==void 0?{duration:parseInt(r)*60}:{}}:{name:n.trimEnd(),start:vi(t.getTime()/1e3,(u.getTime()-t.getTime())/(24*60*60*1e3)),...r!==void 0?{duration:parseInt(r)*60}:{}}}},Kw=[{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 nn=async()=>{let e=new Date,[t,r]=rn(),n=wt().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:[Ee({title:a.trim(),base:c??e,plan:{start:c,duration:l},record:{}})]}).join( );n.join(
)!==o&&await lt(t,r,o)};var Yw="日刊記録sheet",Vw=/日刊記録sheet (\d{4})-(\d{2})-(\d{2})/,on=["[** 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 Ei=e=>{let t=e.match(Vw);if(!t)return;let[,r,n,o]=t,s=new Date(parseInt(r),parseInt(n)-1,parseInt(o));return yr(s)?s:void 0},sn=e=>le(e,'${Yw}' yyyy-MM-dd),Ti=e=>{let t=Ei(e[0]);if(!t)return e;let r=Qw(t),n=[],o=[];for(let a of Vt(e.slice(1))){if(typeof a=="string"){if(on.includes(a)||r!==""&&r===a)continue;o.push(a);continue}n.push(a)}let s=n.sort((a,c)=>wp(wr(a),wr(c)));if(s.length===0)return[e[0],r,...on,...o];let i=[0,0,0,0,0,0,0,0];for(let a=1;a<on.length;a++){let c=xp(new Date(t.getFullYear(),t.getMonth(),t.getDate()),3*a),l=s.findIndex(m=>Yt(wr(m),c));if(l<0){i[a]=-1;continue}if(l===0)continue;let p=s[l-1],u=wr(p),d=Yp(p);i[a]=(d.getTime()-u.getTime())/2<c.getTime()-u.getTime()?l:l-1}return[e[0],r,...s.flatMap((a,c)=>[...i.flatMap((l,p)=>l===c?[on[p]]:[]),Ee(a),...a.lines]),...i.flatMap((a,c)=>a===-1?[on[c]]:[]),...o]},Qw=e=>yesterday: ${sn(vt(e,1))};async function*Li(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++)!ot(n[c].base,i)||(a.push(...n.splice(c,1)),c--);o.push((async()=>(await ce(e,sn(i),c=>Ti([...c.map(l=>l.text),...a.flatMap(l=>[Ee(l),...l.lines??[]])]),r),{date:i,size:a.length}))())}yield*Xp(o)}var an=async({from:{project:e,title:t},to:r})=>{let n=await ct(e,t);if(!n.ok)throw n.value;let o=Ei(t),{lines:s}=n.value,i=[];for(let p of Vp(s))o&&ot(p.base,o)||i.push(p);let{render:a,dispose:c}=be();a({type:"spinner"},{type:"text",text:copying ${i.length} tasks...});let l=await Fe();try{let p=0,u=!1;for await(let d of Li(r,i,{socket:l})){if(d.state!=="fulfilled"){console.error(d.reason),u=!0;continue}p+=d.value.size,a({type:"spinner"},{type:"text",text:copying ${i.length-p} tasks...})}if(u){a({type:"exclamation-triangle"},{type:"text",text:"Some tasks failed to be written"});return}a({type:"spinner"},{type:"text",text:Copied. removing ${i.length} original tasks...}),await ce(e,t,d=>{let m=[];for(let g of Vt(d)){if(Dt(g)){m.push(g);continue}o&&ot(g.base,o)&&m.push(Ee(g),...g.lines)}return m},{socket:l}),a({type:"check-circle"},{type:"text",text:"Moved"})}finally{await je(l),await xe(1e3),c()}};var pt=e=>${e}.padStart(2,"0");var Qt=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,gt=e=>${${e.year}.padStart(4,"0")}-${pt(e.month)}-${pt(e.date)}${"hours"in e?T${pt(e.hours)}:${pt(e.minutes)}:""},te=e=>{let t=gt(e);return new Date(t.includes("T")?t:${t}T00:00)},We=e=>({year:e.getFullYear(),month:e.getMonth()+1,date:e.getDate(),hours:e.getHours(),minutes:e.getMinutes()});var Jp=e=>{switch(e.toLowerCase()){case"y":return"yearly";case"m":return"monthly";case"w":return"weekly";case"d":return"daily";default:return}};var Zp=e=>{switch(e){case"+":return"todo";case"-":return"note";case"!":return"deadline";case".":return"done";case"~":return"up-down";default:return}},eu=e=>{switch(e){case"todo":return"+";case"note":return"-";case"deadline":return"!";case"done":return".";case"up-down":return"~"}};var Ot=e=>{let t=e.match(/(?:([\+\-!~.])(\d+)?)?@(\d{4})-(\d{2})-(\d{2})(?:T(\d{2}):(\d{2}))?(?:\/(\d{2}):(\d{2})|\/(?:(?:(?:(\d{4})-)?(\d{2})-)?(\d{2})(?:T(\d{2}):(\d{2}))?)|D(\d+))?(?:R([YMWD])?(\d+))?(?:@(?:(\d{2}):(\d{2})|(?:(?:(\d{4})-)?(\d{2})-)?(\d{2})(?:T(\d{2}):(\d{2}))?)?(?:\/(\d{2}):(\d{2})|\/(?:(?:(?:(\d{4})-)?(\d{2})-)?(\d{2})(?:T(\d{2}):(\d{2}))?)|D(\d+))?)?/i);if(!t)return;let[r,n,o,s,i,a,c,l,p,u,d,m,g,h,x,w,P,_,y,L,E,I,b,k,R,T,S,M,O,$,U,D,W]=t,F=${e.slice(0,t.index).trim()}${e.slice((t.index??0)+r.length).trim()},K=nu(s,i,a,c,l);if(!yr(te(K)))return{ok:!1,value:{name:"InvalidDateError",message:The reference point of the task "${gt(K)}" is an invalid date.}};let G=ou(K,d,m,g,p||h,u||x,w);if(G!==void 0){if(Pe(G)&&isNaN(G)||!Pe(G)&&!yr(te(G)))return{ok:!1,value:{name:"InvalidDateError",message:The estimated end of the task${Pe(G)?"": "${gt(G)}"} is an invalid date.}};if(Pe(G)&&G<0||!Pe(G)&&st(G,K))return{ok:!1,value:{name:"TaskRangeError",message:The reference point of an task cannot be after its estimated end. reference point:${gt(K)}
estimated end:${gt(Pe(G)?We(jt(te(K),G)):G)}}}}let j=/^[\uFE00-\uFE0F]*[✅❌]/.test(e)?"done":Zp(n),B=j?{status:j,refDate:K}:void 0;B&&o&&(B.speed=parseInt(o));let X=nu(E||s,I||i,b||a,y||k||c,L||R||l);if(!yr(te(X)))return{ok:!1,value:{name:"InvalidDateError",message:The start of the task/event "${gt(X)}" is an invalid date.}};let Y=ou(X,M||d,O||m,$||g,T||U||p||h,S||D||u||x,W||w),C=Qt(X)&&Pe(Y)?{start:X,duration:Y}:void 0;if(C){let Q={name:F,executed:C,generated:!1,raw:e};return B&&(Q.freshness=B),(P||_)&&(Q.recurrence={frequency:Jp(P??"D")??"daily",count:_?parseInt(_):1}),{ok:!0,value:Q}}if(!B)return{ok:!1,value:{name:"InvalidDateError",message:"Task requires freshness to be spec"}};let Z={name:F,freshness:B,generated:!1,raw:e};return G&&(Z.estimated=G),{ok:!0,value:C?{...Z,executed:C}:Z}},ht=e=>!("executed"in e),vr=e=>"recurrence"in e,tu=e=>!("executed"in e||"freshness"in e&&Qt(e.freshness.refDate)&&e.estimated&&(Pe(e.estimated)||Qt(e.estimated))),cn=e=>"executed"in e?e.executed.duration:Pe(e.estimated)?e.estimated:void 0,xt=e=>ht(e)?e.freshness.refDate:e.executed.start,ru=e=>{if(!ht(e)){let r=te(e.executed.start);return We(jt(r,e.executed.duration))}if(Pe(e.estimated)&&Qt(e.freshness.refDate)){let r=te(e.freshness.refDate);return We(jt(r,e.estimated))}let t=te(Pe(e.estimated)?e.freshness.refDate:e.estimated??e.freshness.refDate);return t.setHours(0),t.setMinutes(0),We(Ye(t,1))},Jw=e=>{let t=e.freshness?${eu(e.freshness.status)}${e.freshness.speed??""}:"",r=${gt(xt(e))},n=cn(e);return${t}@${r}${n===void 0?"":D${n}}${e.name}},yo=(e,t)=>{let r=We(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(Sp(te(r),te(o.start))%(n.count??1)!=0)return;break}case"weekly":case"daily":{let a=n.frequency==="weekly"?7:1;if(Lp(te(r),te(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},wo=e=>e.freshness?e.generated?Jw(e):e.raw:e.generated?void 0:e.raw,nu=(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}},ou=(e,t,r,n,o,s,i)=>{if(!t&&!r&&!n&&!o&&!s&&!i)return;if(i)return parseInt(i);let a=t?parseInt(t):e.year,c=r?parseInt(r):e.month,l=n?parseInt(n):e.date,p=o?parseInt(o):void 0,u=s?parseInt(s):void 0,d=p!==void 0&&u!==void 0?{year:a,month:c,date:l,hours:p,minutes:u}:{year:a,month:c,date:l};return!Qt(e)||!Qt(d)?d:Math.round((te(d).getTime()-te(e).getTime())/(60*1e3))};var Pi=(e,t)=>{if(!e.generated&&vr(e)){let s=yo(e,t);return s?Pi(s,t):void 0}let r=te(ht(e)?e.freshness.refDate:e.executed.start),n=cn(e),o=wo(e);return{title:o!==void 0?${o}:e.name,base:r,plan:{start:tu(e)?void 0:r,duration:n!==void 0?n*60:void 0},record:{}}};var Si={あさごはん:"#log-breakfast",ひるごはん:"#log-lunch",よるごはん:"#log-dinner"},Jt=(e,{title:t,projectTo:r,mode:n})=>{let[o,...s]=e.split( ),i=Et(o);if(!i)return;if(s.length===0)return{text:e,pages:[]};let{title:a,base:c,record:l,...p}=i,u=Zw(a,c,l),d=Ee({title:${u},base:c,record:l,...p}),m=Math.min(...s.map(h=>He(h))),g=[.../[\[\]]/.test(a)&&a!==${u}?[a]:[],...t in Si?[...s.map(h=>h.slice(m)),"",Si[t],"#log-eatenfood"]:[...s.map(h=> ${h.slice(m)}),""]];return{text:d,pages:[{project:r,title:u,lines:su(t,g,[l.start??c]),mode:n}]}};Jt.hookName="task-hook";var Zw=(e,t,r)=>{let n=le(r.start??t,"yyyy-MM-dd");if(e in Si)return${n} ${e};if(Ot(e.slice(1,-1)))return e.slice(1,-1);let o=e.replace(/[\[\]]/g,"").trim();return${o}${o.endsWith(n)?"": ${n}}},Zt=(e,{title:t,projectTo:r,mode:n,lines:o})=>{let[s,...i]=e.split( );if(i.length===0)return;let a=s.replace(/[\[\]]/g,"").trim(),c=Math.min(...i.map(u=>He(u))),l=r.startsWith("takker")?fp([new Date,...o.map(({updated:u})=>new Date(u*1e3))]).sort((u,d)=>d.getTime()-u.getTime()):[],p=["",.../[\[\]]/.test(s)?[s.trimStart()]:[],...i.map(u=>u.slice(c))];return{text:${" ".repeat(He(s))}${a},pages:[{project:r,title:a,lines:su(t,p,l),mode:n}]}};Zt.hookName="new-page-hook";var er=(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=>ne(a[1])),i=o.replaceAll("[","").replaceAll("]","");return{text:${n}${i},pages:[{project:t,title:i,lines:(a,{links:c})=>{let l=c.map(p=>ne(p));if(!s.every(p=>l.includes(p)))return[...a.map(p=>p.text),o]},mode:r}]}};er.hookName="splitted-link-hook";var su=(e,t,r)=>(n,{links:o})=>{let s=o.map(u=>ne(u)),i=s.includes(ne(e))?[]:[from ${e}],a=r.flatMap(u=>{let d=le(u,"yyyy-MM-dd");if(s.includes(d))return[];let m=le(u,"HH:mm:ss");return[#${d} ${m}]}),c=n.map(u=>u.text),l=c.findIndex(u=>/^#\d{4}-\d{2}-\d{2}/.test(u)),p=l<0?c.length:l;return[...c.slice(0,p),...i,...t,"",...a,...c.slice(p)]};var iu=/mobile/i.test(navigator.userAgent)?[{key:"ctrl+h",command:()=>(Jn(),!1)},{key:"ctrl+j",command:()=>(eo(),!1)},{key:"ctrl+k",command:()=>(Zn(),!1)},{key:"ctrl+l",command:()=>(Qn(),!1)},{key:"alt+h",command:()=>(ro(),!1)},{key:"alt+j",command:()=>(oo(),!1)},{key:"alt+k",command:()=>(no(),!1)},{key:"alt+l",command:()=>(to(),!1)},{key:"i",command:()=>{let e=ft();return e.focus(),e.showEditPopupMenu(),!1},type:"browser"}]:[];var au=[{key:"alt+a alt+c",command:()=>((async()=>{let[e,t]=ev(),r=wt().slice(e,t+1).map(n=>{let o=n.text,s=n.text.match(/\[([^\]]+)\]/)?.[1];if(!s)return o;let i=Ot(s);if(!i||!i.ok)return o;let a=i.value;if(a.freshness?.status==="done")return o;let c=Pi(a);return c.title=${s},c?Ee(c):o}).join( );await lt(e,t,r),await nn()})(),!1)},{key:"alt+a alt+m",command:()=>{if(scrapbox.Layout==="page")return an({from:{project:scrapbox.Project.name,title:scrapbox.Page.title},to:"takker-memex"}),!1}}],ev=()=>{let{selectionRange:{start:e,end:t},selectedText:r,position:n}=ke();return r===""?[n.line,n.line]:e.line>t.line?[t.line,e.line]:[e.line,t.line]};var tv=[{key:"ctrl+]",command:()=>{let{position:{line:e,char:t}}=ke();return Vr(e,t)?.closest("a.page-link")?.click?.()??Kt(e)?.querySelector?.("a.page-link")?.click?.(),!1}},{key:"ctrl+o",command:()=>(history.back(),!1)}],rv=[{key:"ctrl+home",command:()=>(Ll(),!1)},{key:"ctrl+end",command:()=>(Pl(),!1)},{key:"ctrl+u",command:()=>(Rl(),!1)},{key:"ctrl+d",command:()=>(Cl(),!1)},{key:"ctrl+b",command:()=>(Ml(),!1)},{key:"ctrl+f",command:()=>(Il(),!1)}],nv=[],cu=[Jt,Zt,er],ov=[{key:"ctrl+shift+x",command:()=>{let e=window.prompt("Create a new page at",scrapbox.Project.name);if(!!e)return kt({project:e,mode:"self",hooks:cu})?.(),!1}},{key:"ctrl+shift+d",command:()=>{let e=window.prompt("Create a new page at",scrapbox.Project.name);if(!!e)return kt({project:e,mode:"noopen",hooks:cu})?.(),!1}}];scrapbox.TimeStamp.removeAllFormats();var sv=[{key:"alt+t alt+t",command:()=>(Re(le(new Date,"#yyyy-MM-dd HH:mm:ss ")),!1)},{key:"alt+t alt+j",command:()=>(Re(le(new Date,"yyyy-MM-dd HH:mm:ss ")),!1)},{key:"alt+t alt+k",command:()=>(Re(le(new Date,"HH:mm:ss ")),!1)},{key:"alt+t alt+l",command:()=>(Re(le(new Date,"yyyy-MM-dd")),!1)}],lu=[...tv,...rv,...nv,...ov,...sv,...iu,...au];var pe=e=>{let{fetch:t=globalThis.fetch,hostName:r="scrapbox.io",...n}=e;return{fetch:t,hostName:r,...n}};var iv=e=>typeof e=="object"&&e!==null,av=e=>iv(e)?(e.name===void 0||typeof e.name=="string")&&typeof e.message=="string":!1,pu=e=>{try{let t=typeof e=="string"?JSON.parse(e):e;return av(t)?t:!1}catch(t){if(t instanceof SyntaxError)return!1;throw t}};var kr=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,kr)}},Te=async e=>{let t=e.clone(),r=await t.text(),n=pu(r);if(!n)throw new kr(t);return{ok:!1,value:n}};var ye=e=>connect.sid=${e};var Ge=e=>e.replaceAll(" ","_").toLowerCase();var Le=e=>[...e].map((t,r)=>t===" "?"_":!cv.includes(t)||r===e.length-1&&lv.includes(t)?encodeURIComponent(t):t).join(""),cv='@$&+=:;",',lv=':;",';var uu=(e,t,r)=>{let{sid:n,hostName:o,followRename:s,projects:i}=pe(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}/${Le(t)}?${a.toString()};return new Request(c,n?{headers:{Cookie:ye(n)}}:void 0)},du=async e=>{if(!e.ok)return e.status===414?{ok:!1,value:{name:"TooLongURIError",message:"project ids may be too much."}}:Te(e);let t=await e.json();return{ok:!0,value:t}},Er=async(e,t,r)=>{let{fetch:n}=pe(r??{}),o=uu(e,t,r),s=await n(o);return await du(s)};Er.toRequest=uu;Er.fromResponse=du;var mu=(e,t)=>{let{sid:r,hostName:n,sort:o,limit:s,skip:i}=pe(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:ye(r)}}:void 0)},fu=async e=>{if(!e.ok)return Te(e);let t=await e.json();return{ok:!0,value:t}},gu=async(e,t)=>{let{fetch:r}=pe(t??{}),n=await r(mu(e,t));return await fu(n)};gu.toRequest=mu;gu.fromResponse=fu;var hu=(e,t,r,n)=>{let{sid:o,hostName:s}=pe(n??{}),i=https://${s}/api/table/${e}/${Le(t)}/${encodeURIComponent(r)}.csv;return new Request(i,o?{headers:{Cookie:ye(o)}}:void 0)},xu=async e=>e.ok?{ok:!0,value:await e.text()}:e.status===404?{ok:!1,value:{name:"NotFoundError",message:"Table not found."}}:Te(e),bu=async(e,t,r,n)=>{let{fetch:o}=pe(n??{}),s=hu(e,t,r,n),i=await o(s);return await xu(i)};bu.toRequest=hu;bu.fromResponse=xu;var yu=(e,t)=>{let{sid:r,hostName:n}=pe(t??{});return new Request(https://${n}/api/projects/${e},r?{headers:{Cookie:ye(r)}}:void 0)},wu=async e=>{if(!e.ok)return Te(e);let t=await e.json();return{ok:!0,value:t}},ln=async(e,t)=>{let{fetch:r}=pe(t??{}),n=yu(e,t),o=await r(n);return wu(o)};ln.toRequest=yu;ln.fromResponse=wu;var vu=(e,t)=>{let{sid:r,hostName:n}=pe(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:ye(r)}}:void 0)},ku=async e=>{if(!e.ok)return Te(e);let t=await e.json();return{ok:!0,value:t}},vo=async(e,t)=>{let{fetch:r}=pe(t??{}),n=await r(vu(e,t));return ku(n)};vo.toRequest=vu;vo.fromResponse=ku;var Eu=(e,t,r,n)=>{let{sid:o,hostName:s}=pe(n??{}),i=https://${s}/api/code/${e}/${Le(t)}/${Le(r)};return new Request(i,o?{headers:{Cookie:ye(o)}}:void 0)},Tu=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"}}:Te(e),Lu=async(e,t,r,n)=>{let{fetch:o}=pe(n??{}),s=Eu(e,t,r,n),i=await o(s);return await Tu(i)};Lu.toRequest=Eu;Lu.fromResponse=Tu;var tr=e=>new Promise(t=>setTimeout(()=>t(),e));var pv=/https?:\/\/(?:www\.|music\.|)youtube\.com\/watch/,uv=/https?:\/\/youtu\.be\/([a-zA-Z\d_-]+)(?:\?([^\s]{0,100})|)/,dv=/https?:\/\/(?:www\.|)youtube\.com\/shorts\/([a-zA-Z\d_-]+)(?:\?([^\s]+)|)/,mv=/https?:\/\/(?:www\.|music\.|)youtube\.com\/playlist\?((?:[^\s]+&|)list=([a-zA-Z\d_-]+)(?:&[^\s]+|))/,Pu=e=>{if(pv.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(uv);if(t){let[,r,n]=t;return{videoId:r,params:new URLSearchParams(n),pathType:"dotbe"}}}{let t=e.match(dv);if(t){let[,r,n]=t;return{videoId:r,params:new URLSearchParams(n),pathType:"short"}}}{let t=e.match(mv);if(t){let[,r,n]=t;return{listId:n,params:new URLSearchParams(r),pathType:"list"}}}};var fv=/https?:\/\/vimeo\.com\/([0-9]+)/i,Su=e=>{let t=e.match(fv);if(!!t)return t[1]};var gv=/https?:\/\/open\.spotify\.com\/(track|artist|playlist|album|episode|show)\/([a-zA-Z\d_-]+)(?:\?[^\s]{0,100}|)/,_u=e=>{let t=e.match(gv);if(!t)return;let[,r,n]=t;return{videoId:n,pathType:r}};var hv=/https?:\/\/anchor\.fm\/[a-zA-Z\d_-]+\/episodes\/([a-zA-Z\d_-]+(?:\/[a-zA-Z\d_-]+)?)(?:\?[^\s]{0,100}|)/,Ru=e=>{let t=e.match(hv);if(!t)return;let[,r]=t;return r};var Cu=e=>{let{type:t,pathType:r,content:n,href:o,...s}=e;if(n===""){let i=Pu(o);if(i)return{type:"youtube",href:o,...i,...s};let a=Su(o);if(a)return{type:"vimeo",videoId:a,href:o,...s};let c=_u(o);if(c)return{type:"spotify",href:o,...c,...s};let l=Ru(o);if(l)return{type:"anchor-fm",videoId:l,href:o,...s};if(bv(o))return{type:"video",href:o,...s}}return xv(o)?{type:"audio",content:n,href:o,...s}:{type:"absoluteLink",content:n,href:o,...s}},xv=e=>/\.(?:mp3|ogg|wav|aac)$/.test(e),bv=e=>/\.(?:mp4|webm)$/.test(e);var Mu=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 vo([]);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 Iu;(function(e){})(Iu||(Iu={}));var yv="0.13.3",Nu,ju=async(e=yv)=>{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,Nu??=new Promise((n,o)=>{r.onload=()=>n(window.katex),r.onerror=s=>o(s),document.head.append(r)}),Nu};var pn=(e,t={})=>{let r=se(null),[n,o]=q(e),[s,i]=q("");return H(()=>{(async()=>{let{render:a}=await ju();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 Tr=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 _i=(e,t)=>t.some(r=>{let n=!e.project;switch(r.type){case"hashTag":return n&&Ge(r.href)===e.titleLc;case"link":{if(r.pathType=="absolute"||r.pathType==="relative"!==n)return!1;let{project:o,title:s=""}=Tr({pathType:r.pathType,href:r.href});return n?!o&&Ge(s)===e.titleLc:o===e.project&&Ge(s)===e.titleLc}case"quote":case"strong":case"decoration":return _i(e,r.nodes)}});var ge=(e,t)=>/${e}/${Ge(t)},Eo=e=>{let t=e.match("/([^/]+)/(.+)");if(!t)throw SyntaxError("${e}" cannnot match "/(^/+)/(.+)");return{project:t[1],titleLc:t[2]}};var Lr=(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 Du=!1;scrapbox.addListener("lines:changed",()=>Du=!1);scrapbox.addListener("layout:changed",()=>Du=!1);var Ci=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_${Ge(e.to.title)}]=r,localStorage.setItem("pageTransitionContext",JSON.stringify(t))};var $u=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}};var Au=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 Pv="0.6.5",Uu=ScrapBubble-${Pv},Fu=await globalThis.caches.open(Uu);(async()=>{for(let e of await globalThis.caches.keys())e.startsWith("ScrapBubble-")&&e!==Uu&&(await globalThis.caches.delete(e),console.log(ScrapBubble deleted old cache :"${e}"))})();var Bu=Au(3);async function*To(e,t){let r=((t?.saveFailedResponse?Fu.match(e):void 0)??$u(e,t)).then(i=>["cache",i]);{let i=tr(1e3).then(()=>"timeout"),a=await Promise.race([r,i]);if(a!=="timeout"){a[1]&&(yield["cache",a[1]]);let c=await Bu(()=>fetch(e));!c.ok&&t?.saveFailedResponse&&await Fu.put(e,c.clone()),yield["network",c]}}let n=Bu(()=>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 Hu=(e,t)=>new Date(e.headers.get("Date")??0).getTime()/1e3+t<new Date().getTime()/1e3;var Lo=()=>{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 zu=Symbol.for("immer-nothing"),qu=Symbol.for("immer-draftable"),re=Symbol.for("immer-state");function it(e,...t){throw new Error(Immer minified error nr: ${e}. Full error at: https://bit.ly/3cXEKWf)}var Pr=Object.getPrototypeOf;function Sr(e){return!!e&&!!e[re]}function Tt(e){return e?Wu(e)||Array.isArray(e)||!!e[qu]||!!e.constructor?.[qu]||So(e)||_o(e):!1}var Sv=Object.prototype.constructor.toString();function Wu(e){if(!e||typeof e!="object")return!1;let t=Pr(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)===Sv}function un(e,t){Po(e)===0?Reflect.ownKeys(e).forEach(r=>{t(r,e[r],e)}):e.forEach((r,n)=>t(n,r,e))}function Po(e){let t=e[re];return t?t.type_:Array.isArray(e)?1:So(e)?2:_o(e)?3:0}function Mi(e,t){return Po(e)===2?e.has(t):Object.prototype.hasOwnProperty.call(e,t)}function Gu(e,t,r){let n=Po(e);n===2?e.set(t,r):n===3?e.add(r):e[t]=r}function _v(e,t){return e===t?e!==0||1/e==1/t:e!==e&&t!==t}function So(e){return e instanceof Map}function _o(e){return e instanceof Set}function Ce(e){return e.copy_||e.base_}function Ii(e,t){if(So(e))return new Map(e);if(_o(e))return new Set(e);if(Array.isArray(e))return Array.prototype.slice.call(e);let r=Wu(e);if(t===!0||t==="class_only"&&!r){let n=Object.getOwnPropertyDescriptors(e);delete n[re];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(Pr(e),n)}else{let n=Pr(e);if(n!==null&&r)return{...e};let o=Object.create(n);return Object.assign(o,e)}}function Ni(e,t=!1){return Ro(e)||Sr(e)||!Tt(e)||(Po(e)>1&&(e.set=e.add=e.clear=e.delete=Rv),Object.freeze(e),t&&Object.entries(e).forEach(([r,n])=>Ni(n,!0))),e}function Rv(){it(2)}function Ro(e){return Object.isFrozen(e)}var ji={};function rr(e){let t=ji[e];return t||it(0,e),t}function Cv(e,t){ji[e]||(ji[e]=t)}var dn;function Co(){return dn}function Mv(e,t){return{drafts_:[],parent_:e,immer_:t,canAutoFreeze_:!0,unfinalizedDrafts_:0}}function Ku(e,t){t&&(rr("Patches"),e.patches_=[],e.inversePatches_=[],e.patchListener_=t)}function Di(e){Oi(e),e.drafts_.forEach(Iv),e.drafts_=null}function Oi(e){e===dn&&(dn=e.parent_)}function Xu(e){return dn=Mv(dn,e)}function Iv(e){let t=e[re];t.type_===0||t.type_===1?t.revoke_():t.revoked_=!0}function Yu(e,t){t.unfinalizedDrafts_=t.drafts_.length;let r=t.drafts_[0];return e!==void 0&&e!==r?(r[re].modified_&&(Di(t),it(4)),Tt(e)&&(e=Mo(t,e),t.parent_||Io(t,e)),t.patches_&&rr("Patches").generateReplacementPatches_(r[re].base_,e,t.patches_,t.inversePatches_)):e=Mo(t,r,[]),Di(t),t.patches_&&t.patchListener_(t.patches_,t.inversePatches_),e!==zu?e:void 0}function Mo(e,t,r){if(Ro(t))return t;let n=t[re];if(!n)return un(t,(o,s)=>Vu(e,n,t,o,s,r)),t;if(n.scope_!==e)return t;if(!n.modified_)return Io(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),un(s,(a,c)=>Vu(e,n,o,a,c,r,i)),Io(e,o,!1),r&&e.patches_&&rr("Patches").generatePatches_(n,r,e.patches_,e.inversePatches_)}return n.copy_}function Vu(e,t,r,n,o,s,i){if(Sr(o)){let a=s&&t&&t.type_!==3&&!Mi(t.assigned_,n)?s.concat(n):void 0,c=Mo(e,o,a);if(Gu(r,n,c),Sr(c))e.canAutoFreeze_=!1;else return}else i&&r.add(o);if(Tt(o)&&!Ro(o)){if(!e.immer_.autoFreeze_&&e.unfinalizedDrafts_<1)return;Mo(e,o),(!t||!t.scope_.parent_)&&typeof n!="symbol"&&Object.prototype.propertyIsEnumerable.call(r,n)&&Io(e,o)}}function Io(e,t,r=!1){!e.parent_&&e.immer_.autoFreeze_&&e.canAutoFreeze_&&Ni(t,r)}function Nv(e,t){let r=Array.isArray(e),n={type_:r?1:0,scope_:t?t.scope_:Co(),modified_:!1,finalized_:!1,assigned_:{},parent_:t,base_:e,draft_:null,copy_:null,revoke_:null,isManual_:!1},o=n,s=$i;r&&(o=[n],s=mn);let{revoke:i,proxy:a}=Proxy.revocable(o,s);return n.draft_=a,n.revoke_=i,a}var $i={get(e,t){if(t===re)return e;let r=Ce(e);if(!Mi(r,t))return jv(e,r,t);let n=r[t];return e.finalized_||!Tt(n)?n:n===Ai(e.base_,t)?(Ui(e),e.copy_[t]=fn(n,e)):n},has(e,t){return t in Ce(e)},ownKeys(e){return Reflect.ownKeys(Ce(e))},set(e,t,r){let n=Qu(Ce(e),t);if(n?.set)return n.set.call(e.draft_,r),!0;if(!e.modified_){let o=Ai(Ce(e),t),s=o?.[re];if(s&&s.base_===r)return e.copy_[t]=r,e.assigned_[t]=!1,!0;if(_v(r,o)&&(r!==void 0||Mi(e.base_,t)))return!0;Ui(e),Lt(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 Ai(e.base_,t)!==void 0||t in e.base_?(e.assigned_[t]=!1,Ui(e),Lt(e)):delete e.assigned_[t],e.copy_&&delete e.copy_[t],!0},getOwnPropertyDescriptor(e,t){let r=Ce(e),n=Reflect.getOwnPropertyDescriptor(r,t);return n&&{writable:!0,configurable:e.type_!==1||t!=="length",enumerable:n.enumerable,value:r[t]}},defineProperty(){it(11)},getPrototypeOf(e){return Pr(e.base_)},setPrototypeOf(){it(12)}},mn={};un($i,(e,t)=>{mn[e]=function(){return arguments[0]=arguments[0][0],t.apply(this,arguments)}});mn.deleteProperty=function(e,t){return mn.set.call(this,e,t,void 0)};mn.set=function(e,t,r){return $i.set.call(this,e[0],t,r,e[0])};function Ai(e,t){let r=e[re];return(r?Ce(r):e)[t]}function jv(e,t,r){let n=Qu(t,r);return n?"value"in n?n.value:n.get?.call(e.draft_):void 0}function Qu(e,t){if(!(t in e))return;let r=Pr(e);for(;r;){let n=Object.getOwnPropertyDescriptor(r,t);if(n)return n;r=Pr(r)}}function Lt(e){e.modified_||(e.modified_=!0,e.parent_&&Lt(e.parent_))}function Ui(e){e.copy_||(e.copy_=Ii(e.base_,e.scope_.immer_.useStrictShallowCopy_))}var Dv=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"&&it(6),n!==void 0&&typeof n!="function"&&it(7);let o;if(Tt(t)){let s=Xu(this),i=fn(t,void 0),a=!0;try{o=r(i),a=!1}finally{a?Di(s):Oi(s)}return Ku(s,n),Yu(o,s)}else if(!t||typeof t!="object"){if(o=r(t),o===void 0&&(o=t),o===zu&&(o=void 0),this.autoFreeze_&&Ni(o,!0),n){let s=[],i=[];rr("Patches").generateReplacementPatches_(t,o,s,i),n(s,i)}return o}else it(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){Tt(e)||it(8),Sr(e)&&(e=Ov(e));let t=Xu(this),r=fn(e,void 0);return r[re].isManual_=!0,Oi(t),r}finishDraft(e,t){let r=e&&e[re];(!r||!r.isManual_)&&it(9);let{scope_:n}=r;return Ku(n,t),Yu(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=rr("Patches").applyPatches_;return Sr(e)?n(e,t):this.produce(e,o=>n(o,t))}};function fn(e,t){let r=So(e)?rr("MapSet").proxyMap_(e,t):_o(e)?rr("MapSet").proxySet_(e,t):Nv(e,t);return(t?t.scope_:Co()).drafts_.push(r),r}function Ov(e){return Sr(e)||it(10,e),Ju(e)}function Ju(e){if(!Tt(e)||Ro(e))return e;let t=e[re],r;if(t){if(!t.modified_)return t.base_;t.finalized_=!0,r=Ii(e,t.scope_.immer_.useStrictShallowCopy_)}else r=Ii(e,!0);return un(r,(n,o)=>{Gu(r,n,Ju(o))}),t&&(t.finalized_=!1),r}function Zu(){class e extends Map{constructor(c,l){super(),this[re]={type_:2,parent_:l,scope_:l?l.scope_:Co(),modified_:!1,finalized_:!1,copy_:void 0,assigned_:void 0,base_:c,draft_:this,isManual_:!1,revoked_:!1}}get size(){return Ce(this[re]).size}has(c){return Ce(this[re]).has(c)}set(c,l){let p=this[re];return i(p),(!Ce(p).has(c)||Ce(p).get(c)!==l)&&(r(p),Lt(p),p.assigned_.set(c,!0),p.copy_.set(c,l),p.assigned_.set(c,!0)),this}delete(c){if(!this.has(c))return!1;let l=this[re];return i(l),r(l),Lt(l),l.base_.has(c)?l.assigned_.set(c,!1):l.assigned_.delete(c),l.copy_.delete(c),!0}clear(){let c=this[re];i(c),Ce(c).size&&(r(c),Lt(c),c.assigned_=new Map,un(c.base_,l=>{c.assigned_.set(l,!1)}),c.copy_.clear())}forEach(c,l){let p=this[re];Ce(p).forEach((u,d,m)=>{c.call(l,this.get(d),d,this)})}get(c){let l=this[re];i(l);let p=Ce(l).get(c);if(l.finalized_||!Tt(p)||p!==l.base_.get(c))return p;let u=fn(p,l);return r(l),l.copy_.set(c,u),u}keys(){return Ce(this[re]).keys()}values(){let c=this.keys();return{[Symbol.iterator]:()=>this.values(),next:()=>{let l=c.next();return l.done?l:{done:!1,value:this.get(l.value)}}}}entries(){let c=this.keys();return{[Symbol.iterator]:()=>this.entries(),next:()=>{let l=c.next();if(l.done)return l;let p=this.get(l.value);return{done:!1,value:[l.value,p]}}}}[Symbol.iterator](){return this.entries()}}function t(a,c){return new e(a,c)}function r(a){a.copy_||(a.assigned_=new Map,a.copy_=new Map(a.base_))}class n extends Set{constructor(c,l){super(),this[re]={type_:3,parent_:l,scope_:l?l.scope_:Co(),modified_:!1,finalized_:!1,copy_:void 0,base_:c,draft_:this,drafts_:new Map,revoked_:!1,isManual_:!1}}get size(){return Ce(this[re]).size}has(c){let l=this[re];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[re];return i(l),this.has(c)||(s(l),Lt(l),l.copy_.add(c)),this}delete(c){if(!this.has(c))return!1;let l=this[re];return i(l),s(l),Lt(l),l.copy_.delete(c)||(l.drafts_.has(c)?l.copy_.delete(l.drafts_.get(c)):!1)}clear(){let c=this[re];i(c),Ce(c).size&&(s(c),Lt(c),c.copy_.clear())}values(){let c=this[re];return i(c),s(c),c.copy_.values()}entries(){let c=this[re];return i(c),s(c),c.copy_.entries()}keys(){return this.values()}[Symbol.iterator](){return this.values()}forEach(c,l){let p=this.values(),u=p.next();for(;!u.done;)c.call(l,u.value,u.value,this),u=p.next()}}function o(a,c){return new n(a,c)}function s(a){a.copy_||(a.copy_=new Set,a.base_.forEach(c=>{if(Tt(c)){let l=fn(c,a);a.drafts_.set(c,l),a.copy_.add(l)}else a.copy_.add(c)}))}function i(a){a.revoked_&&it(3,JSON.stringify(Ce(a)))}Cv("MapSet",{proxyMap_:t,proxySet_:o})}var Qe=new Dv,No=Qe.produce,l9=Qe.produceWithPatches.bind(Qe),p9=Qe.setAutoFreeze.bind(Qe),u9=Qe.setUseStrictShallowCopy.bind(Qe),d9=Qe.applyPatches.bind(Qe),m9=Qe.createDraft.bind(Qe),f9=Qe.finishDraft.bind(Qe);Zu();var ed=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},td=(e,t)=>No(e,r=>{if(!r)return t;if(r.updated<t.updated){let{lines:n,linked:o,projectLinked:s,...i}=t;Object.assign(r,i),Fi(t)||(r.lines=n),o&&(r.linked??=o),s&&(r.projectLinked??=s);return}Fi(r)&&!Fi(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)}),Fi=e=>e.lines[0].id==="dummy";var rd=(e,t)=>{let r=new Map,n=Ge(t.title);for(let c of t.links){let l=$v(e,c);l.linked=[n],r.set(ge(e,c),l)}let o=ge(e,n),s=t.projectLinks.map(c=>{let l=Eo(c);return ge(l.project,l.titleLc)}),i={...jo(e,t),linked:[],projectLinked:[]};r.set(o,i);let a=t.links.map(c=>Ge(c));for(let c of t.relatedPages.links1hop){c.linksLc.includes(n)&&i.linked.push(c.titleLc);for(let d of c.linksLc.filter(m=>a.includes(m))){let m=ge(e,d),g=r.get(m);if(!g)throw Error(storage already must have "${m}");if(!g.linked){g.linked=[c.titleLc];continue}g.linked.push(c.titleLc)}let l=ge(e,c.titleLc),p=jo(e,c),u=r.get(l)?.linked;u&&(p.linked=u),r.set(l,p)}for(let c of t.relatedPages.projectLinks1hop){let l=ge(c.projectName,c.titleLc);s.includes(l)||i.projectLinked.push(l);let p=jo(c.projectName,c),u=r.get(l)?.projectLinked;u&&(p.projectLinked=u),r.set(l,p)}i.isLinkedCorrect=!0;for(let c of t.relatedPages.links2hop){for(let d of c.linksLc){let m=ge(e,d),g=r.get(m);if(!g)throw Error(storage already must have "${m}");if(!g.linked){g.linked=[c.titleLc];continue}g.linked.push(c.titleLc)}let l=ge(e,c.titleLc),p=jo(e,c),u=r.get(l)?.linked;u&&(p.linked=u),r.set(l,p)}return r},jo=(e,t)=>({project:e,titleLc:"titleLc"in t?t.titleLc:Ge(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}),$v=(e,t)=>({project:e,titleLc:Ge(t),exists:!1,descriptions:[],image:null,lines:[{text:t,id:"dummy",userId:"dummy",updated:0,created:0}],updated:0,isLinkedCorrect:!1});var Je=!1,nd=e=>{Je=typeof e=="boolean"?e:new Set(e)},$t=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 Do=$t("ScrapBubble:bubble.ts"),Bi=new Map,Oo=new Set,Hi=Lo();function*od(e){for(let t of e)yield Bi.get(t)}var sd=(e,t)=>Hi.on(e,t),id=(e,t)=>Hi.off(e,t),ad=async(e,t,r,n)=>{let o=[];for(let s of[...t].reverse()){let i=ge(s,e);Oo.has(i)||o.push(Av(s,e,r,n))}await Promise.all(o)},cd=0,Av=async(e,t,r,n)=>{let o=ge(e,t);if(Oo.has(o))return;Oo.add(o);let s=cd++,i=${s} Check update ${o};Do.time(i);try{let a=Er.toRequest(e,t,{followRename:!0,projects:[...r]});for await(let[c,l]of To(a,{ignoreSearch:!0,saveFailedResponse:!0})){Do.debug(${s}${c} ${o});let p=await Er.fromResponse(l);if(p.ok){let u=rd(e,p.value);for(let[d,m]of u){let g=Bi.get(d),h=td(g,m);!h||g!==h&&(Bi.set(d,h),Hi.dispatch(d,m))}}if(n?.ignoreFetch===!0||c==="cache"&&!Hu(l,n?.maxAge??60))break}}catch(a){Do.error(a)}finally{Oo.delete(o),Do.timeEnd(i),cd--}};var ld=$t("ScrapBubble:useBubbleData.ts"),_r=e=>{let[t,r]=q([]);return Gt(()=>{let n=()=>{r(()=>{let i=[...od(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=>sd(i,s)),()=>e.forEach(i=>id(i,s))},e),t};var Rr=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 At=Ks({title:"",project:"",whiteList:new Set,bubble:()=>{},hide:()=>{},delay:0,prefetch:()=>{}}),pd=({lines:e,project:t,title:r,whiteList:n,noIndent:o,hash:s,linkTo:i,...a})=>{let c=A(()=>e.flatMap(d=>typeof d=="string"?[]:[d.id]),[e]),l=A(()=>{let d=0;return Ke(e.map(m=>typeof m=="string"?m:m.text).join( ),{hasTitle:!0}).map(m=>{switch(m.type){case"title":case"line":return{...m,id:c[d++]};case"codeBlock":{let g=d;return d+=m.content.split(
).length+1,{...m,ids:c.slice(g,d)}}case"table":{let g=d;return d+=m.cells.length+1,{...m,ids:c.slice(g,d)}}}})},[e,c]),p=A(()=>{if(s&&c.includes(s))return s;if(!!i)return l.find(d=>d.type!=="line"?!1:_i(i,d.nodes))?.id},[l,c,s,i?.project,i?.titleLc]),u=se(null);return H(()=>{if(!p)return;let d=u.current?.querySelector(data-id="${p}"),m=globalThis.scrollY;d?.scrollIntoView?.({block:"center"}),globalThis.scroll(0,m)},[p]),f("div",{className:"lines",ref:u},f(At.Provider,{value:{project:t,title:r,whiteList:n,...a}},l.map(d=>{switch(d.type){case"title":return f(V,null,f(Cr,{key:d.id,index:d.id,indent:0,noIndent:o,permalink:d.id===p},d.text),f("hr",null));case"codeBlock":return f(Uv,{key:d.ids[0],block:d,noIndent:o,ids:d.ids,scrollId:p});case"table":return f(Fv,{key:d.ids[0],block:d,noIndent:o,ids:d.ids,scrollId:p});case"line":return f(Cr,{key:d.id,index:d.id,indent:d.indent,noIndent:o,permalink:d.id===p},d.nodes.length>0?d.nodes.map(m=>f(Mr,{node:m})):f("br",null))}})))},Cr=({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),Uv=({block:{fileName:e,content:t,indent:r},ids:n,scrollId:o})=>{let{project:s,title:i}=It(At),[a,c]=q(""),l=N(async p=>{p.preventDefault(),p.stopPropagation();try{await navigator.clipboard.writeText(t),c("Copied"),await tr(1e3),c("")}catch(u){alert(Failed to copy the code block Error:${u.message})}},[t]);return f(V,null,f(Cr,{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}/${Le(i)}/${e},target:"_blank"},e)),f("span",{className:"copy",title:"Copy",onClick:l},a))),f(V,null,t.split(
).map((p,u)=>f(Cr,{index:n[u+1],indent:r,permalink:n[u+1]===o},f("code",{className:"code-block"},p)))))},Fv=({block:{fileName:e,cells:t,indent:r},ids:n,scrollId:o})=>{let{project:s,title:i}=It(At);return f(V,null,f(Cr,{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}/${Le(i)}/${e}.csv,target:"_blank"},e)))),f(V,null,t.map((a,c)=>f(Cr,{index:n[c+1],indent:r,permalink:n[c+1]===o},f("span",{className:"table-block table-block-row"},a.map((l,p)=>f("span",{className:cell col-${p}},l.map(u=>f(Mr,{node:u})))))))))},Mr=({node:e})=>{switch(e.type){case"code":return f("code",{className:"code"},e.text);case"formula":return f(Bv,{node:e});case"commandLine":return f(zv,{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(Mr,{node:t})));case"strong":return f("strong",null,e.nodes.map(t=>f(Mr,{node:t})));case"decoration":return f(Hv,{node:e});case"plain":case"blank":return f(V,null,e.text);case"hashTag":return f(Gv,{node:e});case"link":return f(Kv,{node:e});case"googleMap":return f(qv,{node:e});case"icon":return f(ud,{node:e});case"strongIcon":return f(ud,{node:e,strong:!0});case"image":return f(Wv,{node:e});case"strongImage":return f("img",{className:"image strong-image",src:e.src});case"numberList":return f(V,null,${e.number}. ,e.nodes.map(t=>f(Mr,{node:t})))}},Bv=({node:{formula:e}})=>{let{ref:t,error:r,setFormula:n}=pn("");return n(e),f("span",{className:formula ${r?" error":""}},r?f("code",null,e):f("span",{className:"katex-display",ref:t}))},Hv=({node:{decos:e,nodes:t}})=>f("span",{className:e.map(r=>deco-${r}).join(" ")},t.map(r=>f(Mr,{node:r}))),zv=({node:e})=>{let[t,r]=q(""),n=N(async o=>{o.preventDefault(),o.stopPropagation();try{await navigator.clipboard.writeText(e.text),r("Copied"),await tr(1e3),r("")}catch(s){alert(Failed to copy the code block
Error:${s.message})}},[e.text]);return f(V,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)))},qv=({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}}))),ud=({node:{pathType:e,path:t},strong:r})=>{let{project:n}=It(At),[o,s]=e==="relative"?[n,t]:t.match(/\/([\w\-]+)\/(.+)$/)?.slice?.(1)??[n,t],i=Le(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))},Wv=({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}))},Gv=({node:{href:e}})=>{let{project:t}=It(At),r=dd(t,e),n=md(t,e,"hashtag");return f("a",{href:/${t}/${Le(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)},Kv=({node:{pathType:e,...t}})=>{switch(e){case"relative":case"root":return f(Xv,{pathType:e,href:t.href});case"absolute":{let r=Cu({pathType:e,...t});switch(r.type){case"youtube":return f(Yv,{...r});case"vimeo":return f(Vv,{...r});case"spotify":return f(Qv,{...r});case"anchor-fm":return f(Jv,{...r});case"audio":return f(Zv,{...r});case"video":return f(tk,{...r});case"absoluteLink":return f("a",{className:"link",href:r.href,rel:"noopener noreferrer",target:"_blank"},r.content||r.href)}}}},Xv=({pathType:e,href:t})=>{let{project:r}=It(At),{project:n=r,title:o,hash:s=""}=Tr({pathType:e,href:t}),i=md(n,o,"link",s),a=dd(n,o??"");return f("a",{className:page-link${o!==void 0&&a?" empty-page-link":""},type:"link",href:/${n}${o===void 0?"":/${Le(o)}${s===""?"":#${s}}},rel:n===scrapbox.Project.name?"route":"noopener noreferrer",target:n===scrapbox.Project.name?"":"_blank",onPointerEnter:i},t)},Yv=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"}))},Vv=({videoId:e})=>f("div",{className:"iframe-video-player"},f("iframe",{src:https://player.vimeo.com/video/${e},allowFullScreen:!0,type:"text/html"})),Qv=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"})),Jv=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"})),Zv=e=>e.content===""?f("audio",{className:"audio-player",preload:"none",controls:!0,src:e.href}):f(ek,{...e}),ek=({href:e,content:t})=>{let r=se(null),n=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}))},tk=({href:e})=>f("div",{className:"video-player"},f("video",{class:"video",style:{display:"inline-block"},controls:!0,loop:!0,src:e})),dd=(e,t)=>{let{whiteList:r}=It(At),n=A(()=>(r.has(e)?[...r]:[e,...r]).map(s=>ge(s,t)),[r,e]),o=_r(n);return A(()=>ed(o),o)},md=(e,t,r,n)=>{let{delay:o,bubble:s,prefetch:i}=It(At);return N(async({currentTarget:a})=>{!t||(i(e,t),!!await Lr(a,o)&&s({project:e,title:t,hash:n,type:r,position:Rr(a)}))},[e,t,n,r,o,i,s])};var zi=Lo(),$o=new Map,rk=$t("ScrapBubble:useProject.ts"),fd=e=>{let[t,r]=q();return H(()=>{zi.on(e,r);let n=$o.get(e);return n?r(n.loading?void 0:n.value):($o.set(e,{loading:!0}),r(void 0),(async()=>{try{let o=ln.toRequest(e);for await(let[,s]of To(o)){let i=await ln.fromResponse(s);$o.set(e,{loading:!1,value:i}),zi.dispatch(e,i);break}}catch(o){rk.error(o),$o.delete(e)}})()),()=>zi.off(e,r)},[e]),t};var nk=["default-light","default-dark","default-minimal"],ok=["paper-light","paper-dark-dark","paper-dark"],gd=["blue","purple","green","orange","red"],sk=["hacker1","hacker2"],hd=["winter","spring","summer","automn"],xd=["tropical"],bd=["kyoto","newyork","paris"],yd=["mred","lgreen"],wz=["default-light","default-minimal","paper-light",...gd,...hd,...xd,...bd,...yd];var ik=[...nk,...ok,...gd,...sk,...hd,...xd,...bd,...yd];function wd(e){return ik.includes(e)}var vd="default-light",Ao=e=>{let t=fd(e);return A(()=>{if(!t||!t.ok)return vd;let r=t.value.theme;return wd(r)?r:vd},[t])};var kd=({project:e,title:t,descriptions:r,thumbnail:n,linkTo:o,bubble:s,delay:i,prefetch:a})=>{let c=A(()=>n?[]:Ke(r.join( ),{hasTitle:!1}),[n,r]),l=Ao(e),p=N(async({currentTarget:d})=>{a(e,t),!!await Lr(d,i)&&s({project:e,title:t,linkTo:o,type:"link",position:Rr(d)})},[e,t,i,o?.project,o?.titleLc]),u=A(()=>o?()=>{Ci({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}/${Le(t)},rel:e===scrapbox.Project.name?"route":"noopner noreferrer",target:e!==scrapbox.Project.name?"_blank":"",onPointerEnter:p,onClick:u},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((d,m)=>d.type==="line"?[f("p",{key:m},d.nodes.map(g=>f(Ed,{node:g,project:e})))]:[]))))},Ed=({node:e,project:t})=>{switch(e.type){case"code":return f("code",null,e.text);case"formula":return f(ak,{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(V,null,e.nodes.map(r=>f(Ed,{node:r,project:t})));case"icon":case"strongIcon":return f(ck,{node:e,project:t});case"hashTag":return f(lk,{node:e});case"link":return f(pk,{node:e});case"plain":case"blank":return f(V,null,e.text);default:return f(V,null)}},ak=({node:{formula:e}})=>{let{ref:t,error:r,setFormula:n}=pn("");return n(e),f("span",{className:formula ${r?" error":""}},r?f("code",null,e):f("span",{className:"katex-display",ref:t}))},ck=({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}/${Le(o)}/icon})},lk=({node:{href:e}})=>f("span",{class:"page-link"},"#",e),pk=({node:{pathType:e,href:t,content:r}})=>e!=="absolute"?f("span",{class:"page-link"},t):f("span",{class:"link"},r||t);var Td=({source:e,linked:t,externalLinked:r,projectsForSort:n,...o})=>{let s=A(()=>[...t.keys(),...r.keys()],[t,r]),i=_r(s),a=A(()=>[...n],[n]),c=A(()=>{let p=(u,d)=>{let m=a.indexOf(u.project),g=a.indexOf(d.project);return m===g?d.updated-u.updated:m<0?1:g<0?-1:m-g};return[...i].sort(p)},[i,a]),l=A(()=>({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:p,titleLc:u,lines:[{text:d}],descriptions:m,image:g})=>{let h=ge(p,u),x=t.get(h)??r.get(h);return f("li",{key:h},f(kd,{project:p,title:d,linkTo:x,descriptions:m,thumbnail:g??"",...o}))}))};var Ld=$t("ScrapBubble:Bubble.tsx"),Pd=({source:e,parentTitles:t,whiteList:r,...n})=>{let o=A(()=>r.has(e.project)?new Set([e.project,...r]):new Set([e.project]),[r,e.project]),[s,i,a]=uk(e,o,r,t),c=N(()=>n.hide(),[n.hide]),l=Ao(a[0]?.project??e.project),p=A(()=>({top:${e.position.top}px,maxWidth:${e.position.maxWidth}px,..."left"in e.position?{left:${e.position.left}px}:{right:${e.position.right}px}}),[e.position]);return f(V,null,a.length>0&&f("div",{className:"text-bubble",style:p,"data-theme":l,onClick:c},f(dk,null,a[0].project!==scrapbox.Project.name&&f(mk,{project:a[0].project,title:a[0].lines[0].text})),f(pd,{lines:a[0].lines,project:a[0].project,title:a[0].lines[0].text,hash:e.hash,linkTo:e.linkTo,whiteList:r,...n})),f(Td,{linked:s,externalLinked:i,onClick:c,source:e,projectsForSort:o,...n}))},uk=(e,t,r,n)=>{let[[o,s,i],a]=q([new Map,new Map,[]]),c=A(()=>{let u=[...t].map(d=>ge(d,e.title));return Ld.debug("projects",u),u},[t,e.title]),l=_r(c),p=A(()=>n.map(u=>Ge(u)),[n]);return Gt(()=>{let u=new Map,d=new Map,m=[];for(let g of l){let h={project:g.project,titleLc:g.titleLc};for(let w of g.projectLinked??[]){let{project:P,titleLc:_}=Eo(w);p.includes(_)&&r.has(P)||d.has(w)||d.set(w,h)}if(!r.has(g.project))continue;let x={titleLc:g.titleLc};for(let w of g.linked??[]){if(p.includes(w))continue;let P=ge(g.project,w);u.has(P)||u.set(P,x)}p.includes(g.titleLc)||!g.exists||m.push(g)}a(No(g=>{Ld.debug(depth: ${p.length}, bubbled from ${ge(e.project,e.title)}, bubbles,,l,"before",g[0],"internal cards,",u,"external cards",d);for(let h of g[0].keys())u.has(h)||g[0].delete(h);for(let[h,x]of u)g[0].set(h,x);for(let h of g[1].keys())d.has(h)||g[1].delete(h);for(let[h,x]of d)g[1].set(h,x);g[2]=m}))},[l,r,p]),[o,s,i]},dk=({children:e})=>f("div",{className:"status-bar top-right"},e),mk=({project:e,title:t})=>f("a",{href:/${e}/${Le(t)},target:"_blank",rel:"noopener noreferrer"},e);var Sd=(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 _d=e=>{let t=A(()=>Sd(e.style,import.meta.url),[e.style]);return f(V,null,t!==""&&(t instanceof URL?f("link",{rel:"stylesheet",href:t.href}):f("style",null,t)))};var Rd=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(2n+1){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{padding:5px 0 5px 5px;font-size:11px;line-height:1.42857;user-select:text;position:absolute;max-height:80vh;overflow-y:auto;background-color:var(--page-bg, #fefefe);color:var(--page-text-color, #4a4a4a);border-radius:4px;--text-bubble-border-color: hsl(221, 15%, 25%);border:1px solid var(--text-bubble-border-color, #f2f2f3);--status-bar-border-color: var(--text-bubble-border-color, #f2f2f3);box-shadow:0 6px 12px #0000002d;z-index:9000}.text-bubble.no-scroll{overflow-y:hidden}.text-bubbledata-theme=default-dark{--text-bubble-border-color: hsl(0, 0%, 39%)}.text-bubbledata-theme=default-minimal{--text-bubble-border-color: hsl(0, 0%, 89%)}.text-bubbledata-theme=paper-light{--text-bubble-border-color: hsl(53, 8%, 58%)}.text-bubbledata-theme=paper-dark-dark{--text-bubble-border-color: hsl(203, 42%, 17%)}.text-bubbledata-theme=blue{--text-bubble-border-color: hsl(227, 68%, 62%)}.text-bubbledata-theme=purple{--text-bubble-border-color: hsl(267, 39%, 60%)}.text-bubbledata-theme=green{--text-bubble-border-color: hsl(136, 29%, 50%)}.text-bubbledata-theme=orange{--text-bubble-border-color: hsl(43, 71%, 51%)}.text-bubbledata-theme=red{--text-bubble-border-color: hsl(4, 58%, 56%)}.text-bubbledata-theme=spring{--text-bubble-border-color: hsl(72, 64%, 57%)}.text-bubbledata-theme=kyoto{--text-bubble-border-color: hsl(331, 21%, 26%)}.text-bubbledata-theme=newyork{--text-bubble-border-color: hsl(176, 29%, 67%)}.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 Cd=()=>{let[e,t]=q([]),r=N((s,i)=>t(a=>i?[...a.slice(0,s),i]:[...a.slice(0,s)]),[]),[n,o]=q([{bubble:s=>r(0,s),hide:()=>r(0)}]);return H(()=>{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 qi=(e,t,r,n,o)=>{H(()=>(e.addEventListener(t,r,n),()=>e.removeEventListener(t,r,n)),[e,t,n,...o??[]])};var Md=e=>e instanceof HTMLSpanElement&&e.matches(".line-title .text"),Uo=e=>e instanceof HTMLAnchorElement&&e.classList.contains("page-link");var Wi="scrap-bubble",Id=({delay:e,whiteList:t,watchList:r,style:n})=>{let[{bubble:o,hide:s},...i]=Cd(),a=N((c,l)=>ad(l,t.has(c)?t:new Set([c]),r),[t,r]);return qi(document,"pointerenter",async c=>{let l=c.target;if(!Uo(l)&&!Md(l))return;let{project:p=scrapbox.Project.name,title:u,hash:d=""}=Uo(l)?Tr({pathType:"root",href:${new URL(l.href).pathname}${new URL(l.href).hash}}):{project:scrapbox.Project.name,title:scrapbox.Page.title};if(p==="")return;let m=decodeURIComponent(u??"");a(p,m),!!await Lr(l,e)&&o({project:p,title:m,hash:d,position:Rr(l),type:fk(l)})},{capture:!0},[e,t,r]),qi(document,"click",c=>{c.target.dataset.userscriptName!==Wi&&s()},{capture:!0},[s]),H(()=>(scrapbox.addListener("page:changed",s),()=>scrapbox.removeListener("page:changed",s)),[s]),f(V,null,f("link",{rel:"stylesheet",href:"https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.12.0/katex.min.css"}),f("style",null,Rd),f(_d,{style:n}),i.map(c=>f(Pd,{key:ge(c.source.project,c.source.title),...c,whiteList:t,delay:e,prefetch:a})))},fk=e=>Uo(e)?e.type==="link"?"link":"hashtag":"title";var Nd=async e=>{let{delay:t=500,whiteList:r=[],watchList:n=(await Mu()).slice(0,100),style:o="",debug:s=!1}=e??{};nd(s);let i=document.createElement("div");i.dataset.userscriptName=Wi,document.body.append(i);let a=i.attachShadow({mode:"open"});_e(f(Id,{delay:t,whiteList:new Set([scrapbox.Project.name,...r]),watchList:new Set(n),style:o}),a)};var gk=["takker-memex","takker-private","takker","takker-books","villagepump"],gn=[];switch(scrapbox.Project.name){case"hub":case"villagepump":case"verbalizing-community":gn.push("villagepump","hub","verbalizing-community");break;case"programming-notes":case"customize":case"scrapboxlab":gn.push("programming-notes","customize","scrapboxlab");break;case"sta":gn.push("sta-taskmanagement");break;case"sta-taskmanagement":case"taskmanagement":gn.push("sta-taskmanagement","taskmanagement");break}Nd({delay:/mobile/i.test(navigator.userAgent)?300:500,whiteList:[...gk,...gn],scrollTargets:["link","title","lineId"],style:@import "/api/code/takker/kakeruの背景を白にするUserCSS/style.css";
@import "/api/code/takker/アイコン記法を画像記法っぽくするUserCSS/style2.css";});var jd=(e,t,r)=>{if(r.length===0)return[];let n=r.map(a=>a.text).join(
),o=Ke(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}/${oe(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 Gi(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(ut(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(ut(s)),t(n[s])}},r=new Ki;return r.write32(0),r.write32(e.id<<1|+!e.isRequest),t(e.value),Yi(r.buf,r.len-4,0),r.buf.subarray(0,r.len)}function Dd(e){let t=()=>{switch(r.read8()){case 0:return null;case 1:return!!r.read8();case 2:return r.read32();case 3:return Ir(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[Ir(r.read())]=t();return a}default:throw new Error("Invalid packet")}},r=new Ki(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 Ki=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);Yi(this.buf,t,r)}write(t){let r=this._write(4+t.length);Yi(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 Xi(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}},ut,Ir,Od;if(typeof TextEncoder!="undefined"&&typeof TextDecoder!="undefined"){let e=new TextEncoder,t=new TextDecoder;ut=r=>e.encode(r),Ir=r=>t.decode(r),Od='new TextEncoder().encode("")'}else throw new Error("No UTF-8 codec found");if(!(ut("")instanceof Uint8Array))throw new Error(Invariant violation: "${Od} 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 Xi(e,t){return e[t++]|e[t++]<<8|e[t++]<<16|e[t++]<<24}function Yi(e,t,r){e[r++]=t,e[r++]=t>>8,e[r++]=t>>16,e[r++]=t>>24}var hn="0.20.1";var Me=JSON.stringify,$d="warning",Ad="silent";function Ud(e){if(Ie(e,"target"),e.indexOf(",")>=0)throw new Error(Invalid target: ${e});return e}var Fo=()=>null,me=e=>typeof e=="boolean"?null:"a boolean",z=e=>typeof e=="string"?null:"a string",Bo=e=>e instanceof RegExp?null:"a RegExp object",nr=e=>typeof e=="number"&&e===(e|0)?null:"an integer",Fd=e=>typeof e=="function"?null:"a function",he=e=>Array.isArray(e)?null:"an array",dt=e=>typeof e=="object"&&e!==null&&!Array.isArray(e)?null:"an object",hk=e=>typeof e=="object"&&e!==null?null:"an array or an object",xk=e=>e instanceof WebAssembly.Module?null:"a WebAssembly.Module",Bd=e=>typeof e=="object"&&!Array.isArray(e)?null:"an object or null",Hd=e=>typeof e=="string"||typeof e=="boolean"?null:"a string or a boolean",bk=e=>typeof e=="string"||typeof e=="object"&&e!==null&&!Array.isArray(e)?null:"a string or an object",yk=e=>typeof e=="string"||Array.isArray(e)?null:"a string or an array",zd=e=>typeof e=="string"||e instanceof Uint8Array?null:"a string or a Uint8Array",wk=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(${Me(r)} must be ${s});return o}function we(e,t,r){for(let n in e)if(!(n in t))throw new Error(Invalid option ${r}: ${Me(n)})}function qd(e){let t=Object.create(null),r=v(e,t,"wasmModule",xk),n=v(e,t,"workerURL",wk);return we(e,t,"in initialize() call"),{wasmModule:r,workerURL:n}}function Wd(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 ${Me(r)} in mangle cache to map to either a string or false)}}return t}function Ho(e,t,r,n,o){let s=v(t,r,"color",me),i=v(t,r,"logLevel",z),a=v(t,r,"logLimit",nr);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?" "+Me(r):""} to be a string, got ${typeof e} instead);return e}function Gd(e,t,r){let n=v(t,r,"legalComments",z),o=v(t,r,"sourceRoot",z),s=v(t,r,"sourcesContent",me),i=v(t,r,"target",yk),a=v(t,r,"format",z),c=v(t,r,"globalName",z),l=v(t,r,"mangleProps",Bo),p=v(t,r,"reserveProps",Bo),u=v(t,r,"mangleQuoted",me),d=v(t,r,"minify",me),m=v(t,r,"minifySyntax",me),g=v(t,r,"minifyWhitespace",me),h=v(t,r,"minifyIdentifiers",me),x=v(t,r,"lineLimit",nr),w=v(t,r,"drop",he),P=v(t,r,"dropLabels",he),_=v(t,r,"charset",z),y=v(t,r,"treeShaking",me),L=v(t,r,"ignoreAnnotations",me),E=v(t,r,"jsx",z),I=v(t,r,"jsxFactory",z),b=v(t,r,"jsxFragment",z),k=v(t,r,"jsxImportSource",z),R=v(t,r,"jsxDev",me),T=v(t,r,"jsxSideEffects",me),S=v(t,r,"define",dt),M=v(t,r,"logOverride",dt),O=v(t,r,"supported",dt),$=v(t,r,"pure",he),U=v(t,r,"keepNames",me),D=v(t,r,"platform",z),W=v(t,r,"tsconfigRaw",bk);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(Ud).join(",")}):e.push(--target=${Ud(i)})),a&&e.push(--format=${a}),c&&e.push(--global-name=${c}),D&&e.push(--platform=${D}),W&&e.push(--tsconfig-raw=${typeof W=="string"?W:JSON.stringify(W)}),d&&e.push("--minify"),m&&e.push("--minify-syntax"),g&&e.push("--minify-whitespace"),h&&e.push("--minify-identifiers"),x&&e.push(--line-limit=${x}),_&&e.push(--charset=${_}),y!==void 0&&e.push(--tree-shaking=${y}),L&&e.push("--ignore-annotations"),w)for(let F of w)e.push(--drop:${Ie(F,"drop")});if(P&&e.push(--drop-labels=${Array.from(P).map(F=>Ie(F,"dropLabels")).join(",")}),l&&e.push(--mangle-props=${l.source}),p&&e.push(--reserve-props=${p.source}),u!==void 0&&e.push(--mangle-quoted=${u}),E&&e.push(--jsx=${E}),I&&e.push(--jsx-factory=${I}),b&&e.push(--jsx-fragment=${b}),k&&e.push(--jsx-import-source=${k}),R&&e.push("--jsx-dev"),T&&e.push("--jsx-side-effects"),S)for(let F in S){if(F.indexOf("=")>=0)throw new Error(Invalid define: ${F});e.push(--define:${F}=${Ie(SF,"define",F)})}if(M)for(let F in M){if(F.indexOf("=")>=0)throw new Error(Invalid log override: ${F});e.push(--log-override:${F}=${Ie(MF,"log override",F)})}if(O)for(let F in O){if(F.indexOf("=")>=0)throw new Error(Invalid supported: ${F});let K=O[F];if(typeof K!="boolean")throw new Error(Expected value for supported ${Me(F)} to be a boolean, got ${typeof K} instead);e.push(--supported:${F}=${K})}if($)for(let F of $)e.push(--pure:${Ie(F,"pure")});U&&e.push("--keep-names")}function vk(e,t,r,n,o){let s=[],i=[],a=Object.create(null),c=null,l=null;Ho(s,t,a,r,n),Gd(s,t,a);let p=v(t,a,"sourcemap",Hd),u=v(t,a,"bundle",me),d=v(t,a,"splitting",me),m=v(t,a,"preserveSymlinks",me),g=v(t,a,"metafile",me),h=v(t,a,"outfile",z),x=v(t,a,"outdir",z),w=v(t,a,"outbase",z),P=v(t,a,"tsconfig",z),_=v(t,a,"resolveExtensions",he),y=v(t,a,"nodePaths",he),L=v(t,a,"mainFields",he),E=v(t,a,"conditions",he),I=v(t,a,"external",he),b=v(t,a,"packages",z),k=v(t,a,"alias",dt),R=v(t,a,"loader",dt),T=v(t,a,"outExtension",dt),S=v(t,a,"publicPath",z),M=v(t,a,"entryNames",z),O=v(t,a,"chunkNames",z),$=v(t,a,"assetNames",z),U=v(t,a,"inject",he),D=v(t,a,"banner",dt),W=v(t,a,"footer",dt),F=v(t,a,"entryPoints",hk),K=v(t,a,"absWorkingDir",z),G=v(t,a,"stdin",dt),j=v(t,a,"write",me)??o,B=v(t,a,"allowOverwrite",me),X=v(t,a,"mangleCache",dt);if(a.plugins=!0,we(t,a,in ${e}() call),p&&s.push(--sourcemap${p===!0?"":=${p}}),u&&s.push("--bundle"),B&&s.push("--allow-overwrite"),d&&s.push("--splitting"),m&&s.push("--preserve-symlinks"),g&&s.push("--metafile"),h&&s.push(--outfile=${h}),x&&s.push(--outdir=${x}),w&&s.push(--outbase=${w}),P&&s.push(--tsconfig=${P}),b&&s.push(--packages=${b}),_){let C=[];for(let Z of _){if(Ie(Z,"resolve extension"),Z.indexOf(",")>=0)throw new Error(Invalid resolve extension: ${Z});C.push(Z)}s.push(--resolve-extensions=${C.join(",")})}if(S&&s.push(--public-path=${S}),M&&s.push(--entry-names=${M}),O&&s.push(--chunk-names=${O}),$&&s.push(--asset-names=${$}),L){let C=[];for(let Z of L){if(Ie(Z,"main field"),Z.indexOf(",")>=0)throw new Error(Invalid main field: ${Z});C.push(Z)}s.push(--main-fields=${C.join(",")})}if(E){let C=[];for(let Z of E){if(Ie(Z,"condition"),Z.indexOf(",")>=0)throw new Error(Invalid condition: ${Z});C.push(Z)}s.push(--conditions=${C.join(",")})}if(I)for(let C of I)s.push(--external:${Ie(C,"external")});if(k)for(let C in k){if(C.indexOf("=")>=0)throw new Error(Invalid package name in alias: ${C});s.push(--alias:${C}=${Ie(kC,"alias",C)})}if(D)for(let C in D){if(C.indexOf("=")>=0)throw new Error(Invalid banner file type: ${C});s.push(--banner:${C}=${Ie(DC,"banner",C)})}if(W)for(let C in W){if(C.indexOf("=")>=0)throw new Error(Invalid footer file type: ${C});s.push(--footer:${C}=${Ie(WC,"footer",C)})}if(U)for(let C of U)s.push(--inject:${Ie(C,"inject")});if(R)for(let C in R){if(C.indexOf("=")>=0)throw new Error(Invalid loader extension: ${C});s.push(--loader:${C}=${Ie(RC,"loader",C)})}if(T)for(let C in T){if(C.indexOf("=")>=0)throw new Error(Invalid out extension: ${C});s.push(--out-extension:${C}=${Ie(TC,"out extension",C)})}if(F)if(Array.isArray(F))for(let C=0,Z=F.length;C<Z;C++){let Q=F[C];if(typeof Q=="object"&&Q!==null){let ae=Object.create(null),$e=v(Q,ae,"in",z),ve=v(Q,ae,"out",z);if(we(Q,ae,"in entry point at index "+C),$e===void 0)throw new Error('Missing property "in" for entry point at index '+C);if(ve===void 0)throw new Error('Missing property "out" for entry point at index '+C);i.push([ve,$e])}else i.push(["",Ie(Q,"entry point at index "+C)])}else for(let C in F)i.push([C,Ie(F[C],"entry point",C)]);if(G){let C=Object.create(null),Z=v(G,C,"contents",zd),Q=v(G,C,"resolveDir",z),ae=v(G,C,"sourcefile",z),$e=v(G,C,"loader",z);we(G,C,'in "stdin" object'),ae&&s.push(--sourcefile=${ae}),$e&&s.push(--loader=${$e}),Q&&(l=Q),typeof Z=="string"?c=ut(Z):Z instanceof Uint8Array&&(c=Z)}let Y=[];if(y)for(let C of y)C+="",Y.push(C);return{entries:i,flags:s,write:j,stdinContents:c,stdinResolveDir:l,absWorkingDir:K,nodePaths:Y,mangleCache:Wd(X)}}function kk(e,t,r,n){let o=[],s=Object.create(null);Ho(o,t,s,r,n),Gd(o,t,s);let i=v(t,s,"sourcemap",Hd),a=v(t,s,"sourcefile",z),c=v(t,s,"loader",z),l=v(t,s,"banner",z),p=v(t,s,"footer",z),u=v(t,s,"mangleCache",dt);return we(t,s,in ${e}() call),i&&o.push(--sourcemap=${i===!0?"external":i}),a&&o.push(--sourcefile=${a}),c&&o.push(--loader=${c}),l&&o.push(--banner=${l}),p&&o.push(--footer=${p}),{flags:o,mangleCache:Wd(u)}}function Kd(e){let t={},r={didClose:!1,reason:""},n={},o=0,s=0,i=new Uint8Array(16*1024),a=0,c=_=>{let y=a+_.length;if(y>i.length){let E=new Uint8Array(y*2);E.set(i),i=E}i.set(_,a),a+=_.length;let L=0;for(;L+4<=a;){let E=Xi(i,L);if(L+4+E>a)break;L+=4,g(i.subarray(L,L+E)),L+=E}L>0&&(i.copyWithin(0,L,a),a-=L)},l=_=>{r.didClose=!0,_&&(r.reason=": "+(_.message||_));let y="The service was stopped"+r.reason;for(let L in n)n[L](y,null);n={}},p=(_,y,L)=>{if(r.didClose)return L("The service is no longer running"+r.reason,null);let E=o++;n[E]=(I,b)=>{try{L(I,b)}finally{_&&_.unref()}},_&&_.ref(),e.writeToStdin(Gi({id:E,isRequest:!0,value:y}))},u=(_,y)=>{if(r.didClose)throw new Error("The service is no longer running"+r.reason);e.writeToStdin(Gi({id:_,isRequest:!1,value:y}))},d=async(_,y)=>{try{if(y.command==="ping"){u(_,{});return}if(typeof y.key=="number"){let L=t[y.key];if(!L)return;let E=L[y.command];if(E){await E(_,y);return}}throw new Error("Invalid command: "+y.command)}catch(L){let E=[or(L,e,null,void 0,"")];try{u(_,{errors:E})}catch{}}},m=!0,g=_=>{if(m){m=!1;let L=String.fromCharCode(..._);if(L!==hn)throw new Error(Cannot start service: Host version "${hn}" does not match binary version ${Me(L)});return}let y=Dd(_);if(y.isRequest)d(y.id,y.value);else{let L=n[y.id];delete n[y.id],y.value.error?L(y.value.error,{}):L(null,y.value)}};return{readFromStdout:c,afterClose:l,service:{buildOrContext:({callName:_,refs:y,options:L,isTTY:E,defaultWD:I,callback:b})=>{let k=0,R=s++,T={},S={ref(){++k==1&&y&&y.ref()},unref(){--k==0&&(delete t[R],y&&y.unref())}};t[R]=T,S.ref(),Ek(_,R,p,u,S,e,T,L,E,I,(M,O)=>{try{b(M,O)}finally{S.unref()}})},transform:({callName:_,refs:y,input:L,options:E,isTTY:I,fs:b,callback:k})=>{let R=Xd(),T=S=>{try{if(typeof L!="string"&&!(L instanceof Uint8Array))throw new Error('The input to "transform" must be a string or a Uint8Array');let{flags:M,mangleCache:O}=kk(_,E,I,Ad),$={command:"transform",flags:M,inputFS:S!==null,input:S!==null?ut(S):typeof L=="string"?ut(L):L};O&&($.mangleCache=O),p(y,$,(U,D)=>{if(U)return k(new Error(U),null);let W=Nr(D.errors,R),F=Nr(D.warnings,R),K=1,G=()=>{if(--K==0){let j={warnings:F,code:D.code,map:D.map,mangleCache:void 0,legalComments:void 0};"legalComments"in D&&(j.legalComments=D?.legalComments),D.mangleCache&&(j.mangleCache=D?.mangleCache),k(null,j)}};if(W.length>0)return k(xn("Transform failed",W,F),null);D.codeFS&&(K++,b.readFile(D.code,(j,B)=>{j!==null?k(j,null):(D.code=B,G())})),D.mapFS&&(K++,b.readFile(D.map,(j,B)=>{j!==null?k(j,null):(D.map=B,G())})),G()})}catch(M){let O=[];try{Ho(O,E,{},I,Ad)}catch{}let $=or(M,e,R,void 0,"");p(y,{command:"error",flags:O,error:$},()=>{$.detail=R.load($.detail),k(xn("Transform failed",[$],[]),null)})}};if((typeof L=="string"||L instanceof Uint8Array)&&L.length>1024*1024){let S=T;T=()=>b.writeFile(L,S)}T(null)},formatMessages:({callName:_,refs:y,messages:L,options:E,callback:I})=>{if(!E)throw new Error(Missing second argument in ${_}() call);let b={},k=v(E,b,"kind",z),R=v(E,b,"color",me),T=v(E,b,"terminalWidth",nr);if(we(E,b,in ${_}() call),k===void 0)throw new Error(Missing "kind" in ${_}() call);if(k!=="error"&&k!=="warning")throw new Error(Expected "kind" to be "error" or "warning" in ${_}() call);let S={command:"format-msgs",messages:Pt(L,"messages",null,"",T),isWarning:k==="warning"};R!==void 0&&(S.color=R),T!==void 0&&(S.terminalWidth=T),p(y,S,(M,O)=>{if(M)return I(new Error(M),null);I(null,O.messages)})},analyzeMetafile:({callName:_,refs:y,metafile:L,options:E,callback:I})=>{E===void 0&&(E={});let b={},k=v(E,b,"color",me),R=v(E,b,"verbose",me);we(E,b,in ${_}() call);let T={command:"analyze-metafile",metafile:L};k!==void 0&&(T.color=k),R!==void 0&&(T.verbose=R),p(y,T,(S,M)=>{if(S)return I(new Error(S),null);I(null,M.result)})}}}}function Ek(e,t,r,n,o,s,i,a,c,l,p){let u=Xd(),d=e==="context",m=(x,w)=>{let P=[];try{Ho(P,a,{},c,$d)}catch{}let _=or(x,s,u,void 0,w);r(o,{command:"error",flags:P,error:_},()=>{_.detail=u.load(_.detail),p(xn(d?"Context failed":"Build failed",[_],[]),null)})},g;if(typeof a=="object"){let x=a.plugins;if(x!==void 0){if(!Array.isArray(x))return m(new Error('"plugins" must be an array'),"");g=x}}if(g&&g.length>0){if(s.isSync)return m(new Error("Cannot use plugins in synchronous API calls"),"");Tk(t,r,n,o,s,i,a,g,u).then(x=>{if(!x.ok)return m(x.error,x.pluginName);try{h(x.requestPlugins,x.runOnEndCallbacks,x.scheduleOnDisposeCallbacks)}catch(w){m(w,"")}},x=>m(x,""));return}try{h(null,(x,w)=>w([],[]),()=>{})}catch(x){m(x,"")}function h(x,w,P){let _=s.hasFS,{entries:y,flags:L,write:E,stdinContents:I,stdinResolveDir:b,absWorkingDir:k,nodePaths:R,mangleCache:T}=vk(e,a,c,$d,_);if(E&&!s.hasFS)throw new Error('The "write" option is unavailable in this environment');let S={command:"build",key:t,entries:y,flags:L,write:E,stdinContents:I,stdinResolveDir:b,absWorkingDir:k||l,nodePaths:R,context:d};x&&(S.plugins=x),T&&(S.mangleCache=T);let M=(U,D)=>{let W={errors:Nr(U.errors,u),warnings:Nr(U.warnings,u),outputFiles:void 0,metafile:void 0,mangleCache:void 0},F=W.errors.slice(),K=W.warnings.slice();U.outputFiles&&(W.outputFiles=U.outputFiles.map(Lk)),U.metafile&&(W.metafile=JSON.parse(U.metafile)),U.mangleCache&&(W.mangleCache=U.mangleCache),U.writeToStdout!==void 0&&console.log(Ir(U.writeToStdout).replace(/\n$/,"")),w(W,(G,j)=>{if(F.length>0||G.length>0){let B=xn("Build failed",F.concat(G),K.concat(j));return D(B,null,G,j)}D(null,W,G,j)})},O,$;d&&(i["on-end"]=(U,D)=>new Promise(W=>{M(D,(F,K,G,j)=>{let B={errors:G,warnings:j};$&&$(F,K),O=void 0,$=void 0,n(U,B),W()})})),r(o,S,(U,D)=>{if(U)return p(new Error(U),null);if(!d)return M(D,(K,G)=>(P(),p(K,G)));if(D.errors.length>0)return p(xn("Context failed",D.errors,D.warnings),null);let W=!1,F={rebuild:()=>(O||(O=new Promise((K,G)=>{let j;$=(X,Y)=>{j||(j=()=>X?G(X):K(Y))};let B=()=>{r(o,{command:"rebuild",key:t},(Y,C)=>{Y?G(new Error(Y)):j?j():B()})};B()})),O),watch:(K={})=>new Promise((G,j)=>{if(!s.hasFS)throw new Error('Cannot use the "watch" API in this environment');we(K,{},"in watch() call"),r(o,{command:"watch",key:t},Y=>{Y?j(new Error(Y)):G(void 0)})}),serve:(K={})=>new Promise((G,j)=>{if(!s.hasFS)throw new Error('Cannot use the "serve" API in this environment');let B={},X=v(K,B,"port",nr),Y=v(K,B,"host",z),C=v(K,B,"servedir",z),Z=v(K,B,"keyfile",z),Q=v(K,B,"certfile",z),ae=v(K,B,"fallback",z),$e=v(K,B,"onRequest",Fd);we(K,B,"in serve() call");let ve={command:"serve",key:t,onRequest:!!$e};X!==void 0&&(ve.port=X),Y!==void 0&&(ve.host=Y),C!==void 0&&(ve.servedir=C),Z!==void 0&&(ve.keyfile=Z),Q!==void 0&&(ve.certfile=Q),ae!==void 0&&(ve.fallback=ae),r(o,ve,(Nn,js)=>{if(Nn)return j(new Error(Nn));$e&&(i["serve-request"]=(jh,Dh)=>{$e(Dh.args),n(jh,{})}),G(js)})}),cancel:()=>new Promise(K=>{if(W)return K();r(o,{command:"cancel",key:t},()=>{K()})}),dispose:()=>new Promise(K=>{if(W)return K();W=!0,r(o,{command:"dispose",key:t},()=>{K(),P(),o.unref()})})};o.ref(),p(null,F)})}}var Tk=async(e,t,r,n,o,s,i,a,c)=>{let l=[],p=[],u={},d={},m=[],g=0,h=0,x=[],w=!1;a=[...a];for(let y of a){let L={};if(typeof y!="object")throw new Error(Plugin at index ${h} must be an object);let E=v(y,L,"name",z);if(typeof E!="string"||E==="")throw new Error(Plugin at index ${h} is missing a name);try{let I=v(y,L,"setup",Fd);if(typeof I!="function")throw new Error("Plugin is missing a setup function");we(y,L,on plugin ${Me(E)});let b={name:E,onStart:!1,onEnd:!1,onResolve:[],onLoad:[]};h++;let R=I({initialOptions:i,resolve:(T,S={})=>{if(!w)throw new Error('Cannot call "resolve" before plugin setup has completed');if(typeof T!="string")throw new Error("The path to resolve must be a string");let M=Object.create(null),O=v(S,M,"pluginName",z),$=v(S,M,"importer",z),U=v(S,M,"namespace",z),D=v(S,M,"resolveDir",z),W=v(S,M,"kind",z),F=v(S,M,"pluginData",Fo);return we(S,M,"in resolve() call"),new Promise((K,G)=>{let j={command:"resolve",path:T,key:e,pluginName:E};if(O!=null&&(j.pluginName=O),$!=null&&(j.importer=$),U!=null&&(j.namespace=U),D!=null&&(j.resolveDir=D),W!=null)j.kind=W;else throw new Error('Must specify "kind" when calling "resolve"');F!=null&&(j.pluginData=c.store(F)),t(n,j,(B,X)=>{B!==null?G(new Error(B)):K({errors:Nr(X.errors,c),warnings:Nr(X.warnings,c),path:X.path,external:X.external,sideEffects:X.sideEffects,namespace:X.namespace,suffix:X.suffix,pluginData:c.load(X.pluginData)})})})},onStart(T){let S='This error came from the "onStart" callback registered here:',M=zo(new Error(S),o,"onStart");l.push({name:E,callback:T,note:M}),b.onStart=!0},onEnd(T){let S='This error came from the "onEnd" callback registered here:',M=zo(new Error(S),o,"onEnd");p.push({name:E,callback:T,note:M}),b.onEnd=!0},onResolve(T,S){let M='This error came from the "onResolve" callback registered here:',O=zo(new Error(M),o,"onResolve"),$={},U=v(T,$,"filter",Bo),D=v(T,$,"namespace",z);if(we(T,$,in onResolve() call for plugin ${Me(E)}),U==null)throw new Error("onResolve() call is missing a filter");let W=g++;u[W]={name:E,callback:S,note:O},b.onResolve.push({id:W,filter:U.source,namespace:D||""})},onLoad(T,S){let M='This error came from the "onLoad" callback registered here:',O=zo(new Error(M),o,"onLoad"),$={},U=v(T,$,"filter",Bo),D=v(T,$,"namespace",z);if(we(T,$,in onLoad() call for plugin ${Me(E)}),U==null)throw new Error("onLoad() call is missing a filter");let W=g++;d[W]={name:E,callback:S,note:O},b.onLoad.push({id:W,filter:U.source,namespace:D||""})},onDispose(T){m.push(T)},esbuild:o.esbuild});R&&await R,x.push(b)}catch(I){return{ok:!1,error:I,pluginName:E}}}s["on-start"]=async(y,L)=>{let E={errors:[],warnings:[]};await Promise.all(l.map(async({name:I,callback:b,note:k})=>{try{let R=await b();if(R!=null){if(typeof R!="object")throw new Error(Expected onStart() callback in plugin ${Me(I)} to return an object);let T={},S=v(R,T,"errors",he),M=v(R,T,"warnings",he);we(R,T,from onStart() callback in plugin ${Me(I)}),S!=null&&E.errors.push(...Pt(S,"errors",c,I,void 0)),M!=null&&E.warnings.push(...Pt(M,"warnings",c,I,void 0))}}catch(R){E.errors.push(or(R,o,c,k&&k(),I))}})),r(y,E)},s["on-resolve"]=async(y,L)=>{let E={},I="",b,k;for(let R of L.ids)try{({name:I,callback:b,note:k}=u[R]);let T=await b({path:L.path,importer:L.importer,namespace:L.namespace,resolveDir:L.resolveDir,kind:L.kind,pluginData:c.load(L.pluginData)});if(T!=null){if(typeof T!="object")throw new Error(Expected onResolve() callback in plugin ${Me(I)} to return an object);let S={},M=v(T,S,"pluginName",z),O=v(T,S,"path",z),$=v(T,S,"namespace",z),U=v(T,S,"suffix",z),D=v(T,S,"external",me),W=v(T,S,"sideEffects",me),F=v(T,S,"pluginData",Fo),K=v(T,S,"errors",he),G=v(T,S,"warnings",he),j=v(T,S,"watchFiles",he),B=v(T,S,"watchDirs",he);we(T,S,from onResolve() callback in plugin ${Me(I)}),E.id=R,M!=null&&(E.pluginName=M),O!=null&&(E.path=O),$!=null&&(E.namespace=$),U!=null&&(E.suffix=U),D!=null&&(E.external=D),W!=null&&(E.sideEffects=W),F!=null&&(E.pluginData=c.store(F)),K!=null&&(E.errors=Pt(K,"errors",c,I,void 0)),G!=null&&(E.warnings=Pt(G,"warnings",c,I,void 0)),j!=null&&(E.watchFiles=qo(j,"watchFiles")),B!=null&&(E.watchDirs=qo(B,"watchDirs"));break}}catch(T){E={id:R,errors:[or(T,o,c,k&&k(),I)]};break}r(y,E)},s["on-load"]=async(y,L)=>{let E={},I="",b,k;for(let R of L.ids)try{({name:I,callback:b,note:k}=d[R]);let T=await b({path:L.path,namespace:L.namespace,suffix:L.suffix,pluginData:c.load(L.pluginData),with:L.with});if(T!=null){if(typeof T!="object")throw new Error(Expected onLoad() callback in plugin ${Me(I)} to return an object);let S={},M=v(T,S,"pluginName",z),O=v(T,S,"contents",zd),$=v(T,S,"resolveDir",z),U=v(T,S,"pluginData",Fo),D=v(T,S,"loader",z),W=v(T,S,"errors",he),F=v(T,S,"warnings",he),K=v(T,S,"watchFiles",he),G=v(T,S,"watchDirs",he);we(T,S,from onLoad() callback in plugin ${Me(I)}),E.id=R,M!=null&&(E.pluginName=M),O instanceof Uint8Array?E.contents=O:O!=null&&(E.contents=ut(O)),$!=null&&(E.resolveDir=$),U!=null&&(E.pluginData=c.store(U)),D!=null&&(E.loader=D),W!=null&&(E.errors=Pt(W,"errors",c,I,void 0)),F!=null&&(E.warnings=Pt(F,"warnings",c,I,void 0)),K!=null&&(E.watchFiles=qo(K,"watchFiles")),G!=null&&(E.watchDirs=qo(G,"watchDirs"));break}}catch(T){E={id:R,errors:[or(T,o,c,k&&k(),I)]};break}r(y,E)};let P=(y,L)=>L([],[]);p.length>0&&(P=(y,L)=>{(async()=>{let E=[],I=[];for(let{name:b,callback:k,note:R}of p){let T,S;try{let M=await k(y);if(M!=null){if(typeof M!="object")throw new Error(Expected onEnd() callback in plugin ${Me(b)} to return an object);let O={},$=v(M,O,"errors",he),U=v(M,O,"warnings",he);we(M,O,from onEnd() callback in plugin ${Me(b)}),$!=null&&(T=Pt($,"errors",c,b,void 0)),U!=null&&(S=Pt(U,"warnings",c,b,void 0))}}catch(M){T=[or(M,o,c,R&&R(),b)]}if(T){E.push(...T);try{y.errors.push(...T)}catch{}}if(S){I.push(...S);try{y.warnings.push(...S)}catch{}}}L(E,I)})()});let _=()=>{for(let y of m)setTimeout(()=>y(),0)};return w=!0,{ok:!0,requestPlugins:x,runOnEndCallbacks:P,scheduleOnDisposeCallbacks:_}};function Xd(){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 zo(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=Yd(t,s,r);if(i)return n={text:e.message,location:i},n}catch{}}}function or(e,t,r,n,o){let s="Internal error",i=null;try{s=(e&&e.message||e)+""}catch{}try{i=Yd(t,(e.stack+"").split(
),"")}catch{}return{id:"",pluginName:o,text:s,location:i,notes:n?[n]:[],detail:r?r.store(e):-1}}function Yd(e,t,r){let n=" at ";if(e.readFileSync&&!t[0].startsWith(n)&&t[1].startsWith(n))for(let o=1;o<t.length;o++){let s=t[o];if(!!s.startsWith(n))for(s=s.slice(n.length);;){let i=/^(?:new |async )?\S+ \((.*)\)$/.exec(s);if(i){s=i[1];continue}if(i=/^eval at \S+ \((.*)\)(?:, \S+:\d+:\d+)?$/.exec(s),i){s=i[1];continue}if(i=/^(\S+):(\d+):(\d+)$/.exec(s),i){let a;try{a=e.readFileSync(i[1],"utf8")}catch{break}let c=a.split(/\r\n|\r|\n|\u2028|\u2029/)[+i[2]-1]||"",l=+i[3]-1,p=c.slice(l,l+r.length)===r?r.length:0;return{file:i[1],namespace:"file",line:+i[2],column:ut(c.slice(0,l)).length,length:ut(c.slice(l,l+p)).length,lineText:c+
+t.slice(1).join(
),suggestion:""}}break}}return null}function xn(e,t,r){let n=5;e+=t.length<1?"": with ${t.length} error${t.length<2?"":"s"}:+t.slice(0,n+1).map((s,i)=>{if(i===n)return
...;if(!s.location)return
${a}:${c}:${l}: ERROR: ${p}${s.text}}).join("");let o=new Error(e);for(let[s,i]of[["errors",t],["warnings",r]])Object.defineProperty(o,s,{configurable:!0,enumerable:!0,get:()=>i,set:a=>Object.defineProperty(o,s,{configurable:!0,enumerable:!0,value:a})});return o}function Nr(e,t){for(let r of e)r.detail=t.load(r.detail);return e}function Vd(e,t,r){if(e==null)return null;let n={},o=v(e,n,"file",z),s=v(e,n,"namespace",z),i=v(e,n,"line",nr),a=v(e,n,"column",nr),c=v(e,n,"length",nr),l=v(e,n,"lineText",z),p=v(e,n,"suggestion",z);if(we(e,n,t),l){let u=l.slice(0,(a&&a>0?a:0)+(c&&c>0?c:0)+(r&&r>0?r:80));!/[\x7F-\uFFFF]/.test(u)&&!/\n/.test(l)&&(l=u)}return{file:o||"",namespace:s||"",line:i||0,column:a||0,length:c||0,lineText:l||"",suggestion:p||""}}function Pt(e,t,r,n,o){let s=[],i=0;for(let a of e){let c={},l=v(a,c,"id",z),p=v(a,c,"pluginName",z),u=v(a,c,"text",z),d=v(a,c,"location",Bd),m=v(a,c,"notes",he),g=v(a,c,"detail",Fo),h=in element ${i} of "${t}";we(a,c,h);let x=[];if(m)for(let w of m){let P={},_=v(w,P,"text",z),y=v(w,P,"location",Bd);we(w,P,h),x.push({text:_||"",location:Vd(y,h,o)})}s.push({id:l||"",pluginName:p||n,text:u||"",location:Vd(d,h,o),notes:x,detail:r?r.store(g):-1}),i++}return s}function qo(e,t){let r=[];for(let n of e){if(typeof n!="string")throw new Error(${Me(t)} must be an array of strings);r.push(n)}return r}function Lk({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=Ir(o)),n}}}var Pk=hn,Wo=e=>Ko().build(e),Sk=(e,t)=>Ko().transform(e,t),_k=(e,t)=>Ko().formatMessages(e,t),Rk=(e,t)=>Ko().analyzeMetafile(e,t);var sr,Qd,Go,Ko=()=>{if(Go)return Go;throw sr?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')},Xo=e=>{e=qd(e||{});let t=e.wasmModule,r=e.workerURL;if(!t)throw new Error('Must provide the "wasmModule" option');if(sr)throw new Error('Cannot call "initialize" more than once');return sr=Ck(t,r),sr.catch(()=>{sr=void 0}),sr},Ck=async(e,t)=>{let r=new Worker(t.toString()),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}=Kd({writeToStdin(c){r.postMessage(c)},isSync:!1,hasFS:!1,esbuild:{build:Wo,transform:Sk,formatMessages:_k,analyzeMetafile:Rk,version:Pk,initialize:Xo}});await s,Qd=()=>{r.terminate(),sr=void 0,Qd=void 0,Go=void 0},Go={build:c=>new Promise((l,p)=>a.buildOrContext({callName:"build",refs:null,options:c,isTTY:!1,defaultWD:"/",callback:(u,d)=>u?p(u):l(d)})),transform:(c,l)=>new Promise((p,u)=>a.transform({callName:"transform",refs:null,input:c,options:l||{},isTTY:!1,fs:{readFile(d,m){m(new Error("Internal error"),null)},writeFile(d,m){m(null)}},callback:(d,m)=>d?u(d):p(m)})),formatMessages:(c,l)=>new Promise((p,u)=>a.formatMessages({callName:"formatMessages",refs:null,messages:c,options:l,callback:(d,m)=>d?u(d):p(m)})),analyzeMetafile:(c,l)=>new Promise((p,u)=>a.analyzeMetafile({callName:"analyzeMetafile",refs:null,metafile:typeof c=="string"?c:JSON.stringify(c),options:l,callback:(d,m)=>d?u(d):p(m)}))}};function Yo(e){return typeof e=="object"&&e!==null&&e.constructor===Object}function Vo(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 Jd(e){return Yo(e)&&(e.imports!==void 0?Vi(e.imports):!0)&&(e.scopes!==void 0?Qi(e.scopes):!0)}function Vi(e){return Yo(e)}function Qi(e){return Yo(e)&&Object.values(e).every(t=>Ji(t))}function Ji(e){return Yo(e)}function Qo(e){try{return new URL(e),!0}catch{return!1}}function Zd(e,t){let r={};for(let[n,o]of Object.entries(e)){let s=Ik(n,t);if(s===null)continue;if(typeof o!="string"){console.warn("addresses need to be strings."),r[s]=null;continue}let i=Zi(o,t);if(i===null){console.warn("the address was invalid."),r[s]=null;continue}if(n.endsWith("/")&&!bt(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]=bt(i)}return Vo(r)}function bt(e){return e.href}function Mk(e,t){let r={};for(let[o,s]of Object.entries(e)){if(!Ji(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=bt(i);r[a]=Zd(s,t)}let n={};for(let o of Object.keys(r))n[o]=Vo(r[o]);return Vo(n)}function Ik(e,t){if(!e.length)return console.warn("specifier key cannot be an empty string."),null;let r=Zi(e,t);return r!==null?bt(r):e}function Zi(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 Nk=["ftp","file","http","https","ws","wss"];function jk(e){return Nk.some(t=>bt(e).startsWith(t))}function em(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(!Qo(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(!Qo(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(!Qo(i))throw new TypeError("url must be an URL.");if(!bt(i).startsWith(o))throw new TypeError("resolution of normalizedSpecifier was blocked due to it backtracking above its prefix specifierKey.");return bt(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 ea(e,t){let r={};if(!Jd(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(!Vi(n))throw new TypeError('"imports" top-level key needs to be an object.');r=Zd(n,t)}let s={};if(o!==void 0){if(!Qi(o))throw new TypeError('"scopes" top-level key needs to be an object.');s=Mk(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 ta(e,{imports:t={},scopes:r={}},n){let o=bt(n),s=Zi(e,n),i=s!==null?bt(s):e;for(let[c,l]of Object.entries(r))if(c===o||c.endsWith("/")&&o.startsWith(c)){let p=em(i,s,l);if(p!==null)return p}let a=em(i,s,t);if(a!==null)return a;if(s!==null)return bt(s);throw new TypeError("specifier was a bare specifier, but was not remapped to anything by importMap.")}var GK=(()=>{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"})();function na(e,t){if(e===t)return"./";if(e.protocol!==t.protocol)return t.toString();if(e.hostname!==t.hostname)return//${t.hostname}${t.pathname};let r=e.pathname.split("/"),n=t.pathname.split("/"),o=1,s=Math.min(r.length,n.length);for(;o<s&&r[o]===n[o];)o++;if(o===1)return t.pathname;let i=r.length-o;return${i==0?./${r[r.length-1]}/:i===1?"./":"../".repeat(i-1)}${n.slice(o).join("/")}}var o0=["js","jsx","ts","tsx","css","json","text","base64","file","dataurl","binary","default"];function s0(e){return o0.includes(e)}function am(e){let r=e.url.split(".").pop();if(r&&s0(r))return r;if(r==="mjs")return"js";let o=(e.headers.get("Content-Type")??"text/plain").split(";")[0]?.trim?.()??"text/plain";return i0(o)}function i0(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 Zo=e=>!/^(?:https?|file):\/\/|^\.{0,2}\//.test(e);var cm=e=>!!(a0.includes(e.hostname)||e.hostname.endsWith(".openai.azure.com")),a0=["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"];var oa="remote-resource",lm=e=>({name:oa,setup({onResolve:t,onLoad:r,initialOptions:{external:n=[]}}){let{importmap:o={imports:{}},baseURL:s,sources:i=[],progressCallback:a}=e??{},c=ea(o,s);n=n.map(l=>Zo(l)?l:new URL(l,s).href),t({filter:/.*/},({path:l,importer:p})=>{Zo(l)||(p=p==="<stdin>"?s.href:p,l=new URL(l,p).href);let u=ta(l,c,s);return Zo(u)?(a?.({type:"skip",url:u}),{external:!0,path:u}):n.includes(u)?(a?.({type:"skip",url:u}),{external:!0,path:na(s,new URL(u))}):{path:decodeURI(u),namespace:oa}}),r({filter:/^http|^file/,namespace:oa},async({path:l})=>{try{let p=i.find(d=>d.path===l);if(p!==void 0)return a?.({type:"cache",url:l}),{contents:p.contents,loader:p.loader};let u=await c0(new URL(l));return a?.({type:"remote",url:l}),{contents:await u.text(),loader:am(u)}}catch(p){if(!(p instanceof Response))throw p;a?.({type:"fetch error",url:l,data:{status:p.status,statusText:p.statusText}});return}})}}),c0=(e,t)=>cm(e)||!GM_fetch?fetch(e,t):GM_fetch(e,t);var pm,um=async(e,t)=>(pm??=Xo({wasmModule:e,workerURL:t}),await pm,async(r,{extension:n,fileName:o,dirURL:s})=>{o??=codeblock-${Math.floor(16777214*Math.random()).toString(16)}.${sa(n)};let i=${s}${o},{outputFiles:a}=await Wo({stdin:{contents:import "${i}";,loader:sa(n)},format:"esm",bundle:!0,minify:!0,charset:"utf8",plugins:[lm({baseURL:new URL(i),sources:[{path:i,contents:r,loader:sa(n)}]})],write:!1});return a[0].text}),dm=e=>["ts","js","tsx","jsx","mjs","javascript","typescript"].includes(e);function sa(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 mm=()=>{let e=document.createElement("i");return e.classList.add("kamon","kamon-check-circle-fill"),e.style.color="hsl(133, 46.1%, 47.3%)",e},fm=()=>{let e=document.createElement("i");return e.classList.add("kamon","kamon-cross-circle"),e.style.color="hsl(1.7, 64.5%, 58%)",e},gm=()=>{let e=document.createElement("i");return e.classList.add("i","fa","fa-spinner"),e},hm=()=>{let e=document.createElement("i");return e.classList.add("kamon","kamon-play"),e};var xm=()=>{let e;return{show:(n,{x:o,y:s})=>{e=l0(),e.append(p0(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?.()}}},l0=()=>{let e=document.createElement("div");return e.setAttribute("role","tooltip"),e.classList.add("fade","in","tooltip","top"),e},p0=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 bm=()=>{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}=xm();return{component:e,setStatus:async(s,i)=>{switch(e.textContent="",await n(),s){case"loading":e.append(gm());break;case"pass":e.append(mm());break;case"fail":e.append(fm());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 ym=e=>{let t=document.createElement("a");return t.classList.add("tool-btn"),t.type="button",t.setAttribute("aria-haspopup","true"),t.append(hm()),t.addEventListener("click",e),t};var wm=e=>{let{component:t,setStatus:r}=bm(),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(ym(e),t),{menu:n,setStatus:r}};function vm(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 vm(n);let{parameters:l,resolve:p,reject:u}=a();try{let d=await e(...l);s=!1,p({result:d,executed:!0})}catch(d){s=!1,u(d)}finally{r?await c():(i(),await Promise.resolve())}};return(...l)=>new Promise((p,u)=>{i({parameters:l,resolve:p,reject:u}),c()})}var Em=async(e,t)=>{let r=await um(e,t),n=[],s=km(async()=>{let i=jd(scrapbox.Project.name,scrapbox.Page.title??"",Ae());n.forEach(({menu:a,setStatus:c})=>{c("none"),a.remove()}),i.forEach(a=>{let c=a.lang.toLowerCase();!dm(c)||a.startIds.forEach(l=>{let p=document.getElementById(L${l}),{menu:u,setStatus:d}=wm(async()=>{await d("loading");try{let m=await r(a.lines.join(
),{extension:c,fileName:a.filename,dirURL:${a.dir}/});console.log("execute:",m),await Function(return (async()=>{${m}})())(),await d("pass")}catch(m){await d("fail",m.toString())}});n.push({menu:u,setStatus:d}),p?.insertBefore?.(u,p?.firstElementChild)})}),await Promise.resolve()},{interval:100,trailing:!0});return await s(),scrapbox.addListener("lines:changed",s),()=>{scrapbox.removeListener("lines:changed",s),n.forEach(({menu:i,setStatus:a})=>{a("none"),i.remove()})}};var Tm=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}},Lm=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 Pm=({title:e,projects:t,selected:r,confirm:n})=>f("div",{className:candidate${r?" selected":""}},f(u0,{title:e,confirm:n}),t.map(o=>f(d0,{project:o.name,title:e,mark:o.mark,confirm:o.confirm}))),u0=({title:e,confirm:t})=>f("a",{className:"button",tabIndex:0,role:"menuitem",href:./${oe(e)},onClick:Sm(t)},e),d0=({project:e,title:t,mark:r,confirm:n})=>r===""?f(V,null):f("a",{className:"mark",tabIndex:0,href:../${e}/${oe(t)},onClick:Sm(n),title:/${e}/${oe(t)}},r instanceof URL?f("img",{src:r.href}):${r}),Sm=e=>N(t=>{t.metaKey||t.ctrlKey||t.altKey||t.shiftKey||(t.preventDefault(),t.stopPropagation(),e())},[e]);var _m=e=>{let[t,r]=q(-1);H(()=>r(-1),[e]);let n=N(a=>r(c=>a?.cyclic?(c+1)%e:Math.min(c+1,e)),[e]),o=N(a=>r(c=>c<0?e-1:a?.cyclic?(c+e-1)%e:Math.max(c-1,0)),[e]),s=N(()=>r(0),[]),i=N(()=>r(e-1),[e]);return{selectedIndex:t,next:n,prev:o,selectFirst:s,selectLast:i}};var Rm=e=>{let t=se(null),r=A(()=>{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=Vr(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 Cm=(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 Mm=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(),p=[],u=l.length;p[u]=n;for(let d of l){let m=t.get(d)??0,g=m|a,h=(m&c)+c^c|m,x=a|~(h|c),w=c&h;p[u-1]=p[u]+((x&s)!=0?1:(w&s)!=0?-1:0),c=w<<1|~(g|x<<1),a=x<<1&g,u--}return p}};var m0=[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],Im=e=>{let t=_c(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=f0(o,n);return n}},f0=(e,t)=>{let r=[...e].length,n=m0[r],o=Mm(e);return t.flatMap(({title:s,dist:i,matches:a,...c})=>{a??=[],i??=0;let l=o(s).flatMap((u,d)=>u<=n&&a.every(([m,g])=>d+r<=m||g<d)?[[d,u]]:[]);if(l.length===0)return[];let p=l.reduce((u,[d,m])=>(u.dist<=m||(u.dist=m,u.start=d),u),{dist:r,start:0});return a.push([p.start,p.start+r-1]),[{title:s,dist:p.dist+i,matches:a,...c}]})};var et=!1,Nm=e=>{et=typeof e=="boolean"?e:new Set(e)},es=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)=>{et!==!0&&(!et||!et.has(e))||r(%c${e},"color: gray",...n)}];case"assert":return[t,(n,...o)=>{et!==!0&&(!et||!et.has(e))||r(n,%c${e},"color: gray",...o)}];case"time":case"timeEnd":return[t,n=>{et!==!0&&(!et||!et.has(e))||r(${e} ${n})}];default:return[t,(...n)=>{if(!(et!==!0&&(!et||!et.has(e))))return r(...n)}]}}));var g0=es("scrapbox-select-suggestion:cancelableSearch.ts");async function*jm(e,t,r){let n=Im(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();g0.debug(search ${(i/s*100).toPrecision(3)}% of the source for "${e}" in ${l}ms)}}var Dm=(e,t)=>{let[r,n]=Xr(h0,{type:"query",source:t,query:e});H(()=>n({source:t}),[t]),H(()=>n({query:e}),[e]);let[o,s]=q(0),[i,a]=q([]),c=se(Promise.resolve());H(()=>{let u=!1;return c.current=(async()=>{await c.current;let d=[],m=jm(r.query,r.source,{chunk:5e3});if(r.type==="source"){for await(let[x]of m){if(u)return;d.push(...x)}s(1),a(d);return}let g,h=!1;for await(let[x,w]of m){if(u){clearTimeout(g);return}if(d.push(...x),s(w),x.length!==0){if(!h){a([...d]),h=!0;continue}g??=setTimeout(()=>{a([...d]),g=void 0},500)}}(g!==void 0||!h)&&(clearTimeout(g),a([...d]))})(),()=>u=!0},[r]);let[l,p]=A(()=>{let u=new Map,d=[];for(let m of i.sort(Cm)){let g=m.metadata.map(({project:h})=>h);for(let h of g)u.set(h,(u.get(h)??0)+.5**m.dist);d.push({title:m.title,dist:m.dist,projects:g})}return[u,d]},[i]);return{projectScore:l,items:p,progress:o}},h0=(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 ia="enableProjectsOnSuggestion",Om=(e,t)=>{let[r,n]=q(ts([...e],t)),o=N((s,i)=>{x0(s,i,e,t),n(ts([...e],t))},[e,t.enableSelfProjectOnStart]);return H(()=>{let s=i=>{i.key===ia&&n(ts([...e],t))};return addEventListener("storage",s),()=>removeEventListener("storage",s)},[e,t.enableSelfProjectOnStart]),{projects:r,set:o}},aa=!0,ts=(e,t)=>{try{let r=localStorage.getItem(ia);if(r===null)return rs(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)?aa?n:n.filter(o=>o!==scrapbox.Project.name):aa?[...n,scrapbox.Project.name]:n:(rs(e),e)}catch(r){if(!(r instanceof TypeError))throw r;return rs(e),e}},x0=(e,t,r,n)=>{let o=ts([...r],n);n.enableSelfProjectOnStart&&e===scrapbox.Project.name&&(aa=t),rs(t?[...o,e]:o.filter(s=>s!==e))},rs=e=>localStorage.setItem(ia,JSON.stringify(e));var $m=()=>A(()=>document.documentElement.dataset.os??"",[]);var yn=(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 Am=({position:e,query:t,start:r,context:n,limit:o,enableSelfProjectOnStart:s,callback:i,projects:a,source:c,mark:l,confirmAfter:p,cancel:u,freezeUntil:d})=>{let{projectScore:m,items:g,progress:h}=Dm(n==="input"?t.slice(1,-1):t,c),{projects:x,set:w}=Om(a,{enableSelfProjectOnStart:s}),{ref:P,top:_,left:y,right:L}=Rm({line:e.line,char:r}),E=$m();return f(V,null,f(y0,{itemCount:g.length,...{enableProjects:x,projects:a,projectScore:m,freezeUntil:d,mark:l,top:_,right:L,set:w,os:E}}),f(b0,{divRef:P,...{start:r,confirmAfter:p,cancel:u,query:t,enableProjects:x,projects:a,items:g,top:_,left:y,progress:h,callback:i,limit:o,mark:l,os:E}}))},b0=({start:e,divRef:t,confirmAfter:r,cancel:n,query:o,enableProjects:s,projects:i,items:a,top:c,left:l,progress:p,callback:u,limit:d,mark:m,os:g})=>{let h=N((k,R)=>{let T=R?/${R}/${k}:${k};r((S,{line:M})=>[${...S.slice(0,e).join("")}${T}${...S.slice(e+...o.length).join("")},{line:M,char:e+[...T].length}])},[e,o]),x=A(()=>i.size>1||!i.has(scrapbox.Project.name),[i]),w=A(()=>{let k=[];for(let R of a){if(k.length===d)break;!R.projects.some(T=>s.includes(T))||k.push({title:R.title,projects:R.projects.flatMap(T=>s.includes(T)?[{name:T,mark:x?yn(m[T]??"",import.meta.url)||T[0]:"",confirm:()=>h(R.title,T)}]:[]),confirm:()=>h(R.title)})}return k},[s,x,a,d,m,h]),{selectedIndex:P,next:_,prev:y,selectLast:L,selectFirst:E}=_m(w.length),I=N(()=>P===-1?!1:(w.at(P)?.confirm?.(),!0),[P,w]);H(()=>u(w.length===0?void 0:{selectNext:k=>(_(k),!0),selectPrev:k=>(y(k),!0),selectFirst:()=>(E(),!0),selectLast:()=>(L(),!0),confirm:I,cancel:()=>(n(),!0)}),[u,_,y,E,L,I]);let b=A(()=>w.length>0&&c!=null&&l!=null?{top:c,left:l}:{display:"none"},[w.length,c,l]);return f("div",{ref:t,className:"container candidates","data-os":g,style:b},w.map((k,R)=>f(Pm,{key:k.title,...k,selected:P===R})),a.length>d&&f("div",{className:"counter"},${a.length-d} more links),f("div",{className:"progress",style:background: linear-gradient(to right, var(--select-suggest-border-color, #eee) ${(p*100).toPrecision(3)}%, transparent ${(p*100).toPrecision(3)}%)}))},y0=({enableProjects:e,projects:t,projectScore:r,mark:n,itemCount:o,top:s,right:i,set:a,os:c,freezeUntil:l})=>{let p=A(()=>[...t].sort((d,m)=>(r.get(m)??0)-(r.get(d)??0)).flatMap(d=>r.has(d)?[{name:d,enable:e.includes(d),mark:yn(n[d]??"",import.meta.url)||d[0],score:r.get(d),onClick:()=>l(()=>{a(d,!e.includes(d)),Be().focus()})}]:[]),[t,r,e,n]),u=A(()=>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:u},p.map(d=>f(w0,{...d})))},w0=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 tt=!1,ca=e=>{tt=typeof e=="boolean"?e:new Set(e)},jr=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)=>{tt!==!0&&(!tt||!tt.has(e))||r(%c${e},"color: gray",...n)}];case"assert":return[t,(n,...o)=>{tt!==!0&&(!tt||!tt.has(e))||r(n,%c${e},"color: gray",...o)}];case"time":case"timeEnd":return[t,n=>{tt!==!0&&(!tt||!tt.has(e))||r(${e} ${n})}];default:return[t,(...n)=>{if(!(tt!==!0&&(!tt||!tt.has(e))))return r(...n)}]}}));var ns=e=>{let[t,r,n,...o]=e;return{title:t,links:o,image:r,exists:n>=0,updated:Math.min(0,n)}},Um=e=>[e.title,e.image,e.exists?e.updated:-1,...e.links];var Fm=e=>{let t=new Map;for(let r of e){let n=ne(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=ne(o);t.has(s)||t.set(s,{title:o,updated:0,links:[],exists:!1})}}return[...t.values()].map(r=>Um(r))};var Bm=jr("scrapbox-storage:remote.ts"),Hm=async e=>{let t,r=[],n=download and create Links of "${e}";Bm.time(n);do{let s=await Hl(e,{followingId:t});if(!s.ok)return s;t=s.value.followingId,r.push(...s.value.pages)}while(t);let o=Fm(r);return Bm.timeEnd(n),{ok:!0,value:o}};async function*zm(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 Dn(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 hr(s);yield i.ok?{ok:!0,value:{...i.value,checked:n.get(s)??0}}:{ok:!1,value:{...i.value,project:s}}}}var la=(e,t)=>t.some(r=>e instanceof r),qm,Wm;function v0(){return qm||(qm=[IDBDatabase,IDBObjectStore,IDBIndex,IDBCursor,IDBTransaction])}function k0(){return Wm||(Wm=[IDBCursor.prototype.advance,IDBCursor.prototype.continue,IDBCursor.prototype.continuePrimaryKey])}var pa=new WeakMap,ua=new WeakMap,os=new WeakMap;function E0(e){let t=new Promise((r,n)=>{let o=()=>{e.removeEventListener("success",s),e.removeEventListener("error",i)},s=()=>{r(Ut(e.result)),o()},i=()=>{n(e.error),o()};e.addEventListener("success",s),e.addEventListener("error",i)});return os.set(t,e),t}function T0(e){if(pa.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)});pa.set(e,t)}var da={get(e,t,r){if(e instanceof IDBTransaction){if(t==="done")return pa.get(e);if(t==="store")return r.objectStoreNames[1]?void 0:r.objectStore(r.objectStoreNames[0])}return Ut(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 Gm(e){da=e(da)}function L0(e){return k0().includes(e)?function(...t){return e.apply(ma(this),t),Ut(this.request)}:function(...t){return Ut(e.apply(ma(this),t))}}function P0(e){return typeof e=="function"?L0(e):(e instanceof IDBTransaction&&T0(e),la(e,v0())?new Proxy(e,da):e)}function Ut(e){if(e instanceof IDBRequest)return E0(e);if(ua.has(e))return ua.get(e);let t=P0(e);return t!==e&&(ua.set(e,t),os.set(t,e)),t}var ma=e=>os.get(e);function Km(e,t,{blocked:r,upgrade:n,blocking:o,terminated:s}={}){let i=indexedDB.open(e,t),a=Ut(i);return n&&i.addEventListener("upgradeneeded",c=>{n(Ut(i.result),c.oldVersion,c.newVersion,Ut(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 Xm(e,{blocked:t}={}){let r=indexedDB.deleteDatabase(e);return t&&r.addEventListener("blocked",n=>t(n.oldVersion,n)),Ut(r).then(()=>{})}var S0=["get","getKey","getAll","getAllKeys","count"],_0=["put","add","delete","clear"],fa=new Map;function Ym(e,t){if(!(e instanceof IDBDatabase&&!(t in e)&&typeof t=="string"))return;if(fa.get(t))return fa.get(t);let r=t.replace(/FromIndex$/,""),n=t!==r,o=_0.includes(r);if(!(r in(n?IDBIndex:IDBObjectStore).prototype)||!(o||S0.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 fa.set(t,s),s}Gm(e=>({...e,get:(t,r,n)=>Ym(t,r)||e.get(t,r,n),has:(t,r)=>!!Ym(t,r)||e.has(t,r)}));var R0=["continue","continuePrimaryKey","advance"],Vm={},ga=new WeakMap,Qm=new WeakMap,C0={get(e,t){if(!R0.includes(t))return e[t];let r=Vm[t];return r||(r=Vm[t]=function(...n){ga.set(this,Qm.get(this)[t](...n))}),r}};async function*M0(...e){let t=this;if(t instanceof IDBCursor||(t=await t.openCursor(...e)),!t)return;t=t;let r=new Proxy(t,C0);for(Qm.set(r,t),os.set(r,ma(t));t;)yield r,t=await(ga.get(r)||t.continue()),ga.delete(r)}function Jm(e,t){return t===Symbol.asyncIterator&&la(e,[IDBIndex,IDBObjectStore,IDBCursor])||t==="iterate"&&la(e,[IDBIndex,IDBObjectStore])}Gm(e=>({...e,get(t,r,n){return Jm(t,r)?M0:e.get(t,r,n)},has(t,r){return Jm(t,r)||e.has(t,r)}}));var Zm=jr("scrapbox-storage:db.ts"),ef,ss=async()=>(ef??=await Km("scrapbox-storage",1,{upgrade(e){Zm.time("update DB");for(let t of e.objectStoreNames)e.deleteObjectStore(t);e.createObjectStore("links",{keyPath:"project"}),e.createObjectStore("status",{keyPath:"project"}),Zm.timeEnd("update DB")}}),ef),tf=async e=>(await ss()).put("links",e);var is=new Map,rf=e=>{let t={type:"update",projects:e};nf(t);let r=new BroadcastChannel(of);r.postMessage(t),r.close()},nf=e=>{for(let t of new Set(e.projects.flatMap(r=>[...is.get(r)??[]])))t?.(e)},of="scrapbox-storage-notify",I0=new BroadcastChannel(of);I0.addEventListener("message",e=>nf(e.data));var wn=(e,t)=>{for(let r of e){let n=is.get(r)??new Set;n.add(t),is.set(r,n)}return()=>{for(let r of e)is.get(r)?.delete?.(t)}};var St=jr("scrapbox-storage:mod.ts"),as=async(e,t)=>{let r=await ss(),n=[],o=[];try{{St.debug("check updates of links...");let a=r.transaction("status","readwrite");await Promise.all(e.map(async c=>{let l=await a.store.get(c);if(l?.isValid===!1)return;let p=l?.checked??0,u=new Date().getTime()/1e3;if(p+t>u||l?.updating&&p+600>u)return;let d={project:c,id:l?.id,isValid:!0,checked:p,updated:l?.updated??0,updating:!0};n.push(d),a.store.put(d)})),await a.done,St.debug(checked. ${n.length} projects maybe need upgrade.)}if(n.length===0)return[];let s=[],i=[];for await(let a of zm(n)){if(!a.ok)switch(o.push({project:a.value.project,isValid:!1}),a.value.name){case"NotFoundError":St.warn("${a.value.project}" is not found.);continue;case"NotMemberError":St.warn(You are not a member of "${a.value.project}".);continue;case"NotLoggedInError":St.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)St.debug(no updates in "${a.value.name}");else{let c=await Hm(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),St.time(write data of "${a.value.name}"),await tf(l),s.push(a.value.name),St.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&&rf(s),i}finally{let s=r.transaction("status","readwrite"),i=s.store;await Promise.all(o.map(a=>i.put(a))),await s.done}},cs=async e=>{let t=[],r=new Date;{let o=(await ss()).transaction("links","readonly");await Promise.all(e.map(async s=>{let i=await o.store.get(s);t.push(i??{project:s,links:[]})})),await o.done}let n=new Date().getTime()-r.getTime();return St.debug(Read links of ${e.length} projects in ${n}ms),t};Xm("userscript-links").catch(e=>console.error(e));var ha=es("scrapbox-select-suggestion:useSource.ts"),sf=e=>{let[t,r]=q([]),n=N(o=>{let s=new Date,i=new Map;for(let{project:l,links:p}of o)for(let u of p){let{title:d,updated:m,image:g}=ns(u),h=ne(d),x=i.get(h);i.set(h,{title:x?.title??d,updated:Math.max(x?.updated??0,m),metadata:[...x?.metadata??[],{project:l,image:g}]})}let a=[...i.entries()].map(([l,p])=>({titleLc:l,...p})),c=new Date().getTime()-s.getTime();ha.debug(Compiled ${a.length} source in ${c}ms),r(a)},[]);return H(()=>{let o=!1,s=async()=>{let u=await cs([...e]);o||n(u)};s();let i,a=new Set,c=wn([...e],({projects:u})=>{for(let d of u)a.add(d);clearTimeout(i),i=setTimeout(()=>{ha.debug(Detect ${a.size} projects' update),s(),a.clear()},1e4)}),l=async()=>{let u=await as([...e],600);u.length===0||o||(ha.debug(Detect ${u.length} projects' update),s())};l();let p=setInterval(l,600*1e3);return()=>{o=!0,clearTimeout(i),clearInterval(p),c()}},[e]),t};var af=e=>{let t=A(()=>yn(e.style,import.meta.url),[e.style]);return f(V,null,t!==""&&(t instanceof URL?f("link",{rel:"stylesheet",href:t.href}):f("style",null,t)))};var cf=()=>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*lf(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 pf=(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(j0(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=N0(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"}},N0=(e,t)=>{for(let{whole:r,start:n}of lf(e))if(!(t<=n||n+[...r].length<=t))return{whole:r,start:n}},j0=(e,t)=>!(t.trim()===""||t.includes(
)||"codeBlock"in e||"title"in e||"tableBlock"in e&&e.tableBlock.start);var uf=()=>{let[e,t]=Xr(pf,{type:"ready"}),r=D0(),n=A(()=>{let c;return l=>{c!==void 0&&clearTimeout(c),c=setTimeout(()=>{let{cursor:p,selection:u}=qe();t({type:l,lines:r(),range:u.getRange({normalizeOrder:!0}),position:p.getPosition()})},l==="cursor:changed"?100:void 0)}},[]);H(()=>{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)}},[]),H(()=>{let c=()=>{n("selection:changed")},l=co();return l.addChangeListener(c),()=>l.removeChangeListener(c)},[]),H(()=>{if(e.context!=="input")return;let c=()=>{n("cursor:changed")},l=ft();return l.addChangeListener(c),()=>l.removeChangeListener(c)},[e.context]);let o=N(c=>t({type:c?"enable":"disable"}),[]),s=N(()=>t({type:"cancel"}),[]),i=N(c=>{t({type:"lock"});let l=c();if(l instanceof Promise)return l.then(()=>{t({type:"unlock"})});t({type:"unlock"})},[]),a=N(async c=>{let l=r();if(!l)return;t({type:"lock"});let{cursor:p,selection:u}=qe(),d=p.getPosition().line,m=l[d].text,[g,h]=c(m,p.getPosition());u.setRange({start:{line:d,char:0},end:{line:d,char:[...m].length}}),await Re(g),p.setPosition(h),p.focus(),t({type:"unlock"}),t({type:"cancel"})},[]);return{state:e,setEnable:o,cancel:s,freezeUntil:i,confirmAfter:a}},D0=()=>{let e=se(scrapbox.Page.lines),t=se(!1);return H(()=>{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)}},[]),N(()=>(t.current&&(e.current=scrapbox.Page.lines,t.current=!1),e.current??void 0),[])};var df={selectNext:()=>!1,selectPrev:()=>!1,selectFirst:()=>!1,selectLast:()=>!1,confirm:()=>!1,cancel:()=>!1},mf=e=>{let{state:t,setEnable:r,...n}=uf(),o=N(()=>r(!0),[]),s=N(()=>r(!1),[]),i=se({...df,enable:o,disable:s}),[a,c]=q();H(()=>{Object.assign(i.current,t.type!=="completion"||!a?df:a)},[t.type,a]);let{callback:l,style:p,...u}=e;H(()=>l(i.current),[l]);let d=sf(u.projects);return f(V,null,f(cf,null),f(af,{style:p}),t.type==="completion"&&f(Am,{callback:c,source:d,...t,...n,...u}))};var ff=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 Nm(o),ca(o),new Promise(l=>_e(f(mf,{limit:n,projects:c,mark:s,style:i,callback:l,enableSelfProjectOnStart:a}),r))};var rt=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*gf(e,t){for(let[r,n]of t.entries()){let o=e.get(r);if(o&&rt(o.blocks)===rt(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 O0=e=>({type:"title",text:e.rows[0].text}),$0=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,p,u,d;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 m of n){let g=m.exec(o);if(g===null)continue;let h=o.substring(0,g.index),x=o.substring(g.index+((p=(l=g[0])===null||l===void 0?void 0:l.length)!==null&&p!==void 0?p:0)),w=e((u=g[0])!==null&&u!==void 0?u:"",s);return[...Ft(h,s),...w,...Ft(x,s)]}return(d=i?.())!==null&&d!==void 0?d:[]},Oe=e=>[{type:"plain",raw:e,text:e}],A0=Ne(Oe,{parseOnNested:!0,parseOnQuoted:!0,patterns:[/^()(.*)()$/]}),U0=/^>.*$/,F0=(e,t)=>t.context==="table"?Oe(e,t):[{type:"quote",raw:e,nodes:Ft(e.substring(1),{...t,quoted:!0})}],B0=Ne(F0,{parseOnNested:!1,parseOnQuoted:!1,patterns:[U0]}),H0=/^\? .+$/,z0=(e,t)=>t.context==="table"?Oe(e,t):[{type:"helpfeel",raw:e,text:e.substring(2)}],q0=Ne(z0,{parseOnNested:!1,parseOnQuoted:!1,patterns:[H0]}),W0=/\[\[https?:\/\/[^\s\]]+\.(?:png|jpe?g|gif|svg)\]\]/i,G0=/\[\[https?:\/\/(?:[0-9a-z-]+\.)?gyazo\.com\/[0-9a-f]{32}\]\]/,K0=(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}]},X0=Ne(K0,{parseOnNested:!1,parseOnQuoted:!0,patterns:[W0,G0]}),Y0=/\[[^[\]]*\.icon(?:\*[1-9]\d*)?\]/;function hf(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 V0=hf("icon"),Q0=Ne(V0,{parseOnNested:!0,parseOnQuoted:!0,patterns:[Y0]}),J0=/\[\[[^[\]]*\.icon(?:\*\d+)?\]\]/,Z0=hf("strongIcon"),eE=Ne(Z0,{parseOnNested:!1,parseOnQuoted:!0,patterns:[J0]}),tE=/\[\[(?:[^[]|\[[^[]).*?\]*\]\]/,rE=(e,t)=>t.context==="table"?Oe(e,t):[{type:"strong",raw:e,nodes:Ft(e.substring(2,e.length-2),{...t,nested:!0})}],nE=Ne(rE,{parseOnNested:!1,parseOnQuoted:!0,patterns:[tE]}),oE=/\[\$ .+? \]/,sE=/\[\$ [^\]]+\]/,iE=(e,t)=>t.context==="table"?Oe(e,t):[{type:"formula",raw:e,formula:e.substring(3,e.length-(e.endsWith(" ]")?2:1))}],aE=Ne(iE,{parseOnNested:!1,parseOnQuoted:!0,patterns:[oE,sE]}),cE=/\[[!"#%&'()*+,\-./{|}<>_~]+ (?:\[[^[\]]+\]|[^\]])+\]/,lE=(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:Ft(o,{...t,nested:!0})}]},pE=Ne(lE,{parseOnNested:!1,parseOnQuoted:!0,patterns:[cE]}),uE=/.*?/,dE=(e,t)=>t.context==="table"?Oe(e,t):[{type:"code",raw:e,text:e.substring(1,e.length-1)}],mE=Ne(dE,{parseOnNested:!1,parseOnQuoted:!0,patterns:[uE]}),fE=/^[$%] .+$/,gE=(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}]},hE=Ne(gE,{parseOnNested:!1,parseOnQuoted:!1,patterns:[fE]}),xE=/\[\s+\]/,bE=(e,t)=>t.context==="table"?Oe(e,t):[{type:"blank",raw:e,text:e.substring(1,e.length-1)}],yE=Ne(bE,{parseOnNested:!1,parseOnQuoted:!0,patterns:[xE]}),wE=/\[https?:\/\/[^\s\]]+\.(?:png|jpe?g|gif|svg)(?:\?[^\]\s]+)?(?:\s+https?:\/\/[^\s\]]+)?\]/i,vE=/\[https?:\/\/[^\s\]]+\s+https?:\/\/[^\s\]]+\.(?:png|jpe?g|gif|svg)(?:\?[^\]\s]+)?\]/i,kE=/\[https?:\/\/(?:[0-9a-z-]+\.)?gyazo\.com\/[0-9a-f]{32}(?:\/raw)?(?:\s+https?:\/\/[^\s\]]+)?\]/,EE=/\[https?:\/\/[^\s\]]+\s+https?:\/\/(?:[0-9a-z-]+\.)?gyazo\.com\/[0-9a-f]{32}(?:\/raw)?\]/,TE=e=>/^https?:\/\/[^\s\]]+\.(png|jpe?g|gif|svg)(\?[^\]\s]+)?$/i.test(e)||LE(e),LE=e=>/^https?:\/\/([0-9a-z-]\.)?gyazo\.com\/[0-9a-f]{32}(\/raw)?$/.test(e),PE=(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]=TE(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}]},SE=Ne(PE,{parseOnNested:!0,parseOnQuoted:!0,patterns:[wE,vE,kE,EE]}),_E=/\[https?:\/\/[^\s\]]+\s+[^\]]*[^\s]\]/,RE=/\[[^[\]]*[^\s]\s+https?:\/\/[^\s\]]+\]/,CE=/\[https?:\/\/[^\s\]]+\]/,ME=/https?:\/\/[^\s]+/,IE=(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()}]},NE=Ne(IE,{parseOnNested:!0,parseOnQuoted:!0,patterns:[_E,RE,CE,ME]}),xf=/\[([^\]]*[^\s])\s+([NS]\d+(?:\.\d+)?,[EW]\d+(?:\.\d+)?(?:,Z\d+)?)\]/,bf=/\[([NS]\d+(?:\.\d+)?,[EW]\d+(?:\.\d+)?(?:,Z\d+)?)(?:\s+([^\]]*[^\s]))?\]/,jE=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}},DE=(e,t)=>{var r;if(t.context==="table")return Oe(e,t);let n=(r=e.match(xf))!==null&&r!==void 0?r:e.match(bf);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}=jE(s),p=i!==""?https://www.google.com/maps/place/${encodeURIComponent(i)}/@${a},${c},${l}z:https://www.google.com/maps/@${a},${c},${l}z;return[{type:"googleMap",raw:e,latitude:a,longitude:c,zoom:l,place:i,url:p}]},OE=Ne(DE,{parseOnNested:!1,parseOnQuoted:!0,patterns:[xf,bf]}),$E=/\[\/?[^[\]]+\]/,AE=e=>{let t=e.substring(1,e.length-1);return[{type:"link",raw:e,pathType:t.startsWith("/")?"root":"relative",href:t,content:""}]},UE=Ne(AE,{parseOnNested:!0,parseOnQuoted:!0,patterns:[$E]}),FE=/(?:^|\s)#\S+/,BE=(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)}]},HE=Ne(BE,{parseOnNested:!0,parseOnQuoted:!0,patterns:[FE]}),zE=/^[0-9]+\. .*$/,qE=(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:Ft(s,{...t,nested:!0})}]},WE=Ne(qE,{parseOnNested:!1,parseOnQuoted:!1,patterns:[zE]}),GE=(e,t,r)=>{var n;return e===""?[]:(n=r?.())!==null&&n!==void 0?n:[]},KE=(...e)=>(t,r)=>e.reduceRight((n,o)=>()=>o(t,r,n),()=>A0(t,r))(),Ft=KE(GE,B0,q0,mE,hE,aE,yE,pE,X0,eE,nE,SE,NE,Q0,OE,UE,HE,WE),XE=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=>Ft(a,{nested:!1,quoted:!1,context:"table"})))}},YE=e=>{let{indent:t,text:r}=e.rows[0];return{indent:t,type:"line",nodes:Ft(r.substring(t),{nested:!1,quoted:!1,context:"line"})}},xa=e=>{switch(e.type){case"title":return O0(e);case"codeBlock":return $0(e);case"table":return XE(e);case"line":return YE(e)}},ba=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}}),VE=(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)},yf=(e,t)=>{let r=e[e.length-1];return r!==void 0&&VE(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)},ya=(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(yf,[])]}return e.reduce(yf,[])},ls=(e,t)=>{var r;let n=ba(e);return ya(n,{hasTitle:(r=t?.hasTitle)!==null&&r!==void 0?r:!0}).map(xa)};var wf=e=>{let t=new Map;if(e.length===0)return t;let r=ya(ba(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=xa(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 vf=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 wa=class{constructor(t,r){this._filename=t;this._preview=vf(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||rt(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=Kt(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=wf(Ae());for(let{changed:i,filename:a}of gf(t,s)){if(!i)continue;let c=s.get(a),l=t.get(a);if(!l){if(!c)continue;let p=e.find(({when:u})=>u.test(a))?.preview;if(!p)continue;l=new wa(a,p),t.set(a,l)}l.update(c).then(p=>{switch(p.type){case"resolve":p.value&&t.delete(a);return;case"reject":throw p.value;case"cancel":return}})}},n=()=>{if(scrapbox.Layout!=="page"){scrapbox.off("lines:changed",r);return}r(),scrapbox.on("lines:changed",r)};n(),scrapbox.on("page:changed",n);let o=document.createElement("style");return o.textContent=".scrap-run{display:block;width:95%}",document.head.append(o),()=>{scrapbox.off("page:changed",n),o.remove()}};var vn=e=>{let t=new FileReader,r=new Promise(n=>t.onload=()=>n(t.result));return t.readAsDataURL(e),r};var Ef=async e=>{if(!("after"in e))return;let t=rt(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 vn(new Blob([t],{type:"image/svg+xml"})),s=document.createElement("img");s.src=o,e.render(s)};var Ea={};zr(Ea,{default:()=>Rf});var Tf=globalThis||(typeof window!="undefined"?window:self),PT=Object.create,va=Object.defineProperty,ST=Object.getOwnPropertyDescriptor,_T=Object.getOwnPropertyNames,RT=Object.getPrototypeOf,CT=Object.prototype.hasOwnProperty,MT=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),IT=(e,t)=>{for(var r in t)va(e,r,{get:t[r],enumerable:!0})},ka=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of _T(t))!CT.call(e,o)&&o!==r&&va(e,o,{get:()=>t[o],enumerable:!(n=ST(t,o))||n.enumerable});return e},NT=(e,t,r)=>(ka(e,t,"default"),r&&ka(r,t,"default")),Lf=(e,t,r)=>(r=e!=null?PT(RT(e)):{},ka(t||!e||!e.__esModule?va(r,"default",{value:e,enumerable:!0}):r,e)),Pf=MT((e,t)=>{var r;typeof window<"u"?r=window:typeof Tf<"u"?r=Tf:typeof self<"u"?r=self:r={},t.exports=r}),Sf={};IT(Sf,{default:()=>Rf});var jT=Lf(Pf());NT(Sf,Lf(Pf()));var{default:_f,...DT}=jT,Rf=_f!==void 0?_f:DT;var Pa={};zr(Pa,{default:()=>jf});var OT=Object.create,Ta=Object.defineProperty,$T=Object.getOwnPropertyDescriptor,AT=Object.getOwnPropertyNames,UT=Object.getPrototypeOf,FT=Object.prototype.hasOwnProperty,BT=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),HT=(e,t)=>{for(var r in t)Ta(e,r,{get:t[r],enumerable:!0})},La=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of AT(t))!FT.call(e,o)&&o!==r&&Ta(e,o,{get:()=>t[o],enumerable:!(n=$T(t,o))||n.enumerable});return e},zT=(e,t,r)=>(La(e,t,"default"),r&&La(r,t,"default")),Cf=(e,t,r)=>(r=e!=null?OT(UT(e)):{},La(t||!e||!e.__esModule?Ta(r,"default",{value:e,enumerable:!0}):r,e)),Mf=BT((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)}}),If={};HT(If,{default:()=>jf});var qT=Cf(Mf());zT(If,Cf(Mf()));var{default:Nf,...WT}=qT,jf=Nf!==void 0?Nf:WT;var Ra={};zr(Ra,{default:()=>Uf});var GT=Object.create,Sa=Object.defineProperty,KT=Object.getOwnPropertyDescriptor,XT=Object.getOwnPropertyNames,YT=Object.getPrototypeOf,VT=Object.prototype.hasOwnProperty,QT=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),JT=(e,t)=>{for(var r in t)Sa(e,r,{get:t[r],enumerable:!0})},_a=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of XT(t))!VT.call(e,o)&&o!==r&&Sa(e,o,{get:()=>t[o],enumerable:!(n=KT(t,o))||n.enumerable});return e},ZT=(e,t,r)=>(_a(e,t,"default"),r&&_a(r,t,"default")),Df=(e,t,r)=>(r=e!=null?GT(YT(e)):{},_a(t||!e||!e.__esModule?Sa(r,"default",{value:e,enumerable:!0}):r,e)),Of=QT((e,t)=>{var r=function(o){return o.replace(/^\s+|\s+$/g,"")},n=function(o){return Object.prototype.toString.call(o)==="[object Array]"};t.exports=function(o){if(!o)return{};for(var s={},i=r(o).split( ),a=0;a<i.length;a++){var c=i[a],l=c.indexOf(":"),p=r(c.slice(0,l)).toLowerCase(),u=r(c.slice(l+1));typeof s[p]>"u"?s[p]=u:n(s[p])?s[p].push(u):s[p]=[s[p],u]}return s}}),$f={};JT($f,{default:()=>Uf});var eL=Df(Of());ZT($f,Df(Of()));var{default:Af,...tL}=eL,Uf=Af!==void 0?Af:tL;var Ia={};zr(Ia,{default:()=>qf});var rL=Object.create,Ca=Object.defineProperty,nL=Object.getOwnPropertyDescriptor,oL=Object.getOwnPropertyNames,sL=Object.getPrototypeOf,iL=Object.prototype.hasOwnProperty,aL=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),cL=(e,t)=>{for(var r in t)Ca(e,r,{get:t[r],enumerable:!0})},Ma=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of oL(t))!iL.call(e,o)&&o!==r&&Ca(e,o,{get:()=>t[o],enumerable:!(n=nL(t,o))||n.enumerable});return e},lL=(e,t,r)=>(Ma(e,t,"default"),r&&Ma(r,t,"default")),Ff=(e,t,r)=>(r=e!=null?rL(sL(e)):{},Ma(t||!e||!e.__esModule?Ca(r,"default",{value:e,enumerable:!0}):r,e)),Bf=aL((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}}),Hf={};cL(Hf,{default:()=>qf});var pL=Ff(Bf());lL(Hf,Ff(Bf()));var{default:zf,...uL}=pL,qf=zf!==void 0?zf:uL;var Dr=e=>{let t=n=>typeof n.default<"u"?n.default:n,r=n=>Object.assign({},n);switch(e){case"global/window":return t(Ea);case"is-function":return t(Pa);case"parse-headers":return t(Ra);case"xtend":return t(Ia);default:throw new Error('module "'+e+'" not found')}},dL=Object.create,Na=Object.defineProperty,mL=Object.getOwnPropertyDescriptor,fL=Object.getOwnPropertyNames,gL=Object.getPrototypeOf,hL=Object.prototype.hasOwnProperty,ps=(e=>typeof Dr<"u"?Dr:typeof Proxy<"u"?new Proxy(e,{get:(t,r)=>(typeof Dr<"u"?Dr:t)[r]}):e)(function(e){if(typeof Dr<"u")return Dr.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')}),xL=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),bL=(e,t)=>{for(var r in t)Na(e,r,{get:t[r],enumerable:!0})},ja=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of fL(t))!hL.call(e,o)&&o!==r&&Na(e,o,{get:()=>t[o],enumerable:!(n=mL(t,o))||n.enumerable});return e},yL=(e,t,r)=>(ja(e,t,"default"),r&&ja(r,t,"default")),Wf=(e,t,r)=>(r=e!=null?dL(gL(e)):{},ja(t||!e||!e.__esModule?Na(r,"default",{value:e,enumerable:!0}):r,e)),Gf=xL((e,t)=>{"use strict";var r=ps("global/window"),n=ps("is-function"),o=ps("parse-headers"),s=ps("xtend");t.exports=l,t.exports.default=l,l.XMLHttpRequest=r.XMLHttpRequest||d,l.XDomainRequest="withCredentials"in new l.XMLHttpRequest?l.XMLHttpRequest:r.XDomainRequest,i(["get","put","post","patch","head","delete"],function(m){l[m==="delete"?"del":m]=function(g,h,x){return h=c(g,h,x),h.method=m.toUpperCase(),p(h)}});function i(m,g){for(var h=0;h<m.length;h++)g(m[h])}function a(m){for(var g in m)if(m.hasOwnProperty(g))return!1;return!0}function c(m,g,h){var x=m;return n(g)?(h=g,typeof m=="string"&&(x={uri:m})):x=s(g,{uri:m}),x.callback=h,x}function l(m,g,h){return g=c(m,g,h),p(g)}function p(m){if(typeof m.callback>"u")throw new Error("callback argument missing");var g=!1,h=function($,U,D){g||(g=!0,m.callback($,U,D))};function x(){y.readyState===4&&setTimeout(_,0)}function w(){var $=void 0;if(y.response?$=y.response:$=y.responseText||u(y),S)try{$=JSON.parse($)}catch{}return $}function P($){return clearTimeout(M),$ instanceof Error||($=new Error(""+($||"Unknown XMLHttpRequest Error"))),$.statusCode=0,h($,O)}function _(){if(!E){var $;clearTimeout(M),m.useXDR&&y.status===void 0?$=200:$=y.status===1223?204:y.status;var U=O,D=null;return $!==0?(U={body:w(),statusCode:$,method:b,headers:{},url:I,rawRequest:y},y.getAllResponseHeaders&&(U.headers=o(y.getAllResponseHeaders()))):D=new Error("Internal XMLHttpRequest Error"),h(D,U,U.body)}}var y=m.xhr||null;y||(m.cors||m.useXDR?y=new l.XDomainRequest:y=new l.XMLHttpRequest);var L,E,I=y.url=m.uri||m.url,b=y.method=m.method||"GET",k=m.body||m.data,R=y.headers=m.headers||{},T=!!m.sync,S=!1,M,O={body:void 0,headers:{},statusCode:0,method:b,url:I,rawRequest:y};if("json"in m&&m.json!==!1&&(S=!0,R.accept||R.Accept||(R.Accept="application/json"),b!=="GET"&&b!=="HEAD"&&(R["content-type"]||R["Content-Type"]||(R["Content-Type"]="application/json"),k=JSON.stringify(m.json===!0?k:m.json))),y.onreadystatechange=x,y.onload=_,y.onerror=P,y.onprogress=function(){},y.onabort=function(){E=!0},y.ontimeout=P,y.open(b,I,!T,m.username,m.password),T||(y.withCredentials=!!m.withCredentials),!T&&m.timeout>0&&(M=setTimeout(function(){if(!E){E=!0,y.abort("timeout");var $=new Error("XMLHttpRequest timeout");$.code="ETIMEDOUT",P($)}},m.timeout)),y.setRequestHeader)for(L in R)R.hasOwnProperty(L)&&y.setRequestHeader(L,R[L]);else if(m.headers&&!a(m.headers))throw new Error("Headers cannot be set on an XDomainRequest object");return"responseType"in m&&(y.responseType=m.responseType),"beforeSend"in m&&typeof m.beforeSend=="function"&&m.beforeSend(y),y.send(k||null),y}function u(m){try{if(m.responseType==="document")return m.responseXML;var g=m.responseXML&&m.responseXML.documentElement.nodeName==="parsererror";if(m.responseType===""&&!g)return m.responseXML}catch{}return null}function d(){}}),Kf={};bL(Kf,{default:()=>us});var wL=Wf(Gf());yL(Kf,Wf(Gf()));var{default:Xf,...vL}=wL,us=Xf!==void 0?Xf:vL;var ds=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},See=function(){function e(r){this.value=r}function t(r){var n,o;function s(c,l){return new Promise(function(p,u){var d={key:c,arg:l,resolve:p,reject:u,next:null};o?o=o.next=d:(n=o=d,i(c,l))})}function i(c,l){try{var p=r[c](l),u=p.value;u instanceof e?Promise.resolve(u.value).then(function(d){i("next",d)},function(d){i("throw",d)}):a(p.done?"return":"normal",p.value)}catch(d){a("throw",d)}}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)}}}(),Yf=function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")},Vf=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}}(),Da=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)},kn="";function kL(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 EL=
This page requires a browser that supports WebGL.<br/>
,TL=
It does not appear your computer can support WebGL.<br/>
,LL=1,PL=2;function SL(e,t,r){function n(i){var a=e.parentNode;a&&(a.innerHTML=kL(i))}function o(i,a){typeof r=="function"?r(i):n(a)}if(!window.WebGLRenderingContext)return o(LL,EL),null;var s=_L(e,t);return s?s.getExtension("OES_standard_derivatives"):o(PL,TL),s}function _L(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 Or(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:(kn=o.getShaderInfoLog(s),console.error("*** Error compiling shader "+s+":"+kn),e.trigger("error",{shader:s,source:t,type:r,error:kn,offset:n||0}),o.deleteShader(s),null)}function Qf(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:(kn=o.getProgramInfoLog(s),console.log("Error in program linking:"+kn),o.deleteProgram(s),null)}function Oa(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(ds(o[0])==="object")for(s=0;s<o.length;s++)r.push.apply(r,Da(Oa(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":ds(o))==="object"&&r.push.apply(r,Da(Oa(o,n)))}return r}function RL(e){var t=e.getBoundingClientRect();return t.top+t.height>0&&t.top<(window.innerHeight||document.documentElement.clientHeight)}function Jf(e){return(e&e-1)==0}function CL(){return/^((?!chrome|android).)*safari/i.test(navigator.userAgent)}function ML(e,t){return e&&t?e.toString()!==t.toString():!1}function IL(e){var t=new XMLHttpRequest;return t.open("GET",e,!1),t.send(),t.status==200?t.responseText:""}function Zf(e){var t=new Set;return Object.assign(e,{on:function(r,n){var o={};o[r]=n,t.add(o)},off:function(r,n){if(n){var o={};o[r]=n,t.delete(o)}else{var s=!0,i=!1,a=void 0;try{for(var c=t[Symbol.iterator](),l;!(s=(l=c.next()).done);s=!0){var p=l.value,u=!0,d=!1,m=void 0;try{for(var g=Object.keys(p)[Symbol.iterator](),h;!(u=(h=g.next()).done);u=!0){var x=h.value;if(x===r){t.delete(p);return}}}catch(w){d=!0,m=w}finally{try{!u&&g.return&&g.return()}finally{if(d)throw m}}}}catch(w){i=!0,a=w}finally{try{!s&&c.return&&c.return()}finally{if(i)throw a}}}},listSubscriptions:function(){var r=!0,n=!1,o=void 0;try{for(var s=t[Symbol.iterator](),i;!(r=(i=s.next()).done);r=!0){var a=i.value;console.log(a)}}catch(c){n=!0,o=c}finally{try{!r&&s.return&&s.return()}finally{if(n)throw o}}},subscribe:function(r){t.add(r)},unsubscribe:function(r){t.delete(r)},unsubscribeAll:function(){t.clear()},trigger:function(r){for(var n=arguments.length,o=Array(n>1?n-1:0),s=1;s<n;s++)o[s-1]=arguments[s];var i=!0,a=!1,c=void 0;try{for(var l=t[Symbol.iterator](),p;!(i=(p=l.next()).done);i=!0){var u=p.value;typeof u[r]=="function"&&u[r].apply(u,Da(o))}}catch(d){a=!0,c=d}finally{try{!i&&l.return&&l.return()}finally{if(a)throw c}}}})}var $a=function(){function e(t,r){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};Yf(this,e),Zf(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 Vf(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)},CL()&&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=Jf(this.width)&&Jf(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}();$a.getMaxTextureSize=function(e){return e.getParameter(e.MAX_TEXTURE_SIZE)};$a.activeUnit=-1;var eg=function(){function e(t,r,n){var o=this;Yf(this,e),Zf(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=SL(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");us.get(i,function(h,x,w){o.load(w,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");us.get(a,function(h,x,w){o.load(o.fragmentString,w)})}if(this.load(),!this.program)return;var c=s.getAttribLocation(this.program,"a_texcoord");this.vbo.texCoords=s.createBuffer(),this.gl.bindBuffer(s.ARRAY_BUFFER,this.vbo.texCoords),this.gl.bufferData(s.ARRAY_BUFFER,new Float32Array([0,0,1,0,0,1,0,1,1,0,1,1]),s.STATIC_DRAW),this.gl.enableVertexAttribArray(c),this.gl.vertexAttribPointer(c,2,s.FLOAT,!1,0,0);var l=s.getAttribLocation(this.program,"a_position");if(this.vbo.vertices=s.createBuffer(),this.gl.bindBuffer(s.ARRAY_BUFFER,this.vbo.vertices),this.gl.bufferData(s.ARRAY_BUFFER,new Float32Array([-1,-1,1,-1,-1,1,-1,1,1,-1,1,1]),s.STATIC_DRAW),this.gl.enableVertexAttribArray(l),this.gl.vertexAttribPointer(l,2,s.FLOAT,!1,0,0),t.hasAttribute("data-textures")){var p=t.getAttribute("data-textures").split(",");for(var u in p)this.setUniform("u_tex"+u,p[u])}var d={x:0,y:0};document.addEventListener("mousemove",function(h){d.x=h.clientX||h.pageX,d.y=h.clientY||h.pageY},!1);var m=this;function g(){m.nMouse>1&&m.setMouse(d),m.resize()&&(m.forceRender=!0),m.render(),m.animationFrameRequest=window.requestAnimationFrame(g)}return this.setMouse({x:0,y:0}),g(),this}return Vf(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 w=h.trim();if(w.startsWith('#include "lygia')){var P=w.substring(15).replace(/\'|\"|\;|\s/g,"");if(P.endsWith("glsl")){if(n.deps[P]===void 0){var _="https://lygia.xyz"+P;n.deps[P]=IL(_)}n.fragmentString+=n.deps[P]+
}}else n.fragmentString+=h+
}),this.animated=!1,this.nDelta=(this.fragmentString.match(/u_delta/g)||[]).length,this.nTime=(this.fragmentString.match(/u_time/g)||[]).length,this.nDate=(this.fragmentString.match(/u_date/g)||[]).length,this.nMouse=(this.fragmentString.match(/u_mouse/g)||[]).length,this.animated=this.nDate>1||this.nTime>1||this.nMouse>1;var s=this.fragmentString.search(/sampler2D/g);if(s)for(var i=this.fragmentString.split(
),a=0;a<i.length;a++){var c=i[a].match(/uniform\s*sampler2D\s*([\w]*);\s*\/\/\s*([\w|\:\/\/|\.|\-|\_]*)/i);if(c){var l=c[2].split(".").pop().toLowerCase();c[1]&&c[2]&&(l==="jpg"||l==="jpeg"||l==="png"||l==="ogv"||l==="webm"||l==="mp4")&&this.setUniform(c[1],c[2])}var p=i[a].match(/\s*void\s*main\s*/g);if(p)break}var u=Or(this,this.vertexString,this.gl.VERTEX_SHADER),d=Or(this,this.fragmentString,this.gl.FRAGMENT_SHADER);d?this.isValid=!0:(d=Or(this,void main(){
gl_FragColor = vec4(1.0);
},this.gl.FRAGMENT_SHADER),this.isValid=!1);var m=Qf(this,[u,d]);this.gl.useProgram(m),this.gl.deleteShader(u),this.gl.deleteShader(d),this.program=m,this.change=!0,this.BUFFER_COUNT=0;var g=this.getBuffers(this.fragmentString);Object.keys(g).length&&this.loadPrograms(g),this.buffers=g,this.texureIndex=this.BUFFER_COUNT,this.trigger("load",{}),this.forceRender=!0,this.render()}},{key:"test",value:function(t,r,n){var o=this.vertexString,s=this.fragmentString,i=this.paused,a=this.gl.getExtension("EXT_disjoint_timer_query"),c=a.createQueryEXT(),l=this.isValid;(r||n)&&(this.load(r,n),l=this.isValid,this.forceRender=!0,this.render()),this.paused=!0,a.beginQueryEXT(a.TIME_ELAPSED_EXT,c),this.forceRender=!0,this.render(),a.endQueryEXT(a.TIME_ELAPSED_EXT);var p=this;function u(){p.paused=i,(r||n)&&p.load(s,o)}function d(){p.forceRender=!0,p.render();var m=a.getQueryObjectEXT(c,a.QUERY_RESULT_AVAILABLE_EXT),g=p.gl.getParameter(a.GPU_DISJOINT_EXT);if(m&&!g){var h={wasValid:l,frag:r||p.fragmentString,vert:n||p.vertexString,timeElapsedMs:a.getQueryObjectEXT(c,a.QUERY_RESULT_EXT)/1e6};u(),t(h)}else window.requestAnimationFrame(d)}d()}},{key:"loadTexture",value:function(t,r,n){var o=this;n||(n={}),typeof r=="string"?n.url=r:(typeof r>"u"?"undefined":ds(r))==="object"&&r.data&&r.width&&r.height?(n.data=r.data,n.width=r.width,n.height=r.height):(typeof r>"u"?"undefined":ds(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 $a(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=Oa(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=ML(o.value,i);if(c||this.change||!o.location||!o.value){o.name=n,o.type=r,o.value=i,o.method="uniform"+t,this.gl.useProgram(this.program),o.location=this.gl.getUniformLocation(this.program,n),this.gl[o.method].apply(this.gl,[o.location].concat(o.value));for(var l in this.buffers){var p=this.buffers[l];this.gl.useProgram(p.program);var u=this.gl.getUniformLocation(p.program,n);this.gl[o.method].apply(this.gl,[u].concat(o.value))}}}},{key:"uniformTexture",value:function(t,r,n){if(this.textures[t]===void 0)this.loadTexture(t,r,n);else{this.uniform("1i","sampler2D",t,this.texureIndex);for(var o in this.buffers){var s=this.buffers[o];this.gl.useProgram(s.program),this.gl.activeTexture(this.gl.TEXTURE0+this.texureIndex),this.gl.bindTexture(this.gl.TEXTURE_2D,this.textures[t].texture)}this.gl.useProgram(this.program),this.gl.activeTexture(this.gl.TEXTURE0+this.texureIndex),this.gl.bindTexture(this.gl.TEXTURE_2D,this.textures[t].texture),this.uniform("2f","vec2",t+"Resolution",this.textures[t].width,this.textures[t].height)}}},{key:"resize",value:function(){if(this.width!==this.canvas.clientWidth||this.height!==this.canvas.clientHeight){this.realToCSSPixels=window.devicePixelRatio||1;var t=Math.floor(this.gl.canvas.clientWidth*this.realToCSSPixels),r=Math.floor(this.gl.canvas.clientHeight*this.realToCSSPixels);return(this.gl.canvas.width!==t||this.gl.canvas.height!==r)&&(this.gl.canvas.width=t,this.gl.canvas.height=r,this.gl.viewport(0,0,this.gl.canvas.width,this.gl.canvas.height)),this.width=this.canvas.clientWidth,this.height=this.canvas.clientHeight,this.resizeSwappableBuffers(),!0}else return!1}},{key:"render",value:function(){if(this.visible=RL(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=Or(r,r.vertexString,n.VERTEX_SHADER);for(var s in t){var i=t[s],a=Or(r,i.fragment,n.FRAGMENT_SHADER,1);a?r.isValid=!0:(a=Or(r,void main(){
gl_FragColor = vec4(1.0);
},n.FRAGMENT_SHADER),r.isValid=!1);var c=Qf(r,[o,a]);i.name=s,i.program=c,i.bundle=r.createSwappableBuffer(r.canvas.width,r.canvas.height,c),n.deleteShader(a)}n.deleteShader(o)}},{key:"createSwappableBuffer",value:function(t,r,n){var o=this.createBuffer(t,r,n),s=this.createBuffer(t,r,n),i=this.gl;return{input:o,output:s,swap:function(){var a=o;o=s,s=a,this.input=o,this.output=s},render:function(a,c,l,p){i.useProgram(l),i.viewport(0,0,a,c),i.bindFramebuffer(i.FRAMEBUFFER,this.input.buffer),i.framebufferTexture2D(i.FRAMEBUFFER,i.COLOR_ATTACHMENT0,i.TEXTURE_2D,this.output.texture,0),i.drawArrays(i.TRIANGLES,0,6),this.swap()},resize:function(a,c,l,p){i.useProgram(l),i.viewport(0,0,a,c),this.input.resize(a,c),this.output.resize(a,c)}}}},{key:"createBuffer",value:function(t,r,n){var o=this.gl,s=this.BUFFER_COUNT;this.BUFFER_COUNT+=2,o.getExtension("OES_texture_float");var i=o.createTexture();o.activeTexture(o.TEXTURE0+s),o.bindTexture(o.TEXTURE_2D,i),o.texImage2D(o.TEXTURE_2D,0,o.RGBA,t,r,0,o.RGBA,o.FLOAT,null),o.texParameteri(o.TEXTURE_2D,o.TEXTURE_MIN_FILTER,o.NEAREST),o.texParameteri(o.TEXTURE_2D,o.TEXTURE_MAG_FILTER,o.NEAREST),o.texParameteri(o.TEXTURE_2D,o.TEXTURE_WRAP_S,o.CLAMP_TO_EDGE),o.texParameteri(o.TEXTURE_2D,o.TEXTURE_WRAP_T,o.CLAMP_TO_EDGE);var a=o.createFramebuffer();return{index:s,texture:i,buffer:a,W:t,H:r,resize:function(c,l){o.bindFramebuffer(o.FRAMEBUFFER,a);var p=Math.min(c,this.W),u=Math.min(l,this.H),d=new Float32Array(p*u*4);o.readPixels(0,0,p,u,o.RGBA,o.FLOAT,d),o.bindFramebuffer(o.FRAMEBUFFER,null);var m=s+1,g=o.createTexture();o.activeTexture(o.TEXTURE0+m),o.bindTexture(o.TEXTURE_2D,g),o.texImage2D(o.TEXTURE_2D,0,o.RGBA,c,l,0,o.RGBA,o.FLOAT,null),o.texParameteri(o.TEXTURE_2D,o.TEXTURE_MIN_FILTER,o.NEAREST),o.texParameteri(o.TEXTURE_2D,o.TEXTURE_MAG_FILTER,o.NEAREST),o.texParameteri(o.TEXTURE_2D,o.TEXTURE_WRAP_S,o.CLAMP_TO_EDGE),o.texParameteri(o.TEXTURE_2D,o.TEXTURE_WRAP_T,o.CLAMP_TO_EDGE),o.texSubImage2D(o.TEXTURE_2D,0,0,0,p,u,o.RGBA,o.FLOAT,d);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 NL(){var e=document.getElementsByClassName("glslCanvas");if(e.length>0){window.glslCanvases=[];for(var t=0;t<e.length;t++){var r=new eg(e[t]);r.isValid&&window.glslCanvases.push(r)}}}window.addEventListener("load",function(){NL()});var ms=eg;var tg=e=>{if(!("after"in e))return Promise.resolve(void 0);let t=document.createElement("canvas");return new ms(t).load(rt(e.after)),e.render(t),Promise.resolve(void 0)};var rg=e=>{let t="";for(let r=0;r<e.length;r+=3)r+2===e.length?t+=Aa(e[r],e[r+1],0):r+1===e.length?t+=Aa(e[r],0,0):t+=Aa(e[r],e[r+1],e[r+2]);return t},fs=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?"_":"?"))),Aa=(e,t,r)=>{let n=e>>2,o=(e&3)<<4|t>>4,s=(t&15)<<2|r>>6,i=r&63;return fs(n&63)+fs(o&63)+fs(s&63)+fs(i&63)};var ng=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${rg(n)}};var og=async e=>{if(!("after"in e))return;let t=document.createElement("img"),r=await ng(rt(e.after));t.src=r,e.render(t)};var Ua=Promise.resolve({log:new Uint8Array(0)}),gs,sg=(e,t,r,n)=>(Ua=(async()=>{await Ua,gs??=await jL(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),gs.removeEventListener("message",a))};gs.addEventListener("message",a)}),s={type:"compile",input:e};return gs.postMessage(s),o})(),Ua),jL=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 ig=(e,t)=>async r=>{if(!("after"in r))return;let n=DL(),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 sg(rt(r.after),e,t,s);if(clearTimeout(a),!c){r.render(n.div),n.log(o);return}i.src=await vn(new Blob([c],{type:"image/svg+xml"})),r.render(i)},DL=()=>{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 ag=(e,t,r=0,n=[])=>{let[o,s]=q("uninitialized"),[i,a]=q({ok:!0,value:t}),c=N(e,n);return H(()=>{(async()=>{let l=setTimeout(()=>s("pending"),r);try{let p=await c();if(p===void 0)return;a({ok:!0,value:p})}catch(p){a({ok:!1,value:p})}finally{clearTimeout(l),s("resolved")}})()},[c,r,...n]),i.ok?{result:i.value,state:o}:{result:i.value,state:"rejected"}};var cg=e=>{let t=e.flatMap(({changes:o,created:s,userId:i})=>o.flatMap(a=>{let c=OL(a,i,s);return c?[c]:[]})),r=[...new Set(t.map(({created:o})=>o))].sort();return{history:t.reduce((o,s)=>{if(s.type==="insert"){let a=new Map;a.set(s.created,{text:s.text,type:s.type,userId:s.userId});let c={id:s.id,snapshots:a};if(s.parentId==="_end")return[...o,c];let l=o.findIndex(({id:p})=>p===s.parentId);return l<0?(console.warn("[scrapbox-snapshot@0.1.0] The parent line the snapshot would insert before is not found. change: ",s),[...o,c]):[...o.slice(0,l),c,...o.slice(l)]}let i=o.findIndex(({id:a})=>a===s.id);return i<0?(console.warn("[scrapbox-snapshot@0.1.0] The line data to be append the change is not found. change: ",s),o):(o[i].snapshots.set(s.created,{text:s.type==="update"?s.text:void 0,type:s.type,userId:s.userId}),o)},[]),range:r}},OL=(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 lg=async(e,t)=>{let r=await fetch(/api/commits/${e}/${t}),{commits:n}=await r.json();return cg(n)},pg=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 ug=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=>_e(f($L,{getController:o=>n(o)}),r))},$L=({getController:e})=>{let[t,r]=q(!0),n=N(()=>r(!1),[]),o=N(()=>r(!0),[]),s=N(()=>r(g=>!g),[]);H(()=>e({open:n,close:o,toggle:s}),[e]);let i=N(g=>{g.target instanceof HTMLElement&&g.target.id==="background"&&o()},[]),{state:a,result:c}=ag(async()=>{if(t||scrapbox.Layout!=="page")return;let[g,h]=await Promise.all([lg(scrapbox.Project.name,scrapbox.Page.id),pg(scrapbox.Project.name,scrapbox.Page.id)]);return{range:[...h.range,...g.range],getSnapshot:x=>g.range.includes(x)?g.history.flatMap(({snapshots:w})=>{let P=w.get(x);if(P)return P.text===void 0?[]:[P.text];let _=Math.max(...[...w.keys()].filter(L=>L<x));if(_===x)return[];let y=w.get(_)?.text;return y===void 0?[]:[y]}):h.pages.get(x)?.map?.(w=>w.text)??[]}},{range:[],getSnapshot:()=>[]},1e3,[t]),[l,p]=q(0),[u,d]=q(0);H(()=>{if(a!=="resolved")return;let g=Math.max(0,c.range.length-1);p(g),d(g)},[c]);let m=N(g=>d(parseInt(g.currentTarget.value)),[]);return f(V,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(V,null,f("input",{type:"range",max:l,min:"0",step:"1",value:u,title:Fa(new Date(c.range[u]*1e3),"yyyy-MM-dd HH:mm:ss"),onInput:m}),f("time",{dateTime:Fa(new Date(c.range[u]*1e3),"yyyy-MM-dd HH:mm:ss")},Fa(new Date(c.range[u]*1e3),"yyyy-MM-dd HH:mm:ss")))),a!=="rejected"?f("div",{className:"viewer"},f("pre",null,c.getSnapshot(c.range[u]).join(
))):f("div",{className:"error viewer"},Error: ${JSON.stringify(c)})))};var pr=()=>/mobile/i.test(navigator.userAgent);var dg=class{constructor(){this._mappings=[],this.started=!1}start(){this.started||(document.addEventListener("keydown",t=>{let r=document.getElementsByClassName("popup-menu")?.[0]?.getElementsByClassName("button");if(!!r)for(let{key:n,shiftKey:o,ctrlKey:s,altKey:i,buttonName:a}of this._mappings){if(t.key!==n||t.shiftKey!==o||t.ctrlKey!==s||t.altKey!==i)continue;let c=[...r].find(l=>a instanceof RegExp?a.test(l.textContent):l.textContent===a);if(!!c){t.preventDefault(),t.stopPropagation(),c.click();return}}}),this.started=!0)}push(...t){for(let{key:r,shiftKey:n,ctrlKey:o,altKey:s,buttonName:i}of t)this._mappings.push({key:r,shiftKey:n??!1,ctrlKey:o??!1,altKey:s??!1,buttonName:i})}pop(...t){for(let{key:r,shiftKey:n,ctrlKey:o,altKey:s,buttonName:i}of t){let a=this._mappings.findIndex(c=>c.key===r&&c.shiftKey===(n??!1)&&c.ctrlKey===(o??!1)&&c.altKey===(s??!1)&&c.buttonName===bottonName);a!==-1&&(delete this,_mapping[a])}}},Ba=new dg;function*Ha(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 mg=async(e,t,r)=>{if(e.length===0||e.every(({before:o,after:s})=>o===s))return;let n=await Fe();try{let o=Ha(5,e,async s=>{let i=0,a=0;s.before===s.after&&r({link:s,projectCount:0,replaced:0,done:!0});let c=Ha(2,[...new Set(t)],async l=>{let p=await AL(s,l,n);if(!p.ok)throw UL(p.value);i++,a+=p.value,r({link:s,projectCount:i,replaced:a,done:!1})});await Promise.all([...c]),r({link:s,projectCount:i,replaced:a,done:!0})});await Promise.all([...o])}finally{await je(n)}},AL=async(e,t,r)=>{let[n]=await Promise.all([lo(t,e.before,e.after),ce(t,e.before,(o,{persistent:s})=>{if(!!s)return[e.after,...o.map(i=>i.text).slice(1)]},{socket:r})]);return n},ur=e=>e.split(
).flatMap(t=>[...t.matchAll(/\[((?:[^\[!"#%&'()\*\+,\-\.\/\{\|\}<>_~] |.[^ ]*)[^\[\]]*)\]/g)]).map(([,t])=>t),UL=e=>{let t=new Error;return t.name=e.name,t.message=e.message,t};var fg=e=>Ke(e,{hasTitle:!1}).flatMap(r=>{switch(r.type){case"title":return[];case"codeBlock":return FL(r);case"table":return BL(r);case"line":return HL(r)}}).map(r=>r).join(
),FL=({fileName:e,content:t,indent:r})=>{let n=" ".repeat(r);return[${n}code:${e},...t.split(
).map(o=>${n} ${o})]},BL=({fileName:e,cells:t,indent:r})=>{let n=" ".repeat(r);return[${n}table:${e},...t.map(o=>${n} ${o.map(s=>s.map(i=>En(i)).join("")).join(" ")})]},HL=({nodes:e,indent:t})=>[${" ".repeat(t)}${e.map(r=>${En(r)}).join("")}],En=e=>{switch(e.type){case"quote":return> ${e.nodes.map(t=>En(t)).join("")};case"strong":return${e.nodes.map(t=>En(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=>En(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=>ur(e).length>0?"":"",onClick:e=>{let t=fg(e);if(e!=t)return t}});var gg=e=>!e.includes(
)&&/\[[^\]]+\]/.test(e);scrapbox.PopupMenu.addButton({title:e=>gg(e)?"[][]":"",onClick:e=>{if(!gg(e))return;let t=e.replaceAll("[","").replaceAll("]","");return(async()=>{let{render:r,dispose:n}=be();try{let o=scrapbox.Project.name;r({type:"spinner"},{type:"text",text:create /${o}/${t}}),await ce(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 xe(2e3),n()}})(),${t}}});var hg=(e,t)=>{switch(e.type){case"title":return"";case"codeBlock":return[e.fileName, \\`\`${KL(e.fileName)},e.content,"\n"].join(
);case"table":return zL(e);case"line":return WL(e,t)}},zL=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(
)},qL=" ",WL=(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=qL.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"blank":case"plain":return e.text}},GL=[{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"}],KL=e=>{let t=e.replace(/^.*\.(\w+)$/,"$1");return GL.find(r=>r.extensions.includes(t))?.fileType??""};scrapbox.PopupMenu.addButton({title:"",onClick:e=>{(async()=>{try{let t=$n.parse(e,{hasTitle:!1}),r=Math.min(...t.map(n=>n.indent));await navigator.clipboard.writeText(t.map(n=>hg(n,r)).join(` ))}catch(t){alert(Failed to copy:
${JSON.stringify(t)})}})()}});var _t=e=>typeof e=="string";var za=(e,...t)=>{let r=e;for(let n of t){let o=r instanceof Promise?r.then(s=>_t(s)?s:n(s)):n(r);if(_t(o))return o;r=o instanceof URL?new URL(o):o.then(s=>_t(s)?s:new URL(s))}return r instanceof Promise?r.then(n=>${n}):${e}};var $r=e=>e.ok?void 0:{name:"HTTPError",message:${e.status} ${e.statusText},response:e};var xg=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=$r(r);if(n)return{ok:!1,value:n};let o=await r.json();return{ok:!0,value:o}})()};var hs=e=>{let{fetch:t=globalThis.fetch,...r}=e;return{fetch:t,...r}},bg=e=>typeof e=="object"&&e!==null;var Ar=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,Ar)}};var xs=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(!bg(r)||typeof r.message!="string")throw new Ar({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 Ar({status:e.status,statusText:e.statusText,body:t,path:new URL(e.url)})}}catch(r){throw r instanceof SyntaxError?new Ar({status:e.status,statusText:e.statusText,body:t,path:new URL(e.url)}):r}};var yg=async(e,t)=>{let{title:r,description:n,metadataIsPublic:o,collectionId:s,refererURL:i,accessToken:a,created:c,app:l,fetch:p}=hs(t),u=new FormData;u.append("imagedata",e),u.append("access_token",a),i&&u.append("referer_url",i.toString()),l!==void 0&&u.append("app",l),r!==void 0&&u.append("title",r),n!=null&&u.append("desc",n),s&&u.append("collection_id",s),o&&u.append("metadata_is_public","true"),c!==void 0&&u.append("created_at",${c});let d=await p("https://upload.gyazo.com/api/upload",{method:"POST",mode:"cors",credentials:"omit",body:u}),m=await xs(d);return m.ok?{ok:!0,value:JSON.parse(m.value)}:m};var bs="",wg=!1,vg=new Map,kg=async(e,t,r)=>{if(e.hostname!=="pbs.twimg.com"||!e.pathname.startsWith("/media"))return;let n=vg.get(e.href);if(n)return n;if(wg){if(!bs)return}else{let a=await Gl();if(wg=!0,!a.ok){alert("You haven't logged in Gyazo yet, so you can only upload images to scrapbox.io.");return}if(bs=a.value||"",!bs){alert("You haven't connect Gyazo to scrapbox.io yet.");return}}let o=await GM_fetch(e);if(!o.ok)return;let s=await yg(await o.blob(),{accessToken:bs,refererURL:t,description:r});if(!s.ok)throw Error(s.value.name);let i=new URL(s.value.permalink_url);return vg.set(e.href,i),i};var XL={"<":"<",">":">","&":"&",""":'"',"'":"'","`":""},qa=e=>e.replace(/&(lt|gt|amp|quot|#x27|#x60);/g,t=>XLt);var ys=e=>{let t={name:e.user.name,screenName:e.user.screen_name},r=new Date(e.created_at),n=[...e.entities.hashtags.map(i=>({type:"hashtag",...i})),...e.entities.symbols.map(i=>({type:"symbol",...i})),...e.entities.user_mentions.map(i=>({type:"mention",name:i.name,screenName:i.screen_name,indices:i.indices})),...e.entities.urls.map(i=>{let a={type:"url",indices:i.indices,url:new URL(i.expanded_url)};if(e.card&&e.card?.url===i.url){let{description:c,title:l}=e.card.binding_values,p="STRING";c?.type===p&&(a.description=c.string_value),l?.type===p&&(a.title=l.string_value)}return a}),...e.entities.media?.map?.(i=>({type:"media",indices:i.indices,media:e.mediaDetails?.flatMap?.(a=>a.url===i.url?[{type:a.type,url:new URL(a.video_info?.variants?.sort?.((c,l)=>(l.bitrate??0)-(c.bitrate??0))?.0.url??a.media_url_https)}]:[])??[]}))??[]].sort((i,a)=>i.indices0-a.indices0),o=[];{let i=0,a=e.text;for(let{indices:c,...l}of n){let p=...a.slice(0,c0-i).join("");o.push({type:"plain",text:qa(p)}),o.push(l),a=...a.slice(c1-i).join(""),i=c1}a&&o.push({type:"plain",text:qa(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=ys(e.parent)),e.quoted_tweet&&(s.quote=ys(e.quoted_tweet)),s};var YL="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",ws=(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||YL.includes(n)?r:o?n===e?[${decodeURIComponent(o)}]:[/${n}/${decodeURIComponent(o)}]:[/${n}]};var Eg=(e=VL)=>t=>{let,r=t.href.match(/^https:\/\/(?:(?:www\.|mobile\.|m\.)?twitter|x)\.com\/\w\d_+\/(?:status|statuses)\/(\d+)/)??[];return r?(async()=>{let n=await(xg(r)??Wl(t.href));if(!n.ok)throw n.value;return e(n.value,t)})():t},VL=async(e,t)=>{if("images"in e)return[> [@${Ga(e.screenName)} ${t.origin}${t.pathname}],...e.description?.split?.(` )?.map?.(s=>> ${Ga(s)})??["> [/ no description provided]"],...e.images.length>0?[> ${e.images.map(s=>[${s}])}]:[]].join(
);let{quote:r,replyTo:n,...o}=ys(e);return[...n?[...(await vs(n)).map(s=> > ${s}),...n.quote?(await vs(n.quote)).map(s=> > ${s}):[]]:[],...(await vs(o)).map(s=>> ${s}),...r?(await vs(r)).map(s=>> > ${s}):[]].join(
${s.join(`
`)}
}case"url":return${ws()(o.url)} }}))).join("").split(
)]},Wa=async(e,t)=>e.type==="photo"?${e.url}.endsWith(".svg")?${e.url}:${await kg(e.url,t,"")??e.url}:[${e.url}${/\.(?:mp4|webm)$/.test(${e.url})?"":"#.mp4"}],Ga=e=>e.replace(/\b/gm,"").replace(/[\s\r\n\u2028\u2029]+/gm," ").replace(/\s*[[\]]\s*/g," ").trim();var Tg=e=>{if(!window.GM_fetch)return;let t=window.GM_fetch;return(async()=>{let r=await t(https://t.co/${e}),n=$r(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 Lg=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=Tg(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 Pg=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 Sg=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 Ka=e=>{if(!e.hostname.startsWith("www.google."))return e;let t=e.searchParams.get("url");return t?new URL(decodeURIComponent(t)):e};var _g=/charset=(^;+)/,Rg=e=>{if(!window.GM_fetch)return;let t=window.GM_fetch;return(async()=>{let r=await t(${e}),n=$r(r);if(n)return{ok:!1,value:n};let o=r.headers.get("content-type")?.match?.(_g)?.1??await QL(r.clone()),s=new TextDecoder(o).decode(await r.arrayBuffer());return{ok:!0,value:s}})()},QL=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?.(_g)?.1??"utf-8"};var Cg=(e=JL)=>async t=>e(await ZL(t),t),JL=(e,t)=>{let r=(_t(e)?e:e.title).replace(/\s/g," ").replaceAll("","[").replaceAll("","]");return r?[${t.hash?${decodeURIComponent(t.hash.slice(1))} | :""}${r} ${t}]:${t}},ZL=async e=>{let t=Rg(e);if(!t){let n=await ql(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 Mg=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 Ig=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 Ng=(e,...t)=>{if(e instanceof URL)return za(new URL(e),...t);let r=0,n=0,o=0,s=!1,i=e.split(/(https?:\/\/\S+)/g).map(p=>{if(!/^https?:\/\/\S+$/.test(p))return p;r++;try{let u=za(new URL(p),...t);return _t(u)?(n++,u):(s=!0,u,p)}catch(u){return console.error(u),o++,p}});if(!s)return i.join("");let{render:a,dispose:c}=be(),l=()=>a({type:"spinner"},{type:"text",text:URL: ${n}/${r} converted, ${o} failed});return l(),Promise.all(i.map(async p=>{if(_t(p))return p;try{let u=await p0;return n++,u}catch(u){return console.error(u),o++,p1}finally{l()}})).then(p=>(a({type:"check-circle"},{type:"text",text:URL: ${n}/${r} converted, ${o} failed}),p.join(""))).finally(()=>{setTimeout(c,1e3)})};var jg=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 Dg=e=>Ke(e,{hasTitle:!1}).flatMap(r=>{switch(r.type){case"title":return[];case"codeBlock":return eP(r);case"table":return tP(r);case"line":return rP(r)}}).map(r=>r).join(` ),eP=({fileName:e,content:t,indent:r})=>{let n=" ".repeat(r);return[${n}code:${e},...t.split(
).map(o=>${n} ${o})]},tP=({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(" ")})]},rP=({nodes:e,indent:t})=>[${" ".repeat(t)}${e.map(r=>${ks(r)}).join("")}],ks=e=>{switch(e.type){case"quote":return> ${e.nodes.map(t=>ks(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=>ks(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=>ks(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"blank":case"plain":return${e.text}}};scrapbox.PopupMenu.addButton({title:"",onClick:e=>{let t=Dg(e);if(e!==t)return t}});var Xa=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=>Xa(e)?"replace":"",onClick:e=>{let t=Xa(e);if(t!==void 0)return t}});var Og=e=>{let t=document.createElement("div"),r=t.attachShadow({mode:"open"}),n=document.createElement("style");n.textContent="dialog::backdrop{background-color:#000c}dialog{flex-direction:column;align-items:center;row-gap:10px;padding:10px;background:unset;margin-top:unset;margin-bottom:unset;border:unset;height:unset}dialogopen{display:flex}dialog>*{color:var(--page-text-color, #4a4a4a);background-color:var(--dropdown-menu-bg, #fff);border:1px solid rgba(0,0,0,.2);border-radius:6px}@media (min-width: 768px){dialog{padding:30px 0}}.container{display:flex;padding:5px;gap:0.2em;flex-direction:column;width:100%;}.button-container{flex-direction:unset;}.button-container>*{flex:1;}",r.append(n);let o=document.createElement("dialog");o.insertAdjacentHTML("beforeend",` <div class="container">
Replace Links:
<textarea class="editor"></textarea>
<div class="container button-container">
<button class="cancel">cancel</button>
<button class="replace">replace</button>
</div>
</div>
),r.append(o);let s=o.querySelector(".editor");s.rows=e.length,s.value=e.join(
);let i=()=>{o.style.minWidth=${Math.max(...s.value.split(`
).map(p=>[...p].length))+6}em};i(),s.addEventListener("input",i);let a=o.querySelector(".cancel"),c=o.querySelector(".replace"),l=new Promise(p=>{let u=()=>{p({convert:!1}),t.remove()};o.addEventListener("close",u),o.addEventListener("click",u),a.addEventListener("click",u),c.addEventListener("click",()=>{let d=s.value.split(`
);p({convert:!0,links:e.flatMap((m,g)=>m===d[g]||m===""||!d[g]?[]:[{before:m,after:d[g]??m}])}),t.remove()}),o.querySelector(".container").addEventListener("click",d=>{d.stopPropagation()})});return document.body.append(t),o.showModal(),l};var $g=async(e,t)=>{let r=ur(e),n=await Og([...new Set(r)]);if(!n.convert||n.links.length===0)return;let o=new Map(n.links.map(s=>[s.before,be()]));await mg(n.links,t,s=>{let{link:i,projectCount:a,replaced:c,done:l}=s,p=o.get(i.before);if(!!p){if(l){p.render({type:"check-circle"},{type:"text",text:"${i.after}", ${c}l. ${a}p.}),setTimeout(()=>p.dispose(),1e3);return}p.render({type:"spinner"},{type:"text",text:"${i.after}", ${c}l. ${a}p.})}})};async function Ag(e,t){let r=nP(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}=be(),i=await Fe();try{o({type:"spinner"},{type:"text",text:Replacing links in ${t.length} projects...});let a=0,l=(await Promise.all(t.map(async p=>{let[u]=await Promise.all([lo(p,r,n),ce(p,r,(d,{persistent:m})=>{if(!!m)return[n,...d.map(g=>g.text).slice(1)]},{socket:i})]);if(!u.ok)throw o({type:"exclamation-triangle"},{type:"text",text:${u.value.name} ${u.value.message}}),oP(u.value);return a++,o({type:"spinner"},{type:"text",text:Replacing links in ${t.length-a} projects...}),u.value}))).reduce((p,u)=>p+u,0);o({type:"check-circle"},{type:"text",text:Successfully replaced ${l} links.})}finally{await je(i),setTimeout(s,1e3)}}function nP(e){return e.match(/\[([^\[!"#%&'()\*\+,\-\.\/\{\|\}<>_~][^\[\]]*)\]/)?.[1]}function oP(e){let t=new Error;return t.name=e.name,t.message=e.message,t}var Ug=e=>{let t=[scrapbox.Project.name,...e];scrapbox.PopupMenu.addButton({title:r=>{let n=ur(r).length;return n>1?"update links":n===1?"update a link":""},onClick:r=>{let n=ur(r).length;n>1?$g(r,t):n===1&&Ag(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 Fg=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+=Ln(${o!==r?"\\item":""}\\begin{itemize},o*2)+ ;if(n.indent<r)for(let o=r;o>n.indent;o--)t+=Ln("\\end{itemize}",(o-1)*2)+
;r=n.indent,t+=Ln(${r>0?"\\item ":""}${sP(n)},r*2)+
}for(let n=r;n>0;n--)t+=Ln("\\end{itemize}",(n-1)*2)+
${e.content}
\\end{lstlisting},aP=e=>{let t=\\caption{${Ve(e.fileName)}}\\label{table:${Ve(e.fileName)}},r=Math.max(...e.cells.map(o=>o.length)),n=e.cells.map(o=> ${o.map(s=>s.map(i=>Ur(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}},cP=e=>e.nodes.map(t=>Ur(t)).join(""),Ur=e=>{switch(e.type){case"quote":return\\begin{quote}
${Ln(e.nodes.map(t=>Ur(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{${Ve(e.path)}};case"strong":return\\textbf{${e.nodes.map(t=>Ur(t)).join("")}};case"formula":return$${e.formula}$;case"decoration":{let t=e.nodes.map(r=>Ur(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=>Ur(t)).join("")};case"helpfeel":return\\lstinline!? ${Ve(e.text)}!;case"code":return\\lstinline!${Ve(e.text)}!;case"commandLine":return\\lstinline!${Ve(e.symbol)} ${Ve(e.text)}!;case"link":return e.pathType==="absolute"?e.content===""?\\url{${e.href}}:\\href{${e.href}}{${Ve(e.content)}}:Ve(e.href);case"googleMap":return\\href{${e.url}}{${Ve(e.place)}};case"hashTag":return Ve(#${e.href});case"blank":case"plain":return Ve(e.text)}},lP=[{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"}],pP=e=>{let t=e.replace(/^.*\.(\w+)$/,"$1");return lP.find(r=>r.extensions.includes(t))?.fileType??""},Ve=e=>e.replaceAll("\\","\\textbackslash ").replaceAll("#","\\#").replaceAll("%","\\%").replaceAll("$","\\$").replaceAll("&","\\&").replaceAll("~","\\textasciitilde ").replaceAll("^","\\textasciicircum ").replaceAll("_","\\_").replaceAll("{","\\{").replaceAll("}","\\}").replaceAll("|","\\textbar ").replaceAll("<","\\textless ").replaceAll(">","\\textgreater "),Ln=(e,t)=>e.split( ).map(r=>${" ".repeat(t)}${r}).join(
);scrapbox.PopupMenu.addButton({title:"TeX",onClick:e=>{navigator.clipboard.writeText(Fg(ls(e))).catch(t=>{console.error(t),alert(${t.name} ${t.message}
${t.stack})})}});var Es="https://keicho.herokuapp.com/api/";var Bg=async(e,t)=>{if(!window.GM_fetch)return{ok:!1,value:{name:"GMFetchNotAvailableError"}};let r=await window.GM_fetch(${Es}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 Hg=()=>{let{popupMenu:e,render:t}=uP();bl()?.append?.(e);let r=ft(),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)}}},uP=()=>{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 zg=async(e="normal")=>{if(!window.GM_fetch)return{ok:!1,value:{name:"GMFetchNotAvailableError"}};let t=await window.GM_fetch(${Es}web/create/?mode=${e},{mode:"cors"});return t.ok?{ok:!0,value:await t.text()}:{ok:!1,value:{name:"ResponseError",res:t}}};var qg=e=>https://keicho.netlify.app/#talk=${e};var Wg=e=>{let t=e.split( ),r=t[1]??t[0],n=e===t[0]?"":t[0];return n?[n.trim(),r].join(
):r};var Ts=async(e,t,r)=>{let n=ft(),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 co().clear(),n.setPosition({line:o,char:[...s].length}),await Re(
${e}),n.getPosition().line};var Gg=e=>ls(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=>Ls(s))).join(" ")})].join(
).trimEnd();case"line":return${r}${t.nodes.map(n=>Ls(n)).join("")}.trimEnd()}}).join(
),Ls=e=>{switch(e.type){case"quote":return> ${e.nodes.map(t=>Ls(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=>Ls(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 Fr=e=>/^[((]/.test(e);var Kg=async e=>{let t=scrapbox.Page.lines;if(!t)return;let{cursor:r,selection:n}=qe(),o=e?.entire||n.hasSelectionAll(),s=o?t.map(S=>S.text).join(
):n.getSelectedText(),i=e?.botIcon??"[/nishio/nisbot.icon]",{render:a,visible:c,open:l,close:p,dispose:u}=Hg();p();let d=new Set,m=()=>{u();for(let S of d)S()},g=S=>d.add(S),h={text:"Exit",onClick:m},x=e?.talkId||Xg(s)||(o?"":Xg(t.slice(0,1+r.getPosition().line).map(S=>S.text).join(
))),w=!x;if(!x){let S=zg(e?.mode),M=setTimeout(()=>{a({text:"Start talking..."}),l();let $=0;M=setInterval(()=>{a({text:Start talking${".".repeat($%3)}}),$++},1e3)},1e3),O=await S;if(clearTimeout(M),!O.ok){if(O.value.name==="GMFetchNotAvailableError"){alert("GM_fetch is not available. Please use Tampermonkey and install GM_fethc.");return}if(O.value.name==="ResponseError"){a({text:Error: ${O.value.res.status} ${O.value.res.statusText}},h),l(),console.error(Error: ${O.value.res.status} ${O.value.res.statusText},await O.value.res.text());return}return}x=O.value}let P=x,_=n.normalizeOrder(n.getRange()),y=o?t.length-1:_.end.line,L=t[y],E=o?"":" ".repeat(Math.min(...t.slice(_.start.line,_.end.line+1).map(S=>He(S.text)))),I=async S=>{let M=await Bg(S,P);if(!M.ok)switch(M.value.name){case"ResponseError":return a({text:Error: ${M.value.res.status} ${M.value.res.statusText}},h),l(),console.error(Error: ${M.value.res.status} ${M.value.res.statusText},await M.value.res.text()),M;case"GMFetchNotAvailableError":return alert("GM_fetch is not available. Please use Tampermonkey and install GM_fethc."),M}return M},b="",k=async S=>{let M=Gg(S).split(
).map(D=>D.trim()).join(
).trim();M.startsWith(b)&&(M=M.slice(b.length));let O=M.split(
);if(O.length===0)return;if(O.every(D=>Fr(D))&&(b=M),O.filter(D=>!Fr(D)).length<2){let D,W;for(let F of O){if(W=await I(F),!W.ok)return W;Fr(F)||(D=W)}return D??W}let U=0;{let D;for(;U<O.length&&Fr(O[U]);U++)if(D=await I(O[U]),!D.ok)return D}{let D=await I("まず聞いて");if(!D.ok)return D}for(;U<O.length&&!Fr(O[U]);U++){let D=await I(O[U]);if(!D.ok)return D}return await I("おしまい")},R=async S=>{if(scrapbox.Layout!=="page"||S==="")return;let M=k(S),O=setTimeout(()=>{a({text:"Asking..."}),l();let F=0;O=setInterval(()=>{a({text:Asking${".".repeat(F%3)}}),F++},1e3)},1e3),$=await M;if(clearTimeout(O),!$||!$.ok)return;let{text:U,buttons:D}=$.value,W=Wg(U);if(W.trim()){let F=${E}${i}${W.includes(`
)?
${W.split(`
).map(K=> ${E}${K}).join(
)}:W}
${E};y=await Ts(F,L,y),L=t[y]}a({text:"Send",onClick:T},{text:"🙂",onClick:()=>Re("🙂")},{text:"🙁",onClick:()=>Re("🙁")},...D.map(F=>({text:F,onClick:async()=>{y=await Ts(F,L,y),L=t[y],await R(F)}})),h),l()},T=async()=>{if(scrapbox.Layout!=="page")return;let S=scrapbox.Page.lines,M=r.getPosition().line,[O,$,U]=dP(S,M,i);O!==""&&(y=U,L=S[y],E=" ".repeat(Math.min(...S.slice($,U+1).map(D=>He(D.text)))),await R(O))};return w&&(y=await Ts(qg(P),L,y),L=t[y]),await R(s),{ask:T,open:l,close:p,visible:c,exit:m,onExit:g}},Xg=e=>{for(let t of e.split(
).reverse()){let r=t.match(/https?:\/\/keicho\.netlify\.app\/#talk=(\w+)/)?.[1];if(r)return r}},dP=(e,t,r)=>{let n=Math.max(e.findLastIndex((s,i)=>i<t&&s.text.trim().startsWith(r)),1),o=n+yt(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 Yg=[Jt,Zt,er];scrapbox.PopupMenu.addButton({title:e=>{let t=kt({project:scrapbox.Project.name,mode:"noopen",hooks:Yg});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||kt({project:e,mode:"noopen",hooks:Yg})?.()}});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 mP=[Ka,Lg,Ka,Sg,Mg,ws(),Ig,Eg(),Pg,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,jg,Cg()];scrapbox.PopupMenu.addButton({title:e=>/https?:\/\/\S+/.test(e)?"URL":"",onClick:e=>{let t=Ng(e,...mP);if(typeof t=="string")return e===t?void 0:t;t.then(r=>{if(e!==r)return Re(r)})}});Ug(["takker","takker-memex","takker-private","takker-books"]);if(!/mobile/i.test(navigator.userAgent)){let e=(t,r)=>{t.trim()!==""&&Kg({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())};Be().addEventListener("keydown",a),i(()=>Be().removeEventListener("keydown",a))})};scrapbox.PopupMenu.addButton({title:()=>"🤖",onClick:t=>e(t)})}var Pn=(e,t)=>t.map(r=>r.replace(/@yyyy-MM-dd HH:mm:ss@/g,le(e,"yyyy-MM-dd HH:mm:ss")).replace(/@yyyy-MM-dd@/g,le(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==="+"?Ye(e,parseInt(s)*(i==="w"?7:1)):vt(e,parseInt(s)*(i==="w"?7:1)):e;return le(a?Ye(uo(c),fP(a)):c,"yyyy-MM-dd")}).replace(/@yyyy-ww@/g,${en(e)}-w${${Zr(e)}.padStart(2,"0")}).replace(/@yyyy-ww([+-])(\d+)(w?)@/g,(n,o,s,i)=>{let a=o==="+"?Ye(e,parseInt(s)*(i==="w"?7:1)):vt(e,parseInt(s)*(i==="w"?7:1));return${en(a)}-w${${Zr(a)}.padStart(2,"0")}})),fP=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 Vg=async(e,t,r)=>{if(scrapbox.Project.name!==e)return()=>{};let n=scrapbox.Project.pages;await new Promise(l=>{let p=setInterval(()=>{if(n.length===0){n=scrapbox.Project.pages;return}clearInterval(p),l()},2e3)});let o=new Date(2023,1,3),s=async()=>{let l=new Date,p={start:o,end:Ye(l,1)},{render:u,dispose:d}=be(),m;try{let g=await Qg(t),h=await Qg(r),x=cp(p).filter(_=>{let y=Pn(_,g)[0],L=n.find(E=>E.title===y);return!L||!L.exists}),w=Cp(p).filter(_=>{let y=Pn(_,h)[0],L=n.find(E=>E.title===y);return!L||!L.exists});if(x.length===0&&w.length===0)return;let P=x.length+w.length;u({type:"spinner"},{type:"text",text:create ${P} review pages...}),m=await Fe();for(let _ of[...x.map(y=>Pn(y,g)),...w.map(y=>Pn(y,h))])await ce(e,_[0],(y,L)=>L.persistent?void 0:_,m?{socket:m}:{}),P--,u({type:"spinner"},{type:"text",text:create ${P} review pages...});u({type:"check-circle"},{type:"text",text:created ${x.length+w.length} review pages.}),o=l}catch(g){u({type:"exclamation-triangle"},{type:"text",text:g instanceof Error?${g.name} ${g.message}:"Unknown error! (see developper console)"}),console.error(g)}finally{m&&await je(m),await xe(1e3),d()}},i=s(),a=new Date,c=setInterval(()=>{let l=new Date;ot(a,l)||(a=l,i.then(()=>i=s()))},1e4);return()=>(clearTimeout(c),i)},Qg=async e=>{let t=await po(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 gP=e=>{let t=document.querySelector("nav.navbar");if(!(t instanceof HTMLElement))throw Error('"nav.navbar" does not exist.');let r=new Date(e.now.getFullYear(),e.now.getMonth(),e.now.getDate()),n=(e.now.getTime()-r.getTime())/(24*3600*1e3),o=(n*100-.25).toFixed(2),s=(n*100+.25).toFixed(2);t.style.background=linear-gradient(to right, ${o<0?${e.now} ${s}%, transparent ${s}%:s>100?transparent ${o}%, ${e.present} ${o}%:transparent ${o}%, ${e.present} ${o}% ${s}%, transparent ${s}%}), linear-gradient(to right, ${e.by3} 0.20%, transparent 0.20% 12.3%, ${e.by3} 12.3% 12.7%, transparent 12.7% 24.8%, ${e.by3} 24.8% 25.2%, transparent 25.2% 37.3%, ${e.by3} 37.3% 37.7%, transparent 37.7% 49.8%, ${e.by3} 49.8% 50.2%, transparent 50.2% 62.3%, ${e.by3} 62.3% 62.7%, transparent 62.7% 74.8%, ${e.by3} 74.8% 75.2%, transparent 75.2% 87.3%, ${e.by3} 87.3% 87.7%, transparent 87.7% 99.8%, ${e.by3} 99.8%), var(--navbar-bg, rgba(53, 59, 72, 0.6))},Ya;setInterval(()=>{Ya!==void 0&&cancelAnimationFrame(Ya),Ya=requestAnimationFrame(()=>gP({now:new Date,present:"#ffdd4480",by3:"#80808080"}))},1e3);var Va=(...e)=>{let t=e.flatMap(n=>{if(typeof n=="string")return[Ps(n)];if(Array.isArray(n.type))return[Jg(n.type)];switch(n.type){case"text":return[Ps(n.text)];case"group":{let o=Va(...n.items);return o?[o]:[]}default:return[Jg(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},Ps=e=>{let t=document.createElement("span");return t.classList.add("item"),t.append(e),t},Jg=e=>{if(Array.isArray(e)){let t=document.createElement("span");t.classList.add("fa-stack");let r=Qa(e[0]);r.classList.add("fa-stack-1x");let n=Qa(e[1]);return n.classList.add("fa-stack-1x"),t.append(r,n),Ps(t)}return Ps(Qa(e))},Qa=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:Ja,selection:Za}=qe(),Zg=e=>{let{className:t,display:r,onClick:n,context:o="page"}=e,s=document.createElement("div");t&&s.classList.add(t),eh(o)||(s.style.display="none");let i=(...l)=>{if(l.length===1&&l[0]===""){s.style.display="none";return}s.textContent="";let p=Va(...l);p&&s.append(p)},a=typeof r=="function"?r({cursor:Ja,selection:Za}):r;return i(...Array.isArray(a)?a:[a]),s.addEventListener("click",l=>{l.preventDefault(),l.stopPropagation(),n({cursor:Ja,selection:Za,setDisplay:i})}),{status:s,context:o,update:()=>{if(eh(o)?s.removeAttribute("style"):s.style.display="none",typeof r=="function"){let l=r({cursor:Ja,selection:Za});i(...Array.isArray(l)?l:[l])}}}},eh=e=>e!=="stream"?scrapbox.Layout===e:scrapbox.Layout==="list"&&location.pathname.startsWith("/stream");var th=()=>{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 ec=new Set,{cursor:hP,selection:xP}=qe(),bP=th();var at=e=>{let t=Zg(e);return ec.add(t),bP.append(t.status),()=>{t.status.remove(),ec.delete(t)}},tc=()=>{for(let{update:e}of ec)e()};hP.addChangeListener(()=>tc());xP.addChangeListener(()=>tc());scrapbox.addListener("layout:changed",tc);var rh=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)})}},nh=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(),fe("Delete")}catch(r){console.error(r),alert(Faild to cut:
${JSON.stringify(r)})}},oh=async e=>{try{let t=await navigator.clipboard.readText();if(!t)return;e.focus(),await Re(t)}catch(t){console.error(t),alert(Faild to paste:
${JSON.stringify(t)})}},sh=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=ft();t.hasFocus||(e.preventDefault(),t.focus())});var ih=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")}},ah=new ih;var ch=e=>new Promise(t=>setTimeout(t,e));async function mt(e,{wait:t=1}={}){let r=ah.textInput;r.focus(),r.value=e;let n=document.createEvent("UIEvent");n.initEvent("input",!0,!1),r.dispatchEvent(n),await ch(t)}if(pr()){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:()=>mt(le(new Date,"#yyyy-MM-dd HH:mm:ss "))}),scrapbox.PageMenu(e).addItem({title:"YYYY-MM-DD HH:mm:ss ",onClick:()=>mt(le(new Date,"yyyy-MM-dd HH:mm:ss "))}),scrapbox.PageMenu(e).addItem({title:"YYYY-MM-DD",onClick:()=>mt(le(new Date,"yyyy-MM-dd"))}),scrapbox.PageMenu(e).addItem({title:"HH:mm:ss ",onClick:()=>mt(le(new Date,"HH:mm:ss "))}),scrapbox.PageMenu(e).addItem({title:"⬜",onClick:()=>mt("⬜")}),scrapbox.PageMenu(e).addItem({title:"🚧",onClick:()=>mt("🚧")}),scrapbox.PageMenu(e).addItem({title:"⌛",onClick:()=>mt("⌛")}),scrapbox.PageMenu(e).addItem({title:"📝",onClick:()=>mt("📝")}),scrapbox.PageMenu(e).addItem({title:"✅",onClick:()=>mt("✅")}),scrapbox.PageMenu(e).addItem({title:"❌",onClick:()=>mt("❌")})}scrapbox.PageMenu.addItem({title:"Open kakeru",image:"https://i.kakeru.app/15c3b1a40b6b3c2ebd68f33f4c86b3f6-opaque.png",onClick:()=>window.open("https://kakeru.app")});async function lh(e,{from:t,to:r,merge:n}){if(t===r)return{success:!0,dup:!1};let o=await ct(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 ct(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 ce(r,e,c=>[...c,...s.lines.slice(1)].map(l=>l.text)),await Uc(t,e),{success:!0,dup:a.persistent})}var rc=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}=be();n({type:"spinner"},{type:"text",text:/${t}/${e} → /${r}/${e}});try{let s=await lh(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}/${oe(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 rc()}});scrapbox.PageMenu.addItem({title:"Transport and Open",onClick:async()=>{let e=await rc();!e||window.open(e)}});var nc=e=>e.replace(/[\[\]]/g,"").replace(/\s/g," "),dr=e=>${e}.padStart(2,"0"),ph=e=>${e.getFullYear()}-${dr(e.getMonth()+1)}-${dr(e.getDate())} ${dr(e.getHours())}:${dr(e.getMinutes())}:${dr(e.getSeconds())},oc=e=>${e.getFullYear()}-${dr(e.getMonth()+1)}-${dr(e.getDate())};async function uh(e,t,r,n){let{render:o,dispose:s}=be(),i=[],a=[];for(let l of yP(r)){if(l.type==="line"){i.push(${nc(l.text)}~@${oc(new Date)});continue}let p=${nc(l.lines0)}~@${oc(new Date)};a.push([p,...l.lines.slice(1),"",#${ph(new Date)}]),i.push(${p})}let c=n?.socket;try{c??=await Fe(),o({type:"spinner"},{type:"text",text:Adding ${i.length} items...}),await ce(e,t,l=>{let p=l.map(d=>d.text),u=p.flatMap((d,m)=>d.trim()==="[/icons/hr.icon]"?[m]:[]).pop()??-1;return u<0?[...p,...i]:[...p.slice(0,u),...i,...p.slice(u)]},{socket:c}),o({type:"spinner"},{type:"text",text:Create ${a.length} pages...}),await Promise.all(a.map(l=>ce(e,l[0],p=>[p[0].text,...p.slice(1).map(u=>u.text),...l.slice(1)],{socket:c}))),o({type:"check-circle"},{type:"text",text:"Added to the inbox."})}catch(l){o({type:"exclamation-triangle"},{type:"text",text:"Failed to add (see console). Write directory instead."}),console.error(l),br(e,t,[...i,...a].join( ))}finally{let l=xe(1e3);c&&await je(c),await l,s()}}function*yP(e){let t=0;for(;t<e.length;){let r=yt(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 dh=async(e,t)=>{let r=window.prompt("Type all you think of","");if(!r||r.trim()==="")return;let n=r.trim().split(/\s+/);await uh(e,t,n)};var wP="button.js";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{execute:r}=await import(../${encodeURIComponent(t.title)}/${wP});r()}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 Sn=e=>{let[t,r]=q([]),[n,o]=q([]),[s,i]=q(!1),a=N(async()=>{let l=new Set;i(!0);let p=await cs(e),u=[],d=p.flatMap(({links:m,project:g})=>m.flatMap(h=>{let{title:x}=ns(h),w=Ot(x);if(!w)return[];if(!w.ok)return u.push({project:g,title:x,...w.value}),[];let P=ne(x);return l.has(P)?[]:(l.add(P),[{project:g,title:x,...w.value}])}));r(d),o(u),i(!1)},[e]),c=N(async()=>{i(!0),await as(e,60),i(!1)},[e]);return H(()=>(a(),wn(e,a)),[e,a]),{tasks:t,errors:n,load:c,loading:s}};var Ss=()=>{let e=se(null),t=se(new Set),r=N(()=>{for(let a of t.current)a()},[]),n=N(()=>{e.current?.showModal?.(),r()},[]),o=N(()=>e.current?.close?.(),[]),s=N(()=>e.current?.open?o():n(),[]),i=N(a=>(t.current.add(a),()=>t.current.delete(a)),[]);return{ref:e,open:n,close:o,toggle:s,onOpen:i}};var _n=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{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{font-weight:900}.today{border:1px solid;border-radius:3px}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 Br=({text:e,title:t})=>{let[r,n]=q(""),o=N(async s=>{s.preventDefault(),s.stopPropagation();try{await navigator.clipboard.writeText(e),n("Copied"),await xe(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 vP=60*60*24*1e3,mh=(e,t)=>{let r=te(e.refDate),n=(t.getTime()-r.getTime())/vP;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 fh=(e,t)=>{if(t.score!==e.score)return t.score-e.score;let r=gh(e.freshness),n=gh(t.freshness);return r!==n?n-r:st(xt(e),xt(t))?-1:1},gh=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 Bt=e=>${e.getFullYear()}-${pt(e.getMonth()+1)}-${pt(e.getDate())},Rn=e=>{let[t,r,n]=e.split("-").map(o=>parseInt(o,10));return{year:t,month:r,date:n}},Cn=e=>${Ap(e)}-w${pt(Zr(e))},_s=e=>{let[t,r]=e.split("-w").map(n=>parseInt(n,10));return uo(qp(new Date(t,0,1),r))};var Mn=({loading:e})=>e?f("div",{className:"progress"},f("i",{className:"fa fa-spinner"}),f("span",null,"loading tasks...")):f("div",{className:"progress"});var Hr=()=>{let[e,t]=q(new Date);return H(()=>{let r=setInterval(()=>t(new Date),1e3*60);return()=>{clearInterval(r)}},[]),e};var hh=e=>{switch(e){case"todo":return"ToDo";case"note":return"覚書";case"deadline":return"締切";case"up-down":return"浮遊";case"done":return"完了"}};var xh=(e,t)=>new URL(/${e.project}/${oe(e.title)},t??location.href);var Rs=({children:e,project:t,title:r,className:n,...o})=>f("a",{...o,className:[n??"","page-link"].join(" "),type:"link",href:xh({project:t,title:r}).pathname,...t===scrapbox.Project.name?{rel:"route"}:{rel:"noopener noreferrer",target:"_blank"}},e);var bh=({action:e,pActions:t})=>{let r=A(()=>hh(e.freshness.status),[e.freshness.status]),n=A(()=>gt(xt(e)).slice(11)||" ",[xt(e)]),o=A(()=>cn(e),[e]),s=Math.floor(Math.round(e.score)/7),i=Hr(),a=A(()=>e.executed!==void 0&&Yt(jt(te(e.executed.start),e.executed.duration),i),[e.executed?.start,e.executed?.duration,i]),c=A(()=>[...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:kP(e).toFixed(2)}}:{}},f(Br,{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(Rs,{project:e.project,title:e.raw},e.name))},kP=e=>Math.max(.8*Math.exp(Math.log(8/7)/7*e.score),.05);var yh=(e=Bt(new Date))=>{let[t,r]=q(e),n=N(()=>{r(s=>{switch(s){case"errors":return"expired";case"expired":return Bt(new Date);default:{let i=te(Rn(s));return i.setDate(i.getDate()+1),Bt(i)}}})},[]),o=N(()=>{r(s=>{let i=Bt(new Date);switch(s){case"errors":return"errors";case"expired":return"errors";case i:return"expired";default:{let a=te(Rn(s));return a.setDate(a.getDate()-1),Bt(a)}}})},[]);return{pageNo:t,next:n,prev:o}};var In=()=>N(e=>e.stopPropagation(),[]);var Cs=(e,t)=>H(()=>(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=>_e(f(EP,{getController:n,projects:e}),r))},EP=({getController:e,projects:t})=>{let{tasks:r,errors:n,load:o,loading:s}=Sn(t),{pageNo:i,next:a,prev:c}=yh(),l=A(()=>{if(i==="errors")return n.map(w=>({name:${w.title}
name:${w.name}
message:${w.message},raw:w.title,freshness:{refDate:{year:9999,month:1,date:1},status:"todo"},project:w.project,generated:!0,score:0}));if(i==="expired"){let w=new Date;return r.flatMap(P=>!ht(P)&&st(ru(P),We(w))&&P.freshness===void 0&&P.recurrence===void 0?[{...P,score:0,freshness:{refDate:P.executed.start,status:"todo"}}]:[]).sort((P,_)=>st(xt(P),xt(_))?-1:0)}let x=te(Rn(i));return r.flatMap(w=>{if(!w.freshness)return[];if(vr(w))return[];let P=mh(w.freshness,x);return P>-999?[{...w,score:P}]:[]}).sort(fh)},[r,n,i]),{ref:p,open:u,close:d,toggle:m}=Ss();H(()=>e({open:u,close:d,toggle:m}),[e]);let g=In(),h=A(()=>[i,...l.map(x=> ${x.raw})].join( ),[l,i]);return Cs("page:changed",d),f(V,null,f("style",null,_n),f("dialog",{ref:p,onClick:d},f("div",{className:"controller",onClick:g},f(Br,{text:h,title:"Copy All Tasks"}),f("span",null,i),f(Mn,{loading:s}),f("button",{className:"navi left",onClick:c},""),f("button",{className:"navi right",onClick:a},""),f("button",{className:"navi reload",onClick:o,disabled:s},""),f("button",{className:"close",onClick:d},"")),f("ul",{className:"result task-list",onClick:g,"data-page-no":i},l.map((x,w)=>f(bh,{action:x,pActions:l.slice(0,w)})))))};var Ms=(e,t)=>/${e}/${ne(t)},Is=new Map,sc=new Map,vh=(e,t)=>{Is.set(e,t);for(let r of sc.get(e)??[])r(t)},Ns=()=>{mr!==void 0&&(clearInterval(mr),mr=void 0);let e=scrapbox.Project.name,t=scrapbox.Page.title??"",r=Ms(e,t);if(!Is.has(r))return;let n=Ae().map(o=>o.text);mr=setInterval(()=>{ne(t)===ne(n[0])&&(vh(r,n),mr!==void 0&&(clearInterval(mr),mr=void 0))},1e3)},mr;scrapbox.on("page:changed",()=>{scrapbox.off("lines:changed",Ns);let e=scrapbox.Project.name,t=scrapbox.Page.title??"",r=Ms(e,t);!Is.has(r)||scrapbox.on("lines:changed",Ns)});var kh=(e,t)=>{let r=Ms(e,t),n=Is.get(r);return n||ct(e,t).then(o=>{if(!o.ok)return[];let s=o.value.lines.map(i=>i.text);vh(r,s),t===scrapbox.Page.title&&!scrapbox.listeners("lines:changed").includes(Ns)&&scrapbox.on("lines:changed",Ns)}),n??[]},Eh=(e,t)=>{let[r,n]=q(kh(e,t));return Gt(()=>n(kh(e,t)),[e,t]),H(()=>{let o=Ms(e,t),s=sc.get(o)??new Set;return s.add(n),sc.set(o,s),()=>{s.delete(n)}},[e,t]),r};var ic=e=>e.duration===void 0?void 0:We(jt(te(e.start),e.duration)),ac=(e,t)=>{let r=te(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:ic(s),duration:e.duration-o}]};var fr=e=>"title"in e,TP=e=>e.record?.duration!==void 0,Th=(e,t)=>fr(e)&&e.status==="done"?e.status:TP(e)?fr(e)&&e.executed?st(We(t),e.executed.start)?"moved":"expired":"done":st(ic(e.plan),We(t))?fr(e)?"expired":"done":"undone";var Lh=(e,t)=>{let r=Ot(e.title.slice(1,-1));if(!e.plan.start)return;let n={name:r?.ok?r.value.name:e.title,plan:{start:We(e.plan.start),duration:(e.plan.duration??0)/60}};if(e.record.start&&(n.record={start:We(e.record.start)},e.record.end&&(n.record.duration=hi(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),ht(r.value)||(o.executed=r.value.executed),o},cc=(e,t)=>{let r=wo(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 Ph=(e,t,r)=>{let n=[lc(e,vt(t,1),r),lc(e,t,r),lc(e,Ye(t,1),r)],o=A(()=>n.flat(),n);return A(()=>{let s=ap(t),i=Mp(t);return o.flatMap(a=>{let[,c]=ac(a.plan,s);if(!c)return[];let[l]=ac(c,i);if(!l)return[];let{plan:p,...u}=a;return[{plan:l,...u}]}).sort((a,c)=>st(a.plan.start,c.plan.start)?-1:0)},[o,t])},lc=(e,t,r)=>{let n=Eh(e,sn(t)),o=A(()=>PP(n,e),[n,e]);return A(()=>o.length!==0?o:LP(t,r),[o,t,r])},LP=(e,t)=>t.flatMap(r=>{if(r.freshness?.status==="done")return[];if(ht(r))return[];if(vr(r)){let o=yo(r,e);return o?[cc(o,r.project)]:[]}let n=te(r.executed.start);return ot(n,e)?[cc(r,r.project)]:[]}),PP=(e,t)=>{let r=[];for(let n of Vt(e)){if(Dt(n))continue;let o=Lh(n,t);!o||r.push(o)}return r};var Sh=({event:e})=>{let t=A(()=>e.plan.start.hours+e.plan.start.minutes/60,[e.plan.start]),r=A(()=>--start: ${t}; --duration: ${e.plan.duration};,[t,e.plan.duration]),n=Hr(),o=A(()=>Th(e,n),[e,n]);return fr(e)?f(Rs,{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 _h=({project:e,date:t,tasks:r})=>{let n=Ph(e,t,r),o=A(()=>n.flatMap(a=>fr(a)?[${a.title}]:[]).join( ),[n]),s=Hr(),i=A(()=>ot(s,t)?f("div",{className:"indicator",style:--start: ${Ip(s)+Np(s)/60}}):f(V,null),[s,t]);return f("div",{className:"timeline",role:"gridcell"},n.map(a=>f(Sh,{event:a})),i,f(Br,{text:o}))};var pc=({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,mo(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":${pt(o)}:00}))),e.map(o=>f(_h,{project:r,date:o,tasks:t})))));var uc=(e,t,r)=>{let[n,o]=q(e),s=N(()=>o(t),[t]),i=N(()=>o(r),[t]),a=N(c=>o(c),[]);return{pageNo:n,next:s,prev:i,jump:a}};var Rh=e=>{let t=se(new Set),[r,n]=q(e),o=N(()=>{for(let l of t.current)l()},[]),s=N(()=>{n(!0),o()},[]),i=N(()=>n(!1),[]),a=N(()=>n(l=>(l||o(),!l)),[]),c=N(l=>(t.current.add(l),()=>t.current.delete(l)),[]);return{isOpen:r,open:s,close:i,toggle:a,onOpen:c}};var Ch=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=>_e(f(SP,{getController:n,projects:e,mainProject:e[0]}),r))},Mh=(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=>_e(f(_P,{getController:o,projects:e,mainProject:e[0],open:t}),n))},SP=({getController:e,projects:t,mainProject:r})=>{let{tasks:n,load:o,loading:s}=Sn(t),{pageNo:i,next:a,prev:c,jump:l}=uc(Cn(new Date),RP,CP),p=A(()=>{let _=_s(i);return[0,1,2,3,4,5,6].map(y=>Ye(_,y))},[i]),{ref:u,open:d,close:m,toggle:g,onOpen:h}=Ss();H(()=>e({open:d,close:m,toggle:g}),[e]);let x=In();Cs("page:changed",m);let w=N(()=>l(Cn(new Date)),[l]),P=se(null);return H(()=>{let _=h(()=>{if(!P.current)return;let y=P.current.getElementsByClassName("indicator")[0];if(!y)return;let L=globalThis.scrollY;y.scrollIntoView({block:"center"}),globalThis.scroll(0,L),_()})},[]),f(V,null,f("style",null,_n),f("dialog",{ref:u,onClick:m},f("div",{className:"controller",onClick:x},f("span",null,i),f(Mn,{loading:s}),f("button",{className:"navi left",onClick:c},""),f("button",{className:"navi right",onClick:a},""),f("button",{className:"today",onClick:w},"today"),f("button",{className:"navi reload",onClick:o,disabled:s},""),f("button",{className:"close",onClick:m},"")),f("div",{ref:P,className:"result scheduler",onClick:x,"data-page-no":i},f(pc,{dateList:p,tasks:n,project:r}))))},_P=({projects:e,mainProject:t,getController:r,open:n})=>{let o=In(),{tasks:s,load:i,loading:a}=Sn(e),{pageNo:c,next:l,prev:p,jump:u}=uc(new Date,MP,IP),d=A(()=>[c],[c]),m=N(()=>u(new Date),[u]),{isOpen:g,open:h,close:x,toggle:w,onOpen:P}=Rh(n);H(()=>r({open:h,close:x,toggle:w}),[r]);let _=se(null);return H(()=>{let y=()=>{if(!_.current)return!1;let E=_.current.getElementsByClassName("indicator")[0];return E?(requestAnimationFrame(()=>{let I=globalThis.scrollY;E.scrollIntoView({block:"center"}),globalThis.scroll(0,I)}),!0):!1};if(n){y();return}let L=P(()=>{y()&&L()})},[n]),f(V,null,f("style",null,_n),f("div",{className:wedget${g?" open":""},ref:_},f("div",{className:"controller",onClick:o},f("span",null,Bt(c)),f(Mn,{loading:a}),f("button",{className:"navi left",onClick:p},""),f("button",{className:"navi right",onClick:l},""),f("button",{className:"today",onClick:m},"today"),f("button",{className:"navi reload",onClick:i,disabled:a},"")),f(pc,{dateList:d,tasks:s,project:t,hasColumn:!1})))},RP=e=>Cn(pp(_s(e),1)),CP=e=>Cn(Gp(_s(e),1)),MP=e=>Ye(e,1),IP=e=>vt(e,1);var Ih=e=>{if(!e.isTrusted||e.data.length===0||!(e.target instanceof HTMLTextAreaElement)||e.target.id!=="text-input")return;let{cursor:t,selection:r}=qe();if(!!r.hasSingleLineSelection())switch([...e.data].pop()){case"「":{let n=document.getElementsByClassName("button link-button")?.[0];if(!(n instanceof HTMLElement))return;n.click();let o=e.target;(async()=>{await xe(100),o.blur(),await new Promise(s=>{document.addEventListener("compositionend",s,{capture:!0,once:!0})}),fe("Backspace"),o.focus(),t.focus()})();break}default:break}},Nh=()=>(document.addEventListener("compositionupdate",Ih,{capture:!0}),()=>{document.removeEventListener("compositionupdate",Ih,{capture:!0})});Fc({project:"takker-dist"});tp().then(e=>{scrapbox.PageMenu.addItem({title:"Fulltext Search",onClick:()=>{e.toggle()}})});ci.push(...lu);(async()=>{let e=new Request("https://scrapbox.io/files/65eac330d577560024496909.wasm"),t=await Tm(e);t||(t=await fetch(e),await Lm(e,t)),await Em(await WebAssembly.compileStreaming(t),"/api/code/takker-dist/esbuild-wasm-no-blob/worker.js")})();(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 ff({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(([r,n])=>[r,https://scrapbox.io/api/pages/${r}/${n}/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});document.getElementById("text-input").addEventListener("keydown",r=>{if(!(r.ctrlKey||r.metaKey||r.altKey||document.querySelector(".line .popup-menu")!==null&&r.key!=="Escape")){switch(r.key){case"Tab":{if(!(r.shiftKey?t.selectPrev({cyclic:!0}):t.selectNext({cyclic:!0})))return;break}case"Enter":{if(r.shiftKey||!t.confirm())return;break}case"Escape":{if(r.shiftKey||!t.cancel())return;break}default:return}r.preventDefault(),r.stopPropagation()}})})();kf({previewers:[{when:/(?:^|\.)svg$/,preview:Ef},{when:/(?:^|\.)glsl$/,preview:tg},{when:/(?:^|\.)(?:plantuml|puml|pu)$/,preview:og},{when:/(?:^|\.)tikz\(tex\)$/,preview:ig("https://scrapbox.io/api/code/takker-dist/scrapbox-tikz/mod.js","https://scrapbox.io/files/65d1645c19cd8e002433c3df")}]});(async()=>{let{toggle:e}=await ug();scrapbox.PageMenu.addItem({title:"履歴スライダー",image:"https://1.bp.blogspot.com/-UZtkSEX0wh4/U5l5_dNcEsI/AAAAAAAAhWs/UzJGVzyiX8Y/s800/kaichu_dokei.png",onClick:e})})();Ba.start();Ba.push({key:"-",buttonName:""},{key:"]",buttonName:""},{key:"c",buttonName:"Copy plain"},{key:"4",buttonName:"fx"});Vg("takker",["takker","振り返り(takker-workflow@0.0.1)のtemplate","txt"],["takker","1週間の振り返り(takker-workflow@0.0.1)のtemplate","txt"]);pr()&&(at({display:{type:"caret-left"},onClick:({cursor:e,selection:t})=>{e.focus(),t.getSelectedText()===""?ro():Jn()}}),at({display:{type:"caret-right"},onClick:({cursor:e,selection:t})=>{e.focus(),t.getSelectedText()===""?to():Qn()}}),at({display:{type:"caret-up"},onClick:({cursor:e,selection:t})=>{e.focus(),t.getSelectedText()===""?no():Zn()}}),at({display:{type:"caret-down"},onClick:({cursor:e,selection:t})=>{e.focus(),t.getSelectedText()===""?oo():eo()}}),at({display:{type:"copy"},onClick:async({cursor:e,selection:t})=>await rh(e,t)}),at({display:{type:"cut"},onClick:async({cursor:e,selection:t})=>await nh(e,t)}),at({display:{type:"clipboard"},onClick:async({cursor:e})=>await oh(e)}),at({display:{type:"undo"},onClick:()=>Nl()}),at({display:{type:"redo"},onClick:()=>jl()}),at({display:({cursor:e})=>e.getVisible()&&e.hasFocus&&e.visiblePopupMenu?{type:["i-cursor","slash"]}:{type:"i-cursor"},onClick:({cursor:e})=>sh(e)}));if(pr()&&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:nn}),scrapbox.PageMenu(e).addItem({title:"Transport",onClick:()=>an({from:{project:scrapbox.Project.name,title:scrapbox.Page.title},to:"takker-memex"})})}if(pr()){let e="New Page",t=[Jt,Zt,er];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||kt({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||kt({project:r,mode:"self",hooks:t})?.()}})}scrapbox.PageMenu.addMenu({title:"Add to inbox",image:"https://img.icons8.com/ios/180/FFFFFF/inbox.png",onClick:()=>dh("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 Ch(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;ac??=!1;let l=await Mh(n,ac),p=()=>{ac=!ac,l.toggle(),localStorage.setItem(i,JSON.stringify(a))};pr()?at({display:{type:"calendar"},onClick:p}):scrapbox.PageMenu.addItem({title:"toggle wedget",onClick:p})}})();Nh();scrapbox.TimeStamp.removeAllFormats();export{at as addButton,Re as insertText,Ba as popupBindings,ci as scrapBindings}; /** @license
* esbuild-wasm@v0.20.1
*
* 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.
*/