mirror of
https://gitcode.com/gh_mirrors/se/Semi.Avalonia
synced 2026-03-10 11:40:50 +08:00
3 lines
38 KiB
JavaScript
Executable File
3 lines
38 KiB
JavaScript
Executable File
var Pe=Object.defineProperty;var ze=(l,e,t)=>e in l?Pe(l,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):l[e]=t;var g=(l,e)=>()=>(l&&(e=l(l=0)),e);var B=(l,e)=>{for(var t in e)Pe(l,t,{get:e[t],enumerable:!0})};var S=(l,e,t)=>(ze(l,typeof e!="symbol"?e+"":e,t),t);var qe,R,Z=g(()=>{qe={ReadableStream:globalThis.ReadableStream,WritableStream:globalThis.WritableStream,TransformStream:globalThis.TransformStream,DOMException:globalThis.DOMException,Blob:globalThis.Blob,File:globalThis.File},R=qe});var te={};B(te,{FileHandle:()=>O,FolderHandle:()=>N,Sink:()=>ee,default:()=>$e});var _,Ge,f,Ke,E,Te,Ve,de,kr,Xe,ee,O,N,Ye,$e,re=g(()=>{U();Z();({File:_,Blob:Ge,DOMException:f}=R),{INVALID:Ke,GONE:E,MISMATCH:Te,MOD_ERR:Ve,SYNTAX:de,SECURITY:kr,DISALLOWED:Xe}=I,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 _([this.file,new ArrayBuffer(e.position-this.size)],this.file.name,this.file))),!("data"in e))throw new f(...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 f(...Ke);this.position=e.position;return}else throw new f(...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 _([t.slice(0,e.size)],t.name,t):new _([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 f(...de("truncate requires a size argument"))}e=new Ge([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 _([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 f(...E);this.fileHandle._file=this.file,this.file=this.position=this.size=null,this.fileHandle.onclose&&this.fileHandle.onclose(this.fileHandle)}},O=class{constructor(e="",t=new _([],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 f(...E);return this._file}async createWritable(e){if(!this.writable)throw new f(...Xe);if(this._deleted)throw new f(...E);let t=e.keepExistingData?await this.getFile():new _([],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 f(...E);yield*Object.entries(this._entries)}async isSameEntry(e){return this===e}async getDirectoryHandle(e,t){if(this._deleted)throw new f(...E);let r=this._entries[e];if(r){if(r instanceof O)throw new f(...Te);return r}else{if(t.create)return this._entries[e]=new N(e);throw new f(...E)}}async getFileHandle(e,t){let r=this._entries[e],i=r instanceof O;if(r&&i)return r;if(r&&!i)throw new f(...Te);if(!r&&!t.create)throw new f(...E);if(!r&&t.create)return this._entries[e]=new O(e)}async removeEntry(e,t){let r=this._entries[e];if(!r)throw new f(...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 f(...Ve);await t._destroy(e)}this._entries={},this._deleted=!0}},Ye=new N(""),$e=()=>Ye});var ue={};B(ue,{FileHandle:()=>V,FolderHandle:()=>x,default:()=>Qe});var Je,ie,V,x,Qe,pe=g(()=>{U();({DISALLOWED:Je}=I),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))}},V=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 V(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 V(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=(l={})=>new Promise((e,t)=>window.webkitRequestFileSystem(l._persistent,0,r=>e(new x(r.root)),t))});var P,Ze,ne,X,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});X=ne});var et,k,me,fe=g(()=>{Z();({WritableStream:et}=R),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 L={};B(L,{FileSystemFileHandle:()=>j,default:()=>De});var se,tt,j,De,C=g(()=>{ae();fe();se=Symbol("adapter"),j=class extends X{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}});De=j});var oe={};B(oe,{FileSystemDirectoryHandle:()=>w,default:()=>He});var T,rt,w,He,Y=g(()=>{ae();T=Symbol("adapter"),w=class extends X{constructor(t){super(t);S(this,rt);this[T]=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[T].getDirectoryHandle(t,r);return new w(i)}async*entries(){let{FileSystemFileHandle:t}=await Promise.resolve().then(()=>(C(),L));for await(let[r,i]of this[T].entries())yield[i.name,i.kind==="file"?new t(i):new w(i)]}async*getEntries(){let{FileSystemFileHandle:t}=await Promise.resolve().then(()=>(C(),L));console.warn("deprecated, use .entries() instead");for await(let r of this[T].entries())yield r.kind==="file"?new t(r):new w(r)}async getFileHandle(t,r={}){let{FileSystemFileHandle:i}=await Promise.resolve().then(()=>(C(),L));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[T].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[T].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[T].entries())yield t}async*values(){for await(let[t,r]of this)yield r}[(rt=T,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}});He=w});var be={};B(be,{config:()=>it,errors:()=>I,fromDataTransfer:()=>nt,getDirHandlesFromInput:()=>at,getFileHandlesFromInput:()=>st});async function nt(l){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=l.map(n=>n.isFile?new t.FileHandle(n,!1):new t.FolderHandle(n,!1)),new r.FileSystemDirectoryHandle(i)}async function at(l){let{FolderHandle:e,FileHandle:t}=await Promise.resolve().then(()=>(re(),te)),{FileSystemDirectoryHandle:r}=await Promise.resolve().then(()=>(Y(),oe)),i=Array.from(l.files),n=i[0].webkitRelativePath.split("/",1)[0],s=new e(n,!1);return i.forEach(o=>{let a=o.webkitRelativePath.split("/");a.shift();let c=a.pop(),u=a.reduce((p,b)=>(p._entries[b]||(p._entries[b]=new e(b,!1)),p._entries[b]),s);u._entries[c]=new t(o.name,o,!1)}),new r(s)}async function st(l){let{FileHandle:e}=await Promise.resolve().then(()=>(re(),te)),{FileSystemFileHandle:t}=await Promise.resolve().then(()=>(C(),L));return Array.from(l.files).map(r=>new t(new e(r.name,r,!1)))}var I,it,U=g(()=>{I={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:l=>[`Failed to execute 'write' on 'UnderlyingSinkBase': Invalid params passed. ${l}`,"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,Le,dt,Me,ut,pt,we,mt,ft,bt,yt,ht,ge,ve,Ae=g(()=>{U();Z();({WritableStream:ke,TransformStream:Le,DOMException:dt,Blob:Me}=R),{GONE:ut}=I,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 Le,n=i.writable;if(r.download=this.name,pt||!t){let o=[];i.readable.pipeTo(new ke({write(a){o.push(new Me([a]))},close(){let a=new Me(o,{type:"application/octet-stream; charset=utf-8"});o=[],r.href=URL.createObjectURL(a),r.click(),setTimeout(()=>URL.revokeObjectURL(r.href),1e4)}}))}else{let{writable:o,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 Le({transform(y,M){if(y instanceof Uint8Array)return M.enqueue(y);let $=new Response(y).body.getReader(),q=gt=>$.read().then(xe=>xe.done?0:q(M.enqueue(xe.value)));return q()}})).pipeTo(o).finally(()=>{clearInterval(p)}),t.active.postMessage({url:t.scope+c,headers:u,readablePort:a},[a]);let b=document.createElement("iframe");b.hidden=!0,b.src=t.scope+c,document.body.appendChild(b)}return n.getWriter()}},mt=0,ft=0,bt=1,yt=1,ht=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:ht}),this._port.close()}abort(e){this._port.postMessage({type:yt,reason:e}),this._port.close()}_onMessage(e){e.type===ft&&this._resolveReady(),e.type===bt&&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 o=i.put(t,r);o.onsuccess=()=>{n(o.result)},o.onerror=()=>{s(o.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",G=new ce("AvaloniaDb",[A]);var J=class{static getCaretCoordinates(e,t,r){var p,b;if(!Ce)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 y=document.querySelector("#input-textarea-caret-position-mirror-div");y&&((b=y.parentNode)==null||b.removeChild(y))}let n=document.createElement("div");n.id="input-textarea-caret-position-mirror-div",document.body.appendChild(n);let s=n.style,o=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"),Re.forEach(y=>{if(a&&y==="lineHeight")if(o.boxSizing==="border-box"){let M=parseInt(o.height),$=parseInt(o.paddingTop)+parseInt(o.paddingBottom)+parseInt(o.borderTopWidth)+parseInt(o.borderBottomWidth),q=$+parseInt(o.lineHeight);M>q?s.lineHeight=`${M-$}px`:M===q?s.lineHeight=o.lineHeight:s.lineHeight="0"}else s.lineHeight=o.height;else s[y]=o[y]}),_e?e.scrollHeight>parseInt(o.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(o.borderTopWidth),left:c.offsetLeft+parseInt(o.borderLeftWidth),height:parseInt(o.lineHeight)};return i?c.style.backgroundColor="#aaa":document.body.removeChild(n),u}},Re=["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"],Ce=typeof window!="undefined",_e=Ce&&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 Oe(){let l=await globalThis.getDotnetRuntime(0);if(l!=null)return d.resolvedExports=await l.getAssemblyExports("Avalonia.Browser.dll"),d.resolvedExports}d.exportsPromise=Oe();var Q=class{static initializeBackgroundHandlers(){this.clipboardState===0&&(globalThis.document.addEventListener("paste",e=>{if(this.clipboardState!==2||!this.resolveClipboard)return;let t=this.getDataTransferItems(e.clipboardData);this.resolveClipboard(t.map(r=>({type:"dataTransferItem",value:r})))}),this.clipboardState=1)}static getDataTransferItems(e){let t=e==null?void 0:e.items;return t==null?[]:Array.from(t)}static isClipboardFormatSupported(e){return ClipboardItem.supports?ClipboardItem.supports(e):e==="text/plain"||e==="text/html"||e==="image/png"}static createWriteableClipboardSource(){return{items:[]}}static createWriteableClipboardItem(e){let t={data:{}};return e.items.push(t),t}static addStringToWriteableClipboardItem(e,t,r){e.data[t]=r}static addBytesToWriteableClipboardItem(e,t,r){let i=r.slice(0,r.byteLength);e.data[t]=new Blob([i],{type:t})}static async readClipboard(e){let t=e.navigator.clipboard;if(t.read)return(await t.read()).map(i=>({type:"clipboardItem",value:i}));if(t.readText)return[{type:"string",value:await t.readText()}];try{return await new Promise((r,i)=>{this.clipboardState=2,this.resolveClipboard=r,this.rejectClipboard=i})}finally{this.clipboardState=1,this.resolveClipboard=void 0,this.rejectClipboard=void 0}}static async writeClipboard(e,t){var i;let r=(i=t==null?void 0:t.items)!=null?i:[];if(r.length===0){await e.navigator.clipboard.writeText("");return}return e.navigator.clipboard.write?await e.navigator.clipboard.write(r.map(n=>new ClipboardItem(n.data))):await this.writeFirstText(e,r)}static async writeFirstText(e,t){for(let r of t)for(let i in r.data){if(!i.startsWith("text/"))continue;let n=r.data[i];typeof n!="string"&&(n=""),await e.navigator.clipboard.writeText(n);return}}static getReadableDataItemFormats(e){switch(e.type){case"clipboardItem":return e.value.types;case"dataTransferItem":switch(e.value.kind){case"string":return[e.value.type];case"file":return["Files"];default:return[]}case"string":return["text/plain"];default:return[]}}static async tryGetReadableDataItemValueAsync(e,t){switch(e.type){case"clipboardItem":{let i=e.value;if(!i.types.includes(t))return null;let n=await i.getType(t);return t.startsWith("text/")?{type:"string",value:await n.text()}:{type:"bytes",value:await this.getBlobBytes(n)}}case"dataTransferItem":{let i=e.value;switch(i.kind){case"string":{if(t!==i.type)return null;let n=await new Promise(s=>i.getAsString(o=>s(o)));return{type:"string",value:n}}case"file":{if(t!=="Files")return null;let n=i.getAsFile();return n==null?null:{type:"file",value:m.createFromFile(n)}}default:return null}}case"string":return t.startsWith("text/")?{type:"string",value:e.value}:{type:"bytes",value:await this.getBlobBytes(new Blob([e.value]))};default:return null}}static tryGetReadableDataItemValue(e,t){if(e.type!=="dataTransferItem")return null;let i=e.value;switch(i.kind){case"string":{if(t!==i.type)return null;let n="";return i.getAsString(function(s){n=s}),{type:"string",value:n}}case"file":{if(t!=="Files")return null;let n=i.getAsFile();return n==null?null:{type:"file",value:m.createFromFile(n)}}default:return null}}static async getBlobBytes(e){return e.bytes?await e.bytes():new Uint8Array(await e.arrayBuffer())}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),o=this.subscribeKeyboardGeometryChange(e,t);return()=>{r(),i(),n(),s(),o()}}static subscribeKeyEvents(e,t){let r=n=>{d.InputHelper.OnKeyDown(t,n.code,n.key,this.getModifiers(n)).then(s=>{(!s||this.clipboardState!==2)&&n.preventDefault()})};e.addEventListener("keydown",r);let i=n=>{d.InputHelper.OnKeyUp(t,n.code,n.key,this.getModifiers(n)).then(s=>{s||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=o=>{d.InputHelper.OnCompositionStart(t)};e.addEventListener("compositionstart",r);let i=o=>{let a=o.getTargetRanges(),c=-1,u=-1;a.length>0&&(c=a[0].startOffset,u=a[0].endOffset),o.inputType==="insertCompositionText"&&(c=2,u=c+2),d.InputHelper.OnBeforeInput(t,o.inputType,c,u)};e.addEventListener("beforeinput",i);let n=o=>{d.InputHelper.OnCompositionUpdate(t,o.data)};e.addEventListener("compositionupdate",n);let s=o=>{d.InputHelper.OnCompositionEnd(t,o.data),o.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))},o=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",o),e.addEventListener("pointercancel",s),()=>{e.removeEventListener("pointerover",r),e.removeEventListener("pointerdown",i),e.removeEventListener("pointerup",n),e.removeEventListener("pointercancel",s),e.removeEventListener("wheel",o)}}static subscribeDropEvents(e,t){let r=n=>{let s=n.dataTransfer;if(s==null)return;let o=this.getDataTransferItems(s).map(a=>({type:"dataTransferItem",value:a}));d.InputHelper.OnDragDrop(t,n.type,n.offsetX,n.offsetY,this.getModifiers(n),s,o)},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:o,top:a}=J.getCaretCoordinates(e,s);e.style.left=(t-o).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 D=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 H=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 l=globalThis,e=(r=l.Module)!=null?r:(t=l.getDotnetRuntime(0))==null?void 0:t.Module;return(n=(i=e==null?void 0:e.GL)!=null?i:l.AvaloniaGL)!=null?n:l.SkiaSharpGL}var v=class extends H{constructor(t,r){var o,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=(o=n.getParameter(n.FRAMEBUFFER_BINDING))==null?void 0:o.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}},W=v;W._gl=null;var z=class extends H{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(),o;if(s!=null&&s.buffer){if(o=new Uint8ClampedArray(s.buffer,t,r),this.canvas instanceof OffscreenCanvas){let u=new ArrayBuffer(o.byteLength),p=new Uint8ClampedArray(u);p.set(o),o=p}}else throw new Error("Unable to access .NET memory");let a=new ImageData(o,i,n);this.context.putImageData(a,0,0)}static staticPutPixelData(t,r,i,n,s){t.putPixelData(r,i,n,s)}};var h=class{static create(e,t,r){var n,s;let i=h.nextId++;if(e===0)h.registry[i]={canvas:t},h.targets[i]=h.createRenderTarget(t,r);else{let o=globalThis,a=(s=o.Module)!=null?s:(n=o.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 b=t.transferControlToOffscreen();p.postMessage({avaloniaCmd:"registerCanvas",canvas:b,modes:r,id:i},[b]),h.registry[i]={canvas:t,worker:p}}return i}static initializeWorker(){let e=self.onmessage;self.onmessage=t=>{let r=t;r.data.avaloniaCmd==="registerCanvas"?h.targets[r.data.id]=h.createRenderTarget(r.data.canvas,r.data.modes):r.data.avaloniaCmd==="unregisterCanvas"?delete h.targets[r.data.id]:e!=null&&e.call(self,t)}}static getRenderTarget(e){return h.targets[e]}static createRenderTarget(e,t){for(let r of t)try{return r===1?new z(e):new W(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 z(e)}},F=h;F.targets={},F.registry={},F.nextId=1;var m=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 m(e,void 0,t,void 0)}static createFromFile(e){return new m(void 0,e,void 0,void 0)}static createWellKnownDirectory(e){return new m(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 getFile(e,t){return e.kind!=="directory"||!e.handle?null:(await e.verityPermissions("read"),await e.handle.getFileHandle(t))}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 getFolder(e,t){return e.kind!=="directory"||!e.handle?null:(await e.verityPermissions("read"),await e.handle.getDirectoryHandle(t))}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&&!!D.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||!D.hasNativeFilePicker())return null;let t=await G.connect();try{return await t.put(A,e.handle,e.generateBookmarkId())}finally{t.close()}}static async deleteBookmark(e){if(!e.bookmarkId||!D.hasNativeFilePicker())return;let t=await G.connect();try{await t.delete(A,e.bookmarkId)}finally{t.close()}}generateBookmarkId(){return Date.now().toString(36)+Math.random().toString(36).substring(2)}},K=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]=m.createFromFile(e[r]);return t}};var Fe=globalThis.showDirectoryPicker;async function ot(l={}){if(Fe&&!l._preferPolyfill)return Fe(l);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(),be));return await new Promise(r=>{e.addEventListener("change",r),e.click()}),t.then(r=>r.getDirHandlesFromInput(e))}var ye=ot;var lt={accepts:[]},Ie=globalThis.showOpenFilePicker;async function ct(l={}){let e={...lt,...l};if(Ie&&!l._preferPolyfill)return Ie(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(),be));return await new Promise(i=>{t.addEventListener("change",i),t.click()}),r.then(i=>i.getFileHandlesFromInput(t))}var he=ct;var We=globalThis.showSaveFilePicker;async function wt(l={}){if(We&&!l._preferPolyfill)return We(l);l._name&&(console.warn("deprecated _name, spec now have `suggestedName`"),l.suggestedName=l._name);let{FileSystemFileHandle:e}=await Promise.resolve().then(()=>(C(),L)),{FileHandle:t}=await Promise.resolve().then(()=>(Ae(),Be));return new e(new t(l.suggestedName))}var Se=wt;globalThis.DataTransferItem&&!DataTransferItem.prototype.getAsFileSystemHandle&&(DataTransferItem.prototype.getAsFileSystemHandle=async function(){let l=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(()=>(C(),L))]);return l.isFile?new i(new e(l,!1)):new r(new t(l,!1))});Y();C();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 ye(r);return m.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},o=await he(s);return new K(o.map(u=>m.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},o=await Se(s);return m.createFromHandle(o)}static async openBookmark(e){let t=await G.connect();try{let r=await t.get(A,e);return r&&m.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{m as StorageItem,K as StorageItems,Ee as StorageProvider};
|
|
//# sourceMappingURL=storage.js.map
|