next-flow-interface
Version:
Interface package for NEXT FlOW. You can use this package to build your own plugin that can control anything.
1 lines • 21.5 kB
JavaScript
var t=Object.defineProperty,n=class extends Error{constructor(t){super(t),this.name="NotFoundError"}},e=class extends n{constructor(t){super(t),this.name="DomNotFoundError"}},o=class extends Error{constructor(t){super(`${t} is a static class and cannot be instantiated.`),this.name="StaticClassInstantiationError"}},i=(t=>(t.Default="Default",t))(i||{}),r=class{constructor(t,n=null,e="",o="Default",i=0,r=0){this.nid=t,this.node=n,this.text=e,this.theme=o,this.x=i,this.y=r}parentElement=null;pointElement=null;lineElement=null;blockElement=null;textElement=null;validate=!1;always=!1;show=!1;lastClickTime=0;lastSp=null},a=(t=>(t.ADD="ADD",t.REMOVE="REMOVE",t.START="START",t.PROGRESS="PROGRESS",t.PAUSE="PAUSE",t.RESUME="RESUME",t.LOADED="LOADED",t.ERROR="ERROR",t.CANCELED="CANCELED",t))(a||{}),s=(t=>(t.WAITING="WAITING",t.LOADING="LOADING",t.LOADED="LOADED",t.ERROR="ERROR",t.CANCELED="CANCELED",t))(s||{}),u=(t=>(t.WAITING="WAITING",t.LOADING="LOADING",t.LOADED="LOADED",t.ERROR="ERROR",t.CANCELED="CANCELED",t))(u||{}),c=(t=>(t.START="START",t.PROGRESS="PROGRESS",t.LOADED="LOADED",t.ERROR="ERROR",t.CANCELED="CANCELED",t))(c||{}),E=class t{constructor(t,n,e=[],o=!1,i=0,r=0,a=!1,s,u=null,c=new Date){this.options=t,this.id=n,this.lines=e,this.showIcon=o,this.x=i,this.y=r,this.closeOnOutsideClick=a,this.theme=s,this.controller=u,this.createTime=c}static fromOptions(n,e,o){let{showIcon:i}=e;return void 0===i&&e.lines?.forEach(t=>{t.icon&&(i=!0)}),new t(e,n,o,i,e.x,e.y,e.closeOnOutsideClick,e.theme)}},l=(t=>(t.BUTTON="BUTTON",t.DIVIDER="DIVIDER",t.CHECKBOX="CHECKBOX",t.SUB="SUB",t.VIEW="VIEW",t))(l||{}),T=class t{constructor(t,n,e="BUTTON",o="",i="",r=void 0,a=void 0,s="",u=!1,c="",E=()=>{},l=()=>{},T=()=>{},f="BUTTON"===e,R=!1,h=()=>{},A=void 0,O=new Date){this.options=t,this.id=n,this.type=e,this.text=o,this.tip=i,this.icon=r,this.view=a,this.color=s,this.disabled=u,this.shortcut=c,this.onClick=E,this.onMouseOver=l,this.onMouseOut=T,this.closeAllOnClick=f,this.checkboxDefaultValue=R,this.onCheckboxChange=h,this.sub=A,this.createTime=O}static fromOptions(n,e){return new t(e,n,e.type,e.text,e.tip,e.icon,e.view,e.color,e.disabled,e.shortcut,e.onClick,e.onMouseOver,e.onMouseOut,e.closeAllOnClick,e.checkboxDefaultValue,e.onCheckboxChange,e.sub)}},f=(t=>(t.GREEN="GREEN",t.PURPLE="PURPLE",t.BLUE="BLUE",t.PINK="PINK",t))(f||{}),R=(t=>(t.LEFT="LEFT",t.CENTER="CENTER",t.RIGHT="RIGHT",t))(R||{}),h=class t{constructor(t,n,e="",o=void 0,i="",r="LEFT",a=void 0,s=void 0,u=void 0,c="BLUE",E=!1,l="",T={},f="",R="",h=!1,A="",O="",S=h,D=!1,L=()=>{},d=()=>!0,I=!0,N=()=>{},m=()=>{},p=()=>{},C=()=>{},P=()=>{},g=()=>{},y=()=>{},U=()=>{},w=()=>()=>{},M=!0,B=!0,x=!1,G=!0,v=!0,b=A,F=new Date,V=()=>{},H=new Map){this.options=t,this.id=n,this.title=e,this.titleIcon=o,this.content=i,this.contentAlign=r,this.contentView=a,this.icon=s,this.view=u,this.theme=c,this.leftMode=E,this.className=l,this.style=T,this.confirmText=f,this.cancelText=R,this.enableInput=h,this.defaultValue=A,this.inputPlaceholder=O,this.autoFocus=S,this.allowEmpty=D,this.onChange=L,this.onCheck=d,this.enableCloseButton=I,this.onConfirm=N,this.onCancel=m,this.onClose=p,this.onConfirmButtonClick=C,this.onCancelButtonClick=P,this.onOutsideClick=g,this.onCloseButtonClick=y,this.onRender=U,this.onEffect=w,this.closeOnConfirm=M,this.closeOnCancel=B,this.closeOnOutsideClick=x,this.closeOnCloseButtonClick=G,this.alignButton=v,this.inputValue=b,this.createTime=F,this.focusInput=V,this.elements=H}static fromOptions(n,e){return new t(e,n,e.title,e.titleIcon,e.content,e.contentAlign,e.contentView,e.icon,e.view,e.theme,e.leftMode,e.className,e.style,e.confirmText,e.cancelText,e.enableInput,e.defaultValue,e.inputPlaceholder,e.autoFocus,e.allowEmpty,e.onChange,e.onCheck,e.enableCloseButton,e.onConfirm,e.onCancel,e.onClose,e.onConfirmButtonClick,e.onCancelButtonClick,e.onOutsideClick,e.onCloseButtonClick,e.onRender,e.onEffect,e.closeOnConfirm,e.closeOnCancel,e.closeOnOutsideClick,e.closeOnCloseButtonClick,e.alignButton)}setHide=()=>{}},A=(t=>(t.WAITING="WAITING",t.LOADING="LOADING",t.LOADED="LOADED",t.ERROR="ERROR",t.CANCELED="CANCELED",t))(A||{}),O=(t=>(t.START="START",t.PROGRESS="PROGRESS",t.LOADED="LOADED",t.ERROR="ERROR",t.CANCELED="CANCELED",t))(O||{}),S={};((n,e)=>{for(var o in e)t(n,o,{get:e[o],enumerable:!0})})(S,{AAC:()=>H,ANIMATION:()=>B,ANY:()=>p,ATTACH_LIST:()=>Ct,AVI:()=>et,AVIF:()=>Z,BMP:()=>K,CAMERA:()=>y,FLAC:()=>k,FLV:()=>at,GIF:()=>Y,GLB:()=>x,GLTF:()=>G,GP3:()=>ut,HEIF:()=>Q,ICO:()=>q,JPG:()=>X,JSON:()=>Et,LIGHT:()=>g,MARKDOWN:()=>ft,MATERIAL:()=>w,MESH:()=>P,MKV:()=>ct,MOV:()=>it,MP3:()=>F,MP4:()=>tt,MPEG:()=>ot,NF:()=>lt,OBJ:()=>b,OGG:()=>W,OGV:()=>st,OPUS:()=>z,PNG:()=>_,STL:()=>v,SUPPORT_ALL_LIST:()=>It,SUPPORT_AUDIO_LIST:()=>St,SUPPORT_BABYLON_LIST:()=>Ot,SUPPORT_FILE_LIST:()=>Nt,SUPPORT_IMAGE_LIST:()=>Rt,SUPPORT_JSON_LIST:()=>Lt,SUPPORT_MODEL_LIST:()=>ht,SUPPORT_NEXTFLOW_LIST:()=>dt,SUPPORT_RENDER_LIST:()=>mt,SUPPORT_TEXTURE_LIST:()=>pt,SUPPORT_TEXT_LIST:()=>Dt,SUPPORT_VIDEO_LIST:()=>At,SVG:()=>j,TEXTURE:()=>U,TIFF:()=>J,TXT:()=>Tt,UNKNOWN:()=>C,UV:()=>M,WAV:()=>V,WMV:()=>rt,WebM:()=>nt,WebP:()=>$,getExtension:()=>Bt,getMime:()=>Mt,getMimeByBlob:()=>Pt,getMimeByBuffer:()=>Ut,getMimeByPath:()=>gt,getMimeByStream:()=>wt,getMimeByUrl:()=>yt,isAttach:()=>$t,isBabylon:()=>Wt,isMaterial:()=>Yt,isSupport:()=>xt,isSupportAudio:()=>kt,isSupportFile:()=>Gt,isSupportImage:()=>vt,isSupportJson:()=>Ht,isSupportModel:()=>bt,isSupportRender:()=>zt,isSupportText:()=>Vt,isSupportTexture:()=>Xt,isSupportVideo:()=>Ft,isTexture:()=>_t,isUV:()=>Kt});import{AbstractMesh as D,BaseTexture as L,Material as d}from"@babylonjs/core";import{fileTypeFromBlob as I,fileTypeFromBuffer as N,fileTypeFromStream as m}from"file-type";var p="*/*",C="unknown/unknown",P="babylonjs/mesh",g="babylonjs/light",y="babylonjs/camera",U="babylonjs/texture",w="babylonjs/material",M="babylonjs/uv",B="babylonjs/animation",x="model/gltf-binary",G="model/gltf+json",v="model/stl",b="model/obj",F="audio/mpeg",V="audio/wav",H="audio/aac",W="audio/ogg",k="audio/flac",z="audio/opus",X="image/jpeg",_="image/png",Y="image/gif",K="image/bmp",$="image/webp",j="image/svg+xml",J="image/tiff",q="image/x-icon",Q="image/heif",Z="image/avif",tt="video/mp4",nt="video/webm",et="video/x-msvideo",ot="video/mpeg",it="video/quicktime",rt="video/x-ms-wmv",at="video/x-flv",st="video/ogg",ut="video/3gpp",ct="video/x-matroska",Et="application/json",lt="nextflow/sync",Tt="text/plain",ft="text/markdown",Rt=[X,_],ht=[x,G,v,b],At=[tt],Ot=[P,g,y,U,w,M,B],St=[F,V],Dt=[Tt],Lt=[Et],dt=[lt],It=[...Rt,...ht,...At,...Ot,...St,...Dt,...Lt],Nt=[...Rt,...ht,...At,...St,...Dt,...Lt],mt=[...Rt,...ht,...At,...Dt],pt=[...Rt,...At,U],Ct=[U,w,M];async function Pt(t){if(t&&t instanceof Blob){const n=await I(t);return!n&&t instanceof File&&t.name.endsWith(".stl")?v:n?.mime??C}return C}async function gt(t){if(t){return(await import("mime")).default.getType(t)??C}return C}async function yt(t){if(!t)return C;try{const n=await fetch(t);if(!n.body)return C;const e=await m(n.body);if(e?.mime)return e.mime;const o=new URL(t).pathname;if(o.includes("."))return await gt(o)}catch(t){console.error("getMimeByUrl",t)}return C}async function Ut(t){if(t){const n=await N(t);return n?.mime??C}return C}async function wt(t){const n=await m(t);return n?.mime??C}async function Mt(t){return t?"undefined"!=typeof ReadableStream&&t instanceof ReadableStream?wt(t):t instanceof Blob?Pt(t):"string"==typeof t?t.startsWith("http://")||t.startsWith("https://")?yt(t):gt(t):t instanceof ArrayBuffer||t instanceof Uint8Array?Ut(t):t instanceof L?U:t instanceof d?w:t instanceof D?P:C:C}async function Bt(t=C){if(Wt(t)||$t(t))return t;if(t===p||t===C)return"";return(await import("mime")).default.getExtension(t)??""}function xt(t=C){return t==p||t!=C&&It.includes(t)}function Gt(t=C){return t==p||t!=C&&Nt.includes(t)}function vt(t=C){return t==p||t!=C&&Rt.includes(t)}function bt(t=C){return t==p||t!=C&&ht.includes(t)}function Ft(t=C){return t==p||t!=C&&At.includes(t)}function Vt(t=C){return t==p||t!=C&&Dt.includes(t)}function Ht(t=C){return t==p||t!=C&&Lt.includes(t)}function Wt(t=C){return t==p||t!=C&&Ot.includes(t)}function kt(t=C){return t==p||t!=C&&St.includes(t)}function zt(t=C){return t==p||t!=C&&mt.includes(t)}function Xt(t=C){return t==p||t!=C&&pt.includes(t)}function _t(t=C){return t==p||t!=C&&t==U}function Yt(t=C){return t==p||t!=C&&t==w}function Kt(t=C){return t==p||t!=C&&t==M}function $t(t=C){return t==p||t!=C&&Ct.includes(t)}var jt=(t=>(t.ADD="ADD",t.REMOVE="REMOVE",t.START="START",t.PROGRESS="PROGRESS",t.PAUSE="PAUSE",t.RESUME="RESUME",t.LOADED="LOADED",t.ERROR="ERROR",t.CANCELED="CANCELED",t))(jt||{}),Jt=(t=>(t.WAITING="WAITING",t.LOADING="LOADING",t.PAUSED="PAUSED",t.LOADED="LOADED",t.FAILED="FAILED",t.CANCELED="CANCELED",t))(Jt||{}),qt=(t=>(t.BLOB="BLOB",t.OBJECT="OBJECT",t))(qt||{}),Qt=(t=>(t.WAITING="WAITING",t.UPLOADING="UPLOADING",t.PAUSED="PAUSED",t.COMPLETED="COMPLETED",t.FAILED="FAILED",t.CANCELED="CANCELED",t))(Qt||{}),Zt=(t=>(t.START="START",t.PROGRESS="PROGRESS",t.PAUSE="PAUSE",t.RESUME="RESUME",t.UPLOADED="UPLOADED",t.FAILED="FAILED",t.CANCELED="CANCELED",t))(Zt||{}),tn=(t=>(t.ZH="ZH",t.EN="EN",t))(tn||{}),nn=(t=>(t.PENDING="PENDING",t.PROGRESSING="PROGRESSING",t.ENDED="ENDED",t.CANCELED="CANCELED",t.BANNED="BANNED",t))(nn||{}),en=(t=>(t.NONE="NONE",t.SELF="SELF",t.ALL="ALL",t))(en||{}),on=class{constructor(t,n,e,o){this.text=t,this.type=n,this.duration=e,this.id=o}show=!0;height=20;opacity=0},rn=(t=>(t.ADD="ADD",t.INSTALL="INSTALL",t.ENABLE="ENABLE",t.DISABLE="DISABLE",t.UNINSTALL="UNINSTALL",t))(rn||{}),an=(t=>(t.BUILT_IN="BUILT_IN",t.EXTERNAL="EXTERNAL",t.UNKNOWN="UNKNOWN",t))(an||{}),sn=(t=>(t.DISPLAY="DISPLAY",t.FULL="FULL",t.HP_BOX="HP_BOX",t.VR="VR",t.MR="MR",t))(sn||{}),un=(t=>(t.EDITOR="EDITOR",t.VIEWER="VIEWER",t.VISITOR="VISITOR",t))(un||{}),cn=(t=>(t.DEFAULT="DEFAULT",t.DESCRIPTION="DESCRIPTION",t))(cn||{}),En=(t=>(t.XS="XS",t.SM="SM",t.MD="MD",t.LG="LG",t.XL="XL",t))(En||{}),ln=(t=>(t.DEFAULT="DEFAULT",t.BACKGROUND="BACKGROUND",t.LIGHT="LIGHT",t.DARK="DARK",t))(ln||{}),Tn=(t=>(t.GENERAL="GENERAL",t.RHINE="RHINE",t))(Tn||{}),fn=(t=>(t.UNDO="UNDO",t.REDO="REDO",t))(fn||{}),Rn=(t=>(t.ADD="ADD",t.REMOVE="REMOVE",t))(Rn||{}),hn=(t=>(t.OSS="OSS",t.URL="URL",t))(hn||{}),An=(t=>(t.TEXT="TEXT",t.CUBE="CUBE",t.SPHERE="SPHERE",t.CONE="CONE",t.PRISM="PRISM",t.POLYHEDRON="POLYHEDRON",t.TORUS="TORUS",t.CYLINDER="CYLINDER",t.ICO_SPHERE="ICO_SPHERE",t.CAPSULE="CAPSULE",t.PLANE="PLANE",t))(An||{}),On=(t=>(t.BASIC="BASIC",t.PROVIDE="PROVIDE",t.UPLOAD="UPLOAD",t))(On||{}),Sn=(t=>(t.TEXTURE="TEXTURE",t.MATERIAL="MATERIAL",t.UV="UV",t))(Sn||{}),Dn=(t=>(t.FILE="FILE",t.ATTACH="ATTACH",t))(Dn||{}),Ln=(t=>(t.NONE="NONE",t.PBR="PBR",t.STANDARD="STANDARD",t.NODE="NODE",t.OTHER="OTHER",t.TERRAIN="TERRAIN",t.FUR="FUR",t.WATER="WATER",t.LAVA="LAVA",t.SKY="SKY",t.BACKGROUND="BACKGROUND",t.MULTI="MULTI",t.SHADER="SHADER",t))(Ln||{}),dn=(t=>(t.NONE="NONE",t.METAL="METAL",t.PLASTIC="PLASTIC",t.GLASS="GLASS",t.WOOD="WOOD",t.MIRROR="MIRROR",t.CRYSTAL="CRYSTAL",t.PAINT="PAINT",t.CLOTH="CLOTH",t))(dn||{}),In=(t=>(t.ADD="ADD",t.REMOVE="REMOVE",t))(In||{}),Nn=(t=>(t.SYNC="SYNC",t.STEP="STEP",t.SELECT="SELECT",t.ADD="ADD",t.UPDATE="UPDATE",t.DELETE="DELETE",t))(Nn||{}),mn=(t=>(t[t.TOP=0]="TOP",t[t.RIGHT=1]="RIGHT",t[t.BOTTOM=2]="BOTTOM",t[t.LEFT=3]="LEFT",t[t.TOP_LEFT=4]="TOP_LEFT",t[t.BOTTOM_LEFT=5]="BOTTOM_LEFT",t[t.TOP_RIGHT=6]="TOP_RIGHT",t[t.BOTTOM_RIGHT=7]="BOTTOM_RIGHT",t[t.UNKNOWN=8]="UNKNOWN",t))(mn||{}),pn=(t=>(t.BUTTON="BUTTON",t.SWITCH="SWITCH",t.DRAWER="DRAWER",t.DIALOG="DIALOG",t.CONTENT="CONTENT",t.WINDOW="WINDOW",t.SERVICE="SERVICE",t))(pn||{});var Cn={computeSHA256:async function(t){const n=await crypto.subtle.digest("SHA-256",t);return Array.from(new Uint8Array(n)).map(t=>t.toString(16).padStart(2,"0")).join("")}};var Pn={recursPathValue:function(t,n){const e=[];return e.push({path:t,value:n}),e}};function gn(t){const n=Math.floor(t).toString().length<=1?2:1;return t.toFixed(n)}async function yn(t){if(t.size<=1048576){const n=await t.arrayBuffer();return Cn.computeSHA256(n)}const n=[.25,.5,.75].map(n=>Math.floor(t.size*n)),e=await Promise.all(n.map(async n=>{const e=n,o=Math.min(e+65536,t.size),i=t.slice(e,o),r=await i.arrayBuffer();return Cn.computeSHA256(r)})),o=new TextEncoder,i=e.join(""),r=o.encode(i);return Cn.computeSHA256(r)}var Un={to3n:gn,convertBytesToHigherUnit:function(t){const n=["B","KB","MB","GB","TB","PB","EB","ZB","YB"];let e=0;for(;t>=1024&&e<n.length-1;)t/=1024,e++;let o=gn(t);return o.endsWith(".0")&&(o=o.slice(0,-2)),o.endsWith(".00")&&(o=o.slice(0,-3)),`${o} ${n[e]}`},splitName:function(t){const n=t.lastIndexOf(".");return-1===n?[t,""]:[t.substring(0,n),t.substring(n+1)]},ensureFileArray:function(t){return t?t instanceof File?[t]:t instanceof FileList?Array.from(t):t:[]},chunkHash:yn,isSameFile:async function(t,n,e,o){if(n===t.name&&e===t.size){if(!o)return!0;if(o===await yn(t))return!0}return!1},getFileInfo:async function(t){const n=await fetch(t,{method:"HEAD"});if(!n.ok)throw new Error(`HEAD request failed with status: ${String(n.status)}`);const e=n.headers.get("Content-Length");let o;if(e){if(o=parseInt(e,10),isNaN(o))throw new Error("Invalid file size from header")}else{const n=await fetch(t);if(!n.ok)throw new Error(`GET request failed with status: ${String(n.status)}`);o=(await n.blob()).size}return{name:new URL(t).pathname.split("/").pop()??"unknown",size:o}}};var wn={toDegrees:function(t){return t*(180/Math.PI)},toRadians:function(t){return t*(Math.PI/180)},approximatelyEqual:function(t,n,e=1e-6){return Math.abs(t-n)<e},getDistance:function(t,n,e,o){return Math.sqrt((e-t)**2+(o-n)**2)},getDistance3d:function(t,n,e,o,i,r){return Math.sqrt((o-t)**2+(i-n)**2+(r-e)**2)},getNearestNumberIndex:function(t,n){let e=1/0,o=-1;for(let i=0;i<n.length;i++){const r=Math.abs(t-n[i]);r<e&&(e=r,o=i)}return o}};function Mn(t){if(t.type.includes("touch")){const n=t;if(n.touches.length){const t=n.touches[0];return[t.clientX,t.clientY]}const e=n.changedTouches[0];return[e.clientX,e.clientY]}const n=t;return[n.clientX,n.clientY]}var Bn={getEventPosition:Mn,getDistanceBetweenEvents:function(t,n){const[e,o]=Mn(t),[i,r]=Mn(n);return wn.getDistance(e,o,i,r)},preventDefaultListener:function(t){t.preventDefault()},stopPropagationListener:function(t){t.stopPropagation()},preventDefaultStopPropagationListener:function(t){t.preventDefault(),t.stopPropagation()}};var xn={fetchJsonWithRetry:async function(t,n=3){let e;for(let o=0;o<n;o++)try{const n=await fetch(t);if(!n.ok)throw new Error(`HTTP Error: Status ${n.status.toString()}`);return await n.json()}catch(n){e=n,console.log(`Attempt ${(o+1).toString()} Failed: Retrying...\n${t}`)}throw e},fetchBlobWithRetry:async function(t,n=3){let e;for(let o=0;o<n;o++)try{const n=await fetch(t);if(!n.ok)throw new Error(`HTTP Error: Status ${n.status.toString()}`);return await n.blob()}catch(n){e=n,console.log(`Attempt ${(o+1).toString()} Failed: Retrying...\n${t}`)}throw e}};function Gn(t,n){const e=10**n;return Math.round(t*e)/e}var vn={roundToX:Gn,r2:function(t){return Gn(t,2)},r3:function(t){return Gn(t,3)},isValidNumber:function(t){return"number"==typeof t&&!isNaN(t)&&isFinite(t)}};var bn={getPageTypeBySpaceText:function(t){return"space"===t?"EDITOR":"m"===t?"VISITOR":"VIEWER"},getSearchParams:function(t){return new URLSearchParams(window.location.search).get(t)??void 0}};function Fn(t){const n=[];for(const e of t.split(".")){const t=parseInt(e,10);isNaN(t)||e!==t.toString()?n.push(e):n.push(t)}return n}function Vn(t){return t.join(".")}function Hn(t){return"string"==typeof t?Fn(t):t}var Wn={makeRvPath:Fn,makeRvPathString:Vn,ensureRvPath:Hn,ensureRvPathString:function(t){return"string"!=typeof t?Vn(t):t},getByRvPath:function(t,n){const e=Hn(n);let o=t;for(const t of e){if(null==o)return;o=o[t]}return o},setByRvPath:function(t,n,e){const o=Hn(n);let i=t;for(let t=0;t<o.length-1;t++)i=i[o[t]];i[o[o.length-1]]=e},checkRvPathOverlay:function(t,n){const e=Hn(t),o=Hn(n),i=e.length>o.length?o.length:e.length;for(let t=0;t<i;t++)if(e[t]!=o[t])return!1;return!0}};function kn(t){return new Promise(n=>{setTimeout(n,t)})}function zn(t,n){if(0===n)return t;let e,o,i=0,r=null;function a(){i=Date.now(),e&&t.apply(o,e)}return function(...t){const s=Date.now()-i;e=t,o=this,0!==i?(r&&(clearTimeout(r),r=null),s<n?r=setTimeout(()=>{a(),r=null},n-s):a()):setTimeout(a,1)}}var Xn={convertTimeText:function(t){const n=Math.floor(t/3600),e=Math.floor(t%3600/60),o=Math.floor(t%60);return[n>0?String(n).padStart(2,"0"):null,String(e).padStart(2,"0"),String(o).padStart(2,"0")].filter(Boolean).join(":")},formatDateTo17Digits:function(t=new Date){return t.getFullYear().toString()+(t.getMonth()+1).toString().padStart(2,"0")+t.getDate().toString().padStart(2,"0")+t.getHours().toString().padStart(2,"0")+t.getMinutes().toString().padStart(2,"0")+t.getSeconds().toString().padStart(2,"0")+t.getMilliseconds().toString().padStart(3,"0")},formatDuration:function(t,n){const e=n-t,o=Math.floor(e/1e3),i=Math.floor(o/3600),r=Math.floor(o%3600/60),a=o%60;return`${i>0?`${i.toString().padStart(2,"0")}:`:""}${r.toString().padStart(2,"0")}:${a.toString().padStart(2,"0")}`}};async function _n(t){try{return await navigator.clipboard.writeText(t),!0}catch{return!1}}var Yn={getParam:function(t){const n=new RegExp(`(^|&)${t}=([^&]*)(&|$)`,"i"),e=window.location.search.substring(1).match(n);return null!=e?decodeURIComponent(e[2]):""},getHashParam:function(t){const n=new RegExp(`(^|&)${t}=([^&]*)(&|$)`,"i"),e=window.location.hash.substring(1).match(n);return null!=e?decodeURIComponent(e[2]):""},check:function(t){return new RegExp("^(?!mailto:)(?:(?:http|https|ftp)://|//)(?:\\S+(?::\\S*)?@)?(?:(?:(?:[1-9]\\d?|1\\d\\d|2[01]\\d|22[0-3])(?:\\.(?:1?\\d{1,2}|2[0-4]\\d|25[0-5])){2}(?:\\.(?:[0-9]\\d?|1\\d\\d|2[0-4]\\d|25[0-4]))|(?:(?:[a-z\\u00a1-\\uffff0-9]+-?)*[a-z\\u00a1-\\uffff0-9]+)(?:\\.(?:[a-z\\u00a1-\\uffff0-9]+-?)*[a-z\\u00a1-\\uffff0-9]+)*(?:\\.(?:[a-z\\u00a1-\\uffff]{2,})))|localhost)(?:\\d{2,5})?(?:(/|\\?|#)[^\\s]*)?$","i").test(t)},copyCurrentUrlToClipboard:async function(){return _n(window.location.href)},copyText:async function(t){try{return await navigator.clipboard.writeText(t),!0}catch{return!1}},trySetClipboard:_n,extractFilenameFromUrl:function(t,n=!0){try{const e=new URL(t),o=e.pathname.split("/").pop()??"";return!n&&o.includes(".")?o.substring(0,o.lastIndexOf(".")):o}catch{return""}}};import{Quaternion as Kn,Vector3 as $n}from"@babylonjs/core";function jn(t){return{x:180*t.x/Math.PI,y:180*t.y/Math.PI,z:180*t.z/Math.PI}}function Jn(t){return new Kn(t.x,t.y,t.z,t.w)}function qn(t){return"w"in t}var Qn={xyToArray:function(t,n=-1,e=[0,0]){return t?-1===n?[t.x,t.y]:[vn.roundToX(t.x,n),vn.roundToX(t.y,n)]:e},xyzToArray:function(t,n=-1,e=[0,0,0]){return t?-1===n?[t.x,t.y,t.z]:[vn.roundToX(t.x,n),vn.roundToX(t.y,n),vn.roundToX(t.z,n)]:e},xyzwToArray:function(t,n=-1,e=[0,0,0,0]){return t?-1===n?[t.x,t.y,t.z,t.w]:[vn.roundToX(t.x,n),vn.roundToX(t.y,n),vn.roundToX(t.z,n),vn.roundToX(t.w,n)]:e},scaleV3:function(t,n){return{x:n.x*t,y:n.y*t,z:n.z*t}},radiansToDegrees:jn,degreeToRadians:function(t){return{x:t.x*Math.PI/180,y:t.y*Math.PI/180,z:t.z*Math.PI/180}},radiansToQuaternion:function(t){return Kn.RotationYawPitchRoll(t.y,t.x,t.z)},degreesToQuaternion:function(t){return Kn.RotationYawPitchRoll(t.y*Math.PI/180,t.x*Math.PI/180,t.z*Math.PI/180)},toVector3:function(t){return new $n(t.x,t.y,t.z)},fromVector3:function(t){return{x:t.x,y:t.y,z:t.z}},withRound:function(t,n=0){return{x:vn.roundToX(t.x,n),y:vn.roundToX(t.y,n),z:vn.roundToX(t.z,n)}},isFiniteVector:function(t){return isFinite(t.x)&&isFinite(t.y)&&isFinite(t.z)},noZero:function(t){return 0!==t.x&&0!==t.y&&0!==t.z},scaleV4:function(t,n){return{x:n.x*t,y:n.y*t,z:n.z*t,w:n.w*t}},toQuaternionVector:Jn,toEulerRadians:function(t){return Jn(t).toEulerAngles()},toEulerDegrees:function(t){return jn(Jn(t).toEulerAngles())},toArray:function(t){return qn(t)?[t.x,t.y,t.z,t.w]:[t.x,t.y,t.z]},fromQuaternion:function(t){return{x:t.x,y:t.y,z:t.z,w:t.w}},toArrayWithRound4:function(t,n=0){return qn(t)?[vn.roundToX(t.x,n),vn.roundToX(t.y,n),vn.roundToX(t.z,n),vn.roundToX(t.w,n)]:[vn.roundToX(t.x,n),vn.roundToX(t.y,n),vn.roundToX(t.z,n)]}};export{S as AcceptMime,E as ContextMenu,Cn as CryptoUtils,Pn as DataUtils,h as Dialog,R as DialogContentAlign,e as DomNotFoundError,Un as FileUtils,c as FirstLoadModelServiceEventType,u as FirstLoadModelServiceStatus,O as FirstLoadServiceEventType,A as FirstLoadServiceStatus,cn as FocusMode,fn as HistoryServiceEventType,mn as IconPluginPosition,r as LabelInfo,i as LabelTheme,jt as LocalDataServiceEventType,Jt as LocalDataStatus,qt as LocalDataType,tn as Locale,wn as MathUtils,nn as MeetingStatus,T as MenuLine,l as MenuLineType,on as Message,Bn as NativeEventUtils,xn as NetworkUtils,n as NotFoundError,vn as NumberUtils,Qt as OssUploadInstanceStatus,Zt as OssUploadServiceEventType,sn as PageMode,un as PageType,bn as PageUtils,rn as PluginEventType,an as PluginFrom,pn as PluginType,a as RsModelServiceEventType,s as RsModelStatus,Sn as RvAttachType,An as RvBasicType,Rn as RvFileServiceEventType,hn as RvFileType,Ln as RvMaterialType,On as RvModelOrigin,dn as RvPresetType,In as RvResourceServiceEventType,Dn as RvResourceType,Wn as RvUtils,En as ScreenSize,en as ShareMode,o as StaticClassInstantiationError,Nn as TChangeType,ln as ThemeBackground,f as ThemeColor,Tn as ThemeShape,Xn as TimeUtils,Yn as UrlUtils,Qn as VectorUtils,kn as sleep,zn as throttle};