!function(){"use strict";var e,t=window.Glodon=window.Glodon||{};t.Version="2022-3-2-17-50",function(){function e(e,t){let n=t.split("."),a=e,i=n.length;for(let e=0;ethis.max.x||e.max.ythis.max.y||e.max.zthis.max.z)}union(e){return this.min.min(e.min),this.max.max(e.max),this}makeEmpty(){return this.min.x=this.min.y=this.min.z=1/0,this.max.x=this.max.y=this.max.z=-1/0,this}expandByPoint(e){return this.min.min(e),this.max.max(e),this}setFromPoints(e){this.makeEmpty();for(var t=0,n=e.length;t{this.resetPointStatus(e.points)}))}clusteringPrepare(){for(const e of this.points){if(e.stopMoving)continue;const t=this.meanShift(e),n=t.length,a=`${t[0].index}_${n}`;this.mergeClusters({points:t,center:this.mean(t),id:a,parent:null,children:[]})}}clusteringAfter(e,t){this.tmpPoints=this.points,this.points=[];let n=[...this.clusters];if(this.clusters=[],!1!==e){for(let e=0;e{this.resetPointStatus(e.points)}))}else this.clusteringZoomOut(n,t)}clusteringZoomIn(e,t){for(const n of e.points){if(n.stopMoving)continue;const a=this.meanShift(n),i=a.length,o=`${a[0].index}_${i}`;this.mergeClustersInTarget({points:a,center:this.mean(a),id:o,parent:e.id,children:[]},t)}}clusteringZoomOut(e,t){for(let n=0;n1){n.center=this.mean(n.points),this.updateClusterBbox(n);const e=n.points.length,t=`${n.points[0].index}_${e}`;n.id=t,n.children=a}this.clusters.push(n)}this.clusters.forEach((e=>{delete e.isMerged,this.resetPointStatus(e.points)}))}mergeClusters(e){let t=!1;for(const n of this.clusters){const a=e.center.distanceToSquared(n.center)<=4*this.searchRangeSquared,i=n.parent==n.parent;if(a&&i){n.points=this.connect(n.points,e.points,!0),n.center=this.mean(n.points),this.updateClusterBbox(n);const a=n.points.length,i=`${n.points[0].index}_${a}`;n.id=i,n.children=[],t=!0;break}}!1===t&&(this.updateClusterBbox(e),this.clusters.push(e))}mergeClustersInTarget(e,t){let n=!1;for(const a of t){if(e.center.distanceToSquared(a.center)<=4*this.searchRangeSquared){a.points=this.connect(a.points,e.points,!0),a.center=this.mean(a.points),this.updateClusterBbox(a);const t=a.points.length,i=`${a.points[0].index}_${t}`;a.id=i,a.children=[],n=!0;break}}!1===n&&(this.updateClusterBbox(e),t.push(e))}removeNodeFromParents(e,t){let n=t.indexOf(e);n>=0&&t.splice(n,1)}updateClusterBbox(e){let t=(new a).setFromPoints(e.points);e.bbox=t}connect(e,t,n){let a=[...e];for(const e of t)e.stopMoving&&!n||a.push(e),e.stopMoving=!0;return a}resetPointStatus(e){for(const t of e)t.stopMoving=!1}resetClusterPoints(e){for(let t=0;tthis.max.x||e.max.ythis.max.y)}union(e){return this.min.min(e.min),this.max.max(e.max),this}expandByPoint(e){return this.min.min(e),this.max.max(e),this}}!function(){let e=t.Web.Lang.Utility.Namespace.ensureNamespace(t,"Web.Algorithm");class n{constructor(){}}n.toThreeJsBox2=function(e,t=0){let n=[];for(const a of e){let e=Math.min(t,100)/100,l=Math.max(a[1][1]-a[0][1],a[1][0]-a[0][0])*e,s=new i(a[0][0],a[0][1]),r=new i(a[1][0],a[1][1]),c=new o(s,r),d=c.getSize();n.push((new o).setFromCenterAndSize(c.getCenter(),d.addScalar(2*l)))}let a=0;for(const e of n)e.indices=[a++];return n},n.toDrawingBox2=function(e){let t=[];for(const n of e){let e=[];e.push([n.min.x,n.min.y]),e.push([n.max.x,n.max.y]),t.push(e)}return t},n.merge=function(e,t){let n=e.length;for(let a=0;a<=n;a++){if(a===n){e.push(t);break}let i=e[a];if(i.intersectsBox(t)){i.union(t),i.indices=i.indices.concat(t.indices);break}}},n.mergeBoundingBox=function(e){let t=e,a=[];for(;;){for(let e=0;e{n.success&&n.success(e.responseText,e.responseXML)},i=e=>{n.failure&&n.failure(e)},o=(e,t)=>{var a;(a=window.XMLHttpRequest?new XMLHttpRequest:new ActiveXObject("Microsoft.XMLHTTP")).onreadystatechange=function(){if(4==a.readyState){var n=a.status;if(n>=200&&n<300||304==n||0===n&&"file:"===window.location.protocol){let{responseText:t,responseXML:n}=a;e({responseText:t,responseXML:n})}else t(n)}},a.open(n.type,n.url,n.async);for(let e in n.headers)a.setRequestHeader(e,n.headers[e]);a.send(n.data)};t?CLOUD.Storage.IndexedDBHelper.loadWithStorage("InfoData",n.url,(()=>new Promise(o)),a,i):o(a,i)},a=function(e,t,n){let a={};if(a[e])t&&t();else{let i=document.createElement("script");i.type="text/javascript",i.src=e,document.head.appendChild(i),a[e]=!0,i.readyState?i.onreadystatechange=function(){"loaded"==i.readyState||"complete"==i.readyState?(i.onreadystatechange=null,t&&t()):"uninitialized"==i.readyState&&(i.onreadystatechange=null,n&&n())}:(i.onload=function(){t&&t()},i.onerror=function(){n&&n()})}},i=function(e,t){e.length>1?a(e.shift(),(()=>{i(e,t)})):a(e.shift(),t)};e.ajax=n,e.promiseJSONRequest=function(e,t,a){let i;return i="string"==typeof e?{url:e,status:t}:e,new Promise((function(e,o){n(Object.assign({},i,{success:function(n){try{var a=JSON.parse(n)}catch(t){return e(n)}"success"==a.code||"noCode"==i.status?e("noCode"==t?a:a.data):o(`requestError,dataCode:${a.code}, dataMessage:${a.message}`)},failure:e=>{o(e)}}),a)}))},e.getScript=a,e.getScripts=i}(),function(){let e=t.Web.Lang.Utility.Namespace.ensureNamespace(t,"Web.Lang.Utility.FullScreen");e.fullScreen=function(e){if(!e)return!1;e.requestFullscreen?e.requestFullscreen():e.mozRequestFullScreen?e.mozRequestFullScreen():e.webkitRequestFullScreen?e.webkitRequestFullScreen():e.msRequestFullscreen&&e.msRequestFullscreen()},e.exitFullScreen=function(){document.exitFullscreen?document.exitFullscreen():document.mozCancelFullScreen?document.mozCancelFullScreen():document.webkitCancelFullScreen?document.webkitCancelFullScreen():document.msExitFullscreen&&document.msExitFullscreen()},e.onFullScreenChanged=function(e){var t=function(){e&&e()};document.onfullscreenchange=t,document.onwebkitfullscreenchange=t,document.documentElement.onwebkitfullscreenchange=t,document.onmozfullscreenchange=t,document.onmsfullscreenchange=t},e.isFullScreen=function(){return document.webkitIsFullScreen||!!document.mozFullScreenElement||!!document.msFullScreenElement||!1}}(),function(){let e=t.Web.Lang.Utility.Namespace.ensureNamespace(t,"Web.Lang.Utility.ClientHelper"),n=null;if(e.getIsDesktop)return;var a=function(e,t,n){n=n||"asc";var a=!1;return t?t.indexOf(".")>-1&&(a=!0):t="name",e=e.sort((function(e,i){if(a){var o=l(e,t),s=l(i,t);return"asc"==n?o.localeCompare(s):s.localeCompare(o)}return"asc"==n?e[t].localeCompare(i[t]):i[t].localeCompare(e[t])})),o(e,t,a)};var i=function(e,t){return function(n,a){var i,o;t?(i=l(n,e),o=l(a,e)):(i=n[e],o=a[e]);var s,r,c=1,d=0,f=0,m=String.alphabet;function p(e,t,n){if(n){for(s=t;(n=p(e,s))<76&&n>65;)++s;return+e.slice(t-1,s)}return(n=m&&m.indexOf(e.charAt(t)))>-1?n+76:(n=e.charCodeAt(t)||0)<45||n>127?n:n<46?65:n<48?n-1:n<58?n+18:n<65?n-11:n<91?n+11:n<97?n-37:n<123?n+5:n-63}if((i+="")!=(o+=""))for(;c;)if(r=p(i,d++),c=p(o,f++),r<76&&c<76&&r>66&&c>66&&(r=p(i,d,d),c=p(o,f,d=s),f=s),r!=c)return r/macintosh|mac os x/i.test(navigator.userAgent),e.getIsChrome=()=>/(?:Chrome|CriOS)/.test(navigator.userAgent),e.setNavigatorType=function(e){n=e},e.getIsIphone=function(){var e=navigator.userAgent;return/(?:iPhone)/.test(e)},e.getIsIE=function(){return!(!window.ActiveXObject&&!("ActiveXObject"in window))},e.formatURL=function(e){var t=function(e){return e.replace("viewToken.json","").replace(/\.\//g,"/").replace(/\/\//g,"/")};if(e.indexOf("://")>-1){var n=e.split("://");e=n[0]+"://"+t(n[1])}else e="//"===e.slice(0,2)?"//"+t(e.slice(2)):"./"!=e.slice(0,2)?t(e):"."+t(e.slice(1));return e},e.sortByName=a,e.sortByRules=function(e,t,n){n=n||"asc";var a=!1;return t?t.indexOf(".")>-1&&(a=!0):t="name",e=e.sort(i(t,a)),o(e,t,a)},e.PointToLineDistance=function(e,t,n,a,i,o){let l,s,r,c,d=0;const f=Math.sqrt((n-e)*(n-e)+(a-t)*(a-t));if(0===f)return[0,{x:n,y:a}];const m=Math.sqrt((i-e)*(i-e)+(o-t)*(o-t));if(0===m)return[0,{x:i,y:o}];const p=Math.sqrt((n-i)*(n-i)+(a-o)*(a-o));if(0===p)return d=f,[d,{x:n,y:a}];if(f1e-5&&(c=1),l=Math.acos(c),a>o&&(l=2*Math.PI-l)),c=(e-n)/f,c-1>1e-5&&(c=1),s=Math.acos(c),a>t&&(s=2*Math.PI-s),r=s-l,r<0&&(r=-r),r>Math.PI&&(r=2*Math.PI-r),r>Math.PI/2)return[f,{x:n,y:a}];if(n===i)return[m*Math.sin(r),{x:n,y:t}];if(a===o)return[m*Math.sin(r),{x:e,y:a}];let d=0,u=0;const g=(o-a)/i-n,h=-1/g,b=t-e*h;return d=(o-i*g-b)/(h-g),u=h*d+b,[f*Math.sin(r),{x:d,y:u}]}if(a===o?l=n1e-5&&(c=1),l=Math.acos(c),o>a&&(l=2*Math.PI-l)),c=(e-i)/m,c-1>1e-5&&(c=1),s=Math.acos(c),o>t&&(s=2*Math.PI-s),r=s-l,r<0&&(r=-r),r>Math.PI&&(r=2*Math.PI-r),r>Math.PI/2)return[m,{x:i,y:o}];if(n===i)return[m*Math.sin(r),{x:n,y:t}];if(a===o)return[m*Math.sin(r),{x:e,y:a}];let u=0,g=0;const h=(o-a)/i-n,b=-1/h,v=t-e*b;return u=(o-i*h-v)/(b-h),g=b*u+v,[m*Math.sin(r),{x:u,y:g}]},e.isWebGLAvailable=function(){try{var e=document.createElement("canvas");return!(!window.WebGLRenderingContext||!e.getContext("webgl")&&!e.getContext("experimental-webgl"))}catch(e){return!1}},e.isWebGL2Available=function(){try{var e=document.createElement("canvas");return!(!window.WebGL2RenderingContext||!e.getContext("webgl2"))}catch(e){return!1}},e.sortByGroupName=function(e,t,n,i){let o=((e,t)=>e.reduce(((e,n)=>({...e,[n[t]]:[...e[n[t]]||[],n]})),{}))(e,t),l=[];for(let e in o)l=[...l,...a(o[e],n,i)];return l}}(),t.Web.Lang.Utility.Namespace.ensureNamespace(t,"Web.Lang.Utility.MouseMotion").setCursor=function(e){let n,a=!1,i=e.getDomElement(),o=!1,l=!1,s=!1,r=null;function c(){a&&"walk"==e.getViewer().getEditorManager().editor.name||(i.addClass("motion-zoom"),n=Date.now(),setTimeout((()=>{Date.now()-n>180&&i.removeClass("motion-zoom")}),200))}t.Bimface.Viewer.Viewer3D&&"Viewer3D"===e.viewerType&&(a=!0),document.addEventListener("keydown",(function(e){const t=e.keyCode||evt.which||evt.charCode;17==t?o=!0:18==t&&(l=!0)})),document.addEventListener("keyup",(function(e){const t=e.keyCode||evt.which||evt.charCode;17==t?o=!1:18==t&&(l=!1)})),i.addEventListener("mousedown",(function(t){e._opt.enableZoomRect||o||l||(r={x:t.clientX,y:t.clientY})})),i.addEventListener("mousemove",(function(t){if(r&&!s&&!o&&!l&&!(Math.abs(r.x-t.clientX)<2&&Math.abs(r.y-t.clientY)<2)){if(a){let n=e.getUseLeftHandedInput();if("walk"==e.getViewer().getEditorManager().editor.name)1==t.buttons&&i.addClass("motion-rotate");else{let a=e._getIsCursorEnabled();1==t.buttons?a&&i.addClass(n?"motion-rotate":"motion-translate"):i.addClass(n?"motion-translate":"motion-rotate")}}else 1==t.buttons&&i.addClass("motion-translate");s=!0}})),i.addEventListener("mousewheel",c,!1),i.addEventListener("DOMMouseScroll",c,!1),i.addEventListener("mouseup",(function(e){r=!1,s=!1,i.removeClass("motion-translate"),i.removeClass("motion-rotate")}))},t.Web.Lang.Utility.Namespace.ensureNamespace(t,"Web.Lang.Utility.Dom").create=function(e,t){var n=document.createElement(e);return n.setAttribute("class",t),n},t.Web.Lang.Utility.Namespace.ensureNamespace(t,"Web.Lang.Utility.Dom").createNS=function(e,t){var n=document.createElementNS("http://www.w3.org/2000/svg",e);return n.setAttribute("class",t),n},t.Web.Lang.Utility.Namespace.ensureNamespace(t,"Web.Lang.Utility.Dom").select=function(e){return e.indexof("#")?document.getElementById(e.replace("#","")):e.indexof(".")?document.getElementsByClassName(e.replace(".","")):document.getElementsByTagName(e)},t.Web.Lang.Utility.Namespace.ensureNamespace(t,"Web.Lang.Utility.Dom").drag=function(e){let n=t.Web.Lang.Utility.ClientHelper.getIsDesktop(),a=Object.assign({element:null,handle:null,axis:"all",cursor:"move",distance:0,start:null,move:null,stop:null,bBoxDetection:!1},e),i=a.element;if(!i)return!1;let o,l=a.handle||i,s=!1,r=this;this.resize=function(e,t,n){t=t||{x:0,y:0};let i=e.getBoundingClientRect(),o=e.parentElement.getBoundingClientRect(),l=i.left-o.left,s=i.top-o.top;var r=e.offsetWidth,c=e.offsetHeight,d=e.parentElement.offsetWidth,f=e.parentElement.offsetHeight,m=Math.min(l+t.x,d-r),p=Math.min(s+t.y,f-c),u=l+t.x<0?0:m>0&&m||0,g=s+t.y<0?0:p>0&&p||0;n&&0!=u&&0!=g||(e.style.left=`${u}px`,e.style.top=`${g}px`,e.style.transform="none",a.record&&a.record(u,g))};let c=function(e){var t,i,s=e;if(n){if(t=s.button,!((i=navigator.userAgent).indexOf("compatible")>-1&&i.indexOf("MSIE")>-1&&!isOpera?1==t:0==t))return;o={x:s.clientX,y:s.clientY},document.addEventListener("mousemove",d)}else o={x:s.touches[0].clientX,y:s.touches[0].clientY},l.addEventListener("touchmove",d);a.start&&a.start(o)},d=function(e){var t=e;if(n)var l={x:t.clientX,y:t.clientY};else l={x:t.touches[0].clientX,y:t.touches[0].clientY};var c={x:l.x-o.x,y:l.y-o.y};s?(a.move&&a.move(o,l,c),o=l,function(e){let t=i.getBoundingClientRect(),n=i.parentElement.getBoundingClientRect(),o=t.left-n.left,l=t.top-n.top;if(a.bBoxDetection)r.resize(i,e);else{let t=o+e.x,n=l+e.y;switch(a.axis){case"x":i.style.left=`${t}px`;break;case"y":i.style.top=`${n}px`;break;case"all":default:i.style.left=`${t}px`,i.style.top=`${n}px`}}}(c)):s=function(e){return Math.pow(e.x,2)+Math.pow(e.y,2)>Math.pow(a.distance,2)&&(a.start&&a.start(o),!0)}(c),e.preventDefault(),e.stopPropagation()},f=function(){s&&a.end&&a.end(o),s=!1,document.removeEventListener("mousemove",d),l.removeEventListener("touchmove",d)};n?(l.style.cursor=a.cursor,l.style.userSelect="none",l.addEventListener("mousedown",c),document.addEventListener("mouseup",f)):(l.addEventListener("touchend",f),l.addEventListener("touchstart",c))},function(){let e=t.Web.Lang.Utility.Namespace.ensureNamespace(t,"Web.Lang.Utility.Dom");e.sizable=function(t){let n=Object.assign({element:null,axis:"all",minWidth:100,minHeight:100,distance:0,start:null,sizable:null,stop:null},t),a=n.element;if(!a)return!1;let i,o=!1,l=e.create("div","bf-resize");var s,r;let c=function(e){s=a.clientWidth,r=a.clientHeight;var t,n,o=e;(t=o.button,(n=navigator.userAgent).indexOf("compatible")>-1&&n.indexOf("MSIE")>-1&&!isOpera?1==t:0==t)&&(i={x:o.clientX,y:o.clientY},document.addEventListener("mousemove",d),document.addEventListener("touchmove",d))},d=function(e){var t=e,l={x:t.clientX,y:t.clientY},c={x:l.x-i.x,y:l.y-i.y};o?(n.sizable&&n.sizable(i,l,c),function(e){var t=a.offsetLeft,i=a.offsetTop,o=s+e.xMath.pow(n.distance,2)&&(n.start&&n.start(i),!0)}(c)},f=function(){o&&n.end&&n.end(i),o=!1,document.removeEventListener("mousemove",d),document.removeEventListener("touchmove",d)};a.addClass("bf-sizable"),a.appendChild(l),l.addEventListener("mousedown",c),l.addEventListener("touchstart",c),document.addEventListener("mouseup",f),document.addEventListener("touchend",f)}}(),function(){let e=t.Web.Lang.Utility.Namespace.ensureNamespace(t,"Web.Lang.Utility.Dom"),n=function(t){let n=this,a=Object.assign({element:null,min:0,max:100,cur:50,step:1,isShowProgress:!0,input:null,change:null,currentColor:"#11dab7",defaultColor:"#999"},t);this._opt=a;let i=e.create("div","bf-range"),o=e.create("input","bf-input-range");n.input=o,o.setAttribute("type","range"),o.setAttribute("step",a.step),o.setAttribute("min",a.min),o.setAttribute("max",a.max),o.setAttribute("value",a.cur);let l=e.create("span","bf-range-min");l.innerText=a.min;let s=e.create("span","bf-range-cur");n.cur=s,s.innerText=a.cur;let r=e.create("span","bf-range-max");r.innerText=a.max;let c=e.create("span","bf-range-progress");i.appendChild(o),a.isShowProgress&&(i.appendChild(l),i.appendChild(s),i.appendChild(r)),i.appendChild(c),a.element.appendChild(i),n.setProgress(a.cur),o.addEventListener("input",(function(){n.setProgress(this.value),a.input&&a.input(this.value)})),o.addEventListener("change",(function(){n.setProgress(this.value),a.change&&a.change(this.value)}))};n.prototype.setProgress=function(e){var t=this._opt,n=t.max-t.min,a=this.input,i=this.cur,o=(e-t.min)/n*100;a.value=e,a.style.background=`linear-gradient(to right,${t.currentColor} 0%,${t.currentColor} ${o}%,${t.defaultColor} ${o}%, ${t.defaultColor} 100%)`,i.innerText=e},n.prototype.reset=function(){this.setProgress(this._opt.cur)},e.range=n}(),function(){let e=t.Web.Lang.Utility.Namespace.ensureNamespace(t,"Web.Lang.Utility.Dom"),n=function(e){this._opt=Object.assign({element:null,min:0,max:100,from:null,to:null,step:1,currentColor:"#11dab7",defaultColor:"#999",change:null},e),this._opt.from=this._opt.from||this._opt.min,this._opt.to=this._opt.to||this._opt.max,this.init()};n.prototype={init:function(){var t=e.create("div","bf-multiple-range"),n=e.create("div","bf-range-track"),a=e.create("span","bf-slider bf-slider-min");a.id="minSlider",a.type="minimum";var i=e.create("span","bf-slider bf-slider-max");i.id="maxSlider",i.type="maximum",this._state={from:this._opt.from,to:this._opt.to},n.style.backgroundColor=this._opt.currentColor,t.style.backgroundColor=this._opt.defaultColor,t.appendChild(n),t.appendChild(a),t.appendChild(i),this._opt.element.appendChild(t),this._track=n,this._sliders={min:a,max:i},this._element=t,this.bindEvent(),this.update(!1)},bindEvent:function(){var e,t,n=this,a=!1,i=function(n){n=n||event;t=n.screenX,e=this,a=!0};this._sliders.min.addEventListener("mousedown",i),this._sliders.max.addEventListener("mousedown",i),document.addEventListener("mousemove",(function(i){if(a){var o=(i=i||event).screenX-t,l=Math.round(o/n._pix/n._opt.step)*n._opt.step;0!=l&&(t=l*n._pix+t,"minimum"==e.type?n._state.from+=l:n._state.to+=l,n.recalculate(e),n.update(!0))}})),document.addEventListener("mouseup",(function(){e=null,a=!1}))},update:function(e){var t=this._sliders.min.offsetWidth,n=this._sliders.max.offsetWidth;if(!this._pix){var a=(this._element.offsetWidth-t-n)/(this._opt.max-this._opt.min);this._pix=a}var i=(this._state.from-this._opt.min)*this._pix,o=(this._state.to-this._opt.min)*this._pix+t+n;this._track.style.left=`${i+t/2}px`,this._track.style.width=o-i-t/2-n/2+"px",this._sliders.min.style.left=`${i}px`,this._sliders.max.style.left=`${o}px`,this._opt.change&&e&&this._opt.change(this._state)},recalculate:function(e){this._state.to>=this._opt.max&&(this._state.to=this._opt.max),this._state.from<=this._opt.min&&(this._state.from=this._opt.min),e&&("maximum"==e.type&&this._state.to<=this._state.from&&(this._state.to=this._state.from),"minimum"==e.type&&this._state.from>=this._state.to&&(this._state.from=this._state.to))},getProgress:function(){return this._state},setProgress:function(e){this._state=e,this.recalculate(),this.update(!1)}},e.multipleRange=n}(),HTMLElement.prototype.tap=function(e){var t;this.addEventListener("touchstart",(function(e){t=Date.now()})),this.addEventListener("touchend",(function(n){Date.now()-t<200&&e(n)}))},(window.ActiveXObject||"ActiveXObject"in window)&&(HTMLElement.prototype.remove=function(){this.parentNode&&this.parentNode.removeChild(this)},window.Element&&((e=Element.prototype).matches=e.matches||e.matchesSelector||e.webkitMatchesSelector||e.msMatchesSelector||function(e){for(var t=this,n=(t.parentNode||t.document).querySelectorAll(e),a=-1;n[++a]&&n[a]!=t;);return!!n[a]}),window.Element&&function(e){e.closest=e.closest||function(e){for(var t=this;t.matches&&!t.matches(e);)t=t.parentNode;return t.matches?t:null}}(Element.prototype)),t.Web.Lang.Utility.Namespace.ensureNamespace(t,"Web.Lang.Utility.UUID").createUUID=function(){let e=[],t="0123456789abcdef";for(let n=0;n<36;n++)e[n]=t.substr(Math.floor(16*Math.random()),1);return e[14]="4",e[19]=t.substr(3&e[19]|8,1),e[8]=e[13]=e[18]=e[23]="-",e.join("")},t.Web.Lang.Utility.Namespace.ensureNamespace(t,"Web.Lang.Utility").throttle=function(e,t){let n=null,a=Date.now();return null==t&&(t=30),function(){let i=Date.now(),o=t-(i-a);const l=this,s=arguments;clearTimeout(n),o<=0?(e.apply(l,s),a=Date.now()):n=setTimeout(e,o)}};const l=t.Web.Lang.Utility.Namespace.ensureNamespace(t,"Web.Lang.Utility");l.DataUtil={assertType(e,t){const n=t=>Object.prototype.toString.call(e)===`[object ${t}]`;switch(t){case"obj":case"Obj":case"object":case"Object":return n("Object");case"arr":case"Arr":case"array":case"Array":return n("Array");case"num":case"Num":case"number":case"Number":return n("Number");case"func":case"Func":case"function":case"Function":return n("Function");case"str":case"Str":case"string":case"String":return n("String");default:return n(t)}},assertParamsType(...e){if(e.length>1){const[t]=e.splice(e.length-1,1);let n=!0;return e.every((e=>(n=this.assertType(e,t),n))),n}},hasProperty(e,t){return!!this.assertType(e,"obj")&&e.hasOwnProperty(t)},hasProperties(e,...t){if(!t)return!1;let n=!0;return t.every((t=>n=this.hasProperty(e,t))),n},hasChildProperty(e,...t){if(!t||0===t.length)return!1;let n=e;for(let e=0;en=n[e])),n}}},l.DataUtil,t.Web.Lang.Utility.Namespace.ensureNamespace(t,"Bimface.Utils").Transformation={getTranslation(e){const t=this._getDecompose(e);return{x:t.position.x,y:t.position.y,z:t.position.z}},getQuaternion(e){const t=this._getDecompose(e);return{x:t.quaternion._x,y:t.quaternion._y,z:t.quaternion._z,w:t.quaternion._w}},getScaling(e){const t=this._getDecompose(e);return{x:t.scale.x,y:t.scale.y,z:t.scale.z}},quaternionToEulerAngles(e,t){const n=new THREE.Euler,a=new THREE.Quaternion(e.x,e.y,e.z,e.w),i=n.setFromQuaternion(a,t||"XYZ");return{x:i._x,y:i._y,z:i._z,order:i._order}},eulerAnglesToQuaternion(e){const t=new THREE.Quaternion,n=new THREE.Euler(e.x,e.y,e.z,e.order),a=t.setFromEuler(n);return{x:a._x,y:a._y,z:a._z,w:a._w}},_getDecompose(e){const t=new THREE.Matrix4,n=new THREE.Vector3,a=new THREE.Quaternion,i=new THREE.Vector3;return t.fromArray(e),t.decompose(n,a,i),{position:n,quaternion:a,scale:i}}},function(){var e=t.Web.Lang.Utility.Namespace.ensureNamespace(t,"Web.Lang");let n=function(){this.container={}};n.prototype.addEvent=function(e,t,n){return"string"==typeof e&&"function"==typeof t&&(void 0===this.container[e]?this.container[e]=[t]:!0===n?this.container[e].unshift(t):this.container[e].push(t)),this},n.prototype.fireEvent=function(e){if(e&&this.container[e]){var t=Array.prototype.slice.call(arguments);t.shift();for(var n=[...this.container[e]],a=n.length,i=0;ih)return null;let b=(l-s)/d,v=(r-s)/d;if(pv)return null;let y=(m-g)/(h-g),C=(p-b)/(v-b),B=((f.outline[2]-f.outline[0])*y+f.outline[0])*f.viewPoint.scale,w=((f.outline[3]-f.outline[1])*C+f.outline[1])*f.viewPoint.scale;return new THREE.Vector3(B,w,0)}let p=(n=t).portsAndViews;for(var u=0;up)continue;if(e.yg)continue;let h=(e.x-m)/(p-m),b=(e.y-u)/(g-u),v=d.viewport[3]-d.viewport[0],y=d.viewport[4]-d.viewport[1];n(a*((d.viewport[0]+v*h-o)/(l-o)),i-i*((d.viewport[1]+y*b-s)/(r-s)),d)}return!0}(e,t,(function(e,t,a){n.append({x:e,y:t})})))return 0==n.length?null:n;if("FloorPlan"!=t.viewType)return console.warn("Not support yet!"),null;var a=t.preview.width,i=t.preview.height,o=t.outline[0],l=t.outline[2],s=t.outline[1],r=t.outline[3],c=l-o,d=r-s,f=(0-o)/(l-o),m=r/(r-s),p=e.x/(c*t.viewPoint.scale),u=e.y/(d*t.viewPoint.scale);return{x:p=p*a+a*f,y:u=i*m-u*i,z:0}}}(),t.Web.Lang.Utility.Namespace.ensureNamespace(t,"Web.Graphics.Utility").ImageContainer=function(e){var t=new Image;return new Promise((function(n,a){t.onload=function(){n(t)},t.onerror=function(e){a(e)},t.crossOrigin="anonymous",t.src=e,!0===t.complete&&n(t)}))},function(){let e=t.Web.Lang.Utility.Namespace.ensureNamespace(t,"Web.Graphics"),n=t.Web.Graphics.Utility.RGBToHex,a=function(e,t,n,a){this.red=e,this.green=t,this.blue=n,this.alpha=a},i=function(e,t){/^#[0-9a-fA-F]{6}$/.test(e)&&(this.red=parseInt(e.slice(1,3),16),this.green=parseInt(e.slice(3,5),16),this.blue=parseInt(e.slice(5),16)),"number"==typeof t?(t>1&&(t=1),t<0&&(t=0),this.alpha=t):this.alpha=1},o=function(){arguments.length<4?i.apply(this,arguments):a.apply(this,arguments)};o.prototype={getRGB:function(){return`rgba(${this.red},${this.green},${this.blue})`},getRGBA:function(){return`rgba(${this.red},${this.green},${this.blue},${this.alpha})`},getHEX:function(){return`${n(this.red)}${n(this.green)}${n(this.blue)}`},getAlpha:function(){return this.alpha},fromObject:function(e){return this.red=e.red,this.green=e.green,this.blue=e.blue,this.alpha=e.alpha,this}},e.Color=o}(),SVGElement.prototype.getClass=HTMLElement.prototype.getClass=function(e){return this.getAttribute("class")},SVGElement.prototype.hasClass=HTMLElement.prototype.hasClass=function(e){let t=this.getClass();return!!t&&(t&&t.split(" ")).indexOf(e)>-1},SVGElement.prototype.addClass=HTMLElement.prototype.addClass=function(e){let t=this.getClass();var n=t&&t.split(" ");return t?-1==n.indexOf(e)&&(n.push(e),t=n.join(" "),this.setAttribute("class",`${t}`)):this.setAttribute("class",`${e}`),this},SVGElement.prototype.removeClass=HTMLElement.prototype.removeClass=function(e){if(!this.hasClass(e))return this;let t=this.getClass().replace(e,"").trim();return t?this.setAttribute("class",`${t}`):this.removeAttribute("class"),this},SVGElement.prototype.toggleClass=HTMLElement.prototype.toggleClass=function(e,t){this.getClass();var n=this.hasClass(e);return null!=t?(t&&!n&&this.addClass(e),t||this.removeClass(e)):n?this.removeClass(e):this.addClass(e),!n},Array.prototype.getObjectByAttribute=function(e,t){for(var n=this,a=n.length,i=0;i=0;n--)t[n]==e&&t.splice(n,1);return t},Array.prototype.insert=function(e,t){return this.splice(e,0,t),this},Array.prototype.insertAfter=function(e,t){let n=e.length;for(;n>0&&-1==this.indexOf(e[n-1]);)n--;return n<1?this.splice(e.length,0,t):this.splice(n,0,t),{res:this,index:n}},Array.prototype.unique=function(e){for(var t=[],n=0;n0){var n=e.slice(0,t);r._send(n),e.splice(0,t)}}},r.handleId=setInterval(r.intervalAction,r.sendingPeriod),r._send=function(e){var t=`${BimfaceLoaderConfig.APIHost}/inside/track?ModelType=${this.modelType}&ModelId=${this.modelId}`,n={Events:e};fetch(t,{method:"PUT",mode:"cors",body:JSON.stringify(n),headers:{"Content-Type":"application/json"},cache:"default"}).then((function(e){}))},r.setIsEnabled=function(e){r.isEnabled=!0===e,r.isEnabled&&null===r.handleId?r.handleId=setInterval(r.intervalAction,r.sendingPeriod):r.isEnabled||null===r.handleId||(clearInterval(r.handleId),r.handleId=null)},r.getIsEnabled=function(){return r.isEnabled}),r}},s.StatisticsDataManager=c,function(e){var t,n,a,i,o,l='',s=(s=document.getElementsByTagName("script"))[s.length-1].getAttribute("data-injectcss");if(s&&!e.__iconfont__svg__cssinject__){e.__iconfont__svg__cssinject__=!0;try{document.write("")}catch(e){console&&console.log(e)}}function r(){o||(o=!0,a())}t=function(){var e,t;(t=document.createElement("div")).innerHTML=l,l=null,(e=t.getElementsByTagName("svg")[0])&&(e.setAttribute("aria-hidden","true"),e.style.position="absolute",e.style.width=0,e.style.height=0,e.style.overflow="hidden",t=e,(e=document.body).firstChild?function(e,t){t.parentNode.insertBefore(e,t)}(t,e.firstChild):e.appendChild(t))},document.addEventListener?~["complete","loaded","interactive"].indexOf(document.readyState)?setTimeout(t,0):(n=function(){document.removeEventListener("DOMContentLoaded",n,!1),t()},document.addEventListener("DOMContentLoaded",n,!1)):document.attachEvent&&(a=t,i=e.document,o=!1,function e(){try{i.documentElement.doScroll("left")}catch(t){return void setTimeout(e,50)}r()}(),i.onreadystatechange=function(){"complete"==i.readyState&&(i.onreadystatechange=null,r())})}(window),t.Web.Lang.Utility.Namespace.ensureNamespace(t,"Bimface.UI.Control").ControlConfig=function(){return{id:null,tagName:"div",className:"bf-control",title:"",element:""}},function(){let e=Object.freeze({Click:"Click",MouseEnter:"MouseEnter",MouseLeave:"MouseLeave",MouseMove:"MouseMove",StateChange:"StateChange",Change:"Change",ActiveModelTreeTab:"ActiveModelTreeTab",InActiveModelTreeTab:"InActiveModelTreeTab"});t.Web.Lang.Utility.Namespace.ensureNamespace(t,"Bimface.UI.Control").ControlEvent=e}(),function(){let e=t.Web.Lang.Utility.Namespace.ensureNamespace(t,"Bimface.UI.Control"),n=t.Web.Lang.Utility.Namespace.ensureNamespace(t,"Web.Lang.Utility.Dom"),a=function(e){let a=this;a.eventManager=new t.Web.Lang.EventManager,a.element=n.create(e.tagName,e.className),a.id=e.id||t.Web.Lang.Utility.UUID.createUUID(),e.title&&!e.isPanel&&a.setTitle(e.title),e.element&&e.element.appendChild(a.element)};a.prototype={addEventListener:function(e,t){var n=this.eventManager;this.element.addEventListener(e.toLocaleLowerCase(),t),n.addEvent(e,t)},removeEventListener:function(e,t){this.eventManager.removeEvent(e,t),this.element.removeEventListener(e.toLocaleLowerCase(),t)},show:function(){this.element.style.display=""},hide:function(){this.element.style.display="none"},setTitle:function(e){this.element.setAttribute("title",e)},getTitle:function(){return this.element.getAttribute("title")},setClassNames:function(e){this.element.setAttribute("class",e)},getClassNames:function(){return this.element.getClass()},addClassName:function(e){this.element.addClass(e)},removeClassName:function(e){this.element.removeClass(e)},toggleClassName:function(e,t){this.element.toggleClass(e,t)},setDomId:function(e){this.element.setAttribute("id",e)},getDomId:function(){return this.element.getAttribute("id")},getId:function(){return this.id},setHtml:function(e){this.element.innerHTML=e},setStyle:function(e){this.element.setCss(e)},destroy:function(){this.element.parentNode&&this.element.parentNode.removeChild(this.element)}},e.Control=a}(),d=t.Web.Lang.Utility.Namespace.ensureNamespace(t,"Bimface.UI.Toolbar"),f=new t.Bimface.UI.Control.ControlConfig,d.ToolbarConfig=function(){return Object.assign({},f,{className:"bf-toolbar"})},function(){let e=t.Web.Lang.Utility.Namespace.ensureNamespace(t,"Bimface.UI.Control"),n=t.Web.Lang.Utility.Namespace.ensureNamespace(t,"Bimface.UI.Toolbar"),a=t.Web.Lang.Utility.Namespace.ensureNamespace(t,"Web.Lang.Utility"),i=(t.Web.Lang.Utility.Namespace.ensureNamespace(t,"Web.Lang.Utility.Dom"),function(t){this._controls=[],e.Control.call(this,t),this.element.addEventListener("mousedown",this.bringToFront.bind(this))});a.Type.inheritPrototype(i,e.Control),i.prototype.addControl=function(e){this.getControls().push(e),this.element.appendChild(e.element)},i.prototype.bringToFront=function(){if(!this.element.hasClass("bf-pinned")){let e=document.querySelector(".bf-pinned");e&&e.removeClass("bf-pinned"),this.element.addClass("bf-pinned")}},i.prototype.addControls=function(e){for(var t=0,n=e.length;t0){var n='';for(let i=0,o=e.length;i`,l=e[i].items;for(let e=0,t=l.length;e`}o+="",n+=o}n+="
${e[i].group}
${a.key}${a.value.replace(//g,">")}
",this.container.innerHTML=n}},o.prototype.setTitleContent=function(e){this.headerElement.textContent=e},o.prototype.onMouseDown=function(){this.isMouseDown=!0,this.element.removeEventListener("mousemove",this.onMouseMove),this.bringToFront()},o.prototype.onMouseMove=function(e){!0!==this.isMouseDown&&(e.preventDefault(),e.stopPropagation())},o.prototype.onMouseUp=function(){this.isMouseDown=!1,this.element.addEventListener("mousemove",this.onMouseMove)},o.prototype.bringToFront=function(){if(!this.element.hasClass("bf-pinned")){let e=document.querySelector(".bf-pinned");e&&e.removeClass("bf-pinned"),this.element.addClass("bf-pinned")}},o.prototype.showTips=function(){this.tipsElement&&this.body.insertBefore(this.tipsElement,this.body.childNodes[1])},o.prototype.setTips=function(e,t){this.tipsElement&&this.tipsElement.remove();var n={default:"bf-panel-tips",loading:"bf-panel-loading"},i=n[t]||n.default,o=a.create("div",i);o.textContent=e,this.tipsElement=o,this.showTips()},o.prototype.hideTips=function(){this.tipsElement&&this.tipsElement.remove()},o.prototype.setContainerHeader=function(e){if("String"==typeof e);else{e.style.right="100%",e.style.bottom="100%",document.body.appendChild(e);var t=e.offsetHeight;document.body.removeChild(e),e.removeAttribute("style"),e.style.marginTop=`-${t}px`,this.body.style.paddingTop=`${t}px`,this.header.appendChild(e)}},o.prototype.setContainerFooter=function(e){"String"==typeof e||this.footer.appendChild(e)},o.prototype.close=function(){this.destroy(),this.eventManager.fireEvent("Close"),this.isShow=!1,window.removeEventListener("resize",this.initPosition.bind(this))},o.prototype.hide=function(e){this.isShow=!1,this.element.style.display="none",!0!==e&&this.eventManager.fireEvent("Hide")},o.prototype.show=function(e){this.isShow=!0,this.element.style.display="",!0!==e&&this.eventManager.fireEvent("Show"),this.bringToFront(),this.initPosition()},o.prototype.clear=function(){this.container.innerHTML=""},o.prototype.toggle=function(){this.isShow?this.element.style.display="none":(this.element.style.display="",this.bringToFront()),this.isShow=!this.isShow},o.prototype.addControl=function(e){this.getControls().push(e),this.container.appendChild(e.element)},o.prototype.getControls=function(){return this._controls},o.prototype.getControl=function(e){return this.getControls().getObjectByAttribute("id",e)},o.prototype.setHtml=function(e){this.container.innerHTML=e},o.prototype.addClass=function(e){this.element.addClass(e)},o.prototype.removeClass=function(e){this.element.removeClass(e)},o.prototype.setHeight=function(e){this.element.style.height=`${e}px`},o.prototype.setWidth=function(e){this.element.style.width=`${e}px`},o.prototype.setHeader=function(e){this._opt.title=e,this.headerElement.textContent=e},o.prototype.getTitle=function(){return this._opt.title},o.prototype.isDisplay=function(){return"none"!=this.element.style.display},o.prototype.initPosition=function(){this.isShow&&this.drag&&(n.PanelPositions[this._opt.className]?(this.element.style.left=`${n.PanelPositions[this._opt.className].left}px`,this.element.style.top=`${n.PanelPositions[this._opt.className].top}px`,this.drag.resize(this.element)):this.drag.resize(this.element,null,!0))},n.Panel=o}(),function(){var e=t.Web.Lang.Utility.Namespace.ensureNamespace(t,"Bimface.UI.Panel"),n=new t.Bimface.UI.Control.ControlConfig;e.PanelConfig=function(){return Object.assign({},n,{className:"bf-panel",title:"panel",css:{width:"200px",height:"200px",minWidth:"200px",minHeight:"200px"},enableDrag:!0,enableSizable:!0})}}(),function(){let e=t.Web.Lang.Utility.Namespace.ensureNamespace(t,"Bimface.UI.Tree"),n=function(e){var t=this;t._root=e,t.element=e.element,t.eventManager=e.eventManager,t.addEventListener=e.addEventListener,t.removeEventListener=e.removeEventListener,e.addEventListener("SelectionChanged",(function(e,n){t._selectionNode==e?n||(t._selectionNode=null):(t._selectionNode&&t._selectionNode.deselect(),t._selectionNode=e)}))};n.prototype={getRoot:function(){return this._root},getChecked:function(){var e=this._root,t=[];return function n(a,i){var o=a.getCheckedState(),l=a.element.getAttribute("data-filter");switch(o){case"unchecked":break;case"checked":if(a==e)t="all";else{var s=Object.assign({},i);s[l]=a.id,t.push(s)}break;case"half":var r=a.getControls(),c=Object.assign({},i);a!=e&&(c[l]=a.id);for(var d=0,f=r.length;d0)for(var i=0;i`,this.checkbox=s,o.appendChild(s),s.addEventListener("click",(function(e){var t=s.getElementsByTagName("input")[0].checked,a=t?"unchecked":"checked";n.setCheckedState(!t),n.eventManager.fireEvent("CheckedChanged",a,n)}))}var r=i.create("span","bf-tree-name");if(t=t||BimfaceLanguage.bf_panel_modelTree_nameUndefined,r.textContent=t,n.setTitle(t),r.addEventListener("click",(function(e){if(n._enabled)if(n._selection){var t=this.hasClass("bf-selected");this.hasClass("bf-restore")||n.eventManager.fireEvent("NodeNameClicked",n,!t),t?n.deselect():n.select(),t=!t,n._selectionState=t?"selected":"unselected",n.eventManager.fireEvent("SelectionChanged",n,t)}else n.toggleExpansion()})),a.icon&&(this.icon=a.icon,o.appendChild(a.icon.element),this.icon.addEventListener("Change",(function(e){n._iconState="default"==e,n.setChildrenIconState(e),n.eventManager.fireEvent("IconChanged",n,e)}))),a.hasExpand){var c=i.create("span","bf-icon");o=this.treeNode;c.addEventListener("click",(function(){let e;n.toggleExpansion(),e=!o.hasClass("bf-collapse"),n.eventManager.fireEvent("ExpandChanged",n,e)})),o.appendChild(c),this.expandIcon=c}o.appendChild(r),this.element.appendChild(o),this.treeName=r,this.id=e,this.name=t},o.prototype.addChildNode=function(e){var t=this;if(this._controls.push(e),e._parent=this,!this.subTree){var n=i.create("span","bf-icon"),a=this.treeNode;this.expandIcon=n,n.addEventListener("click",(function(){t.toggleExpansion()})),a.insertBefore(n,this.treeNode.children[0]),this.subTree=i.create("div","bf-sub-tree"),this.element.appendChild(this.subTree)}this.subTree.appendChild(e.element),e.addEventListener("CheckedChanged",(function(e,n){n._opt.propagation&&t.setParentCheckedState(n),t.eventManager.fireEvent("CheckedChanged",e,n)})),e.addEventListener("SelectionChanged",(function(e,n,a){t.eventManager.fireEvent("SelectionChanged",e,n,a)})),e.addEventListener("IconChanged",(function(n,a){e._opt.propagation&&t.setParentIconState(e),t.eventManager.fireEvent("IconChanged",n,a)}))},o.prototype.removeChildNode=function(e){var t=this._controls.getObjectByAttribute("id",e);this.subTree.removeChild(t.element),this._controls.removeObjectByAttribute("id",e)},o.prototype.getChildNode=function(){return this.subTree},o.prototype.getCheckedState=function(){return this._checkedState},o.prototype.getIconState=function(){return this._iconState},o.prototype.getSelectionState=function(){return this._selectionState},o.prototype.getConfig=function(){return this._opt},o.prototype.getParent=function(){return!!this._parent&&this._parent},o.prototype.setCheckedState=function(e){var t=this._opt;this._checkedState=e?"checked":"unchecked",t.hasCheckbox&&this.checkbox&&(this.checkbox.getElementsByTagName("input")[0].checked=e,this.checkbox.toggleClass("bf-checked",e),this.checkbox.toggleClass("bf-unchecked",!e),this.checkbox.removeClass("bf-half")),this.setChildrenCheckedState(e)},o.prototype.setIconState=function(e){this.icon&&(this.icon.setState(e),this.setChildrenIconState(e),this._iconState="default"==e)},o.prototype.setParentCheckedState=function(e){var t=this.getControls();if(t&&t.length>0){for(var n,a=0,i=t.length;a0)for(var a=0;a0){for(var n=!1,a=0,i=t.length;a0)for(var a=0;a{if(e.indexOf(a)<0&&r.getViewer()._opt.Buttons.indexOf(a)>-1&&o){const o=new t.Bimface.UI.Button.ButtonConfig;o.id=a;const l=e.insertAfter(i,a);e=l.res,n.push({button:new t.Bimface.UI.Button.ToggleButton(o),index:l.index})}return e.indexOf(a)>-1&&!o&&e.removeByValue(a),{oldButtons:e,newButtons:n}},u=(e,n,a)=>{const i=e.getControls();e.destroy();var o=t.Bimface.UI.Toolbar.ToolbarConfig();o.id="MainToolbar",o.title="主菜单",o.className="bf-toolbar bf-toolbar-bottom",o.element=r.UI._opt.domElement,o.buttons=[...new Set(n)],r.UI.addToolbar(o),i.map(((e,t)=>{e.id.split("-").length>1&&r.getToolbar("MainToolbar").insertControl(t,e)})),a&&a.length>0&&a.forEach((e=>{-1==n.indexOf(e.button.id)&&r.getToolbar("MainToolbar").insertControl(e.index,e.button)}))};i&&(o.onclick=function(){var e=document.activeElement,t=document.getElementById("cloud-main-canvas");t&&e!=t&&"INPUT"!=e.tagName&&"TEXTAREA"!=e.tagName&&t.focus()})}}(),t.Web.Lang.Utility.Namespace.ensureNamespace(t,"Bimface.Application").WebApplicationRfaConfig=function(){let e=t.Bimface.Viewer.Viewer3DConfig();return e.enableExplosion=!0,Object.assign({},e,{Toolbars:["MainToolbar","ModelTree"],Buttons:["Home","Measure","Section","Property","Explode","Setting","FullScreen"],EnableFamilyList:!0})},function(){var e=t.Web.Lang.Utility.Namespace.ensureNamespace(t,"Bimface.Application");let n=Object.freeze({ViewAdded:"ViewAdded",ViewLoading:"ViewLoading",ComponentsSelectionChanged:"ComponentsSelectionChanged",ComponentsHoverChanged:"ComponentsHoverChanged",Error:"Error"});e.WebApplicationRfaEvent=n}(),t.Web.Lang.Utility.Namespace.ensureNamespace(t,"Bimface.Application.UI.Button").Home=function(e,n){var a=e.getViewer(),i=t.Bimface.UI.Control.ControlEvent,o=new t.Bimface.UI.Button.ButtonConfig;o.id="Home",o.title=BimfaceLanguage.bf_btn_home,o.className="bf-button gld-bf-home";var l=new t.Bimface.UI.Button.Button(o);if("ViewerDrawing"==a.viewerType)l.addEventListener(i.Click,(function(){a.home()}));else{var s="Viewer3D"===a.viewerType,r=t.Bimface.Viewer.Viewer3DEvent;l.addEventListener(i.Click,(function(){var e=n.getControl("ViewButton");e&&e.recover();var t=n.getControl("Interactive");if(t&&t.hideDropDownList(),s)if(a.getViewHouseIsLoaded())a.getEventManager().fireEvent(r.ToolbarHomeClick);else{var i=a.getCustomHomeview()||a.getDefaultHomeview();a.setCameraStatus(i)}else a.home()}))}return l},t.Web.Lang.Utility.Namespace.ensureNamespace(t,"Bimface.Application.UI.Button").OrbitButton=function(e,n){var a=e.getViewer(),i="Viewer3D"===a.viewerType,o=t.Bimface.UI.Control.ControlEvent;if(i){var l=t.Bimface.Viewer.NavigationMode3D,s={OrbitPoint:l.PickWithRect,OrbitCamera:l.Fly},r=new t.Bimface.UI.Button.ButtonConfig;r.id="OrbitButton",r.title="导航",r.inheritTitle=!0;var c=new t.Bimface.UI.Button.ComboBox(r),d=new t.Bimface.UI.Button.ButtonConfig;d.id="OrbitPoint",d.title="绕构件旋转",d.className="bf-button gld-bf-orbitpoint";var f=new t.Bimface.UI.Button.ComboBoxOptionButton(d),m=new t.Bimface.UI.Button.ButtonConfig;m.id="OrbitCamera",m.title="绕相机旋转",m.className="bf-button gld-bf-orbitcamera";var p=new t.Bimface.UI.Button.ComboBoxOptionButton(m);return c.addControl(f),c.addControl(p),c.addEventListener(o.Change,(function(e){n.getControl("Section").setCheckedState(!1),a.setNavigationMode(s[e.id])})),c}console.log("The API is not supported on this viewer.")},t.Web.Lang.Utility.Namespace.ensureNamespace(t,"Bimface.Application.UI.Button").ViewButton=function(e,n){var a=e.getViewer(),i=(e.getRootElement(),"Viewer3D"===a.viewerType),o=t.Bimface.UI.Control.ControlEvent;if(!i)return void console.log("The API is not supported on this viewer.");var l=new t.Bimface.UI.Button.ButtonConfig;l.id="Home",l.title="Home",l.className="bf-button gld-bf-scene";var s=new t.Bimface.UI.Button.ComboBoxOptionButton(l),r=new t.Bimface.UI.Button.ButtonConfig;r.id="ViewButton",r.title="视角",r.className="bf-combobox viewButton",r.inheritTitle=!0,r.home=s;var c=new t.Bimface.UI.Button.TouchComboBox(r);c.element.addClass(BimfaceLanguage.name);const d={Top:"top",Bottom:"bottom",East:"right",South:"front",West:"left",North:"back"};for(const e in d){const n=d[e];var f=new t.Bimface.UI.Button.ButtonConfig;f.id=e,f.title=e,f.className="bf-button";var m=new t.Bimface.UI.Button.ComboBoxOptionButton(f);m.setHtml(``),c.addControl(m)}return c.addEventListener(o.Change,(function(e){a.setView(e.id)})),document.querySelector(".bf-mobile").addEventListener("touchstart",(function(e){if("canvas"==e.target.tagName.toLowerCase()){var t=document.querySelector(".gld-bf-view.bf-checked");t&&t.click()}})),c},t.Web.Lang.Utility.Namespace.ensureNamespace(t,"Bimface.Application.UI.Button").RectangleSelect=function(e,n){var a=e.getViewer(),i="Viewer3D"===a.viewerType,o=t.Bimface.UI.Control.ControlEvent,l=t.Bimface.Viewer.Viewer3DEvent;if(i){var s=new t.Bimface.UI.Button.ButtonConfig;s.id="RectangleSelect",s.title=BimfaceLanguage.bf_btn_zoom,s.className="bf-button gld-bf-zoomrect";var r=new t.Bimface.UI.Button.ToggleButton(s),c=function(e){e.end&&r.setCheckedState(!1)};return r.addEventListener(o.StateChange,(function(e){e?(a.enableZoomRect(!0),a.addEventListener(l.RectSelection,c)):(a.enableZoomRect(!1),a.removeEventListener(l.RectSelection,c))})),r}console.log("The API is not supported on this viewer.")},t.Web.Lang.Utility.Namespace.ensureNamespace(t,"Bimface.Application.UI.Button").RectZoom=function(e,n){var a=e.getViewer(),i=t.Bimface.UI.Control.ControlEvent,o=t.Bimface.Viewer.ViewerDrawingEvent,l=new t.Bimface.UI.Button.ButtonConfig;l.id="RectZoom",l.title=BimfaceLanguage.bf_btn_zoom,l.className="bf-button gld-bf-zoomrect";var s=new t.Bimface.UI.Button.ToggleButton(l),r=function(){setTimeout((function(){s.setCheckedState(!1)}),200)};return s.addEventListener(i.StateChange,(function(e){if(e)a.rectZoom(),a.addEventListener(o.ViewZoomed,r);else{var t=n.getControl("Measure");t&&t._checked?a.getViewer().mouseEditorMgr.activeEditorByName("measure"):a.getViewer().mouseEditorMgr.activeEditorByName("pick"),a.removeEventListener(o.ViewZoomed,r)}})),s},t.Web.Lang.Utility.Namespace.ensureNamespace(t,"Bimface.Application.UI.Panel").PropertyPanel=function(e,n,a){var i=t.Bimface.Viewer.Viewer3DEvent,o=t.Bimface.Application.WebApplication3DEvent;let l=e.getDefaultModel(),s=!1;var r=function(e){for(var t=[],n=0;n{let a=[];if(a=t?t[e.modelId]||[]:e.getSelectedComponents(),n||1!==a.length){if(a.length>1||1===a.length&&n&&n.id!==a[0])return n=void 0,!0}else n={modelId:e.modelId,id:a[0]}})),n},f=function(t,n,a){if(s)return;let i=a?t:d(t);h.setTips(BimfaceLanguage.bf_panel_modelTree_loading,"loading"),h.clear(),i?!h._tab||h._tab&&"components"==h._tab.getCurrentOption().id?e.getModel(i.modelId).getComponentProperty(i.id,(function(e){h.setTips(BimfaceLanguage.bf_panel_props_propSel),h.setData(e.properties)}),(function(e){c(),h.setData("")})):(!h._tab||h._tab&&"components"!=h._tab.getCurrentOption().id)&&(t?e.getModel(i.modelId).getMaterialProperty(i.id,(function(e){if(h.setTips(BimfaceLanguage.bf_panel_props_matSel),e&&e.length>0){var t=r(e);h.setData(t,!0)}else h.setData("")}),(function(){h.setTips(BimfaceLanguage.bf_panel_props_matSel),h.setData("")})):h.setData("")):"rfaView"==l._data.renderType?l.getFamilyProperty(l._data.familyTypeId,(function(e){h.setTips(BimfaceLanguage.bf_panel_props_propSel),h.setData(e.properties)}),(function(e){c(),h.setData("")})):(c(),h.setData(""))},m=function(t){if(s=!0,!t.isSelected)return h.setData("");h.setTips(BimfaceLanguage.bf_panel_modelTree_loading,"loading"),h.clear(),(!h._tab||h._tab&&"components"==h._tab.getCurrentOption().id)&&e.getModel(t.modelId).getComponentProperty(t.id,(function(e){h.setTips(BimfaceLanguage.bf_panel_props_propSel),h.setData(e.properties),s=!1}),(function(e){c(),h.setData(""),s=!1}))},p=function(t){let n=d();if(!n&&"rfaView"!=l._data.renderType)return"components"==t?h.setTips(BimfaceLanguage.bf_panel_props_propSel):h.setTips(BimfaceLanguage.bf_panel_props_matSel),h.setData("");"components"==t?f(n,0,!0):(h.setData(""),e.getModel(n.modelId).getMaterialProperty(n.id,(function(e){if(e&&e.length>0){var t=r(e);h.setData(t,!0)}else c(),h.setData("")}),(function(){c(),h.setData("")})))},u=new t.Bimface.UI.Panel.PanelConfig;u.title=BimfaceLanguage.bf_btn_props,u.className="bf-panel property-panel",u.id="property";let g=t.Web.Lang.Utility.ClientHelper.getIsDesktop();u.css=g?{right:"10px",top:"10px",width:"300px",height:"416px"}:{left:0,top:0,width:"100%",height:"100%"};var h=new t.Bimface.UI.Panel.Panel(u);h.setTips(BimfaceLanguage.bf_panel_props_propSel),e.propertyPanel=h,h.addClass("property-panel"),h.addClass("bf-property-panel");var b=[{id:"components",name:BimfaceLanguage.bf_panel_props_props},{id:"material",name:BimfaceLanguage.bf_panel_props_mats}];if(!this._tab&&e._manifest.Features.HasMaterialProperty){var v=new t.Bimface.UI.Tabs.TabsConfig;v.className="bf-property-tab",v.default="components",v.options=b;var y=new t.Bimface.UI.Tabs.Tabs(v);y.addEventListener(t.Bimface.UI.Control.ControlEvent.Change,(function(e){p(e.id)})),h._tab=y,h.setContainerHeader(y.element)}return p("components"),e.addEventListener(o.ModelTreeNodeClicked,m),e.addEventListener(i.SelectionChangedInModel,f),h.addEventListener("Hide",(function(){e.removeEventListener(i.SelectionChangedInModel,f),e.removeEventListener(o.ModelTreeNodeClicked,m)})),h.initProperty=p,h},t.Web.Lang.Utility.Namespace.ensureNamespace(t,"Bimface.Application.UI.Button").Property=function(e,n){var a=e.getViewer(),i=e.getRootElement(),o="Viewer3D"===a.viewerType,l=t.Bimface.UI.Control.ControlEvent,s=t.Bimface.Viewer.Viewer3DEvent;if(o){var r=new t.Bimface.UI.Button.ButtonConfig;r.id="Property",r.title=BimfaceLanguage.bf_btn_props,r.className="bf-button gld-bf-properties";var c,d=new t.Bimface.UI.Button.ToggleButton(r);return d.addEventListener(l.StateChange,(function(o){o?((c=new t.Bimface.Application.UI.Panel.PropertyPanel(a,i,n)).addEventListener("Hide",(function(){d.setCheckedState(!1)})),i.appendChild(c.element),c.bringToFront(),c.initPosition(),e.addPanel(c)):(c.close(),e.removePanel(c.id)),a.getEventManager().fireEvent(s.ButtonOnToolbarClicked,{id:r.id,isChecked:o})})),d}console.log("The API is not supported on this viewer.")},t.Web.Lang.Utility.Namespace.ensureNamespace(t,"Bimface.Application.UI.Button").MobileProperty=function(e,n){var a=e.getViewer(),i=e.getRootElement(),o="Viewer3D"===a.viewerType,l=t.Bimface.UI.Control.ControlEvent;if(o){var s=new t.Bimface.UI.Button.ButtonConfig;s.id="MobileProperty",s.title="属性",s.className="bf-button gld-bf-properties";var r,c=new t.Bimface.UI.Button.ToggleButton(s);return c.addEventListener(l.StateChange,(function(){c.isChecked()?((r=new t.Bimface.Application.UI.Panel.PropertyPanel(a,i,n)).addEventListener("Hide",(function(){"none"!=r.element.style.display&&i.removeChild(r.element),c.setCheckedState(!1)})),i.appendChild(r.element),e.addPanel(r)):(i.removeChild(r.element),e.removePanel(r.id))})),c}console.log("The API is not supported on this viewer.")};class p{constructor(){}static formatDistance(e,t){if(null==e)return null;let n=t.precision,a=t.scale||1,i=t.unit,o=1;return"Centimeter"===i?o=10:"Meter"===i?o=1e3:"Kilometer"===i&&(o=1e6),"m"===t.defaultUnit&&(a*=1e3),e*=a,e/=o,this.formatPrecision(e,n)}static formatArea(e,t){let n=t.precision,a=t.scale,i=t.unit,o=1;return"Centimeter"===i?o=100:"Meter"===i?o=1e6:"Kilometer"===i&&(o=1e13),"m"===t.defaultUnit&&(a*=1e3),e*=Math.pow(a,2),e/=o,this.formatPrecision(e,n)}static formatCubic(e,t){let n=t.precision,a=t.scale,i=t.unit,o=1;return"Centimeter"===i?o=1e3:"Meter"===i?o=1e9:"Kilometer"===i&&(o=1e19),"m"===t.defaultUnit&&(a*=1e3),e*=Math.pow(a,3),e/=o,n?this.toLocaleString(this.formatPrecision(e,n)):this.formatPrecision(e,n)}static getPostFix(e,t){if("None"===e)return"";let n={None:"",Kilometer:"km",Meter:"m",Centimeter:"cm",Millimeter:"mm"}[e];return t?n+="²":n=" "+n,n}static toLocaleString(e){let t=e.toString();return t=t.replace(/\d{1,3}(?=((\d{3})+(\.\d+)?)$)/g,"$&,"),t}static formatPrecision(e,t){if(e=parseInt(Math.round(e*Math.pow(10,t)))/Math.pow(10,t),0!=t){let n=e.toFixed(t).split(".");e=n[0]+"."+n[1]}else e=this.toLocaleString(e);return e}}!function(){var e=t.Web.Lang.Utility.Namespace.ensureNamespace(t,"Web.Lang.Utility.Dom");var n;t.Web.Lang.Utility.Namespace.ensureNamespace(t,"Bimface.Application.UI.Panel").MeasurePanel=function(a,i){let o=t.Web.Lang.Utility.ClientHelper.getIsDesktop();var l,s="Viewer3D"===(n=a._opt.viewer).getViewerType(),r=e.create("div","bf-tab-container"),c=e.create("div","bf-tab-body"),d=e.create("div","bf-tab-foot"),f=e.create("ul","bf-measure-tab"),m=e.create("div","bf-measure-tabface");const u=a.getMeasureType();m.innerHTML=`
  • \n \n
  • `,f.innerHTML=`
  • \n \n
  • \n ${o?`\n
  • \n \n
  • \n `:""}\n
  • \n \n
  • \n
  • \n \n
  • \n ${o?"":`\n
  • \n \n
  • \n `}\n ${o&&s?`\n
    \n
  • \n \n
  • \n
    \n `:""}\n `;for(var g=a.type,h=f.querySelectorAll(".bf-measure-tab-item"),b=0;b${BimfaceLanguage.bf_panel_measure_clearAll}
    `,d.addEventListener("click",(function(){a.clear()}));var B=e.create("span","bf-clear-all gld-bf-measure-settings");B.addEventListener("click",(function(e){M(),e.preventDefault(),e.stopPropagation()})),r.appendChild(f),r.appendChild(c),o&&(r.appendChild(d),d.appendChild(B));var w={Millimeter:"mm",Centimeter:"cm",Meter:"m",Kilometer:"km"},L=function(e){e?(l.setTitleContent(BimfaceLanguage.bf_btn_measure),l.element.querySelector(".bf-close").style.display="block",T.style.display="none",r.style.display="block"):(l.element.querySelector(".bf-close").style.display="none",l.setTitleContent(BimfaceLanguage.bf_panel_measure_setting),T.style.display="block",r.style.display="none")},M=function(e){L(!1);var n,i=a.getUnits(),o=a.getPrecision();"object"==typeof o&&(o=o.distance),n=`
      \n
    • \n ${BimfaceLanguage.bf_panel_measure_units} :\n
      \n
    • \n
    • ${BimfaceLanguage.bf_panel_measure_unitsTip}
    • \n
    • \n ${BimfaceLanguage.bf_panel_measure_precision} :\n
      \n
    • \n\n
    `,I.innerHTML=n;var l=new t.Bimface.Application.Button({type:"ComboBox",id:"units",inheritTitle:!0,className:"bf-combobox",options:{},handles:{Change:function(e){}}});for(var s in w){var r={type:"ComboBoxOptionButton",title:f=w[s],id:s,className:"bf-button",html:`${f}`};l.addControl(new t.Bimface.Application.Button(r))}l.setSelectedControlById(i.distance),I.querySelector(".bf-measure-lengthUnits .unit").appendChild(l.element),l.element.onclick=function(){c.element.removeClass("bf-expand")};var c=new t.Bimface.Application.Button({type:"ComboBox",id:"units",inheritTitle:!0,className:"bf-combobox",options:{},handles:{Change:function(e){}}}),d={0:"0",1:"0.0",2:"0.00",3:"0.000"};for(var s in d){var f;r={type:"ComboBoxOptionButton",title:f=d[s],id:s.toString(),className:"bf-button",html:`${f}`};c.addControl(new t.Bimface.Application.Button(r))}c.setSelectedControlById(o),I.querySelector(".bf-measure-precision .unit").appendChild(c.element),c.element.onclick=function(){l.element.removeClass("bf-expand")},x.innerHTML=`
    \n ${BimfaceLanguage.bf_panel_measure_save} ${BimfaceLanguage.bf_general_cancel}\n
    `,x.querySelector(".save").onclick=function(){let e=c.getCurrentControl().id,n=l.getCurrentControl().id;a.setPrecision({distance:e,elevation:e,angle:e}),a.setUnits({distance:n,...a.type===t.Bimface.Plugins.Measure.MeasureTypeOption.Elevation?{}:{elevation:n}}),L(!0),S(a.type,{}),a.getEventManager().fireEvent("MeasureParamsUpdated")},x.querySelector(".cancel").onclick=function(){L(!0)}},T=e.create("div","bf-setting-container"),I=e.create("div","bf-setting-body"),x=e.create("div","bf-setting-foot");T.appendChild(I),T.appendChild(x);var S=function(e,n){let i,o=a.getUnits(),l="None"!=o.distance&&`${w[o.distance]}`||"",s="None"!=o.elevation&&`${w[o.elevation]}`||"";switch(e){case t.Bimface.Plugins.Measure.MeasureTypeOption.Distance:var r=void 0!==n.distance?_(n.distance):"--",d=void 0!==n.distanceX?_(n.distanceX):"--",f=void 0!==n.distanceY?_(n.distanceY):"--",m=void 0!==n.distanceZ?_(n.distanceZ):"--";i=`
      \n
    • ${BimfaceLanguage.bf_panel_measure_distance}:\n ${r}${l}\n \n
    • \n
    • X: ${d}
    • \n
    • Y: ${f}
    • \n
    • Z: ${m}
    • \n
    `,c.innerHTML=i,c.querySelector(".gld-bf-reset-box").addEventListener("click",(function(){a.reset()}));break;case t.Bimface.Plugins.Measure.MeasureTypeOption.Angle:let e=void 0!==n.angle?p.formatPrecision(n.angle,a.getMeasureParams().precision):"--";i=`
      \n
    • ${BimfaceLanguage.bf_panel_measure_angle}:\n ${e} °\n
    • \n
    `,c.innerHTML=i,c.querySelector(".gld-bf-reset-box").addEventListener("click",(function(){a.reset()}));break;case t.Bimface.Plugins.Measure.MeasureTypeOption.MinimumDistance:r=void 0!==n.distance?_(n.distance):"--";i=`
      \n
    • ${BimfaceLanguage.bf_panel_measure_mindis}:\n ${r}${l}\n
    • \n
    `,c.innerHTML=i;break;case t.Bimface.Plugins.Measure.MeasureTypeOption.Elevation:let o="--";n.points&&(o=_(n.points[0].z),0==o.split(" ")[0]&&(o=`±${o}`)),i=`
      \n
    • ${BimfaceLanguage.bf_panel_measure_elevation}:\n ${o} ${s}\n \n
    • \n
    `,c.innerHTML=i,c.querySelector(".gld-bf-reset-box").addEventListener("click",(function(){a.reset()}));break;case t.Bimface.Plugins.Measure.MeasureTypeOption.LaserClearDistance:i=`
      \n
    • ${BimfaceLanguage.bf_panel_measure_laser}\n \n
    • \n
    `,c.innerHTML=i,c.querySelector(".gld-bf-reset-box").addEventListener("click",(function(){a.clear()}));break;case t.Bimface.Plugins.Measure.MeasureTypeOption.Volume:var u=n.volumeResult?p.formatCubic(n.volumeResult,a.getMeasureParams()):"--";i=`
      \n
    • ${BimfaceLanguage.bf_panel_measure_volume}:\n ${u} ${l} ³\n ${BimfaceLanguage.bf_panel_measure_volumeTip}\n \n
    • \n
    `,c.innerHTML=i,c.querySelector(".gld-bf-reset-box").addEventListener("click",(function(){a.clear()}))}},_=function(e){return p.formatDistance(e,a.getMeasureParams())},k=new t.Bimface.UI.Panel.PanelConfig;if(k.title=BimfaceLanguage.bf_btn_measure,k.id="MeaurePanel",k.css=o?{right:"10px",bottom:"270px",width:"200px",height:"240px"}:{maxWidth:"414px",left:"50%",transform:"translate(-50%)",bottom:"0.12em",width:"100%",height:"2em"},k.enableSizable=!1,k.className="bf-panel bf-measurement-panel",a.addEventListener(t.Bimface.Plugins.Measure.MeasureEvent.Measuring,(function(e){S(e.type,{})})),a.addEventListener(t.Bimface.Plugins.Measure.MeasureEvent.Measured,(function(e){S(e.type,e),e.type==t.Bimface.Plugins.Measure.MeasureTypeOption.MinimumDistance&&(a.measureItem.setMinDistanceLine(e),a.measureItem.draw())})),a.addEventListener(t.Bimface.Plugins.Measure.MeasureEvent.MeasureSelected,(function(e){let t=f.querySelectorAll(".bf-measure-tab-item");for(const e of t)e.removeClass("bf-active");for(const n of t)if(n.getAttribute("data-type")===e.type){n.addClass("bf-active");break}a.setMeasureType(e.type),S(e.type,e)})),a.addEventListener(t.Bimface.Plugins.Measure.MeasureEvent.MeasureUnselected,(function(e){S(a.type,{})})),a.addEventListener(t.Bimface.Plugins.Measure.MeasureEvent.Reset,(function(){S(a.getMeasureType(),{})})),l=new t.Bimface.UI.Panel.Panel(k),n=a._opt.viewer,l.container.appendChild(r),l.container.appendChild(T),!o){var E=i.offsetWidth,N=i.offsetHeight;l.element.style.fontSize=100*Math.min(E,N,414)/750+"px",l.element.addClass("measure-panel"),u===t.Bimface.Plugins.Measure.MeasureTypeOption.Distance||l.element.addClass("miniStyle");var P=l.element.querySelector(".bf-measure-tab"),U=l.element.querySelector(".bf-close");U.innerHTML=`${BimfaceLanguage.bf_general_exit}`,P.measure=a,P.id="measureTabs",P.addEventListener("click",(function(e){P.hasClass("tab-open")?(P.removeClass("tab-open"),l.element.removeClass("tab-open")):(P.addClass("tab-open"),l.element.addClass("tab-open"));const n=e.target.parentElement.dataset.type,a=document.querySelector(`[data-type='${n}']`);l.element[(n===t.Bimface.Plugins.Measure.MeasureTypeOption.Distance?"remove":"add")+"Class"]("miniStyle"),S(n,{}),P.measure.setMeasureType(n),P.querySelector(".bf-active").removeClass("bf-active"),a.addClass("bf-active"),m.innerHTML="",m.appendChild(a.cloneNode(!0)),e.preventDefault(),e.stopPropagation()}),!0),m.addEventListener("click",(function(e){P.hasClass("tab-open")?(P.removeClass("tab-open"),l.element.removeClass("tab-open")):(P.addClass("tab-open"),l.element.addClass("tab-open"))})),U.addEventListener("click",(function(e){U.click()}),!0),l.element.appendChild(P),l.element.appendChild(m)}return"rfaView"==n._data.renderType&&f.addClass("bf-measure-tab-rfa"),S(u,{}),l}}();var u,g,h=function(e){var t=e.getToolbar("MainToolbar");if(t){var n=t.getControl("Section");if(n){var a=n.getToolbar();if(a)a.getControl("SectionBox").setCheckedState(!1),a.getControl("SectionPlane").setCheckedState(!1),a.getControl("PickSectionPlane").setCheckedState(!1);else n.setCheckedState(!1)}}},b=function(e){h(e),v(e),y(e)},v=function(e){var t=e.getPlugin("SectionPlane");t&&(t.exit(),e.removePlugin("SectionPlane"))},y=function(e){var t=e.getPlugin("SectionBox");t&&(t.exit(),e.removePlugin("SectionBox"))};!function(){let e=t.Web.Lang.Utility.Namespace.ensureNamespace(t,"Bimface.Application.UI.Button");t.Web.Lang.Utility.Namespace.ensureNamespace(t,"Web.Lang.Utility.Dom"),t.Web.Lang.Utility.ClientHelper.getIsIphone();e.Measure=function(e,n){var a=e.getViewer(),i=e.getRootElement(),o="Viewer3D"===a.viewerType,l=t.Bimface.UI.Control.ControlEvent,s=t.Bimface.Viewer.Viewer3DEvent;if(o){var r=new t.Bimface.UI.Button.ButtonConfig;r.id="Measure",r.title=BimfaceLanguage.bf_btn_measure,r.className="bf-button gld-bf-measure";var c,d,f=new t.Bimface.UI.Button.ToggleButton(r),m=new t.Bimface.Plugins.Measure.MeasureConfig;return m.viewer=a,f.addEventListener(l.StateChange,(function(o){if(o){t.Web.Lang.Utility.ClientHelper.getIsDesktop();h(e);var l=n.getControl("Explode");l&&l.setCheckedState(!1),(d=e.getPlugin("Measure"))||((d=new t.Bimface.Plugins.Measure.Measure(m)).id="Measure",e.addPlugin(d)),d.switchOn(),(c=new t.Bimface.Application.UI.Panel.MeasurePanel(d,i)).addEventListener("Hide",(function(){f.setCheckedState(!1)})),i.appendChild(c.element),c.bringToFront(),c.initPosition(),e.addPanel(c)}else e.removePanel(c.id),c.close(),c=null,d.switchOff();a.getEventManager().fireEvent(s.ButtonOnToolbarClicked,{id:r.id,isChecked:o})})),f}console.log("The API is not supported on this viewer.")}}(),function(){let e=t.Web.Lang.Utility.Namespace.ensureNamespace(t,"Bimface.Application.UI.Button");t.Web.Lang.Utility.Namespace.ensureNamespace(t,"Web.Lang.Utility.Dom"),t.Web.Lang.Utility.ClientHelper.getIsIphone();e.DrawingMeasure=function(e,n){var a=e.getViewer(),i=e.getRootElement(),o=t.Bimface.UI.Control.ControlEvent,l=new t.Bimface.UI.Button.ButtonConfig;l.id="DrawingMeasure",l.title=BimfaceLanguage.bf_btn_measure,l.className="bf-button gld-bf-measure";var s,r,c=new t.Bimface.UI.Button.ToggleButton(l),d=t.Bimface.Viewer.ViewerDrawingEvent,f=new t.Bimface.Plugins.Measure.MeasureConfig;return f.viewer=a,c.addEventListener(o.StateChange,(function(n){n?((r=e.getPlugin("DrawingMeasure"))||((r=new t.Bimface.Plugins.Measure.Measure(f)).id="DrawingMeasure",e.addPlugin(r)),r.switchOn(),(s=new t.Bimface.Application.UI.Panel.DrawingMeasurePanel(r,i)).addEventListener("Hide",(function(){c.setCheckedState(!1)})),i.appendChild(s.element),s.bringToFront(),s.initPosition(),e.addPanel(s)):(e.removePanel(s.id),s.close(),s=null,r.switchOff()),a.getEventManager().fireEvent(d.ButtonOnToolbarClicked,{id:"Measure",isChecked:n})})),c}}(),t.Web.Lang.Utility.Namespace.ensureNamespace(t,"Bimface.Application.UI.Button").Annotation=function(e,n){var a=e.getViewer();let i="Viewer3D"==a.viewerType;a.viewerType;var o=t.Bimface.UI.Control.ControlEvent,l=new t.Bimface.UI.Button.ButtonConfig;l.id="Annotation",l.title="批注",l.className="bf-button gld-bf-notes";var s=new t.Bimface.UI.Button.Button(l),r=new t.Bimface.Plugins.Annotation.AnnotationToolbarConfig;r.viewer=e.getViewer();var c=self._annotation=new t.Bimface.Plugins.Annotation.AnnotationToolbar(r),d=t.Bimface.Plugins.Annotation.AnnotationToolbarEvent;return s._annotationManager=c.getAnnotationManager(),s._annotationToolbar=c,e._plugins.push(s),s.addEventListener(o.Click,(function(){n.hide();var e=n.getControl(i?"Measure":"DrawingMeasure");e&&e.setCheckedState(!1),c.show(),c.addEventListener(d.Saved,(function(){n.show()})),c.addEventListener(d.Cancelled,(function(){n.show()}))})),s},u=t.Web.Lang.Utility.Namespace.ensureNamespace(t,"Web.Lang.Utility.Dom"),t.Web.Lang.Utility.Namespace.ensureNamespace(t,"Bimface.Application.UI.Panel").SectionBoxPanel=function(e){var n=e.getViewer(),a=(e.getRootElement(),new t.Bimface.UI.Panel.PanelConfig);a.title=BimfaceLanguage.bf_panel_section_box,a.id="SectionBoxPanel",a.css={right:"10px",bottom:"60px",width:"200px",height:"200px"},a.className="bf-panel bf-section-panel bf-sectionBox-panel",a.enableSizable=!1;var i,o=new t.Bimface.UI.Panel.Panel(a),l=e.getPlugin("SectionBox");return function(){var a=t.Bimface.Application.UI.Toolbar.SectionToolbarConfig(),s=t.Bimface.Application.UI.Toolbar.Toolbar(a,e),r=s.getControl("SectionReset");(i=s.getControl("SectionBoxVisiable")).setCheckedState(!1);let c=s.getControl("SectionBoxReverse");r.addEventListener(t.Bimface.UI.Control.ControlEvent.Click,(function(){i.setCheckedState(!1),c.setCheckedState(!1)})),s.getControl("SectionRecalculation").addEventListener(t.Bimface.UI.Control.ControlEvent.Click,(function(){i.setCheckedState(!1),c.setCheckedState(!1)}));var d=u.create("div","bf-range-container"),f=`
      \n
    • \n ${BimfaceLanguage.bf_panel_section_X}\n
      \n
    • \n
    • \n ${BimfaceLanguage.bf_panel_section_Y}\n
      \n
    • \n
    • \n ${BimfaceLanguage.bf_panel_section_Z}\n
      \n
    • \n
    `;if(d.innerHTML=f,o.addControl(s),o.container.appendChild(d),l&&l._sectionBox)l.showBox(),l.update();else{if(n._sectionBox)l=n._sectionBox;else{var m=new t.Bimface.Plugins.Section.SectionBoxConfig;m.viewer=n,m.id="SectionBox",l=new t.Bimface.Plugins.Section.SectionBox(m)}e.removePlugin("SectionBox"),e.addPlugin(l)}n.render()}(),o.hideBox=function(){i&&i.setCheckedState(!0)},o},t.Web.Lang.Utility.Namespace.ensureNamespace(t,"Bimface.Application.UI.Button").Section=function(e,n){let a;if(t.Web.Lang.Utility.ClientHelper.getIsDesktop()){let i=new t.Bimface.UI.Button.ButtonConfig;i.id="Section",i.title=BimfaceLanguage.bf_btn_section,i.className="bf-button bf-toolbar-button gld-bf-sectionbox",a=new t.Bimface.UI.Button.Button(i);let o=new t.Bimface.UI.Toolbar.ToolbarConfig;o.id="SectionSub",o.title=BimfaceLanguage.bf_btn_section,o.className="bf-sub-toolbar",o.buttons=["PickSectionPlane","SectionPlane","SectionBox"],n=new t.Bimface.Application.UI.Toolbar.Toolbar(o,e),a.addToolbar(n)}else{var i=e.getViewer(),o=e.getRootElement(),l="Viewer3D"===i.viewerType,s=t.Bimface.UI.Control.ControlEvent;if(!l)return void console.log("The API is not supported on this viewer.");var r,c=new t.Bimface.UI.Button.ButtonConfig;c.id="Section",c.title=BimfaceLanguage.bf_btn_section,c.className="bf-button gld-bf-section-axial",a=new t.Bimface.UI.Button.ToggleButton(c),a.addEventListener(s.StateChange,(function(l){if(l){var s=n.getControl("Measure");s&&s.setCheckedState(!1);var c=n.getControl("Explode");c&&c.setCheckedState(!1),(r=new t.Bimface.Application.UI.Panel.PickSectionPlanePanel(e)).addEventListener("Hide",(function(){a.setCheckedState(!1)})),o.appendChild(r.element),r.bringToFront(),e.addPanel(r)}else b(e),r&&(e.removePanel(r.id),r.close(),i.render())}))}return a},t.Web.Lang.Utility.Namespace.ensureNamespace(t,"Bimface.Application.UI.Button").SectionBox=function(e,n){var a,i,o,l=e.getViewer(),s=e.getRootElement(),r="Viewer3D"===l.viewerType,c=t.Bimface.UI.Control.ControlEvent,d=t.Bimface.Viewer.Viewer3DEvent;if(r){var f=function(t,n){var a=e.getPlugin("SectionBox");if(a){var i=[n.from,n.to];a.setProgress(t,i),l.render()}},m=function(){var e=l._sectionBox;if(e){var t=e.getProgress("x");a.setProgress({from:t[0],to:t[1]});var n=e.getProgress("y");i.setProgress({from:n[0],to:n[1]});var s=e.getProgress("z");o.setProgress({from:s[0],to:s[1]})}},p=new t.Bimface.UI.Button.ButtonConfig;p.id="SectionBox",p.title=BimfaceLanguage.bf_panel_section_box,p.className="bf-button gld-bf-sectionbox1";var u,g=new t.Bimface.UI.Button.ToggleButton(p);return g.addEventListener(c.StateChange,(function(r){if(r)!function(){var t=e.getToolbar("MainToolbar"),a=t.getControl("Measure");a&&a.setCheckedState(!1);var i=t.getControl("Explode");i&&i.setCheckedState(!1);var o=n.getControl("SectionPlane");o&&o.setCheckedState(!1);var l=n.getControl("PickSectionPlane");l&&l.setCheckedState(!1);var s=e.getPlugin("SectionPlane");s&&(e.removePlugin(s.id),s.exit())}(),(u=new t.Bimface.Application.UI.Panel.SectionBoxPanel(e)).addEventListener("Hide",(function(){g.setCheckedState(!1)})),s.appendChild(u.element),u.initPosition(),a=new t.Web.Lang.Utility.Dom.multipleRange({element:u.element.querySelector("#sectionX"),min:0,max:100,defaultColor:"#555555",currentColor:"#999999",change:function(e){f("x",e)}}),i=new t.Web.Lang.Utility.Dom.multipleRange({element:u.element.querySelector("#sectionY"),min:0,max:100,defaultColor:"#555555",currentColor:"#999999",change:function(e){f("y",e)}}),o=new t.Web.Lang.Utility.Dom.multipleRange({element:u.element.querySelector("#sectionZ"),min:0,max:100,defaultColor:"#555555",currentColor:"#999999",change:function(e){f("z",e)}}),m(),l.addEventListener("Rendered",m),e.addPanel(u),l.render();else{var c=e.getPlugin("SectionBox");c&&c.hideBox(),u&&(e.removePanel(u.id),u.close(),l.render())}l.getEventManager().fireEvent(d.ButtonOnToolbarClicked,{id:p.id,isChecked:r})})),g}console.log("The API is not supported on this viewer.")},function(){var e=t.Web.Lang.Utility.Namespace.ensureNamespace(t,"Web.Lang.Utility.Dom");let n=t.Web.Lang.Utility.Namespace.ensureNamespace(t,"Bimface.Application.UI.Panel"),a=function(e){return(e=parseFloat(e))<0?360+e:e};n.SectionPlanePanel=function(n){let i=t.Web.Lang.Utility.ClientHelper.getIsDesktop();var o=n.getViewer(),l=n.getRootElement(),s=new t.Bimface.UI.Panel.PanelConfig;s.title=BimfaceLanguage.bf_panel_section_plane,s.id="SectionPlanePanel",s.css=i?{right:"10px",bottom:"170px",width:"200px",height:"90px"}:{maxWidth:"414px",left:"50%",transform:"translate(-50%)",bottom:"0.12em",width:"100%",height:"1.02em"},s.className="bf-panel bf-section-panel bf-sectionPlane-panel",s.enableSizable=!1;var r=new t.Bimface.UI.Panel.Panel(s),c=n.getPlugin("SectionPlane");if(c){let e=c.getProgress();c.setDirection(c.getDirection()),c.setPlane(c.getPlane()),c.setProgress(e)}return function(){var s=e.create("div","bf-section-plane-head"),d=new t.Bimface.UI.Select.SelectConfig;if(c&&(d.default=c._plane),d.className="bf-select bf-select-axial",i){var f=new t.Bimface.UI.Tabs.TabsConfig,m=e.create("div","bf-section-select");f.className="bf-tabs";let a=[{id:"X",name:"X"},{id:"Y",name:"Y"},{id:"Z",name:"Z"}];f.options=a,f.element=m;let i=new t.Bimface.UI.Tabs.Tabs(f);var p=new t.Bimface.Application.UI.Button.SectionPlaneVisiable(n);r.toggleButton=p;var u=new t.Bimface.Application.UI.Button.SectionDirection(n);i.addEventListener("Change",(function(e){c&&(c.setPlane(e.id),c.coordinateSystem.update(),o.render())})),s.appendChild(m)}else{d.options=[{id:"X",name:"X"},{id:"Y",name:"Y"},{id:"Z",name:"Z"}];var g=new t.Bimface.UI.Select.Select(d);r.select=g;p=new t.Bimface.Application.UI.Button.SectionPlaneVisiable(n);r.toggleButton=p;u=new t.Bimface.Application.UI.Button.SectionDirection(n);g.addEventListener("Change",(function(e){c&&(c.setPlane(e.id),c.coordinateSystem.update(),o.render())})),s.appendChild(g.element)}var h=e.create("div","bf-section-range"),b=new t.Web.Lang.Utility.Dom.range({element:h,min:0,max:100,cur:50,defaultColor:"#666",currentColor:"#666",isShowProgress:!1,input:function(e){c&&(c.setProgress(e),o.render())},change:function(e){c&&(c.setProgress(e),o.render())}}),v=e.create("div","bf-section-range");v.innerHTML='';var y=e.create("div","bf-section-range");y.innerHTML='';var C=new t.Web.Lang.Utility.Dom.range({element:v,min:-179,max:180,cur:0,defaultColor:"#666",currentColor:"#666",isShowProgress:!1,input:function(e){c&&(c.setRotateAngle(void 0,a(e)),o.render())},change:function(e){c&&(c.setRotateAngle(void 0,a(e)),o.render())}}),B=new t.Web.Lang.Utility.Dom.range({element:y,min:-179,max:180,cur:0,defaultColor:"#666",currentColor:"#666",isShowProgress:!1,input:function(e){c&&(c.setRotateAngle(a(e),void 0),o.render())},change:function(e){c&&(c.setRotateAngle(a(e),void 0),o.render())}});if(o.addEventListener("Rendered",(function(){var e=o._sectionPlane;if(e){var t=e.getProgress();0==i&&b.setProgress(t);var n=e.getRotateAngle();C.setProgress(n.angleB>180?n.angleB-360:n.angleB),B.setProgress(n.angleA>180?n.angleA-360:n.angleA)}})),r.container.appendChild(s),0==i&&r.container.appendChild(h),i?s.appendChild(p.element):s.appendChild(u.element),c&&i&&c._sectionTool)c.showPlane();else{var w=new t.Bimface.Plugins.Section.SectionPlaneConfig;w.viewer=o,w.id="SectionPlane",c=new t.Bimface.Plugins.Section.SectionPlane(w),n.removePlugin("SectionPlane"),n.addPlugin(c)}if(!i){var L=l.offsetWidth,M=l.offsetHeight;c.hidePlane(),r.element.style.fontSize=100*Math.min(M,L,414)/750+"px",r.element.addClass("section-panel");var T=r.element.querySelector(".bf-section-plane-head");r.element.querySelector(".bf-close").innerHTML=`${BimfaceLanguage.bf_general_exit}`,r.element.appendChild(T)}o.render()}(),r}}(),t.Web.Lang.Utility.Namespace.ensureNamespace(t,"Bimface.Application.UI.Button").SectionPlane=function(e,n){var a=e.getViewer(),i=e.getRootElement(),o="Viewer3D"===a.viewerType,l=t.Bimface.UI.Control.ControlEvent,s=t.Bimface.Viewer.Viewer3DEvent;if(o){var r=new t.Bimface.UI.Button.ButtonConfig;r.id="SectionPlane",r.title=BimfaceLanguage.bf_panel_section_plane,r.className="bf-button gld-bf-section-axial";var c,d=new t.Bimface.UI.Button.ToggleButton(r);return d.addEventListener(l.StateChange,(function(o){if(a.getEventManager().fireEvent(s.ButtonOnToolbarClicked,{id:r.id,isChecked:d.isChecked()}),o){!function(){var t=e.getToolbar("MainToolbar"),a=t.getControl("Measure");a&&a.setCheckedState(!1);var i=t.getControl("Explode");i&&i.setCheckedState(!1);var o=n.getControl("SectionBox");o&&o.setCheckedState(!1);var l=e.getPlugin("SectionBox");l&&e.removePlugin(l.id);var s=n.getControl("PickSectionPlane"),r=e.getPlugin("SectionPlane");s&&(s._checked&&r&&(e.removePlugin(r.id),r.hidePlane(),r.exit()),s.setCheckedState(!1));var c=e.getPlugin("SectionPlaneForAreaTree");c&&(c.exit(),e.removePlugin("SectionPlaneForAreaTree"))}();var l=a.getDomElement();(c=new t.Bimface.Application.UI.Panel.SectionPlanePanel(e)).addEventListener("Hide",(function(){d.setCheckedState(!1),l.removeAttribute("style")})),l.style.cursor="default",i.appendChild(c.element),c.bringToFront(),e.addPanel(c),c.initPosition(),a.render()}else{var f=e.getPlugin("SectionPlane");f&&f.hidePlane(),c&&(e.removePanel(c.id),c.close(),a.render())}})),d}console.log("The API is not supported on this viewer.")},function(){let e=t.Web.Lang.Utility.Namespace.ensureNamespace(t,"Web.Lang.Utility.Dom");t.Web.Lang.Utility.Namespace.ensureNamespace(t,"Bimface.Application.UI.Panel").PickSectionPlanePanel=function(n){let a=t.Web.Lang.Utility.ClientHelper.getIsDesktop(),i=n.getViewer(),o=n.getRootElement(),l=new t.Bimface.UI.Panel.PanelConfig;l.title=BimfaceLanguage.bf_panel_section_selectPlane,l.id="PickSectionPlanePanel",l.css=a?{right:"10px",bottom:"170px",width:"200px",height:"90px"}:{maxWidth:"414px",left:"50%",transform:"translate(-50%)",bottom:"0.12em",width:"100%",height:"1.02em"},l.className="bf-panel bf-section-panel bf-pickSectionPlane-panel",l.enableSizable=!1;let s,r=new t.Bimface.UI.Panel.Panel(l);if(function(){let e=new t.Bimface.UI.Toolbar.ToolbarConfig;e.id="SectionToolbar",e.className="bf-pick-section-plane",e.buttons=["SectionPlaneVisiable","PickSectionPlaneReset"],s=t.Bimface.Application.UI.Toolbar.Toolbar(e,n),r.sectionToolbar=s,r.addControl(s)}(),!a){var c=o.offsetWidth,d=o.offsetHeight;r.element.style.fontSize=100*Math.min(d,c,414)/750+"px",r.element.addClass("section-panel");var f=e.create("div","bf-button gld-bf-section-plane-pick"),m=r.element.querySelector(".bf-close"),p=r.element.querySelector(".gld-bf-reset-box");m.innerHTML=`${BimfaceLanguage.bf_general_exit}`,r.element.querySelector(".bf-pick-section-plane").insertBefore(f,r.element.querySelector(".gld-bf-hide-slice")),f.addEventListener("touchend",(function(e){i.enableSnap(!0),C.show(),s.getControl("SectionPlaneVisiable").setCheckedState(!1);var t=n.getPlugin("SectionPlane");t&&t.hidePlane()}));let a=new t.Bimface.Viewer.SnapMode,l=t.Bimface.Viewer.SnapObject.Face;a.setSnap3DList([l]),i.setSnapMode(a),i.enableSnap(!0);let u,g,h=(e,t,n,a,o)=>{let l=i.getViewer().cameraControl;if(null!=e){var s=l.scene.drawingToWorld(e);e.copy(s)}if(null!=t){var r=l.scene.drawingToWorld(t[0]),c=l.scene.drawingToWorld(t[1]);t[0].copy(r),t[1].copy(c)}return{pickPoint:e,pickLine:t,pickPlane:n,normal:a,userId:o}},b=e=>{if(C.showAuxBall){let e=n.getPlugin("SectionPlane");u=e.getOriginProgress(u),e.setOriginProgress(u)}},v=(e,t)=>{if(C.showAuxBall){const e=.4;n.getPlugin("SectionPlane").setOriginProgress(u+(t?t*e:0)),i.render()}else{let t=i.getViewer().pickToPoint(e,5),n=t?h(t.pickPoint,t.pickLine,t.pickPlane,t.face.normal,t.userId):{};i.snap.snapByPoint(n)}},y=e=>{if(C.showAuxBall);else{let a=i.getViewer().pickToPoint(e,5),o=n.getPlugin("SectionPlane");if(!a)return;C.showBall();let l=i.sceneToWorld(a.pickPoint);if(i.enableSnap(!1),o&&o._sectionTool)o.showPlane();else{n.removePlugin("SectionPlane");let e=new t.Bimface.Plugins.Section.SectionPlaneConfig;e.viewer=i,e.id="SectionPlane",e.exitSectionBox=!1,o=new t.Bimface.Plugins.Section.SectionPlane(e),n.addPlugin(o),s.getControl("SectionPlaneVisiable").setCheckedState(!1)}let r=-2;"m"===i._defaultUnit&&(r/=1e3),o.setPositionByPlane(l,a.face.normal,r),i.render()}},C=new t.Bimface.Plugins.AuxMobile.AuxMobile({viewer:i,editor:{touchMoveCallback:v,touchEndCallback:y,touchStartCallback:b}});n.auxMobile=C,C.canvas.addEventListener("touchstart",(e=>{let t=e.touches[0];g={x:t.pageX,y:t.pageY},C.onTouchStart(e,g)})),C.canvas.addEventListener("touchmove",(e=>{let t=e.touches[0];g={x:t.pageX,y:t.pageY},C.onTouchMove(e,g)})),C.canvas.addEventListener("touchend",(e=>{C.onTouchEnd(e,g),g=null})),p.addEventListener("click",(e=>{C.show()})),r.addEventListener("Close",(e=>{C.destroy()}))}return r}}(),t.Web.Lang.Utility.Namespace.ensureNamespace(t,"Bimface.Application.UI.Button").PickSectionPlane=function(e,n){var a=e.getViewer(),i=e.getRootElement(),o="Viewer3D"===a.viewerType,l=t.Bimface.UI.Control.ControlEvent,s=t.Bimface.Viewer.Viewer3DEvent;if(o){var r=new t.Bimface.UI.Button.ButtonConfig;r.id="PickSectionPlane",r.title=BimfaceLanguage.bf_panel_section_selectPlane,r.className="bf-button gld-bf-section-plane-pick";var c,d=new t.Bimface.UI.Button.ToggleButton(r);return d.addEventListener(l.StateChange,(function(o){if(a.getEventManager().fireEvent(s.ButtonOnToolbarClicked,{id:r.id,isChecked:d.isChecked()}),o){!function(){var t=e.getToolbar("MainToolbar"),a=t.getControl("Measure");a&&a.setCheckedState(!1);var i=t.getControl("Explode");i&&i.setCheckedState(!1);var o=n.getControl("SectionBox");o&&o.setCheckedState(!1);var l=e.getPlugin("SectionBox");l&&l.hideBox();var s=n.getControl("SectionPlane");s&&s.setCheckedState(!1);var r=e.getPlugin("SectionPlane");r&&r.hidePlane();var c=e.getPlugin("SectionPlaneForAreaTree");c&&(c.exit(),e.removePlugin("SectionPlaneForAreaTree"))}(),f=a.getDomElement(),(c=new t.Bimface.Application.UI.Panel.PickSectionPlanePanel(e)).addEventListener("Hide",(function(){a.enableSnap(!1),d.setCheckedState(!1),f.removeAttribute("style")})),f.style.cursor="default",i.appendChild(c.element),c.bringToFront(),e.addPanel(c),c.initPosition();let o=new t.Bimface.Viewer.SnapMode,l=t.Bimface.Viewer.SnapObject.Face;o.setSnap3DList([l]),a.setSnapMode(o),a.enableSnap(!0)}else{var l=e.getPlugin("SectionPlane");l&&l.hidePlane(),c&&(e.removePanel(c.id),c.close(),a.render()),a.enableSnap(!1)}var f})),a.addEventListener(s.MouseClicked,(n=>{const{normal:i,worldPosition:o,objectId:l,snapPoint:s}=n,r=a.snap&&a.snap.isOpen,c=s&&"Plane"==s.type,f=d._checked;if(r&&f&&a.removeSelectedId([l]),!(f&&r&&c))return;a.enableSnap(!1),o.addScalar(2);let m=e.getPlugin("SectionPlane");if(m&&m._sectionTool)m.setPositionByPlane(o,i,0),m.showPlane();else{e.removePlugin("SectionPlane");let n=new t.Bimface.Plugins.Section.SectionPlaneConfig;n.viewer=a,n.id="SectionPlane",n.exitSectionBox=!1,m=new t.Bimface.Plugins.Section.SectionPlane(n),m.setPositionByPlane(o,i,0),e.addPlugin(m)}a.render()})),d}console.log("The API is not supported on this viewer.")},t.Web.Lang.Utility.Namespace.ensureNamespace(t,"Bimface.Application.UI.Button").SectionBoxVisiable=function(e,n){var a=e.getViewer(),i="Viewer3D"===a.viewerType,o=t.Bimface.UI.Control.ControlEvent;if(i){var l=new t.Bimface.UI.Button.ButtonConfig;l.id="SectionBoxVisiable",l.title=BimfaceLanguage.bf_tip_section_hide,l.className="bf-button gld-bf-box-hide";var s=new t.Bimface.UI.Button.ToggleButton(l);return s.addEventListener(o.StateChange,(function(t){var n=e.getPlugin("SectionBox");n&&(t?n.hideBox():n.showBox()),a.render()})),s}console.log("The API is not supported on this viewer.")},t.Web.Lang.Utility.Namespace.ensureNamespace(t,"Bimface.Application.UI.Button").SectionPlaneVisiable=function(e,n){var a=e.getViewer(),i="Viewer3D"===a.viewerType,o=t.Bimface.UI.Control.ControlEvent;if(!i)return void console.log("The API is not supported on this viewer.");var l=new t.Bimface.UI.Button.ButtonConfig;l.id="SectionPlaneVisiable",l.title=BimfaceLanguage.bf_tip_section_hide,l.className="bf-button gld-bf-hide-slice";var s=new t.Bimface.UI.Button.ToggleButton(l);let r=t.Web.Lang.Utility.ClientHelper.getIsDesktop();return s.addEventListener(o.StateChange,(function(t){var n=e.getPlugin("SectionPlane");n?t?(n.hidePlane(),r||e.auxMobile&&e.auxMobile.hideCanvas&&e.auxMobile.hideCanvas()):(n.showPlane(),r||e.auxMobile&&e.auxMobile.hideCanvas&&e.auxMobile.showCanvas()):s.setCheckedState(!1),a.render()})),s},t.Web.Lang.Utility.Namespace.ensureNamespace(t,"Bimface.Application.UI.Button").SectionRotate=function(e,n){var a=e.getViewer(),i="Viewer3D"===a.viewerType,o=t.Bimface.UI.Control.ControlEvent;if(i){var l=new t.Bimface.UI.Button.ButtonConfig;l.id="SectionRotate",l.title="旋转",l.className="bf-button gld-bf-rotate-box";var s=new t.Bimface.UI.Button.ToggleButton(l);return s.addEventListener(o.Click,(function(){var e=t.Bimface.Viewer.SectionBoxMode;s.isChecked()?a.setSectionBoxMode(e.Rotate):a.setSectionBoxMode(e.Default)})),s}console.log("The API is not supported on this viewer.")},t.Web.Lang.Utility.Namespace.ensureNamespace(t,"Bimface.Application.UI.Button").SectionReset=function(e,n){var a=e.getViewer(),i="Viewer3D"===a.viewerType,o=t.Bimface.UI.Control.ControlEvent;if(i){var l=new t.Bimface.UI.Button.ButtonConfig;l.id="SectionReset",l.title=BimfaceLanguage.bf_tip_section_resetBox,l.className="bf-button gld-bf-reset-box";var s=new t.Bimface.UI.Button.Button(l);return s.addEventListener(o.Click,(function(){var t=e.getPlugin("SectionBox");t&&t.reset(),a.render()})),s}console.log("The API is not supported on this viewer.")},t.Web.Lang.Utility.Namespace.ensureNamespace(t,"Bimface.Application.UI.Button").PickSectionPlaneReset=function(e,n){let a=e.getViewer(),i="Viewer3D"===a.viewerType,o=t.Bimface.UI.Control.ControlEvent;if(!i)return void console.log("The API is not supported on this viewer.");let l=new t.Bimface.UI.Button.ButtonConfig;l.id="PickSectionPlaneReset",l.title=BimfaceLanguage.bf_tip_section_resetBox,l.className="bf-button gld-bf-reset-box";let s=new t.Bimface.UI.Button.Button(l);return s.addEventListener(o.Click,(function(){let t=e.getPanel("PickSectionPlanePanel");if(t){let e=t.sectionToolbar.getControl("SectionPlaneVisiable");e._checked&&e.setCheckedState(!1)}let n=e.getPlugin("SectionPlane");n&&(e.removePlugin(n.id),n.exit()),a.enableSnap(!0),a.render()})),s},t.Web.Lang.Utility.Namespace.ensureNamespace(t,"Bimface.Application.UI.Panel").InformationPanel=function(e){var n=new t.Bimface.UI.Panel.PanelConfig;n.title=BimfaceLanguage.bf_btn_info,n.css={left:"50%",top:"50%",width:"300px",height:"210px",transform:"translate(-50%,-50%)"},n.enableSizable=!1,n.className="bf-panel bf-basicInfo-panel";var a=e.getInformation(),i=new t.Bimface.UI.Panel.Panel(n);let o=e._manifest,l=o.Metadata&&o.Metadata.IntegrateFileCount;var s=`
    \n
      \n ${l?`
    • ${BimfaceLanguage.bf_panel_info_files}${l}
    • `:""}\n
    • ${BimfaceLanguage.bf_panel_info_component}${Number(a.elements).toLocaleString()}
    • \n
    • ${BimfaceLanguage.bf_panel_info_mesh}${Number(a.triangles).toLocaleString()}
    • \n
    • ${BimfaceLanguage.bf_panel_info_vertex}${Number(a.vertices).toLocaleString()}
    • \n
    \n
    Powered by bimface.com
    \n
    `;return i.setHtml(s),i},t.Web.Lang.Utility.Namespace.ensureNamespace(t,"Bimface.Application.UI.Button").Information=function(e,n){var a=e.getViewer(),i=e.getRootElement(),o="Viewer3D"===a.viewerType,l=t.Bimface.UI.Control.ControlEvent,s=t.Bimface.Viewer.Viewer3DEvent;if(o){var r=new t.Bimface.UI.Button.ButtonConfig;r.id="Information",r.title=BimfaceLanguage.bf_btn_info,r.className="bf-button gld-bf-information";var c,d=new t.Bimface.UI.Button.ToggleButton(r);return d.addEventListener(l.StateChange,(function(n){n?c?c.show():((c=new t.Bimface.Application.UI.Panel.InformationPanel(a)).addEventListener("Hide",(function(){d.setCheckedState(!1)})),i.appendChild(c.element),c.bringToFront(),e.addPanel(c)):c.hide(),a.getEventManager().fireEvent(s.ButtonOnToolbarClicked,{id:r.id,isChecked:n})})),d}console.log("The API is not supported on this viewer.")},t.Web.Lang.Utility.Namespace.ensureNamespace(t,"Bimface.Application.UI.Button").FullScreen=function(e,n){var a=e.getViewer(),i=t.Bimface.UI.Control.ControlEvent,o=new t.Bimface.UI.Button.ButtonConfig;o.id="FullScreen",o.title=BimfaceLanguage.bf_btn_fullScreen,o.className="bf-button gld-bf-maximize";var l=new t.Bimface.UI.Button.ChangeButton(o);return l.addEventListener(i.Click,(function(){var e=this.hasClass("gld-bf-maximize");a.enableFullScreen(e)})),t.Web.Lang.Utility.FullScreen.onFullScreenChanged((function(){var e=l.getTitle();l.toggleClassName("gld-bf-maximize"),l.toggleClassName("gld-bf-minimize"),e==BimfaceLanguage.bf_btn_fullScreen_exit?l.setTitle(BimfaceLanguage.bf_btn_fullScreen):l.setTitle(BimfaceLanguage.bf_btn_fullScreen_exit)})),l},t.Web.Lang.Utility.Namespace.ensureNamespace(t,"Bimface.Application.UI.Button").FamilyList=function(e,n){var a=e.getViewer(),i=(a.viewerType,t.Bimface.UI.Control.ControlEvent),o=new t.Bimface.UI.Button.ButtonConfig;o.id="FamilyList",o.title="FamilyList",o.className="bf-combobox bf-family";var l=new t.Bimface.UI.Button.ComboBox(o);let s=a.getDefaultModel();return a.getFamilyTypes((function(e){for(var n=0,a=e.length;n${i.name}`),l.addControl(r),0===n&&(s._data.familyTypeId=i.id)}})),l.addEventListener(i.Change,(function(n){s.showFamilyTypeById(n.id),s._data.familyTypeId=n.id;let i=e.getPanel("property");if(i&&i.initProperty("components"),e.getPanel("ModelTree")){e.getPanel("ModelTree").hide(),e.removePanel("ModelTree");const n=new t.Bimface.Application.UI.Panel.ModelTreePanel(e,e.getToolbar("ModelTree"));e.getRootElement().appendChild(n.element),e.addPanel(n)}a.render()})),l},t.Web.Lang.Utility.Namespace.ensureNamespace(t,"Bimface.Application.UI.Button").LayoutList=function(e,n){let a=e.getViewer(),i=t.Bimface.UI.Control.ControlEvent,o=new t.Bimface.UI.Button.ButtonConfig;o.id="LayoutList",o.title="LayoutList",o.className="bf-combobox bf-family";let l=new t.Bimface.UI.Button.ComboBox(o),s=(a.loadedDrawings.length>0?a.loadedDrawings[0].drawing:a).getViewer().getLayouts(),r=t.Bimface.Viewer.ViewerDrawingEvent;for(let e=0,n=s.length;e${n.name}`),l.addControl(i)}let c={},d={};return l.addEventListener(i.Change,(function(n){let i=e.getPanel("MeaurePanel"),o=e.getToolbar("MainToolbar"),l=o.getControl("Annotation"),s=a.getCurrentViewId();l&&l._enabled&&(c[s]=l._annotationManager.getAnnotationList()),i&&i.hide(),d[s]=a.getCurrentState();let f=t.Web.Lang.Utility.ClientHelper.getIsDesktop();"Model"==n.id?(f||document.querySelector(".gld-bf-measure").setCss({display:"block"}),a.showViewById(0)):(f||document.querySelector(".gld-bf-measure").setCss({display:"none"}),a.showViewById(n.id)),setTimeout((()=>{a.update(!0)}),100),l&&l._enabled&&c[n.id]&&l._annotationManager.setAnnotationList(c[n.id]);let m="Model"==n.id?"0":n.id;d[m]&&a.setState(d[m]);let p=o.getControl("Map");"Model"!=n.id?p&&(p.element.style.display="none"):p&&(p.element.style.display="inline-block");let u="Model"===n.id?0:n.id;a.getEventManager().fireEvent(r.ButtonOnToolbarClicked,{id:"LeftSubToolbar",viewId:u})})),l};const C=t.Bimface.Application.WebApplication3DEvent;var B=function(e,n,a,i=!0,o="default",l){if(e){var s=new t.Bimface.UI.Tree.TreeNodeConfig,r=new t.Bimface.UI.Button.ButtonConfig;r.className="bf-tree-icon",r.defaultClass="gld-bf-untransparent",r.changeClass="gld-bf-transparent",r.title=BimfaceLanguage.bf_panel_modelTree_transparent,s.selection=!0;var c=new t.Bimface.UI.Button.ChangeButton(r);switch(e.type){case"floor":e.type="levelName",s.isChecked=!0,s.hasCheckbox=!0,s.icon=c;break;case"category":e.type="categoryId",s.isChecked=!0,s.hasCheckbox=!0,s.icon=c;break;case"specialty":s.selection=!1;case"root":s.isChecked=!0,s.hasCheckbox=!0,s.selection=!1,s.icon=c;break;case"family":case"familyType":default:s.isChecked=!0,s.hasCheckbox=!0,s.icon=c}e.elementIds&&(e.type="fileId",s.isChecked=!0,s.hasCheckbox=!0,s.icon=c),e.type||(s.isChecked=!0,s.hasCheckbox=!0,s.icon=c),e.items&&e.items.length>0?s.hasExpand=!0:s.hasExpand=!1,s.datas=e;var d=new t.Bimface.UI.Tree.TreeNode(s);if(d.filter=e.type,d.modelId=a,"model"==e.type&&(d.fileId=e.fileIds),"categoryId"==e.type||"root"==e.type||"model"==e.type)d.setData(e.id,e.name);else if(e.elementIds||e.type)e.fileId?d.setData(e.fileId,e.fileId):"specialty"==e.type&&""==e.name?d.setData("",BimfaceLanguage.bf_panel_modelTree_specialtyUndefined):e.name==BimfaceLanguage.bf_panel_modelTree_specialtyUndefined?d.setData("",e.name):d.setData(e.actualName,e.name);else{let t=-1==e.indexOf(".")?e:e.split(".")[1];var f=g?`${g}[${t}]`:`[${t}]`;d.setData(e,f)}return d.setCheckedState(i),d.setIconState(o),d.addEventListener("NodeNameClicked",((e,t)=>{const n="string"==typeof e._opt.datas?{id:e._opt.datas,modelId:a}:{...e._opt.datas,modelId:a};l.fireEvent(C.ModelTreeNodeClicked,Object.assign({isSelected:t},n))})),d.addEventListener("ExpandChanged",((t,i)=>{let o=t.getChildNode();if(e.items&&e.items.length>0&&!o){var s="checked"===t.getCheckedState(),r=t.getIconState()?"default":"change";if("family"==e.type&&(g=e.name),e.items[0].elementIds&&e.items[0].elementIds.length>0)"familyType"!==e.type&&(g=""),e.items.map((e=>{for(var i=0,o=e.elementIds.length;i{e.clearSelectedComponents()}));const n=e.getModel(t.modelId);n&&(n.addSelectedComponentsById(i),n.zoomToSelectedComponents(1),t.treeName.hasClass("bf-selected")||t.treeName.addClass("bf-selected"))}else e.getModels().forEach((e=>{e.clearSelectedComponents()}));e.render()},M=function(e,n){if(e){var a=new t.Bimface.UI.Tree.TreeNodeConfig,i=new t.Bimface.UI.Button.ButtonConfig;i.className="bf-tree-icon",i.defaultClass="gld-bf-untransparent",i.changeClass="gld-bf-transparent",i.title=BimfaceLanguage.bf_panel_modelTree_transparent,a.selection=!1;var o=new t.Bimface.UI.Button.ChangeButton(i);switch(e.type){case"floor":e.type="levelName",a.isChecked=!0,a.hasCheckbox=!0,a.icon=o;break;case"category":e.type="categoryId",a.isChecked=!0,a.hasCheckbox=!0,a.icon=o;break;case"specialty":case"root":a.isChecked=!0,a.hasCheckbox=!0,a.icon=o;break;case"family":case"familyType":default:a.isChecked=!1,a.hasCheckbox=!1}var l=new t.Bimface.UI.Tree.TreeNode(a);if(l.filter=e.type,l.modelId=n,"categoryId"==e.type||"root"==e.type?l.setData(e.id,e.name):e.name==BimfaceLanguage.bf_panel_modelTree_specialtyUndefined?l.setData("",e.name):l.setData(e.actualName,e.name),e.items&&e.items.length>0)for(var s=0,r=e.items.length;s{t.meta;var a=!0,i=e=>{"familyType"===e.type?e.items&&0!==e.items.length||(a=!1):e.items&&e.items.length>0&&i(e.items[0])};t.data&&t.data.length>0&&i(t.data[0]),a?function(e,t,n){var a=n.data,i=n.modelType,o=n.treeType,l="all"!==e.id?e.id:void 0;if(a&&0!=a.length)if("singleModel"==i)for(var s=0,r=(m=a).length;s0)for(let a=0;a1)for(var l=0;l{e.hideAllComponents()})):e.getModel(n.id)&&"oap-osgb2bimtiles"===e.getModel(n.id)._data.workerType?e.getModel(n.id).setVisible(!1):n.filter?"modelId"===n.filter?e.getModel(l).hideAllComponents():e.getModel(i).hideComponentsByObjectData(a):e.getModel(i).hideComponentsById(a):"checked"==o&&("all"==l?e.getModels().forEach((e=>{e.showAllComponents()})):e.getModel(n.id)&&"oap-osgb2bimtiles"===e.getModel(n.id)._data.workerType?e.getModel(n.id).setVisible(!0):n.filter?"modelId"===n.filter?e.getModel(l).showAllComponents():e.getModel(i).showComponentsByObjectData(a):e.getModel(i).showComponentsById(a)),e.render()}},S=function(e){return function(t,n){var a;if("group"===t.filter||"model"===t.filter&&!t.id){let{datas:e}=t.getConfig();a=k(e,[])}else a=_(t);var i=t.modelId,o=t.id;"change"==n?"all"==o?e.getModels().forEach((e=>{e.transparentAllComponents()})):t.filter?"modelId"===t.filter?e.getModel(o).transparentAllComponents():e.getModel(i).transparentComponentsByObjectData(a):e.getModel(i).transparentComponentsById(a):"all"==o?e.getModels().forEach((e=>{e.opaqueAllComponents()})):t.filter?"modelId"===t.filter?e.getModel(o).opaqueAllComponents():e.getModel(i).opaqueComponentsByObjectData(a):e.getModel(i).opaqueComponentsById(a),e.render()}},_=function(e){var t=function(e){if(e._parent){var a=e._parent;"model"===a.filter?n.fileId=a.fileId:"root"!=a.filter&&("type"===a.filter?n.typeId=a._datas.id:n[a.filter]=a.id,t(a))}};if(e.filter){var n={};"type"===e.filter?n.typeId=e._datas.id:n[e.filter]=e.id,t(e)}else{var a=e._parent.fileId;n=a?`${a}.${e.id}`:e.id}return[n]},k=function(e,t){if("group"===e.type)for(let n=0;n{const n=t.getElementsByClassName("bf-panel-body")[0].offsetHeight-61;"block"!==t.getElementsByClassName("bf-panel-container bf-scroll-bar")[0].childNodes[0].style.display&&""!==t.getElementsByClassName("bf-panel-container bf-scroll-bar")[0].childNodes[0].style.display||"componentPanel"!==t.getElementsByClassName("bf-panel-container bf-scroll-bar")[0].childNodes[0].id||(t.getElementsByClassName("bf-panel-container bf-scroll-bar")[0].style.height=n+"px")}),{once:!0})})))}),0);const y=()=>{if(E.length===e.getModelCount()&&"[object Function]"===Object.prototype.toString.call(n)){const t=I(e,E);N=t,n(t),e.addEventListener("SelectionChangedInModel",U);let g=e._opt.domElement;g.getElementsByClassName("bf-panel-search-input")[0]&&g.getElementsByClassName("bf-panel-search-input")[0].addEventListener("input",(function(t){let n=[],h=[],b=[],v=[];const y=t.target.value;if(""==y||isNaN(y)||o.map(((e,t)=>{e===y&&(n.push(i[t]+"["+e+"]"),n.push(l[t]),n.push(s[t]),h.push(r[t]))})),c.map(((e,t)=>{e.indexOf(y)>-1&&(n.push(e),n.push(d[t]),n.push(f[t]),h.push(m[t]),b.push(p[t]),v.push(u[t]))})),i.map(((e,t)=>{e.indexOf(y)>-1&&(n.push(e+"["+o[t]+"]"),n.push(l[t]),n.push(s[t]),h.push(r[t]))})),y)if(g.getElementsByClassName("bf-panel-search-result")[0].style.display="block",g.getElementsByClassName("bf-panel-search-result")[0].textContent="",0===n.length){const e=a.create("div","no-search-result");e.innerText=BimfaceLanguage.bf_panel_search_noresult,g.getElementsByClassName("bf-panel-search-result")[0].append(e)}else{const i=(i,o)=>{for(let l=i;l{e.clearSelectedComponents()}));const a=e.getModel(n[l+2]);let i;if(g.getElementsByClassName("bf-tree-name bf-selected")[0]&&g.getElementsByClassName("bf-tree-name bf-selected")[0].classList.remove("bf-selected"),0!=b.length&&b.length>l/3){let t=[],n=b[l/3];""!==h[l/3]&&(n.fileId=[h[l/3]],delete n.model,delete n.group),e.getViewer().getFilter().getMatchIds([n]).map((e=>{let n=e.split(".").length>1?e:""!==h[l/3]?`${h[l/3]}.${e}`:e;t.push(n)})),i=t,a.addSelectedComponentsById([...i]);let o=v[l/3].toString().trim().split(" "),s=g.getElementsByClassName("bf-sub-tree")[0].children;for(let e=0;e99){let e=0,t=99;i(e,t),t{e=t,t=n.length-t-99>0?t+99:n.length,i(e,t)}))}else i(0,n.length)}else g.getElementsByClassName("bf-panel-search-result")[0].style.display="none"}));const h={};e.getModels().forEach((e=>{h[e.modelId]=e.getSelectedComponents()})),U(h)}};e.getModels().forEach(((t,n)=>{const a=t.getMetaData();a.modelId!==t.modelId&&(a.modelId=t.modelId);t._manifest.Features.HasComponentStructure?t.getModelTree(((g,h,b)=>{const v=(e,n,a,g,h,b)=>{if(e.elementCount&&e.elementCount>0||e.items&&e.items.length>0){n=""===n?e.name:n+" > "+e.name,"family"===e.type&&(a=e.name);let i,o=e.name;c.push(o),d.push(n),f.push(t.modelId),m.push(e.fileId||b||""),i="floor"==e.type?"levelName":"category"==e.type?"categoryId":e.type;let l=JSON.parse(JSON.stringify(h));l[i]=i.indexOf("Id")>0?e.id:e.name,p.push(l),u.push(g),e.items.map(((t,i)=>{v(t,n,a,g.trim()+" "+i,l,e.fileId||b)}))}else e.elementIds&&e.elementIds.map((c=>{i.push(a),o.push(c),l.push(n),s.push(t.modelId),r.push(e.fileId||"")}))};g.map(((t,a)=>{e.getModels().length>1?v(t,"","",n+" "+a,new Object,""):v(t,"","",a+" ",new Object,"")})),E.push({data:g,modelType:h,treeType:b,meta:a}),y()})):(E.push({meta:a}),y())}))};var U=(e,t)=>{if(t&&t.getElementsByClassName("bf-tabs-option undefined active").length>0&&"component"==t.getElementsByClassName("bf-tabs-option undefined active")[0].id&&t.getElementsByClassName("bf-tree-name bf-selected")[0]&&t.getElementsByClassName("bf-tree-name bf-selected")[0].classList.remove("bf-selected"),!N)return;const n=()=>{N._selectionNode&&N._selectionNode.deselect()};let a=null,i=0;for(var o in e)if(e[o]&&e[o].length>0){if(i+=e[o].length,i>1)return void n();a={componentId:e[o][0],modelId:o}}if(!a)return void n();const{componentId:l,modelId:s}=a;let r,c=l;l.includes(".")&&([r,c]=l.split("."));const d=N._root._controls;let f,m,p,u=[];if(E.length>1?d.some(((e,t)=>{if(e.id&&e.id.toString()===s.toString())return f=e,u.push(t),m=E[t]&&E[t].data,!0})):(f=N._root,m=E[0]&&E[0].data),!f||!m)return void n();const g=(e,t)=>{e.items&&e.items.some(((n,a)=>{if(r&&n.fileId&&r.toString()!==n.fileId.toString())return!1;if(n.elementIds){let i=n.elementIds.map((e=>e.toString())).indexOf(c.toString());if(i>=0){for(let t=0;t0)g(n,i);else if(n.id&&n.id.toString()===c.toString())return p=i,!0}))};if(Array.isArray(m)||(m=[m]),m.some(((e,t)=>!(r&&e.fileIds&&!e.fileIds.includes(r))&&(e.fileIds||"floor"!==e.type||1!==m.length?g(e,[...u,t]):g(e,[...u]),!!p||void 0))),!p)return void n();let h=N._root;for(let e=0;e{const n=N.element.parentElement;if(!n||!n.scrollBy)return;const a=e.element.getBoundingClientRect().top,i=e.element.clientHeight,o=a+i,l=n.getBoundingClientRect().top,s=n.clientHeight;if(al+s){const e=a-l-2*i;n.scrollBy({top:e,behavior:t})}},v=N._selectionNode;v&&(b(v),v.deselect()),h.select(),N._selectionNode=h,b(h,"smooth")},A=function(e,t,n,a){"area"==n?e.getDefaultModel().getAreaProperty(a.id,(function(e){e&&e.properties?t.setData(e.properties):t.setData({})})):e.getDefaultModel().getRoomProperty(a.id,(function(e){e&&e.properties?t.setData(e.properties):t.setData({})}))},D="暂无对应空间";t.Web.Lang.Utility.Namespace.ensureNamespace(t,"Bimface.Application.UI.Panel").AreaPanel=function(e){let n=t.Web.Lang.Utility.ClientHelper.getIsDesktop();e.getViewer(),t.Bimface.Viewer.Viewer3DEvent;var a=new t.Bimface.UI.Panel.PanelConfig;a.title=BimfaceLanguage.bf_tip_props_rooms,a.className="bf-panel area-panel",a.id="AreaPropertyPanel",a.css=n?{right:"10px",top:"10px",width:"300px",height:"416px"}:{left:"0",top:"0",width:"100%",height:"100%"};var i=new t.Bimface.UI.Panel.Panel(a);return i.setTips(D),e.areaPanel=i,i};var z=function(e,n,a,i){var o=t.Web.Lang.Utility.ClientHelper.getIsDesktop(),l=e.getViewer();let s=new THREE.Vector3,r=new THREE.Vector3;e._objectTypes[n.id]=n.type,o||i||e.getPanel("ModelTree").hide();var c=e.getPanel("AreaPropertyPanel");if(a){c&&A(l,c,n.type,{id:n.id,modelId:n.modelId});var d=n.elevation,f=n.height,m=n.maxPt,p=n.minPt,u=1600,g=10;"m"===l._defaultUnit&&(u/=1e3,g/=1e3);const a=new THREE.Vector3(m.x,m.y,m.z+f);var h=(new THREE.Box3).setFromPoints([p,a]),v=d+u+g,y=n.boundary;let i=CLOUD.ExtrudeBodyManager.getInstance(l.getViewer()).getNode(n.id);if(y)if(l.hideAllRooms(),i){l.showRoomsById([n.id]),i.geometry.computeBoundingBox(),v=d+(i.geometry.boundingBox.max.z-i.geometry.boundingBox.min.z)+g}else l.createRoom(y,u,n.id),n.modelId&&l.bindRoomByModelId(n.id,n.modelId);i=i||CLOUD.ExtrudeBodyManager.getInstance(l.getViewer()).getNode(n.id);var C=i.explodedDirection.clone().multiplyScalar(i.explodedHeight);v+=C.z;const o=(new THREE.Matrix4).makeTranslation(C.x,C.y,C.z);h.applyMatrix4(o);const b=n.modelId?n.modelId:l.getDefaultModel().modelId;h.applyMatrix4(l.getViewer().getModelManager().getModel(b).transformMatrix),i.preModelExplodedMatrix&&h.applyMatrix4(i.preModelExplodedMatrix),l.setSelectedComponentsById([n.id]);var B=l.getCameraAnimation();l.setCameraAnimation(!1),l.setView(t.Bimface.Viewer.ViewOption.Top),l.zoomToBoundingBox(h),l.setCameraAnimation(B);let w=e.getPlugin("SectionPlane"),L=e.getPanel("PickSectionPlanePanel");L&&(w&&(w.exit(),e.removePlugin("SectionPlane"),w=e.getPlugin("SectionPlane")),L.hide());let M=w||V(l);!1===w&&e.addPlugin(M);let T=e.getPanel("SectionPlanePanel"),I=T&&T.toggleButton;I&&I.setCheckedState(!0);let x=T&&T.select;x&&x.setCurrentOption("Z");let S=e.getPanel("SectionBoxPanel");S&&S.hide();let _=l.getViewer().getBoundingBoxWorld(),k=l.getViewer().getScene().getExpandScalar(),E=(new THREE.Box3).setFromCenterAndSize(_.getCenter(s),_.getSize(r).multiplyScalar(k)),N=E.min.z,P=100-(v-N)/(E.max.z-N)*100;M.setPlane("Z"),M.setDirection("Forward"),M.setProgress(P),M.hidePlane(),CLOUD.GlobalData.ClippingCaps=!0,l.render()}else c&&c.clear(),l.hideAllRooms(),l.getModels().forEach((e=>{e.clearIsolation()})),o||b(e),l.render()},V=function(e){let n=new t.Bimface.Plugins.Section.SectionPlaneConfig;return n.viewer=e,n.id="SectionPlane",n.plane=t.Bimface.Plugins.Section.SectionPlanePlane.Z,n.direction=t.Bimface.Plugins.Section.SectionPlaneDirection.Forward,n.exitSectionBox=!1,new t.Bimface.Plugins.Section.SectionPlane(n)},H=function(e,n,a,i,o){var l=e.getViewer(),s=e.getRootElement();if(n){var r=new t.Bimface.UI.Tree.TreeNodeConfig;r.isChecked=!1,r.hasCheckbox=!1,r.selection=!1,r.className="bf-tree bf-tree-area","area"!=a&&"room"!=a||(r.selection=!0);var c,d,f=new t.Bimface.UI.Tree.TreeNode(r);if(f.type=a,f.modelId=n.modelId,f.setData(n.id,n.name),"area"==a||"room"==a){f.elevation=i,f.height=o,f.boundary=n.boundary,f.maxPt=n.maxPt,f.minPt=n.minPt;var m=new t.Bimface.UI.Button.ButtonConfig;m.className="bf-property-icon",m.title=BimfaceLanguage.bf_tip_props_rooms;var p=new t.Bimface.UI.Button.Button(m);f.addNode(p.element),p.addEventListener("Click",(function(){var n=e.getPanel("AreaPropertyPanel");n||((n=new t.Bimface.Application.UI.Panel.AreaPanel(e)).addEventListener("Close",(function(){e.removePanel(n.id)})),n.addEventListener("Hide",(function(){n.close()})),A(l,n,f.type,{id:f.id,modelId:f.modelId}),s.appendChild(n.element),n.initPosition(),e.addPanel(n))}))}if("areas"==a&&n.areas&&n.areas.length>0&&(c=n.areas,d="area",i=n.elevation,o=n.height),"rooms"==a&&n.rooms&&n.rooms.length>0&&(c=n.rooms,d="room",i=n.elevation,o=n.height),c)for(var u=0;u0&&(n[p].modelId=m,r.addChildNode(H(e,n[p],"rooms")),d=!0),n[p].areas&&n[p].areas.length>0&&(n[p].modelId=m,c.addChildNode(H(e,n[p],"areas")),f=!0);o&&d&&a.addChildNode(r),i&&f&&a.addChildNode(c)};const F=function(e,n){const a=e.getViewer();if(1===a.getModelCount())a.getDefaultModel().getAreas((function(i){if(i&&i.length>0){const o=a._manifest.Features.HasArea,l=a._manifest.Features.HasRoom,s=function(e,n,a,i){if(e.getViewer(),n&&0!=n.length){var o=new t.Bimface.UI.Tree.TreeNodeConfig;o.isChecked=!1,o.hasCheckbox=!1,o.selection=!1,o.className="bf-tree bf-tree-empty";var l=new t.Bimface.UI.Tree.TreeNode(o);l.expand();var s=new t.Bimface.UI.Tree.Tree(l);return W(e,n,l,a,i,!0),s}}(e,i,o,l);n&&n(s)}else n&&n()}));else if(a.getModelCount()>1){let i=[];const o=()=>{if(i.length===a.getModelCount()&&"[object Function]"===Object.prototype.toString.call(n)){const a=function(e,n){(l=new t.Bimface.UI.Tree.TreeNodeConfig).isChecked=!1,l.hasCheckbox=!1,l.selection=!1,l.className="bf-tree bf-tree-empty";var a=new t.Bimface.UI.Tree.TreeNode(l);a.expand();for(var i=new t.Bimface.UI.Tree.Tree(a),o=0;o{const t=e.getMetaData(),n=e._manifest,a=n.Features.HasArea,l=n.Features.HasRoom;a||l?e.getAreas((e=>{i.push({data:e,meta:t,HasArea:a,HasRoom:l}),o()}),(e=>{i.push({error:e,meta:t}),o()})):(i.push({meta:t}),o())}))}};var O=function(e){if(e){var n=new t.Bimface.UI.Tree.TreeNodeConfig;n.isChecked=!0,n.hasCheckbox=!0,n.selection=!1;var a=new t.Bimface.UI.Button.ButtonConfig;a.className="bf-tree-icon",a.defaultClass="gld-bf-untransparent",a.changeClass="gld-bf-transparent",a.title=BimfaceLanguage.bf_panel_modelTree_transparent;var i=new t.Bimface.UI.Button.ChangeButton(a);n.icon=i;var o=new t.Bimface.UI.Tree.TreeNode(n);return o.filter=e.type,o.setData(`${e.fileId}`,e.fileName),o.linkedId=e.linkedBy,o.databagId=e.databagId,o}},R=function(e,n){if(n&&0!=n.length){var a=O({type:"root",fileId:"all",fileName:BimfaceLanguage.bf_panel_modelTree_allFiles});a.expand();var i=new t.Bimface.UI.Tree.Tree(a);if(1===e.getModelCount())for(var o=0,l=(n=t.Web.Lang.Utility.ClientHelper.sortByName(n,"fileName")).length;o1)for(o=0,l=n.length;o{e.hideAllComponents()})):e.getModels().forEach((e=>{e.showAllComponents()}));else if("integrateModel"===a||"singleModel"===a)"unchecked"==o?e.getModel(i).hideAllComponents():e.getModel(i).showAllComponents();else{var l="all"!==n._parent.id?n._parent.id:void 0,s=n.linkedId,r=[{sceneId:`${n.databagId}.${i}`}];l&&(r[0].modelId=l);var c=[];if(s)for(var d=0;d0?e.getModel(l).hideComponentsByObjectData(c):e.getModels().some((e=>{e._data.databagId!=n.databagId||e.hasSet||(e.hideAllComponents(),e.hasSet=!0)})),e.getModel(l).hideComponentsByObjectData(r)):(c.length>0?e.getModel(l).showComponentsByObjectData(c):e.getModels().some((e=>{e._data.databagId==n.databagId&&e.hasSet&&(e.showAllComponents(),e.hasSet=!1)})),e.getModel(l).showComponentsByObjectData(r))}e.render()})),i.addEventListener("IconChanged",(function(t,n){var a=t.filter,i=t.id;if("root"===a)"change"==n?e.getModels().forEach((e=>{e.transparentAllComponents()})):e.getModels().forEach((e=>{e.opaqueAllComponents()}));else if("integrateModel"===a||"singleModel"===a)"change"==n?e.getModel(i).transparentAllComponents():e.getModel(i).opaqueAllComponents();else{var o="all"!==t._parent.id?t._parent.id:void 0,l=t.linkedId,s=[];if(l)for(var r=0;r0?e.getModel(o).transparentComponentsByObjectData(s):e.getModels().some((e=>{e._data.databagId!=t.databagId||e.hasSetChange||(e.transparentAllComponents(),e.hasSetChange=!0)})):s.length>0?e.getModel(o).opaqueComponentsByObjectData(s):e.getModels().some((e=>{e._data.databagId==t.databagId&&e.hasSetChange&&(e.opaqueAllComponents(),e.hasSetChange=!1)}))}e.render()})),i}};const q=function(e,t){if(1===e.getModelCount()&&"integrateModel"===e.getDefaultModel().getMetaData().modelType)e.getDefaultModel().getFiles((n=>{const a=R(e,n);t&&t(a)}));else if(e.getModelCount()>1){let n=[],a=0,i=0;if(e.getModels().forEach((o=>{let l={viewToken:o.viewToken};n.push(l);const s=o.getMetaData();if(l.modelType=s.modelType,l.databagId=s.databagId,"singleModel"===s.modelType){const e=o.modelId.toString();l.fileId=e,l.fileName=s.name,l.fileType=s.fileType}else"integrateModel"===s.modelType?(l.modelId=o.modelId.toString(),l.modelName=s.name,l.fileList=[],a++,o.getFiles((o=>{if(l.fileList=o,i++,a===i){const a=R(e,n);t&&t(a)}}))):l.fileName=s.name})),0===a){const a=R(e,n);t&&t(a)}}};var $=function(e,n){if(e){var a=new t.Bimface.UI.Tree.TreeNodeConfig;a.isChecked=!0,a.selection=!1,a.propagation=!1,a.hasCheckbox=!0;var i=new t.Bimface.UI.Button.ButtonConfig;i.className="bf-tree-icon",i.defaultClass="gld-bf-untransparent",i.changeClass="gld-bf-transparent",i.title=BimfaceLanguage.bf_panel_modelTree_transparent;var o=new t.Bimface.UI.Button.ChangeButton(i);a.icon=o;var l=new t.Bimface.UI.Tree.TreeNode(a);if(l.filter="fileId",l.setData(`${e.fileId}`,e.name),l.linked=[e.linkPathHash],l.databagId=e.databagId,l.modelId=n,e.links&&e.links.length>0)for(var s=0,r=e.links.length;s0)for(var l=0,s=e.data.length;l1)for(l=0;l{e.hideAllComponents()})):e.getModels().forEach((e=>{e.showAllComponents()}));else if("integrateModel"===a)"unchecked"==o?e.getModel(i).hideAllComponents():e.getModel(i).showAllComponents();else{for(var l=n.modelId,s=n.linked,r=[],c=0;c{e.transparentAllComponents()}));else if("integrateModel"===a)e.getModel(i).transparentAllComponents();else{for(var o=t.modelId,l=t.linked,s=[],r=0;r{e.opaqueAllComponents()}));else if("integrateModel"===a)e.getModel(i).opaqueAllComponents();else{for(o=t.modelId,l=t.linked,s=[],r=0;r{const a=Z(e,n);t&&t(a)}));else if(e.getModelCount()>1){let n=[];const a=()=>{if(n.length===e.getModelCount()&&"[object Function]"===Object.prototype.toString.call(t)){const a=Z(e,n);t(a)}};e.getModels().forEach((e=>{const t=e.getMetaData();e._manifest.Features.HasLinkRelation?e.getLinkGraph((e=>{n.push({data:e,meta:t}),a()})):"integrateModel"===t.modelType?e.getFiles((e=>{e.forEach((e=>e.name=e.fileName)),n.push({data:e,meta:t}),a()})):(n.push({meta:t}),a())}))}};var Q=function(e,n,a,i,o){if(e){var l=new t.Bimface.UI.Tree.TreeNodeConfig;l.isChecked=!1,l.hasCheckbox=!1,l.selection=!0;var s=new t.Bimface.UI.Tree.TreeNode(l);return s.modelId=o,s.viewToken=n,s.isIntegrateModel=a,a&&(s.fileId=i),s.setData(e.id,e.name),s}},X=function(e,n,a,i){var o=new t.Bimface.UI.Tree.TreeNodeConfig;o.isChecked=!1,o.hasCheckbox=!1,o.selection=!1;var l=new t.Bimface.UI.Tree.TreeNode(o);if(l.setData(e.fileId,e.fileName),l.modelId=i,e.drawingSheets&&e.drawingSheets.length>0)for(var s=0;s0)for(var i=0;i{if((a=a.drawingList||a)&&a.length>0){a=t.Web.Lang.Utility.ClientHelper.sortByName(a,"viewInfo.name");const i=K(e,a);n&&n(i)}else n&&n()}));else if(1===e.getModelCount()&&"integrateModel"===e.getDefaultModel().getMetaData().modelType)e.getDefaultModel().getFiles((a=>{let i=0,o=0;a.forEach((l=>{const s=l.fileId.toString();i++,e.getDefaultModel().getDrawingsheets(s,(s=>{if(o++,(s=s.drawingList||s)&&(s=t.Web.Lang.Utility.ClientHelper.sortByName(s,"viewInfo.name"),l.drawingSheets=s),o==i){const t=K(e,a);n&&n(t)}}))}))}));else if(e.getModelCount()>1){let a=[],i=0,o=0,l=!1;const s=function(){setTimeout((function(){if(o==i&&!l){const e=ee(0,a);n&&n(e)}}),0)};e.getModels().forEach((e=>{let r={viewToken:e.viewToken};a.push(r);const c=e.getMetaData();if(r.modelType=c.modelType,r.databagId=c.databagId,"singleModel"===c.modelType){const n=e.modelId.toString();r.fileId=n,r.fileName=c.name,r.fileType=c.fileType;e._manifest.Features.HasDrawing&&(i++,e.getDrawingsheets(e._metaDataManager.dataManager._config.modelId,(e=>{o++,(e=e.drawingList||e)&&(e=t.Web.Lang.Utility.ClientHelper.sortByName(e,"viewInfo.name"),r.drawingSheets=e),s()}),(()=>{o++,s()})))}else if("integrateModel"===c.modelType){r.modelId=e.modelId.toString(),r.modelName=c.name,r.fileList=[];e._manifest.Features.HasDrawing&&(l=!0,e.getFiles((l=>{r.fileList=l,l.forEach((l=>{const s=l.fileId.toString();i++,e.getDrawingsheets(s,(e=>{if(o++,(e=e.drawingList||e)&&(e=t.Web.Lang.Utility.ClientHelper.sortByName(e,"viewInfo.name"),l.drawingSheets=e),o==i){const e=ee(0,a);n&&n(e)}}))}))})))}}))}};var ne=function(e,n,a,i){var o=t.Web.Lang.Utility.ClientHelper.getIsDesktop(),l=e.getViewer();if(o||i||e.getPanel("ModelTree").hide(),a){l.getModels().forEach((e=>{e.clearSelectedComponents()}));const e=l.getModel(n.modelId);e.addSelectedComponentsById(n.selectData),e.zoomToSelectedComponents(),l.render()}else l.getModels().forEach((e=>{e.clearSelectedComponents()})),o||b(e),l.render()},ae=function(e,n,a,i){if(n){var o=new t.Bimface.UI.Tree.TreeNodeConfig;o.isChecked=!1,o.hasCheckbox=!1,o.selection=!1,o.className="bf-tree","assembly"!=a&&"group"!=a&&"instances"!=a||(o.selection=!0);var l,s,r,c,d=new t.Bimface.UI.Tree.TreeNode(o);if(d.type=a,d.modelId=i,"instances"==a)d.setData(n.id,n.id),d.selectData=n.elements;else if(d.setData(n.id,n.name),n.instances){var f=[];n.instances.forEach((e=>{f.push.apply(f,e.elements)})),d.selectData=f}if(n.types&&n.types.length>0&&(l=n.types),s="assemblys"==a?"assembly":"group",n.instances&&n.instances.length>0&&(r=n.instances,c="instances"),l)for(var m=0;m0){var s=new t.Bimface.UI.Tree.TreeNode(l);s.setData("group",BimfaceLanguage.bf_panel_modelTree_group),i&&s.expand(),a.addChildNode(s);for(var r=0,c=n.groups.length;r0){l.selection=!1;var d=new t.Bimface.UI.Tree.TreeNode(l);d.setData("assembly",BimfaceLanguage.bf_panel_modelTree_assembly),i&&d.expand(),a.addChildNode(d);for(r=0,c=n.assemblies.length;r{if(a){var i=function(e,n,a){if(e.getViewer(),n&&0!=n.length){var i=new t.Bimface.UI.Tree.TreeNodeConfig;i.isChecked=!1,i.hasCheckbox=!1,i.selection=!1,i.className="bf-tree bf-tree-empty";var o=new t.Bimface.UI.Tree.TreeNode(i);o.expand();var l=new t.Bimface.UI.Tree.Tree(o);return ie(e,n,o,!0),l}}(e,a);n&&n(i)}else n&&n()}));else if(a.getModelCount()>1){let i=[];const o=()=>{if(i.length===a.getModelCount()&&"[object Function]"===Object.prototype.toString.call(n)){const a=function(e,n){(l=new t.Bimface.UI.Tree.TreeNodeConfig).isChecked=!1,l.hasCheckbox=!1,l.selection=!1,l.className="bf-tree bf-tree-empty";var a=new t.Bimface.UI.Tree.TreeNode(l);a.expand();for(var i=new t.Bimface.UI.Tree.Tree(a),o=0;o{const t=e.getMetaData();e._manifest.Features.HasGroup?e.getModelSet((e=>{i.push({data:e,meta:t}),o()}),(e=>{i.push({error:e,meta:t}),o()})):(i.push({meta:t}),o())}))}};var le,se=0,re=[],ce=function(e,n){if(e){var a=new t.Bimface.UI.Tree.TreeNodeConfig;a.isChecked=!1,a.hasCheckbox=!1,a.selection=!1,e.type||(a.selection=!0);var i=new t.Bimface.UI.Tree.TreeNode(a);if(i.setData(e.name,e.name),e.type||(i.network=e.network,i.fileId=le),i.modelId=n,e.items&&e.items.length>0)for(var o=0,l=e.items.length;o1)for(l=0;l{t.fileId!=a.fileId||(e=t.linkedBy)})),e.map((e=>{a.network.map((t=>{var n=`${e}.${t}`;l.push(n)}))}))}else a.network.map((e=>{var t=`${a.fileId}.${e}`;l.push(t)}))}else l=a.network;if(t.Web.Lang.Utility.ClientHelper.getIsDesktop()||o||e.getPanel("ModelTree").hide(),i){n.getModels().forEach((e=>{e.clearSelectedComponents()}));const e=n.getModel(s);e.addSelectedComponentsById(l),e.zoomToSelectedComponents(1)}else n.getModels().forEach((e=>{e.clearSelectedComponents()}));n.render()},me=function(e){return(e=t.Web.Lang.Utility.ClientHelper.sortByName(e,"name")).map((n=>{n.items&&n.items.length>0&&("systemType"==n.type?e=t.Web.Lang.Utility.ClientHelper.sortByRules(n.items,"name"):me(n.items))})),e};const pe=function(e,t,n,a){const i=[];e.getMepSystem(t,(function(e){e.systems?function(e,t,n,a){let i=e.reduce((function(e,t,n){return e[t.systemCategory]=e[t.systemCategory]||{},e[t.systemCategory][t.systemType]=e[t.systemCategory][t.systemType]||[],e[t.systemCategory][t.systemType].push({name:t.name,network:Object.keys(t.network)}),e}),{}),o=[];for(let e in i){o.push({type:"systemCategory",name:e,items:[]});for(let t in i[e])o[o.length-1].items.push({type:"systemType",name:t,items:i[e][t]})}let l=[];t?l.push({type:"fileId",id:t,name:n,items:o}):l=o,a&&a(l)}(e.systems,t,n,(function(e){a&&a(e)})):(se--,a&&a(i))}),(function(){se--,a&&a(i)}))},ue=function(e,t,n,a){if(1===t.getModelCount()){const o=t.getDefaultModel();if("integrateModel"==n){var i=[];o.getFiles((n=>{se=n.length,n.forEach((n=>{let l=n.fileId.toString(),s=n.fileName.toString();re.push({fileId:l,linkedBy:n.linkedBy}),pe(o,l,s,(n=>{if(0!=n.length&&i.push(n[0]),i.length==se){let n=me(i);const o=de(e,t,n);a&&a(o)}}))}))}))}else pe(o,"","",(n=>{let i=me(n);const o=de(e,t,i);a&&a(o)}))}else if(t.getModelCount()>1){let n=[];se=0;let i=0;t.getModels().forEach((o=>{let l={viewToken:o.viewToken};n.push(l);const s=o.getMetaData();if(l.modelType=s.modelType,l.databagId=s.databagId,"singleModel"===s.modelType){const r=o.modelId.toString();l.fileId=r,l.fileName=s.name,l.fileType=s.fileType;o._manifest.Features.HasMEPSystem&&(se++,pe(o,r,s.name,(o=>{if(0!=o.length&&(i++,l.mepData=o[0]),i==se){const i=de(e,t,n);a&&a(i)}})))}else if("integrateModel"===s.modelType){l.modelId=o.modelId.toString(),l.modelName=s.name,l.fileList=[];o._manifest.Features.HasDrawing&&o.getFiles((s=>{l.fileList=s,s.forEach((l=>{const s=l.fileId.toString(),r=l.fileName.toString();se++,pe(o,s,r,(o=>{if(0!=o.length&&(i++,l.mepData=o[0]),i==se){const i=de(e,t,n);a&&a(i)}}))}))}))}}))}};t.Web.Lang.Utility.Namespace.ensureNamespace(t,"Bimface.Application.UI.Panel").DrawingPanel=function(e,n){let a=t.Web.Lang.Utility.ClientHelper.getIsDesktop();e.getViewer(),e.getRootElement();var i=new t.Bimface.UI.Panel.PanelConfig;i.title="楼层平面图",i.id="DrawingPanel",i.css=a?{right:"10px",top:"10px",width:"400px",height:"420px"}:{left:"0",top:"2.68em",width:"100%",bottom:0,paddingTop:0};var o=new t.Bimface.UI.Panel.Panel(i);return a||o.element.addClass("view-panel"),o.setHeader(n.name),o};var ge=function(e){var t=e.getViewer(),n=e.getPanel("AreaPanel"),a=e.getPanel("DrawingPanel");b(e),n&&(n.close(),e.removePanel("AreaPanel")),a&&a.hide(),t.hideAllRooms(),t.getModels().forEach((e=>{e.clearIsolation(),e.opaqueAllComponents(),e.clearSelectedComponents()}))};void 0===Object.assign&&(Object.assign=function(e){if(null==e)throw new TypeError("Cannot convert undefined or null to object");for(var t=Object(e),n=1;n0){var a=n[0],o=b.toModelId(a);if(2==n.length){var l=b.toLinkRevitId(n[0],n[1]),r=l instanceof Object?l.fileId:e.fileId,d=l instanceof Object?l.revitId:o;o=r+"_"+d}else s&&(o=`${e.fileId}_${o}`);var f=e.getPlugin("SectionBox"),m=e.getPanel("SectionPanel");!function(e,t){var n,a=function(n){if(0!=n.length){for(var a=0;a0)for(var s=0;s0)for(var c=0;c{e.showAllComponents()})),n){n.boundary&&i.setArea(n.boundary,a);var r=i.getWorldBox(a-20,a+1500);if(f)m&&m.hideBox();else{var d=new t.Bimface.Plugins.Section.SectionBoxConfig;d.viewer=i,d.id="SectionBox",f=new t.Bimface.Plugins.Section.SectionBox(d),e.addPlugin(f)}f.setBox(r),f.hideBox(),i.setView(t.Bimface.Viewer.ViewOption.Top)}else s&&(o=o.replace("_",".")),f&&(f.reset(),f.hideBox()),m&&m.hideBox(),i.clearAllRooms(),i.getModel(c).setSelectedComponentsById([o]),p?(i.getModel(c).isolateComponentsById([o],t.Bimface.Viewer.IsolateOption.MakeOthersTranslucent),i.getModel(c).zoomToSelectedComponents()):(i.getModels().forEach((e=>{e.clearIsolation()})),p=!0);i.render()}))}},y=function(e){if(e.elementId){var n=e.elementId,a=b.fromRevitId(n),o=b.fromLinkRevitId(e.fileId,n);if(!(a||o&&o.ids)){var l=t.Bimface.Viewer.Viewer3DEvent;return void i.getEventManager().fireEvent(l.MissingDrawingElement)}o instanceof Object?b.zoomToObjectWithBlock(o.blockId,o.ids):a&&b.zoomToObject(a)}};n.addEventListener("Sizable",(function(){b.resize()})),n.addEventListener("Hide",(function(){m.unregisterEventListener(CLOUD.EVENTS.ON_SELECTION_FAILED,u),b.removeEventListener("ComponentsSelectionChanged",v),i.removeEventListener("ComponentsSelectionChanged",y),n.close(),e.removePanel("DrawingPanel"),delete e.subViewer})),b.addEventListener("ComponentsSelectionChanged",v),i.addEventListener("ComponentsSelectionChanged",y),e.subViewer=b})))},we=function(e,n){var a=e.getRootElement();(i=e.getPanel("DrawingPanel"))&&i.hide();var i=new t.Bimface.Application.UI.Panel.DrawingPanel(e,n);a.appendChild(i.element),i.bringToFront(),e.addPanel(i),Be(e,i,n)};!function(){var e=t.Web.Lang.Utility.Namespace.ensureNamespace(t,"Web.Lang.Utility.Dom");t.Web.Lang.Utility.Namespace.ensureNamespace(t,"Bimface.Application.UI.Panel").ModelTreePanel=function(n,a){var i="component",o=n.getViewer(),l=(n.getRootElement(),o._manifest),s=o._data.modelType,r=e.create("div","bf-tree-header"),c=e.create("div","bf-tree-footer");let d,f,m,p=t.Web.Lang.Utility.ClientHelper.getIsDesktop(),u=[];o._data.workerType;let g;if(p&&(g={component:{panel:!1,tree:null},modelGroup:{panel:!1,tree:null},mepSystem:{panel:!1,tree:null},file:{panel:!1,tree:null},links:{panel:!1,tree:null},area:{panel:!1,tree:null},drawing:{panel:!1,tree:null}}),l.Features.HasComponentStructure&&u.push({id:"component",name:BimfaceLanguage.bf_panel_modelTree_components}),(l.Features.HasGroup||l.Features.HasAssemble)&&u.push({id:"modelGroup",name:BimfaceLanguage.bf_panel_modelTree_modelGroup}),l.Features.HasMEPSystem&&u.push({id:"mepSystem",name:BimfaceLanguage.bf_panel_modelTree_mep}),l.Features.HasFileList&&u.push({id:"file",name:BimfaceLanguage.bf_panel_modelTree_files}),(l.Features.HasRoom||l.Features.HasArea)&&u.push({id:"area",name:BimfaceLanguage.bf_panel_modelTree_rooms1}),l.Features.HasDrawing&&u.push({id:"drawing",name:BimfaceLanguage.bf_panel_modelTree_drawings}),p){var h,v,y=e.create("div","bf-tree-tab");if(r.appendChild(y),u.length<5)h=u;else{var C=e.create("div","bf-tree-select"),B=e.create("div","bf-tree-slot");r.appendChild(B),r.appendChild(C),h=u.slice(0,3),v=u.slice(3);var w=new t.Bimface.UI.Select.SelectConfig;w.className="bf-select bf-select-tree",w.options=v,w.element=C,f=new t.Bimface.UI.Select.Select(w),B.innerHTML=v[0].name,B.setAttribute("id",v[0].id),B.setAttribute("title",v[0].name),r.querySelectorAll(".bf-select-option")[0].style.display="none";var L=r.querySelector(".bf-select-current"),M=e.create("i","gld-bf-arrow-right");L.appendChild(M)}var T=new t.Bimface.UI.Tabs.TabsConfig,I=["oneTab","twoTabs","threeTabs","fourTabs","fiveTabs","sixTabs","sevenTabs"],x=h.length>7?6:h.length-1;T.className=`bf-tabs bf-tabs-tree ${I[x]}`,T.options=h,T.element=y,d=new t.Bimface.UI.Tabs.Tabs(T),d._controls&&0===d._controls.length?m=new t.Bimface.UI.Panel.PanelConfig:(m=new t.Bimface.UI.Panel.PanelConfig,m.title=BimfaceLanguage.bf_btn_modelTree,m.id="ModelTree",m.css={left:"10px",top:"10px",height:"430px",minWidth:"300px",minHeight:"140px"},m.className="bf-panel bf-modelTree-panel");let n=o._opt.domElement;d.addEventListener(t.Bimface.UI.Control.ControlEvent.ActiveModelTreeTab,(function(e){"component"===e&&n.getElementsByClassName("bf-panel-searchbar")[0]&&(n.getElementsByClassName("bf-panel-search-input")[0].value="",n.getElementsByClassName("bf-panel-searchbar")[0].style.display="inline-block",n.getElementsByClassName("bf-panel-search-result")[0].style.display="inline-block",document.getElementsByClassName("bf-panel-container bf-scroll-bar")[0].style.height="326px")})),d.addEventListener(t.Bimface.UI.Control.ControlEvent.InActiveModelTreeTab,(function(e){"component"!==e&&n.getElementsByClassName("bf-panel-searchbar")[0]&&(n.getElementsByClassName("bf-panel-searchbar")[0].style.display="none",n.getElementsByClassName("bf-panel-search-result")[0].style.display="none",document.getElementsByClassName("bf-panel-container bf-scroll-bar")[0].style.height=null)}))}else{T=new t.Bimface.UI.Tabs.TabsConfig,I=["oneTab","twoTabs","threeTabs","fourTabs","fiveTabs","sixTabs","sevenTabs"],x=u.length>7?6:u.length-1;T.className=`bf-tabs bf-tabs-tree-mobile ${I[x]}`,T.options=u,T.element=r,d=new t.Bimface.UI.Tabs.Tabs(T),m=new t.Bimface.UI.Panel.PanelConfig,m.title=BimfaceLanguage.bf_btn_modelTree,m.id="ModelTree",m.css={left:0,top:0,width:"100%",height:"100%"}}var S;l.Features.HasLinkRelation&&((S=e.create("label","bf-tree-label bf-checkbox")).innerHTML=`\n ${BimfaceLanguage.bf_panel_modelTree_fileLink}\n \n `,c.appendChild(S),S.addEventListener("change",(function(){_.setTips(BimfaceLanguage.bf_panel_modelTree_loading,"loading");n.getToolbar("MainToolbar");b(n),ge(n),o.getModels().forEach((e=>{e.showAllComponents()})),o.render();var e=document.querySelector("#linksModeInput");e&&e.checked?E("links"):E("file")})));var _=new t.Bimface.UI.Panel.Panel(m);_.setContainerHeader(r),_.setContainerFooter(c);var k=_.container;_.setTips(BimfaceLanguage.bf_panel_modelTree_loading,"loading"),p||_.addClass("tree-panel"),_.addEventListener("Hide",(function(){a&&a.show(),p||"area"!=i&&"component"!=i&&ge(n);var e=n.getPanel("AreaPropertyPanel");e&&e.hide(),o.render()}));var E=function(e){i=e;const t=document.querySelectorAll(".tree-panel");switch(p&&(t.forEach((e=>{e.style.display="none"})),_.hideTips(),o.getModels().forEach((e=>{e.showAllComponents()}))),e){case"component":p?g.component.panel?(document.querySelector("#componentPanel").style.display="block",n.tree=g.component.tree,A("componentPanel")):(_.setTips(BimfaceLanguage.bf_panel_modelTree_loading,"loading"),P(o,(function(e){"component"==i&&(_.setTips(BimfaceLanguage.bf_panel_modelTree_noComponent),e&&(g.component.panel=!0,e.element.setAttribute("id","componentPanel"),e.element.addClass("tree-panel"),g.component.tree=e,n.tree=g.component.tree,k.appendChild(e.element)))}))):P(o,(function(e){"component"==i&&(_.setTips(BimfaceLanguage.bf_panel_modelTree_noComponent),n.tree=e,e&&(k.innerHTML="",k.appendChild(e.element)))}));break;case"modelGroup":p?g.modelGroup.panel?(document.querySelector("#modelGroupPanel").style.display="block",n.tree=g.modelGroup.tree,A("modelGroupPanel")):(_.setTips(BimfaceLanguage.bf_panel_modelTree_loading,"loading"),oe(n,(function(e){"modelGroup"==i&&(_.setTips(BimfaceLanguage.bf_panel_modelTree_noData),e&&(g.modelGroup.panel=!0,e.element.setAttribute("id","modelGroupPanel"),e.element.addClass("tree-panel"),g.modelGroup.tree=e,n.tree=g.modelGroup.tree,k.appendChild(e.element)))}))):oe(n,(function(e){"modelGroup"==i&&(_.setTips(BimfaceLanguage.bf_panel_modelTree_noData),n.tree=e,e&&k.appendChild(e.element))}));break;case"mepSystem":p?g.mepSystem.panel?(document.querySelector("#mepSystemPanel").style.display="block",n.tree=g.mepSystem.tree,A("mepSystemPanel")):(_.setTips(BimfaceLanguage.bf_panel_modelTree_loading,"loading"),ue(n,o,s,(function(e){"mepSystem"==i&&(_.setTips(BimfaceLanguage.bf_panel_modelTree_noSystem),e&&(g.mepSystem.panel=!0,e.element.setAttribute("id","mepSystemPanel"),e.element.addClass("tree-panel"),g.mepSystem.tree=e,n.tree=g.mepSystem.tree,k.appendChild(e.element)))}))):ue(n,o,s,(function(e){"mepSystem"==i&&(_.setTips(BimfaceLanguage.bf_panel_modelTree_noSystem),n.tree=e,e&&k.appendChild(e.element))}));break;case"area":p?g.area.panel?(document.querySelector("#areaPanel").style.display="block",n.tree=g.area.tree,A("areaPanel")):(_.setTips(BimfaceLanguage.bf_panel_modelTree_loading,"loading"),F(n,(function(e){"area"==i&&(_.setTips(BimfaceLanguage.bf_panel_modelTree_noRoom),e&&(g.area.panel=!0,e.element.setAttribute("id","areaPanel"),e.element.addClass("tree-panel"),g.area.tree=e,n.tree=g.area.tree,k.appendChild(e.element)))}))):F(n,(function(e){"area"==i&&(_.setTips(BimfaceLanguage.bf_panel_modelTree_noRoom),e&&(n.tree=e,k.appendChild(e.element)))}));break;case"file":var a=document.querySelector("#linksModeInput");p?g.file.panel?a&&a.checked&&g.links.panel?(document.querySelector("#linksPanel").style.display="block",n.tree=g.links.tree,A("linksPanel")):(document.querySelector("#filePanel").style.display="block",n.tree=g.file.tree,A("filePanel")):(_.setTips(BimfaceLanguage.bf_panel_modelTree_loading,"loading"),q(o,(function(e){"file"==i&&(_.setTips(BimfaceLanguage.bf_panel_modelTree_noFile),e&&(g.file.panel=!0,e.element.setAttribute("id","filePanel"),e.element.addClass("tree-panel"),g.file.tree=e,n.tree=g.file.tree,k.appendChild(e.element)))}))):q(o,(function(e){"file"==i&&(_.setTips(BimfaceLanguage.bf_panel_modelTree_noFile),n.tree=e,e&&k.appendChild(e.element))}));break;case"links":p?g.links.panel?(document.querySelector("#linksPanel").style.display="block",n.tree=g.links.tree,A("linksPanel")):(_.setTips(BimfaceLanguage.bf_panel_modelTree_loading,"loading"),G(o,(function(e){"links"==i&&(_.setTips(BimfaceLanguage.bf_panel_modelTree_noFile),e&&(g.links.panel=!0,e.element.setAttribute("id","linksPanel"),e.element.addClass("tree-panel"),g.links.tree=e,n.tree=g.links.tree,k.appendChild(e.element)))}))):G(o,(function(e){"links"==i&&(_.setTips(BimfaceLanguage.bf_panel_modelTree_noFile),n.tree=e,e&&k.appendChild(e.element))}));break;case"drawing":p?g.drawing.panel?(document.querySelector("#drawingPanel").style.display="block",n.tree=g.drawing.tree,A("drawingPanel")):(_.setTips(BimfaceLanguage.bf_panel_modelTree_loading,"loading"),te(o,(function(e){"drawing"==i&&(_.setTips(BimfaceLanguage.bf_panel_modelTree_noDrawing),e&&(g.drawing.panel=!0,e.element.setAttribute("id","drawingPanel"),e.element.addClass("tree-panel"),g.drawing.tree=e,n.tree=g.drawing.tree,k.appendChild(e.element),o.getModels().length>0&&o.getModels().map((e=>{e.isMatchedBefore=!1})),e.addEventListener("SelectionChanged",(function(e,t){if(t)o.getModels().find((t=>!(t.isMatchedBefore||t.modelId!=e.modelId&&t._metaDataManager._config.modelId!=e.modelId)&&(e.effectiveModelId=t.modelId,t.isMatchedBefore=!0,!0))),we(n,e);else{var a=n.getPanel("DrawingPanel");a&&n.subViewer&&n.subViewer.isInitialized&&a.hide()}}))))}))):te(o,(function(e){"drawing"==i&&(_.setTips(BimfaceLanguage.bf_panel_modelTree_noDrawing),n.tree=e,e&&(k.appendChild(e.element),e.addEventListener("SelectionChanged",(function(e,t){if(t)o.getModels().map((t=>{t.modelId!=e.modelId&&t._metaDataManager._config.modelId!=e.modelId||(e.effectiveModelId=t.modelId)})),we(n,e);else{var a=n.getPanel("DrawingPanel");a&&n.subViewer&&n.subViewer.isInitialized&&a.hide()}}))))}))}o.render()};p?1==u.filter((e=>"component"==e.id)).length?!g.component.panel&&P(o,(function(e){"component"==i&&(_.setTips(BimfaceLanguage.bf_panel_modelTree_noComponent),g.component.tree=e,n.tree=g.component.tree,g.component.panel=!0,e.element.setAttribute("id","componentPanel"),e.element.addClass("tree-panel"),k.appendChild(e.element))})):E(u[0].id):P(o,(function(e){"component"==i&&(_.setTips(BimfaceLanguage.bf_panel_modelTree_noComponent),k.innerHTML="",n.tree=e,k.appendChild(e.element))})),d.addEventListener("Change",(function(e){B&&B.removeClass("active"),U(e)})),f&&f.addEventListener("Change",(function(e){N(e)})),B&&B.addEventListener("click",(function(e){d.setCurrentOption(""),U(e.target),B.addClass("active")}));var N=function(t){d.setCurrentOption(""),B.innerHTML=t.name,B.setAttribute("id",t.id),B.setAttribute("title",t.name),B.addClass("active");var n=r.querySelectorAll(".bf-select-option");n[0].style.display="block",n.forEach((e=>{e.id==t.id?e.style.display="none":e.style.display="block"}));var a=r.querySelector(".bf-select-current"),i=e.create("i","gld-bf-arrow-right");a.appendChild(i),U(t)},U=function(e){p||(_.setTips(BimfaceLanguage.bf_panel_modelTree_loading,"loading"),_.clear()),b(n),ge(n);const t=n.getPanel("AreaPropertyPanel");t&&("area"!=e.id?t.element.style.display="none":t.element.style.display="block"),S&&("file"==e.id?(S.style.display="block",_.container.style.height="calc(100% - 30px)"):(S.style.display="none",_.container.style.height="100%")),E(e.id)},A=function(e){var t=[],n=document.querySelectorAll(`#${e} .bf-unchecked`),a=document.querySelectorAll(`#${e} .gld-bf-transparent`),i=document.querySelectorAll(`#${e} .bf-selected`),l=document.querySelector("#treeRootNode .bf-unchecked"),s=document.querySelector("#treeRootNode .gld-bf-transparent");if("componentPanel"==e)l?o.getModels().forEach((e=>{e.hideAllComponents()})):n.forEach((e=>{e.closest(".bf-sub-tree").previousSibling.querySelector(".bf-unchecked")||t.push(e)})),s?o.getModels().forEach((e=>{e.transparentAllComponents()})):a.forEach((e=>{e.closest(".bf-sub-tree").previousSibling.querySelector(".gld-bf-transparent")||t.push(e)})),i.forEach((e=>{e.closest(".bf-sub-tree").previousSibling.querySelector(".bf-selected")||t.push(e)}));else t=[...i,...n,...a];t.forEach((e=>{e.addClass("bf-restore"),e.click(),e.removeClass("bf-restore"),e.click()}))};return _.addEventListener("Show",(function(){if(n.tree&&n.tree._selectionNode&&"area"==i){var e=n.tree._selectionNode;e.eventManager.fireEvent("SelectionChanged",e,!0,!0)}A(`${i}Panel`)})),_}}(),t.Web.Lang.Utility.Namespace.ensureNamespace(t,"Bimface.Application.UI.Button").ModelTree=function(e,n){var a=e.getViewer(),i=e.getRootElement(),o=(a.viewerType,t.Bimface.UI.Control.ControlEvent),l=new t.Bimface.UI.Button.ButtonConfig;l.id="ModelTree",l.title=BimfaceLanguage.bf_btn_modelTree,l.className="bf-button gld-bf-tree";var s=new t.Bimface.UI.Button.Button(l);return s.addEventListener(o.Click,(function(){n.hide();var a=e.getPanel("ModelTree");if(a)a.show(),e.tree._selectionNode;else{var o=new t.Bimface.Application.UI.Panel.ModelTreePanel(e,n);i.appendChild(o.element),e.addPanel(o)}})),s},t.Web.Lang.Utility.Namespace.ensureNamespace(t,"Bimface.Application.UI.Button").MobileModelTree=function(e,n){var a=e.getViewer(),i=e.getRootElement(),o=(a.viewerType,t.Bimface.UI.Control.ControlEvent),l=new t.Bimface.UI.Button.ButtonConfig;l.id="MobileModelTree",l.title="构件树",l.className="bf-button gld-bf-tree";var s=new t.Bimface.UI.Button.Button(l);return s.addEventListener(o.Click,(function(){n.hide();var e=new t.Bimface.Application.UI.Panel.ModelTreePanel(a,i,n,!0);i.appendChild(e.element)})),s};let Le="build";Le||(Le="dev");var Me=Le;!function(){let e=t.Web.Lang.Utility.Namespace.ensureNamespace(t,"Bimface.Application.UI.Panel"),n=t.Web.Lang.Utility.Namespace.ensureNamespace(t,"Web.Lang.Utility.Dom");var a="dev"==Me;e.SettingPanel=function(e){var i,o=e.getViewer(),l=new t.Bimface.UI.Panel.PanelConfig,s=this,r=e.state;a=a?o.isSupportSSAO():a,this.viewer=o,i=o._data.dataEnvType==ve.Local?o._data.sdkPath:m.staticHost,l.title=BimfaceLanguage.bf_btn_settings,l.id="Setting",l.css={left:"50%",top:"50%",transform:"translate(-50%,-200px)",width:"330px",height:"auto"},l.enableSizable=!1,l.className="bf-panel bf-settings-panel";var c={1:{type:"multiple",direction:"0deg",colors:[{color:new t.Web.Graphics.Color(246,250,255,1),stop:"10%"},{color:new t.Web.Graphics.Color(214,224,235,1),stop:"70%"}]},2:{type:"skybox",skyBoxType:"CloudySky"},3:{type:"skybox",skyBoxType:"DarkNight"},4:{type:"single",color:new t.Web.Graphics.Color(92,92,92,1)},5:{type:"single",color:new t.Web.Graphics.Color(39,39,39,1)},6:{type:"single",color:new t.Web.Graphics.Color(50,71,91,1)}},d=new t.Bimface.UI.Panel.Panel(l),f=n.create("form","bf-setting"),p=n.create("div","bf-setting-foot"),u=[{id:"default",name:BimfaceLanguage.bf_panel_settings_interaction,title:BimfaceLanguage.bf_panel_settings_interaction},{id:"effect",name:BimfaceLanguage.bf_panel_settings_effect,title:BimfaceLanguage.bf_panel_settings_effect}],g=new t.Bimface.UI.Tabs.TabsConfig;g.className="bf-setting-tabs",g.default="default",g.options=u;var h=new t.Bimface.UI.Tabs.Tabs(g),b=`
      \n
    • \n ${BimfaceLanguage.bf_panel_settings_contextMenu}\n
      \n \n \n
      \n
    • \n\n
    • \n ${BimfaceLanguage.bf_panel_settings_orbitBtn}\n
      \n \n \n
      \n
    • \n\n
    • \n ${BimfaceLanguage.bf_panel_settings_hover}\n
      \n \n
      \n
    • \n
    • \n ${BimfaceLanguage.bf_panel_settings_zoomDir}\n
      \n \n
      \n
    • \n
    \n\n
      \n \n
    • \n ${BimfaceLanguage.bf_panel_settings_border}\n
      \n \n
      \n
    • \n
    • \n ${BimfaceLanguage.bf_panel_settings_shadow}:\n
      \n \n
      \n
    • \n \n
    • \n ${BimfaceLanguage.bf_panel_settings_exposure}\n
      \n
    • \n\n
    • \n
      \n ${BimfaceLanguage.bf_panel_settings_moreOpt}\n \n
      \n
    • \n
      \n
    • \n ${BimfaceLanguage.bf_panel_settings_bgColor}\n
      \n
      \n \n
      \n
      \n \n \n \n
      \n
      \n \n \n \n
      \n
      \n \n
      \n
      \n \n
      \n
      \n \n
      \n
      \n
    • \n
    • \n ${BimfaceLanguage.bf_panel_settings_ambientLight}\n
      \n \n
      \n
    • \n
    • \n ${BimfaceLanguage.bf_panel_settings_iblSel}\n
      \n \n \n \n \n \n \n
      \n
    • \n
    • \n \n
      \n \n
      \n
    • \n
      \n
    `,v=`
    \n ${BimfaceLanguage.bf_panel_settings_restore}\n
    `;f.innerHTML=b,p.innerHTML=v,h.addEventListener("Change",(function(e){"default"==e.id?(d.body.querySelector(".bf-setting-tab-default").addClass("bf-show"),d.body.querySelector(".bf-setting-tab-effect").removeClass("bf-show")):(d.body.querySelector(".bf-setting-tab-default").removeClass("bf-show"),d.body.querySelector(".bf-setting-tab-effect").addClass("bf-show"))}));var y=f.querySelectorAll(".contextMenu .bf-radio-input");for(let e=0,t=y.length;e${BimfaceLanguage.bf_panel_nav_addKeyframe}`;var b=i.create("span","bf-route-clear");b.innerText=BimfaceLanguage.bf_panel_nav_clearKeyframe,g.appendChild(h),g.appendChild(b);var v=i.create("div","bf-route-panel-tips");v.innerText=BimfaceLanguage.bf_panel_nav_addHere;var y=i.create("ul","bf-route-list bf-scroll-bar"),C=i.create("div","bf-route-foot"),B=i.create("div","bf-route-control bf-route-disabled");B.innerHTML=`${BimfaceLanguage.bf_panel_nav_playnav}`,C.appendChild(B),o.appendChild(l),o.appendChild(g),o.appendChild(v),o.appendChild(y),o.appendChild(C),o.saveWalkthrough=()=>{if(0===y.childElementCount)return!1;var t=[];for(let e=0;e0?e.setWalkthroughTime(parseFloat(p.value)):(p.value=e._walkthrough.walkthroughTime,d.removeClass("bf-route-info-input-invalid")),""!==c.value?e._walkthrough.setName(c.value):(c.value=e._walkthrough.getName(),c.removeClass("bf-route-info-input-invalid")),!0};var w=function(e,t,o){v.style.display="none";var l=i.create("div","bf-route-li"),s=i.create("div","bf-route-box"),r=i.create("span","bf-route-button");r.innerText=BimfaceLanguage.bf_general_delete;var c=i.create("span","bf-route-button bf-route-play");c.innerText=BimfaceLanguage.bf_panel_nav_play;var d=i.create("span","bf-route-name");d.innerText=e,o&&(l.camera=o),l.keyFrame=t,s.appendChild(c),s.appendChild(r),l.appendChild(d),l.appendChild(s),l.addEventListener("click",(function(e){var t=e.target;a||t!=r&&t!=c&&(L?L!==l&&(L.removeClass("bf-selected"),l.addClass("bf-selected"),L=l):(l.addClass("bf-selected"),L=l),n.setCameraStatus(l.camera))})),c.addEventListener("click",(function(e){M(l.keyFrame.id)})),r.addEventListener("click",(function(e){L==l&&(L=null),y.removeChild(l),y.childElementCount<2&&B.addClass("bf-route-disabled"),0==y.childElementCount&&(v.style.display="block")})),L?(L.after(l),L.removeClass("bf-selected"),L=null):y.appendChild(l),y.childElementCount>=2&&B.removeClass("bf-route-disabled")};!function(){var t=e._walkthrough.getKeyFrames();if(t&&t.length>0)for(var a=0;a${BimfaceLanguage.bf_panel_nav_stop}`,document.querySelector(".bf-routes-return").addClass("bf-routes-disabled"),a=!0};return B.addEventListener("click",(function(){this.hasClass("bf-route-disabled")||(a?(y.removeClass("bf-route-disabled"),b.removeClass("bf-route-disabled"),h.removeClass("bf-route-disabled"),p.removeAttribute("disabled"),c.removeAttribute("disabled"),this.innerHTML=`${BimfaceLanguage.bf_panel_nav_playnav}`,e.stop(),L=!1):M())})),e.stopCallback((function(){y.removeClass("bf-route-disabled"),b.removeClass("bf-route-disabled"),h.removeClass("bf-route-disabled"),p.removeAttribute("disabled"),c.removeAttribute("disabled"),B.innerHTML=`${BimfaceLanguage.bf_panel_nav_playnav}`,L&&L.removeClass("bf-selected"),document.querySelector(".bf-routes-return").removeClass("bf-routes-disabled"),a=!1})),e.setKeyFrameCallback((function(e){let t=e;L&&L.removeClass("bf-selected"),y.children[t].addClass("bf-selected"),L=y.children[t]})),o.stopWalkthrough=()=>{a&&B.click()},o},Ie=function(e,n){var a=0,i=!1,o=null,l=null;let s=t.Web.Lang.Utility.Namespace.ensureNamespace(t,"Web.Lang.Utility.Dom");var r=s.create("div","bf-routes-panel"),c=s.create("div","bf-routes-form"),d=s.create("div","bf-routes-title"),f=s.create("span","bf-routes-create");f.innerHTML=`${BimfaceLanguage.bf_panel_nav_addWalkthrough}`;var m=s.create("span","bf-routes-return");m.innerText=BimfaceLanguage.bf_panel_nav_walkthroughList;var p=s.create("div","bf-routes-split");d.appendChild(f),d.appendChild(m),r.appendChild(d),r.appendChild(p);var u=s.create("div","bf-routes-panel-tips");u.innerText=BimfaceLanguage.bf_panel_nav_addWalkthroughHere;var g=s.create("ul","bf-routes-list bf-scroll-bar");c.appendChild(u),c.appendChild(g),r.appendChild(c);var h=!1,b=!1,v=null,y=()=>{b=!1,v&&"[object Function]"===Object.prototype.toString.call(v)&&v(),v=null},C=null,B=function(d){if(!i){var p,B;if(o&&(r.removeChild(o),o=null),!d||d instanceof MouseEvent){var M=new t.Bimface.Plugins.Walkthrough.WalkthroughConfig;M.viewer=n,p=new t.Bimface.Plugins.Walkthrough.Walkthrough(M),B=BimfaceLanguage.bf_panel_nav_walkthrough1+ ++a,p.setWalkthroughTime(20),l=e.addWalkthrough(B,p),o=Te(p,n),r.appendChild(o),L(c),L(f),w(m),C=!0}else p=d.walkthrough,B=d.walkthrough._walkthrough.getName(),l=d.id;L(u);var T=s.create("div","bf-routes-li"),I=s.create("div","bf-routes-box"),x=s.create("span","bf-routes-button");x.innerText=BimfaceLanguage.bf_general_edit;var S=s.create("span","bf-routes-button");S.innerText=BimfaceLanguage.bf_general_delete;var _=s.create("span","bf-routes-name");_.innerText=B,I.appendChild(x),I.appendChild(S);var k=s.create("div","bf-routes-play"),E=s.create("div","bf-routes-stop");T.appendChild(k),T.appendChild(E),T.appendChild(_),T.appendChild(I),T.setAttribute("walkthroughId",l);var N=t=>{var n=e._walkthroughMap[t],a=n.walkthrough._stopCallback;(!a||a.toString().indexOf("originCb")<0)&&n.walkthrough.stopCallback((()=>{a&&a(),L(E),w(k),h?h=!1:(g.removeClass("bf-routes-disabled"),f.removeClass("bf-routes-disabled"),i=!1)}))},P=()=>{g.querySelector(".bf-selected")&&g.querySelector(".bf-selected").removeClass("bf-selected"),g.querySelector(`.bf-routes-li[walkthroughId="${l}"]`).addClass("bf-selected")},U=(t,a)=>{var s=()=>{if(i){var e=g.querySelector(`.bf-routes-li[walkthroughId="${l}"]`).querySelector(".bf-routes-stop");e&&e.click(),i=!1}},d=()=>{var t=o.querySelector(".bf-route-control");!t.hasClass("bf-route-disabled")&&t.querySelector(".bf-icon-stop")?t.click():e._walkthroughMap[a].walkthrough.bPause&&e._walkthroughMap[a].walkthrough.stop()},p=()=>{if(a!==l&&o&&(r.removeChild(o),o=null),!o){l=a;var t=e._walkthroughMap[l];o=Te(t.walkthrough,n),N(a),L(o),r.appendChild(o)}};switch(t){case"play":return function(t){if(b)v=()=>{this.click()};else{h=!1,s(),p(),P();var n=o.querySelector(".bf-route-control");if(!n.hasClass("bf-route-disabled")&&n.querySelector(".bf-icon-play"))n.click();else{if(!e._walkthroughMap[a].walkthrough.bPause)return;e._walkthroughMap[a].walkthrough.play()}i=!0,g.addClass("bf-routes-disabled"),f.addClass("bf-routes-disabled"),L(k),w(E)}};case"select":return function(e){h=!1,l!==a&&s(),p(),d(),P();var t=o.querySelector(".bf-route-list");t.childElementCount>0&&(b=!0,n.setCameraStatus(t.firstElementChild.camera,y))};case"stop":return function(t){h=!1,i&&(L(E),w(k),e._walkthroughMap[a].walkthrough.pause(),i=!1,g.removeClass("bf-routes-disabled"),f.removeClass("bf-routes-disabled"))};case"edit":return function(e){if(h=!1,!i){p(),d(),P(),L(c),L(f),w(m),w(o),C=!1;var t=o.querySelector(".bf-route-list");t.childElementCount>0&&(b=!0,n.setCameraStatus(t.firstElementChild.camera,y))}};case"delete":return function(t){h=!1,i||(g.removeChild(g.querySelector(`.bf-routes-li[walkthroughId="${a}"]`)),e.removeWalkthrough(a),8===g.childElementCount&&g.removeClass("bf-routes-list-scroll"),0===g.childElementCount&&w(u))}}};k.addEventListener("click",U("play",l)),E.addEventListener("click",U("stop",l)),x.addEventListener("click",U("edit",l)),S.addEventListener("click",U("delete",l)),_.addEventListener("click",U("select",l)),N(l),g.appendChild(T),g.childElementCount>8&&g.addClass("bf-routes-list-scroll"),m.removeClass("bf-routes-disabled"),P()}};function w(e){e.style.display="block"}function L(e){e.style.display="none"}return f.addEventListener("click",B),m.addEventListener("click",(function(){if(!this.hasClass("bf-routes-disabled")){if(o.saveWalkthrough()){var t=e._walkthroughMap[l];g.querySelector(`.bf-routes-li[walkthroughId="${l}"]`).querySelector(".bf-routes-name").innerHTML=t.walkthrough._walkthrough.getName()}else g.querySelector(`.bf-routes-li[walkthroughId="${l}"]`).querySelector(".bf-routes-box").lastElementChild.click(),C&&a--;L(o),L(m),w(c),w(f)}})),Ie.loadWalkthrough=function(t){for(var n in e.setWalkthroughList(t),e._walkthroughMap)B(e._walkthroughMap[n])},Ie.stopWalkthrough=function(){if("none"!==c.style.display&&i){var e=g.querySelector(`.bf-routes-li[walkthroughId="${l}"]`).querySelector(".bf-routes-stop");e&&e.click(),i=!1,g.removeClass("bf-routes-disabled"),f.removeClass("bf-routes-disabled")}else o&&o.stopWalkthrough()},r};!function(){t.Web.Lang.Utility.Namespace.ensureNamespace(t,"Web.Lang.Utility.Dom");t.Web.Lang.Utility.Namespace.ensureNamespace(t,"Bimface.Application.UI.Panel").WalkRoutePanel=function(e){var n=e.getViewer();(a=new t.Bimface.UI.Panel.PanelConfig).title=BimfaceLanguage.bf_panel_nav_walkthrough,a.id="WalkRoutePanel",a.css={right:"10px",top:"10px",width:"300px",height:"410px"},a.enableSizable=!1;var a,i=new t.Bimface.UI.Panel.Panel(a);(a=new t.Bimface.Plugins.Walkthrough.WalkthroughManagerConfig).viewer=n;var o=new t.Bimface.Plugins.Walkthrough.WalkthroughManager(a),l=Ie(o,n);return i.container.appendChild(l),i.addEventListener("Hide",(function(){Ie.stopWalkthrough()})),i.loadWalkthrough=Ie.loadWalkthrough,o.id="WalkthroughManager",e.addPlugin(o),i}}(),function(){let e=t.Web.Lang.Utility.Namespace.ensureNamespace(t,"Bimface.Application.UI.Panel"),n=t.Web.Lang.Utility.Namespace.ensureNamespace(t,"Web.Lang.Utility.Dom");e.WalkPanel=function(e){var a=e.getViewer(),i=e.getRootElement(),o=0,l=["1","2","4","8","16"],s=(a.getViewer(),t.Bimface.UI.Control.ControlEvent),r=a.getDefaultModel()._getMetaDataManager();var c={zh_CN:"560",en_GB:"594",sv_SE:"615"}[BimfaceLanguage.name],d={element:i,className:"bf-panel bf-walk-panel bf-walkthrough-panel",id:"WalkPanel",css:{left:"50%",bottom:"10px",width:c+"px",minWidth:0,minHeight:0,height:"50px"},title:"",enableSizable:!1},f="",m=e.getToolbar("MainToolbar").getControl("Map");m?(f='
    ',m.addEventListener(s.StateChange,(function(e){e||u.querySelector(".gld-bf-map").removeClass("active")}))):d.css.width=c-50+"px";var p=new t.Bimface.Application.Panel(d),u=n.create("div","bf-person"),g=`
    ${f}
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n \n
    \n ${BimfaceLanguage.bf_panel_nav_speed}\n ${l[o]} X\n \n
    \n \n \n ${BimfaceLanguage.bf_general_exit}`;u.innerHTML=g;let h=u.querySelector(".gld-bf-route"),b=u.querySelector(".gld-bf-third-person-lg");u.querySelector(".gld-bf-add").addEventListener("click",(function(){o${BimfaceLanguage.bf_panel_nav_walkTips4}
    `:`
    \n ${BimfaceLanguage.bf_panel_nav_walkTips1}\n W\n A\n S\n D\n ${BimfaceLanguage.bf_panel_nav_walkTips2}\n Q\n E\n ${BimfaceLanguage.bf_panel_nav_walkTips3}\n
    `;_.setHtml(t)};k(),CLOUD.EditorConfig.NoKey&&_.hide(),u.querySelector(".bf-walk-exit").addEventListener("click",(function(){b.hasClass("active")&&(L=1,b.click()),p.hide();for(var t=e.getToolbars(),n=0;n${BimfaceLanguage.bf_general_exit}`,i.appendChild(d),c.addEventListener("Show",(function(){d.style.display="block"}));var f=n.create("div","bf-person"),m=`
    \n\n \n ${l[o]} X\n \n \n
    \n\n \n \n
    \n
    `,p=n.create("div","controllerPanel");f.innerHTML=m,p.innerHTML='
    \n\n
    ',p.addEventListener("touchstart",(function(e){e.preventDefault(),C=e.touches[0],T()})),p.addEventListener("touchmove",(function(e){e.preventDefault(),C=e.touches[0],T()})),p.addEventListener("touchend",(function(e){I("refresh"),M()})),f.querySelector(".gld-bf-add").addEventListener("click",(function(e){e.preventDefault(),e.stopPropagation(),o0?b>2.2?e>0?"down":"up":e>0?"right":"left":b<-2.2?e>0?"down":"up":e>0?"left":"right")}function I(e){switch(M(),e){case"up":s.moveTo(CLOUD.MoveDirection.FORWARD,1),s.render();break;case"down":s.moveTo(CLOUD.MoveDirection.BACK,1),s.render();break;case"left":v._doRotate({x:-1,y:0});break;case"right":v._doRotate({x:1,y:0})}"refresh"==e?x():x(C)}function x(e){if(e){var t=e.pageX-g[0],n=e.pageY-g[1],a=Math.pow(t,2),i=Math.pow(n,2),o=i+a;if(Math.sqrt(o)+h.offsetWidth/20?y.panelRadius+r-h.offsetWidth/2:y.panelRadius-r-h.offsetWidth/2,l=e.pageY-g[1]>0?y.panelRadius+c-h.offsetWidth/2:y.panelRadius-c-h.offsetWidth/2}h.style.left=s+"px",h.style.top=l+"px"}else h.style.left=y.refresh[0]+"px",h.style.top=y.refresh[1]+"px"}return f.querySelector(".bf-walk-input").addEventListener("change",(function(){a.enableGravity(this.checked)})),L(),window.onresize=function(){L()},c}}(),t.Web.Lang.Utility.Namespace.ensureNamespace(t,"Bimface.Application.UI.Button").Walk=function(e,n){var a=e.getViewer(),i=e.getRootElement(),o="Viewer3D"===a.viewerType,l=t.Bimface.UI.Control.ControlEvent,s=t.Bimface.Viewer.Viewer3DEvent;if(o){var r=new t.Bimface.UI.Button.ButtonConfig;r.id="Walk",r.title=BimfaceLanguage.bf_btn_nav,r.className="bf-button gld-bf-firstperson";var c,d,f=new t.Bimface.UI.Button.ToggleButton(r);return a.getViewer(),f.addEventListener(l.StateChange,(function(){if(a.getEventManager().fireEvent(s.ButtonOnToolbarClicked,{id:r.id,isChecked:f.isChecked()}),f.isChecked()){let s=t.Web.Lang.Utility.ClientHelper.getIsDesktop();var o=n.getControl("RectangleSelect");o&&o.setCheckedState(!1),a.setNavigationMode(t.Bimface.Viewer.NavigationMode3D.Select);var l=n.getControl("Measure");l&&l.setCheckedState(!1),h(e);var m=n.getControl("RectangleSelect");m&&m.setCheckedState(!1);var p=n.getControl("Property");p&&p.setCheckedState(!1);var u=n.getControl("Information");u&&u.setCheckedState(!1);var g=n.getControl("Setting");g&&g.setCheckedState(!1),e.modelTreePanel&&e.modelTreePanel.hide();for(var b=e.getToolbars(),v=e.getPanels(),y=0;y{e.setSelectedComponentsById()})),a.render(),c)return void c.show();(c=s?new t.Bimface.Application.UI.Panel.WalkPanel(e):new t.Bimface.Application.UI.Panel.WalkMobilePanel(e)).addEventListener("Hide",(function(){f.setCheckedState(!1)})),i.appendChild(c.element),c.bringToFront(),e.addPanel(c)}else{for(b=e.getToolbars(),C=0;C${BimfaceLanguage.bf_panel_map_cut}`,c.appendChild(p);var u=new t.Bimface.Plugins.Map.MapConfig;u.viewer=a,u.hasFloor=a._manifest.Features.HasMiniMap,u.domElement=d,u.width=298,u.height=198,u.maxPixel=800,u.id="Map",u.mapHeader=s,u.mapEvents=l,u.loadAsync=!0;var g=new t.Bimface.Plugins.Map.Map(u);m.addEventListener("click",(function(){o.showAsFull(m.hasClass("gld-bf-max-")),w&&w.hide()})),f.addEventListener("click",(function(){g.clearZoomAndPan(),f.getCss().display="none"}));var h=new t.Bimface.UI.Button.ButtonConfig;h.id="mapIsolate",h.title=BimfaceLanguage.bf_panel_map_isolation,h.className="bf-map-button bf-map-isolate";var v=new t.Bimface.UI.Button.Button(h);v.setHtml(BimfaceLanguage.bf_panel_map_isolation),v.addEventListener("Click",(function(){!function(e){e.getToolbar("MainToolbar"),b(e),e.tree&&e.tree.clear(!0),a.restoreDefault()}(n);var e=g.getBoundingBox();a.isolateByBox(e,t.Bimface.Viewer.IsolateOption.HideOthers),a.zoomToBoundingBox(e),g.clear(),w.hide(),a.render()}));var y=new t.Bimface.UI.Button.ButtonConfig;y.id="mapSection",y.title=BimfaceLanguage.bf_panel_map_section,y.className="bf-map-button bf-map-section";var C=new t.Bimface.UI.Button.Button(y);C.setHtml(BimfaceLanguage.bf_panel_map_section),C.addEventListener("Click",(function(){var e=g.getBoundingBox();b(n),function(e,t){var n=e.getViewer(),a=e.getPlugin("SectionBox");if(!a){var i=e.getToolbar("MainToolbar");if(i){var o=i.getControl("Section");o&&(o.getToolbar().getControl("SectionBox").setCheckedState(!0),a=e.getPlugin("SectionBox"))}}a.setBox(t),n.zoomToBoundingBox(t)}(n,e),g.clear(),w.hide(),a.render()}));var B=new t.Bimface.UI.Button.ButtonConfig;B.id="mapCancel",B.title=BimfaceLanguage.bf_general_cancel,B.className="bf-map-button bf-map-cancel";var w,L=new t.Bimface.UI.Button.Button(B);L.setHtml(BimfaceLanguage.bf_general_cancel),L.addEventListener("Click",(function(){g.clear(),w.hide()}));g.addEventListener(l.Zoom,(function(e){1==e.zoomFactor?f.getCss().display="none":f.getCss().display="block"})),g.addEventListener(l.MouseHoveredGrid,(function(e){p.innerHTML=""})),g.addEventListener("MinimapRectChanged",(function(e){M(e)})),g.addEventListener("MinimapRectDestroyed",(function(e){w&&w.hide()})),s.appendChild(m),s.appendChild(f),s.appendChild(r),o.container.appendChild(s),o.container.appendChild(d),o.container.appendChild(c),o.drag=new t.Web.Lang.Utility.Dom.drag({element:o.element,bBoxDetection:!0,handle:r,record:function(e,n){t.Bimface.UI.Panel.PanelPositions[i.className]={left:e,top:n}}}),o.showAsFull=function(e){e?(m.removeClass("gld-bf-max-"),m.addClass("gld-bf-min-"),o.addClass("bf-map-big"),o.addClass("bf-map-big-panel"),o.element.style.left="50%",o.element.style.top="50%",o.element.style.bottom="initial",f.removeClass("bf-map-fit-panel-min"),f.addClass("bf-map-fit-panel-max"),g.resize(528,420,!0)):(m.removeClass("gld-bf-min-"),m.addClass("gld-bf-max-"),o.removeClass("bf-map-big"),o.removeClass("bf-map-big-panel"),o.element.style.left="12px",o.element.style.top="initial",o.element.style.bottom="10px",f.removeClass("bf-map-fit-panel-max"),f.addClass("bf-map-fit-panel-min"),g.resize(298,198,!1)),f.getCss().display="none"};var M=function(e){if(w)w.show();else{let e=new t.Bimface.UI.Toolbar.ToolbarConfig;e.className="bf-map-toolbar",(w=new t.Bimface.UI.Toolbar.Toolbar(e)).addControls([v,C,L]),w.element.style.zIndex=11,d.appendChild(w.element)}d.offsetWidth;var n=d.offsetHeight,a=w.element.offsetWidth,i=w.element.offsetHeight;e.x+e.width0?a.loadedDrawings[0].drawing._viewMetaData.workerType:a._viewMetaData.workerType):a.enableMiniMap(!1)}));else{var c="Viewer3D"===a.viewerType,d=t.Bimface.Viewer.Viewer3DEvent;if(!c)return void console.log("The API is not supported on this viewer.");r.addEventListener(o.StateChange,(function(n){(s=e.getPanel("MapPanel"))?n?s.show():(s.close(),e.getPlugin("Map").clearZoomAndPan(),e.removePanel("MapPanel")):((s=new t.Bimface.Application.UI.Panel.MapPanel(e)).addEventListener("Hide",(function(){r.setCheckedState(!1)})),i.appendChild(s.element),s.bringToFront(),e.addPanel(s),a.render()),a.getEventManager().fireEvent(d.ButtonOnToolbarClicked,{id:l.id,isChecked:n})}))}return r},t.Web.Lang.Utility.Namespace.ensureNamespace(t,"Bimface.Application.UI.Button").SectionDirection=function(e,n){var a=e.getViewer(),i=(e.getRootElement(),"Viewer3D"===a.viewerType),o=t.Bimface.UI.Control.ControlEvent;if(i){var l=new t.Bimface.UI.Button.ButtonConfig;l.id="SectionDirection",l.title="剖切方向",l.className="bf-button gld-bf-axial";var s=new t.Bimface.UI.Button.Button(l);return s.addEventListener(o.Click,(function(){var t=this.hasClass("gld-bf-axial");s.toggleClassName("gld-bf-axial"),s.toggleClassName("gld-bf-axial-");var n=e.getPlugin("SectionPlane");n&&(n.setDirection(t?"Reverse":"Forward"),n.setProgress(50)),a.render()})),s}console.log("The API is not supported on this viewer.")},t.Web.Lang.Utility.Namespace.ensureNamespace(t,"Bimface.Application.UI.Button").SectionRecalculation=function(e,n){var a=e.getViewer(),i="Viewer3D"===a.viewerType,o=t.Bimface.UI.Control.ControlEvent;if(i){var l=new t.Bimface.UI.Button.ButtonConfig;l.id="SectionRecalculation",l.title=BimfaceLanguage.bf_tip_section_fitBox,l.className="bf-button gld-bf-fittobox";var s=new t.Bimface.UI.Button.Button(l);return s.addEventListener(o.Click,(function(){var t=e.getPlugin("SectionBox");t&&t.fitToModel(),a.render()})),s}console.log("The API is not supported on this viewer.")},t.Web.Lang.Utility.Namespace.ensureNamespace(t,"Bimface.Application.UI.Panel").ExplodePanel=function(e){let n=t.Web.Lang.Utility.ClientHelper.getIsDesktop();var a=new t.Bimface.UI.Panel.PanelConfig;a.title=BimfaceLanguage.bf_panel_explode,a.css=n?{right:"10px",bottom:"60px",width:"200px",height:"90px"}:{maxWidth:"414px",left:"50%",transform:"translate(-50%)",bottom:"0.12em",width:"100%",height:"1.02em"},a.enableSizable=!1,a.className="bf-panel bf-explode-panel";var i=new t.Bimface.UI.Panel.Panel(a);if(i.setHtml('
    '),!n){var o=e.getRootElement(),l=o.offsetWidth,s=o.offsetHeight;i.element.style.fontSize=100*Math.min(s,l,414)/750+"px",i.element.addClass("explode-panel"),i.element.querySelector(".bf-close").innerHTML=`${BimfaceLanguage.bf_general_exit}`}return i},function(){let e=t.Web.Lang.Utility.Namespace.ensureNamespace(t,"Bimface.Application.UI.Button");t.Web.Lang.Utility.Namespace.ensureNamespace(t,"Web.Lang.Utility.Dom"),t.Web.Lang.Utility.ClientHelper.getIsIphone();e.Explode=function(e,n){window.viewer=e.getViewer();var a=e.getRootElement(),i="Viewer3D"===viewer.viewerType,o=t.Bimface.UI.Control.ControlEvent,l=t.Bimface.Viewer.Viewer3DEvent;if(i){var s=new t.Bimface.UI.Button.ButtonConfig;s.id="Explode",s.title=BimfaceLanguage.bf_btn_explode,s.className="bf-button gld-bf-explode";var r,c=new t.Bimface.UI.Button.ToggleButton(s);return c.addEventListener(o.StateChange,(function(i){if(i){var o=n.getControl("Measure");o&&o.setCheckedState(!1),b(e);var d=n.getControl("SectionBox");d&&d.setCheckedState(!1);var f=n.getControl("SectionPlane");f&&f.setCheckedState(!1),viewer.setExplosionExtent(0),viewer.render(),(r=new t.Bimface.Application.UI.Panel.ExplodePanel(e)).addEventListener("Hide",(function(){c.setCheckedState(!1)})),a.appendChild(r.element),new t.Web.Lang.Utility.Dom.range({element:r.element.querySelector("#dispersionRange"),min:0,cur:0,max:3,step:.1,isShowProgress:!1,defaultColor:"#555555",currentColor:"#999999",input:function(e){viewer.setExplosionExtent(e),viewer.render()}}),e.addPanel(r)}else e.removePanel(r.id),r.close(),viewer.setExplosionExtent(0),viewer.render();viewer.getEventManager().fireEvent(l.ButtonOnToolbarClicked,{id:s.id,isChecked:i})})),c}console.log("The API is not supported on this viewer.")}}(),t.Web.Lang.Utility.Namespace.ensureNamespace(t,"Bimface.Application.UI.Button").RoomEditingDrag=function(){var e=new t.Bimface.UI.Button.ButtonConfig;return e.id="Drag",e.title=BimfaceLanguage.bf_tip_roomEdit_dragNode,e.className="bf-button gld-bf-room-dragnode",new t.Bimface.UI.Button.ToggleButton(e)},t.Web.Lang.Utility.Namespace.ensureNamespace(t,"Bimface.Application.UI.Button").RoomEditingAdd=function(){var e=new t.Bimface.UI.Button.ButtonConfig;return e.id="Add",e.title=BimfaceLanguage.bf_tip_roomEdit_addNode,e.className="bf-button gld-bf-room-addnode",new t.Bimface.UI.Button.ToggleButton(e)},t.Web.Lang.Utility.Namespace.ensureNamespace(t,"Bimface.Application.UI.Button").RoomEditingDelete=function(){var e=new t.Bimface.UI.Button.ButtonConfig;return e.id="Delete",e.title=BimfaceLanguage.bf_tip_roomEdit_deleteNode,e.className="bf-button gld-bf-room-deletenode",new t.Bimface.UI.Button.ToggleButton(e)},t.Web.Lang.Utility.Namespace.ensureNamespace(t,"Bimface.Application.UI.Button").RoomEditingHeight=function(){var e=new t.Bimface.UI.Button.ButtonConfig;return e.id="Height",e.title=BimfaceLanguage.bf_tip_roomEdit_editHeight,e.className="bf-button gld-bf-room-height",new t.Bimface.UI.Button.ToggleButton(e)},t.Web.Lang.Utility.Namespace.ensureNamespace(t,"Bimface.Application.UI.Button").ModelEditingTranslate=function(){var e=new t.Bimface.UI.Button.ButtonConfig;return e.id="Translation",e.title=BimfaceLanguage.bf_general_move,e.className="bf-button gld-bf-translation",new t.Bimface.UI.Button.ToggleButton(e)},t.Web.Lang.Utility.Namespace.ensureNamespace(t,"Bimface.Application.UI.Button").ModelEditingRotate=function(){var e=new t.Bimface.UI.Button.ButtonConfig;return e.id="Rotation",e.title=BimfaceLanguage.bf_general_rotate,e.className="bf-button gld-bf-rotation",new t.Bimface.UI.Button.ToggleButton(e)},t.Web.Lang.Utility.Namespace.ensureNamespace(t,"Bimface.Application.UI.Button").ModelEditingScale=function(){var e=new t.Bimface.UI.Button.ButtonConfig;return e.id="Scaling",e.title=BimfaceLanguage.bf_general_zoom,e.className="bf-button gld-bf-scaling",new t.Bimface.UI.Button.ToggleButton(e)},function(){let e=t.Web.Lang.Utility.Namespace.ensureNamespace(t,"Bimface.Application.UI.Panel"),n=t.Web.Lang.Utility.Namespace.ensureNamespace(t,"Web.Lang.Utility.Dom");e.LayersPanel=function(e){let a=t.Web.Lang.Utility.ClientHelper.getIsDesktop();var i=new t.Bimface.UI.Panel.PanelConfig;i.title=BimfaceLanguage.bf_btn_layers,i.className="bf-panel bf-layers-panel",i.id="LayersPanel",i.css=a?{left:"10px",top:"10px",width:"300px",height:"416px"}:{left:0,top:0,width:"100%",height:"100%",zIndex:9999};var o=new t.Bimface.UI.Panel.Panel(i);o.element.addClass("layers-panel");var l=[],s=[];e.loadedDrawings.length>0?e.loadedDrawings.map((e=>{const t=e.drawing.getLayers();for(let n=0;n{t.visible||r++,e.loadedDrawings.length>0&&(t.modelId=s[n])})),this.layers=l;var c=n.create("ul","bf-layers bf-scroll-bar"),d=n.create("div","bf-allLayers");let f;r==l.length?(f="gld-bf-hide",d.addClass("disable")):f="gld-bf-show",d.innerHTML=`${BimfaceLanguage.bf_panel_layers_all}`,d.addEventListener("click",(function(){var t=this.hasClass("disable");t?(e.loadedDrawings.length>0?e.loadedDrawings.map((e=>{e.drawing.showLayers({all:!0})})):e.showAllLayers(),m(!0)):(e.loadedDrawings.length>0?e.loadedDrawings.map((e=>{e.drawing.hideLayers({all:!0})})):e.hideAllLayers(),m(!1)),this.toggleClass("disable");var n=this.querySelector(".eyes");n.setAttribute("title",t?"显示":"隐藏"),n.toggleClass("gld-bf-show"),n.toggleClass("gld-bf-hide")}));for(var m=function(e){for(var t=c.querySelectorAll(".bf-layer"),n=0,a=t.length;n1&&(t=e.getDrawing(v.modelId).fileName.substring(0,e.getDrawing(v.modelId).fileName.indexOf("."))+" | "+v.name),b.innerHTML=`${t}`,b.setAttribute("layer-id",v.id),b.setAttribute("visible",v.visible),b.setAttribute("model-id",v.modelId),b.addEventListener("click",(function(){this.toggleClass("disable");var t=this.querySelector(".eyes");t.toggleClass("gld-bf-show"),t.toggleClass("gld-bf-hide");var n=this.getAttribute("visible"),a=this.getAttribute("layer-id"),i=this.getAttribute("model-id");n="true"!=n,this.setAttribute("visible",n),this.querySelector(".eyes").setAttribute("title",n?"显示":"隐藏");var o=d.querySelector(".eyes");n?(e.loadedDrawings.length>0?e.getDrawing(i).showLayers({layerIds:new Array(a)}):e.showLayer(a,!0),d.removeClass("disable"),o.addClass("gld-bf-show"),o.removeClass("gld-bf-hide"),o.setAttribute("title","显示")):(0==c.querySelectorAll(".gld-bf-show").length&&(d.addClass("disable"),o.removeClass("gld-bf-show"),o.addClass("gld-bf-hide"),o.setAttribute("title","隐藏")),e.loadedDrawings.length>0?e.getDrawing(i).hideLayers({layerIds:new Array(a)}):e.hideLayer(a,!0))})),c.appendChild(b)}return o.container.appendChild(d),o.container.appendChild(c),e.changeLayers(l),o.element.setCss({border:"solid 1px #333333"}),this.update=function(t){for(var n=0,a=this.layers.length;n0&&(o.length>0&&o[0].remove(),s.close(),s=new t.Bimface.Application.UI.Panel.LayersPanel(a),i.appendChild(s.element),s.bringToFront(),e.addPanel(s),s.addEventListener("Hide",(function(){r.setCheckedState(!1)}))),s.show()):(o[0].style.display="none",s.hide())}else s=new t.Bimface.Application.UI.Panel.LayersPanel(a),i.appendChild(s.element),s.bringToFront(),e.addPanel(s),s.addEventListener("Hide",(function(){r.setCheckedState(!1)}))})),r},function(){let e=t.Web.Lang.Utility.Namespace.ensureNamespace(t,"Bimface.Application.UI.Panel"),n=t.Web.Lang.Utility.Namespace.ensureNamespace(t,"Web.Lang.Utility.Dom");e.SheetsPanel=function(e){let a,i=t.Web.Lang.Utility.ClientHelper.getIsDesktop(),o=e.getViewer(),l=e.getRootElement(),s=new t.Bimface.UI.Panel.PanelConfig;function r(i){a=i;let s=n.create("ul","bf-sheets bf-scroll-bar");for(let e=0,t=a.length;e${i.name}`,t.setAttribute("sheet-id",i.id),t.appendChild(o);for(let e=0,a=i.frames.length;e${a.name}
    ${a.number}
    `,t.appendChild(o)}s.appendChild(t)}s.addEventListener("click",(function(n){let i,s,r=n.target;i=r.parentElement.parentElement.getAttribute("sheet-id"),s=r.parentElement.getAttribute("frame-id"),"bf-sheet-icon gld-bf-export bf-button"==r.className?function(n,i){let s=a.getObjectByAttribute("id",n).frames.getObjectByAttribute("id",i),r=e.getPanel("DrawingFramePanel"),c=o._viewMetaData||o._data,d=c.dataEnvType,f=new t.Bimface.UI.Panel.PanelConfig;f.title=s.name,f.className="bf-panel bf-drawingFrame-panel",f.id="DrawingFramePanel",f.css={left:"0",top:"0",width:"100%",height:"100%"},r=new t.Bimface.UI.Panel.Panel(f),r.element.addClass("frame-panel"),l.appendChild(r.element),r.bringToFront();let m=new t.Bimface.Application.WebApplicationDrawingConfig;m.Buttons.removeByValue("Sheets"),m.domElement=r.element.querySelector(".bf-panel-container");let p=new t.Bimface.Application.WebApplicationDrawing(m);"Local"==d?p.getViewer().addModel(c,null,null,i):p.loadFrame(c.viewToken,i),e.addPanel(r),r.addEventListener("Hide",(function(){p.getViewer().destroy(!0),r.destroy(),e.removePanel("DrawingFramePanel")}))}(i,s):"bf-sheet-row"==r.parentElement.className&&function(t,n){let i=a.getObjectByAttribute("id",t).frames.getObjectByAttribute("id",n).bbox,l=e.getToolbar("LeftSubToolbar");l&&l.getControl("LayoutList").setSelectedUiById(0==t?"Model":t),o.zoomToBoundingBox([i.slice(0,2),i.slice(2,4)])}(i,s)})),c.container.appendChild(s),c.element.setCss({border:"solid 1px #333333"})}s.title=BimfaceLanguage.bf_btn_sheets,s.className="bf-panel bf-sheets-panel",s.id="SheetsPanel",s.css=i?{left:"10px",bottom:"70px",width:"320px",height:"230px"}:{left:0,top:0,width:"100%",height:"100%",zIndex:9999};let c=new t.Bimface.UI.Panel.Panel(s);return c.element.addClass("sheets-panel"),o.getDrawingFrame((function(e){r(e.data||[])})),c}}(),t.Web.Lang.Utility.Namespace.ensureNamespace(t,"Bimface.Application.UI.Button").Sheets=function(e,n){e.getViewer();var a=e.getRootElement(),i=t.Bimface.UI.Control.ControlEvent,o=new t.Bimface.UI.Button.ButtonConfig;o.id="Sheets",o.title=BimfaceLanguage.bf_btn_sheets,o.className="bf-button gld-bf-split-drawings";var l,s=new t.Bimface.UI.Button.ToggleButton(o);return s.addEventListener(i.StateChange,(function(n){(l=e.getPanel("SheetsPanel"))?n?l.show():l.hide():(l=new t.Bimface.Application.UI.Panel.SheetsPanel(e),a.appendChild(l.element),l.bringToFront(),e.addPanel(l),l.addEventListener("Hide",(function(){s.setCheckedState(!1)})))})),s},t.Web.Lang.Utility.Namespace.ensureNamespace(t,"Bimface.Application.UI.Button").SectionBoxReverse=function(e,n){var a=e.getViewer(),i="Viewer3D"===a.viewerType,o=t.Bimface.UI.Control.ControlEvent;if(i){var l=new t.Bimface.UI.Button.ButtonConfig;l.id="SectionBoxReverse",l.title=BimfaceLanguage.bf_panel_section_reverse,l.className="bf-button gld-bf-reverse-lg";var s=new t.Bimface.UI.Button.ToggleButton(l);return s.addEventListener(o.StateChange,(function(t){var n=e.getPlugin("SectionBox");n&&(t?n.changeClipDirection(!0):n.changeClipDirection(!1)),a.render()})),s}console.log("The API is not supported on this viewer.")},t.Web.Lang.Utility.Namespace.ensureNamespace(t,"Bimface.Application.UI.Toolbar").MainToolbarConfig=function(){let e=new t.Bimface.UI.Toolbar.ToolbarConfig;return Object.assign({},e,{id:"MainToolbar",title:"主菜单",className:"bf-toolbar bf-toolbar-bottom",buttons:["Home","Person","OrbitButton","RectangleSelect","Measure","Section","Annotation","Property","Information","Setting","FullScreen"]})},t.Web.Lang.Utility.Namespace.ensureNamespace(t,"Bimface.Application.UI.Toolbar").SectionToolbarConfig=function(){let e=new t.Bimface.UI.Toolbar.ToolbarConfig;return Object.assign({},e,{id:"SectionToolbar",title:"剖切",className:"bf-section-box",buttons:["SectionBoxVisiable","SectionBoxReverse","SectionRecalculation","SectionReset"]})},t.Web.Lang.Utility.Namespace.ensureNamespace(t,"Bimface.Application.UI.Toolbar").FamilyListConfig=function(){let e=new t.Bimface.UI.Toolbar.ToolbarConfig;return Object.assign({},e,{id:"FamilyTypes",title:"FamilyTypes",className:"bf-toolbar bf-toolbar bf-toolbar-select",buttons:["FamilyList"]})},t.Web.Lang.Utility.Namespace.ensureNamespace(t,"Bimface.Application.UI.Toolbar").ModelTree=function(){let e=new t.Bimface.UI.Toolbar.ToolbarConfig;return Object.assign({},e,{id:"ModelTree",title:"ModelTree",className:"bf-toolbar bf-toolbar bf-tree-toolbar",buttons:["ModelTree"]})},t.Web.Lang.Utility.Namespace.ensureNamespace(t,"Bimface.Application.UI.Toolbar").LeftSubToolbarConfig=function(){let e=new t.Bimface.UI.Toolbar.ToolbarConfig;return Object.assign({},e,{id:"FamilyTypes",title:"FamilyTypes",className:"bf-toolbar bf-toolbar bf-toolbar-select",buttons:["FamilyList"]})},function(){let e=t.Web.Lang.Utility.Namespace.ensureNamespace(t,"Bimface.Application.UI.Toolbar"),n=t.Web.Lang.Utility.Namespace.ensureNamespace(t,"Bimface.Application.UI.Button");e.Toolbar=function(e,a){for(var i=new t.Bimface.UI.Toolbar.Toolbar(e),o=0,l=e.buttons.length;o1||1===t.length&&l&&l.id!==t[0]){l=void 0,c=void 0,d=!1;break}}else l={modelId:e,id:t[0]},c=a[t[0]],d=!1}var p,u=e.getToolbar("MainToolbar");u&&(p=u.getControl("Property")||u.getControl("MobileProperty"));var g=new t.Bimface.UI.Menu.MenuItemConfig;g.id="showProperty";var h=new t.Bimface.UI.Menu.MenuItem(g);function b(){!p||p.isChecked()||h.isDisabled?o._manifest.Features&&(o._manifest.Features.HasComponentProperty||o._manifest.Features.HasMaterialProperty)&&0===s.getElementsByClassName("bf-panel property-panel bf-has-title bf-sizable bf-property-panel").length&&new t.Bimface.Application.UI.Button.Property(e).setCheckedState(!0):p.setCheckedState(!0),m()}h.setText(BimfaceLanguage.bf_btn_props),i&&h.addEventListener(r.Click,b),!i&&h.addEventListener("touchstart",b);var v=new t.Bimface.UI.Menu.MenuItemConfig;v.id="areaProperty";var y=new t.Bimface.UI.Menu.MenuItem(v);y.setText(BimfaceLanguage.bf_tip_props_rooms),y.addEventListener(r.Click,(function(){var n=e.getPanel("AreaPropertyPanel");n||((n=new t.Bimface.Application.UI.Panel.AreaPanel(e)).addEventListener("Close",(function(){e.removePanel(n.id)})),n.addEventListener("Hide",(function(){n.close()})),A(o,n,c,l),s.appendChild(n.element),n.initPosition(),e.addPanel(n)),m()})),y.addEventListener("touchstart",(function(){var n=e.getPanel("AreaPropertyPanel");n||((n=new t.Bimface.Application.UI.Panel.AreaPanel(e)).addEventListener("Close",(function(){e.removePanel(n.id)})),n.addEventListener("Hide",(function(){n.close()})),A(o,n,c,l),s.appendChild(n.element),n.initPosition(),e.addPanel(n)),m()}));var C=new t.Bimface.UI.Menu.MenuItemConfig;C.id="areaEdit";var B=new t.Bimface.UI.Menu.MenuItem(C);B.setText(BimfaceLanguage.bf_contextmenu_roomEdit),B.addEventListener(r.Click,(function(){if(m(),!i)return;let n=e.getPlugin("RoomEditorToolbar");if(n){n.roomId=l.id;let e=n.switchToolbar.getControls();n.uncheckOthers("Drag",e),n.roomEditor.activateByRoomId(l.id),n.roomEditor.onEnter()}else{let a=new t.Bimface.Plugins.SpatialRelation.RoomEditorToolbarConfig;a.viewer=o,a.roomId=l.id,n=new t.Bimface.Plugins.SpatialRelation.RoomEditorToolbar(a),e.addPlugin(n)}n.show()}));const O=e=>{o.getModels().forEach(e);const t=o._getExternalComponentModel();t&&e(t)};var w=new t.Bimface.UI.Menu.MenuItemConfig;w.id="HideComponents";var L=new t.Bimface.UI.Menu.MenuItem(w);function M(){O((e=>{const t=n[e.modelId];e.hideComponentsById(t),e.setSelectedComponentsById()})),o.render(),m()}L.setText(BimfaceLanguage.bf_contextmenu_hide),i&&L.addEventListener(r.Click,M),!i&&L.addEventListener("touchstart",M);var T=new t.Bimface.UI.Menu.MenuItemConfig;T.id="SetComponentsOpacityssddd";var I=new t.Bimface.UI.Menu.MenuItem(T);function x(){O((e=>{const a=n[e.modelId];e.setComponentsOpacity(a,t.Bimface.Viewer.OpacityOption.Translucent),e.setSelectedComponentsById()})),o.render(),m()}I.setText(BimfaceLanguage.bf_contextmenu_transparent),i&&I.addEventListener(r.Click,x),!i&&I.addEventListener("touchstart",x);var S=new t.Bimface.UI.Menu.MenuConfig;S.id="IsolateMenu",S.isSubMenu=!!i,S.text=BimfaceLanguage.bf_contextmenu_isolate,S.className="bf-sub-menu";var _=new t.Bimface.UI.Menu.Menu(S),k=new t.Bimface.UI.Menu.MenuItemConfig;k.id="HideOthers";var E=new t.Bimface.UI.Menu.MenuItem(k);function N(){O((e=>{const a=n[e.modelId];e.isolateComponentsById(a,t.Bimface.Viewer.IsolateOption.HideOthers),e.setSelectedComponentsById()})),o.render(),m()}E.setText(BimfaceLanguage.bf_contextmenu_isolate_hidden),i&&E.addEventListener(r.Click,N),!i&&E.addEventListener("touchstart",N);var P=new t.Bimface.UI.Menu.MenuItemConfig;P.id="MakeOthersTranslucent";var U=new t.Bimface.UI.Menu.MenuItem(P);function D(){O((e=>{const a=n[e.modelId];e.isolateComponentsById(a,t.Bimface.Viewer.IsolateOption.MakeOthersTranslucent),e.setSelectedComponentsById()})),o.render(),m()}U.setText(BimfaceLanguage.bf_contextmenu_isolate_translucent),i&&U.addEventListener(r.Click,D),!i&&U.addEventListener("touchstart",D),_.addControl(E),_.addControl(U);var z=new t.Bimface.UI.Menu.Spacer,V=new t.Bimface.UI.Menu.Spacer;function H(){let t=e.getPanel("PickSectionPlanePanel");if(t){let e=t.element.querySelector(".gld-bf-reset-box");e&&e.click()}else{!function(e){var t=e.getPlugin("SectionBox"),n=e.getPlugin("SectionPlane");t&&t.restore(),n&&(n.restoreRotation(),n.setProgress(0)),(t=e.getViewer()._sectionBox)&&t.restore()}(e);var n=e.getPlugin("SectionPlane");n&&n.coordinateSystem.update(!0)}e.tree&&"areaPanel"!=e.tree.element.id&&"drawingPanel"!=e.tree.element.id&&e.tree.clear(!0),O((e=>{e.activateAllComponents(),e.clearIsolation(),e.clearSelectedComponents(),e.showAllComponents(),e.opaqueAllComponents()})),o.render(),m()}(W=new t.Bimface.UI.Menu.MenuItemConfig).id="ShowAll",(F=new t.Bimface.UI.Menu.MenuItem(W)).setText(BimfaceLanguage.bf_contextmenu_showAll),i&&F.addEventListener(r.Click,H),!i&&F.addEventListener("touchstart",H),!c||"room"!=c.toLocaleLowerCase()&&"area"!=c.toLocaleLowerCase()?d?(f.addControl(F),f.oneOption=!0):((p||o._manifest.Features&&(o._manifest.Features.HasComponentProperty||o._manifest.Features.HasMaterialProperty))&&(f.addControl(h),f.addControl(z)),f.addControl(L),f.addControl(I),f.addControl(_),f.addControl(V),f.addControl(F),"ExternalComponent"==c&&h.disabled()):(f.addControl(y),f.addControl(B),f.addControl(z),f.addControl(F),!i&&B.disabled(),f.oneOption=!0)}else{var W,F,O=n;if(O.length>0){var R=new t.Bimface.UI.Menu.MenuItemConfig;R.id="hideElement";var q=new t.Bimface.UI.Menu.MenuItem(R);q.setText(BimfaceLanguage.bf_contextmenu_hideElement),q.addEventListener(r.Click,(function(e){"object"==typeof n[0]?n.map((e=>{o.getDrawing(e.modelId).hideObjects({objectIds:e.selectedObjects})})):o.hideElementsById(O),o.clearSelection(),m()})),f.addControl(q),f.addControl(new t.Bimface.UI.Menu.Spacer);var $=new t.Bimface.UI.Menu.MenuItemConfig;$.id="hideLayer";var j=new t.Bimface.UI.Menu.MenuItem($);j.setText(BimfaceLanguage.bf_contextmenu_hideLayer),j.addEventListener(r.Click,(function(){var e;"object"==typeof n[0]?n.map((t=>{(e=o.getDrawing(t.modelId).getLayerIdFromElementId(t.selectedObjects[0]))&&o.getDrawing(t.modelId).hideLayers({layerIds:[e]})})):(e=o.getLayerIdFromElementId(O[0]),o.hideLayer(e)),G(e),o.clearSelection(),m()})),f.addControl(j),f.addControl(new t.Bimface.UI.Menu.Spacer)}(W=new t.Bimface.UI.Menu.MenuItemConfig).id="showAll",(F=new t.Bimface.UI.Menu.MenuItem(W)).setText(BimfaceLanguage.bf_contextmenu_showAll),F.addEventListener(r.Click,(function(){Z(!0),o.loadedDrawings.length>0?o.loadedDrawings.map((e=>{o.getDrawing(e.modelId).showObjects({all:!0}),o.getDrawing(e.modelId).showLayers({all:!0})})):(o.showAllLayers(!0),o.showAllElements(!0)),m()})),f.addControl(F);var Z=function(e){var t=document.querySelector(".bf-allLayers");if(t){t.removeClass("disable"),(l=t.querySelector(".eyes")).addClass(e?"gld-bf-show":"gld-bf-hide"),l.removeClass(e?"gld-bf-hide":"gld-bf-show"),l.setAttribute("title",e?"显示":"隐藏");for(var n=t.nextSibling.querySelectorAll(".bf-layer"),a=0,i=n.length;a=2&&!!s.getToolbar("MainToolbar")))return;let t=s.getToolbar("MainToolbar");s._rootElement.offsetWidth<1e3?t.addClassName("bf-toolbar-bottom-float-right"):t.removeClassName("bf-toolbar-bottom-float-right")},this.addEventListener=t.Bimface.Viewer.Viewer3D.prototype.addEventListener,this.removeEventListener=t.Bimface.Viewer.Viewer3D.prototype.removeEventListener;let c=new t.Bimface.Viewer.Viewer3D(r),d=t.Bimface.Viewer.Viewer3DEvent,f=c.getEventManager();c.addEventListener(d.ViewAdded,(function(e){const n=c.getViewer();let i={eventId:"加载",loadModel:"normal",type:"rfa",elements:n.getNumOfElements(),triangles:n.getNumOfTriangles()};if(a.send("Glodon.Bimface.Application.WebApplicationRfa","ViewAdded",i),c.getFamilyTypes((function(e){e[0]&&c.getDefaultModel().showFamilyTypeById(e[0].id),c.render()})),s.UI.init(),s._mainToolbarAdaptive(),c._opt.EnableFamilyList&&!s.UI.getToolbar("FamilyTypes")&&c._manifest.Features.HasFamilyTypeList){var o=t.Bimface.UI.Toolbar.ToolbarConfig();o.id="FamilyTypes",o.title="FamilyTypes",o.className="bf-toolbar bf-toolbar bf-toolbar-select",o.element=c._opt.domElement,o.buttons=["FamilyList"],s.UI.addToolbar(o)}null!=c._manifest.Features.HasFamilyTypeList&&!c._manifest.Features.HasFamilyTypeList&&s.UI.getToolbar("FamilyTypes")&&s.UI.removeToolbar("FamilyTypes"),window.addEventListener("resize",(function(e){s._mainToolbarAdaptive()}))})),c.addEventListener(d.AddView,(function(n){if(1===n){var a=new t.Bimface.Application.UI.UIConfig;(a=Object.assign(a,e)).element=i,a.viewer=c,s.UI=new t.Bimface.Application.UI.UI(a)}})),c.addEventListener(d.RemoveView,(function(e){0==e&&(s.UI.destroy(),s.UI=null)}))}}(),t.Web.Lang.Utility.Namespace.ensureNamespace(t,"Bimface.Application").WebApplication2DConfig=function(){let e=t.Bimface.Viewer.Viewer2DConfig();return Object.assign({},{Toolbars:["MainToolbar","LeftSubToolbar"],Buttons:["Home","RectZoom","FullScreen"]},e)},function(){var e=t.Web.Lang.Utility.Namespace.ensureNamespace(t,"Bimface.Application");let n=Object.freeze({Loaded:"Loaded",Error:"Error"});e.WebApplication2DEvent=n}(),function(){let e=t.Web.Lang.Utility.Namespace.ensureNamespace(t,"Bimface.Application");var n=function(e){var n=new t.Bimface.UI.Toolbar.ToolbarConfig,a=Object.assign({},n,e);return new t.Bimface.UI.Toolbar.Toolbar(a)},a=function(e){for(var t=[],a=0,i=e.length;a

    Powered by BIMFACE

    https://bimface.com'),l._panels.InformationPanel=e,e.addEventListener("Hide",(function(){y.getButton("Information").setCheckedState(!1)}))}else l._panels.InformationPanel.hide()}}},FullScreen:{id:"FullScreen",title:"全屏",className:"bf-button gld-bf-maximize",handles:{Click:function(){var e=this.hasClass("gld-bf-maximize");c.enableFullScreen(e),t.Web.Lang.Utility.FullScreen.onFullScreenChanged((function(){var t=b.getControl("FullScreen");t.getTitle();t.toggleClassName("gld-bf-maximize"),t.toggleClassName("gld-bf-minimize"),e?t.setTitle("全屏"):t.setTitle("取消全屏")}))}}}},m={Information:{element:i,title:"BIMFACE",css:{left:"50%",top:"50%",width:"330px",height:"278px",transform:"translate(-50%,-50%)",zIndex:999},enableSizable:!1}};if(!e.Toolbars||0==e.Toolbars.length)return!1;for(var p=[],u=0,g=e.Toolbars.length;u${l.name}`}}var s=(a=new t.Bimface.Application.Buttons([a])).getButtons()[0];c.addEventListener(r.ViewChanged,(function(e){s.setSelectedControlById(e)})),C.addControls(a.getButtons())})),c.addEventListener(r.Loaded,(function(){a.send("Glodon.Bimface.Application.WebApplication2D","Loaded",{eventId:"加载",loadModel:"normal",type:"2d"})}))}}(),function(){let e=t.Web.Lang.Utility.Namespace.ensureNamespace(t,"Bimface.Application");const n="Glodon.Bimface.Application.WebApplicationDemo",a=t.Bimface.Data.StatisticsDataManager.getInstance();var i=function(e,i){var o;if("dwgView"==e.viewType){(s=new t.Bimface.Application.WebApplication2DConfig).domElement=i;var l=t.Bimface.Application.WebApplication2DEvent;(o=new t.Bimface.Application.WebApplication2D(s)).load(e.viewToken),o.getViewer().addEventListener(l.Loaded,(function(){a.send(n,"Loaded",{eventId:"加载",loadModel:"normal",type:"demo"})}))}else if("rfaView"==e.viewType){(s=new t.Bimface.Application.WebApplicationRfaConfig).domElement=i;l=t.Bimface.Application.WebApplicationRfaEvent;(o=new t.Bimface.Application.WebApplicationRfa(s)).addView(e.viewToken),o.addEventListener(l.ViewAdded,(function(){var e=o.getViewer().getViewer();let t={eventId:"加载",loadModel:"normal",type:"demo",elements:e.getNumOfElements(),triangles:e.getNumOfTriangles()};a.send(n,"ViewAdded",t),o.render()}))}else if("drawingView"==e.viewType){(s=new t.Bimface.Application.WebApplicationDrawingConfig).domElement=i,s.drawingUrl=e.drawingUrl,s.viewToken=e.viewToken;l=t.Bimface.Application.WebApplicationDrawingEvent;(o=new t.Bimface.Application.WebApplicationDrawing(s)).load(e.viewToken),o.addEventListener(l.Loaded,(function(){a.send(n,"Loaded",{eventId:"加载",loadModel:"normal",type:"demo"})}))}else if("pdfView"===e.viewType){const n=new t.Bimface.Application.WebApplicationPDFConfig;n.domElement=i;(o=new t.Bimface.Application.WebApplicationPDF(n)).getViewer().addView(e.viewToken)}else if("gisView"===e.viewType){const n=new t.Bimface.Application.WebApplicationGISConfig;n.domElement=i,(o=new t.Bimface.Application.WebApplicationGIS(n)).addScene(e.viewToken)}else{var s;switch((s=new t.Bimface.Application.WebApplication3DConfig).domElement=i,this.getQueryString("renderMode")){case"fullVolume":s.renderMode="fullVolume";break;case"incremental":s.renderMode="incremental";break;default:s.renderMode="auto"}l=t.Bimface.Application.WebApplication3DEvent;(o=new t.Bimface.Application.WebApplication3D(s)).addView(e.viewToken),o.addEventListener(l.ViewAdded,(function(){var e=o.getViewer().getViewer();let t={eventId:"加载",loadModel:"normal",type:"demo",elements:e.getNumOfElements(),triangles:e.getNumOfTriangles()};a.send(n,"ViewAdded",t)}))}this._application=o};i.prototype={hideBimfaceInfo:function(){this._application.getToolbar("MainToolbar").getControl("Information").hide()},getQueryString:e=>{var t=new RegExp("(^|&)"+e+"=([^&]*)(&|$)","i"),n=window.location.search.substr(1).match(t);return null!=n?unescape(n[2]):null}},e.WebApplicationDemo=i}(),t.Web.Lang.Utility.Namespace.ensureNamespace(t,"Bimface.Application").WebApplicationDrawingConfig=function(){let e=t.Web.Lang.Utility.ClientHelper.getIsDesktop();var n={Toolbars:e?["MainToolbar","LeftSubToolbar","SearchToolbar"]:["MainToolbar","LeftSubToolbar"],Buttons:e?["Home","RectZoom","DrawingMeasure","Map","Layers","Sheets","Setting","FullScreen"]:["Home","DrawingMeasure","Layers"],defaultDisplayMode:null};let a=t.Bimface.Viewer.ViewerDrawingConfig();var i=Object.assign({},a,n);return i.staticPath="/api/Glodon",i},function(){var e=t.Web.Lang.Utility.Namespace.ensureNamespace(t,"Bimface.Application");let n=Object.freeze({ViewAdded:"ViewAdded",ViewLoading:"ViewLoading",ComponentsSelectionChanged:"ComponentsSelectionChanged",ComponentsHoverChanged:"ComponentsHoverChanged",Error:"Error",Loaded:"Loaded",MouseClicked:"MouseClicked",MouseDragged:"MouseDragged",ContextMenu:"ContextMenu",Rendered:"Rendered",ViewChanged:"ViewChanged",ViewMoving:"ViewMoving",ViewMoved:"ViewMoved",ViewZooming:"ViewZooming",ViewZoomed:"ViewZoomed",Hover:"Hover",DrawingMeasure:"DrawingMeasure",ZoomFactorChanged:"ZoomFactorChanged"});e.WebApplicationDrawingEvent=n}(),function(){t.Web.Lang.Utility.Namespace.ensureNamespace(t,"Bimface.Viewer");let e=t.Web.Lang.Utility.Namespace.ensureNamespace(t,"Bimface.Application");t.Web.Lang.Utility.Namespace.ensureNamespace(t,"Bimface.Viewer"),t.Web.Lang.Utility.Namespace.ensureNamespace(t,"Web.Lang.Utility"),t.Web.Lang.Utility.Namespace.ensureNamespace(t,"Web.Lang.Utility.Dom");const n=t.Bimface.Data.StatisticsDataManager.getInstance(),a="Glodon.Bimface.Application.WebApplicationDrawing";e.WebApplicationDrawing=function(e){this._plugins=[],this.isMeasureEventAdded=!1;var i=this;let o=e;t.Bimface.UI.Control.ControlEvent;var l,s=t.Bimface.Viewer.ViewerDrawingEvent;let r=new t.Web.Lang.EventManager;this.getEventManager=function(){return r},(l=new t.Bimface.Viewer.ViewerDrawing(o)).addEventListener(s.ViewChanged,(function(e){i.getEventManager().fireEvent(s.ViewChanged,e)})),l.addEventListener(s.ContextMenu,(function(e){if(l._disableContextMenu)return;l.contextMenu&&l.contextMenu.element&&l.contextMenu.destroy();var n=e.clientPosition,a=e.containerBox,o=l.getSelectedElements();if(l.loadedDrawings.length>0){let e=[];l.loadedDrawings.map((t=>{const n=t.drawing.getSelectedObjects();n.length>0&&e.push({modelId:t.drawing.modelId,selectedObjects:n})})),o=e}var s=new t.Bimface.Application.UI.Menu.ContextMenu(i,o),r={},c=s.element.getBoundingClientRect();a.width-n.x>2*c.width?(r.x=n.x,s.element.removeClass("bf-menu-left"),s.element.addClass("bf-menu-right")):(r.x=n.x-c.width,s.element.addClass("bf-menu-left"),s.element.removeClass("bf-menu-right"));a.height-n.y>c.height?r.y=n.y:r.y=n.y-c.height;r.x+=2,r.y+=2,s.setPosition(r),l.contextMenu=s})),this.addEventListener=function(e,t){this.getEventManager().addEvent(e,t)},this.removeEventListener=function(e,t){this.getEventManager().removeEvent(e,t)},this.loadFrame=function(e,t){l.loadFrame(e,t)},this.getRenderInfo=function(e,t){l.getRenderInfo(e,t)},l.addEventListener(s.Loaded,(function(o){if(n.send(a,"Loaded",{eventId:"加载",loadModel:"normal",type:"drawing"}),!i.UI){var s=l.getDomElement(),r=new t.Bimface.Application.UI.UIConfig;(r=Object.assign(r,e)).element=s,r.viewer=l,i.UI=new t.Bimface.Application.UI.UI(r),i.UI.init(),window.addEventListener("resize",(function(e){i._mainToolbarAdaptive()}))}i._mainToolbarAdaptive()})),l.addEventListener(s.LoadDrawing,(function(){if(n.send(a,"Loaded",{eventId:"加载",loadModel:"normal",type:"drawing"}),!i.UI){var o=l.getDomElement(),s=new t.Bimface.Application.UI.UIConfig;(s=Object.assign(s,e)).element=o,s.viewer=l,i.UI=new t.Bimface.Application.UI.UI(s),i.UI.init(),window.addEventListener("resize",(function(e){i._mainToolbarAdaptive()}))}i._mainToolbarAdaptive()})),this.getViewer=function(){return l},this.getDrawingFrame=function(e){l.getDrawingFrame(e)},this.load=function(e,t){l.load(e,t),l.addEventListener(s.Loaded,(function(){"pid-transfer"===l._viewMetaData.workerType&&l.setDisplayMode(2)}))},this.getAxisInfo=function(e){l.getAxisInfo(e)},this.getToolbars=function(){return this.UI.getToolbars()},this.getPlugin=function(e){return this.UI.getPlugin(e)},this.getToolbar=function(e){return this.UI.getToolbar(e)},this._mainToolbarAdaptive=function(){let e=this.getToolbars();if(!(e&&e.length>=2&&!!i.getToolbar("MainToolbar")))return;let t=i.getToolbar("MainToolbar");l.getDomElement().offsetWidth<1e3?t.addClassName("bf-toolbar-bottom-float-right"):t.removeClassName("bf-toolbar-bottom-float-right")}}}(),t.Web.Lang.Utility.Namespace.ensureNamespace(t,"Bimface.Application").WebApplicationPDFConfig=function(){let e=new t.Bimface.Viewer.ViewerPDFConfig;var n=Object.assign({},{mainToolbar:{create:!0,items:{Pan:{create:!0},ZoomOut:{create:!0},ZoomIn:{create:!0},FullScreen:{create:!0}}},pageController:{create:!0}},e);return n.staticPath="/api/Glodon",n},function(){t.Web.Lang.Utility.Namespace.ensureNamespace(t,"Bimface.Viewer");let e=t.Web.Lang.Utility.Namespace.ensureNamespace(t,"Bimface.Application"),n=(t.Web.Lang.Utility.Namespace.ensureNamespace(t,"Bimface.Viewer"),t.Web.Lang.Utility.Namespace.ensureNamespace(t,"Web.Lang.Utility"),t.Web.Lang.Utility.Namespace.ensureNamespace(t,"Web.Lang.Utility.Dom"));t.Bimface.Data.StatisticsDataManager.getInstance();e.WebApplicationPDF=function(e){let a,i=e,o=t.Bimface.Viewer.ViewerPDFEvent,l=[],s=new t.Web.Lang.EventManager;this.getEventManager=function(){return s},a=new t.Bimface.Viewer.ViewerPDF(i),this.addEventListener=function(e,t){this.getEventManager().addEvent(e,t)},this.removeEventListener=function(e,t){this.getEventManager().removeEvent(e,t)},this.getViewer=function(){return a},this.load=function(e){a.load(e)},this.getToolbars=function(){return l},this.getToolbar=function(e){return l.getToolbar(e)},this.destroy=function(){if(a.destroy(),l&&l._Toolbars&&l._Toolbars.length>0)for(let e=0,t=l._Toolbars.length;e{if(l&&l._Toolbars&&l._Toolbars.length>0)for(let e=0,t=l._Toolbars.length;e{i&&(clearTimeout(i),i=void 0),r.innerHTML=e,r.removeClass("bf-pdf-message-hide"),r.style.opacity=1,r.style.display="block",i=setTimeout((()=>{const e=()=>{r.style.display="none",r.removeEventListener("transitionend",e)};r.addClass("bf-pdf-message-hide"),r.addEventListener("transitionend",e),r.style.opacity=0,i=void 0}),1500)};a.enableFullScreen=function(e){e?t.Web.Lang.Utility.FullScreen.fullScreen(s):t.Web.Lang.Utility.FullScreen.exitFullScreen()};let d={MainToolbar:{id:"MainToolbar",title:"MainToolbar",element:s,className:"bf-toolbar bf-toolbar-bottom"},PageController:{id:"PageController",title:"PageController",element:s,className:"bf-toolbar bf-toolbar-select"}},f={Pan:{id:"Pan",title:BimfaceLanguage.bf_btn_pan,className:"bf-button gld-bf-drag",type:"ToggleButton",handles:{Click:()=>{let e=this.getToolbar("MainToolbar").getControl("Pan");e._checked?(e.setCheckedState(!0),a.setDragMode()):(e.setCheckedState(!1),a.setTextMode())}}},ZoomIn:{id:"ZoomIn",title:BimfaceLanguage.bf_btn_zoomIn,className:"bf-button gld-bf-zoom-in",handles:{Click:()=>{this.getToolbar("MainToolbar").getControl("ZoomIn")._enabled&&a.zoomIn()}}},ZoomOut:{id:"ZoomOut",title:BimfaceLanguage.bf_btn_zoomOut,className:"bf-button gld-bf-zoom-out",handles:{Click:()=>{this.getToolbar("MainToolbar").getControl("ZoomOut")._enabled&&a.zoomOut()}}},FullScreen:{id:"FullScreen",title:BimfaceLanguage.bf_btn_fullScreen,className:"bf-button gld-bf-maximize",handles:{Click:function(){let e=this.hasClass("gld-bf-maximize");e?a.fullScreen():a.exitFullScreen(),t.Web.Lang.Utility.FullScreen.onFullScreenChanged((function(){let t=p.getControl("FullScreen");t.toggleClassName("gld-bf-maximize"),t.toggleClassName("gld-bf-minimize"),e?t.setTitle(BimfaceLanguage.bf_btn_fullScreen_exit):t.setTitle(BimfaceLanguage.bf_btn_fullScreen)}))}}},Previous:{id:"Previous",title:BimfaceLanguage.bf_btn_previousPage,className:"bf-button gld-bf-previous",handles:{Click:()=>{this.getToolbar("PageController").getControl("Previous")._enabled&&a.previousPage()}}},Next:{id:"Next",title:BimfaceLanguage.bf_btn_nextPage,className:"bf-button gld-bf-next",handles:{Click:()=>{this.getToolbar("PageController").getControl("Next")._enabled&&a.nextPage()}}}},m=[];e.mainToolbar&&e.mainToolbar.create&&m.push(d.MainToolbar),e.pageController&&e.pageController.create&&m.push(d.PageController),l=new t.Bimface.Application.Toolbars(m);let p=l.getToolbar("MainToolbar");if(p){let n=[];for(let t in e.mainToolbar.items){e.mainToolbar.items[t].create&&n.push(f[t])}let i=new t.Bimface.Application.Buttons(n);p.addControls(i.getButtons());let l=p.getControl("ZoomIn"),s=p.getControl("ZoomOut");a.addEventListener(o.ViewZoomed,(e=>{l&&(Math.abs(e.zoom-e.max)<.001?l.disabled():l.enabled()),s&&(Math.abs(e.zoom-e.min)<.001?s.disabled():s.enabled());let t=Math.round(100*e.zoom)+"%";c(t)}));let r=p.getControl("Pan");r&&(r.element.style.marginLeft=0)}let u=l.getToolbar("PageController");if(u){let e=new t.Bimface.Application.Button(f.Previous);e.element.style.marginLeft=0,e.disabled(),u.addControl(e);let i=n.create("input","bf-page-input");i.type="number",u.element.appendChild(i),i.value=1;let l=n.create("span","bf-page-count");u.element.appendChild(l);const s=a.getPageCount();l.innerHTML=s;let r=new t.Bimface.Application.Button(f.Next);u.addControl(r),1===s&&r.disabled(),a.addEventListener(o.ViewMoved,(t=>{let n=t.pageNo;n>=t.max?(r.disabled(),n=t.max):r.enabled(),n<=t.min?(e.disabled(),n=t.min):e.enabled(),i.value=n}));const c=()=>{let e=parseInt(i.value);!isNaN(e)&&e>=1&&e<=a.getPageCount()?a.turnToPage(e):i.value=a.getCurrentPageNo()};i.addEventListener("keyup",(e=>{13===e.keyCode&&c()})),i.addEventListener("blur",c)}c("100%")};this._mainToolbarAdaptive=()=>{let e=this.getToolbars();if(!(e&&e._Toolbars&&e._Toolbars.length>=2&&!!this.getToolbar("MainToolbar")))return;let t=this.getToolbar("MainToolbar");a.getDomElement().offsetWidth<1e3?t.addClassName("bf-toolbar-bottom-float-right"):t.removeClassName("bf-toolbar-bottom-float-right")},a.addEventListener(o.ViewLoaded,(()=>{r(),this._mainToolbarAdaptive(),window.addEventListener("resize",(e=>{this._mainToolbarAdaptive()}))}))}}(),t.Web.Lang.Utility.Namespace.ensureNamespace(t,"Bimface.Application").WebApplicationDrawingSetConfig=function(){let e=t.Bimface.Viewer.ViewerDrawingSetConfig();var n=Object.assign({},e,{Toolbars:["MainToolbar"],Buttons:["Home","RectZoom","DrawingMeasure","Layers","Annotation","FullScreen","Setting"],defaultDisplayMode:null});return n.staticPath="/api/Glodon",n},function(){var e=t.Web.Lang.Utility.Namespace.ensureNamespace(t,"Bimface.Application");let n=Object.freeze({ViewAdded:"ViewAdded",ViewLoading:"ViewLoading",ComponentsSelectionChanged:"ComponentsSelectionChanged",ComponentsHoverChanged:"ComponentsHoverChanged",Error:"Error",Loaded:"Loaded",MouseClicked:"MouseClicked",MouseDragged:"MouseDragged",ContextMenu:"ContextMenu",ActiveViewChanged:"ActiveViewChanged",Rendered:"Rendered",ViewChanged:"ViewChanged",ViewMoving:"ViewMoving",ViewMoved:"ViewMoved",ViewZooming:"ViewZooming",ViewZoomed:"ViewZoomed",AddDrawing:"AddDrawing",Hover:"Hover",ZoomFactorChanged:"ZoomFactorChanged",DrawingMeasure:"DrawingMeasure"});e.WebApplicationDrawingSetEvent=n}(),function(){let e=t.Web.Lang.Utility.Namespace.ensureNamespace(t,"Bimface.Application.UI.Panel"),n=t.Web.Lang.Utility.Namespace.ensureNamespace(t,"Web.Lang.Utility.Dom");e.LayersSetPanel=function(e,a){let i=t.Web.Lang.Utility.ClientHelper.getIsDesktop();var o,l=t.Bimface.Viewer.Viewer3DEvent,s=[];if(e.sets.forEach((e=>{s.push(e.viewerDrawing),e.active&&(o=e.fileName)})),c)return c.show(),s.forEach((e=>{e.getViewer().addEventListener(l.ComponentsSelectionChanged,showLayers)})),c;var r=new t.Bimface.UI.Panel.PanelConfig;r.title=BimfaceLanguage.bf_btn_layers,r.className="bf-panel bf-layers-panell",r.id="layersSet",r.css=i?{left:"10px",top:"10px",width:"300px",height:"416px"}:{left:0,top:0,width:"100%",height:"100%",zIndex:9999};var c=new t.Bimface.UI.Panel.Panel(r);c.element.addClass("layers-panel");let d=0,f=[];var m=n.create("ul","bf-layers bf-scroll-bar");s.forEach((e=>{var a=e.getLayers(!0);this.layers=a,a.map((e=>{e.visible||d++})),a=t.Web.Lang.Utility.ClientHelper.sortByName(a),f.push(a);for(var i=0,l=a.length;i\n \n ${h}${u.name}`,c.setAttribute("layer-id",u.id),c.setAttribute("visible",u.visible),c.addEventListener("click",(function(){this.toggleClass("disable");var t=this.querySelector(".eyes");t.toggleClass("gld-bf-show"),t.toggleClass("gld-bf-hide");var n=this.getAttribute("visible"),a=this.getAttribute("layer-id");n="true"!=n,this.setAttribute("visible",n),this.querySelector(".eyes").setAttribute("title",n?"显示":"隐藏");var i=p.querySelector(".eyes");n?(e.showLayer(a,!0),p.removeClass("disable"),i.addClass("gld-bf-show"),i.removeClass("gld-bf-hide"),i.setAttribute("title","显示")):(0==m.querySelectorAll(".gld-bf-show").length&&(p.addClass("disable"),i.removeClass("gld-bf-show"),i.addClass("gld-bf-hide"),i.setAttribute("title","隐藏")),e.hideLayer(a,!0))})),m.appendChild(c)}e.changeLayers(a)}));var p=n.create("div","bf-allLayers");let u;d==f.length?(u="gld-bf-hide",p.addClass("disable")):u="gld-bf-show",p.innerHTML=`${BimfaceLanguage.bf_panel_layers_all}`,p.addEventListener("click",(function(){var e=this.hasClass("disable");e?s.forEach((e=>{e.showAllLayers(),g(!0)})):s.forEach((e=>{e.hideAllLayers(),g(!1)})),this.toggleClass("disable");var t=this.querySelector(".eyes");t.setAttribute("title",e?"显示":"隐藏"),t.toggleClass("gld-bf-show"),t.toggleClass("gld-bf-hide")}));var g=function(e){for(var t=document.querySelectorAll(".bf-layer"),n=0,a=t.length;n${BimfaceLanguage.bf_panel_measure_clearAll}
    `,c.addEventListener("click",(function(){n.clear()}));var d=e.create("span","bf-clear-all gld-bf-measure-settings");d.addEventListener("click",(function(e){h(),e.preventDefault(),e.stopPropagation()})),c.appendChild(d);var f=e.create("div","bf-measure-tabface");f.innerHTML='
  • \n \n
  • ',f.addEventListener("click",(function(e){s.hasClass("tab-open")?(s.removeClass("tab-open"),o.element.removeClass("tab-open")):(s.addClass("tab-open"),o.element.addClass("tab-open"))})),l.appendChild(s),l.appendChild(r),l.appendChild(c);var m=e.create("div","bf-setting-container"),u=e.create("div","bf-setting-body"),g=e.create("div","bf-setting-foot");m.appendChild(u),m.appendChild(g);var h=function(e){v(!1);var a,i=n.getScale(),l=n.getPrecision(),s=n.getUnits();a=`
      \n
    • \n ${BimfaceLanguage.bf_panel_measure_scale} :\n
      \n 1: \n ${BimfaceLanguage.bf_panel_measure_scaleInput} \n
      \n
    • \n
    • \n ${BimfaceLanguage.bf_panel_measure_units} :\n
      \n
    • \n
    • \n ${BimfaceLanguage.bf_panel_measure_precision} :\n
      \n
    • \n\n
    `,u.innerHTML=a;var r="";u.querySelector(".scaleWrap input").oninput=function(e){var t=e.target.value;if("."==e.data||"e"==e.data){var n=(t||r).replace(/\./g,"").replace(/e/g,"");e.target.setAttribute("value",n),e.target.value=n}!(r=e.target.value)||r>2e3||r<1?e.target.addClass("error"):e.target.removeClass("error")};var c=new t.Bimface.Application.Button({type:"ComboBox",id:"units",inheritTitle:!0,className:"bf-combobox",options:{},handles:{Change:function(e){}}});for(var d in b){var f={type:"ComboBoxOptionButton",title:h=b[d],id:d,className:"bf-button",html:`${h}`};c.addControl(new t.Bimface.Application.Button(f))}c.setSelectedControlById(s.distance),u.querySelector(".bf-measure-lengthUnits .unit").appendChild(c.element),c.element.onclick=function(){m.element.removeClass("bf-expand")};var m=new t.Bimface.Application.Button({type:"ComboBox",id:"units",inheritTitle:!0,className:"bf-combobox",options:{},handles:{Change:function(e){}}}),p={0:"0",1:"0.0",2:"0.00",3:"0.000"};for(var d in p){var h;f={type:"ComboBoxOptionButton",title:h=p[d],id:d.toString(),className:"bf-button",html:`${h}`};m.addControl(new t.Bimface.Application.Button(f))}m.setSelectedControlById(l.distance),u.querySelector(".bf-measure-precision .unit").appendChild(m.element),m.element.onclick=function(){c.element.removeClass("bf-expand")},g.innerHTML=`
    \n ${BimfaceLanguage.bf_panel_measure_save} ${BimfaceLanguage.bf_general_cancel}\n
    `,g.querySelector(".save").onclick=function(){var e=m.getCurrentControl().id,t=u.querySelector(".scaleWrap input").value,a=c.getCurrentControl().id;t<1||t>2e3||(n.setScale(t),n.setPrecision({distance:e,area:e,angle:e}),n.setUnits({distance:a,area:a}),v(!0),y(o.data),n.getEventManager().fireEvent("MeasureParamsUpdated"))},g.querySelector(".cancel").onclick=function(){v(!0)}},b={None:BimfaceLanguage.bf_general_none,Meter:"m",Centimeter:"cm",Millimeter:"mm"},v=function(e){e?(o.setTitleContent(BimfaceLanguage.bf_btn_measure),o.element.querySelector(".bf-close").style.display="block",m.style.display="none",l.style.display="block"):(o.element.querySelector(".bf-close").style.display="none",o.setTitleContent(BimfaceLanguage.bf_panel_measure_setting),m.style.display="block",l.style.display="none")},y=function(e){o.data=e;var a,i=n.getMeasureType(),l=(n.getPrecision(),n.getScale(),n.getUnits()),c=null,d="None"!=l.distance&&`${b[l.distance]}`||"",m="None"!=l.area&&`${b[l.area]}`||"";s.innerHTML=`
  • \n \n
  • \n
  • \n \n
  • \n
  • \n \n
  • `;for(var p=s.querySelectorAll(".bf-measure-tab-item"),u=0;u\n
  • \n ${BimfaceLanguage.bf_panel_measure_distance}:\n ${t?t+d:"--"}\n
  • \n
  • X: ${n||"--"}
  • \n
  • Y: ${i||"--"}
  • \n\n `,c=p[0],o.element.removeClass("miniStyle")}else if(i==t.Bimface.Plugins.Measure.MeasureTypeOption.Angle){let t=null;e&&(t=e.angle),a=`
      \n
    • \n ${BimfaceLanguage.bf_panel_measure_angle}:\n ${t?t+"°":"--"}\n
    • \n
    `,c=p[1],o.element.addClass("miniStyle")}else if(i==t.Bimface.Plugins.Measure.MeasureTypeOption.Area){let t=null;e&&(t=e.area),m&&(m+="2"),a=`
      \n
    • \n ${BimfaceLanguage.bf_panel_measure_area}:\n ${t?t+m:"--"}\n
    • \n
    `,c=p[2],o.element.addClass("miniStyle")}r.innerHTML=a,r.querySelector(".gld-bf-reset-box").addEventListener("click",(function(){n.reset()})),f.innerHTML="",f.appendChild(c.cloneNode(!0))},C=new t.Bimface.UI.Panel.PanelConfig;C.title=BimfaceLanguage.bf_btn_measure,C.id="MeaurePanel",C.className="bf-panel bf-measurement-panel",C.css=i?{right:"10px",bottom:"220px",width:"200px",height:"220px"}:{maxWidth:"414px",left:"50%",transform:"translate(-50%)",bottom:"0.12em",width:"100%",height:"1.7em"};var B=function(e){let t={type:e.type},a=n.getMeasureParams();if("Distance"===e.type){var i=e.end[0]-e.start[0],o=e.end[1]-e.start[1],l=Math.sqrt(i*i+o*o);t.distance=p.formatDistance(l,a),t.distanceX=p.formatDistance(i,a),t.distanceY=p.formatDistance(o,a)}else"Angle"===e.type?t.angle=p.formatArea(e.angle,a):"Area"===e.type&&(t.area=p.formatArea(e.area,a));return t};if(C.enableSizable=!1,n.viewer.addEventListener(t.Bimface.Plugins.Measure.MeasureEvent.Measuring,(function(){y()})),n.viewer.addEventListener(t.Bimface.Plugins.Measure.MeasureEvent.Measured,(function(e){e?y(B(e)):y()})),n.addEventListener(t.Bimface.Plugins.Measure.MeasureEvent.MeasureSelected,(function(e){if(e.isDataEmpty)return void y();let t=s.querySelectorAll(".bf-measure-tab-item");for(const n of t)n.getAttribute("data-type")===e.type?n.addClass("bf-active"):n.removeClass("bf-active");n.setMeasureType(e.type),y(B(e))})),n.addEventListener(t.Bimface.Plugins.Measure.MeasureEvent.MeasureUnselected,(function(e){y()})),n.addEventListener(t.Bimface.Plugins.Measure.MeasureEvent.Reset,(function(){y(),v(!0)})),(o=new t.Bimface.UI.Panel.Panel(C)).container.appendChild(l),o.container.appendChild(m),o.bringToFront(),!i){var w=a.offsetWidth,L=a.offsetHeight;o.element.style.fontSize=100*Math.min(w,L,414)/750+"px",o.element.addClass("measure-panel"),o.element.querySelector(".bf-close").innerHTML=`${BimfaceLanguage.bf_general_exit}`,o.element.appendChild(f)}return y(),o}}(),function(){let e=t.Web.Lang.Utility.Namespace.ensureNamespace(t,"Bimface.Application.UI.Panel"),n=t.Web.Lang.Utility.Namespace.ensureNamespace(t,"Web.Lang.Utility.Dom");e.PrintModePanel=function(e){var a=new t.Bimface.UI.Panel.PanelConfig,i=this;let o;o="ViewerDrawingSet"==e.viewerType?e:e.getViewer(),this.viewer=o,this.status={print:o.getDisplayMode()},a.title=BimfaceLanguage.bf_btn_settings,a.css={left:"50%",top:"50%",transform:"translate(-50%,-200px)",width:"330px",height:"auto"},a.id="Setting",a.enableSizable=!1,a.className="bf-panel bf-settings-panel";var l=new t.Bimface.UI.Panel.Panel(a),s=n.create("form","bf-setting"),r=n.create("div","bf-setting-foot"),c=`
      \n\n \n
    • \n ${BimfaceLanguage.bf_panel_settings_displayMode}\n
      \n \n \n \n
      \n
    • \n
    \n `,d=`
    \n ${BimfaceLanguage.bf_panel_settings_restore}\n
    `;s.innerHTML=c,r.innerHTML=d;var f=s.querySelectorAll(".printmode .bf-radio-input");for(let e=0,t=f.length;e0)for(var r=0,p=l._Toolbars.length;r0&&o.getViewer().getActiveDrawing().viewerDrawing.clearSelection()}}),!0),!e.Toolbars||0==e.Toolbars.length)return!1;var w=[];for(r=0,p=e.Toolbars.length;rModel'},a.length)for(var l=0,s=a.length;l${r.name}`}}var c,d=(c=new t.Bimface.Application.Buttons([c])).getButtons()[0],m=n.getCurrentViewId();n.addEventListener(f.ViewChanged,(function(e){0===e&&(e="Model"),d.setSelectedControlById(e)})),x.addControls(c.getButtons()),m?(d._currentControl.setCheckedState(!1),d.setSelectedControlById(m)):d.setSelectedControlById("Model")},x=l.getToolbar("LeftSubToolbar");x&&(I(),c.addEventListener(f.ActiveViewChanged,I));c.getManifest((function(e){const t=e.Features;let n;n=!t||t.HasLayout,n||x&&x.destroy()})),c.addEventListener(f.ViewChanged,(function(){var e=o.getPanel("layersSet");if(e){var n=L.getControl("Layers"),a=e.isShow;a&&e.hide(),e.destroy(),o.removePanel("layersSet"),a?n.setCheckedState(!0):n.setCheckedState(!1),u=new t.Bimface.Application.UI.Panel.LayersSetPanel(c,n),m.appendChild(u.element),o.addPanel(u),a||u.hide()}}))}(),o._mainToolbarAdaptive(),1===o.getViewer().sets.length&&"pid-transfer"===o.getViewer().sets[0].viewerDrawing._viewMetaData.workerType&&o.getViewer().setDisplayMode(2),window.addEventListener("resize",(function(e){o._mainToolbarAdaptive()}))})),c.addEventListener(f.ContextMenu,(function(e){if(o._measureFunc&&o._measureFunc.viewer._disableContextMenu)return;var n=o.getActiveViewer();n.contextMenu&&n.contextMenu.element&&n.contextMenu.destroy();var a=e.clientPosition,i=e.containerBox,l=n.getSelectedElements(),s=new t.Bimface.Application.UI.Menu.ContextMenu(o,l),r={},c=s.element.getBoundingClientRect();i.width-a.x>2*c.width?(r.x=a.x,s.element.removeClass("bf-menu-left"),s.element.addClass("bf-menu-right")):(r.x=a.x-c.width,s.element.addClass("bf-menu-left"),s.element.removeClass("bf-menu-right"));i.height-a.y>c.height?r.y=a.y:r.y=a.y-c.height;r.x+=2,r.y+=2,s.setPosition(r),n.contextMenu=s})),this.getViewer=function(){return c},this.getActiveViewer=function(){return c.getActiveDrawing().viewerDrawing},this.addDrawing=function(e,t,n){c.addDrawing(e,t,n)},this.addDrawings=function(e,t){c.addDrawings(e,t)},this.getRenderInfo=function(e,t){c.getRenderInfo(e,t)},this.getToolbars=function(){return l},this.getToolbar=function(e){return l.getToolbar(e)},this.addPanel=function(e){s.push(e)},this.removePanel=function(e){s.removeObjectByAttribute("id",e)},this.getPanel=function(e){return s.getObjectByAttribute("id",e)},this._mainToolbarAdaptive=function(){let e=o.getToolbars();if(!(e&&e._Toolbars&&e._Toolbars.length>=2&&!!o.getToolbar("MainToolbar")))return;let t=o.getToolbar("MainToolbar");c.getRootElement().offsetWidth<1e3?t.addClassName("bf-toolbar-bottom-float-right"):t.removeClassName("bf-toolbar-bottom-float-right")}}}(),t.Web.Lang.Utility.Namespace.ensureNamespace(t,"Bimface.Application").ApplicationDrawingDemo=function(e,n){var a,i=new t.Bimface.Application.WebApplicationDrawingConfig;i.domElement=document.getElementById(n),i.domElementId=n,i.drawingUrl=e.drawingUrl,t.Bimface.Application.WebApplicationDrawingEvent,a=new t.Bimface.Application.WebApplicationDrawing(i),this._application=a},t.Web.Lang.Utility.Namespace.ensureNamespace(t,"Bimface.Application.UI").UIConfig=function(){return{Toolbars:["MainToolbar","ModelTree"],Buttons:["Home","RectangleSelect","Measure","Section","Walk","Map","Property","Setting","Information","FullScreen"],contextMenu:!0,viewer:null,element:null}},function(){let e=t.Web.Lang.Utility.Namespace.ensureNamespace(t,"Bimface.Application.UI");var n=function(e){var n=this,a=e.viewer;this._toolbars=[],this._panels=[],this._plugins=[],this._opt=e,this._objectTypes={},this._contextMenuCb=function(e){a.contextMenu&&a.contextMenu.element&&a.contextMenu.destroy();var i=e.clientPosition,o=e.containerBox,l={};a.getModels().forEach((e=>{l[e.modelId]=e.getSelectedComponents()}));const s=a._getExtrudeBodyModel();s&&(l[s.modelId]=s.getSelectedComponents());const r=a._getExternalComponentModel();r&&(l[r.modelId]=r.getSelectedComponents());var c=new t.Bimface.Application.UI.Menu.ContextMenu(n,l,n._objectTypes),d={},f=c.element.getBoundingClientRect();o.width-i.x>2*f.width?(d.x=i.x,c.element.removeClass("bf-menu-left"),c.element.addClass("bf-menu-right")):(d.x=i.x-f.width>9?i.x-f.width:10,c.element.addClass("bf-menu-left"),c.element.removeClass("bf-menu-right")),o.height-i.y>f.height?d.y=i.y:d.y=i.y-f.height,c.setPosition(d),a.contextMenu=c};var i={initialized:!1,menu:!0,hobby:!0,hover:!1,scroll:!1,backgroundColor:1,borderLine:!1,environment:"color",effect:"low",exposure:0,enableIBLBackground:!1,ambientLight:!1,IBLName:"none",SSAO:!1,setDefault:function(){a.getInformation();var e=a.getLoadIBLScene();i=Object.assign(i,{menu:a.isEnableToggleContextMenuDisplay(),hover:a.isEnableHover(),borderLine:a.isWireframeEnabled(),exposure:a.getExposureShift(),ambientLight:a.isEnableIBLBackground(),IBLName:e.IBLSceneOption,enableIBLBackground:e.withBackground}),t.Web.Lang.Utility.ClientHelper.getIsDesktop()&&!CLOUD.GlobalData.IncrementRender||a.enableWireframe(!1)}};this.state=i};n.prototype={init:function(){if(this.state.initialized)return!1;var e=this,n=this._opt,a=n.viewer,i=a._data,o=n.Toolbars,l=a._manifest;if("ViewerDrawing"==a.viewerType){if(-1!=o.indexOf("MainToolbar")){(d=t.Bimface.UI.Toolbar.ToolbarConfig()).id="MainToolbar",d.title="主菜单",d.className="bf-toolbar bf-toolbar-bottom",d.element=n.element,d.buttons=[...n.Buttons],l&&!l.Features.HasSplitDrawing&&d.buttons.removeByValue("Sheets"),this.addToolbar(d);let i=this.getToolbar("MainToolbar");document.addEventListener("keydown",(function(t){if(27==t.which){var n=i.getControl("DrawingMeasure"),o=e.getPlugin("DrawingMeasure"),l=(e.getPanel("MeaurePanel"),i.getControl("RectZoom"));if(o&&n.isChecked()){const e=o.viewerDrawing.mouseEditorMgr.getEditor();1==e.points.length?o.drawableManager.setIsEnableSelection(!0):0==e.points.length&&n.setCheckedState(!1)}l&&l.setCheckedState(!1),Array.from(a.getSelectedElements()).length>0&&a.clearSelection()}}),!0)}if(-1!=o.indexOf("LeftSubToolbar")&&l&&l.Features.HasLayout){var s=t.Bimface.UI.Toolbar.ToolbarConfig();s.id="LeftSubToolbar",s.title="LeftSubToolbar",s.className="bf-toolbar bf-toolbar-select",s.element=n.element,s.buttons=["LayoutList"],this.addToolbar(s);const e=this;a.addEventListener(t.Bimface.Viewer.ViewerDrawingEvent.ViewChanged,(function(t){0==t&&(t="Model"),e.getToolbar("LeftSubToolbar").getControl("LayoutList").setSelectedUiById(t,!1)}))}if(l&&l.Features.HasText&&-1!=o.indexOf("SearchToolbar")){var r=t.Bimface.UI.Toolbar.ToolbarConfig();r.id="SearchToolbar",r.title="",r.className="bf-toolbar bf-toolbar-search",r.element=n.element,r.buttons=[],this.addToolbar(r);var c=this.getToolbar("SearchToolbar");let e=new t.Bimface.Plugins.Search.SearchConfig;e.wrapElement=c.element,e.viewer=a,e.UI=this;let i=new t.Bimface.Plugins.Search.Search(e);this.addPlugin(i)}}else{var d,f=l.Features.HasComponentStructure||l.Features.HasFileList||l.Features.HasLinkRelation||l.Features.HasRoom||l.Features.HasArea||l.Features.HasDrawing||l.Features.HasMEPSystem||l.Features.HasGroup||l.Features.HasAssemble;if(-1!=o.indexOf("MainToolbar"))(d=t.Bimface.UI.Toolbar.ToolbarConfig()).id="MainToolbar",d.title="主菜单",d.className="bf-toolbar bf-toolbar-bottom",d.element=n.element,d.buttons=[...n.Buttons],l.Features.HasComponentProperty||(d.buttons.removeByValue("Property"),d.buttons.removeByValue("MobileProperty")),l.Features.HasMiniMap||-1!=i.workerType.indexOf("rvt")||-1!=i.workerType.indexOf("skp")||-1!=i.workerType.indexOf("igms")||-1!=i.workerType.indexOf("gbq")||-1!=i.workerType.indexOf("gcl")||-1!=i.workerType.indexOf("dgn")||-1!=i.workerType.indexOf("ifc")||-1!=i.workerType.indexOf("tdm")||-1!=i.workerType.indexOf("gtj")||-1!=i.workerType.indexOf("gqi")||-1!=i.workerType.indexOf("bmv")||-1!=i.workerType.indexOf("fbx")||-1!=i.workerType.indexOf("3ds")||-1!=i.workerType.indexOf("pdms")||-1!=i.workerType.indexOf("bdb")||-1!=i.workerType.indexOf("gbp")||d.buttons.removeByValue("Map"),this.addToolbar(d);if(f&&-1!=o.indexOf("ModelTree")&&!e._modelTree){var m=t.Bimface.UI.Toolbar.ToolbarConfig();m.id="ModelTree",m.title="目录树",m.className="bf-toolbar bf-toolbar bf-tree-toolbar",m.element=n.element,m.buttons=["ModelTree"],this.addToolbar(m)}if(l.Features.HasFamilyTypeList&&n.EnableFamilyList){var p=t.Bimface.UI.Toolbar.ToolbarConfig();p.id="FamilyTypes",p.title="FamilyTypes",p.className="bf-toolbar bf-toolbar bf-toolbar-select",p.element=n.element,p.buttons=["FamilyList"],this.addToolbar(p)}n.contextMenu&&(a.addEventListener(t.Bimface.Viewer.Viewer3DEvent.ContextMenu,e._contextMenuCb),a.addEventListener(t.Bimface.Viewer.Viewer3DEvent.ComponentsSelectionChanged,(function(t){t.objectId&&(e._objectTypes[t.objectId]=t.objectType)}))),this.onKeyUp=function(t){if(t&&27==t.keyCode&&!CLOUD.EditorConfig.NoKey){var n=e.getToolbar("MainToolbar"),i=n.getControl("RectangleSelect"),o=n.getControl("Measure"),l=function(e){var t=e.getPlugin("SectionBox"),n=e.getPlugin("SectionPlane"),a=e.getToolbar("MainToolbar"),i={enable:!1,button:null};(t||n)&&(i.enable=!0);var o=a.getControl("Section");if(o){var l=o.getToolbar(),s=l.getControl("SectionBox"),r=l.getControl("SectionPlane");s.isChecked()&&(i.button=s),r.isChecked()&&(i.button=r)}return i}(e),s=n.getControl("Walk");if(i&&i.isChecked())i.setCheckedState(!1);else if(o&&o.isChecked()){var r=e.getPlugin("Measure");r&&r.getInfo().points.length>0?(r.redo(),0==r.getInfo().points.length&&r.drawableManager.setIsEnableSelection(!0)):o.setCheckedState(!1)}else l.enable?b(e):s&&s.isChecked()&&s.setCheckedState(!1);a.render()}},document.addEventListener("keyup",this.onKeyUp),e.state.setDefault(),e.state.initialized=!0}},addToolbar:function(e){var n=t.Bimface.Application.UI.Toolbar.Toolbar(e,this);this._toolbars.push(n)},removeToolbar:function(e){return this._toolbars.removeObjectByAttribute("id",e),[...this._toolbars]},getToolbar:function(e){return this._toolbars.getObjectByAttribute("id",e)},getToolbars:function(){return[...this._toolbars]},getViewer:function(){return this._opt.viewer},getRootElement:function(){return this._opt.element},addPanel:function(e){this._panels.push(e)},removePanel:function(e){this._panels.removeObjectByAttribute("id",e)},getPanel:function(e){return this._panels.getObjectByAttribute("id",e)},getPanels:function(e){return[...this._panels]},addPlugin:function(e){this._plugins.push(e)},removePlugin:function(e){this._plugins.removeObjectByAttribute("id",e)},getPlugin:function(e){return this._plugins.getObjectByAttribute("id",e)},getPlugins:function(e){return[...this._plugins]},destroy:function(){"ViewerDrawing"==this._opt.viewer.viewerType||(document.removeEventListener("keyup",this.onKeyUp),this._opt.viewer.removeEventListener(t.Bimface.Viewer.Viewer3DEvent.ContextMenu,this._contextMenuCb));for(let e=0;e