Files
Semi.Avalonia/_framework/avalonia.js

3 lines
28 KiB
JavaScript
Executable File

var T=class{static getCaretCoordinates(e,t,r){var p,x;if(!G)throw new Error("textarea-caret-position#getCaretCoordinates should only be called in a browser");let n=(p=r==null?void 0:r.debug)!=null?p:!1;if(n){let h=document.querySelector("#input-textarea-caret-position-mirror-div");h&&((x=h.parentNode)==null||x.removeChild(h))}let i=document.createElement("div");i.id="input-textarea-caret-position-mirror-div",document.body.appendChild(i);let s=i.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",n||(s.visibility="hidden"),K.forEach(h=>{if(a&&h==="lineHeight")if(o.boxSizing==="border-box"){let L=parseInt(o.height),N=parseInt(o.paddingTop)+parseInt(o.paddingBottom)+parseInt(o.borderTopWidth)+parseInt(o.borderBottomWidth),U=N+parseInt(o.lineHeight);L>U?s.lineHeight=`${L-N}px`:L===U?s.lineHeight=o.lineHeight:s.lineHeight="0"}else s.lineHeight=o.height;else s[h]=o[h]}),V?e.scrollHeight>parseInt(o.height)&&(s.overflowY="scroll"):s.overflow="hidden",i.textContent=e.value.substring(0,t),a&&(i.textContent=i.textContent.replace(/\s/g,"\xA0"));let d=document.createElement("span");d.textContent=e.value.substring(t)||".",i.appendChild(d);let u={top:d.offsetTop+parseInt(o.borderTopWidth),left:d.offsetLeft+parseInt(o.borderLeftWidth),height:parseInt(o.lineHeight)};return n?d.style.backgroundColor="#aaa":document.body.removeChild(i),u}},K=["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"],G=typeof window!="undefined",V=G&&window.mozInnerScreenX!=null;var l=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 j(){let c=await globalThis.getDotnetRuntime(0);if(c!=null)return l.resolvedExports=await c.getAssemblyExports("Avalonia.Browser.dll"),l.resolvedExports}l.exportsPromise=j();var D=class{constructor(e){this.database=e}openStore(e,t){return this.database.transaction(e,t).objectStore(e)}async put(e,t,r){let n=this.openStore(e,"readwrite");return await new Promise((i,s)=>{let o=n.put(t,r);o.onsuccess=()=>{i(o.result)},o.onerror=()=>{s(o.error)}})}get(e,t){let r=this.openStore(e,"readonly");return new Promise((n,i)=>{let s=r.get(t);s.onsuccess=()=>{n(s.result)},s.onerror=()=>{i(s.error)}})}async delete(e,t){let r=this.openStore(e,"readwrite");return await new Promise((n,i)=>{let s=r.delete(t);s.onsuccess=()=>{n()},s.onerror=()=>{i(s.error)}})}close(){this.database.close()}},B=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(n=>{r.createObjectStore(n)})},await new Promise((t,r)=>{e.onsuccess=n=>{t(new D(n.target.result))},e.onerror=n=>{r(n.target.error)}})}},P="fileBookmarks",M=new B("AvaloniaDb",[P]);var b=class{constructor(e,t,r,n){this.handle=e;this.file=t;this.bookmarkId=r;this.wellKnownType=n}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 b(e,void 0,t,void 0)}static createFromFile(e){return new b(void 0,e,void 0,void 0)}static createWellKnownDirectory(e){return new b(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&&!!v.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||!v.hasNativeFilePicker())return null;let t=await M.connect();try{return await t.put(P,e.handle,e.generateBookmarkId())}finally{t.close()}}static async deleteBookmark(e){if(!e.bookmarkId||!v.hasNativeFilePicker())return;let t=await M.connect();try{await t.delete(P,e.bookmarkId)}finally{t.close()}}generateBookmarkId(){return Date.now().toString(36)+Math.random().toString(36).substring(2)}};var k=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 n=r.slice(0,r.byteLength);e.data[t]=new Blob([n],{type:t})}static async readClipboard(e){let t=e.navigator.clipboard;if(t.read)return(await t.read()).map(n=>({type:"clipboardItem",value:n}));if(t.readText)return[{type:"string",value:await t.readText()}];try{return await new Promise((r,n)=>{this.clipboardState=2,this.resolveClipboard=r,this.rejectClipboard=n})}finally{this.clipboardState=1,this.resolveClipboard=void 0,this.rejectClipboard=void 0}}static async writeClipboard(e,t){var n;let r=(n=t==null?void 0:t.items)!=null?n:[];if(r.length===0){await e.navigator.clipboard.writeText("");return}return e.navigator.clipboard.write?await e.navigator.clipboard.write(r.map(i=>new ClipboardItem(i.data))):await this.writeFirstText(e,r)}static async writeFirstText(e,t){for(let r of t)for(let n in r.data){if(!n.startsWith("text/"))continue;let i=r.data[n];typeof i!="string"&&(i=""),await e.navigator.clipboard.writeText(i);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 n=e.value;if(!n.types.includes(t))return null;let i=await n.getType(t);return t.startsWith("text/")?{type:"string",value:await i.text()}:{type:"bytes",value:await this.getBlobBytes(i)}}case"dataTransferItem":{let n=e.value;switch(n.kind){case"string":{if(t!==n.type)return null;let i=await new Promise(s=>n.getAsString(o=>s(o)));return{type:"string",value:i}}case"file":{if(t!=="Files")return null;let i=n.getAsFile();return i==null?null:{type:"file",value:b.createFromFile(i)}}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 n=e.value;switch(n.kind){case"string":{if(t!==n.type)return null;let i="";return n.getAsString(function(s){i=s}),{type:"string",value:i}}case"file":{if(t!=="Files")return null;let i=n.getAsFile();return i==null?null:{type:"file",value:b.createFromFile(i)}}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),n=this.subscribePointerEvents(e,t),i=this.subscribeTextEvents(e,t),s=this.subscribeDropEvents(e,t),o=this.subscribeKeyboardGeometryChange(e,t);return()=>{r(),n(),i(),s(),o()}}static subscribeKeyEvents(e,t){let r=i=>{l.InputHelper.OnKeyDown(t,i.code,i.key,this.getModifiers(i)).then(s=>{(!s||this.clipboardState!==2)&&i.preventDefault()})};e.addEventListener("keydown",r);let n=i=>{l.InputHelper.OnKeyUp(t,i.code,i.key,this.getModifiers(i)).then(s=>{s||i.preventDefault()}),this.rejectClipboard&&this.rejectClipboard()};return e.addEventListener("keyup",n),()=>{e.removeEventListener("keydown",r),e.removeEventListener("keyup",n)}}static subscribeTextEvents(e,t){let r=o=>{l.InputHelper.OnCompositionStart(t)};e.addEventListener("compositionstart",r);let n=o=>{let a=o.getTargetRanges(),d=-1,u=-1;a.length>0&&(d=a[0].startOffset,u=a[0].endOffset),o.inputType==="insertCompositionText"&&(d=2,u=d+2),l.InputHelper.OnBeforeInput(t,o.inputType,d,u)};e.addEventListener("beforeinput",n);let i=o=>{l.InputHelper.OnCompositionUpdate(t,o.data)};e.addEventListener("compositionupdate",i);let s=o=>{l.InputHelper.OnCompositionEnd(t,o.data),o.preventDefault()};return e.addEventListener("compositionend",s),()=>{e.removeEventListener("compositionstart",r),e.removeEventListener("compositionupdate",i),e.removeEventListener("compositionend",s)}}static subscribePointerEvents(e,t){let r=a=>{l.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()},n=a=>{l.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()},i=a=>{l.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=>{l.InputHelper.OnPointerCancel(t,a.pointerType,a.pointerId,a.offsetX,a.offsetY,a.pressure,a.tiltX,a.tiltY,a.twist,this.getModifiers(a))},o=a=>{l.InputHelper.OnWheel(t,a.offsetX,a.offsetY,a.deltaX,a.deltaY,this.getModifiers(a)),a.preventDefault()};return e.addEventListener("pointermove",r),e.addEventListener("pointerdown",n),e.addEventListener("pointerup",i),e.addEventListener("wheel",o),e.addEventListener("pointercancel",s),()=>{e.removeEventListener("pointerover",r),e.removeEventListener("pointerdown",n),e.removeEventListener("pointerup",i),e.removeEventListener("pointercancel",s),e.removeEventListener("wheel",o)}}static subscribeDropEvents(e,t){let r=i=>{let s=i.dataTransfer;if(s==null)return;let o=this.getDataTransferItems(s).map(a=>({type:"dataTransferItem",value:a}));l.InputHelper.OnDragDrop(t,i.type,i.offsetX,i.offsetY,this.getModifiers(i),s,o)},n=i=>{i.preventDefault(),r(i)};return e.addEventListener("dragover",n),e.addEventListener("dragenter",r),e.addEventListener("dragleave",r),e.addEventListener("drop",n),()=>{e.removeEventListener("dragover",n),e.removeEventListener("dragenter",r),e.removeEventListener("dragleave",r),e.removeEventListener("drop",n)}}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=n=>{let i=e.getBoundingClientRect(),s=n.target.boundingRect;l.InputHelper.OnKeyboardGeometryChange(t,s.x-i.x,s.y-i.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,n,i,s){e.style.left=t.toFixed(0)+"px",e.style.top=r.toFixed(0)+"px";let{left:o,top:a}=T.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,n){!e||(e.value=t,e.setSelectionRange(r,n),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)}};k.clipboardState=0;var g=class{static getGlobalThis(){return globalThis}static addClass(e,t){e.classList.add(t)}static getFirstElementById(e,t){return(t instanceof Window?t.document:t.ownerDocument).getElementById(e)}static getFirstElementByClassName(e,t){let n=(t instanceof Window?t.document:t).getElementsByClassName(e);return n?n[0]:null}static createAvaloniaCanvas(e){var n;let t=(n=e.getAttribute("data-containerId"))!=null?n:"0000",r=document.createElement("canvas");return r.id=`canvas${t}`,r.classList.add("avalonia-canvas"),r.style.width="100%",r.style.height="100%",r.style.position="absolute",r}static attachCanvas(e,t){e.prepend(t)}static detachCanvas(e,t){e.removeChild(t)}static createAvaloniaHost(e){let t=Math.random().toString(36).replace(/[^a-z]+/g,"").substr(2,10);e.classList.add("avalonia-container"),e.tabIndex=0,e.setAttribute("data-containerId",t),e.oncontextmenu=function(){return!1},e.style.overflow="hidden",e.style.touchAction="none";let r=document.createElement("div");r.id=`nativeHost${t}`,r.classList.add("avalonia-native-host"),r.style.left="0px",r.style.top="0px",r.style.width="100%",r.style.height="100%",r.style.position="absolute";let n=document.createElement("input");return n.id=`inputElement${t}`,n.classList.add("avalonia-input-element"),n.autocapitalize="none",n.type="text",n.spellcheck=!1,n.style.padding="0",n.style.margin="0",n.style.borderWidth="0",n.style.position="absolute",n.style.overflow="hidden",n.style.borderStyle="hidden",n.style.outline="none",n.style.background="transparent",n.style.color="transparent",n.style.display="none",n.style.height="20px",n.style.zIndex="-1",n.onpaste=function(){return!1},n.oncopy=function(){return!1},n.oncut=function(){return!1},e.prepend(n),e.prepend(r),{host:e,nativeHost:r,inputElement:n}}static isFullscreen(e){return e.document.fullscreenElement!=null}static async setFullscreen(e,t){t?await e.document.documentElement.requestFullscreen():await e.document.exitFullscreen()}static initGlobalDomEvents(e){if(e.document.documentElement.style.setProperty("--av-sat","env(safe-area-inset-top)"),e.document.documentElement.style.setProperty("--av-sar","env(safe-area-inset-right)"),e.document.documentElement.style.setProperty("--av-sab","env(safe-area-inset-bottom)"),e.document.documentElement.style.setProperty("--av-sal","env(safe-area-inset-left)"),e.matchMedia!==void 0){let t=e.matchMedia("(prefers-color-scheme: dark)"),r=e.matchMedia("(prefers-contrast: more)");t.addEventListener("change",n=>{l.DomHelper.DarkModeChanged(n.matches,r.matches)}),r.addEventListener("change",n=>{l.DomHelper.DarkModeChanged(t.matches,n.matches)})}e.document.addEventListener("visibilitychange",()=>{l.DomHelper.DocumentVisibilityChanged(e.document.visibilityState)}),e.document.visibilityState==="visible"&&e.setTimeout(()=>{l.DomHelper.DocumentVisibilityChanged(e.document.visibilityState)},10)}static getSafeAreaPadding(e){let t=parseFloat(getComputedStyle(e.document.documentElement).getPropertyValue("--av-sat")),r=parseFloat(getComputedStyle(e.document.documentElement).getPropertyValue("--av-sab")),n=parseFloat(getComputedStyle(e.document.documentElement).getPropertyValue("--av-sal")),i=parseFloat(getComputedStyle(e.document.documentElement).getPropertyValue("--av-sar"));return[n,t,r,i]}static getDarkMode(e){if(e.matchMedia===void 0)return[0,0];let t=e.matchMedia("(prefers-color-scheme: dark)"),r=e.matchMedia("(prefers-contrast: more)");return[t.matches?1:0,r.matches?1:0]}};var v=class{static hasNativeFilePicker(){return"showSaveFilePicker"in globalThis}static isMobile(){var i;let e=(i=globalThis.navigator)==null?void 0:i.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,n=/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)||n.test(t.substr(0,4))}static isTv(){return navigator.userAgent.includes("SmartTV")}};var q=typeof SharedArrayBuffer!="undefined";function _(c){return q&&c[Symbol.toStringTag]==="SharedArrayBuffer"}var W=class{static async seek(e,t){return await e.seek(t)}static async truncate(e,t){return await e.truncate(t)}static async close(e){return await e.close()}static async write(e,t,r,n){var o;let i=(o=globalThis.getDotnetRuntime(0))==null?void 0:o.localHeapViewU8(),s;if(t._pointer>0&&t._length>0&&i&&!_(i.buffer))s=new Uint8Array(i.buffer,t._pointer+r,n);else{let a=new Uint8Array(n);t.copyTo(a,r),s=t}return await e.write(s)}static byteLength(e){return e.size}static async sliceArrayBuffer(e,t,r){let n=await e.slice(t,t+r).arrayBuffer();return new Uint8Array(n)}static toMemoryView(e){return e}};var F=class{},A=class{static createDefaultChild(e){return document.createElement("div")}static createAttachment(){return new F}static initializeWithChildHandle(e,t){e._child=t,e._child.style.position="absolute"}static attachTo(e,t){e._host&&e._child&&e._host.removeChild(e._child),e._host=t,e._host&&e._child&&e._host.appendChild(e._child)}static showInBounds(e,t,r,n,i){e._child&&(e._child.style.top=`${r}px`,e._child.style.left=`${t}px`,e._child.style.width=`${n}px`,e._child.style.height=`${i}px`,e._child.style.display="block")}static hideWithSize(e,t,r){e._child&&(e._child.style.width=`${t}px`,e._child.style.height=`${r}px`,e._child.style.display="none")}static releaseChild(e){e._child&&(e._child=void 0)}};var z=class{static addBackHandler(e){history.pushState(null,"",window.location.href),window.onpopstate=()=>{e()?history.forward():history.back()}}static openUri(e,t){return!!window.open(e,t)}};var R=class{static itemsArrayAt(e,t){let r=e[t];if(!r)return[];let n=[];for(let i=0;i<r.length;i++)n[i]=r[i];return n}static itemAt(e,t){return e[t]}static callMethod(e,t){let r=Array.prototype.slice.call(arguments,2);return e[t].apply(e,r)}};var S=class{static runAnimationFrames(){function e(t){var r;(r=l.TimerHelper)==null||r.JsExportOnAnimationFrame(),self.requestAnimationFrame(e)}self.requestAnimationFrame(e)}static onTimeout(){var e;(e=l.TimerHelper)==null||e.JsExportOnTimeout()}static onInterval(){var e;(e=l.TimerHelper)==null||e.JsExportOnInterval()}static setTimeout(e){return setTimeout(S.onTimeout,e)}static setInterval(e){return setInterval(S.onInterval,e)}};var H=class{static observeSize(e,t){return this.resizeObserver||(this.resizeObserver=new ResizeObserver(this.onResize),this.resizeObserver.callbacks=new Map),this.resizeObserver.callbacks.set(e,t),this.resizeObserver.observe(e,{box:"content-box"}),()=>{var r,n;(r=this.resizeObserver)==null||r.callbacks.delete(e),(n=this.resizeObserver)==null||n.unobserve(e)}}static onResize(e,t){for(let r of e){let n=t.callbacks.get(r.target);if(!n)continue;let i=window.devicePixelRatio,s,o,a=i;r.devicePixelContentBoxSize?(s=r.devicePixelContentBoxSize[0].inlineSize,o=r.devicePixelContentBoxSize[0].blockSize,a=1):r.contentBoxSize?r.contentBoxSize[0]?(s=r.contentBoxSize[0].inlineSize,o=r.contentBoxSize[0].blockSize):(s=r.contentBoxSize.inlineSize,o=r.contentBoxSize.blockSize):(s=r.contentRect.width,o=r.contentRect.height);let d=Math.round(s*a),u=Math.round(o*a);n(d,u,i)}}};var w=class{constructor(e,t){this.canvas=e;this.renderTargetType=t}static setSize(e,t,r){e.canvas.width=t,e.canvas.height=r}};function Y(){var t,r,n,i;let c=globalThis,e=(r=c.Module)!=null?r:(t=c.getDotnetRuntime(0))==null?void 0:t.Module;return(i=(n=e==null?void 0:e.GL)!=null?n:c.AvaloniaGL)!=null?i:c.SkiaSharpGL}var f=class extends w{constructor(t,r){var o,a;if(f._gl==null&&(f._gl=Y()),!f._gl)throw new Error("Module.GL object wasn't initialized, WebGL can't be used.");let n={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},i=r===2?t.getContext("webgl",n):t.getContext("webgl2",n);if(!i)throw new Error("HTMLCanvasElement.getContext returned null.");let s=f._gl.registerContext(i,n);i.gl_handle=s;super(t,"webgl");this.canvas=t;this.contextHandle=s,this.fboId=(a=(o=i.getParameter(i.FRAMEBUFFER_BINDING))==null?void 0:o.id)!=null?a:0,this.stencil=i.getParameter(i.STENCIL_BITS),this.sample=i.getParameter(i.SAMPLES),this.depth=i.getParameter(i.DEPTH_BITS),this.attrs=n}static getCurrentContext(){var t,r,n;return(n=(r=(t=f._gl)==null?void 0:t.currentContext)==null?void 0:r.handle)!=null?n:0}static makeContextCurrent(t){if(f._gl==null)return!1;let r=f._gl.makeContextCurrent(t);return t===0||r}},E=f;E._gl=null;var C=class extends w{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,n,i){var d;let s=(d=this.runtime)==null?void 0:d.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,n,i);this.context.putImageData(a,0,0)}static staticPutPixelData(t,r,n,i,s){t.putPixelData(r,n,i,s)}};var m=class{static create(e,t,r){var i,s;let n=m.nextId++;if(e===0)m.registry[n]={canvas:t},m.targets[n]=m.createRenderTarget(t,r);else{let o=globalThis,a=(s=o.Module)!=null?s:(i=o.getDotnetRuntime(0))==null?void 0:i.Module,d=a==null?void 0:a.PThread;if(d==null)throw new Error("Unable to access emscripten PThread api");let u=d.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 x=t.transferControlToOffscreen();p.postMessage({avaloniaCmd:"registerCanvas",canvas:x,modes:r,id:n},[x]),m.registry[n]={canvas:t,worker:p}}return n}static initializeWorker(){let e=self.onmessage;self.onmessage=t=>{let r=t;r.data.avaloniaCmd==="registerCanvas"?m.targets[r.data.id]=m.createRenderTarget(r.data.canvas,r.data.modes):r.data.avaloniaCmd==="unregisterCanvas"?delete m.targets[r.data.id]:e!=null&&e.call(self,t)}}static getRenderTarget(e){return m.targets[e]}static createRenderTarget(e,t){for(let r of t)try{return r===1?new C(e):new E(e,r)}catch(n){let i="";n instanceof Error&&(i=": "+n.message),console.error(`Failed to create render target for mode ${r} ${i}`)}return new C(e)}},y=m;y.targets={},y.registry={},y.nextId=1;var I=class{constructor(e,t,r,n){this.canvas=e;this.targetId=y.create(n,e,t),H.observeSize(e,(i,s,o)=>{var a;this.sizeParams=[i,s,o],(a=l.CanvasHelper)==null||a.OnSizeChanged(r,i,s,o)})}get width(){return this.sizeParams?this.sizeParams[0]:1}get height(){return this.sizeParams?this.sizeParams[1]:1}get scaling(){return this.sizeParams?this.sizeParams[2]:1}destroy(){}static create(e,t,r,n){let i=g.createAvaloniaCanvas(e);g.attachCanvas(e,i);try{return new I(i,t,r,n)}catch(s){throw g.detachCanvas(e,i),s}}static destroy(e){e.destroy()}};var O=class{static raiseOnChanged(){l.DomHelper.ScreensChanged()}static async checkPermissions(e){let{state:t}=await e.navigator.permissions.query({name:"window-management"});t==="granted"&&await this.requestDetailedScreens(e)}static subscribeOnChanged(e){if(this.detailedScreens){e.screen.removeEventListener("change",this.raiseOnChanged),this.detailedScreens.addEventListener("screenschange",this.raiseOnChanged);for(let t of this.detailedScreens.screens)t.addEventListener("change",this.raiseOnChanged)}else e.screen.addEventListener("change",this.raiseOnChanged)}static getAllScreens(e){return this.detailedScreens?this.detailedScreens.screens:[Object.assign(e.screen,{window:e})]}static async requestDetailedScreens(e){return this.detailedScreens?!0:"getScreenDetails"in e&&(this.detailedScreens=await e.getScreenDetails(),this.detailedScreens)?(this.subscribeOnChanged(e),e.setTimeout(this.raiseOnChanged,1),!0):!1}static getDisplayName(e){return e==null?void 0:e.label}static getScaling(e){return"devicePixelRatio"in e?e.devicePixelRatio:"window"in e?e.window.devicePixelRatio:1}static getBounds(e){let t=e.width,r=e.height;return"left"in e&&"top"in e?[e.left,e.top,t,r]:"availLeft"in e&&"availTop"in e?[e.availLeft,e.availTop,t,r]:[0,0,t,r]}static getWorkingArea(e){let t=e.availWidth,r=e.availHeight;return"availLeft"in e&&"availTop"in e?[e.availLeft,e.availTop,t,r]:[0,0,t,r]}static isCurrent(e){return this.detailedScreens?this.detailedScreens.currentScreen===e:!0}static isPrimary(e){return"isPrimary"in e?e.isPrimary:!0}static getCurrentOrientation(e){switch(e.orientation.type){case"landscape-primary":return 1;case"landscape-secondary":return 4;case"portrait-primary":return 2;case"portrait-secondary":return 8}}};async function Xe(c,e){"serviceWorker"in navigator&&await globalThis.navigator.serviceWorker.register(c,e?{scope:e}:void 0)}export{g as AvaloniaDOM,v as Caniuse,I as CanvasSurface,R as GeneralHelpers,k as InputHelper,A as NativeControlHost,z as NavigationHelper,O as ScreenHelper,C as SoftwareRenderTarget,W as StreamHelper,S as TimerHelper,E as WebGlRenderTarget,w as WebRenderTarget,y as WebRenderTargetRegistry,Xe as registerServiceWorker};
//# sourceMappingURL=avalonia.js.map