@qispace/vue3-player 0.1.2 → 0.1.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(D,e){typeof exports=="object"&&typeof module<"u"?e(exports,require("vue"),require("axios"),require("@qispace/player-core"),require("three")):typeof define=="function"&&define.amd?define(["exports","vue","axios","@qispace/player-core","three"],e):(D=typeof globalThis<"u"?globalThis:D||self,e(D["vue3-player"]={},D.Vue,D.axios,D.PlayerCore,D.THREE))})(this,function(D,e,oe,et,tt){"use strict";var ya=Object.defineProperty;var ba=(D,e,oe)=>e in D?ya(D,e,{enumerable:!0,configurable:!0,writable:!0,value:oe}):D[e]=oe;var j=(D,e,oe)=>(ba(D,typeof e!="symbol"?e+"":e,oe),oe);function je(s){const o=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(s){for(const t in s)if(t!=="default"){const a=Object.getOwnPropertyDescriptor(s,t);Object.defineProperty(o,t,a.get?a:{enumerable:!0,get:()=>s[t]})}}return o.default=s,Object.freeze(o)}const ot=je(et),ae=je(tt);class le{async loadJson(o){return(await oe.get(o)).data}async loadImage(o){return new Promise((t,a)=>{const l=new Image;l.crossOrigin="anonymous",l.onload=()=>{t(l)},l.onerror=a,l.src=o})}async loadImageData(o){const t=await this.loadImage(o),a=document.createElement("canvas");try{const l=a.getContext("2d");return a.width=t.width,a.height=t.height,l.drawImage(t,0,0),a.toDataURL("image/png")}finally{a.remove()}}}const nt=e.defineComponent({__name:"VHoverProbe",setup(s,{expose:o}){const t=e.ref(),a=e.computed(()=>window.getComputedStyle(t.value).display==="none");return o({isHoverEnabled:a}),(l,n)=>(e.openBlock(),e.createElementBlock("div",{ref_key:"hoverCheck",ref:t,class:"hover-check"},null,512))}}),P=(s,o)=>{const t=s.__vccOpts||s;for(const[a,l]of o)t[a]=l;return t},re=P(nt,[["__scopeId","data-v-eb9b348d"]]),xe=P(e.defineComponent({__name:"VApartmentChooserRaster",props:{cdnFileResolver:{},viewModel:{},selectedUnitId:{},unitCallback:{type:Function,default:s=>s},canGoToUnitCallback:{type:Function,default:()=>!0},sceneData:{default:()=>[]},colorCallback:{type:Function,default:()=>({r:108,g:0,b:108,a:144,s:2})},drawObserver:{}},emits:["selectUnit","goToUnit","hoverOver","hoverOut","pos"],setup(s,{emit:o}){const t=s,a=o,l=e.ref({x:0,y:0,width:0,height:0}),n=e.ref(null),i=e.ref(0),r=e.ref(0),k=e.ref(null),p=e.ref(null),m=e.ref(null),u=e.ref(null),_=e.ref(-1),v=e.ref(!1),b=e.ref(null),C=e.ref(null),E=e.ref({}),L=e.ref("auto"),h=e.ref(null),y=e.ref(void 0),S=e.ref(new le),c=e.ref({}),f=e.ref(),w=e.ref(),N=e.ref(),A=e.computed(()=>f.value.isHoverEnabled),x=e.computed(()=>t.cdnFileResolver(`/scenedata${t.viewModel.currentScene}.png`)),$=e.computed(()=>x.value in E.value?E.value[x.value]:null),z=e.computed(()=>{if(_.value<0)return!1;const M=t.sceneData.find(F=>F.index===_.value);return M?t.unitCallback?t.unitCallback(M.apartmentId):M.apartmentId:!1}),g=e.computed(()=>({width:i.value+"px",height:r.value+"px",cursor:L.value})),B=e.computed(()=>`hover-${v.value?"over":"out"}-${z.value?typeof z.value=="object"&&"unitId"in z.value?z.value.unitId:z.value:""}`);e.watch(x,()=>{E.value[x.value]||S.value.loadImageData(x.value).then(M=>{E.value={...E.value,[x.value]:M}})},{immediate:!0}),e.watch($,()=>{$.value&&R()}),e.watch(()=>t.viewModel.currentScene,()=>{ge()},{immediate:!0}),e.watch([()=>t.viewModel.isRotating,()=>t.drawObserver,()=>t.selectedUnitId],()=>{ge()}),e.watch(z,()=>{ge(),z.value?L.value="pointer":L.value="auto"}),e.watch(B,()=>{v.value?a("hoverOver",{hoverApartment:z.value,closeHandler:()=>Se()}):a("hoverOut",{hoverApartment:z.value,closeHandler:()=>Se()})}),e.watch(l,()=>{a("pos",l.value)}),e.onMounted(()=>{y.value=()=>{clearTimeout(h.value),me(),h.value=setTimeout(()=>{me()},50)},window.addEventListener("resize",y.value),me()}),e.onBeforeUnmount(()=>{window.removeEventListener("resize",y.value);for(const M in E.value)URL.revokeObjectURL(E.value[M])});function R(){n.value=w,k.value=n.value.getContext("2d",{willReadFrequently:!0}),p.value=new Image,p.value.onload=()=>{Ve(),n.value.addEventListener("mousemove",Ee(V,50))},p.value.src=$.value}function V(M){const F=H(M.offsetX,M.offsetY);v.value=F>=0,_.value=F,l.value={x:M.offsetX,y:M.offsetY,width:i.value,height:r.value}}function U(M){const F=H(M.offsetX,M.offsetY);F<0||A&&X(F)}function O(){if(p.value&&p.value.width){n.value.width=p.value.width,n.value.height=p.value.height,k.value.drawImage(p.value,0,0,p.value.width,p.value.height),u.value=k.value.getImageData(0,0,n.value.width,n.value.height),m.value=k.value.getImageData(0,0,n.value.width,n.value.height);const M=u.value.data;c.value={};for(let F=0;F<M.length;F+=4)c.value[M[F]]=[];for(let F=3;F<M.length;F+=4)M[F]===255&&M[F-3]in c.value&&c.value[M[F-3]].push(F-3)}}function H(M,F){b.value=M,C.value=F;const G=n.value.offsetWidth/n.value.width,ue=n.value.offsetHeight/n.value.height,pe=(M/G).toFixed(),fe=(F/ue).toFixed(),J=Number(fe)*(n.value.width*4)+Number(pe)*4,ee=u.value.data[J];return u.value.data[J+3]>0?ee:-1}function Y(){Z().forEach(F=>{if(F.index>=0){const G=Q(F.index),ue=q(F.index);let pe="idle";!z.value&&t.selectedUnitId&&ue===t.selectedUnitId?pe="selected":z.value&&_.value===F.index&&(pe="hover");const fe=t.unitCallback?t.unitCallback(ue):ue;if(fe){const J=t.colorCallback(fe,pe);if(J)for(let ee=0;ee<G.length;ee++)m.value.data[G[ee]]=J.r,m.value.data[G[ee]+1]=J.g,m.value.data[G[ee]+2]=J.b,m.value.data[G[ee]+3]=J.a}}})}function Q(M){return u.value?c.value[M]:!1}function q(M){const F=t.sceneData.find(G=>G.index===M);return F&&F.apartmentId}function Z(){if(u.value){const M=Object.keys(c.value).map(G=>parseInt(G));return t.sceneData.filter(G=>M.includes(G.index))}else return[]}function X(M){const F=q(M);K(F)}function K(M){const F=t.unitCallback?t.unitCallback(M):M;a("selectUnit",F),F&&this.canGoToUnitCallback(F)&&a("goToUnit",F)}function de(M=0){if(!m.value)return;const F=m.value.data;for(let G=3;G<F.length;G+=4)F[G]=M}function me(){if(!N.value)return!1;i.value=N.value.offsetWidth,r.value=N.value.offsetHeight}function Ve(){O(),ge()}function ge(){de(),Y(),k.value&&m.value&&k.value.putImageData(m.value,0,0)}function Se(){v.value=!1}const ne=e.ref(!1);function Ee(M,F){return ne.value=!0,function(...G){ne.value&&(ne.value=!1,M.apply(this,G),setTimeout(()=>ne.value=!0,F))}}return(M,F)=>(e.openBlock(),e.createElementBlock("div",{ref_key:"$el",ref:N,id:"canvas"},[e.withDirectives(e.createElementVNode("canvas",{id:"canvas-mask",ref_key:"canvasMask",ref:w,style:e.normalizeStyle(g.value),onClick:U},null,4),[[e.vShow,!M.viewModel.isRotating]]),e.createVNode(re,{ref_key:"hoverProbe",ref:f},null,512)],512))}}),[["__scopeId","data-v-dbb7046f"]]),at=["viewBox"],lt=["innerHTML","onMouseenter","onMouseleave","onClick"],Me=P(e.defineComponent({__name:"VApartmentChooserSvg",props:{cdnFileResolver:{},viewModel:{},selectedUnitId:{},unitCallback:{type:Function,default:s=>s},canGoToUnitCallback:{type:Function,default:()=>!0},sceneData:{default:()=>[]},colorCallback:{type:Function,default:()=>({r:108,g:0,b:108,a:144,s:2})},drawObserver:{}},emits:["selectUnit","goToUnit","hoverOver","hoverOut","pos"],setup(s,{emit:o}){const t=s,a=o,l=e.ref({x:0,y:0,width:0,height:0}),n=e.ref(-1),i=e.ref({}),r=e.ref(null),k=e.ref(new le),p=e.ref(),m=e.ref(),u=e.computed(()=>m.value.isHoverEnabled);e.watch(()=>t.viewModel.currentScene,()=>{t.viewModel.currentScene in i.value&&(r.value=i.value[t.viewModel.currentScene])},{immediate:!0}),e.watch(i,()=>{t.viewModel.currentScene in i.value&&(r.value=i.value[t.viewModel.currentScene])},{immediate:!0}),e.watch(l,()=>{a("pos",l.value)}),e.watch(n,(c,f)=>{if(c>=0){const w=b(c);a("hoverOver",{hoverApartment:w,closeHandler:()=>{n.value=-1}})}else{const w=b(f);a("hoverOut",{hoverApartment:w,closeHandler:()=>{n.value=-1}})}}),e.onMounted(()=>{for(let c=1;c<=4;c++){const f=t.cdnFileResolver(`/scenedata${c}.svg`),w={};k.value.loadJson(f).then(N=>{w.markup=N;const x=new DOMParser().parseFromString(N,"image/svg+xml").getElementsByTagName("svg")[0];w.viewBox=x.getAttribute("viewBox"),w.svgObjects=Array.from(x.querySelectorAll("*[data-index]")).map($=>({index:parseInt($.getAttribute("data-index")),svg:$.innerHTML})),i.value={...i.value,[c]:w}})}p.value.addEventListener("mousemove",S(_,50))});function _(c){l.value={x:c.offsetX,y:c.offsetY,width:p.value.offsetWidth,height:p.value.offsetHeight}}function v(c){var f;return(f=t.sceneData.find(w=>w.index===parseInt(c)))==null?void 0:f.apartmentId}function b(c){const f=v(c);return t.unitCallback?t.unitCallback(f):f}function C(c){u.value&&(n.value=c)}function E(c){u.value&&(n.value=-1)}function L(c){const f=b(c);a("selectUnit",f),u.value&&f&&t.canGoToUnitCallback(f)?a("goToUnit",f):n.value=c}function h(c){const f=v(c),w=b(c);let N="idle";n.value<0&&t.selectedUnitId&&f===t.selectedUnitId?N="selected":n.value>=0&&n.value===c&&(N="hover");const A=t.colorCallback(w,N);if(A){const{r:x,g:$,b:z,a:g,s:B}=A;return{strokeWidth:B!==void 0?B:2,stroke:`rgb(${x}, ${$}, ${z})`,strokeOpacity:1,fill:`rgb(${x}, ${$}, ${z})`,fillOpacity:g/255,cursor:`${t.canGoToUnitCallback(w)?"cursor":"default"} !important`}}else return{strokeWidth:0,stroke:"white",strokeOpacity:0,fill:"white",fillOpacity:0,cursor:"default !important"}}const y=e.ref(!1);function S(c,f){return y.value=!0,function(...w){y.value&&(y.value=!1,c.apply(this,w),setTimeout(()=>y.value=!0,f))}}return(c,f)=>(e.openBlock(),e.createElementBlock("div",{id:"container",ref_key:"container",ref:p},[e.withDirectives(e.createElementVNode("div",{class:"svg-container",style:e.normalizeStyle({opacity:!r.value||!r.value.svgObjects?0:1})},[r.value&&r.value.svgObjects?(e.openBlock(),e.createElementBlock("svg",{key:0,viewBox:r.value.viewBox},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(r.value.svgObjects,({index:w,svg:N})=>(e.openBlock(),e.createElementBlock("g",{key:w,innerHTML:N,style:e.normalizeStyle(h(w)),onMouseenter:A=>C(w),onMouseleave:A=>E(),onClick:A=>L(w)},null,44,lt))),128))],8,at)):e.createCommentVNode("",!0)],4),[[e.vShow,!c.viewModel.isRotating]]),e.createVNode(re,{ref_key:"hoverProbe",ref:m},null,512)],512))}}),[["__scopeId","data-v-3e771deb"]]),rt={key:0,class:"d-none d-md-flex"},Fe=P(e.defineComponent({__name:"VApartmentChooserNavigation",props:{canGoToUnitCallback:{type:Function,default:()=>!0},selectedUnit:{},prevUnit:{},nextUnit:{},viewModel:{}},emits:["prevUnit","nextUnit","goToUnit"],setup(s,{emit:o}){const t=s,a=o,l=e.inject("i18n");e.onMounted(()=>{window.addEventListener("keydown",n)}),e.onBeforeUnmount(()=>{window.removeEventListener("keydown",n)});function n(i){i.keyCode===37?t.prevUnit&&a("prevUnit"):i.keyCode===39&&t.nextUnit&&a("nextUnit")}return(i,r)=>{const k=e.resolveComponent("v-btn");return e.openBlock(),e.createElementBlock("div",null,[e.createVNode(k,{elevation:"1",icon:"mdi-rotate-right",class:"black darken-1",onClick:r[0]||(r[0]=p=>i.viewModel.rotateClockwise())}),e.createVNode(k,{elevation:"1",plain:"",icon:"mdi-chevron-left",class:"mr-sm-4 ml-sm-8 mr-3 ml-3 black darken-1",disabled:!i.prevUnit,onClick:r[1]||(r[1]=p=>a("prevUnit"))},null,8,["disabled"]),e.createVNode(k,{color:"success darken-2",elevation:"1",rounded:"",plain:"",disabled:!i.selectedUnit||!i.canGoToUnitCallback(i.selectedUnit),onClick:r[2]||(r[2]=p=>a("goToUnit",i.selectedUnit))},{default:e.withCtx(()=>[i.selectedUnit&&i.canGoToUnitCallback(i.selectedUnit)?(e.openBlock(),e.createElementBlock("span",rt,e.toDisplayString(e.unref(l).getLabel("see-apartment"))+" ",1)):e.createCommentVNode("",!0),e.createElementVNode("span",null,e.toDisplayString(i.selectedUnit&&"title"in i.selectedUnit?i.selectedUnit.title:"-"),1)]),_:1},8,["disabled"]),e.createVNode(k,{elevation:"1",plain:"",icon:"mdi-chevron-right",class:"mr-sm-8 ml-sm-4 mr-3 ml-3 black darken-1",disabled:!i.nextUnit,onClick:r[3]||(r[3]=p=>a("nextUnit"))},null,8,["disabled"]),e.createVNode(k,{elevation:"1",plain:"",icon:"mdi-rotate-left",class:"black darken-1",onClick:r[4]||(r[4]=p=>i.viewModel.rotateCounterClockwise())})])}}}),[["__scopeId","data-v-02d5a12e"]]);class Be{constructor(o){j(this,"_numParts");j(this,"_loadedCount");j(this,"_isError");j(this,"_finishedAction");j(this,"_errorAction");j(this,"_loadProgressAction");this._numParts=o,this._loadedCount=0,this._isError=!1,this._finishedAction=()=>{},this._errorAction=()=>{},this._loadProgressAction=()=>{}}onLoadFinished(o){return this._finishedAction=o,this}onLoadError(o){return this._errorAction=o,this}onLoadProgress(o){return this._loadProgressAction=o,this}partLoaded(){this.isFinished||(this._loadedCount++,this._loadProgressAction(this.percentLoaded),this.isFinished&&this._finishedAction())}errorDetected(){this._isError||(this._isError=!0,this._errorAction())}get isFinished(){return this._loadedCount>=this._numParts}get isError(){return this._isError}get percentLoaded(){return Math.round(this._loadedCount*100/this._numParts)}}class Ne{constructor(o,t,a,l){j(this,"_rotator");j(this,"_direction");j(this,"_frameIndex");j(this,"_sceneCount");this._rotator=o,this._direction=t,this._frameIndex=a,this._sceneCount=l}get atEnd(){return this._sceneCount===0}get frameIndex(){return this._frameIndex}nextFrame(){const o=this._rotator.clampFrameIndex(this._frameIndex+this._direction),t=this._rotator.isCardinalFrame(o)?this._sceneCount-1:this._sceneCount;return new Ne(this._rotator,this._direction,o,t)}}class Pe{constructor(o,t){j(this,"_cardinalFrames");j(this,"_totalFrameCount");this._cardinalFrames=o,this._totalFrameCount=t}start(o,t,a){const l=this.startFrameIndexForScene(t);return new Ne(this,o,l,a)}isCardinalFrame(o){return this._cardinalFrames.includes(o)}clampFrameIndex(o){return(this._totalFrameCount+o)%this._totalFrameCount}startFrameIndexForScene(o){return this._cardinalFrames[o]}}const it={key:0,class:"fill-parent d-flex justify-center align-center blue-grey lighten-5"},st={key:1,class:"frame-container"},ct={key:0,class:"frame-image"},dt=["srcset","type"],mt=["src"],ut={key:2,id:"image-stack",class:"frame-container"},pt=["alt"],ft=["srcset"],ht=["src"],ze=64,we=4,gt=120,De=P(e.defineComponent({__name:"VApartmentChooserRotator",props:{viewModel:{},build:{default:""},cdnFileResolver:{},cardinalFrames:{}},emits:["loaded","error","progress"],setup(s,{emit:o}){const t=s,a=o,l=v(),n=e.ref(new Be(l.length).onLoadFinished(()=>a("loaded")).onLoadProgress(L=>a("progress",L)).onLoadError(()=>a("error"))),i=e.ref(new Pe(t.cardinalFrames,ze)),r=e.ref(l),k=e.ref(!1),p=e.computed(()=>r.value.find(L=>L.show));e.watch(()=>t.viewModel.currentScene,(L,h)=>{const y=E(h,L),S=C(h,L);m(h,y,S)}),e.onMounted(()=>{_()});function m(L,h,y){t.viewModel.isRotating||(t.viewModel.isRotating=!0,u(i.value.start(h,L%we,y)))}function u(L){setTimeout(()=>{r.value[L.frameIndex].show=!1;const h=L.nextFrame();r.value[h.frameIndex].show=!0,h.atEnd?_():window.requestAnimationFrame(()=>u(h))},1e3/gt)}function _(){const L=i.value.startFrameIndexForScene(t.viewModel.currentScene%we);L in r.value&&(r.value[L].show=!0),t.viewModel.isRotating=!1}function v(){const L=[];for(let h=0;h<ze;h++){const{sourceSet:y,defaultPath:S}=b(h);L.push({index:h,sourceSet:y,defaultPath:S,show:!1})}return L}function b(L){const h=("0000"+(L+1)).slice(-4),y=t.build?`?v=${t.build}`:"",S=[`${t.cdnFileResolver(`/480/${h}.jpg${y}`)} 480w`,`${t.cdnFileResolver(`/960/${h}.jpg${y}`)} 960w`,`${t.cdnFileResolver(`/1280/${h}.jpg${y}`)} 1280w`].join(","),c=t.cdnFileResolver(`/480/${h}.jpg${y}`);return{sourceSet:S,defaultPath:c}}function C(L,h){const y=we/2,S=Math.abs(L-h);return S>y?we-S:S}function E(L,h){if(L===h)return 0;const S=Math.abs(L-h)<we/2;return S&&L<h||!S&&L>h?1:-1}return(L,h)=>{const y=e.resolveComponent("v-icon");return e.openBlock(),e.createElementBlock("div",null,[n.value.isError?(e.openBlock(),e.createElementBlock("div",it,[e.createVNode(y,{"x-large":""},{default:e.withCtx(()=>[e.createTextVNode("mdi-alert-circle-outline")]),_:1})])):k.value?(e.openBlock(),e.createElementBlock("div",ut,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(r.value,S=>(e.openBlock(),e.createElementBlock("picture",{key:S.index,alt:S.index,class:e.normalizeClass({"frame-image":!0,show:S.show})},[e.createElementVNode("source",{srcset:S.sourceSet,type:"image/jpeg"},null,8,ft),e.createElementVNode("img",{src:S.defaultPath,alt:"Building image",onLoad:h[2]||(h[2]=c=>n.value.partLoaded()),onError:h[3]||(h[3]=c=>n.value.errorDetected())},null,40,ht)],10,pt))),128))])):(e.openBlock(),e.createElementBlock("div",st,[p.value?(e.openBlock(),e.createElementBlock("picture",ct,[e.createElementVNode("source",{srcset:p.value.sourceSet,type:p.value.type},null,8,dt),e.createElementVNode("img",{src:p.value.defaultPath,onLoad:h[0]||(h[0]=S=>k.value=!0),onError:h[1]||(h[1]=S=>n.value.errorDetected())},null,40,mt)])):e.createCommentVNode("",!0)]))])}}}),[["__scopeId","data-v-8e71d825"]]),ve=P(e.defineComponent({__name:"VFloatingCard",props:{pos:{},isHoverable:{type:Boolean}},emits:["outside"],setup(s,{emit:o}){const t=s,a=o,l=e.computed(()=>{const n=t.pos.x<=t.pos.width/2?"left":"right";return`${t.pos.y<=t.pos.height/2?"top":"bottom"}-${n}`});return(n,i)=>{const r=e.resolveComponent("v-dialog"),k=e.resolveComponent("v-fade-transition");return e.openBlock(),e.createBlock(k,{origin:l.value.replace("-"," ")+" "+n.pos.x+" "+n.pos.y},{default:e.withCtx(()=>[n.isHoverable?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(["floating-card",l.value]),style:e.normalizeStyle({left:`${n.pos.x}px`,top:`${n.pos.y}px`,pointerEvents:"none"})},[e.renderSlot(n.$slots,"default",{isHoverable:n.isHoverable},void 0,!0)],6)):(e.openBlock(),e.createBlock(r,{key:1,value:!0,width:"auto","onClick:outside":i[0]||(i[0]=p=>a("outside",p))},{default:e.withCtx(()=>[e.renderSlot(n.$slots,"default",{isHoverable:n.isHoverable},void 0,!0)]),_:3}))]),_:3},8,["origin"])}}}),[["__scopeId","data-v-0695e74f"]]),Ce=P(e.defineComponent({__name:"VZoomBox",props:{desktop:{type:Boolean,default:!0},mobile:{type:Boolean,default:!0},maxScale:{default:10},consumeMouseClickWhenMoved:{type:Boolean,default:!0},consumeMouseUpWhenMoved:{type:Boolean,default:!0}},emits:["update"],setup(s,{emit:o}){const t=s,a=o,l=e.ref(100),n=e.ref(0),i=e.ref(0),r=e.ref(!1),k=e.ref(!1),p=e.ref(void 0),m=e.ref(!1),u=e.ref(),_=e.computed(()=>`translateX(${n.value}px) translateY(${i.value}px) scale(${v.value})`),v=e.computed(()=>l.value/100),b=e.computed(()=>t.maxScale*100);e.watch([v,n,i],()=>{R()}),e.watch(()=>t.desktop,()=>{t.desktop?C():L()}),e.watch(()=>t.mobile,()=>{t.mobile?E():h()}),e.onMounted(()=>{t.desktop&&C(),t.mobile&&E()}),e.onBeforeUnmount(()=>{t.desktop&&L(),t.mobile&&h()});function C(){u.value.addEventListener("wheel",y,{capture:!0}),u.value.addEventListener("mousedown",S,{capture:!0}),u.value.addEventListener("mousemove",c,{capture:!0}),window.addEventListener("mouseup",f,{capture:!0}),window.addEventListener("click",w,{capture:!0})}function E(){u.value.addEventListener("touchstart",N,{capture:!0}),u.value.addEventListener("touchmove",A,{capture:!0}),window.addEventListener("touchend",x,{capture:!0}),window.addEventListener("touchcancel",x,{capture:!0})}function L(){u.value.removeEventListener("wheel",y,{capture:!0}),u.value.removeEventListener("mousedown",S,{capture:!0}),u.value.removeEventListener("mousemove",c,{capture:!0}),window.removeEventListener("mouseup",f,{capture:!0}),window.removeEventListener("click",w,{capture:!0})}function h(){u.value.removeEventListener("touchstart",N,{capture:!0}),u.value.removeEventListener("touchmove",A,{capture:!0}),window.removeEventListener("touchend",x,{capture:!0}),window.removeEventListener("touchcancel",x,{capture:!0})}function y(V){const{x:U,y:O}=$(V);B(-V.deltaY/10,U,O),V.preventDefault()}function S(V){r.value=!0,m.value=!1,p.value=V}function c(V){if(r.value){const{x:U,y:O}=$(V),{x:H,y:Y}=$(p.value),Q={x:U-H,y:O-Y};z(Q.x),g(Q.y),m.value=!0,p.value=V}}function f(V){r.value&&m.value&&t.consumeMouseUpWhenMoved&&(V.preventDefault(),V.stopImmediatePropagation())}function w(V){r.value&&(m.value&&t.consumeMouseClickWhenMoved&&(V.preventDefault(),V.stopImmediatePropagation()),r.value=!1)}function N(V){r.value=V.touches.length===1,k.value=V.touches.length===2,p.value=V}function A(V){if(r.value){const{x:U,y:O}=$(V.touches[0]),{x:H,y:Y}=$(p.value.touches[0]),Q={x:U-H,y:O-Y};z(Q.x),g(Q.y)}else if(k.value&&V.touches.length===2){const{x:U,y:O}=$(V.touches[0]),{x:H,y:Y}=$(p.value.touches[0]),{x:Q,y:q}=$(V.touches[1]),{x:Z,y:X}=$(p.value.touches[1]),K=Math.hypot(H-Z,Y-X),de=Math.hypot(U-Q,O-q),me=(Q+U)/2,Ve=(q+O)/2;B(de-K,me,Ve)}p.value=V}function x(){r.value=!1,k.value=!1}function $(V){const{left:U,top:O}=u.value.getBoundingClientRect();return{x:V.clientX-U,y:V.clientY-O}}function z(V){const U=u.value.clientWidth,O=U*v.value;n.value=Math.max(Math.min(0,n.value+V),-(O-U))}function g(V){const U=u.value.clientHeight,O=U*v.value;i.value=Math.max(Math.min(0,i.value+V),-(O-U))}function B(V,U,O){const H=u.value.clientWidth,Y=u.value.clientHeight,Q=H*v.value,q=Y*v.value;l.value=Math.min(Math.max(100,l.value+V),b.value);const Z=H*v.value,X=Y*v.value,K=Z-Q,de=X-q;n.value-=U/H*K,i.value-=O/Y*de,z(0),g(0)}function R(){a("update",{scale:v.value,x:n.value,y:i.value,resolve:(V,U)=>{const O=u.value.clientWidth,H=u.value.clientHeight,Y=n.value/-v.value,Q=i.value/-v.value,q=Y+O/v.value,Z=Q+H/v.value,X=V/O*(q-Y)+Y,K=U/H*(Z-Q)+Q;return{x:X,y:K}}})}return(V,U)=>(e.openBlock(),e.createElementBlock("div",{ref_key:"box",ref:u,class:"zoom-box-container"},[e.createElementVNode("div",{style:e.normalizeStyle({"transform-origin":"top left",transform:_.value}),class:"zoom-box"},[e.renderSlot(V.$slots,"default",{},void 0,!0)],4)],512))}}),[["__scopeId","data-v-52f62ef2"]]),Ue=4;function Ye(s){return s<Ue?s+1:1}function kt(s){return s>1?s-1:Ue}class We{constructor(o){j(this,"_state");j(this,"_navigator");j(this,"_sceneModel");this._state={isRotating:!1,currentScene:o}}get isRotating(){return this._state.isRotating}set isRotating(o){this._state.isRotating=o}get navigator(){return this._navigator}get sceneModel(){return this._sceneModel}unlessRotatingDo(o){this.isRotating||o()}get currentScene(){return this._state.currentScene}set currentScene(o){this._state.currentScene=o}rotateCounterClockwise(){this.unlessRotatingDo(()=>{this.currentScene=Ye(this.currentScene)})}rotateClockwise(){this.unlessRotatingDo(()=>{this.currentScene=kt(this.currentScene)})}}const wt={interior:"Interiør","see-a-selection-of-the-options-in-the-project":"Se et utvalg av tilvalgsmulighetene i prosjektet.","floor-plan":"Planløsning","all-illustrations-are-indicative-deviations-may-occur":{nb:"Alle illustrasjoner er veiledende. Avvik kan forekomme.",en:"All illustrations are indicative. Discrepancies may exist."},"read-more-here":"Les mer her","i-understand":{nb:"Jeg forstår",en:"I understand"},share:"Share","share-to-facebook":"Share to Facebook","share-to-linkedin":"Share to Linkedin","share-to-twitter":"Share to Twitter","share-via-email":"Share via Email","copy-link":"Copy link","virtual-view":"Virtuell Visning","slide-show":"Slide Show",room:"Room",floor:"Floor","see-apartments":"See apartments","see-apartment":"See apartment","click-and-drag-to-look-around":{en:"Click and drag to look around",nb:"Klikk og dra for å se deg rundt"},"click-on-the-cricles-to-move-around":{en:"Click on the circles to move around",nb:"Klikk på sirkelene for å gå rundt"},"use-the-mouse-wheel-to-zoom":{en:"Use the mouse wheel to zoom",nb:"Bruk mushjulet for å zoome"},"you-can-also-use-the-arrow-keys-to-move-around":{en:"You can also use the arrow keys to move around",nb:"Du kan også bruke pilene på tastaturet for å gå rundt"},"tap-and-drag-to-look-around":{en:"Tap and drag to look around",nb:"Trykk og dra for å se deg rundt"},"tap-on-the-circles-to-move-around":{en:"Tap on the circles to move around",nb:"Trykk på sirkelene for å gå rundt"},"use-two-fingers-to-zoom":{en:"Use two fingers to zoom",nb:"Bruk to fingre for å zoome"},"dont-show-again":{en:"Don't Show Again",nb:"Ikke vis igjen"}};class te{constructor(o=null,t=null){j(this,"_labels");j(this,"_language");this._labels={...wt,...o||{}},this._language=t||"en"}getLabel(o){return o in this._labels?this.get(this._labels[o]):o}get(o){if(typeof o=="string")return o;if(this._language in o&&o[this._language])return o[this._language];for(const t in o)if(o[t])return o[t];return""}}const vt={key:0},Ct={class:"interactive-viewer"},yt={class:"fill-parent"},bt={key:0},_t={key:1,class:"navigation"},Vt={key:2},Et=4,Ge=P(e.defineComponent({__name:"VApartmentChooser",props:{i18n:{},showCards:{type:Boolean,default:!0},build:{default:""},buildingSceneDataResolver:{},buildingScenesByApartmentResolver:{},cdnFileResolver:{},colorCallback:{type:Function,default:()=>({r:108,g:0,b:108,a:144,s:2})},unitCallback:{type:Function,default:s=>s},canGoToUnitCallback:{type:Function,default:()=>!0},selectedUnitId:{},nextUnit:{},prevUnit:{},drawObserver:{default:null},interactiveDesktop:{type:Boolean,default:!0},interactiveMobile:{type:Boolean,default:!0},useSvg:{type:Boolean,default:!1}},emits:["selectUnit","goToUnit","navUnit","hoverOverUnit","hoverOutUnit","initialized"],setup(s,{emit:o}){const t=[0,16,32,48],a=s,l=o;e.provide("i18n",a.i18n?new te(a.i18n.labels,a.i18n.language):new te);const n=e.ref({isReady:!1,isError:!1,progress:void 0}),i=e.ref(null),r=e.ref(null),k=e.ref(null),p=e.ref(void 0),m=e.ref(new le),u=e.ref({x:0,y:0,width:0,height:0}),_=e.ref(void 0),v=e.ref(void 0),b=e.ref(null),C=e.computed(()=>b.value.isHoverEnabled),E=e.computed(()=>a.unitCallback?a.unitCallback(a.selectedUnitId):a.selectedUnitId),L=e.computed(()=>a.useSvg?Me:xe);e.watchEffect(()=>{if(a.selectedUnitId&&p.value){const c=i.value[a.selectedUnitId];c&&(p.value.currentScene=c)}}),e.onMounted(async()=>{let c=null;try{c=await m.value.loadJson(a.cdnFileResolver("/apartmentChooser.json"))}catch{console.info("apartmentChooser.json not found")}const f=c&&c.startScene!==void 0?c.startScene:Et;k.value=c&&c.scenes!==void 0?c.scenes:t,r.value=c&&c.sceneData!==void 0?c.sceneData.map(A=>({apartmentId:A.apartmentID,index:A.index})):a.buildingSceneDataResolver?await a.buildingSceneDataResolver():[],i.value=c&&c.sceneData!==void 0?c.sceneData.map(A=>{const x=A.bestScene===0?4:A.bestScene;return{unitId:A.apartmentID,scene:x}}).reduce((A,x)=>({...A,[x.unitId]:x.scene}),{}):a.buildingScenesByApartmentResolver?await a.buildingScenesByApartmentResolver():[];const w=(A,x="unitId")=>{let $=f,z=[];for(let g=0;g<Ue;g++)z.push($),$=Ye($);return A.sort((g,B)=>{const R=z.findIndex(U=>U===i.value[g[x]]),V=z.findIndex(U=>U===i.value[B[x]]);return R<V?-1:R>V?1:0}),A},N=A=>{p.value=new We(A)};l("initialized",{scene:f,scenes:k.value,sceneData:r.value,scenesByApartment:i.value,unitsSceneSort:w,initialize:N})});function h(c){u.value=c}function y(c){v.value=c.hoverApartment,_.value=c.closeHandler,l("hoverOverUnit",c.hoverApartment)}function S(c){v.value=null,_.value=c.closeHandler,l("hoverOutUnit",c.hoverApartment)}return(c,f)=>{const w=e.resolveComponent("v-progress-linear");return p.value?(e.openBlock(),e.createElementBlock("div",vt,[e.createElementVNode("div",Ct,[e.createElementVNode("div",yt,[e.createVNode(Ce,{desktop:n.value.isReady&&c.interactiveDesktop,mobile:n.value.isReady&&c.interactiveMobile},{default:e.withCtx(()=>[e.createVNode(De,{"cdn-file-resolver":c.cdnFileResolver,"view-model":p.value,"cardinal-frames":k.value,build:c.build,onProgress:f[0]||(f[0]=N=>n.value.progress=N),onLoaded:f[1]||(f[1]=N=>n.value.isReady=!0),onError:f[2]||(f[2]=N=>n.value.isError=!0)},null,8,["cdn-file-resolver","view-model","cardinal-frames","build"]),n.value.isReady?(e.openBlock(),e.createElementBlock("div",bt,[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(L.value),{"cdn-file-resolver":c.cdnFileResolver,"view-model":p.value,"selected-unit-id":c.selectedUnitId,"scene-data":r.value,"color-callback":c.colorCallback,"unit-callback":c.unitCallback,"can-go-to-unit-callback":c.canGoToUnitCallback,"draw-observer":c.drawObserver,onSelectUnit:f[3]||(f[3]=N=>l("selectUnit",N)),onGoToUnit:f[4]||(f[4]=N=>l("goToUnit",N)),onHoverOver:y,onHoverOut:S,onPos:h},{default:e.withCtx(N=>[e.renderSlot(c.$slots,"default",e.normalizeProps(e.guardReactiveProps(N)),void 0,!0)]),_:3},40,["cdn-file-resolver","view-model","selected-unit-id","scene-data","color-callback","unit-callback","can-go-to-unit-callback","draw-observer"]))])):e.createCommentVNode("",!0)]),_:3},8,["desktop","mobile"]),v.value&&c.showCards?(e.openBlock(),e.createBlock(ve,{key:0,"is-hoverable":C.value,pos:u.value,onOutside:_.value},{default:e.withCtx(()=>[e.renderSlot(c.$slots,"default",{unit:v.value,canGoToUnit:c.canGoToUnitCallback(v.value),goToUnit:()=>c.canGoToUnitCallback(v.value)&&l("goToUnit",v.value),pos:u.value,isHoverable:C.value,close:_.value},void 0,!0)]),_:3},8,["is-hoverable","pos","onOutside"])):e.createCommentVNode("",!0),n.value.isReady?(e.openBlock(),e.createElementBlock("div",_t,[e.createVNode(Fe,{"can-go-to-unit-callback":c.canGoToUnitCallback,"selected-unit":E.value,"prev-unit":c.prevUnit,"next-unit":c.nextUnit,"view-model":p.value,onGoToUnit:f[5]||(f[5]=N=>l("goToUnit",N)),onPrevUnit:f[6]||(f[6]=N=>l("navUnit",c.prevUnit)),onNextUnit:f[7]||(f[7]=N=>l("navUnit",c.nextUnit))},null,8,["can-go-to-unit-callback","selected-unit","prev-unit","next-unit","view-model"])])):n.value.isError?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("div",Vt,[e.createVNode(w,{indeterminate:!n.value.progress,value:n.value.progress},null,8,["indeterminate","value"])]))])]),e.createVNode(re,{ref_key:"hoverProbe",ref:b},null,512)])):e.createCommentVNode("",!0)}}}),[["__scopeId","data-v-52c91082"]]),Bt="data:image/png;base64,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",ye=e.defineComponent({__name:"VNorthDirection",props:{longitude:{}},setup(s){const o=s,t=e.computed(()=>({transform:`rotate(${90-(o.longitude||0)}deg)`,transition:" transform 0.5s ease-in"}));return(a,l)=>{const n=e.resolveComponent("v-img");return e.openBlock(),e.createBlock(n,{src:e.unref(Bt),style:e.normalizeStyle(t.value)},null,8,["src","style"])}}}),Nt={class:"sunsim-bar-wrapper"},At={class:"sunsim-date d-flex align-center pl-5 pr-5"},Lt={key:1,class:"text-center text-body-1"},St={class:"sunsim-wrapper d-flex align-center px-3"},It={class:"sunsim-time-label text-body-1 font-weight-normal ml-2"},Ae=P(e.defineComponent({__name:"VBuildingChooserSunSimControl",props:{modelValue:{},dateSelector:{},isLoading:{type:Boolean,default:!1}},emits:["update:modelValue"],setup(s,{emit:o}){const t=s,a=o,l=e.ref(t.modelValue),n=e.ref(null);function i(m){return m.toLocaleString("en-no",{month:"short",day:"numeric"})}const r=e.computed(()=>{const m=Math.floor(l.value/2).toString().padStart(2,"0"),u=l.value%2===0?"00":"30";return`${m}:${u}`}),k=e.computed(()=>t.dateSelector.dates.map(i)),p=e.computed({get(){return i(t.dateSelector.selectedDate)},set(m){t.dateSelector.selectIndex(k.value.indexOf(m))}});return e.watch(l,m=>{a("update:modelValue",m)}),e.watch(n,m=>{t.dateSelector.selectIndex(k.value.indexOf(m))}),e.watch(()=>t.modelValue,m=>{l.value=Math.floor(m)}),e.watchEffect(()=>{n.value=i(t.dateSelector.selectedDate)}),(m,u)=>{const _=e.resolveComponent("v-icon"),v=e.resolveComponent("v-select"),b=e.resolveComponent("v-progress-linear"),C=e.resolveComponent("v-slider");return e.openBlock(),e.createElementBlock("div",Nt,[e.createElementVNode("div",At,[e.createVNode(_,{color:"black",class:"mr-2",icon:"mdi-calendar-blank-outline"}),m.dateSelector.hasMultipleDates?(e.openBlock(),e.createBlock(v,{key:0,modelValue:n.value,"onUpdate:modelValue":u[0]||(u[0]=E=>n.value=E),items:k.value,density:"compact",variant:"underlined","hide-details":"",class:"day-selector"},null,8,["modelValue","items"])):(e.openBlock(),e.createElementBlock("span",Lt,e.toDisplayString(p.value),1))]),e.createElementVNode("div",St,[e.createElementVNode("span",It,e.toDisplayString(r.value),1),e.createVNode(_,{medium:"",class:"ml-2 mr-2 icon"},{default:e.withCtx(()=>[e.createTextVNode("mdi-white-balance-sunny")]),_:1}),m.isLoading?(e.openBlock(),e.createBlock(b,{key:0,indeterminate:"",rounded:"",height:"6",color:"grey lighten-1",class:"mr-2"})):(e.openBlock(),e.createBlock(C,{key:1,modelValue:l.value,"onUpdate:modelValue":u[1]||(u[1]=E=>l.value=E),min:0,max:47,step:1,"thumb-label":!1,"hide-details":!0,"thumb-color":"white","thumb-size":"25","track-size":"7","track-fill-color":"transparent",class:"sunsim-slider mr-1"},null,8,["modelValue"]))])])}}}),[["__scopeId","data-v-0d8001a3"]]),xt={key:0},Mt=["src"],Le=P(e.defineComponent({__name:"VBuildingChooserSceneImageStack",props:{imageUrls:{},activeIndex:{}},emits:["resize","ready","preloaded","reset"],setup(s,{emit:o}){const t=s,a=o,l=e.ref("init"),n=e.ref(new Be(0)),i=e.ref();e.watch(()=>t.imageUrls,p=>{a("reset"),k(p)}),e.onMounted(()=>{k(t.imageUrls),new ResizeObserver(p=>{window.requestAnimationFrame(()=>{const m=p[0].contentRect.width,u=p[0].contentRect.height;a("resize",{width:m,height:u})})}).observe(i.value)});function r(){l.value="preloaded",a("preloaded")}function k(p){l.value="init",i.value.src=p[0],n.value=new Be(p.length).onLoadFinished(()=>{l.value="loaded",a("ready")})}return(p,m)=>(e.openBlock(),e.createElementBlock("div",null,[e.createElementVNode("img",{ref_key:"baseImage",ref:i,class:"image-instance zero",style:{opacity:1,borderRadius:50},onLoad:r},null,544),l.value==="preloaded"||l.value==="loaded"?e.withDirectives((e.openBlock(),e.createElementBlock("div",xt,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(p.imageUrls,(u,_)=>(e.openBlock(),e.createElementBlock("img",{key:_,class:e.normalizeClass({"image-instance":!0,active:_===p.activeIndex}),src:u,onLoad:m[0]||(m[0]=v=>n.value.partLoaded())},null,42,Mt))),128)),e.createTextVNode(" Here ")],512)),[[e.vShow,l.value==="loaded"]]):e.createCommentVNode("",!0)]))}}),[["__scopeId","data-v-1dc6128e"]]),Ft="buildingChooser.json",Dt=180;class Re{constructor(o){j(this,"_cdnFileResolver");j(this,"_resourceLoader");this._cdnFileResolver=o,this._resourceLoader=new le}constructFileUrl(o){return this._cdnFileResolver?this._cdnFileResolver(`/${o}`):null}loadConfigFile(){const o=this.constructFileUrl(Ft);return o?this._resourceLoader.loadJson(o):null}loadBuildingMapImage(o){const t=this.constructFileUrl(o.lookupFilename);return t?this._resourceLoader.loadImage(t):null}getViewLongitude(o){return o.cameraRotation&&o.cameraRotation.y+270}getBuildingData(o){const t=o?o.buildings:[],a=t.map(n=>n.id),l=t.map(n=>({id:n.id,url:this.constructFileUrl(n.overlayFilename)}));return{buildingIds:a,buildingOverlays:l}}getBackgroundImageData(o){return"days"in o?this.processMultipleDays(o.days):[this.processTimeSamples(Dt,o.timeSamples)]}processMultipleDays(o){return o.map(t=>this.processTimeSamples(t.dayOfYear,t.timeSamples))}processTimeSamples(o,t){return{urls:t.map(l=>this.constructFileUrl(l.filename)),referenceDate:this.makeReferenceDate(o)}}makeReferenceDate(o){const t=new Date(0);return t.setUTCDate(o),t}async loadBuildingChooser(){try{const o=await this.loadConfigFile();if(o){const t=await this.loadBuildingMapImage(o);if(t){const a=this.getViewLongitude(o),{buildingIds:l,buildingOverlays:n}=this.getBuildingData(o),i=this.getBackgroundImageData(o);return{mapImage:t,viewLongitude:a,buildingIds:l,buildingOverlays:n,backgrounds:i}}}return null}catch{return null}}}class ie{constructor(o){j(this,"_buildingIds");this._buildingIds=o}static empty(){return new ie([])}getBuildingId(o,t,a){const l=this._getBuildingIndex(o,t,a);if(l!==void 0)return this._buildingIds[l]}_getBuildingIndex(o,t,a){const[l,n,i,r]=o.getPixel(t,a);if(r===255&&l===n&&n===i)return l}}class se{constructor(o){j(this,"_mapImage");j(this,"_context");this._mapImage=o,this._context=null}static empty(){return new se(null)}update(o){this._mapImage&&(this._context=o.getContext("2d",{willReadFrequently:!0}),this._context.drawImage(this._mapImage,0,0,o.width,o.height))}getPixel(o,t){try{return this._context?this._context.getImageData(o,t,1,1).data:[0,0,0,0]}catch{return[0,0,0,0]}}}const Ut=new Date(0);class be{constructor(o){j(this,"_imagesByDay");j(this,"_state");this._imagesByDay=o,this._state={selectedIndex:0}}static empty(){return new be([{referenceDate:Ut,urls:[]}])}selectIndex(o){o<this._imagesByDay.length&&(this._state.selectedIndex=o)}get dates(){return this._imagesByDay.map(o=>o.referenceDate)}get hasMultipleDates(){return this._imagesByDay.length>1}get selectedIndex(){return this._state.selectedIndex}get selectedDate(){return this._imagesByDay[this.selectedIndex].referenceDate}get imageUrls(){return this._imagesByDay[this.selectedIndex].urls}}const Rt={key:0,style:{height:"50vh"},class:"d-flex justify-center align-center blue-grey lighten-5"},Tt={class:"image-instances"},$t={key:0},Ot={class:"svg-container"},Ht=["viewBox"],jt=["innerHTML","data-building-id","onMouseover","onMouseout","onMousemove","onClick"],Pt=["innerHTML"],Te=P(e.defineComponent({__name:"VBuildingChooserSvg",props:{showCards:{type:Boolean,default:!0},colorCallback:{type:Function,default:()=>({r:108,g:0,b:108,a:144,s:2})},buildingCallback:{type:Function,default:s=>s},canGoToBuildingCallback:{type:Function,default:()=>!0},buildingChooserTimeOfDay:{},cdnFileResolver:{},i18n:{},interactiveDesktop:{type:Boolean,default:!0},interactiveMobile:{type:Boolean,default:!0},customOverlayContent:{}},emits:["goToBuilding","hoverOverBuilding","hoverOutBuilding"],setup(s,{emit:o}){const t=s,a=o;e.provide("i18n",t.i18n?new te(t.i18n.labels,t.i18n.language):new te);const l=e.ref({preloaded:!1,ready:!1}),n=e.ref({width:0,height:0}),i=e.ref({x:0,y:0,width:0,height:0}),r=e.ref(),k=e.ref(new Date().getHours()*2+(new Date().getMinutes()<30?0:1)),p=e.ref(!1),m=e.ref(new le),u=e.ref(),_=e.ref("0 0 0 0"),v=e.ref({}),b=e.ref(),C=e.ref(ie.empty()),E=e.ref(se.empty()),L=e.ref(),h=e.computed(()=>{var g;return(g=L.value)==null?void 0:g.isHoverEnabled}),y=e.computed(()=>f(r.value));e.watch(r,(g,B)=>{g?a("hoverOverBuilding",f(g)):a("hoverOutBuilding",f(B))}),e.watchEffect(()=>{if(t.buildingChooserTimeOfDay){const[g,B,R]=/^(\d\d):(\d\d)$/.exec(t.buildingChooserTimeOfDay),V=parseInt(R);k.value=parseInt(B)*2+(V<15?0:V>45?2:1)}}),e.onMounted(async()=>{const B=await new Re(t.cdnFileResolver).loadBuildingChooser();if(B){E.value=new se(B.mapImage),C.value=new ie(B.buildingIds),v.value=new be(B.backgrounds),b.value={buildingOverlays:B.buildingOverlays,sceneLongitude:B.viewLongitude};const R=[];for(let{id:V,url:U}of B.buildingOverlays)m.value.loadJson(U.replace(".png",".svg")).then(O=>{const Y=new DOMParser().parseFromString(O,"image/svg+xml").getElementsByTagName("svg")[0];_.value=Y.getAttribute("viewBox"),R.push({id:V,svg:Y.innerHTML})});u.value=R}else p.value=!0});function S({width:g,height:B}){n.value.width=g,n.value.height=B}function c(){l.value={preloaded:!1,ready:!1}}function f(g){return t.buildingCallback?t.buildingCallback(g):g}function w(g){const B=f(g),R=t.colorCallback(B,g===r.value?"hover":"idle"),V=[];return g===r.value?V.push("hover"):V.push("idle"),R&&t.canGoToBuildingCallback(B)?V.push("clickable"):V.push("restricted"),V.join(" ")}function N(g){const B=f(g),R=t.colorCallback(B,g===r.value?"hover":"idle");if(R){const{r:V,g:U,b:O,a:H,s:Y}=R;return{strokeWidth:Y!==void 0?Y:2,stroke:`rgb(${V}, ${U}, ${O})`,strokeOpacity:1,fill:`rgb(${V}, ${U}, ${O})`,fillOpacity:H/255,cursor:`${t.canGoToBuildingCallback(B)?"cursor":"default"} !important`}}else return{strokeWidth:0,stroke:"white",strokeOpacity:0,fill:"white",fillOpacity:0,cursor:"default !important"}}function A(g,B){h.value&&(i.value={x:g.layerX,y:g.layerY,width:n.value.width,height:n.value.height},r.value=B,a("hoverOverBuilding",f(B)))}function x(g,B){h.value&&(i.value={x:g.layerX,y:g.layerY,width:n.value.width,height:n.value.height},r.value=void 0,a("hoverOutBuilding",f(B)))}function $(g,B){h.value&&(i.value={x:g.layerX,y:g.layerY,width:n.value.width,height:n.value.height})}function z(g){r.value=g,h.value&&y.value&&t.canGoToBuildingCallback(y.value)&&a("goToBuilding",y.value)}return(g,B)=>{const R=e.resolveComponent("v-icon");return p.value?(e.openBlock(),e.createElementBlock("div",Rt,[e.createVNode(R,{"x-large":""},{default:e.withCtx(()=>[e.createTextVNode("mdi-alert-circle-outline")]),_:1})])):b.value?(e.openBlock(),e.createElementBlock("div",{key:1,style:e.normalizeStyle(`height: ${n.value.height}px; position: relative`),class:"image-container"},[e.createVNode(Ce,{desktop:g.interactiveDesktop,mobile:g.interactiveMobile},{default:e.withCtx(()=>[e.createElementVNode("div",Tt,[e.createVNode(Le,{"image-urls":v.value.imageUrls,"active-index":k.value,onResize:S,onPreloaded:B[0]||(B[0]=V=>l.value.preloaded=!0),onReady:B[1]||(B[1]=V=>l.value.ready=!0),onReset:c},null,8,["image-urls","active-index"]),u.value?e.withDirectives((e.openBlock(),e.createElementBlock("div",$t,[e.createElementVNode("div",Ot,[(e.openBlock(),e.createElementBlock("svg",{viewBox:_.value},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(u.value,({id:V,svg:U},O)=>(e.openBlock(),e.createElementBlock("g",{key:O,innerHTML:U,"data-building-id":V,class:e.normalizeClass(w(V)),style:e.normalizeStyle(N(V)),onMouseover:H=>A(H,V),onMouseout:H=>x(H,V),onMousemove:H=>$(H),onClick:H=>z(V)},null,46,jt))),128))],8,Ht))])],512)),[[e.vShow,l.value.preloaded]]):e.createCommentVNode("",!0),e.withDirectives(e.createElementVNode("div",{class:"custom-overlay-layer",innerHTML:g.customOverlayContent},null,8,Pt),[[e.vShow,l.value.preloaded]])])]),_:1},8,["desktop","mobile"]),e.withDirectives(e.createElementVNode("div",null,[b.value.sceneLongitude?(e.openBlock(),e.createBlock(ye,{key:0,class:"north-indicator",longitude:b.value.sceneLongitude},null,8,["longitude"])):e.createCommentVNode("",!0),e.createVNode(Ae,{modelValue:k.value,"onUpdate:modelValue":B[2]||(B[2]=V=>k.value=V),"date-selector":v.value,"is-loading":!l.value.ready},null,8,["modelValue","date-selector","is-loading"])],512),[[e.vShow,l.value.preloaded]]),g.showCards&&y.value?(e.openBlock(),e.createBlock(ve,{key:0,"is-hoverable":h.value,pos:i.value,onOutside:B[3]||(B[3]=()=>r.value=void 0)},{default:e.withCtx(()=>[e.renderSlot(g.$slots,"default",{building:y.value,canGoToBuilding:g.canGoToBuildingCallback(y.value),goToBuilding:()=>g.canGoToBuildingCallback(y.value)&&a("goToBuilding",y.value),pos:i.value,isHoverable:h.value,close:()=>r.value=void 0},void 0,!0)]),_:3},8,["is-hoverable","pos"])):e.createCommentVNode("",!0),e.createVNode(re,{ref_key:"hoverProbe",ref:L},null,512)],4)):e.createCommentVNode("",!0)}}}),[["__scopeId","data-v-6103fad2"]]),$e=P(e.defineComponent({__name:"VBuildingChooserRasterOverlay",props:{imageUrl:{},dimensions:{},color:{default:()=>({r:108,g:0,b:108,a:144,s:2})}},setup(s){const o=s,t=e.ref(!1),a=e.ref(void 0),l=e.ref(new le),n=e.ref(void 0),i=e.ref(void 0),r=e.ref([]),k=e.ref();e.watch(()=>o.color,(_,v)=>{(_.r!==v.r||_.g!==v.g||_.b!==v.b||_.a!==v.a)&&m()}),e.onMounted(async()=>{a.value=await l.value.loadImage(o.imageUrl),p()});function p(){if(!a.value||!k.value)return;const{width:_,height:v}=o.dimensions;if(!(_===0||v===0)){n.value=k.value.getContext("2d",{willReadFrequently:!0}),n.value.drawImage(a.value,0,0,_,v),i.value=n.value.getImageData(0,0,_,v);for(let b=3;b<i.value.data.length;b+=4)i.value.data[b]!==0&&r.value.push(b);m(),t.value=!0}}function m(){n.value&&i.value&&(u(),n.value.putImageData(i.value,0,0))}function u(){if(o.color)for(let _=0;_<r.value.length;_++)i.value.data[r.value[_]-3]=o.color.r,i.value.data[r.value[_]-2]=o.color.g,i.value.data[r.value[_]-1]=o.color.b,i.value.data[r.value[_]]=o.color.a}return(_,v)=>(e.openBlock(),e.createElementBlock("canvas",e.mergeProps({ref_key:"canvas",ref:k,class:"overlay"},_.dimensions),null,16))}}),[["__scopeId","data-v-b6fc0f96"]]),zt={key:0,style:{height:"50vh"},class:"d-flex justify-center align-center blue-grey lighten-5"},Yt={class:"image-instances"},Wt=["innerHTML"],Oe=P(e.defineComponent({__name:"VBuildingChooserRaster",props:{showCards:{type:Boolean,default:!0},colorCallback:{type:Function,default:()=>({r:108,g:0,b:108,a:144,s:2})},buildingCallback:{type:Function,default:s=>s},canGoToBuildingCallback:{type:Function,default:()=>!0},buildingChooserTimeOfDay:{},cdnFileResolver:{},i18n:{},interactiveDesktop:{type:Boolean,default:!0},interactiveMobile:{type:Boolean,default:!0},customOverlayContent:{}},emits:["goToBuilding","hoverOverBuilding","hoverOutBuilding"],setup(s,{emit:o}){const t=s,a=o;e.provide("i18n",t.i18n?new te(t.i18n.labels,t.i18n.language):new te);const l=e.ref({}),n=e.ref({preloaded:!1,ready:!1}),i=e.ref({width:0,height:0}),r=e.ref({x:0,y:0,width:0,height:0}),k=e.ref(void 0),p=e.ref(ie.empty()),m=e.ref(se.empty()),u=e.ref(void 0),_=e.ref(new Date().getHours()*2+(new Date().getMinutes()<30?0:1)),v=e.ref((g,B)=>({x:g,y:B})),b=e.ref(!1),C=e.ref(),E=e.ref(),L=e.ref(),h=e.computed(()=>{var g;return(g=C.value)==null?void 0:g.isHoverEnabled}),y=e.computed(()=>f(u.value));e.watchEffect(()=>{if(t.buildingChooserTimeOfDay){const[g,B,R]=/^(\d\d):(\d\d)$/.exec(t.buildingChooserTimeOfDay),V=parseInt(R);_.value=parseInt(B)*2+(V<15?0:V>45?2:1)}}),e.watch(u,(g,B)=>{g?a("hoverOverBuilding",f(g)):a("hoverOutBuilding",f(B))}),e.onMounted(async()=>{const B=await new Re(t.cdnFileResolver).loadBuildingChooser();B?(m.value=new se(B.mapImage),p.value=new ie(B.buildingIds),l.value=new be(B.backgrounds),k.value={buildingOverlays:B.buildingOverlays,sceneLongitude:B.viewLongitude},N()):b.value=!0});function S({width:g,height:B}){i.value.width=g,i.value.height=B,e.nextTick(N)}function c(){n.value={preloaded:!1,ready:!1}}function f(g){return t.buildingCallback?t.buildingCallback(g):g}function w(g){const{x:B,y:R}=v.value(g.layerX,g.layerY);return p.value.getBuildingId(m.value,B,R)}function N(){if(E.value&&(m.value.update(E.value),L.value))for(const g of L.value)g.setupDraw()}function A(g){h.value&&(u.value=w(g),u.value!==void 0&&(r.value={x:g.layerX,y:g.layerY,width:i.value.width,height:i.value.height}))}function x(g){u.value=w(g),h.value&&y.value&&a("goToBuilding",y.value)}function $(g){return t.colorCallback(f(g),g===u.value?"hover":"idle")}function z({resolve:g}){v.value=g}return(g,B)=>{const R=e.resolveComponent("v-icon");return b.value?(e.openBlock(),e.createElementBlock("div",zt,[e.createVNode(R,{"x-large":""},{default:e.withCtx(()=>[e.createTextVNode("mdi-alert-circle-outline")]),_:1})])):k.value?(e.openBlock(),e.createElementBlock("div",{key:1,style:e.normalizeStyle(`cursor: ${u.value?"pointer":"auto"};height: ${i.value.height}px; position: relative`),class:"image-container"},[e.createVNode(Ce,{desktop:g.interactiveDesktop,mobile:g.interactiveMobile,onUpdate:z},{default:e.withCtx(()=>[e.createElementVNode("div",Yt,[e.createVNode(Le,{"image-urls":l.value.imageUrls,"active-index":_.value,onResize:S,onPreloaded:B[0]||(B[0]=V=>n.value.preloaded=!0),onReady:B[1]||(B[1]=V=>n.value.ready=!0),onReset:c},null,8,["image-urls","active-index"]),e.withDirectives(e.createElementVNode("div",null,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(k.value.buildingOverlays,V=>(e.openBlock(),e.createBlock($e,{ref_for:!0,ref_key:"overlays",ref:L,key:V.id,"image-url":V.url,dimensions:i.value,color:$(V.id)},null,8,["image-url","dimensions","color"]))),128))],512),[[e.vShow,n.value.preloaded]])]),e.createElementVNode("canvas",e.mergeProps(i.value,{ref_key:"canvas",ref:E,class:{hover:!!u.value},onClick:x,onMousemove:A}),null,16),e.withDirectives(e.createElementVNode("div",{class:"custom-overlay-layer",innerHTML:g.customOverlayContent},null,8,Wt),[[e.vShow,n.value.preloaded]])]),_:1},8,["desktop","mobile"]),e.withDirectives(e.createElementVNode("div",null,[k.value.sceneLongitude?(e.openBlock(),e.createBlock(ye,{key:0,class:"north-indicator",longitude:k.value.sceneLongitude},null,8,["longitude"])):e.createCommentVNode("",!0),e.createVNode(Ae,{modelValue:_.value,"onUpdate:modelValue":B[2]||(B[2]=V=>_.value=V),"date-selector":l.value,"is-loading":!n.value.ready},null,8,["modelValue","date-selector","is-loading"])],512),[[e.vShow,n.value.preloaded]]),g.showCards&&y.value?(e.openBlock(),e.createBlock(ve,{key:0,"is-hoverable":h.value,pos:r.value,onOutside:B[3]||(B[3]=()=>u.value=void 0)},{default:e.withCtx(()=>[e.renderSlot(g.$slots,"default",{building:y.value,canGoToBuilding:g.canGoToBuildingCallback(y.value),goToBuilding:()=>g.canGoToBuildingCallback(y.value)&&a("goToBuilding",y.value),pos:r.value,isHoverable:h.value,close:()=>u.value=void 0},void 0,!0)]),_:3},8,["is-hoverable","pos"])):e.createCommentVNode("",!0),e.createVNode(re,{ref_key:"hoverProbe",ref:C},null,512)],4)):e.createCommentVNode("",!0)}}}),[["__scopeId","data-v-96bbdc16"]]),Qe=e.defineComponent({__name:"VBuildingChooser",props:{showCards:{type:Boolean,default:!0},colorCallback:{type:Function,default:()=>({r:108,g:0,b:108,a:144,s:2})},buildingCallback:{type:Function,default:s=>s},cdnFileResolver:{},i18n:{},interactiveDesktop:{type:Boolean,default:!0},interactiveMobile:{type:Boolean,default:!0},useSvg:{type:Boolean,default:!1},buildingChooserTimeOfDay:{},canGoToBuildingCallback:{type:Function,default:()=>!0},customOverlayContent:{}},emits:["goToBuilding","hoverOverBuilding","hoverOutBuilding"],setup(s,{emit:o}){const t=s,a=o,l=e.computed(()=>t.useSvg?Te:Oe);return(n,i)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(l.value),{"show-cards":n.showCards,"color-callback":n.colorCallback,"building-callback":n.buildingCallback,"cdn-file-resolver":n.cdnFileResolver,i18n:n.i18n,"interactive-desktop":n.interactiveDesktop,"interactive-mobile":n.interactiveMobile,"building-chooser-time-of-day":n.buildingChooserTimeOfDay,"can-go-to-building-callback":n.canGoToBuildingCallback,"custom-overlay-content":n.customOverlayContent,onGoToBuilding:i[0]||(i[0]=r=>a("goToBuilding",r)),onHoverOverBuilding:i[1]||(i[1]=r=>a("hoverOverBuilding",r)),onHoverOutBuilding:i[2]||(i[2]=r=>a("hoverOutBuilding",r))},e.createSlots({_:2},[e.renderList(Object.keys(n.$slots),r=>({name:r,fn:e.withCtx(k=>[e.renderSlot(n.$slots,r,e.normalizeProps(e.guardReactiveProps(k)))])}))]),1064,["show-cards","color-callback","building-callback","cdn-file-resolver","i18n","interactive-desktop","interactive-mobile","building-chooser-time-of-day","can-go-to-building-callback","custom-overlay-content"]))}});var he={};Object.defineProperty(he,"__esModule",{value:!0});var Gt=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(s){return typeof s}:function(s){return s&&typeof Symbol=="function"&&s.constructor===Symbol&&s!==Symbol.prototype?"symbol":typeof s},Qt=typeof window<"u"&&typeof window.document<"u",qt=typeof process<"u"&&process.versions!=null&&process.versions.node!=null,Zt=(typeof self>"u"?"undefined":Gt(self))==="object"&&self.constructor&&self.constructor.name==="DedicatedWorkerGlobalScope",Xt=typeof window<"u"&&window.name==="nodejs"||typeof navigator<"u"&&(navigator.userAgent.includes("Node.js")||navigator.userAgent.includes("jsdom")),Kt=typeof Deno<"u"&&typeof Deno.version<"u"&&typeof Deno.version.deno<"u",Jt=he.isBrowser=Qt;he.isWebWorker=Zt,he.isNode=qt,he.isJsDom=Xt,he.isDeno=Kt;const eo={id:"player-wrapper"},to={id:"player-sizer"},oo={class:"player-control",id:"controls-top-left"},no={class:"player-control",id:"controls-top-center"},ao={class:"player-control",id:"controls-top-right"},lo={class:"player-control",id:"controls-center-left"},ro={class:"player-control",id:"controls-center-center"},io={class:"player-control",id:"controls-center-right"},so={class:"player-control",id:"controls-bottom-left"},co={class:"player-control",id:"controls-bottom-center"},mo={class:"player-control",id:"controls-bottom-right"},uo={id:"main-canvas"},po=P(e.defineComponent({__name:"VPlayer",props:{fileLoader:{},rootUrl:{},currentCameraId:{},showStaticImage:{type:Boolean},isFullScreen:{type:Boolean},mouseSensitivity:{default:1},isInIframe:{type:Boolean,default:!1}},emits:["newCameraCallback","newRotationCallback","newFloorCallback","newFovCallback","playerApiCallback","newSizeCallback"],setup(s,{emit:o}){const t=ot.PlayerV2,a=s,l=o,n=e.ref(void 0),i=e.ref(void 0),r=e.ref(0),k=e.ref(0);e.watch(()=>a.rootUrl,async m=>{n.value&&(await n.value.loadInterior(m,i.value,!1),p())}),e.watch(()=>a.fileLoader,async()=>{n.value&&(await n.value.loadInterior(a.rootUrl,void 0,!1),p())},{deep:!0}),e.watch(()=>a.currentCameraId,m=>{n.value&&(i.value=m,n.value.goToCamera(m,!0))}),e.watch(n,m=>{l("playerApiCallback",m);const u=n.value.getCurrentCamera();u&&(i.value=u.id)}),e.onMounted(async()=>{window.addEventListener("resize",p),p();const v={initialized:()=>{n.value=t.Main.getPlayerAPI();const C=n.value.getCurrentCamera();C&&(i.value=C.id),l("newCameraCallback",i.value)},newCamera:C=>{l("newCameraCallback",C.id),l("newFloorCallback",C.floorLevel),n.value&&n.value.resetMarkerBehaviour(0),i.value=C.id},newFOV:C=>{l("newFovCallback",C),k.value=C},newRotation:C=>{const E=C+0;l("newRotationCallback",E),r.value=E}};if(!Jt)return;const b=await new t.Main(a.rootUrl,"qpc",v,void 0,a.currentCameraId,a.fileLoader);b&&(b.handleWindowResize(),window.addEventListener("resize",b.handleWindowResize.bind(b)),b.animate(),n.value=t.Main.getPlayerAPI(),n.value&&n.value.setLookSensitivity(a.mouseSensitivity))}),e.onBeforeUnmount(()=>{n.value&&n.value.destroy()});function p(){let m=1.7777777777777777,u=document.querySelector("#player-sizer");if(!u)return;let _=u.offsetWidth,v=_*(1/m);(window.innerWidth<=600||_<=600)&&(v=window.innerHeight*.75,a.isInIframe&&(v=screen.height*.65),_=v*(1/m)),u.style.height=v+"px",u.style.width=_+"px",l("newSizeCallback",_,v)}return(m,u)=>(e.openBlock(),e.createElementBlock("div",eo,[e.createElementVNode("div",to,[e.renderSlot(m.$slots,"slideshow-image",{},void 0,!0),e.createElementVNode("div",oo,[e.renderSlot(m.$slots,"top-left",{},void 0,!0)]),e.createElementVNode("div",no,[e.renderSlot(m.$slots,"top-center",{},void 0,!0)]),e.createElementVNode("div",ao,[e.renderSlot(m.$slots,"top-right",{},void 0,!0)]),e.createElementVNode("div",lo,[e.renderSlot(m.$slots,"center-left",{},void 0,!0)]),e.createElementVNode("div",ro,[e.renderSlot(m.$slots,"center-center",{},void 0,!0)]),e.createElementVNode("div",io,[e.renderSlot(m.$slots,"center-right",{},void 0,!0)]),e.createElementVNode("div",so,[e.renderSlot(m.$slots,"bottom-left",{},void 0,!0)]),e.createElementVNode("div",co,[e.renderSlot(m.$slots,"bottom-center",{},void 0,!0)]),e.createElementVNode("div",mo,[e.renderSlot(m.$slots,"bottom-right",{},void 0,!0)]),e.createElementVNode("div",uo,[e.createElementVNode("canvas",{id:"qpc",style:e.normalizeStyle(m.showStaticImage?"visibility:hidden":"visibility:visible")},null,4)])])]))}}),[["__scopeId","data-v-2374a426"]]),fo={class:"waypoint-carousel"},ho=37,go=39,qe=P(e.defineComponent({__name:"VWaypointCarousel",props:{thumbnails:{},active:{}},emits:["previous","next","goto"],setup(s,{emit:o}){const t=s,a=o,l=e.ref(0),n=e.computed({get(){return t.active},set(p){l.value=p}}),i=e.computed(()=>/Android|webOS|iPhone|iPad|BlackBerry|Windows Phone|Opera Mini|IEMobile|Mobile/i.test(window.navigator.userAgent));e.onMounted(()=>{window.addEventListener("keydown",r)}),e.onBeforeUnmount(()=>{window.removeEventListener("keydown",r)});function r(p){switch(p.keyCode){case p.keyCode===ho:a("previous");break;case p.keyCode===go:a("next");break;default:return}}function k(p,m){m(),a("goto",p)}return(p,m)=>{const u=e.resolveComponent("v-icon"),_=e.resolveComponent("v-btn"),v=e.resolveComponent("v-hover"),b=e.resolveComponent("v-img"),C=e.resolveComponent("v-card"),E=e.resolveComponent("v-slide-group-item"),L=e.resolveComponent("v-slide-group");return e.openBlock(),e.createElementBlock("div",fo,[e.createVNode(L,{modelValue:n.value,"onUpdate:modelValue":m[2]||(m[2]=h=>n.value=h),"active-class":"active-apt","selected-class":"active-apt","show-arrows":"","center-active":"",mandatory:""},{prev:e.withCtx(()=>[e.createVNode(v,null,{default:e.withCtx(({isHovering:h})=>[e.createVNode(_,{elevation:"0",class:e.normalizeClass(["carousel-button",{mobile:i.value}]),onClick:m[0]||(m[0]=y=>a("previous"))},{default:e.withCtx(()=>[e.createVNode(u,{color:h?"#999":"#d2d2d2","x-large":""},{default:e.withCtx(()=>[e.createTextVNode(" mdi-chevron-left ")]),_:2},1032,["color"])]),_:2},1032,["class"])]),_:1})]),next:e.withCtx(()=>[e.createVNode(v,null,{default:e.withCtx(({isHovering:h})=>[e.createVNode(_,{elevation:"0",class:e.normalizeClass(["carousel-button",{mobile:i.value}]),onClick:m[1]||(m[1]=y=>a("next"))},{default:e.withCtx(()=>[e.createVNode(u,{color:h?"#999":"#d2d2d2","x-large":""},{default:e.withCtx(()=>[e.createTextVNode(" mdi-chevron-right ")]),_:2},1032,["color"])]),_:2},1032,["class"])]),_:1})]),default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(p.thumbnails,h=>(e.openBlock(),e.createBlock(E,{key:h.id},{default:e.withCtx(({toggle:y,selectedClass:S})=>[e.createVNode(C,{class:e.normalizeClass(["ma-2",S]),align:"center",justify:"center",height:i.value?50:100,width:i.value?80:160,elevation:"0",style:{overflow:"hidden"},onClick:c=>k(h.id,y)},{default:e.withCtx(()=>[e.createVNode(b,{"max-height":"100","max-width":"160",src:h.thumbnailUrl},null,8,["src"])]),_:2},1032,["class","height","width","onClick"])]),_:2},1024))),128))]),_:1},8,["modelValue"])])}}}),[["__scopeId","data-v-f8f5088a"]]),ko={style:{width:"24px",height:"24px"},viewBox:"0 0 18 16",xmlns:"http://www.w3.org/2000/svg"},wo=["stroke"],vo=["stroke"],Co={class:"floor-level-label"},yo=P(e.defineComponent({__name:"VFloorLevel",props:{level:{default:0},floorLevels:{default:()=>[]}},emits:["level"],setup(s,{emit:o}){const t=s,a=o,l=e.inject("i18n"),n=e.computed(()=>{const m=t.floorLevels;return m.sort(),m}),i=e.computed(()=>n.value.indexOf(t.level)+1<=n.value.length/2?"Lower":"Upper"),r=e.computed(()=>i.value==="Lower"),k=e.computed(()=>i.value==="Upper");function p(){const m=t.level+1;m>=n.value.length?a("level",n.value[0]):a("level",n.value[m])}return(m,u)=>{const _=e.resolveComponent("v-btn"),v=e.resolveComponent("v-tooltip");return e.openBlock(),e.createBlock(v,{right:"",attach:""},{activator:e.withCtx(({props:b})=>[e.createVNode(_,e.mergeProps({style:{cursor:"pointer"},density:"comfortable",elevation:"1",icon:""},b,{onClick:p}),{default:e.withCtx(()=>[(e.openBlock(),e.createElementBlock("svg",ko,[e.createElementVNode("path",{d:"M8.98034 10.3472L1.54055 5.8855L8.98034 1.42384L16.4201 5.8855L8.98034 10.3472Z",fill:"white",stroke:k.value?"black":"#999999","stroke-width":"1.5","stroke-linejoin":"round"},null,8,wo),e.createElementVNode("path",{d:"M8.98034 14.7993L1.54055 10.3376L8.98034 5.87599L16.4201 10.3376L8.98034 14.7993Z",fill:"white",stroke:r.value?"black":"#999999","stroke-width":"1.5","stroke-linejoin":"round"},null,8,vo)]))]),_:2},1040)]),default:e.withCtx(()=>[e.createElementVNode("span",Co,e.toDisplayString(e.unref(l).getLabel(i.value))+" "+e.toDisplayString(e.unref(l).getLabel("floor")),1)]),_:1})}}}),[["__scopeId","data-v-82187b23"]]),bo={id:"share-btns-wrapper",class:"text-center"},_o=P(e.defineComponent({__name:"VSocialShare",setup(s){const o=e.inject("i18n"),t=e.ref(!1),a=e.ref(location.href);function l(){return window.open("https://www.facebook.com/sharer/sharer.php?u="+encodeURIComponent(location.href),"facebook-share-dialog","width=626,height=436"),!1}function n(){return window.open("https://twitter.com/intent/tweet?text="+encodeURIComponent(location.href),"twitter-share-dialog","width=626,height=436"),!1}function i(){return window.open("https://www.linkedin.com/sharing/share-offsite/?url="+encodeURIComponent(location.href),"linkedin-share-dialog","width=626,height=736"),!1}function r(){navigator.clipboard.writeText(location.href)}return(k,p)=>{const m=e.resolveComponent("v-btn"),u=e.resolveComponent("v-tooltip"),_=e.resolveComponent("v-toolbar-title"),v=e.resolveComponent("v-spacer"),b=e.resolveComponent("v-toolbar"),C=e.resolveComponent("v-card-text"),E=e.resolveComponent("v-card"),L=e.resolveComponent("v-dialog");return e.openBlock(),e.createElementBlock("div",null,[e.createVNode(u,{elevation:"2",top:"",attach:""},{activator:e.withCtx(({props:h})=>[e.createVNode(m,e.mergeProps({density:"comfortable",elevation:"1",icon:"mdi-share-variant",onClick:p[0]||(p[0]=y=>t.value=!t.value)},h),null,16)]),default:e.withCtx(()=>[e.createElementVNode("span",null,e.toDisplayString(e.unref(o).getLabel("share")),1)]),_:1}),e.createVNode(L,{id:"share-box",width:"400",modelValue:t.value,"onUpdate:modelValue":p[2]||(p[2]=h=>t.value=h)},{default:e.withCtx(()=>[e.createVNode(E,null,{default:e.withCtx(()=>[e.createVNode(b,{elevation:"0"},{default:e.withCtx(()=>[e.createVNode(m,{size:"x-small",icon:"mdi-close",onClick:p[1]||(p[1]=h=>t.value=!1)}),e.createVNode(_,null,{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(e.unref(o).getLabel("share")),1)]),_:1}),e.createVNode(v)]),_:1}),e.createVNode(C,{class:"mt-5"},{default:e.withCtx(()=>[e.createElementVNode("p",bo,[e.createVNode(u,{location:"top"},{activator:e.withCtx(({props:h})=>[e.createVNode(m,e.mergeProps({depressed:"",fab:"",light:"",icon:"mdi-facebook"},h,{onClick:l}),null,16)]),default:e.withCtx(()=>[e.createElementVNode("span",null,e.toDisplayString(e.unref(o).getLabel("share-to-facebook")),1)]),_:1}),e.createVNode(u,{location:"top"},{activator:e.withCtx(({props:h})=>[e.createVNode(m,e.mergeProps({depressed:"",fab:"",light:"",icon:"mdi-linkedin"},h,{onClick:i}),null,16)]),default:e.withCtx(()=>[e.createElementVNode("span",null,e.toDisplayString(e.unref(o).getLabel("share-to-linkedin")),1)]),_:1}),e.createVNode(u,{location:"top"},{activator:e.withCtx(({props:h})=>[e.createVNode(m,e.mergeProps({depressed:"",fab:"",light:"",icon:"mdi-twitter"},h,{onClick:n}),null,16)]),default:e.withCtx(()=>[e.createElementVNode("span",null,e.toDisplayString(e.unref(o).getLabel("share-to-twitter")),1)]),_:1}),e.createVNode(u,{location:"top"},{activator:e.withCtx(({props:h})=>[e.createVNode(m,e.mergeProps({depressed:"",fab:"",light:"",icon:"mdi-email",link:"",href:`mailto:?body=${a.value}`},h),null,16,["href"])]),default:e.withCtx(()=>[e.createElementVNode("span",null,e.toDisplayString(e.unref(o).getLabel("share-via-email")),1)]),_:1}),e.createVNode(u,{location:"top"},{activator:e.withCtx(({props:h})=>[e.createVNode(m,e.mergeProps({depressed:"",fab:"",light:"",icon:"mdi-content-copy",onClick:r},h),null,16)]),default:e.withCtx(()=>[e.createElementVNode("span",null,e.toDisplayString(e.unref(o).getLabel("copy-link")),1)]),_:1}),e.createVNode(v)])]),_:1})]),_:1})]),_:1},8,["modelValue"])])}}}),[["__scopeId","data-v-66122fea"]]),Vo=P(e.defineComponent({__name:"VInteriorSelector",props:{availableArchetypes:{},selectedIndex:{}},emits:["selectInterior"],setup(s,{emit:o}){const t=o,a=e.inject("i18n"),l=e.inject("localMode"),n=e.inject("fileLoader");function i(r){let k=r;return l&&(k=`${n.getURL(r)}`),k}return(r,k)=>{const p=e.resolveComponent("v-btn"),m=e.resolveComponent("v-img"),u=e.resolveComponent("v-list-item-title"),_=e.resolveComponent("v-list-item"),v=e.resolveComponent("v-list"),b=e.resolveComponent("v-menu");return e.openBlock(),e.createElementBlock("div",null,[e.createVNode(b,{transition:"slide-x-reverse-transition",location:"top end",origin:"end bottom",elevation:"0"},{activator:e.withCtx(({props:C})=>[e.createVNode(p,e.mergeProps({"prepend-icon":"mdi-palette-outline",rounded:""},C),{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(e.unref(a).getLabel("interior")),1)]),_:2},1040)]),default:e.withCtx(()=>[e.createVNode(v,{class:"interior-selector-list"},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(r.availableArchetypes,(C,E)=>(e.openBlock(),e.createBlock(_,{density:"compact",key:`at-menuitem-${E}`,onClick:L=>t("selectInterior",C.archetypeID),active:E===r.selectedIndex,class:"interior-selector-list-item"},{prepend:e.withCtx(()=>[e.createVNode(m,{width:"100","max-width":"100",height:"66",src:i(C.url)},null,8,["src"])]),default:e.withCtx(()=>[e.createVNode(u,{class:"text-caption py-2 px-4"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(e.unref(a).get(C.title)),1)]),_:2},1024)]),_:2},1032,["onClick","active"]))),128))]),_:1})]),_:1})])}}}),[["__scopeId","data-v-cc96ef5c"]]),Eo="data:image/png;base64,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",Bo="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGwAAABsCAYAAACPZlfNAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAMdSURBVHgB7dxBTttQEMbxsU32idouujM7FhjlBqQnaG5AbkBvUPUEpTegN8gR6AlAgQU70lWlQkUUscR+fVZrRKlL7CTQN6P/T0IJwYkUDfNhvzdEBAAAAAAAAAAAAAAAAAAAAAD+i+t+v3+5vT0Qg2IxqHBuP47jXTHIZMHEuYETeScGmSvYZb9fFiv1d7sWY9FcwWLn9u7ux/FbMcZeJPo4vLsrMhJjTBXsXhxWzMWiqYLdj8NKlCR7YoipgjnnhjUPDv11WVeMMFOwqywb+Zu6wnQlz81ck5kp2GNnhLmha7JIDCgjLy+K60cOmSVxvNk7OZmJciY6LM/z4YJDukVRmDj5sBGJcbywGLUnJAqpj0Qfh6mPw4smx/pY7GmPRfUd5uNw0PRYC7GoPxIbxGHFQiyqjsQ2cVjRHouqO8xHXOvVeP+cfVFMeySOpCV3bzVfI7WRuEwcVlxRvHl1dnYkCqntsFWiTfO8h+ZIXPqMT/PGpsqC1WxUtpVq3dhUWbC6jcrWr6F03kNnJK7hTE9rLKor2BrisKJy3kNdwdYRh3evpTAW9UXiGi98y1jUNu+hqmBXWTZcUxxWure3t31RRFXBoieIMG1jcGqWphrMbSxL1byHmg5rMLexrPIXQc3Jh5qCPekZnXMjUUJFJK6yMt+Ulo1NFR3WZm5jWVrmPXREYou5jWVpmfcIPhKfIw4rGmIx+A57jjisaIjF4AsWRVG7nWXnjhK/fJWUEefcuN1Tw4/FoCOxaRz6N3Hi22M8v7n5tDmd/hFp37a20qTTGcRR9F4aLGslSZL2jo+/SqA2JGALxthmviMO/RsY905Pv/zroNfn51N/c1h+XWfZbl7ug0VR2Um1i75Fno/8zQcJVNAd9mNn5+KvxV4feT4mx/P5/PPDbmrje5aN/N+DPV+8wYMfTV9OJpsSqGALVn78kI/D49/fzqKiOKiLvFWVkbnR6exHv7ouLR8LeQwu2IL57vroIy9NRA4ei7x1qiLTF2/6YjIJNhbxwEWamvkndgAAAAAAAAAAAAAAAAAAAAAAAAAAAABYxU+ILzGcMmFd0QAAAABJRU5ErkJggg==",No=e.defineComponent({__name:"VCompass",props:{rotation:{}},setup(s){const o=s,t=e.ref(Bo),a=e.ref({backgroundImage:`url(${Eo})`,backgroundSize:"contain"}),l=e.computed(()=>({transform:`rotate(${-o.rotation+180}deg)`}));return(n,i)=>{const r=e.resolveComponent("v-img");return e.openBlock(),e.createElementBlock("div",{style:e.normalizeStyle(a.value)},[e.createVNode(r,{class:"compass-needle",src:t.value,style:e.normalizeStyle(l.value)},null,8,["src","style"])],4)}}}),Ao={class:"static-image-wrapper"},Lo=P(e.defineComponent({__name:"VSingleImage",props:{image:{},aspectRatio:{default:"wide"}},setup(s){const o=s,t=e.computed(()=>({"background-image":`url("${encodeURI(o.image)}")`}));return(a,l)=>(e.openBlock(),e.createElementBlock("div",Ao,[e.createElementVNode("div",{class:e.normalizeClass(["img-div",[a.aspectRatio]]),style:e.normalizeStyle(t.value)},null,6)]))}}),[["__scopeId","data-v-3e99d275"]]),So="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACoAAAAqCAMAAADyHTlpAAAAllBMVEUAAAD/rwD/rwD/qgP/qwL/qAL/qwP/qwH/rAL/rAL/qwL/qQD/qwL/qwD/qQD/qwL/pQD/qgH/nwD/pwD/qQL/rAL/qwD/qwT/rAP/qwL/rAL/rAD/rAL/qgD/qwL/qQP/rAP/rAH/qgH/qwL/qwD/qgL/rwD/qgD/qwH/qgD/qgL/rAD/qgD/qgD/qwH/rAP/qgX/qwA+O5E+AAAAMnRSTlMAECBg/3C/v5Dff4+PT1/PMN8QII9vf0CfgO9vnzDvUF+vr3BA3zA/z2+fX59g71AwcDsf6p0AAAFGSURBVHicvdRtT8MgEABgaM9hu1aHXV/cpm6zWt829f//OYEK9qC3NDF6HxYCTw5GuWPsd8GjqTIGOJtIZwDi/ymnKPflOSTub6cAcwdnkHk5AQY2v3Dzl2phga1EFkl5hScLbZc+LbUs/FltK5OpLpsmrS0NpbLLSu3Er1dgIsn0cdabEdlHlICL5IZSRq5gELcn7DCnsfQL24AX5PeNfAlAHSEOaYrFXaNiqwa7kO7V9L1dt9u25kX58cBY7dbZYz/MKdr2o06nrZ6klNX4AYRdf8aHzkL6QtxAG9KculjhS0nJMO0rSVmF5ZyWnn2jFC+36vcgLTzq+3lPRx6XrjjTqQ7iqJxY6+KLydp0ZWhrVHWE0JoqHq1NSHBxF0h+1Mh6LUMM5LC/Kht8h+5nG9zeTtbt37Ti3XT6+d29pkTXTZVEfAEKARRF2iiwhQAAAB10RVh0U29mdHdhcmUAQGx1bmFwYWludC9wbmctY29kZWP1QxkeAAAAAElFTkSuQmCC",Io={class:"d-flex flex-column align-center justify-center clock-face"},xo={class:"clock-icon"},Mo={class:"clock-value grey--text text--darken-3"},Fo=P(e.defineComponent({__name:"VTimeOfDay",props:{hours:{default:0},minutes:{default:0}},setup(s){const o=s,t=e.computed(()=>[a(o.hours),":",a(o.minutes)].join(""));function a(l){return("0"+l).slice(-2)}return(l,n)=>{const i=e.resolveComponent("v-img");return e.openBlock(),e.createElementBlock("div",Io,[e.createElementVNode("div",xo,[e.createVNode(i,{src:e.unref(So),"aspect-ratio":"1"},null,8,["src"])]),e.createElementVNode("div",Mo,e.toDisplayString(t.value),1)])}}}),[["__scopeId","data-v-9a5f102b"]]),Do={id:"btn-fullscreen",class:"btn-placeholder mr-2"},Uo=e.defineComponent({__name:"VFullScreenButton",props:{isFullScreen:{type:Boolean}},emits:["toggleFullscreen"],setup(s,{emit:o}){const t=o;return(a,l)=>{const n=e.resolveComponent("v-btn");return e.openBlock(),e.createElementBlock("div",Do,[e.createVNode(n,{density:"comfortable",elevation:"3",icon:a.isFullScreen?"mdi-fullscreen-exit":"mdi-fullscreen",onClick:l[0]||(l[0]=i=>t("toggleFullscreen"))},null,8,["icon"])])}}}),Ro=e.defineComponent({__name:"VViewModeToggle",props:{showStaticImage:{type:Boolean}},emits:["toggle"],setup(s,{emit:o}){const t=s,a=o,l=e.inject("i18n"),n=e.computed(()=>{let i="virtual-tour";return t.showStaticImage||(i="slide-show"),i});return(i,r)=>{const k=e.resolveComponent("v-btn");return e.openBlock(),e.createBlock(k,{color:"darken-2",elevation:"1",rounded:"",plain:"",onClick:r[0]||(r[0]=p=>a("toggle"))},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(e.unref(l).getLabel(n.value)),1)]),_:1})}}}),To={key:0,class:"text-white disclaimer caption"},$o=P(e.defineComponent({__name:"VDisclaimer",setup(s){const o=e.inject("i18n"),t=e.ref(!0);return(a,l)=>(e.openBlock(),e.createBlock(e.Transition,{name:"fade-transition"},{default:e.withCtx(()=>[t.value?(e.openBlock(),e.createElementBlock("div",To,[e.createTextVNode(e.toDisplayString(e.unref(o).getLabel("all-illustrations-are-indicative-deviations-may-occur"))+" ",1),e.createElementVNode("span",{onClick:l[0]||(l[0]=n=>t.value=!1),class:"link-text text-decoration-underline"},e.toDisplayString(e.unref(o).getLabel("i-understand")),1)])):e.createCommentVNode("",!0)]),_:1}))}}),[["__scopeId","data-v-28008b18"]]),ce=s=>(e.pushScopeId("data-v-53c0bb27"),s=s(),e.popScopeId(),s),Oo={key:0,class:"tutorial"},Ho={key:0,class:"desktop-content"},jo={class:"d-inline-flex"},Po={class:"box col"},zo=ce(()=>e.createElementVNode("div",{class:"tutorial-icon d-flex align-items-center justify-center"},[e.createElementVNode("svg",{width:"100",height:"65",viewBox:"0 0 100 65",fill:"none",xmlns:"http://www.w3.org/2000/svg"},[e.createElementVNode("path",{d:"M72 30H86.9736M86.9736 30L81 36M86.9736 30L81 24",stroke:"#FF3E3E","stroke-width":"1.5","stroke-linecap":"round","stroke-linejoin":"round"}),e.createElementVNode("path",{d:"M27.9736 30H13M13 30L18.9736 36M13 30L18.9736 24",stroke:"#FF3E3E","stroke-width":"1.5","stroke-linecap":"round","stroke-linejoin":"round"}),e.createElementVNode("path",{d:"M36 30H64V40C64 47.732 57.732 54 50 54V54C42.268 54 36 47.732 36 40V30Z",fill:"white",stroke:"black","stroke-width":"1.5"}),e.createElementVNode("path",{d:"M36 25C36 17.268 42.268 11 50 11V11V30H36V25Z",fill:"#FF3E3E",stroke:"black","stroke-width":"1.5"}),e.createElementVNode("path",{d:"M64 25C64 17.268 57.732 11 50 11V11V30H64V25Z",fill:"white",stroke:"black","stroke-width":"1.5"}),e.createElementVNode("path",{d:"M53.25 23V30C53.25 31.7949 51.7949 33.25 50 33.25C48.2051 33.25 46.75 31.7949 46.75 30V23C46.75 21.2051 48.2051 19.75 50 19.75C51.7949 19.75 53.25 21.2051 53.25 23Z",fill:"white",stroke:"black","stroke-width":"1.5"})])],-1)),Yo={class:"text mt-3"},Wo={class:"box col"},Go=ce(()=>e.createElementVNode("div",{class:"tutorial-icon d-flex align-items-center justify-center"},[e.createElementVNode("svg",{width:"100",height:"65",viewBox:"0 0 100 65",fill:"none",xmlns:"http://www.w3.org/2000/svg"},[e.createElementVNode("path",{d:"M79.9936 27.0175C79.9881 19.276 66.3321 13.0323 49.492 13.0719C32.652 13.1116 19.0049 19.4194 19.0105 27.1609C19.016 34.9025 32.6721 41.1461 49.5121 41.1065C66.3521 41.0669 79.9992 34.759 79.9936 27.0175Z",fill:"white",stroke:"#B3B3B3","stroke-width":"1.5"}),e.createElementVNode("path",{d:"M61.8032 45.179L56.543 50.3218V28.0361L72.543 43.4647H65.0909L67.9402 50.3218L64.6526 52.0361L61.8032 45.179Z",fill:"white",stroke:"black","stroke-width":"1.5","stroke-linejoin":"round"}),e.createElementVNode("path",{d:"M50.502 28.0361L46.502 28.0361",stroke:"#FF3E3E","stroke-width":"1.5","stroke-linecap":"round"}),e.createElementVNode("path",{d:"M50.502 28.0361L46.502 28.0361",stroke:"#FF3E3E","stroke-width":"1.5","stroke-linecap":"round"}),e.createElementVNode("path",{d:"M50.502 28.0361L46.502 28.0361",stroke:"#FF3E3E","stroke-width":"1.5","stroke-linecap":"round"}),e.createElementVNode("path",{d:"M66.502 28.0361L62.502 28.0361",stroke:"#FF3E3E","stroke-width":"1.5","stroke-linecap":"round"}),e.createElementVNode("path",{d:"M66.502 28.0361L62.502 28.0361",stroke:"#FF3E3E","stroke-width":"1.5","stroke-linecap":"round"}),e.createElementVNode("path",{d:"M66.502 28.0361L62.502 28.0361",stroke:"#FF3E3E","stroke-width":"1.5","stroke-linecap":"round"}),e.createElementVNode("path",{d:"M52.1582 24.0361L49.1582 21.0361",stroke:"#FF3E3E","stroke-width":"1.5","stroke-linecap":"round"}),e.createElementVNode("path",{d:"M52.1582 24.0361L49.1582 21.0361",stroke:"#FF3E3E","stroke-width":"1.5","stroke-linecap":"round"}),e.createElementVNode("path",{d:"M52.1582 24.0361L49.1582 21.0361",stroke:"#FF3E3E","stroke-width":"1.5","stroke-linecap":"round"}),e.createElementVNode("path",{d:"M60.502 24.0361L63.502 21.0361",stroke:"#FF3E3E","stroke-width":"1.5","stroke-linecap":"round"}),e.createElementVNode("path",{d:"M60.502 24.0361L63.502 21.0361",stroke:"#FF3E3E","stroke-width":"1.5","stroke-linecap":"round"}),e.createElementVNode("path",{d:"M60.502 24.0361L63.502 21.0361",stroke:"#FF3E3E","stroke-width":"1.5","stroke-linecap":"round"}),e.createElementVNode("path",{d:"M56.502 22.0361L56.502 18.0361",stroke:"#FF3E3E","stroke-width":"1.5","stroke-linecap":"round"}),e.createElementVNode("path",{d:"M56.502 22.0361L56.502 18.0361",stroke:"#FF3E3E","stroke-width":"1.5","stroke-linecap":"round"}),e.createElementVNode("path",{d:"M56.502 22.0361L56.502 18.0361",stroke:"#FF3E3E","stroke-width":"1.5","stroke-linecap":"round"}),e.createElementVNode("path",{d:"M52.1582 32.0361L49.1582 35.0361",stroke:"#FF3E3E","stroke-width":"1.5","stroke-linecap":"round"}),e.createElementVNode("path",{d:"M52.1582 32.0361L49.1582 35.0361",stroke:"#FF3E3E","stroke-width":"1.5","stroke-linecap":"round"}),e.createElementVNode("path",{d:"M52.1582 32.0361L49.1582 35.0361",stroke:"#FF3E3E","stroke-width":"1.5","stroke-linecap":"round"})])],-1)),Qo={class:"text mt-3"},qo={class:"box col"},Zo=ce(()=>e.createElementVNode("div",{class:"tutorial-icon d-flex align-items-center justify-center"},[e.createElementVNode("svg",{width:"100",height:"65",viewBox:"0 0 100 65",fill:"none",xmlns:"http://www.w3.org/2000/svg"},[e.createElementVNode("path",{d:"M36 33H64V43C64 50.732 57.732 57 50 57V57C42.268 57 36 50.732 36 43V33Z",fill:"white",stroke:"black","stroke-width":"1.5"}),e.createElementVNode("path",{d:"M36 28C36 20.268 42.268 14 50 14V14V33H36V28Z",fill:"white",stroke:"black","stroke-width":"1.5"}),e.createElementVNode("path",{d:"M64 28C64 20.268 57.732 14 50 14V14V33H64V28Z",fill:"white",stroke:"black","stroke-width":"1.5"}),e.createElementVNode("path",{d:"M53.25 26V33C53.25 34.7949 51.7949 36.25 50 36.25C48.2051 36.25 46.75 34.7949 46.75 33V26C46.75 24.2051 48.2051 22.75 50 22.75C51.7949 22.75 53.25 24.2051 53.25 26Z",fill:"#FF3E3E",stroke:"black","stroke-width":"1.5"}),e.createElementVNode("path",{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M74.5352 20.7593L80.3458 26.5699C80.9316 27.1557 80.9316 28.1055 80.3458 28.6913C79.76 29.277 78.8103 29.277 78.2245 28.6913L72.4138 22.8806L74.5352 20.7593Z",fill:"black",stroke:"black","stroke-width":"1.5","stroke-linecap":"round"}),e.createElementVNode("circle",{cx:"66.5",cy:"15.5",r:"9.75",fill:"white",stroke:"black","stroke-width":"1.5"}),e.createElementVNode("rect",{x:"66",y:"11",width:"1",height:"9",fill:"black",stroke:"black","stroke-width":"0.75","stroke-linejoin":"round"}),e.createElementVNode("rect",{x:"71",y:"15",width:"1",height:"9",transform:"rotate(90 71 15)",fill:"black",stroke:"black","stroke-width":"0.75","stroke-linejoin":"round"})])],-1)),Xo={class:"text mt-3"},Ko={class:"d-inline-flex space-around"},Jo={class:"box col"},en=ce(()=>e.createElementVNode("div",{class:"tutorial-icon d-flex align-items-center justify-center"},[e.createElementVNode("svg",{width:"100",height:"65",viewBox:"0 0 100 65",fill:"none",xmlns:"http://www.w3.org/2000/svg"},[e.createElementVNode("rect",{x:"65.0967",y:"34.3228",width:"20.9032",height:"20.9032",rx:"2",fill:"white",stroke:"black","stroke-width":"1.5"}),e.createElementVNode("rect",{x:"39.5488",y:"29.6777",width:"20.9032",height:"20.9032",rx:"2",transform:"rotate(-90 39.5488 29.6777)",fill:"white",stroke:"black","stroke-width":"1.5"}),e.createElementVNode("rect",{x:"60.4512",y:"34.3228",width:"20.9032",height:"20.9032",rx:"2",transform:"rotate(90 60.4512 34.3228)",fill:"white",stroke:"black","stroke-width":"1.5"}),e.createElementVNode("rect",{x:"34.9033",y:"55.2261",width:"20.9032",height:"20.9032",rx:"2",transform:"rotate(-180 34.9033 55.2261)",fill:"white",stroke:"black","stroke-width":"1.5"}),e.createElementVNode("path",{d:"M77.7025 44.3796C77.9599 44.5798 77.9599 44.9688 77.7025 45.169L74.6621 47.5338C74.3337 47.7892 73.8551 47.5552 73.8551 47.1391L73.8551 42.4095C73.8551 41.9935 74.3337 41.7594 74.6621 42.0149L77.7025 44.3796Z",fill:"#FF3E3E"}),e.createElementVNode("path",{d:"M49.6047 17.0724C49.8049 16.815 50.1939 16.815 50.3941 17.0724L52.7589 20.1128C53.0143 20.4412 52.7803 20.9198 52.3642 20.9198L47.6346 20.9198C47.2185 20.9198 46.9845 20.4412 47.2399 20.1128L49.6047 17.0724Z",fill:"#FF3E3E"}),e.createElementVNode("path",{d:"M50.3953 46.9281C50.1951 47.1855 49.8061 47.1855 49.6059 46.9281L47.2411 43.8877C46.9857 43.5592 47.2197 43.0807 47.6358 43.0807L52.3654 43.0807C52.7815 43.0807 53.0155 43.5592 52.7601 43.8877L50.3953 46.9281Z",fill:"#FF3E3E"}),e.createElementVNode("path",{d:"M22.2975 45.1692C22.0401 44.969 22.0401 44.58 22.2975 44.3798L25.3379 42.0151C25.6663 41.7596 26.1449 41.9937 26.1449 42.4097L26.1449 47.1393C26.1449 47.5554 25.6663 47.7894 25.3379 47.534L22.2975 45.1692Z",fill:"#FF3E3E"})])],-1)),tn={class:"text mt-3"},on={key:1,class:"d-flex flex-column tablet-mobile-content"},nn={class:"box horizontal mt-3"},an=ce(()=>e.createElementVNode("div",{class:"tutorial-icon d-flex align-items-center justify-center"},[e.createElementVNode("svg",{width:"101",height:"65",viewBox:"0 0 101 65",fill:"none",xmlns:"http://www.w3.org/2000/svg"},[e.createElementVNode("path",{d:"M68 28H87.9736M87.9736 28L82 34M87.9736 28L82 22",stroke:"#FF3E3E","stroke-width":"1.5","stroke-linecap":"round","stroke-linejoin":"round"}),e.createElementVNode("path",{d:"M33.9727 28H13.999M13.999 28L19.9727 34M13.999 28L19.9727 22",stroke:"#FF3E3E","stroke-width":"1.5","stroke-linecap":"round","stroke-linejoin":"round"}),e.createElementVNode("path",{d:"M57.3126 51.1276L62.5533 49.7234C65.3195 48.9822 67.2473 46.4813 67.2601 43.6176C67.2626 43.0532 67.1898 42.4909 67.0438 41.9457L64.9992 34.3153C64.7491 33.3818 63.7895 32.8278 62.8559 33.0779C61.9223 33.328 61.3683 34.2876 61.6185 35.2212L61.0361 33.0479C60.7502 31.9809 59.6536 31.3478 58.5866 31.6337C57.5197 31.9195 56.8865 33.0162 57.1724 34.0831L56.7195 32.3928C56.3979 31.1925 55.1641 30.4802 53.9638 30.8018C52.7635 31.1234 52.0512 32.3572 52.3728 33.5575L50.6258 27.0375C50.3399 25.9705 49.2432 25.3374 48.1763 25.6233C47.1094 25.9091 46.4762 27.0058 46.7621 28.0727L50.3855 41.5957C49.2796 40.7276 47.5926 39.524 46.3279 38.6369C45.3814 37.9729 44.0801 38.2068 43.4137 39.1516C42.8107 40.0066 42.9238 41.1741 43.6798 41.8975L51.8691 49.7332C53.3154 51.1171 55.3791 51.6457 57.3126 51.1276Z",fill:"white"}),e.createElementVNode("path",{d:"M53.7316 38.6286L52.6963 34.7649M52.6963 34.7649L50.6258 27.0375C50.3399 25.9705 49.2432 25.3374 48.1763 25.6233V25.6233C47.1094 25.9091 46.4762 27.0058 46.7621 28.0727L50.3855 41.5957C49.2796 40.7276 47.5926 39.524 46.3279 38.6369C45.3814 37.9729 44.0801 38.2068 43.4137 39.1516V39.1516C42.8107 40.0066 42.9238 41.1741 43.6798 41.8975L51.8691 49.7332C53.3154 51.1171 55.3791 51.6457 57.3126 51.1276L62.5533 49.7234C65.3195 48.9822 67.2473 46.4813 67.2601 43.6176V43.6176C67.2626 43.0532 67.1898 42.4909 67.0438 41.9457L64.9992 34.3153C64.7491 33.3818 63.7895 32.8278 62.8559 33.0779V33.0779V33.0779C61.9223 33.328 61.3683 34.2876 61.6185 35.2212L61.942 36.4286M52.6963 34.7649L52.3728 33.5575C52.0512 32.3572 52.7635 31.1234 53.9638 30.8018V30.8018C55.1641 30.4802 56.3979 31.1925 56.7195 32.3928L57.3018 34.5661M58.2077 37.9469L57.3018 34.5661M57.3018 34.5661L57.1724 34.0831C56.8865 33.0162 57.5197 31.9195 58.5866 31.6337V31.6337C59.6536 31.3478 60.7502 31.9809 61.0361 33.0479L61.942 36.4286M62.3302 37.8775L61.942 36.4286",stroke:"black","stroke-width":"1.5","stroke-linecap":"round","stroke-linejoin":"round"})])],-1)),ln={class:"text ml-2"},rn={class:"box horizontal mt-3"},sn=ce(()=>e.createElementVNode("div",{class:"tutorial-icon d-flex align-items-center justify-center"},[e.createElementVNode("svg",{width:"99",height:"65",viewBox:"0 0 99 65",fill:"none",xmlns:"http://www.w3.org/2000/svg"},[e.createElementVNode("path",{d:"M79.9927 29.9814C79.9871 22.2398 66.3311 15.9962 49.491 16.0358C32.651 16.0754 19.0039 22.3833 19.0095 30.1248C19.015 37.8663 32.6711 44.11 49.5111 44.0704C66.3512 44.0308 79.9982 37.7229 79.9927 29.9814Z",fill:"white",stroke:"#B3B3B3","stroke-width":"1.5"}),e.createElementVNode("path",{d:"M50.5 31L46.5 31",stroke:"#FF3E3E","stroke-width":"1.5","stroke-linecap":"round"}),e.createElementVNode("path",{d:"M50.5 31L46.5 31",stroke:"#FF3E3E","stroke-width":"1.5","stroke-linecap":"round"}),e.createElementVNode("path",{d:"M50.5 31L46.5 31",stroke:"#FF3E3E","stroke-width":"1.5","stroke-linecap":"round"}),e.createElementVNode("path",{d:"M66.5 31L62.5 31",stroke:"#FF3E3E","stroke-width":"1.5","stroke-linecap":"round"}),e.createElementVNode("path",{d:"M66.5 31L62.5 31",stroke:"#FF3E3E","stroke-width":"1.5","stroke-linecap":"round"}),e.createElementVNode("path",{d:"M66.5 31L62.5 31",stroke:"#FF3E3E","stroke-width":"1.5","stroke-linecap":"round"}),e.createElementVNode("path",{d:"M52.1562 27L49.1562 24",stroke:"#FF3E3E","stroke-width":"1.5","stroke-linecap":"round"}),e.createElementVNode("path",{d:"M52.1562 27L49.1562 24",stroke:"#FF3E3E","stroke-width":"1.5","stroke-linecap":"round"}),e.createElementVNode("path",{d:"M52.1562 27L49.1562 24",stroke:"#FF3E3E","stroke-width":"1.5","stroke-linecap":"round"}),e.createElementVNode("path",{d:"M60.5 27L63.5 24",stroke:"#FF3E3E","stroke-width":"1.5","stroke-linecap":"round"}),e.createElementVNode("path",{d:"M60.5 27L63.5 24",stroke:"#FF3E3E","stroke-width":"1.5","stroke-linecap":"round"}),e.createElementVNode("path",{d:"M60.5 27L63.5 24",stroke:"#FF3E3E","stroke-width":"1.5","stroke-linecap":"round"}),e.createElementVNode("path",{d:"M56.5 25L56.5 21",stroke:"#FF3E3E","stroke-width":"1.5","stroke-linecap":"round"}),e.createElementVNode("path",{d:"M56.5 25L56.5 21",stroke:"#FF3E3E","stroke-width":"1.5","stroke-linecap":"round"}),e.createElementVNode("path",{d:"M56.5 25L56.5 21",stroke:"#FF3E3E","stroke-width":"1.5","stroke-linecap":"round"}),e.createElementVNode("path",{d:"M52.1562 35L49.1562 38",stroke:"#FF3E3E","stroke-width":"1.5","stroke-linecap":"round"}),e.createElementVNode("path",{d:"M52.1562 35L49.1562 38",stroke:"#FF3E3E","stroke-width":"1.5","stroke-linecap":"round"}),e.createElementVNode("path",{d:"M52.1562 35L49.1562 38",stroke:"#FF3E3E","stroke-width":"1.5","stroke-linecap":"round"}),e.createElementVNode("path",{d:"M64.8126 54.1276L70.0533 52.7234C72.8195 51.9822 74.7473 49.4813 74.7601 46.6176C74.7626 46.0532 74.6898 45.4909 74.5438 44.9457L72.4992 37.3153C72.2491 36.3818 71.2895 35.8278 70.3559 36.0779C69.4223 36.328 68.8683 37.2876 69.1185 38.2212L68.5361 36.0479C68.2502 34.9809 67.1536 34.3478 66.0866 34.6337C65.0197 34.9195 64.3865 36.0162 64.6724 37.0831L64.2195 35.3928C63.8979 34.1925 62.6641 33.4802 61.4638 33.8018C60.2635 34.1234 59.5512 35.3572 59.8728 36.5575L58.1258 30.0375C57.8399 28.9705 56.7432 28.3374 55.6763 28.6233C54.6094 28.9091 53.9762 30.0058 54.2621 31.0727L57.8855 44.5957C56.7796 43.7276 55.0926 42.524 53.8279 41.6369C52.8814 40.9729 51.5801 41.2068 50.9137 42.1516C50.3107 43.0066 50.4238 44.1741 51.1798 44.8975L59.3691 52.7332C60.8154 54.1171 62.8791 54.6457 64.8126 54.1276Z",fill:"white"}),e.createElementVNode("path",{d:"M61.2316 41.6286L60.1963 37.7649M60.1963 37.7649L58.1258 30.0375C57.8399 28.9705 56.7432 28.3374 55.6763 28.6233V28.6233C54.6094 28.9091 53.9762 30.0058 54.2621 31.0727L57.8855 44.5957C56.7796 43.7276 55.0926 42.524 53.8279 41.6369C52.8814 40.9729 51.5801 41.2068 50.9137 42.1516V42.1516C50.3107 43.0066 50.4238 44.1741 51.1798 44.8975L59.3691 52.7332C60.8154 54.1171 62.8791 54.6457 64.8126 54.1276L70.0533 52.7234C72.8195 51.9822 74.7473 49.4813 74.7601 46.6176V46.6176C74.7626 46.0532 74.6898 45.4909 74.5438 44.9457L72.4992 37.3153C72.2491 36.3818 71.2895 35.8278 70.3559 36.0779V36.0779V36.0779C69.4223 36.328 68.8683 37.2876 69.1185 38.2212L69.442 39.4286M60.1963 37.7649L59.8728 36.5575C59.5512 35.3572 60.2635 34.1234 61.4638 33.8018V33.8018C62.6641 33.4802 63.8979 34.1925 64.2195 35.3928L64.8018 37.5661M65.7077 40.9469L64.8018 37.5661M64.8018 37.5661L64.6724 37.0831C64.3865 36.0162 65.0197 34.9195 66.0866 34.6337V34.6337C67.1536 34.3478 68.2502 34.9809 68.5361 36.0479L69.442 39.4286M69.8302 40.8775L69.442 39.4286",stroke:"black","stroke-width":"1.5","stroke-linecap":"round","stroke-linejoin":"round"})])],-1)),cn={class:"text ml-2"},dn={class:"box horizontal mt-3"},mn=ce(()=>e.createElementVNode("div",{class:"tutorial-icon d-flex align-items-center justify-center"},[e.createElementVNode("svg",{width:"99",height:"65",viewBox:"0 0 99 65",fill:"none",xmlns:"http://www.w3.org/2000/svg"},[e.createElementVNode("path",{d:"M31 24.9736L31 10M31 10L25 15.9736M31 10L37 15.9736",stroke:"#FF3E3E","stroke-width":"1.5","stroke-linecap":"round","stroke-linejoin":"round"}),e.createElementVNode("path",{d:"M31 40L31 54.9736M31 54.9736L25 49M31 54.9736L37 49",stroke:"#FF3E3E","stroke-width":"1.5","stroke-linecap":"round","stroke-linejoin":"round"}),e.createElementVNode("path",{d:"M58.6512 44.3852L61.8162 42.5579C64.2963 41.126 65.5112 38.2114 64.7823 35.442C64.6387 34.8961 64.4229 34.3719 64.1407 33.883L60.1909 27.0418C59.7076 26.2048 58.6374 25.918 57.8003 26.4013C56.9633 26.8845 56.6765 27.9548 57.1598 28.7918L56.0348 26.8433C55.4825 25.8867 54.2593 25.5589 53.3027 26.1112C52.3462 26.6635 52.0184 27.8867 52.5707 28.8433L51.6957 27.3277C51.0744 26.2516 49.6983 25.8828 48.6221 26.5042C47.546 27.1255 47.1773 28.5016 47.7986 29.5777L44.4236 23.7321C43.8713 22.7755 42.6481 22.4477 41.6915 23C40.7349 23.5523 40.4072 24.7755 40.9595 25.7321L48.4595 38.7224L41.0923 40.5062C40.3398 40.6884 39.7721 41.3073 39.6555 42.0728C39.4961 43.1196 40.2199 44.096 41.268 44.2476L49.7609 45.4766L51.251 45.7252C53.7985 46.1503 56.4146 45.6766 58.6512 44.3852Z",fill:"white"}),e.createElementVNode("path",{d:"M50.4236 34.1244L48.4236 30.6603M48.4236 30.6603L44.4236 23.7321C43.8713 22.7755 42.6481 22.4477 41.6915 23V23C40.7349 23.5523 40.4072 24.7755 40.9595 25.7321L48.4595 38.7224L41.0923 40.5062C40.3398 40.6884 39.7721 41.3073 39.6555 42.0728V42.0728C39.4961 43.1196 40.2199 44.096 41.268 44.2476L49.7609 45.4766L51.251 45.7252C53.7985 46.1503 56.4146 45.6766 58.6512 44.3852L61.8162 42.5579C64.2963 41.126 65.5112 38.2114 64.7823 35.442V35.442C64.6387 34.8961 64.4229 34.3719 64.1407 33.883L60.1909 27.0418C59.7076 26.2048 58.6374 25.918 57.8003 26.4013V26.4013V26.4013C56.9633 26.8845 56.6765 27.9548 57.1598 28.7918L57.7848 29.8744M48.4236 30.6603L47.7986 29.5777C47.1773 28.5016 47.546 27.1255 48.6221 26.5042V26.5042C49.6983 25.8828 51.0744 26.2516 51.6957 27.3277L52.8207 29.2763M54.5707 32.3074L52.8207 29.2763M52.8207 29.2763L52.5707 28.8433C52.0184 27.8867 52.3462 26.6635 53.3027 26.1112V26.1112C54.2593 25.5589 55.4825 25.8867 56.0348 26.8433L57.7848 29.8744M58.5348 31.1734L57.7848 29.8744",stroke:"black","stroke-width":"1.5","stroke-linecap":"round","stroke-linejoin":"round"})])],-1)),un={class:"text ml-2"},pn={class:"d-flex justify-space-between mt-3 mx-3 mb-0 tutorial-buttons"},fn=P(e.defineComponent({__name:"VTutorial",props:{project:{}},emits:["closeTutorial"],setup(s,{emit:o}){const t=s,a=o,l=e.inject("i18n"),n=e.ref(!0),i=e.ref(!1),r=e.computed(()=>[/Android/i,/webOS/i,/iPhone/i,/iPad/i,/iPod/i,/BlackBerry/i,/Windows Phone/i].some(_=>navigator.userAgent.match(_))),k=e.computed(()=>{const u=localStorage.getItem(`${t.project}-dont-show-tutorial`);return u&&a("closeTutorial"),u});function p(){i.value&&m(),n.value=!1,a("closeTutorial")}function m(){localStorage.setItem(`${t.project}-dont-show-tutorial`,"true")}return(u,_)=>{const v=e.resolveComponent("v-checkbox"),b=e.resolveComponent("v-btn");return e.openBlock(),e.createBlock(e.Transition,{name:"fade-transition"},{default:e.withCtx(()=>[n.value&&!k.value?(e.openBlock(),e.createElementBlock("div",Oo,[r.value?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("div",Ho,[e.createElementVNode("div",jo,[e.createElementVNode("div",Po,[zo,e.createElementVNode("div",Yo,e.toDisplayString(e.unref(l).getLabel("click-and-drag-to-look-around")),1)]),e.createElementVNode("div",Wo,[Go,e.createElementVNode("div",Qo,e.toDisplayString(e.unref(l).getLabel("click-on-the-circles-to-move-around")),1)]),e.createElementVNode("div",qo,[Zo,e.createElementVNode("div",Xo,e.toDisplayString(e.unref(l).getLabel("use-the-mouse-wheel-to-zoom")),1)])]),e.createElementVNode("div",Ko,[e.createElementVNode("div",Jo,[en,e.createElementVNode("div",tn,e.toDisplayString(e.unref(l).getLabel("you-can-also-use-the-arrow-keys-to-move-around")),1)])])])),r.value?(e.openBlock(),e.createElementBlock("div",on,[e.createElementVNode("div",nn,[an,e.createElementVNode("div",ln,e.toDisplayString(e.unref(l).getLabel("tap-and-drag-to-look-around")),1)]),e.createElementVNode("div",rn,[sn,e.createElementVNode("div",cn,e.toDisplayString(e.unref(l).getLabel("tap-on-the-circles-to-move-around")),1)]),e.createElementVNode("div",dn,[mn,e.createElementVNode("div",un,e.toDisplayString(e.unref(l).getLabel("use-two-fingers-to-zoom")),1)])])):e.createCommentVNode("",!0),e.createElementVNode("div",pn,[e.createVNode(v,{modelValue:i.value,"onUpdate:modelValue":_[0]||(_[0]=C=>i.value=C),label:e.unref(l).getLabel("dont-show-again")},null,8,["modelValue","label"]),e.createVNode(b,{small:"",outlined:"",class:"mt-5",onClick:_[1]||(_[1]=C=>p())},{default:e.withCtx(()=>[e.createTextVNode("Ok")]),_:1})])])):e.createCommentVNode("",!0)]),_:1})}}}),[["__scopeId","data-v-53c0bb27"]]),hn=s=>(e.pushScopeId("data-v-a28b3f8d"),s=s(),e.popScopeId(),s),gn={class:"player-settings-ui"},kn={id:"settings-ui-form"},wn={class:"form-inputs"},vn={class:"setting-label"},Cn={class:"setting-label"},yn=["max","min","step"],bn={class:"setting-label"},_n={class:"flex-grow-1 flex-shrink-0"},Vn=["onUpdate:modelValue"],En={key:3,"d-block":"",class:"mt-3"},Bn={class:"d-flex justify-space-between"},Nn={class:"setting-label"},An={class:"mt-5 d-block",style:{width:"300px"}},Ln=hn(()=>e.createElementVNode("div",{class:"setting-label"},"Enter Lut URL:",-1)),Sn={class:"d-block",style:{width:"300px"}},In={class:"form-buttons"},xn=P(e.defineComponent({__name:"VSettingsUI",props:{projectSlug:{},initialSettings:{}},emits:["updateSettings","saveSettings"],setup(s,{emit:o}){const t=s,a=o,l=e.ref(v(t.initialSettings));e.watch(l,()=>{i()},{deep:!0});const n=e.computed(()=>{let b={};for(const[C,E]of Object.entries(l.value))C==="whitePoint"?b[C]=m(E.value):b[C]=E.value;return b});function i(){a("updateSettings",n.value)}function r(){const b=document.createElement("a");b.href=URL.createObjectURL(new Blob([JSON.stringify(n.value,null,2)]));const C=`player-settings-${t.projectSlug}-${Date.now()}.json`;b.download=C,b.style.display="none",document.body.appendChild(b),b.click(),document.body.removeChild(b)}function k(){a("saveSettings",n.value)}function p(){l.value=v(),a("updateSettings",n.value)}function m(b){const C=parseInt(b.substr(1,2),16)/255,E=parseInt(b.substr(3,2),16)/255,L=parseInt(b.substr(5,2),16)/255;return[C,E,L]}function u(b){var C=b.toString(16);return C.length==1?"0"+C:C}function _([b,C,E]){return"#"+u(parseInt((b*255).toString()))+u(parseInt((C*255).toString()))+u(parseInt((E*255).toString()))}function v(b={}){const C=["Cool 5","Cool 10","Cool 15","Cool 20","Cool 25","Warm 20","Warm 25","Warm 10","Warm 15","Warm 5","bw"];let E={temperature:6500,targetLuminance:1,exposureFovScale:.6,UNREAL_BLOOM_ENABLED:!0,sharpenFilter_amount:.6,UNREAL_BLOOM_STRENGTH:.3,TRANSITION_MOVEMENT_SCALE:1.3,whitePoint:[1,1,1],lut:"",...b};return{exposureFovScale:{label:"Exposure Fov Scale",type:"slider",min:0,max:1,step:.01,value:E.exposureFovScale},targetLuminance:{label:"Target Luminance",type:"slider",min:0,max:15,step:.1,value:E.targetLuminance},sharpenFilter_amount:{label:"Sharpen Filter Amount",type:"slider",min:0,max:100,step:.1,value:E.sharpenFilter_amount},UNREAL_BLOOM_ENABLED:{label:"Enable Bloom?",type:"boolean",value:E.UNREAL_BLOOM_ENABLED},UNREAL_BLOOM_STRENGTH:{label:"Bloom Strength",type:"slider",min:0,max:1,step:.01,value:E.UNREAL_BLOOM_STRENGTH},TRANSITION_MOVEMENT_SCALE:{label:"Transition Movement Speed",type:"slider",min:.2,max:25,step:.1,value:E.TRANSITION_MOVEMENT_SCALE},temperature:{label:"Temperature / White Balance",type:"slider",min:1e3,max:12e3,step:1,value:E.temperature},whitePoint:{label:"White Point",type:"color",min:null,max:null,step:null,value:_(E.whitePoint)},lut:{label:"Lut",type:"lut",items:C.map(L=>({text:L,value:`https://cdn.visuado.com/luts/${L}.png`})),value:E.lut}}}return(b,C)=>{const E=e.resolveComponent("v-text-field"),L=e.resolveComponent("v-slider"),h=e.resolveComponent("v-checkbox"),y=e.resolveComponent("v-btn"),S=e.resolveComponent("v-select"),c=e.resolveComponent("v-icon");return e.openBlock(),e.createElementBlock("div",gn,[e.createElementVNode("form",kn,[e.createElementVNode("div",wn,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(l.value,(f,w,N)=>(e.openBlock(),e.createElementBlock("div",{key:N,"d-block":""},[f.type==="slider"?(e.openBlock(),e.createBlock(L,{key:0,modelValue:l.value[w].value,"onUpdate:modelValue":A=>l.value[w].value=A,onChange:i,max:f.max,min:f.min,step:f.step},{prepend:e.withCtx(()=>[e.createElementVNode("div",vn,e.toDisplayString(f.label),1)]),append:e.withCtx(()=>[e.createElementVNode("div",null,[e.createVNode(E,{modelValue:l.value[w].value,"onUpdate:modelValue":A=>l.value[w].value=A,"hide-details":"",dense:"",outlined:"",type:"number",max:f.max,min:f.min,step:f.step,style:{width:"90px"},onChange:i},null,8,["modelValue","onUpdate:modelValue","max","min","step"])])]),_:2},1032,["modelValue","onUpdate:modelValue","max","min","step"])):e.createCommentVNode("",!0),f.type==="boolean"?(e.openBlock(),e.createBlock(h,{key:1,modelValue:l.value[w].value,"onUpdate:modelValue":A=>l.value[w].value=A,onChange:i},{prepend:e.withCtx(()=>[e.createElementVNode("div",Cn,e.toDisplayString(f.label),1)]),append:e.withCtx(()=>[e.createElementVNode("div",null,e.toDisplayString(f.value),1)]),_:2},1032,["modelValue","onUpdate:modelValue"])):e.createCommentVNode("",!0),f.type==="color"?(e.openBlock(),e.createElementBlock("div",{key:2,class:"d-flex",max:f.max,min:f.min,step:f.step},[e.createElementVNode("div",bn,e.toDisplayString(f.label),1),e.createElementVNode("div",_n,[e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":A=>l.value[w].value=A,type:"color",onChange:i},null,40,Vn),[[e.vModelText,l.value[w].value]])]),e.createElementVNode("div",null,[e.createVNode(E,{modelValue:l.value[w].value,"onUpdate:modelValue":A=>l.value[w].value=A,"hide-details":"",dense:"",outlined:"",readonly:"",type:"text",style:{width:"90px"},onChange:i},null,8,["modelValue","onUpdate:modelValue"])])],8,yn)):e.createCommentVNode("",!0),f.type==="lut"?(e.openBlock(),e.createElementBlock("div",En,[e.createElementVNode("div",Bn,[e.createElementVNode("div",Nn,e.toDisplayString(f.label),1),e.createElementVNode("div",null,[e.createVNode(y,{class:"ml-2","x-small":"",onClick:A=>l.value[w].value=null},{default:e.withCtx(()=>[e.createTextVNode(" Clear Lut ")]),_:2},1032,["onClick"])])]),e.createElementVNode("div",null,[e.createElementVNode("div",An,[e.createElementVNode("div",null,[e.createVNode(S,{modelValue:l.value[w].value,"onUpdate:modelValue":A=>l.value[w].value=A,items:f.items,"item-title":"title","item-value":"value",dense:"",label:"Select Lut",onChange:i},null,8,["modelValue","onUpdate:modelValue","items"])])]),e.createElementVNode("div",null,[Ln,e.createElementVNode("div",Sn,[e.createElementVNode("div",null,[e.createVNode(E,{modelValue:l.value[w].value,"onUpdate:modelValue":A=>l.value[w].value=A,"hide-details":"",dense:"",type:"url",onChange:i},null,8,["modelValue","onUpdate:modelValue"])])])])])])):e.createCommentVNode("",!0)]))),128))]),e.createElementVNode("div",In,[e.createVNode(y,{onClick:C[0]||(C[0]=f=>p())},{default:e.withCtx(()=>[e.createTextVNode("Reset")]),_:1}),e.createVNode(y,{class:"ml-2",onClick:C[1]||(C[1]=f=>r())},{default:e.withCtx(()=>[e.createTextVNode(" Download Json "),e.createVNode(c,{color:"black darken-1"},{default:e.withCtx(()=>[e.createTextVNode("mdi-download")]),_:1})]),_:1}),e.createVNode(y,{class:"ml-2",onClick:C[2]||(C[2]=f=>k())},{default:e.withCtx(()=>[e.createTextVNode(" Save Settings "),e.createVNode(c,{color:"black darken-1"},{default:e.withCtx(()=>[e.createTextVNode("mdi-save")]),_:1})]),_:1})])])])}}}),[["__scopeId","data-v-a28b3f8d"]]),Mn={class:"rotation-marker-svg",viewBox:"0 0 40 40",xmlns:"http://www.w3.org/2000/svg"},Fn=e.createStaticVNode('<defs><radialGradient id="Gradient" cx="0" cy="0" r="0.9" fx="0" fy="0"><stop offset="0%" class="stop1"></stop><stop offset="60%" class="stop2"></stop><stop offset="90%" class="stop3"></stop></radialGradient><linearGradient id="LineGradient" gradientTransform="rotate(90)"><stop offset="0%" class="stop1"></stop><stop offset="75%" class="stop2"></stop><stop offset="100%" class="stop3"></stop></linearGradient></defs>',1),Dn=["transform"],Un=[e.createStaticVNode('<rect id="field-of-view-gradient" x="20" y="20" width="38" height="38" transform="rotate(0)" transform-origin="20 20" fill="url(#Gradient)"></rect><rect class="field-of-view-border" x="20" y="20" width="1" height="25" fill="url(#LineGradient)" transform="rotate(0)" transform-origin="20 20"></rect><rect class="field-of-view-border" x="19" y="19" width="1" height="25" fill="url(#LineGradient)" transform="rotate(-90)" transform-origin="20 20"></rect><circle cx="20" cy="20" r="5" fill="white"></circle><circle cx="20" cy="20" r="3" fill="red"></circle>',5)],Rn=e.defineComponent({__name:"VRotationMarker",props:{rotation:{}},setup(s){return(o,t)=>(e.openBlock(),e.createElementBlock("svg",Mn,[Fn,e.createElementVNode("g",{"transform-origin":"20 20",transform:`rotate(${45+o.rotation})`},Un,8,Dn)]))}}),Tn={class:"minimap-wrapper d-flex align-stretch justify-space-between"},$n={class:"minimap-container"},On=P(e.defineComponent({__name:"VMiniMapMap",props:{backgroundImage:{},allCameras:{},minimapCamera:{},currentCamera:{},rotation:{},transformAngle:{}},setup(s){const o=s,t=e.ref(512),a=e.ref(384),l=e.ref(new ae.Vector3),n=e.ref(new ae.Object3D),i=e.ref({}),r=e.ref(1),k=e.ref(),p=e.computed(()=>o.allCameras),m=e.computed(()=>o.allCameras.find(w=>w.id===o.currentCamera)),u=e.computed(()=>o.rotation),_=e.computed(()=>new ae.Vector3(o.minimapCamera.position.x,o.minimapCamera.position.y,o.minimapCamera.position.z)),v=e.computed(()=>parseFloat(m.value.floor_vertical_position)),b=e.computed(()=>p.value.map(w=>{const N=w.uposition.split(","),A=new ae.Vector3(N[0]-_.value.x,0,N[2]-_.value.z);return{...w,...S(l.value,A)}})),C=e.computed(()=>`background-image: url(${o.backgroundImage});`),E=e.computed(()=>{let w=r.value>1?1:r.value;return w<.8&&(w=.4),`scale: ${w>1?1:w}; transform: rotate(${o.transformAngle}deg);`});e.onMounted(()=>{c(),h(),f();const w=document.getElementById("moveableDiv");w&&(k.value=new ResizeObserver(f).observe(w))}),e.onBeforeUpdate(()=>{c(),h()}),e.onBeforeUnmount(()=>{k.value&&k.value.unobserve(document.getElementById("moveableDiv"))});function L(w){return ae.MathUtils.degToRad(w)}function h(){n.value.rotation.x=180,n.value.rotation.y=o.minimapCamera.rotation.y*-1,i.value={transform:`rotateZ(${n.value.rotation.y}deg) rotateX(${n.value.rotation.x}deg)`}}function y(w){return{top:`${Math.abs(w.top)}%`,left:`${Math.abs(w.left)}%`}}function S(w,N){var A=new ae.Vector3;const x=A.subVectors(w,N);return{relativePosition:x,left:x.x/t.value*100,top:x.z/a.value*100}}function c(){const w=o.minimapCamera.position.y-v.value;a.value=2*(w*Math.tan(L(o.minimapCamera.fovY/2))),t.value=512/384*a.value;const N=a.value/2,A=t.value/2,x=new ae.Vector3(A*-1,0,N*-1);l.value=x}function f(){const w=document.getElementById("moveableDiv");if(!w)return;const N=w.offsetHeight/384*.8,A=w.offsetWidth/512*.8;w.offsetHeight>w.offsetWidth?r.value=A*.5:r.value=N*.9}return(w,N)=>(e.openBlock(),e.createElementBlock("div",Tn,[e.createElementVNode("div",$n,[e.createElementVNode("div",{class:"web-minimap",style:e.normalizeStyle(E.value)},[e.createElementVNode("div",{class:"minimap-background-image",style:e.normalizeStyle(C.value)},null,4),e.createElementVNode("div",{class:"center-pivot",style:e.normalizeStyle(i.value)},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(b.value,A=>(e.openBlock(),e.createElementBlock("div",{key:A.id},[m.value.floorLevel===A.floorLevel?(e.openBlock(),e.createElementBlock("div",{key:0,class:"single-camera-marker",style:e.normalizeStyle(y(A))},null,4)):e.createCommentVNode("",!0),m.value.id===A.id?(e.openBlock(),e.createBlock(Rn,{key:1,class:"rotation-marker-component",rotation:u.value,style:e.normalizeStyle({...y(A)})},null,8,["rotation","style"])):e.createCommentVNode("",!0)]))),128))],4)],4)])]))}}),[["__scopeId","data-v-503cace2"]]),Hn=(s=>(e.pushScopeId("data-v-06db6e63"),s=s(),e.popScopeId(),s))(()=>e.createElementVNode("div",{id:"filler-div"},null,-1)),jn={class:"moveable-body",id:"moveableDivHeader"},Pn={class:"moveable-footer"},zn=P(e.defineComponent({__name:"VMoveable",emits:["close","transform"],setup(s,{emit:o}){const t=o,a=e.ref("big");e.onMounted(()=>{l(document.getElementById("moveableDiv"))});function l(i){const r=document.getElementById(i.id+"Header");if(!r)return;let k=0,p=0,m=0,u=0;r.addEventListener("touchstart",_,{passive:!1}),r.addEventListener("touchend",b,{passive:!1}),r.addEventListener("mousedown",_,{passive:!1}),r.addEventListener("mouseup",b,{passive:!1});function _(C){C=C||window.event,C.preventDefault();let E=C;C.type==="touchstart"&&(E=C.touches[0]),m=E.clientX,u=E.clientY,document.addEventListener("mouseup",b,{passive:!1}),document.addEventListener("touchend",b,{passive:!1}),document.addEventListener("mousemove",v,{passive:!1}),document.addEventListener("touchmove",v,{passive:!1})}function v(C){C=C||window.event,C.preventDefault();let E=C;C.type==="touchmove"&&(E=C.touches[0]),k=m-E.clientX,p=u-E.clientY,m=E.clientX,u=E.clientY,i.style.top=i.offsetTop-p+"px",i.style.left=i.offsetLeft-k+"px"}function b(){document.removeEventListener("mouseup",b,!1),document.removeEventListener("mousemove",v,!1),document.removeEventListener("touchend",b,!1),document.removeEventListener("touchmove",v,!1)}}function n(){a.value==="big"?a.value="small":a.value="big"}return(i,r)=>{const k=e.resolveComponent("v-btn");return e.openBlock(),e.createElementBlock("div",{id:"moveableDiv",class:e.normalizeClass(["big d-flex justify-space-between flex-column align-center sizer",a.value])},[e.createVNode(k,{class:"close-icon",icon:"mdi-window-close",size:"x-small",onClick:r[0]||(r[0]=p=>t("close"))}),e.createVNode(k,{class:"resize-icon",icon:"mdi-image-size-select-small",size:"x-small",onClick:n,title:"Resize"}),e.createVNode(k,{class:"rotate-icon",size:"x-small",icon:"mdi mdi-rotate-right",onClick:r[1]||(r[1]=p=>t("transform")),title:"Rotate"}),Hn,e.createElementVNode("div",jn,[e.renderSlot(i.$slots,"body",{class:"slot"},void 0,!0)]),e.createElementVNode("div",Pn,[e.renderSlot(i.$slots,"footer",{},void 0,!0)])],2)}}}),[["__scopeId","data-v-06db6e63"]]),Yn=P(e.defineComponent({__name:"VMinimapCompass",props:{scale:{},minimapCamera:{},transformAngle:{}},setup(s){const o=s,t=e.computed(()=>o.minimapCamera.rotation?o.minimapCamera.rotation.y+o.transformAngle-90:0);return(a,l)=>(e.openBlock(),e.createElementBlock("div",{class:"minimap-compass",style:e.normalizeStyle({scale:a.scale})},[e.createVNode(ye,{class:"north-indicator",longitude:t.value},null,8,["longitude"])],4))}}),[["__scopeId","data-v-cdeea259"]]),Wn={class:"ss-wrapper"},Gn={class:"slider"},Qn={class:"minimap-sun-slider"},qn={key:0,class:"time-label"},Zn=P(e.defineComponent({__name:"VSunSimulationSlider",props:{minimapJSON:{},level:{},root:{}},emits:["setBackgroundImage"],setup(s,{emit:o}){const t=s,a=o,l=e.ref(new Date().getHours()),n=e.ref(!0),i=e.ref(!0),r=e.ref(""),k=e.ref(new Map),p=e.inject("localMode"),m=e.inject("fileLoader"),u=e.computed(()=>t.minimapJSON[t.level]),_=e.computed(()=>`${Math.floor(l.value).toString().padStart(2,"0")}:00`),v=e.computed(()=>{if(u.value.sunsimFilesTimeStamps[l.value]){const y=u.value.sunsimFilesTimeStamps[l.value].split(" ");return`${y[0]} ${y[1]}`}return""});e.onMounted(async()=>{r.value=await E(u.value.sunsimFiles[l.value]),i.value=!1;const y=await C(t.minimapJSON);k.value=y,n.value=!1,a("setBackgroundImage",b(t.level,l.value))}),e.watch(l,()=>{const y=b(t.level,l.value);a("setBackgroundImage",y)}),e.watch(()=>t.level,()=>{a("setBackgroundImage",b(t.level,l.value))},{immediate:!0});function b(y,S){return k.value.get(`sunsim${y}_${S}`)?k.value.get(`sunsim${y}_${S}`):""}async function C(y){let S=new Map;for(let c=0;c<y.length;c++){const f=y[c].sunsimFiles;for(let w=0;w<f.length;w++){const N=f[w];try{const A=N,x=N.split("."),$=await E(t.root+A);S.set(x[0],$)}catch{continue}}}return S}async function E(y){let S=y;p&&(S=`${m.getURL(y)}`);const f=await(await fetch(S)).blob(),w=await h(f);return L(w)}function L(y){return"data:image/jpeg;base64,"+y}async function h(y){return new Promise((S,c)=>{const f=new FileReader;f.onload=()=>{const w=f.result.split(",")[1];S(w)},f.onerror=c,f.readAsDataURL(y)})}return(y,S)=>{const c=e.resolveComponent("v-progress-linear"),f=e.resolveComponent("v-icon"),w=e.resolveComponent("v-slider");return e.openBlock(),e.createElementBlock("div",Wn,[e.createElementVNode("div",Gn,[e.createElementVNode("div",Qn,[n.value?(e.openBlock(),e.createBlock(c,{key:0,indeterminate:"",rounded:"",height:"6",color:"grey lighten-1",class:"mr-2"})):(e.openBlock(),e.createBlock(w,{key:1,modelValue:l.value,"onUpdate:modelValue":S[0]||(S[0]=N=>l.value=N),min:0,max:23,step:1,color:"#373737","track-color":"#373737","thumb-color":"#373737","hide-details":!0},{prepend:e.withCtx(()=>[e.createVNode(f,{color:"#ffab02"},{default:e.withCtx(()=>[e.createTextVNode("mdi-white-balance-sunny")]),_:1})]),_:1},8,["modelValue"]))]),n.value?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("div",qn,e.toDisplayString(v.value)+" "+e.toDisplayString(_.value),1))])])}}}),[["__scopeId","data-v-daf8e1d9"]]),Ze=P(e.defineComponent({__name:"VMiniMap",props:{minimapJSON:{},rootUrl:{},backgroundImage:{},allCameras:{},minimapCamera:{},currentCamera:{},level:{},rotation:{}},emits:["setBackgroundImage","close"],setup(s,{emit:o}){const t=o,a=e.ref(0),l=e.computed(()=>{let r=1;return a.value!==0&&(Math.abs(a.value)%180===0?r=1:r=-1),r});function n(r){t("setBackgroundImage",r)}function i(){a.value=a.value+90}return(r,k)=>(e.openBlock(),e.createBlock(zn,{onClose:k[0]||(k[0]=p=>t("close")),onTransform:i},{body:e.withCtx(()=>[e.createVNode(Yn,{scale:l.value,minimapCamera:r.minimapCamera,transformAngle:a.value},null,8,["scale","minimapCamera","transformAngle"]),e.createElementVNode("div",null,[e.createVNode(On,{transformAngle:a.value,allCameras:r.allCameras,backgroundImage:r.backgroundImage,rotation:r.rotation,currentCamera:r.currentCamera,minimapCamera:r.minimapCamera},null,8,["transformAngle","allCameras","backgroundImage","rotation","currentCamera","minimapCamera"])])]),footer:e.withCtx(()=>[e.createVNode(Zn,{minimapJSON:r.minimapJSON,root:`${r.rootUrl}/minimap/`,level:r.level,onSetBackgroundImage:n},null,8,["minimapJSON","root","level"])]),_:1}))}}),[["__scopeId","data-v-b903220b"]]);class Xn{constructor(o,t){j(this,"_doc");j(this,"_elemId");j(this,"_state");this._doc=o,this._elemId=t,this._state={isActive:!1}}get isActive(){return this._state.isActive}setup(){const o=["fullscreenchange","webkitfullscreenchange","mozfullscreenchange","msfullscreenchange"],t=this._getElement();o.forEach(a=>{t.addEventListener(a,this._toggle.bind(this),!1)})}toggle(){this.isActive?this._exit():this._enter()}_enter(){const o=this._getElement(),t=o.requestFullscreen||o.webkitRequestFullscreen||o.mozRequestFullscreen||o.msRequestFullscreen;t&&t.apply(o)}_exit(){const o=this._doc.exitFullscreen||this._doc.webkitExitFullscreen||this._doc.mozExitFullscreen||this._doc.document.msExitFullscreen;o&&o.apply(document)}_getElement(){return this._doc.getElementById(this._elemId)}_toggle(){const o=!!(this._doc.fullscreenElement||this._doc.webkitFullscreenElement||this._doc.mozFullscreenElement||this._doc.msFullscreenElement);this._state.isActive=o}}function _e(s){return("0"+s).slice(-2)}function Kn(){const s=new Date;return[s.getFullYear().toString(),_e(s.getMonth()+1),_e(s.getDate())," ",_e(s.getHours()),_e(s.getMinutes()),_e(s.getSeconds())].join("")}function Jn(){return"Visuado-Snapshot-"+Kn()}class ea{constructor(o,t){j(this,"data");this.data=o}download(o=null){o=o||Jn();const t=document.createElement("a");typeof t.download=="string"?(document.body.appendChild(t),t.download=o,t.href=this.data,t.click(),document.body.removeChild(t)):location.replace(this.data)}}const ta={class:"virtual-tour-wrapper"},oa={key:0,class:"player-error"},na={class:"player-and-components-wrapper"},aa={key:1},la={key:3,class:"settings-panel"},ra={key:0,class:"compass-wrapper"},ia={key:1,class:"btn-placeholder mr-2"},sa={key:2,class:"btn-placeholder"},ca={key:0},Xe=P(e.defineComponent({__name:"VVirtualTour",props:{fileLoader:{},cdnRoot:{},projectSlug:{},apartmentId:{},defaultInteriorId:{},validInteriorIds:{default:()=>[]},viewModes:{default:()=>["virtualTour","slideShow"]},displayViewModeSwitch:{type:Boolean,default:!0},websiteUrl:{},i18n:{},showCarousel:{type:Boolean,default:!0},showTimeOfDay:{type:Boolean,default:!0},showCompass:{type:Boolean,default:!0},showFullScreen:{type:Boolean,default:!0},showSnapshot:{type:Boolean,default:!0},showShare:{type:Boolean,default:!0},showInteriorOptions:{type:Boolean,default:!0},showMiniMap:{type:Boolean,default:!0},showFloorLevel:{type:Boolean,default:!0},defaultWaypointIndex:{default:0},defaultViewMode:{default:"virtualTour"},mouseSensitivity:{default:1},isInIframe:{type:Boolean,default:!1},adminMode:{type:Boolean,default:!1},playerSettings:{default:()=>({temperature:6500,targetLuminance:1,exposureFovScale:.3,UNREAL_BLOOM_ENABLED:!0,sharpenFilter_amount:.6,UNREAL_BLOOM_STRENGTH:.3,TRANSITION_MOVEMENT_SCALE:1.3,whitePoint:[1,1,1]})}},emits:["onSnapshot","saveSettings","onInteriorUpdate","onCameraUpdate"],setup(s,{emit:o}){const t=s,a=o,l=e.ref(!1),n=e.ref(!1),i=e.ref(),r=e.ref(),k=e.ref(),p=e.ref(),m=e.ref(),u=e.ref(0),_=e.ref(),v=e.ref(),b=e.ref(),C=e.ref(0),E=e.ref(0),L=e.ref(0),h=e.ref(!1),y=e.ref(!1),S=e.ref(),c=e.ref(!1),f=e.ref(new Xn(document,"player-wrapper")),w=e.computed(()=>!!t.fileLoader),N=e.computed(()=>{let d=`${t.cdnRoot}/${t.projectSlug}`;return t.fileLoader&&(d=""),va(d)}),A=e.computed(()=>`${N.value}/${x.value}/${t.apartmentId}`),x=e.computed(()=>_.value),$=e.computed(()=>r.value?r.value.cameras:[]),z=e.computed(()=>{if(r.value){const d=r.value.cameras.map(T=>T.floorLevel);let I=[...new Set(d)];return I=I.sort(),I}else return[]}),g=e.computed(()=>{let d=0;if(r.value){const I=r.value.cameras.map(ke=>ke.floorLevel);let T=[...new Set(I)];T=T.sort();const W=T.findIndex(ke=>ke===E.value);W!==-1&&(d=W)}return d}),B=e.computed(()=>U.value.findIndex(d=>d.archetypeID===_.value)),R=e.computed(()=>k.value?k.value.cameras.map(d=>({...d,thumbnailUrl:He(`${N.value}/${x.value}/${t.apartmentId}/thumbs/200/${d.id}.jpg`),imageUrl:He(`${N.value}/${x.value}/${t.apartmentId}/images/1600/${d.id}.jpg`)})):[]),V=e.computed(()=>!R.value||!R.value[u.value]?"":R.value[u.value].imageUrl),U=e.computed(()=>{let d=[];return i.value&&(d=i.value.archetypes),t.validInteriorIds.length?d.filter(I=>t.validInteriorIds.includes(I.archetypeID)):d}),O=e.computed(()=>k.value?U.value.map(d=>({...d,url:`${N.value}/${d.archetypeID}/${t.apartmentId}/thumbs/200/${R.value[u.value].id}.jpg`})):[]),H=e.computed(()=>{if(p.value)return p.value.storeys[g.value]}),Y=e.computed(()=>r.value&&r.value.timeInHours),Q=e.computed(()=>{if(r.value&&r.value.timeInHours&&t.showTimeOfDay)return wa(r.value.timeInHours)}),q=e.computed(()=>S.value?S.value:`${N.value}/${x.value}/${t.apartmentId}/minimap/sunsim0_13.jpg`);e.provide("i18n",t.i18n?new te(t.i18n.labels,t.i18n.language):new te),e.provide("localMode",w.value),e.provide("fileLoader",t.fileLoader),e.watch([()=>t.projectSlug,()=>t.cdnRoot],async()=>{await Z(),K(),await X()}),e.watch(()=>t.defaultViewMode,d=>{d==="virtualTour"&&(h.value=!1),d==="slideShow"&&(h.value=!0,c.value=!0)},{immediate:!0}),e.watch(p,d=>{if(d.storeys[g.value]){const I=d.storeys[g.value].defaultSunsimFile;S.value=`${N.value}/${x.value}/${t.apartmentId}/minimap/${I}`}}),e.onMounted(async()=>{try{await Z(),K(),await X(),f.value.setup(),de()}catch{n.value=!0}});async function Z(){i.value=await me(N.value)}async function X(){if(r.value=await Ve(N.value,x.value,t.apartmentId),r.value&&(v.value=r.value.cameras.find(()=>!0).id),k.value=await ge(N.value,x.value,t.apartmentId),k.value){let d=t.defaultWaypointIndex!==null?t.defaultWaypointIndex:0;u.value=d,v.value=k.value.cameras[d].id,b.value=k.value.cameras[d].id}t.showMiniMap&&(p.value=await Se(N.value,x.value,t.apartmentId))}function K(){let d=t.defaultInteriorId;d||(d=i.value.defaultArchetypeID),t.validInteriorIds.length&&!t.validInteriorIds.includes(d)&&(d=t.validInteriorIds[0]),d||(d=i.value.archetypes[0].archetypeID),_.value=d}function de(){const d=document.getElementById("main-canvas");d.addEventListener("touchmove",I,{passive:!1});function I(W){W.preventDefault(),window.scrollBy(0,0)}d.addEventListener("mouseenter",()=>{document.addEventListener("wheel",T,{passive:!1})},{passive:!1}),d.addEventListener("mouseleave",()=>{document.removeEventListener("wheel",T)},{passive:!1});function T(W){W.preventDefault(),window.scrollBy(0,0)}}async function me(d){try{return await Ie(`${d}/config.json`)}catch(I){console.error("Error loading config.json - ",`${d}/config.json`,I);return}}async function Ve(d,I,T){try{return await Ie(`${d}/${I}/${T}/apartment.json`)}catch(W){console.error("Error loading apartment.json - ",`${d}/${I}/${T}/apartment.json`,W);return}}async function ge(d,I,T){try{return await Ie(`${d}/${I}/${T}/thumbs.json`)}catch{console.error("Error loading thumbs.json - ",`${d}/${I}/${T}/thumbs.json`);return}}async function Se(d,I,T){try{return await Ie(`${d}/${I}/${T}/minimap/minimap.json`)}catch{console.error("Error loading minimap.json - ",`${d}/${I}/${T}/minimap/minimap.json`);return}}function ne(){let d=u.value+1;d>=R.value.length&&(d=0),u.value=d,F(R.value[u.value].id)}function Ee(){let d=u.value-1;d<0&&(d=R.value.length-1),u.value=d,F(R.value[u.value].id)}function M(d,I=!0){let T=R.value.findIndex(W=>W.id===d);T!=-1&&(u.value=T,I&&F(d))}function F(d){v.value=d}function G(d){_.value=d,a("onInteriorUpdate",d),a("onCameraUpdate",b.value,r.value)}function ue(d){M(d,!1),b.value=d,a("onCameraUpdate",d,r.value)}function pe(d){C.value=d}function fe(d){E.value=d}function J(d){L.value=d}function ee(d,I){}function Ke(d){m.value=d,t.playerSettings&&m.value.updateSettings(t.playerSettings)}function pa(){f.value.toggle(),window.scrollTo({top:150,behavior:"smooth"})}function fa(){h.value=!h.value}function Je(d){S.value=d}async function ha(){const d=180/Math.PI,I=await m.value.takePhoto(),T=m.value.getRotationEuler(),W=m.value.getCurrentCamera(),ke=new ea(I,W),Ca=[T.x*d,T.y*d,T.z*d];return a("onSnapshot",ke,Ca),ke}function He(d){let I=d;return w.value?I=`${t.fileLoader.getURL(d)}`:t.adminMode&&(I=I+`?v=${Date.now()}`),I}async function Ie(d){const I=He(d);try{return(await oe.get(I)).data}catch(T){throw new Error(T)}}function ga(d){m.value.updateSettings(d)}function ka(d){a("saveSettings",d)}function wa(d){if(d===void 0)return null;const I=Math.floor(d),T=Math.floor((I-d)*60);return{hours:I,minutes:T}}function va(d){return d.replace(/\/$/,"")}return(d,I)=>{const T=e.resolveComponent("v-btn");return e.openBlock(),e.createElementBlock("div",ta,[n.value?(e.openBlock(),e.createElementBlock("div",oa,"Error loading the player!!")):e.createCommentVNode("",!0),e.createElementVNode("div",na,[!f.value.isActive&&p.value&&b.value&&H.value&&y.value?(e.openBlock(),e.createBlock(Ze,{key:0,allCameras:$.value,rootUrl:A.value,level:g.value,backgroundImage:q.value,minimapJSON:p.value.storeys,rotation:C.value,currentCamera:b.value,minimapCamera:H.value,onClose:I[0]||(I[0]=W=>y.value=!1),onSetBackgroundImage:Je},null,8,["allCameras","rootUrl","level","backgroundImage","minimapJSON","rotation","currentCamera","minimapCamera"])):e.createCommentVNode("",!0),x.value&&v.value?(e.openBlock(),e.createElementBlock("div",aa,[e.createVNode(po,{ref:"player","file-loader":d.fileLoader,style:e.normalizeStyle({zIndex:h.value?1:2}),showStaticImage:h.value,isFullScreen:f.value.isActive,rootUrl:A.value,currentCameraId:v.value,"mouse-sensitivity":d.mouseSensitivity,"is-in-iframe":d.isInIframe,onNewCameraCallback:ue,onNewRotationCallback:pe,onNewFloorCallback:fe,onNewFovCallback:J,onNewSizeCallback:ee,onPlayerApiCallback:Ke},{"slideshow-image":e.withCtx(()=>[h.value?(e.openBlock(),e.createBlock(Lo,{key:0,image:V.value},null,8,["image"])):e.createCommentVNode("",!0)]),"top-left":e.withCtx(()=>[d.adminMode?e.withDirectives((e.openBlock(),e.createBlock(T,{key:0,density:"comfortable",icon:"mdi-cog-outline",elevation:"3",class:"mr-2",onClick:I[1]||(I[1]=W=>l.value=!l.value)},null,512)),[[e.vShow,c.value]]):e.createCommentVNode("",!0),p.value&&v.value&&H.value?e.withDirectives((e.openBlock(),e.createBlock(T,{key:1,density:"comfortable",elevation:"3",icon:"mdi-floor-plan",class:"mr-2",onClick:I[2]||(I[2]=W=>y.value=!y.value)},null,512)),[[e.vShow,c.value]]):e.createCommentVNode("",!0),c.value&&d.showFloorLevel&&z.value.length>1?(e.openBlock(),e.createBlock(yo,{key:2,level:E.value,"floor-levels":z.value,onLevel:fe},null,8,["level","floor-levels"])):e.createCommentVNode("",!0),c.value&&d.adminMode&&l.value?(e.openBlock(),e.createElementBlock("div",la,[e.createVNode(xn,{"project-slug":d.projectSlug,initialSettings:d.playerSettings,onUpdateSettings:ga,onSaveSettings:ka},null,8,["project-slug","initialSettings"])])):e.createCommentVNode("",!0)]),"top-center":e.withCtx(()=>[c.value?(e.openBlock(),e.createBlock($o,{key:0,"return-url":d.websiteUrl},null,8,["return-url"])):e.createCommentVNode("",!0)]),"top-right":e.withCtx(()=>[r.value&&d.showCompass?e.withDirectives((e.openBlock(),e.createElementBlock("div",ra,[e.createVNode(No,{rotation:C.value},null,8,["rotation"])],512)),[[e.vShow,c.value]]):e.createCommentVNode("",!0),c.value&&r.value&&Y.value&&d.showTimeOfDay?(e.openBlock(),e.createBlock(Fo,{key:1,hours:Q.value.hours,minutes:Q.value.minutes},null,8,["hours","minutes"])):e.createCommentVNode("",!0)]),"center-left":e.withCtx(()=>[e.createVNode(e.Transition,{name:"slide-x-transition"},{default:e.withCtx(()=>[h.value?(e.openBlock(),e.createBlock(T,{key:0,density:"comfortable",elevation:"3",icon:"mdi-chevron-left",onClick:Ee})):e.createCommentVNode("",!0)]),_:1})]),"center-center":e.withCtx(()=>[e.createVNode(fn,{project:N.value,onCloseTutorial:I[3]||(I[3]=W=>c.value=!0)},null,8,["project"]),f.value.isActive&&p.value&&b.value&&H.value&&y.value?(e.openBlock(),e.createBlock(Ze,{key:0,allCameras:$.value,rootUrl:A.value,minimapJSON:p.value.storeys,backgroundImage:q.value,rotation:C.value,currentCamera:b.value,minimapCamera:H.value,level:g.value,onClose:I[4]||(I[4]=W=>y.value=!1),onSetBackgroundImage:Je},null,8,["allCameras","rootUrl","minimapJSON","backgroundImage","rotation","currentCamera","minimapCamera","level"])):e.createCommentVNode("",!0)]),"center-right":e.withCtx(()=>[e.createVNode(e.Transition,{name:"slide-x-reverse-transition"},{default:e.withCtx(()=>[h.value?(e.openBlock(),e.createBlock(T,{key:0,density:"comfortable",elevation:"3",icon:"mdi-chevron-right",onClick:ne})):e.createCommentVNode("",!0)]),_:1})]),"bottom-left":e.withCtx(()=>[c.value&&d.showFullScreen?(e.openBlock(),e.createBlock(Uo,{key:0,isFullScreen:f.value.isActive,class:"btn-fullscreen",onToggleFullscreen:pa},null,8,["isFullScreen"])):e.createCommentVNode("",!0),c.value&&d.showSnapshot?(e.openBlock(),e.createElementBlock("div",ia,[e.createVNode(T,{density:"comfortable",elevation:"3",icon:"mdi-camera",onClick:ha})])):e.createCommentVNode("",!0),c.value&&d.showShare&&!f.value.isActive?(e.openBlock(),e.createElementBlock("div",sa,[e.createVNode(_o)])):e.createCommentVNode("",!0)]),"bottom-center":e.withCtx(()=>[c.value&&d.showCarousel?(e.openBlock(),e.createElementBlock("div",ca,[d.displayViewModeSwitch?(e.openBlock(),e.createBlock(Ro,{key:0,"show-static-image":h.value,onToggle:fa},null,8,["show-static-image"])):e.createCommentVNode("",!0),c.value&&f.value.isActive?(e.openBlock(),e.createBlock(qe,{key:1,class:e.normalizeClass([f.value.isActive?"full-screen":""]),thumbnails:R.value,active:u.value,onNext:ne,onPrevious:Ee,onGoto:M},null,8,["class","thumbnails","active"])):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0)]),"bottom-right":e.withCtx(()=>[c.value&&d.showInteriorOptions&&O.value?(e.openBlock(),e.createBlock(Vo,{key:0,availableArchetypes:O.value,selectedIndex:B.value,onSelectInterior:G},null,8,["availableArchetypes","selectedIndex"])):e.createCommentVNode("",!0)]),_:1},8,["file-loader","style","showStaticImage","isFullScreen","rootUrl","currentCameraId","mouse-sensitivity","is-in-iframe"]),d.showCarousel&&k.value?(e.openBlock(),e.createBlock(qe,{key:0,thumbnails:R.value,active:u.value,onNext:ne,onPrevious:Ee,onGoto:M},null,8,["thumbnails","active"])):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0)])])}}}),[["__scopeId","data-v-8e6a405e"]]),da=Object.freeze(Object.defineProperty({__proto__:null,VApartmentChooser:Ge,VApartmentChooserNavigation:Fe,VApartmentChooserRaster:xe,VApartmentChooserRotator:De,VApartmentChooserSvg:Me,VBuildingChooser:Qe,VBuildingChooserRaster:Oe,VBuildingChooserRasterOverlay:$e,VBuildingChooserSceneImageStack:Le,VBuildingChooserSunSimControl:Ae,VBuildingChooserSvg:Te,VFloatingCard:ve,VHoverProbe:re,VNorthDirection:ye,VVirtualTour:Xe,VZoomBox:Ce},Symbol.toStringTag,{value:"Module"}));class ma{constructor(o){j(this,"_data");this._data=o}getPixel(o,t){const a=this._data[o][t];if(a!==" "){const l=Number.parseInt(a);return[l,l,l,255]}else return[0,0,0,0]}}const ua=function(o){Object.entries(da).forEach(([t,a])=>{o.component(t,a)})};D.BatchLoadTracker=Be,D.BuildingMap=ie,D.BuildingPickerResourceProvider=Re,D.BuildingViewerModel=We,D.CanvasRaster=se,D.DayOfYearSelector=be,D.I18N=te,D.ResourceLoader=le,D.RotationStep=Ne,D.SampleRaster=ma,D.SceneRotator=Pe,D.VApartmentChooser=Ge,D.VApartmentChooserNavigation=Fe,D.VApartmentChooserRaster=xe,D.VApartmentChooserRotator=De,D.VApartmentChooserSvg=Me,D.VBuildingChooser=Qe,D.VBuildingChooserRaster=Oe,D.VBuildingChooserRasterOverlay=$e,D.VBuildingChooserSceneImageStack=Le,D.VBuildingChooserSunSimControl=Ae,D.VBuildingChooserSvg=Te,D.VFloatingCard=ve,D.VHoverProbe=re,D.VNorthDirection=ye,D.VVirtualTour=Xe,D.VZoomBox=Ce,D.default=ua,Object.defineProperties(D,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});
|
|
1
|
+
(function(G,e){typeof exports=="object"&&typeof module<"u"?e(exports,require("vue"),require("axios"),require("@qispace/player-core"),require("three")):typeof define=="function"&&define.amd?define(["exports","vue","axios","@qispace/player-core","three"],e):(G=typeof globalThis<"u"?globalThis:G||self,e(G["vue3-player"]={},G.Vue,G.axios,G.PlayerCore,G.THREE))})(this,function(G,e,te,Ye,We){"use strict";var va=Object.defineProperty;var Ca=(G,e,te)=>e in G?va(G,e,{enumerable:!0,configurable:!0,writable:!0,value:te}):G[e]=te;var P=(G,e,te)=>(Ca(G,typeof e!="symbol"?e+"":e,te),te);function Ie(s){const o=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(s){for(const t in s)if(t!=="default"){const a=Object.getOwnPropertyDescriptor(s,t);Object.defineProperty(o,t,a.get?a:{enumerable:!0,get:()=>s[t]})}}return o.default=s,Object.freeze(o)}const Ge=Ie(Ye),ae=Ie(We);class me{async loadJson(o){return(await te.get(o)).data}async loadImage(o){return new Promise((t,a)=>{const l=new Image;l.crossOrigin="anonymous",l.onload=()=>{t(l)},l.onerror=a,l.src=o})}async loadImageData(o){const t=await this.loadImage(o),a=document.createElement("canvas");try{const l=a.getContext("2d");return a.width=t.width,a.height=t.height,l.drawImage(t,0,0),a.toDataURL("image/png")}finally{a.remove()}}}const Qe=e.defineComponent({__name:"VHoverProbe",setup(s,{expose:o}){const t=e.ref(),a=e.computed(()=>window.getComputedStyle(t.value).display==="none");return o({isHoverEnabled:a}),(l,n)=>(e.openBlock(),e.createElementBlock("div",{ref_key:"hoverCheck",ref:t,class:"hover-check"},null,512))}}),H=(s,o)=>{const t=s.__vccOpts||s;for(const[a,l]of o)t[a]=l;return t},ke=H(Qe,[["__scopeId","data-v-eb9b348d"]]),qe=H(e.defineComponent({__name:"VApartmentChooserRaster",props:{cdnFileResolver:{},viewModel:{},selectedUnitId:{},unitCallback:{type:Function,default:s=>s},canGoToUnitCallback:{type:Function,default:()=>!0},sceneData:{default:()=>[]},colorCallback:{type:Function,default:()=>({r:108,g:0,b:108,a:144,s:2})},drawObserver:{}},emits:["selectUnit","goToUnit","hoverOver","hoverOut","pos"],setup(s,{emit:o}){const t=s,a=o,l=e.ref({x:0,y:0,width:0,height:0}),n=e.ref(null),i=e.ref(0),r=e.ref(0),k=e.ref(null),p=e.ref(null),m=e.ref(null),u=e.ref(null),_=e.ref(-1),v=e.ref(!1),b=e.ref(null),C=e.ref(null),V=e.ref({}),L=e.ref("auto"),h=e.ref(null),y=e.ref(void 0),S=e.ref(new me),c=e.ref({}),f=e.ref(),w=e.ref(),N=e.ref(),A=e.computed(()=>f.value.isHoverEnabled),I=e.computed(()=>t.cdnFileResolver(`/scenedata${t.viewModel.currentScene}.png`)),R=e.computed(()=>I.value in V.value?V.value[I.value]:null),j=e.computed(()=>{if(_.value<0)return!1;const M=t.sceneData.find(F=>F.index===_.value);return M?t.unitCallback?t.unitCallback(M.apartmentId):M.apartmentId:!1}),g=e.computed(()=>({width:i.value+"px",height:r.value+"px",cursor:L.value})),B=e.computed(()=>`hover-${v.value?"over":"out"}-${j.value?typeof j.value=="object"&&"unitId"in j.value?j.value.unitId:j.value:""}`);e.watch(I,()=>{V.value[I.value]||S.value.loadImageData(I.value).then(M=>{V.value={...V.value,[I.value]:M}})},{immediate:!0}),e.watch(R,()=>{R.value&&U()}),e.watch(()=>t.viewModel.currentScene,()=>{he()},{immediate:!0}),e.watch([()=>t.viewModel.isRotating,()=>t.drawObserver,()=>t.selectedUnitId],()=>{he()}),e.watch(j,()=>{he(),j.value?L.value="pointer":L.value="auto"}),e.watch(B,()=>{v.value?a("hoverOver",{hoverApartment:j.value,closeHandler:()=>_e()}):a("hoverOut",{hoverApartment:j.value,closeHandler:()=>_e()})}),e.watch(l,()=>{a("pos",l.value)}),e.onMounted(()=>{y.value=()=>{clearTimeout(h.value),ie(),h.value=setTimeout(()=>{ie()},50)},window.addEventListener("resize",y.value),ie()}),e.onBeforeUnmount(()=>{window.removeEventListener("resize",y.value);for(const M in V.value)URL.revokeObjectURL(V.value[M])});function U(){n.value=w,k.value=n.value.getContext("2d",{willReadFrequently:!0}),p.value=new Image,p.value.onload=()=>{Ce(),n.value.addEventListener("mousemove",ye(E,50))},p.value.src=R.value}function E(M){const F=O(M.offsetX,M.offsetY);v.value=F>=0,_.value=F,l.value={x:M.offsetX,y:M.offsetY,width:i.value,height:r.value}}function D(M){const F=O(M.offsetX,M.offsetY);F<0||A&&X(F)}function $(){if(p.value&&p.value.width){n.value.width=p.value.width,n.value.height=p.value.height,k.value.drawImage(p.value,0,0,p.value.width,p.value.height),u.value=k.value.getImageData(0,0,n.value.width,n.value.height),m.value=k.value.getImageData(0,0,n.value.width,n.value.height);const M=u.value.data;c.value={};for(let F=0;F<M.length;F+=4)c.value[M[F]]=[];for(let F=3;F<M.length;F+=4)M[F]===255&&M[F-3]in c.value&&c.value[M[F-3]].push(F-3)}}function O(M,F){b.value=M,C.value=F;const W=n.value.offsetWidth/n.value.width,se=n.value.offsetHeight/n.value.height,ce=(M/W).toFixed(),de=(F/se).toFixed(),J=Number(de)*(n.value.width*4)+Number(ce)*4,ee=u.value.data[J];return u.value.data[J+3]>0?ee:-1}function z(){Z().forEach(F=>{if(F.index>=0){const W=Q(F.index),se=q(F.index);let ce="idle";!j.value&&t.selectedUnitId&&se===t.selectedUnitId?ce="selected":j.value&&_.value===F.index&&(ce="hover");const de=t.unitCallback?t.unitCallback(se):se;if(de){const J=t.colorCallback(de,ce);if(J)for(let ee=0;ee<W.length;ee++)m.value.data[W[ee]]=J.r,m.value.data[W[ee]+1]=J.g,m.value.data[W[ee]+2]=J.b,m.value.data[W[ee]+3]=J.a}}})}function Q(M){return u.value?c.value[M]:!1}function q(M){const F=t.sceneData.find(W=>W.index===M);return F&&F.apartmentId}function Z(){if(u.value){const M=Object.keys(c.value).map(W=>parseInt(W));return t.sceneData.filter(W=>M.includes(W.index))}else return[]}function X(M){const F=q(M);K(F)}function K(M){const F=t.unitCallback?t.unitCallback(M):M;a("selectUnit",F),F&&this.canGoToUnitCallback(F)&&a("goToUnit",F)}function re(M=0){if(!m.value)return;const F=m.value.data;for(let W=3;W<F.length;W+=4)F[W]=M}function ie(){if(!N.value)return!1;i.value=N.value.offsetWidth,r.value=N.value.offsetHeight}function Ce(){$(),he()}function he(){re(),z(),k.value&&m.value&&k.value.putImageData(m.value,0,0)}function _e(){v.value=!1}const ne=e.ref(!1);function ye(M,F){return ne.value=!0,function(...W){ne.value&&(ne.value=!1,M.apply(this,W),setTimeout(()=>ne.value=!0,F))}}return(M,F)=>(e.openBlock(),e.createElementBlock("div",{ref_key:"$el",ref:N,id:"canvas"},[e.withDirectives(e.createElementVNode("canvas",{id:"canvas-mask",ref_key:"canvasMask",ref:w,style:e.normalizeStyle(g.value),onClick:D},null,4),[[e.vShow,!M.viewModel.isRotating]]),e.createVNode(ke,{ref_key:"hoverProbe",ref:f},null,512)],512))}}),[["__scopeId","data-v-dbb7046f"]]),Ze=["viewBox"],Xe=["innerHTML","onMouseenter","onMouseleave","onClick"],Ke=H(e.defineComponent({__name:"VApartmentChooserSvg",props:{cdnFileResolver:{},viewModel:{},selectedUnitId:{},unitCallback:{type:Function,default:s=>s},canGoToUnitCallback:{type:Function,default:()=>!0},sceneData:{default:()=>[]},colorCallback:{type:Function,default:()=>({r:108,g:0,b:108,a:144,s:2})},drawObserver:{}},emits:["selectUnit","goToUnit","hoverOver","hoverOut","pos"],setup(s,{emit:o}){const t=s,a=o,l=e.ref({x:0,y:0,width:0,height:0}),n=e.ref(-1),i=e.ref({}),r=e.ref(null),k=e.ref(new me),p=e.ref(),m=e.ref(),u=e.computed(()=>m.value.isHoverEnabled);e.watch(()=>t.viewModel.currentScene,()=>{t.viewModel.currentScene in i.value&&(r.value=i.value[t.viewModel.currentScene])},{immediate:!0}),e.watch(i,()=>{t.viewModel.currentScene in i.value&&(r.value=i.value[t.viewModel.currentScene])},{immediate:!0}),e.watch(l,()=>{a("pos",l.value)}),e.watch(n,(c,f)=>{if(c>=0){const w=b(c);a("hoverOver",{hoverApartment:w,closeHandler:()=>{n.value=-1}})}else{const w=b(f);a("hoverOut",{hoverApartment:w,closeHandler:()=>{n.value=-1}})}}),e.onMounted(()=>{for(let c=1;c<=4;c++){const f=t.cdnFileResolver(`/scenedata${c}.svg`),w={};k.value.loadJson(f).then(N=>{w.markup=N;const I=new DOMParser().parseFromString(N,"image/svg+xml").getElementsByTagName("svg")[0];w.viewBox=I.getAttribute("viewBox"),w.svgObjects=Array.from(I.querySelectorAll("*[data-index]")).map(R=>({index:parseInt(R.getAttribute("data-index")),svg:R.innerHTML})),i.value={...i.value,[c]:w}})}p.value.addEventListener("mousemove",S(_,50))});function _(c){l.value={x:c.offsetX,y:c.offsetY,width:p.value.offsetWidth,height:p.value.offsetHeight}}function v(c){var f;return(f=t.sceneData.find(w=>w.index===parseInt(c)))==null?void 0:f.apartmentId}function b(c){const f=v(c);return t.unitCallback?t.unitCallback(f):f}function C(c){u.value&&(n.value=c)}function V(c){u.value&&(n.value=-1)}function L(c){const f=b(c);a("selectUnit",f),u.value&&f&&t.canGoToUnitCallback(f)?a("goToUnit",f):n.value=c}function h(c){const f=v(c),w=b(c);let N="idle";n.value<0&&t.selectedUnitId&&f===t.selectedUnitId?N="selected":n.value>=0&&n.value===c&&(N="hover");const A=t.colorCallback(w,N);if(A){const{r:I,g:R,b:j,a:g,s:B}=A;return{strokeWidth:B!==void 0?B:2,stroke:`rgb(${I}, ${R}, ${j})`,strokeOpacity:1,fill:`rgb(${I}, ${R}, ${j})`,fillOpacity:g/255,cursor:`${t.canGoToUnitCallback(w)?"cursor":"default"} !important`}}else return{strokeWidth:0,stroke:"white",strokeOpacity:0,fill:"white",fillOpacity:0,cursor:"default !important"}}const y=e.ref(!1);function S(c,f){return y.value=!0,function(...w){y.value&&(y.value=!1,c.apply(this,w),setTimeout(()=>y.value=!0,f))}}return(c,f)=>(e.openBlock(),e.createElementBlock("div",{id:"container",ref_key:"container",ref:p},[e.withDirectives(e.createElementVNode("div",{class:"svg-container",style:e.normalizeStyle({opacity:!r.value||!r.value.svgObjects?0:1})},[r.value&&r.value.svgObjects?(e.openBlock(),e.createElementBlock("svg",{key:0,viewBox:r.value.viewBox},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(r.value.svgObjects,({index:w,svg:N})=>(e.openBlock(),e.createElementBlock("g",{key:w,innerHTML:N,style:e.normalizeStyle(h(w)),onMouseenter:A=>C(w),onMouseleave:A=>V(),onClick:A=>L(w)},null,44,Xe))),128))],8,Ze)):e.createCommentVNode("",!0)],4),[[e.vShow,!c.viewModel.isRotating]]),e.createVNode(ke,{ref_key:"hoverProbe",ref:m},null,512)],512))}}),[["__scopeId","data-v-3e771deb"]]),Je={key:0,class:"d-none d-md-flex"},et=H(e.defineComponent({__name:"VApartmentChooserNavigation",props:{canGoToUnitCallback:{type:Function,default:()=>!0},selectedUnit:{},prevUnit:{},nextUnit:{},viewModel:{}},emits:["prevUnit","nextUnit","goToUnit"],setup(s,{emit:o}){const t=s,a=o,l=e.inject("i18n");e.onMounted(()=>{window.addEventListener("keydown",n)}),e.onBeforeUnmount(()=>{window.removeEventListener("keydown",n)});function n(i){i.keyCode===37?t.prevUnit&&a("prevUnit"):i.keyCode===39&&t.nextUnit&&a("nextUnit")}return(i,r)=>{const k=e.resolveComponent("v-btn");return e.openBlock(),e.createElementBlock("div",null,[e.createVNode(k,{elevation:"1",icon:"mdi-rotate-right",class:"black darken-1",onClick:r[0]||(r[0]=p=>i.viewModel.rotateClockwise())}),e.createVNode(k,{elevation:"1",plain:"",icon:"mdi-chevron-left",class:"mr-sm-4 ml-sm-8 mr-3 ml-3 black darken-1",disabled:!i.prevUnit,onClick:r[1]||(r[1]=p=>a("prevUnit"))},null,8,["disabled"]),e.createVNode(k,{color:"success darken-2",elevation:"1",rounded:"",plain:"",disabled:!i.selectedUnit||!i.canGoToUnitCallback(i.selectedUnit),onClick:r[2]||(r[2]=p=>a("goToUnit",i.selectedUnit))},{default:e.withCtx(()=>[i.selectedUnit&&i.canGoToUnitCallback(i.selectedUnit)?(e.openBlock(),e.createElementBlock("span",Je,e.toDisplayString(e.unref(l).getLabel("see-apartment"))+" ",1)):e.createCommentVNode("",!0),e.createElementVNode("span",null,e.toDisplayString(i.selectedUnit&&"title"in i.selectedUnit?i.selectedUnit.title:"-"),1)]),_:1},8,["disabled"]),e.createVNode(k,{elevation:"1",plain:"",icon:"mdi-chevron-right",class:"mr-sm-8 ml-sm-4 mr-3 ml-3 black darken-1",disabled:!i.nextUnit,onClick:r[3]||(r[3]=p=>a("nextUnit"))},null,8,["disabled"]),e.createVNode(k,{elevation:"1",plain:"",icon:"mdi-rotate-left",class:"black darken-1",onClick:r[4]||(r[4]=p=>i.viewModel.rotateCounterClockwise())})])}}}),[["__scopeId","data-v-02d5a12e"]]);class Ve{constructor(o){P(this,"_numParts");P(this,"_loadedCount");P(this,"_isError");P(this,"_finishedAction");P(this,"_errorAction");P(this,"_loadProgressAction");this._numParts=o,this._loadedCount=0,this._isError=!1,this._finishedAction=()=>{},this._errorAction=()=>{},this._loadProgressAction=()=>{}}onLoadFinished(o){return this._finishedAction=o,this}onLoadError(o){return this._errorAction=o,this}onLoadProgress(o){return this._loadProgressAction=o,this}partLoaded(){this.isFinished||(this._loadedCount++,this._loadProgressAction(this.percentLoaded),this.isFinished&&this._finishedAction())}errorDetected(){this._isError||(this._isError=!0,this._errorAction())}get isFinished(){return this._loadedCount>=this._numParts}get isError(){return this._isError}get percentLoaded(){return Math.round(this._loadedCount*100/this._numParts)}}class Be{constructor(o,t,a,l){P(this,"_rotator");P(this,"_direction");P(this,"_frameIndex");P(this,"_sceneCount");this._rotator=o,this._direction=t,this._frameIndex=a,this._sceneCount=l}get atEnd(){return this._sceneCount===0}get frameIndex(){return this._frameIndex}nextFrame(){const o=this._rotator.clampFrameIndex(this._frameIndex+this._direction),t=this._rotator.isCardinalFrame(o)?this._sceneCount-1:this._sceneCount;return new Be(this._rotator,this._direction,o,t)}}class tt{constructor(o,t){P(this,"_cardinalFrames");P(this,"_totalFrameCount");this._cardinalFrames=o,this._totalFrameCount=t}start(o,t,a){const l=this.startFrameIndexForScene(t);return new Be(this,o,l,a)}isCardinalFrame(o){return this._cardinalFrames.includes(o)}clampFrameIndex(o){return(this._totalFrameCount+o)%this._totalFrameCount}startFrameIndexForScene(o){return this._cardinalFrames[o]}}const ot={key:0,class:"fill-parent d-flex justify-center align-center blue-grey lighten-5"},nt={key:1,class:"frame-container"},at={key:0,class:"frame-image"},lt=["srcset","type"],rt=["src"],it={key:2,id:"image-stack",class:"frame-container"},st=["alt"],ct=["srcset"],dt=["src"],Me=64,we=4,mt=120,ut=H(e.defineComponent({__name:"VApartmentChooserRotator",props:{viewModel:{},build:{default:""},cdnFileResolver:{},cardinalFrames:{}},emits:["loaded","error","progress"],setup(s,{emit:o}){const t=s,a=o,l=v(),n=e.ref(new Ve(l.length).onLoadFinished(()=>a("loaded")).onLoadProgress(L=>a("progress",L)).onLoadError(()=>a("error"))),i=e.ref(new tt(t.cardinalFrames,Me)),r=e.ref(l),k=e.ref(!1),p=e.computed(()=>r.value.find(L=>L.show));e.watch(()=>t.viewModel.currentScene,(L,h)=>{const y=V(h,L),S=C(h,L);m(h,y,S)}),e.onMounted(()=>{_()});function m(L,h,y){t.viewModel.isRotating||(t.viewModel.isRotating=!0,u(i.value.start(h,L%we,y)))}function u(L){setTimeout(()=>{r.value[L.frameIndex].show=!1;const h=L.nextFrame();r.value[h.frameIndex].show=!0,h.atEnd?_():window.requestAnimationFrame(()=>u(h))},1e3/mt)}function _(){const L=i.value.startFrameIndexForScene(t.viewModel.currentScene%we);L in r.value&&(r.value[L].show=!0),t.viewModel.isRotating=!1}function v(){const L=[];for(let h=0;h<Me;h++){const{sourceSet:y,defaultPath:S}=b(h);L.push({index:h,sourceSet:y,defaultPath:S,show:!1})}return L}function b(L){const h=("0000"+(L+1)).slice(-4),y=t.build?`?v=${t.build}`:"",S=[`${t.cdnFileResolver(`/480/${h}.jpg${y}`)} 480w`,`${t.cdnFileResolver(`/960/${h}.jpg${y}`)} 960w`,`${t.cdnFileResolver(`/1280/${h}.jpg${y}`)} 1280w`].join(","),c=t.cdnFileResolver(`/480/${h}.jpg${y}`);return{sourceSet:S,defaultPath:c}}function C(L,h){const y=we/2,S=Math.abs(L-h);return S>y?we-S:S}function V(L,h){if(L===h)return 0;const S=Math.abs(L-h)<we/2;return S&&L<h||!S&&L>h?1:-1}return(L,h)=>{const y=e.resolveComponent("v-icon");return e.openBlock(),e.createElementBlock("div",null,[n.value.isError?(e.openBlock(),e.createElementBlock("div",ot,[e.createVNode(y,{"x-large":""},{default:e.withCtx(()=>[e.createTextVNode("mdi-alert-circle-outline")]),_:1})])):k.value?(e.openBlock(),e.createElementBlock("div",it,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(r.value,S=>(e.openBlock(),e.createElementBlock("picture",{key:S.index,alt:S.index,class:e.normalizeClass({"frame-image":!0,show:S.show})},[e.createElementVNode("source",{srcset:S.sourceSet,type:"image/jpeg"},null,8,ct),e.createElementVNode("img",{src:S.defaultPath,alt:"Building image",onLoad:h[2]||(h[2]=c=>n.value.partLoaded()),onError:h[3]||(h[3]=c=>n.value.errorDetected())},null,40,dt)],10,st))),128))])):(e.openBlock(),e.createElementBlock("div",nt,[p.value?(e.openBlock(),e.createElementBlock("picture",at,[e.createElementVNode("source",{srcset:p.value.sourceSet,type:p.value.type},null,8,lt),e.createElementVNode("img",{src:p.value.defaultPath,onLoad:h[0]||(h[0]=S=>k.value=!0),onError:h[1]||(h[1]=S=>n.value.errorDetected())},null,40,rt)])):e.createCommentVNode("",!0)]))])}}}),[["__scopeId","data-v-8e71d825"]]),Ne=H(e.defineComponent({__name:"VFloatingCard",props:{pos:{},isHoverable:{type:Boolean}},emits:["outside"],setup(s,{emit:o}){const t=s,a=o,l=e.computed(()=>{const n=t.pos.x<=t.pos.width/2?"left":"right";return`${t.pos.y<=t.pos.height/2?"top":"bottom"}-${n}`});return(n,i)=>{const r=e.resolveComponent("v-dialog"),k=e.resolveComponent("v-fade-transition");return e.openBlock(),e.createBlock(k,{origin:l.value.replace("-"," ")+" "+n.pos.x+" "+n.pos.y},{default:e.withCtx(()=>[n.isHoverable?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(["floating-card",l.value]),style:e.normalizeStyle({left:`${n.pos.x}px`,top:`${n.pos.y}px`,pointerEvents:"none"})},[e.renderSlot(n.$slots,"default",{isHoverable:n.isHoverable},void 0,!0)],6)):(e.openBlock(),e.createBlock(r,{key:1,value:!0,width:"auto","onClick:outside":i[0]||(i[0]=p=>a("outside",p))},{default:e.withCtx(()=>[e.renderSlot(n.$slots,"default",{isHoverable:n.isHoverable},void 0,!0)]),_:3}))]),_:3},8,["origin"])}}}),[["__scopeId","data-v-0695e74f"]]),Ae=H(e.defineComponent({__name:"VZoomBox",props:{desktop:{type:Boolean,default:!0},mobile:{type:Boolean,default:!0},maxScale:{default:10},consumeMouseClickWhenMoved:{type:Boolean,default:!0},consumeMouseUpWhenMoved:{type:Boolean,default:!0}},emits:["update"],setup(s,{emit:o}){const t=s,a=o,l=e.ref(100),n=e.ref(0),i=e.ref(0),r=e.ref(!1),k=e.ref(!1),p=e.ref(void 0),m=e.ref(!1),u=e.ref(),_=e.computed(()=>`translateX(${n.value}px) translateY(${i.value}px) scale(${v.value})`),v=e.computed(()=>l.value/100),b=e.computed(()=>t.maxScale*100);e.watch([v,n,i],()=>{U()}),e.watch(()=>t.desktop,()=>{t.desktop?C():L()}),e.watch(()=>t.mobile,()=>{t.mobile?V():h()}),e.onMounted(()=>{t.desktop&&C(),t.mobile&&V()}),e.onBeforeUnmount(()=>{t.desktop&&L(),t.mobile&&h()});function C(){u.value.addEventListener("wheel",y,{capture:!0}),u.value.addEventListener("mousedown",S,{capture:!0}),u.value.addEventListener("mousemove",c,{capture:!0}),window.addEventListener("mouseup",f,{capture:!0}),window.addEventListener("click",w,{capture:!0})}function V(){u.value.addEventListener("touchstart",N,{capture:!0}),u.value.addEventListener("touchmove",A,{capture:!0}),window.addEventListener("touchend",I,{capture:!0}),window.addEventListener("touchcancel",I,{capture:!0})}function L(){u.value.removeEventListener("wheel",y,{capture:!0}),u.value.removeEventListener("mousedown",S,{capture:!0}),u.value.removeEventListener("mousemove",c,{capture:!0}),window.removeEventListener("mouseup",f,{capture:!0}),window.removeEventListener("click",w,{capture:!0})}function h(){u.value.removeEventListener("touchstart",N,{capture:!0}),u.value.removeEventListener("touchmove",A,{capture:!0}),window.removeEventListener("touchend",I,{capture:!0}),window.removeEventListener("touchcancel",I,{capture:!0})}function y(E){const{x:D,y:$}=R(E);B(-E.deltaY/10,D,$),E.preventDefault()}function S(E){r.value=!0,m.value=!1,p.value=E}function c(E){if(r.value){const{x:D,y:$}=R(E),{x:O,y:z}=R(p.value),Q={x:D-O,y:$-z};j(Q.x),g(Q.y),m.value=!0,p.value=E}}function f(E){r.value&&m.value&&t.consumeMouseUpWhenMoved&&(E.preventDefault(),E.stopImmediatePropagation())}function w(E){r.value&&(m.value&&t.consumeMouseClickWhenMoved&&(E.preventDefault(),E.stopImmediatePropagation()),r.value=!1)}function N(E){r.value=E.touches.length===1,k.value=E.touches.length===2,p.value=E}function A(E){if(r.value){const{x:D,y:$}=R(E.touches[0]),{x:O,y:z}=R(p.value.touches[0]),Q={x:D-O,y:$-z};j(Q.x),g(Q.y)}else if(k.value&&E.touches.length===2){const{x:D,y:$}=R(E.touches[0]),{x:O,y:z}=R(p.value.touches[0]),{x:Q,y:q}=R(E.touches[1]),{x:Z,y:X}=R(p.value.touches[1]),K=Math.hypot(O-Z,z-X),re=Math.hypot(D-Q,$-q),ie=(Q+D)/2,Ce=(q+$)/2;B(re-K,ie,Ce)}p.value=E}function I(){r.value=!1,k.value=!1}function R(E){const{left:D,top:$}=u.value.getBoundingClientRect();return{x:E.clientX-D,y:E.clientY-$}}function j(E){const D=u.value.clientWidth,$=D*v.value;n.value=Math.max(Math.min(0,n.value+E),-($-D))}function g(E){const D=u.value.clientHeight,$=D*v.value;i.value=Math.max(Math.min(0,i.value+E),-($-D))}function B(E,D,$){const O=u.value.clientWidth,z=u.value.clientHeight,Q=O*v.value,q=z*v.value;l.value=Math.min(Math.max(100,l.value+E),b.value);const Z=O*v.value,X=z*v.value,K=Z-Q,re=X-q;n.value-=D/O*K,i.value-=$/z*re,j(0),g(0)}function U(){a("update",{scale:v.value,x:n.value,y:i.value,resolve:(E,D)=>{const $=u.value.clientWidth,O=u.value.clientHeight,z=n.value/-v.value,Q=i.value/-v.value,q=z+$/v.value,Z=Q+O/v.value,X=E/$*(q-z)+z,K=D/O*(Z-Q)+Q;return{x:X,y:K}}})}return(E,D)=>(e.openBlock(),e.createElementBlock("div",{ref_key:"box",ref:u,class:"zoom-box-container"},[e.createElementVNode("div",{style:e.normalizeStyle({"transform-origin":"top left",transform:_.value}),class:"zoom-box"},[e.renderSlot(E.$slots,"default",{},void 0,!0)],4)],512))}}),[["__scopeId","data-v-52f62ef2"]]),Le=4;function Fe(s){return s<Le?s+1:1}function pt(s){return s>1?s-1:Le}class ft{constructor(o){P(this,"_state");P(this,"_navigator");P(this,"_sceneModel");this._state={isRotating:!1,currentScene:o}}get isRotating(){return this._state.isRotating}set isRotating(o){this._state.isRotating=o}get navigator(){return this._navigator}get sceneModel(){return this._sceneModel}unlessRotatingDo(o){this.isRotating||o()}get currentScene(){return this._state.currentScene}set currentScene(o){this._state.currentScene=o}rotateCounterClockwise(){this.unlessRotatingDo(()=>{this.currentScene=Fe(this.currentScene)})}rotateClockwise(){this.unlessRotatingDo(()=>{this.currentScene=pt(this.currentScene)})}}const ht={interior:"Interiør","see-a-selection-of-the-options-in-the-project":"Se et utvalg av tilvalgsmulighetene i prosjektet.","floor-plan":"Planløsning","all-illustrations-are-indicative-deviations-may-occur":{nb:"Alle illustrasjoner er veiledende. Avvik kan forekomme.",en:"All illustrations are indicative. Discrepancies may exist."},"read-more-here":"Les mer her","i-understand":{nb:"Jeg forstår",en:"I understand"},share:"Share","share-to-facebook":"Share to Facebook","share-to-linkedin":"Share to Linkedin","share-to-twitter":"Share to Twitter","share-via-email":"Share via Email","copy-link":"Copy link","virtual-view":"Virtuell Visning","slide-show":"Slide Show",room:"Room",floor:"Floor","see-apartments":"See apartments","see-apartment":"See apartment","click-and-drag-to-look-around":{en:"Click and drag to look around",nb:"Klikk og dra for å se deg rundt"},"click-on-the-cricles-to-move-around":{en:"Click on the circles to move around",nb:"Klikk på sirkelene for å gå rundt"},"use-the-mouse-wheel-to-zoom":{en:"Use the mouse wheel to zoom",nb:"Bruk mushjulet for å zoome"},"you-can-also-use-the-arrow-keys-to-move-around":{en:"You can also use the arrow keys to move around",nb:"Du kan også bruke pilene på tastaturet for å gå rundt"},"tap-and-drag-to-look-around":{en:"Tap and drag to look around",nb:"Trykk og dra for å se deg rundt"},"tap-on-the-circles-to-move-around":{en:"Tap on the circles to move around",nb:"Trykk på sirkelene for å gå rundt"},"use-two-fingers-to-zoom":{en:"Use two fingers to zoom",nb:"Bruk to fingre for å zoome"},"dont-show-again":{en:"Don't Show Again",nb:"Ikke vis igjen"}};class oe{constructor(o=null,t=null){P(this,"_labels");P(this,"_language");this._labels={...ht,...o||{}},this._language=t||"en"}getLabel(o){return o in this._labels?this.get(this._labels[o]):o}get(o){if(typeof o=="string")return o;if(this._language in o&&o[this._language])return o[this._language];for(const t in o)if(o[t])return o[t];return""}}const gt={key:0},kt={class:"interactive-viewer"},wt={class:"fill-parent"},vt={key:0},Ct={key:1,class:"navigation"},yt={key:2},bt=4,De=H(e.defineComponent({__name:"VApartmentChooser",props:{i18n:{},showCards:{type:Boolean,default:!0},build:{default:""},buildingSceneDataResolver:{},buildingScenesByApartmentResolver:{},cdnFileResolver:{},colorCallback:{type:Function,default:()=>({r:108,g:0,b:108,a:144,s:2})},unitCallback:{type:Function,default:s=>s},canGoToUnitCallback:{type:Function,default:()=>!0},selectedUnitId:{},nextUnit:{},prevUnit:{},drawObserver:{default:null},interactiveDesktop:{type:Boolean,default:!0},interactiveMobile:{type:Boolean,default:!0},useSvg:{type:Boolean,default:!1}},emits:["selectUnit","goToUnit","navUnit","hoverOverUnit","hoverOutUnit","initialized"],setup(s,{emit:o}){const t=[0,16,32,48],a=s,l=o;e.provide("i18n",a.i18n?new oe(a.i18n.labels,a.i18n.language):new oe);const n=e.ref({isReady:!1,isError:!1,progress:void 0}),i=e.ref(null),r=e.ref(null),k=e.ref(null),p=e.ref(void 0),m=e.ref(new me),u=e.ref({x:0,y:0,width:0,height:0}),_=e.ref(void 0),v=e.ref(void 0),b=e.ref(null),C=e.computed(()=>b.value.isHoverEnabled),V=e.computed(()=>a.unitCallback?a.unitCallback(a.selectedUnitId):a.selectedUnitId),L=e.computed(()=>a.useSvg?Ke:qe);e.watchEffect(()=>{if(a.selectedUnitId&&p.value){const c=i.value[a.selectedUnitId];c&&(p.value.currentScene=c)}}),e.onMounted(async()=>{let c=null;try{c=await m.value.loadJson(a.cdnFileResolver("/apartmentChooser.json"))}catch{console.info("apartmentChooser.json not found")}const f=c&&c.startScene!==void 0?c.startScene:bt;k.value=c&&c.scenes!==void 0?c.scenes:t,r.value=c&&c.sceneData!==void 0?c.sceneData.map(A=>({apartmentId:A.apartmentID,index:A.index})):a.buildingSceneDataResolver?await a.buildingSceneDataResolver():[],i.value=c&&c.sceneData!==void 0?c.sceneData.map(A=>{const I=A.bestScene===0?4:A.bestScene;return{unitId:A.apartmentID,scene:I}}).reduce((A,I)=>({...A,[I.unitId]:I.scene}),{}):a.buildingScenesByApartmentResolver?await a.buildingScenesByApartmentResolver():[];const w=(A,I="unitId")=>{let R=f,j=[];for(let g=0;g<Le;g++)j.push(R),R=Fe(R);return A.sort((g,B)=>{const U=j.findIndex(D=>D===i.value[g[I]]),E=j.findIndex(D=>D===i.value[B[I]]);return U<E?-1:U>E?1:0}),A},N=A=>{p.value=new ft(A)};l("initialized",{scene:f,scenes:k.value,sceneData:r.value,scenesByApartment:i.value,unitsSceneSort:w,initialize:N})});function h(c){u.value=c}function y(c){v.value=c.hoverApartment,_.value=c.closeHandler,l("hoverOverUnit",c.hoverApartment)}function S(c){v.value=null,_.value=c.closeHandler,l("hoverOutUnit",c.hoverApartment)}return(c,f)=>{const w=e.resolveComponent("v-progress-linear");return p.value?(e.openBlock(),e.createElementBlock("div",gt,[e.createElementVNode("div",kt,[e.createElementVNode("div",wt,[e.createVNode(Ae,{desktop:n.value.isReady&&c.interactiveDesktop,mobile:n.value.isReady&&c.interactiveMobile},{default:e.withCtx(()=>[e.createVNode(ut,{"cdn-file-resolver":c.cdnFileResolver,"view-model":p.value,"cardinal-frames":k.value,build:c.build,onProgress:f[0]||(f[0]=N=>n.value.progress=N),onLoaded:f[1]||(f[1]=N=>n.value.isReady=!0),onError:f[2]||(f[2]=N=>n.value.isError=!0)},null,8,["cdn-file-resolver","view-model","cardinal-frames","build"]),n.value.isReady?(e.openBlock(),e.createElementBlock("div",vt,[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(L.value),{"cdn-file-resolver":c.cdnFileResolver,"view-model":p.value,"selected-unit-id":c.selectedUnitId,"scene-data":r.value,"color-callback":c.colorCallback,"unit-callback":c.unitCallback,"can-go-to-unit-callback":c.canGoToUnitCallback,"draw-observer":c.drawObserver,onSelectUnit:f[3]||(f[3]=N=>l("selectUnit",N)),onGoToUnit:f[4]||(f[4]=N=>l("goToUnit",N)),onHoverOver:y,onHoverOut:S,onPos:h},{default:e.withCtx(N=>[e.renderSlot(c.$slots,"default",e.normalizeProps(e.guardReactiveProps(N)),void 0,!0)]),_:3},40,["cdn-file-resolver","view-model","selected-unit-id","scene-data","color-callback","unit-callback","can-go-to-unit-callback","draw-observer"]))])):e.createCommentVNode("",!0)]),_:3},8,["desktop","mobile"]),v.value&&c.showCards?(e.openBlock(),e.createBlock(Ne,{key:0,"is-hoverable":C.value,pos:u.value,onOutside:_.value},{default:e.withCtx(()=>[e.renderSlot(c.$slots,"default",{unit:v.value,canGoToUnit:c.canGoToUnitCallback(v.value),goToUnit:()=>c.canGoToUnitCallback(v.value)&&l("goToUnit",v.value),pos:u.value,isHoverable:C.value,close:_.value},void 0,!0)]),_:3},8,["is-hoverable","pos","onOutside"])):e.createCommentVNode("",!0),n.value.isReady?(e.openBlock(),e.createElementBlock("div",Ct,[e.createVNode(et,{"can-go-to-unit-callback":c.canGoToUnitCallback,"selected-unit":V.value,"prev-unit":c.prevUnit,"next-unit":c.nextUnit,"view-model":p.value,onGoToUnit:f[5]||(f[5]=N=>l("goToUnit",N)),onPrevUnit:f[6]||(f[6]=N=>l("navUnit",c.prevUnit)),onNextUnit:f[7]||(f[7]=N=>l("navUnit",c.nextUnit))},null,8,["can-go-to-unit-callback","selected-unit","prev-unit","next-unit","view-model"])])):n.value.isError?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("div",yt,[e.createVNode(w,{indeterminate:!n.value.progress,value:n.value.progress},null,8,["indeterminate","value"])]))])]),e.createVNode(ke,{ref_key:"hoverProbe",ref:b},null,512)])):e.createCommentVNode("",!0)}}}),[["__scopeId","data-v-52c91082"]]),_t="data:image/png;base64,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",Se=e.defineComponent({__name:"VNorthDirection",props:{longitude:{}},setup(s){const o=s,t=e.computed(()=>({transform:`rotate(${90-(o.longitude||0)}deg)`,transition:" transform 0.5s ease-in"}));return(a,l)=>{const n=e.resolveComponent("v-img");return e.openBlock(),e.createBlock(n,{src:e.unref(_t),style:e.normalizeStyle(t.value)},null,8,["src","style"])}}}),Et={class:"sunsim-bar-wrapper"},Vt={class:"sunsim-date d-flex align-center pl-5 pr-5"},Bt={key:1,class:"text-center text-body-1"},Nt={class:"sunsim-wrapper d-flex align-center px-3"},At={class:"sunsim-time-label text-body-1 font-weight-normal ml-2"},Ue=H(e.defineComponent({__name:"VBuildingChooserSunSimControl",props:{modelValue:{},dateSelector:{},isLoading:{type:Boolean,default:!1}},emits:["update:modelValue"],setup(s,{emit:o}){const t=s,a=o,l=e.ref(t.modelValue),n=e.ref(null);function i(m){return m.toLocaleString("en-no",{month:"short",day:"numeric"})}const r=e.computed(()=>{const m=Math.floor(l.value/2).toString().padStart(2,"0"),u=l.value%2===0?"00":"30";return`${m}:${u}`}),k=e.computed(()=>t.dateSelector.dates.map(i)),p=e.computed({get(){return i(t.dateSelector.selectedDate)},set(m){t.dateSelector.selectIndex(k.value.indexOf(m))}});return e.watch(l,m=>{a("update:modelValue",m)}),e.watch(n,m=>{t.dateSelector.selectIndex(k.value.indexOf(m))}),e.watch(()=>t.modelValue,m=>{l.value=Math.floor(m)}),e.watchEffect(()=>{n.value=i(t.dateSelector.selectedDate)}),(m,u)=>{const _=e.resolveComponent("v-icon"),v=e.resolveComponent("v-select"),b=e.resolveComponent("v-progress-linear"),C=e.resolveComponent("v-slider");return e.openBlock(),e.createElementBlock("div",Et,[e.createElementVNode("div",Vt,[e.createVNode(_,{color:"black",class:"mr-2",icon:"mdi-calendar-blank-outline"}),m.dateSelector.hasMultipleDates?(e.openBlock(),e.createBlock(v,{key:0,modelValue:n.value,"onUpdate:modelValue":u[0]||(u[0]=V=>n.value=V),items:k.value,density:"compact",variant:"underlined","hide-details":"",class:"day-selector"},null,8,["modelValue","items"])):(e.openBlock(),e.createElementBlock("span",Bt,e.toDisplayString(p.value),1))]),e.createElementVNode("div",Nt,[e.createElementVNode("span",At,e.toDisplayString(r.value),1),e.createVNode(_,{medium:"",class:"ml-2 mr-2 icon"},{default:e.withCtx(()=>[e.createTextVNode("mdi-white-balance-sunny")]),_:1}),m.isLoading?(e.openBlock(),e.createBlock(b,{key:0,indeterminate:"",rounded:"",height:"6",color:"grey lighten-1",class:"mr-2"})):(e.openBlock(),e.createBlock(C,{key:1,modelValue:l.value,"onUpdate:modelValue":u[1]||(u[1]=V=>l.value=V),min:0,max:47,step:1,"thumb-label":!1,"hide-details":!0,"thumb-color":"white","thumb-size":"25","track-size":"7","track-fill-color":"transparent",class:"sunsim-slider mr-1"},null,8,["modelValue"]))])])}}}),[["__scopeId","data-v-0d8001a3"]]),Lt={key:0},St=["src"],Te=H(e.defineComponent({__name:"VBuildingChooserSceneImageStack",props:{imageUrls:{},activeIndex:{}},emits:["resize","ready","preloaded","reset"],setup(s,{emit:o}){const t=s,a=o,l=e.ref("init"),n=e.ref(new Ve(0)),i=e.ref();e.watch(()=>t.imageUrls,p=>{a("reset"),k(p)}),e.onMounted(()=>{k(t.imageUrls),new ResizeObserver(p=>{window.requestAnimationFrame(()=>{const m=p[0].contentRect.width,u=p[0].contentRect.height;a("resize",{width:m,height:u})})}).observe(i.value)});function r(){l.value="preloaded",a("preloaded")}function k(p){l.value="init",i.value.src=p[0],n.value=new Ve(p.length).onLoadFinished(()=>{l.value="loaded",a("ready")})}return(p,m)=>(e.openBlock(),e.createElementBlock("div",null,[e.createElementVNode("img",{ref_key:"baseImage",ref:i,class:"image-instance zero",style:{opacity:1,borderRadius:50},onLoad:r},null,544),l.value==="preloaded"||l.value==="loaded"?e.withDirectives((e.openBlock(),e.createElementBlock("div",Lt,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(p.imageUrls,(u,_)=>(e.openBlock(),e.createElementBlock("img",{key:_,class:e.normalizeClass({"image-instance":!0,active:_===p.activeIndex}),src:u,onLoad:m[0]||(m[0]=v=>n.value.partLoaded())},null,42,St))),128)),e.createTextVNode(" Here ")],512)),[[e.vShow,l.value==="loaded"]]):e.createCommentVNode("",!0)]))}}),[["__scopeId","data-v-1dc6128e"]]),xt="buildingChooser.json",It=180;class Re{constructor(o){P(this,"_cdnFileResolver");P(this,"_resourceLoader");this._cdnFileResolver=o,this._resourceLoader=new me}constructFileUrl(o){return this._cdnFileResolver?this._cdnFileResolver(`/${o}`):null}loadConfigFile(){const o=this.constructFileUrl(xt);return o?this._resourceLoader.loadJson(o):null}loadBuildingMapImage(o){const t=this.constructFileUrl(o.lookupFilename);return t?this._resourceLoader.loadImage(t):null}getViewLongitude(o){return o.cameraRotation&&o.cameraRotation.y+270}getBuildingData(o){const t=o?o.buildings:[],a=t.map(n=>n.id),l=t.map(n=>({id:n.id,url:this.constructFileUrl(n.overlayFilename)}));return{buildingIds:a,buildingOverlays:l}}getBackgroundImageData(o){return"days"in o?this.processMultipleDays(o.days):[this.processTimeSamples(It,o.timeSamples)]}processMultipleDays(o){return o.map(t=>this.processTimeSamples(t.dayOfYear,t.timeSamples))}processTimeSamples(o,t){return{urls:t.map(l=>this.constructFileUrl(l.filename)),referenceDate:this.makeReferenceDate(o)}}makeReferenceDate(o){const t=new Date(0);return t.setUTCDate(o),t}async loadBuildingChooser(){try{const o=await this.loadConfigFile();if(o){const t=await this.loadBuildingMapImage(o);if(t){const a=this.getViewLongitude(o),{buildingIds:l,buildingOverlays:n}=this.getBuildingData(o),i=this.getBackgroundImageData(o);return{mapImage:t,viewLongitude:a,buildingIds:l,buildingOverlays:n,backgrounds:i}}}return null}catch{return null}}}class ue{constructor(o){P(this,"_buildingIds");this._buildingIds=o}static empty(){return new ue([])}getBuildingId(o,t,a){const l=this._getBuildingIndex(o,t,a);if(l!==void 0)return this._buildingIds[l]}_getBuildingIndex(o,t,a){const[l,n,i,r]=o.getPixel(t,a);if(r===255&&l===n&&n===i)return l}}class pe{constructor(o){P(this,"_mapImage");P(this,"_context");this._mapImage=o,this._context=null}static empty(){return new pe(null)}update(o){this._mapImage&&(this._context=o.getContext("2d",{willReadFrequently:!0}),this._context.drawImage(this._mapImage,0,0,o.width,o.height))}getPixel(o,t){try{return this._context?this._context.getImageData(o,t,1,1).data:[0,0,0,0]}catch{return[0,0,0,0]}}}const Mt=new Date(0);class be{constructor(o){P(this,"_imagesByDay");P(this,"_state");this._imagesByDay=o,this._state={selectedIndex:0}}static empty(){return new be([{referenceDate:Mt,urls:[]}])}selectIndex(o){o<this._imagesByDay.length&&(this._state.selectedIndex=o)}get dates(){return this._imagesByDay.map(o=>o.referenceDate)}get hasMultipleDates(){return this._imagesByDay.length>1}get selectedIndex(){return this._state.selectedIndex}get selectedDate(){return this._imagesByDay[this.selectedIndex].referenceDate}get imageUrls(){return this._imagesByDay[this.selectedIndex].urls}}const Ft={key:0,style:{height:"50vh"},class:"d-flex justify-center align-center blue-grey lighten-5"},Dt={class:"image-instances"},Ut={key:0},Tt={class:"svg-container"},Rt=["viewBox"],$t=["innerHTML","data-building-id","onMouseover","onMouseout","onMousemove","onClick"],Ot=["innerHTML"],Ht=H(e.defineComponent({__name:"VBuildingChooserSvg",props:{showCards:{type:Boolean,default:!0},colorCallback:{type:Function,default:()=>({r:108,g:0,b:108,a:144,s:2})},buildingCallback:{type:Function,default:s=>s},canGoToBuildingCallback:{type:Function,default:()=>!0},buildingChooserTimeOfDay:{},cdnFileResolver:{},i18n:{},interactiveDesktop:{type:Boolean,default:!0},interactiveMobile:{type:Boolean,default:!0},customOverlayContent:{}},emits:["goToBuilding","hoverOverBuilding","hoverOutBuilding"],setup(s,{emit:o}){const t=s,a=o;e.provide("i18n",t.i18n?new oe(t.i18n.labels,t.i18n.language):new oe);const l=e.ref({preloaded:!1,ready:!1}),n=e.ref({width:0,height:0}),i=e.ref({x:0,y:0,width:0,height:0}),r=e.ref(),k=e.ref(new Date().getHours()*2+(new Date().getMinutes()<30?0:1)),p=e.ref(!1),m=e.ref(new me),u=e.ref(),_=e.ref("0 0 0 0"),v=e.ref({}),b=e.ref(),C=e.ref(ue.empty()),V=e.ref(pe.empty()),L=e.ref(),h=e.computed(()=>{var g;return(g=L.value)==null?void 0:g.isHoverEnabled}),y=e.computed(()=>f(r.value));e.watch(r,(g,B)=>{g?a("hoverOverBuilding",f(g)):a("hoverOutBuilding",f(B))}),e.watchEffect(()=>{if(t.buildingChooserTimeOfDay){const[g,B,U]=/^(\d\d):(\d\d)$/.exec(t.buildingChooserTimeOfDay),E=parseInt(U);k.value=parseInt(B)*2+(E<15?0:E>45?2:1)}}),e.onMounted(async()=>{const B=await new Re(t.cdnFileResolver).loadBuildingChooser();if(B){V.value=new pe(B.mapImage),C.value=new ue(B.buildingIds),v.value=new be(B.backgrounds),b.value={buildingOverlays:B.buildingOverlays,sceneLongitude:B.viewLongitude};const U=[];for(let{id:E,url:D}of B.buildingOverlays)m.value.loadJson(D.replace(".png",".svg")).then($=>{const z=new DOMParser().parseFromString($,"image/svg+xml").getElementsByTagName("svg")[0];_.value=z.getAttribute("viewBox"),U.push({id:E,svg:z.innerHTML})});u.value=U}else p.value=!0});function S({width:g,height:B}){n.value.width=g,n.value.height=B}function c(){l.value={preloaded:!1,ready:!1}}function f(g){return t.buildingCallback?t.buildingCallback(g):g}function w(g){const B=f(g),U=t.colorCallback(B,g===r.value?"hover":"idle"),E=[];return g===r.value?E.push("hover"):E.push("idle"),U&&t.canGoToBuildingCallback(B)?E.push("clickable"):E.push("restricted"),E.join(" ")}function N(g){const B=f(g),U=t.colorCallback(B,g===r.value?"hover":"idle");if(U){const{r:E,g:D,b:$,a:O,s:z}=U;return{strokeWidth:z!==void 0?z:2,stroke:`rgb(${E}, ${D}, ${$})`,strokeOpacity:1,fill:`rgb(${E}, ${D}, ${$})`,fillOpacity:O/255,cursor:`${t.canGoToBuildingCallback(B)?"cursor":"default"} !important`}}else return{strokeWidth:0,stroke:"white",strokeOpacity:0,fill:"white",fillOpacity:0,cursor:"default !important"}}function A(g,B){h.value&&(i.value={x:g.layerX,y:g.layerY,width:n.value.width,height:n.value.height},r.value=B,a("hoverOverBuilding",f(B)))}function I(g,B){h.value&&(i.value={x:g.layerX,y:g.layerY,width:n.value.width,height:n.value.height},r.value=void 0,a("hoverOutBuilding",f(B)))}function R(g,B){h.value&&(i.value={x:g.layerX,y:g.layerY,width:n.value.width,height:n.value.height})}function j(g){r.value=g,h.value&&y.value&&t.canGoToBuildingCallback(y.value)&&a("goToBuilding",y.value)}return(g,B)=>{const U=e.resolveComponent("v-icon");return p.value?(e.openBlock(),e.createElementBlock("div",Ft,[e.createVNode(U,{"x-large":""},{default:e.withCtx(()=>[e.createTextVNode("mdi-alert-circle-outline")]),_:1})])):b.value?(e.openBlock(),e.createElementBlock("div",{key:1,style:e.normalizeStyle(`height: ${n.value.height}px; position: relative`),class:"image-container"},[e.createVNode(Ae,{desktop:g.interactiveDesktop,mobile:g.interactiveMobile},{default:e.withCtx(()=>[e.createElementVNode("div",Dt,[e.createVNode(Te,{"image-urls":v.value.imageUrls,"active-index":k.value,onResize:S,onPreloaded:B[0]||(B[0]=E=>l.value.preloaded=!0),onReady:B[1]||(B[1]=E=>l.value.ready=!0),onReset:c},null,8,["image-urls","active-index"]),u.value?e.withDirectives((e.openBlock(),e.createElementBlock("div",Ut,[e.createElementVNode("div",Tt,[(e.openBlock(),e.createElementBlock("svg",{viewBox:_.value},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(u.value,({id:E,svg:D},$)=>(e.openBlock(),e.createElementBlock("g",{key:$,innerHTML:D,"data-building-id":E,class:e.normalizeClass(w(E)),style:e.normalizeStyle(N(E)),onMouseover:O=>A(O,E),onMouseout:O=>I(O,E),onMousemove:O=>R(O),onClick:O=>j(E)},null,46,$t))),128))],8,Rt))])],512)),[[e.vShow,l.value.preloaded]]):e.createCommentVNode("",!0),e.withDirectives(e.createElementVNode("div",{class:"custom-overlay-layer",innerHTML:g.customOverlayContent},null,8,Ot),[[e.vShow,l.value.preloaded]])])]),_:1},8,["desktop","mobile"]),e.withDirectives(e.createElementVNode("div",null,[b.value.sceneLongitude?(e.openBlock(),e.createBlock(Se,{key:0,class:"north-indicator",longitude:b.value.sceneLongitude},null,8,["longitude"])):e.createCommentVNode("",!0),e.createVNode(Ue,{modelValue:k.value,"onUpdate:modelValue":B[2]||(B[2]=E=>k.value=E),"date-selector":v.value,"is-loading":!l.value.ready},null,8,["modelValue","date-selector","is-loading"])],512),[[e.vShow,l.value.preloaded]]),g.showCards&&y.value?(e.openBlock(),e.createBlock(Ne,{key:0,"is-hoverable":h.value,pos:i.value,onOutside:B[3]||(B[3]=()=>r.value=void 0)},{default:e.withCtx(()=>[e.renderSlot(g.$slots,"default",{building:y.value,canGoToBuilding:g.canGoToBuildingCallback(y.value),goToBuilding:()=>g.canGoToBuildingCallback(y.value)&&a("goToBuilding",y.value),pos:i.value,isHoverable:h.value,close:()=>r.value=void 0},void 0,!0)]),_:3},8,["is-hoverable","pos"])):e.createCommentVNode("",!0),e.createVNode(ke,{ref_key:"hoverProbe",ref:L},null,512)],4)):e.createCommentVNode("",!0)}}}),[["__scopeId","data-v-6103fad2"]]),jt=H(e.defineComponent({__name:"VBuildingChooserRasterOverlay",props:{imageUrl:{},dimensions:{},color:{default:()=>({r:108,g:0,b:108,a:144,s:2})}},setup(s){const o=s,t=e.ref(!1),a=e.ref(void 0),l=e.ref(new me),n=e.ref(void 0),i=e.ref(void 0),r=e.ref([]),k=e.ref();e.watch(()=>o.color,(_,v)=>{(_.r!==v.r||_.g!==v.g||_.b!==v.b||_.a!==v.a)&&m()}),e.onMounted(async()=>{a.value=await l.value.loadImage(o.imageUrl),p()});function p(){if(!a.value||!k.value)return;const{width:_,height:v}=o.dimensions;if(!(_===0||v===0)){n.value=k.value.getContext("2d",{willReadFrequently:!0}),n.value.drawImage(a.value,0,0,_,v),i.value=n.value.getImageData(0,0,_,v);for(let b=3;b<i.value.data.length;b+=4)i.value.data[b]!==0&&r.value.push(b);m(),t.value=!0}}function m(){n.value&&i.value&&(u(),n.value.putImageData(i.value,0,0))}function u(){if(o.color)for(let _=0;_<r.value.length;_++)i.value.data[r.value[_]-3]=o.color.r,i.value.data[r.value[_]-2]=o.color.g,i.value.data[r.value[_]-1]=o.color.b,i.value.data[r.value[_]]=o.color.a}return(_,v)=>(e.openBlock(),e.createElementBlock("canvas",e.mergeProps({ref_key:"canvas",ref:k,class:"overlay"},_.dimensions),null,16))}}),[["__scopeId","data-v-b6fc0f96"]]),Pt={key:0,style:{height:"50vh"},class:"d-flex justify-center align-center blue-grey lighten-5"},zt={class:"image-instances"},Yt=["innerHTML"],Wt=H(e.defineComponent({__name:"VBuildingChooserRaster",props:{showCards:{type:Boolean,default:!0},colorCallback:{type:Function,default:()=>({r:108,g:0,b:108,a:144,s:2})},buildingCallback:{type:Function,default:s=>s},canGoToBuildingCallback:{type:Function,default:()=>!0},buildingChooserTimeOfDay:{},cdnFileResolver:{},i18n:{},interactiveDesktop:{type:Boolean,default:!0},interactiveMobile:{type:Boolean,default:!0},customOverlayContent:{}},emits:["goToBuilding","hoverOverBuilding","hoverOutBuilding"],setup(s,{emit:o}){const t=s,a=o;e.provide("i18n",t.i18n?new oe(t.i18n.labels,t.i18n.language):new oe);const l=e.ref({}),n=e.ref({preloaded:!1,ready:!1}),i=e.ref({width:0,height:0}),r=e.ref({x:0,y:0,width:0,height:0}),k=e.ref(void 0),p=e.ref(ue.empty()),m=e.ref(pe.empty()),u=e.ref(void 0),_=e.ref(new Date().getHours()*2+(new Date().getMinutes()<30?0:1)),v=e.ref((g,B)=>({x:g,y:B})),b=e.ref(!1),C=e.ref(),V=e.ref(),L=e.ref(),h=e.computed(()=>{var g;return(g=C.value)==null?void 0:g.isHoverEnabled}),y=e.computed(()=>f(u.value));e.watchEffect(()=>{if(t.buildingChooserTimeOfDay){const[g,B,U]=/^(\d\d):(\d\d)$/.exec(t.buildingChooserTimeOfDay),E=parseInt(U);_.value=parseInt(B)*2+(E<15?0:E>45?2:1)}}),e.watch(u,(g,B)=>{g?a("hoverOverBuilding",f(g)):a("hoverOutBuilding",f(B))}),e.onMounted(async()=>{const B=await new Re(t.cdnFileResolver).loadBuildingChooser();B?(m.value=new pe(B.mapImage),p.value=new ue(B.buildingIds),l.value=new be(B.backgrounds),k.value={buildingOverlays:B.buildingOverlays,sceneLongitude:B.viewLongitude},N()):b.value=!0});function S({width:g,height:B}){i.value.width=g,i.value.height=B,e.nextTick(N)}function c(){n.value={preloaded:!1,ready:!1}}function f(g){return t.buildingCallback?t.buildingCallback(g):g}function w(g){const{x:B,y:U}=v.value(g.layerX,g.layerY);return p.value.getBuildingId(m.value,B,U)}function N(){if(V.value&&(m.value.update(V.value),L.value))for(const g of L.value)g.setupDraw()}function A(g){h.value&&(u.value=w(g),u.value!==void 0&&(r.value={x:g.layerX,y:g.layerY,width:i.value.width,height:i.value.height}))}function I(g){u.value=w(g),h.value&&y.value&&a("goToBuilding",y.value)}function R(g){return t.colorCallback(f(g),g===u.value?"hover":"idle")}function j({resolve:g}){v.value=g}return(g,B)=>{const U=e.resolveComponent("v-icon");return b.value?(e.openBlock(),e.createElementBlock("div",Pt,[e.createVNode(U,{"x-large":""},{default:e.withCtx(()=>[e.createTextVNode("mdi-alert-circle-outline")]),_:1})])):k.value?(e.openBlock(),e.createElementBlock("div",{key:1,style:e.normalizeStyle(`cursor: ${u.value?"pointer":"auto"};height: ${i.value.height}px; position: relative`),class:"image-container"},[e.createVNode(Ae,{desktop:g.interactiveDesktop,mobile:g.interactiveMobile,onUpdate:j},{default:e.withCtx(()=>[e.createElementVNode("div",zt,[e.createVNode(Te,{"image-urls":l.value.imageUrls,"active-index":_.value,onResize:S,onPreloaded:B[0]||(B[0]=E=>n.value.preloaded=!0),onReady:B[1]||(B[1]=E=>n.value.ready=!0),onReset:c},null,8,["image-urls","active-index"]),e.withDirectives(e.createElementVNode("div",null,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(k.value.buildingOverlays,E=>(e.openBlock(),e.createBlock(jt,{ref_for:!0,ref_key:"overlays",ref:L,key:E.id,"image-url":E.url,dimensions:i.value,color:R(E.id)},null,8,["image-url","dimensions","color"]))),128))],512),[[e.vShow,n.value.preloaded]])]),e.createElementVNode("canvas",e.mergeProps(i.value,{ref_key:"canvas",ref:V,class:{hover:!!u.value},onClick:I,onMousemove:A}),null,16),e.withDirectives(e.createElementVNode("div",{class:"custom-overlay-layer",innerHTML:g.customOverlayContent},null,8,Yt),[[e.vShow,n.value.preloaded]])]),_:1},8,["desktop","mobile"]),e.withDirectives(e.createElementVNode("div",null,[k.value.sceneLongitude?(e.openBlock(),e.createBlock(Se,{key:0,class:"north-indicator",longitude:k.value.sceneLongitude},null,8,["longitude"])):e.createCommentVNode("",!0),e.createVNode(Ue,{modelValue:_.value,"onUpdate:modelValue":B[2]||(B[2]=E=>_.value=E),"date-selector":l.value,"is-loading":!n.value.ready},null,8,["modelValue","date-selector","is-loading"])],512),[[e.vShow,n.value.preloaded]]),g.showCards&&y.value?(e.openBlock(),e.createBlock(Ne,{key:0,"is-hoverable":h.value,pos:r.value,onOutside:B[3]||(B[3]=()=>u.value=void 0)},{default:e.withCtx(()=>[e.renderSlot(g.$slots,"default",{building:y.value,canGoToBuilding:g.canGoToBuildingCallback(y.value),goToBuilding:()=>g.canGoToBuildingCallback(y.value)&&a("goToBuilding",y.value),pos:r.value,isHoverable:h.value,close:()=>u.value=void 0},void 0,!0)]),_:3},8,["is-hoverable","pos"])):e.createCommentVNode("",!0),e.createVNode(ke,{ref_key:"hoverProbe",ref:C},null,512)],4)):e.createCommentVNode("",!0)}}}),[["__scopeId","data-v-96bbdc16"]]),$e=e.defineComponent({__name:"VBuildingChooser",props:{showCards:{type:Boolean,default:!0},colorCallback:{type:Function,default:()=>({r:108,g:0,b:108,a:144,s:2})},buildingCallback:{type:Function,default:s=>s},cdnFileResolver:{},i18n:{},interactiveDesktop:{type:Boolean,default:!0},interactiveMobile:{type:Boolean,default:!0},useSvg:{type:Boolean,default:!1},buildingChooserTimeOfDay:{},canGoToBuildingCallback:{type:Function,default:()=>!0},customOverlayContent:{}},emits:["goToBuilding","hoverOverBuilding","hoverOutBuilding"],setup(s,{emit:o}){const t=s,a=o,l=e.computed(()=>t.useSvg?Ht:Wt);return(n,i)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(l.value),{"show-cards":n.showCards,"color-callback":n.colorCallback,"building-callback":n.buildingCallback,"cdn-file-resolver":n.cdnFileResolver,i18n:n.i18n,"interactive-desktop":n.interactiveDesktop,"interactive-mobile":n.interactiveMobile,"building-chooser-time-of-day":n.buildingChooserTimeOfDay,"can-go-to-building-callback":n.canGoToBuildingCallback,"custom-overlay-content":n.customOverlayContent,onGoToBuilding:i[0]||(i[0]=r=>a("goToBuilding",r)),onHoverOverBuilding:i[1]||(i[1]=r=>a("hoverOverBuilding",r)),onHoverOutBuilding:i[2]||(i[2]=r=>a("hoverOutBuilding",r))},e.createSlots({_:2},[e.renderList(Object.keys(n.$slots),r=>({name:r,fn:e.withCtx(k=>[e.renderSlot(n.$slots,r,e.normalizeProps(e.guardReactiveProps(k)))])}))]),1064,["show-cards","color-callback","building-callback","cdn-file-resolver","i18n","interactive-desktop","interactive-mobile","building-chooser-time-of-day","can-go-to-building-callback","custom-overlay-content"]))}});var fe={};Object.defineProperty(fe,"__esModule",{value:!0});var Gt=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(s){return typeof s}:function(s){return s&&typeof Symbol=="function"&&s.constructor===Symbol&&s!==Symbol.prototype?"symbol":typeof s},Qt=typeof window<"u"&&typeof window.document<"u",qt=typeof process<"u"&&process.versions!=null&&process.versions.node!=null,Zt=(typeof self>"u"?"undefined":Gt(self))==="object"&&self.constructor&&self.constructor.name==="DedicatedWorkerGlobalScope",Xt=typeof window<"u"&&window.name==="nodejs"||typeof navigator<"u"&&(navigator.userAgent.includes("Node.js")||navigator.userAgent.includes("jsdom")),Kt=typeof Deno<"u"&&typeof Deno.version<"u"&&typeof Deno.version.deno<"u",Jt=fe.isBrowser=Qt;fe.isWebWorker=Zt,fe.isNode=qt,fe.isJsDom=Xt,fe.isDeno=Kt;const eo={id:"player-wrapper"},to={id:"player-sizer"},oo={class:"player-control",id:"controls-top-left"},no={class:"player-control",id:"controls-top-center"},ao={class:"player-control",id:"controls-top-right"},lo={class:"player-control",id:"controls-center-left"},ro={class:"player-control",id:"controls-center-center"},io={class:"player-control",id:"controls-center-right"},so={class:"player-control",id:"controls-bottom-left"},co={class:"player-control",id:"controls-bottom-center"},mo={class:"player-control",id:"controls-bottom-right"},uo={id:"main-canvas"},po=H(e.defineComponent({__name:"VPlayer",props:{fileLoader:{},rootUrl:{},currentCameraId:{},showStaticImage:{type:Boolean},isFullScreen:{type:Boolean},mouseSensitivity:{default:1},isInIframe:{type:Boolean,default:!1}},emits:["newCameraCallback","newRotationCallback","newFloorCallback","newFovCallback","playerApiCallback","newSizeCallback"],setup(s,{emit:o}){const t=Ge.PlayerV2,a=s,l=o,n=e.ref(void 0),i=e.ref(void 0),r=e.ref(0),k=e.ref(0);e.watch(()=>a.rootUrl,async m=>{n.value&&(await n.value.loadInterior(m,i.value,!1),p())}),e.watch(()=>a.fileLoader,async()=>{n.value&&(await n.value.loadInterior(a.rootUrl,void 0,!1),p())},{deep:!0}),e.watch(()=>a.currentCameraId,m=>{n.value&&(i.value=m,n.value.goToCamera(m,!0))}),e.watch(n,m=>{l("playerApiCallback",m);const u=n.value.getCurrentCamera();u&&(i.value=u.id)}),e.onMounted(async()=>{window.addEventListener("resize",p),p();const v={initialized:()=>{n.value=t.Main.getPlayerAPI();const C=n.value.getCurrentCamera();C&&(i.value=C.id),l("newCameraCallback",i.value)},newCamera:C=>{l("newCameraCallback",C.id),l("newFloorCallback",C.floorLevel),n.value&&n.value.resetMarkerBehaviour(0),i.value=C.id},newFOV:C=>{l("newFovCallback",C),k.value=C},newRotation:C=>{const V=C+0;l("newRotationCallback",V),r.value=V}};if(!Jt)return;const b=await new t.Main(a.rootUrl,"qpc",v,void 0,a.currentCameraId,a.fileLoader);b&&(b.handleWindowResize(),window.addEventListener("resize",b.handleWindowResize.bind(b)),b.animate(),n.value=t.Main.getPlayerAPI(),n.value&&n.value.setLookSensitivity(a.mouseSensitivity))}),e.onBeforeUnmount(()=>{n.value&&n.value.destroy()});function p(){let m=1.7777777777777777,u=document.querySelector("#player-sizer");if(!u)return;let _=u.offsetWidth,v=_*(1/m);(window.innerWidth<=600||_<=600)&&(v=window.innerHeight*.75,a.isInIframe&&(v=screen.height*.65),_=v*(1/m)),u.style.height=v+"px",u.style.width=_+"px",l("newSizeCallback",_,v)}return(m,u)=>(e.openBlock(),e.createElementBlock("div",eo,[e.createElementVNode("div",to,[e.renderSlot(m.$slots,"slideshow-image",{},void 0,!0),e.createElementVNode("div",oo,[e.renderSlot(m.$slots,"top-left",{},void 0,!0)]),e.createElementVNode("div",no,[e.renderSlot(m.$slots,"top-center",{},void 0,!0)]),e.createElementVNode("div",ao,[e.renderSlot(m.$slots,"top-right",{},void 0,!0)]),e.createElementVNode("div",lo,[e.renderSlot(m.$slots,"center-left",{},void 0,!0)]),e.createElementVNode("div",ro,[e.renderSlot(m.$slots,"center-center",{},void 0,!0)]),e.createElementVNode("div",io,[e.renderSlot(m.$slots,"center-right",{},void 0,!0)]),e.createElementVNode("div",so,[e.renderSlot(m.$slots,"bottom-left",{},void 0,!0)]),e.createElementVNode("div",co,[e.renderSlot(m.$slots,"bottom-center",{},void 0,!0)]),e.createElementVNode("div",mo,[e.renderSlot(m.$slots,"bottom-right",{},void 0,!0)]),e.createElementVNode("div",uo,[e.createElementVNode("canvas",{id:"qpc",style:e.normalizeStyle(m.showStaticImage?"visibility:hidden":"visibility:visible")},null,4)])])]))}}),[["__scopeId","data-v-2374a426"]]),fo={class:"waypoint-carousel"},ho=37,go=39,Oe=H(e.defineComponent({__name:"VWaypointCarousel",props:{thumbnails:{},active:{}},emits:["previous","next","goto"],setup(s,{emit:o}){const t=s,a=o,l=e.ref(0),n=e.computed({get(){return t.active},set(p){l.value=p}}),i=e.computed(()=>/Android|webOS|iPhone|iPad|BlackBerry|Windows Phone|Opera Mini|IEMobile|Mobile/i.test(window.navigator.userAgent));e.onMounted(()=>{window.addEventListener("keydown",r)}),e.onBeforeUnmount(()=>{window.removeEventListener("keydown",r)});function r(p){switch(p.keyCode){case p.keyCode===ho:a("previous");break;case p.keyCode===go:a("next");break;default:return}}function k(p,m){m(),a("goto",p)}return(p,m)=>{const u=e.resolveComponent("v-icon"),_=e.resolveComponent("v-btn"),v=e.resolveComponent("v-hover"),b=e.resolveComponent("v-img"),C=e.resolveComponent("v-card"),V=e.resolveComponent("v-slide-group-item"),L=e.resolveComponent("v-slide-group");return e.openBlock(),e.createElementBlock("div",fo,[e.createVNode(L,{modelValue:n.value,"onUpdate:modelValue":m[2]||(m[2]=h=>n.value=h),"active-class":"active-apt","selected-class":"active-apt","show-arrows":"","center-active":"",mandatory:""},{prev:e.withCtx(()=>[e.createVNode(v,null,{default:e.withCtx(({isHovering:h})=>[e.createVNode(_,{elevation:"0",class:e.normalizeClass(["carousel-button",{mobile:i.value}]),onClick:m[0]||(m[0]=y=>a("previous"))},{default:e.withCtx(()=>[e.createVNode(u,{color:h?"#999":"#d2d2d2","x-large":""},{default:e.withCtx(()=>[e.createTextVNode(" mdi-chevron-left ")]),_:2},1032,["color"])]),_:2},1032,["class"])]),_:1})]),next:e.withCtx(()=>[e.createVNode(v,null,{default:e.withCtx(({isHovering:h})=>[e.createVNode(_,{elevation:"0",class:e.normalizeClass(["carousel-button",{mobile:i.value}]),onClick:m[1]||(m[1]=y=>a("next"))},{default:e.withCtx(()=>[e.createVNode(u,{color:h?"#999":"#d2d2d2","x-large":""},{default:e.withCtx(()=>[e.createTextVNode(" mdi-chevron-right ")]),_:2},1032,["color"])]),_:2},1032,["class"])]),_:1})]),default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(p.thumbnails,h=>(e.openBlock(),e.createBlock(V,{key:h.id},{default:e.withCtx(({toggle:y,selectedClass:S})=>[e.createVNode(C,{class:e.normalizeClass(["ma-2",S]),align:"center",justify:"center",height:i.value?50:100,width:i.value?80:160,elevation:"0",style:{overflow:"hidden"},onClick:c=>k(h.id,y)},{default:e.withCtx(()=>[e.createVNode(b,{"max-height":"100","max-width":"160",src:h.thumbnailUrl},null,8,["src"])]),_:2},1032,["class","height","width","onClick"])]),_:2},1024))),128))]),_:1},8,["modelValue"])])}}}),[["__scopeId","data-v-f8f5088a"]]),ko={style:{width:"24px",height:"24px"},viewBox:"0 0 18 16",xmlns:"http://www.w3.org/2000/svg"},wo=["stroke"],vo=["stroke"],Co={class:"floor-level-label"},yo=H(e.defineComponent({__name:"VFloorLevel",props:{level:{default:0},floorLevels:{default:()=>[]}},emits:["level"],setup(s,{emit:o}){const t=s,a=o,l=e.inject("i18n"),n=e.computed(()=>{const m=t.floorLevels;return m.sort(),m}),i=e.computed(()=>n.value.indexOf(t.level)+1<=n.value.length/2?"Lower":"Upper"),r=e.computed(()=>i.value==="Lower"),k=e.computed(()=>i.value==="Upper");function p(){const m=t.level+1;m>=n.value.length?a("level",n.value[0]):a("level",n.value[m])}return(m,u)=>{const _=e.resolveComponent("v-btn"),v=e.resolveComponent("v-tooltip");return e.openBlock(),e.createBlock(v,{right:"",attach:""},{activator:e.withCtx(({props:b})=>[e.createVNode(_,e.mergeProps({style:{cursor:"pointer"},density:"comfortable",elevation:"1",icon:""},b,{onClick:p}),{default:e.withCtx(()=>[(e.openBlock(),e.createElementBlock("svg",ko,[e.createElementVNode("path",{d:"M8.98034 10.3472L1.54055 5.8855L8.98034 1.42384L16.4201 5.8855L8.98034 10.3472Z",fill:"white",stroke:k.value?"black":"#999999","stroke-width":"1.5","stroke-linejoin":"round"},null,8,wo),e.createElementVNode("path",{d:"M8.98034 14.7993L1.54055 10.3376L8.98034 5.87599L16.4201 10.3376L8.98034 14.7993Z",fill:"white",stroke:r.value?"black":"#999999","stroke-width":"1.5","stroke-linejoin":"round"},null,8,vo)]))]),_:2},1040)]),default:e.withCtx(()=>[e.createElementVNode("span",Co,e.toDisplayString(e.unref(l).getLabel(i.value))+" "+e.toDisplayString(e.unref(l).getLabel("floor")),1)]),_:1})}}}),[["__scopeId","data-v-82187b23"]]),bo={id:"share-btns-wrapper",class:"text-center"},_o=H(e.defineComponent({__name:"VSocialShare",setup(s){const o=e.inject("i18n"),t=e.ref(!1),a=e.ref(location.href);function l(){return window.open("https://www.facebook.com/sharer/sharer.php?u="+encodeURIComponent(location.href),"facebook-share-dialog","width=626,height=436"),!1}function n(){return window.open("https://twitter.com/intent/tweet?text="+encodeURIComponent(location.href),"twitter-share-dialog","width=626,height=436"),!1}function i(){return window.open("https://www.linkedin.com/sharing/share-offsite/?url="+encodeURIComponent(location.href),"linkedin-share-dialog","width=626,height=736"),!1}function r(){navigator.clipboard.writeText(location.href)}return(k,p)=>{const m=e.resolveComponent("v-btn"),u=e.resolveComponent("v-tooltip"),_=e.resolveComponent("v-toolbar-title"),v=e.resolveComponent("v-spacer"),b=e.resolveComponent("v-toolbar"),C=e.resolveComponent("v-card-text"),V=e.resolveComponent("v-card"),L=e.resolveComponent("v-dialog");return e.openBlock(),e.createElementBlock("div",null,[e.createVNode(u,{elevation:"2",top:"",attach:""},{activator:e.withCtx(({props:h})=>[e.createVNode(m,e.mergeProps({density:"comfortable",elevation:"1",icon:"mdi-share-variant",onClick:p[0]||(p[0]=y=>t.value=!t.value)},h),null,16)]),default:e.withCtx(()=>[e.createElementVNode("span",null,e.toDisplayString(e.unref(o).getLabel("share")),1)]),_:1}),e.createVNode(L,{id:"share-box",width:"400",modelValue:t.value,"onUpdate:modelValue":p[2]||(p[2]=h=>t.value=h)},{default:e.withCtx(()=>[e.createVNode(V,null,{default:e.withCtx(()=>[e.createVNode(b,{elevation:"0"},{default:e.withCtx(()=>[e.createVNode(m,{size:"x-small",icon:"mdi-close",onClick:p[1]||(p[1]=h=>t.value=!1)}),e.createVNode(_,null,{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(e.unref(o).getLabel("share")),1)]),_:1}),e.createVNode(v)]),_:1}),e.createVNode(C,{class:"mt-5"},{default:e.withCtx(()=>[e.createElementVNode("p",bo,[e.createVNode(u,{location:"top"},{activator:e.withCtx(({props:h})=>[e.createVNode(m,e.mergeProps({depressed:"",fab:"",light:"",icon:"mdi-facebook"},h,{onClick:l}),null,16)]),default:e.withCtx(()=>[e.createElementVNode("span",null,e.toDisplayString(e.unref(o).getLabel("share-to-facebook")),1)]),_:1}),e.createVNode(u,{location:"top"},{activator:e.withCtx(({props:h})=>[e.createVNode(m,e.mergeProps({depressed:"",fab:"",light:"",icon:"mdi-linkedin"},h,{onClick:i}),null,16)]),default:e.withCtx(()=>[e.createElementVNode("span",null,e.toDisplayString(e.unref(o).getLabel("share-to-linkedin")),1)]),_:1}),e.createVNode(u,{location:"top"},{activator:e.withCtx(({props:h})=>[e.createVNode(m,e.mergeProps({depressed:"",fab:"",light:"",icon:"mdi-twitter"},h,{onClick:n}),null,16)]),default:e.withCtx(()=>[e.createElementVNode("span",null,e.toDisplayString(e.unref(o).getLabel("share-to-twitter")),1)]),_:1}),e.createVNode(u,{location:"top"},{activator:e.withCtx(({props:h})=>[e.createVNode(m,e.mergeProps({depressed:"",fab:"",light:"",icon:"mdi-email",link:"",href:`mailto:?body=${a.value}`},h),null,16,["href"])]),default:e.withCtx(()=>[e.createElementVNode("span",null,e.toDisplayString(e.unref(o).getLabel("share-via-email")),1)]),_:1}),e.createVNode(u,{location:"top"},{activator:e.withCtx(({props:h})=>[e.createVNode(m,e.mergeProps({depressed:"",fab:"",light:"",icon:"mdi-content-copy",onClick:r},h),null,16)]),default:e.withCtx(()=>[e.createElementVNode("span",null,e.toDisplayString(e.unref(o).getLabel("copy-link")),1)]),_:1}),e.createVNode(v)])]),_:1})]),_:1})]),_:1},8,["modelValue"])])}}}),[["__scopeId","data-v-66122fea"]]),Eo=H(e.defineComponent({__name:"VInteriorSelector",props:{availableArchetypes:{},selectedIndex:{}},emits:["selectInterior"],setup(s,{emit:o}){const t=o,a=e.inject("i18n"),l=e.inject("localMode"),n=e.inject("fileLoader");function i(r){let k=r;return l&&(k=`${n.getURL(r)}`),k}return(r,k)=>{const p=e.resolveComponent("v-btn"),m=e.resolveComponent("v-img"),u=e.resolveComponent("v-list-item-title"),_=e.resolveComponent("v-list-item"),v=e.resolveComponent("v-list"),b=e.resolveComponent("v-menu");return e.openBlock(),e.createElementBlock("div",null,[e.createVNode(b,{transition:"slide-x-reverse-transition",location:"top end",origin:"end bottom",elevation:"0"},{activator:e.withCtx(({props:C})=>[e.createVNode(p,e.mergeProps({"prepend-icon":"mdi-palette-outline",rounded:""},C),{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(e.unref(a).getLabel("interior")),1)]),_:2},1040)]),default:e.withCtx(()=>[e.createVNode(v,{class:"interior-selector-list"},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(r.availableArchetypes,(C,V)=>(e.openBlock(),e.createBlock(_,{density:"compact",key:`at-menuitem-${V}`,onClick:L=>t("selectInterior",C.archetypeID),active:V===r.selectedIndex,class:"interior-selector-list-item"},{prepend:e.withCtx(()=>[e.createVNode(m,{width:"100","max-width":"100",height:"66",src:i(C.url)},null,8,["src"])]),default:e.withCtx(()=>[e.createVNode(u,{class:"text-caption py-2 px-4"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(e.unref(a).get(C.title)),1)]),_:2},1024)]),_:2},1032,["onClick","active"]))),128))]),_:1})]),_:1})])}}}),[["__scopeId","data-v-cc96ef5c"]]),Vo="data:image/png;base64,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",Bo="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGwAAABsCAYAAACPZlfNAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAMdSURBVHgB7dxBTttQEMbxsU32idouujM7FhjlBqQnaG5AbkBvUPUEpTegN8gR6AlAgQU70lWlQkUUscR+fVZrRKlL7CTQN6P/T0IJwYkUDfNhvzdEBAAAAAAAAAAAAAAAAAAAAAD+i+t+v3+5vT0Qg2IxqHBuP47jXTHIZMHEuYETeScGmSvYZb9fFiv1d7sWY9FcwWLn9u7ux/FbMcZeJPo4vLsrMhJjTBXsXhxWzMWiqYLdj8NKlCR7YoipgjnnhjUPDv11WVeMMFOwqywb+Zu6wnQlz81ck5kp2GNnhLmha7JIDCgjLy+K60cOmSVxvNk7OZmJciY6LM/z4YJDukVRmDj5sBGJcbywGLUnJAqpj0Qfh6mPw4smx/pY7GmPRfUd5uNw0PRYC7GoPxIbxGHFQiyqjsQ2cVjRHouqO8xHXOvVeP+cfVFMeySOpCV3bzVfI7WRuEwcVlxRvHl1dnYkCqntsFWiTfO8h+ZIXPqMT/PGpsqC1WxUtpVq3dhUWbC6jcrWr6F03kNnJK7hTE9rLKor2BrisKJy3kNdwdYRh3evpTAW9UXiGi98y1jUNu+hqmBXWTZcUxxWure3t31RRFXBoieIMG1jcGqWphrMbSxL1byHmg5rMLexrPIXQc3Jh5qCPekZnXMjUUJFJK6yMt+Ulo1NFR3WZm5jWVrmPXREYou5jWVpmfcIPhKfIw4rGmIx+A57jjisaIjF4AsWRVG7nWXnjhK/fJWUEefcuN1Tw4/FoCOxaRz6N3Hi22M8v7n5tDmd/hFp37a20qTTGcRR9F4aLGslSZL2jo+/SqA2JGALxthmviMO/RsY905Pv/zroNfn51N/c1h+XWfZbl7ug0VR2Um1i75Fno/8zQcJVNAd9mNn5+KvxV4feT4mx/P5/PPDbmrje5aN/N+DPV+8wYMfTV9OJpsSqGALVn78kI/D49/fzqKiOKiLvFWVkbnR6exHv7ouLR8LeQwu2IL57vroIy9NRA4ei7x1qiLTF2/6YjIJNhbxwEWamvkndgAAAAAAAAAAAAAAAAAAAAAAAAAAAABYxU+ILzGcMmFd0QAAAABJRU5ErkJggg==",No=e.defineComponent({__name:"VCompass",props:{rotation:{}},setup(s){const o=s,t=e.ref(Bo),a=e.ref({backgroundImage:`url(${Vo})`,backgroundSize:"contain"}),l=e.computed(()=>({transform:`rotate(${-o.rotation+180}deg)`}));return(n,i)=>{const r=e.resolveComponent("v-img");return e.openBlock(),e.createElementBlock("div",{style:e.normalizeStyle(a.value)},[e.createVNode(r,{class:"compass-needle",src:t.value,style:e.normalizeStyle(l.value)},null,8,["src","style"])],4)}}}),Ao={class:"static-image-wrapper"},Lo=H(e.defineComponent({__name:"VSingleImage",props:{image:{},aspectRatio:{default:"wide"}},setup(s){const o=s,t=e.computed(()=>({"background-image":`url("${encodeURI(o.image)}")`}));return(a,l)=>(e.openBlock(),e.createElementBlock("div",Ao,[e.createElementVNode("div",{class:e.normalizeClass(["img-div",[a.aspectRatio]]),style:e.normalizeStyle(t.value)},null,6)]))}}),[["__scopeId","data-v-3e99d275"]]),So="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACoAAAAqCAMAAADyHTlpAAAAllBMVEUAAAD/rwD/rwD/qgP/qwL/qAL/qwP/qwH/rAL/rAL/qwL/qQD/qwL/qwD/qQD/qwL/pQD/qgH/nwD/pwD/qQL/rAL/qwD/qwT/rAP/qwL/rAL/rAD/rAL/qgD/qwL/qQP/rAP/rAH/qgH/qwL/qwD/qgL/rwD/qgD/qwH/qgD/qgL/rAD/qgD/qgD/qwH/rAP/qgX/qwA+O5E+AAAAMnRSTlMAECBg/3C/v5Dff4+PT1/PMN8QII9vf0CfgO9vnzDvUF+vr3BA3zA/z2+fX59g71AwcDsf6p0AAAFGSURBVHicvdRtT8MgEABgaM9hu1aHXV/cpm6zWt829f//OYEK9qC3NDF6HxYCTw5GuWPsd8GjqTIGOJtIZwDi/ymnKPflOSTub6cAcwdnkHk5AQY2v3Dzl2phga1EFkl5hScLbZc+LbUs/FltK5OpLpsmrS0NpbLLSu3Er1dgIsn0cdabEdlHlICL5IZSRq5gELcn7DCnsfQL24AX5PeNfAlAHSEOaYrFXaNiqwa7kO7V9L1dt9u25kX58cBY7dbZYz/MKdr2o06nrZ6klNX4AYRdf8aHzkL6QtxAG9KculjhS0nJMO0rSVmF5ZyWnn2jFC+36vcgLTzq+3lPRx6XrjjTqQ7iqJxY6+KLydp0ZWhrVHWE0JoqHq1NSHBxF0h+1Mh6LUMM5LC/Kht8h+5nG9zeTtbt37Ti3XT6+d29pkTXTZVEfAEKARRF2iiwhQAAAB10RVh0U29mdHdhcmUAQGx1bmFwYWludC9wbmctY29kZWP1QxkeAAAAAElFTkSuQmCC",xo={class:"d-flex flex-column align-center justify-center clock-face"},Io={class:"clock-icon"},Mo={class:"clock-value grey--text text--darken-3"},Fo=H(e.defineComponent({__name:"VTimeOfDay",props:{hours:{default:0},minutes:{default:0}},setup(s){const o=s,t=e.computed(()=>[a(o.hours),":",a(o.minutes)].join(""));function a(l){return("0"+l).slice(-2)}return(l,n)=>{const i=e.resolveComponent("v-img");return e.openBlock(),e.createElementBlock("div",xo,[e.createElementVNode("div",Io,[e.createVNode(i,{src:e.unref(So),"aspect-ratio":"1"},null,8,["src"])]),e.createElementVNode("div",Mo,e.toDisplayString(t.value),1)])}}}),[["__scopeId","data-v-9a5f102b"]]),Do={id:"btn-fullscreen",class:"btn-placeholder mr-2"},Uo=e.defineComponent({__name:"VFullScreenButton",props:{isFullScreen:{type:Boolean}},emits:["toggleFullscreen"],setup(s,{emit:o}){const t=o;return(a,l)=>{const n=e.resolveComponent("v-btn");return e.openBlock(),e.createElementBlock("div",Do,[e.createVNode(n,{density:"comfortable",elevation:"3",icon:a.isFullScreen?"mdi-fullscreen-exit":"mdi-fullscreen",onClick:l[0]||(l[0]=i=>t("toggleFullscreen"))},null,8,["icon"])])}}}),To=e.defineComponent({__name:"VViewModeToggle",props:{showStaticImage:{type:Boolean}},emits:["toggle"],setup(s,{emit:o}){const t=s,a=o,l=e.inject("i18n"),n=e.computed(()=>{let i="virtual-tour";return t.showStaticImage||(i="slide-show"),i});return(i,r)=>{const k=e.resolveComponent("v-btn");return e.openBlock(),e.createBlock(k,{color:"darken-2",elevation:"1",rounded:"",plain:"",onClick:r[0]||(r[0]=p=>a("toggle"))},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(e.unref(l).getLabel(n.value)),1)]),_:1})}}}),Ro={key:0,class:"text-white disclaimer caption"},$o=H(e.defineComponent({__name:"VDisclaimer",setup(s){const o=e.inject("i18n"),t=e.ref(!0);return(a,l)=>(e.openBlock(),e.createBlock(e.Transition,{name:"fade-transition"},{default:e.withCtx(()=>[t.value?(e.openBlock(),e.createElementBlock("div",Ro,[e.createTextVNode(e.toDisplayString(e.unref(o).getLabel("all-illustrations-are-indicative-deviations-may-occur"))+" ",1),e.createElementVNode("span",{onClick:l[0]||(l[0]=n=>t.value=!1),class:"link-text text-decoration-underline"},e.toDisplayString(e.unref(o).getLabel("i-understand")),1)])):e.createCommentVNode("",!0)]),_:1}))}}),[["__scopeId","data-v-28008b18"]]),le=s=>(e.pushScopeId("data-v-53c0bb27"),s=s(),e.popScopeId(),s),Oo={key:0,class:"tutorial"},Ho={key:0,class:"desktop-content"},jo={class:"d-inline-flex"},Po={class:"box col"},zo=le(()=>e.createElementVNode("div",{class:"tutorial-icon d-flex align-items-center justify-center"},[e.createElementVNode("svg",{width:"100",height:"65",viewBox:"0 0 100 65",fill:"none",xmlns:"http://www.w3.org/2000/svg"},[e.createElementVNode("path",{d:"M72 30H86.9736M86.9736 30L81 36M86.9736 30L81 24",stroke:"#FF3E3E","stroke-width":"1.5","stroke-linecap":"round","stroke-linejoin":"round"}),e.createElementVNode("path",{d:"M27.9736 30H13M13 30L18.9736 36M13 30L18.9736 24",stroke:"#FF3E3E","stroke-width":"1.5","stroke-linecap":"round","stroke-linejoin":"round"}),e.createElementVNode("path",{d:"M36 30H64V40C64 47.732 57.732 54 50 54V54C42.268 54 36 47.732 36 40V30Z",fill:"white",stroke:"black","stroke-width":"1.5"}),e.createElementVNode("path",{d:"M36 25C36 17.268 42.268 11 50 11V11V30H36V25Z",fill:"#FF3E3E",stroke:"black","stroke-width":"1.5"}),e.createElementVNode("path",{d:"M64 25C64 17.268 57.732 11 50 11V11V30H64V25Z",fill:"white",stroke:"black","stroke-width":"1.5"}),e.createElementVNode("path",{d:"M53.25 23V30C53.25 31.7949 51.7949 33.25 50 33.25C48.2051 33.25 46.75 31.7949 46.75 30V23C46.75 21.2051 48.2051 19.75 50 19.75C51.7949 19.75 53.25 21.2051 53.25 23Z",fill:"white",stroke:"black","stroke-width":"1.5"})])],-1)),Yo={class:"text mt-3"},Wo={class:"box col"},Go=le(()=>e.createElementVNode("div",{class:"tutorial-icon d-flex align-items-center justify-center"},[e.createElementVNode("svg",{width:"100",height:"65",viewBox:"0 0 100 65",fill:"none",xmlns:"http://www.w3.org/2000/svg"},[e.createElementVNode("path",{d:"M79.9936 27.0175C79.9881 19.276 66.3321 13.0323 49.492 13.0719C32.652 13.1116 19.0049 19.4194 19.0105 27.1609C19.016 34.9025 32.6721 41.1461 49.5121 41.1065C66.3521 41.0669 79.9992 34.759 79.9936 27.0175Z",fill:"white",stroke:"#B3B3B3","stroke-width":"1.5"}),e.createElementVNode("path",{d:"M61.8032 45.179L56.543 50.3218V28.0361L72.543 43.4647H65.0909L67.9402 50.3218L64.6526 52.0361L61.8032 45.179Z",fill:"white",stroke:"black","stroke-width":"1.5","stroke-linejoin":"round"}),e.createElementVNode("path",{d:"M50.502 28.0361L46.502 28.0361",stroke:"#FF3E3E","stroke-width":"1.5","stroke-linecap":"round"}),e.createElementVNode("path",{d:"M50.502 28.0361L46.502 28.0361",stroke:"#FF3E3E","stroke-width":"1.5","stroke-linecap":"round"}),e.createElementVNode("path",{d:"M50.502 28.0361L46.502 28.0361",stroke:"#FF3E3E","stroke-width":"1.5","stroke-linecap":"round"}),e.createElementVNode("path",{d:"M66.502 28.0361L62.502 28.0361",stroke:"#FF3E3E","stroke-width":"1.5","stroke-linecap":"round"}),e.createElementVNode("path",{d:"M66.502 28.0361L62.502 28.0361",stroke:"#FF3E3E","stroke-width":"1.5","stroke-linecap":"round"}),e.createElementVNode("path",{d:"M66.502 28.0361L62.502 28.0361",stroke:"#FF3E3E","stroke-width":"1.5","stroke-linecap":"round"}),e.createElementVNode("path",{d:"M52.1582 24.0361L49.1582 21.0361",stroke:"#FF3E3E","stroke-width":"1.5","stroke-linecap":"round"}),e.createElementVNode("path",{d:"M52.1582 24.0361L49.1582 21.0361",stroke:"#FF3E3E","stroke-width":"1.5","stroke-linecap":"round"}),e.createElementVNode("path",{d:"M52.1582 24.0361L49.1582 21.0361",stroke:"#FF3E3E","stroke-width":"1.5","stroke-linecap":"round"}),e.createElementVNode("path",{d:"M60.502 24.0361L63.502 21.0361",stroke:"#FF3E3E","stroke-width":"1.5","stroke-linecap":"round"}),e.createElementVNode("path",{d:"M60.502 24.0361L63.502 21.0361",stroke:"#FF3E3E","stroke-width":"1.5","stroke-linecap":"round"}),e.createElementVNode("path",{d:"M60.502 24.0361L63.502 21.0361",stroke:"#FF3E3E","stroke-width":"1.5","stroke-linecap":"round"}),e.createElementVNode("path",{d:"M56.502 22.0361L56.502 18.0361",stroke:"#FF3E3E","stroke-width":"1.5","stroke-linecap":"round"}),e.createElementVNode("path",{d:"M56.502 22.0361L56.502 18.0361",stroke:"#FF3E3E","stroke-width":"1.5","stroke-linecap":"round"}),e.createElementVNode("path",{d:"M56.502 22.0361L56.502 18.0361",stroke:"#FF3E3E","stroke-width":"1.5","stroke-linecap":"round"}),e.createElementVNode("path",{d:"M52.1582 32.0361L49.1582 35.0361",stroke:"#FF3E3E","stroke-width":"1.5","stroke-linecap":"round"}),e.createElementVNode("path",{d:"M52.1582 32.0361L49.1582 35.0361",stroke:"#FF3E3E","stroke-width":"1.5","stroke-linecap":"round"}),e.createElementVNode("path",{d:"M52.1582 32.0361L49.1582 35.0361",stroke:"#FF3E3E","stroke-width":"1.5","stroke-linecap":"round"})])],-1)),Qo={class:"text mt-3"},qo={class:"box col"},Zo=le(()=>e.createElementVNode("div",{class:"tutorial-icon d-flex align-items-center justify-center"},[e.createElementVNode("svg",{width:"100",height:"65",viewBox:"0 0 100 65",fill:"none",xmlns:"http://www.w3.org/2000/svg"},[e.createElementVNode("path",{d:"M36 33H64V43C64 50.732 57.732 57 50 57V57C42.268 57 36 50.732 36 43V33Z",fill:"white",stroke:"black","stroke-width":"1.5"}),e.createElementVNode("path",{d:"M36 28C36 20.268 42.268 14 50 14V14V33H36V28Z",fill:"white",stroke:"black","stroke-width":"1.5"}),e.createElementVNode("path",{d:"M64 28C64 20.268 57.732 14 50 14V14V33H64V28Z",fill:"white",stroke:"black","stroke-width":"1.5"}),e.createElementVNode("path",{d:"M53.25 26V33C53.25 34.7949 51.7949 36.25 50 36.25C48.2051 36.25 46.75 34.7949 46.75 33V26C46.75 24.2051 48.2051 22.75 50 22.75C51.7949 22.75 53.25 24.2051 53.25 26Z",fill:"#FF3E3E",stroke:"black","stroke-width":"1.5"}),e.createElementVNode("path",{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M74.5352 20.7593L80.3458 26.5699C80.9316 27.1557 80.9316 28.1055 80.3458 28.6913C79.76 29.277 78.8103 29.277 78.2245 28.6913L72.4138 22.8806L74.5352 20.7593Z",fill:"black",stroke:"black","stroke-width":"1.5","stroke-linecap":"round"}),e.createElementVNode("circle",{cx:"66.5",cy:"15.5",r:"9.75",fill:"white",stroke:"black","stroke-width":"1.5"}),e.createElementVNode("rect",{x:"66",y:"11",width:"1",height:"9",fill:"black",stroke:"black","stroke-width":"0.75","stroke-linejoin":"round"}),e.createElementVNode("rect",{x:"71",y:"15",width:"1",height:"9",transform:"rotate(90 71 15)",fill:"black",stroke:"black","stroke-width":"0.75","stroke-linejoin":"round"})])],-1)),Xo={class:"text mt-3"},Ko={class:"d-inline-flex space-around"},Jo={class:"box col"},en=le(()=>e.createElementVNode("div",{class:"tutorial-icon d-flex align-items-center justify-center"},[e.createElementVNode("svg",{width:"100",height:"65",viewBox:"0 0 100 65",fill:"none",xmlns:"http://www.w3.org/2000/svg"},[e.createElementVNode("rect",{x:"65.0967",y:"34.3228",width:"20.9032",height:"20.9032",rx:"2",fill:"white",stroke:"black","stroke-width":"1.5"}),e.createElementVNode("rect",{x:"39.5488",y:"29.6777",width:"20.9032",height:"20.9032",rx:"2",transform:"rotate(-90 39.5488 29.6777)",fill:"white",stroke:"black","stroke-width":"1.5"}),e.createElementVNode("rect",{x:"60.4512",y:"34.3228",width:"20.9032",height:"20.9032",rx:"2",transform:"rotate(90 60.4512 34.3228)",fill:"white",stroke:"black","stroke-width":"1.5"}),e.createElementVNode("rect",{x:"34.9033",y:"55.2261",width:"20.9032",height:"20.9032",rx:"2",transform:"rotate(-180 34.9033 55.2261)",fill:"white",stroke:"black","stroke-width":"1.5"}),e.createElementVNode("path",{d:"M77.7025 44.3796C77.9599 44.5798 77.9599 44.9688 77.7025 45.169L74.6621 47.5338C74.3337 47.7892 73.8551 47.5552 73.8551 47.1391L73.8551 42.4095C73.8551 41.9935 74.3337 41.7594 74.6621 42.0149L77.7025 44.3796Z",fill:"#FF3E3E"}),e.createElementVNode("path",{d:"M49.6047 17.0724C49.8049 16.815 50.1939 16.815 50.3941 17.0724L52.7589 20.1128C53.0143 20.4412 52.7803 20.9198 52.3642 20.9198L47.6346 20.9198C47.2185 20.9198 46.9845 20.4412 47.2399 20.1128L49.6047 17.0724Z",fill:"#FF3E3E"}),e.createElementVNode("path",{d:"M50.3953 46.9281C50.1951 47.1855 49.8061 47.1855 49.6059 46.9281L47.2411 43.8877C46.9857 43.5592 47.2197 43.0807 47.6358 43.0807L52.3654 43.0807C52.7815 43.0807 53.0155 43.5592 52.7601 43.8877L50.3953 46.9281Z",fill:"#FF3E3E"}),e.createElementVNode("path",{d:"M22.2975 45.1692C22.0401 44.969 22.0401 44.58 22.2975 44.3798L25.3379 42.0151C25.6663 41.7596 26.1449 41.9937 26.1449 42.4097L26.1449 47.1393C26.1449 47.5554 25.6663 47.7894 25.3379 47.534L22.2975 45.1692Z",fill:"#FF3E3E"})])],-1)),tn={class:"text mt-3"},on={key:1,class:"d-flex flex-column tablet-mobile-content"},nn={class:"box horizontal mt-3"},an=le(()=>e.createElementVNode("div",{class:"tutorial-icon d-flex align-items-center justify-center"},[e.createElementVNode("svg",{width:"101",height:"65",viewBox:"0 0 101 65",fill:"none",xmlns:"http://www.w3.org/2000/svg"},[e.createElementVNode("path",{d:"M68 28H87.9736M87.9736 28L82 34M87.9736 28L82 22",stroke:"#FF3E3E","stroke-width":"1.5","stroke-linecap":"round","stroke-linejoin":"round"}),e.createElementVNode("path",{d:"M33.9727 28H13.999M13.999 28L19.9727 34M13.999 28L19.9727 22",stroke:"#FF3E3E","stroke-width":"1.5","stroke-linecap":"round","stroke-linejoin":"round"}),e.createElementVNode("path",{d:"M57.3126 51.1276L62.5533 49.7234C65.3195 48.9822 67.2473 46.4813 67.2601 43.6176C67.2626 43.0532 67.1898 42.4909 67.0438 41.9457L64.9992 34.3153C64.7491 33.3818 63.7895 32.8278 62.8559 33.0779C61.9223 33.328 61.3683 34.2876 61.6185 35.2212L61.0361 33.0479C60.7502 31.9809 59.6536 31.3478 58.5866 31.6337C57.5197 31.9195 56.8865 33.0162 57.1724 34.0831L56.7195 32.3928C56.3979 31.1925 55.1641 30.4802 53.9638 30.8018C52.7635 31.1234 52.0512 32.3572 52.3728 33.5575L50.6258 27.0375C50.3399 25.9705 49.2432 25.3374 48.1763 25.6233C47.1094 25.9091 46.4762 27.0058 46.7621 28.0727L50.3855 41.5957C49.2796 40.7276 47.5926 39.524 46.3279 38.6369C45.3814 37.9729 44.0801 38.2068 43.4137 39.1516C42.8107 40.0066 42.9238 41.1741 43.6798 41.8975L51.8691 49.7332C53.3154 51.1171 55.3791 51.6457 57.3126 51.1276Z",fill:"white"}),e.createElementVNode("path",{d:"M53.7316 38.6286L52.6963 34.7649M52.6963 34.7649L50.6258 27.0375C50.3399 25.9705 49.2432 25.3374 48.1763 25.6233V25.6233C47.1094 25.9091 46.4762 27.0058 46.7621 28.0727L50.3855 41.5957C49.2796 40.7276 47.5926 39.524 46.3279 38.6369C45.3814 37.9729 44.0801 38.2068 43.4137 39.1516V39.1516C42.8107 40.0066 42.9238 41.1741 43.6798 41.8975L51.8691 49.7332C53.3154 51.1171 55.3791 51.6457 57.3126 51.1276L62.5533 49.7234C65.3195 48.9822 67.2473 46.4813 67.2601 43.6176V43.6176C67.2626 43.0532 67.1898 42.4909 67.0438 41.9457L64.9992 34.3153C64.7491 33.3818 63.7895 32.8278 62.8559 33.0779V33.0779V33.0779C61.9223 33.328 61.3683 34.2876 61.6185 35.2212L61.942 36.4286M52.6963 34.7649L52.3728 33.5575C52.0512 32.3572 52.7635 31.1234 53.9638 30.8018V30.8018C55.1641 30.4802 56.3979 31.1925 56.7195 32.3928L57.3018 34.5661M58.2077 37.9469L57.3018 34.5661M57.3018 34.5661L57.1724 34.0831C56.8865 33.0162 57.5197 31.9195 58.5866 31.6337V31.6337C59.6536 31.3478 60.7502 31.9809 61.0361 33.0479L61.942 36.4286M62.3302 37.8775L61.942 36.4286",stroke:"black","stroke-width":"1.5","stroke-linecap":"round","stroke-linejoin":"round"})])],-1)),ln={class:"text ml-2"},rn={class:"box horizontal mt-3"},sn=le(()=>e.createElementVNode("div",{class:"tutorial-icon d-flex align-items-center justify-center"},[e.createElementVNode("svg",{width:"99",height:"65",viewBox:"0 0 99 65",fill:"none",xmlns:"http://www.w3.org/2000/svg"},[e.createElementVNode("path",{d:"M79.9927 29.9814C79.9871 22.2398 66.3311 15.9962 49.491 16.0358C32.651 16.0754 19.0039 22.3833 19.0095 30.1248C19.015 37.8663 32.6711 44.11 49.5111 44.0704C66.3512 44.0308 79.9982 37.7229 79.9927 29.9814Z",fill:"white",stroke:"#B3B3B3","stroke-width":"1.5"}),e.createElementVNode("path",{d:"M50.5 31L46.5 31",stroke:"#FF3E3E","stroke-width":"1.5","stroke-linecap":"round"}),e.createElementVNode("path",{d:"M50.5 31L46.5 31",stroke:"#FF3E3E","stroke-width":"1.5","stroke-linecap":"round"}),e.createElementVNode("path",{d:"M50.5 31L46.5 31",stroke:"#FF3E3E","stroke-width":"1.5","stroke-linecap":"round"}),e.createElementVNode("path",{d:"M66.5 31L62.5 31",stroke:"#FF3E3E","stroke-width":"1.5","stroke-linecap":"round"}),e.createElementVNode("path",{d:"M66.5 31L62.5 31",stroke:"#FF3E3E","stroke-width":"1.5","stroke-linecap":"round"}),e.createElementVNode("path",{d:"M66.5 31L62.5 31",stroke:"#FF3E3E","stroke-width":"1.5","stroke-linecap":"round"}),e.createElementVNode("path",{d:"M52.1562 27L49.1562 24",stroke:"#FF3E3E","stroke-width":"1.5","stroke-linecap":"round"}),e.createElementVNode("path",{d:"M52.1562 27L49.1562 24",stroke:"#FF3E3E","stroke-width":"1.5","stroke-linecap":"round"}),e.createElementVNode("path",{d:"M52.1562 27L49.1562 24",stroke:"#FF3E3E","stroke-width":"1.5","stroke-linecap":"round"}),e.createElementVNode("path",{d:"M60.5 27L63.5 24",stroke:"#FF3E3E","stroke-width":"1.5","stroke-linecap":"round"}),e.createElementVNode("path",{d:"M60.5 27L63.5 24",stroke:"#FF3E3E","stroke-width":"1.5","stroke-linecap":"round"}),e.createElementVNode("path",{d:"M60.5 27L63.5 24",stroke:"#FF3E3E","stroke-width":"1.5","stroke-linecap":"round"}),e.createElementVNode("path",{d:"M56.5 25L56.5 21",stroke:"#FF3E3E","stroke-width":"1.5","stroke-linecap":"round"}),e.createElementVNode("path",{d:"M56.5 25L56.5 21",stroke:"#FF3E3E","stroke-width":"1.5","stroke-linecap":"round"}),e.createElementVNode("path",{d:"M56.5 25L56.5 21",stroke:"#FF3E3E","stroke-width":"1.5","stroke-linecap":"round"}),e.createElementVNode("path",{d:"M52.1562 35L49.1562 38",stroke:"#FF3E3E","stroke-width":"1.5","stroke-linecap":"round"}),e.createElementVNode("path",{d:"M52.1562 35L49.1562 38",stroke:"#FF3E3E","stroke-width":"1.5","stroke-linecap":"round"}),e.createElementVNode("path",{d:"M52.1562 35L49.1562 38",stroke:"#FF3E3E","stroke-width":"1.5","stroke-linecap":"round"}),e.createElementVNode("path",{d:"M64.8126 54.1276L70.0533 52.7234C72.8195 51.9822 74.7473 49.4813 74.7601 46.6176C74.7626 46.0532 74.6898 45.4909 74.5438 44.9457L72.4992 37.3153C72.2491 36.3818 71.2895 35.8278 70.3559 36.0779C69.4223 36.328 68.8683 37.2876 69.1185 38.2212L68.5361 36.0479C68.2502 34.9809 67.1536 34.3478 66.0866 34.6337C65.0197 34.9195 64.3865 36.0162 64.6724 37.0831L64.2195 35.3928C63.8979 34.1925 62.6641 33.4802 61.4638 33.8018C60.2635 34.1234 59.5512 35.3572 59.8728 36.5575L58.1258 30.0375C57.8399 28.9705 56.7432 28.3374 55.6763 28.6233C54.6094 28.9091 53.9762 30.0058 54.2621 31.0727L57.8855 44.5957C56.7796 43.7276 55.0926 42.524 53.8279 41.6369C52.8814 40.9729 51.5801 41.2068 50.9137 42.1516C50.3107 43.0066 50.4238 44.1741 51.1798 44.8975L59.3691 52.7332C60.8154 54.1171 62.8791 54.6457 64.8126 54.1276Z",fill:"white"}),e.createElementVNode("path",{d:"M61.2316 41.6286L60.1963 37.7649M60.1963 37.7649L58.1258 30.0375C57.8399 28.9705 56.7432 28.3374 55.6763 28.6233V28.6233C54.6094 28.9091 53.9762 30.0058 54.2621 31.0727L57.8855 44.5957C56.7796 43.7276 55.0926 42.524 53.8279 41.6369C52.8814 40.9729 51.5801 41.2068 50.9137 42.1516V42.1516C50.3107 43.0066 50.4238 44.1741 51.1798 44.8975L59.3691 52.7332C60.8154 54.1171 62.8791 54.6457 64.8126 54.1276L70.0533 52.7234C72.8195 51.9822 74.7473 49.4813 74.7601 46.6176V46.6176C74.7626 46.0532 74.6898 45.4909 74.5438 44.9457L72.4992 37.3153C72.2491 36.3818 71.2895 35.8278 70.3559 36.0779V36.0779V36.0779C69.4223 36.328 68.8683 37.2876 69.1185 38.2212L69.442 39.4286M60.1963 37.7649L59.8728 36.5575C59.5512 35.3572 60.2635 34.1234 61.4638 33.8018V33.8018C62.6641 33.4802 63.8979 34.1925 64.2195 35.3928L64.8018 37.5661M65.7077 40.9469L64.8018 37.5661M64.8018 37.5661L64.6724 37.0831C64.3865 36.0162 65.0197 34.9195 66.0866 34.6337V34.6337C67.1536 34.3478 68.2502 34.9809 68.5361 36.0479L69.442 39.4286M69.8302 40.8775L69.442 39.4286",stroke:"black","stroke-width":"1.5","stroke-linecap":"round","stroke-linejoin":"round"})])],-1)),cn={class:"text ml-2"},dn={class:"box horizontal mt-3"},mn=le(()=>e.createElementVNode("div",{class:"tutorial-icon d-flex align-items-center justify-center"},[e.createElementVNode("svg",{width:"99",height:"65",viewBox:"0 0 99 65",fill:"none",xmlns:"http://www.w3.org/2000/svg"},[e.createElementVNode("path",{d:"M31 24.9736L31 10M31 10L25 15.9736M31 10L37 15.9736",stroke:"#FF3E3E","stroke-width":"1.5","stroke-linecap":"round","stroke-linejoin":"round"}),e.createElementVNode("path",{d:"M31 40L31 54.9736M31 54.9736L25 49M31 54.9736L37 49",stroke:"#FF3E3E","stroke-width":"1.5","stroke-linecap":"round","stroke-linejoin":"round"}),e.createElementVNode("path",{d:"M58.6512 44.3852L61.8162 42.5579C64.2963 41.126 65.5112 38.2114 64.7823 35.442C64.6387 34.8961 64.4229 34.3719 64.1407 33.883L60.1909 27.0418C59.7076 26.2048 58.6374 25.918 57.8003 26.4013C56.9633 26.8845 56.6765 27.9548 57.1598 28.7918L56.0348 26.8433C55.4825 25.8867 54.2593 25.5589 53.3027 26.1112C52.3462 26.6635 52.0184 27.8867 52.5707 28.8433L51.6957 27.3277C51.0744 26.2516 49.6983 25.8828 48.6221 26.5042C47.546 27.1255 47.1773 28.5016 47.7986 29.5777L44.4236 23.7321C43.8713 22.7755 42.6481 22.4477 41.6915 23C40.7349 23.5523 40.4072 24.7755 40.9595 25.7321L48.4595 38.7224L41.0923 40.5062C40.3398 40.6884 39.7721 41.3073 39.6555 42.0728C39.4961 43.1196 40.2199 44.096 41.268 44.2476L49.7609 45.4766L51.251 45.7252C53.7985 46.1503 56.4146 45.6766 58.6512 44.3852Z",fill:"white"}),e.createElementVNode("path",{d:"M50.4236 34.1244L48.4236 30.6603M48.4236 30.6603L44.4236 23.7321C43.8713 22.7755 42.6481 22.4477 41.6915 23V23C40.7349 23.5523 40.4072 24.7755 40.9595 25.7321L48.4595 38.7224L41.0923 40.5062C40.3398 40.6884 39.7721 41.3073 39.6555 42.0728V42.0728C39.4961 43.1196 40.2199 44.096 41.268 44.2476L49.7609 45.4766L51.251 45.7252C53.7985 46.1503 56.4146 45.6766 58.6512 44.3852L61.8162 42.5579C64.2963 41.126 65.5112 38.2114 64.7823 35.442V35.442C64.6387 34.8961 64.4229 34.3719 64.1407 33.883L60.1909 27.0418C59.7076 26.2048 58.6374 25.918 57.8003 26.4013V26.4013V26.4013C56.9633 26.8845 56.6765 27.9548 57.1598 28.7918L57.7848 29.8744M48.4236 30.6603L47.7986 29.5777C47.1773 28.5016 47.546 27.1255 48.6221 26.5042V26.5042C49.6983 25.8828 51.0744 26.2516 51.6957 27.3277L52.8207 29.2763M54.5707 32.3074L52.8207 29.2763M52.8207 29.2763L52.5707 28.8433C52.0184 27.8867 52.3462 26.6635 53.3027 26.1112V26.1112C54.2593 25.5589 55.4825 25.8867 56.0348 26.8433L57.7848 29.8744M58.5348 31.1734L57.7848 29.8744",stroke:"black","stroke-width":"1.5","stroke-linecap":"round","stroke-linejoin":"round"})])],-1)),un={class:"text ml-2"},pn={class:"d-flex justify-space-between mt-3 mx-3 mb-0 tutorial-buttons"},fn=H(e.defineComponent({__name:"VTutorial",props:{project:{}},emits:["closeTutorial"],setup(s,{emit:o}){const t=s,a=o,l=e.inject("i18n"),n=e.ref(!0),i=e.ref(!1),r=e.computed(()=>[/Android/i,/webOS/i,/iPhone/i,/iPad/i,/iPod/i,/BlackBerry/i,/Windows Phone/i].some(_=>navigator.userAgent.match(_))),k=e.computed(()=>{const u=localStorage.getItem(`${t.project}-dont-show-tutorial`);return u&&a("closeTutorial"),u});function p(){i.value&&m(),n.value=!1,a("closeTutorial")}function m(){localStorage.setItem(`${t.project}-dont-show-tutorial`,"true")}return(u,_)=>{const v=e.resolveComponent("v-checkbox"),b=e.resolveComponent("v-btn");return e.openBlock(),e.createBlock(e.Transition,{name:"fade-transition"},{default:e.withCtx(()=>[n.value&&!k.value?(e.openBlock(),e.createElementBlock("div",Oo,[r.value?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("div",Ho,[e.createElementVNode("div",jo,[e.createElementVNode("div",Po,[zo,e.createElementVNode("div",Yo,e.toDisplayString(e.unref(l).getLabel("click-and-drag-to-look-around")),1)]),e.createElementVNode("div",Wo,[Go,e.createElementVNode("div",Qo,e.toDisplayString(e.unref(l).getLabel("click-on-the-circles-to-move-around")),1)]),e.createElementVNode("div",qo,[Zo,e.createElementVNode("div",Xo,e.toDisplayString(e.unref(l).getLabel("use-the-mouse-wheel-to-zoom")),1)])]),e.createElementVNode("div",Ko,[e.createElementVNode("div",Jo,[en,e.createElementVNode("div",tn,e.toDisplayString(e.unref(l).getLabel("you-can-also-use-the-arrow-keys-to-move-around")),1)])])])),r.value?(e.openBlock(),e.createElementBlock("div",on,[e.createElementVNode("div",nn,[an,e.createElementVNode("div",ln,e.toDisplayString(e.unref(l).getLabel("tap-and-drag-to-look-around")),1)]),e.createElementVNode("div",rn,[sn,e.createElementVNode("div",cn,e.toDisplayString(e.unref(l).getLabel("tap-on-the-circles-to-move-around")),1)]),e.createElementVNode("div",dn,[mn,e.createElementVNode("div",un,e.toDisplayString(e.unref(l).getLabel("use-two-fingers-to-zoom")),1)])])):e.createCommentVNode("",!0),e.createElementVNode("div",pn,[e.createVNode(v,{modelValue:i.value,"onUpdate:modelValue":_[0]||(_[0]=C=>i.value=C),label:e.unref(l).getLabel("dont-show-again")},null,8,["modelValue","label"]),e.createVNode(b,{small:"",outlined:"",class:"mt-5",onClick:_[1]||(_[1]=C=>p())},{default:e.withCtx(()=>[e.createTextVNode("Ok")]),_:1})])])):e.createCommentVNode("",!0)]),_:1})}}}),[["__scopeId","data-v-53c0bb27"]]),hn=s=>(e.pushScopeId("data-v-a28b3f8d"),s=s(),e.popScopeId(),s),gn={class:"player-settings-ui"},kn={id:"settings-ui-form"},wn={class:"form-inputs"},vn={class:"setting-label"},Cn={class:"setting-label"},yn=["max","min","step"],bn={class:"setting-label"},_n={class:"flex-grow-1 flex-shrink-0"},En=["onUpdate:modelValue"],Vn={key:3,"d-block":"",class:"mt-3"},Bn={class:"d-flex justify-space-between"},Nn={class:"setting-label"},An={class:"mt-5 d-block",style:{width:"300px"}},Ln=hn(()=>e.createElementVNode("div",{class:"setting-label"},"Enter Lut URL:",-1)),Sn={class:"d-block",style:{width:"300px"}},xn={class:"form-buttons"},In=H(e.defineComponent({__name:"VSettingsUI",props:{projectSlug:{},initialSettings:{}},emits:["updateSettings","saveSettings"],setup(s,{emit:o}){const t=s,a=o,l=e.ref(v(t.initialSettings));e.watch(l,()=>{i()},{deep:!0});const n=e.computed(()=>{let b={};for(const[C,V]of Object.entries(l.value))C==="whitePoint"?b[C]=m(V.value):b[C]=V.value;return b});function i(){a("updateSettings",n.value)}function r(){const b=document.createElement("a");b.href=URL.createObjectURL(new Blob([JSON.stringify(n.value,null,2)]));const C=`player-settings-${t.projectSlug}-${Date.now()}.json`;b.download=C,b.style.display="none",document.body.appendChild(b),b.click(),document.body.removeChild(b)}function k(){a("saveSettings",n.value)}function p(){l.value=v(),a("updateSettings",n.value)}function m(b){const C=parseInt(b.substr(1,2),16)/255,V=parseInt(b.substr(3,2),16)/255,L=parseInt(b.substr(5,2),16)/255;return[C,V,L]}function u(b){var C=b.toString(16);return C.length==1?"0"+C:C}function _([b,C,V]){return"#"+u(parseInt((b*255).toString()))+u(parseInt((C*255).toString()))+u(parseInt((V*255).toString()))}function v(b={}){const C=["Cool 5","Cool 10","Cool 15","Cool 20","Cool 25","Warm 20","Warm 25","Warm 10","Warm 15","Warm 5","bw"];let V={temperature:6500,targetLuminance:1,exposureFovScale:.6,UNREAL_BLOOM_ENABLED:!0,sharpenFilter_amount:.6,UNREAL_BLOOM_STRENGTH:.3,TRANSITION_MOVEMENT_SCALE:1.3,whitePoint:[1,1,1],lut:"",...b};return{exposureFovScale:{label:"Exposure Fov Scale",type:"slider",min:0,max:1,step:.01,value:V.exposureFovScale},targetLuminance:{label:"Target Luminance",type:"slider",min:0,max:15,step:.1,value:V.targetLuminance},sharpenFilter_amount:{label:"Sharpen Filter Amount",type:"slider",min:0,max:100,step:.1,value:V.sharpenFilter_amount},UNREAL_BLOOM_ENABLED:{label:"Enable Bloom?",type:"boolean",value:V.UNREAL_BLOOM_ENABLED},UNREAL_BLOOM_STRENGTH:{label:"Bloom Strength",type:"slider",min:0,max:1,step:.01,value:V.UNREAL_BLOOM_STRENGTH},TRANSITION_MOVEMENT_SCALE:{label:"Transition Movement Speed",type:"slider",min:.2,max:25,step:.1,value:V.TRANSITION_MOVEMENT_SCALE},temperature:{label:"Temperature / White Balance",type:"slider",min:1e3,max:12e3,step:1,value:V.temperature},whitePoint:{label:"White Point",type:"color",min:null,max:null,step:null,value:_(V.whitePoint)},lut:{label:"Lut",type:"lut",items:C.map(L=>({text:L,value:`https://cdn.visuado.com/luts/${L}.png`})),value:V.lut}}}return(b,C)=>{const V=e.resolveComponent("v-text-field"),L=e.resolveComponent("v-slider"),h=e.resolveComponent("v-checkbox"),y=e.resolveComponent("v-btn"),S=e.resolveComponent("v-select"),c=e.resolveComponent("v-icon");return e.openBlock(),e.createElementBlock("div",gn,[e.createElementVNode("form",kn,[e.createElementVNode("div",wn,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(l.value,(f,w,N)=>(e.openBlock(),e.createElementBlock("div",{key:N,"d-block":""},[f.type==="slider"?(e.openBlock(),e.createBlock(L,{key:0,modelValue:l.value[w].value,"onUpdate:modelValue":A=>l.value[w].value=A,onChange:i,max:f.max,min:f.min,step:f.step},{prepend:e.withCtx(()=>[e.createElementVNode("div",vn,e.toDisplayString(f.label),1)]),append:e.withCtx(()=>[e.createElementVNode("div",null,[e.createVNode(V,{modelValue:l.value[w].value,"onUpdate:modelValue":A=>l.value[w].value=A,"hide-details":"",dense:"",outlined:"",type:"number",max:f.max,min:f.min,step:f.step,style:{width:"90px"},onChange:i},null,8,["modelValue","onUpdate:modelValue","max","min","step"])])]),_:2},1032,["modelValue","onUpdate:modelValue","max","min","step"])):e.createCommentVNode("",!0),f.type==="boolean"?(e.openBlock(),e.createBlock(h,{key:1,modelValue:l.value[w].value,"onUpdate:modelValue":A=>l.value[w].value=A,onChange:i},{prepend:e.withCtx(()=>[e.createElementVNode("div",Cn,e.toDisplayString(f.label),1)]),append:e.withCtx(()=>[e.createElementVNode("div",null,e.toDisplayString(f.value),1)]),_:2},1032,["modelValue","onUpdate:modelValue"])):e.createCommentVNode("",!0),f.type==="color"?(e.openBlock(),e.createElementBlock("div",{key:2,class:"d-flex",max:f.max,min:f.min,step:f.step},[e.createElementVNode("div",bn,e.toDisplayString(f.label),1),e.createElementVNode("div",_n,[e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":A=>l.value[w].value=A,type:"color",onChange:i},null,40,En),[[e.vModelText,l.value[w].value]])]),e.createElementVNode("div",null,[e.createVNode(V,{modelValue:l.value[w].value,"onUpdate:modelValue":A=>l.value[w].value=A,"hide-details":"",dense:"",outlined:"",readonly:"",type:"text",style:{width:"90px"},onChange:i},null,8,["modelValue","onUpdate:modelValue"])])],8,yn)):e.createCommentVNode("",!0),f.type==="lut"?(e.openBlock(),e.createElementBlock("div",Vn,[e.createElementVNode("div",Bn,[e.createElementVNode("div",Nn,e.toDisplayString(f.label),1),e.createElementVNode("div",null,[e.createVNode(y,{class:"ml-2","x-small":"",onClick:A=>l.value[w].value=null},{default:e.withCtx(()=>[e.createTextVNode(" Clear Lut ")]),_:2},1032,["onClick"])])]),e.createElementVNode("div",null,[e.createElementVNode("div",An,[e.createElementVNode("div",null,[e.createVNode(S,{modelValue:l.value[w].value,"onUpdate:modelValue":A=>l.value[w].value=A,items:f.items,"item-title":"title","item-value":"value",dense:"",label:"Select Lut",onChange:i},null,8,["modelValue","onUpdate:modelValue","items"])])]),e.createElementVNode("div",null,[Ln,e.createElementVNode("div",Sn,[e.createElementVNode("div",null,[e.createVNode(V,{modelValue:l.value[w].value,"onUpdate:modelValue":A=>l.value[w].value=A,"hide-details":"",dense:"",type:"url",onChange:i},null,8,["modelValue","onUpdate:modelValue"])])])])])])):e.createCommentVNode("",!0)]))),128))]),e.createElementVNode("div",xn,[e.createVNode(y,{onClick:C[0]||(C[0]=f=>p())},{default:e.withCtx(()=>[e.createTextVNode("Reset")]),_:1}),e.createVNode(y,{class:"ml-2",onClick:C[1]||(C[1]=f=>r())},{default:e.withCtx(()=>[e.createTextVNode(" Download Json "),e.createVNode(c,{color:"black darken-1"},{default:e.withCtx(()=>[e.createTextVNode("mdi-download")]),_:1})]),_:1}),e.createVNode(y,{class:"ml-2",onClick:C[2]||(C[2]=f=>k())},{default:e.withCtx(()=>[e.createTextVNode(" Save Settings "),e.createVNode(c,{color:"black darken-1"},{default:e.withCtx(()=>[e.createTextVNode("mdi-save")]),_:1})]),_:1})])])])}}}),[["__scopeId","data-v-a28b3f8d"]]),Mn={class:"rotation-marker-svg",viewBox:"0 0 40 40",xmlns:"http://www.w3.org/2000/svg"},Fn=e.createStaticVNode('<defs><radialGradient id="Gradient" cx="0" cy="0" r="0.9" fx="0" fy="0"><stop offset="0%" class="stop1"></stop><stop offset="60%" class="stop2"></stop><stop offset="90%" class="stop3"></stop></radialGradient><linearGradient id="LineGradient" gradientTransform="rotate(90)"><stop offset="0%" class="stop1"></stop><stop offset="75%" class="stop2"></stop><stop offset="100%" class="stop3"></stop></linearGradient></defs>',1),Dn=["transform"],Un=[e.createStaticVNode('<rect id="field-of-view-gradient" x="20" y="20" width="38" height="38" transform="rotate(0)" transform-origin="20 20" fill="url(#Gradient)"></rect><rect class="field-of-view-border" x="20" y="20" width="1" height="25" fill="url(#LineGradient)" transform="rotate(0)" transform-origin="20 20"></rect><rect class="field-of-view-border" x="19" y="19" width="1" height="25" fill="url(#LineGradient)" transform="rotate(-90)" transform-origin="20 20"></rect><circle cx="20" cy="20" r="5" fill="white"></circle><circle cx="20" cy="20" r="3" fill="red"></circle>',5)],Tn=e.defineComponent({__name:"VRotationMarker",props:{rotation:{}},setup(s){return(o,t)=>(e.openBlock(),e.createElementBlock("svg",Mn,[Fn,e.createElementVNode("g",{"transform-origin":"20 20",transform:`rotate(${45+o.rotation})`},Un,8,Dn)]))}}),Rn={class:"minimap-wrapper d-flex align-stretch justify-space-between"},$n={class:"minimap-container"},On=H(e.defineComponent({__name:"VMiniMapMap",props:{backgroundImage:{},allCameras:{},minimapCamera:{},currentCamera:{},rotation:{},transformAngle:{}},setup(s){const o=s,t=e.ref(512),a=e.ref(384),l=e.ref(new ae.Vector3),n=e.ref(new ae.Object3D),i=e.ref({}),r=e.ref(1),k=e.ref(),p=e.computed(()=>o.allCameras),m=e.computed(()=>o.allCameras.find(w=>w.id===o.currentCamera)),u=e.computed(()=>o.rotation),_=e.computed(()=>new ae.Vector3(o.minimapCamera.position.x,o.minimapCamera.position.y,o.minimapCamera.position.z)),v=e.computed(()=>parseFloat(m.value.floor_vertical_position)),b=e.computed(()=>p.value.map(w=>{const N=w.uposition.split(","),A=new ae.Vector3(N[0]-_.value.x,0,N[2]-_.value.z);return{...w,...S(l.value,A)}})),C=e.computed(()=>`background-image: url(${o.backgroundImage});`),V=e.computed(()=>{let w=r.value>1?1:r.value;return w<.8&&(w=.4),`scale: ${w>1?1:w}; transform: rotate(${o.transformAngle}deg);`});e.onMounted(()=>{c(),h(),f();const w=document.getElementById("moveableDiv");w&&(k.value=new ResizeObserver(f).observe(w))}),e.onBeforeUpdate(()=>{c(),h()}),e.onBeforeUnmount(()=>{k.value&&k.value.unobserve(document.getElementById("moveableDiv"))});function L(w){return ae.MathUtils.degToRad(w)}function h(){n.value.rotation.x=180,n.value.rotation.y=o.minimapCamera.rotation.y*-1,i.value={transform:`rotateZ(${n.value.rotation.y}deg) rotateX(${n.value.rotation.x}deg)`}}function y(w){return{top:`${Math.abs(w.top)}%`,left:`${Math.abs(w.left)}%`}}function S(w,N){var A=new ae.Vector3;const I=A.subVectors(w,N);return{relativePosition:I,left:I.x/t.value*100,top:I.z/a.value*100}}function c(){const w=o.minimapCamera.position.y-v.value;a.value=2*(w*Math.tan(L(o.minimapCamera.fovY/2))),t.value=512/384*a.value;const N=a.value/2,A=t.value/2,I=new ae.Vector3(A*-1,0,N*-1);l.value=I}function f(){const w=document.getElementById("moveableDiv");if(!w)return;const N=w.offsetHeight/384*.8,A=w.offsetWidth/512*.8;w.offsetHeight>w.offsetWidth?r.value=A*.5:r.value=N*.9}return(w,N)=>(e.openBlock(),e.createElementBlock("div",Rn,[e.createElementVNode("div",$n,[e.createElementVNode("div",{class:"web-minimap",style:e.normalizeStyle(V.value)},[e.createElementVNode("div",{class:"minimap-background-image",style:e.normalizeStyle(C.value)},null,4),e.createElementVNode("div",{class:"center-pivot",style:e.normalizeStyle(i.value)},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(b.value,A=>(e.openBlock(),e.createElementBlock("div",{key:A.id},[m.value.floorLevel===A.floorLevel?(e.openBlock(),e.createElementBlock("div",{key:0,class:"single-camera-marker",style:e.normalizeStyle(y(A))},null,4)):e.createCommentVNode("",!0),m.value.id===A.id?(e.openBlock(),e.createBlock(Tn,{key:1,class:"rotation-marker-component",rotation:u.value,style:e.normalizeStyle({...y(A)})},null,8,["rotation","style"])):e.createCommentVNode("",!0)]))),128))],4)],4)])]))}}),[["__scopeId","data-v-503cace2"]]),Hn=(s=>(e.pushScopeId("data-v-06db6e63"),s=s(),e.popScopeId(),s))(()=>e.createElementVNode("div",{id:"filler-div"},null,-1)),jn={class:"moveable-body",id:"moveableDivHeader"},Pn={class:"moveable-footer"},zn=H(e.defineComponent({__name:"VMoveable",emits:["close","transform"],setup(s,{emit:o}){const t=o,a=e.ref("big");e.onMounted(()=>{l(document.getElementById("moveableDiv"))});function l(i){const r=document.getElementById(i.id+"Header");if(!r)return;let k=0,p=0,m=0,u=0;r.addEventListener("touchstart",_,{passive:!1}),r.addEventListener("touchend",b,{passive:!1}),r.addEventListener("mousedown",_,{passive:!1}),r.addEventListener("mouseup",b,{passive:!1});function _(C){C=C||window.event,C.preventDefault();let V=C;C.type==="touchstart"&&(V=C.touches[0]),m=V.clientX,u=V.clientY,document.addEventListener("mouseup",b,{passive:!1}),document.addEventListener("touchend",b,{passive:!1}),document.addEventListener("mousemove",v,{passive:!1}),document.addEventListener("touchmove",v,{passive:!1})}function v(C){C=C||window.event,C.preventDefault();let V=C;C.type==="touchmove"&&(V=C.touches[0]),k=m-V.clientX,p=u-V.clientY,m=V.clientX,u=V.clientY,i.style.top=i.offsetTop-p+"px",i.style.left=i.offsetLeft-k+"px"}function b(){document.removeEventListener("mouseup",b,!1),document.removeEventListener("mousemove",v,!1),document.removeEventListener("touchend",b,!1),document.removeEventListener("touchmove",v,!1)}}function n(){a.value==="big"?a.value="small":a.value="big"}return(i,r)=>{const k=e.resolveComponent("v-btn");return e.openBlock(),e.createElementBlock("div",{id:"moveableDiv",class:e.normalizeClass(["big d-flex justify-space-between flex-column align-center sizer",a.value])},[e.createVNode(k,{class:"close-icon",icon:"mdi-window-close",size:"x-small",onClick:r[0]||(r[0]=p=>t("close"))}),e.createVNode(k,{class:"resize-icon",icon:"mdi-image-size-select-small",size:"x-small",onClick:n,title:"Resize"}),e.createVNode(k,{class:"rotate-icon",size:"x-small",icon:"mdi mdi-rotate-right",onClick:r[1]||(r[1]=p=>t("transform")),title:"Rotate"}),Hn,e.createElementVNode("div",jn,[e.renderSlot(i.$slots,"body",{class:"slot"},void 0,!0)]),e.createElementVNode("div",Pn,[e.renderSlot(i.$slots,"footer",{},void 0,!0)])],2)}}}),[["__scopeId","data-v-06db6e63"]]),Yn=H(e.defineComponent({__name:"VMinimapCompass",props:{scale:{},minimapCamera:{},transformAngle:{}},setup(s){const o=s,t=e.computed(()=>o.minimapCamera.rotation?o.minimapCamera.rotation.y+o.transformAngle-90:0);return(a,l)=>(e.openBlock(),e.createElementBlock("div",{class:"minimap-compass",style:e.normalizeStyle({scale:a.scale})},[e.createVNode(Se,{class:"north-indicator",longitude:t.value},null,8,["longitude"])],4))}}),[["__scopeId","data-v-cdeea259"]]),Wn={class:"ss-wrapper"},Gn={class:"slider"},Qn={class:"minimap-sun-slider"},qn={key:0,class:"time-label"},Zn=H(e.defineComponent({__name:"VSunSimulationSlider",props:{minimapJSON:{},level:{},root:{}},emits:["setBackgroundImage"],setup(s,{emit:o}){const t=s,a=o,l=e.ref(new Date().getHours()),n=e.ref(!0),i=e.ref(!0),r=e.ref(""),k=e.ref(new Map),p=e.inject("localMode"),m=e.inject("fileLoader"),u=e.computed(()=>t.minimapJSON[t.level]),_=e.computed(()=>`${Math.floor(l.value).toString().padStart(2,"0")}:00`),v=e.computed(()=>{if(u.value.sunsimFilesTimeStamps[l.value]){const y=u.value.sunsimFilesTimeStamps[l.value].split(" ");return`${y[0]} ${y[1]}`}return""});e.onMounted(async()=>{r.value=await V(u.value.sunsimFiles[l.value]),i.value=!1;const y=await C(t.minimapJSON);k.value=y,n.value=!1,a("setBackgroundImage",b(t.level,l.value))}),e.watch(l,()=>{const y=b(t.level,l.value);a("setBackgroundImage",y)}),e.watch(()=>t.level,()=>{a("setBackgroundImage",b(t.level,l.value))},{immediate:!0});function b(y,S){return k.value.get(`sunsim${y}_${S}`)?k.value.get(`sunsim${y}_${S}`):""}async function C(y){let S=new Map;for(let c=0;c<y.length;c++){const f=y[c].sunsimFiles;for(let w=0;w<f.length;w++){const N=f[w];try{const A=N,I=N.split("."),R=await V(t.root+A);S.set(I[0],R)}catch{continue}}}return S}async function V(y){let S=y;p&&(S=`${m.getURL(y)}`);const f=await(await fetch(S)).blob(),w=await h(f);return L(w)}function L(y){return"data:image/jpeg;base64,"+y}async function h(y){return new Promise((S,c)=>{const f=new FileReader;f.onload=()=>{const w=f.result.split(",")[1];S(w)},f.onerror=c,f.readAsDataURL(y)})}return(y,S)=>{const c=e.resolveComponent("v-progress-linear"),f=e.resolveComponent("v-icon"),w=e.resolveComponent("v-slider");return e.openBlock(),e.createElementBlock("div",Wn,[e.createElementVNode("div",Gn,[e.createElementVNode("div",Qn,[n.value?(e.openBlock(),e.createBlock(c,{key:0,indeterminate:"",rounded:"",height:"6",color:"grey lighten-1",class:"mr-2"})):(e.openBlock(),e.createBlock(w,{key:1,modelValue:l.value,"onUpdate:modelValue":S[0]||(S[0]=N=>l.value=N),min:0,max:23,step:1,color:"#373737","track-color":"#373737","thumb-color":"#373737","hide-details":!0},{prepend:e.withCtx(()=>[e.createVNode(f,{color:"#ffab02"},{default:e.withCtx(()=>[e.createTextVNode("mdi-white-balance-sunny")]),_:1})]),_:1},8,["modelValue"]))]),n.value?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("div",qn,e.toDisplayString(v.value)+" "+e.toDisplayString(_.value),1))])])}}}),[["__scopeId","data-v-daf8e1d9"]]),He=H(e.defineComponent({__name:"VMiniMap",props:{minimapJSON:{},rootUrl:{},backgroundImage:{},allCameras:{},minimapCamera:{},currentCamera:{},level:{},rotation:{}},emits:["setBackgroundImage","close"],setup(s,{emit:o}){const t=o,a=e.ref(0),l=e.computed(()=>{let r=1;return a.value!==0&&(Math.abs(a.value)%180===0?r=1:r=-1),r});function n(r){t("setBackgroundImage",r)}function i(){a.value=a.value+90}return(r,k)=>(e.openBlock(),e.createBlock(zn,{onClose:k[0]||(k[0]=p=>t("close")),onTransform:i},{body:e.withCtx(()=>[e.createVNode(Yn,{scale:l.value,minimapCamera:r.minimapCamera,transformAngle:a.value},null,8,["scale","minimapCamera","transformAngle"]),e.createElementVNode("div",null,[e.createVNode(On,{transformAngle:a.value,allCameras:r.allCameras,backgroundImage:r.backgroundImage,rotation:r.rotation,currentCamera:r.currentCamera,minimapCamera:r.minimapCamera},null,8,["transformAngle","allCameras","backgroundImage","rotation","currentCamera","minimapCamera"])])]),footer:e.withCtx(()=>[e.createVNode(Zn,{minimapJSON:r.minimapJSON,root:`${r.rootUrl}/minimap/`,level:r.level,onSetBackgroundImage:n},null,8,["minimapJSON","root","level"])]),_:1}))}}),[["__scopeId","data-v-b903220b"]]);class Xn{constructor(o,t){P(this,"_doc");P(this,"_elemId");P(this,"_state");this._doc=o,this._elemId=t,this._state={isActive:!1}}get isActive(){return this._state.isActive}setup(){const o=["fullscreenchange","webkitfullscreenchange","mozfullscreenchange","msfullscreenchange"],t=this._getElement();o.forEach(a=>{t.addEventListener(a,this._toggle.bind(this),!1)})}toggle(){this.isActive?this._exit():this._enter()}_enter(){const o=this._getElement(),t=o.requestFullscreen||o.webkitRequestFullscreen||o.mozRequestFullscreen||o.msRequestFullscreen;t&&t.apply(o)}_exit(){const o=this._doc.exitFullscreen||this._doc.webkitExitFullscreen||this._doc.mozExitFullscreen||this._doc.document.msExitFullscreen;o&&o.apply(document)}_getElement(){return this._doc.getElementById(this._elemId)}_toggle(){const o=!!(this._doc.fullscreenElement||this._doc.webkitFullscreenElement||this._doc.mozFullscreenElement||this._doc.msFullscreenElement);this._state.isActive=o}}function ve(s){return("0"+s).slice(-2)}function Kn(){const s=new Date;return[s.getFullYear().toString(),ve(s.getMonth()+1),ve(s.getDate())," ",ve(s.getHours()),ve(s.getMinutes()),ve(s.getSeconds())].join("")}function Jn(){return"Visuado-Snapshot-"+Kn()}class ea{constructor(o,t){P(this,"data");this.data=o}download(o=null){o=o||Jn();const t=document.createElement("a");typeof t.download=="string"?(document.body.appendChild(t),t.download=o,t.href=this.data,t.click(),document.body.removeChild(t)):location.replace(this.data)}}const ta={class:"virtual-tour-wrapper"},oa={key:0,class:"player-error"},na={class:"player-and-components-wrapper"},aa={key:1},la={key:3,class:"settings-panel"},ra={key:0,class:"compass-wrapper"},ia={key:1,class:"btn-placeholder mr-2"},sa={key:2,class:"btn-placeholder"},ca={key:0},je=H(e.defineComponent({__name:"VVirtualTour",props:{fileLoader:{},cdnRoot:{},projectSlug:{},apartmentId:{},defaultInteriorId:{},validInteriorIds:{default:()=>[]},viewModes:{default:()=>["virtualTour","slideShow"]},displayViewModeSwitch:{type:Boolean,default:!0},websiteUrl:{},i18n:{},showCarousel:{type:Boolean,default:!0},showTimeOfDay:{type:Boolean,default:!0},showCompass:{type:Boolean,default:!0},showFullScreen:{type:Boolean,default:!0},showSnapshot:{type:Boolean,default:!0},showShare:{type:Boolean,default:!0},showInteriorOptions:{type:Boolean,default:!0},showMiniMap:{type:Boolean,default:!0},showFloorLevel:{type:Boolean,default:!0},defaultWaypointIndex:{default:0},defaultViewMode:{default:"virtualTour"},mouseSensitivity:{default:1},isInIframe:{type:Boolean,default:!1},adminMode:{type:Boolean,default:!1},playerSettings:{default:()=>({temperature:6500,targetLuminance:1,exposureFovScale:.3,UNREAL_BLOOM_ENABLED:!0,sharpenFilter_amount:.6,UNREAL_BLOOM_STRENGTH:.3,TRANSITION_MOVEMENT_SCALE:1.3,whitePoint:[1,1,1]})}},emits:["onSnapshot","saveSettings","onInteriorUpdate","onCameraUpdate"],setup(s,{emit:o}){const t=s,a=o,l=e.ref(!1),n=e.ref(!1),i=e.ref(),r=e.ref(),k=e.ref(),p=e.ref(),m=e.ref(),u=e.ref(0),_=e.ref(),v=e.ref(),b=e.ref(),C=e.ref(0),V=e.ref(0),L=e.ref(0),h=e.ref(!1),y=e.ref(!1),S=e.ref(),c=e.ref(!1),f=e.ref(new Xn(document,"player-wrapper")),w=e.computed(()=>!!t.fileLoader),N=e.computed(()=>{let d=`${t.cdnRoot}/${t.projectSlug}`;return t.fileLoader&&(d=""),ka(d)}),A=e.computed(()=>`${N.value}/${I.value}/${t.apartmentId}`),I=e.computed(()=>_.value),R=e.computed(()=>r.value?r.value.cameras:[]),j=e.computed(()=>{if(r.value){const d=r.value.cameras.map(T=>T.floorLevel);let x=[...new Set(d)];return x=x.sort(),x}else return[]}),g=e.computed(()=>{let d=0;if(r.value){const x=r.value.cameras.map(ge=>ge.floorLevel);let T=[...new Set(x)];T=T.sort();const Y=T.findIndex(ge=>ge===V.value);Y!==-1&&(d=Y)}return d}),B=e.computed(()=>D.value.findIndex(d=>d.archetypeID===_.value)),U=e.computed(()=>k.value?k.value.cameras.map(d=>({...d,thumbnailUrl:xe(`${N.value}/${I.value}/${t.apartmentId}/thumbs/200/${d.id}.jpg`),imageUrl:xe(`${N.value}/${I.value}/${t.apartmentId}/images/1600/${d.id}.jpg`)})):[]),E=e.computed(()=>!U.value||!U.value[u.value]?"":U.value[u.value].imageUrl),D=e.computed(()=>{let d=[];return i.value&&(d=i.value.archetypes),t.validInteriorIds.length?d.filter(x=>t.validInteriorIds.includes(x.archetypeID)):d}),$=e.computed(()=>k.value?D.value.map(d=>({...d,url:`${N.value}/${d.archetypeID}/${t.apartmentId}/thumbs/200/${U.value[u.value].id}.jpg`})):[]),O=e.computed(()=>{if(p.value)return p.value.storeys[g.value]}),z=e.computed(()=>r.value&&r.value.timeInHours),Q=e.computed(()=>{if(r.value&&r.value.timeInHours&&t.showTimeOfDay)return ga(r.value.timeInHours)}),q=e.computed(()=>S.value?S.value:`${N.value}/${I.value}/${t.apartmentId}/minimap/sunsim0_13.jpg`);e.provide("i18n",t.i18n?new oe(t.i18n.labels,t.i18n.language):new oe),e.provide("localMode",w.value),e.provide("fileLoader",t.fileLoader),e.watch([()=>t.projectSlug,()=>t.cdnRoot],async()=>{await Z(),K(),await X()}),e.watch(()=>t.defaultViewMode,d=>{d==="virtualTour"&&(h.value=!1),d==="slideShow"&&(h.value=!0,c.value=!0)},{immediate:!0}),e.watch(p,d=>{if(d.storeys[g.value]){const x=d.storeys[g.value].defaultSunsimFile;S.value=`${N.value}/${I.value}/${t.apartmentId}/minimap/${x}`}}),e.onMounted(async()=>{try{await Z(),K(),await X(),f.value.setup(),re()}catch{n.value=!0}});async function Z(){i.value=await ie(N.value)}async function X(){if(r.value=await Ce(N.value,I.value,t.apartmentId),r.value&&(v.value=r.value.cameras.find(()=>!0).id),k.value=await he(N.value,I.value,t.apartmentId),k.value){let d=t.defaultWaypointIndex!==null?t.defaultWaypointIndex:0;u.value=d,v.value=k.value.cameras[d].id,b.value=k.value.cameras[d].id}t.showMiniMap&&(p.value=await _e(N.value,I.value,t.apartmentId))}function K(){let d=t.defaultInteriorId;d||(d=i.value.defaultArchetypeID),t.validInteriorIds.length&&!t.validInteriorIds.includes(d)&&(d=t.validInteriorIds[0]),d||(d=i.value.archetypes[0].archetypeID),_.value=d}function re(){const d=document.getElementById("main-canvas");d.addEventListener("touchmove",x,{passive:!1});function x(Y){Y.preventDefault(),window.scrollBy(0,0)}d.addEventListener("mouseenter",()=>{document.addEventListener("wheel",T,{passive:!1})},{passive:!1}),d.addEventListener("mouseleave",()=>{document.removeEventListener("wheel",T)},{passive:!1});function T(Y){Y.preventDefault(),window.scrollBy(0,0)}}async function ie(d){try{return await Ee(`${d}/config.json`)}catch(x){console.error("Error loading config.json - ",`${d}/config.json`,x);return}}async function Ce(d,x,T){try{return await Ee(`${d}/${x}/${T}/apartment.json`)}catch(Y){console.error("Error loading apartment.json - ",`${d}/${x}/${T}/apartment.json`,Y);return}}async function he(d,x,T){try{return await Ee(`${d}/${x}/${T}/thumbs.json`)}catch{console.error("Error loading thumbs.json - ",`${d}/${x}/${T}/thumbs.json`);return}}async function _e(d,x,T){try{return await Ee(`${d}/${x}/${T}/minimap/minimap.json`)}catch{console.error("Error loading minimap.json - ",`${d}/${x}/${T}/minimap/minimap.json`);return}}function ne(){let d=u.value+1;d>=U.value.length&&(d=0),u.value=d,F(U.value[u.value].id)}function ye(){let d=u.value-1;d<0&&(d=U.value.length-1),u.value=d,F(U.value[u.value].id)}function M(d,x=!0){let T=U.value.findIndex(Y=>Y.id===d);T!=-1&&(u.value=T,x&&F(d))}function F(d){v.value=d}function W(d){_.value=d,a("onInteriorUpdate",d),a("onCameraUpdate",b.value,r.value)}function se(d){M(d,!1),b.value=d,a("onCameraUpdate",d,r.value)}function ce(d){C.value=d}function de(d){V.value=d}function J(d){L.value=d}function ee(d,x){}function Pe(d){m.value=d,t.playerSettings&&m.value.updateSettings(t.playerSettings)}function ma(){f.value.toggle(),window.scrollTo({top:150,behavior:"smooth"})}function ua(){h.value=!h.value}function ze(d){S.value=d}async function pa(){const d=180/Math.PI,x=await m.value.takePhoto(),T=m.value.getRotationEuler(),Y=m.value.getCurrentCamera(),ge=new ea(x,Y),wa=[T.x*d,T.y*d,T.z*d];return a("onSnapshot",ge,wa),ge}function xe(d){let x=d;return w.value?x=`${t.fileLoader.getURL(d)}`:t.adminMode&&(x=x+`?v=${Date.now()}`),x}async function Ee(d){const x=xe(d);try{return(await te.get(x)).data}catch(T){throw new Error(T)}}function fa(d){m.value.updateSettings(d)}function ha(d){a("saveSettings",d)}function ga(d){if(d===void 0)return null;const x=Math.floor(d),T=Math.floor((x-d)*60);return{hours:x,minutes:T}}function ka(d){return d.replace(/\/$/,"")}return(d,x)=>{const T=e.resolveComponent("v-btn");return e.openBlock(),e.createElementBlock("div",ta,[n.value?(e.openBlock(),e.createElementBlock("div",oa,"Error loading the player!!")):e.createCommentVNode("",!0),e.createElementVNode("div",na,[!f.value.isActive&&p.value&&b.value&&O.value&&y.value?(e.openBlock(),e.createBlock(He,{key:0,allCameras:R.value,rootUrl:A.value,level:g.value,backgroundImage:q.value,minimapJSON:p.value.storeys,rotation:C.value,currentCamera:b.value,minimapCamera:O.value,onClose:x[0]||(x[0]=Y=>y.value=!1),onSetBackgroundImage:ze},null,8,["allCameras","rootUrl","level","backgroundImage","minimapJSON","rotation","currentCamera","minimapCamera"])):e.createCommentVNode("",!0),I.value&&v.value?(e.openBlock(),e.createElementBlock("div",aa,[e.createVNode(po,{ref:"player","file-loader":d.fileLoader,style:e.normalizeStyle({zIndex:h.value?1:2}),showStaticImage:h.value,isFullScreen:f.value.isActive,rootUrl:A.value,currentCameraId:v.value,"mouse-sensitivity":d.mouseSensitivity,"is-in-iframe":d.isInIframe,onNewCameraCallback:se,onNewRotationCallback:ce,onNewFloorCallback:de,onNewFovCallback:J,onNewSizeCallback:ee,onPlayerApiCallback:Pe},{"slideshow-image":e.withCtx(()=>[h.value?(e.openBlock(),e.createBlock(Lo,{key:0,image:E.value},null,8,["image"])):e.createCommentVNode("",!0)]),"top-left":e.withCtx(()=>[d.adminMode?e.withDirectives((e.openBlock(),e.createBlock(T,{key:0,density:"comfortable",icon:"mdi-cog-outline",elevation:"3",class:"mr-2",onClick:x[1]||(x[1]=Y=>l.value=!l.value)},null,512)),[[e.vShow,c.value]]):e.createCommentVNode("",!0),p.value&&v.value&&O.value?e.withDirectives((e.openBlock(),e.createBlock(T,{key:1,density:"comfortable",elevation:"3",icon:"mdi-floor-plan",class:"mr-2",onClick:x[2]||(x[2]=Y=>y.value=!y.value)},null,512)),[[e.vShow,c.value]]):e.createCommentVNode("",!0),c.value&&d.showFloorLevel&&j.value.length>1?(e.openBlock(),e.createBlock(yo,{key:2,level:V.value,"floor-levels":j.value,onLevel:de},null,8,["level","floor-levels"])):e.createCommentVNode("",!0),c.value&&d.adminMode&&l.value?(e.openBlock(),e.createElementBlock("div",la,[e.createVNode(In,{"project-slug":d.projectSlug,initialSettings:d.playerSettings,onUpdateSettings:fa,onSaveSettings:ha},null,8,["project-slug","initialSettings"])])):e.createCommentVNode("",!0)]),"top-center":e.withCtx(()=>[c.value?(e.openBlock(),e.createBlock($o,{key:0,"return-url":d.websiteUrl},null,8,["return-url"])):e.createCommentVNode("",!0)]),"top-right":e.withCtx(()=>[r.value&&d.showCompass?e.withDirectives((e.openBlock(),e.createElementBlock("div",ra,[e.createVNode(No,{rotation:C.value},null,8,["rotation"])],512)),[[e.vShow,c.value]]):e.createCommentVNode("",!0),c.value&&r.value&&z.value&&d.showTimeOfDay?(e.openBlock(),e.createBlock(Fo,{key:1,hours:Q.value.hours,minutes:Q.value.minutes},null,8,["hours","minutes"])):e.createCommentVNode("",!0)]),"center-left":e.withCtx(()=>[e.createVNode(e.Transition,{name:"slide-x-transition"},{default:e.withCtx(()=>[h.value?(e.openBlock(),e.createBlock(T,{key:0,density:"comfortable",elevation:"3",icon:"mdi-chevron-left",onClick:ye})):e.createCommentVNode("",!0)]),_:1})]),"center-center":e.withCtx(()=>[e.createVNode(fn,{project:N.value,onCloseTutorial:x[3]||(x[3]=Y=>c.value=!0)},null,8,["project"]),f.value.isActive&&p.value&&b.value&&O.value&&y.value?(e.openBlock(),e.createBlock(He,{key:0,allCameras:R.value,rootUrl:A.value,minimapJSON:p.value.storeys,backgroundImage:q.value,rotation:C.value,currentCamera:b.value,minimapCamera:O.value,level:g.value,onClose:x[4]||(x[4]=Y=>y.value=!1),onSetBackgroundImage:ze},null,8,["allCameras","rootUrl","minimapJSON","backgroundImage","rotation","currentCamera","minimapCamera","level"])):e.createCommentVNode("",!0)]),"center-right":e.withCtx(()=>[e.createVNode(e.Transition,{name:"slide-x-reverse-transition"},{default:e.withCtx(()=>[h.value?(e.openBlock(),e.createBlock(T,{key:0,density:"comfortable",elevation:"3",icon:"mdi-chevron-right",onClick:ne})):e.createCommentVNode("",!0)]),_:1})]),"bottom-left":e.withCtx(()=>[c.value&&d.showFullScreen?(e.openBlock(),e.createBlock(Uo,{key:0,isFullScreen:f.value.isActive,class:"btn-fullscreen",onToggleFullscreen:ma},null,8,["isFullScreen"])):e.createCommentVNode("",!0),c.value&&d.showSnapshot?(e.openBlock(),e.createElementBlock("div",ia,[e.createVNode(T,{density:"comfortable",elevation:"3",icon:"mdi-camera",onClick:pa})])):e.createCommentVNode("",!0),c.value&&d.showShare&&!f.value.isActive?(e.openBlock(),e.createElementBlock("div",sa,[e.createVNode(_o)])):e.createCommentVNode("",!0)]),"bottom-center":e.withCtx(()=>[c.value&&d.showCarousel?(e.openBlock(),e.createElementBlock("div",ca,[d.displayViewModeSwitch?(e.openBlock(),e.createBlock(To,{key:0,"show-static-image":h.value,onToggle:ua},null,8,["show-static-image"])):e.createCommentVNode("",!0),c.value&&f.value.isActive?(e.openBlock(),e.createBlock(Oe,{key:1,class:e.normalizeClass([f.value.isActive?"full-screen":""]),thumbnails:U.value,active:u.value,onNext:ne,onPrevious:ye,onGoto:M},null,8,["class","thumbnails","active"])):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0)]),"bottom-right":e.withCtx(()=>[c.value&&d.showInteriorOptions&&$.value?(e.openBlock(),e.createBlock(Eo,{key:0,availableArchetypes:$.value,selectedIndex:B.value,onSelectInterior:W},null,8,["availableArchetypes","selectedIndex"])):e.createCommentVNode("",!0)]),_:1},8,["file-loader","style","showStaticImage","isFullScreen","rootUrl","currentCameraId","mouse-sensitivity","is-in-iframe"]),d.showCarousel&&k.value?(e.openBlock(),e.createBlock(Oe,{key:0,thumbnails:U.value,active:u.value,onNext:ne,onPrevious:ye,onGoto:M},null,8,["thumbnails","active"])):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0)])])}}}),[["__scopeId","data-v-8e6a405e"]]),da={install:function(o){o.component("VApartmentChooser",De),o.component("VBuildingChooser",$e),o.component("VVirtualTour",je)}};G.VApartmentChooser=De,G.VBuildingChooser=$e,G.VVirtualTour=je,G.default=da,Object.defineProperties(G,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});
|