3 lines
35 KiB
JavaScript
Executable File

var Pe=Object.defineProperty;var We=(o,e,t)=>e in o?Pe(o,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):o[e]=t;var g=(o,e)=>()=>(o&&(e=o(o=0)),e);var B=(o,e)=>{for(var t in e)Pe(o,t,{get:e[t],enumerable:!0})};var S=(o,e,t)=>(We(o,typeof e!="symbol"?e+"":e,t),t);var qe,_,Z=g(()=>{qe={ReadableStream:globalThis.ReadableStream,WritableStream:globalThis.WritableStream,TransformStream:globalThis.TransformStream,DOMException:globalThis.DOMException,Blob:globalThis.Blob,File:globalThis.File},_=qe});var te={};B(te,{FileHandle:()=>R,FolderHandle:()=>N,Sink:()=>ee,default:()=>$e});var O,Ke,m,Ge,E,Ce,Xe,de,Lr,Ve,ee,R,N,Ye,$e,re=g(()=>{U();Z();({File:O,Blob:Ke,DOMException:m}=_),{INVALID:Ge,GONE:E,MISMATCH:Ce,MOD_ERR:Xe,SYNTAX:de,SECURITY:Lr,DISALLOWED:Ve}=L,ee=class{constructor(e,t){this.fileHandle=e,this.file=t,this.size=t.size,this.position=0}write(e){let t=this.file;if(typeof e=="object"){if(e.type==="write"){if(Number.isInteger(e.position)&&e.position>=0&&(this.position=e.position,this.size<e.position&&(this.file=new O([this.file,new ArrayBuffer(e.position-this.size)],this.file.name,this.file))),!("data"in e))throw new m(...de("write requires a data argument"));e=e.data}else if(e.type==="seek")if(Number.isInteger(e.position)&&e.position>=0){if(this.size<e.position)throw new m(...Ge);this.position=e.position;return}else throw new m(...de("seek requires a position argument"));else if(e.type==="truncate")if(Number.isInteger(e.size)&&e.size>=0){t=e.size<this.size?new O([t.slice(0,e.size)],t.name,t):new O([t,new Uint8Array(e.size-this.size)],t.name),this.size=t.size,this.position>t.size&&(this.position=t.size),this.file=t;return}else throw new m(...de("truncate requires a size argument"))}e=new Ke([e]);let r=this.file,i=r.slice(0,this.position),n=r.slice(this.position+e.size),s=this.position-i.size;s<0&&(s=0),r=new O([i,new Uint8Array(s),e,n],r.name),this.size=r.size,this.position+=e.size,this.file=r}close(){if(this.fileHandle._deleted)throw new m(...E);this.fileHandle._file=this.file,this.file=this.position=this.size=null,this.fileHandle.onclose&&this.fileHandle.onclose(this.fileHandle)}},R=class{constructor(e="",t=new O([],e),r=!0){this._file=t,this.name=e,this.kind="file",this._deleted=!1,this.writable=r,this.readable=!0}async getFile(){if(this._deleted)throw new m(...E);return this._file}async createWritable(e){if(!this.writable)throw new m(...Ve);if(this._deleted)throw new m(...E);let t=e.keepExistingData?await this.getFile():new O([],this.name);return new ee(this,t)}async isSameEntry(e){return this===e}async _destroy(){this._deleted=!0,this._file=null}},N=class{constructor(e,t=!0){this.name=e,this.kind="directory",this._deleted=!1,this._entries={},this.writable=t,this.readable=!0}async*entries(){if(this._deleted)throw new m(...E);yield*Object.entries(this._entries)}async isSameEntry(e){return this===e}async getDirectoryHandle(e,t){if(this._deleted)throw new m(...E);let r=this._entries[e];if(r){if(r instanceof R)throw new m(...Ce);return r}else{if(t.create)return this._entries[e]=new N(e);throw new m(...E)}}async getFileHandle(e,t){let r=this._entries[e],i=r instanceof R;if(r&&i)return r;if(r&&!i)throw new m(...Ce);if(!r&&!t.create)throw new m(...E);if(!r&&t.create)return this._entries[e]=new R(e)}async removeEntry(e,t){let r=this._entries[e];if(!r)throw new m(...E);await r._destroy(t.recursive),delete this._entries[e]}async _destroy(e){for(let t of Object.values(this._entries)){if(!e)throw new m(...Xe);await t._destroy(e)}this._entries={},this._deleted=!0}},Ye=new N(""),$e=()=>Ye});var ue={};B(ue,{FileHandle:()=>X,FolderHandle:()=>x,default:()=>Qe});var Je,ie,X,x,Qe,pe=g(()=>{U();({DISALLOWED:Je}=L),ie=class{constructor(e,t){this.writer=e,this.fileEntry=t}async write(e){if(typeof e=="object"){if(e.type==="write"){if(Number.isInteger(e.position)&&e.position>=0&&(this.writer.seek(e.position),this.writer.position!==e.position&&(await new Promise((t,r)=>{this.writer.onwriteend=t,this.writer.onerror=r,this.writer.truncate(e.position)}),this.writer.seek(e.position))),!("data"in e))throw new DOMException("Failed to execute 'write' on 'UnderlyingSinkBase': Invalid params passed. write requires a data argument","SyntaxError");e=e.data}else if(e.type==="seek")if(Number.isInteger(e.position)&&e.position>=0){if(this.writer.seek(e.position),this.writer.position!==e.position)throw new DOMException("seeking position failed","InvalidStateError");return}else throw new DOMException("Failed to execute 'write' on 'UnderlyingSinkBase': Invalid params passed. seek requires a position argument","SyntaxError");else if(e.type==="truncate")return new Promise(t=>{if(Number.isInteger(e.size)&&e.size>=0)this.writer.onwriteend=r=>t(),this.writer.truncate(e.size);else throw new DOMException("Failed to execute 'write' on 'UnderlyingSinkBase': Invalid params passed. truncate requires a size argument","SyntaxError")})}await new Promise((t,r)=>{this.writer.onwriteend=t,this.writer.onerror=r,this.writer.write(new Blob([e]))})}close(){return new Promise(this.fileEntry.file.bind(this.fileEntry))}},X=class{constructor(e,t=!0){this.file=e,this.kind="file",this.writable=t,this.readable=!0}get name(){return this.file.name}isSameEntry(e){return this.file.toURL()===e.file.toURL()}getFile(){return new Promise(this.file.file.bind(this.file))}createWritable(e){if(!this.writable)throw new DOMException(...Je);return new Promise((t,r)=>this.file.createWriter(i=>{e.keepExistingData===!1?(i.onwriteend=n=>t(new ie(i,this.file)),i.truncate(0)):t(new ie(i,this.file))},r))}},x=class{constructor(e,t=!0){this.dir=e,this.writable=t,this.readable=!0,this.kind="directory",this.name=e.name}isSameEntry(e){return this.dir.fullPath===e.dir.fullPath}async*entries(){let e=this.dir.createReader(),t=await new Promise(e.readEntries.bind(e));for(let r of t)yield[r.name,r.isFile?new X(r,this.writable):new x(r,this.writable)]}getDirectoryHandle(e,t){return new Promise((r,i)=>{this.dir.getDirectory(e,t,n=>{r(new x(n))},i)})}getFileHandle(e,t){return new Promise((r,i)=>this.dir.getFile(e,t,n=>r(new X(n)),i))}async removeEntry(e,t){let r=await this.getDirectoryHandle(e,{create:!1}).catch(i=>i.name==="TypeMismatchError"?this.getFileHandle(e,{create:!1}):i);if(r instanceof Error)throw r;return new Promise((i,n)=>{r instanceof x?t.recursive?r.dir.removeRecursively(()=>i(),n):r.dir.remove(()=>i(),n):r.file&&r.file.remove(()=>i(),n)})}},Qe=(o={})=>new Promise((e,t)=>window.webkitRequestFileSystem(o._persistent,0,r=>e(new x(r.root)),t))});var P,Ze,ne,V,ae=g(()=>{P=Symbol("adapter"),ne=class{constructor(e){S(this,Ze);S(this,"name");S(this,"kind");this.kind=e.kind,this.name=e.name,this[P]=e}async queryPermission({mode:e="read"}={}){let t=this[P];if(t.queryPermission)return t.queryPermission({mode:e});if(e==="read")return"granted";if(e==="readwrite")return t.writable?"granted":"denied";throw new TypeError(`Mode ${e} must be 'read' or 'readwrite'`)}async requestPermission({mode:e="read"}={}){let t=this[P];if(t.requestPermission)return t.requestPermission({mode:e});if(e==="read")return"granted";if(e==="readwrite")return t.writable?"granted":"denied";throw new TypeError(`Mode ${e} must be 'read' or 'readwrite'`)}async remove(e={}){await this[P].remove(e)}async isSameEntry(e){return this===e?!0:!e||typeof e!="object"||this.kind!==e.kind||!e[P]?!1:this[P].isSameEntry(e[P])}};Ze=P;Object.defineProperty(ne.prototype,Symbol.toStringTag,{value:"FileSystemHandle",writable:!1,enumerable:!1,configurable:!0});V=ne});var et,k,me,fe=g(()=>{Z();({WritableStream:et}=_),k=class extends et{constructor(...e){super(...e),Object.setPrototypeOf(this,k.prototype),this._closed=!1}close(){this._closed=!0;let e=this.getWriter(),t=e.close();return e.releaseLock(),t}seek(e){return this.write({type:"seek",position:e})}truncate(e){return this.write({type:"truncate",size:e})}write(e){if(this._closed)return Promise.reject(new TypeError("Cannot write to a CLOSED writable stream"));let t=this.getWriter(),r=t.write(e);return t.releaseLock(),r}};Object.defineProperty(k.prototype,Symbol.toStringTag,{value:"FileSystemWritableFileStream",writable:!1,enumerable:!1,configurable:!0});Object.defineProperties(k.prototype,{close:{enumerable:!0},seek:{enumerable:!0},truncate:{enumerable:!0},write:{enumerable:!0}});me=k});var M={};B(M,{FileSystemFileHandle:()=>j,default:()=>He});var se,tt,j,He,T=g(()=>{ae();fe();se=Symbol("adapter"),j=class extends V{constructor(t){super(t);S(this,tt);this[se]=t}async createWritable(t={}){return new me(await this[se].createWritable(t))}async getFile(){return this[se].getFile()}};tt=se;Object.defineProperty(j.prototype,Symbol.toStringTag,{value:"FileSystemFileHandle",writable:!1,enumerable:!1,configurable:!0});Object.defineProperties(j.prototype,{createWritable:{enumerable:!0},getFile:{enumerable:!0}});He=j});var oe={};B(oe,{FileSystemDirectoryHandle:()=>w,default:()=>Fe});var C,rt,w,Fe,Y=g(()=>{ae();C=Symbol("adapter"),w=class extends V{constructor(t){super(t);S(this,rt);this[C]=t}async getDirectoryHandle(t,r={}){if(t==="")throw new TypeError("Name can't be an empty string.");if(t==="."||t===".."||t.includes("/"))throw new TypeError("Name contains invalid characters.");r.create=!!r.create;let i=await this[C].getDirectoryHandle(t,r);return new w(i)}async*entries(){let{FileSystemFileHandle:t}=await Promise.resolve().then(()=>(T(),M));for await(let[r,i]of this[C].entries())yield[i.name,i.kind==="file"?new t(i):new w(i)]}async*getEntries(){let{FileSystemFileHandle:t}=await Promise.resolve().then(()=>(T(),M));console.warn("deprecated, use .entries() instead");for await(let r of this[C].entries())yield r.kind==="file"?new t(r):new w(r)}async getFileHandle(t,r={}){let{FileSystemFileHandle:i}=await Promise.resolve().then(()=>(T(),M));if(t==="")throw new TypeError("Name can't be an empty string.");if(t==="."||t===".."||t.includes("/"))throw new TypeError("Name contains invalid characters.");r.create=!!r.create;let n=await this[C].getFileHandle(t,r);return new i(n)}async removeEntry(t,r={}){if(t==="")throw new TypeError("Name can't be an empty string.");if(t==="."||t===".."||t.includes("/"))throw new TypeError("Name contains invalid characters.");return r.recursive=!!r.recursive,this[C].removeEntry(t,r)}async resolve(t){if(await t.isSameEntry(this))return[];let r=[{handle:this,path:[]}];for(;r.length;){let{handle:i,path:n}=r.pop();for await(let s of i.values()){if(await s.isSameEntry(t))return[...n,s.name];s.kind==="directory"&&r.push({handle:s,path:[...n,s.name]})}}return null}async*keys(){for await(let[t]of this[C].entries())yield t}async*values(){for await(let[t,r]of this)yield r}[(rt=C,Symbol.asyncIterator)](){return this.entries()}};Object.defineProperty(w.prototype,Symbol.toStringTag,{value:"FileSystemDirectoryHandle",writable:!1,enumerable:!1,configurable:!0});Object.defineProperties(w.prototype,{getDirectoryHandle:{enumerable:!0},entries:{enumerable:!0},getFileHandle:{enumerable:!0},removeEntry:{enumerable:!0}});Fe=w});var he={};B(he,{config:()=>it,errors:()=>L,fromDataTransfer:()=>nt,getDirHandlesFromInput:()=>at,getFileHandlesFromInput:()=>st});async function nt(o){console.warn("deprecated fromDataTransfer - use `dt.items[0].getAsFileSystemHandle()` instead");let[e,t,r]=await Promise.all([Promise.resolve().then(()=>(re(),te)),Promise.resolve().then(()=>(pe(),ue)),Promise.resolve().then(()=>(Y(),oe))]),i=new e.FolderHandle("",!1);return i._entries=o.map(n=>n.isFile?new t.FileHandle(n,!1):new t.FolderHandle(n,!1)),new r.FileSystemDirectoryHandle(i)}async function at(o){let{FolderHandle:e,FileHandle:t}=await Promise.resolve().then(()=>(re(),te)),{FileSystemDirectoryHandle:r}=await Promise.resolve().then(()=>(Y(),oe)),i=Array.from(o.files),n=i[0].webkitRelativePath.split("/",1)[0],s=new e(n,!1);return i.forEach(l=>{let a=l.webkitRelativePath.split("/");a.shift();let c=a.pop(),u=a.reduce((p,f)=>(p._entries[f]||(p._entries[f]=new e(f,!1)),p._entries[f]),s);u._entries[c]=new t(l.name,l,!1)}),new r(s)}async function st(o){let{FileHandle:e}=await Promise.resolve().then(()=>(re(),te)),{FileSystemFileHandle:t}=await Promise.resolve().then(()=>(T(),M));return Array.from(o.files).map(r=>new t(new e(r.name,r,!1)))}var L,it,U=g(()=>{L={INVALID:["seeking position failed.","InvalidStateError"],GONE:["A requested file or directory could not be found at the time an operation was processed.","NotFoundError"],MISMATCH:["The path supplied exists, but was not an entry of requested type.","TypeMismatchError"],MOD_ERR:["The object can not be modified in this way.","InvalidModificationError"],SYNTAX:o=>[`Failed to execute 'write' on 'UnderlyingSinkBase': Invalid params passed. ${o}`,"SyntaxError"],SECURITY:["It was determined that certain files are unsafe for access within a Web application, or that too many calls are being made on file resources.","SecurityError"],DISALLOWED:["The request is not allowed by the user agent or the platform in the current context.","NotAllowedError"]},it={writable:globalThis.WritableStream}});var Be={};B(Be,{FileHandle:()=>we});var ke,Me,dt,Ie,ut,pt,we,mt,ft,ht,bt,yt,ge,ve,Ae=g(()=>{U();Z();({WritableStream:ke,TransformStream:Me,DOMException:dt,Blob:Ie}=_),{GONE:ut}=L,pt=/constructor/i.test(window.HTMLElement)||window.safari||window.WebKitPoint,we=class{constructor(e="unkown"){this.name=e,this.kind="file"}async getFile(){throw new dt(...ut)}async isSameEntry(e){return this===e}async createWritable(e={}){var s;let t=await((s=navigator.serviceWorker)==null?void 0:s.getRegistration()),r=document.createElement("a"),i=new Me,n=i.writable;if(r.download=this.name,pt||!t){let l=[];i.readable.pipeTo(new ke({write(a){l.push(new Ie([a]))},close(){let a=new Ie(l,{type:"application/octet-stream; charset=utf-8"});l=[],r.href=URL.createObjectURL(a),r.click(),setTimeout(()=>URL.revokeObjectURL(r.href),1e4)}}))}else{let{writable:l,readablePort:a}=new ve(ke),c=encodeURIComponent(this.name).replace(/['()]/g,escape).replace(/\*/g,"%2A"),u={"content-disposition":"attachment; filename*=UTF-8''"+c,"content-type":"application/octet-stream; charset=utf-8",...e.size?{"content-length":e.size}:{}},p=setTimeout(()=>t.active.postMessage(0),1e4);i.readable.pipeThrough(new Me({transform(b,I){if(b instanceof Uint8Array)return I.enqueue(b);let $=new Response(b).body.getReader(),q=gt=>$.read().then(xe=>xe.done?0:q(I.enqueue(xe.value)));return q()}})).pipeTo(l).finally(()=>{clearInterval(p)}),t.active.postMessage({url:t.scope+c,headers:u,readablePort:a},[a]);let f=document.createElement("iframe");f.hidden=!0,f.src=t.scope+c,document.body.appendChild(f)}return n.getWriter()}},mt=0,ft=0,ht=1,bt=1,yt=2,ge=class{constructor(e){e.onmessage=t=>this._onMessage(t.data),this._port=e,this._resetReady()}start(e){return this._controller=e,this._readyPromise}write(e){let t={type:mt,chunk:e};return this._port.postMessage(t,[e.buffer]),this._resetReady(),this._readyPromise}close(){this._port.postMessage({type:yt}),this._port.close()}abort(e){this._port.postMessage({type:bt,reason:e}),this._port.close()}_onMessage(e){e.type===ft&&this._resolveReady(),e.type===ht&&this._onError(e.reason)}_onError(e){this._controller.error(e),this._rejectReady(e),this._port.close()}_resetReady(){this._readyPromise=new Promise((e,t)=>{this._readyResolve=e,this._readyReject=t}),this._readyPending=!0}_resolveReady(){this._readyResolve(),this._readyPending=!1}_rejectReady(e){this._readyPending||this._resetReady(),this._readyPromise.catch(()=>{}),this._readyReject(e),this._readyPending=!1}},ve=class{constructor(e){let t=new MessageChannel;this.readablePort=t.port1,this.writable=new e(new ge(t.port2))}}});var le=class{constructor(e){this.database=e}openStore(e,t){return this.database.transaction(e,t).objectStore(e)}async put(e,t,r){let i=this.openStore(e,"readwrite");return await new Promise((n,s)=>{let l=i.put(t,r);l.onsuccess=()=>{n(l.result)},l.onerror=()=>{s(l.error)}})}get(e,t){let r=this.openStore(e,"readonly");return new Promise((i,n)=>{let s=r.get(t);s.onsuccess=()=>{i(s.result)},s.onerror=()=>{n(s.error)}})}async delete(e,t){let r=this.openStore(e,"readwrite");return await new Promise((i,n)=>{let s=r.delete(t);s.onsuccess=()=>{i()},s.onerror=()=>{n(s.error)}})}close(){this.database.close()}},ce=class{constructor(e,t){this.databaseName=e;this.objectStores=t}async connect(){let e=window.indexedDB.open(this.databaseName,1);return e.onupgradeneeded=t=>{let r=t.target.result;this.objectStores.forEach(i=>{r.createObjectStore(i)})},await new Promise((t,r)=>{e.onsuccess=i=>{t(new le(i.target.result))},e.onerror=i=>{r(i.target.error)}})}},A="fileBookmarks",K=new ce("AvaloniaDb",[A]);var J=class{static getCaretCoordinates(e,t,r){var p,f;if(!Te)throw new Error("textarea-caret-position#getCaretCoordinates should only be called in a browser");let i=(p=r==null?void 0:r.debug)!=null?p:!1;if(i){let b=document.querySelector("#input-textarea-caret-position-mirror-div");b&&((f=b.parentNode)==null||f.removeChild(b))}let n=document.createElement("div");n.id="input-textarea-caret-position-mirror-div",document.body.appendChild(n);let s=n.style,l=window.getComputedStyle?window.getComputedStyle(e):e.currentStyle,a=e.nodeName==="INPUT";s.whiteSpace="pre-wrap",a||(s.wordWrap="break-word"),s.position="absolute",i||(s.visibility="hidden"),_e.forEach(b=>{if(a&&b==="lineHeight")if(l.boxSizing==="border-box"){let I=parseInt(l.height),$=parseInt(l.paddingTop)+parseInt(l.paddingBottom)+parseInt(l.borderTopWidth)+parseInt(l.borderBottomWidth),q=$+parseInt(l.lineHeight);I>q?s.lineHeight=`${I-$}px`:I===q?s.lineHeight=l.lineHeight:s.lineHeight="0"}else s.lineHeight=l.height;else s[b]=l[b]}),Oe?e.scrollHeight>parseInt(l.height)&&(s.overflowY="scroll"):s.overflow="hidden",n.textContent=e.value.substring(0,t),a&&(n.textContent=n.textContent.replace(/\s/g,"\xA0"));let c=document.createElement("span");c.textContent=e.value.substring(t)||".",n.appendChild(c);let u={top:c.offsetTop+parseInt(l.borderTopWidth),left:c.offsetLeft+parseInt(l.borderLeftWidth),height:parseInt(l.lineHeight)};return i?c.style.backgroundColor="#aaa":document.body.removeChild(n),u}},_e=["direction","boxSizing","width","height","overflowX","overflowY","borderTopWidth","borderRightWidth","borderBottomWidth","borderLeftWidth","borderStyle","paddingTop","paddingRight","paddingBottom","paddingLeft","fontStyle","fontVariant","fontWeight","fontStretch","fontSize","fontSizeAdjust","lineHeight","fontFamily","textAlign","textTransform","textIndent","textDecoration","letterSpacing","wordSpacing","tabSize","MozTabSize"],Te=typeof window!="undefined",Oe=Te&&window.mozInnerScreenX!=null;var d=class{static get InputHelper(){var e;return(e=this.resolvedExports)==null?void 0:e.Avalonia.Browser.Interop.InputHelper}static get DomHelper(){var e;return(e=this.resolvedExports)==null?void 0:e.Avalonia.Browser.Interop.DomHelper}static get TimerHelper(){var e;return(e=this.resolvedExports)==null?void 0:e.Avalonia.Browser.Interop.TimerHelper}static get CanvasHelper(){var e;return(e=this.resolvedExports)==null?void 0:e.Avalonia.Browser.Interop.CanvasHelper}};async function Re(){let o=await globalThis.getDotnetRuntime(0);if(o!=null)return d.resolvedExports=await o.getAssemblyExports("Avalonia.Browser.dll"),d.resolvedExports}d.exportsPromise=Re();var Q=class{static initializeBackgroundHandlers(){this.clipboardState===0&&(globalThis.addEventListener("paste",e=>{this.clipboardState===2&&this.resolveClipboard(e.clipboardData.getData("text"))}),this.clipboardState=1)}static async readClipboardText(e){if(e.navigator.clipboard.readText)return await e.navigator.clipboard.readText();try{return await new Promise((t,r)=>{this.clipboardState=2,this.resolveClipboard=t,this.rejectClipboard=r})}finally{this.clipboardState=1,this.resolveClipboard=null,this.rejectClipboard=null}}static async writeClipboardText(e,t){return await e.navigator.clipboard.writeText(t)}static subscribeInputEvents(e,t){let r=this.subscribeKeyEvents(e,t),i=this.subscribePointerEvents(e,t),n=this.subscribeTextEvents(e,t),s=this.subscribeDropEvents(e,t),l=this.subscribeKeyboardGeometryChange(e,t);return()=>{r(),i(),n(),s(),l()}}static subscribeKeyEvents(e,t){let r=n=>{d.InputHelper.OnKeyDown(t,n.code,n.key,this.getModifiers(n)),this.clipboardState!==2&&n.preventDefault()};e.addEventListener("keydown",r);let i=n=>{d.InputHelper.OnKeyUp(t,n.code,n.key,this.getModifiers(n)),n.preventDefault(),this.rejectClipboard&&this.rejectClipboard()};return e.addEventListener("keyup",i),()=>{e.removeEventListener("keydown",r),e.removeEventListener("keyup",i)}}static subscribeTextEvents(e,t){let r=l=>{d.InputHelper.OnCompositionStart(t)};e.addEventListener("compositionstart",r);let i=l=>{let a=l.getTargetRanges(),c=-1,u=-1;a.length>0&&(c=a[0].startOffset,u=a[0].endOffset),l.inputType==="insertCompositionText"&&(c=2,u=c+2),d.InputHelper.OnBeforeInput(t,l.inputType,c,u)};e.addEventListener("beforeinput",i);let n=l=>{d.InputHelper.OnCompositionUpdate(t,l.data)};e.addEventListener("compositionupdate",n);let s=l=>{d.InputHelper.OnCompositionEnd(t,l.data),l.preventDefault()};return e.addEventListener("compositionend",s),()=>{e.removeEventListener("compositionstart",r),e.removeEventListener("compositionupdate",n),e.removeEventListener("compositionend",s)}}static subscribePointerEvents(e,t){let r=a=>{d.InputHelper.OnPointerMove(t,a.pointerType,a.pointerId,a.offsetX,a.offsetY,a.pressure,a.tiltX,a.tiltY,a.twist,this.getModifiers(a),a),a.preventDefault()},i=a=>{d.InputHelper.OnPointerDown(t,a.pointerType,a.pointerId,a.button,a.offsetX,a.offsetY,a.pressure,a.tiltX,a.tiltY,a.twist,this.getModifiers(a)),a.preventDefault()},n=a=>{d.InputHelper.OnPointerUp(t,a.pointerType,a.pointerId,a.button,a.offsetX,a.offsetY,a.pressure,a.tiltX,a.tiltY,a.twist,this.getModifiers(a)),a.preventDefault()},s=a=>{d.InputHelper.OnPointerCancel(t,a.pointerType,a.pointerId,a.offsetX,a.offsetY,a.pressure,a.tiltX,a.tiltY,a.twist,this.getModifiers(a))},l=a=>{d.InputHelper.OnWheel(t,a.offsetX,a.offsetY,a.deltaX,a.deltaY,this.getModifiers(a)),a.preventDefault()};return e.addEventListener("pointermove",r),e.addEventListener("pointerdown",i),e.addEventListener("pointerup",n),e.addEventListener("wheel",l),e.addEventListener("pointercancel",s),()=>{e.removeEventListener("pointerover",r),e.removeEventListener("pointerdown",i),e.removeEventListener("pointerup",n),e.removeEventListener("pointercancel",s),e.removeEventListener("wheel",l)}}static subscribeDropEvents(e,t){let r=n=>{let s=n.dataTransfer;d.InputHelper.OnDragDrop(t,n.type,n.offsetX,n.offsetY,this.getModifiers(n),s==null?void 0:s.effectAllowed,s)},i=n=>{n.preventDefault(),r(n)};return e.addEventListener("dragover",i),e.addEventListener("dragenter",r),e.addEventListener("dragleave",r),e.addEventListener("drop",i),()=>{e.removeEventListener("dragover",i),e.removeEventListener("dragenter",r),e.removeEventListener("dragleave",r),e.removeEventListener("drop",i)}}static getCoalescedEvents(e){return e.getCoalescedEvents().flatMap(t=>[t.offsetX,t.offsetY,t.pressure,t.tiltX,t.tiltY,t.twist])}static subscribeKeyboardGeometryChange(e,t){if("virtualKeyboard"in navigator){let r=i=>{let n=e.getBoundingClientRect(),s=i.target.boundingRect;d.InputHelper.OnKeyboardGeometryChange(t,s.x-n.x,s.y-n.y,s.width,s.height)};return navigator.virtualKeyboard.addEventListener("geometrychange",r),()=>{navigator.virtualKeyboard.removeEventListener("geometrychange",r)}}return()=>{}}static clearInput(e){e.value=""}static focusElement(e){e.focus()}static setCursor(e,t){t==="default"?e.style.removeProperty("cursor"):e.style.cursor=t}static setBounds(e,t,r,i,n,s){e.style.left=t.toFixed(0)+"px",e.style.top=r.toFixed(0)+"px";let{left:l,top:a}=J.getCaretCoordinates(e,s);e.style.left=(t-l).toFixed(0)+"px",e.style.top=(r-a).toFixed(0)+"px"}static hide(e){e.style.display="none"}static show(e){e.style.display="block"}static setSurroundingText(e,t,r,i){!e||(e.value=t,e.setSelectionRange(r,i),e.style.width="20px",e.style.width=`${e.scrollWidth}px`)}static getModifiers(e){let t=0;e.ctrlKey&&(t|=2),e.altKey&&(t|=1),e.shiftKey&&(t|=4),e.metaKey&&(t|=8);let r=e.buttons;return r&&(r&1&&(t|=16),r&2&&(t|=e.type==="pen"?2048:32),r&4&&(t|=64),r&8&&(t|=128),r&16&&(t|=256),r&32&&(t|=1024)),t}static setPointerCapture(e,t){e.setPointerCapture(t)}static releasePointerCapture(e,t){e.hasPointerCapture(t)&&e.releasePointerCapture(t)}};Q.clipboardState=0;var H=class{static hasNativeFilePicker(){return"showSaveFilePicker"in globalThis}static isMobile(){var n;let e=(n=globalThis.navigator)==null?void 0:n.userAgentData;if(e)return e.mobile;let t=navigator.userAgent,r=/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i,i=/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw(n|u)|c55\/|capi|ccwa|cdm|cell|chtm|cldc|cmd|co(mp|nd)|craw|da(it|ll|ng)|dbte|dcs|devi|dica|dmob|do(c|p)o|ds(12|d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(|_)|g1 u|g560|gene|gf5|gmo|go(\.w|od)|gr(ad|un)|haie|hcit|hd(m|p|t)|hei|hi(pt|ta)|hp( i|ip)|hsc|ht(c(| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i(20|go|ma)|i230|iac( ||\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|[a-w])|libw|lynx|m1w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|mcr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|([1-8]|c))|phil|pire|pl(ay|uc)|pn2|po(ck|rt|se)|prox|psio|ptg|qaa|qc(07|12|21|32|60|[2-7]|i)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h|oo|p)|sdk\/|se(c(|0|1)|47|mc|nd|ri)|sgh|shar|sie(|m)|sk0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h|v|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl|tdg|tel(i|m)|tim|tmo|to(pl|sh)|ts(70|m|m3|m5)|tx9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas|your|zeto|zte/i;return r.test(t)||i.test(t.substr(0,4))}static isTv(){return navigator.userAgent.includes("SmartTV")}};var F=class{constructor(e,t){this.canvas=e;this.renderTargetType=t}static setSize(e,t,r){e.canvas.width=t,e.canvas.height=r}};function Ue(){var t,r,i,n;let o=globalThis,e=(r=o.Module)!=null?r:(t=o.getDotnetRuntime(0))==null?void 0:t.Module;return(n=(i=e==null?void 0:e.GL)!=null?i:o.AvaloniaGL)!=null?n:o.SkiaSharpGL}var v=class extends F{constructor(t,r){var l,a;if(v._gl==null&&(v._gl=Ue()),!v._gl)throw new Error("Module.GL object wasn't initialized, WebGL can't be used.");let i={alpha:!0,depth:!0,stencil:!0,antialias:!1,premultipliedAlpha:!0,preserveDrawingBuffer:!1,failIfMajorPerformanceCaveat:!0,majorVersion:r===2?1:2,minorVersion:0,enableExtensionsByDefault:1,explicitSwapControl:0},n=r===2?t.getContext("webgl",i):t.getContext("webgl2",i);if(!n)throw new Error("HTMLCanvasElement.getContext returned null.");let s=v._gl.registerContext(n,i);n.gl_handle=s;super(t,"webgl");this.canvas=t;this.contextHandle=s,this.fboId=(a=(l=n.getParameter(n.FRAMEBUFFER_BINDING))==null?void 0:l.id)!=null?a:0,this.stencil=n.getParameter(n.STENCIL_BITS),this.sample=n.getParameter(n.SAMPLES),this.depth=n.getParameter(n.DEPTH_BITS),this.attrs=i}static getCurrentContext(){var t,r,i;return(i=(r=(t=v._gl)==null?void 0:t.currentContext)==null?void 0:r.handle)!=null?i:0}static makeContextCurrent(t){if(v._gl==null)return!1;let r=v._gl.makeContextCurrent(t);return t===0||r}},z=v;z._gl=null;var W=class extends F{constructor(t){let r=t.getContext("2d",{alpha:!0});if(!r)throw new Error("HTMLCanvasElement.getContext(2d) returned null.");super(t,"software");this.context=r,this.runtime=globalThis.getDotnetRuntime(0)}putPixelData(t,r,i,n){var c;let s=(c=this.runtime)==null?void 0:c.localHeapViewU8(),l;if(s!=null&&s.buffer){if(l=new Uint8ClampedArray(s.buffer,t,r),this.canvas instanceof OffscreenCanvas){let u=new ArrayBuffer(l.byteLength),p=new Uint8ClampedArray(u);p.set(l),l=p}}else throw new Error("Unable to access .NET memory");let a=new ImageData(l,i,n);this.context.putImageData(a,0,0)}static staticPutPixelData(t,r,i,n,s){t.putPixelData(r,i,n,s)}};var y=class{static create(e,t,r){var n,s;let i=y.nextId++;if(e===0)y.registry[i]={canvas:t},y.targets[i]=y.createRenderTarget(t,r);else{let l=globalThis,a=(s=l.Module)!=null?s:(n=l.getDotnetRuntime(0))==null?void 0:n.Module,c=a==null?void 0:a.PThread;if(c==null)throw new Error("Unable to access emscripten PThread api");let u=c.pthreads[e];if(u==null)throw new Error(`Unable get pthread with id ${e}`);let p;if(u.postMessage!=null?p=u:p=u.worker,p==null)throw new Error(`Unable get Worker for pthread ${e}`);let f=t.transferControlToOffscreen();p.postMessage({avaloniaCmd:"registerCanvas",canvas:f,modes:r,id:i},[f]),y.registry[i]={canvas:t,worker:p}}return i}static initializeWorker(){let e=self.onmessage;self.onmessage=t=>{let r=t;r.data.avaloniaCmd==="registerCanvas"?y.targets[r.data.id]=y.createRenderTarget(r.data.canvas,r.data.modes):r.data.avaloniaCmd==="unregisterCanvas"?delete y.targets[r.data.id]:e!=null&&e.call(self,t)}}static getRenderTarget(e){return y.targets[e]}static createRenderTarget(e,t){for(let r of t)try{return r===1?new W(e):new z(e,r)}catch(i){let n="";i instanceof Error&&(n=": "+i.message),console.error(`Failed to create render target for mode ${r} ${n}`)}return new W(e)}},D=y;D.targets={},D.registry={},D.nextId=1;var h=class{constructor(e,t,r,i){this.handle=e;this.file=t;this.bookmarkId=r;this.wellKnownType=i}get name(){var e;return this.handle?this.handle.name:this.file?this.file.name:(e=this.wellKnownType)!=null?e:""}get kind(){return this.handle?this.handle.kind:this.file?"file":"directory"}static createFromHandle(e,t){return new h(e,void 0,t,void 0)}static createFromFile(e){return new h(void 0,e,void 0,void 0)}static createWellKnownDirectory(e){return new h(void 0,void 0,void 0,e)}static async openRead(e){if(e.file)return e.file;if(!e.handle||e.kind!=="file")throw new Error("StorageItem is not a file");return await e.verityPermissions("read"),await e.handle.getFile()}static async openWrite(e){if(!e.handle||e.kind!=="file")throw new Error("StorageItem is not a writeable file");return await e.verityPermissions("readwrite"),await e.handle.createWritable({keepExistingData:!0})}static async getProperties(e){try{let t=e.handle&&"getFile"in e.handle?await e.handle.getFile():e.file;return t?{Size:t.size,LastModified:t.lastModified,Type:t.type}:null}catch{return null}}static getItemsIterator(e){return e.kind!=="directory"||!e.handle?null:e.handle.entries()}static async createFile(e,t){if(e.kind!=="directory"||!e.handle)throw new TypeError("Unable to create item in the requested directory");return await e.verityPermissions("readwrite"),await e.handle.getFileHandle(t,{create:!0})}static async createFolder(e,t){if(e.kind!=="directory"||!e.handle)throw new TypeError("Unable to create item in the requested directory");return await e.verityPermissions("readwrite"),await e.handle.getDirectoryHandle(t,{create:!0})}static async deleteAsync(e){return e.handle?(await e.verityPermissions("readwrite"),await e.handle.remove({recursive:!0})):null}static async moveAsync(e,t){if(!e.handle)return null;if(t.kind!=="directory"||!t.handle)throw new TypeError("Unable to move item to the requested directory");return await e.verityPermissions("readwrite"),await e.handle.move(t)}async verityPermissions(e){if(!!this.handle&&!!H.hasNativeFilePicker()&&await this.handle.queryPermission({mode:e})!=="granted"&&await this.handle.requestPermission({mode:e})==="denied")throw new Error("Permissions denied")}static async saveBookmark(e){if(e.bookmarkId)return e.bookmarkId;if(!e.handle||!H.hasNativeFilePicker())return null;let t=await K.connect();try{return await t.put(A,e.handle,e.generateBookmarkId())}finally{t.close()}}static async deleteBookmark(e){if(!e.bookmarkId||!H.hasNativeFilePicker())return;let t=await K.connect();try{await t.delete(A,e.bookmarkId)}finally{t.close()}}generateBookmarkId(){return Date.now().toString(36)+Math.random().toString(36).substring(2)}},G=class{constructor(e){this.items=e}static itemsArray(e){return e.items}static filesToItemsArray(e){if(!e)return[];let t=[];for(let r=0;r<e.length;r++)t[r]=h.createFromFile(e[r]);return t}};var De=globalThis.showDirectoryPicker;async function ot(o={}){if(De&&!o._preferPolyfill)return De(o);let e=document.createElement("input");if(e.type="file",!("webkitdirectory"in e))throw new Error("HTMLInputElement.webkitdirectory is not supported");e.style.position="fixed",e.style.top="-100000px",e.style.left="-100000px",document.body.appendChild(e),e.webkitdirectory=!0;let t=Promise.resolve().then(()=>(U(),he));return await new Promise(r=>{e.addEventListener("change",r),e.click()}),t.then(r=>r.getDirHandlesFromInput(e))}var be=ot;var lt={accepts:[]},Le=globalThis.showOpenFilePicker;async function ct(o={}){let e={...lt,...o};if(Le&&!o._preferPolyfill)return Le(e);let t=document.createElement("input");t.type="file",t.multiple=e.multiple,t.accept=(e.accepts||[]).map(i=>[...(i.extensions||[]).map(n=>"."+n),...i.mimeTypes||[]]).flat().join(","),t.style.position="fixed",t.style.top="-100000px",t.style.left="-100000px",document.body.appendChild(t);let r=Promise.resolve().then(()=>(U(),he));return await new Promise(i=>{t.addEventListener("change",i),t.click()}),r.then(i=>i.getFileHandlesFromInput(t))}var ye=ct;var ze=globalThis.showSaveFilePicker;async function wt(o={}){if(ze&&!o._preferPolyfill)return ze(o);o._name&&(console.warn("deprecated _name, spec now have `suggestedName`"),o.suggestedName=o._name);let{FileSystemFileHandle:e}=await Promise.resolve().then(()=>(T(),M)),{FileHandle:t}=await Promise.resolve().then(()=>(Ae(),Be));return new e(new t(o.suggestedName))}var Se=wt;globalThis.DataTransferItem&&!DataTransferItem.prototype.getAsFileSystemHandle&&(DataTransferItem.prototype.getAsFileSystemHandle=async function(){let o=this.webkitGetAsEntry(),[{FileHandle:e,FolderHandle:t},{FileSystemDirectoryHandle:r},{FileSystemFileHandle:i}]=await Promise.all([Promise.resolve().then(()=>(pe(),ue)),Promise.resolve().then(()=>(Y(),oe)),Promise.resolve().then(()=>(T(),M))]);return o.isFile?new i(new e(o,!1)):new r(new t(o,!1))});Y();T();ae();fe();var Ee=class{static async selectFolderDialog(e,t){var n,s;let r={startIn:(s=(n=e==null?void 0:e.wellKnownType)!=null?n:e==null?void 0:e.handle)!=null?s:void 0,_preferPolyfill:t},i=await be(r);return h.createFromHandle(i)}static async openFileDialog(e,t,r,i,n){var a,c;let s={startIn:(c=(a=e==null?void 0:e.wellKnownType)!=null?a:e==null?void 0:e.handle)!=null?c:void 0,multiple:t,excludeAcceptAllOption:i,types:r!=null?r:void 0,_preferPolyfill:n},l=await ye(s);return new G(l.map(u=>h.createFromHandle(u)))}static async saveFileDialog(e,t,r,i,n){var a,c;let s={startIn:(c=(a=e==null?void 0:e.wellKnownType)!=null?a:e==null?void 0:e.handle)!=null?c:void 0,suggestedName:t!=null?t:void 0,excludeAcceptAllOption:i,types:r!=null?r:void 0,_preferPolyfill:n},l=await Se(s);return h.createFromHandle(l)}static async openBookmark(e){let t=await K.connect();try{let r=await t.get(A,e);return r&&h.createFromHandle(r,e)}finally{t.close()}}static createAcceptType(e,t,r){let i={};return t.forEach(n=>{i[n]=r!=null?r:[]}),{description:e,accept:i}}};export{h as StorageItem,G as StorageItems,Ee as StorageProvider};
//# sourceMappingURL=storage.js.map