@eturnity/eturnity_3d 7.18.0-qa-elisee.2 → 7.20.1
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/css/app.58568098.css +1 -0
- package/dist/index.html +15 -0
- package/dist/js/app-legacy.aa792c98.js +2 -0
- package/dist/js/app-legacy.aa792c98.js.map +1 -0
- package/dist/js/chunk-vendors-legacy.9bb3863d.js +41 -0
- package/dist/js/chunk-vendors-legacy.9bb3863d.js.map +1 -0
- package/package.json +42 -56
- package/src/components/ThreeCanvasViewer.vue +4 -7
- package/src/helper/UpdateRoofModuleFieldRelations.js +25 -65
- package/src/helper/cameraMixin.js +16 -11
- package/src/helper/initializeThree.js +14 -0
- package/src/helper/materialMixin.js +2 -2
- package/src/helper/render/edge.js +2 -2
- package/src/helper/render/imageOverlay.js +9 -11
- package/src/helper/render/obstacle.js +4 -6
- package/src/helper/render/panel.js +5 -3
- package/src/helper/render/roof.js +2 -4
- package/src/helper/render/tile.js +0 -2
- package/src/helper/renderMixin.js +15 -13
- package/src/helper/threeMixin.js +4 -12
- package/src/main.js +6 -9
- package/src/store/store.js +2 -4
- package/src/utils/layers.js +1 -1
- package/.babelrc +0 -3
- package/.bitbucket/ci/build_customization_config.sh +0 -20
- package/.bitbucket/ci/build_image_config.sh +0 -8
- package/.editorconfig +0 -5
- package/.env +0 -2
- package/.env.bitbucket +0 -2
- package/.eslintrc +0 -18
- package/.prettierrc +0 -7
- package/CODEOWNERS +0 -1
- package/Dockerfile +0 -17
- package/bitbucket-pipelines.yml +0 -1233
- package/docker_conf/nginx/nginx.conf +0 -16
- package/index.html +0 -25
- package/postcss.config.js +0 -1
- package/preview.html +0 -55
- package/public/assets/images/panels/longiSolarLR4_60HPH_350M.png +0 -0
- package/public/assets/images/panels/longiSolarLR4_60HPH_370M.png +0 -0
- package/public/assets/images/panels/reneSola_Virtus_2_JC320S_24_Bbw.png +0 -0
- package/public/assets/images/panels/uv.png +0 -0
- package/public/assets/panels/longiSolarLR4_60HPH_350M.png +0 -0
- package/public/assets/panels/longiSolarLR4_60HPH_370M.png +0 -0
- package/public/assets/panels/reneSola_Virtus_2_JC320S_24_Bbw.png +0 -0
- package/public/assets/panels/uv.png +0 -0
- package/public/assets/theme.js +0 -43
- package/public/assets/vue.svg +0 -1
- package/public/vite.svg +0 -1
- package/server.js +0 -17
- package/vue.config.js +0 -46
- /package/{public/assets/images/panels/reneSola_Virtus_2_JC320S_24_Bbw copy.png → dist/img/reneSola_Virtus_2_JC320S_24_Bbw.85a0cb6d.png} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.canvas3DContainer,.canvas3DContainer>canvas{height:100%;width:100%}
|
package/dist/index.html
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html lang="">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="utf-8" />
|
|
5
|
+
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
|
|
6
|
+
<meta name="viewport" content="width=device-width,initial-scale=1" />
|
|
7
|
+
<title>Vue App</title>
|
|
8
|
+
<script defer="defer" src="/js/chunk-vendors-legacy.9bb3863d.js"></script>
|
|
9
|
+
<script defer="defer" src="/js/app-legacy.aa792c98.js"></script>
|
|
10
|
+
<link href="/css/app.58568098.css" rel="stylesheet" />
|
|
11
|
+
</head>
|
|
12
|
+
<body>
|
|
13
|
+
<div id="app"></div>
|
|
14
|
+
</body>
|
|
15
|
+
</html>
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
(function(){"use strict";var e={765:function(e,t,r){var n=r(641);var o=r(278),a={class:"canvas3DContainer",ref:"canvas3DContainer",style:{height:"100%",width:"100%",display:"flex"},crossorigin:""};function i(e,t,r,o,i,s){return(0,n.uX)(),(0,n.CE)("div",a,null,512)}var s=r(476),l=r(437),u=r(24),c=r(509),h=r(85),f=r(481),d=(r(769),{baseMapLayer:{maxZoom:21,maxNativeZoom:19,minZoom:0},baseMapLayerStreetNumber:{maxZoom:21,maxNativeZoom:19,minZoom:0},swisstopoLayer_swissimage:{maxZoom:25,maxNativeZoom:20,minZoom:0},swisstopoLayer_pixelkarte:{maxZoom:25,maxNativeZoom:18,minZoom:0},swisstopoLayer_solarenergie_fassade:{maxZoom:25,maxNativeZoom:18,minZoom:0},swisstopoLayer_solarenergie_roof:{maxZoom:25,maxNativeZoom:18,minZoom:0},openStreetMapLayer:{maxZoom:21,maxNativeZoom:19,minZoom:0},ignSpainLayer_pnoa_image:{maxZoom:25,maxNativeZoom:20,minZoom:0},ignSpainLayer_map:{maxZoom:25,maxNativeZoom:20,minZoom:0},bkgHexagonGermanyLayer:{maxZoom:25,maxNativeZoom:22,minZoom:0},GeoPortal:{maxZoom:22,maxNativeZoom:19,minZoom:6}});function m(){var e=f.gridLayer.googleMutant({type:"hybrid",layerTypeAPI:"googleLayer",maxNativeZoom:25,maxZoom:25}),t=f.gridLayer.googleMutant({type:"roadmap",layerTypeAPI:"googleLayerRoadmap",maxNativeZoom:25,maxZoom:25}),r=f.gridLayer.googleMutant({type:"terrain",layerTypeAPI:"googleLayerTerrain",maxNativeZoom:25,maxZoom:25}),n=f.tileLayer("http://{s}.wien.gv.at/basemap/geolandbasemap/normal/google3857/{z}/{y}/{x}.png",{id:"basemap",subdomains:["maps","maps1","maps2","maps3","maps4"],attribution:'Datenquelle: <a href="http://www.basemap.at/">basemap.at</a>',minZoom:d["baseMapLayer"]["minZoom"],maxZoom:d["baseMapLayer"]["maxZoom"],maxNativeZoom:d["baseMapLayer"]["maxNativeZoom"],layerTypeAPI:"baseMapLayer"}),o=f.tileLayer("http://{s}.wien.gv.at/basemap/bmaporthofoto30cm/normal/google3857/{z}/{y}/{x}.jpeg",{id:"basemap_bmaporthofoto30cm",subdomains:["maps","maps1","maps2","maps3","maps4"],attribution:'Datenquelle: <a href="http://www.basemap.at/">basemap.at</a>',minZoom:d["baseMapLayerStreetNumber"]["minZoom"],maxZoom:d["baseMapLayerStreetNumber"]["maxZoom"],maxNativeZoom:d["baseMapLayerStreetNumber"]["maxNativeZoom"],layerTypeAPI:"baseMapLayerStreetNumber"}),a=f.tileLayer("https://wmts10.geo.admin.ch/1.0.0/ch.swisstopo.swissimage/default/current/3857/{z}/{x}/{y}.jpeg",{id:"swisstopo_swissimage",subdomains:["maps","maps1","maps2","maps3","maps4"],attribution:'Datenquelle: <a href="https://www.geo.admin.ch">geo.admin.ch</a>',maxZoom:d["swisstopoLayer_swissimage"]["maxZoom"],maxNativeZoom:d["swisstopoLayer_swissimage"]["maxNativeZoom"],layerTypeAPI:"swisstopoLayer_swissimage"}),i=f.tileLayer("https://wmts10.geo.admin.ch/1.0.0/ch.swisstopo.pixelkarte-farbe/default/current/3857/{z}/{x}/{y}.jpeg",{id:"swisstopo_pixelkarte",subdomains:["maps","maps1","maps2","maps3","maps4"],attribution:'Datenquelle: <a href="https://www.geo.admin.ch">geo.admin.ch</a>',maxZoom:d["swisstopoLayer_pixelkarte"]["maxZoom"],maxNativeZoom:d["swisstopoLayer_pixelkarte"]["maxNativeZoom"],layerTypeAPI:"swisstopoLayer_pixelkarte"}),s=f.tileLayer("https://wmts10.geo.admin.ch/1.0.0/ch.bfe.solarenergie-eignung-fassaden/default/current/3857/{z}/{x}/{y}.png",{id:"swisstopo_solarenergie_fassade",attribution:'Datenquelle: <a href="https://www.geo.admin.ch">geo.admin.ch</a>',maxZoom:d["swisstopoLayer_solarenergie_fassade"]["maxZoom"],maxNativeZoom:d["swisstopoLayer_solarenergie_fassade"]["maxNativeZoom"],layerTypeAPI:"swisstopoLayer_solarenergie_fassade"}),l=f.tileLayer("https://wmts10.geo.admin.ch/1.0.0/ch.bfe.solarenergie-eignung-daecher/default/current/3857/{z}/{x}/{y}.png",{id:"swisstopo_solarenergie_roof",attribution:'Datenquelle: <a href="https://www.geo.admin.ch">geo.admin.ch</a>',maxZoom:d["swisstopoLayer_solarenergie_roof"]["maxZoom"],maxNativeZoom:d["swisstopoLayer_solarenergie_roof"]["maxNativeZoom"],layerTypeAPI:"swisstopoLayer_solarenergie_roof"}),u=f.tileLayer("https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png",{id:"osm",attribution:'© <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a> contributors',minZoom:d["openStreetMapLayer"]["minZoom"],maxZoom:d["openStreetMapLayer"]["maxZoom"],maxNativeZoom:d["openStreetMapLayer"]["maxNativeZoom"],layerTypeAPI:"openStreetMapLayer"}),c=f.tileLayer("https://www.ign.es/wmts/pnoa-ma?layer={layer}&tilematrixset={tilematrixset}&Service=WMTS&Request=GetTile&Version=1.0.0&Format={format}&TileMatrix={z}&TileCol={x}&TileRow={y}",{layer:"OI.OrthoimageCoverage",tilematrixset:"EPSG:3857",format:"image/jpeg",id:"ign_pnoa",attribution:'© <a href="https://pnoa.ign.es" target="_blank">PNOA</a>',maxZoom:d["ignSpainLayer_pnoa_image"]["maxZoom"],maxNativeZoom:d["ignSpainLayer_pnoa_image"]["maxNativeZoom"],layerTypeAPI:"ignSpainLayer_pnoa_image"}),h=f.tileLayer("https://www.ign.es/wmts/ign-base?layer={layer}&tilematrixset={tilematrixset}&Service=WMTS&Request=GetTile&Version=1.0.0&Format={format}&TileMatrix={z}&TileCol={x}&TileRow={y}",{layer:"IGNBaseTodo",tilematrixset:"EPSG:3857",format:"image/jpeg",id:"ign_map",attribution:'© <a href="https://www.ign.es/web/ign/portal" target="_blank">IGN</a>',maxZoom:d["ignSpainLayer_map"]["maxZoom"],maxNativeZoom:d["ignSpainLayer_map"]["maxNativeZoom"],layerTypeAPI:"ignSpainLayer_map"}),m=f.tileLayer.wms("https://terramapserver.org/Proxy/geoserver/BKG/wms?kid=eag20.1",{layers:"rgb",id:"bkg_image",attribution:'© <a href="https://www.bkg.bund.de" target="_blank">Bundesamt für Kartographie und Geodäsie</a>',maxZoom:d["bkgHexagonGermanyLayer"]["maxZoom"],maxNativeZoom:d["bkgHexagonGermanyLayer"]["maxNativeZoom"],layerTypeAPI:"bkgHexagonGermanyLayer"}),p=f.tileLayer("https://wxs.ign.fr/ortho/geoportail/wmts?&REQUEST=GetTile&SERVICE=WMTS&VERSION=1.0.0&STYLE=normal&TILEMATRIXSET=PM&FORMAT=image/jpeg&LAYER=HR.ORTHOIMAGERY.ORTHOPHOTOS&TILEMATRIX={z}&TILEROW={y}&TILECOL={x}",{layers:"HR.ORTHOIMAGERY.ORTHOPHOTOS",id:"HR.ORTHOIMAGERY.ORTHOPHOTOS",attribution:"© IGN-F/Geoportail France",minZoom:d["GeoPortal"]["minZoom"],maxZoom:d["GeoPortal"]["maxZoom"],maxNativeZoom:d["GeoPortal"]["maxNativeZoom"],tileSize:256,layerTypeAPI:"geoportail_fr_wmts_ortho_layer"});return[{name:"SwissTopo (satellite)",key:"swisstopoLayer_swissimage",layerData:a},{name:"SwissTopo (map)",key:"swisstopoLayer_pixelkarte",layerData:i},{name:"SwissTopo (Solar energy: suitability of roofs)",key:"swisstopoLayer_solarenergie_roof",layerData:l},{name:"SwissTopo (Solarenergie: suitability of facade)",key:"swisstopoLayer_solarenergie_fassade",layerData:s},{name:"OpenStreetMap",key:"openStreetMapLayer",layerData:u},{name:"Google (terrain)",key:"googleLayerTerrain",layerData:r},{name:"Google (roadmap)",key:"googleLayerRoadmap",layerData:t},{name:"Google (satellite)",key:"googleLayer",layerData:e},{name:"Basemap.at (roadmap)",key:"baseMapLayer",layerData:n},{name:"Basemap.at (satellite)",key:"baseMapLayerStreetNumber",layerData:o},{name:"IGN (PNOA satellite image)",key:"ignSpainLayer_pnoa_image",layerData:c},{name:"IGN (roadmap)",key:"ignSpainLayer_map",layerData:h},{name:"BKG satellite image",key:"bkgHexagonGermanyLayer",layerData:m},{name:"GeoPortal France (satellite)",key:"geoportail_fr_wmts_ortho_layer",layerData:p}]}var p=m;function y(e){return y="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},y(e)}function v(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function g(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,w(n.key),n)}}function b(e,t,r){return t&&g(e.prototype,t),r&&g(e,r),Object.defineProperty(e,"prototype",{writable:!1}),e}function w(e){var t=x(e,"string");return"symbol"===y(t)?t:String(t)}function x(e,t){if("object"!==y(e)||null===e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!==y(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}function M(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&O(e,t)}function O(e,t){return O=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},O(e,t)}function P(e){var t=S();return function(){var r,n=T(e);if(t){var o=T(this).constructor;r=Reflect.construct(n,arguments,o)}else r=n.apply(this,arguments);return L(this,r)}}function L(e,t){if(t&&("object"===y(t)||"function"===typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return E(e)}function E(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function S(){if("undefined"===typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"===typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}function T(e){return T=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},T(e)}var j=function(e){M(n,e);var t=P(n);function n(e,o){var a;v(this,n),a=t.call(this);var i=p().find((function(e){return e.key==o}));return a.layer=i,a.mapLayer=o,a.maxZoom=a.layer.layerData.options.maxNativeZoom||20,a.minZoom=a.layer.layerData.options.minZoom||17,a.defaultImage=document.createElement("img"),a.defaultImage.src=r(357),a.defaultImage.crossOrigin="Anonymous",a.url=i?i.layerData._url:"https://a.tile.openstreetmap.org/{z}/{x}/{y}.png",a.address=e,a}return b(n,[{key:"fetchTile",value:function(e,t,r){var n=this,o=this.layer.layerData.options.minZoom||9,a=this.layer.layerData.options.maxNativeZoom||20;return new Promise((function(i,s){if(e<o)i(n.defaultImage);else if(e>a);else{var l=document.createElement("img");l.onload=function(){l.style.backgroundColor="red",i(l)},l.onerror=function(){i(this.defaultImage)},l.crossOrigin="Anonymous";var u=n.url;if("bkgHexagonGermanyLayer"==n.layer.key){var c=Math.pow(2,e),h=t,f=c-1-r,d=6378137*Math.PI*2,m=d/c,p=h*m-d/2,y=p+m,v=f*m-d/2,g=v+m;u+="&service=WMS&request=GetMap&layers=rgb&styles=&format=image%2Fjpeg&transparent=false&version=1.1.1&id=bkg_image&layerTypeAPI=bkgHexagonGermanyLayer&width=256&height=256&srs=EPSG%3A3857&bbox=".concat(p,",").concat(v,",").concat(y,",").concat(g)}else{if(u=u.replace("{x}",t),u=u.replace("{y}",r),u=u.replace("{z}",e),n.layer.layerData.options.subdomains){var b=n.layer.layerData.options.subdomains[Math.abs((t<<e)+r)%n.layer.layerData.options.subdomains.length];u=u.replace("{s}",b)}u=u.replace("{format}","image/jpeg"),u=u.replace("{tileMatrixSet}","PM")}l.src=u}}))}}]),n}(h.KU),_={colors:{primary:"#282387",secondary:"#818181",tertiary:"#d5d5d5",black:"#263238",yellow:"#fdb813",darkGray:"#818181",mediumGray:"#d5d5d5",lightGray:"#f2f2f2",white:"#fff",blue:"#48a2d0",red:"#FF5656",blue1:"#e4efff",blue2:"#F6FAFF",grey1:"#666",grey2:"#c4c4c4",grey3:"#b2b9c5",grey4:"#dee2eb",grey5:"#fafafa",grey6:"#555d61",turquoise:"#20A4CA",green:"#99db0c",purple:"#505ca6",disabled:"#dfe1e1",transparentWhite1:"#ffffff32",transparentBlack1:"#263238e6",transparentBlue1:"#20a4cae6",blueElectric:"#66dffa",eturnityGrey:"#263238"},screen:{mobileSmall:"345px",mobile:"425px",mobileLarge:"530px",tablet:"768px",tabletLarge:"950px"},borderRadius:"4px"},C=_,D=6371008,k=5,I=(C.colors.blueElectric,C.colors.red,C.colors.blue,C.colors.blue,C.colors.blue,C.colors.blue,C.colors.blue,C.colors.blue,C.colors.blueElectric,C.colors.blue,C.colors.transparentBlack1,C.colors.transparentBlack1,C.colors.blueElectric,500),A=["#FF5656","#FDB813","#505CA6","#8392EE","#6CD5D5","#C84E4E","#90A650","#D27CCA","#6276DF"],R=(A.map((function(e){return e+"c0"})),"#ffffff"),F=.1,z=(r(498),"https://public-data.eturnity.io/"),N=[z+"textures/reneSola_Virtus_2_JC320S_24_Bbw.png",z+"textures/longiSolarLR4_60HPH_370M.png",z+"textures/longiSolarLR4_60HPH_350M.png"],B=(Math.exp(Math.log(2)/10),{data:function(){return{}},created:function(){this.material={};var e=14540253;this.wallColor&&(e=new l.Q1f(this.wallColor)),this.material.panelSide=new l.G_z({color:14540253,side:l.$EB}),this.material.wall=new l.G_z({color:e,side:l.$EB}),this.material.obstacle=new l.tXL({color:16711680,side:l.$EB}),this.material.edge=new l.V9B({color:R,transparent:!0,opacity:F});var t=document.createElement("canvas"),r=t.getContext("2d");t.width=64,t.height=64,r.fillStyle="black",r.fillRect(0,0,64,64),r.strokeStyle="white",r.beginPath(),r.lineWidth=10,r.arc(32,32,16,0,2*Math.PI),r.stroke();var n=new l.GOR(t);this.material.node=new l.BH$({alphaMap:n,size:25,sizeAttenuation:!1,transparent:!0,color:16777215,opacity:1}),this.material.panel={};for(var o=0;o<N.length;o++){var a=this.loader.load(N[o],(function(e){}));this.material.panel["default_"+o]=new l.V9B({map:a,side:l.$EB})}this.material.panel["userDeactivatedPanel"]=new l.V9B({color:16777215,transparent:!0,alphaTest:0,opacity:.2,side:l.$EB}),this.material.roof=[this.material.wall],this.material.flatRoof=new l.tXL({color:65280,specular:39168,shininess:0,flatShading:!0,side:l.$EB,transparent:!0,opacity:.5}),this.material.highlight=new l.tXL({color:16777215,specular:39168,shininess:0,flatShading:!0,side:l.$EB,transparent:!0,opacity:.4,alphaTest:.3}),this.material.selected=new l.tXL({color:5263615,specular:39168,shininess:0,flatShading:!0,side:l.$EB,transparent:!0,opacity:.5,alphaTest:.3}),this.material.hidden=new l.V9B({color:16777215,transparent:!0,alphaTest:1,opacity:.2,side:l.$EB}),this.material.moduleField=new l.V9B({color:14737663,side:l.$EB,transparent:!0,opacity:.3}),this.material.moduleFieldWithPanelOveride=new l.V9B({color:16555267,side:l.$EB,transparent:!0,opacity:.8}),this.material.curvedRoof=new l.tXL({color:16776960,specular:39168,shininess:0,flatShading:!0,side:l.$EB,transparent:!0,opacity:.5})},watch:{wallColor:function(e){var t=new l.Q1f(e);this.material.wall.color.set(t)}}}),G={methods:{renderNodes:function(){if(this.nodesVisible){var e;this.meshes.nodeMeshes?(this.meshes.nodeMeshes.visible=!0,e=this.meshes.nodeMeshes.geometry,e.attributes.position.needsUpdate=!0):e=new l.LoY;var t=[];if(this.nodes.filter((function(e){return"roof"==e.layer})).forEach((function(e){t.push(e.x/1e3,e.y/1e3,e.z/1e3)})),e.attributes.position&&e.attributes.position.array.length<=t.length){var r=e.attributes.position.array;for(var n in t)r[n]=t[n];e.setDrawRange(0,t.length/3)}else e.setAttribute("position",new l.qtW(t,3));var o=this.material.node,a=new l.ONl(e,o);a.userData.version=0,a.userData.type="nodeMeshes",a.userData.meshId=null,a.userData.polygonId=null,a.matrixAutoUpdate=!1,a.renderOrder=10,this.meshes.nodeMeshes=a,this.overlayScene&&this.overlayScene.add(a)}else this.meshes.nodeMeshes&&(this.meshes.nodeMeshes.visible=!1)}}},Z=r(570),V=r.n(Z);function H(e){return H="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},H(e)}function U(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function Y(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?U(Object(r),!0).forEach((function(t){$(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):U(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function $(e,t,r){return t=q(t),t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function q(e){var t=W(e,"string");return"symbol"===H(t)?t:String(t)}function W(e,t){if("object"!==H(e)||null===e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!==H(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}function X(e){return ee(e)||K(e)||Q(e)||J()}function J(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function Q(e,t){if(e){if("string"===typeof e)return te(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?te(e,t):void 0}}function K(e){if("undefined"!==typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}function ee(e){if(Array.isArray(e))return te(e)}function te(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function re(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];if(0==e.length)return new Float32Array([]);var r=e.map((function(e){return[e.x/1e3,e.y/1e3,e.z/1e3]})).flat(),n=[],o=[];if(t.length>0){var a=r.length/3+1;n.push(a);for(var i=a,s=0;s<t.length-1;s++){var l=i+t[s].length;n.push(l),i=l}n=X(new Set(n)),o=t.map((function(e){return e.map((function(e){return[e.x/1e3,e.y/1e3,e.z/1e3]}))})).flat().flat()}var u=e[e.length-1],c=[u.x/1e3,u.y/1e3,u.z/1e3];r.push.apply(r,c),r.push.apply(r,X(o));var h=[];try{h=V()(r,n,3)}catch(d){console.error(d)}var f=[];return h.forEach((function(e){f.push(r[3*e],r[3*e+1],r[3*e+2])})),f}function ne(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],r=arguments.length>2?arguments[2]:void 0,n=re(e,t);if((0,s.y2)(n))return null;var o=new Float32Array(n);if(r.attributes.position&&r.attributes.position.array.length>=o.length){var a=r.attributes.position.array;for(var i in o)a[i]=o[i]}else r.dispose(),r=null,r=new l.LoY,r.setAttribute("position",new l.THS(o,3));return r.setDrawRange(0,o.length/3),r.attributes.position.needsUpdate=!0,r.computeVertexNormals(),r.needsUpdate=!0,r}function oe(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],r=new l.LoY,n=re(e,t);if((0,s.y2)(n))return null;var o=new Float32Array(n),a=new Float32Array([1,1,0,1,0,0,1,1,0,0,1,0]);return r.setAttribute("position",new l.THS(o,3)),r.setAttribute("uv",new l.THS(a,2)),r.computeVertexNormals(),r}function ae(e){var t=e.outline.length,r=[];if(e.outline.forEach((function(n,o){var a=e.outline[(o+1)%t],i=Y(Y({},n),{},{z:0}),s=Y(Y({},a),{},{z:0});r.push.apply(r,[n.x/1e3,n.y/1e3,n.z/1e3,a.x/1e3,a.y/1e3,a.z/1e3,i.x/1e3,i.y/1e3,i.z/1e3,a.x/1e3,a.y/1e3,a.z/1e3,i.x/1e3,i.y/1e3,i.z/1e3,s.x/1e3,s.y/1e3,s.z/1e3])})),e.holes.forEach((function(t){var n=(0,s.bZ)(t.outline,e.outline)[0]||[];n=n.map((function(t){return Y(Y({},t),{},{z:(0,s.xj)(t,e.normalVector,e.flatOutline[0]).z})}));var o=n.length;n.forEach((function(e,t){var a=n[(t+1)%o],i=Y(Y({},e),{},{z:0}),s=Y(Y({},a),{},{z:0});r.push.apply(r,[e.x/1e3,e.y/1e3,e.z/1e3,a.x/1e3,a.y/1e3,a.z/1e3,i.x/1e3,i.y/1e3,i.z/1e3,a.x/1e3,a.y/1e3,a.z/1e3,i.x/1e3,i.y/1e3,i.z/1e3,s.x/1e3,s.y/1e3,s.z/1e3])}))})),(0,s.y2)(r))return null;var n=new Float32Array(r);return n}function ie(e,t){var r=ae(e);if(t.attributes.position&&t.attributes.position.array.length>=r.length){var n=t.attributes.position.array;for(var o in r)n[o]=r[o];t.setDrawRange(0,r.length/3)}else t.dispose(),t=null,t=new l.LoY,t.setAttribute("position",new l.THS(r,3));return t.computeVertexNormals(),t.attributes.position.needsUpdate=!0,t}function se(e){var t=new l.LoY,r=ae(e);return t.setAttribute("position",new l.THS(r,3)),t.computeVertexNormals(),t}function le(e,t){var r;r=e.isParallel?parseInt(e.height||0):parseInt(e.heightReference+e.height||0);var n=t.normalVector,o=t.flatOutline[0],a=r,i=new l.LoY,u=(0,s.bZ)(e.outline,t.outline)[0]||[],c=[],h=[];if(u.forEach((function(t){var i,l=(0,s.xj)(t,n,o);if(e.isParallel){var u=(0,s.VN)(r,{x:0,y:0,z:1});i=(0,s.xt)(l,u)}else i=Y(Y({},l),{},{z:a});h.push(i)})),c.push.apply(c,X(re(h))),(0,s.y2)(c))return null;var f=new Float32Array(c);return i.setAttribute("position",new l.THS(f,3)),i.computeVertexNormals(),i}function ue(e,t){var r;r=e.isParallel?parseInt(e.height||0):parseInt(e.heightReference+e.height||0);var n=t.normalVector,o=t.flatOutline[0],a=r,i=new l.LoY,u=(0,s.bZ)(e.outline,t.outline)[0]||[],c=u.length,h=[];if(u.forEach((function(t,i){var l,f,d=(0,s.xj)(t,n,o),m=(0,s.xj)(u[(i+1)%c],n,o);if(e.isParallel){var p=(0,s.VN)(r,{x:0,y:0,z:1});l=(0,s.xt)(d,p),f=(0,s.xt)(m,p)}else l=Y(Y({},d),{},{z:a}),f=Y(Y({},m),{},{z:a});h.push.apply(h,[l.x/1e3,l.y/1e3,l.z/1e3,f.x/1e3,f.y/1e3,f.z/1e3,d.x/1e3,d.y/1e3,d.z/1e3,f.x/1e3,f.y/1e3,f.z/1e3,d.x/1e3,d.y/1e3,d.z/1e3,m.x/1e3,m.y/1e3,m.z/1e3])})),(0,s.y2)(h))return null;var f=new Float32Array(h);return i.setAttribute("position",new l.THS(f,3)),i.computeVertexNormals(),i}function ce(e){var t=e.roof,r=10,n=t.normalVector,o=[],a=new l.LoY,i=[];if(e.outline.forEach((function(e){var t=(0,s.VN)(r,n),a=(0,s.xt)(e,t);o.push(a)})),i.push.apply(i,X(re(o))),(0,s.y2)(i))return null;var u=new Float32Array(i),c=new Float32Array([1,1,0,1,0,0,1,1,0,0,1,0]);return a.setAttribute("position",new l.THS(u,3)),a.setAttribute("uv",new l.THS(c,2)),a.computeVertexNormals(),a}function he(e){e.forEach((function(e){return e.z=0}));var t=(0,s.dF)(e[0],e[1],e[2]);t.z<0&&(t=(0,s.VN)(-1,t));var r=new l.LoY,n=[];if(n.push.apply(n,X(re(e))),(0,s.y2)(n))return null;var o,a=new Float32Array(n),i=e[2],u=e[3],c=e[1],h=(e[0],(0,s.JV)(i,u)),f=(0,s.JV)(i,c);return o=h<f?new Float32Array([0,1,0,0,1,0,0,1,1,0,1,1]):new Float32Array([0,0,1,0,1,1,1,0,0,1,1,1]),r.setAttribute("position",new l.THS(a,3)),r.setAttribute("uv",new l.THS(o,2)),r.computeVertexNormals(),r}function fe(e){var t=(0,s.dF)(e.outline[0],e.outline[1],e.outline[2]);t.z<0&&(t=(0,s.VN)(-1,t));var r=parseInt(e.height||50),n=[];return e.outline.forEach((function(e){var o=(0,s.VN)(r,t),a=(0,s.xt)(e,o);n.push(a)})),n}function de(e){var t=new l.LoY,r=[],n=fe(e);if(r.push.apply(r,X(re(n))),(0,s.y2)(r))return null;var o,a=new Float32Array(r),i=e.outline[2],u=e.outline[3],c=e.outline[1],h=(e.outline[0],(0,s.JV)(i,u)),f=(0,s.JV)(i,c);return o=h<f?new Float32Array([0,1,0,0,1,0,0,1,1,0,1,1]):new Float32Array([0,0,1,0,1,1,1,0,0,1,1,1]),t.setAttribute("position",new l.THS(a,3)),t.setAttribute("uv",new l.THS(o,2)),t.computeVertexNormals(),t}function me(e,t){var r=fe(e);return t=ne(r,[],t),t}function pe(e,t){for(var r=[],n=e.length,o=0;o<n;o++){var a=(o+1)%n,i=e[o],s=e[a],l=t[o],u=t[a];r.push.apply(r,[l.x/1e3,l.y/1e3,l.z/1e3,u.x/1e3,u.y/1e3,u.z/1e3,i.x/1e3,i.y/1e3,i.z/1e3,i.x/1e3,i.y/1e3,i.z/1e3,u.x/1e3,u.y/1e3,u.z/1e3,s.x/1e3,s.y/1e3,s.z/1e3])}return r}function ye(e,t){var r=fe(e),n=pe(e.outline,r);if((0,s.y2)(n))return null;var o=new Float32Array(n);if(t.attributes.position&&t.attributes.position.array.length>=o.length){var a=t.attributes.position.array;for(var i in o)a[i]=o[i]}else t.dispose(),t=null,t=new l.LoY,t.setAttribute("position",new l.THS(o,3));return t.setDrawRange(0,o.length/3),t.attributes.position.needsUpdate=!0,t.computeVertexNormals(),t.needsUpdate=!0,t}function ve(e){var t=fe(e),r=new l.LoY,n=pe(e.outline,t);if((0,s.y2)(n))return null;var o=new Float32Array(n);return r.setAttribute("position",new l.THS(o,3)),r.computeVertexNormals(),r}function ge(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,r=[],n=e.margins.innerOutline.length;return e.margins.innerOutline.forEach((function(o,a){var i,u=e.margins.isSameMargin?e.margins.sameMargin:e.margins.distances[a];if(u<=0)i=null;else{var c=e.margins.outterOutline[a],h=e.margins.outterOutline[(a+1)%n],f=e.margins.innerOutline[(a+1)%n],d=[c,h,f,o];t&&(d=(0,s.bZ)(d,t.flatOutline)[0]||[],d=d.map((function(e){return{x:e.x,y:e.y,z:(0,s.xj)(e,t.normalVector,t.flatOutline[0]).z}}))),d=d.map((function(e){return{x:e.x,y:e.y,z:e.z+10}})),i=new l.LoY;var m=[];if(m.push.apply(m,X(re(d))),(0,s.y2)(m))return null;var p=new Float32Array(m);i.setAttribute("position",new l.THS(p,3)),i.computeVertexNormals()}r.push(i)})),r}var be={methods:{data:function(){return{mergedBaseMesh:null}},renderBase:function(){var e,t,r=this;this.clearRemovedOnes("baseMeshes");var n=[];this.roofs.forEach((function(o){r.meshes.baseMeshes[o.id]&&r.meshes.baseMeshes[o.id].userData.version<o.version&&(t=r.meshes.baseMeshes[o.id],e=t.geometry,e=ie(o,e),t.geometry=e,t.updateMatrix()),r.meshes.baseMeshes[o.id]||(e=se(o),t=new l.eaF(e,r.material.wall),t.userData.version=o.version,t.userData.type="baseMeshes",t.userData.meshId=o.id,t.userData.polygonId=o.id,t.matrixAutoUpdate=!1,t.frustumCulled=!1,r.meshes.baseMeshes[o.id]=t),n.push(r.meshes.baseMeshes[o.id].geometry)})),this.mergedBaseMesh=this.updateOrCreateMergedMesh(this.mergedBaseMesh,n,this.material.wall)}}},we={methods:{clearThreeObjects:function(e){if(e){while(e.children.length>0)this.clearThreeObjects(e.children[0]),e.remove(e.children[0]);e.geometry&&e.geometry.dispose(),e.texture&&e.texture.dispose(),e.material&&(Object.keys(e.material).forEach((function(t){e.material[t]})),e.material.dispose&&e.material.dispose())}},clearPanelsFromChangingRoofs:function(e){var t=this,r=this.polygons.filter((function(t){return e.includes(t.id)}));r.forEach((function(e){return e.moduleFields.forEach((function(e){return e.panels.forEach((function(e){var r=t.meshes.panelsMeshes[e.id+"_top"],n=t.meshes.panelsMeshes[e.id+"_side"];(r||n)&&(t.clearMeshFromScene(r,t.scene),t.clearMeshFromScene(n,t.scene))}))}))}))},clearMeshFromScene:function(e,t){e&&t&&(t.remove(e),e.geometry&&e.geometry.dispose&&(e.geometry.dispose(),e.geometry=null),e.texture&&e.texture.dispose&&(e.texture.dispose(),e.texture=null),e.material&&e.material.dispose&&(e.material.dispose(),e.material=null),e.userData.meshId&&this.meshes[e.userData.type][e.userData.meshId]?delete this.meshes[e.userData.type][e.userData.meshId]:this.meshes[e.userData.type]=null,e=null)},clearEdgesRemovedOnes:function(){var e=this;Object.values(this.meshes["edgeMeshes"]).forEach((function(t){e.edgeIds.includes(t.userData.edgeId)||e.clearMeshFromScene(t,e.scene)}))},clearRemovedOnes:function(e){var t=this;Object.values(this.meshes[e]).forEach((function(e){t.polygonIds.includes(e.userData.polygonId)||t.clearMeshFromScene(e,t.scene)}))},clearByType:function(e){var t=this;Object.values(this.meshes[e]).forEach((function(e){e.geometry.dispose(),e.geometry=null,e.material&&e.material.dispose&&e.material.dispose(),e.material=null,t.scene.remove(e)})),this.meshes[e]={},this.renderer&&this.renderer.renderLists.dispose()}}},xe={methods:{setCylinderPosition:function(e,t){var r=new l.Pq0(t.outline[0].x/1e3,t.outline[0].y/1e3,t.outline[0].z/1e3),n=new l.Pq0(t.outline[1].x/1e3,t.outline[1].y/1e3,t.outline[1].z/1e3),o=r.clone().add(n).multiplyScalar(.5),a=(new l.Pq0).subVectors(n,r),i=a.length(),s=new l.Pq0(0,1,0);e.quaternion.setFromUnitVectors(s,a.clone().normalize()),e.position.copy(o.clone());var u=e.userData.cylinderLength,c=i;return u&&0==u||(e.scale.set(1,c,1),e.userData.cylinderLength=c),e.updateMatrix(),e},renderEdges:function(){var e,t=this;this.clearEdgesRemovedOnes("edgeMeshes"),this.renderLineEdges&&this.renderLineEdges();var r=this.material.edge;this.edges.forEach((function(n){if(e=t.meshes.edgeMeshes[n.id],e&&(e.visible=!1),!["obstacle","construction"].includes(n.layer)&&(!["selectRoof"].includes(t.selectedTool)||"roof"==n.layer)&&(!["selectModuleField"].includes(t.selectedTool)||"moduleField"==n.layer&&t.selectedModuleField&&n.belongsTo.map((function(e){return e.polygonId})).includes(t.selectedModuleField.id)))if(e=t.meshes.edgeMeshes[n.id],e)e.visible=!0,t.setCylinderPosition(e,n);else{var o=t.edgeRadius||.1,a=new l.Ho_(o,o,1,6);void 0!=t.edgeOpacity&&(r.opacity=t.edgeOpacity),e=new l.eaF(a,r.clone()),e=t.setCylinderPosition(e,n),e.userData.meshId=n.id,e.userData.edgeId=n.id,e.userData.type="edgeMeshes",e.userData.layer=n.layer,e.frustumCulled=!1,e.renderOrder=10,t.meshes.edgeMeshes[n.id]=e,t.scene.add(e)}}))}}},Me=r(985);function Oe(e){return Oe="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Oe(e)}function Pe(){/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */Pe=function(){return e};var e={},t=Object.prototype,r=t.hasOwnProperty,n=Object.defineProperty||function(e,t,r){e[t]=r.value},o="function"==typeof Symbol?Symbol:{},a=o.iterator||"@@iterator",i=o.asyncIterator||"@@asyncIterator",s=o.toStringTag||"@@toStringTag";function l(e,t,r){return Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{l({},"")}catch(T){l=function(e,t,r){return e[t]=r}}function u(e,t,r,o){var a=t&&t.prototype instanceof f?t:f,i=Object.create(a.prototype),s=new L(o||[]);return n(i,"_invoke",{value:x(e,r,s)}),i}function c(e,t,r){try{return{type:"normal",arg:e.call(t,r)}}catch(T){return{type:"throw",arg:T}}}e.wrap=u;var h={};function f(){}function d(){}function m(){}var p={};l(p,a,(function(){return this}));var y=Object.getPrototypeOf,v=y&&y(y(E([])));v&&v!==t&&r.call(v,a)&&(p=v);var g=m.prototype=f.prototype=Object.create(p);function b(e){["next","throw","return"].forEach((function(t){l(e,t,(function(e){return this._invoke(t,e)}))}))}function w(e,t){function o(n,a,i,s){var l=c(e[n],e,a);if("throw"!==l.type){var u=l.arg,h=u.value;return h&&"object"==Oe(h)&&r.call(h,"__await")?t.resolve(h.__await).then((function(e){o("next",e,i,s)}),(function(e){o("throw",e,i,s)})):t.resolve(h).then((function(e){u.value=e,i(u)}),(function(e){return o("throw",e,i,s)}))}s(l.arg)}var a;n(this,"_invoke",{value:function(e,r){function n(){return new t((function(t,n){o(e,r,t,n)}))}return a=a?a.then(n,n):n()}})}function x(e,t,r){var n="suspendedStart";return function(o,a){if("executing"===n)throw new Error("Generator is already running");if("completed"===n){if("throw"===o)throw a;return S()}for(r.method=o,r.arg=a;;){var i=r.delegate;if(i){var s=M(i,r);if(s){if(s===h)continue;return s}}if("next"===r.method)r.sent=r._sent=r.arg;else if("throw"===r.method){if("suspendedStart"===n)throw n="completed",r.arg;r.dispatchException(r.arg)}else"return"===r.method&&r.abrupt("return",r.arg);n="executing";var l=c(e,t,r);if("normal"===l.type){if(n=r.done?"completed":"suspendedYield",l.arg===h)continue;return{value:l.arg,done:r.done}}"throw"===l.type&&(n="completed",r.method="throw",r.arg=l.arg)}}}function M(e,t){var r=t.method,n=e.iterator[r];if(void 0===n)return t.delegate=null,"throw"===r&&e.iterator.return&&(t.method="return",t.arg=void 0,M(e,t),"throw"===t.method)||"return"!==r&&(t.method="throw",t.arg=new TypeError("The iterator does not provide a '"+r+"' method")),h;var o=c(n,e.iterator,t.arg);if("throw"===o.type)return t.method="throw",t.arg=o.arg,t.delegate=null,h;var a=o.arg;return a?a.done?(t[e.resultName]=a.value,t.next=e.nextLoc,"return"!==t.method&&(t.method="next",t.arg=void 0),t.delegate=null,h):a:(t.method="throw",t.arg=new TypeError("iterator result is not an object"),t.delegate=null,h)}function O(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function P(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function L(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(O,this),this.reset(!0)}function E(e){if(e){var t=e[a];if(t)return t.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var n=-1,o=function t(){for(;++n<e.length;)if(r.call(e,n))return t.value=e[n],t.done=!1,t;return t.value=void 0,t.done=!0,t};return o.next=o}}return{next:S}}function S(){return{value:void 0,done:!0}}return d.prototype=m,n(g,"constructor",{value:m,configurable:!0}),n(m,"constructor",{value:d,configurable:!0}),d.displayName=l(m,s,"GeneratorFunction"),e.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===d||"GeneratorFunction"===(t.displayName||t.name))},e.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,m):(e.__proto__=m,l(e,s,"GeneratorFunction")),e.prototype=Object.create(g),e},e.awrap=function(e){return{__await:e}},b(w.prototype),l(w.prototype,i,(function(){return this})),e.AsyncIterator=w,e.async=function(t,r,n,o,a){void 0===a&&(a=Promise);var i=new w(u(t,r,n,o),a);return e.isGeneratorFunction(r)?i:i.next().then((function(e){return e.done?e.value:i.next()}))},b(g),l(g,s,"Generator"),l(g,a,(function(){return this})),l(g,"toString",(function(){return"[object Generator]"})),e.keys=function(e){var t=Object(e),r=[];for(var n in t)r.push(n);return r.reverse(),function e(){for(;r.length;){var n=r.pop();if(n in t)return e.value=n,e.done=!1,e}return e.done=!0,e}},e.values=E,L.prototype={constructor:L,reset:function(e){if(this.prev=0,this.next=0,this.sent=this._sent=void 0,this.done=!1,this.delegate=null,this.method="next",this.arg=void 0,this.tryEntries.forEach(P),!e)for(var t in this)"t"===t.charAt(0)&&r.call(this,t)&&!isNaN(+t.slice(1))&&(this[t]=void 0)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(e){if(this.done)throw e;var t=this;function n(r,n){return i.type="throw",i.arg=e,t.next=r,n&&(t.method="next",t.arg=void 0),!!n}for(var o=this.tryEntries.length-1;o>=0;--o){var a=this.tryEntries[o],i=a.completion;if("root"===a.tryLoc)return n("end");if(a.tryLoc<=this.prev){var s=r.call(a,"catchLoc"),l=r.call(a,"finallyLoc");if(s&&l){if(this.prev<a.catchLoc)return n(a.catchLoc,!0);if(this.prev<a.finallyLoc)return n(a.finallyLoc)}else if(s){if(this.prev<a.catchLoc)return n(a.catchLoc,!0)}else{if(!l)throw new Error("try statement without catch or finally");if(this.prev<a.finallyLoc)return n(a.finallyLoc)}}}},abrupt:function(e,t){for(var n=this.tryEntries.length-1;n>=0;--n){var o=this.tryEntries[n];if(o.tryLoc<=this.prev&&r.call(o,"finallyLoc")&&this.prev<o.finallyLoc){var a=o;break}}a&&("break"===e||"continue"===e)&&a.tryLoc<=t&&t<=a.finallyLoc&&(a=null);var i=a?a.completion:{};return i.type=e,i.arg=t,a?(this.method="next",this.next=a.finallyLoc,h):this.complete(i)},complete:function(e,t){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&t&&(this.next=t),h},finish:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.finallyLoc===e)return this.complete(r.completion,r.afterLoc),P(r),h}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.tryLoc===e){var n=r.completion;if("throw"===n.type){var o=n.arg;P(r)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(e,t,r){return this.delegate={iterator:E(e),resultName:t,nextLoc:r},"next"===this.method&&(this.arg=void 0),h}},e}function Le(e,t,r,n,o,a,i){try{var s=e[a](i),l=s.value}catch(u){return void r(u)}s.done?t(l):Promise.resolve(l).then(n,o)}function Ee(e){return function(){var t=this,r=arguments;return new Promise((function(n,o){var a=e.apply(t,r);function i(e){Le(a,n,o,i,s,"next",e)}function s(e){Le(a,n,o,i,s,"throw",e)}i(void 0)}))}}var Se={methods:{loadNewPanelTextures:function(){var e=this;Object.values(this.pvDataMemo).forEach((function(t){var r=t.id;if(!e.material.panel[r])if(t.texture_img_url){var n=e.loader.load(t.texture_img_url);e.material.panel[r]=new l.V9B({map:n,side:l.hB5,transparent:!1})}else e.material.panel[r]=e.material.panel.default}))},loadPanelsTexture:function(){var e=this;return Ee(Pe().mark((function t(){var r,n;return Pe().wrap((function(t){while(1)switch(t.prev=t.next){case 0:r=Pe().mark((function t(){var r,o;return Pe().wrap((function(t){while(1)switch(t.prev=t.next){case 0:if(r=e.moduleFields[n],o=r.data.component_id_pv_module,e.material.panel[o]){t.next=9;break}if(r.data.texture_img_url){t.next=7;break}e.material.panel[o]=e.material.panel["default_".concat(e.moduleTextureVersionId)],t.next=9;break;case 7:return t.next=9,new Promise((function(t){e.loader.load(r.data.texture_img_url,(function(r){e.material.panel[o]=new l.V9B({map:r,side:l.hB5,transparent:!1}),t(r)}))}));case 9:case"end":return t.stop()}}),t)})),n=0;case 2:if(!(n<e.moduleFields.length)){t.next=7;break}return t.delegateYield(r(),"t0",4);case 4:n++,t.next=2;break;case 7:case"end":return t.stop()}}),t)})))()}}},Te={methods:{renderRoofsMargin:function(){var e=this;if(this.clearByType("roofMarginMeshes"),["selectMargin","selectModuleField","drawRoof","drawObstacle"].includes(this.selectedTool)){var t=[];["drawRoof","drawObstacle"].includes(this.selectedTool)?(this.selectedRoof&&(t=[this.selectedRoof]),this.selectedObstacle&&(t=this.selectedObstacle.roofs)):t=this.roofs,t.forEach((function(t){var r=ge(t);r.forEach((function(r,n){if(r){var o=t.margins.isSameMargin?A[0]:A[n%A.length],a=new l.tXL({color:o,specular:39168,shininess:0,flatShading:!0,side:l.$EB,transparent:!0,opacity:.8}),i=new l.eaF(r,a);r.dispose(),e.scene.add(i),e.meshes.roofMarginMeshes[t.id+"_"+n]=i}})),t.holes.forEach((function(r){var n=ge(r,t);n.forEach((function(n,o){if(n){var a=r.margins.isSameMargin?A[0]:A[o%A.length],i=new l.tXL({color:a,specular:39168,shininess:0,flatShading:!0,side:l.$EB,transparent:!0,opacity:.8}),s=new l.eaF(n,i);n.dispose(),n=null,i.dispose(),i=null,e.scene.add(s),e.meshes.roofMarginMeshes[r.id+"_"+t.id+"_"+o]=s}}))}))}))}}}},je={methods:{renderModuleFields:function(){var e=this;this.clearByType("moduleFieldsMeshes");var t=this.polygons.filter((function(e){return["moduleField","tmpModuleField"].includes(e.layer)}));t.forEach((function(t){var r;if(t.data.number_of_panels_override)r=e.material.moduleFieldWithPanelOveride;else{if(!e.areModuleFieldsVisible)return;r=e.material.moduleField}var n=ce(t);if(n){var o=new l.eaF(n,r);o.matrixAutoUpdate=!1,o.userData.version=t.version,o.userData.type="moduleFieldsMeshes",o.userData.layer=t.layer,o.userData.meshId=t.id,o.userData.polygonId=t.id,e.scene.add(o),e.meshes.moduleFieldsMeshes[t.id]=o}}))}}},_e={methods:{data:function(){return{mergedObstacleMesh:null,mergedObstacleSideMesh:null}},applyTextureOnObstacles:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.material.roof;this.reorderRoofMaterials(),this.mergedObstacleMesh&&this.applyTextureOnMesh(e,this.mergedObstacleMesh)},renderObstacles:function(){var e=this;this.clearByType("obstacleMeshes");var t=[],r=[];this.roofs.forEach((function(n){n.holes.filter((function(e){return"obstacle"==e.layer})).forEach((function(o){var a=le(o,n),i=ue(o,n);if(a&&i){var s=new l.eaF(a,e.material.hidden),u=new l.eaF(i,e.material.wall);s.userData.version=o.version,s.userData.type="obstacleMeshes",s.userData.meshId=o.id+"-"+n.id+"_top",s.userData.polygonId=o.id,u.userData.version=o.version,u.userData.type="obstacleMeshes",u.userData.meshId=o.id+"-"+n.id+"_side",u.userData.polygonId=o.id,e.meshes.obstacleMeshes[o.id+"-"+n.id+"_top"]=s,e.meshes.obstacleMeshes[o.id+"-"+n.id+"_side"]=u,e.scene.add(s)}t.push(e.meshes.obstacleMeshes[o.id+"-"+n.id+"_top"].geometry),r.push(e.meshes.obstacleMeshes[o.id+"-"+n.id+"_side"].geometry)}))})),this.mergedObstacleMesh=this.updateOrCreateMergedMesh(this.mergedObstacleMesh,t,this.material.roof),this.mergedObstacleSideMesh=this.updateOrCreateMergedMesh(this.mergedObstacleSideMesh,r,this.material.wall),this.applyTextureOnObstacles(this.material.roof)}}};function Ce(e,t){return Ie(e)||ke(e,t)||Re(e,t)||De()}function De(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function ke(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var n,o,a,i,s=[],l=!0,u=!1;try{if(a=(r=r.call(e)).next,0===t){if(Object(r)!==r)return;l=!1}else for(;!(l=(n=a.call(r)).done)&&(s.push(n.value),s.length!==t);l=!0);}catch(c){u=!0,o=c}finally{try{if(!l&&null!=r.return&&(i=r.return(),Object(i)!==i))return}finally{if(u)throw o}}return s}}function Ie(e){if(Array.isArray(e))return e}function Ae(e,t){var r="undefined"!==typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=Re(e))||t&&e&&"number"===typeof e.length){r&&(e=r);var n=0,o=function(){};return{s:o,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,i=!0,s=!1;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return i=e.done,e},e:function(e){s=!0,a=e},f:function(){try{i||null==r.return||r.return()}finally{if(s)throw a}}}}function Re(e,t){if(e){if("string"===typeof e)return Fe(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?Fe(e,t):void 0}}function Fe(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}var ze={data:function(){return{mergedPanelSideMesh:null,arePanelVisible:!0}},created:function(){this.mergedPanelTopMeshes={}},methods:{hidePanels:function(){this.arePanelVisible=!1,this.mergedPanelTopMeshes&&Object.values(this.mergedPanelTopMeshes).forEach((function(e){e.visible=!1})),this.mergedPanelSideMesh&&(this.mergedPanelSideMesh.visible=!1)},showPanels:function(){this.arePanelVisible=!0,this.mergedPanelTopMeshes&&Object.values(this.mergedPanelTopMeshes).forEach((function(e){e.visible=!0})),this.mergedPanelSideMesh&&(this.mergedPanelSideMesh.visible=!0)},renderPanels:function(){var e=this;this.clearRemovedOnes("panelsMeshes"),Object.values(this.meshes.panelsMeshes).forEach((function(t){!e.areUserDeactivatedPanelsVisible&&e.polygons.find((function(e){return e.id==t.userData.polygonId&&"user_deactivated_panel"==e.layer}))&&e.clearMeshFromScene(t,e.scene);var r=e.polygons.find((function(e){return t.userData.polygonId==e.id}));r&&!r.moduleField.data.number_of_panels_override||e.clearMeshFromScene(t,e.scene)}));var t=[],r={},n=this.panels;this.areUserDeactivatedPanelsVisible&&(n=this.polygons.filter((function(e){return["panel","user_deactivated_panel"].includes(e.layer)}))),n.forEach((function(n){if(n.visible&&!n.moduleField.data.number_of_panels_override){var o,a;if("user_deactivated_panel"==n.layer)a="userDeactivatedPanel",o=e.material.panel[a],o.opacity=e.panelOpacity;else{var i=n.moduleField.pvData.hasOwnProperty("module_texture_version_id")&&n.moduleField.pvData.module_texture_version_id?n.moduleField.pvData.module_texture_version_id:0;a="default_"+i,o=e.material.panel[a],n.moduleField.data?e.material.panel[n.moduleField.data.component_id_pv_module]&&(a=n.moduleField.data.component_id_pv_module,o=e.material.panel[a]):n.moduleField.pvData&&e.material.panel[n.moduleField.pvData.id]&&(a=n.moduleField.pvData.id,o=e.material.panel[a]),o.transparent=!0,o.opacity=e.panelOpacity}if(e.meshes.panelsMeshes[n.id+"_top"]){var s=e.meshes.panelsMeshes[n.id+"_top"];if(n.version>s.userData.version){var u=me(n,s.geometry);s.geometry=u}r[a]||(r[a]=[]),r[a].push(s.geometry),s.material=o}if(e.meshes.panelsMeshes[n.id+"_side"]){var c=e.meshes.panelsMeshes[n.id+"_side"];if(n.version>c.userData.version){var h=ye(n,c.geometry);c.geometry=h}"user_deactivated_panel"!=n.layer&&t.push(c.geometry)}if(!e.meshes.panelsMeshes[n.id+"_top"]){var f=de(n);if(r[a]||(r[a]=[]),r[a].push(f),f){var d=new l.eaF(f,e.material.hidden);d.userData.version=n.version,d.userData.type="panelsMeshes",d.userData.meshId=n.id+"_top",d.userData.polygonId=n.id,d.matrixAutoUpdate=!1,e.meshes.panelsMeshes[n.id+"_top"]=d}}if(!e.meshes.panelsMeshes[n.id+"_side"]){var m=ve(n);if("user_deactivated_panel"!=n.layer&&t.push(m),m){var p=new l.eaF(m,e.material.panelSide);p.userData.version=n.version,p.userData.type="panelsMeshes",p.userData.meshId=n.id+"_side",p.userData.polygonId=n.id,p.matrixAutoUpdate=!1,e.meshes.panelsMeshes[n.id+"_side"]=p}}}}));var o,a=Object.keys(r),i=Object.keys(this.mergedPanelTopMeshes).filter((function(e){return!a.includes(e)})),s=Ae(i);try{for(s.s();!(o=s.n()).done;){var u=o.value;this.clearMeshFromScene(this.mergedPanelTopMeshes[u],this.scene),delete this.mergedPanelTopMeshes[u]}}catch(p){s.e(p)}finally{s.f()}this.mergedPanelSideMesh=this.updateOrCreateMergedMesh(this.mergedPanelSideMesh,t,this.material.panelSide,"panelSide");for(var c=0,h=Object.entries(r);c<h.length;c++){var f=Ce(h[c],2),d=f[0],m=f[1];this.mergedPanelTopMeshes[d]=this.updateOrCreateMergedMesh(this.mergedPanelTopMeshes[d],m,this.material.panel[d],"panelTop_"+d),this.mergedPanelTopMeshes[d].renderOrder=10}this.arePanelVisible?this.showPanels():this.hidePanels()}}},Ne=r(543),Be={data:function(){return{mergedRoofMesh:null}},methods:{updateRoofGeometry:function(e,t){var r=t.outline,n=t.holes.filter((function(e){return"obstacle"==e.layer})).map((function(e){var r=(0,s.bZ)(e.outline,t.outline)[0]||[],n=r.map((function(e){return{x:e.x,y:e.y,z:(0,s.xj)(e,t.normalVector,t.flatOutline[0]).z}}));return n}));return n=n.filter((function(e){return!!e})),e=ne(r,n,e),e},createRoofGeometry:function(e){var t=e.outline,r=e.holes.filter((function(e){return"obstacle"==e.layer})).map((function(t){var r=(0,s.bZ)(t.outline,e.outline)[0]||[],n=r.map((function(t){return{x:t.x,y:t.y,z:(0,s.xj)(t,e.normalVector,e.flatOutline[0]).z}}));return n}));r=r.filter((function(e){return!!e}));var n=oe(t,r);return n},applyTextureOnRoofs:function(){var e=this.material.roof;this.reorderRoofMaterials(),this.mergedRoofMesh&&(this.applyTextureOnMesh(e,this.mergedRoofMesh),this.render())},renderRoofs:function(){var e=this;this.clearRemovedOnes("roofMeshes");var t=[];this.roofs.forEach((function(r){var n,o;e.meshes.roofMeshes[r.id]&&e.meshes.roofMeshes[r.id].userData.version<r.version&&(n=e.meshes.roofMeshes[r.id],n.userData.version=r.version,o=n.geometry,o=e.updateRoofGeometry(o,r),n.geometry=o,n.updateMatrix()),e.meshes.roofMeshes[r.id]||(o=e.createRoofGeometry(r),o&&(n=new l.eaF(o,e.material.hidden),n.userData.version=r.version,n.userData.type="roofMeshes",n.userData.meshId=r.id,n.userData.polygonId=r.id,e.meshes.roofMeshes[r.id]=n,e.scene.add(n))),t.push(e.meshes.roofMeshes[r.id].geometry)})),this.mergedRoofMesh=this.updateOrCreateMergedMesh(this.mergedRoofMesh,t,this.material.roof),this.mergedRoofMesh.userData.type="mergedRoofMesh",this.applyTextureOnMesh(this.material.roof,this.mergedRoofMesh)},renderFlatRoofs:function(){var e,t=this;this.clearRemovedOnes("flatRoofMeshes"),this.roofs.forEach((function(r){var n=t.meshes.flatRoofMeshes[r.id];if(n)n.userData.version<r.version&&(e=ne(r.flatOutline,[],n.geometry),n.geometry=e,n.userData.version=r.version),n.visible=r.maximumGap>I;else if(e=oe(r.flatOutline),e){var o=t.material.curvedRoof;n=new l.eaF(e,o),n.userData.polygonId=r.id,n.userData.version=r.version,n.userData.type="flatRoofMeshes",n.userData.meshId=r.id,n.visible=r.maximumGap>I,t.scene.add(n),t.meshes.flatRoofMeshes[r.id]=n}}))}}};function Ge(e){return Ge="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Ge(e)}function Ze(){/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */Ze=function(){return e};var e={},t=Object.prototype,r=t.hasOwnProperty,n=Object.defineProperty||function(e,t,r){e[t]=r.value},o="function"==typeof Symbol?Symbol:{},a=o.iterator||"@@iterator",i=o.asyncIterator||"@@asyncIterator",s=o.toStringTag||"@@toStringTag";function l(e,t,r){return Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{l({},"")}catch(T){l=function(e,t,r){return e[t]=r}}function u(e,t,r,o){var a=t&&t.prototype instanceof f?t:f,i=Object.create(a.prototype),s=new L(o||[]);return n(i,"_invoke",{value:x(e,r,s)}),i}function c(e,t,r){try{return{type:"normal",arg:e.call(t,r)}}catch(T){return{type:"throw",arg:T}}}e.wrap=u;var h={};function f(){}function d(){}function m(){}var p={};l(p,a,(function(){return this}));var y=Object.getPrototypeOf,v=y&&y(y(E([])));v&&v!==t&&r.call(v,a)&&(p=v);var g=m.prototype=f.prototype=Object.create(p);function b(e){["next","throw","return"].forEach((function(t){l(e,t,(function(e){return this._invoke(t,e)}))}))}function w(e,t){function o(n,a,i,s){var l=c(e[n],e,a);if("throw"!==l.type){var u=l.arg,h=u.value;return h&&"object"==Ge(h)&&r.call(h,"__await")?t.resolve(h.__await).then((function(e){o("next",e,i,s)}),(function(e){o("throw",e,i,s)})):t.resolve(h).then((function(e){u.value=e,i(u)}),(function(e){return o("throw",e,i,s)}))}s(l.arg)}var a;n(this,"_invoke",{value:function(e,r){function n(){return new t((function(t,n){o(e,r,t,n)}))}return a=a?a.then(n,n):n()}})}function x(e,t,r){var n="suspendedStart";return function(o,a){if("executing"===n)throw new Error("Generator is already running");if("completed"===n){if("throw"===o)throw a;return S()}for(r.method=o,r.arg=a;;){var i=r.delegate;if(i){var s=M(i,r);if(s){if(s===h)continue;return s}}if("next"===r.method)r.sent=r._sent=r.arg;else if("throw"===r.method){if("suspendedStart"===n)throw n="completed",r.arg;r.dispatchException(r.arg)}else"return"===r.method&&r.abrupt("return",r.arg);n="executing";var l=c(e,t,r);if("normal"===l.type){if(n=r.done?"completed":"suspendedYield",l.arg===h)continue;return{value:l.arg,done:r.done}}"throw"===l.type&&(n="completed",r.method="throw",r.arg=l.arg)}}}function M(e,t){var r=t.method,n=e.iterator[r];if(void 0===n)return t.delegate=null,"throw"===r&&e.iterator.return&&(t.method="return",t.arg=void 0,M(e,t),"throw"===t.method)||"return"!==r&&(t.method="throw",t.arg=new TypeError("The iterator does not provide a '"+r+"' method")),h;var o=c(n,e.iterator,t.arg);if("throw"===o.type)return t.method="throw",t.arg=o.arg,t.delegate=null,h;var a=o.arg;return a?a.done?(t[e.resultName]=a.value,t.next=e.nextLoc,"return"!==t.method&&(t.method="next",t.arg=void 0),t.delegate=null,h):a:(t.method="throw",t.arg=new TypeError("iterator result is not an object"),t.delegate=null,h)}function O(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function P(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function L(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(O,this),this.reset(!0)}function E(e){if(e){var t=e[a];if(t)return t.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var n=-1,o=function t(){for(;++n<e.length;)if(r.call(e,n))return t.value=e[n],t.done=!1,t;return t.value=void 0,t.done=!0,t};return o.next=o}}return{next:S}}function S(){return{value:void 0,done:!0}}return d.prototype=m,n(g,"constructor",{value:m,configurable:!0}),n(m,"constructor",{value:d,configurable:!0}),d.displayName=l(m,s,"GeneratorFunction"),e.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===d||"GeneratorFunction"===(t.displayName||t.name))},e.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,m):(e.__proto__=m,l(e,s,"GeneratorFunction")),e.prototype=Object.create(g),e},e.awrap=function(e){return{__await:e}},b(w.prototype),l(w.prototype,i,(function(){return this})),e.AsyncIterator=w,e.async=function(t,r,n,o,a){void 0===a&&(a=Promise);var i=new w(u(t,r,n,o),a);return e.isGeneratorFunction(r)?i:i.next().then((function(e){return e.done?e.value:i.next()}))},b(g),l(g,s,"Generator"),l(g,a,(function(){return this})),l(g,"toString",(function(){return"[object Generator]"})),e.keys=function(e){var t=Object(e),r=[];for(var n in t)r.push(n);return r.reverse(),function e(){for(;r.length;){var n=r.pop();if(n in t)return e.value=n,e.done=!1,e}return e.done=!0,e}},e.values=E,L.prototype={constructor:L,reset:function(e){if(this.prev=0,this.next=0,this.sent=this._sent=void 0,this.done=!1,this.delegate=null,this.method="next",this.arg=void 0,this.tryEntries.forEach(P),!e)for(var t in this)"t"===t.charAt(0)&&r.call(this,t)&&!isNaN(+t.slice(1))&&(this[t]=void 0)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(e){if(this.done)throw e;var t=this;function n(r,n){return i.type="throw",i.arg=e,t.next=r,n&&(t.method="next",t.arg=void 0),!!n}for(var o=this.tryEntries.length-1;o>=0;--o){var a=this.tryEntries[o],i=a.completion;if("root"===a.tryLoc)return n("end");if(a.tryLoc<=this.prev){var s=r.call(a,"catchLoc"),l=r.call(a,"finallyLoc");if(s&&l){if(this.prev<a.catchLoc)return n(a.catchLoc,!0);if(this.prev<a.finallyLoc)return n(a.finallyLoc)}else if(s){if(this.prev<a.catchLoc)return n(a.catchLoc,!0)}else{if(!l)throw new Error("try statement without catch or finally");if(this.prev<a.finallyLoc)return n(a.finallyLoc)}}}},abrupt:function(e,t){for(var n=this.tryEntries.length-1;n>=0;--n){var o=this.tryEntries[n];if(o.tryLoc<=this.prev&&r.call(o,"finallyLoc")&&this.prev<o.finallyLoc){var a=o;break}}a&&("break"===e||"continue"===e)&&a.tryLoc<=t&&t<=a.finallyLoc&&(a=null);var i=a?a.completion:{};return i.type=e,i.arg=t,a?(this.method="next",this.next=a.finallyLoc,h):this.complete(i)},complete:function(e,t){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&t&&(this.next=t),h},finish:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.finallyLoc===e)return this.complete(r.completion,r.afterLoc),P(r),h}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.tryLoc===e){var n=r.completion;if("throw"===n.type){var o=n.arg;P(r)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(e,t,r){return this.delegate={iterator:E(e),resultName:t,nextLoc:r},"next"===this.method&&(this.arg=void 0),h}},e}function Ve(e,t,r,n,o,a,i){try{var s=e[a](i),l=s.value}catch(u){return void r(u)}s.done?t(l):Promise.resolve(l).then(n,o)}function He(e){return function(){var t=this,r=arguments;return new Promise((function(n,o){var a=e.apply(t,r);function i(e){Ve(a,n,o,i,s,"next",e)}function s(e){Ve(a,n,o,i,s,"throw",e)}i(void 0)}))}}function Ue(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function Ye(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?Ue(Object(r),!0).forEach((function(t){$e(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Ue(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function $e(e,t,r){return t=qe(t),t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function qe(e){var t=We(e,"string");return"symbol"===Ge(t)?t:String(t)}function We(e,t){if("object"!==Ge(e)||null===e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!==Ge(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}var Xe={data:function(){return{imageOverlayTexture:null,imageOverlayMaterial:null}},created:function(){this.imageOverlayProjectionCamera=new l.ubm(1,1,100,1e3)},computed:Ye({},(0,o.L8)({imageOverlay:"getImageOverlay"})),methods:{renderImageOverlayOnBackground:function(){if(!this.imageOverlay||!this.imageOverlayMaterial)return this.clearMeshFromScene(this.meshes.backgroundMesh,this.scene),void(this.meshes.backgroundMesh=null);var e=this.imageOverlay.corners.map((function(e){return Ye(Ye({},e),{},{z:100})}));if(this.meshes.backgroundMesh&&this.meshes.backgroundMesh.geometry){var t=this.meshes.backgroundMesh.geometry;t=ne(e,[],t),this.meshes.backgroundMesh.geometry=t}else{var r=he(e),n=this.imageOverlayMaterial;this.meshes.backgroundMesh=new l.eaF(r,n),this.scene.add(this.meshes.backgroundMesh)}this.meshes.backgroundMesh.position.z=.15,this.imageOverlayMaterial&&this.applyTextureOnMesh([this.imageOverlayMaterial],this.meshes.backgroundMesh),this.meshes.backgroundMesh.visible=!0},changeImageOverlay:function(){var e=this;return He(Ze().mark((function t(){return Ze().wrap((function(t){while(1)switch(t.prev=t.next){case 0:return e.imageOverlayMaterial&&(e.imageOverlayMaterial.dispose(),e.imageOverlayMaterial=null),t.next=3,e.updateProjectionMaterials();case 3:case"end":return t.stop()}}),t)})))()},getImageOverlayMaterial:function(){var e=this;return He(Ze().mark((function t(){return Ze().wrap((function(t){while(1)switch(t.prev=t.next){case 0:if(e.imageOverlay&&e.imageOverlay.url){t.next=4;break}return e.imageOverlayMaterial&&e.imageOverlayMaterial.dispose(),e.imageOverlayMaterial=null,t.abrupt("return",null);case 4:if(e.imageOverlayMaterial&&e.imageOverlay.url==e.imageOverlayMaterial.userData.url){t.next=10;break}return t.next=7,e.newImageOverlayMaterial();case 7:e.imageOverlayMaterial=t.sent,t.next=11;break;case 10:e.setImageOverlayCameraPosition();case 11:return t.abrupt("return",e.imageOverlayMaterial);case 12:case"end":return t.stop()}}),t)})))()},removeImageOverlay:function(){this.imageOverlayMaterial&&this.imageOverlayMaterial.dispose&&this.imageOverlayMaterial.dispose(),this.imageOverlayMaterial=null,this.material.roof=this.material.roof.filter((function(e){return"imageOverlayMaterial"!=e.userData.type}))},newImageOverlayMaterial:function(){var e=this;return He(Ze().mark((function t(){return Ze().wrap((function(t){while(1)switch(t.prev=t.next){case 0:return t.abrupt("return",new Promise((function(t){e.loader.load(e.imageOverlay.url,(function(r){e.imageOverlayTexture=r,e.setImageOverlayCameraPosition();var n=new Me.A({camera:e.imageOverlayProjectionCamera,texture:e.imageOverlayTexture,transparent:!0,side:l.$EB,depthWrite:!1});n.userData={},n.userData.type="imageOverlayMaterial",n.priority=20,n.userData.url=e.imageOverlay.url,t(n)}))})));case 1:case"end":return t.stop()}}),t)})))()},setImageOverlayCameraPosition:function(){if(this.imageOverlay&&this.imageOverlay.url){var e=(0,s.JV)(this.imageOverlay.corners[1],this.imageOverlay.corners[2]),t=(0,s.JV)(this.imageOverlay.corners[0],this.imageOverlay.corners[1]);this.imageOverlayProjectionCamera.aspect=t/e;var r=e/(2*Math.tan(this.imageOverlayProjectionCamera.fov*Math.PI/360)),n={x:0,y:0,z:r/1e3},o=(0,s.VN)(.5,(0,s.xt)(this.imageOverlay.corners[0],this.imageOverlay.corners[2]));n.x=o.x/1e3,n.y=o.y/1e3,this.imageOverlayProjectionCamera.position.set(n.x,n.y,r/1e3),this.imageOverlayProjectionCamera.lookAt(n.x,n.y,0);var a=(0,s._6)((0,s.T2)(this.imageOverlay.corners[3],this.imageOverlay.corners[0]));this.imageOverlayProjectionCamera.rotation.set(0,0,a*Math.PI/180),this.imageOverlayProjectionCamera.far=1.5*r,this.imageOverlayProjectionCamera.near=.8*r,this.imageOverlayProjectionCamera.updateProjectionMatrix()}}}},Je=r(953),Qe={methods:{applyTextureOnMesh:function(e,t){if(t=(0,Je.ux)(t),t&&e&&e.length>0){var r=t.geometry;r.clearGroups();for(var n=0;n<e.length;n++)r.addGroup(0,1/0,n);r.needsUpdate=!0,t.material=e;for(var o=0;o<e.length;o++)e[o].project&&e[o].project(t),e[o].needsUpdate=!0;t.needsUpdate=!0}}}};function Ke(e){return Ke="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Ke(e)}function et(){/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */et=function(){return e};var e={},t=Object.prototype,r=t.hasOwnProperty,n=Object.defineProperty||function(e,t,r){e[t]=r.value},o="function"==typeof Symbol?Symbol:{},a=o.iterator||"@@iterator",i=o.asyncIterator||"@@asyncIterator",s=o.toStringTag||"@@toStringTag";function l(e,t,r){return Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{l({},"")}catch(T){l=function(e,t,r){return e[t]=r}}function u(e,t,r,o){var a=t&&t.prototype instanceof f?t:f,i=Object.create(a.prototype),s=new L(o||[]);return n(i,"_invoke",{value:x(e,r,s)}),i}function c(e,t,r){try{return{type:"normal",arg:e.call(t,r)}}catch(T){return{type:"throw",arg:T}}}e.wrap=u;var h={};function f(){}function d(){}function m(){}var p={};l(p,a,(function(){return this}));var y=Object.getPrototypeOf,v=y&&y(y(E([])));v&&v!==t&&r.call(v,a)&&(p=v);var g=m.prototype=f.prototype=Object.create(p);function b(e){["next","throw","return"].forEach((function(t){l(e,t,(function(e){return this._invoke(t,e)}))}))}function w(e,t){function o(n,a,i,s){var l=c(e[n],e,a);if("throw"!==l.type){var u=l.arg,h=u.value;return h&&"object"==Ke(h)&&r.call(h,"__await")?t.resolve(h.__await).then((function(e){o("next",e,i,s)}),(function(e){o("throw",e,i,s)})):t.resolve(h).then((function(e){u.value=e,i(u)}),(function(e){return o("throw",e,i,s)}))}s(l.arg)}var a;n(this,"_invoke",{value:function(e,r){function n(){return new t((function(t,n){o(e,r,t,n)}))}return a=a?a.then(n,n):n()}})}function x(e,t,r){var n="suspendedStart";return function(o,a){if("executing"===n)throw new Error("Generator is already running");if("completed"===n){if("throw"===o)throw a;return S()}for(r.method=o,r.arg=a;;){var i=r.delegate;if(i){var s=M(i,r);if(s){if(s===h)continue;return s}}if("next"===r.method)r.sent=r._sent=r.arg;else if("throw"===r.method){if("suspendedStart"===n)throw n="completed",r.arg;r.dispatchException(r.arg)}else"return"===r.method&&r.abrupt("return",r.arg);n="executing";var l=c(e,t,r);if("normal"===l.type){if(n=r.done?"completed":"suspendedYield",l.arg===h)continue;return{value:l.arg,done:r.done}}"throw"===l.type&&(n="completed",r.method="throw",r.arg=l.arg)}}}function M(e,t){var r=t.method,n=e.iterator[r];if(void 0===n)return t.delegate=null,"throw"===r&&e.iterator.return&&(t.method="return",t.arg=void 0,M(e,t),"throw"===t.method)||"return"!==r&&(t.method="throw",t.arg=new TypeError("The iterator does not provide a '"+r+"' method")),h;var o=c(n,e.iterator,t.arg);if("throw"===o.type)return t.method="throw",t.arg=o.arg,t.delegate=null,h;var a=o.arg;return a?a.done?(t[e.resultName]=a.value,t.next=e.nextLoc,"return"!==t.method&&(t.method="next",t.arg=void 0),t.delegate=null,h):a:(t.method="throw",t.arg=new TypeError("iterator result is not an object"),t.delegate=null,h)}function O(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function P(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function L(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(O,this),this.reset(!0)}function E(e){if(e){var t=e[a];if(t)return t.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var n=-1,o=function t(){for(;++n<e.length;)if(r.call(e,n))return t.value=e[n],t.done=!1,t;return t.value=void 0,t.done=!0,t};return o.next=o}}return{next:S}}function S(){return{value:void 0,done:!0}}return d.prototype=m,n(g,"constructor",{value:m,configurable:!0}),n(m,"constructor",{value:d,configurable:!0}),d.displayName=l(m,s,"GeneratorFunction"),e.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===d||"GeneratorFunction"===(t.displayName||t.name))},e.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,m):(e.__proto__=m,l(e,s,"GeneratorFunction")),e.prototype=Object.create(g),e},e.awrap=function(e){return{__await:e}},b(w.prototype),l(w.prototype,i,(function(){return this})),e.AsyncIterator=w,e.async=function(t,r,n,o,a){void 0===a&&(a=Promise);var i=new w(u(t,r,n,o),a);return e.isGeneratorFunction(r)?i:i.next().then((function(e){return e.done?e.value:i.next()}))},b(g),l(g,s,"Generator"),l(g,a,(function(){return this})),l(g,"toString",(function(){return"[object Generator]"})),e.keys=function(e){var t=Object(e),r=[];for(var n in t)r.push(n);return r.reverse(),function e(){for(;r.length;){var n=r.pop();if(n in t)return e.value=n,e.done=!1,e}return e.done=!0,e}},e.values=E,L.prototype={constructor:L,reset:function(e){if(this.prev=0,this.next=0,this.sent=this._sent=void 0,this.done=!1,this.delegate=null,this.method="next",this.arg=void 0,this.tryEntries.forEach(P),!e)for(var t in this)"t"===t.charAt(0)&&r.call(this,t)&&!isNaN(+t.slice(1))&&(this[t]=void 0)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(e){if(this.done)throw e;var t=this;function n(r,n){return i.type="throw",i.arg=e,t.next=r,n&&(t.method="next",t.arg=void 0),!!n}for(var o=this.tryEntries.length-1;o>=0;--o){var a=this.tryEntries[o],i=a.completion;if("root"===a.tryLoc)return n("end");if(a.tryLoc<=this.prev){var s=r.call(a,"catchLoc"),l=r.call(a,"finallyLoc");if(s&&l){if(this.prev<a.catchLoc)return n(a.catchLoc,!0);if(this.prev<a.finallyLoc)return n(a.finallyLoc)}else if(s){if(this.prev<a.catchLoc)return n(a.catchLoc,!0)}else{if(!l)throw new Error("try statement without catch or finally");if(this.prev<a.finallyLoc)return n(a.finallyLoc)}}}},abrupt:function(e,t){for(var n=this.tryEntries.length-1;n>=0;--n){var o=this.tryEntries[n];if(o.tryLoc<=this.prev&&r.call(o,"finallyLoc")&&this.prev<o.finallyLoc){var a=o;break}}a&&("break"===e||"continue"===e)&&a.tryLoc<=t&&t<=a.finallyLoc&&(a=null);var i=a?a.completion:{};return i.type=e,i.arg=t,a?(this.method="next",this.next=a.finallyLoc,h):this.complete(i)},complete:function(e,t){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&t&&(this.next=t),h},finish:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.finallyLoc===e)return this.complete(r.completion,r.afterLoc),P(r),h}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.tryLoc===e){var n=r.completion;if("throw"===n.type){var o=n.arg;P(r)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(e,t,r){return this.delegate={iterator:E(e),resultName:t,nextLoc:r},"next"===this.method&&(this.arg=void 0),h}},e}function tt(e){return at(e)||ot(e)||nt(e)||rt()}function rt(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function nt(e,t){if(e){if("string"===typeof e)return it(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?it(e,t):void 0}}function ot(e){if("undefined"!==typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}function at(e){if(Array.isArray(e))return it(e)}function it(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function st(e,t,r,n,o,a,i){try{var s=e[a](i),l=s.value}catch(u){return void r(u)}s.done?t(l):Promise.resolve(l).then(n,o)}function lt(e){return function(){var t=this,r=arguments;return new Promise((function(n,o){var a=e.apply(t,r);function i(e){st(a,n,o,i,s,"next",e)}function s(e){st(a,n,o,i,s,"throw",e)}i(void 0)}))}}var ut={methods:{reorderRoofMaterials:function(){this.material.roof.sort((function(e,t){var r=e.priority||0,n=t.priority||0;return r-n}))},updateProjectionMaterials:function(){var e=this;return lt(et().mark((function t(){var r;return et().wrap((function(t){while(1)switch(t.prev=t.next){case 0:return e.setImageOverlayCameraPosition(),t.next=3,e.getImageOverlayMaterial();case 3:e.imageOverlayMaterial=t.sent,r=e.material.roof.findIndex((function(e){return"imageOverlayMaterial"==e.userData.type})),e.imageOverlayMaterial?r>=0?(e.material.roof[r]=e.imageOverlayMaterial,e.material.roof=tt(e.material.roof)):e.material.roof=[].concat(tt(e.material.roof),[e.imageOverlayMaterial]):r>=0&&(e.material.roof[r].dispose(),e.material.roof.splice(r,1),e.material.roof=tt(e.material.roof)),e.renderImageOverlayOnBackground(),e.applyTextureOnRoofs();case 8:case"end":return t.stop()}}),t)})))()}}};function ct(e){var t="pending",r=!1,n=new Promise((function(n,o){e.then((function(e){r?t="resolved but cancelled before":(n(e),t="resolved")})).catch((function(e){t="rejected",r||o(e)}))}));return n.getStatus=function(){return t},n.cancel=function(){r=!0},n}function ht(e){return ht="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},ht(e)}function ft(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function dt(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?ft(Object(r),!0).forEach((function(t){mt(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):ft(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function mt(e,t,r){return t=pt(t),t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function pt(e){var t=yt(e,"string");return"symbol"===ht(t)?t:String(t)}function yt(e,t){if("object"!==ht(e)||null===e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!==ht(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}function vt(e,t){var r="undefined"!==typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=gt(e))||t&&e&&"number"===typeof e.length){r&&(e=r);var n=0,o=function(){};return{s:o,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,i=!0,s=!1;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return i=e.done,e},e:function(e){s=!0,a=e},f:function(){try{i||null==r.return||r.return()}finally{if(s)throw a}}}}function gt(e,t){if(e){if("string"===typeof e)return bt(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?bt(e,t):void 0}}function bt(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function wt(){/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */wt=function(){return e};var e={},t=Object.prototype,r=t.hasOwnProperty,n=Object.defineProperty||function(e,t,r){e[t]=r.value},o="function"==typeof Symbol?Symbol:{},a=o.iterator||"@@iterator",i=o.asyncIterator||"@@asyncIterator",s=o.toStringTag||"@@toStringTag";function l(e,t,r){return Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{l({},"")}catch(T){l=function(e,t,r){return e[t]=r}}function u(e,t,r,o){var a=t&&t.prototype instanceof f?t:f,i=Object.create(a.prototype),s=new L(o||[]);return n(i,"_invoke",{value:x(e,r,s)}),i}function c(e,t,r){try{return{type:"normal",arg:e.call(t,r)}}catch(T){return{type:"throw",arg:T}}}e.wrap=u;var h={};function f(){}function d(){}function m(){}var p={};l(p,a,(function(){return this}));var y=Object.getPrototypeOf,v=y&&y(y(E([])));v&&v!==t&&r.call(v,a)&&(p=v);var g=m.prototype=f.prototype=Object.create(p);function b(e){["next","throw","return"].forEach((function(t){l(e,t,(function(e){return this._invoke(t,e)}))}))}function w(e,t){function o(n,a,i,s){var l=c(e[n],e,a);if("throw"!==l.type){var u=l.arg,h=u.value;return h&&"object"==ht(h)&&r.call(h,"__await")?t.resolve(h.__await).then((function(e){o("next",e,i,s)}),(function(e){o("throw",e,i,s)})):t.resolve(h).then((function(e){u.value=e,i(u)}),(function(e){return o("throw",e,i,s)}))}s(l.arg)}var a;n(this,"_invoke",{value:function(e,r){function n(){return new t((function(t,n){o(e,r,t,n)}))}return a=a?a.then(n,n):n()}})}function x(e,t,r){var n="suspendedStart";return function(o,a){if("executing"===n)throw new Error("Generator is already running");if("completed"===n){if("throw"===o)throw a;return S()}for(r.method=o,r.arg=a;;){var i=r.delegate;if(i){var s=M(i,r);if(s){if(s===h)continue;return s}}if("next"===r.method)r.sent=r._sent=r.arg;else if("throw"===r.method){if("suspendedStart"===n)throw n="completed",r.arg;r.dispatchException(r.arg)}else"return"===r.method&&r.abrupt("return",r.arg);n="executing";var l=c(e,t,r);if("normal"===l.type){if(n=r.done?"completed":"suspendedYield",l.arg===h)continue;return{value:l.arg,done:r.done}}"throw"===l.type&&(n="completed",r.method="throw",r.arg=l.arg)}}}function M(e,t){var r=t.method,n=e.iterator[r];if(void 0===n)return t.delegate=null,"throw"===r&&e.iterator.return&&(t.method="return",t.arg=void 0,M(e,t),"throw"===t.method)||"return"!==r&&(t.method="throw",t.arg=new TypeError("The iterator does not provide a '"+r+"' method")),h;var o=c(n,e.iterator,t.arg);if("throw"===o.type)return t.method="throw",t.arg=o.arg,t.delegate=null,h;var a=o.arg;return a?a.done?(t[e.resultName]=a.value,t.next=e.nextLoc,"return"!==t.method&&(t.method="next",t.arg=void 0),t.delegate=null,h):a:(t.method="throw",t.arg=new TypeError("iterator result is not an object"),t.delegate=null,h)}function O(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function P(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function L(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(O,this),this.reset(!0)}function E(e){if(e){var t=e[a];if(t)return t.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var n=-1,o=function t(){for(;++n<e.length;)if(r.call(e,n))return t.value=e[n],t.done=!1,t;return t.value=void 0,t.done=!0,t};return o.next=o}}return{next:S}}function S(){return{value:void 0,done:!0}}return d.prototype=m,n(g,"constructor",{value:m,configurable:!0}),n(m,"constructor",{value:d,configurable:!0}),d.displayName=l(m,s,"GeneratorFunction"),e.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===d||"GeneratorFunction"===(t.displayName||t.name))},e.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,m):(e.__proto__=m,l(e,s,"GeneratorFunction")),e.prototype=Object.create(g),e},e.awrap=function(e){return{__await:e}},b(w.prototype),l(w.prototype,i,(function(){return this})),e.AsyncIterator=w,e.async=function(t,r,n,o,a){void 0===a&&(a=Promise);var i=new w(u(t,r,n,o),a);return e.isGeneratorFunction(r)?i:i.next().then((function(e){return e.done?e.value:i.next()}))},b(g),l(g,s,"Generator"),l(g,a,(function(){return this})),l(g,"toString",(function(){return"[object Generator]"})),e.keys=function(e){var t=Object(e),r=[];for(var n in t)r.push(n);return r.reverse(),function e(){for(;r.length;){var n=r.pop();if(n in t)return e.value=n,e.done=!1,e}return e.done=!0,e}},e.values=E,L.prototype={constructor:L,reset:function(e){if(this.prev=0,this.next=0,this.sent=this._sent=void 0,this.done=!1,this.delegate=null,this.method="next",this.arg=void 0,this.tryEntries.forEach(P),!e)for(var t in this)"t"===t.charAt(0)&&r.call(this,t)&&!isNaN(+t.slice(1))&&(this[t]=void 0)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(e){if(this.done)throw e;var t=this;function n(r,n){return i.type="throw",i.arg=e,t.next=r,n&&(t.method="next",t.arg=void 0),!!n}for(var o=this.tryEntries.length-1;o>=0;--o){var a=this.tryEntries[o],i=a.completion;if("root"===a.tryLoc)return n("end");if(a.tryLoc<=this.prev){var s=r.call(a,"catchLoc"),l=r.call(a,"finallyLoc");if(s&&l){if(this.prev<a.catchLoc)return n(a.catchLoc,!0);if(this.prev<a.finallyLoc)return n(a.finallyLoc)}else if(s){if(this.prev<a.catchLoc)return n(a.catchLoc,!0)}else{if(!l)throw new Error("try statement without catch or finally");if(this.prev<a.finallyLoc)return n(a.finallyLoc)}}}},abrupt:function(e,t){for(var n=this.tryEntries.length-1;n>=0;--n){var o=this.tryEntries[n];if(o.tryLoc<=this.prev&&r.call(o,"finallyLoc")&&this.prev<o.finallyLoc){var a=o;break}}a&&("break"===e||"continue"===e)&&a.tryLoc<=t&&t<=a.finallyLoc&&(a=null);var i=a?a.completion:{};return i.type=e,i.arg=t,a?(this.method="next",this.next=a.finallyLoc,h):this.complete(i)},complete:function(e,t){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&t&&(this.next=t),h},finish:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.finallyLoc===e)return this.complete(r.completion,r.afterLoc),P(r),h}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.tryLoc===e){var n=r.completion;if("throw"===n.type){var o=n.arg;P(r)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(e,t,r){return this.delegate={iterator:E(e),resultName:t,nextLoc:r},"next"===this.method&&(this.arg=void 0),h}},e}function xt(e,t,r,n,o,a,i){try{var s=e[a](i),l=s.value}catch(u){return void r(u)}s.done?t(l):Promise.resolve(l).then(n,o)}function Mt(e){return function(){var t=this,r=arguments;return new Promise((function(n,o){var a=e.apply(t,r);function i(e){xt(a,n,o,i,s,"next",e)}function s(e){xt(a,n,o,i,s,"throw",e)}i(void 0)}))}}var Ot={data:function(){return{pendingTiles:[],numberOfTilesRendered:0,numberOfTilesToRender:0,tileToRender:[]}},methods:{debouncedRenderTiles:(0,Ne.debounce)((function(){this.renderTiles()}),1e3),renderTiles:function(){var e=this;return Mt(wt().mark((function t(){return wt().wrap((function(t){while(1)switch(t.prev=t.next){case 0:if(e.scene){t.next=2;break}return t.abrupt("return");case 2:!e.selectedMapLayer||["googleLayerRoadmap","googleLayer","googleLayerTerrain"].includes(e.selectedMapLayer.key)?e.renderGoogleTiles():e.renderProviderTiles();case 3:case"end":return t.stop()}}),t)})))()},removeUnusedTiles:function(){var e,t=this.tileToRender.map((function(e){return"tile_"+e.xTile+"_"+e.yTile+"_"+e.zoomLvl})),r=Object.keys(this.meshes.tileMeshes).filter((function(e){return!t.includes(e)})),n=vt(r);try{for(n.s();!(e=n.n()).done;){var o=e.value;this.clearMeshFromScene(this.meshes.tileMeshes[o],this.scene)}}catch(a){n.e(a)}finally{n.f()}},renderProviderTiles:function(){var e=this;return Mt(wt().mark((function t(){var r,n,o,a,i,l,u,c,h,f,d,m,p,y,v,g,b,w,x,M,O,P,L,E,S,T,j,_,C,k,I,A,R,F;return wt().wrap((function(t){while(1)switch(t.prev=t.next){case 0:for(e.googleBackgroundMap&&(e.googleBackgroundMap.clear(),e.scene.remove(e.googleBackgroundMap),e.clearThreeObjects(e.googleBackgroundMap)),r=e.provider.maxZoom,n=e.layoutSettings.layout_latitude,o=e.layoutSettings.layout_longitude,a=e.roofsBounds,i=a.xMin,l=a.xMax,u=a.yMin,c=a.yMax,i==1/0?(i=0,u=0,l=0,c=0):(h=D*Math.cos(n*Math.PI/180)*2e3*Math.PI,f=Math.round(Math.log(h/(l-i))/Math.LN2),f<r&&(r=f)),d=(0,s.Bd)(i,u,n),m=d.lat,p=d.lng,y=(0,s.Bd)(l,c,n),v=y.lat,g=y.lng,b=(0,s.zu)(n+m,o+p,r),w=b.x,x=b.y,M=(0,s.zu)(n+v,o+g,r),O=M.x,P=M.y,w-=w%2,O=O+1-O%2,P-=P%2,x=x+1-x%2,e.tileToRender=[],L=w;L<=O;L++)for(E=P;E<=x;E++)e.tileToRender.push({xTile:L,yTile:E,zoomLvl:r,isTileOnRoofBound:!0});while(r>17)for(w=w/2-1,O=(O+1)/2,P=P/2-1,x=(x+1)/2,S=w%2,T=P%2,j=1-O%2,_=1-x%2,w-=w%2,O=O+1-O%2,P-=P%2,x=x+1-x%2,r-=1,C=w;C<=O;C++)for(k=P;k<=x;k++)(C-w<=S||O-C<=j||k-P<=T||x-k<=_)&&e.tileToRender.push({xTile:C,yTile:k,zoomLvl:r,isTileOnRoofBound:!1});for(I in e.numberOfTilesToRender=e.tileToRender.length,e.numberOfTilesRendered=0,e.tileToRender)A=e.tileToRender[I].xTile,R=e.tileToRender[I].yTile,r=e.tileToRender[I].zoomLvl,F=e.tileToRender[I].isTileOnRoofBound,e.renderTile(A,R,r,F);case 20:case"end":return t.stop()}}),t)})))()},removeTileFromPending:function(e,t){this.pendingTiles=this.pendingTiles.filter((function(r){return r.meshId!=e||r.mapLayer!=t}))},renderTile:function(e,t,r){var n=arguments,o=this;return Mt(wt().mark((function a(){var i,u,c,h,f,d,m,p,y;return wt().wrap((function(a){while(1)switch(a.prev=a.next){case 0:if(i=n.length>3&&void 0!==n[3]&&n[3],u="tile_"+e+"_"+t+"_"+r,c=o.provider.mapLayer,!o.pendingTiles.find((function(e){return e.meshId==u&&e.mapLayer==c}))){a.next=5;break}return a.abrupt("return");case 5:if(h=o.meshes.tileMeshes[u],!h||o.provider.mapLayer!=h.userData.mapLayer){a.next=8;break}return a.abrupt("return");case 8:f=o.layoutSettings.layout_latitude,d=o.layoutSettings.layout_longitude,y=ct(o.provider.fetchTile(r,e,t)),o.pendingTiles.push({x:e,y:t,zoomLvl:r,mapLayer:c,meshId:u,imagePromise:y}),y.then((function(n){if(n){var a=new l.gPd(n);i&&o.newTileMaterial(a,e,t,r,c),a.generateMipmaps=!1,a.format=l.GWd,a.needsUpdate=!0;var y=(0,s.U8)(e,t,r,f,d);y=y.map((function(e){return dt(dt({},e),{},{z:-100})})),h?(m=h.geometry,p=h.material,m=ne(y,[],m),h.geometry=m,p.map=a,p.needsUpdate=!0,h.userData.mapLayer=o.provider.mapLayer,h.userData.type="tileMeshes",h.userData.meshId=u,h.frustumCulled=!1,h.needsUpdate=!0,h.updateMatrix()):(p=new l.V9B({map:a,color:16777215,side:l.hB5,transparent:!0}),p.map=a,p.needsUpdate=!0,m=oe(y),m&&(h=new l.eaF(m,p),h.userData.type="tileMeshes",h.userData.meshId=u,h.userData.mapLayer=o.provider.mapLayer,h.name=u,o.scene.getObjectByName(u)||(o.meshes.tileMeshes[u]=h,o.scene.add(o.meshes.tileMeshes[u])))),o.removeTileFromPending(u,c),o.numberOfTilesRendered++,o.numberOfTilesRendered==o.numberOfTilesToRender&&(o.removeUnusedTiles(),o.render())}else o.removeTileFromPending(u,c)}));case 13:case"end":return a.stop()}}),a)})))()},renderGoogleTiles:function(){var e=this;return Mt(wt().mark((function t(){var r,n,o,a,i,u,c,h,f,d,m,p,y,v,g,b,w,x,M,O,P;return wt().wrap((function(t){while(1)switch(t.prev=t.next){case 0:e.clearByType("tileMeshes"),e.googleBackgroundMap||(e.googleBackgroundMap=new l.YJl,e.scene.add(e.googleBackgroundMap)),e.googleBackgroundMap.visible=!0,e.googleBackgroundMap.name="googleBackgroundMap",e.scene.getObjectByName("googleBackgroundMap")||e.scene.add(e.googleBackgroundMap),r="satellite",t.t0=e.selectedMapLayer.key,t.next="googleLayerRoadmap"===t.t0?9:"googleLayer"===t.t0?11:"googleLayerTerrain"===t.t0?13:15;break;case 9:return r="roadmap",t.abrupt("break",15);case 11:return r="satellite",t.abrupt("break",15);case 13:return r="terrain",t.abrupt("break",15);case 15:n=640,o=19,a=e.roofsBounds,i=a.xMin,u=a.xMax,c=a.yMin,h=a.yMax,i==1/0?(i=0,c=0,u=0,h=0):(f=Math.max(u-i,h-c)/1e3,d=Math.log2(2*Math.cos(e.layoutSettings.layout_latitude*Math.PI/180)*Math.PI*D*n/(256*f)),o=Math.min(o,parseInt(d))),m={x:(u+i)/2e3,y:(h+c)/2e3},p=(0,s.Bd)(1e3*m.x,1e3*m.y,e.layoutSettings.layout_latitude),y={lat:e.layoutSettings.layout_latitude+p.lat,lng:e.layoutSettings.layout_longitude+p.lng},v="AIzaSyAxqgQ_iRKAQ6AMvZ0a6Z0vkBwYTM-pnHM",g=[],b=[],w=[],x=[o,o-2,o-4],e.numberOfTilesToRender=x.length,M=wt().mark((function t(o){var a,i,s,u;return wt().wrap((function(t){while(1)switch(t.prev=t.next){case 0:a=x[o],i=2*Math.cos(e.layoutSettings.layout_latitude*Math.PI/180)*Math.PI*D/(256*Math.pow(2,a)),s=i*n,b[o]=new l.bdM(s,.9*s),P=new Float32Array([0,.95,1,.95,0,.05,1,.05,0,.05,1,.95]),b[o].setAttribute("uv",new l.THS(P,2)),b[o].computeVertexNormals(),u="https://maps.googleapis.com/maps/api/staticmap?center=".concat(y.lat+","+y.lng,"&maptype=").concat(r,"&zoom=").concat(a,"&size=").concat(n,"x").concat(n,"&key=").concat(v),e.loader.load(u,(function(t){t[o]=t,0==o&&e.newGoogleTileMaterial(t[o],s,m,r),w[o]=new l.V9B({map:t[o],side:l.$EB}),g[o]=new l.eaF(b[o],w[o]),g[o].position.x=m.x,g[o].position.y=m.y,g[o].position.z=-o/2,g[o].visible=!0,g[o].needsUpdate=!0,g[o].userData.index=o;var n=e.googleBackgroundMap.children.find((function(e){return e.userData.index==o}));n&&e.googleBackgroundMap.remove(n),e.googleBackgroundMap.add(g[o]),e.numberOfTilesRendered++,e.numberOfTilesRendered==e.numberOfTilesToRender&&(e.googleBackgroundMap.needsUpdate=!0,e.googleBackgroundMap.visible=!0,e.render())}));case 9:case"end":return t.stop()}}),t)})),O=0;case 30:if(!(O<x.length)){t.next=35;break}return t.delegateYield(M(O),"t1",32);case 32:O++,t.next=30;break;case 35:e.render();case 36:case"end":return t.stop()}}),t)})))()}},watch:{selectedMapLayer:function(e){this.pendingTiles=this.pendingTiles.filter((function(t){if(t.mapLayer!=e.key)return t.imagePromise.cancel(),!1}))}}};function Pt(e){return Pt="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Pt(e)}function Lt(){/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */Lt=function(){return e};var e={},t=Object.prototype,r=t.hasOwnProperty,n=Object.defineProperty||function(e,t,r){e[t]=r.value},o="function"==typeof Symbol?Symbol:{},a=o.iterator||"@@iterator",i=o.asyncIterator||"@@asyncIterator",s=o.toStringTag||"@@toStringTag";function l(e,t,r){return Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{l({},"")}catch(T){l=function(e,t,r){return e[t]=r}}function u(e,t,r,o){var a=t&&t.prototype instanceof f?t:f,i=Object.create(a.prototype),s=new L(o||[]);return n(i,"_invoke",{value:x(e,r,s)}),i}function c(e,t,r){try{return{type:"normal",arg:e.call(t,r)}}catch(T){return{type:"throw",arg:T}}}e.wrap=u;var h={};function f(){}function d(){}function m(){}var p={};l(p,a,(function(){return this}));var y=Object.getPrototypeOf,v=y&&y(y(E([])));v&&v!==t&&r.call(v,a)&&(p=v);var g=m.prototype=f.prototype=Object.create(p);function b(e){["next","throw","return"].forEach((function(t){l(e,t,(function(e){return this._invoke(t,e)}))}))}function w(e,t){function o(n,a,i,s){var l=c(e[n],e,a);if("throw"!==l.type){var u=l.arg,h=u.value;return h&&"object"==Pt(h)&&r.call(h,"__await")?t.resolve(h.__await).then((function(e){o("next",e,i,s)}),(function(e){o("throw",e,i,s)})):t.resolve(h).then((function(e){u.value=e,i(u)}),(function(e){return o("throw",e,i,s)}))}s(l.arg)}var a;n(this,"_invoke",{value:function(e,r){function n(){return new t((function(t,n){o(e,r,t,n)}))}return a=a?a.then(n,n):n()}})}function x(e,t,r){var n="suspendedStart";return function(o,a){if("executing"===n)throw new Error("Generator is already running");if("completed"===n){if("throw"===o)throw a;return S()}for(r.method=o,r.arg=a;;){var i=r.delegate;if(i){var s=M(i,r);if(s){if(s===h)continue;return s}}if("next"===r.method)r.sent=r._sent=r.arg;else if("throw"===r.method){if("suspendedStart"===n)throw n="completed",r.arg;r.dispatchException(r.arg)}else"return"===r.method&&r.abrupt("return",r.arg);n="executing";var l=c(e,t,r);if("normal"===l.type){if(n=r.done?"completed":"suspendedYield",l.arg===h)continue;return{value:l.arg,done:r.done}}"throw"===l.type&&(n="completed",r.method="throw",r.arg=l.arg)}}}function M(e,t){var r=t.method,n=e.iterator[r];if(void 0===n)return t.delegate=null,"throw"===r&&e.iterator.return&&(t.method="return",t.arg=void 0,M(e,t),"throw"===t.method)||"return"!==r&&(t.method="throw",t.arg=new TypeError("The iterator does not provide a '"+r+"' method")),h;var o=c(n,e.iterator,t.arg);if("throw"===o.type)return t.method="throw",t.arg=o.arg,t.delegate=null,h;var a=o.arg;return a?a.done?(t[e.resultName]=a.value,t.next=e.nextLoc,"return"!==t.method&&(t.method="next",t.arg=void 0),t.delegate=null,h):a:(t.method="throw",t.arg=new TypeError("iterator result is not an object"),t.delegate=null,h)}function O(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function P(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function L(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(O,this),this.reset(!0)}function E(e){if(e){var t=e[a];if(t)return t.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var n=-1,o=function t(){for(;++n<e.length;)if(r.call(e,n))return t.value=e[n],t.done=!1,t;return t.value=void 0,t.done=!0,t};return o.next=o}}return{next:S}}function S(){return{value:void 0,done:!0}}return d.prototype=m,n(g,"constructor",{value:m,configurable:!0}),n(m,"constructor",{value:d,configurable:!0}),d.displayName=l(m,s,"GeneratorFunction"),e.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===d||"GeneratorFunction"===(t.displayName||t.name))},e.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,m):(e.__proto__=m,l(e,s,"GeneratorFunction")),e.prototype=Object.create(g),e},e.awrap=function(e){return{__await:e}},b(w.prototype),l(w.prototype,i,(function(){return this})),e.AsyncIterator=w,e.async=function(t,r,n,o,a){void 0===a&&(a=Promise);var i=new w(u(t,r,n,o),a);return e.isGeneratorFunction(r)?i:i.next().then((function(e){return e.done?e.value:i.next()}))},b(g),l(g,s,"Generator"),l(g,a,(function(){return this})),l(g,"toString",(function(){return"[object Generator]"})),e.keys=function(e){var t=Object(e),r=[];for(var n in t)r.push(n);return r.reverse(),function e(){for(;r.length;){var n=r.pop();if(n in t)return e.value=n,e.done=!1,e}return e.done=!0,e}},e.values=E,L.prototype={constructor:L,reset:function(e){if(this.prev=0,this.next=0,this.sent=this._sent=void 0,this.done=!1,this.delegate=null,this.method="next",this.arg=void 0,this.tryEntries.forEach(P),!e)for(var t in this)"t"===t.charAt(0)&&r.call(this,t)&&!isNaN(+t.slice(1))&&(this[t]=void 0)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(e){if(this.done)throw e;var t=this;function n(r,n){return i.type="throw",i.arg=e,t.next=r,n&&(t.method="next",t.arg=void 0),!!n}for(var o=this.tryEntries.length-1;o>=0;--o){var a=this.tryEntries[o],i=a.completion;if("root"===a.tryLoc)return n("end");if(a.tryLoc<=this.prev){var s=r.call(a,"catchLoc"),l=r.call(a,"finallyLoc");if(s&&l){if(this.prev<a.catchLoc)return n(a.catchLoc,!0);if(this.prev<a.finallyLoc)return n(a.finallyLoc)}else if(s){if(this.prev<a.catchLoc)return n(a.catchLoc,!0)}else{if(!l)throw new Error("try statement without catch or finally");if(this.prev<a.finallyLoc)return n(a.finallyLoc)}}}},abrupt:function(e,t){for(var n=this.tryEntries.length-1;n>=0;--n){var o=this.tryEntries[n];if(o.tryLoc<=this.prev&&r.call(o,"finallyLoc")&&this.prev<o.finallyLoc){var a=o;break}}a&&("break"===e||"continue"===e)&&a.tryLoc<=t&&t<=a.finallyLoc&&(a=null);var i=a?a.completion:{};return i.type=e,i.arg=t,a?(this.method="next",this.next=a.finallyLoc,h):this.complete(i)},complete:function(e,t){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&t&&(this.next=t),h},finish:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.finallyLoc===e)return this.complete(r.completion,r.afterLoc),P(r),h}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.tryLoc===e){var n=r.completion;if("throw"===n.type){var o=n.arg;P(r)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(e,t,r){return this.delegate={iterator:E(e),resultName:t,nextLoc:r},"next"===this.method&&(this.arg=void 0),h}},e}function Et(e,t,r,n,o,a,i){try{var s=e[a](i),l=s.value}catch(u){return void r(u)}s.done?t(l):Promise.resolve(l).then(n,o)}function St(e){return function(){var t=this,r=arguments;return new Promise((function(n,o){var a=e.apply(t,r);function i(e){Et(a,n,o,i,s,"next",e)}function s(e){Et(a,n,o,i,s,"throw",e)}i(void 0)}))}}var Tt={data:function(){return{tileProjectionTextures:[],tileProjectionMaterials:[]}},methods:{newGoogleTileMaterial:function(e,t,r,n){this.material.roof||(this.material.roof=[]);var o=new l.qUd(r.x-t/2,r.x+t/2,r.y+t/2,r.y-t/2,100,1e4),a=new Me.A({camera:o,texture:e,transparent:!0,side:l.$EB});a.userData={},a.userData.type="tileProjectionMaterial",a.userData.materialId="material_"+t+"_"+r.x+"_"+r.y+"_"+n,a.userData.mapLayer=n,a.userData.priority=10,this.material.roof.push(a),this.applyTextureOnRoofs(),this.applyTextureOnObstacles()},newTileMaterial:function(e,t,r,n,o){var a=this;return St(Lt().mark((function i(){var s,u;return Lt().wrap((function(i){while(1)switch(i.prev=i.next){case 0:a.material.roof||(a.material.roof=[]),s=new l.qUd(-1,1,-1,1,100,1e4),s.position.set(0,0,1),s.up.set(0,0,1),u=new Me.A({camera:s,texture:e,transparent:!0,side:l.$EB}),u.userData={},u.userData.type="tileProjectionMaterial",u.userData.materialId="material_"+t+"_"+r+"_"+n+"_"+o,u.userData.mapLayer=o,u.priority=10,a.setTileCameraPosition(s,t,r,n),a.material.roof.push(u),a.applyTextureOnRoofs(),a.applyTextureOnObstacles();case 14:case"end":return i.stop()}}),i)})))()},disposeTileMaterial:function(e){e.texture.dispose(),e.dispose()},disposeTileMaterialDifferentMapLayer:function(e){var t=this;this.material.roof&&(this.material.roof=this.material.roof.filter((function(r){return"tileProjectionMaterial"!=r.userData.type||r.userData.mapLayer==e||(t.disposeTileMaterial(r),!1)})))},setTileCameraPosition:function(e,t,r,n){var o,a=this.layoutSettings.layout_latitude,i=this.layoutSettings.layout_longitude,l=(0,s.U8)(t,r,n,a,i),u=Math.pow(2,n);o=2e3*Math.PI*D*Math.cos(a*Math.PI/180)/u,l[0].x,l[2].x,l[0].y,l[2].y,e.left=l[0].x/1e3,e.right=l[2].x/1e3,e.bottom=l[0].y/1e3,e.top=l[2].y/1e3,e.updateProjectionMatrix()}},watch:{selectedMapLayer:function(e){e&&this.disposeTileMaterialDifferentMapLayer(e.key)}}};function jt(e){return kt(e)||Dt(e)||Ct(e)||_t()}function _t(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function Ct(e,t){if(e){if("string"===typeof e)return It(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?It(e,t):void 0}}function Dt(e){if("undefined"!==typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}function kt(e){if(Array.isArray(e))return It(e)}function It(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}var At={methods:{updateMergedGeometry:function(e,t){var r=[],n=[],o=[];if(e.forEach((function(e){var t=e.attributes.position.array,a=e.attributes.normal.array;if(r.push.apply(r,jt(t.slice(0,3*e.drawRange.count))),n.push.apply(n,jt(a.slice(0,3*e.drawRange.count))),e.attributes.uv){var i=e.attributes.uv.array;o.push.apply(o,jt(i.slice(0,3*e.drawRange.count)))}})),t.attributes.position&&t.attributes.uv&&t.attributes.normal&&t.attributes.position.array.length>=r.length&&t.attributes.uv.array.length>=o.length&&t.attributes.normal.array.length>=n.length){var a=t.attributes.position.array,i=t.attributes.uv.array,s=t.attributes.normal.array;for(var l in r)a[l]=r[l];for(var u in o)i[u]=o[u];for(var c in n)s[c]=n[c];t.setDrawRange(0,r.length/3)}else t.dispose(),t=null,t=this.createMergedGeometry(e);return t.attributes.position.needsUpdate=!0,t.attributes.normal.needsUpdate=!0,t.needsUpdate=!0,t},createMergedGeometry:function(e){var t=new l.LoY,r=[],n=[],o=[];return e.forEach((function(e){var t=e.attributes.position.array,a=e.attributes.normal.array;if(r.push.apply(r,jt(t)),n.push.apply(n,jt(a)),e.attributes.uv){var i=e.attributes.uv.array;o.push.apply(o,jt(i))}})),t.setAttribute("position",new l.THS(new Float32Array(r),3)),t.setAttribute("normal",new l.THS(new Float32Array(n),3)),t.setAttribute("uv",new l.THS(new Float32Array(o),2)),t.computeVertexNormals(),t},updateOrCreateMergedMesh:function(e,t,r){if(e){var n=this.updateMergedGeometry(t,e.geometry);e.geometry=n}else{var o=this.createMergedGeometry(t);e=new l.eaF(o,r),this.scene.add(e)}return e.frustumCulled=!1,e}}},Rt={mixins:[Te,G,be,Be,xe,_e,je,ze,we,Se,Xe,Qe,ut,Ot,Tt,At]},Ft=r(759),zt=r.n(Ft),Nt={data:function(){return{animationFrameId:null}},created:function(){this.perspectiveCamera=new l.ubm(50,1,1,5e4),this.orthographicCamera=new l.qUd(-50,50,50,-50,1,1e3)},methods:{initialiseCameras:function(e){e?(this.camera=this.perspectiveCamera,this.camera.position.set(0,-100,50),this.camera.up.set(0,0,1)):(this.camera=this.orthographicCamera,this.camera.position.set(0,0,100),this.camera.up.set(0,1,0)),this.cameraProjection=new l.ubm(1,1,100,1e3),this.cameraProjection.position.set(0,0,500),this.cameraProjection.up.set(0,0,1),this.scene.add(this.camera)},setCameraAspectRatio:function(){var e=this.DOMElement.clientWidth/this.DOMElement.clientHeight;if(this.camera.isOrthographicCamera){var t=Math.abs((this.camera.right-this.camera.left)/(this.camera.top-this.camera.bottom));e/t>1?(this.camera.left*=e/t,this.camera.right*=e/t):(this.camera.top*=e/t,this.camera.bottom*=e/t)}else this.camera.aspect=e;this.camera.updateProjectionMatrix()},turnPerspectiveCameraToOrthogonal:function(){var e=new l.Pq0(this.camera.position.x,this.camera.position.y,this.camera.position.z),t=this.camera.position.z*this.camera.fov*Math.PI/180;this.orthographicCamera.left=-this.camera.aspect*t/2,this.orthographicCamera.right=this.camera.aspect*t/2,this.orthographicCamera.top=t/2,this.orthographicCamera.bottom=-t/2,this.orthographicCamera.near=1,this.orthographicCamera.far=1e3,this.orthographicCamera.up=new l.Pq0(0,1,0),this.orthographicCamera.position.set(e.x,e.y,100),this.camera=this.orthographicCamera,this.camera.position.set(e.x,e.y,e.z),this.camera.updateProjectionMatrix(),this.renderer.camera=this.camera,this.composer.renderCamera=this.camera,this.renderPass.camera=this.camera,this.overlayRenderPass.camera=this.camera,this.outlinePassHighlight.renderCamera=this.camera,this.outlinePassSelected.renderCamera=this.camera,this.orbitControl.screenSpacePanning=!0,this.orbitControl.object=this.camera,this.orbitControl.target.set(e.x,e.y,0),this.orbitControl.mouseButtons={LEFT:l.kBv.PAN,MIDDLE:l.kBv.DOLLY,RIGHT:l.kBv.ROTATE},this.orbitControl.enableRotate=!1,this.orbitControl.update(),this.camera.position.set(e.x,e.y,e.z),this.camera.lookAt(new l.Pq0(e.x,e.y,0)),this.camera.updateProjectionMatrix(),this.nodesVisible=!0,this.renderNodes(),this.composer.render()},turnOrthogonalCameraToPerspective:function(){this.camera=this.perspectiveCamera;var e=(this.orthographicCamera.right-this.orthographicCamera.left)/(this.perspectiveCamera.fov*Math.PI/180)/this.perspectiveCamera.aspect;this.camera.position.set(this.orthographicCamera.position.x,this.orthographicCamera.position.y,e),this.camera.up=new l.Pq0(0,0,1),this.camera.updateProjectionMatrix(),this.renderer.camera=this.camera,this.composer.renderer.camera=this.camera,this.composer.renderCamera=this.camera,this.renderPass.camera=this.camera,this.overlayRenderPass.camera=this.camera,this.outlinePassHighlight.camera=this.camera,this.outlinePassHighlight.renderCamera=this.camera,this.outlinePassSelected.camera=this.camera,this.outlinePassSelected.renderCamera=this.camera,this.orbitControl.camera=this.camera,this.orbitControl.object=this.camera,this.orbitControl.target.set(this.camera.position.x,this.camera.position.y,0),this.orbitControl.screenSpacePanning=!1,this.orbitControl.enableRotate=!0,this.orbitControl.mouseButtons={LEFT:l.kBv.ROTATE,MIDDLE:l.kBv.DOLLY,RIGHT:l.kBv.PAN},this.orbitControl.update(),this.composer.render()},zoomIn3D:function(){if(this.camera.isOrthographicCamera)this.camera.zoom*=1.3,this.camera.updateProjectionMatrix(),this.render();else{var e=this.orbitControl.target,t=this.camera.position,r=(0,s.xt)(e,(0,s.VN)(1/1.5,(0,s.T2)(t,e)));r=[r.x,r.y,r.z],e=[e.x,e.y,e.z],this.setTweenTo({position:r,target:e,duration:500})}},zoomOut3D:function(){if(this.camera.isOrthographicCamera)this.camera.zoom/=1.3,this.camera.updateProjectionMatrix(),this.render();else{var e=this.orbitControl.target,t=this.camera.position,r=(0,s.xt)(e,(0,s.VN)(1.5,(0,s.T2)(t,e)));r=[r.x,r.y,r.z],e=[e.x,e.y,e.z],this.setTweenTo({position:r,target:e,duration:500})}},setPerspectiveCameraPositionTo:function(e,t){this.camera.position.set(e.x,e.y,e.z),this.camera.lookAt(t.x,t.y,t.z),this.camera.updateProjectionMatrix(),this.orbitControl&&this.orbitControl.update&&(this.orbitControl.target.set(t.x,t.y,t.z),this.orbitControl.update()),this.render()},sanitizeOrthographicCameraParameters:function(e){var t=e.left,r=e.right,n=e.top,o=e.bottom,a=e.zoom,i=e.x,s=e.y;if(t>r){var l=[r,t];t=l[0],r=l[1]}if(n<o){var u=[o,n];n=u[0],o=u[1]}return{left:t,right:r,top:n,bottom:o,zoom:a,x:i,y:s}},setOrthographicCameraPositionFromCameraParameters:function(e){if(e&&0!==Object.keys(e).length){var t=this.sanitizeOrthographicCameraParameters(e),r=t.x,n=t.y,o=t.left,a=t.right,i=t.top,s=t.bottom,u=t.zoom;this.camera.up=new l.Pq0(0,1,0),this.camera.left=o,this.camera.right=a,this.camera.top=i,this.camera.bottom=s,this.camera.near=1,this.camera.far=1e4,this.camera.zoom=u,this.camera.position.set(r,n,100),this.camera.lookAt(r,n,0),this.camera.updateProjectionMatrix(),this.orbitControl&&(this.orbitControl.maxPolarAngle=Math.PI/2,this.orbitControl.target.set(r,n,0),this.orbitControl.screenSpacePanning=!0,this.orbitControl.object=this.camera,this.orbitControl.mouseButtons={LEFT:l.kBv.PAN,MIDDLE:l.kBv.DOLLY,RIGHT:l.kBv.ROTATE},this.orbitControl.enableRotate=!1,this.orbitControl.update())}else this.setOrthographicCameraGlobalPosition()},setOrthographicCameraGlobalPosition:function(){var e=this.roofsBounds.xMin/1e3-k,t=this.roofsBounds.xMax/1e3+k,r=this.roofsBounds.yMax/1e3+k,n=this.roofsBounds.yMin/1e3-k,o=1,a=(this.roofsBounds.xMin+this.roofsBounds.xMax)/2e3,i=(this.roofsBounds.yMin+this.roofsBounds.yMax)/2e3;this.setOrthographicCameraPositionFromCameraParameters({left:e,right:t,top:r,bottom:n,zoom:o,x:a,y:i})},setCameraInitialPosition:function(){if(0!=this.roofs.length){var e=50,t=this.roofsBounds,r={x:(t.xMax+t.xMin)/2e3,y:(t.yMax+t.yMin)/2e3,z:0},n=Math.max((t.xMax-t.xMin)/2e3,(t.yMax-t.yMin)/2e3),o=5+n/Math.sin(e/2*Math.PI/180),a={x:0,y:0,z:o},i=(0,s.xt)(r,a),l=[i.x,i.y-o,i.z],u=[r.x,r.y,r.z];this.camera.position.set(l[0],l[1],l[2]),this.camera.updateProjectionMatrix(),this.orbitControl.target.set(u[0],u[1],u[2]),this.orbitControl&&this.orbitControl.update&&this.orbitControl.update()}},setCameraGlobalPosition:function(){if(0!=this.roofs.length)if(this.camera.isOrthographicCamera)this.setOrthographicCameraGlobalPosition();else{var e=50,t=this.roofsBounds,r={x:(t.xMax+t.xMin)/2e3,y:(t.yMax+t.yMin)/2e3,z:0},n=k+Math.max((t.xMax-t.xMin)/2e3,(t.yMax-t.yMin)/2e3),o=n/Math.sin(e/2*Math.PI/180),a={x:0,y:0,z:o},i=(0,s.xt)(r,a),l=[i.x,i.y-o,i.z],u=[r.x,r.y,r.z];this.setTweenTo({position:l,target:u,fov:e})}},setCameraGlobalVerticalPosition:function(){var e,t,r=10;if(0!=this.roofs.length){var n=this.roofsBounds,o={x:(n.xMax+n.xMin)/2e3,y:(n.yMax+n.yMin)/2e3,z:0},a=Math.max((n.xMax-n.xMin)/2e3,(n.yMax-n.yMin)/2e3),i=a/Math.sin(r/2*Math.PI/180)*2,l={x:0,y:0,z:i},u=(0,s.xt)(o,l);e=[u.x,u.y,u.z],t=[o.x,o.y,o.z]}else e=[0,0,300],t=[0,0,0];this.setTweenTo({position:e,target:t,fov:r,callback:this.turnPerspectiveCameraToOrthogonal})},setCameraOrthogonalTo:function(e){if(e){var t=e,r=t.meanPoint,n=[r.x/1e3,r.y/1e3,r.z/1e3],o=(0,s.xt)(t.meanPoint,(0,s.VN)(45e3,t.normalVector)),a=[o.x/1e3,o.y/1e3-1,o.z/1e3];this.setTweenTo({position:a,target:n})}},setCameraSideTo:function(e){if(e){var t=e,r=t.meanPoint,n=[r.x/1e3,r.y/1e3,r.z/1e3],o={x:-Math.cos((t.direction+45)*Math.PI/180),y:Math.sin((t.direction+45)*Math.PI/180),z:0},a=(0,s.xt)(t.meanPoint,(0,s.VN)(45e3,o)),i=[a.x/1e3,a.y/1e3,a.z/1e3+5];this.setTweenTo({position:i,target:n})}},setTweenTo:function(e){var t=this,r=e.position,n=e.target,o=e.fov,a=void 0===o?50:o,i=e.duration,u=void 0===i?2e3:i,c=e.callback,h=void 0===c?function(){}:c;if(zt().removeAll(),this.camera){var f={t:0},d={x:this.orbitControl.target.x,y:this.orbitControl.target.y,z:this.orbitControl.target.z},m=this.camera.fov,p={x:this.camera.position.x,y:this.camera.position.y,z:this.camera.position.z},y={x:r[0],y:r[1],z:r[2]};if(r[0]==n[0]&&r[1]==n[1]){var v=(0,s.JV)(y,p),g=Math.atan2(p.y-y.y,p.x-y.x);this.tweenCamera=new(zt().Tween)(f).to({t:1},u).easing(zt().Easing.Sinusoidal.Out).onUpdate((function(){var e=f.t;t.camera.fov=m+Math.sqrt(e)*(a-m);var r=v*(1-e),o=(g+Math.PI/2)*(1-e)-Math.PI/2,i=y.z+(1-e)*(p.z-y.z),s={x:y.x+r*Math.cos(o),y:y.y+r*Math.sin(o),z:i};t.camera.position.set(s.x,s.y,s.z),t.camera.up=new l.Pq0(0,Math.sin(e*Math.PI/2),Math.cos(e*Math.PI/2)),t.camera.updateProjectionMatrix();var u={x:d.x+e*(n[0]-d.x),y:d.y+e*(n[1]-d.y),z:d.z+e*(n[2]-d.z)};t.orbitControl.target.set(u.x,u.y,u.z),t.orbitControl&&t.orbitControl.update&&t.orbitControl.update()})).onComplete((function(){h()}))}else this.camera.up={x:0,y:0,z:1},this.tweenCamera=new(zt().Tween)(f).to({t:1},u).easing(zt().Easing.Sinusoidal.Out).onUpdate((function(){var e=f.t;t.camera.fov=m+e*e*(a-m),t.camera.updateProjectionMatrix();var r={x:y.x+(1-e)*(p.x-y.x),y:y.y+(1-e)*(p.y-y.y),z:y.z+(1-e)*(p.z-y.z)};t.camera.position.set(r.x,r.y,r.z);var o={x:d.x+e*(n[0]-d.x),y:d.y+e*(n[1]-d.y),z:d.z+e*(n[2]-d.z)};t.orbitControl.target.set(o.x,o.y,o.z),t.orbitControl&&t.orbitControl.update&&t.orbitControl.update()})).onComplete((function(){h()}));this.tweenCamera.start(),zt().update()}},animate:function(e){zt()&&zt().update(),this.animationFrameId=requestAnimationFrame(this.animate)}},beforeDestroy:function(){zt().removeAll(),cancelAnimationFrame(this.animationFrameId)}};function Bt(e){return Bt="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Bt(e)}function Gt(){/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */Gt=function(){return e};var e={},t=Object.prototype,r=t.hasOwnProperty,n=Object.defineProperty||function(e,t,r){e[t]=r.value},o="function"==typeof Symbol?Symbol:{},a=o.iterator||"@@iterator",i=o.asyncIterator||"@@asyncIterator",s=o.toStringTag||"@@toStringTag";function l(e,t,r){return Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{l({},"")}catch(T){l=function(e,t,r){return e[t]=r}}function u(e,t,r,o){var a=t&&t.prototype instanceof f?t:f,i=Object.create(a.prototype),s=new L(o||[]);return n(i,"_invoke",{value:x(e,r,s)}),i}function c(e,t,r){try{return{type:"normal",arg:e.call(t,r)}}catch(T){return{type:"throw",arg:T}}}e.wrap=u;var h={};function f(){}function d(){}function m(){}var p={};l(p,a,(function(){return this}));var y=Object.getPrototypeOf,v=y&&y(y(E([])));v&&v!==t&&r.call(v,a)&&(p=v);var g=m.prototype=f.prototype=Object.create(p);function b(e){["next","throw","return"].forEach((function(t){l(e,t,(function(e){return this._invoke(t,e)}))}))}function w(e,t){function o(n,a,i,s){var l=c(e[n],e,a);if("throw"!==l.type){var u=l.arg,h=u.value;return h&&"object"==Bt(h)&&r.call(h,"__await")?t.resolve(h.__await).then((function(e){o("next",e,i,s)}),(function(e){o("throw",e,i,s)})):t.resolve(h).then((function(e){u.value=e,i(u)}),(function(e){return o("throw",e,i,s)}))}s(l.arg)}var a;n(this,"_invoke",{value:function(e,r){function n(){return new t((function(t,n){o(e,r,t,n)}))}return a=a?a.then(n,n):n()}})}function x(e,t,r){var n="suspendedStart";return function(o,a){if("executing"===n)throw new Error("Generator is already running");if("completed"===n){if("throw"===o)throw a;return S()}for(r.method=o,r.arg=a;;){var i=r.delegate;if(i){var s=M(i,r);if(s){if(s===h)continue;return s}}if("next"===r.method)r.sent=r._sent=r.arg;else if("throw"===r.method){if("suspendedStart"===n)throw n="completed",r.arg;r.dispatchException(r.arg)}else"return"===r.method&&r.abrupt("return",r.arg);n="executing";var l=c(e,t,r);if("normal"===l.type){if(n=r.done?"completed":"suspendedYield",l.arg===h)continue;return{value:l.arg,done:r.done}}"throw"===l.type&&(n="completed",r.method="throw",r.arg=l.arg)}}}function M(e,t){var r=t.method,n=e.iterator[r];if(void 0===n)return t.delegate=null,"throw"===r&&e.iterator.return&&(t.method="return",t.arg=void 0,M(e,t),"throw"===t.method)||"return"!==r&&(t.method="throw",t.arg=new TypeError("The iterator does not provide a '"+r+"' method")),h;var o=c(n,e.iterator,t.arg);if("throw"===o.type)return t.method="throw",t.arg=o.arg,t.delegate=null,h;var a=o.arg;return a?a.done?(t[e.resultName]=a.value,t.next=e.nextLoc,"return"!==t.method&&(t.method="next",t.arg=void 0),t.delegate=null,h):a:(t.method="throw",t.arg=new TypeError("iterator result is not an object"),t.delegate=null,h)}function O(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function P(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function L(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(O,this),this.reset(!0)}function E(e){if(e){var t=e[a];if(t)return t.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var n=-1,o=function t(){for(;++n<e.length;)if(r.call(e,n))return t.value=e[n],t.done=!1,t;return t.value=void 0,t.done=!0,t};return o.next=o}}return{next:S}}function S(){return{value:void 0,done:!0}}return d.prototype=m,n(g,"constructor",{value:m,configurable:!0}),n(m,"constructor",{value:d,configurable:!0}),d.displayName=l(m,s,"GeneratorFunction"),e.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===d||"GeneratorFunction"===(t.displayName||t.name))},e.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,m):(e.__proto__=m,l(e,s,"GeneratorFunction")),e.prototype=Object.create(g),e},e.awrap=function(e){return{__await:e}},b(w.prototype),l(w.prototype,i,(function(){return this})),e.AsyncIterator=w,e.async=function(t,r,n,o,a){void 0===a&&(a=Promise);var i=new w(u(t,r,n,o),a);return e.isGeneratorFunction(r)?i:i.next().then((function(e){return e.done?e.value:i.next()}))},b(g),l(g,s,"Generator"),l(g,a,(function(){return this})),l(g,"toString",(function(){return"[object Generator]"})),e.keys=function(e){var t=Object(e),r=[];for(var n in t)r.push(n);return r.reverse(),function e(){for(;r.length;){var n=r.pop();if(n in t)return e.value=n,e.done=!1,e}return e.done=!0,e}},e.values=E,L.prototype={constructor:L,reset:function(e){if(this.prev=0,this.next=0,this.sent=this._sent=void 0,this.done=!1,this.delegate=null,this.method="next",this.arg=void 0,this.tryEntries.forEach(P),!e)for(var t in this)"t"===t.charAt(0)&&r.call(this,t)&&!isNaN(+t.slice(1))&&(this[t]=void 0)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(e){if(this.done)throw e;var t=this;function n(r,n){return i.type="throw",i.arg=e,t.next=r,n&&(t.method="next",t.arg=void 0),!!n}for(var o=this.tryEntries.length-1;o>=0;--o){var a=this.tryEntries[o],i=a.completion;if("root"===a.tryLoc)return n("end");if(a.tryLoc<=this.prev){var s=r.call(a,"catchLoc"),l=r.call(a,"finallyLoc");if(s&&l){if(this.prev<a.catchLoc)return n(a.catchLoc,!0);if(this.prev<a.finallyLoc)return n(a.finallyLoc)}else if(s){if(this.prev<a.catchLoc)return n(a.catchLoc,!0)}else{if(!l)throw new Error("try statement without catch or finally");if(this.prev<a.finallyLoc)return n(a.finallyLoc)}}}},abrupt:function(e,t){for(var n=this.tryEntries.length-1;n>=0;--n){var o=this.tryEntries[n];if(o.tryLoc<=this.prev&&r.call(o,"finallyLoc")&&this.prev<o.finallyLoc){var a=o;break}}a&&("break"===e||"continue"===e)&&a.tryLoc<=t&&t<=a.finallyLoc&&(a=null);var i=a?a.completion:{};return i.type=e,i.arg=t,a?(this.method="next",this.next=a.finallyLoc,h):this.complete(i)},complete:function(e,t){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&t&&(this.next=t),h},finish:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.finallyLoc===e)return this.complete(r.completion,r.afterLoc),P(r),h}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.tryLoc===e){var n=r.completion;if("throw"===n.type){var o=n.arg;P(r)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(e,t,r){return this.delegate={iterator:E(e),resultName:t,nextLoc:r},"next"===this.method&&(this.arg=void 0),h}},e}function Zt(e){return Ut(e)||Ht(e)||Wt(e)||Vt()}function Vt(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function Ht(e){if("undefined"!==typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}function Ut(e){if(Array.isArray(e))return Xt(e)}function Yt(e,t,r,n,o,a,i){try{var s=e[a](i),l=s.value}catch(u){return void r(u)}s.done?t(l):Promise.resolve(l).then(n,o)}function $t(e){return function(){var t=this,r=arguments;return new Promise((function(n,o){var a=e.apply(t,r);function i(e){Yt(a,n,o,i,s,"next",e)}function s(e){Yt(a,n,o,i,s,"throw",e)}i(void 0)}))}}function qt(e,t){var r="undefined"!==typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=Wt(e))||t&&e&&"number"===typeof e.length){r&&(e=r);var n=0,o=function(){};return{s:o,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,i=!0,s=!1;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return i=e.done,e},e:function(e){s=!0,a=e},f:function(){try{i||null==r.return||r.return()}finally{if(s)throw a}}}}function Wt(e,t){if(e){if("string"===typeof e)return Xt(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?Xt(e,t):void 0}}function Xt(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function Jt(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function Qt(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?Jt(Object(r),!0).forEach((function(t){Kt(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Jt(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function Kt(e,t,r){return t=er(t),t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function er(e){var t=tr(e,"string");return"symbol"===Bt(t)?t:String(t)}function tr(e,t){if("object"!==Bt(e)||null===e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!==Bt(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}var rr={mixins:[Rt,Nt],data:function(){return{lastTic:1e4*(new Date).getTime(),lastGeometryEventIdDone:-1,backgroundImagesizeInMm:null}},created:function(){this.meshes={baseMeshes:{},roofMeshes:{},flatRoofMeshes:{},obstacleMeshes:{},panelsMeshes:{},nodeMeshes:null,edgeMeshes:{},roofMarginMeshes:{},moduleFieldsMeshes:{},tileMeshes:{}}},mounted:function(){this.lastGeometryEventIdDone=this.lastGeometryEventId},computed:Qt(Qt(Qt({},(0,o.aH)({wallColor:function(e){return e.threeDModule.wallColor},selectedMapLayer:function(e){return e.threeDModule.selectedMapLayer},panelOpacity:function(e){return e.threeDModule.panelOpacity},pvDataMemo:function(e){return e.threeDModule.pvDataMemo}})),(0,o.L8)({selectedTool:"getSelectedTool",roofs:"getRoofs",lastGeometryEventId:"getLastGeometryEventId",roofsBounds:"getRoofsBounds",geometryEvents:"getGeometryEvents"})),{},{layerKey:function(){return this.selectedMapLayer?this.selectedMapLayer.key:null},polygonIds:function(){return this.polygons.map((function(e){return e.id}))},edgeIds:function(){return this.edges.map((function(e){return e.id}))},nodeIds:function(){return this.nodes.map((function(e){return e.id}))},setGlobalPositionRenderNeeded:function(){var e=this;return!!this.geometryEvents.find((function(t){return t.id>e.lastGeometryEventIdDone&&"setCameraGlobalPosition"==t.name}))},setInitialPositionRenderNeeded:function(){var e=this;return!!this.geometryEvents.find((function(t){return t.id>e.lastGeometryEventIdDone&&"setInitialPositionRenderNeeded"==t.name}))},fullRenderNeeded:function(){var e=this;return!!this.geometryEvents.find((function(t){return t.id>e.lastGeometryEventIdDone&&"full"==t.name}))},geometryEventsToDo:function(){var e=this;return this.geometryEvents.filter((function(t){return t.id>e.lastGeometryEventIdDone}))},geometryEventsToDoWithoutFull:function(){return this.geometryEventsToDo.filter((function(e){return"full"!=e.name}))}}),methods:{refreshRendering:function(e){var t=[];this.fullRenderNeeded&&(t=this.renderingMethodsByEvent({name:"full"}));var r,n=qt(this.geometryEventsToDoWithoutFull);try{for(n.s();!(r=n.n()).done;){var o,a=r.value,i=qt(this.renderingMethodsByEvent(a));try{for(i.s();!(o=i.n()).done;){var s=o.value;t.map((function(e){return e.name})).includes(s.name)||t.push(s)}}catch(l){i.e(l)}finally{i.f()}}}catch(l){n.e(l)}finally{n.f()}t.length&&(this.renderMethods(t),this.render()),this.lastGeometryEventIdDone=this.lastGeometryEventId},renderingMethodsByEvent:function(e){var t=e.name,r=e.params,n=[];switch(t){case"zoomIn3D":n.push({name:"zoomIn3D",method:this.zoomIn3D,arg:[]});break;case"zoomOut3D":n.push({name:"zoomOut3D",method:this.zoomOut3D,arg:[]});break;case"set3DCameraGlobalPosition":case"setCameraGlobalPosition":n.push({name:"setCameraGlobalPosition",method:this.setCameraGlobalPosition,arg:[]});break;case"setCameraInitialPosition":n.push({name:"setCameraInitialPosition",method:this.setCameraInitialPosition,arg:[]});break;case"toolChange":n.push({name:"renderEdges",method:this.renderEdges,arg:[]});case"marginIsSameChange":case"marginDifferentChange":case"marginSameChange":n.push({name:"renderRoofsMargin",method:this.renderRoofsMargin,arg:[]});break;case"full":case"reset":case"removeNodes":case"removeEdges":case"translate":this.removeConstructionPolylineMesh&&n.push({name:"removeConstructionPolyline",method:this.removeConstructionPolylineMesh,arg:[]}),n.push({name:"renderGeometry",method:this.renderGeometry,arg:[]}),n.push({name:"showPanels",method:this.showPanels,arg:[]});break;case"moveBuilding":n.push({name:"renderRoofs",method:this.renderRoofs,arg:[]}),n.push({name:"renderEdges",method:this.renderEdges,arg:[]}),n.push({name:"renderBase",method:this.renderBase,arg:[]}),n.push({name:"renderObstacles",method:this.renderObstacles,arg:[]});break;case"updateOutlineXY":"roof"==r.layer?(n.push({name:"renderRoofs",method:this.renderRoofs,arg:[]}),n.push({name:"renderEdges",method:this.renderEdges,arg:[]}),n.push({name:"renderBase",method:this.renderBase,arg:[]}),n.push({name:"renderObstacles",method:this.renderObstacles,arg:[]}),n.push({name:"renderNodes",method:this.renderNodes,arg:[]})):"obstacle"==r.layer&&(n.push({name:"renderBase",method:this.renderBase,arg:[]}),n.push({name:"renderRoofs",method:this.renderRoofs,arg:[]}),n.push({name:"renderObstacles",method:this.renderObstacles,arg:[]})),n.push({name:"renderRoofsMargin",method:this.renderRoofsMargin,arg:[]});break;case"removePanels":case"removeModuleField":case"textureLoaded":case"alignOnSelectedEdge":case"newModuleField":case"reactivatePanel":case"deactivatePanels":case"changePanelOpacity":n.push({name:"renderPanels",method:this.renderPanels,arg:[]});break;case"addPointToPolygon":case"removeObstacle":case"removeRoof":case"newObstacle":case"newRoofs":case"moveNodesZ":case"solveFlatness":n.push({name:"renderEdges",method:this.renderEdges,arg:[]}),n.push({name:"renderBuilding",method:this.renderBuilding,arg:[]});case"selectedRoofChange":case"selectedObstacleChange":n.push({name:"renderFlatRoofs",method:this.renderFlatRoofs,arg:[]}),n.push({name:"renderRoofsMargin",method:this.renderRoofsMargin,arg:[]});break;case"selectedModuleFieldChange":n.push({name:"renderEdges",method:this.renderEdges,arg:[]});break;case"subHandleSelectionChange":case"masterHandleSelectionChange":case"unselectAllHandle":n.push({name:"renderBuilding",method:this.renderBuilding,arg:[]});break;case"parallelChange":case"obstacleHeightChange":n.push({name:"renderObstacles",method:this.renderObstacles,arg:[]});break;case"roofInclineDirectionChange":n.push({name:"renderRoofs",method:this.renderRoofs,arg:[]}),n.push({name:"renderEdges",method:this.renderEdges,arg:[]}),n.push({name:"renderBase",method:this.renderBase,arg:[]}),n.push({name:"renderObstacles",method:this.renderObstacles,arg:[]});break;case"backgroundTextureChange":n.push({name:"renderTiles",method:this.renderTiles,arg:[]});break;case"changeMapProjection":n.push({name:"renderTiles",method:this.debouncedRenderTiles,arg:[]});break;case"hidePanels":n.push({name:"hidePanels",method:this.hidePanels,arg:[]});break;case"showPanels":n.push({name:"showPanels",method:this.showPanels,arg:[]});break;case"removeImageOverlay":case"changeImageOverlay":case"updateImageOverlay":n.push({name:"updateProjectionMaterials",method:this.updateProjectionMaterials,arg:[]});break;case"clearPanelFromChangingRoofs":n.push({name:"clearPanelsFromChangingRoofs",method:this.clearPanelsFromChangingRoofs,arg:[r.roofIds]});break;case"selectedPanelChange":n.push({name:"renderModuleFields",method:this.renderModuleFields,arg:[]});break;case"removeConstruction":n.push({name:"removeConstructionPolyline",method:this.removeConstructionPolyline,arg:[]});break}return n},renderMethods:function(e){var t=this;return $t(Gt().mark((function r(){var n,o,a,i;return Gt().wrap((function(r){while(1)switch(r.prev=r.next){case 0:r.prev=0,o=qt(e),r.prev=2,o.s();case 4:if((a=o.n()).done){r.next=12;break}if(i=a.value,n=i.method,!i.method){r.next=10;break}return r.next=10,i.method.apply(i,Zt(i.arg));case 10:r.next=4;break;case 12:r.next=17;break;case 14:r.prev=14,r.t0=r["catch"](2),o.e(r.t0);case 17:return r.prev=17,o.f(),r.finish(17);case 20:t.render(),r.next=26;break;case 23:r.prev=23,r.t1=r["catch"](0),console.log({error:r.t1,method:n});case 26:case"end":return r.stop()}}),r,null,[[0,23],[2,14,17,20]])})))()},renderGeometry:function(){this.renderRealisticGeometry(),this.renderRoofsMargin(),this.renderNodes(),this.renderEdges(),this.renderFlatRoofs()},renderRealisticGeometry:function(){this.renderBuilding(),this.renderModuleFields(),this.renderPanels()},renderBuilding:function(){this.renderBase(),this.renderRoofs(),this.renderObstacles(),this.updateProjectionMaterials()},getCanvasOffset:function(){if(!this.$refs.canvas3DContainer)return{top:0,left:0};var e=this.$refs.canvas3DContainer.getBoundingClientRect(),t=document.body,r=document.documentElement,n=window.pageYOffset||r.scrollTop||t.scrollTop,o=window.pageXOffset||r.scrollLeft||t.scrollLeft,a=r.clientTop||t.clientTop||0,i=r.clientLeft||t.clientLeft||0,s=e.top+n-a,l=e.left+o-i;return t=null,r=null,e=null,{top:Math.round(s),left:Math.round(l)}}},watch:{pvDataMemo:{handler:function(){this.loadNewPanelTextures()}},"material.panel":{handler:function(){this.renderPanels()}},geometryEventsToDo:function(e){e.length>0&&this.refreshRendering()}},beforeDestroy:function(){this.clearThreeObjects(this.scene),this.renderer&&(this.renderer.clear(),this.renderer.dispose()),this.orbitControl&&this.orbitControl.dispose&&this.orbitControl.dispose(),this.renderer=null,this.scene=null,this.camera=null,this.cameraProjection=null,Object.values(this.material).forEach((function(e){e&&e.dispose&&e.dispose()})),this.material=null,this.orbitControl=null,this.raycaster=null,this.loader=null,this.provider=null}},nr={created:function(){this.scene=new l.Z58,this.renderer=new l.JeP({antialias:!0,preserveDrawingBuffer:!0,powerPreference:"high-performance"}),this.raycaster=new l.tBo,this.loader=new l.Tap}},or={data:function(){return{cameraProjection:null,orbitControl:null,canvasHeight:null,canvasWidth:null,canvasOffset:{x:0,y:0},tweenCamera:null,tweenOrbit:null,isReady:{texturesLoaded:0,texturesToLoad:0,threeMap:!1,geometry:!1,camera:!1},screenshotable:!1,DOMElement:null}},mixins:[nr,rr,B],methods:{initialiseThree:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.isInteractive,r=void 0===t||t,n=e.isPerspectiveCamera,o=void 0===n||n,a=e.DOMElement,i=void 0===a?this.$refs.canvas3DContainer:a;console.log("initialiseThree"),this.DOMElement=i,this.scene||(this.scene=new l.Z58),this.scene.background=new l.Q1f(11579568),this.initialiseRenderer(i),this.initialiseCameras(o),this.initialiseLights(),this.initialiseSky(),this.initialiseThreeMap(),r&&this.initialiseControl(o),this.onWindowResize(),window.addEventListener("resize",this.onWindowResize,!1)},initialiseRenderer:function(){this.resizeRenderer(this.DOMElement),this.renderer&&(this.renderer.setPixelRatio(window.devicePixelRatio),this.renderer.toneMappingExposure=.01,this.DOMElement.appendChild(this.renderer.domElement))},resizeRenderer:function(){if(this.DOMElement){var e=this.DOMElement.clientWidth,t=this.DOMElement.clientHeight;this.renderer.domElement.style.width=e+"px",this.renderer.domElement.style.height=t+"px",this.renderer.setSize(e,t,!1),this.renderer.setViewport(0,0,e,t)}},initialiseControl:function(e){var t=this;this.orbitControl=new u.N(this.camera,this.renderer.domElement),e?(this.orbitControl.screenSpacePanning=!1,this.orbitControl.maxPolarAngle=.95*Math.PI/2,this.orbitControl.mouseButtons={RIGHT:l.kBv.PAN,LEFT:l.kBv.ROTATE,MIDDLE:l.kBv.DOLLY}):(this.orbitControl.screenSpacePanning=!0,this.orbitControl.maxPolarAngle=Math.PI/2,this.orbitControl.enableRotate=!1,this.orbitControl.mouseButtons={LEFT:l.kBv.PAN,MIDDLE:l.kBv.DOLLY,RIGHT:l.kBv.ROTATE}),this.orbitControl.addEventListener("change",(function(){t.orbitControlChange()}))},initialiseLights:function(){var e=new l.$p8(15790320,.5),t=new l.ZyN(16777215,.5);t.position.set(0,1e3,500);var r=new l.ZyN(16777215,.5);r.position.set(0,-1e3,500),this.scene.add(e),this.scene.add(t),this.scene.add(r)},initialiseSky:function(){var e=new c.m;e.scale.setScalar(45e4),this.scene.add(e),this.clearThreeObjects(e);var t=new l.Pq0,r=e.material.uniforms;r.up.value=new l.Pq0(0,0,1),r["turbidity"].value=20,r["rayleigh"].value=.06,r["mieCoefficient"].value=.01,r["mieDirectionalG"].value=.1;var n=10,o=-20,a=l.cj9.degToRad(90-n),i=l.cj9.degToRad(o);t.setFromSphericalCoords(1,a,i),r["sunPosition"].value.copy(t),t=null},initialiseThreeMap:function(){this.selectedMapLayer||this.initialiseMapLayer(),this.provider=new j("",this.selectedMapLayer.key),this.renderTiles()},initialiseMapLayer:function(){if(this.layers&&0!=this.layers.length||(this.layers=p()),this.setSelectedMapLayer(null),null===this.selectedMapLayer)for(var e in this.layers)this.globalProjectProperties&&this.layers[e].key===this.globalProjectProperties.map_type&&this.setSelectedMapLayer(this.layers[e]);null===this.selectedMapLayer&&this.setSelectedMapLayer(this.layers[7])},render:function(){this.composer?this.composer.render():this.renderer&&(this.renderer.clear(),this.renderer.render(this.scene,this.camera))},orbitControlChange:function(){this.render()},onWindowResize:function(){this.orbitControl&&this.orbitControl.update(),this.canvasOffset=this.getCanvasOffset(),this.canvasHeight=this.DOMElement.clientHeight,this.canvasWidth=this.DOMElement.clientWidth,this.resizeRenderer(),this.setCameraAspectRatio(),this.render()},onCanvasResize:function(){var e=this.renderer.domElement,t=this.DOMElement.clientWidth,r=this.DOMElement.clientHeight;e.width===t&&e.height===r||(this.resizeRenderer(),this.composer&&(this.composer.setPixelRatio(Math.min(window.devicePixelRatio,2)),this.composer.setViewport&&this.composer.setViewport(0,0,t,r)),this.setCameraAspectRatio(),this.render())}},beforeDestroy:function(){this.DOMElement=null,window.removeEventListener("resize",this.onWindowResize,!1)}};function ar(e){return ar="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},ar(e)}function ir(e){return cr(e)||ur(e)||lr(e)||sr()}function sr(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function lr(e,t){if(e){if("string"===typeof e)return hr(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?hr(e,t):void 0}}function ur(e){if("undefined"!==typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}function cr(e){if(Array.isArray(e))return hr(e)}function hr(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function fr(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function dr(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?fr(Object(r),!0).forEach((function(t){mr(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):fr(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function mr(e,t,r){return t=pr(t),t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function pr(e){var t=yr(e,"string");return"symbol"===ar(t)?t:String(t)}function yr(e,t){if("object"!==ar(e)||null===e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!==ar(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}function vr(){/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */vr=function(){return e};var e={},t=Object.prototype,r=t.hasOwnProperty,n=Object.defineProperty||function(e,t,r){e[t]=r.value},o="function"==typeof Symbol?Symbol:{},a=o.iterator||"@@iterator",i=o.asyncIterator||"@@asyncIterator",s=o.toStringTag||"@@toStringTag";function l(e,t,r){return Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{l({},"")}catch(T){l=function(e,t,r){return e[t]=r}}function u(e,t,r,o){var a=t&&t.prototype instanceof f?t:f,i=Object.create(a.prototype),s=new L(o||[]);return n(i,"_invoke",{value:x(e,r,s)}),i}function c(e,t,r){try{return{type:"normal",arg:e.call(t,r)}}catch(T){return{type:"throw",arg:T}}}e.wrap=u;var h={};function f(){}function d(){}function m(){}var p={};l(p,a,(function(){return this}));var y=Object.getPrototypeOf,v=y&&y(y(E([])));v&&v!==t&&r.call(v,a)&&(p=v);var g=m.prototype=f.prototype=Object.create(p);function b(e){["next","throw","return"].forEach((function(t){l(e,t,(function(e){return this._invoke(t,e)}))}))}function w(e,t){function o(n,a,i,s){var l=c(e[n],e,a);if("throw"!==l.type){var u=l.arg,h=u.value;return h&&"object"==ar(h)&&r.call(h,"__await")?t.resolve(h.__await).then((function(e){o("next",e,i,s)}),(function(e){o("throw",e,i,s)})):t.resolve(h).then((function(e){u.value=e,i(u)}),(function(e){return o("throw",e,i,s)}))}s(l.arg)}var a;n(this,"_invoke",{value:function(e,r){function n(){return new t((function(t,n){o(e,r,t,n)}))}return a=a?a.then(n,n):n()}})}function x(e,t,r){var n="suspendedStart";return function(o,a){if("executing"===n)throw new Error("Generator is already running");if("completed"===n){if("throw"===o)throw a;return S()}for(r.method=o,r.arg=a;;){var i=r.delegate;if(i){var s=M(i,r);if(s){if(s===h)continue;return s}}if("next"===r.method)r.sent=r._sent=r.arg;else if("throw"===r.method){if("suspendedStart"===n)throw n="completed",r.arg;r.dispatchException(r.arg)}else"return"===r.method&&r.abrupt("return",r.arg);n="executing";var l=c(e,t,r);if("normal"===l.type){if(n=r.done?"completed":"suspendedYield",l.arg===h)continue;return{value:l.arg,done:r.done}}"throw"===l.type&&(n="completed",r.method="throw",r.arg=l.arg)}}}function M(e,t){var r=t.method,n=e.iterator[r];if(void 0===n)return t.delegate=null,"throw"===r&&e.iterator.return&&(t.method="return",t.arg=void 0,M(e,t),"throw"===t.method)||"return"!==r&&(t.method="throw",t.arg=new TypeError("The iterator does not provide a '"+r+"' method")),h;var o=c(n,e.iterator,t.arg);if("throw"===o.type)return t.method="throw",t.arg=o.arg,t.delegate=null,h;var a=o.arg;return a?a.done?(t[e.resultName]=a.value,t.next=e.nextLoc,"return"!==t.method&&(t.method="next",t.arg=void 0),t.delegate=null,h):a:(t.method="throw",t.arg=new TypeError("iterator result is not an object"),t.delegate=null,h)}function O(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function P(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function L(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(O,this),this.reset(!0)}function E(e){if(e){var t=e[a];if(t)return t.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var n=-1,o=function t(){for(;++n<e.length;)if(r.call(e,n))return t.value=e[n],t.done=!1,t;return t.value=void 0,t.done=!0,t};return o.next=o}}return{next:S}}function S(){return{value:void 0,done:!0}}return d.prototype=m,n(g,"constructor",{value:m,configurable:!0}),n(m,"constructor",{value:d,configurable:!0}),d.displayName=l(m,s,"GeneratorFunction"),e.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===d||"GeneratorFunction"===(t.displayName||t.name))},e.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,m):(e.__proto__=m,l(e,s,"GeneratorFunction")),e.prototype=Object.create(g),e},e.awrap=function(e){return{__await:e}},b(w.prototype),l(w.prototype,i,(function(){return this})),e.AsyncIterator=w,e.async=function(t,r,n,o,a){void 0===a&&(a=Promise);var i=new w(u(t,r,n,o),a);return e.isGeneratorFunction(r)?i:i.next().then((function(e){return e.done?e.value:i.next()}))},b(g),l(g,s,"Generator"),l(g,a,(function(){return this})),l(g,"toString",(function(){return"[object Generator]"})),e.keys=function(e){var t=Object(e),r=[];for(var n in t)r.push(n);return r.reverse(),function e(){for(;r.length;){var n=r.pop();if(n in t)return e.value=n,e.done=!1,e}return e.done=!0,e}},e.values=E,L.prototype={constructor:L,reset:function(e){if(this.prev=0,this.next=0,this.sent=this._sent=void 0,this.done=!1,this.delegate=null,this.method="next",this.arg=void 0,this.tryEntries.forEach(P),!e)for(var t in this)"t"===t.charAt(0)&&r.call(this,t)&&!isNaN(+t.slice(1))&&(this[t]=void 0)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(e){if(this.done)throw e;var t=this;function n(r,n){return i.type="throw",i.arg=e,t.next=r,n&&(t.method="next",t.arg=void 0),!!n}for(var o=this.tryEntries.length-1;o>=0;--o){var a=this.tryEntries[o],i=a.completion;if("root"===a.tryLoc)return n("end");if(a.tryLoc<=this.prev){var s=r.call(a,"catchLoc"),l=r.call(a,"finallyLoc");if(s&&l){if(this.prev<a.catchLoc)return n(a.catchLoc,!0);if(this.prev<a.finallyLoc)return n(a.finallyLoc)}else if(s){if(this.prev<a.catchLoc)return n(a.catchLoc,!0)}else{if(!l)throw new Error("try statement without catch or finally");if(this.prev<a.finallyLoc)return n(a.finallyLoc)}}}},abrupt:function(e,t){for(var n=this.tryEntries.length-1;n>=0;--n){var o=this.tryEntries[n];if(o.tryLoc<=this.prev&&r.call(o,"finallyLoc")&&this.prev<o.finallyLoc){var a=o;break}}a&&("break"===e||"continue"===e)&&a.tryLoc<=t&&t<=a.finallyLoc&&(a=null);var i=a?a.completion:{};return i.type=e,i.arg=t,a?(this.method="next",this.next=a.finallyLoc,h):this.complete(i)},complete:function(e,t){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&t&&(this.next=t),h},finish:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.finallyLoc===e)return this.complete(r.completion,r.afterLoc),P(r),h}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var r=this.tryEntries[t];if(r.tryLoc===e){var n=r.completion;if("throw"===n.type){var o=n.arg;P(r)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(e,t,r){return this.delegate={iterator:E(e),resultName:t,nextLoc:r},"next"===this.method&&(this.arg=void 0),h}},e}function gr(e,t,r,n,o,a,i){try{var s=e[a](i),l=s.value}catch(u){return void r(u)}s.done?t(l):Promise.resolve(l).then(n,o)}function br(e){return function(){var t=this,r=arguments;return new Promise((function(n,o){var a=e.apply(t,r);function i(e){gr(a,n,o,i,s,"next",e)}function s(e){gr(a,n,o,i,s,"throw",e)}i(void 0)}))}}var wr={name:"ThreeCanvas",data:function(){return{layers:null,provider:null,pointer:{x:0,y:0},areModuleFieldsVisible:!1,areUserDeactivatedPanelsVisible:!1,animationFrameId:null,intervalId:null}},beforeDestroy:function(){clearInterval(this.intervalId),cancelAnimationFrame(this.animationFrameId)},mixins:[or],created:function(){console.log("created ThreeCanvasViewer"),this.scene=new THREE.Scene,this.renderer=new THREE.WebGLRenderer({antialias:!0,preserveDrawingBuffer:!0}),this.raycaster=new THREE.Raycaster,this.loader=new THREE.TextureLoader},mounted:function(){var e=this;return br(vr().mark((function t(){var r,n;return vr().wrap((function(t){while(1)switch(t.prev=t.next){case 0:return t.next=2,e.hydrateData(e.geometryData);case 2:return r=!0,e.useCustomCamera&&e.cameraPerspectiveSettings&&(r="perspective"==e.cameraPerspectiveSettings.viewType),e.initialiseThree({isInteractive:e.isInteractive,isPerspectiveCamera:r,DOMElement:e.$refs.canvas3DContainer}),t.next=7,e.loadPanelsTexture();case 7:return e.renderRealisticGeometry(),e.isBuildingVisible||e.hideBuildings(),e.$eventBus.$on("on-roofSelected",(function(t){return e.setCameraOrthogonalTo(t)})),t.next=12,e.updateProjectionMaterials();case 12:e.useCustomCamera?r?e.setPerspectiveCameraPositionTo(e.cameraPerspectiveSettings.position,e.cameraPerspectiveSettings.target):e.setOrthographicCameraPositionFromCameraParameters(e.cameraPerspectiveSettings.cameraParameters):(n=e.polygons.find((function(t){return t.id==e.uuid})),e.setCamera(n,e.view_mode)),e.isReady.geometry=!0,e.render(),e.intervalId=setInterval((function(){return e.render()}),500);case 16:case"end":return t.stop()}}),t)})))()},computed:dr(dr({},(0,o.aH)({geometryData:function(e){return e.threeDModule.geometryData},uuid:function(e){return e.threeDModule.uuid},view_mode:function(e){return e.threeDModule.view_mode},useCustomCamera:function(e){return e.threeDModule.useCustomCamera},cameraPerspectiveSettings:function(e){return e.threeDModule.cameraPerspectiveSettings},isInteractive:function(e){return e.threeDModule.isInteractive},isBuildingVisible:function(e){return e.threeDModule.isBuildingVisible},imageOverlay:function(e){return e.threeDModule.imageOverlay}})),(0,o.L8)({polygons:"getPolygons",edges:"getEdges3D",nodes:"getNodes3D",mapConfig:"getMapConfig",roofsBounds:"getRoofsBounds",layoutSettings:"getLayoutSettings",roofs:"getRoofs",obstacles:"getObstacles",moduleFields:"getModuleFields",panels:"getPanels",userDeactivatedPanels:"getUserDeactivatedPanels"})),methods:dr(dr(dr({},(0,o.i0)({hydrateData:"hydrateData"})),(0,o.PY)({setSelectedMapLayer:"mutate_selectedMapLayer"})),{},{hideEdges:function(){Object.values(this.meshes.edgeMeshes).forEach((function(e){return e.visible=!1}))},hideWarningRoofs:function(){Object.values(this.meshes.flatRoofMeshes).forEach((function(e){return e.visible=!1}))},hideBuildings:function(){Object.values(this.meshes.roofMeshes).forEach((function(e){return e.visible=!1})),Object.values(this.meshes.baseMeshes).forEach((function(e){return e.visible=!1})),Object.values(this.meshes.obstacleMeshes).forEach((function(e){return e.visible=!1})),Object.values(this.meshes.edgeMeshes).forEach((function(e){return e.visible=!1})),Object.values(this.meshes.panelsMeshes).forEach((function(e){return e.visible=!1})),this.hideMesh(this.mergedBaseMesh),this.hideMesh(this.mergedRoofMesh),this.hideMesh(this.mergedObstacleMesh),this.hideMesh(this.mergedObstacleSideMesh),this.hidePanels()},hideMesh:function(e){e&&(e.visible=!1)},setCamera:function(e,t){var r=.2;if(e&&"global"!=t){if(e){var n,o,a,i,l=e,u=45;if("roof"==l.layer?a=this.meshes.roofMeshes[l.id]:"moduleField"==l.layer&&(a=this.meshes.moduleFieldsMeshes[l.id]),a){var c=a.geometry;null===c.boundingSphere&&c.computeBoundingSphere(),i=[c.boundingSphere.center.x,c.boundingSphere.center.y,c.boundingSphere.center.z];var h=c.boundingSphere.radius;u=5+h/Math.sin(this.camera.fov/2*Math.PI/180)}l=(0,s.Nd)(l);l.meanPoint;var f={x:0,y:0,z:0},d=0==l.normalVector.x&&0==l.normalVector.y;if("ortho"==t)f=(0,s.VN)(1e3*u,l.normalVector);else if("top"==t){var m,p,y=l.getBounds();y.xMin-=1e3,y.xMax+=1e3,y.yMin-=1e3,y.yMax+=1e3;var v=[0,0,100],g=[0,0,0],b=this.orthographicBounds(y,r),w=b.xMin,x=b.xMax,M=b.yMin,O=b.yMax;(m=this.orthographicCamera.position).set.apply(m,v),(p=this.orthographicCamera).lookAt.apply(p,g),this.orthographicCamera.left=w/1e3,this.orthographicCamera.right=x/1e3,this.orthographicCamera.top=O/1e3,this.orthographicCamera.bottom=M/1e3,this.orthographicCamera.updateProjectionMatrix()}else{var P=dr(dr({},l.normalVector),{},{z:0});0==P.x&&0==P.y&&(P.y=1),P=(0,s.hF)(P),f=(0,s.VN)(1e3*u,P)}var L=(0,s.xt)(l.meanPoint,f);d&&(L.z+=2e3);var E=[L.x/1e3,L.y/1e3-1,L.z/1e3];(n=this.camera.position).set.apply(n,E),(o=this.camera).lookAt.apply(o,ir(i)),this.camera.updateProjectionMatrix(),this.isReady.camera=!0}}else{var S,T,j=this.roofsBounds,_=[0,0,100],C=[0,0,0];(S=this.orthographicCamera.position).set.apply(S,_),(T=this.orthographicCamera).lookAt.apply(T,C),this.isReady.camera=!0;var D=this.orthographicBounds(j,r),k=D.xMin,I=D.xMax,A=D.yMin,R=D.yMax;this.orthographicCamera.left=k/1e3,this.orthographicCamera.right=I/1e3,this.orthographicCamera.top=R/1e3,this.orthographicCamera.bottom=A/1e3,this.orthographicCamera.updateProjectionMatrix()}},orthographicBounds:function(e,t){var r,n,o,a,i=this.canvasHeight/this.canvasWidth,s=(e.xMax-e.xMin)*(1+t),l=(e.yMax-e.yMin)*(1+t),u=l/s,c=(e.xMax+e.xMin)/2,h=(e.yMax+e.yMin)/2;return i<u?(r=c-l/(2*i),n=c+l/(2*i),o=h-l/2,a=h+l/2):(r=c-s/2,n=c+s/2,o=h-s*i/2,a=h+s*i/2),{xMin:r,xMax:n,yMin:o,yMax:a}},animate:function(){this.render(),this.animationFrameId=requestAnimationFrame(this.animate)},render:function(){this.renderer.clear(),["top","global"].includes(this.view_mode)&&!this.useCustomCamera?this.renderer.render(this.scene,this.orthographicCamera):this.renderer.render(this.scene,this.camera)}}),watch:{isReady:{handler:function(){if(this.isReady.texturesToLoad==this.isReady.texturesLoaded&&this.isReady.geometry&&this.isReady.threeMap&&this.isReady.camera){var e=new CustomEvent("screenshotable");document.dispatchEvent(e),this.screenshotable=!0}},deep:!0}}},xr=r(621);const Mr=(0,xr.A)(wr,[["render",i]]);var Or=Mr;function Pr(e){return Pr="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Pr(e)}function Lr(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function Er(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?Lr(Object(r),!0).forEach((function(t){Sr(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Lr(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function Sr(e,t,r){return t=Tr(t),t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function Tr(e){var t=jr(e,"string");return"symbol"===Pr(t)?t:String(t)}function jr(e,t){if("object"!==Pr(e)||null===e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!==Pr(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}Er({},(0,o.aH)({uuid:function(e){return e.uuid},view_mode:function(e){return e.view_mode}}))},498:function(e,t,r){e.exports=r.p+"img/reneSola_Virtus_2_JC320S_24_Bbw.85a0cb6d.png"},357:function(e){e.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAADElEQVQIW2N4/+EjAAWiAtFK4DEOAAAAAElFTkSuQmCC"}},t={};function r(n){var o=t[n];if(void 0!==o)return o.exports;var a=t[n]={id:n,loaded:!1,exports:{}};return e[n].call(a.exports,a,a.exports,r),a.loaded=!0,a.exports}r.m=e,function(){var e=[];r.O=function(t,n,o,a){if(!n){var i=1/0;for(c=0;c<e.length;c++){n=e[c][0],o=e[c][1],a=e[c][2];for(var s=!0,l=0;l<n.length;l++)(!1&a||i>=a)&&Object.keys(r.O).every((function(e){return r.O[e](n[l])}))?n.splice(l--,1):(s=!1,a<i&&(i=a));if(s){e.splice(c--,1);var u=o();void 0!==u&&(t=u)}}return t}a=a||0;for(var c=e.length;c>0&&e[c-1][2]>a;c--)e[c]=e[c-1];e[c]=[n,o,a]}}(),function(){r.n=function(e){var t=e&&e.__esModule?function(){return e["default"]}:function(){return e};return r.d(t,{a:t}),t}}(),function(){r.d=function(e,t){for(var n in t)r.o(t,n)&&!r.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})}}(),function(){r.g=function(){if("object"===typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"===typeof window)return window}}()}(),function(){r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)}}(),function(){r.nmd=function(e){return e.paths=[],e.children||(e.children=[]),e}}(),function(){r.p="/"}(),function(){var e={524:0};r.O.j=function(t){return 0===e[t]};var t=function(t,n){var o,a,i=n[0],s=n[1],l=n[2],u=0;if(i.some((function(t){return 0!==e[t]}))){for(o in s)r.o(s,o)&&(r.m[o]=s[o]);if(l)var c=l(r)}for(t&&t(n);u<i.length;u++)a=i[u],r.o(e,a)&&e[a]&&e[a][0](),e[a]=0;return r.O(c)},n=self["webpackChunk_eturnity_eturnity_3d"]=self["webpackChunk_eturnity_eturnity_3d"]||[];n.forEach(t.bind(null,0)),n.push=t.bind(null,n.push.bind(n))}();var n=r.O(void 0,[504],(function(){return r(765)}));n=r.O(n)})();
|
|
2
|
+
//# sourceMappingURL=app-legacy.aa792c98.js.map
|