var TagView=function(){"use strict";var t=function(t,e){if(!t)return 0;var i="";return document.defaultView&&document.defaultView.getComputedStyle?i=document.defaultView.getComputedStyle(t,"").getPropertyValue(e):t.currentStyle&&(e=e.replace(/\-(\w)/g,(function(t,e){return e.toUpperCase()})),i=t.currentStyle[e]),i||0},e=KanKan.Viewmode,i=function(i){function a(t,a){var n=this;i.call(this),this.app=t,this.sid="",this.rendered=!1,this.options=a||{},this.$tag=null,this.$tags={},this.player=null,this.__is_aimat=!1,this.__is_disable=!1,this.app.TagManager.on("update",(function(t){n.tags&&n.tags.length&&(n.player||(n.player=n.app.core.get("Player")),n.__is_disable=n.app.Camera.mode!==e.PANORAMA,n.tags.forEach((function(t){t&&n.$tags[t.sid]&&(t.visible?(n.$tags[t.sid].style.transform="translate("+t.x+"px,"+t.y+"px)",n.$tags[t.sid].style.display="block"):n.$tags[t.sid].style.display="none")})),n.__is_disable||("level3"==t.lastFrameChanged?n.waitToAimAtTag(!1):n.waitToAimAtTag(!0)))}))}i&&(a.__proto__=i),a.prototype=Object.create(i&&i.prototype),a.prototype.constructor=a;var n={tags:{configurable:!0},isAimating:{configurable:!0}};return n.tags.get=function(){return this.app.TagManager.tags||[]},n.tags.set=function(t){var e=this;this.TagManager.tags||(this.TagManager.tags=[]),t&&t.length&&t.forEach((function(t){e.TagManager.tags.push(t)}))},n.isAimating.get=function(){return this.__is_aimat},a.prototype.remove=function(t){var e=document.querySelector("[xui_tags_view]"),i=e.querySelector('[data-tag-id="'+t+'"]');e.removeChild(i)},a.prototype.removeAll=function(){document.querySelector("[xui_tags_view]").innerHTML=""},a.prototype.bind=function(t){var e=this,i=[],a=this.options.render||function(){},n=document.querySelector("[xui_tags_view]");if(this.$tags=this.$tags||{},t.forEach((function(t){if(!n.querySelector('[data-tag-id="'+t.sid+'"]')){t.icon?0!==t.icon.indexOf("http")&&(t.icon=e.app.resource.getUserResourceURL(t.icon)):t.icon=e.app.resource.base("images/tag_icon_default.svg");var o=a(t)||'';"string"==typeof o?i.push('\n
\n '+o.replace(/\{\{(\w+)\}\}/g,(function(e,i){return t[i]}))+"\n
"):o instanceof HTMLElement&&(o.setAttribute("data-tag-id",t.sid),o.setAttribute("data-tag-type",t.type),o.setAttribute("data-tag-unbind",!0),n.insertAdjacentElement("beforeend",o))}})),i.length){var o=document.createElement("template");o.innerHTML=i.join(""),n.appendChild(o.content)}n.querySelectorAll("[data-tag-unbind]").forEach((function(t){t.removeAttribute("data-tag-unbind");var i=t.getAttribute("data-tag-id");i&&(e.$tags[i]=t),t.addEventListener("mouseenter",(function(t){e.__is_disable||(t.preventDefault(),t.stopPropagation(),e.$tags[i].classList.add("active"),t.data=e.tags.find((function(t){return t.sid==i})),t.$tag=e.$tags[i],e.sid&&e.sid!=i&&(e.$tags[e.sid].classList.remove("fixed"),e.sid="",e.$tag=null),e.emit("mouseenter",t))})),t.addEventListener("mouseleave",(function(t){e.__is_disable||(t.preventDefault(),t.stopPropagation(),Object.keys(e.$tags).forEach((function(t){e.$tags[t].classList.remove("active")})),t.data=e.tags.find((function(t){return t.sid==i})),t.$tag=e.$tags[i],e.emit("mouseleave",t))})),t.addEventListener("click",(function(t){if(e.__is_disable)e.focus(i);else{t.preventDefault(),t.stopPropagation();var a=document.querySelector("[xui_tags_view] >div.fixed");a&&a.classList.remove("fixed"),e.$tags[i].classList.add("fixed"),e.sid=i,t.data=e.tags.find((function(t){return t.sid==i})),t.$tag=e.$tag=e.$tags[i],e.emit("click",t)}}))}))},a.prototype.render=function(){var t=this;if(!this.rendered){var e=[];this.tags.forEach((function(i){t.$tags[i.sid]||e.push(i)})),this.emit("loaded",{tags:this.tags}),this.bind(e),this.emit("rendered",{tags:this.tags,elem:document.querySelector("[xui_tags_view]")}),this.rendered=!0}},a.prototype.refresh=function(){var t=this,e=[];this.tags.forEach((function(i){t.$tags[i.sid]||e.push(i)})),this.bind(e)},a.prototype.focus=function(e,i){var a=this;return new Promise((function(n){var o=a.tags.find((function(t){return t.sid==e}));if(!o)return n();var s=a.player||a.app.core.get("Player"),r=s.model.panos.closestPanoTowardPoint({point:o.position,getAll:!0}).map((function(t){return t.pano})).filter((function(t){return o.visiblePanos.indexOf(t)>-1&&t.position.clone().setY(o.position.y).sub(o.position).length()>1.5})),c=r[0],u=r.filter((function(t){return t.floorIndex==s.model.currentFloor.floorIndex}));u.length>0&&(c=u[0]),c||(console.warn("该热点无可视点位"),c=s.currentPano);var g=a.$tags[e];if(Object.keys(a.$tags).forEach((function(t){a.$tags[t].classList.remove("active")})),g.classList.add("active"),a.__is_aimat=!0,i){var d=g.querySelector(".tag-body")||{},l={width:(d.clientWidth||0)+parseInt(t(d,"margin-left"))+parseInt(t(d,"margin-right")),height:(d.clientHeight||0)+parseInt(t(d,"margin-top"))+parseInt(t(d,"margin-bottom"))},p=new THREE.Vector3,f=function(){o.x=a.app.TagManager.convertPositionTo2D(o.position).pos.x,o.y=a.app.TagManager.convertPositionTo2D(o.position).pos.y,p.set(0,0,0);var t=o.x-("left"==i?l.width/2:0),e=o.y-("top"==i?l.height/2:0);a.app.TagManager.convertScreenPositionToNDC(t,e,p,a.app.dom),p.unproject(s.camera)};if(c.id==s.currentPano.id&&"panorama"==s.mode){f();var m=new THREE.Vector3(0,0,1).applyQuaternion(s.camera.quaternion).normalize(),h=s.camera.position.clone().sub(o.position).normalize();if(m.dot(h)<0){var v=s.camera.position.clone().sub(p).multiplyScalar(-1);p=s.camera.position.clone().sub(v)}var _=o.x;s.flyToPano({pano:c,lookAtPoint:p},(function(){_>window.innerWidth/4&&_