UNPKG

cve-connector

Version:
49 lines 1.23 MB
"use strict";var Vg=Object.defineProperty;var VA=Object.getOwnPropertySymbols;var qg=Object.prototype.hasOwnProperty,Rg=Object.prototype.propertyIsEnumerable;var qA=(A,g,B)=>g in A?Vg(A,g,{enumerable:!0,configurable:!0,writable:!0,value:B}):A[g]=B,z=(A,g)=>{for(var B in g||(g={}))qg.call(g,B)&&qA(A,B,g[B]);if(VA)for(var B of VA(g))Rg.call(g,B)&&qA(A,B,g[B]);return A};var c=(A,g,B)=>new Promise((n,C)=>{var w=s=>{try{t(B.next(s))}catch(J){C(J)}},v=s=>{try{t(B.throw(s))}catch(J){C(J)}},t=s=>s.done?n(s.value):Promise.resolve(s.value).then(w,v);t((B=B.apply(A,g)).next())});Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const Z=require("@epicgames-ps/lib-pixelstreamingfrontend-ue5.3"),RA=require("@epicgames-ps/lib-pixelstreamingfrontend-ui-ue5.3"),hg=["featureselect","featurehover","measurefinished","sequencepause","sequenceplay","sequencestop","timechange"],_g=/^(\d+)\.(\d+)\.(\d+)-(\d+)\.(\d+)\.(\d+)$/,$g="$1-$2-$3T$4:$5:$6";let l=document.getElementById("app");function GA(A,g){const B=Ae(A);if(!B){m("message",{Action:A,Data:g});return}B==="timechange"?g=g.replace(_g,$g):B==="yaw"&&(g=Number(g));const n=new CustomEvent(B,{detail:g});l==null||l.dispatchEvent(n)}function m(A,g){const B=new CustomEvent(A,{detail:g});l==null||l.dispatchEvent(B)}function jA(A){const g=new ErrorEvent("error",{message:A});l==null||l.dispatchEvent(g)}function x(A,g){l==null||l.addEventListener(A,g)}function Ae(A){if(hg.includes(A))return A;switch(A){case"MouseClick":return"mouseclick";case"ViewDirectionChanged":return"yaw";case"WalkthroughPathPlayTime":return"roam";default:return null}}function U(A,g){l==null||l.removeEventListener(A,g)}function ge(A){l=A}const ee=`/* Container */\r cve-player {\r cursor: pointer;\r display: block;\r height: 100%;\r position: relative;\r width: 100%;\r z-index: 0;\r }\r \r /* Medias */\r .cve-media-wrapper {\r position: relative;\r }\r .cve-media-wrapper video {\r height: 100%;\r width: 100%;\r }\r `;let wA=null;const Be=(A,g=62.5,B=!1)=>(...n)=>{wA&&clearTimeout(wA),B&&A(...n),wA=setTimeout(()=>{B||A(...n),wA=null},g)},iA=Be((...A)=>c(null,null,function*(){var s;if(!((s=exports.player)!=null&&s.isConnected))return;const[g,B]=A,n=(g!=null?g:exports.player.matchMakerURL).replace(/\/$/,""),C=B!=null?B:exports.player.applicationName;if(!n||!C)return;if(/,/.test(n)){const J=n.split(",").map(F=>IA(F,C,!0)),Y=yield Promise.any(J);Y&&exports.player.setAttribute("signaling-url",Y);return}const w=`${n}/GetPixelStreamingInstance?ApplicationName=${C}`,v=exports.player.getAttribute("data-source");if(w===v){$();return}exports.player.setAttribute("data-source",w);const t=yield IA(n,C).catch(jA);t&&exports.player.setAttribute("signaling-url",t)}));function IA(A,g,B=!1){return c(this,null,function*(){if(A=A.replace(/\/$/,""),!g||!A)throw new Error("Invalid Match Maker Origin Or Appilication Name");try{const n=`${A}/GetPixelStreamingInstance?ApplicationName=${g}`,w=yield(yield fetch(n)).json();if(w.Code==="1"||w.Code==="2"){if(B)throw new Error("No Avaliable Instance!");return lg(A,g)}if(!w.Data)throw new Error("Get Pixel Streaming Instance Failed!");if(w.Code==="3")throw new Error(w.Data);return w.Data}catch(n){throw n}})}function lg(A,g){return new Promise(B=>{setTimeout(()=>{IA(A,g).then(B)},1e3)})}const ne=`cve-player {\r align-items: center;\r display: flex;\r justify-content: center;\r }\r \r .cve-media-wrapper {\r aspect-ratio: 16 / 9;\r }\r \r @media screen and (max-aspect-ratio: 16 / 9) {\r .cve-media-wrapper {\r width: 100%;\r }\r }\r @media screen and (min-aspect-ratio: 16 / 9) {\r .cve-media-wrapper {\r height: 100%;\r }\r }\r `;let _=null;function zg(){var g;const A=(g=exports.player)==null?void 0:g.aspectRatio;return typeof A=="string"?A.replace(/\s/g,"").split("/").length>1:!1}function fe(A){_=A}function hA(){var g,B;if(!_)return;const A=(g=exports.player)==null?void 0:g.aspectRatio;if(typeof A=="string"){const n=A.replace(/\s/g,"").split("/"),C=zg();if((B=exports.$videoParent)==null||B.classList.toggle("fixed-size",C),C){const w=Number(n[0]),v=Number(n[1]);Ce(w,v);return}}_.textContent=` .cve-media-wrapper { height: 100%; width: 100%; } `}function Ce(A=16,g=9){if(!_)return;const B=/aspect-ratio: (\d+) \/ (\d+)/g,n=`aspect-ratio: ${A} / ${g}`;_.textContent=ne.replace(B,n)}let aA;exports.player=void 0;class Pe extends HTMLElement{constructor(){super(),Ig(),exports.player=this,ge(this),aA==null||aA(this)}get applicationName(){var g;return(g=this.getAttribute("application-name"))!=null?g:""}set applicationName(g){this.setAttribute("application-name",g)}get aspectRatio(){var g;return(g=this.getAttribute("aspect-ratio"))!=null?g:"auto"}set aspectRatio(g){this.setAttribute("aspect-ratio",g)}attributeChangedCallback(g,B,n){switch(g){case"application-name":case"matchmaker-url":{iA();break}case"signaling-url":{$();break}case"aspect-ratio":{hA();break}case"oncommand":case"onfeaturehover":case"onfeatureselect":case"onmessage":case"onmouseclick":case"onroam":case"onsequencepause":case"onsequenceplay":case"onsequencestop":case"onstart":case"onstop":case"ontimechange":case"onyaw":{const C=g.replace(/^on/,"");typeof n=="function"?this.addEventListener(C,n):typeof B=="function"&&this.removeEventListener(C,B);break}case"volume":{f("SetVolume",n);break}}}connectedCallback(){const g=document.createElement("style");g.id="cve-common-style",g.textContent=ee;const B=document.createElement("style");B.id="cve-specific-style",B.textContent=` .cve-media-wrapper { height: 100%; width: 100%; } `,this.append(g,B),fe(B),$(),hA()}disconnectedCallback(){JA()}get height(){return Number(this.getAttribute("height"))}set height(g){this.setAttribute("height",g.toFixed(0))}get matchMakerURL(){var g;return(g=this.getAttribute("matchmaker-url"))!=null?g:""}set matchMakerURL(g){this.setAttribute("matchmaker-url",g)}static get observedAttributes(){return["application-name","aspect-ratio","matchmaker-url","oncommand","onfeaturehover","onfeatureselect","onmessage","onmouseclick","onroam","onsequencepause","onsequenceplay","onsequencestop","onstart","onstop","onyaw","signaling-url","volume"]}set oncommand(g){this.addEventListener("command",g)}set onfeaturehover(g){this.addEventListener("featurehover",g)}set onfeatureselect(g){this.addEventListener("featureselect",g)}set onmessage(g){this.addEventListener("message",g)}set onmouseclick(g){this.addEventListener("mouseclick",g)}set onroam(g){this.addEventListener("roam",g)}set onsequencepause(g){this.addEventListener("sequencepause",g)}set onsequenceplay(g){this.addEventListener("sequenceplay",g)}set onsequencestop(g){this.addEventListener("sequencestop",g)}set onstart(g){this.addEventListener("start",g)}set onstop(g){this.addEventListener("stop",g)}set ontimechange(g){this.addEventListener("timechange",g)}set onyaw(g){this.addEventListener("yaw",g)}get ready(){return this.hasAttribute("ready")}set ready(g){this.toggleAttribute("ready",g)}get signalingURL(){var g;return(g=this.getAttribute("signaling-url"))!=null?g:""}set signalingURL(g){this.setAttribute("signaling-url",g)}get volume(){const g=this.getAttribute("volume");return Number(typeof g!="string"?.3:g)}set volume(g){this.setAttribute("volume",g.toFixed(1))}get width(){return Number(this.getAttribute("width"))}set width(g){this.setAttribute("width",g.toFixed(0))}}function we(A){const g="cve-player";aA=A,customElements.get(g)||customElements.define(g,Pe)}const ve=["MouseClick","timechange","ViewDirectionChanged","Walk","WalkthroughPathPlayTime"];Z.Logger.SetLoggerVerbosity(-1);const q=new Z.Config({initialSettings:{AutoPlayVideo:!1,AutoConnect:!1,HoveringMouse:!0,MatchViewportRes:!0,MouseInput:!0,StartVideoMuted:!0,SuppressBrowserKeys:!1,WaitForStreamer:!0,PreferredCodec:"H264 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42001f"},useUrlParams:!1});exports.pixelStreaming=null;exports.$scalable=null;let cg=Qe;exports.$videoParent=null;function Ig(){var A;(A=exports.pixelStreaming)==null||A.disconnect(),exports.pixelStreaming=null,exports.$scalable=null,exports.$videoParent=null}function $(A){var w,v,t;if(JA(),!((w=exports.player)!=null&&w.isConnected))return;const g=A!=null?A:exports.player.signalingURL,B=g!=="",n=B?g.replace(/^http/,"ws"):void 0;if(q.setSettings({AutoPlayVideo:B,AutoConnect:B,ss:n}),Z.Logger.Warning("Signaling URL",n||"undefined"),exports.pixelStreaming){exports.pixelStreaming.reconnect();return}const C=cg(q);exports.$videoParent=C.videoElementParent,exports.$scalable=document.createElement("div"),exports.$scalable.className="cve-media-wrapper",exports.$scalable.appendChild(exports.$videoParent),exports.player.appendChild(exports.$scalable),exports.pixelStreaming=C.pixelStreaming,(v=exports.$videoParent)==null||v.classList.toggle("fixed-size",zg()),(t=C==null?void 0:C.callback)==null||t.call(C),te()}function Qe(A){const g=document.createElement("div");return{pixelStreaming:new Z.PixelStreaming(A,{videoElementParent:g}),videoElementParent:g}}function JA(){var A;exports.player&&((A=exports.pixelStreaming)==null||A.disconnect(),exports.player.ready=!1)}function kA(A){const g=JSON.parse(A),B=/^(\{|\[)|(\]|\})$/;return typeof g.Data=="string"&&B.test(g.Data)&&(g.Data=JSON.parse(g.Data)),g}function Mg(){var A;(A=exports.pixelStreaming)==null||A.reconnect()}function Eg(A,g){var n,C;const B=A.UID;(n=exports.pixelStreaming)==null||n.addResponseEventListener(B,w=>{var t;const v=kA(w);(v==null?void 0:v.UID)===B&&(g(v),(t=exports.pixelStreaming)==null||t.removeResponseEventListener(B))}),Z.Logger.Warning("CVE Command",JSON.stringify(A)),(C=exports.pixelStreaming)==null||C.emitUIInteraction(A)}function te(){exports.pixelStreaming&&(exports.pixelStreaming.addEventListener("playStream",()=>{m("start",Date.now())}),exports.pixelStreaming.addEventListener("playStreamError",()=>{jA("Play Stream Error")}),exports.pixelStreaming.addEventListener("playStreamRejected",()=>{m("stop","Play Stream Rejected")}),exports.pixelStreaming.addEventListener("streamerListMessage",A=>{const g=A.data.messageStreamerList.ids,B=q.getSettingOption("PreferredCodec");if(g.length>1&&q.setOptionSettingValue("StreamerId",g[0]),B.options.length>1){const n=B.options.length-1;q.setOptionSettingValue("PreferredCodec",B.options[n])}}),exports.pixelStreaming.addEventListener("webRtcConnected",()=>{exports.player&&(exports.player.ready=!0)}),exports.pixelStreaming.addResponseEventListener("message",A=>{const g=kA(A);g.Action?(GA(g.Action,g.Data),ve.includes(g.Action)?Z.Logger.Info(g.Action,JSON.stringify(g.Data),0):Z.Logger.Warning(g.Action,JSON.stringify(g.Data))):m("message",g)}))}function De(A){cg=A}const SA=new Map;let d=null;function re(A){const g=kA(A.data);if(g.Action){GA(g.Action,g.Data);return}if(m("message",g),!g.UID)return;const B=SA.get(g.UID);B&&(B(g),SA.delete(g.UID))}function se(A,g){!(A.Command||A.Console)||!A.UID||(SA.set(A.UID,g),d==null||d.send(JSON.stringify(A)))}function ae(A){window.uews=d=new WebSocket(A),d.onmessage=re,d.onerror=()=>{jA("Web Socket Error")},d.onclose=()=>{m("stop","Web Socket Closed")},d.onopen=()=>{m("start",Date.now())}}const OA=new Map;function oe(A){const g=/^(\{|\[)|(\]|\})$/;if(typeof A.Data=="string"&&g.test(A.Data)&&(A.Data=JSON.parse(A.Data)),A.Action){GA(A.Action,A.Data);return}if(m("message",A),!A.UID)return;const B=OA.get(A.UID);B&&(B(A),OA.delete(A.UID))}function le(A,g){window.ue&&(!A.UID||!(A.Command||A.Console)||(OA.set(A.UID,g),window.ue.interface.web2ue(JSON.stringify(A))))}function ze(){window.ue&&(window.ue.interface.ue2web=oe)}function j(A,g){return YA({Console:g?A+" "+g:A,UID:NA()})}function NA(){let g=16;const B="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz".split(""),n=[];g=g||B.length;for(let C=0;C<8;C++)n[C]=B[0|Math.random()*g];return n.join("")}function f(A,g){return YA({Command:A,Data:{Parameters:g},UID:NA()})}function YA(A){return new Promise((g,B)=>{m("command",A),window.ue?le(A,g):window.uews?se(A,g):exports.pixelStreaming?Eg(A,g):B({Result:"[Error] Failed to get UE host!"})})}const yA={addDecal:(A,g,B)=>f("AddDecal",{Tag:A,URL:g,XMax:B[2],XMin:B[0],YMax:B[3],YMin:B[1]}),delete:(A,g=!1)=>f("DeleteActorByTag",{IncludeChildren:g,Tag:A}),hide:(A,g=!1)=>f("HideActorByTag",{IncludeChildren:g,Tag:A}),show:(A,g=!1)=>f("ShowActorByTag",{IncludeChildren:g,Tag:A})},b={addMultiView:A=>f("AddMultiView",A),deleteSightline:A=>f("DeleteIntervisibilityAnalysis",A),deleteSkyline:()=>f("StopSkylineAnalysis"),deleteViewshed:A=>f("DeleteViewshedAnalysis",A),drawSightline:()=>f("StartIntervisibilityAnalysis"),drawSkyline:()=>f("StartSkylineAnalysis"),drawViewshed:()=>f("StartViewshedAnalysis"),refreshMultiView:()=>f("RefreshMultiView"),removeMultiView:A=>f("RemoveMultiView",A),startMultiView:A=>f("StartMultiViewAnalysis",{Tags:A}),stopMultiView:()=>f("StopMultiViewAnalysis")},I={addArcgisLayer:A=>f("AddArcGISWmtsLayer",A),addCustomLayer:({EPSG:A="3857",Format:g="image/jpeg",Id:B,GroupId:n,Index:C,Layer:w="",RequestHeaders:v,Style:t="default",Subdomains:s,TileMatrixSetId:J="",TileMatrixSetLabelPrefix:Y="",Url:F})=>f("AddWmtsLayer",{EPSG:A,Format:g,Id:B,GroupId:n,Index:C,Layer:w,RequestHeaders:v,Style:t,Subdomains:s,TileMatrixSetId:J,TileMatrixSetLabelPrefix:Y,Url:F}),addMapboxLayer:A=>f("AddMapboxWmtsLayer",A),addTiandituLayer:A=>f("AddTianDiTuWmtsLayer",A),config:({GeographicEPSG:A="4326",IsBigScene:g=!1,IsOriginLocationInProjectedCRS:B,OriginCenter:n,ProjectedEPSG:C="4549"})=>f("SetGeoReferencingParameters",{IsBigScene:g,GeographicEPSG:A,IsOriginLocationInProjectedCRS:B,OriginCenter:n,ProjectedEPSG:C}),create3dTiles:(A,g,B=16)=>f("Create3DTiles",{Id:A,Url:g,MaximumScreenSpaceError:B}),delete3dTiles:A=>f("Delete3Dtiles",{Id:A}),deleteAll:()=>f("DeleteAllWmtsLayer"),deleteLayer:A=>f("DeleteWmtsLayer",A),deleteLayerGroup:A=>f("DeleteWmtsLayerByGroupId",A),hide3dTiles:A=>f("Hide3Dtiles",{Id:A}),hideAll:()=>f("HideAllWmtsLayer"),hideLayer:A=>f("HideWmtsLayer",A),hideLayerGroup:A=>f("HideWmtsLayerByGroupId",A),hideOsgb:A=>f("HideOsgb",{Id:A}),loadOsgb:(A,g,B=1.5,n=[0,0,0])=>f("LoadOsgb",{Id:A,OsgbDirectoryName:g,LodScale:B,Offset:n}),setCesiumTerrainLayer:A=>f("SetTerrainLayerByCesiumIon",A),setCustomLayer:A=>f("ChangeWmtsLayer",A),setHeaders:(A,g)=>f("ChangeRequestHeaders",{Id:A,RequestHeaders:g}),setLayerIndex:(A,g)=>f("ChangeWmtsLayerIndex",{Id:A,Index:g}),setTerrainLayer:A=>f("SetTerrainLayerByUrl",A),show3dTiles:A=>f("Show3Dtiles",{Id:A}),showAll:()=>f("ShowAllWmtsLayer"),showLayer:A=>f("ShowWmtsLayer",A),showLayerGroup:A=>f("ShowWmtsLayerByGroupId",A),showOsgb:A=>f("ShowOsgb",{Id:A}),toggleDebug:(A,g)=>f("ChangeDebugMessages",{Id:A,ShowDebugMessage:g}),unloadOsgb:A=>f("UnloadOsgb",{Id:A})},eA={loadStreamLevels:(A,g=!0,B=!0,n=!1)=>f("LoadStreamLevels",{LevelNames:A,UnloadOtherStreamLevels:g,MakeVisibleAfterLoad:B,ShouldBlockOnLoad:n}),openLevel:(A,g)=>f("OpenLevel",{MainLevelName:A,StreamLevelNames:g}),restartLevel:()=>j("RestartLevel",""),unloadStreamLevels:(A,g=!1)=>f("UnloadStreamLevels",{LevelNames:A,ShouldBlockOnLoad:g})},W={focus:A=>f("FocusById",{Id:A}),load:(A,g,B)=>f("Load",{GroupId:B,Id:g,Path:A}),unload:A=>f("UnloadById",{Id:A}),unloadAll:()=>f("UnloadAll"),unloadByGroup:A=>f("UnloadByGroupId",{GroupId:A})},BA={addTag:(A,g,B)=>f("AddPointTag",z({Key:g,Value:B},A)),create:A=>f("CreatePoint",A),delete:A=>f("DeletePoint",A),hide:A=>f("HidePoint",A),removeTag:(A,g)=>f("RemovePointTag",z({Key:g},A)),removeAllTags:A=>f("RemovePointAllTags",A),select:A=>f("SelectPoint",A),show:A=>f("ShowPoint",A),unselect:()=>f("UnselectPoint"),update:A=>f("UpdatePoint",A)},nA={addTag:(A,g,B)=>f("AddPolygonTag",z({Key:g,Value:B},A)),create:A=>f("CreatePolygon",A),delete:A=>f("DeletePolygon",A),hide:A=>f("HidePolygon",A),removeTag:(A,g)=>f("RemovePolygonTag",z({Key:g},A)),removeAllTags:A=>f("RemovePolygonAllTags",A),select:A=>f("SelectPolygon",A),show:A=>f("ShowPolygon",A),unselect:()=>f("UnselectPolygon"),update:A=>f("UpdatePolygon",A)},i={addTag:(A,g,B)=>f("AddPolylineTag",z({Key:g,Value:B},A)),create:A=>f("CreatePolyline",A),delete:A=>f("DeletePolyline",A),hide:A=>f("HidePolyline",A),hideWithAnimateAndDuration:(A,g,B)=>f("HidePolyline",z({Animate:g,AnimateDuration:B},A)),hideWithAnimateAndSpeed:(A,g,B)=>f("HidePolyline",z({Animate:g,AnimateSpeed:B},A)),removeTag:(A,g)=>f("RemovePolylineTag",z({Key:g},A)),removeAllTags:A=>f("RemovePolylineAllTags",A),select:A=>f("SelectPolyline",A),show:A=>f("ShowPolyline",A),showWithAnimateAndDuration:(A,g,B)=>f("ShowPolyline",z({Animate:g,AnimateDuration:B},A)),showWithAnimateAndSpeed:(A,g,B)=>f("ShowPolyline",z({Animate:g,AnimateSpeed:B},A)),unselect:()=>f("UnselectPolyline"),update:A=>f("UpdatePolyline",A)},fA={addTag:(A,g,B)=>f("AddPolymeshTag",z({Key:g,Value:B},A)),create:A=>f("CreatePolymesh",A),delete:A=>f("DeletePolymesh",A),hide:A=>f("HidePolymesh",A),removeTag:(A,g)=>f("RemovePolymeshTag",z({Key:g},A)),removeAllTags:A=>f("RemovePolymeshAllTags",A),select:A=>f("SelectPolymesh",A),show:A=>f("ShowPolymesh",A),unselect:()=>f("UnselectPolymesh"),update:A=>f("UpdatePolymesh",A)},CA={jumpTo:A=>f("JumpToSeconds",A),pause:(A=!1)=>f("PauseSequence",A),play:A=>f("PlaySequence",A),stop:()=>f("StopSequence")},MA={mute:()=>f("Mute"),setVolume:A=>f("SetVolume",A),unmute:()=>f("Unmute")},ce=/^(\d)(\d)(\d)(\d)-(0?)(\d+)-(0?)(\d+)T(0?)(\d+):(0?)(\d+):(0?)(\d+)\.(0?)(\d+)Z$/,Ie={dd:"$7$8",d:"$8",hh:"$9$10",h:"$10",MM:"$5$6",M:"$6",mm:"$11$12",m:"$12",ss:"$13$14",s:"$14",S:"$16",yyyy:"$1$2$3$4",yyy:"$2$3$4",yy:"$3$4",y:"$4"};function Jg(A,g){return Object.entries(Ie).forEach(([B,n])=>{g=g.replace(new RegExp(B),n)}),A.toJSON().replace(ce,g)}const AA={disableRealtime:()=>f("DisableRealtime"),enableRealtime:()=>f("EnableRealtime"),setDateTime:A=>f("SetDateTime",Jg(A,"yyyy-MM-dd hh:mm:ss"))};var H=(A=>(A[A.SpringArm=0]="SpringArm",A[A.GIS=1]="GIS",A[A.Free=2]="Free",A[A.Editor=3]="Editor",A))(H||{});const M={addPath:({Delays:A,Durations:g,Positions:B})=>f("MakeWalkthroughPath",{Position:B.map(({Location:n,Rotation:C})=>({Location:`(X=${n[0]},Y=${n[1]},Z=${n[2]})`,Rotation:`(P=${C[1]},Y=${C[2]},R=${C[0]})`})),StayDurations:A,WalkthroughTimes:g}),changeViewMode:A=>f("ChangeViewMode",A),deletePath:A=>f("DeleteWalkthroughPath",A),flyTo:({Location:A,Distance:g,UseCurrentDistance:B,UseCurrentRotation:n,Rotation:C=[]},w)=>f("FlyTo",{Distance:g,Duration:w,Location:`(X=${A[0]},Y=${A[1]},Z=${A[2]})`,Rotation:`(P=${C[1]},Y=${C[2]},R=${C[0]})`,UseCurrentDistance:B,UseCurrentRotation:n}),flyToBookmark:(A,g)=>f("FlyToBookmark",{Bookmark:A,Duration:g}),getView:()=>c(null,null,function*(){const A=yield f("GetView"),g=A.Data,[B,n,C]=g.Location.replace(/(X|Y|Z)=/g,"").split(" "),[w,v,t]=g.Rotation.replace(/(P|Y|R)=/g,"").split(" ");return{Type:"Command",UID:A.UID,Command:"GetView",Data:{Location:[Number(B),Number(n),Number(C)],Rotation:[Number(t),Number(w),Number(v)],Distance:g.ArmLength},Result:!0}}),playPath:A=>f("PlayWalkthroughPath",A),replayPath:A=>f("ReplayWalkthroughPath",A),resetView:A=>f("ResetView",A),seekPath:(A,g)=>f("SeekWalkthroughPath",{Time:g,PathId:A}),stopPath:A=>f("StopWalkthroughPath",A)},xA={changeByPreset:(A,g=0)=>f("ChangeWeatherByPreset",{Duration:g,Preset:A}),changeBySettings:(A,g=0)=>f("ChangeWeatherBySettings",z({Duration:g},A))};function Me(A,g){return{Coordinates:g,Style:A}}function Ee(A,g){return{Coordinates:g,Style:A}}function Je(A,g){return{Coordinates:g,Style:A}}function ke(A,g,B){return{Coordinates:g,Height:B,Style:A}}function ye(A){return j("PixelStreaming.WebRTC.DegradationPreference",A)}function me(A){return j("r.DynamicRes.OperationMode",A?"2":A===void 0?"1":"0")}function ue(A,g){const B=`${A}x${g}f`;return j("r.setRes",B)}function de(A){A<1&&(A=window.devicePixelRatio*100);const g=A.toFixed();return j("r.ScreenPercentage",g)}const He={"&":"amp","<":"lt",">":"gt",'"':"quot","'":"#39","/":"#x2F"},Te=A=>String(A).replace(/[&<>"'\/\\]/g,g=>`&${He[g]};`),Le=A=>({tabIndex:"tabindex",className:"class",readOnly:"readonly"})[A]||A;function e(A,g,...B){g=g||{};const n=[...B];if(typeof A=="function")return g.children=n,A(g);const C=["svg","g","path"].includes(A)?document.createElementNS("http://www.w3.org/2000/svg",A):document.createElement(A);for(let[w,v]of Object.entries(g))w=Te(Le(w)),w.startsWith("on")&&w.toLowerCase()in window?C.addEventListener(w.toLowerCase().substring(2),v):w==="ref"?v(C):w==="style"?Object.assign(C.style,v):v===!0?C.setAttribute(w,w):v!==!1&&v!=null?C.setAttribute(w,v):v===!1&&C.removeAttribute(w);for(;n.length;){const w=n.shift();Array.isArray(w)?n.push(...w):C.appendChild(w.nodeType==null?document.createTextNode(w.toString()):w)}return C}const E=A=>{const g=document.createElement("slot");return g.append(...A.children),g},_A={},Ze={set:Xe};new Proxy({},Ze);const Se={},Oe={};function Xe(A,g,B,n){return Se[g].forEach(C=>be(C,B)),Reflect.set(A,g,B,n)}function be(A,g){const[B,n]=A.split("@"),C=_A[B];if(!C.dataset.signal){delete _A[B];return}const w=(Oe[A]||"${self}").replace(/\$\{self\}/g,g);if(n==="text"){C.textContent=w;return}if(n==="value"&&C.tagName==="INPUT"){C.value=g;return}C.setAttribute(n,w)}function o(A){let g=null;return e("section",{className:"debug-rows"+(A.opened||window.uews||window.ue?"":" collapsed"),ref:B=>{g=B}},e("div",{className:"debug-header",onclick:()=>{g==null||g.classList.toggle("collapsed")}},A.desc),A.slot)}const pe=[120.01168722430221,30.249110392135236,120.0139057862743,30.251019653237694],Ge="data:image/png;base64,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