@qispace/vue3-player 0.0.10 → 0.0.13
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.
- package/dist/components/apartmentChooser/QiApartmentChooser.vue.d.ts +1 -471
- package/dist/components/apartmentChooser/QiApartmentChooserNavigation.vue.d.ts +6 -6
- package/dist/components/apartmentChooser/QiApartmentChooserRaster.vue.d.ts +1 -151
- package/dist/components/apartmentChooser/QiApartmentChooserRotator.vue.d.ts +5 -7
- package/dist/components/apartmentChooser/QiApartmentChooserSvg.vue.d.ts +1 -124
- package/dist/components/buildingPicker/QiBuildingChooser.vue.d.ts +8 -313
- package/dist/components/buildingPicker/QiBuildingChooserRaster.vue.d.ts +1 -154
- package/dist/components/buildingPicker/QiBuildingChooserRasterOverlay.vue.d.ts +5 -6
- package/dist/components/buildingPicker/QiBuildingChooserSceneImageStack.vue.d.ts +5 -6
- package/dist/components/buildingPicker/QiBuildingChooserSunSimControl.vue.d.ts +2 -2
- package/dist/components/buildingPicker/QiBuildingChooserSvg.vue.d.ts +1 -156
- package/dist/components/shared/QiZoomBox.vue.d.ts +2 -2
- package/dist/components/virtualTourV2/Compass.vue.d.ts +22 -0
- package/dist/components/virtualTourV2/FloorLevel.vue.d.ts +27 -0
- package/dist/components/virtualTourV2/FullScreenButton.vue.d.ts +1 -1
- package/dist/components/virtualTourV2/InteriorSelector.vue.d.ts +24 -0
- package/dist/components/virtualTourV2/Player.vue.d.ts +82 -0
- package/dist/components/virtualTourV2/SettingsUI.vue.d.ts +105 -0
- package/dist/components/virtualTourV2/TimeOfDay.vue.d.ts +27 -0
- package/dist/components/virtualTourV2/Tutorial.vue.d.ts +23 -0
- package/dist/components/virtualTourV2/ViewModeToggle.vue.d.ts +16 -0
- package/dist/components/virtualTourV2/VirtualTourV2.vue.d.ts +322 -0
- package/dist/components/virtualTourV2/index.d.ts +1 -0
- package/dist/components/virtualTourV2/minimapv2/MiniMapMap.vue.d.ts +82 -0
- package/dist/components/virtualTourV2/minimapv2/MiniMapV2.vue.d.ts +78 -0
- package/dist/components/virtualTourV2/minimapv2/MinimapCompass.vue.d.ts +30 -0
- package/dist/components/virtualTourV2/minimapv2/Moveable.vue.d.ts +8 -0
- package/dist/components/virtualTourV2/minimapv2/RotationMarkerV2.vue.d.ts +12 -0
- package/dist/components/virtualTourV2/minimapv2/SunsimulationSlider.vue.d.ts +48 -0
- package/dist/components/virtualTourV2/minimapv2/index.d.ts +1 -0
- package/dist/index.d.ts +448 -0
- package/dist/lib/index.d.ts +3 -0
- package/dist/style.css +1 -0
- package/dist/vue3-player.js +5362 -0
- package/dist/vue3-player.umd.cjs +1 -0
- package/package.json +32 -14
- package/src/components/buildingPicker/QiBuildingChooser.vue +7 -7
- package/src/components/virtualTourV2/{PlayerV2.vue → Player.vue} +64 -64
- package/src/components/virtualTourV2/VirtualTourV2.vue +6 -7
- package/src/components/virtualTourV2/index.ts +20 -0
- package/src/components/virtualTourV2/minimapv2/MiniMapV2.vue +14 -14
- package/src/components/virtualTourV2/minimapv2/index.ts +1 -0
- package/dist/components/virtualTourV2/ManualSlideShow.vue.d.ts +0 -73
- package/dist/components/virtualTourV2/ManualSlideShowPlayer.vue.d.ts +0 -15
- package/dist/entry.css +0 -1
- package/dist/vue3-player.mjs +0 -3058
- package/dist/vue3-player.umd.js +0 -2
- package/src/components/virtualTourV2/index.js +0 -2
- package/src/components/virtualTourV2/minimapv2/index.js +0 -1
- package/src/lib/apartmentChooser/BuildingViewerModel.js +0 -60
- package/src/lib/apartmentChooser/CircularSlideshow.js +0 -66
- package/src/lib/apartmentChooser/RotationStep.js +0 -31
- package/src/lib/apartmentChooser/SceneRotator.js +0 -25
- package/src/lib/apartmentChooser/index.js +0 -3
- package/src/lib/apartmentChooser/throttle.js +0 -15
- package/src/lib/buildingPicker/BuildingMap.js +0 -24
- package/src/lib/buildingPicker/BuildingPickerResourceProvider.js +0 -97
- package/src/lib/buildingPicker/CanvasRaster.js +0 -29
- package/src/lib/buildingPicker/DayOfYearSelector.js +0 -36
- package/src/lib/buildingPicker/SampleRaster.js +0 -14
- package/src/lib/buildingPicker/index.js +0 -5
- package/src/lib/index.js +0 -3
- package/src/lib/shared/BatchLoadTracker.js +0 -52
- package/src/lib/shared/I18N.js +0 -65
- package/src/lib/shared/ResourceLoader.js +0 -33
- package/src/lib/shared/index.js +0 -3
- package/src/lib/virtualTour/CameraSnapshot.js +0 -42
- package/src/lib/virtualTour/FullscreenModel.js +0 -69
- package/src/lib/virtualTour/textures/arrow.png +0 -0
- package/src/lib/virtualTour/textures/compass-bg.png +0 -0
- package/src/lib/virtualTour/textures/compass-needle.png +0 -0
- package/src/lib/virtualTour/textures/compass-north.png +0 -0
- package/src/lib/virtualTour/textures/floor-1.svg +0 -4
- package/src/lib/virtualTour/textures/floor-2.svg +0 -4
- package/src/lib/virtualTour/textures/marker.png +0 -0
- package/src/lib/virtualTour/textures/tod-sun.png +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
(function(w,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):(w=typeof globalThis<"u"?globalThis:w||self,e(w["vue3-player"]={},w.Vue,w.axios,w.playerCore,w.THREE))})(this,function(w,e,q,M,oe){"use strict";function ne(t){const o=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(t){for(const n in t)if(n!=="default"){const s=Object.getOwnPropertyDescriptor(t,n);Object.defineProperty(o,n,s.get?s:{enumerable:!0,get:()=>t[n]})}}return o.default=t,Object.freeze(o)}const b=ne(oe),ie="data:image/png;base64,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",g=(t,o)=>{const n=t.__vccOpts||t;for(const[s,i]of o)n[s]=i;return n},re={name:"QiNorthDirection",props:{longitude:{type:Number,default:()=>0}},data(){return{compassNeedle:ie}},computed:{needleRotation(){return{transform:`rotate(${90-this.longitude}deg)`,transition:" transform 0.5s ease-in"}}}};function se(t,o,n,s,i,r){const a=e.resolveComponent("v-img");return e.openBlock(),e.createBlock(a,{src:i.compassNeedle,style:e.normalizeStyle(r.needleRotation)},null,8,["src","style"])}const D=g(re,[["render",se]]);function F(t){return t.toLocaleString("en-no",{month:"short",day:"numeric"})}const ae=e.defineComponent({setup(){},name:"QiBuildingChooserSunSimControl",props:{modelValue:{type:Number,required:!0},dateSelector:{type:Object,required:!0},isLoading:{type:Boolean,default:!1}},emits:["update:modelValue"],data(){return{currentValue:this.modelValue,currentDate:null}},computed:{currentValueString(){const t=Math.floor(this.currentValue/2).toString().padStart(2,"0"),o=this.currentValue%2===0?"00":"30";return`${t}:${o}`},dates(){return this.dateSelector.dates.map(F)},selectedDate:{get(){return F(this.dateSelector.selectedDate)},set(t){this.dateSelector.selectIndex(this.dates.indexOf(t))}}},watch:{currentValue(t){this.$emit("update:modelValue",t)},modelValue(t){this.currentValue=Math.floor(t)},dates:{handler(t){this.currentDate=F(this.dateSelector.selectedDate)},immediate:!0},currentDate(t){this.dateSelector.selectIndex(this.dates.indexOf(t))}},methods:{}}),le={class:"sunsim-bar-wrapper"},ce={class:"sunsim-date d-flex align-center pl-5 pr-5"},de={key:1,class:"text-center text-body-1"},me={class:"sunsim-wrapper d-flex align-center px-3"},he={class:"sunsim-time-label text-body-1 font-weight-normal ml-2"};function pe(t,o,n,s,i,r){const a=e.resolveComponent("v-icon"),l=e.resolveComponent("v-select"),c=e.resolveComponent("v-progress-linear"),m=e.resolveComponent("v-slider");return e.openBlock(),e.createElementBlock("div",le,[e.createElementVNode("div",ce,[e.createVNode(a,{color:"black",class:"mr-2",icon:"mdi-calendar-blank-outline"}),t.dateSelector.hasMultipleDates?(e.openBlock(),e.createBlock(l,{key:0,modelValue:t.currentDate,"onUpdate:modelValue":o[0]||(o[0]=p=>t.currentDate=p),items:t.dates,density:"compact",variant:"underlined","hide-details":"",class:"day-selector"},null,8,["modelValue","items"])):(e.openBlock(),e.createElementBlock("span",de,e.toDisplayString(t.selectedDate),1))]),e.createElementVNode("div",me,[e.createElementVNode("span",he,e.toDisplayString(t.currentValueString),1),e.createVNode(a,{medium:"",class:"ml-2 mr-2 icon"},{default:e.withCtx(()=>[e.createTextVNode("mdi-white-balance-sunny")]),_:1}),t.isLoading?(e.openBlock(),e.createBlock(c,{key:0,indeterminate:"",rounded:"",height:"6",color:"grey lighten-1",class:"mr-2"})):(e.openBlock(),e.createBlock(m,{key:1,modelValue:t.currentValue,"onUpdate:modelValue":o[1]||(o[1]=p=>t.currentValue=p),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"]))])])}const P=g(ae,[["render",pe],["__scopeId","data-v-1fba3edd"]]);class O{constructor(o){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)}}const ue=e.defineComponent({setup(){},name:"QiBuildingChooserSceneImageStack",props:{imageUrls:{type:Array,required:!0},activeIndex:{type:Number,required:!0}},emits:["resize","ready","preloaded","reset"],data(){return{state:"init",activeStates:["preloaded","loaded"],loadTracker:new O(0)}},watch:{imageUrls(t){this.$emit("reset"),this.loadImages(t)}},mounted(){this.loadImages(this.imageUrls),new ResizeObserver(t=>{window.requestAnimationFrame(()=>{const o=t[0].contentRect.width,n=t[0].contentRect.height;this.$emit("resize",{width:o,height:n})})}).observe(this.$refs.baseImage)},methods:{onPreloaded(){this.state="preloaded",this.$emit("preloaded")},loadImages(t){this.state="init",this.$refs.baseImage.src=t[0],this.loadTracker=new O(t.length).onLoadFinished(()=>{this.state="loaded",this.$emit("ready")})}}}),ge={key:0},fe=["src"];function ke(t,o,n,s,i,r){return e.openBlock(),e.createElementBlock("div",null,[e.createElementVNode("img",{ref:"baseImage",class:"image-instance zero",style:{opacity:1,borderRadius:50},onLoad:o[0]||(o[0]=(...a)=>t.onPreloaded&&t.onPreloaded(...a))},null,544),t.state==="preloaded"||t.state==="loaded"?e.withDirectives((e.openBlock(),e.createElementBlock("div",ge,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.imageUrls,(a,l)=>(e.openBlock(),e.createElementBlock("img",{key:l,class:e.normalizeClass({"image-instance":!0,active:l===t.activeIndex}),src:a,onLoad:o[1]||(o[1]=c=>t.loadTracker.partLoaded())},null,42,fe))),128)),e.createTextVNode(" Here ")],512)),[[e.vShow,t.state==="loaded"]]):e.createCommentVNode("",!0)])}const z=g(ue,[["render",ke],["__scopeId","data-v-fad48118"]]),we={name:"FloatingCard",props:{pos:{type:Object,required:!0},isHoverable:Boolean},computed:{q(){const t=this.pos.x<=this.pos.width/2?"left":"right";return`${this.pos.y<=this.pos.height/2?"top":"bottom"}-${t}`}}};function ye(t,o,n,s,i,r){const a=e.resolveComponent("v-dialog"),l=e.resolveComponent("v-fade-transition");return e.openBlock(),e.createBlock(l,{origin:r.q.replace("-"," ")+" "+n.pos.x+" "+n.pos.y},{default:e.withCtx(()=>[n.isHoverable?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(["floating-card",r.q]),style:e.normalizeStyle({left:`${n.pos.x}px`,top:`${n.pos.y}px`,pointerEvents:"none"})},[e.renderSlot(t.$slots,"default",{isHoverable:n.isHoverable},void 0,!0)],6)):(e.openBlock(),e.createBlock(a,{key:1,value:!0,width:"auto","onClick:outside":o[0]||(o[0]=c=>t.$emit("outside",c))},{default:e.withCtx(()=>[e.renderSlot(t.$slots,"default",{isHoverable:n.isHoverable},void 0,!0)]),_:3}))]),_:3},8,["origin"])}const T=g(we,[["render",ye],["__scopeId","data-v-b74de171"]]),Ce={name:"QiHoverProbe",computed:{isHoverEnabled(){return window.getComputedStyle(this.$refs.hoverCheck).display==="none"}}},be={ref:"hoverCheck",class:"hover-check"};function _e(t,o,n,s,i,r){return e.openBlock(),e.createElementBlock("div",be,null,512)}const E=g(Ce,[["render",_e],["__scopeId","data-v-e4729353"]]),Se={name:"QiZoomBox",props:{desktop:{type:Boolean,default:!0},mobile:{type:Boolean,default:!0},maxScale:{type:Number,default:10},consumeMouseClickWhenMoved:{type:Boolean,default:!0},consumeMouseUpWhenMoved:{type:Boolean,default:!0}},data(){return{zoom:100,originX:0,originY:0,moving:!1,scaling:!1,lastEvent:void 0,moved:!1}},computed:{transform(){return`translateX(${this.originX}px) translateY(${this.originY}px) scale(${this.scale})`},scale(){return this.zoom/100},actualMaxScale(){return this.maxScale*100}},watch:{scale(){this.emitUpdate()},originX(){this.emitUpdate()},originY(){this.emitUpdate()},desktop(){this.desktop?this.addDesktopHandlers():this.removeDesktopHandlers()},mobile(){this.mobile?this.addMobileHandlers():this.removeMobileHandlers()}},mounted(){this.desktop&&this.addDesktopHandlers(),this.mobile&&this.addMobileHandlers()},beforeUnmount(){this.desktop&&this.removeDesktopHandlers(),this.mobile&&this.removeMobileHandlers()},methods:{addDesktopHandlers(){this.$refs.box.addEventListener("wheel",this.wheelHandler,{capture:!0}),this.$refs.box.addEventListener("mousedown",this.mouseDownHandler,{capture:!0}),this.$refs.box.addEventListener("mousemove",this.mouseMoveHandler,{capture:!0}),window.addEventListener("mouseup",this.mouseUpHandler,{capture:!0}),window.addEventListener("click",this.mouseClickHandler,{capture:!0})},addMobileHandlers(){this.$refs.box.addEventListener("touchstart",this.touchStartHandler,{capture:!0}),this.$refs.box.addEventListener("touchmove",this.touchMoveHandler,{capture:!0}),window.addEventListener("touchend",this.touchEndHandler,{capture:!0}),window.addEventListener("touchcancel",this.touchEndHandler,{capture:!0})},removeDesktopHandlers(){this.$refs.box.removeEventListener("wheel",this.wheelHandler,{capture:!0}),this.$refs.box.removeEventListener("mousedown",this.mouseDownHandler,{capture:!0}),this.$refs.box.removeEventListener("mousemove",this.mouseMoveHandler,{capture:!0}),window.removeEventListener("mouseup",this.mouseUpHandler,{capture:!0}),window.removeEventListener("click",this.mouseClickHandler,{capture:!0})},removeMobileHandlers(){this.$refs.box.removeEventListener("touchstart",this.touchStartHandler,{capture:!0}),this.$refs.box.removeEventListener("touchmove",this.touchMoveHandler,{capture:!0}),window.removeEventListener("touchend",this.touchEndHandler,{capture:!0}),window.removeEventListener("touchcancel",this.touchEndHandler,{capture:!0})},wheelHandler(t){const{x:o,y:n}=this.getOffsetCoordinates(t);this.adjustZoom(-t.deltaY/10,o,n),t.preventDefault()},mouseDownHandler(t){this.moving=!0,this.moved=!1,this.lastEvent=t},mouseMoveHandler(t){if(this.moving){const{x:o,y:n}=this.getOffsetCoordinates(t),{x:s,y:i}=this.getOffsetCoordinates(this.lastEvent),r={x:o-s,y:n-i};this.adjustTranslateX(r.x),this.adjustTranslateY(r.y),this.moved=!0,this.lastEvent=t}},mouseUpHandler(t){this.moving&&this.moved&&this.consumeMouseUpWhenMoved&&(t.preventDefault(),t.stopImmediatePropagation())},mouseClickHandler(t){this.moving&&(this.moved&&this.consumeMouseClickWhenMoved&&(t.preventDefault(),t.stopImmediatePropagation()),this.moving=!1)},touchStartHandler(t){this.moving=t.touches.length===1,this.scaling=t.touches.length===2,this.lastEvent=t},touchMoveHandler(t){if(this.moving){const{x:o,y:n}=this.getOffsetCoordinates(t.touches[0]),{x:s,y:i}=this.getOffsetCoordinates(this.lastEvent.touches[0]),r={x:o-s,y:n-i};this.adjustTranslateX(r.x),this.adjustTranslateY(r.y)}else if(this.scaling&&t.touches.length===2){const{x:o,y:n}=this.getOffsetCoordinates(t.touches[0]),{x:s,y:i}=this.getOffsetCoordinates(this.lastEvent.touches[0]),{x:r,y:a}=this.getOffsetCoordinates(t.touches[1]),{x:l,y:c}=this.getOffsetCoordinates(this.lastEvent.touches[1]),m=Math.hypot(s-l,i-c),p=Math.hypot(o-r,n-a),k=(r+o)/2,d=(a+n)/2;this.adjustZoom(p-m,k,d)}this.lastEvent=t},touchEndHandler(){this.moving=!1,this.scaling=!1},getOffsetCoordinates(t){const{left:o,top:n}=this.$refs.box.getBoundingClientRect();return{x:t.clientX-o,y:t.clientY-n}},adjustTranslateX(t){const o=this.$refs.box.clientWidth,n=o*this.scale;this.originX=Math.max(Math.min(0,this.originX+t),-(n-o))},adjustTranslateY(t){const o=this.$refs.box.clientHeight,n=o*this.scale;this.originY=Math.max(Math.min(0,this.originY+t),-(n-o))},adjustZoom(t,o,n){const s=this.$refs.box.clientWidth,i=this.$refs.box.clientHeight,r=s*this.scale,a=i*this.scale;this.zoom=Math.min(Math.max(100,this.zoom+t),this.actualMaxScale);const l=s*this.scale,c=i*this.scale,m=l-r,p=c-a;this.originX-=o/s*m,this.originY-=n/i*p,this.adjustTranslateX(0),this.adjustTranslateY(0)},emitUpdate(){this.$emit("update",{scale:this.scale,x:this.originX,y:this.originY,resolve:(t,o)=>{const n=this.$refs.box.clientWidth,s=this.$refs.box.clientHeight,i=this.originX/-this.scale,r=this.originY/-this.scale,a=i+n/this.scale,l=r+s/this.scale,c=t/n*(a-i)+i,m=o/s*(l-r)+r;return{x:c,y:m}}})}}},Ie={ref:"box",class:"zoom-box-container"};function Ee(t,o,n,s,i,r){return e.openBlock(),e.createElementBlock("div",Ie,[e.createElementVNode("div",{style:e.normalizeStyle({"transform-origin":"top left",transform:r.transform}),class:"zoom-box"},[e.renderSlot(t.$slots,"default",{},void 0,!0)],4)],512)}const R=g(Se,[["render",Ee],["__scopeId","data-v-83bfd28a"]]);class S{async loadJson(o){return(await q.get(o)).data}async loadImage(o){return new Promise((n,s)=>{const i=new Image;i.crossOrigin="anonymous",i.onload=()=>{n(i)},i.onerror=s,i.src=o})}async loadImageData(o){const n=await this.loadImage(o),s=document.createElement("canvas");try{const i=s.getContext("2d");return s.width=n.width,s.height=n.height,i.drawImage(n,0,0),s.toDataURL("image/png")}finally{s.remove()}}}const ve="buildingChooser.json",Be=180;class Y{constructor(o){this._cdnFileResolver=o,this._resourceLoader=new S}constructFileUrl(o){return this._cdnFileResolver?this._cdnFileResolver(`/${o}`):null}loadConfigFile(){const o=this.constructFileUrl(ve);return o?this._resourceLoader.loadJson(o):null}loadBuildingMapImage(o){const n=this.constructFileUrl(o.lookupFilename);return n?this._resourceLoader.loadImage(n):null}getViewLongitude(o){return o.cameraRotation&&o.cameraRotation.y+270}getBuildingData(o){const n=o?o.buildings:[],s=n.map(r=>r.id),i=n.map(r=>({id:r.id,url:this.constructFileUrl(r.overlayFilename)}));return{buildingIds:s,buildingOverlays:i}}getBackgroundImageData(o){return"days"in o?this.processMultipleDays(o.days):[this.processTimeSamples(Be,o.timeSamples)]}processMultipleDays(o){return o.map(n=>this.processTimeSamples(n.dayOfYear,n.timeSamples))}processTimeSamples(o,n){return{urls:n.map(i=>this.constructFileUrl(i.filename)),referenceDate:this.makeReferenceDate(o)}}makeReferenceDate(o){const n=new Date(0);return n.setUTCDate(o),n}async loadBuildingChooser(){try{const o=await this.loadConfigFile();if(o){const n=await this.loadBuildingMapImage(o);if(n){const s=this.getViewLongitude(o),{buildingIds:i,buildingOverlays:r}=this.getBuildingData(o),a=this.getBackgroundImageData(o);return{mapImage:n,viewLongitude:s,buildingIds:i,buildingOverlays:r,backgrounds:a}}}return null}catch{return null}}}class v{static empty(){return new v([])}constructor(o){this._buildingIds=o}getBuildingId(o,n,s){const i=this._getBuildingIndex(o,n,s);if(i!==void 0)return this._buildingIds[i]}_getBuildingIndex(o,n,s){const[i,r,a,l]=o.getPixel(n,s);if(l===255&&i===r&&r===a)return i}}class B{static empty(){return new B(null)}constructor(o){this._mapImage=o,this._context=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,n){try{return this._context?this._context.getImageData(o,n,1,1).data:[0,0,0,0]}catch{return[0,0,0,0]}}}const Ve=new Date(0);class N{static empty(){return new N([{referenceDate:Ve,urls:[]}])}constructor(o){this._imagesByDay=o,this._state={selectedIndex:0}}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 Ae={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 C{constructor(o,n){this._labels={...Ae,...o||{}},this._language=n||"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 n in o)if(o[n])return o[n];return""}}const Ne=e.defineComponent({setup(){e.ref({})},name:"QiBuildingChooserSvg",components:{QiBuildingChooserSunSimControl:P,QiBuildingChooserSceneImageStack:z,QiNorthDirection:D,QiFloatingCard:T,QiHoverProbe:E,QiZoomBox:R},emits:["go-to-building","hover-over-building","hover-out-building"],provide(){return{i18n:this.i18n?new C(this.i18n.labels,this.i18n.language):new C}},props:{showCards:{type:Boolean,default:()=>!0},colorCallback:{type:Function,default:()=>({r:108,g:0,b:108,a:144,s:2})},buildingCallback:{type:Function,default:t=>t},canGoToBuildingCallback:{type:Function,default:()=>!0},buildingChooserTimeOfDay:{type:String,default:null},cdnFileResolver:{type:Function,required:!0},i18n:{type:Object,default:void 0},interactiveDesktop:{type:Boolean,default:!0},interactiveMobile:{type:Boolean,default:!0},customOverlayContent:{type:String,default:""}},data(){return{sceneState:{preloaded:!1,ready:!1},canvasDimensions:{width:0,height:0},pos:{x:0,y:0,width:0,height:0},pickerData:void 0,hoverBuildingId:void 0,halfHourMark:new Date().getHours()*2+(new Date().getMinutes()<30?0:1),error:!1,resourceLoader:new S,svgObjects:void 0,svgViewBox:"0 0 0 0"}},computed:{isHoverable(){return this.$refs.hoverProbe.isHoverEnabled},hoverBuilding(){return this.getBuildingData(this.hoverBuildingId)}},watch:{buildingChooserTimeOfDay:{handler(){if(this.buildingChooserTimeOfDay){const[t,o,n]=/^(\d\d):(\d\d)$/.exec(this.buildingChooserTimeOfDay),s=parseInt(n);this.halfHourMark=parseInt(o)*2+(s<15?0:s>45?2:1)}},immediate:!0},hoverBuildingId(t,o){t?this.$emit("hover-over-building",this.getBuildingData(t)):this.$emit("hover-out-building",this.getBuildingData(o))}},async mounted(){const o=await new Y(this.cdnFileResolver).loadBuildingChooser();if(o){this.canvasRaster=new B(o.mapImage),this.buildingMap=new v(o.buildingIds),this.daysOfYear=new N(o.backgrounds),this.pickerData={buildingOverlays:o.buildingOverlays,sceneLongitude:o.viewLongitude};const n=[];for(let{id:s,url:i}of o.buildingOverlays)this.resourceLoader.loadJson(i.replace(".png",".svg")).then(r=>{const l=new DOMParser().parseFromString(r,"image/svg+xml").getElementsByTagName("svg")[0];this.svgViewBox=l.getAttribute("viewBox"),n.push({id:s,svg:l.innerHTML})});this.svgObjects=n}else this.error=!0},methods:{resizeScene({width:t,height:o}){this.canvasDimensions.width=t,this.canvasDimensions.height=o},sceneReset(){this.sceneState={preloaded:!1,ready:!1}},getBuildingData(t){return this.buildingCallback?this.buildingCallback(t):t},getColor(t){return this.colorCallback(this.getBuildingData(t),t===this.hoverBuildingId?"hover":"idle")},getGClass(t){const o=this.getBuildingData(t),n=this.colorCallback(o,t===this.hoverBuildingId?"hover":"idle"),s=[];return t===this.hoverBuildingId?s.push("hover"):s.push("idle"),n&&this.canGoToBuildingCallback(o)?s.push("clickable"):s.push("restricted"),s.join(" ")},getGStyle(t){const o=this.getBuildingData(t),n=this.colorCallback(o,t===this.hoverBuildingId?"hover":"idle");if(n){const{r:s,g:i,b:r,a,s:l}=n;return{strokeWidth:l!==void 0?l:2,stroke:`rgb(${s}, ${i}, ${r})`,strokeOpacity:1,fill:`rgb(${s}, ${i}, ${r})`,fillOpacity:a/255,cursor:`${this.canGoToBuildingCallback(o)?"cursor":"default"} !important`}}else return{strokeWidth:0,stroke:"white",strokeOpacity:0,fill:"white",fillOpacity:0,cursor:"default !important"}},onBuildingMouseOver(t,o){this.isHoverable&&(this.pos={x:t.layerX,y:t.layerY,width:this.canvasDimensions.width,height:this.canvasDimensions.height},this.hoverBuildingId=o,this.$emit("hover-over-building",this.getBuildingData(o)))},onBuildingMouseOut(t,o){this.isHoverable&&(this.pos={x:t.layerX,y:t.layerY,width:this.canvasDimensions.width,height:this.canvasDimensions.height},this.hoverBuildingId=void 0,this.$emit("hover-out-building",this.getBuildingData(o)))},onBuildingMouseMove(t){this.isHoverable&&(this.pos={x:t.layerX,y:t.layerY,width:this.canvasDimensions.width,height:this.canvasDimensions.height})},onBuildingClick(t){this.hoverBuildingId=t,this.isHoverable&&this.hoverBuilding&&this.canGoToBuildingCallback(this.hoverBuilding)&&this.$emit("go-to-building",this.hoverBuilding)}}}),xe={key:0,style:{height:"50vh"},class:"d-flex justify-center align-center blue-grey lighten-5"},Le={class:"image-instances"},Me={key:0},De={class:"svg-container"},Fe=["viewBox"],Oe=["innerHTML","data-building-id","onMouseover","onMouseout","onMousemove","onClick"],Te=["innerHTML"];function Re(t,o,n,s,i,r){const a=e.resolveComponent("v-icon"),l=e.resolveComponent("qi-building-chooser-scene-image-stack"),c=e.resolveComponent("qi-zoom-box"),m=e.resolveComponent("qi-north-direction"),p=e.resolveComponent("qi-building-chooser-sun-sim-control"),k=e.resolveComponent("qi-floating-card"),d=e.resolveComponent("qi-hover-probe");return t.error?(e.openBlock(),e.createElementBlock("div",xe,[e.createVNode(a,{"x-large":""},{default:e.withCtx(()=>[e.createTextVNode("mdi-alert-circle-outline")]),_:1})])):t.pickerData?(e.openBlock(),e.createElementBlock("div",{key:1,style:e.normalizeStyle(`height: ${t.canvasDimensions.height}px; position: relative`),class:"image-container"},[e.createVNode(c,{desktop:t.interactiveDesktop,mobile:t.interactiveMobile},{default:e.withCtx(()=>[e.createElementVNode("div",Le,[e.createVNode(l,{"image-urls":t.daysOfYear.imageUrls,"active-index":t.halfHourMark,onResize:t.resizeScene,onPreloaded:o[0]||(o[0]=h=>t.sceneState.preloaded=!0),onReady:o[1]||(o[1]=h=>t.sceneState.ready=!0),onReset:t.sceneReset},null,8,["image-urls","active-index","onResize","onReset"]),t.svgObjects?e.withDirectives((e.openBlock(),e.createElementBlock("div",Me,[e.createElementVNode("div",De,[(e.openBlock(),e.createElementBlock("svg",{viewBox:t.svgViewBox},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.svgObjects,({id:h,svg:u},f)=>(e.openBlock(),e.createElementBlock("g",{key:f,innerHTML:u,"data-building-id":h,class:e.normalizeClass(t.getGClass(h)),style:e.normalizeStyle(t.getGStyle(h)),onMouseover:y=>t.onBuildingMouseOver(y,h),onMouseout:y=>t.onBuildingMouseOut(y,h),onMousemove:y=>t.onBuildingMouseMove(y,h),onClick:y=>t.onBuildingClick(h)},null,46,Oe))),128))],8,Fe))])],512)),[[e.vShow,t.sceneState.preloaded]]):e.createCommentVNode("",!0),e.withDirectives(e.createElementVNode("div",{class:"custom-overlay-layer",innerHTML:t.customOverlayContent},null,8,Te),[[e.vShow,t.sceneState.preloaded]])])]),_:1},8,["desktop","mobile"]),e.withDirectives(e.createElementVNode("div",null,[t.pickerData.sceneLongitude?(e.openBlock(),e.createBlock(m,{key:0,class:"north-indicator",longitude:t.pickerData.sceneLongitude},null,8,["longitude"])):e.createCommentVNode("",!0),e.createVNode(p,{modelValue:t.halfHourMark,"onUpdate:modelValue":o[2]||(o[2]=h=>t.halfHourMark=h),"date-selector":t.daysOfYear,"is-loading":!t.sceneState.ready},null,8,["modelValue","date-selector","is-loading"])],512),[[e.vShow,t.sceneState.preloaded]]),t.showCards&&t.hoverBuilding?(e.openBlock(),e.createBlock(k,{key:0,"is-hoverable":t.isHoverable,pos:t.pos,onOutside:o[3]||(o[3]=()=>t.hoverBuildingId=void 0)},{default:e.withCtx(()=>[e.renderSlot(t.$slots,"default",{building:t.hoverBuilding,canGoToBuilding:t.canGoToBuildingCallback(t.hoverBuilding),goToBuilding:()=>t.canGoToBuildingCallback(t.hoverBuilding)&&t.$emit("go-to-building",t.hoverBuilding),pos:t.pos,isHoverable:t.isHoverable,close:()=>t.hoverBuildingId=void 0},void 0,!0)]),_:3},8,["is-hoverable","pos"])):e.createCommentVNode("",!0),e.createVNode(d,{ref:"hoverProbe"},null,512)],4)):e.createCommentVNode("",!0)}const Q=g(Ne,[["render",Re],["__scopeId","data-v-0a2cec1f"]]),Ue={name:"QiBuildingChooserRasterOverlay",props:{imageUrl:{type:String,required:!0},dimensions:{type:Object,required:!0},color:{type:Object,default:()=>({r:108,g:0,b:108,a:144,s:2})}},data(){return{isLoaded:!1,overlayImage:void 0,resourceLoader:new S,context:void 0,imageData:void 0,imageDataIndices:[]}},watch:{color(t,o){(t.r!==o.r||t.g!==o.g||t.b!==o.b||t.a!==o.a)&&this.draw()}},async mounted(){this.overlayImage=await this.resourceLoader.loadImage(this.imageUrl),this.setupDraw()},methods:{setupDraw(){if(!this.overlayImage||!this.$refs.canvas)return;const{width:t,height:o}=this.dimensions;if(!(t===0||o===0)){this.context=this.$refs.canvas.getContext("2d",{willReadFrequently:!0}),this.context.drawImage(this.overlayImage,0,0,t,o),this.imageData=this.context.getImageData(0,0,t,o);for(let n=3;n<this.imageData.data.length;n+=4)this.imageData.data[n]!==0&&this.imageDataIndices.push(n);this.draw(),this.isLoaded=!0}},draw(){this.context&&this.imageData&&(this.applyColor(),this.context.putImageData(this.imageData,0,0))},applyColor(){if(this.color)for(let t=0;t<this.imageDataIndices.length;t++)this.imageData.data[this.imageDataIndices[t]-3]=this.color.r,this.imageData.data[this.imageDataIndices[t]-2]=this.color.g,this.imageData.data[this.imageDataIndices[t]-1]=this.color.b,this.imageData.data[this.imageDataIndices[t]]=this.color.a}}};function He(t,o,n,s,i,r){return e.openBlock(),e.createElementBlock("canvas",e.mergeProps({ref:"canvas",class:"overlay"},n.dimensions),null,16)}const je=g(Ue,[["render",He],["__scopeId","data-v-9a90fa2f"]]),qe=e.defineComponent({setup(){e.ref({})},name:"QiBuildingChooserRaster",components:{QiBuildingChooserRasterOverlay:je,QiBuildingChooserSunSimControl:P,QiBuildingChooserSceneImageStack:z,QiNorthDirection:D,QiFloatingCard:T,QiHoverProbe:E,QiZoomBox:R},emits:["go-to-building","hover-over-building","hover-out-building"],provide(){return{i18n:this.i18n?new C(this.i18n.labels,this.i18n.language):new C}},props:{showCards:{type:Boolean,default:()=>!0},colorCallback:{type:Function,default:()=>({r:108,g:0,b:108,a:144,s:2})},buildingCallback:{type:Function,default:t=>t},canGoToBuildingCallback:{type:Function,default:()=>!0},buildingChooserTimeOfDay:{type:String,default:null},cdnFileResolver:{type:Function,required:!0},i18n:{type:Object,default:void 0},interactiveDesktop:{type:Boolean,default:!0},interactiveMobile:{type:Boolean,default:!0},customOverlayContent:{type:String,default:""}},data(){return{sceneState:{preloaded:!1,ready:!1},canvasDimensions:{width:0,height:0},pos:{x:0,y:0,width:0,height:0},pickerData:void 0,buildingMap:v.empty(),canvasRaster:B.empty(),selectedBuildingId:void 0,halfHourMark:new Date().getHours()*2+(new Date().getMinutes()<30?0:1),viewResolver:(t,o)=>({x:t,y:o}),error:!1}},computed:{isHoverable(){return this.$refs.hoverProbe.isHoverEnabled},selectedBuilding(){return this.getBuildingData(this.selectedBuildingId)}},watch:{buildingChooserTimeOfDay:{handler(){if(this.buildingChooserTimeOfDay){const[t,o,n]=/^(\d\d):(\d\d)$/.exec(this.buildingChooserTimeOfDay),s=parseInt(n);this.halfHourMark=parseInt(o)*2+(s<15?0:s>45?2:1)}},immediate:!0},selectedBuildingId(t,o){t?this.$emit("hover-over-building",this.getBuildingData(t)):this.$emit("hover-out-building",this.getBuildingData(o))}},async mounted(){const o=await new Y(this.cdnFileResolver).loadBuildingChooser();o?(this.canvasRaster=new B(o.mapImage),this.buildingMap=new v(o.buildingIds),this.daysOfYear=new N(o.backgrounds),this.pickerData={buildingOverlays:o.buildingOverlays,sceneLongitude:o.viewLongitude},this.resizeImages()):this.error=!0},methods:{resizeScene({width:t,height:o}){this.canvasDimensions.width=t,this.canvasDimensions.height=o,this.$nextTick(this.resizeImages)},sceneReset(){this.sceneState={preloaded:!1,ready:!1}},getBuildingData(t){return this.buildingCallback?this.buildingCallback(t):t},getBuildingId(t){const{x:o,y:n}=this.viewResolver(t.layerX,t.layerY);return this.buildingMap.getBuildingId(this.canvasRaster,o,n)},resizeImages(){if(this.$refs.canvas&&(this.canvasRaster.update(this.$refs.canvas),this.$refs.overlays))for(const t of this.$refs.overlays)t.setupDraw()},onMove(t){this.isHoverable&&(this.selectedBuildingId=this.getBuildingId(t),this.selectedBuildingId!==void 0&&(this.pos={x:t.layerX,y:t.layerY,width:this.canvasDimensions.width,height:this.canvasDimensions.height}))},onClick(t){this.selectedBuildingId=this.getBuildingId(t),this.isHoverable&&this.selectedBuilding&&this.$emit("go-to-building",this.selectedBuilding)},getColor(t){return this.colorCallback(this.getBuildingData(t),t===this.selectedBuildingId?"hover":"idle")},updateView({resolve:t}){this.viewResolver=t}}}),Pe={key:0,style:{height:"50vh"},class:"d-flex justify-center align-center blue-grey lighten-5"},ze={class:"image-instances"},Ye=["innerHTML"];function Qe(t,o,n,s,i,r){const a=e.resolveComponent("v-icon"),l=e.resolveComponent("qi-building-chooser-scene-image-stack"),c=e.resolveComponent("qi-building-chooser-raster-overlay"),m=e.resolveComponent("qi-zoom-box"),p=e.resolveComponent("qi-north-direction"),k=e.resolveComponent("qi-building-chooser-sun-sim-control"),d=e.resolveComponent("qi-floating-card"),h=e.resolveComponent("qi-hover-probe");return t.error?(e.openBlock(),e.createElementBlock("div",Pe,[e.createVNode(a,{"x-large":""},{default:e.withCtx(()=>[e.createTextVNode("mdi-alert-circle-outline")]),_:1})])):t.pickerData?(e.openBlock(),e.createElementBlock("div",{key:1,style:e.normalizeStyle(`cursor: ${t.selectedBuildingId?"pointer":"auto"};height: ${t.canvasDimensions.height}px; position: relative`),class:"image-container"},[e.createVNode(m,{desktop:t.interactiveDesktop,mobile:t.interactiveMobile,onUpdate:t.updateView},{default:e.withCtx(()=>[e.createElementVNode("div",ze,[e.createVNode(l,{"image-urls":t.daysOfYear.imageUrls,"active-index":t.halfHourMark,onResize:t.resizeScene,onPreloaded:o[0]||(o[0]=u=>t.sceneState.preloaded=!0),onReady:o[1]||(o[1]=u=>t.sceneState.ready=!0),onReset:t.sceneReset},null,8,["image-urls","active-index","onResize","onReset"]),e.withDirectives(e.createElementVNode("div",null,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.pickerData.buildingOverlays,u=>(e.openBlock(),e.createBlock(c,{ref_for:!0,ref:"overlays",key:u.id,"image-url":u.url,dimensions:t.canvasDimensions,color:t.getColor(u.id)},null,8,["image-url","dimensions","color"]))),128))],512),[[e.vShow,t.sceneState.preloaded]])]),e.createElementVNode("canvas",e.mergeProps(t.canvasDimensions,{ref:"canvas",class:{hover:!!t.selectedBuildingId},onClick:o[2]||(o[2]=(...u)=>t.onClick&&t.onClick(...u)),onMousemove:o[3]||(o[3]=(...u)=>t.onMove&&t.onMove(...u))}),null,16),e.withDirectives(e.createElementVNode("div",{class:"custom-overlay-layer",innerHTML:t.customOverlayContent},null,8,Ye),[[e.vShow,t.sceneState.preloaded]])]),_:1},8,["desktop","mobile","onUpdate"]),e.withDirectives(e.createElementVNode("div",null,[t.pickerData.sceneLongitude?(e.openBlock(),e.createBlock(p,{key:0,class:"north-indicator",longitude:t.pickerData.sceneLongitude},null,8,["longitude"])):e.createCommentVNode("",!0),e.createVNode(k,{modelValue:t.halfHourMark,"onUpdate:modelValue":o[4]||(o[4]=u=>t.halfHourMark=u),"date-selector":t.daysOfYear,"is-loading":!t.sceneState.ready},null,8,["modelValue","date-selector","is-loading"])],512),[[e.vShow,t.sceneState.preloaded]]),t.showCards&&t.selectedBuilding?(e.openBlock(),e.createBlock(d,{key:0,"is-hoverable":t.isHoverable,pos:t.pos,onOutside:o[5]||(o[5]=()=>t.selectedBuildingId=void 0)},{default:e.withCtx(()=>[e.renderSlot(t.$slots,"default",{building:t.selectedBuilding,canGoToBuilding:t.canGoToBuildingCallback(t.selectedBuilding),goToBuilding:()=>t.canGoToBuildingCallback(t.selectedBuilding)&&t.$emit("go-to-building",t.selectedBuilding),pos:t.pos,isHoverable:t.isHoverable,close:()=>t.selectedBuildingId=void 0},void 0,!0)]),_:3},8,["is-hoverable","pos"])):e.createCommentVNode("",!0),e.createVNode(h,{ref:"hoverProbe"},null,512)],4)):e.createCommentVNode("",!0)}const $=g(qe,[["render",Qe],["__scopeId","data-v-08f2ea1e"]]),$e={name:"QiBuildingChooser",components:{QiBuildingChooserSvg:Q,QiBuildingChooserRaster:$},emits:["go-to-building","hover-over-building","hover-out-building"],props:{showCards:{type:Boolean,default:()=>!0},colorCallback:{type:Function,default:()=>({r:108,g:0,b:108,a:144,s:2})},buildingCallback:{type:Function,default:t=>t},cdnFileResolver:{type:Function,required:!0},i18n:{type:Object,default:void 0},interactiveDesktop:{type:Boolean,default:!0},interactiveMobile:{type:Boolean,default:!0},useSvg:{type:Boolean,default:!1},buildingChooserTimeOfDay:{type:String,default:null},canGoToBuildingCallback:{type:Function,default:()=>!0},customOverlayContent:{type:String,default:""}},computed:{component(){return this.useSvg?Q:$}}};function We(t,o,n,s,i,r){return e.openBlock(),e.createBlock(e.resolveDynamicComponent(r.component),{"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:o[0]||(o[0]=a=>t.$emit("go-to-building",a)),onHoverOverBuilding:o[1]||(o[1]=a=>t.$emit("hover-over-building",a)),onHoverOutBuilding:o[2]||(o[2]=a=>t.$emit("hover-out-building",a))},e.createSlots({_:2},[e.renderList(Object.keys(t.$slots),a=>({name:a,fn:e.withCtx(l=>[e.renderSlot(t.$slots,a,e.normalizeProps(e.guardReactiveProps(l)))])}))]),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"])}const Je=g($e,[["render",We]]),W={methods:{throttle(t,o){let n=!0;return function(...s){n&&(n=!1,t.apply(this,s),setTimeout(()=>n=!0,o))}}}},Ge={name:"QiApartmentChooserRaster",components:{QiHoverProbe:E},mixins:[W],props:{cdnFileResolver:{type:Function,required:!0},viewModel:{type:Object,required:!0},selectedUnitId:{type:String,default:null},unitCallback:{type:Function,default:t=>t},canGoToUnitCallback:{type:Function,default:()=>!0},sceneData:{type:Array,default:[]},colorCallback:{type:Function,default:()=>({r:108,g:0,b:108,a:144,s:2})},drawObserver:{type:[Object,Array,String,Number,Boolean],default:null}},emits:["select-unit","go-to-unit","hover-over","hover-out"],data(){return{pos:{x:0,y:0,width:0,height:0},canvas:null,canvasBg:null,canvasWidth:0,canvasHeight:0,context:null,contextBg:null,image:null,imageData:null,originalImageData:null,hoverApartmentIndex:-1,showApartmentCard:!1,cursorX:null,cursorY:null,rasterImages:{},vueCanvasCursor:"auto",timeout:null,windowListener:void 0,resourceLoader:new S,apartmentIndexRasterMap:{}}},computed:{isHoverable(){return this.$refs.hoverProbe.isHoverEnabled},rasterUrl(){return this.cdnFileResolver(`/scenedata${this.viewModel.currentScene}.png`)},rasterImage(){return this.rasterUrl in this.rasterImages?this.rasterImages[this.rasterUrl]:null},hoverApartment(){if(this.hoverApartmentIndex<0)return!1;const t=this.sceneData.find(o=>o.index===this.hoverApartmentIndex);return t?this.unitCallback?this.unitCallback(t.apartmentId):t.apartmentId:!1},canvasStyle(){return{width:this.canvasWidth+"px",height:this.canvasHeight+"px",cursor:this.vueCanvasCursor}},hoverBehaviourIdentifier(){return`hover-${this.showApartmentCard?"over":"out"}-${this.hoverApartment?typeof this.hoverApartment=="object"&&"unitId"in this.hoverApartment?this.hoverApartment.unitId:this.hoverApartment:""}`}},watch:{rasterUrl:{handler(){this.rasterImages[this.rasterUrl]||this.resourceLoader.loadImageData(this.rasterUrl).then(t=>{this.rasterImages={...this.rasterImages,[this.rasterUrl]:t}})},immediate:!0},rasterImage(){this.rasterImage&&this.init()},"viewModel.currentScene":{handler(){this.draw()},immediate:!0},"viewModel.isRotating"(){this.draw()},drawObserver(){this.draw()},selectedUnitId(){this.draw()},hoverApartment(){this.draw(),this.hoverApartment?this.vueCanvasCursor="pointer":this.vueCanvasCursor="auto"},hoverBehaviourIdentifier(){this.$emit(this.showApartmentCard?"hover-over":"hover-out",{hoverApartment:this.hoverApartment,closeHandler:()=>this.closeDialog()})},pos(){this.$emit("pos",this.pos)}},mounted(){this.windowListener=()=>{clearTimeout(this.timeout),this.updateCanvasSize(),this.timeout=setTimeout(()=>{this.updateCanvasSize()},50)},window.addEventListener("resize",this.windowListener),this.updateCanvasSize()},beforeUnmount(){window.removeEventListener("resize",this.windowListener);for(const t in this.rasterImages)URL.revokeObjectURL(this.rasterImages[t])},methods:{init(){this.canvas=this.$refs.canvasMask,this.context=this.canvas.getContext("2d",{willReadFrequently:!0}),this.image=new Image,this.image.onload=()=>{this.setupDraw(),this.canvas.addEventListener("mousemove",this.throttle(this.handleMouseMove,50))},this.image.src=this.rasterImage},handleMouseMove(t){const o=this.getApartmentIndexByCursorPosition(t.offsetX,t.offsetY);this.showApartmentCard=o>=0,this.hoverApartmentIndex=o,this.pos={x:t.offsetX,y:t.offsetY,width:this.canvasWidth,height:this.canvasHeight}},clickCanvas(t){const o=this.getApartmentIndexByCursorPosition(t.offsetX,t.offsetY);o<0||this.isHoverable&&this.goToApartmentByIndex(o)},setImageData(){if(this.image&&this.image.width){this.canvas.width=this.image.width,this.canvas.height=this.image.height,this.context.drawImage(this.image,0,0,this.image.width,this.image.height),this.originalImageData=this.context.getImageData(0,0,this.canvas.width,this.canvas.height),this.imageData=this.context.getImageData(0,0,this.canvas.width,this.canvas.height);const t=this.originalImageData.data;this.apartmentIndexRasterMap={};for(let o=0;o<t.length;o+=4)this.apartmentIndexRasterMap[t[o]]=[];for(let o=3;o<t.length;o+=4)t[o]===255&&t[o-3]in this.apartmentIndexRasterMap&&this.apartmentIndexRasterMap[t[o-3]].push(o-3)}},getApartmentIndexByCursorPosition(t,o){this.cursorX=t,this.cursorY=o;const n=this.canvas.offsetWidth/this.canvas.width,s=this.canvas.offsetHeight/this.canvas.height,i=(t/n).toFixed(),a=(o/s).toFixed()*(this.canvas.width*4)+i*4,l=this.originalImageData.data[a];return this.originalImageData.data[a+3]>0?l:-1},getApartmentIndexById(t){const o=this.sceneData.find(n=>n.apartmentId===t);return o?o.index:-1},highlightApartments(){this.getApartmentsInRaster().forEach(o=>{if(o.index>=0){const n=this.getApartmentPixelsByIndex(o.index),s=this.getApartmentIdByIndex(o.index);let i="idle";!this.hoverApartment&&this.selectedUnitId&&s===this.selectedUnitId?i="selected":this.hoverApartment&&this.hoverApartmentIndex===o.index&&(i="hover");const r=this.unitCallback?this.unitCallback(s):s;if(r){const a=this.colorCallback(r,i);if(a)for(let l=0;l<n.length;l++)this.imageData.data[n[l]]=a.r,this.imageData.data[n[l]+1]=a.g,this.imageData.data[n[l]+2]=a.b,this.imageData.data[n[l]+3]=a.a}}})},getApartmentPixelsByIndex(t){return this.originalImageData?this.apartmentIndexRasterMap[t]:!1},getApartmentIdByIndex(t){const o=this.sceneData.find(n=>n.index===t);return o&&o.apartmentId},getApartmentsInRaster(){if(this.originalImageData){const t=Object.keys(this.apartmentIndexRasterMap).map(n=>parseInt(n));return this.sceneData.filter(n=>t.includes(n.index))}else return[]},goToApartmentByIndex(t){const o=this.getApartmentIdByIndex(t);this.goToApartmentById(o)},goToApartmentById(t){const o=this.unitCallback?this.unitCallback(t):t;this.$emit("select-unit",o),o&&this.canGoToUnitCallback(o)&&this.$emit("go-to-unit",o)},setAlpha(t=0){if(!this.imageData)return;const o=this.imageData.data;for(let n=3;n<o.length;n+=4)o[n]=t},updateCanvasSize(){if(!this.$el)return!1;this.canvasWidth=this.$el.offsetWidth,this.canvasHeight=this.$el.offsetHeight},setupDraw(){this.setImageData(),this.draw()},draw(){this.setAlpha(),this.highlightApartments(),this.context&&this.imageData&&this.context.putImageData(this.imageData,0,0)},closeDialog(){this.showApartmentCard=!1}}},Xe={id:"canvas"};function Ze(t,o,n,s,i,r){const a=e.resolveComponent("qi-hover-probe");return e.openBlock(),e.createElementBlock("div",Xe,[e.withDirectives(e.createElementVNode("canvas",{id:"canvas-mask",ref:"canvasMask",style:e.normalizeStyle(r.canvasStyle),onClick:o[0]||(o[0]=(...l)=>r.clickCanvas&&r.clickCanvas(...l))},null,4),[[e.vShow,!n.viewModel.isRotating]]),e.createVNode(a,{ref:"hoverProbe"},null,512)])}const J=g(Ge,[["render",Ze],["__scopeId","data-v-3bbbc77b"]]),Ke={name:"QiApartmentChooserSvg",components:{QiHoverProbe:E},mixins:[W],props:{cdnFileResolver:{type:Function,required:!0},viewModel:{type:Object,required:!0},selectedUnitId:{type:String,default:null},unitCallback:{type:Function,default:t=>t},canGoToUnitCallback:{type:Function,default:()=>!0},sceneData:{type:Array,default:[]},colorCallback:{type:Function,default:()=>({r:108,g:0,b:108,a:144,s:2})},drawObserver:{type:[Object,Array,String,Number,Boolean],default:null}},emits:["select-unit","go-to-unit","hover-over","hover-out"],data(){return{pos:{x:0,y:0,width:0,height:0},hoverApartmentIndex:-1,svgImages:{},currentSvgImage:null,resourceLoader:new S}},computed:{isHoverable(){return this.$refs.hoverProbe.isHoverEnabled}},watch:{"viewModel.currentScene":{handler(){this.viewModel.currentScene in this.svgImages&&(this.currentSvgImage=this.svgImages[this.viewModel.currentScene])},immediate:!0},svgImages:{handler(){this.viewModel.currentScene in this.svgImages&&(this.currentSvgImage=this.svgImages[this.viewModel.currentScene])},immediate:!0},pos(){this.$emit("pos",this.pos)},hoverApartmentIndex(t,o){if(t>=0){const n=this.getApartmentByIndex(t);this.$emit("hover-over",{hoverApartment:n,closeHandler:()=>{this.hoverApartmentIndex=-1}})}else{const n=this.getApartmentByIndex(o);this.$emit("hover-out",{hoverApartment:n,closeHandler:()=>{this.hoverApartmentIndex=-1}})}}},mounted(){for(let t=1;t<=4;t++){const o=this.cdnFileResolver(`/scenedata${t}.svg`),n={};this.resourceLoader.loadJson(o).then(s=>{n.markup=s;const r=new DOMParser().parseFromString(s,"image/svg+xml").getElementsByTagName("svg")[0];n.viewBox=r.getAttribute("viewBox"),n.svgObjects=Array.from(r.querySelectorAll("*[data-index]")).map(a=>({index:parseInt(a.getAttribute("data-index")),svg:a.innerHTML})),this.svgImages={...this.svgImages,[t]:n}})}this.$refs.container.addEventListener("mousemove",this.throttle(this.handleMouseMove,50))},methods:{handleMouseMove(t){this.pos={x:t.offsetX,y:t.offsetY,width:this.$el.offsetWidth,height:this.$el.offsetHeight}},getApartmentIdByIndex(t){var o;return(o=this.sceneData.find(n=>n.index===parseInt(t)))==null?void 0:o.apartmentId},getApartmentByIndex(t){const o=this.getApartmentIdByIndex(t);return this.unitCallback?this.unitCallback(o):o},mouseEnter(t){this.isHoverable&&(this.hoverApartmentIndex=t)},mouseLeave(){this.isHoverable&&(this.hoverApartmentIndex=-1)},click(t){const o=this.getApartmentByIndex(t);this.$emit("select-unit",o),this.isHoverable&&o&&this.canGoToUnitCallback(o)?this.$emit("go-to-unit",o):this.hoverApartmentIndex=t},getGClass(t){const o=this.getApartmentIdByIndex(t),n=this.getApartmentByIndex(t);let s="idle";this.hoverApartmentIndex<0&&this.selectedUnitId&&o===this.selectedUnitId?s="selected":this.hoverApartmentIndex>=0&&this.hoverApartmentIndex===t&&(s="hover");const i=this.colorCallback(n,s);if(i){const{r,g:a,b:l,a:c,s:m}=i;return{strokeWidth:m!==void 0?m:2,stroke:`rgb(${r}, ${a}, ${l})`,strokeOpacity:1,fill:`rgb(${r}, ${a}, ${l})`,fillOpacity:c/255,cursor:`${this.canGoToUnitCallback(n)?"cursor":"default"} !important`}}else return{strokeWidth:0,stroke:"white",strokeOpacity:0,fill:"white",fillOpacity:0,cursor:"default !important"}}}},et={id:"container",ref:"container"},tt=["viewBox"],ot=["innerHTML","onMouseenter","onMouseleave","onClick"];function nt(t,o,n,s,i,r){const a=e.resolveComponent("qi-hover-probe");return e.openBlock(),e.createElementBlock("div",et,[e.withDirectives(e.createElementVNode("div",{class:"svg-container",style:e.normalizeStyle({opacity:!i.currentSvgImage||!i.currentSvgImage.svgObjects?0:1})},[i.currentSvgImage&&i.currentSvgImage.svgObjects?(e.openBlock(),e.createElementBlock("svg",{key:0,viewBox:i.currentSvgImage.viewBox},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(i.currentSvgImage.svgObjects,({index:l,svg:c})=>(e.openBlock(),e.createElementBlock("g",{key:l,innerHTML:c,style:e.normalizeStyle(r.getGClass(l)),onMouseenter:m=>r.mouseEnter(l),onMouseleave:m=>r.mouseLeave(l),onClick:m=>r.click(l)},null,44,ot))),128))],8,tt)):e.createCommentVNode("",!0)],4),[[e.vShow,!n.viewModel.isRotating]]),e.createVNode(a,{ref:"hoverProbe"},null,512)],512)}const G=g(Ke,[["render",nt],["__scopeId","data-v-82a61864"]]),it={name:"QiApartmentChooserNavigation",inject:["i18n"],props:{canGoToUnitCallback:{type:Function,default:()=>!0},selectedUnit:{type:Object,default:null},prevUnit:{type:Object,default:null},nextUnit:{type:Object,default:null},viewModel:{type:Object,required:!0}},mounted(){window.addEventListener("keydown",this.keyNavigate)},beforeUnmount(){window.removeEventListener("keydown",this.keyNavigate)},methods:{keyNavigate(t){t.keyCode===37?this.prevUnit&&this.$emit("prev-unit"):t.keyCode===39&&this.nextUnit&&this.$emit("next-unit")}}},rt={key:0,class:"d-none d-md-flex"};function st(t,o,n,s,i,r){const a=e.resolveComponent("v-btn");return e.openBlock(),e.createElementBlock("div",null,[e.createVNode(a,{elevation:"1",icon:"mdi-rotate-right",class:"black darken-1",onClick:o[0]||(o[0]=l=>n.viewModel.rotateClockwise())}),e.createVNode(a,{elevation:"1",plain:"",icon:"mdi-chevron-left",class:"mr-sm-4 ml-sm-8 mr-3 ml-3 black darken-1",disabled:!n.prevUnit,onClick:o[1]||(o[1]=l=>t.$emit("prev-unit"))},null,8,["disabled"]),e.createVNode(a,{color:"success darken-2",elevation:"1",rounded:"",plain:"",disabled:!n.selectedUnit||!n.canGoToUnitCallback(n.selectedUnit),onClick:o[2]||(o[2]=l=>t.$emit("go-to-unit",n.selectedUnit))},{default:e.withCtx(()=>[n.selectedUnit&&n.canGoToUnitCallback(n.selectedUnit)?(e.openBlock(),e.createElementBlock("span",rt,e.toDisplayString(r.i18n.getLabel("see-apartment"))+" ",1)):e.createCommentVNode("",!0),e.createElementVNode("span",null,e.toDisplayString(n.selectedUnit&&"title"in n.selectedUnit?n.selectedUnit.title:"-"),1)]),_:1},8,["disabled"]),e.createVNode(a,{elevation:"1",plain:"",icon:"mdi-chevron-right",class:"mr-sm-8 ml-sm-4 mr-3 ml-3 black darken-1",disabled:!n.nextUnit,onClick:o[3]||(o[3]=l=>t.$emit("next-unit"))},null,8,["disabled"]),e.createVNode(a,{elevation:"1",plain:"",icon:"mdi-rotate-left",class:"black darken-1",onClick:o[4]||(o[4]=l=>n.viewModel.rotateCounterClockwise())})])}const at=g(it,[["render",st],["__scopeId","data-v-129ef905"]]);class U{constructor(o,n,s,i){this._rotator=o,this._direction=n,this._frameIndex=s,this._sceneCount=i}get atEnd(){return this._sceneCount===0}get frameIndex(){return this._frameIndex}nextFrame(){const o=this._rotator.clampFrameIndex(this._frameIndex+this._direction),n=this._rotator.isCardinalFrame(o)?this._sceneCount-1:this._sceneCount;return new U(this._rotator,this._direction,o,n)}}class lt{constructor(o,n){this._cardinalFrames=o,this._totalFrameCount=n}start(o,n,s){const i=this.startFrameIndexForScene(n);return new U(this,o,i,s)}isCardinalFrame(o){return this._cardinalFrames.includes(o)}clampFrameIndex(o){return(this._totalFrameCount+o)%this._totalFrameCount}startFrameIndexForScene(o){return this._cardinalFrames[o]}}const X=64,V=4,ct=120,dt={name:"QiApartmentChooserRotator",props:{viewModel:{type:Object,required:!0},build:{type:String,default:""},cdnFileResolver:{type:Function,required:!0},cardinalFrames:{type:Array,required:!0}},emits:["loaded","error","progress"],data(){const t=this.createFrames();return{loadTracker:new O(t.length).onLoadFinished(()=>this.$emit("loaded")).onLoadProgress(o=>this.$emit("progress",o)).onLoadError(()=>this.$emit("error")),sceneRotator:new lt(this.cardinalFrames,X),images:t,isPreloaded:!1}},computed:{activeFrame(){return this.images.find(t=>t.show)}},watch:{"viewModel.currentScene"(t,o){const n=this.getDirection(o,t),s=this.getSceneCountBetween(o,t);this.rotateInDirection(o,n,s)}},created(){this.rotateComplete()},methods:{rotateInDirection(t,o,n){this.viewModel.isRotating||(this.viewModel.isRotating=!0,this.rotationStep(this.sceneRotator.start(o,t%V,n)))},rotationStep(t){setTimeout(()=>{this.images[t.frameIndex].show=!1;const o=t.nextFrame();this.images[o.frameIndex].show=!0,o.atEnd?this.rotateComplete():window.requestAnimationFrame(()=>this.rotationStep(o))},1e3/ct)},rotateComplete(){const t=this.sceneRotator.startFrameIndexForScene(this.viewModel.currentScene%V);t in this.images&&(this.images[t].show=!0),this.viewModel.isRotating=!1},createFrames(){const t=[];for(let o=0;o<X;o++){const{sourceSet:n,defaultPath:s}=this.frameImageSource(o);t.push({index:o,sourceSet:n,defaultPath:s,show:!1})}return t},frameImageSource(t){const o=("0000"+(t+1)).slice(-4),n=this.build?`?v=${this.build}`:"",s=[`${this.cdnFileResolver(`/480/${o}.jpg${n}`)} 480w`,`${this.cdnFileResolver(`/960/${o}.jpg${n}`)} 960w`,`${this.cdnFileResolver(`/1280/${o}.jpg${n}`)} 1280w`].join(","),i=this.cdnFileResolver(`/480/${o}.jpg${n}`);return{sourceSet:s,defaultPath:i}},getSceneCountBetween(t,o){const n=V/2,s=Math.abs(t-o);return s>n?V-s:s},getDirection(t,o){if(t===o)return 0;const s=Math.abs(t-o)<V/2;return s&&t<o||!s&&t>o?1:-1}}},mt={key:0,class:"fill-parent d-flex justify-center align-center blue-grey lighten-5"},ht={key:1,class:"frame-container"},pt={class:"frame-image"},ut=["srcset","type"],gt=["src"],ft={key:2,id:"image-stack",class:"frame-container"},kt=["alt"],wt=["srcset"],yt=["src"];function Ct(t,o,n,s,i,r){const a=e.resolveComponent("v-icon");return e.openBlock(),e.createElementBlock("div",null,[i.loadTracker.isError?(e.openBlock(),e.createElementBlock("div",mt,[e.createVNode(a,{"x-large":""},{default:e.withCtx(()=>[e.createTextVNode("mdi-alert-circle-outline")]),_:1})])):i.isPreloaded?(e.openBlock(),e.createElementBlock("div",ft,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(i.images,l=>(e.openBlock(),e.createElementBlock("picture",{key:l.index,alt:l.index,class:e.normalizeClass({"frame-image":!0,show:l.show})},[e.createElementVNode("source",{srcset:l.sourceSet,type:"image/jpeg"},null,8,wt),e.createElementVNode("img",{src:l.defaultPath,alt:"Building image",onLoad:o[2]||(o[2]=c=>i.loadTracker.partLoaded()),onError:o[3]||(o[3]=c=>i.loadTracker.errorDetected())},null,40,yt)],10,kt))),128))])):(e.openBlock(),e.createElementBlock("div",ht,[e.createElementVNode("picture",pt,[e.createElementVNode("source",{srcset:r.activeFrame.sourceSet,type:r.activeFrame.type},null,8,ut),e.createElementVNode("img",{src:r.activeFrame.defaultPath,onLoad:o[0]||(o[0]=l=>i.isPreloaded=!0),onError:o[1]||(o[1]=l=>i.loadTracker.errorDetected())},null,40,gt)])]))])}const bt=g(dt,[["render",Ct],["__scopeId","data-v-e6481f8e"]]),H=4;function Z(t){return t<H?t+1:1}function _t(t){return t>1?t-1:H}class St{constructor(o){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=Z(this.currentScene)})}rotateClockwise(){this.unlessRotatingDo(()=>{this.currentScene=_t(this.currentScene)})}}const It=4,Et=[0,16,32,48],vt={name:"QiApartmentChooser",components:{QiApartmentChooserRaster:J,QiApartmentChooserSvg:G,QiApartmentChooserNavigation:at,QiApartmentChooserRotator:bt,QiFloatingCard:T,QiHoverProbe:E,QiZoomBox:R},provide(){return{i18n:this.i18n?new C(this.i18n.labels,this.i18n.language):new C}},emits:["select-unit","go-to-unit","nav-unit","hover-over-unit","hover-out-unit","initialized"],props:{i18n:{type:Object,default:void 0},showCards:{type:Boolean,default:!0},build:{type:String,default:""},buildingSceneDataResolver:{type:Function,default:null},buildingScenesByApartmentResolver:{type:Function,default:null},cdnFileResolver:{type:Function,required:!0},colorCallback:{type:Function,default:()=>({r:108,g:0,b:108,a:144,s:2})},unitCallback:{type:Function,default:t=>t},canGoToUnitCallback:{type:Function,default:()=>!0},selectedUnitId:{type:String,default:null},nextUnit:{type:Object,default:null},prevUnit:{type:Object,default:null},drawObserver:{type:[Object,Array,String,Number,Boolean],default:null},interactiveDesktop:{type:Boolean,default:!0},interactiveMobile:{type:Boolean,default:!0},useSvg:{type:Boolean,default:!1}},data(){return{loadState:{isReady:!1,isError:!1,progress:void 0},scenesByApartment:null,sceneData:null,scenes:null,viewModel:void 0,resourceLoader:new S,pos:{x:0,y:0,width:0,height:0},closeHandler:void 0,hoverApartment:void 0}},computed:{isHoverable(){return this.$refs.hoverProbe.isHoverEnabled},selectedUnit(){return this.unitCallback?this.unitCallback(this.selectedUnitId):this.selectedUnitId},overlayComponent(){return this.useSvg?G:J}},watch:{selectedUnitId:{handler(){if(this.selectedUnitId&&this.viewModel){const t=this.scenesByApartment[this.selectedUnitId];t&&(this.viewModel.currentScene=t)}},immediate:!0}},async mounted(){let t=null;try{t=await this.resourceLoader.loadJson(this.cdnFileResolver("/apartmentChooser.json"))}catch{console.info("apartmentChooser.json not found")}const o=t&&t.startScene!==void 0?t.startScene:It;this.scenes=t&&t.scenes!==void 0?t.scenes:Et,this.sceneData=t&&t.sceneData!==void 0?t.sceneData.map(i=>({apartmentId:i.apartmentID,index:i.index})):this.buildingSceneDataResolver?await this.buildingSceneDataResolver():[],this.scenesByApartment=t&&t.sceneData!==void 0?t.sceneData.map(i=>{const r=i.bestScene===0?4:i.bestScene;return{unitId:i.apartmentID,scene:r}}).reduce((i,r)=>({...i,[r.unitId]:r.scene}),{}):this.buildingScenesByApartmentResolver?await this.buildingScenesByApartmentResolver():[];const n=(i,r="unitId")=>{let a=o,l=[];for(let c=0;c<H;c++)l.push(a),a=Z(a);return i.sort((c,m)=>{const p=l.findIndex(d=>d===this.scenesByApartment[c[r]]),k=l.findIndex(d=>d===this.scenesByApartment[m[r]]);return p<k?-1:p>k?1:0}),i},s=i=>{this.viewModel=new St(i)};this.$emit("initialized",{scene:o,scenes:this.scenes,sceneData:this.sceneData,scenesByApartment:this.scenesByApartment,unitsSceneSort:n,initialize:s})},methods:{onPos(t){this.pos=t},hoverOver({hoverApartment:t,closeHandler:o}){this.hoverApartment=t,this.closeHandler=o,this.$emit("hover-over-unit",t)},hoverOut({hoverApartment:t,closeHandler:o}){this.hoverApartment=null,this.closeHandler=o,this.$emit("hover-out-unit",t)}}},Bt={key:0},Vt={class:"interactive-viewer"},At={class:"fill-parent"},Nt={key:0},xt={key:1,class:"navigation"},Lt={key:2};function Mt(t,o,n,s,i,r){const a=e.resolveComponent("qi-apartment-chooser-rotator"),l=e.resolveComponent("qi-zoom-box"),c=e.resolveComponent("qi-floating-card"),m=e.resolveComponent("qi-apartment-chooser-navigation"),p=e.resolveComponent("v-progress-linear"),k=e.resolveComponent("qi-hover-probe");return i.viewModel?(e.openBlock(),e.createElementBlock("div",Bt,[e.createElementVNode("div",Vt,[e.createElementVNode("div",At,[e.createVNode(l,{desktop:i.loadState.isReady&&n.interactiveDesktop,mobile:i.loadState.isReady&&n.interactiveMobile},{default:e.withCtx(()=>[e.createVNode(a,{"cdn-file-resolver":n.cdnFileResolver,"view-model":i.viewModel,"cardinal-frames":i.scenes,build:n.build,onProgress:o[0]||(o[0]=d=>i.loadState.progress=d),onLoaded:o[1]||(o[1]=d=>i.loadState.isReady=!0),onError:o[2]||(o[2]=d=>i.loadState.isError=!0)},null,8,["cdn-file-resolver","view-model","cardinal-frames","build"]),i.loadState.isReady?(e.openBlock(),e.createElementBlock("div",Nt,[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(r.overlayComponent),{"cdn-file-resolver":n.cdnFileResolver,"view-model":i.viewModel,"selected-unit-id":n.selectedUnitId,"scene-data":i.sceneData,"color-callback":n.colorCallback,"unit-callback":n.unitCallback,"can-go-to-unit-callback":n.canGoToUnitCallback,"draw-observer":n.drawObserver,onSelectUnit:o[3]||(o[3]=d=>t.$emit("select-unit",d)),onGoToUnit:o[4]||(o[4]=d=>t.$emit("go-to-unit",d)),onHoverOver:r.hoverOver,onHoverOut:r.hoverOut,onPos:r.onPos},{default:e.withCtx(d=>[e.renderSlot(t.$slots,"default",e.normalizeProps(e.guardReactiveProps(d)),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","onHoverOver","onHoverOut","onPos"]))])):e.createCommentVNode("",!0)]),_:3},8,["desktop","mobile"]),i.hoverApartment&&n.showCards?(e.openBlock(),e.createBlock(c,{key:0,"is-hoverable":r.isHoverable,pos:i.pos,onOutside:i.closeHandler},{default:e.withCtx(()=>[e.renderSlot(t.$slots,"default",{unit:i.hoverApartment,canGoToUnit:n.canGoToUnitCallback(i.hoverApartment),goToUnit:()=>n.canGoToUnitCallback(i.hoverApartment)&&t.$emit("go-to-unit",i.hoverApartment),pos:i.pos,isHoverable:r.isHoverable,close:i.closeHandler},void 0,!0)]),_:3},8,["is-hoverable","pos","onOutside"])):e.createCommentVNode("",!0),i.loadState.isReady?(e.openBlock(),e.createElementBlock("div",xt,[e.createVNode(m,{"can-go-to-unit-callback":n.canGoToUnitCallback,"selected-unit":r.selectedUnit,"prev-unit":n.prevUnit,"next-unit":n.nextUnit,"view-model":i.viewModel,onGoToUnit:o[5]||(o[5]=d=>t.$emit("go-to-unit",d)),onPrevUnit:o[6]||(o[6]=d=>t.$emit("nav-unit",n.prevUnit)),onNextUnit:o[7]||(o[7]=d=>t.$emit("nav-unit",n.nextUnit))},null,8,["can-go-to-unit-callback","selected-unit","prev-unit","next-unit","view-model"])])):i.loadState.isError?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("div",Lt,[e.createVNode(p,{indeterminate:!i.loadState.progress,value:i.loadState.progress},null,8,["indeterminate","value"])]))])]),e.createVNode(k,{ref:"hoverProbe"},null,512)])):e.createCommentVNode("",!0)}const Dt=g(vt,[["render",Mt],["__scopeId","data-v-3a1121f3"]]);var I={};Object.defineProperty(I,"__esModule",{value:!0});var Ft=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Ot=typeof window<"u"&&typeof window.document<"u",Tt=typeof process<"u"&&process.versions!=null&&process.versions.node!=null,Rt=(typeof self>"u"?"undefined":Ft(self))==="object"&&self.constructor&&self.constructor.name==="DedicatedWorkerGlobalScope",Ut=typeof window<"u"&&window.name==="nodejs"||typeof navigator<"u"&&(navigator.userAgent.includes("Node.js")||navigator.userAgent.includes("jsdom")),Ht=typeof Deno<"u"&&typeof Deno.version<"u"&&typeof Deno.version.deno<"u",jt=I.isBrowser=Ot;I.isWebWorker=Rt,I.isNode=Tt,I.isJsDom=Ut,I.isDeno=Ht;const qt={name:"Player",emits:["new-camera-callback","new-rotation-callback","new-floor-callback","new-fov-callback","playerApi-callback","new-size-callback"],props:{fileLoader:{type:Object,default:void 0},rootUrl:{type:String,required:!0},currentCameraId:{type:String,default:()=>{}},showStaticImage:{type:Boolean,required:!0},isFullScreen:{type:Boolean,required:!0},mouseSensitivity:{type:Number,default:()=>1},isInIframe:{type:Boolean,default:()=>!1}},data(){return{playerAPI:void 0,playerCamera:void 0,playerRotation:0,playerFoV:0,playerWidth:0,playerHeight:0}},watch:{async rootUrl(t){this.playerAPI&&(await this.playerAPI.loadInterior(t,this.playerCamera,!1),this.setPlayerSize())},fileLoader:{async handler(t){this.playerAPI&&(await this.playerAPI.loadInterior(this.rootUrl,void 0,!1),this.setPlayerSize())},deep:!0},currentCameraId(t){this.playerAPI&&(this.playerCamera=t,this.playerAPI.goToCamera(t,!0))},playerAPI(t){this.$emit("playerApi-callback",t);const o=t.getCurrentCamera();o&&(this.playerCamera=o.id)}},async mounted(){window.addEventListener("resize",this.setPlayerSize),this.setPlayerSize();const s={initialized:()=>{this.playerAPI=M.PlayerV2.Main.getPlayerAPI();const r=this.playerAPI.getCurrentCamera();r&&(this.playerCamera=r.id),this.$emit("new-camera-callback",this.playerCamera)},newCamera:r=>{this.$emit("new-camera-callback",r.id),this.$emit("new-floor-callback",r.floorLevel),this.playerAPI&&this.playerAPI.resetMarkerBehaviour(0),this.playerCamera=r.id},newFOV:r=>{this.$emit("new-fov-callback",r),this.playerFoV=r},newRotation:r=>{const a=r+0;this.$emit("new-rotation-callback",a),this.playerRotation=a}};if(!jt)return;const i=await new M.PlayerV2.Main(this.rootUrl,"qpc",s,void 0,this.currentCameraId,this.fileLoader);i&&(i.handleWindowResize(),window.addEventListener("resize",i.handleWindowResize.bind(i)),i.animate(),this.playerAPI=M.PlayerV2.Main.getPlayerAPI(),this.playerAPI&&this.playerAPI.setLookSensitivity(this.mouseSensitivity))},beforeUnmount(){this.playerAPI&&this.playerAPI.destroy()},methods:{findClosestAncestor(t,o){let n=t,s=t;for(;(n=n.parentNode)&&n.className.indexOf(o)<0;);return s=n,s},setPlayerSize(){let t=1.7777777777777777,o=document.querySelector("#player-sizer");if(!o)return;let n=o.offsetWidth,s=n*(1/t);(window.innerWidth<=600||n<=600)&&(s=window.innerHeight*.75,this.isInIframe&&(s=screen.height*.65),n=s*(1/t)),o.style.height=s+"px",o.style.width=n+"px",this.$emit("new-size-callback",n,s)}}},Pt={id:"player-wrapper"},zt={id:"player-sizer"},Yt={class:"player-control",id:"controls-top-left"},Qt={class:"player-control",id:"controls-top-center"},$t={class:"player-control",id:"controls-top-right"},Wt={class:"player-control",id:"controls-center-left"},Jt={class:"player-control",id:"controls-center-center"},Gt={class:"player-control",id:"controls-center-right"},Xt={class:"player-control",id:"controls-bottom-left"},Zt={class:"player-control",id:"controls-bottom-center"},Kt={class:"player-control",id:"controls-bottom-right"},eo={id:"main-canvas"};function to(t,o,n,s,i,r){return e.openBlock(),e.createElementBlock("div",Pt,[e.createElementVNode("div",zt,[e.renderSlot(t.$slots,"slideshow-image",{},void 0,!0),e.createElementVNode("div",Yt,[e.renderSlot(t.$slots,"top-left",{},void 0,!0)]),e.createElementVNode("div",Qt,[e.renderSlot(t.$slots,"top-center",{},void 0,!0)]),e.createElementVNode("div",$t,[e.renderSlot(t.$slots,"top-right",{},void 0,!0)]),e.createElementVNode("div",Wt,[e.renderSlot(t.$slots,"center-left",{},void 0,!0)]),e.createElementVNode("div",Jt,[e.renderSlot(t.$slots,"center-center",{},void 0,!0)]),e.createElementVNode("div",Gt,[e.renderSlot(t.$slots,"center-right",{},void 0,!0)]),e.createElementVNode("div",Xt,[e.renderSlot(t.$slots,"bottom-left",{},void 0,!0)]),e.createElementVNode("div",Zt,[e.renderSlot(t.$slots,"bottom-center",{},void 0,!0)]),e.createElementVNode("div",Kt,[e.renderSlot(t.$slots,"bottom-right",{},void 0,!0)]),e.createElementVNode("div",eo,[e.createElementVNode("canvas",{id:"qpc",style:e.normalizeStyle(n.showStaticImage?"visibility:hidden":"visibility:visible")},null,4)])])])}const oo=g(qt,[["render",to],["__scopeId","data-v-dd836eff"]]),no=37,io=39,ro={name:"WaypointCarousel",props:{thumbnails:{type:Array,required:!0},active:{type:Number,required:!0}},data(){return{activeThumb:0}},computed:{activeIndex:{get(){return this.active},set(t){this.activeThumb=t}},isMobile(){return/Android|webOS|iPhone|iPad|BlackBerry|Windows Phone|Opera Mini|IEMobile|Mobile/i.test(window.navigator.userAgent)}},mounted(){window.addEventListener("keydown",this.keyNavigate)},beforeUnmount(){window.removeEventListener("keydown",this.keyNavigate)},methods:{keyNavigate(t){switch(t.keyCode){case t.keyCode===no:this.$emit("previous");case t.keyCode===io:this.$emit("next");default:return}},goToCamera(t,o){o(),this.$emit("goto",t)}}},so={class:"waypoint-carousel"};function ao(t,o,n,s,i,r){const a=e.resolveComponent("v-icon"),l=e.resolveComponent("v-btn"),c=e.resolveComponent("v-hover"),m=e.resolveComponent("v-img"),p=e.resolveComponent("v-card"),k=e.resolveComponent("v-slide-group-item"),d=e.resolveComponent("v-slide-group");return e.openBlock(),e.createElementBlock("div",so,[e.createVNode(d,{modelValue:r.activeIndex,"onUpdate:modelValue":o[2]||(o[2]=h=>r.activeIndex=h),"active-class":"active-apt","selected-class":"active-apt","show-arrows":"","center-active":"",mandatory:""},{prev:e.withCtx(()=>[e.createVNode(c,null,{default:e.withCtx(({hover:h})=>[e.createVNode(l,{elevation:"0",class:e.normalizeClass(["carousel-button",{mobile:r.isMobile}]),onClick:o[0]||(o[0]=u=>t.$emit("previous"))},{default:e.withCtx(()=>[e.createVNode(a,{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(c,null,{default:e.withCtx(({hover:h})=>[e.createVNode(l,{elevation:"0",class:e.normalizeClass(["carousel-button",{mobile:r.isMobile}]),onClick:o[1]||(o[1]=u=>t.$emit("next"))},{default:e.withCtx(()=>[e.createVNode(a,{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(n.thumbnails,h=>(e.openBlock(),e.createBlock(k,{key:h.id},{default:e.withCtx(({toggle:u,selectedClass:f})=>[e.createVNode(p,{class:e.normalizeClass(["ma-2",f]),align:"center",justify:"center",height:r.isMobile?50:100,width:r.isMobile?80:160,elevation:"0",style:{overflow:"hidden"},onClick:y=>r.goToCamera(h.id,u)},{default:e.withCtx(()=>[e.createVNode(m,{"max-height":"100","max-width":"160",src:h.thumbnailUrl},null,8,["src"])]),_:2},1032,["class","height","width","onClick"])]),_:2},1024))),128))]),_:1},8,["modelValue"])])}const lo=g(ro,[["render",ao],["__scopeId","data-v-f4e6ce2e"]]),co={name:"FloorLevel",inject:["i18n"],props:{level:{type:Number,default:0},floorLevels:{type:Array,default:[]}},computed:{lowerOrUpper(){const t=this.floorLevels;return t.sort(),t.indexOf(this.level)+1<=t.length/2?"Lower":"Upper"},lowerActive(){return this.lowerOrUpper==="Lower"},upperActive(){return this.lowerOrUpper==="Upper"}}},mo={style:{width:"24px",height:"24px"},viewBox:"0 0 18 16",xmlns:"http://www.w3.org/2000/svg"},ho=["stroke"],po=["stroke"],uo={class:"floor-level-label"};function go(t,o,n,s,i,r){const a=e.resolveComponent("v-btn"),l=e.resolveComponent("v-tooltip");return e.openBlock(),e.createBlock(l,{right:"",attach:""},{activator:e.withCtx(({on:c})=>[e.createVNode(a,e.mergeProps({density:"comfortable",elevation:"1",icon:""},e.toHandlers({...c})),{default:e.withCtx(()=>[(e.openBlock(),e.createElementBlock("svg",mo,[e.createElementVNode("path",{d:"M8.98034 10.3472L1.54055 5.8855L8.98034 1.42384L16.4201 5.8855L8.98034 10.3472Z",fill:"white",stroke:r.upperActive?"black":"#999999","stroke-width":"1.5","stroke-linejoin":"round"},null,8,ho),e.createElementVNode("path",{d:"M8.98034 14.7993L1.54055 10.3376L8.98034 5.87599L16.4201 10.3376L8.98034 14.7993Z",fill:"white",stroke:r.lowerActive?"black":"#999999","stroke-width":"1.5","stroke-linejoin":"round"},null,8,po)]))]),_:2},1040)]),default:e.withCtx(()=>[e.createElementVNode("span",uo,e.toDisplayString(r.i18n.getLabel(r.lowerOrUpper))+" "+e.toDisplayString(r.i18n.getLabel("floor")),1)]),_:1})}const fo=g(co,[["render",go],["__scopeId","data-v-56a279a7"]]),ko={name:"QiVirtualTourSocialShare",inject:["i18n"],data(){return{showSocialShare:!1,currentURL:location.href}},methods:{shareToFacebook(){return window.open("https://www.facebook.com/sharer/sharer.php?u="+encodeURIComponent(location.href),"facebook-share-dialog","width=626,height=436"),!1},shareToTwitter(){return window.open("https://twitter.com/intent/tweet?text="+encodeURIComponent(location.href),"twiter-share-dialog","width=626,height=436"),!1},shareToLinkedin(){return window.open("https://www.linkedin.com/sharing/share-offsite/?url="+encodeURIComponent(location.href),"linkedin-share-dialog","width=626,height=736"),!1},copyLink(){navigator.clipboard.writeText(location.href)}}},wo={id:"share-btns-wrapper",class:"text-center"};function yo(t,o,n,s,i,r){const a=e.resolveComponent("v-btn"),l=e.resolveComponent("v-tooltip"),c=e.resolveComponent("v-toolbar-title"),m=e.resolveComponent("v-spacer"),p=e.resolveComponent("v-toolbar"),k=e.resolveComponent("v-card-text"),d=e.resolveComponent("v-card"),h=e.resolveComponent("v-dialog");return e.openBlock(),e.createElementBlock("div",null,[e.createVNode(l,{elevation:"2",top:"",attach:""},{activator:e.withCtx(({on:u})=>[e.createVNode(a,e.mergeProps({density:"comfortable",elevation:"1",icon:"mdi-share-variant",onClick:o[0]||(o[0]=f=>i.showSocialShare=!i.showSocialShare)},e.toHandlers({...u})),null,16)]),default:e.withCtx(()=>[e.createElementVNode("span",null,e.toDisplayString(r.i18n.getLabel("share")),1)]),_:1}),e.createVNode(h,{id:"share-box",width:"400",modelValue:i.showSocialShare,"onUpdate:modelValue":o[2]||(o[2]=u=>i.showSocialShare=u)},{default:e.withCtx(()=>[e.createVNode(d,null,{default:e.withCtx(()=>[e.createVNode(p,{elevation:"0"},{default:e.withCtx(()=>[e.createVNode(a,{size:"x-small",icon:"mdi-close",onClick:o[1]||(o[1]=u=>i.showSocialShare=!1)}),e.createVNode(c,null,{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(r.i18n.getLabel("share")),1)]),_:1}),e.createVNode(m)]),_:1}),e.createVNode(k,{class:"mt-5"},{default:e.withCtx(()=>[e.createElementVNode("p",wo,[e.createVNode(l,{location:"top"},{activator:e.withCtx(({props:u})=>[e.createVNode(a,e.mergeProps({depressed:"",fab:"",light:"",icon:"mdi-facebook"},u,{onClick:r.shareToFacebook}),null,16,["onClick"])]),default:e.withCtx(()=>[e.createElementVNode("span",null,e.toDisplayString(r.i18n.getLabel("share-to-facebook")),1)]),_:1}),e.createVNode(l,{location:"top"},{activator:e.withCtx(({props:u})=>[e.createVNode(a,e.mergeProps({depressed:"",fab:"",light:"",icon:"mdi-linkedin"},u,{onClick:r.shareToLinkedin}),null,16,["onClick"])]),default:e.withCtx(()=>[e.createElementVNode("span",null,e.toDisplayString(r.i18n.getLabel("share-to-linkedin")),1)]),_:1}),e.createVNode(l,{location:"top"},{activator:e.withCtx(({props:u})=>[e.createVNode(a,e.mergeProps({depressed:"",fab:"",light:"",icon:"mdi-twitter"},u,{onClick:r.shareToTwitter}),null,16,["onClick"])]),default:e.withCtx(()=>[e.createElementVNode("span",null,e.toDisplayString(r.i18n.getLabel("share-to-twitter")),1)]),_:1}),e.createVNode(l,{location:"top"},{activator:e.withCtx(({props:u})=>[e.createVNode(a,e.mergeProps({depressed:"",fab:"",light:"",icon:"mdi-email",link:"",href:`mailto:?body=${i.currentURL}`},u),null,16,["href"])]),default:e.withCtx(()=>[e.createElementVNode("span",null,e.toDisplayString(r.i18n.getLabel("share-via-email")),1)]),_:1}),e.createVNode(l,{location:"top"},{activator:e.withCtx(({props:u})=>[e.createVNode(a,e.mergeProps({depressed:"",fab:"",light:"",icon:"mdi-content-copy",onClick:r.copyLink},u),null,16,["onClick"])]),default:e.withCtx(()=>[e.createElementVNode("span",null,e.toDisplayString(r.i18n.getLabel("copy-link")),1)]),_:1}),e.createVNode(m)])]),_:1})]),_:1})]),_:1},8,["modelValue"])])}const Co=g(ko,[["render",yo],["__scopeId","data-v-3560cd03"]]),bo={name:"InteriorSelector",emits:["select-interior"],props:{availableArchetypes:{type:Array,required:!0},selectedIndex:{type:Number,required:!0}},inject:["i18n","localMode","fileLoader"],methods:{getUrl(t){let o=t;return this.localMode&&(o=`${this.fileLoader.getURL(t)}`),o}}};function _o(t,o,n,s,i,r){const a=e.resolveComponent("v-btn"),l=e.resolveComponent("v-img"),c=e.resolveComponent("v-list-item-title"),m=e.resolveComponent("v-list-item"),p=e.resolveComponent("v-list"),k=e.resolveComponent("v-menu");return e.openBlock(),e.createElementBlock("div",null,[e.createVNode(k,{transition:"slide-x-reverse-transition",location:"top end",origin:"end bottom",elevation:"0"},{activator:e.withCtx(({props:d})=>[e.createVNode(a,e.mergeProps({"prepend-icon":"mdi-palette-outline",rounded:""},d),{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(r.i18n.getLabel("interior")),1)]),_:2},1040)]),default:e.withCtx(()=>[e.createVNode(p,{class:"interior-selector-list"},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(n.availableArchetypes,(d,h)=>(e.openBlock(),e.createBlock(m,{density:"compact",key:`at-menuitem-${h}`,onClick:u=>t.$emit("select-interior",d.archetypeID),active:h===n.selectedIndex,class:"interior-selector-list-item"},{prepend:e.withCtx(()=>[e.createVNode(l,{width:"100","max-width":"100",height:"66",src:r.getUrl(d.url)},null,8,["src"])]),default:e.withCtx(()=>[e.createVNode(c,{class:"text-caption py-2 px-4"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(r.i18n.get(d.title)),1)]),_:2},1024)]),_:2},1032,["onClick","active"]))),128))]),_:1})]),_:1})])}const So=g(bo,[["render",_o],["__scopeId","data-v-fe12068f"]]),Io="data:image/png;base64,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",Eo="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==",vo={name:"Compass",props:{rotation:{type:Number,required:!0}},data(){return{needle:Eo,compassBackground:{backgroundImage:`url(${Io})`,backgroundSize:"contain"}}},computed:{needleRotation(){return{transform:`rotate(${-this.rotation+180}deg)`}}}};function Bo(t,o,n,s,i,r){const a=e.resolveComponent("v-img");return e.openBlock(),e.createElementBlock("div",{style:e.normalizeStyle(i.compassBackground)},[e.createVNode(a,{class:"compass-needle",src:i.needle,style:e.normalizeStyle(r.needleRotation)},null,8,["src","style"])],4)}const Vo=g(vo,[["render",Bo]]),Ao={name:"StaticImage",props:{image:{type:String,required:!0},aspectRatio:{type:String,default:()=>"wide"}},computed:{style(){return{"background-image":`url("${encodeURI(this.image)}")`}}}},No={class:"static-image-wrapper"};function xo(t,o,n,s,i,r){return e.openBlock(),e.createElementBlock("div",No,[e.createElementVNode("div",{class:e.normalizeClass(["img-div",[n.aspectRatio]]),style:e.normalizeStyle(r.style)},null,6)])}const Lo=g(Ao,[["render",xo],["__scopeId","data-v-b418cf51"]]),Mo="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";function K(t){return("0"+t).slice(-2)}const Do={name:"TimeOfDay",props:{hours:{type:Number,default:0},minutes:{type:Number,default:0}},data(){return{sunIcon:Mo}},computed:{displayValue(){return[K(this.hours),":",K(this.minutes)].join("")}}},Fo={class:"d-flex flex-column align-center justify-center clock-face"},Oo={class:"clock-icon"},To={class:"clock-value grey--text text--darken-3"};function Ro(t,o,n,s,i,r){const a=e.resolveComponent("v-img");return e.openBlock(),e.createElementBlock("div",Fo,[e.createElementVNode("div",Oo,[e.createVNode(a,{src:i.sunIcon,"aspect-ratio":"1"},null,8,["src"])]),e.createElementVNode("div",To,e.toDisplayString(r.displayValue),1)])}const Uo=g(Do,[["render",Ro],["__scopeId","data-v-e440b0c9"]]);class Ho{constructor(o,n){this._doc=o,this._elemId=n,this._state={isActive:!1}}get isActive(){return this._state.isActive}setup(){const o=["fullscreenchange","webkitfullscreenchange","mozfullscreenchange","msfullscreenchange"],n=this._getElement();o.forEach(s=>{n.addEventListener(s,this._toggle.bind(this),!1)})}toggle(){this.isActive?this._exit():this._enter()}_enter(){const o=this._getElement(),n=o.requestFullscreen||o.webkitRequestFullscreen||o.mozRequestFullscreen||o.msRequestFullscreen;n&&n.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 A(t){return("0"+t).slice(-2)}function jo(){const t=new Date;return[t.getFullYear().toString(),A(t.getMonth()+1),A(t.getDate())," ",A(t.getHours()),A(t.getMinutes()),A(t.getSeconds())].join("")}function qo(){return"Visuado-Snapshot-"+jo()}class Po{constructor(o,n){this.data=o,this.cameraParams=n}download(o=null){o=o||qo();const n=document.createElement("a");typeof n.download=="string"?(document.body.appendChild(n),n.download=o,n.href=this.data,n.click(),document.body.removeChild(n)):location.replace(uri)}}const zo={props:{isFullScreen:{type:Boolean,required:!0}},emits:["toggle-fullscreen"]},Yo={id:"btn-fullscreen",class:"btn-placeholder mr-2"};function Qo(t,o,n,s,i,r){const a=e.resolveComponent("v-btn");return e.openBlock(),e.createElementBlock("div",Yo,[e.createVNode(a,{density:"comfortable",elevation:"3",icon:n.isFullScreen?"mdi-fullscreen-exit":"mdi-fullscreen",onClick:o[0]||(o[0]=l=>t.$emit("toggle-fullscreen"))},null,8,["icon"])])}const $o=g(zo,[["render",Qo]]),Wo={name:"ViewModeToggle",emits:["toggle"],inject:["i18n"],props:{showStaticImage:{type:Boolean,required:!0}},computed:{virtualTourToggleLabel(){let t="virtual-tour";return this.showStaticImage||(t="slide-show"),t}}};function Jo(t,o,n,s,i,r){const a=e.resolveComponent("v-btn");return e.openBlock(),e.createBlock(a,{color:"darken-2",elevation:"1",rounded:"",plain:"",onClick:o[0]||(o[0]=l=>t.$emit("toggle"))},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(r.i18n.getLabel(r.virtualTourToggleLabel)),1)]),_:1})}const Go=g(Wo,[["render",Jo]]),Xo={name:"Disclaimer",inject:["i18n"],data(){return{isVisible:!0}}},Zo={key:0,class:"text-white disclaimer caption"};function Ko(t,o,n,s,i,r){return e.openBlock(),e.createBlock(e.Transition,{name:"fade-transition"},{default:e.withCtx(()=>[i.isVisible?(e.openBlock(),e.createElementBlock("div",Zo,[e.createTextVNode(e.toDisplayString(r.i18n.getLabel("all-illustrations-are-indicative-deviations-may-occur"))+" ",1),e.createElementVNode("span",{onClick:o[0]||(o[0]=a=>i.isVisible=!1),class:"link-text text-decoration-underline"},e.toDisplayString(r.i18n.getLabel("i-understand")),1)])):e.createCommentVNode("",!0)]),_:1})}const en=g(Xo,[["render",Ko],["__scopeId","data-v-6e4f02d6"]]),tn={name:"Tutorial",inject:["i18n"],emits:["closeTutorial"],props:{project:{type:String,required:!0}},data(){return{isVisible:!0,dontShow:!1}},computed:{isMobile(){return[/Android/i,/webOS/i,/iPhone/i,/iPad/i,/iPod/i,/BlackBerry/i,/Windows Phone/i].some(o=>navigator.userAgent.match(o))},tutorialHiddenForEternity(){const t=localStorage.getItem(`${this.project}-dont-show-tutorial`);return t&&this.$emit("closeTutorial"),t}},methods:{clickedOk(){this.dontShow&&this.hideForEternity(),this.isVisible=!1,this.$emit("closeTutorial")},hideForEternity(){localStorage.setItem(`${this.project}-dont-show-tutorial`,!0)}}},_=t=>(e.pushScopeId("data-v-d87b088a"),t=t(),e.popScopeId(),t),on={key:0,class:"tutorial"},nn={key:0,class:"desktop-content"},rn={class:"d-inline-flex"},sn={class:"box col"},an=_(()=>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)),ln={class:"text mt-3"},cn={class:"box col"},dn=_(()=>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)),mn={class:"text mt-3"},hn={class:"box col"},pn=_(()=>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)),un={class:"text mt-3"},gn={class:"d-inline-flex space-around"},fn={class:"box col"},kn=_(()=>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)),wn={class:"text mt-3"},yn={key:1,class:"d-flex flex-column tablet-mobile-content"},Cn={class:"box horizontal mt-3"},bn=_(()=>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)),_n={class:"text ml-2"},Sn={class:"box horizontal mt-3"},In=_(()=>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)),En={class:"text ml-2"},vn={class:"box horizontal mt-3"},Bn=_(()=>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)),Vn={class:"text ml-2"},An={class:"d-flex justify-space-between mt-3 mx-3 mb-0 tutorial-buttons"};function Nn(t,o,n,s,i,r){const a=e.resolveComponent("v-checkbox"),l=e.resolveComponent("v-btn");return e.openBlock(),e.createBlock(e.Transition,{name:"fade-transition"},{default:e.withCtx(()=>[i.isVisible&&!r.tutorialHiddenForEternity?(e.openBlock(),e.createElementBlock("div",on,[r.isMobile?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("div",nn,[e.createElementVNode("div",rn,[e.createElementVNode("div",sn,[an,e.createElementVNode("div",ln,e.toDisplayString(r.i18n.getLabel("click-and-drag-to-look-around")),1)]),e.createElementVNode("div",cn,[dn,e.createElementVNode("div",mn,e.toDisplayString(r.i18n.getLabel("click-on-the-cricles-to-move-around")),1)]),e.createElementVNode("div",hn,[pn,e.createElementVNode("div",un,e.toDisplayString(r.i18n.getLabel("use-the-mouse-wheel-to-zoom")),1)])]),e.createElementVNode("div",gn,[e.createElementVNode("div",fn,[kn,e.createElementVNode("div",wn,e.toDisplayString(r.i18n.getLabel("you-can-also-use-the-arrow-keys-to-move-around")),1)])])])),r.isMobile?(e.openBlock(),e.createElementBlock("div",yn,[e.createElementVNode("div",Cn,[bn,e.createElementVNode("div",_n,e.toDisplayString(r.i18n.getLabel("tap-and-drag-to-look-around")),1)]),e.createElementVNode("div",Sn,[In,e.createElementVNode("div",En,e.toDisplayString(r.i18n.getLabel("tap-on-the-circles-to-move-around")),1)]),e.createElementVNode("div",vn,[Bn,e.createElementVNode("div",Vn,e.toDisplayString(r.i18n.getLabel("use-two-fingers-to-zoom")),1)])])):e.createCommentVNode("",!0),e.createElementVNode("div",An,[e.createVNode(a,{modelValue:i.dontShow,"onUpdate:modelValue":o[0]||(o[0]=c=>i.dontShow=c),label:r.i18n.getLabel("dont-show-again")},null,8,["modelValue","label"]),e.createVNode(l,{small:"",outlined:"",class:"mt-5",onClick:o[1]||(o[1]=c=>r.clickedOk())},{default:e.withCtx(()=>[e.createTextVNode("Ok")]),_:1})])])):e.createCommentVNode("",!0)]),_:1})}const xn=g(tn,[["render",Nn],["__scopeId","data-v-d87b088a"]]);function Ln(t){const o=parseInt(t.substr(1,2),16)/255,n=parseInt(t.substr(3,2),16)/255,s=parseInt(t.substr(5,2),16)/255;return[o,n,s]}function j(t){var o=t.toString(16);return o.length==1?"0"+o:o}function Mn([t,o,n]){return"#"+j(parseInt(t*255))+j(parseInt(o*255))+j(parseInt(n*255))}function ee(t){const o=["Cool 5","Cool 10","Cool 15","Cool 20","Cool 25","Warm 20","Warm 25","Warm 10","Warm 15","Warm 5","bw"];let n={temperature:6500,targetLuminance:1,exposureFovScale:.6,UNREAL_BLOOM_ENABLED:!0,sharpenFilter_amount:.6,UNREAL_BLOOOM_STRENGTH:.3,TRANSITION_MOVEMENT_SCALE:1.3,whitePoint:[1,1,1],lut:"",...t};return{exposureFovScale:{label:"Exposure Fov Scale",type:"slider",min:0,max:1,step:.01,value:n.exposureFovScale},targetLuminance:{label:"Target Luminance",type:"slider",min:0,max:15,step:.1,value:n.targetLuminance},sharpenFilter_amount:{label:"Sharpen Filter Amount",type:"slider",min:0,max:100,step:.1,value:n.sharpenFilter_amount},UNREAL_BLOOM_ENABLED:{label:"Enable Bloom?",type:"boolean",value:n.UNREAL_BLOOM_ENABLED},UNREAL_BLOOOM_STRENGTH:{label:"Bloom Strength",type:"slider",min:0,max:1,step:.01,value:n.UNREAL_BLOOOM_STRENGTH},TRANSITION_MOVEMENT_SCALE:{label:"Transition Movement Speed",type:"slider",min:.2,max:25,step:.1,value:n.TRANSITION_MOVEMENT_SCALE},temperature:{label:"Temperature / White Balance",type:"slider",min:1e3,max:12e3,step:1,value:n.temperature},whitePoint:{label:"White Point",type:"color",min:null,max:null,step:null,value:Mn(n.whitePoint)},lut:{label:"Lut",type:"lut",items:o.map(s=>({text:s,value:`https://cdn.visuado.com/luts/${s}.png`})),value:n.lut}}}const Dn={name:"SettingsUI",emits:["update-settings","save-settings"],props:{projectSlug:{type:String,required:!0},initialSettings:{type:Object,default:()=>{}}},data(){return{allSettings:ee(this.initialSettings)}},watch:{allSettings:{handler(){this.updateSettings()},deep:!0}},computed:{settingsToUpdate(){let t={};for(const[o,n]of Object.entries(this.allSettings))o==="whitePoint"?t[o]=Ln(n.value):t[o]=n.value;return t}},methods:{updateSettings(){this.$emit("update-settings",this.settingsToUpdate)},downloadSettings(){const t=document.createElement("a");t.href=URL.createObjectURL(new Blob([JSON.stringify(this.settingsToUpdate,null,2)]));const o=`player-settings-${this.projectSlug}-${Date.now()}.json`;t.download=o,t.style.display="none",document.body.appendChild(t),t.click(),document.body.removeChild(t)},saveSettings(){this.$emit("save-settings",this.settingsToUpdate)},resetForm(){this.allSettings=ee(),this.$emit("update-settings",this.settingsToUpdate)}}},Fn=t=>(e.pushScopeId("data-v-c04f3195"),t=t(),e.popScopeId(),t),On={class:"player-settings-ui"},Tn={id:"settings-ui-form"},Rn={class:"form-inputs"},Un={class:"setting-label"},Hn={class:"setting-label"},jn=["max","min","step"],qn={class:"setting-label"},Pn={class:"flex-grow-1 flex-shrink-0"},zn=["onUpdate:modelValue"],Yn={key:3,"d-block":"",class:"mt-3"},Qn={class:"d-flex justify-space-between"},$n={class:"setting-label"},Wn={class:"mt-5 d-block",style:{width:"300px"}},Jn=Fn(()=>e.createElementVNode("div",{class:"setting-label"},"Enter Lut URL:",-1)),Gn={class:"d-block",style:{width:"300px"}},Xn={class:"form-buttons"};function Zn(t,o,n,s,i,r){const a=e.resolveComponent("v-text-field"),l=e.resolveComponent("v-slider"),c=e.resolveComponent("v-checkbox"),m=e.resolveComponent("v-btn"),p=e.resolveComponent("v-select"),k=e.resolveComponent("v-icon");return e.openBlock(),e.createElementBlock("div",On,[e.createElementVNode("form",Tn,[e.createElementVNode("div",Rn,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(i.allSettings,(d,h,u)=>(e.openBlock(),e.createElementBlock("div",{key:u,"d-block":""},[d.type==="slider"?(e.openBlock(),e.createBlock(l,{key:0,modelValue:i.allSettings[h].value,"onUpdate:modelValue":f=>i.allSettings[h].value=f,onChange:r.updateSettings,max:d.max,min:d.min,step:d.step},{prepend:e.withCtx(()=>[e.createElementVNode("div",Un,e.toDisplayString(d.label),1)]),append:e.withCtx(()=>[e.createElementVNode("div",null,[e.createVNode(a,{modelValue:i.allSettings[h].value,"onUpdate:modelValue":f=>i.allSettings[h].value=f,"hide-details":"",dense:"",outlined:"",type:"number",max:d.max,min:d.min,step:d.step,style:{width:"90px"},onChange:r.updateSettings},null,8,["modelValue","onUpdate:modelValue","max","min","step","onChange"])])]),_:2},1032,["modelValue","onUpdate:modelValue","onChange","max","min","step"])):e.createCommentVNode("",!0),d.type==="boolean"?(e.openBlock(),e.createBlock(c,{key:1,modelValue:i.allSettings[h].value,"onUpdate:modelValue":f=>i.allSettings[h].value=f,onChange:r.updateSettings},{prepend:e.withCtx(()=>[e.createElementVNode("div",Hn,e.toDisplayString(d.label),1)]),append:e.withCtx(()=>[e.createElementVNode("div",null,e.toDisplayString(d.value),1)]),_:2},1032,["modelValue","onUpdate:modelValue","onChange"])):e.createCommentVNode("",!0),d.type==="color"?(e.openBlock(),e.createElementBlock("div",{key:2,class:"d-flex",max:d.max,min:d.min,step:d.step},[e.createElementVNode("div",qn,e.toDisplayString(d.label),1),e.createElementVNode("div",Pn,[e.withDirectives(e.createElementVNode("input",{"onUpdate:modelValue":f=>i.allSettings[h].value=f,type:"color",onChange:o[0]||(o[0]=(...f)=>r.updateSettings&&r.updateSettings(...f))},null,40,zn),[[e.vModelText,i.allSettings[h].value]])]),e.createElementVNode("div",null,[e.createVNode(a,{modelValue:i.allSettings[h].value,"onUpdate:modelValue":f=>i.allSettings[h].value=f,"hide-details":"",dense:"",outlined:"",readonly:"",type:"text",style:{width:"90px"},onChange:r.updateSettings},null,8,["modelValue","onUpdate:modelValue","onChange"])])],8,jn)):e.createCommentVNode("",!0),d.type==="lut"?(e.openBlock(),e.createElementBlock("div",Yn,[e.createElementVNode("div",Qn,[e.createElementVNode("div",$n,e.toDisplayString(d.label),1),e.createElementVNode("div",null,[e.createVNode(m,{class:"ml-2","x-small":"",onClick:f=>i.allSettings[h].value=null},{default:e.withCtx(()=>[e.createTextVNode(" Clear Lut ")]),_:2},1032,["onClick"])])]),e.createElementVNode("div",null,[e.createElementVNode("div",Wn,[e.createElementVNode("div",null,[e.createVNode(p,{modelValue:i.allSettings[h].value,"onUpdate:modelValue":f=>i.allSettings[h].value=f,items:d.items,"item-title":"title","item-value":"value",dense:"",label:"Select Lut",onChange:r.updateSettings},null,8,["modelValue","onUpdate:modelValue","items","onChange"])])]),e.createElementVNode("div",null,[Jn,e.createElementVNode("div",Gn,[e.createElementVNode("div",null,[e.createVNode(a,{modelValue:i.allSettings[h].value,"onUpdate:modelValue":f=>i.allSettings[h].value=f,"hide-details":"",dense:"",type:"url",onChange:r.updateSettings},null,8,["modelValue","onUpdate:modelValue","onChange"])])])])])])):e.createCommentVNode("",!0)]))),128))]),e.createElementVNode("div",Xn,[e.createVNode(m,{onClick:o[1]||(o[1]=d=>r.resetForm())},{default:e.withCtx(()=>[e.createTextVNode("Reset")]),_:1}),e.createVNode(m,{class:"ml-2",onClick:o[2]||(o[2]=d=>r.downloadSettings())},{default:e.withCtx(()=>[e.createTextVNode(" Download Json "),e.createVNode(k,{color:"black darken-1"},{default:e.withCtx(()=>[e.createTextVNode("mdi-download")]),_:1})]),_:1}),e.createVNode(m,{class:"ml-2",onClick:o[3]||(o[3]=d=>r.saveSettings())},{default:e.withCtx(()=>[e.createTextVNode(" Save Settings "),e.createVNode(k,{color:"black darken-1"},{default:e.withCtx(()=>[e.createTextVNode("mdi-save")]),_:1})]),_:1})])])])}const Kn=g(Dn,[["render",Zn],["__scopeId","data-v-c04f3195"]]),ei={props:{rotation:{type:Number,required:!0}}},ti={class:"rotation-marker-svg",viewBox:"0 0 40 40",xmlns:"http://www.w3.org/2000/svg"},oi=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),ni=["transform"],ii=[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)];function ri(t,o,n,s,i,r){return e.openBlock(),e.createElementBlock("svg",ti,[oi,e.createElementVNode("g",{"transform-origin":"20 20",transform:`rotate(${45+n.rotation})`},ii,8,ni)])}const si=g(ei,[["render",ri]]);function ai(t){return b.MathUtils.degToRad(t)}const li={name:"MiniMapMap",components:{RotationMarkerV2:si},props:{backgroundImage:{type:String,required:!0},allCameras:{type:Array,required:!0},minimapCamera:{type:Object,required:!0},currentCamera:{type:String,required:!0},rotation:{type:Number,required:!0},transformAngle:{type:Number,required:!0}},data(){return{planeWidth:512,planeHeight:384,topLeftCorner:new b.Vector3,centerPivot:new b.Object3D,centerPivotStyle:{},scale:1,resizeOverver:void 0}},computed:{apartmentCameras(){return this.allCameras},currentCameraObject(){return this.allCameras.find(t=>t.id===this.currentCamera)},rotationAngle(){return this.rotation},minimapCameraPositionVector(){return new b.Vector3(this.minimapCamera.position.x,this.minimapCamera.position.y,this.minimapCamera.position.z)},floorVerticalPosition(){return parseFloat(this.currentCameraObject.floor_vertical_position)},camerasWithRelativePosition(){return this.apartmentCameras.map(t=>{const o=t.uposition.split(","),n=new b.Vector3(o[0]-this.minimapCameraPositionVector.x,0,o[2]-this.minimapCameraPositionVector.z);return{...t,...this.relativePosition(this.topLeftCorner,n)}})},backgroundStyle(){return`background-image: url(${this.backgroundImage});`},transformStyle(){let t=this.scale>1?1:this.scale;return t<.8&&(t=.4),`scale: ${t>1?1:t}; transform: rotate(${this.transformAngle}deg);`}},mounted(){this.calculateRelativeValues(),this.upadteCenterPivot(),this.calcualteScale();const t=document.getElementById("moveableDiv");t&&(this.resizeOverver=new ResizeObserver(this.calcualteScale).observe(t))},beforeUpdate(){this.calculateRelativeValues(),this.upadteCenterPivot()},beforeUnmount(){this.resizeOverver&&this.resizeOverver.unobserve(document.getElementById("moveableDiv"))},methods:{upadteCenterPivot(){this.centerPivot.rotation.x=180,this.centerPivot.rotation.y=this.minimapCamera.rotation.y*-1,this.centerPivotStyle={transform:`rotateZ(${this.centerPivot.rotation.y}deg) rotateX(${this.centerPivot.rotation.x}deg)`}},cameraPositionStyle(t){return{top:`${Math.abs(t.top)}%`,left:`${Math.abs(t.left)}%`}},relativePosition(t,o){var n=new b.Vector3;const s=n.subVectors(t,o);return{relativePosition:s,left:s.x/this.planeWidth*100,top:s.z/this.planeHeight*100}},calculateRelativeValues(){const t=this.minimapCamera.position.y-this.floorVerticalPosition;this.planeHeight=2*(t*Math.tan(ai(this.minimapCamera.fovY/2))),this.planeWidth=512/384*this.planeHeight;const o=this.planeHeight/2,n=this.planeWidth/2,s=new b.Vector3(n*-1,0,o*-1);this.topLeftCorner=s},calcualteScale(){const t=document.getElementById("moveableDiv");if(!t)return;const o=t.offsetHeight/384*.8,n=t.offsetWidth/512*.8;t.offsetHeight>t.offsetWidth?this.scale=n*.5:this.scale=o*.9}}},ci={class:"minimap-wrapper d-flex align-stretch justify-space-between"},di={class:"minimap-container"};function mi(t,o,n,s,i,r){const a=e.resolveComponent("rotation-marker-v2");return e.openBlock(),e.createElementBlock("div",ci,[e.createElementVNode("div",di,[e.createElementVNode("div",{class:"web-minimap",style:e.normalizeStyle(r.transformStyle)},[e.createElementVNode("div",{class:"minimap-background-image",style:e.normalizeStyle(r.backgroundStyle)},null,4),e.createElementVNode("div",{class:"center-pivot",style:e.normalizeStyle(i.centerPivotStyle)},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(r.camerasWithRelativePosition,l=>(e.openBlock(),e.createElementBlock("div",{key:l.id},[r.currentCameraObject.floorLevel===l.floorLevel?(e.openBlock(),e.createElementBlock("div",{key:0,class:"single-camera-marker",style:e.normalizeStyle(r.cameraPositionStyle(l))},null,4)):e.createCommentVNode("",!0),r.currentCameraObject.id===l.id?(e.openBlock(),e.createBlock(a,{key:1,class:"rotation-marker-component",rotation:r.rotationAngle,style:e.normalizeStyle({...r.cameraPositionStyle(l)})},null,8,["rotation","style"])):e.createCommentVNode("",!0)]))),128))],4)],4)])])}const hi=g(li,[["render",mi],["__scopeId","data-v-341837d7"]]),pi={name:"Moveable",emits:["close"],data(){return{currentSize:"big"}},mounted(){ui(document.getElementById("moveableDiv"))},methods:{toggleSize(){this.currentSize==="big"?this.currentSize="small":this.currentSize="big"}}};function ui(t){const o=document.getElementById(t.id+"header");if(!o)return;var n=0,s=0,i=0,r=0;o.addEventListener("touchstart",a,{passive:!1}),o.addEventListener("touchend",c,{passive:!1}),o.addEventListener("mousedown",a,{passive:!1}),o.addEventListener("mouseup",c,{passive:!1});function a(m){m=m||window.event,m.preventDefault();let p=m;m.type==="touchstart"&&(p=m.touches[0]),i=p.clientX,r=p.clientY,document.addEventListener("mouseup",c,{passive:!1}),document.addEventListener("touchend",c,{passive:!1}),document.addEventListener("mousemove",l,{passive:!1}),document.addEventListener("touchmove",l,{passive:!1})}function l(m){m=m||window.event,m.preventDefault();let p=m;m.type==="touchmove"&&(p=m.touches[0]),n=i-p.clientX,s=r-p.clientY,i=p.clientX,r=p.clientY,t.style.top=t.offsetTop-s+"px",t.style.left=t.offsetLeft-n+"px"}function c(){document.removeEventListener("mouseup",c,!1),document.removeEventListener("mousemove",l,!1),document.removeEventListener("touchend",c,!1),document.removeEventListener("touchmove",l,!1)}}const gi=(t=>(e.pushScopeId("data-v-243baf73"),t=t(),e.popScopeId(),t))(()=>e.createElementVNode("div",{id:"filler-div"},null,-1)),fi={class:"moveable-body",id:"moveableDivheader"},ki={class:"moveable-footer"};function wi(t,o,n,s,i,r){const a=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",i.currentSize])},[e.createVNode(a,{class:"close-icon",icon:"mdi-window-close",size:"x-small",onClick:o[0]||(o[0]=l=>t.$emit("close"))}),e.createVNode(a,{class:"resize-icon",icon:"mdi-image-size-select-small",size:"x-small",onClick:r.toggleSize,title:"Resize"},null,8,["onClick"]),e.createVNode(a,{class:"rotate-icon",size:"x-small",icon:"mdi mdi-rotate-right",onClick:o[1]||(o[1]=l=>t.$emit("transform")),title:"Rotate"}),gi,e.createElementVNode("div",fi,[e.renderSlot(t.$slots,"body",{class:"slot"},void 0,!0)]),e.createElementVNode("div",ki,[e.renderSlot(t.$slots,"footer",{},void 0,!0)])],2)}const yi=g(pi,[["render",wi],["__scopeId","data-v-243baf73"]]),Ci={name:"MinimapCompass",components:{QiNorthDirection:D},props:{scale:{type:Number,required:!0},minimapCamera:{type:Object,required:!0},transformAngle:{type:Number,required:!0}},computed:{northDirection(){return this.minimapCamera.rotation?this.minimapCamera.rotation.y+this.transformAngle-90:0}}};function bi(t,o,n,s,i,r){const a=e.resolveComponent("qi-north-direction");return e.openBlock(),e.createElementBlock("div",{class:"minimap-compass",style:e.normalizeStyle({scale:n.scale})},[e.createVNode(a,{class:"north-indicator",longitude:r.northDirection},null,8,["longitude"])],4)}const _i=g(Ci,[["render",bi],["__scopeId","data-v-01730a31"]]),Si={name:"SunsimulationSlider",emits:["set-background-image"],props:{minimapJSON:{type:Array,required:!0},level:{type:Number,required:!0},root:{type:String,required:!0}},inject:["localMode","fileLoader"],data(){return{imageUrl:"",imageHeight:0,hourMark:new Date().getHours(),imagesPreloading:!0,loading:!0,firstImage:"",preloadedSunSimImages:new Map}},computed:{minimapData(){return this.minimapJSON[this.level]},hourMarkString(){return`${Math.floor(this.hourMark).toString().padStart(2,"0")}:00`},timeString(){if(this.minimapData.sunsimFilesTimeStamps[this.hourMark]){const t=this.minimapData.sunsimFilesTimeStamps[this.hourMark].split(" ");return`${t[0]} ${t[1]}`}return""}},async mounted(){this.firstImage=await this.fetchAndConvertToBase64(this.minimapData.sunsimFiles[this.hourMark]),this.loading=!1;const t=await this.preloadImages(this.minimapJSON);this.preloadedSunSimImages=t,this.imagesPreloading=!1,this.$emit("set-background-image",this.getImageUrl(this.level,this.hourMark))},watch:{hourMark(){const t=this.getImageUrl(this.level,this.hourMark);this.$emit("set-background-image",t)},level:{handler(){this.$emit("set-background-image",this.getImageUrl(this.level,this.hourMark))},immediate:!0}},methods:{getImageUrl(t,o){return this.preloadedSunSimImages.get(`sunsim${t}_${o}`)?this.preloadedSunSimImages.get(`sunsim${t}_${o}`):""},async preloadImages(t){let o=new Map;for(let n=0;n<t.length;n++){const s=t[n].sunsimFiles;for(let i=0;i<s.length;i++){const r=s[i];try{const a=r,l=r.split("."),c=await this.fetchAndConvertToBase64(this.root+a);o.set(l[0],c)}catch{continue}}}return o},async fetchAndConvertToBase64(t){let o=t;this.localMode&&(o=`${this.fileLoader.getURL(t)}`);const s=await(await fetch(o)).blob(),i=await this.convertToBase64(s);return this.base64toImage(i)},base64toImage(t){return"data:image/jpeg;base64,"+t},async convertToBase64(t){return new Promise((o,n)=>{const s=new FileReader;s.onload=()=>{const i=s.result.split(",")[1];o(i)},s.onerror=n,s.readAsDataURL(t)})}}},Ii={class:"ss-wrapper"},Ei={class:"slider"},vi={class:"minimap-sun-slider"},Bi={key:0,class:"time-label"};function Vi(t,o,n,s,i,r){const a=e.resolveComponent("v-progress-linear"),l=e.resolveComponent("v-icon"),c=e.resolveComponent("v-slider");return e.openBlock(),e.createElementBlock("div",Ii,[e.createElementVNode("div",Ei,[e.createElementVNode("div",vi,[i.imagesPreloading?(e.openBlock(),e.createBlock(a,{key:0,indeterminate:"",rounded:"",height:"6",color:"grey lighten-1",class:"mr-2"})):(e.openBlock(),e.createBlock(c,{key:1,modelValue:i.hourMark,"onUpdate:modelValue":o[0]||(o[0]=m=>i.hourMark=m),min:0,max:23,step:1,color:"#373737","track-color":"#373737","thumb-color":"#373737","hide-details":!0},{prepend:e.withCtx(()=>[e.createVNode(l,{color:"#ffab02"},{default:e.withCtx(()=>[e.createTextVNode("mdi-white-balance-sunny")]),_:1})]),_:1},8,["modelValue"]))]),i.imagesPreloading?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("div",Bi,e.toDisplayString(r.timeString)+" "+e.toDisplayString(r.hourMarkString),1))])])}const Ai={components:{MiniMapMap:hi,Moveable:yi,MinimapCompass:_i,SunsimulationSlider:g(Si,[["render",Vi],["__scopeId","data-v-86183299"]])},name:"MiniMapV2",emits:["close","set-background-image"],props:{minimapJSON:{type:Array,required:!0},rootUrl:{type:String,required:!0},backgroundImage:{type:String,required:!0},allCameras:{type:Array,required:!0},minimapCamera:{type:Object,required:!0},currentCamera:{type:String,required:!0},level:{type:Number,required:!0},rotation:{type:Number,required:!0}},data(){return{transformAngle:0}},computed:{scale(){let t=1;return this.transformAngle!==0&&(Math.abs(this.transformAngle)%180===0?t=1:t=-1),t}},methods:{setBackgroundImage(t){this.$emit("set-background-image",t)},transform(){this.transformAngle=this.transformAngle+90}}};function Ni(t,o,n,s,i,r){const a=e.resolveComponent("minimap-compass"),l=e.resolveComponent("mini-map-map"),c=e.resolveComponent("sunsimulation-slider"),m=e.resolveComponent("moveable");return e.openBlock(),e.createBlock(m,{onClose:o[0]||(o[0]=p=>t.$emit("close")),onTransform:r.transform},{body:e.withCtx(()=>[e.createVNode(a,{scale:r.scale,minimapCamera:n.minimapCamera,transformAngle:i.transformAngle},null,8,["scale","minimapCamera","transformAngle"]),e.createElementVNode("div",null,[e.createVNode(l,{transformAngle:i.transformAngle,allCameras:n.allCameras,backgroundImage:n.backgroundImage,rotation:n.rotation,currentCamera:n.currentCamera,minimapCamera:n.minimapCamera},null,8,["transformAngle","allCameras","backgroundImage","rotation","currentCamera","minimapCamera"])])]),footer:e.withCtx(()=>[e.createVNode(c,{minimapJSON:n.minimapJSON,root:`${n.rootUrl}/minimap/`,level:n.level,onSetBackgroundImage:r.setBackgroundImage},null,8,["minimapJSON","root","level","onSetBackgroundImage"])]),_:1},8,["onTransform"])}const xi=g(Ai,[["render",Ni],["__scopeId","data-v-547d8112"]]),Li={temperature:6500,targetLuminance:1,exposureFovScale:.3,UNREAL_BLOOM_ENABLED:!0,sharpenFilter_amount:.6,UNREAL_BLOOOM_STRENGTH:.3,TRANSITION_MOVEMENT_SCALE:1.3,whitePoint:[1,1,1]},Mi={name:"VirtualTourV2",emits:["on-snapshot","save-settings","on-interior-update","on-camera-update"],components:{Player:oo,WaypointCarousel:lo,InteriorSelector:So,Compass:Vo,SingleImage:Lo,TimeOfDay:Uo,FloorLevel:fo,SocialShare:Co,FullScreenButton:$o,ViewModeToggle:Go,MiniMapV2:xi,Disclaimer:en,Tutorial:xn,SettingsUI:Kn},props:{fileLoader:{type:Object,default:void 0},cdnRoot:{type:String,required:!0},projectSlug:{type:String,required:!0},apartmentId:{type:String,required:!0},defaultInteriorId:{type:String,default:()=>{}},validInteriorIds:{type:Array,default:()=>[]},viewModes:{type:Array,default:()=>["virtualTour","slideShow"]},displayViewModeSwitch:{type:Boolean,default:()=>!0},websiteUrl:{type:String,default:()=>{}},i18n:{type:Object,default:void 0},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:{type:Number,default:()=>0},defaultViewMode:{type:String,default:()=>"virtualTour"},mouseSensitivity:{type:Number,default:()=>1},isInIframe:{type:Boolean,default:()=>!1},adminMode:{type:Boolean,default:()=>!1},playerSettings:{type:Object,default:()=>Li}},data(){return{showSettings:!1,loading:!0,error:!1,configJSON:void 0,apartmentJSON:void 0,thumbsJSON:void 0,minimapJSON:void 0,playerApi:void 0,currentThumbnailIndex:0,selectedInteriorId:void 0,currentCameraId:void 0,playerCamera:void 0,rotation:0,floorLevel:0,fov:0,showStaticImage:!1,displayMinimap:!1,minimapBackgroundImage:void 0,showUI:!1,fullScreen:new Ho(document,"player-wrapper")}},provide(){const t=this.i18n?new C(this.i18n.labels,this.i18n.language):new C;return{localMode:this.localMode,fileLoader:this.fileLoader,i18n:t}},computed:{localMode(){return!!this.fileLoader},projectRoot(){let t=`${this.cdnRoot}/${this.projectSlug}`;return this.fileLoader&&(t=""),Oi(t)},rootUrl(){return`${this.projectRoot}/${this.interiorId}/${this.apartmentId}`},interiorId(){return this.selectedInteriorId},allCameras(){return this.apartmentJSON?this.apartmentJSON.cameras:[]},currentCamera(){if(this.apartmentJSON&&this.currentCameraId)return this.apartmentJSON.cameras.find(t=>t.id===this.cameraId)},floorLevels(){if(this.apartmentJSON){const t=this.apartmentJSON.cameras.map(n=>n.floorLevel);let o=[...new Set(t)];return o=o.sort(),o}else return[]},storey(){let t=0;if(this.apartmentJSON){const o=this.apartmentJSON.cameras.map(i=>i.floorLevel);let n=[...new Set(o)];n=n.sort();const s=n.findIndex(i=>i===this.floorLevel);s!==-1&&(t=s)}return t},selectedInteriorIndex(){return this.interiors.findIndex(t=>t.archetypeID===this.selectedInteriorId)},thumbnails(){return this.thumbsJSON?this.thumbsJSON.cameras.map(t=>({...t,thumbnailUrl:this.getURL(`${this.projectRoot}/${this.interiorId}/${this.apartmentId}/thumbs/200/${t.id}.jpg`),imageUrl:this.getURL(`${this.projectRoot}/${this.interiorId}/${this.apartmentId}/images/1600/${t.id}.jpg`)})):[]},staticImage(){return!this.thumbnails||!this.thumbnails[this.currentThumbnailIndex]?"":this.thumbnails[this.currentThumbnailIndex].imageUrl},interiors(){let t=[];return this.configJSON&&(t=this.configJSON.archetypes),this.validInteriorIds.length?t.filter(o=>this.validInteriorIds.includes(o.archetypeID)):t},interiorIds(){return this.interiors.map(t=>t.archetypeID)},interiorsWithImage(){return this.thumbsJSON?this.interiors.map(t=>({...t,url:`${this.projectRoot}/${t.archetypeID}/${this.apartmentId}/thumbs/200/${this.thumbnails[this.currentThumbnailIndex].id}.jpg`})):[]},minimapCamera(){if(this.minimapJSON)return this.minimapJSON.storeys[this.storey]},hasTimeofDay(){return this.apartmentJSON&&this.apartmentJSON.timeInHours},timeOfDay(){if(this.apartmentJSON&&this.apartmentJSON.timeInHours&&this.showTimeOfDay)return Di(this.apartmentJSON.timeInHours)},refinedMinimapBackgroundImage(){return this.minimapBackgroundImage?this.minimapBackgroundImage:`${this.projectRoot}/${this.interiorId}/${this.apartmentId}/minimap/sunsim0_13.jpg`}},watch:{async cdnRoot(){await this.loadProjectFiles(),this.selectInititalInterior(),await this.loadUnitFiles()},async projectSlug(){await this.loadProjectFiles(),this.selectInititalInterior(),await this.loadUnitFiles()},defaultViewMode:{handler(t){t==="virtualTour"&&(this.showStaticImage=!1),t==="slideShow"&&(this.showStaticImage=!0,this.showUI=!0)},immediate:!0},minimapJSON(t){if(t.storeys[this.storey]){const o=t.storeys[this.storey].defaultSunsimFile;this.minimapBackgroundImage=`${this.projectRoot}/${this.interiorId}/${this.apartmentId}/minimap/${o}`}}},async mounted(){try{await this.loadProjectFiles(),this.selectInititalInterior(),await this.loadUnitFiles(),this.fullScreen.setup(),this.setupScrollevents()}catch{this.error=!0}},methods:{async loadProjectFiles(){this.configJSON=await this.loadConfigJSON(this.projectRoot)},async loadUnitFiles(){if(this.apartmentJSON=await this.loadApartmentJSON(this.projectRoot,this.interiorId,this.apartmentId),this.apartmentJSON&&(this.currentCameraId=this.apartmentJSON.cameras.find(()=>!0).id),this.thumbsJSON=await this.loadThumbsJSON(this.projectRoot,this.interiorId,this.apartmentId),this.thumbsJSON){let t=this.defaultWaypointIndex!==null?this.defaultWaypointIndex:0;this.currentThumbnailIndex=t,this.currentCameraId=this.thumbsJSON.cameras[t].id,this.playerCamera=this.thumbsJSON.cameras[t].id}this.showMiniMap&&(this.minimapJSON=await this.loadminimapJSON(this.projectRoot,this.interiorId,this.apartmentId))},selectInititalInterior(){let t=this.defaultInteriorId;t||(t=this.configJSON.defaultArchetypeID),this.validInteriorIds.length&&!this.validInteriorIds.includes(t)&&(t=this.validInteriorIds[0]),t||(t=this.configJSON.archetypes[0].archetypeID),this.selectedInteriorId=t},setupScrollevents(){const t=document.getElementById("main-canvas");t.addEventListener("touchmove",o,{passive:!1});function o(s){s.preventDefault(),window.scrollBy(0,0)}t.addEventListener("mouseenter",()=>{document.addEventListener("wheel",n,{passive:!1})},{passive:!1}),t.addEventListener("mouseleave",()=>{document.removeEventListener("wheel",n,{passive:!1})},{passive:!1});function n(s){s.preventDefault(),window.scrollBy(0,0)}},async loadConfigJSON(t){try{return await this.loadFile(`${t}/config.json`)}catch(o){console.error("Error loading config.json - ",`${t}/config.json`,o);return}},async loadApartmentJSON(t,o,n){try{return await this.loadFile(`${t}/${o}/${n}/apartment.json`)}catch(s){console.error("Error loading apartment.json - ",`${t}/${o}/${n}/apartment.json`,s);return}},async loadThumbsJSON(t,o,n){try{return await this.loadFile(`${t}/${o}/${n}/thumbs.json`)}catch{console.error("Error loading thumbs.json - ",`${t}/${o}/${n}/thumbs.json`);return}},async loadminimapJSON(t,o,n){try{return await this.loadFile(`${t}/${o}/${n}/minimap/minimap.json`)}catch{console.error("Error loading minimap.json - ",`${t}/${o}/${n}/minimap/minimap.json`);return}},selectInterior(){this.defaultInteriorId?this.selectedInteriorId=this.defaultInteriorId:this.selectedInteriorId=this.configJSON.defaultArchetypeID},nextCamera(){let t=this.currentThumbnailIndex+1;t>=this.thumbnails.length&&(t=0),this.currentThumbnailIndex=t,this.setCurrentCamera(this.thumbnails[this.currentThumbnailIndex].id)},previousCamera(){let t=this.currentThumbnailIndex-1;t<0&&(t=this.thumbnails.length-1),this.currentThumbnailIndex=t,this.setCurrentCamera(this.thumbnails[this.currentThumbnailIndex].id)},goToCamera(t,o=!0){let n=this.thumbnails.findIndex(s=>s.id===t);n!=-1&&(this.currentThumbnailIndex=n,o&&this.setCurrentCamera(t))},setCurrentCamera(t){this.currentCameraId=t},updateSelectedInterior(t){this.selectedInteriorId=t,this.$emit("on-interior-update",t),this.$emit("on-camera-update",this.playerCamera,this.apartmentJSON)},newCameraCallback(t){this.goToCamera(t,!1),this.playerCamera=t,this.$emit("on-camera-update",t,this.apartmentJSON)},newRotationCallback(t){this.rotation=t},newfloorCallback(t){this.floorLevel=t},newFoVCallback(t){this.fov=t},newSizeCallback(t,o){},playerApiCallback(t){this.playerApi=t,this.playerSettings&&this.playerApi.updateSettings(this.playerSettings)},toggleFullscreen(){this.fullScreen.toggle(),window.scrollTo({top:150,behavior:"smooth"})},toggleViewMode(){this.showStaticImage=!this.showStaticImage},setMinimapBackgroundImage(t){this.minimapBackgroundImage=t},async takeSnapshot(){const t=180/Math.PI,o=await this.playerApi.takePhoto(),n=this.playerApi.getRotationEuler(),s=this.playerApi.getCurrentCamera(),i=new Po(o,s),r=[n.x*t,n.y*t,n.z*t];return this.$emit("on-snapshot",i,r),i},getURL(t){let o=t;return this.localMode?o=`${this.fileLoader.getURL(t)}`:this.adminMode&&(o=o+`?v=${Date.now()}`),o},async loadFile(t){const o=this.getURL(t);return await Fi(o)},updateSetting(t){this.playerApi.updateSettings(t)},saveSettings(t){this.$emit("save-settings",t)}}};function Di(t){if(t===void 0)return null;const o=Math.floor(t),n=Math.floor((o-t)*60);return{hours:o,minutes:n}}async function Fi(t){try{return(await q.get(t)).data}catch(o){throw console.error(o),new Error(o)}}function Oi(t){return t.replace(/\/$/,"")}const Ti={class:"virtual-tour-v2-wrapper"},Ri={key:0,class:"player-error"},Ui={class:"player-and-components-wrapper"},Hi={key:1},ji={key:3,class:"settings-panel"},qi={key:0,class:"compass-wrapper"},Pi={key:1,class:"btn-placeholder mr-2"},zi={key:2,class:"btn-placeholder"},Yi={key:0};function Qi(t,o,n,s,i,r){const a=e.resolveComponent("mini-map-v-2"),l=e.resolveComponent("single-image"),c=e.resolveComponent("v-btn"),m=e.resolveComponent("floor-level"),p=e.resolveComponent("settings-u-i"),k=e.resolveComponent("disclaimer"),d=e.resolveComponent("compass"),h=e.resolveComponent("time-of-day"),u=e.resolveComponent("tutorial"),f=e.resolveComponent("full-screen-button"),y=e.resolveComponent("social-share"),Wi=e.resolveComponent("view-mode-toggle"),te=e.resolveComponent("waypoint-carousel"),Ji=e.resolveComponent("interior-selector"),Gi=e.resolveComponent("player");return e.openBlock(),e.createElementBlock("div",Ti,[i.error?(e.openBlock(),e.createElementBlock("div",Ri,"Error loading the player!!")):e.createCommentVNode("",!0),e.createElementVNode("div",Ui,[!i.fullScreen.isActive&&i.minimapJSON&&i.playerCamera&&r.minimapCamera&&i.displayMinimap?(e.openBlock(),e.createBlock(a,{key:0,allCameras:r.allCameras,rootUrl:r.rootUrl,level:r.storey,backgroundImage:r.refinedMinimapBackgroundImage,minimapJSON:i.minimapJSON.storeys,rotation:i.rotation,currentCamera:i.playerCamera,minimapCamera:r.minimapCamera,onClose:o[0]||(o[0]=L=>i.displayMinimap=!1),onSetBackgroundImage:r.setMinimapBackgroundImage},null,8,["allCameras","rootUrl","level","backgroundImage","minimapJSON","rotation","currentCamera","minimapCamera","onSetBackgroundImage"])):e.createCommentVNode("",!0),r.interiorId&&i.currentCameraId?(e.openBlock(),e.createElementBlock("div",Hi,[e.createVNode(Gi,{ref:"player","file-loader":n.fileLoader,style:e.normalizeStyle({zIndex:i.showStaticImage?1:2}),showStaticImage:i.showStaticImage,isFullScreen:i.fullScreen.isActive,rootUrl:r.rootUrl,currentCameraId:i.currentCameraId,"mouse-sensitivity":n.mouseSensitivity,"is-in-iframe":n.isInIframe,onNewCameraCallback:r.newCameraCallback,onNewRotationCallback:r.newRotationCallback,onNewFloorCallback:r.newfloorCallback,onNewFovCallback:r.newFoVCallback,onNewSizeCallback:r.newSizeCallback,onPlayerApiCallback:r.playerApiCallback},{"slideshow-image":e.withCtx(()=>[i.showStaticImage?(e.openBlock(),e.createBlock(l,{key:0,image:r.staticImage},null,8,["image"])):e.createCommentVNode("",!0)]),"top-left":e.withCtx(()=>[n.adminMode?e.withDirectives((e.openBlock(),e.createBlock(c,{key:0,density:"comfortable",icon:"mdi-cog-outline",elevation:"3",class:"mr-2",onClick:o[1]||(o[1]=L=>i.showSettings=!i.showSettings)},null,512)),[[e.vShow,i.showUI]]):e.createCommentVNode("",!0),i.minimapJSON&&i.currentCameraId&&r.minimapCamera?e.withDirectives((e.openBlock(),e.createBlock(c,{key:1,density:"comfortable",elevation:"3",icon:"mdi-floor-plan",class:"mr-2",onClick:o[2]||(o[2]=L=>i.displayMinimap=!i.displayMinimap)},null,512)),[[e.vShow,i.showUI]]):e.createCommentVNode("",!0),i.showUI&&n.showFloorLevel&&r.floorLevels.length>1?(e.openBlock(),e.createBlock(m,{key:2,level:i.floorLevel,"floor-levels":r.floorLevels},null,8,["level","floor-levels"])):e.createCommentVNode("",!0),i.showUI&&n.adminMode&&i.showSettings?(e.openBlock(),e.createElementBlock("div",ji,[e.createVNode(p,{"project-slug":n.projectSlug,initialSettings:n.playerSettings,onUpdateSettings:r.updateSetting,onSaveSettings:r.saveSettings},null,8,["project-slug","initialSettings","onUpdateSettings","onSaveSettings"])])):e.createCommentVNode("",!0)]),"top-center":e.withCtx(()=>[i.showUI?(e.openBlock(),e.createBlock(k,{key:0,"return-url":n.websiteUrl},null,8,["return-url"])):e.createCommentVNode("",!0)]),"top-right":e.withCtx(()=>[i.apartmentJSON&&n.showCompass?e.withDirectives((e.openBlock(),e.createElementBlock("div",qi,[e.createVNode(d,{rotation:i.rotation},null,8,["rotation"])],512)),[[e.vShow,i.showUI]]):e.createCommentVNode("",!0),i.showUI&&i.apartmentJSON&&r.hasTimeofDay&&n.showTimeOfDay?(e.openBlock(),e.createBlock(h,{key:1,hours:r.timeOfDay.hours,minutes:r.timeOfDay.minutes},null,8,["hours","minutes"])):e.createCommentVNode("",!0)]),"center-left":e.withCtx(()=>[e.createVNode(e.Transition,{name:"slide-x-transition"},{default:e.withCtx(()=>[i.showStaticImage?(e.openBlock(),e.createBlock(c,{key:0,density:"comfortable",elevation:"3",icon:"mdi-chevron-left",onClick:r.previousCamera},null,8,["onClick"])):e.createCommentVNode("",!0)]),_:1})]),"center-center":e.withCtx(()=>[e.createVNode(u,{project:r.projectRoot,onCloseTutorial:o[3]||(o[3]=L=>i.showUI=!0)},null,8,["project"]),i.fullScreen.isActive&&i.minimapJSON&&i.playerCamera&&r.minimapCamera&&i.displayMinimap?(e.openBlock(),e.createBlock(a,{key:0,allCameras:r.allCameras,rootUrl:r.rootUrl,minimapJSON:i.minimapJSON.storeys,backgroundImage:r.refinedMinimapBackgroundImage,rotation:i.rotation,currentCamera:i.playerCamera,minimapCamera:r.minimapCamera,level:r.storey,onClose:o[4]||(o[4]=L=>i.displayMinimap=!1),onSetBackgroundImage:r.setMinimapBackgroundImage},null,8,["allCameras","rootUrl","minimapJSON","backgroundImage","rotation","currentCamera","minimapCamera","level","onSetBackgroundImage"])):e.createCommentVNode("",!0)]),"center-right":e.withCtx(()=>[e.createVNode(e.Transition,{name:"slide-x-reverse-transition"},{default:e.withCtx(()=>[i.showStaticImage?(e.openBlock(),e.createBlock(c,{key:0,density:"comfortable",elevation:"3",icon:"mdi-chevron-right",onClick:r.nextCamera},null,8,["onClick"])):e.createCommentVNode("",!0)]),_:1})]),"bottom-left":e.withCtx(()=>[i.showUI&&n.showFullScreen?(e.openBlock(),e.createBlock(f,{key:0,isFullScreen:i.fullScreen.isActive,class:"btn-fullscreen",onToggleFullscreen:r.toggleFullscreen},null,8,["isFullScreen","onToggleFullscreen"])):e.createCommentVNode("",!0),i.showUI&&n.showSnapshot?(e.openBlock(),e.createElementBlock("div",Pi,[e.createVNode(c,{density:"comfortable",elevation:"3",icon:"mdi-camera",onClick:r.takeSnapshot},null,8,["onClick"])])):e.createCommentVNode("",!0),i.showUI&&n.showShare&&!i.fullScreen.isActive?(e.openBlock(),e.createElementBlock("div",zi,[e.createVNode(y)])):e.createCommentVNode("",!0)]),"bottom-center":e.withCtx(()=>[i.showUI&&n.showCarousel?(e.openBlock(),e.createElementBlock("div",Yi,[n.displayViewModeSwitch?(e.openBlock(),e.createBlock(Wi,{key:0,"show-static-image":i.showStaticImage,onToggle:r.toggleViewMode},null,8,["show-static-image","onToggle"])):e.createCommentVNode("",!0),i.showUI&&i.fullScreen.isActive?(e.openBlock(),e.createBlock(te,{key:1,class:e.normalizeClass([i.fullScreen.isActive?"full-screen":""]),thumbnails:r.thumbnails,active:i.currentThumbnailIndex,onNext:r.nextCamera,onPrevious:r.previousCamera,onGoto:r.goToCamera},null,8,["class","thumbnails","active","onNext","onPrevious","onGoto"])):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0)]),"bottom-right":e.withCtx(()=>[i.showUI&&n.showInteriorOptions&&r.interiorsWithImage?(e.openBlock(),e.createBlock(Ji,{key:0,availableArchetypes:r.interiorsWithImage,selectedIndex:r.selectedInteriorIndex,onSelectInterior:r.updateSelectedInterior},null,8,["availableArchetypes","selectedIndex","onSelectInterior"])):e.createCommentVNode("",!0)]),_:1},8,["file-loader","style","showStaticImage","isFullScreen","rootUrl","currentCameraId","mouse-sensitivity","is-in-iframe","onNewCameraCallback","onNewRotationCallback","onNewFloorCallback","onNewFovCallback","onNewSizeCallback","onPlayerApiCallback"]),n.showCarousel&&i.thumbsJSON?(e.openBlock(),e.createBlock(te,{key:0,thumbnails:r.thumbnails,active:i.currentThumbnailIndex,onNext:r.nextCamera,onPrevious:r.previousCamera,onGoto:r.goToCamera},null,8,["thumbnails","active","onNext","onPrevious","onGoto"])):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0)])])}const x={QiBuildingChooser:Je,QiApartmentChooser:Dt,VirtualTourV2:g(Mi,[["render",Qi],["__scopeId","data-v-5e036d71"]])},$i={install(t){for(const o in x)if(x.hasOwnProperty(o)){const n=x[o];t.component(n.name,n)}}};w.components=x,w.default=$i,Object.defineProperties(w,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});
|
package/package.json
CHANGED
|
@@ -1,30 +1,29 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@qispace/vue3-player",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.13",
|
|
4
|
+
"type": "module",
|
|
4
5
|
"config": {
|
|
5
6
|
"tag-version-prefix": "v"
|
|
6
7
|
},
|
|
7
|
-
"main": "dist/vue3-player.umd.js",
|
|
8
|
-
"module": "dist/vue3-player.mjs",
|
|
9
8
|
"files": [
|
|
10
9
|
"dist",
|
|
11
|
-
"src/components/"
|
|
12
|
-
"src/lib/"
|
|
10
|
+
"src/components/"
|
|
13
11
|
],
|
|
14
|
-
"
|
|
12
|
+
"main": "./dist/vue3-player.umd.cjs",
|
|
13
|
+
"module": "./dist/vue3-player.js",
|
|
15
14
|
"exports": {
|
|
16
15
|
".": {
|
|
17
|
-
"import": "./dist/vue3-player.
|
|
18
|
-
"require": "./dist/vue3-player.umd.
|
|
16
|
+
"import": "./dist/vue3-player.js",
|
|
17
|
+
"require": "./dist/vue3-player.umd.cjs"
|
|
19
18
|
},
|
|
20
19
|
"./dist/style.css": {
|
|
21
|
-
"import": "./dist/
|
|
22
|
-
"require": "./dist/
|
|
20
|
+
"import": "./dist/style.css",
|
|
21
|
+
"require": "./dist/style.css"
|
|
23
22
|
}
|
|
24
23
|
},
|
|
25
24
|
"scripts": {
|
|
26
25
|
"dev": "vite --config ./dev/vite.config.js",
|
|
27
|
-
"build": "
|
|
26
|
+
"build": "vue-tsc && vite build",
|
|
28
27
|
"prebuild": "rimraf ./dist",
|
|
29
28
|
"release": "npm run release:patch",
|
|
30
29
|
"release:major": "git pull && npm version major && git push && git push --tags",
|
|
@@ -34,18 +33,38 @@
|
|
|
34
33
|
"peerDependencies": {
|
|
35
34
|
"axios": "^1.6.7",
|
|
36
35
|
"vue": "^3.4.15",
|
|
37
|
-
"vuetify": "^3.5.4"
|
|
36
|
+
"vuetify": "^3.5.4",
|
|
37
|
+
"@qispace/player-core": "1.0.50"
|
|
38
38
|
},
|
|
39
39
|
"devDependencies": {
|
|
40
40
|
"@mdi/font": "^7.4.47",
|
|
41
|
+
"@qispace/player-core": "1.0.50",
|
|
42
|
+
"@rollup/plugin-alias": "^5.1.0",
|
|
43
|
+
"@rollup/plugin-babel": "^6.0.4",
|
|
44
|
+
"@rollup/plugin-commonjs": "^25.0.7",
|
|
45
|
+
"@rollup/plugin-image": "^3.0.3",
|
|
46
|
+
"@rollup/plugin-json": "^6.1.0",
|
|
47
|
+
"@rollup/plugin-node-resolve": "^15.2.3",
|
|
48
|
+
"@rollup/plugin-replace": "^5.0.5",
|
|
49
|
+
"@rollup/plugin-typescript": "^11.1.6",
|
|
41
50
|
"@types/node": "^20.11.19",
|
|
42
51
|
"@vitejs/plugin-vue": "^5.0.3",
|
|
52
|
+
"@vue/babel-preset-app": "^5.0.8",
|
|
53
|
+
"@vue/cli-plugin-babel": "^4.5.13",
|
|
54
|
+
"@vue/cli-plugin-typescript": "~4.0.0",
|
|
55
|
+
"@vue/cli-service": "^4.5.13",
|
|
56
|
+
"@vuedoc/md": "^3.2.0",
|
|
57
|
+
"@vuedoc/parser": "^3.4.0",
|
|
43
58
|
"axios": "^1.6.7",
|
|
59
|
+
"browser-fs-access": "^0.29.1",
|
|
44
60
|
"cross-env": "^7.0.3",
|
|
45
61
|
"minimist": "^1.2.8",
|
|
46
62
|
"path": "^0.12.7",
|
|
47
63
|
"rimraf": "^3.0.2",
|
|
64
|
+
"rollup-plugin-peer-deps-external": "^2.2.4",
|
|
65
|
+
"rollup-plugin-terser": "^7.0.2",
|
|
48
66
|
"rollup-plugin-typescript2": "^0.36.0",
|
|
67
|
+
"rollup-plugin-vue": "^6.0.0",
|
|
49
68
|
"typescript": "^5.2.2",
|
|
50
69
|
"vite": "^5.1.0",
|
|
51
70
|
"vite-plugin-css-injected-by-js": "^3.4.0",
|
|
@@ -54,11 +73,10 @@
|
|
|
54
73
|
"vue-tsc": "^1.8.27"
|
|
55
74
|
},
|
|
56
75
|
"dependencies": {
|
|
57
|
-
"@qispace/player-core": "1.0.50",
|
|
58
76
|
"browser-fs-access": "^0.35.0",
|
|
59
77
|
"browser-or-node": "^2.1.1"
|
|
60
78
|
},
|
|
61
79
|
"engines": {
|
|
62
|
-
"node": ">=
|
|
80
|
+
"node": ">=18"
|
|
63
81
|
}
|
|
64
82
|
}
|
|
@@ -26,16 +26,16 @@
|
|
|
26
26
|
</template>
|
|
27
27
|
|
|
28
28
|
<script>
|
|
29
|
-
import QiBuildingChooserSvg from
|
|
30
|
-
import QiBuildingChooserRaster from
|
|
29
|
+
import QiBuildingChooserSvg from './QiBuildingChooserSvg.vue'
|
|
30
|
+
import QiBuildingChooserRaster from './QiBuildingChooserRaster.vue'
|
|
31
31
|
|
|
32
32
|
export default {
|
|
33
|
-
name:
|
|
33
|
+
name: 'QiBuildingChooser',
|
|
34
34
|
components: {
|
|
35
35
|
QiBuildingChooserSvg,
|
|
36
36
|
QiBuildingChooserRaster,
|
|
37
37
|
},
|
|
38
|
-
emits: [
|
|
38
|
+
emits: ['go-to-building', 'hover-over-building', 'hover-out-building'],
|
|
39
39
|
props: {
|
|
40
40
|
showCards: { type: Boolean, default: () => true },
|
|
41
41
|
colorCallback: {
|
|
@@ -50,12 +50,12 @@ export default {
|
|
|
50
50
|
useSvg: { type: Boolean, default: false },
|
|
51
51
|
buildingChooserTimeOfDay: { type: String, default: null },
|
|
52
52
|
canGoToBuildingCallback: { type: Function, default: () => true },
|
|
53
|
-
customOverlayContent: { type: String, default:
|
|
53
|
+
customOverlayContent: { type: String, default: '' },
|
|
54
54
|
},
|
|
55
55
|
computed: {
|
|
56
56
|
component() {
|
|
57
|
-
return this.useSvg ? QiBuildingChooserSvg : QiBuildingChooserRaster
|
|
57
|
+
return this.useSvg ? QiBuildingChooserSvg : QiBuildingChooserRaster
|
|
58
58
|
},
|
|
59
59
|
},
|
|
60
|
-
}
|
|
60
|
+
}
|
|
61
61
|
</script>
|