diff --git a/dist/xeokit-bim-viewer.es.js b/dist/xeokit-bim-viewer.es.js index 3c1d7b7c..7086674b 100644 --- a/dist/xeokit-bim-viewer.es.js +++ b/dist/xeokit-bim-viewer.es.js @@ -11988,7 +11988,7 @@ class AngleMeasurementsMouseControl extends AngleMeasurementsControl { * start, corner or end point will cause the point to snap to the nearest vertex or edge. A quick * touch-release will immediately set the point at the tapped position on the object surface. * - * [[Run example](/examples/measurement/#angle_createWithTouch_snapping)] + * [[Run example](https://xeokit.github.io/xeokit-sdk/examples/measurement/#angle_createWithTouch_snapping)] * * ````javascript * import {Viewer, XKTLoaderPlugin, AngleMeasurementsPlugin, AngleMeasurementsTouchControl} from "xeokit-sdk.es.js"; @@ -79887,7 +79887,7 @@ class DistanceMeasurementsMouseControl extends DistanceMeasurementsControl { * start or end point will cause the point to snap to the nearest vertex or edge. A quick * touch-release will immediately set the point at the tapped position on the object surface. * - * [[Run example](/examples/measurement/#distance_createWithTouch_snapping)] + * [[Run example](https://xeokit.github.io/xeokit-sdk/examples/measurement/#distance_createWithTouch_snapping)] * * ````javascript * import {Viewer, XKTLoaderPlugin, DistanceMeasurementsPlugin, DistanceMeasurementsTouchControl} from "xeokit-sdk.es.js"; @@ -99278,7 +99278,8 @@ class Control { this._rootNode = new Node$2(scene, { position: [0, 0, 0], - scale: [5, 5, 5] + scale: [5, 5, 5], + isObject: false }); const rootNode = this._rootNode; @@ -99469,7 +99470,8 @@ class Control { collidable: true, clippable: false, visible: false, - scale: [2.4, 2.4, 1] + scale: [2.4, 2.4, 1], + isObject: false }), NO_STATE_INHERIT), planeFrame: rootNode.addChild(new Mesh(rootNode, { // Visible frame @@ -99500,7 +99502,8 @@ class Control { clippable: false, visible: false, scale: [1, 1, .1], - rotation: [0, 0, 45] + rotation: [0, 0, 45], + isObject: false }), NO_STATE_INHERIT), //---------------------------------------------------------------------------------------------------------- @@ -99519,7 +99522,8 @@ class Control { collidable: true, clippable: false, backfaces: true, - visible: false + visible: false, + isObject: false }), NO_STATE_INHERIT), xCurveHandle: rootNode.addChild(new Mesh(rootNode, { // Red hoop about Y-axis @@ -99534,7 +99538,8 @@ class Control { collidable: true, clippable: false, backfaces: true, - visible: false + visible: false, + isObject: false }), NO_STATE_INHERIT), xCurveArrow1: rootNode.addChild(new Mesh(rootNode, { @@ -99549,7 +99554,8 @@ class Control { pickable: true, collidable: true, clippable: false, - visible: false + visible: false, + isObject: false }), NO_STATE_INHERIT), xCurveArrow2: rootNode.addChild(new Mesh(rootNode, { @@ -99564,7 +99570,8 @@ class Control { pickable: true, collidable: true, clippable: false, - visible: false + visible: false, + isObject: false }), NO_STATE_INHERIT), //---------------------------------------------------------------------------------------------------------- @@ -99579,7 +99586,8 @@ class Control { collidable: true, clippable: false, backfaces: true, - visible: false + visible: false, + isObject: false }), NO_STATE_INHERIT), yCurveHandle: rootNode.addChild(new Mesh(rootNode, { @@ -99590,7 +99598,8 @@ class Control { collidable: true, clippable: false, backfaces: true, - visible: false + visible: false, + isObject: false }), NO_STATE_INHERIT), yCurveArrow1: rootNode.addChild(new Mesh(rootNode, { @@ -99605,7 +99614,8 @@ class Control { pickable: true, collidable: true, clippable: false, - visible: false + visible: false, + isObject: false }), NO_STATE_INHERIT), yCurveArrow2: rootNode.addChild(new Mesh(rootNode, { @@ -99620,7 +99630,8 @@ class Control { pickable: true, collidable: true, clippable: false, - visible: false + visible: false, + isObject: false }), NO_STATE_INHERIT), //---------------------------------------------------------------------------------------------------------- @@ -99634,7 +99645,8 @@ class Control { pickable: false, collidable: true, clippable: false, - visible: false + visible: false, + isObject: false }), NO_STATE_INHERIT), zCurveHandle: rootNode.addChild(new Mesh(rootNode, { @@ -99644,7 +99656,8 @@ class Control { pickable: true, collidable: true, clippable: false, - visible: false + visible: false, + isObject: false }), NO_STATE_INHERIT), zCurveCurveArrow1: rootNode.addChild(new Mesh(rootNode, { @@ -99658,7 +99671,8 @@ class Control { pickable: true, collidable: true, clippable: false, - visible: false + visible: false, + isObject: false }), NO_STATE_INHERIT), zCurveArrow2: rootNode.addChild(new Mesh(rootNode, { @@ -99673,7 +99687,8 @@ class Control { pickable: true, collidable: true, clippable: false, - visible: false + visible: false, + isObject: false }), NO_STATE_INHERIT), //---------------------------------------------------------------------------------------------------------- @@ -99688,7 +99703,8 @@ class Control { pickable: false, collidable: true, clippable: false, - visible: false + visible: false, + isObject: false }), NO_STATE_INHERIT), //---------------------------------------------------------------------------------------------------------- @@ -99706,7 +99722,8 @@ class Control { pickable: false, collidable: true, clippable: false, - visible: false + visible: false, + isObject: false }), NO_STATE_INHERIT), xAxisArrowHandle: rootNode.addChild(new Mesh(rootNode, { @@ -99720,7 +99737,8 @@ class Control { pickable: true, collidable: true, clippable: false, - visible: false + visible: false, + isObject: false }), NO_STATE_INHERIT), xAxis: rootNode.addChild(new Mesh(rootNode, { @@ -99734,7 +99752,8 @@ class Control { pickable: false, collidable: true, clippable: false, - visible: false + visible: false, + isObject: false }), NO_STATE_INHERIT), xAxisHandle: rootNode.addChild(new Mesh(rootNode, { @@ -99748,7 +99767,8 @@ class Control { pickable: true, collidable: true, clippable: false, - visible: false + visible: false, + isObject: false }), NO_STATE_INHERIT), //---------------------------------------------------------------------------------------------------------- @@ -99766,7 +99786,8 @@ class Control { pickable: false, collidable: true, clippable: false, - visible: false + visible: false, + isObject: false }), NO_STATE_INHERIT), yAxisArrowHandle: rootNode.addChild(new Mesh(rootNode, { @@ -99781,7 +99802,8 @@ class Control { collidable: true, clippable: false, visible: false, - opacity: 0.2 + opacity: 0.2, + isObject: false }), NO_STATE_INHERIT), yShaft: rootNode.addChild(new Mesh(rootNode, { @@ -99791,7 +99813,8 @@ class Control { pickable: false, collidable: true, clippable: false, - visible: false + visible: false, + isObject: false }), NO_STATE_INHERIT), yShaftHandle: rootNode.addChild(new Mesh(rootNode, { @@ -99801,7 +99824,8 @@ class Control { pickable: true, collidable: true, clippable: false, - visible: false + visible: false, + isObject: false }), NO_STATE_INHERIT), //---------------------------------------------------------------------------------------------------------- @@ -99819,7 +99843,8 @@ class Control { pickable: false, collidable: true, clippable: false, - visible: false + visible: false, + isObject: false }), NO_STATE_INHERIT), zAxisArrowHandle: rootNode.addChild(new Mesh(rootNode, { @@ -99833,7 +99858,8 @@ class Control { pickable: true, collidable: true, clippable: false, - visible: false + visible: false, + isObject: false }), NO_STATE_INHERIT), @@ -99848,7 +99874,8 @@ class Control { clippable: false, pickable: false, collidable: true, - visible: false + visible: false, + isObject: false }), NO_STATE_INHERIT), zAxisHandle: rootNode.addChild(new Mesh(rootNode, { @@ -99862,7 +99889,8 @@ class Control { clippable: false, pickable: true, collidable: true, - visible: false + visible: false, + isObject: false }), NO_STATE_INHERIT) }; @@ -99894,7 +99922,8 @@ class Control { clippable: false, visible: false, scale: [1, 1, 1], - rotation: [0, 0, 45] + rotation: [0, 0, 45], + isObject: false }), NO_STATE_INHERIT), xHoop: rootNode.addChild(new Mesh(rootNode, { // Full @@ -99910,7 +99939,8 @@ class Control { pickable: false, collidable: true, clippable: false, - visible: false + visible: false, + isObject: false }), NO_STATE_INHERIT), yHoop: rootNode.addChild(new Mesh(rootNode, { @@ -99922,7 +99952,8 @@ class Control { pickable: false, collidable: true, clippable: false, - visible: false + visible: false, + isObject: false }), NO_STATE_INHERIT), zHoop: rootNode.addChild(new Mesh(rootNode, { // Blue hoop about Z-axis @@ -99935,7 +99966,8 @@ class Control { collidable: true, clippable: false, backfaces: true, - visible: false + visible: false, + isObject: false }), NO_STATE_INHERIT), xAxisArrow: rootNode.addChild(new Mesh(rootNode, { @@ -99949,7 +99981,8 @@ class Control { pickable: false, collidable: true, clippable: false, - visible: false + visible: false, + isObject: false }), NO_STATE_INHERIT), yAxisArrow: rootNode.addChild(new Mesh(rootNode, { @@ -99963,7 +99996,8 @@ class Control { pickable: false, collidable: true, clippable: false, - visible: false + visible: false, + isObject: false }), NO_STATE_INHERIT), zAxisArrow: rootNode.addChild(new Mesh(rootNode, { @@ -99977,7 +100011,8 @@ class Control { pickable: false, collidable: true, clippable: false, - visible: false + visible: false, + isObject: false }), NO_STATE_INHERIT) }; } @@ -110106,7 +110141,7 @@ class SectionTool extends Controller { // XX pickSurface: true // <<------ This causes picking to find the intersection point on the entity }); - if (pickResult) { + if (pickResult && pickResult.entity && pickResult.entity.isObject) { // Only slice model objects, not 3D UI helpers const sectionPlane = this._sectionPlanesPlugin.createSectionPlane({ pos: pickResult.worldPos, diff --git a/dist/xeokit-bim-viewer.min.es.js b/dist/xeokit-bim-viewer.min.es.js index fbff34a0..0f9169e7 100644 --- a/dist/xeokit-bim-viewer.min.es.js +++ b/dist/xeokit-bim-viewer.min.es.js @@ -34,5 +34,5 @@ INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. -***************************************************************************** */var zh=function(e,t){return zh=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var i in t)Object.prototype.hasOwnProperty.call(t,i)&&(e[i]=t[i])},zh(e,t)};function Gh(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function i(){this.constructor=e}zh(e,t),e.prototype=null===t?Object.create(t):(i.prototype=t.prototype,new i)}var Wh=function(){return Wh=Object.assign||function(e){for(var t,i=1,s=arguments.length;i0&&r[r.length-1])||6!==o[0]&&2!==o[0])){n=0;continue}if(3===o[0]&&(!r||o[1]>r[0]&&o[1]=55296&&r<=56319&&i>10),n%1024+56320)),(r+1===i||s.length>16384)&&(o+=String.fromCharCode.apply(String,s),s.length=0)}return o},ec="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",tc="undefined"==typeof Uint8Array?[]:new Uint8Array(256),ic=0;ic=0){if(e<55296||e>56319&&e<=65535)return t=((t=this.index[e>>5])<<2)+(31&e),this.data[t];if(e<=65535)return t=((t=this.index[2048+(e-55296>>5)])<<2)+(31&e),this.data[t];if(e>11),t=this.index[t],t+=e>>5&63,t=((t=this.index[t])<<2)+(31&e),this.data[t];if(e<=1114111)return this.data[this.highValueIndex]}return this.errorValue},e}(),lc="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",Ac="undefined"==typeof Uint8Array?[]:new Uint8Array(256),hc=0;hc>4,h[l++]=(15&s)<<4|r>>2,h[l++]=(3&r)<<6|63&o;return A}(e),n=Array.isArray(o)?function(e){for(var t=e.length,i=[],s=0;s0;){var n=s[--o];if(Array.isArray(e)?-1!==e.indexOf(n):e===n)for(var a=i;a<=s.length;){var l;if((l=s[++a])===t)return!0;if(l!==cc)break}if(n!==cc)break}return!1},Gc=function(e,t){for(var i=e;i>=0;){var s=t[i];if(s!==cc)return s;i--}return 0},Wc=function(e,t,i,s,r){if(0===i[s])return"×";var o=s-1;if(Array.isArray(r)&&!0===r[o])return"×";var n=o-1,a=o+1,l=t[o],A=n>=0?t[n]:0,h=t[a];if(2===l&&3===h)return"×";if(-1!==Oc.indexOf(l))return"!";if(-1!==Oc.indexOf(h))return"×";if(-1!==Nc.indexOf(h))return"×";if(8===Gc(o,t))return"÷";if(11===Uc.get(e[o]))return"×";if((l===Cc||l===Mc)&&11===Uc.get(e[a]))return"×";if(7===l||7===h)return"×";if(9===l)return"×";if(-1===[cc,uc,dc].indexOf(l)&&9===h)return"×";if(-1!==[pc,gc,mc,bc,Pc].indexOf(h))return"×";if(Gc(o,t)===vc)return"×";if(zc(23,vc,o,t))return"×";if(zc([pc,gc],_c,o,t))return"×";if(zc(12,12,o,t))return"×";if(l===cc)return"÷";if(23===l||23===h)return"×";if(16===h||16===l)return"÷";if(-1!==[uc,dc,_c].indexOf(h)||14===l)return"×";if(36===A&&-1!==Hc.indexOf(l))return"×";if(l===Pc&&36===h)return"×";if(h===fc)return"×";if(-1!==kc.indexOf(h)&&l===xc||-1!==kc.indexOf(l)&&h===xc)return"×";if(l===yc&&-1!==[Ic,Cc,Mc].indexOf(h)||-1!==[Ic,Cc,Mc].indexOf(l)&&h===wc)return"×";if(-1!==kc.indexOf(l)&&-1!==Qc.indexOf(h)||-1!==Qc.indexOf(l)&&-1!==kc.indexOf(h))return"×";if(-1!==[yc,wc].indexOf(l)&&(h===xc||-1!==[vc,dc].indexOf(h)&&t[a+1]===xc)||-1!==[vc,dc].indexOf(l)&&h===xc||l===xc&&-1!==[xc,Pc,bc].indexOf(h))return"×";if(-1!==[xc,Pc,bc,pc,gc].indexOf(h))for(var c=o;c>=0;){if((u=t[c])===xc)return"×";if(-1===[Pc,bc].indexOf(u))break;c--}if(-1!==[yc,wc].indexOf(h))for(c=-1!==[pc,gc].indexOf(l)?n:o;c>=0;){var u;if((u=t[c])===xc)return"×";if(-1===[Pc,bc].indexOf(u))break;c--}if(Dc===l&&-1!==[Dc,Sc,Ec,Fc].indexOf(h)||-1!==[Sc,Ec].indexOf(l)&&-1!==[Sc,Tc].indexOf(h)||-1!==[Tc,Fc].indexOf(l)&&h===Tc)return"×";if(-1!==jc.indexOf(l)&&-1!==[fc,wc].indexOf(h)||-1!==jc.indexOf(h)&&l===yc)return"×";if(-1!==kc.indexOf(l)&&-1!==kc.indexOf(h))return"×";if(l===bc&&-1!==kc.indexOf(h))return"×";if(-1!==kc.concat(xc).indexOf(l)&&h===vc&&-1===Lc.indexOf(e[a])||-1!==kc.concat(xc).indexOf(h)&&l===gc)return"×";if(41===l&&41===h){for(var d=i[o],p=1;d>0&&41===t[--d];)p++;if(p%2!=0)return"×"}return l===Cc&&h===Mc?"×":"÷"},Kc=function(e,t){t||(t={lineBreak:"normal",wordBreak:"normal"});var i=function(e,t){void 0===t&&(t="strict");var i=[],s=[],r=[];return e.forEach((function(e,o){var n=Uc.get(e);if(n>50?(r.push(!0),n-=50):r.push(!1),-1!==["normal","auto","loose"].indexOf(t)&&-1!==[8208,8211,12316,12448].indexOf(e))return s.push(o),i.push(16);if(4===n||11===n){if(0===o)return s.push(o),i.push(Bc);var a=i[o-1];return-1===Vc.indexOf(a)?(s.push(s[o-1]),i.push(a)):(s.push(o),i.push(Bc))}return s.push(o),31===n?i.push("strict"===t?_c:Ic):n===Rc||29===n?i.push(Bc):43===n?e>=131072&&e<=196605||e>=196608&&e<=262141?i.push(Ic):i.push(Bc):void i.push(n)})),[s,i,r]}(e,t.lineBreak),s=i[0],r=i[1],o=i[2];"break-all"!==t.wordBreak&&"break-word"!==t.wordBreak||(r=r.map((function(e){return-1!==[xc,Bc,Rc].indexOf(e)?Ic:e})));var n="keep-all"===t.wordBreak?o.map((function(t,i){return t&&e[i]>=19968&&e[i]<=40959})):void 0;return[s,r,n]},Xc=function(){function e(e,t,i,s){this.codePoints=e,this.required="!"===t,this.start=i,this.end=s}return e.prototype.slice=function(){return $h.apply(void 0,this.codePoints.slice(this.start,this.end))},e}(),Yc=function(e){return e>=48&&e<=57},qc=function(e){return Yc(e)||e>=65&&e<=70||e>=97&&e<=102},Zc=function(e){return 10===e||9===e||32===e},Jc=function(e){return function(e){return function(e){return e>=97&&e<=122}(e)||function(e){return e>=65&&e<=90}(e)}(e)||function(e){return e>=128}(e)||95===e},$c=function(e){return Jc(e)||Yc(e)||45===e},eu=function(e){return e>=0&&e<=8||11===e||e>=14&&e<=31||127===e},tu=function(e,t){return 92===e&&10!==t},iu=function(e,t,i){return 45===e?Jc(t)||tu(t,i):!!Jc(e)||!(92!==e||!tu(e,t))},su=function(e,t,i){return 43===e||45===e?!!Yc(t)||46===t&&Yc(i):Yc(46===e?t:e)},ru=function(e){var t=0,i=1;43!==e[t]&&45!==e[t]||(45===e[t]&&(i=-1),t++);for(var s=[];Yc(e[t]);)s.push(e[t++]);var r=s.length?parseInt($h.apply(void 0,s),10):0;46===e[t]&&t++;for(var o=[];Yc(e[t]);)o.push(e[t++]);var n=o.length,a=n?parseInt($h.apply(void 0,o),10):0;69!==e[t]&&101!==e[t]||t++;var l=1;43!==e[t]&&45!==e[t]||(45===e[t]&&(l=-1),t++);for(var A=[];Yc(e[t]);)A.push(e[t++]);var h=A.length?parseInt($h.apply(void 0,A),10):0;return i*(r+a*Math.pow(10,-n))*Math.pow(10,l*h)},ou={type:2},nu={type:3},au={type:4},lu={type:13},Au={type:8},hu={type:21},cu={type:9},uu={type:10},du={type:11},pu={type:12},gu={type:14},mu={type:23},fu={type:1},_u={type:25},vu={type:24},bu={type:26},xu={type:27},wu={type:28},yu={type:29},Pu={type:31},Bu={type:32},Cu=function(){function e(){this._value=[]}return e.prototype.write=function(e){this._value=this._value.concat(Jh(e))},e.prototype.read=function(){for(var e=[],t=this.consumeToken();t!==Bu;)e.push(t),t=this.consumeToken();return e},e.prototype.consumeToken=function(){var e=this.consumeCodePoint();switch(e){case 34:return this.consumeStringToken(34);case 35:var t=this.peekCodePoint(0),i=this.peekCodePoint(1),s=this.peekCodePoint(2);if($c(t)||tu(i,s)){var r=iu(t,i,s)?2:1;return{type:5,value:this.consumeName(),flags:r}}break;case 36:if(61===this.peekCodePoint(0))return this.consumeCodePoint(),lu;break;case 39:return this.consumeStringToken(39);case 40:return ou;case 41:return nu;case 42:if(61===this.peekCodePoint(0))return this.consumeCodePoint(),gu;break;case 43:if(su(e,this.peekCodePoint(0),this.peekCodePoint(1)))return this.reconsumeCodePoint(e),this.consumeNumericToken();break;case 44:return au;case 45:var o=e,n=this.peekCodePoint(0),a=this.peekCodePoint(1);if(su(o,n,a))return this.reconsumeCodePoint(e),this.consumeNumericToken();if(iu(o,n,a))return this.reconsumeCodePoint(e),this.consumeIdentLikeToken();if(45===n&&62===a)return this.consumeCodePoint(),this.consumeCodePoint(),vu;break;case 46:if(su(e,this.peekCodePoint(0),this.peekCodePoint(1)))return this.reconsumeCodePoint(e),this.consumeNumericToken();break;case 47:if(42===this.peekCodePoint(0))for(this.consumeCodePoint();;){var l=this.consumeCodePoint();if(42===l&&47===(l=this.consumeCodePoint()))return this.consumeToken();if(-1===l)return this.consumeToken()}break;case 58:return bu;case 59:return xu;case 60:if(33===this.peekCodePoint(0)&&45===this.peekCodePoint(1)&&45===this.peekCodePoint(2))return this.consumeCodePoint(),this.consumeCodePoint(),_u;break;case 64:var A=this.peekCodePoint(0),h=this.peekCodePoint(1),c=this.peekCodePoint(2);if(iu(A,h,c))return{type:7,value:this.consumeName()};break;case 91:return wu;case 92:if(tu(e,this.peekCodePoint(0)))return this.reconsumeCodePoint(e),this.consumeIdentLikeToken();break;case 93:return yu;case 61:if(61===this.peekCodePoint(0))return this.consumeCodePoint(),Au;break;case 123:return du;case 125:return pu;case 117:case 85:var u=this.peekCodePoint(0),d=this.peekCodePoint(1);return 43!==u||!qc(d)&&63!==d||(this.consumeCodePoint(),this.consumeUnicodeRangeToken()),this.reconsumeCodePoint(e),this.consumeIdentLikeToken();case 124:if(61===this.peekCodePoint(0))return this.consumeCodePoint(),cu;if(124===this.peekCodePoint(0))return this.consumeCodePoint(),hu;break;case 126:if(61===this.peekCodePoint(0))return this.consumeCodePoint(),uu;break;case-1:return Bu}return Zc(e)?(this.consumeWhiteSpace(),Pu):Yc(e)?(this.reconsumeCodePoint(e),this.consumeNumericToken()):Jc(e)?(this.reconsumeCodePoint(e),this.consumeIdentLikeToken()):{type:6,value:$h(e)}},e.prototype.consumeCodePoint=function(){var e=this._value.shift();return void 0===e?-1:e},e.prototype.reconsumeCodePoint=function(e){this._value.unshift(e)},e.prototype.peekCodePoint=function(e){return e>=this._value.length?-1:this._value[e]},e.prototype.consumeUnicodeRangeToken=function(){for(var e=[],t=this.consumeCodePoint();qc(t)&&e.length<6;)e.push(t),t=this.consumeCodePoint();for(var i=!1;63===t&&e.length<6;)e.push(t),t=this.consumeCodePoint(),i=!0;if(i)return{type:30,start:parseInt($h.apply(void 0,e.map((function(e){return 63===e?48:e}))),16),end:parseInt($h.apply(void 0,e.map((function(e){return 63===e?70:e}))),16)};var s=parseInt($h.apply(void 0,e),16);if(45===this.peekCodePoint(0)&&qc(this.peekCodePoint(1))){this.consumeCodePoint(),t=this.consumeCodePoint();for(var r=[];qc(t)&&r.length<6;)r.push(t),t=this.consumeCodePoint();return{type:30,start:s,end:parseInt($h.apply(void 0,r),16)}}return{type:30,start:s,end:s}},e.prototype.consumeIdentLikeToken=function(){var e=this.consumeName();return"url"===e.toLowerCase()&&40===this.peekCodePoint(0)?(this.consumeCodePoint(),this.consumeUrlToken()):40===this.peekCodePoint(0)?(this.consumeCodePoint(),{type:19,value:e}):{type:20,value:e}},e.prototype.consumeUrlToken=function(){var e=[];if(this.consumeWhiteSpace(),-1===this.peekCodePoint(0))return{type:22,value:""};var t=this.peekCodePoint(0);if(39===t||34===t){var i=this.consumeStringToken(this.consumeCodePoint());return 0===i.type&&(this.consumeWhiteSpace(),-1===this.peekCodePoint(0)||41===this.peekCodePoint(0))?(this.consumeCodePoint(),{type:22,value:i.value}):(this.consumeBadUrlRemnants(),mu)}for(;;){var s=this.consumeCodePoint();if(-1===s||41===s)return{type:22,value:$h.apply(void 0,e)};if(Zc(s))return this.consumeWhiteSpace(),-1===this.peekCodePoint(0)||41===this.peekCodePoint(0)?(this.consumeCodePoint(),{type:22,value:$h.apply(void 0,e)}):(this.consumeBadUrlRemnants(),mu);if(34===s||39===s||40===s||eu(s))return this.consumeBadUrlRemnants(),mu;if(92===s){if(!tu(s,this.peekCodePoint(0)))return this.consumeBadUrlRemnants(),mu;e.push(this.consumeEscapedCodePoint())}else e.push(s)}},e.prototype.consumeWhiteSpace=function(){for(;Zc(this.peekCodePoint(0));)this.consumeCodePoint()},e.prototype.consumeBadUrlRemnants=function(){for(;;){var e=this.consumeCodePoint();if(41===e||-1===e)return;tu(e,this.peekCodePoint(0))&&this.consumeEscapedCodePoint()}},e.prototype.consumeStringSlice=function(e){for(var t="";e>0;){var i=Math.min(5e4,e);t+=$h.apply(void 0,this._value.splice(0,i)),e-=i}return this._value.shift(),t},e.prototype.consumeStringToken=function(e){for(var t="",i=0;;){var s=this._value[i];if(-1===s||void 0===s||s===e)return{type:0,value:t+=this.consumeStringSlice(i)};if(10===s)return this._value.splice(0,i),fu;if(92===s){var r=this._value[i+1];-1!==r&&void 0!==r&&(10===r?(t+=this.consumeStringSlice(i),i=-1,this._value.shift()):tu(s,r)&&(t+=this.consumeStringSlice(i),t+=$h(this.consumeEscapedCodePoint()),i=-1))}i++}},e.prototype.consumeNumber=function(){var e=[],t=4,i=this.peekCodePoint(0);for(43!==i&&45!==i||e.push(this.consumeCodePoint());Yc(this.peekCodePoint(0));)e.push(this.consumeCodePoint());i=this.peekCodePoint(0);var s=this.peekCodePoint(1);if(46===i&&Yc(s))for(e.push(this.consumeCodePoint(),this.consumeCodePoint()),t=8;Yc(this.peekCodePoint(0));)e.push(this.consumeCodePoint());i=this.peekCodePoint(0),s=this.peekCodePoint(1);var r=this.peekCodePoint(2);if((69===i||101===i)&&((43===s||45===s)&&Yc(r)||Yc(s)))for(e.push(this.consumeCodePoint(),this.consumeCodePoint()),t=8;Yc(this.peekCodePoint(0));)e.push(this.consumeCodePoint());return[ru(e),t]},e.prototype.consumeNumericToken=function(){var e=this.consumeNumber(),t=e[0],i=e[1],s=this.peekCodePoint(0),r=this.peekCodePoint(1),o=this.peekCodePoint(2);return iu(s,r,o)?{type:15,number:t,flags:i,unit:this.consumeName()}:37===s?(this.consumeCodePoint(),{type:16,number:t,flags:i}):{type:17,number:t,flags:i}},e.prototype.consumeEscapedCodePoint=function(){var e=this.consumeCodePoint();if(qc(e)){for(var t=$h(e);qc(this.peekCodePoint(0))&&t.length<6;)t+=$h(this.consumeCodePoint());Zc(this.peekCodePoint(0))&&this.consumeCodePoint();var i=parseInt(t,16);return 0===i||function(e){return e>=55296&&e<=57343}(i)||i>1114111?65533:i}return-1===e?65533:e},e.prototype.consumeName=function(){for(var e="";;){var t=this.consumeCodePoint();if($c(t))e+=$h(t);else{if(!tu(t,this.peekCodePoint(0)))return this.reconsumeCodePoint(t),e;e+=$h(this.consumeEscapedCodePoint())}}},e}(),Mu=function(){function e(e){this._tokens=e}return e.create=function(t){var i=new Cu;return i.write(t),new e(i.read())},e.parseValue=function(t){return e.create(t).parseComponentValue()},e.parseValues=function(t){return e.create(t).parseComponentValues()},e.prototype.parseComponentValue=function(){for(var e=this.consumeToken();31===e.type;)e=this.consumeToken();if(32===e.type)throw new SyntaxError("Error parsing CSS component value, unexpected EOF");this.reconsumeToken(e);var t=this.consumeComponentValue();do{e=this.consumeToken()}while(31===e.type);if(32===e.type)return t;throw new SyntaxError("Error parsing CSS component value, multiple values found when expecting only one")},e.prototype.parseComponentValues=function(){for(var e=[];;){var t=this.consumeComponentValue();if(32===t.type)return e;e.push(t),e.push()}},e.prototype.consumeComponentValue=function(){var e=this.consumeToken();switch(e.type){case 11:case 28:case 2:return this.consumeSimpleBlock(e.type);case 19:return this.consumeFunction(e)}return e},e.prototype.consumeSimpleBlock=function(e){for(var t={type:e,values:[]},i=this.consumeToken();;){if(32===i.type||Uu(i,e))return t;this.reconsumeToken(i),t.values.push(this.consumeComponentValue()),i=this.consumeToken()}},e.prototype.consumeFunction=function(e){for(var t={name:e.value,values:[],type:18};;){var i=this.consumeToken();if(32===i.type||3===i.type)return t;this.reconsumeToken(i),t.values.push(this.consumeComponentValue())}},e.prototype.consumeToken=function(){var e=this._tokens.shift();return void 0===e?Bu:e},e.prototype.reconsumeToken=function(e){this._tokens.unshift(e)},e}(),Eu=function(e){return 15===e.type},Fu=function(e){return 17===e.type},Iu=function(e){return 20===e.type},Du=function(e){return 0===e.type},Su=function(e,t){return Iu(e)&&e.value===t},Tu=function(e){return 31!==e.type},Ru=function(e){return 31!==e.type&&4!==e.type},Lu=function(e){var t=[],i=[];return e.forEach((function(e){if(4===e.type){if(0===i.length)throw new Error("Error parsing function args, zero tokens for arg");return t.push(i),void(i=[])}31!==e.type&&i.push(e)})),i.length&&t.push(i),t},Uu=function(e,t){return 11===t&&12===e.type||(28===t&&29===e.type||2===t&&3===e.type)},ku=function(e){return 17===e.type||15===e.type},Ou=function(e){return 16===e.type||ku(e)},Nu=function(e){return e.length>1?[e[0],e[1]]:[e[0]]},Qu={type:17,number:0,flags:4},Vu={type:16,number:50,flags:4},ju={type:16,number:100,flags:4},Hu=function(e,t,i){var s=e[0],r=e[1];return[zu(s,t),zu(void 0!==r?r:s,i)]},zu=function(e,t){if(16===e.type)return e.number/100*t;if(Eu(e))switch(e.unit){case"rem":case"em":return 16*e.number;default:return e.number}return e.number},Gu=function(e,t){if(15===t.type)switch(t.unit){case"deg":return Math.PI*t.number/180;case"grad":return Math.PI/200*t.number;case"rad":return t.number;case"turn":return 2*Math.PI*t.number}throw new Error("Unsupported angle type")},Wu=function(e){return 15===e.type&&("deg"===e.unit||"grad"===e.unit||"rad"===e.unit||"turn"===e.unit)},Ku=function(e){switch(e.filter(Iu).map((function(e){return e.value})).join(" ")){case"to bottom right":case"to right bottom":case"left top":case"top left":return[Qu,Qu];case"to top":case"bottom":return Xu(0);case"to bottom left":case"to left bottom":case"right top":case"top right":return[Qu,ju];case"to right":case"left":return Xu(90);case"to top left":case"to left top":case"right bottom":case"bottom right":return[ju,ju];case"to bottom":case"top":return Xu(180);case"to top right":case"to right top":case"left bottom":case"bottom left":return[ju,Qu];case"to left":case"right":return Xu(270)}return 0},Xu=function(e){return Math.PI*e/180},Yu=function(e,t){if(18===t.type){var i=sd[t.name];if(void 0===i)throw new Error('Attempting to parse an unsupported color function "'+t.name+'"');return i(e,t.values)}if(5===t.type){if(3===t.value.length){var s=t.value.substring(0,1),r=t.value.substring(1,2),o=t.value.substring(2,3);return Ju(parseInt(s+s,16),parseInt(r+r,16),parseInt(o+o,16),1)}if(4===t.value.length){s=t.value.substring(0,1),r=t.value.substring(1,2),o=t.value.substring(2,3);var n=t.value.substring(3,4);return Ju(parseInt(s+s,16),parseInt(r+r,16),parseInt(o+o,16),parseInt(n+n,16)/255)}if(6===t.value.length){s=t.value.substring(0,2),r=t.value.substring(2,4),o=t.value.substring(4,6);return Ju(parseInt(s,16),parseInt(r,16),parseInt(o,16),1)}if(8===t.value.length){s=t.value.substring(0,2),r=t.value.substring(2,4),o=t.value.substring(4,6),n=t.value.substring(6,8);return Ju(parseInt(s,16),parseInt(r,16),parseInt(o,16),parseInt(n,16)/255)}}if(20===t.type){var a=od[t.value.toUpperCase()];if(void 0!==a)return a}return od.TRANSPARENT},qu=function(e){return 0==(255&e)},Zu=function(e){var t=255&e,i=255&e>>8,s=255&e>>16,r=255&e>>24;return t<255?"rgba("+r+","+s+","+i+","+t/255+")":"rgb("+r+","+s+","+i+")"},Ju=function(e,t,i,s){return(e<<24|t<<16|i<<8|Math.round(255*s)<<0)>>>0},$u=function(e,t){if(17===e.type)return e.number;if(16===e.type){var i=3===t?1:255;return 3===t?e.number/100*i:Math.round(e.number/100*i)}return 0},ed=function(e,t){var i=t.filter(Ru);if(3===i.length){var s=i.map($u),r=s[0],o=s[1],n=s[2];return Ju(r,o,n,1)}if(4===i.length){var a=i.map($u),l=(r=a[0],o=a[1],n=a[2],a[3]);return Ju(r,o,n,l)}return 0};function td(e,t,i){return i<0&&(i+=1),i>=1&&(i-=1),i<1/6?(t-e)*i*6+e:i<.5?t:i<2/3?6*(t-e)*(2/3-i)+e:e}var id=function(e,t){var i=t.filter(Ru),s=i[0],r=i[1],o=i[2],n=i[3],a=(17===s.type?Xu(s.number):Gu(e,s))/(2*Math.PI),l=Ou(r)?r.number/100:0,A=Ou(o)?o.number/100:0,h=void 0!==n&&Ou(n)?zu(n,1):1;if(0===l)return Ju(255*A,255*A,255*A,1);var c=A<=.5?A*(l+1):A+l-A*l,u=2*A-c,d=td(u,c,a+1/3),p=td(u,c,a),g=td(u,c,a-1/3);return Ju(255*d,255*p,255*g,h)},sd={hsl:id,hsla:id,rgb:ed,rgba:ed},rd=function(e,t){return Yu(e,Mu.create(t).parseComponentValue())},od={ALICEBLUE:4042850303,ANTIQUEWHITE:4209760255,AQUA:16777215,AQUAMARINE:2147472639,AZURE:4043309055,BEIGE:4126530815,BISQUE:4293182719,BLACK:255,BLANCHEDALMOND:4293643775,BLUE:65535,BLUEVIOLET:2318131967,BROWN:2771004159,BURLYWOOD:3736635391,CADETBLUE:1604231423,CHARTREUSE:2147418367,CHOCOLATE:3530104575,CORAL:4286533887,CORNFLOWERBLUE:1687547391,CORNSILK:4294499583,CRIMSON:3692313855,CYAN:16777215,DARKBLUE:35839,DARKCYAN:9145343,DARKGOLDENROD:3095837695,DARKGRAY:2846468607,DARKGREEN:6553855,DARKGREY:2846468607,DARKKHAKI:3182914559,DARKMAGENTA:2332068863,DARKOLIVEGREEN:1433087999,DARKORANGE:4287365375,DARKORCHID:2570243327,DARKRED:2332033279,DARKSALMON:3918953215,DARKSEAGREEN:2411499519,DARKSLATEBLUE:1211993087,DARKSLATEGRAY:793726975,DARKSLATEGREY:793726975,DARKTURQUOISE:13554175,DARKVIOLET:2483082239,DEEPPINK:4279538687,DEEPSKYBLUE:12582911,DIMGRAY:1768516095,DIMGREY:1768516095,DODGERBLUE:512819199,FIREBRICK:2988581631,FLORALWHITE:4294635775,FORESTGREEN:579543807,FUCHSIA:4278255615,GAINSBORO:3705462015,GHOSTWHITE:4177068031,GOLD:4292280575,GOLDENROD:3668254975,GRAY:2155905279,GREEN:8388863,GREENYELLOW:2919182335,GREY:2155905279,HONEYDEW:4043305215,HOTPINK:4285117695,INDIANRED:3445382399,INDIGO:1258324735,IVORY:4294963455,KHAKI:4041641215,LAVENDER:3873897215,LAVENDERBLUSH:4293981695,LAWNGREEN:2096890111,LEMONCHIFFON:4294626815,LIGHTBLUE:2916673279,LIGHTCORAL:4034953471,LIGHTCYAN:3774873599,LIGHTGOLDENRODYELLOW:4210742015,LIGHTGRAY:3553874943,LIGHTGREEN:2431553791,LIGHTGREY:3553874943,LIGHTPINK:4290167295,LIGHTSALMON:4288707327,LIGHTSEAGREEN:548580095,LIGHTSKYBLUE:2278488831,LIGHTSLATEGRAY:2005441023,LIGHTSLATEGREY:2005441023,LIGHTSTEELBLUE:2965692159,LIGHTYELLOW:4294959359,LIME:16711935,LIMEGREEN:852308735,LINEN:4210091775,MAGENTA:4278255615,MAROON:2147483903,MEDIUMAQUAMARINE:1724754687,MEDIUMBLUE:52735,MEDIUMORCHID:3126187007,MEDIUMPURPLE:2473647103,MEDIUMSEAGREEN:1018393087,MEDIUMSLATEBLUE:2070474495,MEDIUMSPRINGGREEN:16423679,MEDIUMTURQUOISE:1221709055,MEDIUMVIOLETRED:3340076543,MIDNIGHTBLUE:421097727,MINTCREAM:4127193855,MISTYROSE:4293190143,MOCCASIN:4293178879,NAVAJOWHITE:4292783615,NAVY:33023,OLDLACE:4260751103,OLIVE:2155872511,OLIVEDRAB:1804477439,ORANGE:4289003775,ORANGERED:4282712319,ORCHID:3664828159,PALEGOLDENROD:4008225535,PALEGREEN:2566625535,PALETURQUOISE:2951671551,PALEVIOLETRED:3681588223,PAPAYAWHIP:4293907967,PEACHPUFF:4292524543,PERU:3448061951,PINK:4290825215,PLUM:3718307327,POWDERBLUE:2967529215,PURPLE:2147516671,REBECCAPURPLE:1714657791,RED:4278190335,ROSYBROWN:3163525119,ROYALBLUE:1097458175,SADDLEBROWN:2336560127,SALMON:4202722047,SANDYBROWN:4104413439,SEAGREEN:780883967,SEASHELL:4294307583,SIENNA:2689740287,SILVER:3233857791,SKYBLUE:2278484991,SLATEBLUE:1784335871,SLATEGRAY:1887473919,SLATEGREY:1887473919,SNOW:4294638335,SPRINGGREEN:16744447,STEELBLUE:1182971135,TAN:3535047935,TEAL:8421631,THISTLE:3636451583,TOMATO:4284696575,TRANSPARENT:0,TURQUOISE:1088475391,VIOLET:4001558271,WHEAT:4125012991,WHITE:4294967295,WHITESMOKE:4126537215,YELLOW:4294902015,YELLOWGREEN:2597139199},nd={name:"background-clip",initialValue:"border-box",prefix:!1,type:1,parse:function(e,t){return t.map((function(e){if(Iu(e))switch(e.value){case"padding-box":return 1;case"content-box":return 2}return 0}))}},ad={name:"background-color",initialValue:"transparent",prefix:!1,type:3,format:"color"},ld=function(e,t){var i=Yu(e,t[0]),s=t[1];return s&&Ou(s)?{color:i,stop:s}:{color:i,stop:null}},Ad=function(e,t){var i=e[0],s=e[e.length-1];null===i.stop&&(i.stop=Qu),null===s.stop&&(s.stop=ju);for(var r=[],o=0,n=0;no?r.push(l):r.push(o),o=l}else r.push(null)}var A=null;for(n=0;ne.optimumDistance)?{optimumCorner:t,optimumDistance:a}:e}),{optimumDistance:r?1/0:-1/0,optimumCorner:null}).optimumCorner},dd=function(e,t){var i=Xu(180),s=[];return Lu(t).forEach((function(t,r){if(0===r){var o=t[0];if(20===o.type&&-1!==["top","left","right","bottom"].indexOf(o.value))return void(i=Ku(t));if(Wu(o))return void(i=(Gu(e,o)+Xu(270))%Xu(360))}var n=ld(e,t);s.push(n)})),{angle:i,stops:s,type:1}},pd=function(e,t){var i=0,s=3,r=[],o=[];return Lu(t).forEach((function(t,n){var a=!0;if(0===n?a=t.reduce((function(e,t){if(Iu(t))switch(t.value){case"center":return o.push(Vu),!1;case"top":case"left":return o.push(Qu),!1;case"right":case"bottom":return o.push(ju),!1}else if(Ou(t)||ku(t))return o.push(t),!1;return e}),a):1===n&&(a=t.reduce((function(e,t){if(Iu(t))switch(t.value){case"circle":return i=0,!1;case"ellipse":return i=1,!1;case"contain":case"closest-side":return s=0,!1;case"farthest-side":return s=1,!1;case"closest-corner":return s=2,!1;case"cover":case"farthest-corner":return s=3,!1}else if(ku(t)||Ou(t))return Array.isArray(s)||(s=[]),s.push(t),!1;return e}),a)),a){var l=ld(e,t);r.push(l)}})),{size:s,shape:i,stops:r,position:o,type:2}},gd=function(e,t){if(22===t.type){var i={url:t.value,type:0};return e.cache.addImage(t.value),i}if(18===t.type){var s=fd[t.name];if(void 0===s)throw new Error('Attempting to parse an unsupported image function "'+t.name+'"');return s(e,t.values)}throw new Error("Unsupported image type "+t.type)};var md,fd={"linear-gradient":function(e,t){var i=Xu(180),s=[];return Lu(t).forEach((function(t,r){if(0===r){var o=t[0];if(20===o.type&&"to"===o.value)return void(i=Ku(t));if(Wu(o))return void(i=Gu(e,o))}var n=ld(e,t);s.push(n)})),{angle:i,stops:s,type:1}},"-moz-linear-gradient":dd,"-ms-linear-gradient":dd,"-o-linear-gradient":dd,"-webkit-linear-gradient":dd,"radial-gradient":function(e,t){var i=0,s=3,r=[],o=[];return Lu(t).forEach((function(t,n){var a=!0;if(0===n){var l=!1;a=t.reduce((function(e,t){if(l)if(Iu(t))switch(t.value){case"center":return o.push(Vu),e;case"top":case"left":return o.push(Qu),e;case"right":case"bottom":return o.push(ju),e}else(Ou(t)||ku(t))&&o.push(t);else if(Iu(t))switch(t.value){case"circle":return i=0,!1;case"ellipse":return i=1,!1;case"at":return l=!0,!1;case"closest-side":return s=0,!1;case"cover":case"farthest-side":return s=1,!1;case"contain":case"closest-corner":return s=2,!1;case"farthest-corner":return s=3,!1}else if(ku(t)||Ou(t))return Array.isArray(s)||(s=[]),s.push(t),!1;return e}),a)}if(a){var A=ld(e,t);r.push(A)}})),{size:s,shape:i,stops:r,position:o,type:2}},"-moz-radial-gradient":pd,"-ms-radial-gradient":pd,"-o-radial-gradient":pd,"-webkit-radial-gradient":pd,"-webkit-gradient":function(e,t){var i=Xu(180),s=[],r=1;return Lu(t).forEach((function(t,i){var o=t[0];if(0===i){if(Iu(o)&&"linear"===o.value)return void(r=1);if(Iu(o)&&"radial"===o.value)return void(r=2)}if(18===o.type)if("from"===o.name){var n=Yu(e,o.values[0]);s.push({stop:Qu,color:n})}else if("to"===o.name){n=Yu(e,o.values[0]);s.push({stop:ju,color:n})}else if("color-stop"===o.name){var a=o.values.filter(Ru);if(2===a.length){n=Yu(e,a[1]);var l=a[0];Fu(l)&&s.push({stop:{type:16,number:100*l.number,flags:l.flags},color:n})}}})),1===r?{angle:(i+Xu(180))%Xu(360),stops:s,type:r}:{size:3,shape:0,stops:s,position:[],type:r}}},_d={name:"background-image",initialValue:"none",type:1,prefix:!1,parse:function(e,t){if(0===t.length)return[];var i=t[0];return 20===i.type&&"none"===i.value?[]:t.filter((function(e){return Ru(e)&&function(e){return!(20===e.type&&"none"===e.value||18===e.type&&!fd[e.name])}(e)})).map((function(t){return gd(e,t)}))}},vd={name:"background-origin",initialValue:"border-box",prefix:!1,type:1,parse:function(e,t){return t.map((function(e){if(Iu(e))switch(e.value){case"padding-box":return 1;case"content-box":return 2}return 0}))}},bd={name:"background-position",initialValue:"0% 0%",type:1,prefix:!1,parse:function(e,t){return Lu(t).map((function(e){return e.filter(Ou)})).map(Nu)}},xd={name:"background-repeat",initialValue:"repeat",prefix:!1,type:1,parse:function(e,t){return Lu(t).map((function(e){return e.filter(Iu).map((function(e){return e.value})).join(" ")})).map(wd)}},wd=function(e){switch(e){case"no-repeat":return 1;case"repeat-x":case"repeat no-repeat":return 2;case"repeat-y":case"no-repeat repeat":return 3;default:return 0}};!function(e){e.AUTO="auto",e.CONTAIN="contain",e.COVER="cover"}(md||(md={}));var yd,Pd={name:"background-size",initialValue:"0",prefix:!1,type:1,parse:function(e,t){return Lu(t).map((function(e){return e.filter(Bd)}))}},Bd=function(e){return Iu(e)||Ou(e)},Cd=function(e){return{name:"border-"+e+"-color",initialValue:"transparent",prefix:!1,type:3,format:"color"}},Md=Cd("top"),Ed=Cd("right"),Fd=Cd("bottom"),Id=Cd("left"),Dd=function(e){return{name:"border-radius-"+e,initialValue:"0 0",prefix:!1,type:1,parse:function(e,t){return Nu(t.filter(Ou))}}},Sd=Dd("top-left"),Td=Dd("top-right"),Rd=Dd("bottom-right"),Ld=Dd("bottom-left"),Ud=function(e){return{name:"border-"+e+"-style",initialValue:"solid",prefix:!1,type:2,parse:function(e,t){switch(t){case"none":return 0;case"dashed":return 2;case"dotted":return 3;case"double":return 4}return 1}}},kd=Ud("top"),Od=Ud("right"),Nd=Ud("bottom"),Qd=Ud("left"),Vd=function(e){return{name:"border-"+e+"-width",initialValue:"0",type:0,prefix:!1,parse:function(e,t){return Eu(t)?t.number:0}}},jd=Vd("top"),Hd=Vd("right"),zd=Vd("bottom"),Gd=Vd("left"),Wd={name:"color",initialValue:"transparent",prefix:!1,type:3,format:"color"},Kd={name:"direction",initialValue:"ltr",prefix:!1,type:2,parse:function(e,t){return"rtl"===t?1:0}},Xd={name:"display",initialValue:"inline-block",prefix:!1,type:1,parse:function(e,t){return t.filter(Iu).reduce((function(e,t){return e|Yd(t.value)}),0)}},Yd=function(e){switch(e){case"block":case"-webkit-box":return 2;case"inline":return 4;case"run-in":return 8;case"flow":return 16;case"flow-root":return 32;case"table":return 64;case"flex":case"-webkit-flex":return 128;case"grid":case"-ms-grid":return 256;case"ruby":return 512;case"subgrid":return 1024;case"list-item":return 2048;case"table-row-group":return 4096;case"table-header-group":return 8192;case"table-footer-group":return 16384;case"table-row":return 32768;case"table-cell":return 65536;case"table-column-group":return 131072;case"table-column":return 262144;case"table-caption":return 524288;case"ruby-base":return 1048576;case"ruby-text":return 2097152;case"ruby-base-container":return 4194304;case"ruby-text-container":return 8388608;case"contents":return 16777216;case"inline-block":return 33554432;case"inline-list-item":return 67108864;case"inline-table":return 134217728;case"inline-flex":return 268435456;case"inline-grid":return 536870912}return 0},qd={name:"float",initialValue:"none",prefix:!1,type:2,parse:function(e,t){switch(t){case"left":return 1;case"right":return 2;case"inline-start":return 3;case"inline-end":return 4}return 0}},Zd={name:"letter-spacing",initialValue:"0",prefix:!1,type:0,parse:function(e,t){return 20===t.type&&"normal"===t.value?0:17===t.type||15===t.type?t.number:0}};!function(e){e.NORMAL="normal",e.STRICT="strict"}(yd||(yd={}));var Jd,$d={name:"line-break",initialValue:"normal",prefix:!1,type:2,parse:function(e,t){return"strict"===t?yd.STRICT:yd.NORMAL}},ep={name:"line-height",initialValue:"normal",prefix:!1,type:4},tp=function(e,t){return Iu(e)&&"normal"===e.value?1.2*t:17===e.type?t*e.number:Ou(e)?zu(e,t):t},ip={name:"list-style-image",initialValue:"none",type:0,prefix:!1,parse:function(e,t){return 20===t.type&&"none"===t.value?null:gd(e,t)}},sp={name:"list-style-position",initialValue:"outside",prefix:!1,type:2,parse:function(e,t){return"inside"===t?0:1}},rp={name:"list-style-type",initialValue:"none",prefix:!1,type:2,parse:function(e,t){switch(t){case"disc":return 0;case"circle":return 1;case"square":return 2;case"decimal":return 3;case"cjk-decimal":return 4;case"decimal-leading-zero":return 5;case"lower-roman":return 6;case"upper-roman":return 7;case"lower-greek":return 8;case"lower-alpha":return 9;case"upper-alpha":return 10;case"arabic-indic":return 11;case"armenian":return 12;case"bengali":return 13;case"cambodian":return 14;case"cjk-earthly-branch":return 15;case"cjk-heavenly-stem":return 16;case"cjk-ideographic":return 17;case"devanagari":return 18;case"ethiopic-numeric":return 19;case"georgian":return 20;case"gujarati":return 21;case"gurmukhi":case"hebrew":return 22;case"hiragana":return 23;case"hiragana-iroha":return 24;case"japanese-formal":return 25;case"japanese-informal":return 26;case"kannada":return 27;case"katakana":return 28;case"katakana-iroha":return 29;case"khmer":return 30;case"korean-hangul-formal":return 31;case"korean-hanja-formal":return 32;case"korean-hanja-informal":return 33;case"lao":return 34;case"lower-armenian":return 35;case"malayalam":return 36;case"mongolian":return 37;case"myanmar":return 38;case"oriya":return 39;case"persian":return 40;case"simp-chinese-formal":return 41;case"simp-chinese-informal":return 42;case"tamil":return 43;case"telugu":return 44;case"thai":return 45;case"tibetan":return 46;case"trad-chinese-formal":return 47;case"trad-chinese-informal":return 48;case"upper-armenian":return 49;case"disclosure-open":return 50;case"disclosure-closed":return 51;default:return-1}}},op=function(e){return{name:"margin-"+e,initialValue:"0",prefix:!1,type:4}},np=op("top"),ap=op("right"),lp=op("bottom"),Ap=op("left"),hp={name:"overflow",initialValue:"visible",prefix:!1,type:1,parse:function(e,t){return t.filter(Iu).map((function(e){switch(e.value){case"hidden":return 1;case"scroll":return 2;case"clip":return 3;case"auto":return 4;default:return 0}}))}},cp={name:"overflow-wrap",initialValue:"normal",prefix:!1,type:2,parse:function(e,t){return"break-word"===t?"break-word":"normal"}},up=function(e){return{name:"padding-"+e,initialValue:"0",prefix:!1,type:3,format:"length-percentage"}},dp=up("top"),pp=up("right"),gp=up("bottom"),mp=up("left"),fp={name:"text-align",initialValue:"left",prefix:!1,type:2,parse:function(e,t){switch(t){case"right":return 2;case"center":case"justify":return 1;default:return 0}}},_p={name:"position",initialValue:"static",prefix:!1,type:2,parse:function(e,t){switch(t){case"relative":return 1;case"absolute":return 2;case"fixed":return 3;case"sticky":return 4}return 0}},vp={name:"text-shadow",initialValue:"none",type:1,prefix:!1,parse:function(e,t){return 1===t.length&&Su(t[0],"none")?[]:Lu(t).map((function(t){for(var i={color:od.TRANSPARENT,offsetX:Qu,offsetY:Qu,blur:Qu},s=0,r=0;r1?1:0],this.overflowWrap=Jp(e,cp,t.overflowWrap),this.paddingTop=Jp(e,dp,t.paddingTop),this.paddingRight=Jp(e,pp,t.paddingRight),this.paddingBottom=Jp(e,gp,t.paddingBottom),this.paddingLeft=Jp(e,mp,t.paddingLeft),this.paintOrder=Jp(e,Wp,t.paintOrder),this.position=Jp(e,_p,t.position),this.textAlign=Jp(e,fp,t.textAlign),this.textDecorationColor=Jp(e,Dp,null!==(i=t.textDecorationColor)&&void 0!==i?i:t.color),this.textDecorationLine=Jp(e,Sp,null!==(s=t.textDecorationLine)&&void 0!==s?s:t.textDecoration),this.textShadow=Jp(e,vp,t.textShadow),this.textTransform=Jp(e,bp,t.textTransform),this.transform=Jp(e,xp,t.transform),this.transformOrigin=Jp(e,Bp,t.transformOrigin),this.visibility=Jp(e,Cp,t.visibility),this.webkitTextStrokeColor=Jp(e,Kp,t.webkitTextStrokeColor),this.webkitTextStrokeWidth=Jp(e,Xp,t.webkitTextStrokeWidth),this.wordBreak=Jp(e,Mp,t.wordBreak),this.zIndex=Jp(e,Ep,t.zIndex)}return e.prototype.isVisible=function(){return this.display>0&&this.opacity>0&&0===this.visibility},e.prototype.isTransparent=function(){return qu(this.backgroundColor)},e.prototype.isTransformed=function(){return null!==this.transform},e.prototype.isPositioned=function(){return 0!==this.position},e.prototype.isPositionedWithZIndex=function(){return this.isPositioned()&&!this.zIndex.auto},e.prototype.isFloating=function(){return 0!==this.float},e.prototype.isInlineLevel=function(){return Op(this.display,4)||Op(this.display,33554432)||Op(this.display,268435456)||Op(this.display,536870912)||Op(this.display,67108864)||Op(this.display,134217728)},e}(),qp=function(e,t){this.content=Jp(e,Np,t.content),this.quotes=Jp(e,Hp,t.quotes)},Zp=function(e,t){this.counterIncrement=Jp(e,Qp,t.counterIncrement),this.counterReset=Jp(e,Vp,t.counterReset)},Jp=function(e,t,i){var s=new Cu,r=null!=i?i.toString():t.initialValue;s.write(r);var o=new Mu(s.read());switch(t.type){case 2:var n=o.parseComponentValue();return t.parse(e,Iu(n)?n.value:t.initialValue);case 0:return t.parse(e,o.parseComponentValue());case 1:return t.parse(e,o.parseComponentValues());case 4:return o.parseComponentValue();case 3:switch(t.format){case"angle":return Gu(e,o.parseComponentValue());case"color":return Yu(e,o.parseComponentValue());case"image":return gd(e,o.parseComponentValue());case"length":var a=o.parseComponentValue();return ku(a)?a:Qu;case"length-percentage":var l=o.parseComponentValue();return Ou(l)?l:Qu;case"time":return Fp(e,o.parseComponentValue())}}},$p=function(e,t){var i=function(e){switch(e.getAttribute("data-html2canvas-debug")){case"all":return 1;case"clone":return 2;case"parse":return 3;case"render":return 4;default:return 0}}(e);return 1===i||t===i},eg=function(e,t){this.context=e,this.textNodes=[],this.elements=[],this.flags=0,$p(t,3),this.styles=new Yp(e,window.getComputedStyle(t,null)),em(t)&&(this.styles.animationDuration.some((function(e){return e>0}))&&(t.style.animationDuration="0s"),null!==this.styles.transform&&(t.style.transform="none")),this.bounds=Zh(this.context,t),$p(t,4)&&(this.flags|=16)},tg="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",ig="undefined"==typeof Uint8Array?[]:new Uint8Array(256),sg=0;sg=0){if(e<55296||e>56319&&e<=65535)return t=((t=this.index[e>>5])<<2)+(31&e),this.data[t];if(e<=65535)return t=((t=this.index[2048+(e-55296>>5)])<<2)+(31&e),this.data[t];if(e>11),t=this.index[t],t+=e>>5&63,t=((t=this.index[t])<<2)+(31&e),this.data[t];if(e<=1114111)return this.data[this.highValueIndex]}return this.errorValue},e}(),ng="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",ag="undefined"==typeof Uint8Array?[]:new Uint8Array(256),lg=0;lg>10),n%1024+56320)),(r+1===i||s.length>16384)&&(o+=String.fromCharCode.apply(String,s),s.length=0)}return o},gg=function(e,t){var i,s,r,o=function(e){var t,i,s,r,o,n=.75*e.length,a=e.length,l=0;"="===e[e.length-1]&&(n--,"="===e[e.length-2]&&n--);var A="undefined"!=typeof ArrayBuffer&&"undefined"!=typeof Uint8Array&&void 0!==Uint8Array.prototype.slice?new ArrayBuffer(n):new Array(n),h=Array.isArray(A)?A:new Uint8Array(A);for(t=0;t>4,h[l++]=(15&s)<<4|r>>2,h[l++]=(3&r)<<6|63&o;return A}(e),n=Array.isArray(o)?function(e){for(var t=e.length,i=[],s=0;s=55296&&r<=56319&&i=i)return{done:!0,value:null};for(var e="×";sn.x||r.y>n.y;return n=r,0===t||a}));return e.body.removeChild(t),a}(document);return Object.defineProperty(wg,"SUPPORT_WORD_BREAKING",{value:e}),e},get SUPPORT_SVG_DRAWING(){var e=function(e){var t=new Image,i=e.createElement("canvas"),s=i.getContext("2d");if(!s)return!1;t.src="data:image/svg+xml,";try{s.drawImage(t,0,0),i.toDataURL()}catch(e){return!1}return!0}(document);return Object.defineProperty(wg,"SUPPORT_SVG_DRAWING",{value:e}),e},get SUPPORT_FOREIGNOBJECT_DRAWING(){var e="function"==typeof Array.from&&"function"==typeof window.fetch?function(e){var t=e.createElement("canvas"),i=100;t.width=i,t.height=i;var s=t.getContext("2d");if(!s)return Promise.reject(!1);s.fillStyle="rgb(0, 255, 0)",s.fillRect(0,0,i,i);var r=new Image,o=t.toDataURL();r.src=o;var n=bg(i,i,0,0,r);return s.fillStyle="red",s.fillRect(0,0,i,i),xg(n).then((function(t){s.drawImage(t,0,0);var r=s.getImageData(0,0,i,i).data;s.fillStyle="red",s.fillRect(0,0,i,i);var n=e.createElement("div");return n.style.backgroundImage="url("+o+")",n.style.height="100px",vg(r)?xg(bg(i,i,0,0,n)):Promise.reject(!1)})).then((function(e){return s.drawImage(e,0,0),vg(s.getImageData(0,0,i,i).data)})).catch((function(){return!1}))}(document):Promise.resolve(!1);return Object.defineProperty(wg,"SUPPORT_FOREIGNOBJECT_DRAWING",{value:e}),e},get SUPPORT_CORS_IMAGES(){var e=void 0!==(new Image).crossOrigin;return Object.defineProperty(wg,"SUPPORT_CORS_IMAGES",{value:e}),e},get SUPPORT_RESPONSE_TYPE(){var e="string"==typeof(new XMLHttpRequest).responseType;return Object.defineProperty(wg,"SUPPORT_RESPONSE_TYPE",{value:e}),e},get SUPPORT_CORS_XHR(){var e="withCredentials"in new XMLHttpRequest;return Object.defineProperty(wg,"SUPPORT_CORS_XHR",{value:e}),e},get SUPPORT_NATIVE_TEXT_SEGMENTATION(){var e=!("undefined"==typeof Intl||!Intl.Segmenter);return Object.defineProperty(wg,"SUPPORT_NATIVE_TEXT_SEGMENTATION",{value:e}),e}},yg=function(e,t){this.text=e,this.bounds=t},Pg=function(e,t){var i=t.ownerDocument;if(i){var s=i.createElement("html2canvaswrapper");s.appendChild(t.cloneNode(!0));var r=t.parentNode;if(r){r.replaceChild(s,t);var o=Zh(e,s);return s.firstChild&&r.replaceChild(s.firstChild,s),o}}return qh.EMPTY},Bg=function(e,t,i){var s=e.ownerDocument;if(!s)throw new Error("Node has no owner document");var r=s.createRange();return r.setStart(e,t),r.setEnd(e,t+i),r},Cg=function(e){if(wg.SUPPORT_NATIVE_TEXT_SEGMENTATION){var t=new Intl.Segmenter(void 0,{granularity:"grapheme"});return Array.from(t.segment(e)).map((function(e){return e.segment}))}return function(e){for(var t,i=_g(e),s=[];!(t=i.next()).done;)t.value&&s.push(t.value.slice());return s}(e)},Mg=function(e,t){return 0!==t.letterSpacing?Cg(e):function(e,t){if(wg.SUPPORT_NATIVE_TEXT_SEGMENTATION){var i=new Intl.Segmenter(void 0,{granularity:"word"});return Array.from(i.segment(e)).map((function(e){return e.segment}))}return Fg(e,t)}(e,t)},Eg=[32,160,4961,65792,65793,4153,4241],Fg=function(e,t){for(var i,s=function(e,t){var i=Jh(e),s=Kc(i,t),r=s[0],o=s[1],n=s[2],a=i.length,l=0,A=0;return{next:function(){if(A>=a)return{done:!0,value:null};for(var e="×";A0)if(wg.SUPPORT_RANGE_BOUNDS){var r=Bg(s,n,t.length).getClientRects();if(r.length>1){var a=Cg(t),l=0;a.forEach((function(t){o.push(new yg(t,qh.fromDOMRectList(e,Bg(s,l+n,t.length).getClientRects()))),l+=t.length}))}else o.push(new yg(t,qh.fromDOMRectList(e,r)))}else{var A=s.splitText(t.length);o.push(new yg(t,Pg(e,s))),s=A}else wg.SUPPORT_RANGE_BOUNDS||(s=s.splitText(t.length));n+=t.length})),o}(e,this.text,i,t)},Dg=function(e,t){switch(t){case 1:return e.toLowerCase();case 3:return e.replace(Sg,Tg);case 2:return e.toUpperCase();default:return e}},Sg=/(^|\s|:|-|\(|\))([a-z])/g,Tg=function(e,t,i){return e.length>0?t+i.toUpperCase():e},Rg=function(e){function t(t,i){var s=e.call(this,t,i)||this;return s.src=i.currentSrc||i.src,s.intrinsicWidth=i.naturalWidth,s.intrinsicHeight=i.naturalHeight,s.context.cache.addImage(s.src),s}return Gh(t,e),t}(eg),Lg=function(e){function t(t,i){var s=e.call(this,t,i)||this;return s.canvas=i,s.intrinsicWidth=i.width,s.intrinsicHeight=i.height,s}return Gh(t,e),t}(eg),Ug=function(e){function t(t,i){var s=e.call(this,t,i)||this,r=new XMLSerializer,o=Zh(t,i);return i.setAttribute("width",o.width+"px"),i.setAttribute("height",o.height+"px"),s.svg="data:image/svg+xml,"+encodeURIComponent(r.serializeToString(i)),s.intrinsicWidth=i.width.baseVal.value,s.intrinsicHeight=i.height.baseVal.value,s.context.cache.addImage(s.svg),s}return Gh(t,e),t}(eg),kg=function(e){function t(t,i){var s=e.call(this,t,i)||this;return s.value=i.value,s}return Gh(t,e),t}(eg),Og=function(e){function t(t,i){var s=e.call(this,t,i)||this;return s.start=i.start,s.reversed="boolean"==typeof i.reversed&&!0===i.reversed,s}return Gh(t,e),t}(eg),Ng=[{type:15,flags:0,unit:"px",number:3}],Qg=[{type:16,flags:0,number:50}],Vg="password",jg=function(e){function t(t,i){var s,r,o,n=e.call(this,t,i)||this;switch(n.type=i.type.toLowerCase(),n.checked=i.checked,n.value=0===(r=(s=i).type===Vg?new Array(s.value.length+1).join("•"):s.value).length?s.placeholder||"":r,"checkbox"!==n.type&&"radio"!==n.type||(n.styles.backgroundColor=3739148031,n.styles.borderTopColor=n.styles.borderRightColor=n.styles.borderBottomColor=n.styles.borderLeftColor=2779096575,n.styles.borderTopWidth=n.styles.borderRightWidth=n.styles.borderBottomWidth=n.styles.borderLeftWidth=1,n.styles.borderTopStyle=n.styles.borderRightStyle=n.styles.borderBottomStyle=n.styles.borderLeftStyle=1,n.styles.backgroundClip=[0],n.styles.backgroundOrigin=[0],n.bounds=(o=n.bounds).width>o.height?new qh(o.left+(o.width-o.height)/2,o.top,o.height,o.height):o.width0)i.textNodes.push(new Ig(e,r,i.styles));else if($g(r))if(pm(r)&&r.assignedNodes)r.assignedNodes().forEach((function(t){return Kg(e,t,i,s)}));else{var n=Xg(e,r);n.styles.isVisible()&&(qg(r,n,s)?n.flags|=4:Zg(n.styles)&&(n.flags|=2),-1!==Wg.indexOf(r.tagName)&&(n.flags|=8),i.elements.push(n),r.slot,r.shadowRoot?Kg(e,r.shadowRoot,n,s):um(r)||om(r)||dm(r)||Kg(e,r,n,s))}},Xg=function(e,t){return Am(t)?new Rg(e,t):am(t)?new Lg(e,t):om(t)?new Ug(e,t):im(t)?new kg(e,t):sm(t)?new Og(e,t):rm(t)?new jg(e,t):dm(t)?new Hg(e,t):um(t)?new zg(e,t):hm(t)?new Gg(e,t):new eg(e,t)},Yg=function(e,t){var i=Xg(e,t);return i.flags|=4,Kg(e,t,i,i),i},qg=function(e,t,i){return t.styles.isPositionedWithZIndex()||t.styles.opacity<1||t.styles.isTransformed()||nm(e)&&i.styles.isTransparent()},Zg=function(e){return e.isPositioned()||e.isFloating()},Jg=function(e){return e.nodeType===Node.TEXT_NODE},$g=function(e){return e.nodeType===Node.ELEMENT_NODE},em=function(e){return $g(e)&&void 0!==e.style&&!tm(e)},tm=function(e){return"object"==typeof e.className},im=function(e){return"LI"===e.tagName},sm=function(e){return"OL"===e.tagName},rm=function(e){return"INPUT"===e.tagName},om=function(e){return"svg"===e.tagName},nm=function(e){return"BODY"===e.tagName},am=function(e){return"CANVAS"===e.tagName},lm=function(e){return"VIDEO"===e.tagName},Am=function(e){return"IMG"===e.tagName},hm=function(e){return"IFRAME"===e.tagName},cm=function(e){return"STYLE"===e.tagName},um=function(e){return"TEXTAREA"===e.tagName},dm=function(e){return"SELECT"===e.tagName},pm=function(e){return"SLOT"===e.tagName},gm=function(e){return e.tagName.indexOf("-")>0},mm=function(){function e(){this.counters={}}return e.prototype.getCounterValue=function(e){var t=this.counters[e];return t&&t.length?t[t.length-1]:1},e.prototype.getCounterValues=function(e){var t=this.counters[e];return t||[]},e.prototype.pop=function(e){var t=this;e.forEach((function(e){return t.counters[e].pop()}))},e.prototype.parse=function(e){var t=this,i=e.counterIncrement,s=e.counterReset,r=!0;null!==i&&i.forEach((function(e){var i=t.counters[e.counter];i&&0!==e.increment&&(r=!1,i.length||i.push(1),i[Math.max(0,i.length-1)]+=e.increment)}));var o=[];return r&&s.forEach((function(e){var i=t.counters[e.counter];o.push(e.counter),i||(i=t.counters[e.counter]=[]),i.push(e.reset)})),o},e}(),fm={integers:[1e3,900,500,400,100,90,50,40,10,9,5,4,1],values:["M","CM","D","CD","C","XC","L","XL","X","IX","V","IV","I"]},_m={integers:[9e3,8e3,7e3,6e3,5e3,4e3,3e3,2e3,1e3,900,800,700,600,500,400,300,200,100,90,80,70,60,50,40,30,20,10,9,8,7,6,5,4,3,2,1],values:["Ք","Փ","Ւ","Ց","Ր","Տ","Վ","Ս","Ռ","Ջ","Պ","Չ","Ո","Շ","Ն","Յ","Մ","Ճ","Ղ","Ձ","Հ","Կ","Ծ","Խ","Լ","Ի","Ժ","Թ","Ը","Է","Զ","Ե","Դ","Գ","Բ","Ա"]},vm={integers:[1e4,9e3,8e3,7e3,6e3,5e3,4e3,3e3,2e3,1e3,400,300,200,100,90,80,70,60,50,40,30,20,19,18,17,16,15,10,9,8,7,6,5,4,3,2,1],values:["י׳","ט׳","ח׳","ז׳","ו׳","ה׳","ד׳","ג׳","ב׳","א׳","ת","ש","ר","ק","צ","פ","ע","ס","נ","מ","ל","כ","יט","יח","יז","טז","טו","י","ט","ח","ז","ו","ה","ד","ג","ב","א"]},bm={integers:[1e4,9e3,8e3,7e3,6e3,5e3,4e3,3e3,2e3,1e3,900,800,700,600,500,400,300,200,100,90,80,70,60,50,40,30,20,10,9,8,7,6,5,4,3,2,1],values:["ჵ","ჰ","ჯ","ჴ","ხ","ჭ","წ","ძ","ც","ჩ","შ","ყ","ღ","ქ","ფ","ჳ","ტ","ს","რ","ჟ","პ","ო","ჲ","ნ","მ","ლ","კ","ი","თ","ჱ","ზ","ვ","ე","დ","გ","ბ","ა"]},xm=function(e,t,i,s,r,o){return ei?Cm(e,r,o.length>0):s.integers.reduce((function(t,i,r){for(;e>=i;)e-=i,t+=s.values[r];return t}),"")+o},wm=function(e,t,i,s){var r="";do{i||e--,r=s(e)+r,e/=t}while(e*t>=t);return r},ym=function(e,t,i,s,r){var o=i-t+1;return(e<0?"-":"")+(wm(Math.abs(e),o,s,(function(e){return $h(Math.floor(e%o)+t)}))+r)},Pm=function(e,t,i){void 0===i&&(i=". ");var s=t.length;return wm(Math.abs(e),s,!1,(function(e){return t[Math.floor(e%s)]}))+i},Bm=function(e,t,i,s,r,o){if(e<-9999||e>9999)return Cm(e,4,r.length>0);var n=Math.abs(e),a=r;if(0===n)return t[0]+a;for(var l=0;n>0&&l<=4;l++){var A=n%10;0===A&&Op(o,1)&&""!==a?a=t[A]+a:A>1||1===A&&0===l||1===A&&1===l&&Op(o,2)||1===A&&1===l&&Op(o,4)&&e>100||1===A&&l>1&&Op(o,8)?a=t[A]+(l>0?i[l-1]:"")+a:1===A&&l>0&&(a=i[l-1]+a),n=Math.floor(n/10)}return(e<0?s:"")+a},Cm=function(e,t,i){var s=i?". ":"",r=i?"、":"",o=i?", ":"",n=i?" ":"";switch(t){case 0:return"•"+n;case 1:return"◦"+n;case 2:return"◾"+n;case 5:var a=ym(e,48,57,!0,s);return a.length<4?"0"+a:a;case 4:return Pm(e,"〇一二三四五六七八九",r);case 6:return xm(e,1,3999,fm,3,s).toLowerCase();case 7:return xm(e,1,3999,fm,3,s);case 8:return ym(e,945,969,!1,s);case 9:return ym(e,97,122,!1,s);case 10:return ym(e,65,90,!1,s);case 11:return ym(e,1632,1641,!0,s);case 12:case 49:return xm(e,1,9999,_m,3,s);case 35:return xm(e,1,9999,_m,3,s).toLowerCase();case 13:return ym(e,2534,2543,!0,s);case 14:case 30:return ym(e,6112,6121,!0,s);case 15:return Pm(e,"子丑寅卯辰巳午未申酉戌亥",r);case 16:return Pm(e,"甲乙丙丁戊己庚辛壬癸",r);case 17:case 48:return Bm(e,"零一二三四五六七八九","十百千萬","負",r,14);case 47:return Bm(e,"零壹貳參肆伍陸柒捌玖","拾佰仟萬","負",r,15);case 42:return Bm(e,"零一二三四五六七八九","十百千萬","负",r,14);case 41:return Bm(e,"零壹贰叁肆伍陆柒捌玖","拾佰仟萬","负",r,15);case 26:return Bm(e,"〇一二三四五六七八九","十百千万","マイナス",r,0);case 25:return Bm(e,"零壱弐参四伍六七八九","拾百千万","マイナス",r,7);case 31:return Bm(e,"영일이삼사오육칠팔구","십백천만","마이너스",o,7);case 33:return Bm(e,"零一二三四五六七八九","十百千萬","마이너스",o,0);case 32:return Bm(e,"零壹貳參四五六七八九","拾百千","마이너스",o,7);case 18:return ym(e,2406,2415,!0,s);case 20:return xm(e,1,19999,bm,3,s);case 21:return ym(e,2790,2799,!0,s);case 22:return ym(e,2662,2671,!0,s);case 22:return xm(e,1,10999,vm,3,s);case 23:return Pm(e,"あいうえおかきくけこさしすせそたちつてとなにぬねのはひふへほまみむめもやゆよらりるれろわゐゑをん");case 24:return Pm(e,"いろはにほへとちりぬるをわかよたれそつねならむうゐのおくやまけふこえてあさきゆめみしゑひもせす");case 27:return ym(e,3302,3311,!0,s);case 28:return Pm(e,"アイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワヰヱヲン",r);case 29:return Pm(e,"イロハニホヘトチリヌルヲワカヨタレソツネナラムウヰノオクヤマケフコエテアサキユメミシヱヒモセス",r);case 34:return ym(e,3792,3801,!0,s);case 37:return ym(e,6160,6169,!0,s);case 38:return ym(e,4160,4169,!0,s);case 39:return ym(e,2918,2927,!0,s);case 40:return ym(e,1776,1785,!0,s);case 43:return ym(e,3046,3055,!0,s);case 44:return ym(e,3174,3183,!0,s);case 45:return ym(e,3664,3673,!0,s);case 46:return ym(e,3872,3881,!0,s);default:return ym(e,48,57,!0,s)}},Mm=function(){function e(e,t,i){if(this.context=e,this.options=i,this.scrolledElements=[],this.referenceElement=t,this.counters=new mm,this.quoteDepth=0,!t.ownerDocument)throw new Error("Cloned element does not have an owner document");this.documentElement=this.cloneNode(t.ownerDocument.documentElement,!1)}return e.prototype.toIFrame=function(e,t){var i=this,s=Fm(e,t);if(!s.contentWindow)return Promise.reject("Unable to find iframe window");var r=e.defaultView.pageXOffset,o=e.defaultView.pageYOffset,n=s.contentWindow,a=n.document,l=Sm(s).then((function(){return Kh(i,void 0,void 0,(function(){var e,i;return Xh(this,(function(r){switch(r.label){case 0:return this.scrolledElements.forEach(km),n&&(n.scrollTo(t.left,t.top),!/(iPad|iPhone|iPod)/g.test(navigator.userAgent)||n.scrollY===t.top&&n.scrollX===t.left||(this.context.logger.warn("Unable to restore scroll position for cloned document"),this.context.windowBounds=this.context.windowBounds.add(n.scrollX-t.left,n.scrollY-t.top,0,0))),e=this.options.onclone,void 0===(i=this.clonedReferenceElement)?[2,Promise.reject("Error finding the "+this.referenceElement.nodeName+" in the cloned document")]:a.fonts&&a.fonts.ready?[4,a.fonts.ready]:[3,2];case 1:r.sent(),r.label=2;case 2:return/(AppleWebKit)/g.test(navigator.userAgent)?[4,Dm(a)]:[3,4];case 3:r.sent(),r.label=4;case 4:return"function"==typeof e?[2,Promise.resolve().then((function(){return e(a,i)})).then((function(){return s}))]:[2,s]}}))}))}));return a.open(),a.write(Lm(document.doctype)+""),Um(this.referenceElement.ownerDocument,r,o),a.replaceChild(a.adoptNode(this.documentElement),a.documentElement),a.close(),l},e.prototype.createElementClone=function(e){if($p(e,2),am(e))return this.createCanvasClone(e);if(lm(e))return this.createVideoClone(e);if(cm(e))return this.createStyleClone(e);var t=e.cloneNode(!1);return Am(t)&&(Am(e)&&e.currentSrc&&e.currentSrc!==e.src&&(t.src=e.currentSrc,t.srcset=""),"lazy"===t.loading&&(t.loading="eager")),gm(t)?this.createCustomElementClone(t):t},e.prototype.createCustomElementClone=function(e){var t=document.createElement("html2canvascustomelement");return Rm(e.style,t),t},e.prototype.createStyleClone=function(e){try{var t=e.sheet;if(t&&t.cssRules){var i=[].slice.call(t.cssRules,0).reduce((function(e,t){return t&&"string"==typeof t.cssText?e+t.cssText:e}),""),s=e.cloneNode(!1);return s.textContent=i,s}}catch(e){if(this.context.logger.error("Unable to access cssRules property",e),"SecurityError"!==e.name)throw e}return e.cloneNode(!1)},e.prototype.createCanvasClone=function(e){var t;if(this.options.inlineImages&&e.ownerDocument){var i=e.ownerDocument.createElement("img");try{return i.src=e.toDataURL(),i}catch(t){this.context.logger.info("Unable to inline canvas contents, canvas is tainted",e)}}var s=e.cloneNode(!1);try{s.width=e.width,s.height=e.height;var r=e.getContext("2d"),o=s.getContext("2d");if(o)if(!this.options.allowTaint&&r)o.putImageData(r.getImageData(0,0,e.width,e.height),0,0);else{var n=null!==(t=e.getContext("webgl2"))&&void 0!==t?t:e.getContext("webgl");if(n){var a=n.getContextAttributes();!1===(null==a?void 0:a.preserveDrawingBuffer)&&this.context.logger.warn("Unable to clone WebGL context as it has preserveDrawingBuffer=false",e)}o.drawImage(e,0,0)}return s}catch(t){this.context.logger.info("Unable to clone canvas as it is tainted",e)}return s},e.prototype.createVideoClone=function(e){var t=e.ownerDocument.createElement("canvas");t.width=e.offsetWidth,t.height=e.offsetHeight;var i=t.getContext("2d");try{return i&&(i.drawImage(e,0,0,t.width,t.height),this.options.allowTaint||i.getImageData(0,0,t.width,t.height)),t}catch(t){this.context.logger.info("Unable to clone video as it is tainted",e)}var s=e.ownerDocument.createElement("canvas");return s.width=e.offsetWidth,s.height=e.offsetHeight,s},e.prototype.appendChildNode=function(e,t,i){$g(t)&&("SCRIPT"===t.tagName||t.hasAttribute("data-html2canvas-ignore")||"function"==typeof this.options.ignoreElements&&this.options.ignoreElements(t))||this.options.copyStyles&&$g(t)&&cm(t)||e.appendChild(this.cloneNode(t,i))},e.prototype.cloneChildNodes=function(e,t,i){for(var s=this,r=e.shadowRoot?e.shadowRoot.firstChild:e.firstChild;r;r=r.nextSibling)if($g(r)&&pm(r)&&"function"==typeof r.assignedNodes){var o=r.assignedNodes();o.length&&o.forEach((function(e){return s.appendChildNode(t,e,i)}))}else this.appendChildNode(t,r,i)},e.prototype.cloneNode=function(e,t){if(Jg(e))return document.createTextNode(e.data);if(!e.ownerDocument)return e.cloneNode(!1);var i=e.ownerDocument.defaultView;if(i&&$g(e)&&(em(e)||tm(e))){var s=this.createElementClone(e);s.style.transitionProperty="none";var r=i.getComputedStyle(e),o=i.getComputedStyle(e,":before"),n=i.getComputedStyle(e,":after");this.referenceElement===e&&em(s)&&(this.clonedReferenceElement=s),nm(s)&&Qm(s);var a=this.counters.parse(new Zp(this.context,r)),l=this.resolvePseudoContent(e,s,o,Ag.BEFORE);gm(e)&&(t=!0),lm(e)||this.cloneChildNodes(e,s,t),l&&s.insertBefore(l,s.firstChild);var A=this.resolvePseudoContent(e,s,n,Ag.AFTER);return A&&s.appendChild(A),this.counters.pop(a),(r&&(this.options.copyStyles||tm(e))&&!hm(e)||t)&&Rm(r,s),0===e.scrollTop&&0===e.scrollLeft||this.scrolledElements.push([s,e.scrollLeft,e.scrollTop]),(um(e)||dm(e))&&(um(s)||dm(s))&&(s.value=e.value),s}return e.cloneNode(!1)},e.prototype.resolvePseudoContent=function(e,t,i,s){var r=this;if(i){var o=i.content,n=t.ownerDocument;if(n&&o&&"none"!==o&&"-moz-alt-content"!==o&&"none"!==i.display){this.counters.parse(new Zp(this.context,i));var a=new qp(this.context,i),l=n.createElement("html2canvaspseudoelement");Rm(i,l),a.content.forEach((function(t){if(0===t.type)l.appendChild(n.createTextNode(t.value));else if(22===t.type){var i=n.createElement("img");i.src=t.value,i.style.opacity="1",l.appendChild(i)}else if(18===t.type){if("attr"===t.name){var s=t.values.filter(Iu);s.length&&l.appendChild(n.createTextNode(e.getAttribute(s[0].value)||""))}else if("counter"===t.name){var o=t.values.filter(Ru),A=o[0],h=o[1];if(A&&Iu(A)){var c=r.counters.getCounterValue(A.value),u=h&&Iu(h)?rp.parse(r.context,h.value):3;l.appendChild(n.createTextNode(Cm(c,u,!1)))}}else if("counters"===t.name){var d=t.values.filter(Ru),p=(A=d[0],d[1]);h=d[2];if(A&&Iu(A)){var g=r.counters.getCounterValues(A.value),m=h&&Iu(h)?rp.parse(r.context,h.value):3,f=p&&0===p.type?p.value:"",_=g.map((function(e){return Cm(e,m,!1)})).join(f);l.appendChild(n.createTextNode(_))}}}else if(20===t.type)switch(t.value){case"open-quote":l.appendChild(n.createTextNode(zp(a.quotes,r.quoteDepth++,!0)));break;case"close-quote":l.appendChild(n.createTextNode(zp(a.quotes,--r.quoteDepth,!1)));break;default:l.appendChild(n.createTextNode(t.value))}})),l.className=Om+" "+Nm;var A=s===Ag.BEFORE?" "+Om:" "+Nm;return tm(t)?t.className.baseValue+=A:t.className+=A,l}}},e.destroy=function(e){return!!e.parentNode&&(e.parentNode.removeChild(e),!0)},e}();!function(e){e[e.BEFORE=0]="BEFORE",e[e.AFTER=1]="AFTER"}(Ag||(Ag={}));var Em,Fm=function(e,t){var i=e.createElement("iframe");return i.className="html2canvas-container",i.style.visibility="hidden",i.style.position="fixed",i.style.left="-10000px",i.style.top="0px",i.style.border="0",i.width=t.width.toString(),i.height=t.height.toString(),i.scrolling="no",i.setAttribute("data-html2canvas-ignore","true"),e.body.appendChild(i),i},Im=function(e){return new Promise((function(t){e.complete?t():e.src?(e.onload=t,e.onerror=t):t()}))},Dm=function(e){return Promise.all([].slice.call(e.images,0).map(Im))},Sm=function(e){return new Promise((function(t,i){var s=e.contentWindow;if(!s)return i("No window assigned for iframe");var r=s.document;s.onload=e.onload=function(){s.onload=e.onload=null;var i=setInterval((function(){r.body.childNodes.length>0&&"complete"===r.readyState&&(clearInterval(i),t(e))}),50)}}))},Tm=["all","d","content"],Rm=function(e,t){for(var i=e.length-1;i>=0;i--){var s=e.item(i);-1===Tm.indexOf(s)&&t.style.setProperty(s,e.getPropertyValue(s))}return t},Lm=function(e){var t="";return e&&(t+=""),t},Um=function(e,t,i){e&&e.defaultView&&(t!==e.defaultView.pageXOffset||i!==e.defaultView.pageYOffset)&&e.defaultView.scrollTo(t,i)},km=function(e){var t=e[0],i=e[1],s=e[2];t.scrollLeft=i,t.scrollTop=s},Om="___html2canvas___pseudoelement_before",Nm="___html2canvas___pseudoelement_after",Qm=function(e){Vm(e,"."+Om+':before{\n content: "" !important;\n display: none !important;\n}\n .'+Nm+':after{\n content: "" !important;\n display: none !important;\n}')},Vm=function(e,t){var i=e.ownerDocument;if(i){var s=i.createElement("style");s.textContent=t,e.appendChild(s)}},jm=function(){function e(){}return e.getOrigin=function(t){var i=e._link;return i?(i.href=t,i.href=i.href,i.protocol+i.hostname+i.port):"about:blank"},e.isSameOrigin=function(t){return e.getOrigin(t)===e._origin},e.setContext=function(t){e._link=t.document.createElement("a"),e._origin=e.getOrigin(t.location.href)},e._origin="about:blank",e}(),Hm=function(){function e(e,t){this.context=e,this._options=t,this._cache={}}return e.prototype.addImage=function(e){var t=Promise.resolve();return this.has(e)?t:qm(e)||Km(e)?((this._cache[e]=this.loadImage(e)).catch((function(){})),t):t},e.prototype.match=function(e){return this._cache[e]},e.prototype.loadImage=function(e){return Kh(this,void 0,void 0,(function(){var t,i,s,r,o=this;return Xh(this,(function(n){switch(n.label){case 0:return t=jm.isSameOrigin(e),i=!Xm(e)&&!0===this._options.useCORS&&wg.SUPPORT_CORS_IMAGES&&!t,s=!Xm(e)&&!t&&!qm(e)&&"string"==typeof this._options.proxy&&wg.SUPPORT_CORS_XHR&&!i,t||!1!==this._options.allowTaint||Xm(e)||qm(e)||s||i?(r=e,s?[4,this.proxy(r)]:[3,2]):[2];case 1:r=n.sent(),n.label=2;case 2:return this.context.logger.debug("Added image "+e.substring(0,256)),[4,new Promise((function(e,t){var s=new Image;s.onload=function(){return e(s)},s.onerror=t,(Ym(r)||i)&&(s.crossOrigin="anonymous"),s.src=r,!0===s.complete&&setTimeout((function(){return e(s)}),500),o._options.imageTimeout>0&&setTimeout((function(){return t("Timed out ("+o._options.imageTimeout+"ms) loading image")}),o._options.imageTimeout)}))];case 3:return[2,n.sent()]}}))}))},e.prototype.has=function(e){return void 0!==this._cache[e]},e.prototype.keys=function(){return Promise.resolve(Object.keys(this._cache))},e.prototype.proxy=function(e){var t=this,i=this._options.proxy;if(!i)throw new Error("No proxy defined");var s=e.substring(0,256);return new Promise((function(r,o){var n=wg.SUPPORT_RESPONSE_TYPE?"blob":"text",a=new XMLHttpRequest;a.onload=function(){if(200===a.status)if("text"===n)r(a.response);else{var e=new FileReader;e.addEventListener("load",(function(){return r(e.result)}),!1),e.addEventListener("error",(function(e){return o(e)}),!1),e.readAsDataURL(a.response)}else o("Failed to proxy resource "+s+" with status code "+a.status)},a.onerror=o;var l=i.indexOf("?")>-1?"&":"?";if(a.open("GET",""+i+l+"url="+encodeURIComponent(e)+"&responseType="+n),"text"!==n&&a instanceof XMLHttpRequest&&(a.responseType=n),t._options.imageTimeout){var A=t._options.imageTimeout;a.timeout=A,a.ontimeout=function(){return o("Timed out ("+A+"ms) proxying "+s)}}a.send()}))},e}(),zm=/^data:image\/svg\+xml/i,Gm=/^data:image\/.*;base64,/i,Wm=/^data:image\/.*/i,Km=function(e){return wg.SUPPORT_SVG_DRAWING||!Zm(e)},Xm=function(e){return Wm.test(e)},Ym=function(e){return Gm.test(e)},qm=function(e){return"blob"===e.substr(0,4)},Zm=function(e){return"svg"===e.substr(-3).toLowerCase()||zm.test(e)},Jm=function(){function e(e,t){this.type=0,this.x=e,this.y=t}return e.prototype.add=function(t,i){return new e(this.x+t,this.y+i)},e}(),$m=function(e,t,i){return new Jm(e.x+(t.x-e.x)*i,e.y+(t.y-e.y)*i)},ef=function(){function e(e,t,i,s){this.type=1,this.start=e,this.startControl=t,this.endControl=i,this.end=s}return e.prototype.subdivide=function(t,i){var s=$m(this.start,this.startControl,t),r=$m(this.startControl,this.endControl,t),o=$m(this.endControl,this.end,t),n=$m(s,r,t),a=$m(r,o,t),l=$m(n,a,t);return i?new e(this.start,s,n,l):new e(l,a,o,this.end)},e.prototype.add=function(t,i){return new e(this.start.add(t,i),this.startControl.add(t,i),this.endControl.add(t,i),this.end.add(t,i))},e.prototype.reverse=function(){return new e(this.end,this.endControl,this.startControl,this.start)},e}(),tf=function(e){return 1===e.type},sf=function(e){var t=e.styles,i=e.bounds,s=Hu(t.borderTopLeftRadius,i.width,i.height),r=s[0],o=s[1],n=Hu(t.borderTopRightRadius,i.width,i.height),a=n[0],l=n[1],A=Hu(t.borderBottomRightRadius,i.width,i.height),h=A[0],c=A[1],u=Hu(t.borderBottomLeftRadius,i.width,i.height),d=u[0],p=u[1],g=[];g.push((r+a)/i.width),g.push((d+h)/i.width),g.push((o+p)/i.height),g.push((l+c)/i.height);var m=Math.max.apply(Math,g);m>1&&(r/=m,o/=m,a/=m,l/=m,h/=m,c/=m,d/=m,p/=m);var f=i.width-a,_=i.height-c,v=i.width-h,b=i.height-p,x=t.borderTopWidth,w=t.borderRightWidth,y=t.borderBottomWidth,P=t.borderLeftWidth,B=zu(t.paddingTop,e.bounds.width),C=zu(t.paddingRight,e.bounds.width),M=zu(t.paddingBottom,e.bounds.width),E=zu(t.paddingLeft,e.bounds.width);this.topLeftBorderDoubleOuterBox=r>0||o>0?rf(i.left+P/3,i.top+x/3,r-P/3,o-x/3,Em.TOP_LEFT):new Jm(i.left+P/3,i.top+x/3),this.topRightBorderDoubleOuterBox=r>0||o>0?rf(i.left+f,i.top+x/3,a-w/3,l-x/3,Em.TOP_RIGHT):new Jm(i.left+i.width-w/3,i.top+x/3),this.bottomRightBorderDoubleOuterBox=h>0||c>0?rf(i.left+v,i.top+_,h-w/3,c-y/3,Em.BOTTOM_RIGHT):new Jm(i.left+i.width-w/3,i.top+i.height-y/3),this.bottomLeftBorderDoubleOuterBox=d>0||p>0?rf(i.left+P/3,i.top+b,d-P/3,p-y/3,Em.BOTTOM_LEFT):new Jm(i.left+P/3,i.top+i.height-y/3),this.topLeftBorderDoubleInnerBox=r>0||o>0?rf(i.left+2*P/3,i.top+2*x/3,r-2*P/3,o-2*x/3,Em.TOP_LEFT):new Jm(i.left+2*P/3,i.top+2*x/3),this.topRightBorderDoubleInnerBox=r>0||o>0?rf(i.left+f,i.top+2*x/3,a-2*w/3,l-2*x/3,Em.TOP_RIGHT):new Jm(i.left+i.width-2*w/3,i.top+2*x/3),this.bottomRightBorderDoubleInnerBox=h>0||c>0?rf(i.left+v,i.top+_,h-2*w/3,c-2*y/3,Em.BOTTOM_RIGHT):new Jm(i.left+i.width-2*w/3,i.top+i.height-2*y/3),this.bottomLeftBorderDoubleInnerBox=d>0||p>0?rf(i.left+2*P/3,i.top+b,d-2*P/3,p-2*y/3,Em.BOTTOM_LEFT):new Jm(i.left+2*P/3,i.top+i.height-2*y/3),this.topLeftBorderStroke=r>0||o>0?rf(i.left+P/2,i.top+x/2,r-P/2,o-x/2,Em.TOP_LEFT):new Jm(i.left+P/2,i.top+x/2),this.topRightBorderStroke=r>0||o>0?rf(i.left+f,i.top+x/2,a-w/2,l-x/2,Em.TOP_RIGHT):new Jm(i.left+i.width-w/2,i.top+x/2),this.bottomRightBorderStroke=h>0||c>0?rf(i.left+v,i.top+_,h-w/2,c-y/2,Em.BOTTOM_RIGHT):new Jm(i.left+i.width-w/2,i.top+i.height-y/2),this.bottomLeftBorderStroke=d>0||p>0?rf(i.left+P/2,i.top+b,d-P/2,p-y/2,Em.BOTTOM_LEFT):new Jm(i.left+P/2,i.top+i.height-y/2),this.topLeftBorderBox=r>0||o>0?rf(i.left,i.top,r,o,Em.TOP_LEFT):new Jm(i.left,i.top),this.topRightBorderBox=a>0||l>0?rf(i.left+f,i.top,a,l,Em.TOP_RIGHT):new Jm(i.left+i.width,i.top),this.bottomRightBorderBox=h>0||c>0?rf(i.left+v,i.top+_,h,c,Em.BOTTOM_RIGHT):new Jm(i.left+i.width,i.top+i.height),this.bottomLeftBorderBox=d>0||p>0?rf(i.left,i.top+b,d,p,Em.BOTTOM_LEFT):new Jm(i.left,i.top+i.height),this.topLeftPaddingBox=r>0||o>0?rf(i.left+P,i.top+x,Math.max(0,r-P),Math.max(0,o-x),Em.TOP_LEFT):new Jm(i.left+P,i.top+x),this.topRightPaddingBox=a>0||l>0?rf(i.left+Math.min(f,i.width-w),i.top+x,f>i.width+w?0:Math.max(0,a-w),Math.max(0,l-x),Em.TOP_RIGHT):new Jm(i.left+i.width-w,i.top+x),this.bottomRightPaddingBox=h>0||c>0?rf(i.left+Math.min(v,i.width-P),i.top+Math.min(_,i.height-y),Math.max(0,h-w),Math.max(0,c-y),Em.BOTTOM_RIGHT):new Jm(i.left+i.width-w,i.top+i.height-y),this.bottomLeftPaddingBox=d>0||p>0?rf(i.left+P,i.top+Math.min(b,i.height-y),Math.max(0,d-P),Math.max(0,p-y),Em.BOTTOM_LEFT):new Jm(i.left+P,i.top+i.height-y),this.topLeftContentBox=r>0||o>0?rf(i.left+P+E,i.top+x+B,Math.max(0,r-(P+E)),Math.max(0,o-(x+B)),Em.TOP_LEFT):new Jm(i.left+P+E,i.top+x+B),this.topRightContentBox=a>0||l>0?rf(i.left+Math.min(f,i.width+P+E),i.top+x+B,f>i.width+P+E?0:a-P+E,l-(x+B),Em.TOP_RIGHT):new Jm(i.left+i.width-(w+C),i.top+x+B),this.bottomRightContentBox=h>0||c>0?rf(i.left+Math.min(v,i.width-(P+E)),i.top+Math.min(_,i.height+x+B),Math.max(0,h-(w+C)),c-(y+M),Em.BOTTOM_RIGHT):new Jm(i.left+i.width-(w+C),i.top+i.height-(y+M)),this.bottomLeftContentBox=d>0||p>0?rf(i.left+P+E,i.top+b,Math.max(0,d-(P+E)),p-(y+M),Em.BOTTOM_LEFT):new Jm(i.left+P+E,i.top+i.height-(y+M))};!function(e){e[e.TOP_LEFT=0]="TOP_LEFT",e[e.TOP_RIGHT=1]="TOP_RIGHT",e[e.BOTTOM_RIGHT=2]="BOTTOM_RIGHT",e[e.BOTTOM_LEFT=3]="BOTTOM_LEFT"}(Em||(Em={}));var rf=function(e,t,i,s,r){var o=(Math.sqrt(2)-1)/3*4,n=i*o,a=s*o,l=e+i,A=t+s;switch(r){case Em.TOP_LEFT:return new ef(new Jm(e,A),new Jm(e,A-a),new Jm(l-n,t),new Jm(l,t));case Em.TOP_RIGHT:return new ef(new Jm(e,t),new Jm(e+n,t),new Jm(l,A-a),new Jm(l,A));case Em.BOTTOM_RIGHT:return new ef(new Jm(l,t),new Jm(l,t+a),new Jm(e+n,A),new Jm(e,A));case Em.BOTTOM_LEFT:default:return new ef(new Jm(l,A),new Jm(l-n,A),new Jm(e,t+a),new Jm(e,t))}},of=function(e){return[e.topLeftBorderBox,e.topRightBorderBox,e.bottomRightBorderBox,e.bottomLeftBorderBox]},nf=function(e){return[e.topLeftPaddingBox,e.topRightPaddingBox,e.bottomRightPaddingBox,e.bottomLeftPaddingBox]},af=function(e,t,i){this.offsetX=e,this.offsetY=t,this.matrix=i,this.type=0,this.target=6},lf=function(e,t){this.path=e,this.target=t,this.type=1},Af=function(e){this.opacity=e,this.type=2,this.target=6},hf=function(e){return 1===e.type},cf=function(e,t){return e.length===t.length&&e.some((function(e,i){return e===t[i]}))},uf=function(e){this.element=e,this.inlineLevel=[],this.nonInlineLevel=[],this.negativeZIndex=[],this.zeroOrAutoZIndexOrTransformedOrOpacity=[],this.positiveZIndex=[],this.nonPositionedFloats=[],this.nonPositionedInlineLevel=[]},df=function(){function e(e,t){if(this.container=e,this.parent=t,this.effects=[],this.curves=new sf(this.container),this.container.styles.opacity<1&&this.effects.push(new Af(this.container.styles.opacity)),null!==this.container.styles.transform){var i=this.container.bounds.left+this.container.styles.transformOrigin[0].number,s=this.container.bounds.top+this.container.styles.transformOrigin[1].number,r=this.container.styles.transform;this.effects.push(new af(i,s,r))}if(0!==this.container.styles.overflowX){var o=of(this.curves),n=nf(this.curves);cf(o,n)?this.effects.push(new lf(o,6)):(this.effects.push(new lf(o,2)),this.effects.push(new lf(n,4)))}}return e.prototype.getEffects=function(e){for(var t=-1===[2,3].indexOf(this.container.styles.position),i=this.parent,s=this.effects.slice(0);i;){var r=i.effects.filter((function(e){return!hf(e)}));if(t||0!==i.container.styles.position||!i.parent){if(s.unshift.apply(s,r),t=-1===[2,3].indexOf(i.container.styles.position),0!==i.container.styles.overflowX){var o=of(i.curves),n=nf(i.curves);cf(o,n)||s.unshift(new lf(n,6))}}else s.unshift.apply(s,r);i=i.parent}return s.filter((function(t){return Op(t.target,e)}))},e}(),pf=function(e,t,i,s){e.container.elements.forEach((function(r){var o=Op(r.flags,4),n=Op(r.flags,2),a=new df(r,e);Op(r.styles.display,2048)&&s.push(a);var l=Op(r.flags,8)?[]:s;if(o||n){var A=o||r.styles.isPositioned()?i:t,h=new uf(a);if(r.styles.isPositioned()||r.styles.opacity<1||r.styles.isTransformed()){var c=r.styles.zIndex.order;if(c<0){var u=0;A.negativeZIndex.some((function(e,t){return c>e.element.container.styles.zIndex.order?(u=t,!1):u>0})),A.negativeZIndex.splice(u,0,h)}else if(c>0){var d=0;A.positiveZIndex.some((function(e,t){return c>=e.element.container.styles.zIndex.order?(d=t+1,!1):d>0})),A.positiveZIndex.splice(d,0,h)}else A.zeroOrAutoZIndexOrTransformedOrOpacity.push(h)}else r.styles.isFloating()?A.nonPositionedFloats.push(h):A.nonPositionedInlineLevel.push(h);pf(a,h,o?h:i,l)}else r.styles.isInlineLevel()?t.inlineLevel.push(a):t.nonInlineLevel.push(a),pf(a,t,i,l);Op(r.flags,8)&&gf(r,l)}))},gf=function(e,t){for(var i=e instanceof Og?e.start:1,s=e instanceof Og&&e.reversed,r=0;r0&&e.intrinsicHeight>0){var s=bf(e),r=nf(t);this.path(r),this.ctx.save(),this.ctx.clip(),this.ctx.drawImage(i,0,0,e.intrinsicWidth,e.intrinsicHeight,s.left,s.top,s.width,s.height),this.ctx.restore()}},t.prototype.renderNodeContent=function(e){return Kh(this,void 0,void 0,(function(){var i,s,r,o,n,a,l,A,h,c,u,d,p,g,m,f,_,v;return Xh(this,(function(b){switch(b.label){case 0:this.applyEffects(e.getEffects(4)),i=e.container,s=e.curves,r=i.styles,o=0,n=i.textNodes,b.label=1;case 1:return o0&&y>0&&(f=s.ctx.createPattern(p,"repeat"),s.renderRepeat(v,f,B,C))):function(e){return 2===e.type}(i)&&(_=xf(e,t,[null,null,null]),v=_[0],b=_[1],x=_[2],w=_[3],y=_[4],P=0===i.position.length?[Vu]:i.position,B=zu(P[0],w),C=zu(P[P.length-1],y),M=function(e,t,i,s,r){var o=0,n=0;switch(e.size){case 0:0===e.shape?o=n=Math.min(Math.abs(t),Math.abs(t-s),Math.abs(i),Math.abs(i-r)):1===e.shape&&(o=Math.min(Math.abs(t),Math.abs(t-s)),n=Math.min(Math.abs(i),Math.abs(i-r)));break;case 2:if(0===e.shape)o=n=Math.min(cd(t,i),cd(t,i-r),cd(t-s,i),cd(t-s,i-r));else if(1===e.shape){var a=Math.min(Math.abs(i),Math.abs(i-r))/Math.min(Math.abs(t),Math.abs(t-s)),l=ud(s,r,t,i,!0),A=l[0],h=l[1];n=a*(o=cd(A-t,(h-i)/a))}break;case 1:0===e.shape?o=n=Math.max(Math.abs(t),Math.abs(t-s),Math.abs(i),Math.abs(i-r)):1===e.shape&&(o=Math.max(Math.abs(t),Math.abs(t-s)),n=Math.max(Math.abs(i),Math.abs(i-r)));break;case 3:if(0===e.shape)o=n=Math.max(cd(t,i),cd(t,i-r),cd(t-s,i),cd(t-s,i-r));else if(1===e.shape){a=Math.max(Math.abs(i),Math.abs(i-r))/Math.max(Math.abs(t),Math.abs(t-s));var c=ud(s,r,t,i,!1);A=c[0],h=c[1],n=a*(o=cd(A-t,(h-i)/a))}}return Array.isArray(e.size)&&(o=zu(e.size[0],s),n=2===e.size.length?zu(e.size[1],r):o),[o,n]}(i,B,C,w,y),E=M[0],F=M[1],E>0&&F>0&&(I=s.ctx.createRadialGradient(b+B,x+C,0,b+B,x+C,E),Ad(i.stops,2*E).forEach((function(e){return I.addColorStop(e.stop,Zu(e.color))})),s.path(v),s.ctx.fillStyle=I,E!==F?(D=e.bounds.left+.5*e.bounds.width,S=e.bounds.top+.5*e.bounds.height,R=1/(T=F/E),s.ctx.save(),s.ctx.translate(D,S),s.ctx.transform(1,0,0,T,0,0),s.ctx.translate(-D,-S),s.ctx.fillRect(b,R*(x-S)+S,w,y*R),s.ctx.restore()):s.ctx.fill())),L.label=6;case 6:return t--,[2]}}))},s=this,r=0,o=e.styles.backgroundImage.slice(0).reverse(),a.label=1;case 1:return r0?2!==l.style?[3,5]:[4,this.renderDashedDottedBorder(l.color,l.width,o,e.curves,2)]:[3,11]:[3,13];case 4:return h.sent(),[3,11];case 5:return 3!==l.style?[3,7]:[4,this.renderDashedDottedBorder(l.color,l.width,o,e.curves,3)];case 6:return h.sent(),[3,11];case 7:return 4!==l.style?[3,9]:[4,this.renderDoubleBorder(l.color,l.width,o,e.curves)];case 8:return h.sent(),[3,11];case 9:return[4,this.renderSolidBorder(l.color,o,e.curves)];case 10:h.sent(),h.label=11;case 11:o++,h.label=12;case 12:return n++,[3,3];case 13:return[2]}}))}))},t.prototype.renderDashedDottedBorder=function(e,t,i,s,r){return Kh(this,void 0,void 0,(function(){var o,n,a,l,A,h,c,u,d,p,g,m,f,_,v,b;return Xh(this,(function(x){return this.ctx.save(),o=function(e,t){switch(t){case 0:return ff(e.topLeftBorderStroke,e.topRightBorderStroke);case 1:return ff(e.topRightBorderStroke,e.bottomRightBorderStroke);case 2:return ff(e.bottomRightBorderStroke,e.bottomLeftBorderStroke);default:return ff(e.bottomLeftBorderStroke,e.topLeftBorderStroke)}}(s,i),n=mf(s,i),2===r&&(this.path(n),this.ctx.clip()),tf(n[0])?(a=n[0].start.x,l=n[0].start.y):(a=n[0].x,l=n[0].y),tf(n[1])?(A=n[1].end.x,h=n[1].end.y):(A=n[1].x,h=n[1].y),c=0===i||2===i?Math.abs(a-A):Math.abs(l-h),this.ctx.beginPath(),3===r?this.formatPath(o):this.formatPath(n.slice(0,2)),u=t<3?3*t:2*t,d=t<3?2*t:t,3===r&&(u=t,d=t),p=!0,c<=2*u?p=!1:c<=2*u+d?(u*=g=c/(2*u+d),d*=g):(m=Math.floor((c+d)/(u+d)),f=(c-m*u)/(m-1),d=(_=(c-(m+1)*u)/m)<=0||Math.abs(d-f){})),Xf(this,"_reject",(()=>{})),this.name=e,this.workerThread=t,this.result=new Promise(((e,t)=>{this._resolve=e,this._reject=t}))}postMessage(e,t){this.workerThread.postMessage({source:"loaders.gl",type:e,payload:t})}done(e){zf(this.isRunning),this.isRunning=!1,this._resolve(e)}error(e){zf(this.isRunning),this.isRunning=!1,this._reject(e)}}class qf{}const Zf=new Map;function Jf(e){zf(e.source&&!e.url||!e.source&&e.url);let t=Zf.get(e.source||e.url);return t||(e.url&&(t=function(e){if(!e.startsWith("http"))return e;return $f((t=e,"try {\n importScripts('".concat(t,"');\n} catch (error) {\n console.error(error);\n throw error;\n}")));var t}(e.url),Zf.set(e.url,t)),e.source&&(t=$f(e.source),Zf.set(e.source,t))),zf(t),t}function $f(e){const t=new Blob([e],{type:"application/javascript"});return URL.createObjectURL(t)}function e_(e,t=!0,i){const s=i||new Set;if(e){if(t_(e))s.add(e);else if(t_(e.buffer))s.add(e.buffer);else if(ArrayBuffer.isView(e));else if(t&&"object"==typeof e)for(const i in e)e_(e[i],t,s)}else;return void 0===i?Array.from(s):[]}function t_(e){return!!e&&(e instanceof ArrayBuffer||("undefined"!=typeof MessagePort&&e instanceof MessagePort||("undefined"!=typeof ImageBitmap&&e instanceof ImageBitmap||"undefined"!=typeof OffscreenCanvas&&e instanceof OffscreenCanvas)))}const i_=()=>{};class s_{static isSupported(){return"undefined"!=typeof Worker&&Gf||void 0!==typeof qf}constructor(e){Xf(this,"name",void 0),Xf(this,"source",void 0),Xf(this,"url",void 0),Xf(this,"terminated",!1),Xf(this,"worker",void 0),Xf(this,"onMessage",void 0),Xf(this,"onError",void 0),Xf(this,"_loadableURL","");const{name:t,source:i,url:s}=e;zf(i||s),this.name=t,this.source=i,this.url=s,this.onMessage=i_,this.onError=e=>console.log(e),this.worker=Gf?this._createBrowserWorker():this._createNodeWorker()}destroy(){this.onMessage=i_,this.onError=i_,this.worker.terminate(),this.terminated=!0}get isRunning(){return Boolean(this.onMessage)}postMessage(e,t){t=t||e_(e),this.worker.postMessage(e,t)}_getErrorFromErrorEvent(e){let t="Failed to load ";return t+="worker ".concat(this.name," from ").concat(this.url,". "),e.message&&(t+="".concat(e.message," in ")),e.lineno&&(t+=":".concat(e.lineno,":").concat(e.colno)),new Error(t)}_createBrowserWorker(){this._loadableURL=Jf({source:this.source,url:this.url});const e=new Worker(this._loadableURL,{name:this.name});return e.onmessage=e=>{e.data?this.onMessage(e.data):this.onError(new Error("No data received"))},e.onerror=e=>{this.onError(this._getErrorFromErrorEvent(e)),this.terminated=!0},e.onmessageerror=e=>console.error(e),e}_createNodeWorker(){let e;if(this.url){const t=this.url.includes(":/")||this.url.startsWith("/")?this.url:"./".concat(this.url);e=new qf(t,{eval:!1})}else{if(!this.source)throw new Error("no worker");e=new qf(this.source,{eval:!0})}return e.on("message",(e=>{this.onMessage(e)})),e.on("error",(e=>{this.onError(e)})),e.on("exit",(e=>{})),e}}class r_{static isSupported(){return s_.isSupported()}constructor(e){Xf(this,"name","unnamed"),Xf(this,"source",void 0),Xf(this,"url",void 0),Xf(this,"maxConcurrency",1),Xf(this,"maxMobileConcurrency",1),Xf(this,"onDebug",(()=>{})),Xf(this,"reuseWorkers",!0),Xf(this,"props",{}),Xf(this,"jobQueue",[]),Xf(this,"idleQueue",[]),Xf(this,"count",0),Xf(this,"isDestroyed",!1),this.source=e.source,this.url=e.url,this.setProps(e)}destroy(){this.idleQueue.forEach((e=>e.destroy())),this.isDestroyed=!0}setProps(e){this.props={...this.props,...e},void 0!==e.name&&(this.name=e.name),void 0!==e.maxConcurrency&&(this.maxConcurrency=e.maxConcurrency),void 0!==e.maxMobileConcurrency&&(this.maxMobileConcurrency=e.maxMobileConcurrency),void 0!==e.reuseWorkers&&(this.reuseWorkers=e.reuseWorkers),void 0!==e.onDebug&&(this.onDebug=e.onDebug)}async startJob(e,t=((e,t,i)=>e.done(i)),i=((e,t)=>e.error(t))){const s=new Promise((s=>(this.jobQueue.push({name:e,onMessage:t,onError:i,onStart:s}),this)));return this._startQueuedJob(),await s}async _startQueuedJob(){if(!this.jobQueue.length)return;const e=this._getAvailableWorker();if(!e)return;const t=this.jobQueue.shift();if(t){this.onDebug({message:"Starting job",name:t.name,workerThread:e,backlog:this.jobQueue.length});const i=new Yf(t.name,e);e.onMessage=e=>t.onMessage(i,e.type,e.payload),e.onError=e=>t.onError(i,e),t.onStart(i);try{await i.result}finally{this.returnWorkerToQueue(e)}}}returnWorkerToQueue(e){this.isDestroyed||!this.reuseWorkers||this.count>this._getMaxConcurrency()?(e.destroy(),this.count--):this.idleQueue.push(e),this.isDestroyed||this._startQueuedJob()}_getAvailableWorker(){if(this.idleQueue.length>0)return this.idleQueue.shift()||null;if(this.count{}};class n_{static isSupported(){return s_.isSupported()}static getWorkerFarm(e={}){return n_._workerFarm=n_._workerFarm||new n_({}),n_._workerFarm.setProps(e),n_._workerFarm}constructor(e){Xf(this,"props",void 0),Xf(this,"workerPools",new Map),this.props={...o_},this.setProps(e),this.workerPools=new Map}destroy(){for(const e of this.workerPools.values())e.destroy();this.workerPools=new Map}setProps(e){this.props={...this.props,...e};for(const e of this.workerPools.values())e.setProps(this._getWorkerPoolProps())}getWorkerPool(e){const{name:t,source:i,url:s}=e;let r=this.workerPools.get(t);return r||(r=new r_({name:t,source:i,url:s}),r.setProps(this._getWorkerPoolProps()),this.workerPools.set(t,r)),r}_getWorkerPoolProps(){return{maxConcurrency:this.props.maxConcurrency,maxMobileConcurrency:this.props.maxMobileConcurrency,reuseWorkers:this.props.reuseWorkers,onDebug:this.props.onDebug}}}Xf(n_,"_workerFarm",void 0);const a_={self:"undefined"!=typeof self&&self,window:"undefined"!=typeof window&&window,global:"undefined"!=typeof global&&global,document:"undefined"!=typeof document&&document,process:"object"==typeof process&&process},l_=a_.window||a_.self||a_.global,A_=a_.process||{},h_="undefined"!=typeof __VERSION__?__VERSION__:"untranspiled source",c_=!("object"==typeof process&&"[object process]"===String(process)&&!process.browser)||function(e){if("undefined"!=typeof window&&"object"==typeof window.process&&"renderer"===window.process.type)return!0;if("undefined"!=typeof process&&"object"==typeof process.versions&&Boolean(process.versions.electron))return!0;const t="object"==typeof navigator&&"string"==typeof navigator.userAgent&&navigator.userAgent,i=e||t;return!!(i&&i.indexOf("Electron")>=0)}();class u_{constructor(e,t,i="sessionStorage"){this.storage=function(e){try{const t=window[e],i="__storage_test__";return t.setItem(i,i),t.removeItem(i),t}catch(e){return null}}(i),this.id=e,this.config={},Object.assign(this.config,t),this._loadConfiguration()}getConfiguration(){return this.config}setConfiguration(e){return this.config={},this.updateConfiguration(e)}updateConfiguration(e){if(Object.assign(this.config,e),this.storage){const e=JSON.stringify(this.config);this.storage.setItem(this.id,e)}return this}_loadConfiguration(){let e={};if(this.storage){const t=this.storage.getItem(this.id);e=t?JSON.parse(t):{}}return Object.assign(this.config,e),this}}function d_(e,t,i,s=600){const r=e.src.replace(/\(/g,"%28").replace(/\)/g,"%29");e.width>s&&(i=Math.min(i,s/e.width));const o=e.width*i,n=e.height*i,a=["font-size:1px;","padding:".concat(Math.floor(n/2),"px ").concat(Math.floor(o/2),"px;"),"line-height:".concat(n,"px;"),"background:url(".concat(r,");"),"background-size:".concat(o,"px ").concat(n,"px;"),"color:transparent;"].join("");return["".concat(t," %c+"),a]}const p_={BLACK:30,RED:31,GREEN:32,YELLOW:33,BLUE:34,MAGENTA:35,CYAN:36,WHITE:37,BRIGHT_BLACK:90,BRIGHT_RED:91,BRIGHT_GREEN:92,BRIGHT_YELLOW:93,BRIGHT_BLUE:94,BRIGHT_MAGENTA:95,BRIGHT_CYAN:96,BRIGHT_WHITE:97};function g_(e){return"string"==typeof e?p_[e.toUpperCase()]||p_.WHITE:e}function m_(e,t){if(!e)throw new Error(t||"Assertion failed")}function f_(){let e;if(c_&&l_.performance)e=l_.performance.now();else if(A_.hrtime){const t=A_.hrtime();e=1e3*t[0]+t[1]/1e6}else e=Date.now();return e}const __={debug:c_&&console.debug||console.log,log:console.log,info:console.info,warn:console.warn,error:console.error},v_={enabled:!0,level:0};function b_(){}const x_={},w_={once:!0};function y_(e){for(const t in e)for(const i in e[t])return i||"untitled";return"empty"}class P_{constructor({id:e}={id:""}){this.id=e,this.VERSION=h_,this._startTs=f_(),this._deltaTs=f_(),this.LOG_THROTTLE_TIMEOUT=0,this._storage=new u_("__probe-".concat(this.id,"__"),v_),this.userData={},this.timeStamp("".concat(this.id," started")),function(e,t=["constructor"]){const i=Object.getPrototypeOf(e),s=Object.getOwnPropertyNames(i);for(const i of s)"function"==typeof e[i]&&(t.find((e=>i===e))||(e[i]=e[i].bind(e)))}(this),Object.seal(this)}set level(e){this.setLevel(e)}get level(){return this.getLevel()}isEnabled(){return this._storage.config.enabled}getLevel(){return this._storage.config.level}getTotal(){return Number((f_()-this._startTs).toPrecision(10))}getDelta(){return Number((f_()-this._deltaTs).toPrecision(10))}set priority(e){this.level=e}get priority(){return this.level}getPriority(){return this.level}enable(e=!0){return this._storage.updateConfiguration({enabled:e}),this}setLevel(e){return this._storage.updateConfiguration({level:e}),this}assert(e,t){m_(e,t)}warn(e){return this._getLogFunction(0,e,__.warn,arguments,w_)}error(e){return this._getLogFunction(0,e,__.error,arguments)}deprecated(e,t){return this.warn("`".concat(e,"` is deprecated and will be removed in a later version. Use `").concat(t,"` instead"))}removed(e,t){return this.error("`".concat(e,"` has been removed. Use `").concat(t,"` instead"))}probe(e,t){return this._getLogFunction(e,t,__.log,arguments,{time:!0,once:!0})}log(e,t){return this._getLogFunction(e,t,__.debug,arguments)}info(e,t){return this._getLogFunction(e,t,console.info,arguments)}once(e,t){return this._getLogFunction(e,t,__.debug||__.info,arguments,w_)}table(e,t,i){return t?this._getLogFunction(e,t,console.table||b_,i&&[i],{tag:y_(t)}):b_}image({logLevel:e,priority:t,image:i,message:s="",scale:r=1}){return this._shouldLog(e||t)?c_?function({image:e,message:t="",scale:i=1}){if("string"==typeof e){const s=new Image;return s.onload=()=>{const e=d_(s,t,i);console.log(...e)},s.src=e,b_}const s=e.nodeName||"";if("img"===s.toLowerCase())return console.log(...d_(e,t,i)),b_;if("canvas"===s.toLowerCase()){const s=new Image;return s.onload=()=>console.log(...d_(s,t,i)),s.src=e.toDataURL(),b_}return b_}({image:i,message:s,scale:r}):function({image:e,message:t="",scale:i=1}){let s=null;try{s=module.require("asciify-image")}catch(e){}if(s)return()=>s(e,{fit:"box",width:"".concat(Math.round(80*i),"%")}).then((e=>console.log(e)));return b_}({image:i,message:s,scale:r}):b_}settings(){console.table?console.table(this._storage.config):console.log(this._storage.config)}get(e){return this._storage.config[e]}set(e,t){this._storage.updateConfiguration({[e]:t})}time(e,t){return this._getLogFunction(e,t,console.time?console.time:console.info)}timeEnd(e,t){return this._getLogFunction(e,t,console.timeEnd?console.timeEnd:console.info)}timeStamp(e,t){return this._getLogFunction(e,t,console.timeStamp||b_)}group(e,t,i={collapsed:!1}){i=C_({logLevel:e,message:t,opts:i});const{collapsed:s}=i;return i.method=(s?console.groupCollapsed:console.group)||console.info,this._getLogFunction(i)}groupCollapsed(e,t,i={}){return this.group(e,t,Object.assign({},i,{collapsed:!0}))}groupEnd(e){return this._getLogFunction(e,"",console.groupEnd||b_)}withGroup(e,t,i){this.group(e,t)();try{i()}finally{this.groupEnd(e)()}}trace(){console.trace&&console.trace()}_shouldLog(e){return this.isEnabled()&&this.getLevel()>=B_(e)}_getLogFunction(e,t,i,s=[],r){if(this._shouldLog(e)){r=C_({logLevel:e,message:t,args:s,opts:r}),m_(i=i||r.method),r.total=this.getTotal(),r.delta=this.getDelta(),this._deltaTs=f_();const o=r.tag||r.message;if(r.once){if(x_[o])return b_;x_[o]=f_()}return t=function(e,t,i){if("string"==typeof t){const s=i.time?function(e,t=8){const i=Math.max(t-e.length,0);return"".concat(" ".repeat(i)).concat(e)}(function(e){let t;return t=e<10?"".concat(e.toFixed(2),"ms"):e<100?"".concat(e.toFixed(1),"ms"):e<1e3?"".concat(e.toFixed(0),"ms"):"".concat((e/1e3).toFixed(2),"s"),t}(i.total)):"";t=i.time?"".concat(e,": ").concat(s," ").concat(t):"".concat(e,": ").concat(t),t=function(e,t,i){return c_||"string"!=typeof e||(t&&(t=g_(t),e="[".concat(t,"m").concat(e,"")),i&&(t=g_(i),e="[".concat(i+10,"m").concat(e,""))),e}(t,i.color,i.background)}return t}(this.id,r.message,r),i.bind(console,t,...r.args)}return b_}}function B_(e){if(!e)return 0;let t;switch(typeof e){case"number":t=e;break;case"object":t=e.logLevel||e.priority||0;break;default:return 0}return m_(Number.isFinite(t)&&t>=0),t}function C_(e){const{logLevel:t,message:i}=e;e.logLevel=B_(t);const s=e.args?Array.from(e.args):[];for(;s.length&&s.shift()!==i;);switch(e.args=s,typeof t){case"string":case"function":void 0!==i&&s.unshift(i),e.message=t;break;case"object":Object.assign(e,t)}"function"==typeof e.message&&(e.message=e.message());const r=typeof e.message;return m_("string"===r||"object"===r),Object.assign(e,e.opts)}P_.VERSION=h_,new P_({id:"loaders.gl"});function M_(){return!("object"==typeof process&&"[object process]"===String(process)&&!process.browser)||function(e){if("undefined"!=typeof window&&"object"==typeof window.process&&"renderer"===window.process.type)return!0;if("undefined"!=typeof process&&"object"==typeof process.versions&&Boolean(process.versions.electron))return!0;const t="object"==typeof navigator&&"string"==typeof navigator.userAgent&&navigator.userAgent,i=e||t;return!!(i&&i.indexOf("Electron")>=0)}()}new class{constructor(){Xf(this,"console",void 0),this.console=console}log(...e){return this.console.log.bind(this.console,...e)}info(...e){return this.console.info.bind(this.console,...e)}warn(...e){return this.console.warn.bind(this.console,...e)}error(...e){return this.console.error.bind(this.console,...e)}};const E_={self:"undefined"!=typeof self&&self,window:"undefined"!=typeof window&&window,global:"undefined"!=typeof global&&global,document:"undefined"!=typeof document&&document,process:"object"==typeof process&&process},F_=E_.window||E_.self||E_.global,I_=E_.process||{},D_="undefined"!=typeof __VERSION__?__VERSION__:"untranspiled source";M_();class S_{constructor(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"sessionStorage";Xf(this,"storage",void 0),Xf(this,"id",void 0),Xf(this,"config",{}),this.storage=function(e){try{const t=window[e],i="__storage_test__";return t.setItem(i,i),t.removeItem(i),t}catch(e){return null}}(i),this.id=e,this.config={},Object.assign(this.config,t),this._loadConfiguration()}getConfiguration(){return this.config}setConfiguration(e){return this.config={},this.updateConfiguration(e)}updateConfiguration(e){if(Object.assign(this.config,e),this.storage){const e=JSON.stringify(this.config);this.storage.setItem(this.id,e)}return this}_loadConfiguration(){let e={};if(this.storage){const t=this.storage.getItem(this.id);e=t?JSON.parse(t):{}}return Object.assign(this.config,e),this}}function T_(e,t,i){let s=arguments.length>3&&void 0!==arguments[3]?arguments[3]:600;const r=e.src.replace(/\(/g,"%28").replace(/\)/g,"%29");e.width>s&&(i=Math.min(i,s/e.width));const o=e.width*i,n=e.height*i,a=["font-size:1px;","padding:".concat(Math.floor(n/2),"px ").concat(Math.floor(o/2),"px;"),"line-height:".concat(n,"px;"),"background:url(".concat(r,");"),"background-size:".concat(o,"px ").concat(n,"px;"),"color:transparent;"].join("");return["".concat(t," %c+"),a]}let R_;function L_(e){return"string"==typeof e?R_[e.toUpperCase()]||R_.WHITE:e}function U_(e,t){if(!e)throw new Error(t||"Assertion failed")}function k_(){let e;var t,i;if(M_&&"performance"in F_)e=null==F_||null===(t=F_.performance)||void 0===t||null===(i=t.now)||void 0===i?void 0:i.call(t);else if("hrtime"in I_){var s;const t=null==I_||null===(s=I_.hrtime)||void 0===s?void 0:s.call(I_);e=1e3*t[0]+t[1]/1e6}else e=Date.now();return e}!function(e){e[e.BLACK=30]="BLACK",e[e.RED=31]="RED",e[e.GREEN=32]="GREEN",e[e.YELLOW=33]="YELLOW",e[e.BLUE=34]="BLUE",e[e.MAGENTA=35]="MAGENTA",e[e.CYAN=36]="CYAN",e[e.WHITE=37]="WHITE",e[e.BRIGHT_BLACK=90]="BRIGHT_BLACK",e[e.BRIGHT_RED=91]="BRIGHT_RED",e[e.BRIGHT_GREEN=92]="BRIGHT_GREEN",e[e.BRIGHT_YELLOW=93]="BRIGHT_YELLOW",e[e.BRIGHT_BLUE=94]="BRIGHT_BLUE",e[e.BRIGHT_MAGENTA=95]="BRIGHT_MAGENTA",e[e.BRIGHT_CYAN=96]="BRIGHT_CYAN",e[e.BRIGHT_WHITE=97]="BRIGHT_WHITE"}(R_||(R_={}));const O_={debug:M_&&console.debug||console.log,log:console.log,info:console.info,warn:console.warn,error:console.error},N_={enabled:!0,level:0};function Q_(){}const V_={},j_={once:!0};class H_{constructor(){let{id:e}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{id:""};Xf(this,"id",void 0),Xf(this,"VERSION",D_),Xf(this,"_startTs",k_()),Xf(this,"_deltaTs",k_()),Xf(this,"_storage",void 0),Xf(this,"userData",{}),Xf(this,"LOG_THROTTLE_TIMEOUT",0),this.id=e,this._storage=new S_("__probe-".concat(this.id,"__"),N_),this.userData={},this.timeStamp("".concat(this.id," started")),function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:["constructor"];const i=Object.getPrototypeOf(e),s=Object.getOwnPropertyNames(i);for(const i of s)"function"==typeof e[i]&&(t.find((e=>i===e))||(e[i]=e[i].bind(e)))}(this),Object.seal(this)}set level(e){this.setLevel(e)}get level(){return this.getLevel()}isEnabled(){return this._storage.config.enabled}getLevel(){return this._storage.config.level}getTotal(){return Number((k_()-this._startTs).toPrecision(10))}getDelta(){return Number((k_()-this._deltaTs).toPrecision(10))}set priority(e){this.level=e}get priority(){return this.level}getPriority(){return this.level}enable(){let e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];return this._storage.updateConfiguration({enabled:e}),this}setLevel(e){return this._storage.updateConfiguration({level:e}),this}get(e){return this._storage.config[e]}set(e,t){this._storage.updateConfiguration({[e]:t})}settings(){console.table?console.table(this._storage.config):console.log(this._storage.config)}assert(e,t){U_(e,t)}warn(e){return this._getLogFunction(0,e,O_.warn,arguments,j_)}error(e){return this._getLogFunction(0,e,O_.error,arguments)}deprecated(e,t){return this.warn("`".concat(e,"` is deprecated and will be removed in a later version. Use `").concat(t,"` instead"))}removed(e,t){return this.error("`".concat(e,"` has been removed. Use `").concat(t,"` instead"))}probe(e,t){return this._getLogFunction(e,t,O_.log,arguments,{time:!0,once:!0})}log(e,t){return this._getLogFunction(e,t,O_.debug,arguments)}info(e,t){return this._getLogFunction(e,t,console.info,arguments)}once(e,t){for(var i=arguments.length,s=new Array(i>2?i-2:0),r=2;r{const t=T_(e,i,s);console.log(...t)},e.src=t,Q_}const r=t.nodeName||"";if("img"===r.toLowerCase())return console.log(...T_(t,i,s)),Q_;if("canvas"===r.toLowerCase()){const e=new Image;return e.onload=()=>console.log(...T_(e,i,s)),e.src=t.toDataURL(),Q_}return Q_}({image:s,message:r,scale:o}):function(e){let{image:t,message:i="",scale:s=1}=e,r=null;try{r=module.require("asciify-image")}catch(e){}if(r)return()=>r(t,{fit:"box",width:"".concat(Math.round(80*s),"%")}).then((e=>console.log(e)));return Q_}({image:s,message:r,scale:o}):Q_}time(e,t){return this._getLogFunction(e,t,console.time?console.time:console.info)}timeEnd(e,t){return this._getLogFunction(e,t,console.timeEnd?console.timeEnd:console.info)}timeStamp(e,t){return this._getLogFunction(e,t,console.timeStamp||Q_)}group(e,t){let i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{collapsed:!1};const s=G_({logLevel:e,message:t,opts:i}),{collapsed:r}=i;return s.method=(r?console.groupCollapsed:console.group)||console.info,this._getLogFunction(s)}groupCollapsed(e,t){let i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.group(e,t,Object.assign({},i,{collapsed:!0}))}groupEnd(e){return this._getLogFunction(e,"",console.groupEnd||Q_)}withGroup(e,t,i){this.group(e,t)();try{i()}finally{this.groupEnd(e)()}}trace(){console.trace&&console.trace()}_shouldLog(e){return this.isEnabled()&&this.getLevel()>=z_(e)}_getLogFunction(e,t,i,s,r){if(this._shouldLog(e)){r=G_({logLevel:e,message:t,args:s,opts:r}),U_(i=i||r.method),r.total=this.getTotal(),r.delta=this.getDelta(),this._deltaTs=k_();const o=r.tag||r.message;if(r.once){if(V_[o])return Q_;V_[o]=k_()}return t=function(e,t,i){if("string"==typeof t){const s=i.time?function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:8;const i=Math.max(t-e.length,0);return"".concat(" ".repeat(i)).concat(e)}(function(e){let t;return t=e<10?"".concat(e.toFixed(2),"ms"):e<100?"".concat(e.toFixed(1),"ms"):e<1e3?"".concat(e.toFixed(0),"ms"):"".concat((e/1e3).toFixed(2),"s"),t}(i.total)):"";t=i.time?"".concat(e,": ").concat(s," ").concat(t):"".concat(e,": ").concat(t),t=function(e,t,i){return M_||"string"!=typeof e||(t&&(t=L_(t),e="[".concat(t,"m").concat(e,"")),i&&(t=L_(i),e="[".concat(i+10,"m").concat(e,""))),e}(t,i.color,i.background)}return t}(this.id,r.message,r),i.bind(console,t,...r.args)}return Q_}}function z_(e){if(!e)return 0;let t;switch(typeof e){case"number":t=e;break;case"object":t=e.logLevel||e.priority||0;break;default:return 0}return U_(Number.isFinite(t)&&t>=0),t}function G_(e){const{logLevel:t,message:i}=e;e.logLevel=z_(t);const s=e.args?Array.from(e.args):[];for(;s.length&&s.shift()!==i;);switch(typeof t){case"string":case"function":void 0!==i&&s.unshift(i),e.message=t;break;case"object":Object.assign(e,t)}"function"==typeof e.message&&(e.message=e.message());const r=typeof e.message;return U_("string"===r||"object"===r),Object.assign(e,{args:s},e.opts)}function W_(e){for(const t in e)for(const i in e[t])return i||"untitled";return"empty"}var K_,X_,Y_,q_,Z_,J_,$_,ev,tv;let iv;Xf(H_,"VERSION",D_),new H_({id:"loaders.gl"}),(tv=K_||(K_={}))[tv.NONE=0]="NONE",tv[tv.BASISLZ=1]="BASISLZ",tv[tv.ZSTD=2]="ZSTD",tv[tv.ZLIB=3]="ZLIB",function(e){e[e.BASICFORMAT=0]="BASICFORMAT"}(X_||(X_={})),function(e){e[e.UNSPECIFIED=0]="UNSPECIFIED",e[e.ETC1S=163]="ETC1S",e[e.UASTC=166]="UASTC"}(Y_||(Y_={})),function(e){e[e.UNSPECIFIED=0]="UNSPECIFIED",e[e.SRGB=1]="SRGB"}(q_||(q_={})),function(e){e[e.UNSPECIFIED=0]="UNSPECIFIED",e[e.LINEAR=1]="LINEAR",e[e.SRGB=2]="SRGB",e[e.ITU=3]="ITU",e[e.NTSC=4]="NTSC",e[e.SLOG=5]="SLOG",e[e.SLOG2=6]="SLOG2"}(Z_||(Z_={})),function(e){e[e.ALPHA_STRAIGHT=0]="ALPHA_STRAIGHT",e[e.ALPHA_PREMULTIPLIED=1]="ALPHA_PREMULTIPLIED"}(J_||(J_={})),function(e){e[e.RGB=0]="RGB",e[e.RRR=3]="RRR",e[e.GGG=4]="GGG",e[e.AAA=15]="AAA"}($_||($_={})),function(e){e[e.RGB=0]="RGB",e[e.RGBA=3]="RGBA",e[e.RRR=4]="RRR",e[e.RRRG=5]="RRRG"}(ev||(ev={})),function(e){e[e.NONE=0]="NONE",e[e.Null=1]="Null",e[e.Int=2]="Int",e[e.Float=3]="Float",e[e.Binary=4]="Binary",e[e.Utf8=5]="Utf8",e[e.Bool=6]="Bool",e[e.Decimal=7]="Decimal",e[e.Date=8]="Date",e[e.Time=9]="Time",e[e.Timestamp=10]="Timestamp",e[e.Interval=11]="Interval",e[e.List=12]="List",e[e.Struct=13]="Struct",e[e.Union=14]="Union",e[e.FixedSizeBinary=15]="FixedSizeBinary",e[e.FixedSizeList=16]="FixedSizeList",e[e.Map=17]="Map",e[e.Dictionary=-1]="Dictionary",e[e.Int8=-2]="Int8",e[e.Int16=-3]="Int16",e[e.Int32=-4]="Int32",e[e.Int64=-5]="Int64",e[e.Uint8=-6]="Uint8",e[e.Uint16=-7]="Uint16",e[e.Uint32=-8]="Uint32",e[e.Uint64=-9]="Uint64",e[e.Float16=-10]="Float16",e[e.Float32=-11]="Float32",e[e.Float64=-12]="Float64",e[e.DateDay=-13]="DateDay",e[e.DateMillisecond=-14]="DateMillisecond",e[e.TimestampSecond=-15]="TimestampSecond",e[e.TimestampMillisecond=-16]="TimestampMillisecond",e[e.TimestampMicrosecond=-17]="TimestampMicrosecond",e[e.TimestampNanosecond=-18]="TimestampNanosecond",e[e.TimeSecond=-19]="TimeSecond",e[e.TimeMillisecond=-20]="TimeMillisecond",e[e.TimeMicrosecond=-21]="TimeMicrosecond",e[e.TimeNanosecond=-22]="TimeNanosecond",e[e.DenseUnion=-23]="DenseUnion",e[e.SparseUnion=-24]="SparseUnion",e[e.IntervalDayTime=-25]="IntervalDayTime",e[e.IntervalYearMonth=-26]="IntervalYearMonth"}(iv||(iv={}));const sv={DEFAULT:{}};function rv(e,t,i={}){const s="lightgrey",r=i.hoverColor||"rgba(0,0,0,0.4)",o=i.textColor||"black",n=500,a=n+n/3,l=a/24,A=[{boundary:[6,6,6,6],color:i.frontColor||i.color||"#55FF55"},{boundary:[18,6,6,6],color:i.backColor||i.color||"#55FF55"},{boundary:[12,6,6,6],color:i.rightColor||i.color||"#FF5555"},{boundary:[0,6,6,6],color:i.leftColor||i.color||"#FF5555"},{boundary:[6,0,6,6],color:i.topColor||i.color||"#7777FF"},{boundary:[6,12,6,6],color:i.bottomColor||i.color||"#7777FF"}],h=[{label:"NavCube.front",boundaries:[[7,7,4,4]],dir:[0,1,0],up:[0,0,1]},{label:"NavCube.back",boundaries:[[19,7,4,4]],dir:[0,-1,0],up:[0,0,1]},{label:"NavCube.right",boundaries:[[13,7,4,4]],dir:[-1,0,0],up:[0,0,1]},{label:"NavCube.left",boundaries:[[1,7,4,4]],dir:[1,0,0],up:[0,0,1]},{label:"NavCube.top",boundaries:[[7,1,4,4]],dir:[0,0,-1],up:[0,1,0]},{label:"NavCube.bottom",boundaries:[[7,13,4,4]],dir:[0,0,1],up:[0,-1,0]},{boundaries:[[7,5,4,2]],dir:[0,1,-1],up:[0,1,1]},{boundaries:[[1,6,4,1],[6,1,1,4]],dir:[1,0,-1],up:[1,0,1]},{boundaries:[[7,0,4,1],[19,6,4,1]],dir:[0,-1,-1],up:[0,-1,1]},{boundaries:[[13,6,4,1],[11,1,1,4]],dir:[-1,0,-1],up:[-1,0,1]},{boundaries:[[7,11,4,2]],dir:[0,1,1],up:[0,-1,1]},{boundaries:[[1,11,4,1],[6,13,1,4]],dir:[1,0,1],up:[-1,0,1]},{boundaries:[[7,17,4,1],[19,11,4,1]],dir:[0,-1,1],up:[0,1,1]},{boundaries:[[13,11,4,1],[11,13,1,4]],dir:[-1,0,1],up:[1,0,1]},{boundaries:[[5,7,2,4]],dir:[1,1,0],up:[0,0,1]},{boundaries:[[11,7,2,4]],dir:[-1,1,0],up:[0,0,1]},{boundaries:[[17,7,2,4]],dir:[-1,-1,0],up:[0,0,1]},{boundaries:[[0,7,1,4],[23,7,1,4]],dir:[1,-1,0],up:[0,0,1]},{boundaries:[[5,11,2,2]],dir:[1,1,1],up:[-1,-1,1]},{boundaries:[[23,11,1,1],[6,17,1,1],[0,11,1,1]],dir:[1,-1,1],up:[-1,1,1]},{boundaries:[[5,5,2,2]],dir:[1,1,-1],up:[1,1,1]},{boundaries:[[11,17,1,1],[17,11,2,1]],dir:[-1,-1,1],up:[1,1,1]},{boundaries:[[17,6,2,1],[11,0,1,1]],dir:[-1,-1,-1],up:[-1,-1,1]},{boundaries:[[11,11,2,2]],dir:[-1,1,1],up:[1,-1,1]},{boundaries:[[0,6,1,1],[6,0,1,1],[23,6,1,1]],dir:[1,-1,-1],up:[1,-1,1]},{boundaries:[[11,5,2,2]],dir:[-1,1,-1],up:[-1,1,1]}];i.frontColor||i.color,i.backColor||i.color,i.rightColor||i.color,i.leftColor||i.color,i.topColor||i.color,i.bottomColor||i.color;const c=[{yUp:"",label:"NavCube.front",boundaries:[[7,7,4,4]],dir:[0,0,-1],up:[0,1,0]},{label:"NavCube.back",boundaries:[[19,7,4,4]],dir:[0,0,1],up:[0,1,0]},{label:"NavCube.right",boundaries:[[13,7,4,4]],dir:[-1,0,0],up:[0,1,0]},{label:"NavCube.left",boundaries:[[1,7,4,4]],dir:[1,0,0],up:[0,1,0]},{label:"NavCube.top",boundaries:[[7,1,4,4]],dir:[0,-1,0],up:[0,0,-1]},{label:"NavCube.bottom",boundaries:[[7,13,4,4]],dir:[0,1,0],up:[0,0,1]},{boundaries:[[7,5,4,2]],dir:[0,-.7071,-.7071],up:[0,.7071,-.7071]},{boundaries:[[1,6,4,1],[6,1,1,4]],dir:[1,-1,0],up:[1,1,0]},{boundaries:[[7,0,4,1],[19,6,4,1]],dir:[0,-.7071,.7071],up:[0,.7071,.7071]},{boundaries:[[13,6,4,1],[11,1,1,4]],dir:[-1,-1,0],up:[-1,1,0]},{boundaries:[[7,11,4,2]],dir:[0,1,-1],up:[0,1,1]},{boundaries:[[1,11,4,1],[6,13,1,4]],dir:[1,1,0],up:[-1,1,0]},{boundaries:[[7,17,4,1],[19,11,4,1]],dir:[0,1,1],up:[0,1,-1]},{boundaries:[[13,11,4,1],[11,13,1,4]],dir:[-1,1,0],up:[1,1,0]},{boundaries:[[5,7,2,4]],dir:[1,0,-1],up:[0,1,0]},{boundaries:[[11,7,2,4]],dir:[-1,0,-1],up:[0,1,0]},{boundaries:[[17,7,2,4]],dir:[-1,0,1],up:[0,1,0]},{boundaries:[[0,7,1,4],[23,7,1,4]],dir:[1,0,1],up:[0,1,0]},{boundaries:[[5,11,2,2]],dir:[.5,.7071,-.5],up:[-.5,.7071,.5]},{boundaries:[[23,11,1,1],[6,17,1,1],[0,11,1,1]],dir:[.5,.7071,.5],up:[-.5,.7071,-.5]},{boundaries:[[5,5,2,2]],dir:[.5,-.7071,-.5],up:[.5,.7071,-.5]},{boundaries:[[11,17,1,1],[17,11,2,1]],dir:[-.5,.7071,.5],up:[.5,.7071,-.5]},{boundaries:[[17,6,2,1],[11,0,1,1]],dir:[-.5,-.7071,.5],up:[-.5,.7071,.5]},{boundaries:[[11,11,2,2]],dir:[-.5,.7071,-.5],up:[.5,.7071,.5]},{boundaries:[[0,6,1,1],[6,0,1,1],[23,6,1,1]],dir:[.5,-.7071,.5],up:[.5,.7071,.5]},{boundaries:[[11,5,2,2]],dir:[-.5,-.7071,-.5],up:[-.5,.7071,-.5]}];for(let e=0,t=h.length;e=r[0]*l&&t<=(r[0]+r[2])*l&&i>=r[1]*l&&i<=(r[1]+r[3])*l)return s}}return-1},this.setAreaHighlighted=function(e,t){var i=d[e];if(!i)throw"Area not found: "+e;i.highlighted=!!t,m()},this.getAreaDir=function(e){var t=d[e];if(!t)throw"Unknown area: "+e;return t.dir},this.getAreaUp=function(e){var t=d[e];if(!t)throw"Unknown area: "+e;return t.up},this.getImage=function(){return this._textureCanvas},this.destroy=function(){this._textureCanvas&&(this._textureCanvas.parentNode.removeChild(this._textureCanvas),this._textureCanvas=null)}}const ov=u.vec3(),nv=u.vec3();u.mat4();class av extends N{constructor(e,t={}){super("NavCube",e,t),e.navCube=this;try{this._navCubeScene=new Yt(e,{canvasId:t.canvasId,canvasElement:t.canvasElement,transparent:!0}),this._navCubeCanvas=this._navCubeScene.canvas.canvas,this._navCubeScene.input.keyboardEnabled=!1}catch(e){return void this.error(e)}const i=this._navCubeScene;i.clearLights(),new _t(i,{dir:[.4,-.4,.8],color:[.8,1,1],intensity:1,space:"view"}),new _t(i,{dir:[-.8,-.3,-.4],color:[.8,.8,.8],intensity:1,space:"view"}),new _t(i,{dir:[.8,-.6,-.8],color:[1,1,1],intensity:1,space:"view"}),this._navCubeCamera=i.camera,this._navCubeCamera.ortho.scale=7,this._navCubeCamera.ortho.near=.1,this._navCubeCamera.ortho.far=2e3,i.edgeMaterial.edgeColor=[.2,.2,.2],i.edgeMaterial.edgeAlpha=.6,this._zUp=Boolean(e.camera.zUp);var s=this;this.setIsProjectNorth(t.isProjectNorth),this.setProjectNorthOffsetAngle(t.projectNorthOffsetAngle);const r=function(){const e=u.mat4();return function(t,i,r){return u.identityMat4(e),u.rotationMat4v(t*s._projectNorthOffsetAngle*u.DEGTORAD,[0,1,0],e),u.transformVec3(e,i,r)}}();this._synchCamera=function(){var t=u.rotationMat4c(-90*u.DEGTORAD,1,0,0),i=u.vec3(),o=u.vec3(),n=u.vec3();return function(){var a=e.camera.eye,l=e.camera.look,A=e.camera.up;i=u.mulVec3Scalar(u.normalizeVec3(u.subVec3(a,l,i)),5),s._isProjectNorth&&s._projectNorthOffsetAngle&&(i=r(-1,i,ov),A=r(-1,A,nv)),s._zUp?(u.transformVec3(t,i,o),u.transformVec3(t,A,n),s._navCubeCamera.look=[0,0,0],s._navCubeCamera.eye=u.transformVec3(t,i,o),s._navCubeCamera.up=u.transformPoint3(t,A,n)):(s._navCubeCamera.look=[0,0,0],s._navCubeCamera.eye=i,s._navCubeCamera.up=A)}}(),this._cubeTextureCanvas=new rv(e,i,t),this._cubeSampler=new As(i,{image:this._cubeTextureCanvas.getImage(),flipY:!0,wrapS:1001,wrapT:1001}),this._cubeMesh=new Qi(i,{geometry:new Dt(i,{primitive:"triangles",normals:[0,0,1,0,0,1,0,0,1,0,0,1,1,0,0,1,0,0,1,0,0,1,0,0,0,1,0,0,1,0,0,1,0,0,1,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,0,-1,0,0,-1,0,0,-1,0,0,-1],positions:[1,1,1,-1,1,1,-1,-1,1,1,-1,1,1,1,1,1,-1,1,1,-1,-1,1,1,-1,1,1,1,1,1,-1,-1,1,-1,-1,1,1,-1,1,1,-1,1,-1,-1,-1,-1,-1,-1,1,-1,-1,-1,1,-1,-1,1,-1,1,-1,-1,1,1,-1,-1,-1,-1,-1,-1,1,-1,1,1,-1],uv:[.5,.6666,.25,.6666,.25,.3333,.5,.3333,.5,.6666,.5,.3333,.75,.3333,.75,.6666,.5,.6666,.5,1,.25,1,.25,.6666,.25,.6666,0,.6666,0,.3333,.25,.3333,.25,0,.5,0,.5,.3333,.25,.3333,.75,.3333,1,.3333,1,.6666,.75,.6666],indices:[0,1,2,0,2,3,4,5,6,4,6,7,8,9,10,8,10,11,12,13,14,12,14,15,16,17,18,16,18,19,20,21,22,20,22,23]}),material:new Ut(i,{diffuse:[.4,.4,.4],specular:[.4,.4,.4],emissive:[.6,.6,.6],diffuseMap:this._cubeSampler,emissiveMap:this._cubeSampler}),visible:!0,edges:!0}),this._shadow=!1===t.shadowVisible?null:new Qi(i,{geometry:new Dt(i,ji({center:[0,0,0],radiusTop:.001,radiusBottom:1.4,height:.01,radialSegments:20,heightSegments:1,openEnded:!0})),material:new Ut(i,{diffuse:[0,0,0],specular:[0,0,0],emissive:[0,0,0],alpha:.5}),position:[0,-1.5,0],visible:!0,pickable:!1,backfaces:!1}),this._onCameraMatrix=e.camera.on("matrix",this._synchCamera),this._onCameraWorldAxis=e.camera.on("worldAxis",(()=>{e.camera.zUp?(this._zUp=!0,this._cubeTextureCanvas.setZUp(),this._repaint(),this._synchCamera()):e.camera.yUp&&(this._zUp=!1,this._cubeTextureCanvas.setYUp(),this._repaint(),this._synchCamera())})),this._onCameraFOV=e.camera.perspective.on("fov",(e=>{this._synchProjection&&(this._navCubeCamera.perspective.fov=e)})),this._onCameraProjection=e.camera.on("projection",(e=>{this._synchProjection&&(this._navCubeCamera.projection="ortho"===e||"perspective"===e?e:"perspective")}));var o=-1;function n(e){var t=[0,0];if(e){for(var i=e.target,s=0,r=0;i.offsetParent;)s+=i.offsetLeft,r+=i.offsetTop,i=i.offsetParent;t[0]=e.pageX-s,t[1]=e.pageY-r}else e=window.event,t[0]=e.x,t[1]=e.y;return t}var a,l,A=null,h=null,c=!1,d=!1,p=.5;s._navCubeCanvas.addEventListener("mouseenter",s._onMouseEnter=function(e){d=!0}),s._navCubeCanvas.addEventListener("mouseleave",s._onMouseLeave=function(e){d=!1}),s._navCubeCanvas.addEventListener("mousedown",s._onMouseDown=function(e){if(1===e.which){A=e.x,h=e.y,a=e.clientX,l=e.clientY;var t=n(e),s=i.pick({canvasPos:t});c=!!s}}),document.addEventListener("mouseup",s._onMouseUp=function(e){if(1===e.which&&(c=!1,null!==A)){var t=n(e),a=i.pick({canvasPos:t,pickSurface:!0});if(a&&a.uv){var l=s._cubeTextureCanvas.getArea(a.uv);if(l>=0&&(document.body.style.cursor="pointer",o>=0&&(s._cubeTextureCanvas.setAreaHighlighted(o,!1),s._repaint(),o=-1),l>=0)){if(s._cubeTextureCanvas.setAreaHighlighted(l,!0),o=l,s._repaint(),e.xA+3||e.yh+3)return;var u=s._cubeTextureCanvas.getAreaDir(l);if(u){var d=s._cubeTextureCanvas.getAreaUp(l);s._isProjectNorth&&s._projectNorthOffsetAngle&&(u=r(1,u,ov),d=r(1,d,nv)),g(u,d,(function(){o>=0&&(s._cubeTextureCanvas.setAreaHighlighted(o,!1),s._repaint(),o=-1),document.body.style.cursor="pointer",o>=0&&(s._cubeTextureCanvas.setAreaHighlighted(o,!1),s._repaint(),o=-1),l>=0&&(s._cubeTextureCanvas.setAreaHighlighted(l,!1),o=-1,s._repaint())}))}}}}}),document.addEventListener("mousemove",s._onMouseMove=function(t){if(o>=0&&(s._cubeTextureCanvas.setAreaHighlighted(o,!1),s._repaint(),o=-1),1!==t.buttons||c){if(c){var r=t.clientX,A=t.clientY;return document.body.style.cursor="move",void function(t,i){var s=(t-a)*-p,r=(i-l)*-p;e.camera.orbitYaw(s),e.camera.orbitPitch(-r),a=t,l=i}(r,A)}if(d){var h=n(t),u=i.pick({canvasPos:h,pickSurface:!0});if(u){if(u.uv){document.body.style.cursor="pointer";var g=s._cubeTextureCanvas.getArea(u.uv);if(g===o)return;o>=0&&s._cubeTextureCanvas.setAreaHighlighted(o,!1),g>=0&&(s._cubeTextureCanvas.setAreaHighlighted(g,!0),s._repaint(),o=g)}}else document.body.style.cursor="default",o>=0&&(s._cubeTextureCanvas.setAreaHighlighted(o,!1),s._repaint(),o=-1)}}});var g=function(){var t=u.vec3();return function(i,r,o){var n=s._fitVisible?e.scene.getAABB(e.scene.visibleObjectIds):e.scene.aabb,a=u.getAABB3Diag(n);u.getAABB3Center(n,t);var l=Math.abs(a/Math.tan(s._cameraFitFOV*u.DEGTORAD));e.cameraControl.pivotPos=t,s._cameraFly?e.cameraFlight.flyTo({look:t,eye:[t[0]-l*i[0],t[1]-l*i[1],t[2]-l*i[2]],up:r||[0,1,0],orthoScale:1.1*a,fitFOV:s._cameraFitFOV,duration:s._cameraFlyDuration},o):e.cameraFlight.jumpTo({look:t,eye:[t[0]-l*i[0],t[1]-l*i[1],t[2]-l*i[2]],up:r||[0,1,0],orthoScale:1.1*a,fitFOV:s._cameraFitFOV},o)}}();this._onUpdated=e.localeService.on("updated",(()=>{this._cubeTextureCanvas.clear(),this._repaint()})),this.setVisible(t.visible),this.setCameraFitFOV(t.cameraFitFOV),this.setCameraFly(t.cameraFly),this.setCameraFlyDuration(t.cameraFlyDuration),this.setFitVisible(t.fitVisible),this.setSynchProjection(t.synchProjection)}send(e,t){if("language"===e)this._cubeTextureCanvas.clear(),this._repaint()}_repaint(){const e=this._cubeTextureCanvas.getImage();this._cubeMesh.material.diffuseMap.image=e,this._cubeMesh.material.emissiveMap.image=e}setVisible(e=!0){this._navCubeCanvas&&(this._cubeMesh.visible=e,this._shadow&&(this._shadow.visible=e),this._navCubeCanvas.style.visibility=e?"visible":"hidden")}getVisible(){return!!this._navCubeCanvas&&this._cubeMesh.visible}setFitVisible(e=!1){this._fitVisible=e}getFitVisible(){return this._fitVisible}setCameraFly(e=!0){this._cameraFly=e}getCameraFly(){return this._cameraFly}setCameraFitFOV(e=45){this._cameraFitFOV=e}getCameraFitFOV(){return this._cameraFitFOV}setCameraFlyDuration(e=.5){this._cameraFlyDuration=e}getCameraFlyDuration(){return this._cameraFlyDuration}setSynchProjection(e=!1){this._synchProjection=e}getSynchProjection(){return this._synchProjection}setIsProjectNorth(e=!1){this._isProjectNorth=e}getIsProjectNorth(){return this._isProjectNorth}setProjectNorthOffsetAngle(e){this._projectNorthOffsetAngle=e}getProjectNorthOffsetAngle(){return this._projectNorthOffsetAngle}destroy(){this._navCubeCanvas&&(this.viewer.localeService.off(this._onUpdated),this.viewer.camera.off(this._onCameraMatrix),this.viewer.camera.off(this._onCameraWorldAxis),this.viewer.camera.perspective.off(this._onCameraFOV),this.viewer.camera.off(this._onCameraProjection),this._navCubeCanvas.removeEventListener("mouseenter",this._onMouseEnter),this._navCubeCanvas.removeEventListener("mouseleave",this._onMouseLeave),this._navCubeCanvas.removeEventListener("mousedown",this._onMouseDown),document.removeEventListener("mousemove",this._onMouseMove),document.removeEventListener("mouseup",this._onMouseUp),this._navCubeCanvas=null,this._cubeTextureCanvas.destroy(),this._cubeTextureCanvas=null,this._onMouseEnter=null,this._onMouseLeave=null,this._onMouseDown=null,this._onMouseMove=null,this._onMouseUp=null),this._navCubeScene.destroy(),this._navCubeScene=null,this._cubeMesh=null,this._shadow=null,super.destroy()}}u.vec3();const lv=new Float64Array([0,0,1]),Av=new Float64Array(4);class hv{constructor(e){this.id=null,this._viewer=e.viewer,this._visible=!1,this._pos=u.vec3(),this._origin=u.vec3(),this._rtcPos=u.vec3(),this._baseDir=u.vec3(),this._rootNode=null,this._displayMeshes=null,this._affordanceMeshes=null,this._ignoreNextSectionPlaneDirUpdate=!1,this._createNodes(),this._bindEvents()}_setSectionPlane(e){this._sectionPlane&&(this._sectionPlane.off(this._onSectionPlanePos),this._sectionPlane.off(this._onSectionPlaneDir),this._onSectionPlanePos=null,this._onSectionPlaneDir=null,this._sectionPlane=null),e&&(this.id=e.id,this._setPos(e.pos),this._setDir(e.dir),this._sectionPlane=e,this._onSectionPlanePos=e.on("pos",(()=>{this._setPos(this._sectionPlane.pos)})),this._onSectionPlaneDir=e.on("dir",(()=>{this._ignoreNextSectionPlaneDirUpdate?this._ignoreNextSectionPlaneDirUpdate=!1:this._setDir(this._sectionPlane.dir)})))}get sectionPlane(){return this._sectionPlane}_setPos(e){this._pos.set(e),j(this._pos,this._origin,this._rtcPos),this._rootNode.origin=this._origin,this._rootNode.position=this._rtcPos}_setDir(e){this._baseDir.set(e),this._rootNode.quaternion=u.vec3PairToQuaternion(lv,e,Av)}_setSectionPlaneDir(e){this._sectionPlane&&(this._ignoreNextSectionPlaneDirUpdate=!0,this._sectionPlane.dir=e)}setVisible(e=!0){if(this._visible!==e){var t;for(t in this._visible=e,this._displayMeshes)this._displayMeshes.hasOwnProperty(t)&&(this._displayMeshes[t].visible=e);if(!e)for(t in this._affordanceMeshes)this._affordanceMeshes.hasOwnProperty(t)&&(this._affordanceMeshes[t].visible=e)}}getVisible(){return this._visible}setCulled(e){var t;for(t in this._displayMeshes)this._displayMeshes.hasOwnProperty(t)&&(this._displayMeshes[t].culled=e);if(!e)for(t in this._affordanceMeshes)this._affordanceMeshes.hasOwnProperty(t)&&(this._affordanceMeshes[t].culled=e)}_createNodes(){const e=!1,t=this._viewer.scene,i=.01;this._rootNode=new es(t,{position:[0,0,0],scale:[5,5,5]});const s=this._rootNode,r={arrowHead:new Dt(s,ji({radiusTop:.001,radiusBottom:.07,radialSegments:32,heightSegments:1,height:.2,openEnded:!1})),arrowHeadBig:new Dt(s,ji({radiusTop:.001,radiusBottom:.09,radialSegments:32,heightSegments:1,height:.25,openEnded:!1})),arrowHeadHandle:new Dt(s,ji({radiusTop:.09,radiusBottom:.09,radialSegments:8,heightSegments:1,height:.37,openEnded:!1})),curve:new Dt(s,gs({radius:.8,tube:i,radialSegments:64,tubeSegments:14,arc:2*Math.PI/4})),curveHandle:new Dt(s,gs({radius:.8,tube:.06,radialSegments:64,tubeSegments:14,arc:2*Math.PI/4})),hoop:new Dt(s,gs({radius:.8,tube:i,radialSegments:64,tubeSegments:8,arc:2*Math.PI})),axis:new Dt(s,ji({radiusTop:i,radiusBottom:i,radialSegments:20,heightSegments:1,height:1,openEnded:!1})),axisHandle:new Dt(s,ji({radiusTop:.08,radiusBottom:.08,radialSegments:20,heightSegments:1,height:1,openEnded:!1}))},o={pickable:new Ut(s,{diffuse:[1,1,0],alpha:0,alphaMode:"blend"}),red:new Ut(s,{diffuse:[1,0,0],emissive:[1,0,0],ambient:[0,0,0],specular:[.6,.6,.3],shininess:80,lineWidth:2}),highlightRed:new Ot(s,{edges:!1,fill:!0,fillColor:[1,0,0],fillAlpha:.6}),green:new Ut(s,{diffuse:[0,1,0],emissive:[0,1,0],ambient:[0,0,0],specular:[.6,.6,.3],shininess:80,lineWidth:2}),highlightGreen:new Ot(s,{edges:!1,fill:!0,fillColor:[0,1,0],fillAlpha:.6}),blue:new Ut(s,{diffuse:[0,0,1],emissive:[0,0,1],ambient:[0,0,0],specular:[.6,.6,.3],shininess:80,lineWidth:2}),highlightBlue:new Ot(s,{edges:!1,fill:!0,fillColor:[0,0,1],fillAlpha:.2}),center:new Ut(s,{diffuse:[0,0,0],emissive:[0,0,0],ambient:[0,0,0],specular:[.6,.6,.3],shininess:80}),highlightBall:new Ot(s,{edges:!1,fill:!0,fillColor:[.5,.5,.5],fillAlpha:.5,vertices:!1}),highlightPlane:new Ot(s,{edges:!0,edgeWidth:3,fill:!1,fillColor:[.5,.5,.5],fillAlpha:.5,vertices:!1})};this._displayMeshes={plane:s.addChild(new Qi(s,{geometry:new Dt(s,{primitive:"triangles",positions:[.5,.5,0,.5,-.5,0,-.5,-.5,0,-.5,.5,0,.5,.5,-0,.5,-.5,-0,-.5,-.5,-0,-.5,.5,-0],indices:[0,1,2,2,3,0]}),material:new Ut(s,{emissive:[0,0,0],diffuse:[0,0,0],backfaces:!0}),opacity:.6,ghosted:!0,ghostMaterial:new Ot(s,{edges:!1,filled:!0,fillColor:[1,1,0],edgeColor:[0,0,0],fillAlpha:.1,backfaces:!0}),pickable:!1,collidable:!0,clippable:!1,visible:!1,scale:[2.4,2.4,1]}),e),planeFrame:s.addChild(new Qi(s,{geometry:new Dt(s,gs({center:[0,0,0],radius:1.7,tube:.02,radialSegments:4,tubeSegments:4,arc:2*Math.PI})),material:new Ut(s,{emissive:[0,0,0],diffuse:[0,0,0],specular:[0,0,0],shininess:0}),highlightMaterial:new Ot(s,{edges:!1,edgeColor:[0,0,0],filled:!0,fillColor:[.8,.8,.8],fillAlpha:1}),pickable:!1,collidable:!1,clippable:!1,visible:!1,scale:[1,1,.1],rotation:[0,0,45]}),e),xCurve:s.addChild(new Qi(s,{geometry:r.curve,material:o.red,matrix:function(){const e=u.rotationMat4v(90*u.DEGTORAD,[0,1,0],u.identityMat4()),t=u.rotationMat4v(270*u.DEGTORAD,[1,0,0],u.identityMat4());return u.mulMat4(t,e,u.identityMat4())}(),pickable:!1,collidable:!0,clippable:!1,backfaces:!0,visible:!1}),e),xCurveHandle:s.addChild(new Qi(s,{geometry:r.curveHandle,material:o.pickable,matrix:function(){const e=u.rotationMat4v(90*u.DEGTORAD,[0,1,0],u.identityMat4()),t=u.rotationMat4v(270*u.DEGTORAD,[1,0,0],u.identityMat4());return u.mulMat4(t,e,u.identityMat4())}(),pickable:!0,collidable:!0,clippable:!1,backfaces:!0,visible:!1}),e),xCurveArrow1:s.addChild(new Qi(s,{geometry:r.arrowHead,material:o.red,matrix:function(){const e=u.translateMat4c(0,-.07,-.8,u.identityMat4()),t=u.scaleMat4v([.6,.6,.6],u.identityMat4()),i=u.rotationMat4v(0*u.DEGTORAD,[0,0,1],u.identityMat4());return u.mulMat4(u.mulMat4(e,t,u.identityMat4()),i,u.identityMat4())}(),pickable:!0,collidable:!0,clippable:!1,visible:!1}),e),xCurveArrow2:s.addChild(new Qi(s,{geometry:r.arrowHead,material:o.red,matrix:function(){const e=u.translateMat4c(0,-.8,-.07,u.identityMat4()),t=u.scaleMat4v([.6,.6,.6],u.identityMat4()),i=u.rotationMat4v(90*u.DEGTORAD,[1,0,0],u.identityMat4());return u.mulMat4(u.mulMat4(e,t,u.identityMat4()),i,u.identityMat4())}(),pickable:!0,collidable:!0,clippable:!1,visible:!1}),e),yCurve:s.addChild(new Qi(s,{geometry:r.curve,material:o.green,rotation:[-90,0,0],pickable:!1,collidable:!0,clippable:!1,backfaces:!0,visible:!1}),e),yCurveHandle:s.addChild(new Qi(s,{geometry:r.curveHandle,material:o.pickable,rotation:[-90,0,0],pickable:!0,collidable:!0,clippable:!1,backfaces:!0,visible:!1}),e),yCurveArrow1:s.addChild(new Qi(s,{geometry:r.arrowHead,material:o.green,matrix:function(){const e=u.translateMat4c(.07,0,-.8,u.identityMat4()),t=u.scaleMat4v([.6,.6,.6],u.identityMat4()),i=u.rotationMat4v(90*u.DEGTORAD,[0,0,1],u.identityMat4());return u.mulMat4(u.mulMat4(e,t,u.identityMat4()),i,u.identityMat4())}(),pickable:!0,collidable:!0,clippable:!1,visible:!1}),e),yCurveArrow2:s.addChild(new Qi(s,{geometry:r.arrowHead,material:o.green,matrix:function(){const e=u.translateMat4c(.8,0,-.07,u.identityMat4()),t=u.scaleMat4v([.6,.6,.6],u.identityMat4()),i=u.rotationMat4v(90*u.DEGTORAD,[1,0,0],u.identityMat4());return u.mulMat4(u.mulMat4(e,t,u.identityMat4()),i,u.identityMat4())}(),pickable:!0,collidable:!0,clippable:!1,visible:!1}),e),zCurve:s.addChild(new Qi(s,{geometry:r.curve,material:o.blue,matrix:u.rotationMat4v(180*u.DEGTORAD,[1,0,0],u.identityMat4()),pickable:!1,collidable:!0,clippable:!1,visible:!1}),e),zCurveHandle:s.addChild(new Qi(s,{geometry:r.curveHandle,material:o.pickable,matrix:u.rotationMat4v(180*u.DEGTORAD,[1,0,0],u.identityMat4()),pickable:!0,collidable:!0,clippable:!1,visible:!1}),e),zCurveCurveArrow1:s.addChild(new Qi(s,{geometry:r.arrowHead,material:o.blue,matrix:function(){const e=u.translateMat4c(.8,-.07,0,u.identityMat4()),t=u.scaleMat4v([.6,.6,.6],u.identityMat4());return u.mulMat4(e,t,u.identityMat4())}(),pickable:!0,collidable:!0,clippable:!1,visible:!1}),e),zCurveArrow2:s.addChild(new Qi(s,{geometry:r.arrowHead,material:o.blue,matrix:function(){const e=u.translateMat4c(.05,-.8,0,u.identityMat4()),t=u.scaleMat4v([.6,.6,.6],u.identityMat4()),i=u.rotationMat4v(90*u.DEGTORAD,[0,0,1],u.identityMat4());return u.mulMat4(u.mulMat4(e,t,u.identityMat4()),i,u.identityMat4())}(),pickable:!0,collidable:!0,clippable:!1,visible:!1}),e),center:s.addChild(new Qi(s,{geometry:new Dt(s,Hi({radius:.05})),material:o.center,pickable:!1,collidable:!0,clippable:!1,visible:!1}),e),xAxisArrow:s.addChild(new Qi(s,{geometry:r.arrowHead,material:o.red,matrix:function(){const e=u.translateMat4c(0,1.1,0,u.identityMat4()),t=u.rotationMat4v(-90*u.DEGTORAD,[0,0,1],u.identityMat4());return u.mulMat4(t,e,u.identityMat4())}(),pickable:!1,collidable:!0,clippable:!1,visible:!1}),e),xAxisArrowHandle:s.addChild(new Qi(s,{geometry:r.arrowHeadHandle,material:o.pickable,matrix:function(){const e=u.translateMat4c(0,1.1,0,u.identityMat4()),t=u.rotationMat4v(-90*u.DEGTORAD,[0,0,1],u.identityMat4());return u.mulMat4(t,e,u.identityMat4())}(),pickable:!0,collidable:!0,clippable:!1,visible:!1}),e),xAxis:s.addChild(new Qi(s,{geometry:r.axis,material:o.red,matrix:function(){const e=u.translateMat4c(0,.5,0,u.identityMat4()),t=u.rotationMat4v(-90*u.DEGTORAD,[0,0,1],u.identityMat4());return u.mulMat4(t,e,u.identityMat4())}(),pickable:!1,collidable:!0,clippable:!1,visible:!1}),e),xAxisHandle:s.addChild(new Qi(s,{geometry:r.axisHandle,material:o.pickable,matrix:function(){const e=u.translateMat4c(0,.5,0,u.identityMat4()),t=u.rotationMat4v(-90*u.DEGTORAD,[0,0,1],u.identityMat4());return u.mulMat4(t,e,u.identityMat4())}(),pickable:!0,collidable:!0,clippable:!1,visible:!1}),e),yAxisArrow:s.addChild(new Qi(s,{geometry:r.arrowHead,material:o.green,matrix:function(){const e=u.translateMat4c(0,1.1,0,u.identityMat4()),t=u.rotationMat4v(180*u.DEGTORAD,[1,0,0],u.identityMat4());return u.mulMat4(t,e,u.identityMat4())}(),pickable:!1,collidable:!0,clippable:!1,visible:!1}),e),yAxisArrowHandle:s.addChild(new Qi(s,{geometry:r.arrowHeadHandle,material:o.pickable,matrix:function(){const e=u.translateMat4c(0,1.1,0,u.identityMat4()),t=u.rotationMat4v(180*u.DEGTORAD,[1,0,0],u.identityMat4());return u.mulMat4(t,e,u.identityMat4())}(),pickable:!0,collidable:!0,clippable:!1,visible:!1,opacity:.2}),e),yShaft:s.addChild(new Qi(s,{geometry:r.axis,material:o.green,position:[0,-.5,0],pickable:!1,collidable:!0,clippable:!1,visible:!1}),e),yShaftHandle:s.addChild(new Qi(s,{geometry:r.axisHandle,material:o.pickable,position:[0,-.5,0],pickable:!0,collidable:!0,clippable:!1,visible:!1}),e),zAxisArrow:s.addChild(new Qi(s,{geometry:r.arrowHead,material:o.blue,matrix:function(){const e=u.translateMat4c(0,1.1,0,u.identityMat4()),t=u.rotationMat4v(-90*u.DEGTORAD,[.8,0,0],u.identityMat4());return u.mulMat4(t,e,u.identityMat4())}(),pickable:!1,collidable:!0,clippable:!1,visible:!1}),e),zAxisArrowHandle:s.addChild(new Qi(s,{geometry:r.arrowHeadHandle,material:o.pickable,matrix:function(){const e=u.translateMat4c(0,1.1,0,u.identityMat4()),t=u.rotationMat4v(-90*u.DEGTORAD,[.8,0,0],u.identityMat4());return u.mulMat4(t,e,u.identityMat4())}(),pickable:!0,collidable:!0,clippable:!1,visible:!1}),e),zShaft:s.addChild(new Qi(s,{geometry:r.axis,material:o.blue,matrix:function(){const e=u.translateMat4c(0,.5,0,u.identityMat4()),t=u.rotationMat4v(-90*u.DEGTORAD,[1,0,0],u.identityMat4());return u.mulMat4(t,e,u.identityMat4())}(),clippable:!1,pickable:!1,collidable:!0,visible:!1}),e),zAxisHandle:s.addChild(new Qi(s,{geometry:r.axisHandle,material:o.pickable,matrix:function(){const e=u.translateMat4c(0,.5,0,u.identityMat4()),t=u.rotationMat4v(-90*u.DEGTORAD,[1,0,0],u.identityMat4());return u.mulMat4(t,e,u.identityMat4())}(),clippable:!1,pickable:!0,collidable:!0,visible:!1}),e)},this._affordanceMeshes={planeFrame:s.addChild(new Qi(s,{geometry:new Dt(s,gs({center:[0,0,0],radius:2,tube:i,radialSegments:4,tubeSegments:4,arc:2*Math.PI})),material:new Ut(s,{ambient:[1,1,1],diffuse:[0,0,0],emissive:[1,1,0]}),highlighted:!0,highlightMaterial:new Ot(s,{edges:!1,filled:!0,fillColor:[1,1,0],fillAlpha:1}),pickable:!1,collidable:!1,clippable:!1,visible:!1,scale:[1,1,1],rotation:[0,0,45]}),e),xHoop:s.addChild(new Qi(s,{geometry:r.hoop,material:o.red,highlighted:!0,highlightMaterial:o.highlightRed,matrix:function(){const e=u.rotationMat4v(90*u.DEGTORAD,[0,1,0],u.identityMat4()),t=u.rotationMat4v(270*u.DEGTORAD,[1,0,0],u.identityMat4());return u.mulMat4(t,e,u.identityMat4())}(),pickable:!1,collidable:!0,clippable:!1,visible:!1}),e),yHoop:s.addChild(new Qi(s,{geometry:r.hoop,material:o.green,highlighted:!0,highlightMaterial:o.highlightGreen,rotation:[-90,0,0],pickable:!1,collidable:!0,clippable:!1,visible:!1}),e),zHoop:s.addChild(new Qi(s,{geometry:r.hoop,material:o.blue,highlighted:!0,highlightMaterial:o.highlightBlue,matrix:u.rotationMat4v(180*u.DEGTORAD,[1,0,0],u.identityMat4()),pickable:!1,collidable:!0,clippable:!1,backfaces:!0,visible:!1}),e),xAxisArrow:s.addChild(new Qi(s,{geometry:r.arrowHeadBig,material:o.red,matrix:function(){const e=u.translateMat4c(0,1.1,0,u.identityMat4()),t=u.rotationMat4v(-90*u.DEGTORAD,[0,0,1],u.identityMat4());return u.mulMat4(t,e,u.identityMat4())}(),pickable:!1,collidable:!0,clippable:!1,visible:!1}),e),yAxisArrow:s.addChild(new Qi(s,{geometry:r.arrowHeadBig,material:o.green,matrix:function(){const e=u.translateMat4c(0,1.1,0,u.identityMat4()),t=u.rotationMat4v(180*u.DEGTORAD,[1,0,0],u.identityMat4());return u.mulMat4(t,e,u.identityMat4())}(),pickable:!1,collidable:!0,clippable:!1,visible:!1}),e),zAxisArrow:s.addChild(new Qi(s,{geometry:r.arrowHeadBig,material:o.blue,matrix:function(){const e=u.translateMat4c(0,1.1,0,u.identityMat4()),t=u.rotationMat4v(-90*u.DEGTORAD,[.8,0,0],u.identityMat4());return u.mulMat4(t,e,u.identityMat4())}(),pickable:!1,collidable:!0,clippable:!1,visible:!1}),e)}}_bindEvents(){const e=this;var t=!1;const i=-1,s=0,r=1,o=2,n=3,a=4,l=5,A=this._rootNode;var h=null,c=null;const d=u.vec2(),p=u.vec3([1,0,0]),g=u.vec3([0,1,0]),m=u.vec3([0,0,1]),f=this._viewer.scene.canvas.canvas,_=this._viewer.camera,v=this._viewer.scene;{const e=u.vec3([0,0,0]);let t=-1;this._onCameraViewMatrix=v.camera.on("viewMatrix",(()=>{})),this._onCameraProjMatrix=v.camera.on("projMatrix",(()=>{})),this._onSceneTick=v.on("tick",(()=>{const i=Math.abs(u.lenVec3(u.subVec3(v.camera.eye,this._pos,e)));if(i!==t&&"perspective"===_.projection){const e=.07*(Math.tan(_.perspective.fov*u.DEGTORAD)*i);A.scale=[e,e,e],t=i}if("ortho"===_.projection){const e=_.ortho.scale/10;A.scale=[e,e,e],t=i}}))}const b=function(){const e=new Float64Array(2);return function(t){if(t){for(var i=t.target,s=0,r=0;i.offsetParent;)s+=i.offsetLeft,r+=i.offsetTop,i=i.offsetParent;e[0]=t.pageX-s,e[1]=t.pageY-r}else t=window.event,e[0]=t.x,e[1]=t.y;return e}}(),x=function(){const t=u.mat4();return function(i,s){return u.quaternionToMat4(e._rootNode.quaternion,t),u.transformVec3(t,i,s),u.normalizeVec3(s),s}}();var w=function(){const e=u.vec3();return function(t){const i=Math.abs(t[0]);return i>Math.abs(t[1])&&i>Math.abs(t[2])?u.cross3Vec3(t,[0,1,0],e):u.cross3Vec3(t,[1,0,0],e),u.cross3Vec3(e,t,e),u.normalizeVec3(e),e}}();const y=function(){const t=u.vec3(),i=u.vec3(),s=u.vec4();return function(r,o,n){x(r,s);const a=w(s,o,n);B(o,a,t),B(n,a,i),u.subVec3(i,t);const l=u.dotVec3(i,s);e._pos[0]+=s[0]*l,e._pos[1]+=s[1]*l,e._pos[2]+=s[2]*l,e._rootNode.position=e._pos,e._sectionPlane&&(e._sectionPlane.pos=e._pos)}}();var P=function(){const t=u.vec4(),i=u.vec4(),s=u.vec4(),r=u.vec4();return function(o,n,a){x(o,r);if(!(B(n,r,t)&&B(a,r,i))){const e=w(r,n,a);B(n,e,t,1),B(a,e,i,1);var l=u.dotVec3(t,r);t[0]-=l*r[0],t[1]-=l*r[1],t[2]-=l*r[2],l=u.dotVec3(i,r),i[0]-=l*r[0],i[1]-=l*r[1],i[2]-=l*r[2]}u.normalizeVec3(t),u.normalizeVec3(i),l=u.dotVec3(t,i),l=u.clamp(l,-1,1);var A=Math.acos(l)*u.RADTODEG;u.cross3Vec3(t,i,s),u.dotVec3(s,r)<0&&(A=-A),e._rootNode.rotate(o,A),C()}}(),B=function(){const t=u.vec4([0,0,0,1]),i=u.mat4();return function(s,r,o,n){n=n||0,t[0]=s[0]/f.width*2-1,t[1]=-(s[1]/f.height*2-1),t[2]=0,t[3]=1,u.mulMat4(_.projMatrix,_.viewMatrix,i),u.inverseMat4(i),u.transformVec4(i,t,t),u.mulVec4Scalar(t,1/t[3]);var a=_.eye;u.subVec4(t,a,t);const l=e._sectionPlane.pos;var A=-u.dotVec3(l,r)-n,h=u.dotVec3(r,t);if(Math.abs(h)>.005){var c=-(u.dotVec3(r,a)+A)/h;return u.mulVec3Scalar(t,c,o),u.addVec3(o,a),u.subVec3(o,l,o),!0}return!1}}();const C=function(){const t=u.vec3(),i=u.mat4();return function(){e.sectionPlane&&(u.quaternionToMat4(A.quaternion,i),u.transformVec3(i,[0,0,1],t),e._setSectionPlaneDir(t))}}();var M,E=!1;this._onCameraControlHover=this._viewer.cameraControl.on("hoverEnter",(e=>{if(!this._visible)return;if(E)return;var A;t=!1,M&&(M.visible=!1);switch(e.entity.id){case this._displayMeshes.xAxisArrowHandle.id:case this._displayMeshes.xAxisHandle.id:A=this._affordanceMeshes.xAxisArrow,h=s;break;case this._displayMeshes.yAxisArrowHandle.id:case this._displayMeshes.yShaftHandle.id:A=this._affordanceMeshes.yAxisArrow,h=r;break;case this._displayMeshes.zAxisArrowHandle.id:case this._displayMeshes.zAxisHandle.id:A=this._affordanceMeshes.zAxisArrow,h=o;break;case this._displayMeshes.xCurveHandle.id:A=this._affordanceMeshes.xHoop,h=n;break;case this._displayMeshes.yCurveHandle.id:A=this._affordanceMeshes.yHoop,h=a;break;case this._displayMeshes.zCurveHandle.id:A=this._affordanceMeshes.zHoop,h=l;break;default:return void(h=i)}A&&(A.visible=!0),M=A,t=!0})),this._onCameraControlHoverLeave=this._viewer.cameraControl.on("hoverOutEntity",(e=>{this._visible&&(M&&(M.visible=!1),M=null,h=i)})),f.addEventListener("mousedown",this._canvasMouseDownListener=e=>{if(e.preventDefault(),this._visible&&t&&(this._viewer.cameraControl.pointerEnabled=!1,1===e.which)){E=!0;var i=b(e);c=h,d[0]=i[0],d[1]=i[1]}}),f.addEventListener("mousemove",this._canvasMouseMoveListener=e=>{if(!this._visible)return;if(!E)return;var t=b(e);const i=t[0],A=t[1];switch(c){case s:y(p,d,t);break;case r:y(g,d,t);break;case o:y(m,d,t);break;case n:P(p,d,t);break;case a:P(g,d,t);break;case l:P(m,d,t)}d[0]=i,d[1]=A}),f.addEventListener("mouseup",this._canvasMouseUpListener=e=>{this._visible&&(this._viewer.cameraControl.pointerEnabled=!0,E&&(e.which,E=!1,t=!1))}),f.addEventListener("wheel",this._canvasWheelListener=e=>{if(this._visible)Math.max(-1,Math.min(1,40*-e.deltaY))})}_destroy(){this._unbindEvents(),this._destroyNodes()}_unbindEvents(){const e=this._viewer,t=e.scene,i=t.canvas.canvas,s=e.camera,r=e.cameraControl;t.off(this._onSceneTick),i.removeEventListener("mousedown",this._canvasMouseDownListener),i.removeEventListener("mousemove",this._canvasMouseMoveListener),i.removeEventListener("mouseup",this._canvasMouseUpListener),i.removeEventListener("wheel",this._canvasWheelListener),s.off(this._onCameraViewMatrix),s.off(this._onCameraProjMatrix),r.off(this._onCameraControlHover),r.off(this._onCameraControlHoverLeave)}_destroyNodes(){this._setSectionPlane(null),this._rootNode.destroy(),this._displayMeshes={},this._affordanceMeshes={}}}class cv{constructor(e,t,i){this.id=i.id,this._sectionPlane=i,this._mesh=new Qi(t,{id:i.id,geometry:new Dt(t,St({xSize:.5,ySize:.5,zSize:.001})),material:new Ut(t,{emissive:[1,1,1],diffuse:[0,0,0],backfaces:!1}),edgeMaterial:new Qt(t,{edgeColor:[0,0,0],edgeAlpha:1,edgeWidth:1}),highlightMaterial:new Ot(t,{fill:!0,fillColor:[.5,1,.5],fillAlpha:.7,edges:!0,edgeColor:[0,0,0],edgeAlpha:1,edgeWidth:1}),selectedMaterial:new Ot(t,{fill:!0,fillColor:[0,0,1],fillAlpha:.7,edges:!0,edgeColor:[1,0,0],edgeAlpha:1,edgeWidth:1}),highlighted:!0,scale:[3,3,3],position:[0,0,0],rotation:[0,0,0],opacity:.3,edges:!0});{const e=u.vec3([0,0,0]),t=u.vec3(),i=u.vec3([0,0,1]),s=u.vec4(4),r=u.vec3(),o=()=>{const o=this._sectionPlane.scene.center,n=[-this._sectionPlane.dir[0],-this._sectionPlane.dir[1],-this._sectionPlane.dir[2]];u.subVec3(o,this._sectionPlane.pos,e);const a=-u.dotVec3(n,e);u.normalizeVec3(n),u.mulVec3Scalar(n,a,t);const l=u.vec3PairToQuaternion(i,this._sectionPlane.dir,s);r[0]=.1*t[0],r[1]=.1*t[1],r[2]=.1*t[2],this._mesh.quaternion=l,this._mesh.position=r};this._onSectionPlanePos=this._sectionPlane.on("pos",o),this._onSectionPlaneDir=this._sectionPlane.on("dir",o)}this._highlighted=!1,this._selected=!1}setHighlighted(e){this._highlighted=!!e,this._mesh.highlighted=this._highlighted,this._mesh.highlightMaterial.fillColor=e?[0,.7,0]:[0,0,0]}getHighlighted(){return this._highlighted}setSelected(e){this._selected=!!e,this._mesh.edgeMaterial.edgeWidth=e?3:1,this._mesh.highlightMaterial.edgeWidth=e?3:1}getSelected(){return this._selected}destroy(){this._sectionPlane.off(this._onSectionPlanePos),this._sectionPlane.off(this._onSectionPlaneDir),this._mesh.destroy()}}class uv{constructor(e,t){if(!(t.onHoverEnterPlane&&t.onHoverLeavePlane&&t.onClickedNothing&&t.onClickedPlane))throw"Missing config(s): onHoverEnterPlane, onHoverLeavePlane, onClickedNothing || onClickedPlane";this.plugin=e,this._viewer=e.viewer,this._onHoverEnterPlane=t.onHoverEnterPlane,this._onHoverLeavePlane=t.onHoverLeavePlane,this._onClickedNothing=t.onClickedNothing,this._onClickedPlane=t.onClickedPlane,this._visible=!0,this._planes={},this._canvas=t.overviewCanvas,this._scene=new Yt(this._viewer,{canvasId:this._canvas.id,transparent:!0}),this._scene.clearLights(),new _t(this._scene,{dir:[.4,-.4,.8],color:[.8,1,1],intensity:1,space:"view"}),new _t(this._scene,{dir:[-.8,-.3,-.4],color:[.8,.8,.8],intensity:1,space:"view"}),new _t(this._scene,{dir:[.8,-.6,-.8],color:[1,1,1],intensity:1,space:"view"}),this._scene.camera,this._scene.camera.perspective.fov=70,this._zUp=!1;{const e=this._scene.camera,t=u.rotationMat4c(-90*u.DEGTORAD,1,0,0),i=u.vec3(),s=u.vec3(),r=u.vec3();this._synchCamera=()=>{const o=this._viewer.camera.eye,n=this._viewer.camera.look,a=this._viewer.camera.up;u.mulVec3Scalar(u.normalizeVec3(u.subVec3(o,n,i)),7),this._zUp?(u.transformVec3(t,i,s),u.transformVec3(t,a,r),e.look=[0,0,0],e.eye=u.transformVec3(t,i,s),e.up=u.transformPoint3(t,a,r)):(e.look=[0,0,0],e.eye=i,e.up=a)}}this._onViewerCameraMatrix=this._viewer.camera.on("matrix",this._synchCamera),this._onViewerCameraWorldAxis=this._viewer.camera.on("worldAxis",this._synchCamera),this._onViewerCameraFOV=this._viewer.camera.perspective.on("fov",(e=>{this._scene.camera.perspective.fov=e}));var i=null;this._onInputMouseMove=this._scene.input.on("mousemove",(e=>{const t=this._scene.pick({canvasPos:e});if(t){if(!i||t.entity.id!==i.id){if(i){this._planes[i.id]&&this._onHoverLeavePlane(i.id)}i=t.entity;this._planes[i.id]&&this._onHoverEnterPlane(i.id)}}else i&&(this._onHoverLeavePlane(i.id),i=null)})),this._scene.canvas.canvas.addEventListener("mouseup",this._onCanvasMouseUp=()=>{if(i){this._planes[i.id]&&this._onClickedPlane(i.id)}else this._onClickedNothing()}),this._scene.canvas.canvas.addEventListener("mouseout",this._onCanvasMouseOut=()=>{i&&(this._onHoverLeavePlane(i.id),i=null)}),this.setVisible(t.overviewVisible)}addSectionPlane(e){this._planes[e.id]=new cv(this,this._scene,e)}setPlaneHighlighted(e,t){const i=this._planes[e];i&&i.setHighlighted(t)}setPlaneSelected(e,t){const i=this._planes[e];i&&i.setSelected(t)}removeSectionPlane(e){const t=this._planes[e.id];t&&(t.destroy(),delete this._planes[e.id])}setVisible(e=!0){this._visible=e,this._canvas.style.visibility=e?"visible":"hidden"}getVisible(){return this._visible}destroy(){this._viewer.camera.off(this._onViewerCameraMatrix),this._viewer.camera.off(this._onViewerCameraWorldAxis),this._viewer.camera.perspective.off(this._onViewerCameraFOV),this._scene.input.off(this._onInputMouseMove),this._scene.canvas.canvas.removeEventListener("mouseup",this._onCanvasMouseUp),this._scene.canvas.canvas.removeEventListener("mouseout",this._onCanvasMouseOut),this._scene.destroy()}}const dv=u.AABB3(),pv=u.vec3();class gv extends N{constructor(e,t={}){if(super("SectionPlanes",e),this._freeControls=[],this._sectionPlanes=e.scene.sectionPlanes,this._controls={},this._shownControlId=null,null!==t.overviewCanvasId&&void 0!==t.overviewCanvasId){const e=document.getElementById(t.overviewCanvasId);e?this._overview=new uv(this,{overviewCanvas:e,visible:t.overviewVisible,onHoverEnterPlane:e=>{this._overview.setPlaneHighlighted(e,!0)},onHoverLeavePlane:e=>{this._overview.setPlaneHighlighted(e,!1)},onClickedPlane:e=>{if(this.getShownControl()===e)return void this.hideControl();this.showControl(e);const t=this.sectionPlanes[e].pos;dv.set(this.viewer.scene.aabb),u.getAABB3Center(dv,pv),dv[0]+=t[0]-pv[0],dv[1]+=t[1]-pv[1],dv[2]+=t[2]-pv[2],dv[3]+=t[0]-pv[0],dv[4]+=t[1]-pv[1],dv[5]+=t[2]-pv[2],this.viewer.cameraFlight.flyTo({aabb:dv,fitFOV:65})},onClickedNothing:()=>{this.hideControl()}}):this.warn("Can't find overview canvas: '"+t.overviewCanvasId+"' - will create plugin without overview")}this._onSceneSectionPlaneCreated=e.scene.on("sectionPlaneCreated",(e=>{this._sectionPlaneCreated(e)}))}setOverviewVisible(e){this._overview&&this._overview.setVisible(e)}getOverviewVisible(){if(this._overview)return this._overview.getVisible()}get sectionPlanes(){return this._sectionPlanes}createSectionPlane(e={}){void 0!==e.id&&null!==e.id&&this.viewer.scene.components[e.id]&&(this.error("Viewer component with this ID already exists: "+e.id),delete e.id);return new zi(this.viewer.scene,{id:e.id,pos:e.pos,dir:e.dir,active:!0})}_sectionPlaneCreated(e){const t=this._freeControls.length>0?this._freeControls.pop():new hv(this);t._setSectionPlane(e),t.setVisible(!1),this._controls[e.id]=t,this._overview&&this._overview.addSectionPlane(e),e.once("destroyed",(()=>{this._sectionPlaneDestroyed(e)}))}flipSectionPlanes(){const e=this.viewer.scene.sectionPlanes;for(let t in e){e[t].flipDir()}}showControl(e){const t=this._controls[e];t?(this.hideControl(),t.setVisible(!0),this._overview&&this._overview.setPlaneSelected(e,!0),this._shownControlId=e):this.error("Control not found: "+e)}getShownControl(){return this._shownControlId}hideControl(){for(var e in this._controls)this._controls.hasOwnProperty(e)&&(this._controls[e].setVisible(!1),this._overview&&this._overview.setPlaneSelected(e,!1));this._shownControlId=null}destroySectionPlane(e){var t=this.viewer.scene.sectionPlanes[e];t?(this._sectionPlaneDestroyed(t),t.destroy(),e===this._shownControlId&&(this._shownControlId=null)):this.error("SectionPlane not found: "+e)}_sectionPlaneDestroyed(e){this._overview&&this._overview.removeSectionPlane(e);const t=this._controls[e.id];t&&(t.setVisible(!1),t._setSectionPlane(null),delete this._controls[e.id],this._freeControls.push(t))}clear(){const e=Object.keys(this._sectionPlanes);for(var t=0,i=e.length;t0){const i=document.createElement("a");i.href="#",i.id=`switch-${e.nodeId}`,i.textContent="+",i.classList.add("plus"),t&&i.addEventListener("click",t),o.appendChild(i)}const n=document.createElement("input");n.id=`checkbox-${e.nodeId}`,n.type="checkbox",n.checked=e.checked,n.style["pointer-events"]="all",i&&n.addEventListener("change",i),o.appendChild(n);const a=document.createElement("span");return a.textContent=e.title,o.appendChild(a),s&&(a.oncontextmenu=s),r&&(a.onclick=r),o}createDisabledNodeElement(e){const t=document.createElement("li"),i=document.createElement("a");i.href="#",i.textContent="!",i.classList.add("warn"),i.classList.add("warning"),t.appendChild(i);const s=document.createElement("span");return s.textContent=e,t.appendChild(s),t}addChildren(e,t){const i=document.createElement("ul");t.forEach((e=>{i.appendChild(e)})),e.parentElement.appendChild(i)}expand(e,t,i){e.classList.remove("plus"),e.classList.add("minus"),e.textContent="-",e.removeEventListener("click",t),e.addEventListener("click",i)}collapse(e,t,i){if(!e)return;const s=e.parentElement;if(!s)return;const r=s.querySelector("ul");r&&(s.removeChild(r),e.classList.remove("minus"),e.classList.add("plus"),e.textContent="+",e.removeEventListener("click",i),e.addEventListener("click",t))}isExpanded(e){return void 0!==e.parentElement.getElementsByTagName("li")[0]}getId(e){return e.parentElement.id}getIdFromCheckbox(e){return e.id.replace("checkbox-","")}getSwitchElement(e){return document.getElementById(`switch-${e}`)}isChecked(e){return e.checked}setCheckbox(e,t){const i=document.getElementById(`checkbox-${e}`);i&&t!==i.checked&&(i.checked=t)}setXRayed(e,t){const i=document.getElementById(e);i&&(t?i.classList.add("xrayed-node"):i.classList.remove("xrayed-node"))}setHighlighted(e,t){const i=document.getElementById(e);i&&(t?(i.scrollIntoView({block:"center"}),i.classList.add("highlighted-node")):i.classList.remove("highlighted-node"))}}const fv=[];class _v extends N{constructor(e,t={}){super("TreeViewPlugin",e),this.errors=[],this.valid=!0;const i=t.containerElement||document.getElementById(t.containerElementId);if(i instanceof HTMLElement){for(let e=0;;e++)if(!fv[e]){fv[e]=this,this._index=e,this._id=`tree-${e}`;break}if(this._containerElement=i,this._metaModels={},this._autoAddModels=!1!==t.autoAddModels,this._autoExpandDepth=t.autoExpandDepth||0,this._sortNodes=!1!==t.sortNodes,this._viewer=e,this._rootElement=null,this._muteSceneEvents=!1,this._muteTreeEvents=!1,this._rootNodes=[],this._objectNodes={},this._nodeNodes={},this._rootNames={},this._sortNodes=t.sortNodes,this._pruneEmptyNodes=t.pruneEmptyNodes,this._showListItemElementId=null,this._renderService=t.renderService||new mv,!this._renderService)throw new Error("TreeViewPlugin: no render service set");if(this._containerElement.oncontextmenu=e=>{e.preventDefault()},this._onObjectVisibility=this._viewer.scene.on("objectVisibility",(e=>{if(this._muteSceneEvents)return;const t=e.id,i=this._objectNodes[t];if(!i)return;const s=e.visible;if(!(s!==i.checked))return;this._muteTreeEvents=!0,i.checked=s,s?i.numVisibleEntities++:i.numVisibleEntities--,this._renderService.setCheckbox(i.nodeId,s);let r=i.parent;for(;r;)r.checked=s,s?r.numVisibleEntities++:r.numVisibleEntities--,this._renderService.setCheckbox(r.nodeId,r.numVisibleEntities>0),r=r.parent;this._muteTreeEvents=!1})),this._onObjectXrayed=this._viewer.scene.on("objectXRayed",(e=>{if(this._muteSceneEvents)return;const t=e.id,i=this._objectNodes[t];if(!i)return;this._muteTreeEvents=!0;const s=e.xrayed;s!==i.xrayed&&(i.xrayed=s,this._renderService.setXRayed(i.nodeId,s),this._muteTreeEvents=!1)})),this._switchExpandHandler=e=>{e.preventDefault(),e.stopPropagation();const t=e.target;this._expandSwitchElement(t)},this._switchCollapseHandler=e=>{e.preventDefault(),e.stopPropagation();const t=e.target;this._collapseSwitchElement(t)},this._checkboxChangeHandler=e=>{if(this._muteTreeEvents)return;this._muteSceneEvents=!0;const t=e.target,i=this._renderService.isChecked(t),s=this._renderService.getIdFromCheckbox(t),r=this._nodeNodes[s],o=this._viewer.scene.objects;let n=0;this._withNodeTree(r,(e=>{const t=e.objectId,s=o[t],r=0===e.children.length;e.numVisibleEntities=i?e.numEntities:0,r&&i!==e.checked&&n++,e.checked=i,this._renderService.setCheckbox(e.nodeId,i),s&&(s.visible=i)}));let a=r.parent;for(;a;)a.checked=i,i?a.numVisibleEntities+=n:a.numVisibleEntities-=n,this._renderService.setCheckbox(a.nodeId,a.numVisibleEntities>0),a=a.parent;this._muteSceneEvents=!1},this._hierarchy=t.hierarchy||"containment",this._autoExpandDepth=t.autoExpandDepth||0,this._autoAddModels){const e=Object.keys(this.viewer.metaScene.metaModels);for(let t=0,i=e.length;t{this.viewer.metaScene.metaModels[e]&&this.addModel(e)}))}this.hierarchy=t.hierarchy}else this.error("Mandatory config expected: valid containerElementId or containerElement")}set hierarchy(e){"containment"!==(e=e||"containment")&&"storeys"!==e&&"types"!==e&&(this.error("Unsupported value for `hierarchy' - defaulting to 'containment'"),e="containment"),this._hierarchy!==e&&(this._hierarchy=e,this._createNodes())}get hierarchy(){return this._hierarchy}addModel(e,t={}){if(!this._containerElement)return;const i=this.viewer.scene.models[e];if(!i)throw"Model not found: "+e;const s=this.viewer.metaScene.metaModels[e];s?this._metaModels[e]?this.warn("Model already added: "+e):(this._metaModels[e]=s,t&&t.rootName&&(this._rootNames[e]=t.rootName),i.on("destroyed",(()=>{this.removeModel(i.id)})),this._createNodes()):this.error("MetaModel not found: "+e)}removeModel(e){if(!this._containerElement)return;this._metaModels[e]&&(this._rootNames[e]&&delete this._rootNames[e],delete this._metaModels[e],this._createNodes())}showNode(e){this.unShowNode();const t=this._objectNodes[e];if(!t)return;const i=t.nodeId,s=this._renderService.getSwitchElement(i);if(s)return this._expandSwitchElement(s),s.scrollIntoView(),!0;const r=[];r.unshift(t);let o=t.parent;for(;o;)r.unshift(o),o=o.parent;for(let e=0,t=r.length;e{if(s===e)return;const r=this._renderService.getSwitchElement(i.nodeId);if(r){this._expandSwitchElement(r);const e=i.children;for(var o=0,n=e.length;o0;return this.valid}_validateMetaModelForStoreysHierarchy(e=0,t,i){return!0}_createEnabledNodes(){switch(this._pruneEmptyNodes&&this._findEmptyNodes(),this._hierarchy){case"storeys":this._createStoreysNodes(),0===this._rootNodes.length&&this.error("Failed to build storeys hierarchy");break;case"types":this._createTypesNodes();break;default:this._createContainmentNodes()}this._sortNodes&&this._doSortNodes(),this._synchNodesToEntities(),this._createTrees(),this.expandToDepth(this._autoExpandDepth)}_createDisabledNodes(){const e=this._renderService.createRootNode();this._rootElement=e,this._containerElement.appendChild(e);const t=this._viewer.metaScene.rootMetaObjects;for(let i in t){const s=t[i],r=s.type,o=s.name,n=o&&""!==o&&"Undefined"!==o&&"Default"!==o?o:r,a=this._renderService.createDisabledNodeElement(n);e.appendChild(a)}}_findEmptyNodes(){const e=this._viewer.metaScene.rootMetaObjects;for(let t in e)this._findEmptyNodes2(e[t])}_findEmptyNodes2(e,t=0){const i=this.viewer.scene,s=e.children,r=e.id,o=i.objects[r];if(e._countEntities=0,o&&e._countEntities++,s)for(let t=0,i=s.length;t{e.aabb&&r.aabb||(e.aabb||(e.aabb=t.getAABB(s.getObjectIDsInSubtree(e.objectId))),r.aabb||(r.aabb=t.getAABB(s.getObjectIDsInSubtree(r.objectId))));let o=0;return o=i.xUp?0:i.yUp?1:2,e.aabb[o]>r.aabb[o]?-1:e.aabb[o]s?1:0}_synchNodesToEntities(){const e=Object.keys(this.viewer.metaScene.metaObjects),t=this._viewer.metaScene.metaObjects,i=this._viewer.scene.objects;for(let s=0,r=e.length;sthis._createNodeElement(e))),t=this._renderService.createRootNode();e.forEach((e=>{t.appendChild(e)})),this._containerElement.appendChild(t),this._rootElement=t}_createNodeElement(e){return this._renderService.createNodeElement(e,this._switchExpandHandler,this._checkboxChangeHandler,(t=>{this.fire("contextmenu",{event:t,viewer:this._viewer,treeViewPlugin:this,treeViewNode:e}),t.preventDefault()}),(t=>{this.fire("nodeTitleClicked",{event:t,viewer:this._viewer,treeViewPlugin:this,treeViewNode:e}),t.preventDefault()}))}_expandSwitchElement(e){if(this._renderService.isExpanded(e))return;const t=this._renderService.getId(e),i=this._nodeNodes[t].children.map((e=>this._createNodeElement(e)));this._renderService.addChildren(e,i),this._renderService.expand(e,this._switchExpandHandler,this._switchCollapseHandler)}_collapseNode(e){const t=this._renderService.getSwitchElement(e);this._collapseSwitchElement(t)}_collapseSwitchElement(e){this._renderService.collapse(e,this._switchExpandHandler,this._switchCollapseHandler)}}class vv{constructor(){}getManifest(e,t,i){f.loadJSON(e,(e=>{t(e)}),(function(e){i(e)}))}getMetaModel(e,t,i){f.loadJSON(e,(e=>{t(e)}),(function(e){i(e)}))}getXKT(e,t,i){var s=()=>{};t=t||s,i=i||s;const r=e.match(/^data:(.*?)(;base64)?,(.*)$/);if(r){const e=!!r[2];var o=r[3];o=window.decodeURIComponent(o),e&&(o=window.atob(o));try{const e=new ArrayBuffer(o.length),i=new Uint8Array(e);for(var n=0;n=0;)e[t]=0}const i=new Uint8Array([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0]),s=new Uint8Array([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13]),r=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]),o=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),n=new Array(576);t(n);const a=new Array(60);t(a);const l=new Array(512);t(l);const A=new Array(256);t(A);const h=new Array(29);t(h);const c=new Array(30);function u(e,t,i,s,r){this.static_tree=e,this.extra_bits=t,this.extra_base=i,this.elems=s,this.max_length=r,this.has_stree=e&&e.length}let d,p,g;function m(e,t){this.dyn_tree=e,this.max_code=0,this.stat_desc=t}t(c);const f=e=>e<256?l[e]:l[256+(e>>>7)],_=(e,t)=>{e.pending_buf[e.pending++]=255&t,e.pending_buf[e.pending++]=t>>>8&255},v=(e,t,i)=>{e.bi_valid>16-i?(e.bi_buf|=t<>16-e.bi_valid,e.bi_valid+=i-16):(e.bi_buf|=t<{v(e,i[2*t],i[2*t+1])},x=(e,t)=>{let i=0;do{i|=1&e,e>>>=1,i<<=1}while(--t>0);return i>>>1},w=(e,t,i)=>{const s=new Array(16);let r,o,n=0;for(r=1;r<=15;r++)n=n+i[r-1]<<1,s[r]=n;for(o=0;o<=t;o++){let t=e[2*o+1];0!==t&&(e[2*o]=x(s[t]++,t))}},y=e=>{let t;for(t=0;t<286;t++)e.dyn_ltree[2*t]=0;for(t=0;t<30;t++)e.dyn_dtree[2*t]=0;for(t=0;t<19;t++)e.bl_tree[2*t]=0;e.dyn_ltree[512]=1,e.opt_len=e.static_len=0,e.sym_next=e.matches=0},P=e=>{e.bi_valid>8?_(e,e.bi_buf):e.bi_valid>0&&(e.pending_buf[e.pending++]=e.bi_buf),e.bi_buf=0,e.bi_valid=0},B=(e,t,i,s)=>{const r=2*t,o=2*i;return e[r]{const s=e.heap[i];let r=i<<1;for(;r<=e.heap_len&&(r{let o,n,a,l,u=0;if(0!==e.sym_next)do{o=255&e.pending_buf[e.sym_buf+u++],o+=(255&e.pending_buf[e.sym_buf+u++])<<8,n=e.pending_buf[e.sym_buf+u++],0===o?b(e,n,t):(a=A[n],b(e,a+256+1,t),l=i[a],0!==l&&(n-=h[a],v(e,n,l)),o--,a=f(o),b(e,a,r),l=s[a],0!==l&&(o-=c[a],v(e,o,l)))}while(u{const i=t.dyn_tree,s=t.stat_desc.static_tree,r=t.stat_desc.has_stree,o=t.stat_desc.elems;let n,a,l,A=-1;for(e.heap_len=0,e.heap_max=573,n=0;n>1;n>=1;n--)C(e,i,n);l=o;do{n=e.heap[1],e.heap[1]=e.heap[e.heap_len--],C(e,i,1),a=e.heap[1],e.heap[--e.heap_max]=n,e.heap[--e.heap_max]=a,i[2*l]=i[2*n]+i[2*a],e.depth[l]=(e.depth[n]>=e.depth[a]?e.depth[n]:e.depth[a])+1,i[2*n+1]=i[2*a+1]=l,e.heap[1]=l++,C(e,i,1)}while(e.heap_len>=2);e.heap[--e.heap_max]=e.heap[1],((e,t)=>{const i=t.dyn_tree,s=t.max_code,r=t.stat_desc.static_tree,o=t.stat_desc.has_stree,n=t.stat_desc.extra_bits,a=t.stat_desc.extra_base,l=t.stat_desc.max_length;let A,h,c,u,d,p,g=0;for(u=0;u<=15;u++)e.bl_count[u]=0;for(i[2*e.heap[e.heap_max]+1]=0,A=e.heap_max+1;A<573;A++)h=e.heap[A],u=i[2*i[2*h+1]+1]+1,u>l&&(u=l,g++),i[2*h+1]=u,h>s||(e.bl_count[u]++,d=0,h>=a&&(d=n[h-a]),p=i[2*h],e.opt_len+=p*(u+d),o&&(e.static_len+=p*(r[2*h+1]+d)));if(0!==g){do{for(u=l-1;0===e.bl_count[u];)u--;e.bl_count[u]--,e.bl_count[u+1]+=2,e.bl_count[l]--,g-=2}while(g>0);for(u=l;0!==u;u--)for(h=e.bl_count[u];0!==h;)c=e.heap[--A],c>s||(i[2*c+1]!==u&&(e.opt_len+=(u-i[2*c+1])*i[2*c],i[2*c+1]=u),h--)}})(e,t),w(i,A,e.bl_count)},F=(e,t,i)=>{let s,r,o=-1,n=t[1],a=0,l=7,A=4;for(0===n&&(l=138,A=3),t[2*(i+1)+1]=65535,s=0;s<=i;s++)r=n,n=t[2*(s+1)+1],++a{let s,r,o=-1,n=t[1],a=0,l=7,A=4;for(0===n&&(l=138,A=3),s=0;s<=i;s++)if(r=n,n=t[2*(s+1)+1],!(++a{v(e,0+(s?1:0),3),P(e),_(e,i),_(e,~i),i&&e.pending_buf.set(e.window.subarray(t,t+i),e.pending),e.pending+=i};var T={_tr_init:e=>{D||((()=>{let e,t,o,m,f;const _=new Array(16);for(o=0,m=0;m<28;m++)for(h[m]=o,e=0;e<1<>=7;m<30;m++)for(c[m]=f<<7,e=0;e<1<{let r,l,A=0;e.level>0?(2===e.strm.data_type&&(e.strm.data_type=(e=>{let t,i=4093624447;for(t=0;t<=31;t++,i>>>=1)if(1&i&&0!==e.dyn_ltree[2*t])return 0;if(0!==e.dyn_ltree[18]||0!==e.dyn_ltree[20]||0!==e.dyn_ltree[26])return 1;for(t=32;t<256;t++)if(0!==e.dyn_ltree[2*t])return 1;return 0})(e)),E(e,e.l_desc),E(e,e.d_desc),A=(e=>{let t;for(F(e,e.dyn_ltree,e.l_desc.max_code),F(e,e.dyn_dtree,e.d_desc.max_code),E(e,e.bl_desc),t=18;t>=3&&0===e.bl_tree[2*o[t]+1];t--);return e.opt_len+=3*(t+1)+5+5+4,t})(e),r=e.opt_len+3+7>>>3,l=e.static_len+3+7>>>3,l<=r&&(r=l)):r=l=i+5,i+4<=r&&-1!==t?S(e,t,i,s):4===e.strategy||l===r?(v(e,2+(s?1:0),3),M(e,n,a)):(v(e,4+(s?1:0),3),((e,t,i,s)=>{let r;for(v(e,t-257,5),v(e,i-1,5),v(e,s-4,4),r=0;r(e.pending_buf[e.sym_buf+e.sym_next++]=t,e.pending_buf[e.sym_buf+e.sym_next++]=t>>8,e.pending_buf[e.sym_buf+e.sym_next++]=i,0===t?e.dyn_ltree[2*i]++:(e.matches++,t--,e.dyn_ltree[2*(A[i]+256+1)]++,e.dyn_dtree[2*f(t)]++),e.sym_next===e.sym_end),_tr_align:e=>{v(e,2,3),b(e,256,n),(e=>{16===e.bi_valid?(_(e,e.bi_buf),e.bi_buf=0,e.bi_valid=0):e.bi_valid>=8&&(e.pending_buf[e.pending++]=255&e.bi_buf,e.bi_buf>>=8,e.bi_valid-=8)})(e)}},R=(e,t,i,s)=>{let r=65535&e|0,o=e>>>16&65535|0,n=0;for(;0!==i;){n=i>2e3?2e3:i,i-=n;do{r=r+t[s++]|0,o=o+r|0}while(--n);r%=65521,o%=65521}return r|o<<16|0};const L=new Uint32Array((()=>{let e,t=[];for(var i=0;i<256;i++){e=i;for(var s=0;s<8;s++)e=1&e?3988292384^e>>>1:e>>>1;t[i]=e}return t})());var U=(e,t,i,s)=>{const r=L,o=s+i;e^=-1;for(let i=s;i>>8^r[255&(e^t[i])];return-1^e},k={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"},O={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_MEM_ERROR:-4,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8};const{_tr_init:N,_tr_stored_block:Q,_tr_flush_block:V,_tr_tally:j,_tr_align:H}=T,{Z_NO_FLUSH:z,Z_PARTIAL_FLUSH:G,Z_FULL_FLUSH:W,Z_FINISH:K,Z_BLOCK:X,Z_OK:Y,Z_STREAM_END:q,Z_STREAM_ERROR:Z,Z_DATA_ERROR:J,Z_BUF_ERROR:$,Z_DEFAULT_COMPRESSION:ee,Z_FILTERED:te,Z_HUFFMAN_ONLY:ie,Z_RLE:se,Z_FIXED:re,Z_DEFAULT_STRATEGY:oe,Z_UNKNOWN:ne,Z_DEFLATED:ae}=O,le=258,Ae=262,he=42,ce=113,ue=666,de=(e,t)=>(e.msg=k[t],t),pe=e=>2*e-(e>4?9:0),ge=e=>{let t=e.length;for(;--t>=0;)e[t]=0},me=e=>{let t,i,s,r=e.w_size;t=e.hash_size,s=t;do{i=e.head[--s],e.head[s]=i>=r?i-r:0}while(--t);t=r,s=t;do{i=e.prev[--s],e.prev[s]=i>=r?i-r:0}while(--t)};let fe=(e,t,i)=>(t<{const t=e.state;let i=t.pending;i>e.avail_out&&(i=e.avail_out),0!==i&&(e.output.set(t.pending_buf.subarray(t.pending_out,t.pending_out+i),e.next_out),e.next_out+=i,t.pending_out+=i,e.total_out+=i,e.avail_out-=i,t.pending-=i,0===t.pending&&(t.pending_out=0))},ve=(e,t)=>{V(e,e.block_start>=0?e.block_start:-1,e.strstart-e.block_start,t),e.block_start=e.strstart,_e(e.strm)},be=(e,t)=>{e.pending_buf[e.pending++]=t},xe=(e,t)=>{e.pending_buf[e.pending++]=t>>>8&255,e.pending_buf[e.pending++]=255&t},we=(e,t,i,s)=>{let r=e.avail_in;return r>s&&(r=s),0===r?0:(e.avail_in-=r,t.set(e.input.subarray(e.next_in,e.next_in+r),i),1===e.state.wrap?e.adler=R(e.adler,t,r,i):2===e.state.wrap&&(e.adler=U(e.adler,t,r,i)),e.next_in+=r,e.total_in+=r,r)},ye=(e,t)=>{let i,s,r=e.max_chain_length,o=e.strstart,n=e.prev_length,a=e.nice_match;const l=e.strstart>e.w_size-Ae?e.strstart-(e.w_size-Ae):0,A=e.window,h=e.w_mask,c=e.prev,u=e.strstart+le;let d=A[o+n-1],p=A[o+n];e.prev_length>=e.good_match&&(r>>=2),a>e.lookahead&&(a=e.lookahead);do{if(i=t,A[i+n]===p&&A[i+n-1]===d&&A[i]===A[o]&&A[++i]===A[o+1]){o+=2,i++;do{}while(A[++o]===A[++i]&&A[++o]===A[++i]&&A[++o]===A[++i]&&A[++o]===A[++i]&&A[++o]===A[++i]&&A[++o]===A[++i]&&A[++o]===A[++i]&&A[++o]===A[++i]&&on){if(e.match_start=t,n=s,s>=a)break;d=A[o+n-1],p=A[o+n]}}}while((t=c[t&h])>l&&0!=--r);return n<=e.lookahead?n:e.lookahead},Pe=e=>{const t=e.w_size;let i,s,r;do{if(s=e.window_size-e.lookahead-e.strstart,e.strstart>=t+(t-Ae)&&(e.window.set(e.window.subarray(t,t+t-s),0),e.match_start-=t,e.strstart-=t,e.block_start-=t,e.insert>e.strstart&&(e.insert=e.strstart),me(e),s+=t),0===e.strm.avail_in)break;if(i=we(e.strm,e.window,e.strstart+e.lookahead,s),e.lookahead+=i,e.lookahead+e.insert>=3)for(r=e.strstart-e.insert,e.ins_h=e.window[r],e.ins_h=fe(e,e.ins_h,e.window[r+1]);e.insert&&(e.ins_h=fe(e,e.ins_h,e.window[r+3-1]),e.prev[r&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=r,r++,e.insert--,!(e.lookahead+e.insert<3)););}while(e.lookahead{let i,s,r,o=e.pending_buf_size-5>e.w_size?e.w_size:e.pending_buf_size-5,n=0,a=e.strm.avail_in;do{if(i=65535,r=e.bi_valid+42>>3,e.strm.avail_outs+e.strm.avail_in&&(i=s+e.strm.avail_in),i>r&&(i=r),i>8,e.pending_buf[e.pending-2]=~i,e.pending_buf[e.pending-1]=~i>>8,_e(e.strm),s&&(s>i&&(s=i),e.strm.output.set(e.window.subarray(e.block_start,e.block_start+s),e.strm.next_out),e.strm.next_out+=s,e.strm.avail_out-=s,e.strm.total_out+=s,e.block_start+=s,i-=s),i&&(we(e.strm,e.strm.output,e.strm.next_out,i),e.strm.next_out+=i,e.strm.avail_out-=i,e.strm.total_out+=i)}while(0===n);return a-=e.strm.avail_in,a&&(a>=e.w_size?(e.matches=2,e.window.set(e.strm.input.subarray(e.strm.next_in-e.w_size,e.strm.next_in),0),e.strstart=e.w_size,e.insert=e.strstart):(e.window_size-e.strstart<=a&&(e.strstart-=e.w_size,e.window.set(e.window.subarray(e.w_size,e.w_size+e.strstart),0),e.matches<2&&e.matches++,e.insert>e.strstart&&(e.insert=e.strstart)),e.window.set(e.strm.input.subarray(e.strm.next_in-a,e.strm.next_in),e.strstart),e.strstart+=a,e.insert+=a>e.w_size-e.insert?e.w_size-e.insert:a),e.block_start=e.strstart),e.high_waterr&&e.block_start>=e.w_size&&(e.block_start-=e.w_size,e.strstart-=e.w_size,e.window.set(e.window.subarray(e.w_size,e.w_size+e.strstart),0),e.matches<2&&e.matches++,r+=e.w_size,e.insert>e.strstart&&(e.insert=e.strstart)),r>e.strm.avail_in&&(r=e.strm.avail_in),r&&(we(e.strm,e.window,e.strstart,r),e.strstart+=r,e.insert+=r>e.w_size-e.insert?e.w_size-e.insert:r),e.high_water>3,r=e.pending_buf_size-r>65535?65535:e.pending_buf_size-r,o=r>e.w_size?e.w_size:r,s=e.strstart-e.block_start,(s>=o||(s||t===K)&&t!==z&&0===e.strm.avail_in&&s<=r)&&(i=s>r?r:s,n=t===K&&0===e.strm.avail_in&&i===s?1:0,Q(e,e.block_start,i,n),e.block_start+=i,_e(e.strm)),n?3:1)},Ce=(e,t)=>{let i,s;for(;;){if(e.lookahead=3&&(e.ins_h=fe(e,e.ins_h,e.window[e.strstart+3-1]),i=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),0!==i&&e.strstart-i<=e.w_size-Ae&&(e.match_length=ye(e,i)),e.match_length>=3)if(s=j(e,e.strstart-e.match_start,e.match_length-3),e.lookahead-=e.match_length,e.match_length<=e.max_lazy_match&&e.lookahead>=3){e.match_length--;do{e.strstart++,e.ins_h=fe(e,e.ins_h,e.window[e.strstart+3-1]),i=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart}while(0!=--e.match_length);e.strstart++}else e.strstart+=e.match_length,e.match_length=0,e.ins_h=e.window[e.strstart],e.ins_h=fe(e,e.ins_h,e.window[e.strstart+1]);else s=j(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++;if(s&&(ve(e,!1),0===e.strm.avail_out))return 1}return e.insert=e.strstart<2?e.strstart:2,t===K?(ve(e,!0),0===e.strm.avail_out?3:4):e.sym_next&&(ve(e,!1),0===e.strm.avail_out)?1:2},Me=(e,t)=>{let i,s,r;for(;;){if(e.lookahead=3&&(e.ins_h=fe(e,e.ins_h,e.window[e.strstart+3-1]),i=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),e.prev_length=e.match_length,e.prev_match=e.match_start,e.match_length=2,0!==i&&e.prev_length4096)&&(e.match_length=2)),e.prev_length>=3&&e.match_length<=e.prev_length){r=e.strstart+e.lookahead-3,s=j(e,e.strstart-1-e.prev_match,e.prev_length-3),e.lookahead-=e.prev_length-1,e.prev_length-=2;do{++e.strstart<=r&&(e.ins_h=fe(e,e.ins_h,e.window[e.strstart+3-1]),i=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart)}while(0!=--e.prev_length);if(e.match_available=0,e.match_length=2,e.strstart++,s&&(ve(e,!1),0===e.strm.avail_out))return 1}else if(e.match_available){if(s=j(e,0,e.window[e.strstart-1]),s&&ve(e,!1),e.strstart++,e.lookahead--,0===e.strm.avail_out)return 1}else e.match_available=1,e.strstart++,e.lookahead--}return e.match_available&&(s=j(e,0,e.window[e.strstart-1]),e.match_available=0),e.insert=e.strstart<2?e.strstart:2,t===K?(ve(e,!0),0===e.strm.avail_out?3:4):e.sym_next&&(ve(e,!1),0===e.strm.avail_out)?1:2};function Ee(e,t,i,s,r){this.good_length=e,this.max_lazy=t,this.nice_length=i,this.max_chain=s,this.func=r}const Fe=[new Ee(0,0,0,0,Be),new Ee(4,4,8,4,Ce),new Ee(4,5,16,8,Ce),new Ee(4,6,32,32,Ce),new Ee(4,4,16,16,Me),new Ee(8,16,32,32,Me),new Ee(8,16,128,128,Me),new Ee(8,32,128,256,Me),new Ee(32,128,258,1024,Me),new Ee(32,258,258,4096,Me)];function Ie(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=ae,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new Uint16Array(1146),this.dyn_dtree=new Uint16Array(122),this.bl_tree=new Uint16Array(78),ge(this.dyn_ltree),ge(this.dyn_dtree),ge(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new Uint16Array(16),this.heap=new Uint16Array(573),ge(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new Uint16Array(573),ge(this.depth),this.sym_buf=0,this.lit_bufsize=0,this.sym_next=0,this.sym_end=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}const De=e=>{if(!e)return 1;const t=e.state;return!t||t.strm!==e||t.status!==he&&57!==t.status&&69!==t.status&&73!==t.status&&91!==t.status&&103!==t.status&&t.status!==ce&&t.status!==ue?1:0},Se=e=>{if(De(e))return de(e,Z);e.total_in=e.total_out=0,e.data_type=ne;const t=e.state;return t.pending=0,t.pending_out=0,t.wrap<0&&(t.wrap=-t.wrap),t.status=2===t.wrap?57:t.wrap?he:ce,e.adler=2===t.wrap?0:1,t.last_flush=-2,N(t),Y},Te=e=>{const t=Se(e);var i;return t===Y&&((i=e.state).window_size=2*i.w_size,ge(i.head),i.max_lazy_match=Fe[i.level].max_lazy,i.good_match=Fe[i.level].good_length,i.nice_match=Fe[i.level].nice_length,i.max_chain_length=Fe[i.level].max_chain,i.strstart=0,i.block_start=0,i.lookahead=0,i.insert=0,i.match_length=i.prev_length=2,i.match_available=0,i.ins_h=0),t},Re=(e,t,i,s,r,o)=>{if(!e)return Z;let n=1;if(t===ee&&(t=6),s<0?(n=0,s=-s):s>15&&(n=2,s-=16),r<1||r>9||i!==ae||s<8||s>15||t<0||t>9||o<0||o>re||8===s&&1!==n)return de(e,Z);8===s&&(s=9);const a=new Ie;return e.state=a,a.strm=e,a.status=he,a.wrap=n,a.gzhead=null,a.w_bits=s,a.w_size=1<De(e)||2!==e.state.wrap?Z:(e.state.gzhead=t,Y),ke=(e,t)=>{if(De(e)||t>X||t<0)return e?de(e,Z):Z;const i=e.state;if(!e.output||0!==e.avail_in&&!e.input||i.status===ue&&t!==K)return de(e,0===e.avail_out?$:Z);const s=i.last_flush;if(i.last_flush=t,0!==i.pending){if(_e(e),0===e.avail_out)return i.last_flush=-1,Y}else if(0===e.avail_in&&pe(t)<=pe(s)&&t!==K)return de(e,$);if(i.status===ue&&0!==e.avail_in)return de(e,$);if(i.status===he&&0===i.wrap&&(i.status=ce),i.status===he){let t=ae+(i.w_bits-8<<4)<<8,s=-1;if(s=i.strategy>=ie||i.level<2?0:i.level<6?1:6===i.level?2:3,t|=s<<6,0!==i.strstart&&(t|=32),t+=31-t%31,xe(i,t),0!==i.strstart&&(xe(i,e.adler>>>16),xe(i,65535&e.adler)),e.adler=1,i.status=ce,_e(e),0!==i.pending)return i.last_flush=-1,Y}if(57===i.status)if(e.adler=0,be(i,31),be(i,139),be(i,8),i.gzhead)be(i,(i.gzhead.text?1:0)+(i.gzhead.hcrc?2:0)+(i.gzhead.extra?4:0)+(i.gzhead.name?8:0)+(i.gzhead.comment?16:0)),be(i,255&i.gzhead.time),be(i,i.gzhead.time>>8&255),be(i,i.gzhead.time>>16&255),be(i,i.gzhead.time>>24&255),be(i,9===i.level?2:i.strategy>=ie||i.level<2?4:0),be(i,255&i.gzhead.os),i.gzhead.extra&&i.gzhead.extra.length&&(be(i,255&i.gzhead.extra.length),be(i,i.gzhead.extra.length>>8&255)),i.gzhead.hcrc&&(e.adler=U(e.adler,i.pending_buf,i.pending,0)),i.gzindex=0,i.status=69;else if(be(i,0),be(i,0),be(i,0),be(i,0),be(i,0),be(i,9===i.level?2:i.strategy>=ie||i.level<2?4:0),be(i,3),i.status=ce,_e(e),0!==i.pending)return i.last_flush=-1,Y;if(69===i.status){if(i.gzhead.extra){let t=i.pending,s=(65535&i.gzhead.extra.length)-i.gzindex;for(;i.pending+s>i.pending_buf_size;){let r=i.pending_buf_size-i.pending;if(i.pending_buf.set(i.gzhead.extra.subarray(i.gzindex,i.gzindex+r),i.pending),i.pending=i.pending_buf_size,i.gzhead.hcrc&&i.pending>t&&(e.adler=U(e.adler,i.pending_buf,i.pending-t,t)),i.gzindex+=r,_e(e),0!==i.pending)return i.last_flush=-1,Y;t=0,s-=r}let r=new Uint8Array(i.gzhead.extra);i.pending_buf.set(r.subarray(i.gzindex,i.gzindex+s),i.pending),i.pending+=s,i.gzhead.hcrc&&i.pending>t&&(e.adler=U(e.adler,i.pending_buf,i.pending-t,t)),i.gzindex=0}i.status=73}if(73===i.status){if(i.gzhead.name){let t,s=i.pending;do{if(i.pending===i.pending_buf_size){if(i.gzhead.hcrc&&i.pending>s&&(e.adler=U(e.adler,i.pending_buf,i.pending-s,s)),_e(e),0!==i.pending)return i.last_flush=-1,Y;s=0}t=i.gzindexs&&(e.adler=U(e.adler,i.pending_buf,i.pending-s,s)),i.gzindex=0}i.status=91}if(91===i.status){if(i.gzhead.comment){let t,s=i.pending;do{if(i.pending===i.pending_buf_size){if(i.gzhead.hcrc&&i.pending>s&&(e.adler=U(e.adler,i.pending_buf,i.pending-s,s)),_e(e),0!==i.pending)return i.last_flush=-1,Y;s=0}t=i.gzindexs&&(e.adler=U(e.adler,i.pending_buf,i.pending-s,s))}i.status=103}if(103===i.status){if(i.gzhead.hcrc){if(i.pending+2>i.pending_buf_size&&(_e(e),0!==i.pending))return i.last_flush=-1,Y;be(i,255&e.adler),be(i,e.adler>>8&255),e.adler=0}if(i.status=ce,_e(e),0!==i.pending)return i.last_flush=-1,Y}if(0!==e.avail_in||0!==i.lookahead||t!==z&&i.status!==ue){let s=0===i.level?Be(i,t):i.strategy===ie?((e,t)=>{let i;for(;;){if(0===e.lookahead&&(Pe(e),0===e.lookahead)){if(t===z)return 1;break}if(e.match_length=0,i=j(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++,i&&(ve(e,!1),0===e.strm.avail_out))return 1}return e.insert=0,t===K?(ve(e,!0),0===e.strm.avail_out?3:4):e.sym_next&&(ve(e,!1),0===e.strm.avail_out)?1:2})(i,t):i.strategy===se?((e,t)=>{let i,s,r,o;const n=e.window;for(;;){if(e.lookahead<=le){if(Pe(e),e.lookahead<=le&&t===z)return 1;if(0===e.lookahead)break}if(e.match_length=0,e.lookahead>=3&&e.strstart>0&&(r=e.strstart-1,s=n[r],s===n[++r]&&s===n[++r]&&s===n[++r])){o=e.strstart+le;do{}while(s===n[++r]&&s===n[++r]&&s===n[++r]&&s===n[++r]&&s===n[++r]&&s===n[++r]&&s===n[++r]&&s===n[++r]&&re.lookahead&&(e.match_length=e.lookahead)}if(e.match_length>=3?(i=j(e,1,e.match_length-3),e.lookahead-=e.match_length,e.strstart+=e.match_length,e.match_length=0):(i=j(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++),i&&(ve(e,!1),0===e.strm.avail_out))return 1}return e.insert=0,t===K?(ve(e,!0),0===e.strm.avail_out?3:4):e.sym_next&&(ve(e,!1),0===e.strm.avail_out)?1:2})(i,t):Fe[i.level].func(i,t);if(3!==s&&4!==s||(i.status=ue),1===s||3===s)return 0===e.avail_out&&(i.last_flush=-1),Y;if(2===s&&(t===G?H(i):t!==X&&(Q(i,0,0,!1),t===W&&(ge(i.head),0===i.lookahead&&(i.strstart=0,i.block_start=0,i.insert=0))),_e(e),0===e.avail_out))return i.last_flush=-1,Y}return t!==K?Y:i.wrap<=0?q:(2===i.wrap?(be(i,255&e.adler),be(i,e.adler>>8&255),be(i,e.adler>>16&255),be(i,e.adler>>24&255),be(i,255&e.total_in),be(i,e.total_in>>8&255),be(i,e.total_in>>16&255),be(i,e.total_in>>24&255)):(xe(i,e.adler>>>16),xe(i,65535&e.adler)),_e(e),i.wrap>0&&(i.wrap=-i.wrap),0!==i.pending?Y:q)},Oe=e=>{if(De(e))return Z;const t=e.state.status;return e.state=null,t===ce?de(e,J):Y},Ne=(e,t)=>{let i=t.length;if(De(e))return Z;const s=e.state,r=s.wrap;if(2===r||1===r&&s.status!==he||s.lookahead)return Z;if(1===r&&(e.adler=R(e.adler,t,i,0)),s.wrap=0,i>=s.w_size){0===r&&(ge(s.head),s.strstart=0,s.block_start=0,s.insert=0);let e=new Uint8Array(s.w_size);e.set(t.subarray(i-s.w_size,i),0),t=e,i=s.w_size}const o=e.avail_in,n=e.next_in,a=e.input;for(e.avail_in=i,e.next_in=0,e.input=t,Pe(s);s.lookahead>=3;){let e=s.strstart,t=s.lookahead-2;do{s.ins_h=fe(s,s.ins_h,s.window[e+3-1]),s.prev[e&s.w_mask]=s.head[s.ins_h],s.head[s.ins_h]=e,e++}while(--t);s.strstart=e,s.lookahead=2,Pe(s)}return s.strstart+=s.lookahead,s.block_start=s.strstart,s.insert=s.lookahead,s.lookahead=0,s.match_length=s.prev_length=2,s.match_available=0,e.next_in=n,e.input=a,e.avail_in=o,s.wrap=r,Y};const Qe=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var Ve=function(e){const t=Array.prototype.slice.call(arguments,1);for(;t.length;){const i=t.shift();if(i){if("object"!=typeof i)throw new TypeError(i+"must be non-object");for(const t in i)Qe(i,t)&&(e[t]=i[t])}}return e},je=e=>{let t=0;for(let i=0,s=e.length;i=252?6:e>=248?5:e>=240?4:e>=224?3:e>=192?2:1;ze[254]=ze[254]=1;var Ge=e=>{if("function"==typeof TextEncoder&&TextEncoder.prototype.encode)return(new TextEncoder).encode(e);let t,i,s,r,o,n=e.length,a=0;for(r=0;r>>6,t[o++]=128|63&i):i<65536?(t[o++]=224|i>>>12,t[o++]=128|i>>>6&63,t[o++]=128|63&i):(t[o++]=240|i>>>18,t[o++]=128|i>>>12&63,t[o++]=128|i>>>6&63,t[o++]=128|63&i);return t},We=(e,t)=>{const i=t||e.length;if("function"==typeof TextDecoder&&TextDecoder.prototype.decode)return(new TextDecoder).decode(e.subarray(0,t));let s,r;const o=new Array(2*i);for(r=0,s=0;s4)o[r++]=65533,s+=n-1;else{for(t&=2===n?31:3===n?15:7;n>1&&s1?o[r++]=65533:t<65536?o[r++]=t:(t-=65536,o[r++]=55296|t>>10&1023,o[r++]=56320|1023&t)}}return((e,t)=>{if(t<65534&&e.subarray&&He)return String.fromCharCode.apply(null,e.length===t?e:e.subarray(0,t));let i="";for(let s=0;s{(t=t||e.length)>e.length&&(t=e.length);let i=t-1;for(;i>=0&&128==(192&e[i]);)i--;return i<0||0===i?t:i+ze[e[i]]>t?i:t},Xe=function(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0};const Ye=Object.prototype.toString,{Z_NO_FLUSH:qe,Z_SYNC_FLUSH:Ze,Z_FULL_FLUSH:Je,Z_FINISH:$e,Z_OK:et,Z_STREAM_END:tt,Z_DEFAULT_COMPRESSION:it,Z_DEFAULT_STRATEGY:st,Z_DEFLATED:rt}=O;function ot(e){this.options=Ve({level:it,method:rt,chunkSize:16384,windowBits:15,memLevel:8,strategy:st},e||{});let t=this.options;t.raw&&t.windowBits>0?t.windowBits=-t.windowBits:t.gzip&&t.windowBits>0&&t.windowBits<16&&(t.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new Xe,this.strm.avail_out=0;let i=Le(this.strm,t.level,t.method,t.windowBits,t.memLevel,t.strategy);if(i!==et)throw new Error(k[i]);if(t.header&&Ue(this.strm,t.header),t.dictionary){let e;if(e="string"==typeof t.dictionary?Ge(t.dictionary):"[object ArrayBuffer]"===Ye.call(t.dictionary)?new Uint8Array(t.dictionary):t.dictionary,i=Ne(this.strm,e),i!==et)throw new Error(k[i]);this._dict_set=!0}}function nt(e,t){const i=new ot(t);if(i.push(e,!0),i.err)throw i.msg||k[i.err];return i.result}ot.prototype.push=function(e,t){const i=this.strm,s=this.options.chunkSize;let r,o;if(this.ended)return!1;for(o=t===~~t?t:!0===t?$e:qe,"string"==typeof e?i.input=Ge(e):"[object ArrayBuffer]"===Ye.call(e)?i.input=new Uint8Array(e):i.input=e,i.next_in=0,i.avail_in=i.input.length;;)if(0===i.avail_out&&(i.output=new Uint8Array(s),i.next_out=0,i.avail_out=s),(o===Ze||o===Je)&&i.avail_out<=6)this.onData(i.output.subarray(0,i.next_out)),i.avail_out=0;else{if(r=ke(i,o),r===tt)return i.next_out>0&&this.onData(i.output.subarray(0,i.next_out)),r=Oe(this.strm),this.onEnd(r),this.ended=!0,r===et;if(0!==i.avail_out){if(o>0&&i.next_out>0)this.onData(i.output.subarray(0,i.next_out)),i.avail_out=0;else if(0===i.avail_in)break}else this.onData(i.output)}return!0},ot.prototype.onData=function(e){this.chunks.push(e)},ot.prototype.onEnd=function(e){e===et&&(this.result=je(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg};var at={Deflate:ot,deflate:nt,deflateRaw:function(e,t){return(t=t||{}).raw=!0,nt(e,t)},gzip:function(e,t){return(t=t||{}).gzip=!0,nt(e,t)},constants:O};const lt=16209;var At=function(e,t){let i,s,r,o,n,a,l,A,h,c,u,d,p,g,m,f,_,v,b,x,w,y,P,B;const C=e.state;i=e.next_in,P=e.input,s=i+(e.avail_in-5),r=e.next_out,B=e.output,o=r-(t-e.avail_out),n=r+(e.avail_out-257),a=C.dmax,l=C.wsize,A=C.whave,h=C.wnext,c=C.window,u=C.hold,d=C.bits,p=C.lencode,g=C.distcode,m=(1<>>24,u>>>=v,d-=v,v=_>>>16&255,0===v)B[r++]=65535&_;else{if(!(16&v)){if(0==(64&v)){_=p[(65535&_)+(u&(1<>>=v,d-=v),d<15&&(u+=P[i++]<>>24,u>>>=v,d-=v,v=_>>>16&255,!(16&v)){if(0==(64&v)){_=g[(65535&_)+(u&(1<a){e.msg="invalid distance too far back",C.mode=lt;break e}if(u>>>=v,d-=v,v=r-o,x>v){if(v=x-v,v>A&&C.sane){e.msg="invalid distance too far back",C.mode=lt;break e}if(w=0,y=c,0===h){if(w+=l-v,v2;)B[r++]=y[w++],B[r++]=y[w++],B[r++]=y[w++],b-=3;b&&(B[r++]=y[w++],b>1&&(B[r++]=y[w++]))}else{w=r-x;do{B[r++]=B[w++],B[r++]=B[w++],B[r++]=B[w++],b-=3}while(b>2);b&&(B[r++]=B[w++],b>1&&(B[r++]=B[w++]))}break}}break}}while(i>3,i-=b,d-=b<<3,u&=(1<{const l=a.bits;let A,h,c,u,d,p,g=0,m=0,f=0,_=0,v=0,b=0,x=0,w=0,y=0,P=0,B=null;const C=new Uint16Array(16),M=new Uint16Array(16);let E,F,I,D=null;for(g=0;g<=15;g++)C[g]=0;for(m=0;m=1&&0===C[_];_--);if(v>_&&(v=_),0===_)return r[o++]=20971520,r[o++]=20971520,a.bits=1,0;for(f=1;f<_&&0===C[f];f++);for(v0&&(0===e||1!==_))return-1;for(M[1]=0,g=1;g<15;g++)M[g+1]=M[g]+C[g];for(m=0;m852||2===e&&y>592)return 1;for(;;){E=g-x,n[m]+1=p?(F=D[n[m]-p],I=B[n[m]-p]):(F=96,I=0),A=1<>x)+h]=E<<24|F<<16|I|0}while(0!==h);for(A=1<>=1;if(0!==A?(P&=A-1,P+=A):P=0,m++,0==--C[g]){if(g===_)break;g=t[i+n[m]]}if(g>v&&(P&u)!==c){for(0===x&&(x=v),d+=f,b=g-x,w=1<852||2===e&&y>592)return 1;c=P&u,r[c]=v<<24|b<<16|d-o|0}}return 0!==P&&(r[d+P]=g-x<<24|64<<16|0),a.bits=v,0};const{Z_FINISH:gt,Z_BLOCK:mt,Z_TREES:ft,Z_OK:_t,Z_STREAM_END:vt,Z_NEED_DICT:bt,Z_STREAM_ERROR:xt,Z_DATA_ERROR:wt,Z_MEM_ERROR:yt,Z_BUF_ERROR:Pt,Z_DEFLATED:Bt}=O,Ct=16180,Mt=16190,Et=16191,Ft=16192,It=16194,Dt=16199,St=16200,Tt=16206,Rt=16209,Lt=e=>(e>>>24&255)+(e>>>8&65280)+((65280&e)<<8)+((255&e)<<24);function Ut(){this.strm=null,this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new Uint16Array(320),this.work=new Uint16Array(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}const kt=e=>{if(!e)return 1;const t=e.state;return!t||t.strm!==e||t.mode16211?1:0},Ot=e=>{if(kt(e))return xt;const t=e.state;return e.total_in=e.total_out=t.total=0,e.msg="",t.wrap&&(e.adler=1&t.wrap),t.mode=Ct,t.last=0,t.havedict=0,t.flags=-1,t.dmax=32768,t.head=null,t.hold=0,t.bits=0,t.lencode=t.lendyn=new Int32Array(852),t.distcode=t.distdyn=new Int32Array(592),t.sane=1,t.back=-1,_t},Nt=e=>{if(kt(e))return xt;const t=e.state;return t.wsize=0,t.whave=0,t.wnext=0,Ot(e)},Qt=(e,t)=>{let i;if(kt(e))return xt;const s=e.state;return t<0?(i=0,t=-t):(i=5+(t>>4),t<48&&(t&=15)),t&&(t<8||t>15)?xt:(null!==s.window&&s.wbits!==t&&(s.window=null),s.wrap=i,s.wbits=t,Nt(e))},Vt=(e,t)=>{if(!e)return xt;const i=new Ut;e.state=i,i.strm=e,i.window=null,i.mode=Ct;const s=Qt(e,t);return s!==_t&&(e.state=null),s};let jt,Ht,zt=!0;const Gt=e=>{if(zt){jt=new Int32Array(512),Ht=new Int32Array(32);let t=0;for(;t<144;)e.lens[t++]=8;for(;t<256;)e.lens[t++]=9;for(;t<280;)e.lens[t++]=7;for(;t<288;)e.lens[t++]=8;for(pt(1,e.lens,0,288,jt,0,e.work,{bits:9}),t=0;t<32;)e.lens[t++]=5;pt(2,e.lens,0,32,Ht,0,e.work,{bits:5}),zt=!1}e.lencode=jt,e.lenbits=9,e.distcode=Ht,e.distbits=5},Wt=(e,t,i,s)=>{let r;const o=e.state;return null===o.window&&(o.wsize=1<=o.wsize?(o.window.set(t.subarray(i-o.wsize,i),0),o.wnext=0,o.whave=o.wsize):(r=o.wsize-o.wnext,r>s&&(r=s),o.window.set(t.subarray(i-s,i-s+r),o.wnext),(s-=r)?(o.window.set(t.subarray(i-s,i),0),o.wnext=s,o.whave=o.wsize):(o.wnext+=r,o.wnext===o.wsize&&(o.wnext=0),o.whave{let i,s,r,o,n,a,l,A,h,c,u,d,p,g,m,f,_,v,b,x,w,y,P=0;const B=new Uint8Array(4);let C,M;const E=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]);if(kt(e)||!e.output||!e.input&&0!==e.avail_in)return xt;i=e.state,i.mode===Et&&(i.mode=Ft),n=e.next_out,r=e.output,l=e.avail_out,o=e.next_in,s=e.input,a=e.avail_in,A=i.hold,h=i.bits,c=a,u=l,y=_t;e:for(;;)switch(i.mode){case Ct:if(0===i.wrap){i.mode=Ft;break}for(;h<16;){if(0===a)break e;a--,A+=s[o++]<>>8&255,i.check=U(i.check,B,2,0),A=0,h=0,i.mode=16181;break}if(i.head&&(i.head.done=!1),!(1&i.wrap)||(((255&A)<<8)+(A>>8))%31){e.msg="incorrect header check",i.mode=Rt;break}if((15&A)!==Bt){e.msg="unknown compression method",i.mode=Rt;break}if(A>>>=4,h-=4,w=8+(15&A),0===i.wbits&&(i.wbits=w),w>15||w>i.wbits){e.msg="invalid window size",i.mode=Rt;break}i.dmax=1<>8&1),512&i.flags&&4&i.wrap&&(B[0]=255&A,B[1]=A>>>8&255,i.check=U(i.check,B,2,0)),A=0,h=0,i.mode=16182;case 16182:for(;h<32;){if(0===a)break e;a--,A+=s[o++]<>>8&255,B[2]=A>>>16&255,B[3]=A>>>24&255,i.check=U(i.check,B,4,0)),A=0,h=0,i.mode=16183;case 16183:for(;h<16;){if(0===a)break e;a--,A+=s[o++]<>8),512&i.flags&&4&i.wrap&&(B[0]=255&A,B[1]=A>>>8&255,i.check=U(i.check,B,2,0)),A=0,h=0,i.mode=16184;case 16184:if(1024&i.flags){for(;h<16;){if(0===a)break e;a--,A+=s[o++]<>>8&255,i.check=U(i.check,B,2,0)),A=0,h=0}else i.head&&(i.head.extra=null);i.mode=16185;case 16185:if(1024&i.flags&&(d=i.length,d>a&&(d=a),d&&(i.head&&(w=i.head.extra_len-i.length,i.head.extra||(i.head.extra=new Uint8Array(i.head.extra_len)),i.head.extra.set(s.subarray(o,o+d),w)),512&i.flags&&4&i.wrap&&(i.check=U(i.check,s,d,o)),a-=d,o+=d,i.length-=d),i.length))break e;i.length=0,i.mode=16186;case 16186:if(2048&i.flags){if(0===a)break e;d=0;do{w=s[o+d++],i.head&&w&&i.length<65536&&(i.head.name+=String.fromCharCode(w))}while(w&&d>9&1,i.head.done=!0),e.adler=i.check=0,i.mode=Et;break;case 16189:for(;h<32;){if(0===a)break e;a--,A+=s[o++]<>>=7&h,h-=7&h,i.mode=Tt;break}for(;h<3;){if(0===a)break e;a--,A+=s[o++]<>>=1,h-=1,3&A){case 0:i.mode=16193;break;case 1:if(Gt(i),i.mode=Dt,t===ft){A>>>=2,h-=2;break e}break;case 2:i.mode=16196;break;case 3:e.msg="invalid block type",i.mode=Rt}A>>>=2,h-=2;break;case 16193:for(A>>>=7&h,h-=7&h;h<32;){if(0===a)break e;a--,A+=s[o++]<>>16^65535)){e.msg="invalid stored block lengths",i.mode=Rt;break}if(i.length=65535&A,A=0,h=0,i.mode=It,t===ft)break e;case It:i.mode=16195;case 16195:if(d=i.length,d){if(d>a&&(d=a),d>l&&(d=l),0===d)break e;r.set(s.subarray(o,o+d),n),a-=d,o+=d,l-=d,n+=d,i.length-=d;break}i.mode=Et;break;case 16196:for(;h<14;){if(0===a)break e;a--,A+=s[o++]<>>=5,h-=5,i.ndist=1+(31&A),A>>>=5,h-=5,i.ncode=4+(15&A),A>>>=4,h-=4,i.nlen>286||i.ndist>30){e.msg="too many length or distance symbols",i.mode=Rt;break}i.have=0,i.mode=16197;case 16197:for(;i.have>>=3,h-=3}for(;i.have<19;)i.lens[E[i.have++]]=0;if(i.lencode=i.lendyn,i.lenbits=7,C={bits:i.lenbits},y=pt(0,i.lens,0,19,i.lencode,0,i.work,C),i.lenbits=C.bits,y){e.msg="invalid code lengths set",i.mode=Rt;break}i.have=0,i.mode=16198;case 16198:for(;i.have>>24,f=P>>>16&255,_=65535&P,!(m<=h);){if(0===a)break e;a--,A+=s[o++]<>>=m,h-=m,i.lens[i.have++]=_;else{if(16===_){for(M=m+2;h>>=m,h-=m,0===i.have){e.msg="invalid bit length repeat",i.mode=Rt;break}w=i.lens[i.have-1],d=3+(3&A),A>>>=2,h-=2}else if(17===_){for(M=m+3;h>>=m,h-=m,w=0,d=3+(7&A),A>>>=3,h-=3}else{for(M=m+7;h>>=m,h-=m,w=0,d=11+(127&A),A>>>=7,h-=7}if(i.have+d>i.nlen+i.ndist){e.msg="invalid bit length repeat",i.mode=Rt;break}for(;d--;)i.lens[i.have++]=w}}if(i.mode===Rt)break;if(0===i.lens[256]){e.msg="invalid code -- missing end-of-block",i.mode=Rt;break}if(i.lenbits=9,C={bits:i.lenbits},y=pt(1,i.lens,0,i.nlen,i.lencode,0,i.work,C),i.lenbits=C.bits,y){e.msg="invalid literal/lengths set",i.mode=Rt;break}if(i.distbits=6,i.distcode=i.distdyn,C={bits:i.distbits},y=pt(2,i.lens,i.nlen,i.ndist,i.distcode,0,i.work,C),i.distbits=C.bits,y){e.msg="invalid distances set",i.mode=Rt;break}if(i.mode=Dt,t===ft)break e;case Dt:i.mode=St;case St:if(a>=6&&l>=258){e.next_out=n,e.avail_out=l,e.next_in=o,e.avail_in=a,i.hold=A,i.bits=h,At(e,u),n=e.next_out,r=e.output,l=e.avail_out,o=e.next_in,s=e.input,a=e.avail_in,A=i.hold,h=i.bits,i.mode===Et&&(i.back=-1);break}for(i.back=0;P=i.lencode[A&(1<>>24,f=P>>>16&255,_=65535&P,!(m<=h);){if(0===a)break e;a--,A+=s[o++]<>v)],m=P>>>24,f=P>>>16&255,_=65535&P,!(v+m<=h);){if(0===a)break e;a--,A+=s[o++]<>>=v,h-=v,i.back+=v}if(A>>>=m,h-=m,i.back+=m,i.length=_,0===f){i.mode=16205;break}if(32&f){i.back=-1,i.mode=Et;break}if(64&f){e.msg="invalid literal/length code",i.mode=Rt;break}i.extra=15&f,i.mode=16201;case 16201:if(i.extra){for(M=i.extra;h>>=i.extra,h-=i.extra,i.back+=i.extra}i.was=i.length,i.mode=16202;case 16202:for(;P=i.distcode[A&(1<>>24,f=P>>>16&255,_=65535&P,!(m<=h);){if(0===a)break e;a--,A+=s[o++]<>v)],m=P>>>24,f=P>>>16&255,_=65535&P,!(v+m<=h);){if(0===a)break e;a--,A+=s[o++]<>>=v,h-=v,i.back+=v}if(A>>>=m,h-=m,i.back+=m,64&f){e.msg="invalid distance code",i.mode=Rt;break}i.offset=_,i.extra=15&f,i.mode=16203;case 16203:if(i.extra){for(M=i.extra;h>>=i.extra,h-=i.extra,i.back+=i.extra}if(i.offset>i.dmax){e.msg="invalid distance too far back",i.mode=Rt;break}i.mode=16204;case 16204:if(0===l)break e;if(d=u-l,i.offset>d){if(d=i.offset-d,d>i.whave&&i.sane){e.msg="invalid distance too far back",i.mode=Rt;break}d>i.wnext?(d-=i.wnext,p=i.wsize-d):p=i.wnext-d,d>i.length&&(d=i.length),g=i.window}else g=r,p=n-i.offset,d=i.length;d>l&&(d=l),l-=d,i.length-=d;do{r[n++]=g[p++]}while(--d);0===i.length&&(i.mode=St);break;case 16205:if(0===l)break e;r[n++]=i.length,l--,i.mode=St;break;case Tt:if(i.wrap){for(;h<32;){if(0===a)break e;a--,A|=s[o++]<{if(kt(e))return xt;let t=e.state;return t.window&&(t.window=null),e.state=null,_t},Zt=(e,t)=>{if(kt(e))return xt;const i=e.state;return 0==(2&i.wrap)?xt:(i.head=t,t.done=!1,_t)},Jt=(e,t)=>{const i=t.length;let s,r,o;return kt(e)?xt:(s=e.state,0!==s.wrap&&s.mode!==Mt?xt:s.mode===Mt&&(r=1,r=R(r,t,i,0),r!==s.check)?wt:(o=Wt(e,t,i,i),o?(s.mode=16210,yt):(s.havedict=1,_t)))},$t=function(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name="",this.comment="",this.hcrc=0,this.done=!1};const ei=Object.prototype.toString,{Z_NO_FLUSH:ti,Z_FINISH:ii,Z_OK:si,Z_STREAM_END:ri,Z_NEED_DICT:oi,Z_STREAM_ERROR:ni,Z_DATA_ERROR:ai,Z_MEM_ERROR:li}=O;function Ai(e){this.options=Ve({chunkSize:65536,windowBits:15,to:""},e||{});const t=this.options;t.raw&&t.windowBits>=0&&t.windowBits<16&&(t.windowBits=-t.windowBits,0===t.windowBits&&(t.windowBits=-15)),!(t.windowBits>=0&&t.windowBits<16)||e&&e.windowBits||(t.windowBits+=32),t.windowBits>15&&t.windowBits<48&&0==(15&t.windowBits)&&(t.windowBits|=15),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new Xe,this.strm.avail_out=0;let i=Xt(this.strm,t.windowBits);if(i!==si)throw new Error(k[i]);if(this.header=new $t,Zt(this.strm,this.header),t.dictionary&&("string"==typeof t.dictionary?t.dictionary=Ge(t.dictionary):"[object ArrayBuffer]"===ei.call(t.dictionary)&&(t.dictionary=new Uint8Array(t.dictionary)),t.raw&&(i=Jt(this.strm,t.dictionary),i!==si)))throw new Error(k[i])}function hi(e,t){const i=new Ai(t);if(i.push(e),i.err)throw i.msg||k[i.err];return i.result}Ai.prototype.push=function(e,t){const i=this.strm,s=this.options.chunkSize,r=this.options.dictionary;let o,n,a;if(this.ended)return!1;for(n=t===~~t?t:!0===t?ii:ti,"[object ArrayBuffer]"===ei.call(e)?i.input=new Uint8Array(e):i.input=e,i.next_in=0,i.avail_in=i.input.length;;){for(0===i.avail_out&&(i.output=new Uint8Array(s),i.next_out=0,i.avail_out=s),o=Yt(i,n),o===oi&&r&&(o=Jt(i,r),o===si?o=Yt(i,n):o===ai&&(o=oi));i.avail_in>0&&o===ri&&i.state.wrap>0&&0!==e[i.next_in];)Kt(i),o=Yt(i,n);switch(o){case ni:case ai:case oi:case li:return this.onEnd(o),this.ended=!0,!1}if(a=i.avail_out,i.next_out&&(0===i.avail_out||o===ri))if("string"===this.options.to){let e=Ke(i.output,i.next_out),t=i.next_out-e,r=We(i.output,e);i.next_out=t,i.avail_out=s-t,t&&i.output.set(i.output.subarray(e,e+t),0),this.onData(r)}else this.onData(i.output.length===i.next_out?i.output:i.output.subarray(0,i.next_out));if(o!==si||0!==a){if(o===ri)return o=qt(this.strm),this.onEnd(o),this.ended=!0,!0;if(0===i.avail_in)break}}return!0},Ai.prototype.onData=function(e){this.chunks.push(e)},Ai.prototype.onEnd=function(e){e===si&&("string"===this.options.to?this.result=this.chunks.join(""):this.result=je(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg};var ci={Inflate:Ai,inflate:hi,inflateRaw:function(e,t){return(t=t||{}).raw=!0,hi(e,t)},ungzip:hi,constants:O};const{Deflate:ui,deflate:di,deflateRaw:pi,gzip:gi}=at,{Inflate:mi,inflate:fi,inflateRaw:_i,ungzip:vi}=ci;var bi=ui,xi=di,wi=pi,yi=gi,Pi=mi,Bi=fi,Ci=_i,Mi=vi,Ei=O,Fi={Deflate:bi,deflate:xi,deflateRaw:wi,gzip:yi,Inflate:Pi,inflate:Bi,inflateRaw:Ci,ungzip:Mi,constants:Ei};e.Deflate=bi,e.Inflate=Pi,e.constants=Ei,e.default=Fi,e.deflate=xi,e.deflateRaw=wi,e.gzip=yi,e.inflate=Bi,e.inflateRaw=Ci,e.ungzip=Mi,Object.defineProperty(e,"__esModule",{value:!0})}));var bv=Object.freeze({__proto__:null});let xv=window.pako||bv;xv.inflate||(xv=xv.default);const wv=function(){const e=new Float32Array(3);return function(t){return e[0]=t[0]/255,e[1]=t[1]/255,e[2]=t[2]/255,e}}();const yv={version:1,parse:function(e,t,i,s,r,o){const n=function(e){return{positions:e[0],normals:e[1],indices:e[2],edgeIndices:e[3],meshPositions:e[4],meshIndices:e[5],meshEdgesIndices:e[6],meshColors:e[7],entityIDs:e[8],entityMeshes:e[9],entityIsObjects:e[10],positionsDecodeMatrix:e[11]}}(i),a=function(e){return{positions:new Uint16Array(xv.inflate(e.positions).buffer),normals:new Int8Array(xv.inflate(e.normals).buffer),indices:new Uint32Array(xv.inflate(e.indices).buffer),edgeIndices:new Uint32Array(xv.inflate(e.edgeIndices).buffer),meshPositions:new Uint32Array(xv.inflate(e.meshPositions).buffer),meshIndices:new Uint32Array(xv.inflate(e.meshIndices).buffer),meshEdgesIndices:new Uint32Array(xv.inflate(e.meshEdgesIndices).buffer),meshColors:new Uint8Array(xv.inflate(e.meshColors).buffer),entityIDs:xv.inflate(e.entityIDs,{to:"string"}),entityMeshes:new Uint32Array(xv.inflate(e.entityMeshes).buffer),entityIsObjects:new Uint8Array(xv.inflate(e.entityIsObjects).buffer),positionsDecodeMatrix:new Float32Array(xv.inflate(e.positionsDecodeMatrix).buffer)}}(n);!function(e,t,i,s,r,o){o.getNextId(),s.positionsCompression="precompressed",s.normalsCompression="precompressed";const n=i.positions,a=i.normals,l=i.indices,A=i.edgeIndices,h=i.meshPositions,c=i.meshIndices,d=i.meshEdgesIndices,p=i.meshColors,g=JSON.parse(i.entityIDs),m=i.entityMeshes,_=i.entityIsObjects,v=h.length,b=m.length;for(let r=0;rm[e]m[t]?1:0));for(let e=0;e1||(E[i]=e)}}for(let e=0;e1,o=Dv(_.subarray(4*t,4*t+3)),u=_[4*t+3]/255,v=a.subarray(d[t],i?a.length:d[t+1]),x=l.subarray(d[t],i?l.length:d[t+1]),w=A.subarray(p[t],i?A.length:p[t+1]),P=h.subarray(g[t],i?h.length:g[t+1]),M=c.subarray(m[t],m[t]+16);if(r){const e=`${n}-geometry.${t}`;s.createGeometry({id:e,primitive:"triangles",positionsCompressed:v,normalsCompressed:x,indices:w,edgeIndices:P,positionsDecodeMatrix:M})}else{const e=`${n}-${t}`;b[E[t]];const i={};s.createMesh(f.apply(i,{id:e,primitive:"triangles",positionsCompressed:v,normalsCompressed:x,indices:w,edgeIndices:P,positionsDecodeMatrix:M,color:o,opacity:u}))}}let F=0;for(let e=0;e1){const t={},r=`${n}-instance.${F++}`,o=`${n}-geometry.${i}`,a=16*w[e],A=u.subarray(a,a+16);s.createMesh(f.apply(t,{id:r,geometryId:o,matrix:A})),l.push(r)}else l.push(i)}if(l.length>0){const e={};s.createEntity(f.apply(e,{id:r,isObject:!0,meshIds:l}))}}}(0,0,a,s,0,o)}};let Tv=window.pako||bv;Tv.inflate||(Tv=Tv.default);const Rv=function(){const e=new Float32Array(3);return function(t){return e[0]=t[0]/255,e[1]=t[1]/255,e[2]=t[2]/255,e}}();const Lv={version:5,parse:function(e,t,i,s,r,o){const n=function(e){return{positions:e[0],normals:e[1],indices:e[2],edgeIndices:e[3],matrices:e[4],eachPrimitivePositionsAndNormalsPortion:e[5],eachPrimitiveIndicesPortion:e[6],eachPrimitiveEdgeIndicesPortion:e[7],eachPrimitiveColor:e[8],primitiveInstances:e[9],eachEntityId:e[10],eachEntityPrimitiveInstancesPortion:e[11],eachEntityMatricesPortion:e[12]}}(i),a=function(e){return{positions:new Float32Array(Tv.inflate(e.positions).buffer),normals:new Int8Array(Tv.inflate(e.normals).buffer),indices:new Uint32Array(Tv.inflate(e.indices).buffer),edgeIndices:new Uint32Array(Tv.inflate(e.edgeIndices).buffer),matrices:new Float32Array(Tv.inflate(e.matrices).buffer),eachPrimitivePositionsAndNormalsPortion:new Uint32Array(Tv.inflate(e.eachPrimitivePositionsAndNormalsPortion).buffer),eachPrimitiveIndicesPortion:new Uint32Array(Tv.inflate(e.eachPrimitiveIndicesPortion).buffer),eachPrimitiveEdgeIndicesPortion:new Uint32Array(Tv.inflate(e.eachPrimitiveEdgeIndicesPortion).buffer),eachPrimitiveColor:new Uint8Array(Tv.inflate(e.eachPrimitiveColor).buffer),primitiveInstances:new Uint32Array(Tv.inflate(e.primitiveInstances).buffer),eachEntityId:Tv.inflate(e.eachEntityId,{to:"string"}),eachEntityPrimitiveInstancesPortion:new Uint32Array(Tv.inflate(e.eachEntityPrimitiveInstancesPortion).buffer),eachEntityMatricesPortion:new Uint32Array(Tv.inflate(e.eachEntityMatricesPortion).buffer)}}(n);!function(e,t,i,s,r,o){const n=o.getNextId();s.positionsCompression="disabled",s.normalsCompression="precompressed";const a=i.positions,l=i.normals,A=i.indices,h=i.edgeIndices,c=i.matrices,u=i.eachPrimitivePositionsAndNormalsPortion,d=i.eachPrimitiveIndicesPortion,p=i.eachPrimitiveEdgeIndicesPortion,g=i.eachPrimitiveColor,m=i.primitiveInstances,_=JSON.parse(i.eachEntityId),v=i.eachEntityPrimitiveInstancesPortion,b=i.eachEntityMatricesPortion,x=u.length,w=m.length,y=new Uint8Array(x),P=_.length;for(let e=0;e1||(B[i]=e)}}for(let e=0;e1,r=Rv(g.subarray(4*e,4*e+3)),o=g[4*e+3]/255,c=a.subarray(u[e],t?a.length:u[e+1]),m=l.subarray(u[e],t?l.length:u[e+1]),v=A.subarray(d[e],t?A.length:d[e+1]),b=h.subarray(p[e],t?h.length:p[e+1]);if(i){const t=`${n}-geometry.${e}`;s.createGeometry({id:t,primitive:"triangles",positionsCompressed:c,normalsCompressed:m,indices:v,edgeIndices:b})}else{const t=e;_[B[e]];const i={};s.createMesh(f.apply(i,{id:t,primitive:"triangles",positionsCompressed:c,normalsCompressed:m,indices:v,edgeIndices:b,color:r,opacity:o}))}}let C=0;for(let e=0;e1){const t={},r="instance."+C++,o="geometry"+i,n=16*b[e],l=c.subarray(n,n+16);s.createMesh(f.apply(t,{id:r,geometryId:o,matrix:l})),a.push(r)}else a.push(i)}if(a.length>0){const e={};s.createEntity(f.apply(e,{id:r,isObject:!0,meshIds:a}))}}}(0,0,a,s,0,o)}};let Uv=window.pako||bv;Uv.inflate||(Uv=Uv.default);const kv=function(){const e=new Float32Array(3);return function(t){return e[0]=t[0]/255,e[1]=t[1]/255,e[2]=t[2]/255,e}}();const Ov={version:6,parse:function(e,t,i,s,r,o){const n=function(e){return{positions:e[0],normals:e[1],indices:e[2],edgeIndices:e[3],matrices:e[4],reusedPrimitivesDecodeMatrix:e[5],eachPrimitivePositionsAndNormalsPortion:e[6],eachPrimitiveIndicesPortion:e[7],eachPrimitiveEdgeIndicesPortion:e[8],eachPrimitiveColorAndOpacity:e[9],primitiveInstances:e[10],eachEntityId:e[11],eachEntityPrimitiveInstancesPortion:e[12],eachEntityMatricesPortion:e[13],eachTileAABB:e[14],eachTileEntitiesPortion:e[15]}}(i),a=function(e){function t(e,t){return 0===e.length?[]:Uv.inflate(e,t).buffer}return{positions:new Uint16Array(t(e.positions)),normals:new Int8Array(t(e.normals)),indices:new Uint32Array(t(e.indices)),edgeIndices:new Uint32Array(t(e.edgeIndices)),matrices:new Float32Array(t(e.matrices)),reusedPrimitivesDecodeMatrix:new Float32Array(t(e.reusedPrimitivesDecodeMatrix)),eachPrimitivePositionsAndNormalsPortion:new Uint32Array(t(e.eachPrimitivePositionsAndNormalsPortion)),eachPrimitiveIndicesPortion:new Uint32Array(t(e.eachPrimitiveIndicesPortion)),eachPrimitiveEdgeIndicesPortion:new Uint32Array(t(e.eachPrimitiveEdgeIndicesPortion)),eachPrimitiveColorAndOpacity:new Uint8Array(t(e.eachPrimitiveColorAndOpacity)),primitiveInstances:new Uint32Array(t(e.primitiveInstances)),eachEntityId:Uv.inflate(e.eachEntityId,{to:"string"}),eachEntityPrimitiveInstancesPortion:new Uint32Array(t(e.eachEntityPrimitiveInstancesPortion)),eachEntityMatricesPortion:new Uint32Array(t(e.eachEntityMatricesPortion)),eachTileAABB:new Float64Array(t(e.eachTileAABB)),eachTileEntitiesPortion:new Uint32Array(t(e.eachTileEntitiesPortion))}}(n);!function(e,t,i,s,r,o){const n=o.getNextId(),a=i.positions,l=i.normals,A=i.indices,h=i.edgeIndices,c=i.matrices,d=i.reusedPrimitivesDecodeMatrix,p=i.eachPrimitivePositionsAndNormalsPortion,g=i.eachPrimitiveIndicesPortion,m=i.eachPrimitiveEdgeIndicesPortion,_=i.eachPrimitiveColorAndOpacity,v=i.primitiveInstances,b=JSON.parse(i.eachEntityId),x=i.eachEntityPrimitiveInstancesPortion,w=i.eachEntityMatricesPortion,y=i.eachTileAABB,P=i.eachTileEntitiesPortion,B=p.length,C=v.length,M=b.length,E=P.length,F=new Uint32Array(B);for(let e=0;e1,c=t===B-1,u=a.subarray(p[t],c?a.length:p[t+1]),b=l.subarray(p[t],c?l.length:p[t+1]),x=A.subarray(g[t],c?A.length:g[t+1]),w=h.subarray(m[t],c?h.length:m[t+1]),y=kv(_.subarray(4*t,4*t+3)),P=_[4*t+3]/255,C=o.getNextId();if(r){const e=`${n}-geometry.${i}.${t}`;U[e]||(s.createGeometry({id:e,primitive:"triangles",positionsCompressed:u,indices:x,edgeIndices:w,positionsDecodeMatrix:d}),U[e]=!0),s.createMesh(f.apply(N,{id:C,geometryId:e,origin:I,matrix:E,color:y,opacity:P})),R.push(C)}else s.createMesh(f.apply(N,{id:C,origin:I,primitive:"triangles",positionsCompressed:u,normalsCompressed:b,indices:x,edgeIndices:w,positionsDecodeMatrix:L,color:y,opacity:P})),R.push(C)}R.length>0&&s.createEntity(f.apply(O,{id:P,isObject:!0,meshIds:R}))}}}(e,t,a,s,0,o)}};let Nv=window.pako||bv;Nv.inflate||(Nv=Nv.default);const Qv=function(){const e=new Float32Array(3);return function(t){return e[0]=t[0]/255,e[1]=t[1]/255,e[2]=t[2]/255,e}}();function Vv(e){const t=[];for(let i=0,s=e.length;i1,u=t===F-1,B=Qv(P.subarray(6*e,6*e+3)),C=P[6*e+3]/255,M=P[6*e+4]/255,E=P[6*e+5]/255,I=o.getNextId();if(r){const r=y[e],o=d.slice(r,r+16),w=`${n}-geometry.${i}.${t}`;if(!Q[w]){let e,i,r,o,n,d;switch(g[t]){case 0:e="solid",i=a.subarray(m[t],u?a.length:m[t+1]),r=l.subarray(_[t],u?l.length:_[t+1]),n=h.subarray(b[t],u?h.length:b[t+1]),d=c.subarray(x[t],u?c.length:x[t+1]);break;case 1:e="surface",i=a.subarray(m[t],u?a.length:m[t+1]),r=l.subarray(_[t],u?l.length:_[t+1]),n=h.subarray(b[t],u?h.length:b[t+1]),d=c.subarray(x[t],u?c.length:x[t+1]);break;case 2:e="points",i=a.subarray(m[t],u?a.length:m[t+1]),o=Vv(A.subarray(v[t],u?A.length:v[t+1]));break;case 3:e="lines",i=a.subarray(m[t],u?a.length:m[t+1]),n=h.subarray(b[t],u?h.length:b[t+1]);break;default:continue}s.createGeometry({id:w,primitive:e,positionsCompressed:i,normalsCompressed:r,colors:o,indices:n,edgeIndices:d,positionsDecodeMatrix:p}),Q[w]=!0}s.createMesh(f.apply(V,{id:I,geometryId:w,origin:R,matrix:o,color:B,metallic:M,roughness:E,opacity:C})),U.push(I)}else{let e,i,r,o,n,d;switch(g[t]){case 0:e="solid",i=a.subarray(m[t],u?a.length:m[t+1]),r=l.subarray(_[t],u?l.length:_[t+1]),n=h.subarray(b[t],u?h.length:b[t+1]),d=c.subarray(x[t],u?c.length:x[t+1]);break;case 1:e="surface",i=a.subarray(m[t],u?a.length:m[t+1]),r=l.subarray(_[t],u?l.length:_[t+1]),n=h.subarray(b[t],u?h.length:b[t+1]),d=c.subarray(x[t],u?c.length:x[t+1]);break;case 2:e="points",i=a.subarray(m[t],u?a.length:m[t+1]),o=Vv(A.subarray(v[t],u?A.length:v[t+1]));break;case 3:e="lines",i=a.subarray(m[t],u?a.length:m[t+1]),n=h.subarray(b[t],u?h.length:b[t+1]);break;default:continue}s.createMesh(f.apply(V,{id:I,origin:R,primitive:e,positionsCompressed:i,normalsCompressed:r,colors:o,indices:n,edgeIndices:d,positionsDecodeMatrix:N,color:B,metallic:M,roughness:E,opacity:C})),U.push(I)}}U.length>0&&s.createEntity(f.apply(O,{id:E,isObject:!0,meshIds:U}))}}}(e,t,a,s,0,o)}};let Hv=window.pako||bv;Hv.inflate||(Hv=Hv.default);const zv=u.vec4(),Gv=u.vec4();const Wv=function(){const e=new Float32Array(3);return function(t){return e[0]=t[0]/255,e[1]=t[1]/255,e[2]=t[2]/255,e}}();function Kv(e){const t=[];for(let i=0,s=e.length;i1,l=r===L-1,A=Wv(F.subarray(6*e,6*e+3)),h=F[6*e+3]/255,c=F[6*e+4]/255,I=F[6*e+5]/255,D=o.getNextId();if(a){const o=E[e],a=v.slice(o,o+16),M=`${n}-geometry.${i}.${r}`;let F=j[M];if(!F){F={batchThisMesh:!t.reuseGeometries};let e=!1;switch(x[r]){case 0:F.primitiveName="solid",F.geometryPositions=d.subarray(w[r],l?d.length:w[r+1]),F.geometryNormals=p.subarray(y[r],l?p.length:y[r+1]),F.geometryIndices=m.subarray(B[r],l?m.length:B[r+1]),F.geometryEdgeIndices=_.subarray(C[r],l?_.length:C[r+1]),e=F.geometryPositions.length>0&&F.geometryIndices.length>0;break;case 1:F.primitiveName="surface",F.geometryPositions=d.subarray(w[r],l?d.length:w[r+1]),F.geometryNormals=p.subarray(y[r],l?p.length:y[r+1]),F.geometryIndices=m.subarray(B[r],l?m.length:B[r+1]),F.geometryEdgeIndices=_.subarray(C[r],l?_.length:C[r+1]),e=F.geometryPositions.length>0&&F.geometryIndices.length>0;break;case 2:F.primitiveName="points",F.geometryPositions=d.subarray(w[r],l?d.length:w[r+1]),F.geometryColors=Kv(g.subarray(P[r],l?g.length:P[r+1])),e=F.geometryPositions.length>0;break;case 3:F.primitiveName="lines",F.geometryPositions=d.subarray(w[r],l?d.length:w[r+1]),F.geometryIndices=m.subarray(B[r],l?m.length:B[r+1]),e=F.geometryPositions.length>0&&F.geometryIndices.length>0;break;default:continue}if(e||(F=null),F&&(F.geometryPositions.length,F.batchThisMesh)){F.decompressedPositions=new Float32Array(F.geometryPositions.length);const e=F.geometryPositions,t=F.decompressedPositions;for(let i=0,s=e.length;i0&&n.length>0;break;case 1:e="surface",t=d.subarray(w[r],l?d.length:w[r+1]),i=p.subarray(y[r],l?p.length:y[r+1]),n=m.subarray(B[r],l?m.length:B[r+1]),a=_.subarray(C[r],l?_.length:C[r+1]),u=t.length>0&&n.length>0;break;case 2:e="points",t=d.subarray(w[r],l?d.length:w[r+1]),o=Kv(g.subarray(P[r],l?g.length:P[r+1])),u=t.length>0;break;case 3:e="lines",t=d.subarray(w[r],l?d.length:w[r+1]),n=m.subarray(B[r],l?m.length:B[r+1]),u=t.length>0&&n.length>0;break;default:continue}u&&(s.createMesh(f.apply(z,{id:D,origin:Q,primitive:e,positionsCompressed:t,normalsCompressed:i,colorsCompressed:o,indices:n,edgeIndices:a,positionsDecodeMatrix:R,color:A,metallic:c,roughness:I,opacity:h})),T.push(D))}}T.length>0&&s.createEntity(f.apply(H,{id:A,isObject:!0,meshIds:T}))}}}(e,t,a,s,r,o)}};let Yv=window.pako||bv;Yv.inflate||(Yv=Yv.default);const qv=u.vec4(),Zv=u.vec4();const Jv=function(){const e=new Float32Array(3);return function(t){return e[0]=t[0]/255,e[1]=t[1]/255,e[2]=t[2]/255,e}}();const $v={version:9,parse:function(e,t,i,s,r,o){const n=function(e){return{metadata:e[0],positions:e[1],normals:e[2],colors:e[3],indices:e[4],edgeIndices:e[5],matrices:e[6],reusedGeometriesDecodeMatrix:e[7],eachGeometryPrimitiveType:e[8],eachGeometryPositionsPortion:e[9],eachGeometryNormalsPortion:e[10],eachGeometryColorsPortion:e[11],eachGeometryIndicesPortion:e[12],eachGeometryEdgeIndicesPortion:e[13],eachMeshGeometriesPortion:e[14],eachMeshMatricesPortion:e[15],eachMeshMaterial:e[16],eachEntityId:e[17],eachEntityMeshesPortion:e[18],eachTileAABB:e[19],eachTileEntitiesPortion:e[20]}}(i),a=function(e){function t(e,t){return 0===e.length?[]:Yv.inflate(e,t).buffer}return{metadata:JSON.parse(Yv.inflate(e.metadata,{to:"string"})),positions:new Uint16Array(t(e.positions)),normals:new Int8Array(t(e.normals)),colors:new Uint8Array(t(e.colors)),indices:new Uint32Array(t(e.indices)),edgeIndices:new Uint32Array(t(e.edgeIndices)),matrices:new Float32Array(t(e.matrices)),reusedGeometriesDecodeMatrix:new Float32Array(t(e.reusedGeometriesDecodeMatrix)),eachGeometryPrimitiveType:new Uint8Array(t(e.eachGeometryPrimitiveType)),eachGeometryPositionsPortion:new Uint32Array(t(e.eachGeometryPositionsPortion)),eachGeometryNormalsPortion:new Uint32Array(t(e.eachGeometryNormalsPortion)),eachGeometryColorsPortion:new Uint32Array(t(e.eachGeometryColorsPortion)),eachGeometryIndicesPortion:new Uint32Array(t(e.eachGeometryIndicesPortion)),eachGeometryEdgeIndicesPortion:new Uint32Array(t(e.eachGeometryEdgeIndicesPortion)),eachMeshGeometriesPortion:new Uint32Array(t(e.eachMeshGeometriesPortion)),eachMeshMatricesPortion:new Uint32Array(t(e.eachMeshMatricesPortion)),eachMeshMaterial:new Uint8Array(t(e.eachMeshMaterial)),eachEntityId:JSON.parse(Yv.inflate(e.eachEntityId,{to:"string"})),eachEntityMeshesPortion:new Uint32Array(t(e.eachEntityMeshesPortion)),eachTileAABB:new Float64Array(t(e.eachTileAABB)),eachTileEntitiesPortion:new Uint32Array(t(e.eachTileEntitiesPortion))}}(n);!function(e,t,i,s,r,o){const n=o.getNextId(),a=i.metadata,l=i.positions,A=i.normals,h=i.colors,c=i.indices,d=i.edgeIndices,p=i.matrices,g=i.reusedGeometriesDecodeMatrix,m=i.eachGeometryPrimitiveType,_=i.eachGeometryPositionsPortion,v=i.eachGeometryNormalsPortion,b=i.eachGeometryColorsPortion,x=i.eachGeometryIndicesPortion,w=i.eachGeometryEdgeIndicesPortion,y=i.eachMeshGeometriesPortion,P=i.eachMeshMatricesPortion,B=i.eachMeshMaterial,C=i.eachEntityId,M=i.eachEntityMeshesPortion,E=i.eachTileAABB,F=i.eachTileEntitiesPortion,I=_.length,D=y.length,S=M.length,T=F.length;r&&r.loadData(a,{includeTypes:t.includeTypes,excludeTypes:t.excludeTypes,globalizeObjectIds:t.globalizeObjectIds});const R=new Uint32Array(I);for(let e=0;e1,C=r===I-1,M=Jv(B.subarray(6*e,6*e+3)),E=B[6*e+3]/255,F=B[6*e+4]/255,D=B[6*e+5]/255,S=o.getNextId();if(a){const o=P[e],a=p.slice(o,o+16),y=`${n}-geometry.${i}.${r}`;let B=k[y];if(!B){B={batchThisMesh:!t.reuseGeometries};let e=!1;switch(m[r]){case 0:B.primitiveName="solid",B.geometryPositions=l.subarray(_[r],C?l.length:_[r+1]),B.geometryNormals=A.subarray(v[r],C?A.length:v[r+1]),B.geometryIndices=c.subarray(x[r],C?c.length:x[r+1]),B.geometryEdgeIndices=d.subarray(w[r],C?d.length:w[r+1]),e=B.geometryPositions.length>0&&B.geometryIndices.length>0;break;case 1:B.primitiveName="surface",B.geometryPositions=l.subarray(_[r],C?l.length:_[r+1]),B.geometryNormals=A.subarray(v[r],C?A.length:v[r+1]),B.geometryIndices=c.subarray(x[r],C?c.length:x[r+1]),B.geometryEdgeIndices=d.subarray(w[r],C?d.length:w[r+1]),e=B.geometryPositions.length>0&&B.geometryIndices.length>0;break;case 2:B.primitiveName="points",B.geometryPositions=l.subarray(_[r],C?l.length:_[r+1]),B.geometryColors=h.subarray(b[r],C?h.length:b[r+1]),e=B.geometryPositions.length>0;break;case 3:B.primitiveName="lines",B.geometryPositions=l.subarray(_[r],C?l.length:_[r+1]),B.geometryIndices=c.subarray(x[r],C?c.length:x[r+1]),e=B.geometryPositions.length>0&&B.geometryIndices.length>0;break;default:continue}if(e||(B=null),B&&(B.geometryPositions.length,B.batchThisMesh)){B.decompressedPositions=new Float32Array(B.geometryPositions.length),B.transformedAndRecompressedPositions=new Uint16Array(B.geometryPositions.length);const e=B.geometryPositions,t=B.decompressedPositions;for(let i=0,s=e.length;i0&&n.length>0;break;case 1:e="surface",t=l.subarray(_[r],C?l.length:_[r+1]),i=A.subarray(v[r],C?A.length:v[r+1]),n=c.subarray(x[r],C?c.length:x[r+1]),a=d.subarray(w[r],C?d.length:w[r+1]),u=t.length>0&&n.length>0;break;case 2:e="points",t=l.subarray(_[r],C?l.length:_[r+1]),o=h.subarray(b[r],C?h.length:b[r+1]),u=t.length>0;break;case 3:e="lines",t=l.subarray(_[r],C?l.length:_[r+1]),n=c.subarray(x[r],C?c.length:x[r+1]),u=t.length>0&&n.length>0;break;default:continue}u&&(s.createMesh(f.apply(H,{id:S,origin:L,primitive:e,positionsCompressed:t,normalsCompressed:i,colorsCompressed:o,indices:n,edgeIndices:a,positionsDecodeMatrix:Q,color:M,metallic:F,roughness:D,opacity:E})),O.push(S))}}O.length>0&&s.createEntity(f.apply(j,{id:E,isObject:!0,meshIds:O}))}}}(e,t,a,s,r,o)}};let eb=window.pako||bv;eb.inflate||(eb=eb.default);const tb=u.vec4(),ib=u.vec4();const sb=function(){const e=new Float32Array(3);return function(t){return e[0]=t[0]/255,e[1]=t[1]/255,e[2]=t[2]/255,e}}();function rb(e,t){const i=[];if(t.length>1)for(let e=0,s=t.length-1;e1)for(let t=0,s=e.length/3-1;t0,a=9*e,c=1===h[a+0],u=h[a+1];h[a+2],h[a+3];const d=h[a+4],p=h[a+5],g=h[a+6],m=h[a+7],f=h[a+8];if(o){const t=new Uint8Array(l.subarray(i,r)).buffer,o=`${n}-texture-${e}`;if(c)s.createTexture({id:o,buffers:[t],minFilter:d,magFilter:p,wrapS:g,wrapT:m,wrapR:f});else{const e=new Blob([t],{type:10001===u?"image/jpeg":10002===u?"image/png":"image/gif"}),i=(window.URL||window.webkitURL).createObjectURL(e),r=document.createElement("img");r.src=i,s.createTexture({id:o,image:r,minFilter:d,magFilter:p,wrapS:g,wrapT:m,wrapR:f})}}}for(let e=0;e=0?`${n}-texture-${r}`:null,normalsTextureId:a>=0?`${n}-texture-${a}`:null,metallicRoughnessTextureId:o>=0?`${n}-texture-${o}`:null,emissiveTextureId:l>=0?`${n}-texture-${l}`:null,occlusionTextureId:A>=0?`${n}-texture-${A}`:null})}const H=new Uint32Array(N);for(let e=0;e1,l=r===N-1,A=D[e],h=A>=0?`${n}-textureSet-${A}`:null,T=sb(S.subarray(6*e,6*e+3)),R=S[6*e+3]/255,L=S[6*e+4]/255,O=S[6*e+5]/255,Q=o.getNextId();if(a){const o=I[e],a=b.slice(o,o+16),A=`${n}-geometry.${i}.${r}`;let F=W[A];if(!F){F={batchThisMesh:!t.reuseGeometries};let e=!1;switch(w[r]){case 0:F.primitiveName="solid",F.geometryPositions=c.subarray(y[r],l?c.length:y[r+1]),F.geometryNormals=d.subarray(P[r],l?d.length:P[r+1]),F.geometryUVs=g.subarray(C[r],l?g.length:C[r+1]),F.geometryIndices=m.subarray(M[r],l?m.length:M[r+1]),F.geometryEdgeIndices=_.subarray(E[r],l?_.length:E[r+1]),e=F.geometryPositions.length>0&&F.geometryIndices.length>0;break;case 1:F.primitiveName="surface",F.geometryPositions=c.subarray(y[r],l?c.length:y[r+1]),F.geometryNormals=d.subarray(P[r],l?d.length:P[r+1]),F.geometryUVs=g.subarray(C[r],l?g.length:C[r+1]),F.geometryIndices=m.subarray(M[r],l?m.length:M[r+1]),F.geometryEdgeIndices=_.subarray(E[r],l?_.length:E[r+1]),e=F.geometryPositions.length>0&&F.geometryIndices.length>0;break;case 2:F.primitiveName="points",F.geometryPositions=c.subarray(y[r],l?c.length:y[r+1]),F.geometryColors=p.subarray(B[r],l?p.length:B[r+1]),e=F.geometryPositions.length>0;break;case 3:F.primitiveName="lines",F.geometryPositions=c.subarray(y[r],l?c.length:y[r+1]),F.geometryIndices=m.subarray(M[r],l?m.length:M[r+1]),e=F.geometryPositions.length>0&&F.geometryIndices.length>0;break;case 4:F.primitiveName="lines",F.geometryPositions=c.subarray(y[r],l?c.length:y[r+1]),F.geometryIndices=rb(F.geometryPositions,m.subarray(M[r],l?m.length:M[r+1])),e=F.geometryPositions.length>0&&F.geometryIndices.length>0;break;default:continue}if(e||(F=null),F&&(F.geometryPositions.length,F.batchThisMesh)){F.decompressedPositions=new Float32Array(F.geometryPositions.length),F.transformedAndRecompressedPositions=new Uint16Array(F.geometryPositions.length);const e=F.geometryPositions,t=F.decompressedPositions;for(let i=0,s=e.length;i0&&a.length>0;break;case 1:e="surface",t=c.subarray(y[r],l?c.length:y[r+1]),i=d.subarray(P[r],l?d.length:P[r+1]),o=g.subarray(C[r],l?g.length:C[r+1]),a=m.subarray(M[r],l?m.length:M[r+1]),A=_.subarray(E[r],l?_.length:E[r+1]),u=t.length>0&&a.length>0;break;case 2:e="points",t=c.subarray(y[r],l?c.length:y[r+1]),n=p.subarray(B[r],l?p.length:B[r+1]),u=t.length>0;break;case 3:e="lines",t=c.subarray(y[r],l?c.length:y[r+1]),a=m.subarray(M[r],l?m.length:M[r+1]),u=t.length>0&&a.length>0;break;case 4:e="lines",t=c.subarray(y[r],l?c.length:y[r+1]),a=rb(t,m.subarray(M[r],l?m.length:M[r+1])),u=t.length>0&&a.length>0;break;default:continue}u&&(s.createMesh(f.apply(j,{id:Q,textureSetId:h,origin:z,primitive:e,positionsCompressed:t,normalsCompressed:i,uv:o&&o.length>0?o:null,colorsCompressed:n,indices:a,edgeIndices:A,positionsDecodeMatrix:v,color:T,metallic:L,roughness:O,opacity:R})),U.push(Q))}}U.length>0&&s.createEntity(f.apply(Q,{id:l,isObject:!0,meshIds:U}))}}}(e,t,a,s,r,o)}},nb={};nb[yv.version]=yv,nb[Cv.version]=Cv,nb[Fv.version]=Fv,nb[Sv.version]=Sv,nb[Lv.version]=Lv,nb[Ov.version]=Ov,nb[jv.version]=jv,nb[Xv.version]=Xv,nb[$v.version]=$v,nb[ob.version]=ob;class ab extends N{constructor(e,t={}){super("XKTLoader",e,t),this._maxGeometryBatchSize=t.maxGeometryBatchSize,this.textureTranscoder=t.textureTranscoder,this.dataSource=t.dataSource,this.objectDefaults=t.objectDefaults,this.includeTypes=t.includeTypes,this.excludeTypes=t.excludeTypes,this.excludeUnclassifiedObjects=t.excludeUnclassifiedObjects,this.reuseGeometries=t.reuseGeometries}get supportedVersions(){return Object.keys(nb)}get textureTranscoder(){return this._textureTranscoder}set textureTranscoder(e){this._textureTranscoder=e}get dataSource(){return this._dataSource}set dataSource(e){this._dataSource=e||new vv}get objectDefaults(){return this._objectDefaults}set objectDefaults(e){this._objectDefaults=e||sv}get includeTypes(){return this._includeTypes}set includeTypes(e){this._includeTypes=e}get excludeTypes(){return this._excludeTypes}set excludeTypes(e){this._excludeTypes=e}get excludeUnclassifiedObjects(){return this._excludeUnclassifiedObjects}set excludeUnclassifiedObjects(e){this._excludeUnclassifiedObjects=!!e}get globalizeObjectIds(){return this._globalizeObjectIds}set globalizeObjectIds(e){this._globalizeObjectIds=!!e}get reuseGeometries(){return this._reuseGeometries}set reuseGeometries(e){this._reuseGeometries=!1!==e}load(e={}){if(e.id&&this.viewer.scene.components[e.id]&&(this.error("Component with this ID already exists in viewer: "+e.id+" - will autogenerate this ID"),delete e.id),!(e.src||e.xkt||e.manifestSrc||e.manifest))return this.error("load() param expected: src, xkt, manifestSrc or manifestData"),o;const t={},i=e.includeTypes||this._includeTypes,s=e.excludeTypes||this._excludeTypes,r=e.objectDefaults||this._objectDefaults;if(t.reuseGeometries=null!==e.reuseGeometries&&void 0!==e.reuseGeometries?e.reuseGeometries:!1!==this._reuseGeometries,i){t.includeTypesMap={};for(let e=0,s=i.length;e{o.finalize(),a.finalize(),this.viewer.scene.canvas.spinner.processes--,o.once("destroyed",(()=>{this.viewer.metaScene.destroyMetaModel(a.id)})),this.scheduleTask((()=>{o.destroyed||(o.scene.fire("modelLoaded",o.id),o.fire("loaded",!0,!1))}))},A=e=>{this.viewer.scene.canvas.spinner.processes--,this.error(e),o.fire("error",e)};let h=0;const c={getNextId:()=>`${n}.${h++}`};if(e.metaModelSrc||e.metaModelData)if(e.metaModelSrc){const r=e.metaModelSrc;this._dataSource.getMetaModel(r,(r=>{o.destroyed||(a.loadData(r,{includeTypes:i,excludeTypes:s,globalizeObjectIds:t.globalizeObjectIds}),e.src?this._loadModel(e.src,e,t,o,null,c,l,A):(this._parseModel(e.xkt,e,t,o,null,c),l()))}),(e=>{A(`load(): Failed to load model metadata for model '${n} from '${r}' - ${e}`)}))}else e.metaModelData&&(a.loadData(e.metaModelData,{includeTypes:i,excludeTypes:s,globalizeObjectIds:t.globalizeObjectIds}),e.src?this._loadModel(e.src,e,t,o,null,c,l,A):(this._parseModel(e.xkt,e,t,o,null,c),l()));else if(e.src)this._loadModel(e.src,e,t,o,a,c,l,A);else if(e.xkt)this._parseModel(e.xkt,e,t,o,a,c),l();else if(e.manifestSrc||e.manifest){const r=e.manifestSrc?function(e){const t=e.split("/");return t.pop(),t.join("/")+"/"}(e.manifestSrc):"",n=(e,o,n)=>{let l=0;const A=()=>{l>=e.length?o():this._dataSource.getMetaModel(`${r}${e[l]}`,(e=>{a.loadData(e,{includeTypes:i,excludeTypes:s,globalizeObjectIds:t.globalizeObjectIds}),l++,this.scheduleTask(A,100)}),n)};A()},h=(i,s,n)=>{let a=0;const l=()=>{a>=i.length?s():this._dataSource.getXKT(`${r}${i[a]}`,(i=>{this._parseModel(i,e,t,o,null,c),a++,this.scheduleTask(l,100)}),n)};l()},u=(i,s,n)=>{let l=0;const A=()=>{l>=i.length?s():this._dataSource.getXKT(`${r}${i[l]}`,(i=>{this._parseModel(i,e,t,o,a,c),l++,this.scheduleTask(A,100)}),n)};A()};if(e.manifest){const t=e.manifest,i=t.xktFiles;if(!i||0===i.length)return void A("load(): Failed to load model manifest - manifest not valid");const s=t.metaModelFiles;s?n(s,(()=>{h(i,l,A)}),A):u(i,l,A)}else this._dataSource.getManifest(e.manifestSrc,(e=>{if(o.destroyed)return;const t=e.xktFiles;if(!t||0===t.length)return void A("load(): Failed to load model manifest - manifest not valid");const i=e.metaModelFiles;i?n(i,(()=>{h(t,l,A)}),A):u(t,l,A)}),A)}return o}_loadModel(e,t,i,s,r,o,n,a){this._dataSource.getXKT(t.src,(e=>{this._parseModel(e,t,i,s,r,o),n()}),a)}_parseModel(e,t,i,s,r,o){if(s.destroyed)return;const n=new DataView(e),a=new Uint8Array(e),l=n.getUint32(0,!0),A=nb[l];if(!A)return void this.error("Unsupported .XKT file version: "+l+" - this XKTLoaderPlugin supports versions "+Object.keys(nb));this.log("Loading .xkt V"+l);const h=n.getUint32(4,!0),c=[];let u=4*(h+2);for(let e=0;ee.size)throw new RangeError("offset:"+t+", length:"+i+", size:"+e.size);return e.slice?e.slice(t,t+i):e.webkitSlice?e.webkitSlice(t,t+i):e.mozSlice?e.mozSlice(t,t+i):e.msSlice?e.msSlice(t,t+i):void 0}(e,t,i))}catch(e){r(e)}}}function p(){}function g(e){var i,s=this;s.init=function(e){i=new Blob([],{type:n}),e()},s.writeUint8Array=function(e,s){i=new Blob([i,t?e:e.buffer],{type:n}),s()},s.getData=function(t,s){var r=new FileReader;r.onload=function(e){t(e.target.result)},r.onerror=s,r.readAsText(i,e)}}function m(t){var i=this,s="",r="";i.init=function(e){s+="data:"+(t||"")+";base64,",e()},i.writeUint8Array=function(t,i){var o,n=r.length,a=r;for(r="",o=0;o<3*Math.floor((n+t.length)/3)-n;o++)a+=String.fromCharCode(t[o]);for(;o2?s+=e.btoa(a):r=a,i()},i.getData=function(t){t(s+e.btoa(r))}}function f(e){var i,s=this;s.init=function(t){i=new Blob([],{type:e}),t()},s.writeUint8Array=function(s,r){i=new Blob([i,t?s:s.buffer],{type:e}),r()},s.getData=function(e){e(i)}}function _(e,t,i,s,r,n,a,l,A,h){var c,u,d,p=0,g=t.sn;function m(){e.removeEventListener("message",f,!1),l(u,d)}function f(t){var i=t.data,r=i.data,o=i.error;if(o)return o.toString=function(){return"Error: "+this.message},void A(o);if(i.sn===g)switch("number"==typeof i.codecTime&&(e.codecTime+=i.codecTime),"number"==typeof i.crcTime&&(e.crcTime+=i.crcTime),i.type){case"append":r?(u+=r.length,s.writeUint8Array(r,(function(){_()}),h)):_();break;case"flush":d=i.crc,r?(u+=r.length,s.writeUint8Array(r,(function(){m()}),h)):m();break;case"progress":a&&a(c+i.loaded,n);break;case"importScripts":case"newTask":case"echo":break;default:console.warn("zip.js:launchWorkerProcess: unknown message: ",i)}}function _(){(c=p*o)<=n?i.readUint8Array(r+c,Math.min(o,n-c),(function(i){a&&a(c,n);var s=0===c?t:{sn:g};s.type="append",s.data=i;try{e.postMessage(s,[i.buffer])}catch(t){e.postMessage(s)}p++}),A):e.postMessage({sn:g,type:"flush"})}u=0,e.addEventListener("message",f,!1),_()}function v(e,t,i,s,r,n,l,A,h,c){var u,d=0,p=0,g="input"===n,m="output"===n,f=new a;!function n(){var a;if((u=d*o)127?r[i-128]:String.fromCharCode(i);return s}function w(e){return decodeURIComponent(escape(e))}function y(e){var t,i="";for(t=0;t>16,i=65535&e;try{return new Date(1980+((65024&t)>>9),((480&t)>>5)-1,31&t,(63488&i)>>11,(2016&i)>>5,2*(31&i),0)}catch(e){}}(e.lastModDateRaw),1!=(1&e.bitFlag)?((s||8!=(8&e.bitFlag))&&(e.crc32=t.view.getUint32(i+10,!0),e.compressedSize=t.view.getUint32(i+14,!0),e.uncompressedSize=t.view.getUint32(i+18,!0)),4294967295!==e.compressedSize&&4294967295!==e.uncompressedSize?(e.filenameLength=t.view.getUint16(i+22,!0),e.extraFieldLength=t.view.getUint16(i+24,!0)):r("File is using Zip64 (4gb+ file size).")):r("File contains encrypted entry.")}function B(t,o,n){var a=0;function l(){}l.prototype.getData=function(s,o,l,h){var c=this;function u(e,t){h&&!function(e){var t=A(4);return t.view.setUint32(0,e),c.crc32==t.view.getUint32(0)}(t)?n("CRC failed."):s.getData((function(e){o(e)}))}function d(e){n(e||r)}function p(e){n(e||"Error while writing file data.")}t.readUint8Array(c.offset,30,(function(r){var o,g=A(r.length,r);1347093252==g.view.getUint32(0)?(P(c,g,4,!1,n),o=c.offset+30+c.filenameLength+c.extraFieldLength,s.init((function(){0===c.compressionMethod?b(c._worker,a++,t,s,o,c.compressedSize,h,u,l,d,p):function(t,i,s,r,o,n,a,l,A,h,c){var u=a?"output":"none";e.zip.useWebWorkers?_(t,{sn:i,codecClass:"Inflater",crcType:u},s,r,o,n,A,l,h,c):v(new e.zip.Inflater,s,r,o,n,u,A,l,h,c)}(c._worker,a++,t,s,o,c.compressedSize,h,u,l,d,p)}),p)):n(i)}),d)};var h={getEntries:function(e){var r=this._worker;!function(e){t.size<22?n(i):r(22,(function(){r(Math.min(65558,t.size),(function(){n(i)}))}));function r(i,r){t.readUint8Array(t.size-i,i,(function(t){for(var i=t.length-22;i>=0;i--)if(80===t[i]&&75===t[i+1]&&5===t[i+2]&&6===t[i+3])return void e(new DataView(t.buffer,i,22));r()}),(function(){n(s)}))}}((function(o){var a,h;a=o.getUint32(16,!0),h=o.getUint16(8,!0),a<0||a>=t.size?n(i):t.readUint8Array(a,t.size-a,(function(t){var s,o,a,c,u=0,d=[],p=A(t.length,t);for(s=0;s>>8^i[255&(t^e[s])];this.crc=t},a.prototype.get=function(){return~this.crc},a.prototype.table=function(){var e,t,i,s=[];for(e=0;e<256;e++){for(i=e,t=0;t<8;t++)1&i?i=i>>>1^3988292384:i>>>=1;s[e]=i}return s}(),l.prototype.append=function(e,t){return e},l.prototype.flush=function(){},c.prototype=new h,c.prototype.constructor=c,u.prototype=new h,u.prototype.constructor=u,d.prototype=new h,d.prototype.constructor=d,p.prototype.getData=function(e){e(this.data)},g.prototype=new p,g.prototype.constructor=g,m.prototype=new p,m.prototype.constructor=m,f.prototype=new p,f.prototype.constructor=f;var F={deflater:["z-worker.js","deflate.js"],inflater:["z-worker.js","inflate.js"]};function I(t,i,s){if(null===e.zip.workerScripts||null===e.zip.workerScriptsPath){var r;if(e.zip.workerScripts){if(r=e.zip.workerScripts[t],!Array.isArray(r))return void s(new Error("zip.workerScripts."+t+" is not an array!"));r=function(e){var t=document.createElement("a");return e.map((function(e){return t.href=e,t.href}))}(r)}else(r=F[t].slice(0))[0]=(e.zip.workerScriptsPath||"")+r[0];var o=new Worker(r[0]);o.codecTime=o.crcTime=0,o.postMessage({type:"importScripts",scripts:r.slice(1)}),o.addEventListener("message",(function e(t){var r=t.data;if(r.error)return o.terminate(),void s(r.error);"importScripts"===r.type&&(o.removeEventListener("message",e),o.removeEventListener("error",n),i(o))})),o.addEventListener("error",n)}else s(new Error("Either zip.workerScripts or zip.workerScriptsPath may be set, not both."));function n(e){o.terminate(),s(e)}}function D(e){console.error(e)}e.zip={Reader:h,Writer:p,BlobReader:d,Data64URIReader:u,TextReader:c,BlobWriter:f,Data64URIWriter:m,TextWriter:g,createReader:function(e,t,i){i=i||D,e.init((function(){B(e,t,i)}),i)},createWriter:function(e,t,i,s){i=i||D,s=!!s,e.init((function(){E(e,t,i,s)}),i)},useWebWorkers:!0,workerScriptsPath:null,workerScripts:null}}(lb);!function(e){var t,i,s=e.Reader,r=e.Writer;try{i=0===new Blob([new DataView(new ArrayBuffer(0))]).size}catch(e){}function o(e){var t=this;function i(i,s){var r;t.data?i():((r=new XMLHttpRequest).addEventListener("load",(function(){t.size||(t.size=Number(r.getResponseHeader("Content-Length"))||Number(r.response.byteLength)),t.data=new Uint8Array(r.response),i()}),!1),r.addEventListener("error",s,!1),r.open("GET",e),r.responseType="arraybuffer",r.send())}t.size=0,t.init=function(s,r){if(function(e){var t=document.createElement("a");return t.href=e,"http:"===t.protocol||"https:"===t.protocol}(e)){var o=new XMLHttpRequest;o.addEventListener("load",(function(){t.size=Number(o.getResponseHeader("Content-Length")),t.size?s():i(s,r)}),!1),o.addEventListener("error",r,!1),o.open("HEAD",e),o.send()}else i(s,r)},t.readUint8Array=function(e,s,r,o){i((function(){r(new Uint8Array(t.data.subarray(e,e+s)))}),o)}}function n(e){var t=this;t.size=0,t.init=function(i,s){var r=new XMLHttpRequest;r.addEventListener("load",(function(){t.size=Number(r.getResponseHeader("Content-Length")),"bytes"==r.getResponseHeader("Accept-Ranges")?i():s("HTTP Range not supported.")}),!1),r.addEventListener("error",s,!1),r.open("HEAD",e),r.send()},t.readUint8Array=function(t,i,s,r){!function(t,i,s,r){var o=new XMLHttpRequest;o.open("GET",e),o.responseType="arraybuffer",o.setRequestHeader("Range","bytes="+t+"-"+(t+i-1)),o.addEventListener("load",(function(){s(o.response)}),!1),o.addEventListener("error",r,!1),o.send()}(t,i,(function(e){s(new Uint8Array(e))}),r)}}function a(e){var t=this;t.size=0,t.init=function(i,s){t.size=e.byteLength,i()},t.readUint8Array=function(t,i,s,r){s(new Uint8Array(e.slice(t,t+i)))}}function l(){var e,t=this;t.init=function(t,i){e=new Uint8Array,t()},t.writeUint8Array=function(t,i,s){var r=new Uint8Array(e.length+t.length);r.set(e),r.set(t,e.length),e=r,i()},t.getData=function(t){t(e.buffer)}}function A(e,t){var s,r=this;r.init=function(t,i){e.createWriter((function(e){s=e,t()}),i)},r.writeUint8Array=function(e,r,o){var n=new Blob([i?e:e.buffer],{type:t});s.onwrite=function(){s.onwrite=null,r()},s.onerror=o,s.write(n)},r.getData=function(t){e.file(t)}}o.prototype=new s,o.prototype.constructor=o,n.prototype=new s,n.prototype.constructor=n,a.prototype=new s,a.prototype.constructor=a,l.prototype=new r,l.prototype.constructor=l,A.prototype=new r,A.prototype.constructor=A,e.FileWriter=A,e.HttpReader=o,e.HttpRangeReader=n,e.ArrayBufferReader=a,e.ArrayBufferWriter=l,e.fs&&((t=e.fs.ZipDirectoryEntry).prototype.addHttpContent=function(i,s,r){return function(i,s,r,o){if(i.directory)return o?new t(i.fs,s,r,i):new e.fs.ZipFileEntry(i.fs,s,r,i);throw"Parent entry is not a directory."}(this,i,{data:s,Reader:r?n:o})},t.prototype.importHttpContent=function(e,t,i,s){this.importZip(t?new n(e):new o(e),i,s)},e.fs.FS.prototype.importHttpContent=function(e,i,s,r){this.entries=[],this.root=new t(this),this.root.importHttpContent(e,i,s,r)})}(lb.zip),u.vec2(),u.vec3(),u.vec3(),u.vec3();class Ab{constructor(e={}){this._dataDir=e.dataDir||""}getProjects(e,t){const i=this._dataDir+"/projects/index.json";f.loadJSON(i,e,t)}getProject(e,t,i){const s=this._dataDir+"/projects/"+e+"/index.json";f.loadJSON(s,t,i)}getMetadata(e,t,i,s){const r=this._dataDir+"/projects/"+e+"/models/"+t+"/metadata.json";f.loadJSON(r,i,s)}getGeometry(e,t,i,s){const r=this._dataDir+"/projects/"+e+"/models/"+t+"/geometry.xkt";f.loadArraybuffer(r,i,s)}getObjectInfo(e,t,i,s,r){const o=this._dataDir+"/projects/"+e+"/models/"+t+"/props/"+i+".json";f.loadJSON(o,s,r)}getIssues(e,t,i,s){const r=this._dataDir+"/projects/"+e+"/models/"+t+"/issues.json";f.loadJSON(r,i,s)}getSplitModelManifest(e,t,i,s,r){const o=this._dataDir+"/projects/"+e+"/models/"+t+"/"+i;f.loadJSON(o,s,r)}getSplitModelMetadata(e,t,i,s,r){const o=this._dataDir+"/projects/"+e+"/models/"+t+"/"+i;f.loadJSON(o,s,r)}getSplitModelGeometry(e,t,i,s,r){const o=this._dataDir+"/projects/"+e+"/models/"+t+"/"+i;f.loadArraybuffer(o,s,r)}}class hb{constructor(e,t){this.items=e||[],this._lastUniqueId=(t||0)+1}addItem(){let e;if(2===arguments.length){const t=arguments[0];if(e=arguments[1],this.items[t])throw"ID clash: '"+t+"'";return this.items[t]=e,t}for(e=arguments[0]||{};;){const t=this._lastUniqueId++;if(!this.items[t])return this.items[t]=e,t}}removeItem(e){const t=this.items[e];return delete this.items[e],t}}class cb{constructor(e,t,i,s){this.bimViewer=e?e.bimViewer||e:this,this.server=e?e.server:i,this.viewer=e?e.viewer:s,this._children=[],e&&e._children.push(this),this._subIdMap=null,this._subIdEvents=null,this._eventSubs=null,this._events=null,this._eventCallDepth=0,this._enabled=null,this._active=null}fire(e,t,i){this._events||(this._events={}),this._eventSubs||(this._eventSubs={}),!0!==i&&(this._events[e]=t||!0);const s=this._eventSubs[e];let r;if(s)for(const i in s)s.hasOwnProperty(i)&&(r=s[i],this._eventCallDepth++,this._eventCallDepth<300?r.callback.call(r.scope,t):this.error("fire: potential stack overflow from recursive event '"+e+"' - dropping this event"),this._eventCallDepth--)}on(e,t,i){this._events||(this._events={}),this._subIdMap||(this._subIdMap=new hb),this._subIdEvents||(this._subIdEvents={}),this._eventSubs||(this._eventSubs={});let s=this._eventSubs[e];s||(s={},this._eventSubs[e]=s);const r=this._subIdMap.addItem();s[r]={callback:t,scope:i||this},this._subIdEvents[r]=e;const o=this._events[e];return void 0!==o&&t.call(i||this,o),r}off(e){if(null==e)return;if(!this._subIdEvents)return;const t=this._subIdEvents[e];if(t){delete this._subIdEvents[e];const i=this._eventSubs[t];i&&delete i[e],this._subIdMap.removeItem(e)}}once(e,t,i){const s=this,r=this.on(e,(function(e){s.off(r),t.call(i||this,e)}),i)}log(e){e="[LOG] "+e,window.console.log(e)}warn(e){e="[WARN] "+e,window.console.warn(e)}error(e){e="[ERROR] "+e,window.console.error(e)}_mutexActivation(e){const t=e.length;for(let i=0;i
Default text
',i.appendChild(this._modal),this._modalVisible=!1,this._modal.style.display="hidden"}show(e){this._modalVisible=!0,this._modal.querySelector(".xeokit-busy-modal-message").innerText=e,this._modal.style.display="block"}hide(){this._modalVisible=!1,this._modal.style.display="none"}destroy(){super.destroy(),this._modal&&(this._modal.parentNode.removeChild(this._modal),this._modal=null)}}const db=u.vec3();class pb extends cb{constructor(e,t={}){if(super(e,t),!t.buttonElement)throw"Missing config: buttonElement";const i=t.buttonElement,s=this.viewer.camera;this._modelMementos={},s.eye=[.577,.577,.577],s.look=[0,0,0],s.up=[-1,1,-1],this.bimViewer._modelsExplorer.on("modelLoaded",(e=>{this._saveModelMemento(e)})),this.bimViewer._modelsExplorer.on("modelUnloaded",(e=>{this._destroyModelMemento(e)})),this.on("enabled",(e=>{e?i.classList.remove("disabled"):i.classList.add("disabled")})),this.on("active",(e=>{e?i.classList.add("active"):i.classList.remove("active")})),i.addEventListener("click",(e=>{this.getEnabled()&&this.reset(),e.preventDefault()}))}_saveModelMemento(e){const t=this.viewer.metaScene.metaModels[e];if(!t)return;const i=new eh;i.saveObjects(this.viewer.scene,t,{visible:!0,edges:!0,xrayed:!0,highlighted:!0,selected:!0,clippable:!0,pickable:!0,colorize:!1,opacity:!1}),this._modelMementos[e]=i}_restoreModelMemento(e){const t=this.viewer.metaScene.metaModels[e];if(!t)return;this._modelMementos[e].restoreObjects(this.viewer.scene,t)}_destroyModelMemento(e){delete this._modelMementos[e]}reset(){const e=this.viewer.scene.modelIds;for(var t=0,i=e.length;t{e?i.classList.remove("disabled"):i.classList.add("disabled")})),this.on("active",(e=>{e?i.classList.add("active"):i.classList.remove("active")})),i.addEventListener("click",(e=>{this.getEnabled()&&this.fit(),e.preventDefault()}))}fit(){const e=this.viewer.scene,t=e.getAABB(e.visibleObjectIds);this.viewer.cameraFlight.flyTo({aabb:t}),this.viewer.cameraControl.pivotPos=u.getAABB3Center(t,gb)}set fov(e){this.viewer.scene.cameraFlight.fitFOV=e}get fov(){return this.viewer.scene.cameraFlight.fitFOV}set duration(e){this.viewer.scene.cameraFlight.duration=e}get duration(){return this.viewer.scene.cameraFlight.duration}}class fb extends cb{constructor(e,t){if(super(e,t),!t.buttonElement)throw"Missing config: buttonElement";const i=t.buttonElement,s=this.viewer.cameraControl,r=t.cameraControlNavModeMediator;s.navMode="orbit",s.followPointer=!0,this.on("enabled",(e=>{e?i.classList.remove("disabled"):i.classList.add("disabled")})),this.on("active",(e=>{e?i.classList.add("active"):i.classList.remove("active")})),this.on("active",(e=>{r.setFirstPersonModeActive(e),e?(s.followPointer=!0,s.pivoting=!1):s.pivoting=!0})),i.addEventListener("click",(e=>{if(this.getEnabled()){const e=this.getActive();this.setActive(!e)}e.preventDefault()})),this.bimViewer.on("reset",(()=>{this.setActive(!1)}))}}class _b extends cb{constructor(e,t){if(super(e,t),!t.buttonElement)throw"Missing config: buttonElement";const i=t.buttonElement;this.on("enabled",(e=>{e?i.classList.remove("disabled"):i.classList.add("disabled")})),this.on("active",(e=>{e?(i.classList.add("active"),this.viewer.cameraControl.doublePickFlyTo=!1,this._onPick=this.viewer.cameraControl.on("picked",(e=>{e.entity&&(e.entity.visible=!1)}))):(i.classList.remove("active"),this.viewer.cameraControl.doublePickFlyTo=!1,void 0!==this._onPick&&(this.viewer.cameraControl.off(this._onPick),this._onPick=void 0))})),i.addEventListener("click",(e=>{if(this.getEnabled()){this.bimViewer._sectionTool.hideControl();const e=this.getActive();this.setActive(!e)}e.preventDefault()})),this.bimViewer.on("reset",(()=>{this.setActive(!1)}))}}class vb extends cb{constructor(e,t){if(super(e),!t.buttonElement)throw"Missing config: buttonElement";const i=t.buttonElement;this.on("enabled",(e=>{e?i.classList.remove("disabled"):i.classList.add("disabled")})),this.on("active",(e=>{e?(i.classList.add("active"),this._onPick=this.viewer.cameraControl.on("picked",(e=>{e.entity&&(e.entity.selected=!e.entity.selected)}))):(i.classList.remove("active"),void 0!==this._onPick&&(this.viewer.cameraControl.off(this._onPick),this._onPick=void 0))})),i.addEventListener("click",(e=>{if(this.getEnabled()){this.bimViewer._sectionTool.hideControl();const e=this.getActive();this.setActive(!e)}e.preventDefault()})),this.bimViewer.on("reset",(()=>{this.setActive(!1)}))}}class bb extends cb{constructor(e,t){if(super(e,t),!t.buttonElement)throw"Missing config: buttonElement";this._buttonElement=t.buttonElement,this.on("enabled",(e=>{e?this._buttonElement.classList.remove("disabled"):this._buttonElement.classList.add("disabled")})),this._buttonElement.addEventListener("click",(e=>{this.getEnabled()&&this.setActive(!this.getActive(),(()=>{})),e.preventDefault()})),this.bimViewer.on("reset",(()=>{this.setActive(!1)})),this.viewer.scene.on("modelLoaded",(e=>{if(!this._active){const e=this.viewer.metaScene.getObjectIDsByType("IfcSpace");this.viewer.scene.setObjectsCulled(e,!0)}})),this._active=!1,this._buttonElement.classList.remove("active")}setActive(e){this._active!==e&&(this._active=e,e?(this._buttonElement.classList.add("active"),this._enterShowSpacesMode(),this.fire("active",this._active)):(this._buttonElement.classList.remove("active"),this._exitShowSpacesMode(),this.fire("active",this._active)))}_enterShowSpacesMode(){const e=this.viewer,t=e.scene,i=e.metaScene.getObjectIDsByType("IfcSpace");t.setObjectsCulled(i,!1)}_exitShowSpacesMode(){const e=this.viewer,t=e.scene,i=e.metaScene.getObjectIDsByType("IfcSpace");t.setObjectsCulled(i,!0)}}class xb extends cb{constructor(e,t){super(e)}}const wb=u.AABB3(),yb=u.vec3();class Pb extends o{constructor(e={}){if(!e.sectionPlanesPlugin)throw"Missing config: sectionPlanesPlugin";super(f.apply({},e)),this._sectionPlanesPlugin=e.sectionPlanesPlugin,this._viewer=this._sectionPlanesPlugin.viewer,this._onSceneSectionPlaneCreated=this._viewer.scene.on("sectionPlaneCreated",(()=>{this._buildMenu()})),this._onSceneSectionPlaneDestroyed=this._viewer.scene.on("sectionPlaneDestroyed",(()=>{this._buildMenu()})),this._buildMenu()}_buildMenu(){const e=this._sectionPlanesPlugin,t=Object.values(e.sectionPlanes),i=[];for(let s=0,r=t.length;s`${e.viewer.localeService.translate("sectionToolContextMenu.slice")||"Slice"} #`+(s+1),doHoverEnter(t){e.hideControl(),e.showControl(r.id)},doHoverLeave(t){e.hideControl()},items:[[{getTitle:e=>r.active?e.viewer.localeService.translate("sectionToolContextMenu.deactivate")||"Disable":e.viewer.localeService.translate("sectionToolContextMenu.activate")||"Enable",doAction:e=>{r.active=!r.active}},{getTitle:e=>e.viewer.localeService.translate("sectionToolContextMenu.edit")||"Edit",getEnabled:()=>r.active,doAction:t=>{e.hideControl(),e.showControl(r.id);const i=r.pos;wb.set(this._viewer.scene.aabb),u.getAABB3Center(wb,yb),wb[0]+=i[0]-yb[0],wb[1]+=i[1]-yb[1],wb[2]+=i[2]-yb[2],wb[3]+=i[0]-yb[0],wb[4]+=i[1]-yb[1],wb[5]+=i[2]-yb[2],this._viewer.cameraFlight.flyTo({aabb:wb,fitFOV:65})}},{getTitle:e=>e.viewer.localeService.translate("sectionToolContextMenu.flip")||"Flip",getEnabled:()=>r.active,doAction:e=>{r.flipDir()}},{getTitle:e=>e.viewer.localeService.translate("sectionToolContextMenu.delete")||"Delete",doAction:e=>{r.destroy()}}]]})}this.items=[[{getTitle:e=>e.viewer.localeService.translate("sectionToolContextMenu.clearSlices")||"Clear Slices",getEnabled:e=>e.bimViewer.getNumSections()>0,doAction:e=>{e.bimViewer.clearSections()}},{getTitle:e=>e.viewer.localeService.translate("sectionToolContextMenu.flipSlices")||"Flip Slices",getEnabled:e=>e.bimViewer.getNumSections()>0,doAction:e=>{e.bimViewer.flipSections()}}],[{getTitle:e=>e.viewer.localeService.translate("sectionToolContextMenu.disableAllSlices")||"Disable all Slices",getEnabled:e=>e.bimViewer.getNumSections()>0,doAction:e=>{e.bimViewer.disableSections()}},{getTitle:e=>e.viewer.localeService.translate("sectionToolContextMenu.enableAllSlices")||"Enable all Slices",getEnabled:e=>e.bimViewer.getNumSections()>0,doAction:e=>{e.bimViewer.enableSections()}}],i]}destroy(){super.destroy();const e=this._viewer.scene;e.off(this._onSceneSectionPlaneCreated),e.off(this._onSceneSectionPlaneDestroyed)}}class Bb extends cb{constructor(e,t){if(super(e,t),!t.buttonElement)throw"Missing config: buttonElement";if(!t.menuButtonElement)throw"Missing config: menuButtonElement";this._buttonElement=t.buttonElement,this._counterElement=t.counterElement,this._menuButtonElement=t.menuButtonElement,this._menuButtonArrowElement=t.menuButtonArrowElement,this._sectionPlanesPlugin=new gv(this.viewer,{}),this._sectionToolContextMenu=new Pb({sectionPlanesPlugin:this._sectionPlanesPlugin,hideOnMouseDown:!1,hideOnAction:!1}),this._sectionPlanesPlugin.setOverviewVisible(!1),this.on("enabled",(e=>{e?(this._buttonElement.classList.remove("disabled"),this._counterElement&&this._counterElement.classList.remove("disabled"),this._menuButtonElement.classList.remove("disabled"),this._menuButtonArrowElement.classList.remove("disabled")):(this._buttonElement.classList.add("disabled"),this._counterElement&&this._counterElement.classList.add("disabled"),this._menuButtonElement.classList.add("disabled"),this._menuButtonArrowElement.classList.add("disabled"))})),this.on("active",(e=>{e?(this._buttonElement.classList.add("active"),this._counterElement&&this._counterElement.classList.add("active"),this._menuButtonElement.classList.add("active"),this._menuButtonArrowElement.classList.add("active")):(this._buttonElement.classList.remove("active"),this._counterElement&&this._counterElement.classList.remove("active"),this._menuButtonElement.classList.remove("active"),this._menuButtonArrowElement.classList.remove("active"))})),this.on("active",(e=>{e||this._sectionPlanesPlugin.hideControl()})),this._buttonElement.addEventListener("click",(e=>{if(!this.getEnabled())return;if(e.target===this._menuButtonElement||e.target.parentNode===this._menuButtonElement){if(this._sectionToolContextMenu.shown)this._sectionToolContextMenu.hide();else{this._sectionToolContextMenu.context={bimViewer:this.bimViewer,viewer:this.viewer,sectionTool:this};const e=this._menuButtonElement.getBoundingClientRect();this._sectionToolContextMenu.show(e.left,e.bottom+5)}return}const t=this.getActive();this.setActive(!t),e.preventDefault()})),this._sectionToolContextMenu.on("shown",(()=>{this._menuButtonArrowElement.classList.remove("xeokit-arrow-down"),this._menuButtonArrowElement.classList.add("xeokit-arrow-up")})),this._sectionToolContextMenu.on("hidden",(()=>{this._menuButtonArrowElement.classList.remove("xeokit-arrow-up"),this._menuButtonArrowElement.classList.add("xeokit-arrow-down")})),this.bimViewer.on("reset",(()=>{this.clear(),this.setActive(!1)})),this.viewer.scene.on("sectionPlaneCreated",(()=>{this._updateSectionPlanesCount()})),this.viewer.scene.on("sectionPlaneDestroyed",(()=>{this._updateSectionPlanesCount()})),this._initSectionMode()}_initSectionMode(){document.addEventListener("mouseup",(e=>{if(1===e.which){const t=function(e){if(e){let t=e.target,i=0,s=0;for(;t.offsetParent;)i+=t.offsetLeft,s+=t.offsetTop,t=t.offsetParent;return[e.pageX-i,e.pageY-s]}e=window.event,this.mouseCanvasPos[0]=e.x,this.mouseCanvasPos[1]=e.y}(e);if(!this.getActive()||!this.getEnabled())return;const i=this.viewer.scene.pick({canvasPos:t,pickSurface:!0});if(i){const e=this._sectionPlanesPlugin.createSectionPlane({pos:i.worldPos,dir:u.mulVec3Scalar(i.worldNormal,-1)});this._sectionPlanesPlugin.showControl(e.id)}}})),this._updateSectionPlanesCount()}_updateSectionPlanesCount(){this._counterElement&&(this._counterElement.innerText=""+this.getNumSections())}getNumSections(){return Object.keys(this.viewer.scene.sectionPlanes).length}clear(){this._sectionPlanesPlugin.clear(),this._updateSectionPlanesCount()}flipSections(){this._sectionPlanesPlugin.flipSectionPlanes()}enableSections(){const e=this.viewer.scene.sectionPlanes;for(let t in e){e[t].active=!0}}disableSections(){const e=this.viewer.scene.sectionPlanes;for(let t in e){e[t].active=!1}}hideControl(){this._sectionPlanesPlugin.hideControl()}destroy(){this._sectionPlanesPlugin.destroy(),this._sectionToolContextMenu.destroy(),super.destroy()}}class Cb extends cb{constructor(e,t){if(super(e,t),!t.navCubeCanvasElement)throw"Missing config: navCubeCanvasElement";const i=t.navCubeCanvasElement;this._navCube=new av(this.viewer,{canvasElement:i,fitVisible:!0,color:"#CFCFCF"}),this._navCube.setVisible(this._active),this.on("active",(e=>{this._navCube.setVisible(e)}))}destroy(){this._navCube.destroy(),super.destroy()}}class Mb extends o{constructor(e={}){const t=!!e.enableEditModels,i=!!e.enableMeasurements,s=[[{getTitle:e=>e.viewer.localeService.translate("modelsContextMenu.loadModel")||"Load",getEnabled:e=>!e.bimViewer.isModelLoaded(e.modelId),doAction:e=>{e.bimViewer.loadModel(e.modelId)}},{getTitle:e=>e.viewer.localeService.translate("modelsContextMenu.unloadModel")||"Unload",getEnabled:e=>e.bimViewer.isModelLoaded(e.modelId),doAction:e=>{e.bimViewer.unloadModel(e.modelId)}}]];t&&s.push([{getTitle:e=>e.viewer.localeService.translate("modelsContextMenu.editModel")||"Edit",getEnabled:e=>!0,doAction:e=>{e.bimViewer.editModel(e.modelId)}},{getTitle:e=>e.viewer.localeService.translate("modelsContextMenu.deleteModel")||"Delete",getEnabled:e=>!0,doAction:e=>{e.bimViewer.deleteModel(e.modelId)}}]),s.push([{getTitle:e=>e.viewer.localeService.translate("modelsContextMenu.loadAllModels")||"Load All",getEnabled:e=>{const t=e.bimViewer,i=t.getModelIds();return t.getLoadedModelIds().length{e.bimViewer.loadAllModels()}},{getTitle:e=>e.viewer.localeService.translate("modelsContextMenu.unloadAllModels")||"Unload All",getEnabled:e=>e.bimViewer.getLoadedModelIds().length>0,doAction:e=>{e.bimViewer.unloadAllModels()}}]),s.push([{getTitle:e=>e.viewer.localeService.translate("modelsContextMenu.clearSlices")||"Clear Slices",getEnabled:e=>e.bimViewer.getNumSections()>0,doAction:e=>{e.bimViewer.clearSections()}}]),i&&s.push([{getTitle:e=>e.viewer.localeService.translate("canvasContextMenu.measurements")||"Measurements",doAction:function(e){},items:[[{getTitle:e=>e.viewer.localeService.translate("canvasContextMenu.clearMeasurements")||"Clear",getEnabled:e=>e.bimViewer.getNumMeasurements()>0,doAction:e=>{e.bimViewer.clearMeasurements()}},{getTitle:e=>e.bimViewer.getMeasurementsAxisVisible()?e.viewer.localeService.translate("canvasContextMenu.hideMeasurementAxisWires")||"Hide Axis Wires":e.viewer.localeService.translate("canvasContextMenu.showMeasurementAxisWires")||"Show Axis Wires",getEnabled:e=>e.bimViewer.getNumMeasurements()>0,doAction:e=>{e.bimViewer.setMeasurementsAxisVisible(!e.bimViewer.getMeasurementsAxisVisible())}},{getTitle:e=>e.bimViewer.getMeasurementsSnappingEnabled()?e.viewer.localeService.translate("canvasContextMenu.disableMeasurementSnapping")||"Disable Snapping":e.viewer.localeService.translate("canvasContextMenu.enableMeasurementSnapping")||"Enable Snapping",getEnabled:e=>e.bimViewer.getNumMeasurements()>0,doAction:e=>{e.bimViewer.setMeasurementsSnappingEnabled(!e.bimViewer.getMeasurementsSnappingEnabled())}}]]}]),super({hideOnAction:e.hideOnAction,context:e.context,items:s})}}const Eb=u.vec3();class Fb{constructor(e){this._server=e}setProjectId(e){this._projectId=e}setModelId(e){this._modelId=e}getManifest(e,t,i){this._server.getSplitModelManifest(this._projectId,this._modelId,e,t,i)}getMetaModel(e,t,i){this._server.getSplitModelMetadata(this._projectId,this._modelId,e,t,i)}getXKT(e,t,i){this._server.getSplitModelGeometry(this._projectId,this._modelId,e,t,i)}}class Ib extends cb{constructor(e,t){if(super(e,t),!t.modelsTabElement)throw"Missing config: modelsTabElement";if(!t.unloadModelsButtonElement)throw"Missing config: unloadModelsButtonElement";if(!t.modelsElement)throw"Missing config: modelsElement";if(this._enableAddModels=!!t.enableEditModels,this._modelsTabElement=t.modelsTabElement,this._loadModelsButtonElement=t.loadModelsButtonElement,this._unloadModelsButtonElement=t.unloadModelsButtonElement,this._addModelButtonElement=t.addModelButtonElement,this._modelsElement=t.modelsElement,this._modelsTabButtonElement=this._modelsTabElement.querySelector(".xeokit-tab-btn"),!this._modelsTabButtonElement)throw"Missing DOM element: ,xeokit-tab-btn";this._dataSource=new Fb(this.server),this._xktLoader=new ab(this.viewer,{dataSource:this._dataSource}),this._modelsContextMenu=new Mb({enableEditModels:t.enableEditModels,enableMeasurements:t.enableMeasurements,hideOnAction:!0}),this._modelsInfo={},this._numModels=0,this._numModelsLoaded=0,this._projectId=null}setObjectColors(e){this._xktLoader.objectDefaults=e}loadProject(e,t,i){this.server.getProject(e,(i=>{this.unloadProject(),this._projectId=e,this._modelsInfo={},this._numModels=0,this._parseProject(i,t),this._numModelsLoaded0&&this._unloadModelsButtonElement.classList.remove("disabled"),this._enableAddModels&&this._addModelButtonElement.classList.remove("disabled")}),(e=>{this.error(e),i&&i(e)}))}_parseProject(e,t){this._buildModelsMenu(e),this._parseViewerConfigs(e),this._parseViewerContent(e,(()=>{this._parseViewerState(e,(()=>{t()}))}))}_buildModelsMenu(e){var t="";const i=e.models||[];this._modelsInfo={},this._numModels=i.length;for(let e=0,s=i.length;e",t+=""+s.name+"",t+=""}this._modelsElement.innerHTML=t;for(let e=0,t=i.length;e{r.checked?this.loadModel(s):this.unloadModel(t.id)})),o.addEventListener("click",(()=>{!!this.viewer.scene.models[s]?this.unloadModel(t.id):this.loadModel(s)})),o.oncontextmenu=e=>{this._modelsContextMenu.context={bimViewer:this.bimViewer,viewer:this.viewer,modelId:s},this._modelsContextMenu.show(e.pageX,e.pageY),e.preventDefault()}}}_parseViewerConfigs(e){const t=e.viewerConfigs;t&&this.bimViewer.setConfigs(t)}_parseViewerContent(e,t){const i=e.viewerContent;i?this._parseModelsLoaded(i,(()=>{t()})):t()}_parseModelsLoaded(e,t){const i=e.modelsLoaded;i&&0!==i.length?this._loadNextModel(i.slice(0),t):t()}_loadNextModel(e,t){if(0===e.length)return void t();const i=e.pop();this.loadModel(i,(()=>{this._loadNextModel(e,t)}),(()=>{this._loadNextModel(e,t)}))}_parseViewerState(e,t){const i=e.viewerState;i?this.bimViewer.setViewerState(i,t):t()}unloadProject(){if(!this._projectId)return;const e=this.viewer.scene.models;for(var t in e)if(e.hasOwnProperty(t)){e[t].destroy()}this._modelsElement.innerHTML="",this._numModelsLoaded=0,this._loadModelsButtonElement.classList.add("disabled"),this._unloadModelsButtonElement.classList.add("disabled"),this._enableAddModels&&this._addModelButtonElement.classList.add("disabled");const i=this._projectId;this._projectId=null,this.fire("projectUnloaded",{projectId:i})}getLoadedProjectId(){return this._projectId}getModelIds(){return Object.keys(this._modelsInfo)}loadModel(e,t,i){if(!this._projectId){const e="No project currently loaded";return this.error(e),void(i&&i(e))}const s=this._modelsInfo[e];if(!s){const e="Model not in currently loaded project";return this.error(e),void(i&&i(e))}this.bimViewer._busyModal.show(`${this.viewer.localeService.translate("busyModal.loading")||"Loading"} ${s.name}`);this.bimViewer.getConfig("externalMetadata")&&!s.manifest?this.server.getMetadata(this._projectId,e,(r=>{this._loadGeometry(e,s,r,t,i)}),(e=>{this.bimViewer._busyModal.hide(),this.error(e),i&&i(e)})):this._loadGeometry(e,s,null,t,i)}_loadGeometry(e,t,i,s,r){const o=()=>{document.getElementById(""+e).checked=!0,this._numModelsLoaded++,this._unloadModelsButtonElement.classList.remove("disabled"),this._numModelsLoaded{this.bimViewer._busyModal.hide(),this.error(e),r&&r(e)};if(t.manifest){this._dataSource.setProjectId(this._projectId),this._dataSource.setModelId(e);const i=this._xktLoader.load({id:e,manifestSrc:t.manifest,excludeUnclassifiedObjects:!0,origin:t.origin||t.position,scale:t.scale,rotation:t.rotation,matrix:t.matrix,edges:!1!==t.edges,saoEnabled:t.saoEnabled,pbrEnabled:t.pbrEnabled,backfaces:t.backfaces,globalizeObjectIds:t.globalizeObjectIds,reuseGeometries:!1!==t.reuseGeometries});i.on("loaded",o),i.on("error",n)}else this.server.getGeometry(this._projectId,e,(s=>{const r=this._xktLoader.load({id:e,metaModelData:i,xkt:s,excludeUnclassifiedObjects:!0,origin:t.origin||t.position,scale:t.scale,rotation:t.rotation,matrix:t.matrix,edges:!1!==t.edges,saoEnabled:t.saoEnabled,pbrEnabled:t.pbrEnabled,backfaces:t.backfaces,globalizeObjectIds:t.globalizeObjectIds,reuseGeometries:!1!==t.reuseGeometries});r.on("loaded",o),r.on("error",n)}),n)}_jumpToInitialCamera(){const e=this.viewer,t=e.scene,i=t.getAABB(t.visibleObjectIds),s=u.getAABB3Diag(i),r=u.getAABB3Center(i,Eb),o=t.camera;o.perspective.fov;const n=Math.abs(s/Math.tan(45*u.DEGTORAD)),a=u.normalizeVec3(o.yUp?[-.5,-.7071,-.5]:[-1,1,-1]),l=u.normalizeVec3(o.yUp?[-.5,.7071,-.5]:[-1,1,1]);e.cameraControl.pivotPos=r,e.cameraControl.planView=!1,e.cameraFlight.jumpTo({look:r,eye:[r[0]-n*a[0],r[1]-n*a[1],r[2]-n*a[2]],up:l,orthoScale:1.1*s})}unloadModel(e){const t=this.viewer.scene.models[e];if(!t)return void this.error("Model not loaded: "+e);t.destroy();document.getElementById(""+e).checked=!1,document.getElementById("span-"+e),this._numModelsLoaded--,this._numModelsLoaded>0?this._unloadModelsButtonElement.classList.remove("disabled"):this._unloadModelsButtonElement.classList.add("disabled"),this._numModelsLoadede.viewer.localeService.translate("treeViewContextMenu.inspectProperties")||"Inspect Properties",getShown:e=>!!e.viewer.metaScene.metaObjects[e.treeViewNode.objectId],doAction:e=>{const t=e.treeViewNode.objectId;e.bimViewer.showObjectProperties(t)}}),i.push({getTitle:e=>e.viewer.localeService.translate("treeViewContextMenu.viewFit")||"View Fit",doAction:function(e){const t=e.viewer,i=t.scene,s=[];e.treeViewPlugin.withNodeTree(e.treeViewNode,(e=>{e.objectId&&s.push(e.objectId)})),i.setObjectsVisible(s,!0),i.setObjectsHighlighted(s,!0);const r=i.getAABB(s);t.cameraFlight.flyTo({aabb:r,duration:.5},(()=>{setTimeout((function(){i.setObjectsHighlighted(i.highlightedObjectIds,!1)}),500)})),t.cameraControl.pivotPos=u.getAABB3Center(r)}},{getTitle:e=>e.viewer.localeService.translate("canvasContextMenu.viewFitSelection")||"View Fit Selected",getEnabled:e=>e.viewer.scene.numSelectedObjects>0,doAction:e=>{const t=e.viewer,i=t.scene,s=i.getAABB(i.selectedObjectIds);t.cameraFlight.flyTo({aabb:s,duration:.5}),t.cameraControl.pivotPos=u.getAABB3Center(s)}},{getTitle:e=>e.viewer.localeService.translate("treeViewContextMenu.viewFitAll")||"View Fit All",doAction:function(e){const t=e.viewer,i=t.scene,s=i.getAABB(i.visibleObjectIds);t.cameraFlight.flyTo({aabb:s,duration:.5}),t.cameraControl.pivotPos=u.getAABB3Center(s)}}),r&&s.push({getTitle:e=>e.viewer.localeService.translate("canvasContextMenu.measurements")||"Measurements",doAction:function(e){},items:[[{getTitle:e=>e.viewer.localeService.translate("canvasContextMenu.clearMeasurements")||"Clear",getEnabled:e=>e.bimViewer.getNumMeasurements()>0,doAction:e=>{e.bimViewer.clearMeasurements()}},{getTitle:e=>e.bimViewer.getMeasurementsAxisVisible()?e.viewer.localeService.translate("canvasContextMenu.hideMeasurementAxisWires")||"Hide Axis Wires":e.viewer.localeService.translate("canvasContextMenu.showMeasurementAxisWires")||"Show Axis Wires",getEnabled:e=>e.bimViewer.getNumMeasurements()>0,doAction:e=>{e.bimViewer.setMeasurementsAxisVisible(!e.bimViewer.getMeasurementsAxisVisible())}},{getTitle:e=>e.bimViewer.getMeasurementsSnappingEnabled()?e.viewer.localeService.translate("canvasContextMenu.disableMeasurementSnapping")||"Disable Snapping":e.viewer.localeService.translate("canvasContextMenu.enableMeasurementSnapping")||"Enable Snapping",getEnabled:e=>e.bimViewer.getNumMeasurements()>0,doAction:e=>{e.bimViewer.setMeasurementsSnappingEnabled(!e.bimViewer.getMeasurementsSnappingEnabled())}}]]}),this.items=[t,i,[{getTitle:e=>e.viewer.localeService.translate("treeViewContextMenu.isolate")||"Isolate",doAction:function(e){const t=e.viewer,i=t.scene,s=[];e.treeViewPlugin.withNodeTree(e.treeViewNode,(e=>{e.objectId&&s.push(e.objectId)}));const r=i.getAABB(s);t.cameraControl.pivotPos=u.getAABB3Center(r,Db),i.setObjectsXRayed(i.xrayedObjectIds,!1),i.setObjectsVisible(i.visibleObjectIds,!1),i.setObjectsSelected(i.selectedObjectIds,!1),i.setObjectsVisible(s,!0),t.cameraFlight.flyTo({aabb:r},(()=>{}))}}],[{getTitle:e=>e.viewer.localeService.translate("treeViewContextMenu.hide")||"Hide",doAction:function(e){e.treeViewPlugin.withNodeTree(e.treeViewNode,(t=>{if(t.objectId){const i=e.viewer.scene.objects[t.objectId];i&&(i.visible=!1)}}))}},{getTitle:e=>e.viewer.localeService.translate("treeViewContextMenu.hideOthers")||"Hide Others",doAction:function(e){const t=e.viewer.scene;t.setObjectsVisible(t.visibleObjectIds,!1),t.setObjectsPickable(t.xrayedObjectIds,!0),t.setObjectsXRayed(t.xrayedObjectIds,!1),e.treeViewPlugin.withNodeTree(e.treeViewNode,(e=>{if(e.objectId){const i=t.objects[e.objectId];i&&(i.visible=!0)}}))}},{getTitle:e=>e.viewer.localeService.translate("treeViewContextMenu.hideAll")||"Hide All",getEnabled:function(e){return e.viewer.scene.visibleObjectIds.length>0},doAction:function(e){e.viewer.scene.setObjectsVisible(e.viewer.scene.visibleObjectIds,!1)}}],[{getTitle:e=>e.viewer.localeService.translate("treeViewContextMenu.show")||"Show",doAction:function(e){e.treeViewPlugin.withNodeTree(e.treeViewNode,(t=>{if(t.objectId){const i=e.viewer.scene.objects[t.objectId];i&&(i.visible=!0,i.xrayed&&(i.pickable=!0),i.xrayed=!1,i.selected=!1)}}))}},{getTitle:e=>e.viewer.localeService.translate("treeViewContextMenu.showOthers")||"Shows Others",doAction:function(e){const t=e.viewer.scene;t.setObjectsVisible(t.objectIds,!0),t.setObjectsPickable(t.xrayedObjectIds,!0),t.setObjectsXRayed(t.xrayedObjectIds,!1),e.treeViewPlugin.withNodeTree(e.treeViewNode,(e=>{if(e.objectId){const i=t.objects[e.objectId];i&&(i.visible=!1)}}))}},{getTitle:e=>e.viewer.localeService.translate("treeViewContextMenu.showAll")||"Show All",getEnabled:function(e){const t=e.viewer.scene;return t.numVisibleObjects0},doAction:function(e){const t=e.viewer.scene;t.setObjectsVisible(t.objectIds,!0),t.setObjectsPickable(t.xrayedObjectIds,!0),t.setObjectsXRayed(t.xrayedObjectIds,!1)}}],[{getTitle:e=>e.viewer.localeService.translate("treeViewContextMenu.xray")||"X-Ray",doAction:function(e){e.treeViewPlugin.withNodeTree(e.treeViewNode,(t=>{if(t.objectId){const i=e.viewer.scene.objects[t.objectId];i&&(i.selected=!1,i.xrayed=!0,i.visible=!0,i.pickable=e.bimViewer.getConfig("xrayPickable"))}}))}},{getTitle:e=>e.viewer.localeService.translate("treeViewContextMenu.undoXray")||"Undo X-Ray",doAction:function(e){e.treeViewPlugin.withNodeTree(e.treeViewNode,(t=>{if(t.objectId){const i=e.viewer.scene.objects[t.objectId];i&&(i.xrayed=!1,i.pickable=!0)}}))}},{getTitle:e=>e.viewer.localeService.translate("treeViewContextMenu.xrayOthers")||"X-Ray Others",doAction:function(e){const t=e.viewer.scene;t.setObjectsVisible(t.objectIds,!0),e.bimViewer.getConfig("xrayPickable")||t.setObjectsPickable(t.objectIds,!1),t.setObjectsXRayed(t.objectIds,!0),t.setObjectsSelected(t.selectedObjectIds,!1),e.treeViewPlugin.withNodeTree(e.treeViewNode,(e=>{if(e.objectId){const i=t.objects[e.objectId];i&&(i.xrayed=!1,i.pickable=!0)}}))}},{getTitle:e=>e.viewer.localeService.translate("treeViewContextMenu.xrayAll")||"X-Ray All",doAction:function(e){const t=e.viewer.scene;t.setObjectsVisible(t.objectIds,!0),t.setObjectsXRayed(t.objectIds,!0),t.setObjectsSelected(t.selectedObjectIds,!1),t.setObjectsPickable(t.objectIds,!1)}},{getTitle:e=>e.viewer.localeService.translate("treeViewContextMenu.xrayNone")||"X-Ray None",getEnabled:function(e){return e.viewer.scene.numXRayedObjects>0},doAction:function(e){const t=e.viewer.scene,i=t.xrayedObjectIds;t.setObjectsPickable(i,!0),t.setObjectsXRayed(i,!1)}}],[{getTitle:e=>e.viewer.localeService.translate("treeViewContextMenu.select")||"Select",doAction:function(e){e.treeViewPlugin.withNodeTree(e.treeViewNode,(t=>{if(t.objectId){const i=e.viewer.scene.objects[t.objectId];i&&(i.selected=!0,i.visible=!0)}}))}},{getTitle:e=>e.viewer.localeService.translate("treeViewContextMenu.undoSelect")||"Undo Select",doAction:function(e){e.treeViewPlugin.withNodeTree(e.treeViewNode,(t=>{if(t.objectId){const i=e.viewer.scene.objects[t.objectId];i&&(i.selected=!1)}}))}},{getTitle:e=>e.viewer.localeService.translate("treeViewContextMenu.selectNone")||"Select None",getEnabled:function(e){return e.viewer.scene.numSelectedObjects>0},doAction:function(e){e.viewer.scene.setObjectsSelected(e.viewer.scene.selectedObjectIds,!1)}}],[{getTitle:e=>e.viewer.localeService.translate("treeViewContextMenu.clearSlices")||"Clear Slices",getEnabled:function(e){return e.bimViewer.getNumSections()>0},doAction:function(e){e.bimViewer.clearSections()}}],s]}}class Tb extends cb{constructor(e,t={}){if(super(e),!t.objectsTabElement)throw"Missing config: objectsTabElement";if(!t.showAllObjectsButtonElement)throw"Missing config: showAllObjectsButtonElement";if(!t.hideAllObjectsButtonElement)throw"Missing config: hideAllObjectsButtonElement";if(!t.objectsElement)throw"Missing config: objectsElement";if(this._objectsTabElement=t.objectsTabElement,this._showAllObjectsButtonElement=t.showAllObjectsButtonElement,this._hideAllObjectsButtonElement=t.hideAllObjectsButtonElement,this._objectsTabButtonElement=this._objectsTabElement.querySelector(".xeokit-tab-btn"),!this._objectsTabButtonElement)throw"Missing DOM element: ,xeokit-tab-btn";const i=t.objectsElement;this._treeView=new _v(this.viewer,{containerElement:i,hierarchy:"containment",autoAddModels:!1,pruneEmptyNodes:!0}),this._treeViewContextMenu=new Sb(this.bimViewer,{hideOnAction:!0,enableMeasurements:t.enableMeasurements}),this._treeView.on("contextmenu",(e=>{this._treeViewContextMenu.context={bimViewer:this.bimViewer,viewer:e.viewer,treeViewPlugin:e.treeViewPlugin,treeViewNode:e.treeViewNode},this._treeViewContextMenu.show(e.event.pageX,e.event.pageY)})),this._treeView.on("nodeTitleClicked",(e=>{const t=this.viewer.scene,i=[];e.treeViewPlugin.withNodeTree(e.treeViewNode,(e=>{e.objectId&&i.push(e.objectId)}));e.treeViewNode.checked?(t.setObjectsXRayed(i,!1),t.setObjectsVisible(i,!1),t.setObjectsPickable(i,!0)):(t.setObjectsXRayed(i,!1),t.setObjectsVisible(i,!0),t.setObjectsPickable(i,!0))})),this._onModelLoaded=this.viewer.scene.on("modelLoaded",(e=>{if(this.viewer.metaScene.metaModels[e]){const t=this.bimViewer._modelsExplorer.getModelInfo(e);if(!t)return;this._treeView.addModel(e,{rootName:t.name})}})),this._onModelUnloaded=this.viewer.scene.on("modelUnloaded",(e=>{this.viewer.metaScene.metaModels[e]&&this._treeView.removeModel(e)})),this.bimViewer.on("reset",(()=>{this._treeView.collapse()}))}setEnabled(e){e?(this._objectsTabButtonElement.classList.remove("disabled"),this._showAllObjectsButtonElement.classList.remove("disabled"),this._hideAllObjectsButtonElement.classList.remove("disabled")):(this._objectsTabButtonElement.classList.add("disabled"),this._showAllObjectsButtonElement.classList.add("disabled"),this._hideAllObjectsButtonElement.classList.add("disabled"))}expandTreeViewToDepth(e){this._treeView.expandToDepth(e)}showNodeInTreeView(e){this._treeView.collapse(),this._treeView.showNode(e)}unShowNodeInTreeView(){this._treeView.unShowNode()}destroy(){super.destroy(),this._treeView.destroy(),this._treeViewContextMenu.destroy(),this.viewer.scene.off(this._onModelLoaded),this.viewer.scene.off(this._onModelUnloaded)}}class Rb extends cb{constructor(e,t={}){if(super(e),!t.classesTabElement)throw"Missing config: classesTabElement";if(!t.showAllClassesButtonElement)throw"Missing config: showAllClassesButtonElement";if(!t.hideAllClassesButtonElement)throw"Missing config: hideAllClassesButtonElement";if(!t.classesElement)throw"Missing config: classesElement";if(this._classesTabElement=t.classesTabElement,this._showAllClassesButtonElement=t.showAllClassesButtonElement,this._hideAllClassesButtonElement=t.hideAllClassesButtonElement,this._classesTabButtonElement=this._classesTabElement.querySelector(".xeokit-tab-btn"),!this._classesTabButtonElement)throw"Missing DOM element: xeokit-tab-btn";const i=t.classesElement;this._treeView=new _v(this.viewer,{containerElement:i,hierarchy:"types",autoAddModels:!1,pruneEmptyNodes:!0}),this._treeViewContextMenu=new Sb(this.bimViewer,{hideOnAction:!0,enableMeasurements:t.enableMeasurements}),this._treeView.on("contextmenu",(e=>{this._treeViewContextMenu.context={bimViewer:this.bimViewer,viewer:e.viewer,treeViewPlugin:e.treeViewPlugin,treeViewNode:e.treeViewNode},this._treeViewContextMenu.show(e.event.pageX,e.event.pageY)})),this._treeView.on("nodeTitleClicked",(e=>{const t=this.viewer.scene,i=[];e.treeViewPlugin.withNodeTree(e.treeViewNode,(e=>{e.objectId&&i.push(e.objectId)}));e.treeViewNode.checked?(t.setObjectsXRayed(i,!1),t.setObjectsVisible(i,!1),t.setObjectsPickable(i,!0)):(t.setObjectsXRayed(i,!1),t.setObjectsVisible(i,!0),t.setObjectsPickable(i,!0))})),this._onModelLoaded=this.viewer.scene.on("modelLoaded",(e=>{if(this.viewer.metaScene.metaModels[e]){const t=this.bimViewer._modelsExplorer.getModelInfo(e);if(!t)return;this._treeView.addModel(e,{rootName:t.name})}})),this._onModelUnloaded=this.viewer.scene.on("modelUnloaded",(e=>{this.viewer.metaScene.metaModels[e]&&this._treeView.removeModel(e)})),this.bimViewer.on("reset",(()=>{this._treeView.collapse()}))}setEnabled(e){e?(this._classesTabButtonElement.classList.remove("disabled"),this._showAllClassesButtonElement.classList.remove("disabled"),this._hideAllClassesButtonElement.classList.remove("disabled")):(this._classesTabButtonElement.classList.add("disabled"),this._showAllClassesButtonElement.classList.add("disabled"),this._hideAllClassesButtonElement.classList.add("disabled"))}expandTreeViewToDepth(e){this._treeView.expandToDepth(e)}showNodeInTreeView(e){this._treeView.collapse(),this._treeView.showNode(e)}unShowNodeInTreeView(){this._treeView.unShowNode()}destroy(){super.destroy(),this._treeView.destroy(),this._treeViewContextMenu.destroy(),this.viewer.scene.off(this._onModelLoaded),this.viewer.scene.off(this._onModelUnloaded)}}const Lb=u.vec3();class Ub extends cb{constructor(e,t={}){if(super(e),!t.storeysTabElement)throw"Missing config: storeysTabElement";if(!t.showAllStoreysButtonElement)throw"Missing config: showAllStoreysButtonElement";if(!t.hideAllStoreysButtonElement)throw"Missing config: hideAllStoreysButtonElement";if(!t.storeysElement)throw"Missing config: storeysElement";if(this._storeysTabElement=t.storeysTabElement,this._showAllStoreysButtonElement=t.showAllStoreysButtonElement,this._hideAllStoreysButtonElement=t.hideAllStoreysButtonElement,this._storeysTabButtonElement=this._storeysTabElement.querySelector(".xeokit-tab-btn"),!this._storeysTabButtonElement)throw"Missing DOM element: .xeokit-tab-btn";const i=t.storeysElement;this._treeView=new _v(this.viewer,{containerElement:i,autoAddModels:!1,hierarchy:"storeys",autoExpandDepth:1}),this._treeViewContextMenu=new Sb(this.bimViewer,{hideOnAction:!0,enableMeasurements:t.enableMeasurements}),this._treeView.on("contextmenu",(e=>{this._treeViewContextMenu.context={bimViewer:this.bimViewer,viewer:e.viewer,treeViewPlugin:e.treeViewPlugin,treeViewNode:e.treeViewNode,pruneEmptyNodes:!0},this._treeViewContextMenu.show(e.event.pageX,e.event.pageY)})),this._treeView.on("nodeTitleClicked",(e=>{const t=this.viewer.scene,i=[];e.treeViewPlugin.withNodeTree(e.treeViewNode,(e=>{e.objectId&&i.push(e.objectId)}));e.treeViewNode.checked?(t.setObjectsXRayed(i,!1),t.setObjectsVisible(i,!1),t.setObjectsPickable(i,!0)):(t.setObjectsXRayed(i,!1),t.setObjectsVisible(i,!0),t.setObjectsPickable(i,!0))})),this._onModelLoaded=this.viewer.scene.on("modelLoaded",(e=>{const t=this.bimViewer._modelsExplorer.getModelInfo(e);t&&this._treeView.addModel(e,{rootName:t.name})})),this._onModelUnloaded=this.viewer.scene.on("modelUnloaded",(e=>{this.viewer.metaScene.metaModels[e]&&this._treeView.removeModel(e)})),this.bimViewer.on("reset",(()=>{this._treeView.collapse(),this._treeView.expandToDepth(1)}))}setEnabled(e){e?(this._storeysTabButtonElement.classList.remove("disabled"),this._showAllStoreysButtonElement.classList.remove("disabled"),this._hideAllStoreysButtonElement.classList.remove("disabled")):(this._storeysTabButtonElement.classList.add("disabled"),this._showAllStoreysButtonElement.classList.add("disabled"),this._hideAllStoreysButtonElement.classList.add("disabled"))}expandTreeViewToDepth(e){this._treeView.expandToDepth(e)}showNodeInTreeView(e){this._treeView.collapse(),this._treeView.showNode(e)}unShowNodeInTreeView(){this._treeView.unShowNode()}selectStorey(e,t){const i=this.viewer.metaScene.metaObjects[e];if(!i)return void this.error("selectStorey() - object is not found: '"+e+"'");if("IfcBuildingStorey"!==i.type)return void this.error("selectStorey() - object is not found: '"+e+"'");const s=i.getObjectIDsInSubtree();this._selectObjects(s,t)}_selectObjects(e,t){const i=this.viewer.scene,s=i.getAABB(e);this.viewer.cameraControl.pivotPos=u.getAABB3Center(s,Lb),t?(i.setObjectsXRayed(i.objectIds,!0),i.setObjectsVisible(i.objectIds,!0),i.setObjectsPickable(i.objectIds,!1),i.setObjectsSelected(i.selectedObjectIds,!1),i.setObjectsXRayed(e,!1),i.setObjectsVisible(e,!0),i.setObjectsPickable(e,!0),this.viewer.cameraFlight.flyTo({aabb:s},(()=>{setTimeout((function(){i.setObjectsVisible(i.xrayedObjectIds,!1),i.setObjectsXRayed(i.xrayedObjectIds,!1)}),500),t()}))):(i.setObjectsVisible(i.objectIds,!1),i.setObjectsPickable(i.xrayedObjectIds,!0),i.setObjectsXRayed(i.xrayedObjectIds,!1),i.setObjectsSelected(i.selectedObjectIds,!1),i.setObjectsVisible(e,!0),this.viewer.cameraFlight.jumpTo({aabb:s}))}destroy(){super.destroy(),this._treeView.destroy(),this._treeViewContextMenu.destroy(),this.viewer.scene.off(this._onModelLoaded),this.viewer.scene.off(this._onModelUnloaded)}}const kb=u.vec3();class Ob extends cb{constructor(e,t){if(super(e,t),!t.buttonElement)throw"Missing config: buttonElement";this._saveOrthoActive=null,this._buttonElement=t.buttonElement,this._cameraControlNavModeMediator=t.cameraControlNavModeMediator,this._active=!1,this.on("enabled",(e=>{e?this._buttonElement.classList.remove("disabled"):this._buttonElement.classList.add("disabled")})),this._buttonElement.addEventListener("click",(e=>{this.getEnabled()&&(this.bimViewer._sectionTool.hideControl(),this.setActive(!this.getActive(),(()=>{}))),e.preventDefault()})),this.bimViewer.on("reset",(()=>{this.setActive(!0,(()=>{}))}))}setEnabled(e){super.setEnabled(e),this._saveOrthoActive=this.bimViewer._orthoMode.getActive()}setActive(e,t){this._active!==e?(this._active=e,e?(this._buttonElement.classList.add("active"),t?this._enterThreeDMode((()=>{this.fire("active",this._active),t()})):(this._enterThreeDMode(),this.fire("active",this._active))):(this._buttonElement.classList.remove("active"),t?this._exitThreeDMode((()=>{this.fire("active",this._active),t()})):(this._exitThreeDMode(),this.fire("active",this._active)))):t&&t()}_enterThreeDMode(e){const t=this.viewer,i=t.scene,s=i.getAABB(i.visibleObjectIds),r=u.getAABB3Diag(s),o=u.getAABB3Center(s,kb),n=Math.abs(r/Math.tan(32.5)),a=i.camera,l=a.yUp?[-1,-1,-1]:[1,1,1],A=a.yUp?[-1,1,-1]:[-1,1,1];t.cameraControl.pivotPos=o,this.bimViewer._navCubeMode.setActive(!0),this.bimViewer._firstPersonMode.setEnabled(!0),this._cameraControlNavModeMediator.setThreeDModeActive(!0),this.bimViewer._sectionTool.setEnabled(!0),this.bimViewer._orthoMode.setEnabled(!0),e?t.cameraFlight.flyTo({look:o,eye:[o[0]-n*l[0],o[1]-n*l[1],o[2]-n*l[2]],up:A,orthoScale:1.3*r,duration:1,projection:this._saveOrthoActive?"ortho":"perspective"},(()=>{e()})):t.cameraFlight.jumpTo({look:o,eye:[o[0]-n*l[0],o[1]-n*l[1],o[2]-n*l[2]],up:A,orthoScale:1.3*r,projection:this._saveOrthoActive?"ortho":"perspective"})}_exitThreeDMode(e){const t=this.viewer,i=t.scene,s=i.camera,r=i.getAABB(i.visibleObjectIds),o=u.getAABB3Center(r),n=u.getAABB3Diag(r),a=Math.abs(n/Math.tan(45*u.DEGTORAD)),l=1.3*n,A=kb;A[0]=o[0]+s.worldUp[0]*a,A[1]=o[1]+s.worldUp[1]*a,A[2]=o[2]+s.worldUp[2]*a;const h=u.mulVec3Scalar(s.worldForward,-1,[]);this.bimViewer._sectionTool.setActive(!1),this.bimViewer._firstPersonMode.setEnabled(!1),this._saveOrthoActive=this.bimViewer._orthoMode.getActive(),this.bimViewer._orthoMode.setEnabled(!1),this._cameraControlNavModeMediator.setThreeDModeActive(!1),e?t.cameraFlight.flyTo({eye:A,look:o,up:h,orthoScale:l,projection:"ortho"},(()=>{this.bimViewer._navCubeMode.setActive(!1)})):(t.cameraFlight.jumpTo({eye:A,look:o,up:h,orthoScale:l,projection:"ortho"}),this.bimViewer._navCubeMode.setActive(!1))}}class Nb extends o{constructor(e,t={}){super(t),this._bimViewer=e,this._buildMenu(t)}_buildMenu(e){const t=[],i=[],s=[],r=!!e.enableMeasurements;this._bimViewer._enablePropertiesInspector&&t.push({getTitle:e=>e.viewer.localeService.translate("objectContextMenu.inspectProperties")||"Inspect Properties",doAction:e=>{const t=e.entity.id;e.bimViewer.showObjectProperties(t)}}),t.push({getTitle:e=>e.viewer.localeService.translate("objectContextMenu.showInTree")||"Show in Explorer",doAction:e=>{const t=e.entity.id;e.showObjectInExplorers(t)}}),i.push({getTitle:e=>e.viewer.localeService.translate("objectContextMenu.viewFit")||"View Fit",doAction:e=>{const t=e.viewer,i=t.scene,s=e.entity;t.cameraFlight.flyTo({aabb:s.aabb,duration:.5},(()=>{setTimeout((function(){i.setObjectsHighlighted(i.highlightedObjectIds,!1)}),500)})),t.cameraControl.pivotPos=u.getAABB3Center(s.aabb)}},{getTitle:e=>e.viewer.localeService.translate("canvasContextMenu.viewFitSelection")||"View Fit Selected",getEnabled:e=>e.viewer.scene.numSelectedObjects>0,doAction:e=>{const t=e.viewer,i=t.scene,s=i.getAABB(i.selectedObjectIds);t.cameraFlight.flyTo({aabb:s,duration:.5}),t.cameraControl.pivotPos=u.getAABB3Center(s)}},{getTitle:e=>e.viewer.localeService.translate("objectContextMenu.viewFitAll")||"View Fit All",doAction:e=>{const t=e.viewer,i=t.scene,s=i.getAABB(i.visibleObjectIds);t.cameraFlight.flyTo({aabb:s,duration:.5}),t.cameraControl.pivotPos=u.getAABB3Center(s)}}),r&&s.push({getTitle:e=>e.viewer.localeService.translate("canvasContextMenu.measurements")||"Measurements",doAction:function(e){},items:[[{getTitle:e=>e.viewer.localeService.translate("canvasContextMenu.clearMeasurements")||"Clear",getEnabled:e=>e.bimViewer.getNumMeasurements()>0,doAction:e=>{e.bimViewer.clearMeasurements()}},{getTitle:e=>e.bimViewer.getMeasurementsAxisVisible()?e.viewer.localeService.translate("canvasContextMenu.hideMeasurementAxisWires")||"Hide Axis Wires":e.viewer.localeService.translate("canvasContextMenu.showMeasurementAxisWires")||"Show Axis Wires",getEnabled:e=>e.bimViewer.getNumMeasurements()>0,doAction:e=>{e.bimViewer.setMeasurementsAxisVisible(!e.bimViewer.getMeasurementsAxisVisible())}},{getTitle:e=>e.bimViewer.getMeasurementsSnappingEnabled()?e.viewer.localeService.translate("canvasContextMenu.disableMeasurementSnapping")||"Disable Snapping":e.viewer.localeService.translate("canvasContextMenu.enableMeasurementSnapping")||"Enable Snapping",getEnabled:e=>e.bimViewer.getNumMeasurements()>0,doAction:e=>{e.bimViewer.setMeasurementsSnappingEnabled(!e.bimViewer.getMeasurementsSnappingEnabled())}}]]}),this.items=[t,i,[{getTitle:e=>e.viewer.localeService.translate("objectContextMenu.hide")||"Hide",getEnabled:e=>e.entity.visible,doAction:e=>{e.entity.visible=!1}},{getTitle:e=>e.viewer.localeService.translate("objectContextMenu.hideOthers")||"Hide Others",doAction:e=>{const t=e.viewer,i=t.scene,s=e.entity,r=t.metaScene.metaObjects[s.id];r&&(i.setObjectsVisible(i.visibleObjectIds,!1),r.withMetaObjectsInSubtree((e=>{const t=i.objects[e.id];t&&(t.visible=!0)})))}},{getTitle:e=>e.viewer.localeService.translate("objectContextMenu.hideAll")||"Hide All",getEnabled:e=>e.viewer.scene.numVisibleObjects>0,doAction:e=>{e.viewer.scene.setObjectsVisible(e.viewer.scene.visibleObjectIds,!1)}},{getTitle:e=>e.viewer.localeService.translate("objectContextMenu.showAll")||"Show All",getEnabled:e=>{const t=e.viewer.scene;return t.numVisibleObjects0},doAction:e=>{const t=e.viewer.scene;t.setObjectsVisible(t.objectIds,!0),t.setObjectsPickable(t.xrayedObjectIds,!0),t.setObjectsXRayed(t.xrayedObjectIds,!1)}}],[{getTitle:e=>e.viewer.localeService.translate("objectContextMenu.xray")||"X-Ray",getEnabled:e=>!e.entity.xrayed,doAction:e=>{const t=e.entity;t.xrayed=!0,t.pickable=e.bimViewer.getConfig("xrayPickable")}},{getTitle:e=>e.viewer.localeService.translate("objectContextMenu.xrayOthers")||"X-Ray Others",doAction:e=>{const t=e.viewer,i=t.scene,s=e.entity,r=t.metaScene.metaObjects[s.id];r&&(i.setObjectsVisible(i.objectIds,!0),i.setObjectsXRayed(i.objectIds,!0),e.bimViewer.getConfig("xrayPickable")||i.setObjectsPickable(i.objectIds,!1),r.withMetaObjectsInSubtree((e=>{const t=i.objects[e.id];t&&(t.xrayed=!1,t.pickable=!0)})))}},{getTitle:e=>e.viewer.localeService.translate("objectContextMenu.xrayAll")||"X-Ray All",getEnabled:e=>{const t=e.viewer.scene;return t.numXRayedObjects{const t=e.viewer.scene;t.setObjectsVisible(t.objectIds,!0),e.bimViewer.getConfig("xrayPickable")||t.setObjectsPickable(t.objectIds,!1),t.setObjectsXRayed(t.objectIds,!0)}},{getTitle:e=>e.viewer.localeService.translate("objectContextMenu.xrayNone")||"X-Ray None",getEnabled:e=>e.viewer.scene.numXRayedObjects>0,doAction:e=>{const t=e.viewer.scene,i=t.xrayedObjectIds;t.setObjectsPickable(i,!0),t.setObjectsXRayed(i,!1)}}],[{getTitle:e=>e.viewer.localeService.translate("objectContextMenu.select")||"Select",getEnabled:e=>!e.entity.selected,doAction:e=>{e.entity.selected=!0}},{getTitle:e=>e.viewer.localeService.translate("objectContextMenu.undoSelect")||"Undo Select",getEnabled:e=>e.entity.selected,doAction:e=>{e.entity.selected=!1}},{getTitle:e=>e.viewer.localeService.translate("objectContextMenu.selectNone")||"Select None",getEnabled:e=>e.viewer.scene.numSelectedObjects>0,doAction:e=>{e.viewer.scene.setObjectsSelected(e.viewer.scene.selectedObjectIds,!1)}}],[{getTitle:e=>e.viewer.localeService.translate("objectContextMenu.clearSlices")||"Clear Slices",getEnabled:e=>e.bimViewer.getNumSections()>0,doAction:e=>{e.bimViewer.clearSections()}}],s]}}class Qb extends o{constructor(e,t={}){super({hideOnAction:t.hideOnAction,context:t.context,items:[[{getTitle:e=>e.viewer.localeService.translate("canvasContextMenu.viewFitAll")||"View Fit All",doAction:e=>{const t=e.viewer,i=t.scene,s=i.getAABB(i.visibleObjectIds);t.cameraFlight.flyTo({aabb:s,duration:.5}),t.cameraControl.pivotPos=u.getAABB3Center(s)}},{getTitle:e=>e.viewer.localeService.translate("canvasContextMenu.viewFitSelection")||"View Fit Selected",getEnabled:e=>e.viewer.scene.numSelectedObjects>0,doAction:e=>{const t=e.viewer,i=t.scene,s=i.getAABB(i.selectedObjectIds);t.cameraFlight.flyTo({aabb:s,duration:.5}),t.cameraControl.pivotPos=u.getAABB3Center(s)}}],[{getTitle:e=>e.viewer.localeService.translate("canvasContextMenu.hideAll")||"Hide All",getEnabled:e=>e.viewer.scene.numVisibleObjects>0,doAction:e=>{e.viewer.scene.setObjectsVisible(e.viewer.scene.visibleObjectIds,!1)}},{getTitle:e=>e.viewer.localeService.translate("canvasContextMenu.showAll")||"Show All",getEnabled:e=>{const t=e.viewer.scene;return t.numVisibleObjects0},doAction:e=>{const t=e.viewer.scene;t.setObjectsVisible(t.objectIds,!0),t.setObjectsXRayed(t.xrayedObjectIds,!1)}}],[{getTitle:e=>e.viewer.localeService.translate("canvasContextMenu.xRayAll")||"X-Ray All",getEnabled:e=>{const t=e.viewer.scene;return t.numXRayedObjects{const t=e.viewer.scene;t.setObjectsVisible(t.objectIds,!0),t.setObjectsXRayed(t.objectIds,!0),e.bimViewer.getConfig("xrayPickable")||t.setObjectsPickable(t.objectIds,!1)}},{getTitle:e=>e.viewer.localeService.translate("canvasContextMenu.xRayNone")||"X-Ray None",getEnabled:e=>e.viewer.scene.numXRayedObjects>0,doAction:e=>{const t=e.viewer.scene.xrayedObjectIds;e.viewer.scene.setObjectsPickable(t,!0),e.viewer.scene.setObjectsXRayed(t,!1)}}],[{getTitle:e=>e.viewer.localeService.translate("canvasContextMenu.selectNone")||"Select None",getEnabled:e=>e.viewer.scene.numSelectedObjects>0,doAction:e=>{e.viewer.scene.setObjectsSelected(e.viewer.scene.selectedObjectIds,!1)}}],[{getTitle:e=>e.viewer.localeService.translate("canvasContextMenu.resetView")||"Reset View",doAction:e=>{e.bimViewer.resetView()}}],[{getTitle:e=>e.viewer.localeService.translate("canvasContextMenu.clearSlices")||"Clear Slices",getEnabled:e=>e.bimViewer.getNumSections()>0,doAction:e=>{e.bimViewer.clearSections()}}],t.enableMeasurements?[{getTitle:e=>"Measurements",doAction:function(e){},items:[[{getTitle:e=>e.viewer.localeService.translate("canvasContextMenu.clearMeasurements")||"Clear",getEnabled:e=>e.bimViewer.getNumMeasurements()>0,doAction:e=>{e.bimViewer.clearMeasurements()}},{getTitle:e=>e.bimViewer.getMeasurementsAxisVisible()?e.viewer.localeService.translate("canvasContextMenu.hideMeasurementAxisWires")||"Hide Axis Wires":e.viewer.localeService.translate("canvasContextMenu.showMeasurementAxisWires")||"Show Axis Wires",getEnabled:e=>e.bimViewer.getNumMeasurements()>0,doAction:e=>{e.bimViewer.setMeasurementsAxisVisible(!e.bimViewer.getMeasurementsAxisVisible())}},{getTitle:e=>e.bimViewer.getMeasurementsSnappingEnabled()?e.viewer.localeService.translate("canvasContextMenu.disableMeasurementSnapping")||"Disable Snapping":e.viewer.localeService.translate("canvasContextMenu.enableMeasurementSnapping")||"Enable Snapping",getEnabled:e=>e.bimViewer.getNumMeasurements()>0,doAction:e=>{e.bimViewer.setMeasurementsSnappingEnabled(!e.bimViewer.getMeasurementsSnappingEnabled())}}]]}]:[]]})}}class Vb extends cb{constructor(e,t){if(super(e,t),!t.buttonElement)throw"Missing config: buttonElement";this._buttonElement=t.buttonElement,this.on("enabled",(e=>{e?this._buttonElement.classList.remove("disabled"):this._buttonElement.classList.add("disabled")})),this._buttonElement.addEventListener("click",(e=>{this.getEnabled()&&this.setActive(!this.getActive(),(()=>{})),e.preventDefault()})),this.bimViewer.on("reset",(()=>{this.setActive(!1)})),this.viewer.camera.on("projection",(()=>{const e="ortho"===this.viewer.camera.projection;this._active=e,this._active?this._buttonElement.classList.add("active"):this._buttonElement.classList.remove("active")})),this._active=!1,this._buttonElement.classList.remove("active")}setActive(e,t){this._active!==e?(this._active=e,e?(this._buttonElement.classList.add("active"),t?this._enterOrthoMode((()=>{this.fire("active",this._active),t()})):(this._enterOrthoMode(),this.fire("active",this._active))):(this._buttonElement.classList.remove("active"),t?this._exitOrthoMode((()=>{this.fire("active",this._active),t()})):(this._exitOrthoMode(),this.fire("active",this._active)))):t&&t()}_enterOrthoMode(e){e?this.viewer.cameraFlight.flyTo({projection:"ortho",duration:.5},e):this.viewer.cameraFlight.jumpTo({projection:"ortho"})}_exitOrthoMode(e){e?this.viewer.cameraFlight.flyTo({projection:"perspective",duration:.5},e):this.viewer.cameraFlight.jumpTo({projection:"perspective"})}}class jb extends cb{constructor(e,t={}){if(super(e),!t.propertiesTabElement)throw"Missing config: propertiesTabElement";if(!t.propertiesElement)throw"Missing config: propertiesElement";if(this._metaObject=null,this._propertiesTabElement=t.propertiesTabElement,this._propertiesElement=t.propertiesElement,this._propertiesTabButtonElement=this._propertiesTabElement.querySelector(".xeokit-tab-btn"),!this._propertiesTabButtonElement)throw"Missing DOM element: ,xeokit-tab-btn";this._onModelUnloaded=this.viewer.scene.on("modelUnloaded",(e=>{if(this._metaObject){const t=this._metaObject.metaModels;for(let i=0,s=t.length;i{this.clear()})),document.addEventListener("click",this._clickListener=e=>{e.target.matches(".xeokit-accordion .xeokit-accordion-button")&&(e.target.parentElement.classList.contains("active")?e.target.parentElement.classList.remove("active"):e.target.parentElement.classList.add("active"))}),this.clear()}showObjectPropertySets(e){const t=this.viewer.metaScene.metaObjects[e];if(!t)return;const i=t.propertySets;i&&i.length>0?this._setPropertySets(t,i):this._setPropertySets(t),this._metaObject=t}clear(){const e=[],t=this.viewer.localeService.translate("propertiesInspector.noObjectSelectedWarning")||"No object inspected. Right-click or long-tab an object and select 'Inspect Properties' to view its properties here.";e.push('
'),e.push(`

${t}

`),e.push("
");const i=e.join("");this._propertiesElement.innerHTML=i}_setPropertySets(e,t){const i=[];if(i.push('
'),e){i.push(''),i.push(``),e.type&&i.push(``),i.push(``),i.push(``);const s=e.attributes;if(s)for(let e in s)i.push(``);if(i.push("
Name:${e.name}
Class:${e.type}
UUID:${e.originalSystemId}
Viewer ID:${e.id}
${Hb(e)}:${s[e]}
"),t&&0!==t.length){i.push("
"),i.push('
');for(let e=0,s=t.length;e0){i.push(`
\n

${s.name}

\n
\n `);for(let e=0,t=r.length;e`)}i.push("
${t.name||t.label}:${t.value}
\n
\n
")}}i.push("
")}else{const e=this.viewer.localeService.translate("propertiesInspector.noPropSetWarning")||"No properties sets found for this object";i.push(`

${e}

`),i.push("")}}else i.push('

No object selected

');this._propertiesElement.innerHTML=i.join("")}setEnabled(e){e?this._propertiesTabButtonElement.classList.remove("disabled"):this._propertiesTabButtonElement.classList.add("disabled")}destroy(){super.destroy(),this.viewer.scene.off(this._onModelLoaded),this.viewer.scene.off(this._onModelUnloaded),document.removeEventListener("click",this._clickListener)}}function Hb(e){return e?e.charAt(0).toUpperCase()+e.slice(1):e}const zb=new Float32Array(3);class Gb{constructor(e){if(!e)throw"Parameter expected: cfg";if(!e.viewer)throw"Parameter expected: cfg.viewer";this.viewer=e.viewer,this._maxTreeDepth=e.maxTreeDepth||15,this._root=null,this._needsRebuild=!0,this._onModelLoaded=this.viewer.scene.on("modelLoaded",(e=>{this._needsRebuild=!0})),this._onModelUnloaded=this.viewer.scene.on("modelUnloaded",(e=>{this._needsRebuild=!0}))}get root(){return this._needsRebuild&&this._rebuild(),this._root}_rebuild(){const e=this.viewer.scene;this._root={aabb:e.getAABB()};for(let t in e.objects){const i=e.objects[t];this._insertEntity(this._root,i,1)}this._needsRebuild=!1}_insertEntity(e,t,i){const s=t.aabb;if(i>=this._maxTreeDepth)return e.entities=e.entities||[],void e.entities.push(t);if(e.left&&u.containsAABB3(e.left.aabb,s))return void this._insertEntity(e.left,t,i+1);if(e.right&&u.containsAABB3(e.right.aabb,s))return void this._insertEntity(e.right,t,i+1);const r=e.aabb;zb[0]=r[3]-r[0],zb[1]=r[4]-r[1],zb[2]=r[5]-r[2];let o=0;if(zb[1]>zb[o]&&(o=1),zb[2]>zb[o]&&(o=2),!e.left){const n=r.slice();if(n[o+3]=(r[o]+r[o+3])/2,e.left={aabb:n},u.containsAABB3(n,s))return void this._insertEntity(e.left,t,i+1)}if(!e.right){const n=r.slice();if(n[o]=(r[o]+r[o+3])/2,e.right={aabb:n},u.containsAABB3(n,s))return void this._insertEntity(e.right,t,i+1)}e.entities=e.entities||[],e.entities.push(t)}destroy(){const e=this.viewer.scene;e.off(this._onModelLoaded),e.off(this._onModelUnloaded),this._root=null,this._needsRebuild=!0}}class Wb extends cb{constructor(e,t){if(super(e),!t.buttonElement)throw"Missing config: buttonElement";this._objectsKdTree3=t.objectsKdTree3,this._marquee=u.AABB2(),this._marqueeFrustum=new L,this._marqueeFrustumProjMat=u.mat4(),this._marqueeDir=!1;const i=t.buttonElement;this.on("enabled",(e=>{e?i.classList.remove("disabled"):i.classList.add("disabled")})),this.on("active",(e=>{e?(i.classList.add("active"),this._objectsKdTree3.root):i.classList.remove("active")})),i.addEventListener("click",(e=>{if(this.getEnabled()){const e=this.getActive();this.setActive(!e)}e.preventDefault()})),this.bimViewer.on("reset",(()=>{this.setActive(!1)}));const s=this.viewer.scene,r=s.canvas.canvas;this._marqueeElement=document.createElement("div"),document.body.appendChild(this._marqueeElement);const o=this._marqueeElement.style;let n,a,l,A,h,c,d,p;o.position="absolute",o["z-index"]="40000005",o.width="8px",o.height="8px",o.visibility="hidden",o.top="0px",o.left="0px",o["box-shadow"]="0 2px 5px 0 #182A3D;",o.opacity=1,o["pointer-events"]="none";let g=!1,m=!1;r.addEventListener("mousedown",(e=>{if(!this.getActive()||!this.getEnabled())return;if(0!==e.button)return;const t=this.bimViewer.viewer.scene.input;t.keyDown[t.KEY_CTRL]||s.setObjectsSelected(s.selectedObjectIds,!1),n=e.pageX,a=e.pageY,o.visibility="visible",o.left=`${n}px`,o.top=`${a}px`,o.width="0px",o.height="0px",o.display="block",h=e.offsetX,c=e.offsetY,g=!0,this.viewer.cameraControl.pointerEnabled=!1})),r.addEventListener("mouseup",(e=>{if(!this.getActive()||!this.getEnabled())return;if(!g&&!m)return;if(0!==e.button)return;l=e.pageX,A=e.pageY;const t=Math.abs(l-n),i=Math.abs(A-a);o.width=`${t}px`,o.height=`${i}px`,o.visibility="hidden",g=!1,this.viewer.cameraControl.pointerEnabled=!0,m&&(m=!1),(t>3||i>3)&&this._marqueePick()})),document.addEventListener("mouseup",(e=>{this.getActive()&&this.getEnabled()&&0===e.button&&g&&(o.visibility="hidden",g=!1,m=!0,this.viewer.cameraControl.pointerEnabled=!0)}),!0),r.addEventListener("mousemove",(e=>{if(!this.getActive()||!this.getEnabled())return;if(0!==e.button)return;if(!g)return;const t=e.pageX,i=e.pageY,s=t-n,r=i-a;o.width=`${Math.abs(s)}px`,o.height=`${Math.abs(r)}px`,o.left=`${Math.min(n,t)}px`,o.top=`${Math.min(a,i)}px`,d=e.offsetX,p=e.offsetY;const l=h{if(s===L.INTERSECT&&(s=k(this._marqueeFrustum,i.aabb)),s!==L.OUTSIDE){if(i.entities){const t=i.entities;for(let i=0,s=t.length;ie.measurement.axisVisible?"Hide Measurement Axis":"Show Measurement Axis",doAction:function(e){e.measurement.axisVisible=!e.measurement.axisVisible}},{getTitle:e=>e.measurement.labelsVisible?"Hide Measurement Labels":"Show Measurement Labels",doAction:function(e){e.measurement.labelsVisible=!e.measurement.labelsVisible}}],[{title:"Delete Measurement",doAction:function(e){e.measurement.destroy()}}]]}),this._contextMenu.on("hidden",(()=>{this._contextMenu.context.measurement&&this._contextMenu.context.measurement.setHighlighted(!1)})),this._distanceMeasurementsPlugin=new VA(this.viewer,{defaultAxisVisible:!1}),this._distanceMeasurementsPlugin.on("mouseOver",(e=>{e.measurement.setHighlighted(!0)})),this._distanceMeasurementsPlugin.on("mouseLeave",(e=>{this._contextMenu.shown&&this._contextMenu.context.measurement.id===e.measurement.id||e.measurement.setHighlighted(!1)})),this._distanceMeasurementsPlugin.on("contextMenu",(e=>{this._contextMenu.context={distanceMeasurementsPlugin:this._distanceMeasurementsPlugin,measurement:e.measurement},this._contextMenu.show(e.event.clientX,e.event.clientY),e.event.preventDefault()})),this._distanceMeasurementsMouseControl=new QA(this._distanceMeasurementsPlugin,{}),this._distanceMeasurementsMouseControl.snapping=!0,this.on("enabled",(e=>{e?i.classList.remove("disabled"):i.classList.add("disabled")})),this.on("active",(e=>{e?(i.classList.add("active"),this._distanceMeasurementsMouseControl.activate()):(i.classList.remove("active"),this._distanceMeasurementsMouseControl.deactivate())})),i.addEventListener("click",(e=>{if(this.getEnabled()){const e=this.getActive();this.setActive(!e)}e.preventDefault()})),this.bimViewer.on("reset",(()=>{this.setActive(!1),this.clear()}))}getNumMeasurements(){return Object.keys(this._distanceMeasurementsPlugin.measurements).length}setMeasurementsAxisVisible(e){this._distanceMeasurementsPlugin.setAxisVisible(e)}getMeasurementsAxisVisible(){return this._distanceMeasurementsPlugin.getAxisVisible()}setSnappingEnabled(e){return this._distanceMeasurementsMouseControl.snapping=e}getSnappingEnabled(){return this._distanceMeasurementsMouseControl.snapping}clear(){this._distanceMeasurementsPlugin.clear()}destroy(){this._distanceMeasurementsPlugin.destroy(),this._distanceMeasurementsMouseControl.destroy(),this._contextMenu.destroy(),super.destroy()}}class Xb extends cb{constructor(e,t){if(super(e),!t.buttonElement)throw"Missing config: buttonElement";const i=t.buttonElement;this._contextMenu=new o({items:[[{getTitle:e=>e.measurement.labelsVisible?"Hide Measurement Label":"Show Measurement Label",doAction:function(e){e.measurement.labelsVisible=!e.measurement.labelsVisible}}],[{title:"Delete Measurement",doAction:function(e){e.measurement.destroy()}}]]}),this._contextMenu.on("hidden",(()=>{this._contextMenu.context.measurement&&this._contextMenu.context.measurement.setHighlighted(!1)})),this._angleMeasurementsPlugin=new pe(this.viewer,{}),this._angleMeasurementsPlugin.on("mouseOver",(e=>{e.measurement.setHighlighted(!0)})),this._angleMeasurementsPlugin.on("mouseLeave",(e=>{this._contextMenu.shown&&this._contextMenu.context.measurement.id===e.measurement.id||e.measurement.setHighlighted(!1)})),this._angleMeasurementsPlugin.on("contextMenu",(e=>{this._contextMenu.context={angleMeasurementsPlugin:this._angleMeasurementsPlugin,measurement:e.measurement},this._contextMenu.show(e.event.clientX,e.event.clientY),e.event.preventDefault()})),this._angleMeasurementsMouseControl=new de(this._angleMeasurementsPlugin,{}),this._angleMeasurementsMouseControl.snapping=!0,this.on("enabled",(e=>{e?i.classList.remove("disabled"):i.classList.add("disabled")})),this.on("active",(e=>{e?(i.classList.add("active"),this._angleMeasurementsMouseControl.activate()):(i.classList.remove("active"),this._angleMeasurementsMouseControl.deactivate())})),i.addEventListener("click",(e=>{if(this.getEnabled()){const e=this.getActive();this.setActive(!e)}e.preventDefault()})),this.bimViewer.on("reset",(()=>{this.setActive(!1),this.clear()}))}getNumMeasurements(){return Object.keys(this._angleMeasurementsPlugin.measurements).length}setSnappingEnabled(e){return this._angleMeasurementsMouseControl.snapping=e}getSnappingEnabled(){return this._angleMeasurementsMouseControl.snapping}clear(){this._angleMeasurementsPlugin.clear()}destroy(){this._angleMeasurementsPlugin.destroy(),this._angleMeasurementsMouseControl.destroy(),this._contextMenu.destroy(),super.destroy()}}function Yb(e){const t="xeokit-tab",i="active";function s(e){let s=e.parentNode.querySelectorAll("."+t);for(let t=0;t{e.preventDefault()},o.oncontextmenu=e=>{e.preventDefault()},n.oncontextmenu=e=>{e.preventDefault()};const l=new jf({localeService:t.localeService,canvasElement:i,keyboardEventsElement:t.keyboardEventsElement,transparent:!1,backgroundColor:[1,1,1],backgroundColorFromAmbientLight:!1,saoEnabled:!0,pbrEnabled:!1,colorTextureEnabled:!0,numCachedSectionPlanes:4});super(null,t,e,l),this._configs={},this._enableAddModels=!!t.enableEditModels,this._enableMeasurements=!1!==t.enableMeasurements,this._enablePropertiesInspector=!!t.inspectorElement,this.viewer=l,this._objectsKdTree3=new Gb({viewer:l}),this._customizeViewer(),this._initCanvasContextMenus(),s.innerHTML=function(e){return'
\n
\n Models\n
\n
\n \n '+(e.enableEditModels?'':"")+'
\n
\n
\n
\n
\n Objects\n
\n
\n \n \n
\n
\n
\n
\n
\n Classes\n
\n
\n \n \n
\n
\n
\n
\n
\n Storeys\n
\n
\n \n \n
\n
\n
\n
\n
'}(t),o.innerHTML=function(e={}){return'
\n \x3c!-- Reset button --\x3e\n
\n \n
\n
\n \x3c!-- 3D Mode button --\x3e\n \n \x3c!-- Perspective/Ortho Mode button --\x3e\n \n \x3c!-- Fit button --\x3e\n \n \x3c!-- First Person mode button --\x3e\n \n \x3c!-- Show/hide IFCSpaces --\x3e\n \n
\n \x3c!-- Tools button group --\x3e\n
\n \x3c!-- Hide tool button --\x3e\n \n \x3c!-- Select tool button --\x3e\n \n \x3c!-- Marquee select tool button --\x3e\n '+(e.enableMeasurements?'\x3c!-- Measure distance tool button --\x3e\n \n \x3c!-- Measure angle tool button --\x3e\n ':" ")+'\x3c!-- section tool button --\x3e\n \n
\n
'}({enableMeasurements:this._enableMeasurements}),this._enablePropertiesInspector&&(r.innerHTML='
\n
\n Properties\n
\n
\n
\n
\n
'),this._explorerElement=s,this._inspectorElement=r,Yb(s),this._enablePropertiesInspector&&Yb(r),this._modelsExplorer=new Ib(this,{enableMeasurements:this._enableMeasurements,modelsTabElement:s.querySelector(".xeokit-modelsTab"),loadModelsButtonElement:s.querySelector(".xeokit-loadAllModels"),unloadModelsButtonElement:s.querySelector(".xeokit-unloadAllModels"),addModelButtonElement:s.querySelector(".xeokit-addModel"),modelsElement:s.querySelector(".xeokit-models"),enableEditModels:this._enableAddModels}),this._objectsExplorer=new Tb(this,{enableMeasurements:this._enableMeasurements,objectsTabElement:s.querySelector(".xeokit-objectsTab"),showAllObjectsButtonElement:s.querySelector(".xeokit-showAllObjects"),hideAllObjectsButtonElement:s.querySelector(".xeokit-hideAllObjects"),objectsElement:s.querySelector(".xeokit-objects")}),this._classesExplorer=new Rb(this,{enableMeasurements:this._enableMeasurements,classesTabElement:s.querySelector(".xeokit-classesTab"),showAllClassesButtonElement:s.querySelector(".xeokit-showAllClasses"),hideAllClassesButtonElement:s.querySelector(".xeokit-hideAllClasses"),classesElement:s.querySelector(".xeokit-classes")}),this._storeysExplorer=new Ub(this,{enableMeasurements:this._enableMeasurements,storeysTabElement:s.querySelector(".xeokit-storeysTab"),showAllStoreysButtonElement:s.querySelector(".xeokit-showAllStoreys"),hideAllStoreysButtonElement:s.querySelector(".xeokit-hideAllStoreys"),storeysElement:s.querySelector(".xeokit-storeys")}),this._enablePropertiesInspector&&(this._propertiesInspector=new jb(this,{propertiesTabElement:r.querySelector(".xeokit-propertiesTab"),propertiesElement:r.querySelector(".xeokit-properties")})),this._resetAction=new pb(this,{buttonElement:o.querySelector(".xeokit-reset"),active:!1}),this._fitAction=new mb(this,{buttonElement:o.querySelector(".xeokit-fit"),active:!1});const A=new function(e){let t=!1;this.setThreeDModeActive=i=>{i?(e._firstPersonMode.setActive(!1),e._marqueeSelectionTool.setEnabled(!0),e.viewer.cameraControl.navMode="orbit"):(e._marqueeSelectionTool.setEnabled(!1),e._marqueeSelectionTool.setActive(!1),e._firstPersonMode.setActive(!1),e.viewer.cameraControl.navMode="planView"),t=i},this.setFirstPersonModeActive=i=>{e.viewer.cameraControl.navMode=i?"firstPerson":t?"orbit":"planView"}}(this);this._threeDMode=new Ob(this,{buttonElement:o.querySelector(".xeokit-threeD"),cameraControlNavModeMediator:A,active:!1}),this._orthoMode=new Vb(this,{buttonElement:o.querySelector(".xeokit-ortho"),active:!1}),this._firstPersonMode=new fb(this,{buttonElement:o.querySelector(".xeokit-firstPerson"),cameraControlNavModeMediator:A,active:!1}),this._hideTool=new _b(this,{buttonElement:o.querySelector(".xeokit-hide"),active:!1}),this._selectionTool=new vb(this,{buttonElement:o.querySelector(".xeokit-select"),active:!1}),this._marqueeSelectionTool=new Wb(this,{buttonElement:o.querySelector(".xeokit-marquee"),active:!1,objectsKdTree3:this._objectsKdTree3}),this._showSpacesMode=new bb(this,{buttonElement:o.querySelector(".xeokit-showSpaces"),active:!1}),this._queryTool=new xb(this,{active:!1}),this._sectionTool=new Bb(this,{buttonElement:o.querySelector(".xeokit-section"),counterElement:o.querySelector(".xeokit-section-counter"),menuButtonElement:o.querySelector(".xeokit-section-menu-button"),menuButtonArrowElement:o.querySelector(".xeokit-section-menu-button-arrow"),active:!1}),this._enableMeasurements&&(this._measureDistanceTool=new Kb(this,{buttonElement:o.querySelector(".xeokit-measure-distance"),active:!1}),this._measureAngleTool=new Xb(this,{buttonElement:o.querySelector(".xeokit-measure-angle"),active:!1})),this._navCubeMode=new Cb(this,{navCubeCanvasElement:n,active:!0}),this._busyModal=new ub(this,{busyModalBackdropElement:a}),this._threeDMode.setActive(!0),this._firstPersonMode.setActive(!1),this._navCubeMode.setActive(!0),this._modelsExplorer.on("modelLoaded",(e=>{this._modelsExplorer.getNumModelsLoaded()>0&&this.setControlsEnabled(!0),this.fire("modelLoaded",e)})),this._modelsExplorer.on("modelUnloaded",(e=>{0===this._modelsExplorer.getNumModelsLoaded()&&(this.setControlsEnabled(!1),this.openTab("models")),this.fire("modelUnloaded",e)})),this._resetAction.on("reset",(()=>{this.fire("reset",!0)})),this._mutexActivation([this._hideTool,this._selectionTool,this._marqueeSelectionTool,this._sectionTool,this._enableMeasurements?this._measureDistanceTool:null,this._enableMeasurements?this._measureAngleTool:null]),s.querySelector(".xeokit-showAllObjects").addEventListener("click",(e=>{this.setAllObjectsVisible(!0),this.setAllObjectsXRayed(!1),e.preventDefault()})),s.querySelector(".xeokit-hideAllObjects").addEventListener("click",(e=>{this.setAllObjectsVisible(!1),e.preventDefault()})),s.querySelector(".xeokit-showAllClasses").addEventListener("click",(e=>{this.setAllObjectsVisible(!0),this.setAllObjectsXRayed(!1),e.preventDefault()})),s.querySelector(".xeokit-hideAllClasses").addEventListener("click",(e=>{this.setAllObjectsVisible(!1),e.preventDefault()})),s.querySelector(".xeokit-showAllStoreys").addEventListener("click",(e=>{this.setAllObjectsVisible(!0),this.setAllObjectsXRayed(!1),e.preventDefault()})),s.querySelector(".xeokit-hideAllStoreys").addEventListener("click",(e=>{this.setAllObjectsVisible(!1),e.preventDefault()})),s.querySelector(".xeokit-loadAllModels").addEventListener("click",(e=>{this.setControlsEnabled(!1),this.loadAllModels(),e.preventDefault()})),s.querySelector(".xeokit-unloadAllModels").addEventListener("click",(e=>{this.setControlsEnabled(!1),this._modelsExplorer.unloadAllModels(),e.preventDefault()})),this._enableAddModels&&s.querySelector(".xeokit-addModel").addEventListener("click",(e=>{this.fire("addModel",{}),e.preventDefault()})),this._bcfViewpointsPlugin=new DA(this.viewer,{xrayAsZeroAlpha:!0}),this._fastNavPlugin=new jA(l,{hideEdges:!0,hideSAO:!0,hidePBR:!1,hideColorTexture:!1,hideTransparentObjects:!1,scaleCanvasResolution:!1,scaleCanvasResolutionFactor:.6}),this._initConfigs(),this.setControlsEnabled(!1)}get localeService(){return this.viewer.localeService}_customizeViewer(){const e=this.viewer.scene;e.xrayMaterial.fill=!1,e.xrayMaterial.fillAlpha=.3,e.xrayMaterial.fillColor=[0,0,0],e.xrayMaterial.edges=!0,e.xrayMaterial.edgeAlpha=.1,e.xrayMaterial.edgeColor=[0,0,0],e.highlightMaterial.edges=!0,e.highlightMaterial.edgeColor=[1,1,1],e.highlightMaterial.edgeAlpha=1,e.highlightMaterial.fill=!0,e.highlightMaterial.fillAlpha=.1,e.highlightMaterial.fillColor=[1,0,0],e.selectedMaterial.edges=!0,e.selectedMaterial.edgeColor=[1,1,1],e.selectedMaterial.edgeAlpha=1,e.selectedMaterial.fill=!0,e.selectedMaterial.fillAlpha=.1,e.selectedMaterial.fillColor=[0,1,0],e.pointsMaterial.pointSize=1,e.pointsMaterial.roundPoints=!0,e.pointsMaterial.perspectivePoints=!0,e.pointsMaterial.minPerspectivePointSize=2,e.pointsMaterial.maxPerspectivePointSize=4,this.viewer.cameraControl.panRightClick=!0,this.viewer.cameraControl.followPointer=!0,this.viewer.cameraControl.doublePickFlyTo=!1,this.viewer.cameraControl.smartPivot=!0,this.viewer.cameraControl.keyboardDollyRate=100,this.viewer.cameraControl.mouseWheelDollyRate=100,this.viewer.cameraControl.dollyInertia=0,this.viewer.cameraControl.dollyMinSpeed=.04,this.viewer.cameraControl.dollyProximityThreshold=30;const t=document.createRange().createContextualFragment("
").firstChild;document.body.appendChild(t),this.viewer.cameraControl.pivotElement=t,e.camera.perspective.near=.01,e.camera.perspective.far=3e3,e.camera.ortho.near=.01,e.camera.ortho.far=2e3;const i=e.sao;i.enabled=!0,i.numSamples=50,i.kernelRadius=200}_initCanvasContextMenus(){this._canvasContextMenu=new Qb(this,{hideOnAction:!0,enableMeasurements:this._enableMeasurements}),this._objectContextMenu=new Nb(this,{hideOnAction:!0,enableMeasurements:this._enableMeasurements}),this.viewer.cameraControl.on("rightClick",(e=>{e.event;const t=this.viewer.scene.pick({canvasPos:e.canvasPos});t&&t.entity.isObject?(this._canvasContextMenu.hide(),this._objectContextMenu.context={viewer:this.viewer,bimViewer:this,showObjectInExplorers:e=>{const t=this.getOpenTab();"objects"!==t&&"classes"!==t&&"storeys"!==t&&this.openTab("objects"),this.showObjectInExplorers(e)},entity:t.entity},this._objectContextMenu.show(e.pagePos[0],e.pagePos[1])):(this._objectContextMenu.hide(),this._canvasContextMenu.context={viewer:this.viewer,bimViewer:this},this._canvasContextMenu.show(e.pagePos[0],e.pagePos[1]))}))}_initConfigs(){this.setConfigs({cameraNear:"0.05",cameraFar:"3000.0",smartPivot:!0,saoEnabled:!0,pbrEnabled:!1,scaleCanvasResolution:!1,saoBias:.5,saoIntensity:.15,saoNumSamples:40,saoKernelRadius:100,edgesEnabled:!0,xrayContext:!0,xrayPickable:!1,selectedGlowThrough:!0,highlightGlowThrough:!0,backgroundColor:[1,1,1],externalMetadata:!1,dtxEnabled:!1})}setConfigs(e){for(let t in e)if(e.hasOwnProperty(t)){const i=e[t];this.setConfig(t,i)}}setConfig(e,t){function i(e){return!0===e||"true"===e}try{switch(e){case"backgroundColor":const s=t;this.setBackgroundColor(s),this._configs[e]=s;break;case"cameraNear":const r=parseFloat(t);this.viewer.scene.camera.perspective.near=r,this.viewer.scene.camera.ortho.near=r,this._configs[e]=r;break;case"cameraFar":const o=parseFloat(t);this.viewer.scene.camera.perspective.far=o,this._configs[e]=o;break;case"smartPivot":this.viewer.cameraControl.smartPivot=this._configs[e]=i(t);break;case"saoEnabled":this._fastNavPlugin.saoEnabled=this._configs[e]=i(t);break;case"saoBias":this.viewer.scene.sao.bias=parseFloat(t);break;case"saoIntensity":this.viewer.scene.sao.intensity=parseFloat(t);break;case"saoKernelRadius":this.viewer.scene.sao.kernelRadius=this._configs[e]=parseFloat(t);break;case"saoNumSamples":this.viewer.scene.sao.numSamples=this._configs[e]=parseFloat(t);break;case"saoBlur":this.viewer.scene.sao.blur=this._configs[e]=i(t);break;case"edgesEnabled":this._fastNavPlugin.edgesEnabled=this._configs[e]=i(t);break;case"pbrEnabled":this._fastNavPlugin.pbrEnabled=this._configs[e]=i(t);break;case"scaleCanvasResolution":this._fastNavPlugin.scaleCanvasResolution=this._configs[e]=i(t);break;case"viewFitFOV":this.viewer.cameraFlight.fitFOV=this._configs[e]=parseFloat(t);break;case"viewFitDuration":this.viewer.cameraFlight.duration=this._configs[e]=parseFloat(t);break;case"perspectiveFOV":this.viewer.camera.perspective.fov=this._configs[e]=parseFloat(t);break;case"excludeUnclassifiedObjects":case"xrayPickable":case"externalMetadata":this._configs[e]=i(t);break;case"xrayContext":this._configs[e]=t;break;case"selectedGlowThrough":const n=this._configs[e]=i(t),a=this.viewer.scene.selectedMaterial;a.glowThrough=n,a.fillAlpha=n?.5:1,a.edgeAlpha=n?.5:1;break;case"highlightGlowThrough":const l=this._configs[e]=i(t),A=this.viewer.scene.highlightMaterial;A.glowThrough=l,A.fillAlpha=l?.5:1,A.edgeAlpha=l?.5:1;break;case"showSpaces":this._configs[e]=i(t),this._showSpacesMode.setActive(t);break;case"dtxEnabled":this._configs[e]=i(t),this.viewer.scene.dtxEnabled=t;break;case"objectColors":this._configs[e]=t,this._modelsExplorer.setObjectColors(t);break;default:this.warn("setConfig() - unsupported configuration: '"+e+"'")}}catch(t){this.error("setConfig() - failed to configure '"+e+"': "+t)}}getConfig(e){return this._configs[e]}getProjectsInfo(e,t){e?this.server.getProjects(e,(e=>{this.error("getProjectsInfo() - "+e),t&&t(e)})):this.error("getProjectsInfo() - Argument expected: 'done'")}getProjectInfo(e,t,i){e?t?this.server.getProject(e,t,(e=>{this.error("getProjectInfo() - "+e),i&&i(e)})):this.error("getProjectInfo() - Argument expected: 'done'"):this.error("getProjectInfo() - Argument expected: projectId")}getObjectInfo(e,t,i,s,r){e?t?i?s?this.server.getObjectInfo(e,t,i,s,(e=>{r&&r(e)})):this.error("getProjectInfo() - Argument expected: 'done'"):this.error("getObjectInfo() - Argument expected: objectId"):this.error("getObjectInfo() - Argument expected: modelId"):this.error("getObjectInfo() - Argument expected: projectId")}loadProject(e,t,i){e?this._modelsExplorer.loadProject(e,(()=>{t&&t()}),(e=>{this.error("loadProject() - "+e),i&&i(e)})):this.error("loadProject() - Argument expected: objectId")}unloadProject(){this._modelsExplorer.unloadProject(),this.openTab("models"),this.setControlsEnabled(!1)}getLoadedProjectId(){return this._modelsExplorer.getLoadedProjectId()}getModelIds(){return this._modelsExplorer.getModelIds()}loadModel(e,t,i){e?this._modelsExplorer.loadModel(e,(()=>{t&&t()}),(e=>{this.error("loadModel() - "+e),i&&i(e)})):this.error("loadModel() - Argument expected: modelId")}loadAllModels(e=function(){}){const t=this._modelsExplorer.getModelIds(),i=(e,s)=>{if(e>=t.length)s();else{const r=t[e];this._modelsExplorer.isModelLoaded(r)?i(e+1,s):this._modelsExplorer.loadModel(r,(()=>{i(e+1,s)}),(t=>{this.error("loadAllModels() - "+t),i(e+1,s)}))}};i(0,e)}getLoadedModelIds(){return this._modelsExplorer._getLoadedModelIds()}isModelLoaded(e){if(e)return this._modelsExplorer.isModelLoaded(e);this.error("unloadModel() - Argument expected: modelId")}unloadModel(e){e?this._modelsExplorer.unloadModel(e):this.error("unloadModel() - Argument expected: modelId")}unloadAllModels(){this._modelsExplorer.unloadAllModels()}editModel(e){this.fire("editModel",{modelId:e})}deleteModel(e){this.fire("deleteModel",{modelId:e})}addModel(){this.fire("addModel",{})}setBackgroundColor(e){this.viewer.scene.canvas.backgroundColor=e}setObjectColorSource(e){console.log("BIMViewer.setObjectColorSource() is now deprecated and no longer functional. By default, BIMViewer.getObjectColorSource() will now always return the (formerly) default value of `model`.")}getObjectColorSource(){return"model"}setViewerState(e,t=(()=>{})){e.tabOpen&&this.openTab(e.tabOpen),e.expandObjectsTree&&this._objectsExplorer.expandTreeViewToDepth(e.expandObjectsTree),e.expandClassesTree&&this._classesExplorer.expandTreeViewToDepth(e.expandClassesTree),e.expandStoreysTree&&this._storeysExplorer.expandTreeViewToDepth(e.expandStoreysTree),e.setCamera&&this.setCamera(e.setCamera),this._parseSelectedStorey(e,(()=>{this._parseThreeDMode(e,(()=>{t()}))}))}_parseSelectedStorey(e,t){e.selectedStorey?(this.selectStorey(e.selectedStorey),t()):t()}_parseThreeDMode(e,t){const i=!1!==e.threeDActive;this.set3DEnabled(i,t)}showObjectInExplorers(e){e?(this._objectsExplorer.showNodeInTreeView(e),this._classesExplorer.showNodeInTreeView(e),this._storeysExplorer.showNodeInTreeView(e),this.fire("openExplorer",{})):this.error("showObjectInExplorers() - Argument expected: objectId")}unShowObjectInExplorers(){this._objectsExplorer.unShowNodeInTreeView(),this._classesExplorer.unShowNodeInTreeView(),this._storeysExplorer.unShowNodeInTreeView()}showObjectProperties(e){e?(this._enablePropertiesInspector&&this._propertiesInspector.showObjectPropertySets(e),this.fire("openInspector",{})):this.error("showObjectInExplorers() - Argument expected: objectId")}setObjectsVisible(e,t){this._withObjectsInSubtree(e,(e=>{e.visible=t}))}setAllObjectsVisible(e){e?this.viewer.scene.setObjectsVisible(this.viewer.scene.objectIds,!0):this.viewer.scene.setObjectsVisible(this.viewer.scene.visibleObjectIds,!1)}setObjectsXRayed(e,t){this._withObjectsInSubtree(e,(e=>{e.xrayed=t}))}setAllObjectsXRayed(e){e?this.viewer.scene.setObjectsXRayed(this.viewer.scene.objectIds,!0):this.viewer.scene.setObjectsXRayed(this.viewer.scene.xrayedObjectIds,!1)}setObjectsSelected(e,t){this._withObjectsInSubtree(e,(e=>{e.selected=t}))}setAllObjectsSelected(e){e?this.viewer.scene.setObjectsSelected(this.viewer.scene.objectIds,!0):this.viewer.scene.setObjectsSelected(this.viewer.scene.selectedObjectIds,!1)}_withObjectsInSubtree(e,t){if(e)for(let i=0,s=e.length;i{const i=this.viewer.scene.objects[e.id];i&&t(i)}))}else this.error("Argument expected: objectIds")}flyToObject(e,t){if(!e)return void this.error("flyToObject() - Argument expected: objectId");const i=this.viewer,s=i.scene,r=[];if(this.viewer.metaScene.withMetaObjectsInSubtree(e,(e=>{s.objects[e.id]&&r.push(e.id)})),0===r.length)return this.error("Object not found in viewer: '"+e+"'"),void(t&&t());s.setObjectsVisible(r,!0),s.setObjectsHighlighted(r,!0);const o=s.getAABB(r);i.cameraFlight.flyTo({aabb:o},(()=>{t&&t(),setTimeout((function(){s.setObjectsHighlighted(s.highlightedObjectIds,!1)}),500)})),i.cameraControl.pivotPos=u.getAABB3Center(o)}viewFitObjects(e,t){if(!e)return void this.error("flyToObject() - Argument expected: objectIds");const i=this.viewer,s=i.scene,r=[];for(var o=0,n=e.length;o{s.objects[e.id]&&r.push(e.id)}))}if(0===r.length)return void(t&&t());s.setObjectsVisible(r,!0),s.setObjectsHighlighted(r,!0);const a=s.getAABB(r);i.cameraFlight.flyTo({aabb:a},(()=>{t&&t(),setTimeout((function(){s.setObjectsHighlighted(s.highlightedObjectIds,!1)}),500)})),i.cameraControl.pivotPos=u.getAABB3Center(a)}viewFitAll(e){const t=this.viewer,i=t.scene.getAABB();t.cameraFlight.flyTo({aabb:i},(()=>{e&&e()})),t.cameraControl.pivotPos=u.getAABB3Center(i)}jumpToObject(e){if(!e)return void this.error("jumpToObject() - Argument expected: objectId");const t=this.viewer,i=t.scene,s=[];if(this.viewer.metaScene.withMetaObjectsInSubtree(e,(e=>{i.objects[e.id]&&s.push(e.id)})),0===s.length)return void this.error("Object not found in viewer: '"+e+"'");i.setObjectsVisible(s,!0);const r=i.getAABB(s);t.cameraFlight.jumpTo({aabb:r}),t.cameraControl.pivotPos=u.getAABB3Center(r)}setCamera(e){const t=this.viewer.scene.camera;e.eye&&(t.eye=e.eye),e.look&&(t.look=e.look),e.up&&(t.up=e.up)}viewFitModels(e,t){if(!e)return void this.error("viewFitModels() - Argument expected: modelIds");const i=this.viewer,s=i.scene,r=u.AABB3();u.collapseAABB3(r);for(var o=0,n=e.length;o{t(),setTimeout((function(){s.setObjectsHighlighted(s.highlightedObjectIds,!1)}),500)})):(i.cameraFlight.jumpTo({aabb:r}),setTimeout((function(){s.setObjectsHighlighted(s.highlightedObjectIds,!1)}),500)),i.cameraControl.pivotPos=u.getAABB3Center(r)}openTab(e){if(!e)return void this.error("openTab() - Argument expected: tabId");let t;switch(e){case"models":t="xeokit-modelsTab";break;case"objects":t="xeokit-objectsTab";break;case"classes":t="xeokit-classesTab";break;case"storeys":t="xeokit-storeysTab";break;case"properties":t="xeokit-propertiesTab";break;default:return void this.error("openTab() - tab not recognized: '"+e+"'")}this._openTab(this._explorerElement,t)}_openTab(e,t){const i="active";let s=e.querySelectorAll(".xeokit-tab"),r=e.querySelector("."+t);for(let e=0;e-1}const t="active";return e(this._explorerElement.querySelector(".xeokit-modelsTab"),t)?"models":e(this._explorerElement.querySelector(".xeokit-objectsTab"),t)?"objects":e(this._explorerElement.querySelector(".xeokit-classesTab"),t)?"classes":e(this._explorerElement.querySelector(".xeokit-storeysTab"),t)?"storeys":e(this._inspectorElement.querySelector(".xeokit-propertiesTab"),t)?"properties":"none"}set3DEnabled(e,t){this._threeDMode.setActive(e,t)}get3DEnabled(){return this._threeDMode.getActive()}setSpacesShown(e){this._showSpacesMode.setActive(e)}getSpacesShown(){return this._showSpacesMode.getActive()}setOrthoEnabled(e,t){this._orthoMode.setActive(e,t)}getOrthoEnabled(){return this._orthoMode.getActive()}selectStorey(e,t){const i=this.viewer.metaScene.metaObjects[e];i?"IfcBuildingStorey"===i.type?this._storeysExplorer.selectStorey(e,t):this.error("selectStorey() - Object is not an IfcBuildingStorey: '"+e+"'"):this.error("selectStorey() - Object is not found: '"+e+"'")}saveBCFViewpoint(e){return this._bcfViewpointsPlugin.getViewpoint(e)}loadBCFViewpoint(e,t){e?(this._orthoMode.setActive("ortho"===this.viewer.camera.projection),this._bcfViewpointsPlugin.setViewpoint(e,t)):this.error("loadBCFViewpoint() - Argument expected: bcfViewpoint")}resetView(){this._resetAction.reset()}setControlsEnabled(e){this._objectsExplorer.setEnabled(e),this._classesExplorer.setEnabled(e),this._storeysExplorer.setEnabled(e),this._resetAction.setEnabled(e),this._fitAction.setEnabled(e),this._threeDMode.setEnabled(e),this._orthoMode.setEnabled(e),this._firstPersonMode.setEnabled(e),this._queryTool.setEnabled(e),this._hideTool.setEnabled(e),this._selectionTool.setEnabled(e),this._marqueeSelectionTool.setEnabled(e),this._showSpacesMode.setEnabled(e),this._enableMeasurements&&(this._measureDistanceTool.setEnabled(e),this._measureAngleTool.setEnabled(e)),this._sectionTool.setEnabled(e),this._enablePropertiesInspector&&this._propertiesInspector.setEnabled(e)}setKeyboardEnabled(e){this.viewer.scene.input.keyboardEnabled=e}getKeyboardEnabled(){return this.viewer.scene.input.keyboardEnabled}clearSections(){this._sectionTool.clear()}disableSections(){this._sectionTool.disableSections()}enableSections(){this._sectionTool.enableSections()}flipSections(){this._sectionTool.flipSections()}hideSectionEditControl(){this._sectionTool.hideControl()}getNumSections(){return this._sectionTool.getNumSections()}getEnableMeasurements(){return this._enableMeasurements}clearMeasurements(){this._enableMeasurements&&(this._measureDistanceTool.clear(),this._measureAngleTool.clear())}getNumMeasurements(){return this._measureDistanceTool.getNumMeasurements()+this._measureAngleTool.getNumMeasurements()}setMeasurementsAxisVisible(e){this._enableMeasurements&&this._measureDistanceTool.setMeasurementsAxisVisible(e)}getMeasurementsAxisVisible(){return!!this._enableMeasurements&&this._measureDistanceTool.getMeasurementsAxisVisible()}setMeasurementsSnappingEnabled(e){this._enableMeasurements&&this._measureDistanceTool.setSnappingEnabled(e)}getMeasurementsSnappingEnabled(){return!!this._enableMeasurements&&this._measureDistanceTool.getSnappingEnabled()}destroy(){this.viewer.destroy(),this._bcfViewpointsPlugin.destroy(),this._canvasContextMenu.destroy(),this._objectContextMenu.destroy()}}export{qb as BIMViewer,HA as LocaleService,Ab as Server}; +***************************************************************************** */var zh=function(e,t){return zh=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var i in t)Object.prototype.hasOwnProperty.call(t,i)&&(e[i]=t[i])},zh(e,t)};function Gh(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function i(){this.constructor=e}zh(e,t),e.prototype=null===t?Object.create(t):(i.prototype=t.prototype,new i)}var Wh=function(){return Wh=Object.assign||function(e){for(var t,i=1,s=arguments.length;i0&&r[r.length-1])||6!==o[0]&&2!==o[0])){n=0;continue}if(3===o[0]&&(!r||o[1]>r[0]&&o[1]=55296&&r<=56319&&i>10),n%1024+56320)),(r+1===i||s.length>16384)&&(o+=String.fromCharCode.apply(String,s),s.length=0)}return o},ec="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",tc="undefined"==typeof Uint8Array?[]:new Uint8Array(256),ic=0;ic=0){if(e<55296||e>56319&&e<=65535)return t=((t=this.index[e>>5])<<2)+(31&e),this.data[t];if(e<=65535)return t=((t=this.index[2048+(e-55296>>5)])<<2)+(31&e),this.data[t];if(e>11),t=this.index[t],t+=e>>5&63,t=((t=this.index[t])<<2)+(31&e),this.data[t];if(e<=1114111)return this.data[this.highValueIndex]}return this.errorValue},e}(),lc="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",Ac="undefined"==typeof Uint8Array?[]:new Uint8Array(256),hc=0;hc>4,h[l++]=(15&s)<<4|r>>2,h[l++]=(3&r)<<6|63&o;return A}(e),n=Array.isArray(o)?function(e){for(var t=e.length,i=[],s=0;s0;){var n=s[--o];if(Array.isArray(e)?-1!==e.indexOf(n):e===n)for(var a=i;a<=s.length;){var l;if((l=s[++a])===t)return!0;if(l!==cc)break}if(n!==cc)break}return!1},Gc=function(e,t){for(var i=e;i>=0;){var s=t[i];if(s!==cc)return s;i--}return 0},Wc=function(e,t,i,s,r){if(0===i[s])return"×";var o=s-1;if(Array.isArray(r)&&!0===r[o])return"×";var n=o-1,a=o+1,l=t[o],A=n>=0?t[n]:0,h=t[a];if(2===l&&3===h)return"×";if(-1!==Oc.indexOf(l))return"!";if(-1!==Oc.indexOf(h))return"×";if(-1!==Nc.indexOf(h))return"×";if(8===Gc(o,t))return"÷";if(11===Uc.get(e[o]))return"×";if((l===Cc||l===Mc)&&11===Uc.get(e[a]))return"×";if(7===l||7===h)return"×";if(9===l)return"×";if(-1===[cc,uc,dc].indexOf(l)&&9===h)return"×";if(-1!==[pc,gc,mc,bc,Pc].indexOf(h))return"×";if(Gc(o,t)===vc)return"×";if(zc(23,vc,o,t))return"×";if(zc([pc,gc],_c,o,t))return"×";if(zc(12,12,o,t))return"×";if(l===cc)return"÷";if(23===l||23===h)return"×";if(16===h||16===l)return"÷";if(-1!==[uc,dc,_c].indexOf(h)||14===l)return"×";if(36===A&&-1!==Hc.indexOf(l))return"×";if(l===Pc&&36===h)return"×";if(h===fc)return"×";if(-1!==kc.indexOf(h)&&l===xc||-1!==kc.indexOf(l)&&h===xc)return"×";if(l===yc&&-1!==[Ic,Cc,Mc].indexOf(h)||-1!==[Ic,Cc,Mc].indexOf(l)&&h===wc)return"×";if(-1!==kc.indexOf(l)&&-1!==Qc.indexOf(h)||-1!==Qc.indexOf(l)&&-1!==kc.indexOf(h))return"×";if(-1!==[yc,wc].indexOf(l)&&(h===xc||-1!==[vc,dc].indexOf(h)&&t[a+1]===xc)||-1!==[vc,dc].indexOf(l)&&h===xc||l===xc&&-1!==[xc,Pc,bc].indexOf(h))return"×";if(-1!==[xc,Pc,bc,pc,gc].indexOf(h))for(var c=o;c>=0;){if((u=t[c])===xc)return"×";if(-1===[Pc,bc].indexOf(u))break;c--}if(-1!==[yc,wc].indexOf(h))for(c=-1!==[pc,gc].indexOf(l)?n:o;c>=0;){var u;if((u=t[c])===xc)return"×";if(-1===[Pc,bc].indexOf(u))break;c--}if(Dc===l&&-1!==[Dc,Sc,Ec,Fc].indexOf(h)||-1!==[Sc,Ec].indexOf(l)&&-1!==[Sc,Tc].indexOf(h)||-1!==[Tc,Fc].indexOf(l)&&h===Tc)return"×";if(-1!==jc.indexOf(l)&&-1!==[fc,wc].indexOf(h)||-1!==jc.indexOf(h)&&l===yc)return"×";if(-1!==kc.indexOf(l)&&-1!==kc.indexOf(h))return"×";if(l===bc&&-1!==kc.indexOf(h))return"×";if(-1!==kc.concat(xc).indexOf(l)&&h===vc&&-1===Lc.indexOf(e[a])||-1!==kc.concat(xc).indexOf(h)&&l===gc)return"×";if(41===l&&41===h){for(var d=i[o],p=1;d>0&&41===t[--d];)p++;if(p%2!=0)return"×"}return l===Cc&&h===Mc?"×":"÷"},Kc=function(e,t){t||(t={lineBreak:"normal",wordBreak:"normal"});var i=function(e,t){void 0===t&&(t="strict");var i=[],s=[],r=[];return e.forEach((function(e,o){var n=Uc.get(e);if(n>50?(r.push(!0),n-=50):r.push(!1),-1!==["normal","auto","loose"].indexOf(t)&&-1!==[8208,8211,12316,12448].indexOf(e))return s.push(o),i.push(16);if(4===n||11===n){if(0===o)return s.push(o),i.push(Bc);var a=i[o-1];return-1===Vc.indexOf(a)?(s.push(s[o-1]),i.push(a)):(s.push(o),i.push(Bc))}return s.push(o),31===n?i.push("strict"===t?_c:Ic):n===Rc||29===n?i.push(Bc):43===n?e>=131072&&e<=196605||e>=196608&&e<=262141?i.push(Ic):i.push(Bc):void i.push(n)})),[s,i,r]}(e,t.lineBreak),s=i[0],r=i[1],o=i[2];"break-all"!==t.wordBreak&&"break-word"!==t.wordBreak||(r=r.map((function(e){return-1!==[xc,Bc,Rc].indexOf(e)?Ic:e})));var n="keep-all"===t.wordBreak?o.map((function(t,i){return t&&e[i]>=19968&&e[i]<=40959})):void 0;return[s,r,n]},Xc=function(){function e(e,t,i,s){this.codePoints=e,this.required="!"===t,this.start=i,this.end=s}return e.prototype.slice=function(){return $h.apply(void 0,this.codePoints.slice(this.start,this.end))},e}(),Yc=function(e){return e>=48&&e<=57},qc=function(e){return Yc(e)||e>=65&&e<=70||e>=97&&e<=102},Zc=function(e){return 10===e||9===e||32===e},Jc=function(e){return function(e){return function(e){return e>=97&&e<=122}(e)||function(e){return e>=65&&e<=90}(e)}(e)||function(e){return e>=128}(e)||95===e},$c=function(e){return Jc(e)||Yc(e)||45===e},eu=function(e){return e>=0&&e<=8||11===e||e>=14&&e<=31||127===e},tu=function(e,t){return 92===e&&10!==t},iu=function(e,t,i){return 45===e?Jc(t)||tu(t,i):!!Jc(e)||!(92!==e||!tu(e,t))},su=function(e,t,i){return 43===e||45===e?!!Yc(t)||46===t&&Yc(i):Yc(46===e?t:e)},ru=function(e){var t=0,i=1;43!==e[t]&&45!==e[t]||(45===e[t]&&(i=-1),t++);for(var s=[];Yc(e[t]);)s.push(e[t++]);var r=s.length?parseInt($h.apply(void 0,s),10):0;46===e[t]&&t++;for(var o=[];Yc(e[t]);)o.push(e[t++]);var n=o.length,a=n?parseInt($h.apply(void 0,o),10):0;69!==e[t]&&101!==e[t]||t++;var l=1;43!==e[t]&&45!==e[t]||(45===e[t]&&(l=-1),t++);for(var A=[];Yc(e[t]);)A.push(e[t++]);var h=A.length?parseInt($h.apply(void 0,A),10):0;return i*(r+a*Math.pow(10,-n))*Math.pow(10,l*h)},ou={type:2},nu={type:3},au={type:4},lu={type:13},Au={type:8},hu={type:21},cu={type:9},uu={type:10},du={type:11},pu={type:12},gu={type:14},mu={type:23},fu={type:1},_u={type:25},vu={type:24},bu={type:26},xu={type:27},wu={type:28},yu={type:29},Pu={type:31},Bu={type:32},Cu=function(){function e(){this._value=[]}return e.prototype.write=function(e){this._value=this._value.concat(Jh(e))},e.prototype.read=function(){for(var e=[],t=this.consumeToken();t!==Bu;)e.push(t),t=this.consumeToken();return e},e.prototype.consumeToken=function(){var e=this.consumeCodePoint();switch(e){case 34:return this.consumeStringToken(34);case 35:var t=this.peekCodePoint(0),i=this.peekCodePoint(1),s=this.peekCodePoint(2);if($c(t)||tu(i,s)){var r=iu(t,i,s)?2:1;return{type:5,value:this.consumeName(),flags:r}}break;case 36:if(61===this.peekCodePoint(0))return this.consumeCodePoint(),lu;break;case 39:return this.consumeStringToken(39);case 40:return ou;case 41:return nu;case 42:if(61===this.peekCodePoint(0))return this.consumeCodePoint(),gu;break;case 43:if(su(e,this.peekCodePoint(0),this.peekCodePoint(1)))return this.reconsumeCodePoint(e),this.consumeNumericToken();break;case 44:return au;case 45:var o=e,n=this.peekCodePoint(0),a=this.peekCodePoint(1);if(su(o,n,a))return this.reconsumeCodePoint(e),this.consumeNumericToken();if(iu(o,n,a))return this.reconsumeCodePoint(e),this.consumeIdentLikeToken();if(45===n&&62===a)return this.consumeCodePoint(),this.consumeCodePoint(),vu;break;case 46:if(su(e,this.peekCodePoint(0),this.peekCodePoint(1)))return this.reconsumeCodePoint(e),this.consumeNumericToken();break;case 47:if(42===this.peekCodePoint(0))for(this.consumeCodePoint();;){var l=this.consumeCodePoint();if(42===l&&47===(l=this.consumeCodePoint()))return this.consumeToken();if(-1===l)return this.consumeToken()}break;case 58:return bu;case 59:return xu;case 60:if(33===this.peekCodePoint(0)&&45===this.peekCodePoint(1)&&45===this.peekCodePoint(2))return this.consumeCodePoint(),this.consumeCodePoint(),_u;break;case 64:var A=this.peekCodePoint(0),h=this.peekCodePoint(1),c=this.peekCodePoint(2);if(iu(A,h,c))return{type:7,value:this.consumeName()};break;case 91:return wu;case 92:if(tu(e,this.peekCodePoint(0)))return this.reconsumeCodePoint(e),this.consumeIdentLikeToken();break;case 93:return yu;case 61:if(61===this.peekCodePoint(0))return this.consumeCodePoint(),Au;break;case 123:return du;case 125:return pu;case 117:case 85:var u=this.peekCodePoint(0),d=this.peekCodePoint(1);return 43!==u||!qc(d)&&63!==d||(this.consumeCodePoint(),this.consumeUnicodeRangeToken()),this.reconsumeCodePoint(e),this.consumeIdentLikeToken();case 124:if(61===this.peekCodePoint(0))return this.consumeCodePoint(),cu;if(124===this.peekCodePoint(0))return this.consumeCodePoint(),hu;break;case 126:if(61===this.peekCodePoint(0))return this.consumeCodePoint(),uu;break;case-1:return Bu}return Zc(e)?(this.consumeWhiteSpace(),Pu):Yc(e)?(this.reconsumeCodePoint(e),this.consumeNumericToken()):Jc(e)?(this.reconsumeCodePoint(e),this.consumeIdentLikeToken()):{type:6,value:$h(e)}},e.prototype.consumeCodePoint=function(){var e=this._value.shift();return void 0===e?-1:e},e.prototype.reconsumeCodePoint=function(e){this._value.unshift(e)},e.prototype.peekCodePoint=function(e){return e>=this._value.length?-1:this._value[e]},e.prototype.consumeUnicodeRangeToken=function(){for(var e=[],t=this.consumeCodePoint();qc(t)&&e.length<6;)e.push(t),t=this.consumeCodePoint();for(var i=!1;63===t&&e.length<6;)e.push(t),t=this.consumeCodePoint(),i=!0;if(i)return{type:30,start:parseInt($h.apply(void 0,e.map((function(e){return 63===e?48:e}))),16),end:parseInt($h.apply(void 0,e.map((function(e){return 63===e?70:e}))),16)};var s=parseInt($h.apply(void 0,e),16);if(45===this.peekCodePoint(0)&&qc(this.peekCodePoint(1))){this.consumeCodePoint(),t=this.consumeCodePoint();for(var r=[];qc(t)&&r.length<6;)r.push(t),t=this.consumeCodePoint();return{type:30,start:s,end:parseInt($h.apply(void 0,r),16)}}return{type:30,start:s,end:s}},e.prototype.consumeIdentLikeToken=function(){var e=this.consumeName();return"url"===e.toLowerCase()&&40===this.peekCodePoint(0)?(this.consumeCodePoint(),this.consumeUrlToken()):40===this.peekCodePoint(0)?(this.consumeCodePoint(),{type:19,value:e}):{type:20,value:e}},e.prototype.consumeUrlToken=function(){var e=[];if(this.consumeWhiteSpace(),-1===this.peekCodePoint(0))return{type:22,value:""};var t=this.peekCodePoint(0);if(39===t||34===t){var i=this.consumeStringToken(this.consumeCodePoint());return 0===i.type&&(this.consumeWhiteSpace(),-1===this.peekCodePoint(0)||41===this.peekCodePoint(0))?(this.consumeCodePoint(),{type:22,value:i.value}):(this.consumeBadUrlRemnants(),mu)}for(;;){var s=this.consumeCodePoint();if(-1===s||41===s)return{type:22,value:$h.apply(void 0,e)};if(Zc(s))return this.consumeWhiteSpace(),-1===this.peekCodePoint(0)||41===this.peekCodePoint(0)?(this.consumeCodePoint(),{type:22,value:$h.apply(void 0,e)}):(this.consumeBadUrlRemnants(),mu);if(34===s||39===s||40===s||eu(s))return this.consumeBadUrlRemnants(),mu;if(92===s){if(!tu(s,this.peekCodePoint(0)))return this.consumeBadUrlRemnants(),mu;e.push(this.consumeEscapedCodePoint())}else e.push(s)}},e.prototype.consumeWhiteSpace=function(){for(;Zc(this.peekCodePoint(0));)this.consumeCodePoint()},e.prototype.consumeBadUrlRemnants=function(){for(;;){var e=this.consumeCodePoint();if(41===e||-1===e)return;tu(e,this.peekCodePoint(0))&&this.consumeEscapedCodePoint()}},e.prototype.consumeStringSlice=function(e){for(var t="";e>0;){var i=Math.min(5e4,e);t+=$h.apply(void 0,this._value.splice(0,i)),e-=i}return this._value.shift(),t},e.prototype.consumeStringToken=function(e){for(var t="",i=0;;){var s=this._value[i];if(-1===s||void 0===s||s===e)return{type:0,value:t+=this.consumeStringSlice(i)};if(10===s)return this._value.splice(0,i),fu;if(92===s){var r=this._value[i+1];-1!==r&&void 0!==r&&(10===r?(t+=this.consumeStringSlice(i),i=-1,this._value.shift()):tu(s,r)&&(t+=this.consumeStringSlice(i),t+=$h(this.consumeEscapedCodePoint()),i=-1))}i++}},e.prototype.consumeNumber=function(){var e=[],t=4,i=this.peekCodePoint(0);for(43!==i&&45!==i||e.push(this.consumeCodePoint());Yc(this.peekCodePoint(0));)e.push(this.consumeCodePoint());i=this.peekCodePoint(0);var s=this.peekCodePoint(1);if(46===i&&Yc(s))for(e.push(this.consumeCodePoint(),this.consumeCodePoint()),t=8;Yc(this.peekCodePoint(0));)e.push(this.consumeCodePoint());i=this.peekCodePoint(0),s=this.peekCodePoint(1);var r=this.peekCodePoint(2);if((69===i||101===i)&&((43===s||45===s)&&Yc(r)||Yc(s)))for(e.push(this.consumeCodePoint(),this.consumeCodePoint()),t=8;Yc(this.peekCodePoint(0));)e.push(this.consumeCodePoint());return[ru(e),t]},e.prototype.consumeNumericToken=function(){var e=this.consumeNumber(),t=e[0],i=e[1],s=this.peekCodePoint(0),r=this.peekCodePoint(1),o=this.peekCodePoint(2);return iu(s,r,o)?{type:15,number:t,flags:i,unit:this.consumeName()}:37===s?(this.consumeCodePoint(),{type:16,number:t,flags:i}):{type:17,number:t,flags:i}},e.prototype.consumeEscapedCodePoint=function(){var e=this.consumeCodePoint();if(qc(e)){for(var t=$h(e);qc(this.peekCodePoint(0))&&t.length<6;)t+=$h(this.consumeCodePoint());Zc(this.peekCodePoint(0))&&this.consumeCodePoint();var i=parseInt(t,16);return 0===i||function(e){return e>=55296&&e<=57343}(i)||i>1114111?65533:i}return-1===e?65533:e},e.prototype.consumeName=function(){for(var e="";;){var t=this.consumeCodePoint();if($c(t))e+=$h(t);else{if(!tu(t,this.peekCodePoint(0)))return this.reconsumeCodePoint(t),e;e+=$h(this.consumeEscapedCodePoint())}}},e}(),Mu=function(){function e(e){this._tokens=e}return e.create=function(t){var i=new Cu;return i.write(t),new e(i.read())},e.parseValue=function(t){return e.create(t).parseComponentValue()},e.parseValues=function(t){return e.create(t).parseComponentValues()},e.prototype.parseComponentValue=function(){for(var e=this.consumeToken();31===e.type;)e=this.consumeToken();if(32===e.type)throw new SyntaxError("Error parsing CSS component value, unexpected EOF");this.reconsumeToken(e);var t=this.consumeComponentValue();do{e=this.consumeToken()}while(31===e.type);if(32===e.type)return t;throw new SyntaxError("Error parsing CSS component value, multiple values found when expecting only one")},e.prototype.parseComponentValues=function(){for(var e=[];;){var t=this.consumeComponentValue();if(32===t.type)return e;e.push(t),e.push()}},e.prototype.consumeComponentValue=function(){var e=this.consumeToken();switch(e.type){case 11:case 28:case 2:return this.consumeSimpleBlock(e.type);case 19:return this.consumeFunction(e)}return e},e.prototype.consumeSimpleBlock=function(e){for(var t={type:e,values:[]},i=this.consumeToken();;){if(32===i.type||Uu(i,e))return t;this.reconsumeToken(i),t.values.push(this.consumeComponentValue()),i=this.consumeToken()}},e.prototype.consumeFunction=function(e){for(var t={name:e.value,values:[],type:18};;){var i=this.consumeToken();if(32===i.type||3===i.type)return t;this.reconsumeToken(i),t.values.push(this.consumeComponentValue())}},e.prototype.consumeToken=function(){var e=this._tokens.shift();return void 0===e?Bu:e},e.prototype.reconsumeToken=function(e){this._tokens.unshift(e)},e}(),Eu=function(e){return 15===e.type},Fu=function(e){return 17===e.type},Iu=function(e){return 20===e.type},Du=function(e){return 0===e.type},Su=function(e,t){return Iu(e)&&e.value===t},Tu=function(e){return 31!==e.type},Ru=function(e){return 31!==e.type&&4!==e.type},Lu=function(e){var t=[],i=[];return e.forEach((function(e){if(4===e.type){if(0===i.length)throw new Error("Error parsing function args, zero tokens for arg");return t.push(i),void(i=[])}31!==e.type&&i.push(e)})),i.length&&t.push(i),t},Uu=function(e,t){return 11===t&&12===e.type||(28===t&&29===e.type||2===t&&3===e.type)},ku=function(e){return 17===e.type||15===e.type},Ou=function(e){return 16===e.type||ku(e)},Nu=function(e){return e.length>1?[e[0],e[1]]:[e[0]]},Qu={type:17,number:0,flags:4},Vu={type:16,number:50,flags:4},ju={type:16,number:100,flags:4},Hu=function(e,t,i){var s=e[0],r=e[1];return[zu(s,t),zu(void 0!==r?r:s,i)]},zu=function(e,t){if(16===e.type)return e.number/100*t;if(Eu(e))switch(e.unit){case"rem":case"em":return 16*e.number;default:return e.number}return e.number},Gu=function(e,t){if(15===t.type)switch(t.unit){case"deg":return Math.PI*t.number/180;case"grad":return Math.PI/200*t.number;case"rad":return t.number;case"turn":return 2*Math.PI*t.number}throw new Error("Unsupported angle type")},Wu=function(e){return 15===e.type&&("deg"===e.unit||"grad"===e.unit||"rad"===e.unit||"turn"===e.unit)},Ku=function(e){switch(e.filter(Iu).map((function(e){return e.value})).join(" ")){case"to bottom right":case"to right bottom":case"left top":case"top left":return[Qu,Qu];case"to top":case"bottom":return Xu(0);case"to bottom left":case"to left bottom":case"right top":case"top right":return[Qu,ju];case"to right":case"left":return Xu(90);case"to top left":case"to left top":case"right bottom":case"bottom right":return[ju,ju];case"to bottom":case"top":return Xu(180);case"to top right":case"to right top":case"left bottom":case"bottom left":return[ju,Qu];case"to left":case"right":return Xu(270)}return 0},Xu=function(e){return Math.PI*e/180},Yu=function(e,t){if(18===t.type){var i=sd[t.name];if(void 0===i)throw new Error('Attempting to parse an unsupported color function "'+t.name+'"');return i(e,t.values)}if(5===t.type){if(3===t.value.length){var s=t.value.substring(0,1),r=t.value.substring(1,2),o=t.value.substring(2,3);return Ju(parseInt(s+s,16),parseInt(r+r,16),parseInt(o+o,16),1)}if(4===t.value.length){s=t.value.substring(0,1),r=t.value.substring(1,2),o=t.value.substring(2,3);var n=t.value.substring(3,4);return Ju(parseInt(s+s,16),parseInt(r+r,16),parseInt(o+o,16),parseInt(n+n,16)/255)}if(6===t.value.length){s=t.value.substring(0,2),r=t.value.substring(2,4),o=t.value.substring(4,6);return Ju(parseInt(s,16),parseInt(r,16),parseInt(o,16),1)}if(8===t.value.length){s=t.value.substring(0,2),r=t.value.substring(2,4),o=t.value.substring(4,6),n=t.value.substring(6,8);return Ju(parseInt(s,16),parseInt(r,16),parseInt(o,16),parseInt(n,16)/255)}}if(20===t.type){var a=od[t.value.toUpperCase()];if(void 0!==a)return a}return od.TRANSPARENT},qu=function(e){return 0==(255&e)},Zu=function(e){var t=255&e,i=255&e>>8,s=255&e>>16,r=255&e>>24;return t<255?"rgba("+r+","+s+","+i+","+t/255+")":"rgb("+r+","+s+","+i+")"},Ju=function(e,t,i,s){return(e<<24|t<<16|i<<8|Math.round(255*s)<<0)>>>0},$u=function(e,t){if(17===e.type)return e.number;if(16===e.type){var i=3===t?1:255;return 3===t?e.number/100*i:Math.round(e.number/100*i)}return 0},ed=function(e,t){var i=t.filter(Ru);if(3===i.length){var s=i.map($u),r=s[0],o=s[1],n=s[2];return Ju(r,o,n,1)}if(4===i.length){var a=i.map($u),l=(r=a[0],o=a[1],n=a[2],a[3]);return Ju(r,o,n,l)}return 0};function td(e,t,i){return i<0&&(i+=1),i>=1&&(i-=1),i<1/6?(t-e)*i*6+e:i<.5?t:i<2/3?6*(t-e)*(2/3-i)+e:e}var id=function(e,t){var i=t.filter(Ru),s=i[0],r=i[1],o=i[2],n=i[3],a=(17===s.type?Xu(s.number):Gu(e,s))/(2*Math.PI),l=Ou(r)?r.number/100:0,A=Ou(o)?o.number/100:0,h=void 0!==n&&Ou(n)?zu(n,1):1;if(0===l)return Ju(255*A,255*A,255*A,1);var c=A<=.5?A*(l+1):A+l-A*l,u=2*A-c,d=td(u,c,a+1/3),p=td(u,c,a),g=td(u,c,a-1/3);return Ju(255*d,255*p,255*g,h)},sd={hsl:id,hsla:id,rgb:ed,rgba:ed},rd=function(e,t){return Yu(e,Mu.create(t).parseComponentValue())},od={ALICEBLUE:4042850303,ANTIQUEWHITE:4209760255,AQUA:16777215,AQUAMARINE:2147472639,AZURE:4043309055,BEIGE:4126530815,BISQUE:4293182719,BLACK:255,BLANCHEDALMOND:4293643775,BLUE:65535,BLUEVIOLET:2318131967,BROWN:2771004159,BURLYWOOD:3736635391,CADETBLUE:1604231423,CHARTREUSE:2147418367,CHOCOLATE:3530104575,CORAL:4286533887,CORNFLOWERBLUE:1687547391,CORNSILK:4294499583,CRIMSON:3692313855,CYAN:16777215,DARKBLUE:35839,DARKCYAN:9145343,DARKGOLDENROD:3095837695,DARKGRAY:2846468607,DARKGREEN:6553855,DARKGREY:2846468607,DARKKHAKI:3182914559,DARKMAGENTA:2332068863,DARKOLIVEGREEN:1433087999,DARKORANGE:4287365375,DARKORCHID:2570243327,DARKRED:2332033279,DARKSALMON:3918953215,DARKSEAGREEN:2411499519,DARKSLATEBLUE:1211993087,DARKSLATEGRAY:793726975,DARKSLATEGREY:793726975,DARKTURQUOISE:13554175,DARKVIOLET:2483082239,DEEPPINK:4279538687,DEEPSKYBLUE:12582911,DIMGRAY:1768516095,DIMGREY:1768516095,DODGERBLUE:512819199,FIREBRICK:2988581631,FLORALWHITE:4294635775,FORESTGREEN:579543807,FUCHSIA:4278255615,GAINSBORO:3705462015,GHOSTWHITE:4177068031,GOLD:4292280575,GOLDENROD:3668254975,GRAY:2155905279,GREEN:8388863,GREENYELLOW:2919182335,GREY:2155905279,HONEYDEW:4043305215,HOTPINK:4285117695,INDIANRED:3445382399,INDIGO:1258324735,IVORY:4294963455,KHAKI:4041641215,LAVENDER:3873897215,LAVENDERBLUSH:4293981695,LAWNGREEN:2096890111,LEMONCHIFFON:4294626815,LIGHTBLUE:2916673279,LIGHTCORAL:4034953471,LIGHTCYAN:3774873599,LIGHTGOLDENRODYELLOW:4210742015,LIGHTGRAY:3553874943,LIGHTGREEN:2431553791,LIGHTGREY:3553874943,LIGHTPINK:4290167295,LIGHTSALMON:4288707327,LIGHTSEAGREEN:548580095,LIGHTSKYBLUE:2278488831,LIGHTSLATEGRAY:2005441023,LIGHTSLATEGREY:2005441023,LIGHTSTEELBLUE:2965692159,LIGHTYELLOW:4294959359,LIME:16711935,LIMEGREEN:852308735,LINEN:4210091775,MAGENTA:4278255615,MAROON:2147483903,MEDIUMAQUAMARINE:1724754687,MEDIUMBLUE:52735,MEDIUMORCHID:3126187007,MEDIUMPURPLE:2473647103,MEDIUMSEAGREEN:1018393087,MEDIUMSLATEBLUE:2070474495,MEDIUMSPRINGGREEN:16423679,MEDIUMTURQUOISE:1221709055,MEDIUMVIOLETRED:3340076543,MIDNIGHTBLUE:421097727,MINTCREAM:4127193855,MISTYROSE:4293190143,MOCCASIN:4293178879,NAVAJOWHITE:4292783615,NAVY:33023,OLDLACE:4260751103,OLIVE:2155872511,OLIVEDRAB:1804477439,ORANGE:4289003775,ORANGERED:4282712319,ORCHID:3664828159,PALEGOLDENROD:4008225535,PALEGREEN:2566625535,PALETURQUOISE:2951671551,PALEVIOLETRED:3681588223,PAPAYAWHIP:4293907967,PEACHPUFF:4292524543,PERU:3448061951,PINK:4290825215,PLUM:3718307327,POWDERBLUE:2967529215,PURPLE:2147516671,REBECCAPURPLE:1714657791,RED:4278190335,ROSYBROWN:3163525119,ROYALBLUE:1097458175,SADDLEBROWN:2336560127,SALMON:4202722047,SANDYBROWN:4104413439,SEAGREEN:780883967,SEASHELL:4294307583,SIENNA:2689740287,SILVER:3233857791,SKYBLUE:2278484991,SLATEBLUE:1784335871,SLATEGRAY:1887473919,SLATEGREY:1887473919,SNOW:4294638335,SPRINGGREEN:16744447,STEELBLUE:1182971135,TAN:3535047935,TEAL:8421631,THISTLE:3636451583,TOMATO:4284696575,TRANSPARENT:0,TURQUOISE:1088475391,VIOLET:4001558271,WHEAT:4125012991,WHITE:4294967295,WHITESMOKE:4126537215,YELLOW:4294902015,YELLOWGREEN:2597139199},nd={name:"background-clip",initialValue:"border-box",prefix:!1,type:1,parse:function(e,t){return t.map((function(e){if(Iu(e))switch(e.value){case"padding-box":return 1;case"content-box":return 2}return 0}))}},ad={name:"background-color",initialValue:"transparent",prefix:!1,type:3,format:"color"},ld=function(e,t){var i=Yu(e,t[0]),s=t[1];return s&&Ou(s)?{color:i,stop:s}:{color:i,stop:null}},Ad=function(e,t){var i=e[0],s=e[e.length-1];null===i.stop&&(i.stop=Qu),null===s.stop&&(s.stop=ju);for(var r=[],o=0,n=0;no?r.push(l):r.push(o),o=l}else r.push(null)}var A=null;for(n=0;ne.optimumDistance)?{optimumCorner:t,optimumDistance:a}:e}),{optimumDistance:r?1/0:-1/0,optimumCorner:null}).optimumCorner},dd=function(e,t){var i=Xu(180),s=[];return Lu(t).forEach((function(t,r){if(0===r){var o=t[0];if(20===o.type&&-1!==["top","left","right","bottom"].indexOf(o.value))return void(i=Ku(t));if(Wu(o))return void(i=(Gu(e,o)+Xu(270))%Xu(360))}var n=ld(e,t);s.push(n)})),{angle:i,stops:s,type:1}},pd=function(e,t){var i=0,s=3,r=[],o=[];return Lu(t).forEach((function(t,n){var a=!0;if(0===n?a=t.reduce((function(e,t){if(Iu(t))switch(t.value){case"center":return o.push(Vu),!1;case"top":case"left":return o.push(Qu),!1;case"right":case"bottom":return o.push(ju),!1}else if(Ou(t)||ku(t))return o.push(t),!1;return e}),a):1===n&&(a=t.reduce((function(e,t){if(Iu(t))switch(t.value){case"circle":return i=0,!1;case"ellipse":return i=1,!1;case"contain":case"closest-side":return s=0,!1;case"farthest-side":return s=1,!1;case"closest-corner":return s=2,!1;case"cover":case"farthest-corner":return s=3,!1}else if(ku(t)||Ou(t))return Array.isArray(s)||(s=[]),s.push(t),!1;return e}),a)),a){var l=ld(e,t);r.push(l)}})),{size:s,shape:i,stops:r,position:o,type:2}},gd=function(e,t){if(22===t.type){var i={url:t.value,type:0};return e.cache.addImage(t.value),i}if(18===t.type){var s=fd[t.name];if(void 0===s)throw new Error('Attempting to parse an unsupported image function "'+t.name+'"');return s(e,t.values)}throw new Error("Unsupported image type "+t.type)};var md,fd={"linear-gradient":function(e,t){var i=Xu(180),s=[];return Lu(t).forEach((function(t,r){if(0===r){var o=t[0];if(20===o.type&&"to"===o.value)return void(i=Ku(t));if(Wu(o))return void(i=Gu(e,o))}var n=ld(e,t);s.push(n)})),{angle:i,stops:s,type:1}},"-moz-linear-gradient":dd,"-ms-linear-gradient":dd,"-o-linear-gradient":dd,"-webkit-linear-gradient":dd,"radial-gradient":function(e,t){var i=0,s=3,r=[],o=[];return Lu(t).forEach((function(t,n){var a=!0;if(0===n){var l=!1;a=t.reduce((function(e,t){if(l)if(Iu(t))switch(t.value){case"center":return o.push(Vu),e;case"top":case"left":return o.push(Qu),e;case"right":case"bottom":return o.push(ju),e}else(Ou(t)||ku(t))&&o.push(t);else if(Iu(t))switch(t.value){case"circle":return i=0,!1;case"ellipse":return i=1,!1;case"at":return l=!0,!1;case"closest-side":return s=0,!1;case"cover":case"farthest-side":return s=1,!1;case"contain":case"closest-corner":return s=2,!1;case"farthest-corner":return s=3,!1}else if(ku(t)||Ou(t))return Array.isArray(s)||(s=[]),s.push(t),!1;return e}),a)}if(a){var A=ld(e,t);r.push(A)}})),{size:s,shape:i,stops:r,position:o,type:2}},"-moz-radial-gradient":pd,"-ms-radial-gradient":pd,"-o-radial-gradient":pd,"-webkit-radial-gradient":pd,"-webkit-gradient":function(e,t){var i=Xu(180),s=[],r=1;return Lu(t).forEach((function(t,i){var o=t[0];if(0===i){if(Iu(o)&&"linear"===o.value)return void(r=1);if(Iu(o)&&"radial"===o.value)return void(r=2)}if(18===o.type)if("from"===o.name){var n=Yu(e,o.values[0]);s.push({stop:Qu,color:n})}else if("to"===o.name){n=Yu(e,o.values[0]);s.push({stop:ju,color:n})}else if("color-stop"===o.name){var a=o.values.filter(Ru);if(2===a.length){n=Yu(e,a[1]);var l=a[0];Fu(l)&&s.push({stop:{type:16,number:100*l.number,flags:l.flags},color:n})}}})),1===r?{angle:(i+Xu(180))%Xu(360),stops:s,type:r}:{size:3,shape:0,stops:s,position:[],type:r}}},_d={name:"background-image",initialValue:"none",type:1,prefix:!1,parse:function(e,t){if(0===t.length)return[];var i=t[0];return 20===i.type&&"none"===i.value?[]:t.filter((function(e){return Ru(e)&&function(e){return!(20===e.type&&"none"===e.value||18===e.type&&!fd[e.name])}(e)})).map((function(t){return gd(e,t)}))}},vd={name:"background-origin",initialValue:"border-box",prefix:!1,type:1,parse:function(e,t){return t.map((function(e){if(Iu(e))switch(e.value){case"padding-box":return 1;case"content-box":return 2}return 0}))}},bd={name:"background-position",initialValue:"0% 0%",type:1,prefix:!1,parse:function(e,t){return Lu(t).map((function(e){return e.filter(Ou)})).map(Nu)}},xd={name:"background-repeat",initialValue:"repeat",prefix:!1,type:1,parse:function(e,t){return Lu(t).map((function(e){return e.filter(Iu).map((function(e){return e.value})).join(" ")})).map(wd)}},wd=function(e){switch(e){case"no-repeat":return 1;case"repeat-x":case"repeat no-repeat":return 2;case"repeat-y":case"no-repeat repeat":return 3;default:return 0}};!function(e){e.AUTO="auto",e.CONTAIN="contain",e.COVER="cover"}(md||(md={}));var yd,Pd={name:"background-size",initialValue:"0",prefix:!1,type:1,parse:function(e,t){return Lu(t).map((function(e){return e.filter(Bd)}))}},Bd=function(e){return Iu(e)||Ou(e)},Cd=function(e){return{name:"border-"+e+"-color",initialValue:"transparent",prefix:!1,type:3,format:"color"}},Md=Cd("top"),Ed=Cd("right"),Fd=Cd("bottom"),Id=Cd("left"),Dd=function(e){return{name:"border-radius-"+e,initialValue:"0 0",prefix:!1,type:1,parse:function(e,t){return Nu(t.filter(Ou))}}},Sd=Dd("top-left"),Td=Dd("top-right"),Rd=Dd("bottom-right"),Ld=Dd("bottom-left"),Ud=function(e){return{name:"border-"+e+"-style",initialValue:"solid",prefix:!1,type:2,parse:function(e,t){switch(t){case"none":return 0;case"dashed":return 2;case"dotted":return 3;case"double":return 4}return 1}}},kd=Ud("top"),Od=Ud("right"),Nd=Ud("bottom"),Qd=Ud("left"),Vd=function(e){return{name:"border-"+e+"-width",initialValue:"0",type:0,prefix:!1,parse:function(e,t){return Eu(t)?t.number:0}}},jd=Vd("top"),Hd=Vd("right"),zd=Vd("bottom"),Gd=Vd("left"),Wd={name:"color",initialValue:"transparent",prefix:!1,type:3,format:"color"},Kd={name:"direction",initialValue:"ltr",prefix:!1,type:2,parse:function(e,t){return"rtl"===t?1:0}},Xd={name:"display",initialValue:"inline-block",prefix:!1,type:1,parse:function(e,t){return t.filter(Iu).reduce((function(e,t){return e|Yd(t.value)}),0)}},Yd=function(e){switch(e){case"block":case"-webkit-box":return 2;case"inline":return 4;case"run-in":return 8;case"flow":return 16;case"flow-root":return 32;case"table":return 64;case"flex":case"-webkit-flex":return 128;case"grid":case"-ms-grid":return 256;case"ruby":return 512;case"subgrid":return 1024;case"list-item":return 2048;case"table-row-group":return 4096;case"table-header-group":return 8192;case"table-footer-group":return 16384;case"table-row":return 32768;case"table-cell":return 65536;case"table-column-group":return 131072;case"table-column":return 262144;case"table-caption":return 524288;case"ruby-base":return 1048576;case"ruby-text":return 2097152;case"ruby-base-container":return 4194304;case"ruby-text-container":return 8388608;case"contents":return 16777216;case"inline-block":return 33554432;case"inline-list-item":return 67108864;case"inline-table":return 134217728;case"inline-flex":return 268435456;case"inline-grid":return 536870912}return 0},qd={name:"float",initialValue:"none",prefix:!1,type:2,parse:function(e,t){switch(t){case"left":return 1;case"right":return 2;case"inline-start":return 3;case"inline-end":return 4}return 0}},Zd={name:"letter-spacing",initialValue:"0",prefix:!1,type:0,parse:function(e,t){return 20===t.type&&"normal"===t.value?0:17===t.type||15===t.type?t.number:0}};!function(e){e.NORMAL="normal",e.STRICT="strict"}(yd||(yd={}));var Jd,$d={name:"line-break",initialValue:"normal",prefix:!1,type:2,parse:function(e,t){return"strict"===t?yd.STRICT:yd.NORMAL}},ep={name:"line-height",initialValue:"normal",prefix:!1,type:4},tp=function(e,t){return Iu(e)&&"normal"===e.value?1.2*t:17===e.type?t*e.number:Ou(e)?zu(e,t):t},ip={name:"list-style-image",initialValue:"none",type:0,prefix:!1,parse:function(e,t){return 20===t.type&&"none"===t.value?null:gd(e,t)}},sp={name:"list-style-position",initialValue:"outside",prefix:!1,type:2,parse:function(e,t){return"inside"===t?0:1}},rp={name:"list-style-type",initialValue:"none",prefix:!1,type:2,parse:function(e,t){switch(t){case"disc":return 0;case"circle":return 1;case"square":return 2;case"decimal":return 3;case"cjk-decimal":return 4;case"decimal-leading-zero":return 5;case"lower-roman":return 6;case"upper-roman":return 7;case"lower-greek":return 8;case"lower-alpha":return 9;case"upper-alpha":return 10;case"arabic-indic":return 11;case"armenian":return 12;case"bengali":return 13;case"cambodian":return 14;case"cjk-earthly-branch":return 15;case"cjk-heavenly-stem":return 16;case"cjk-ideographic":return 17;case"devanagari":return 18;case"ethiopic-numeric":return 19;case"georgian":return 20;case"gujarati":return 21;case"gurmukhi":case"hebrew":return 22;case"hiragana":return 23;case"hiragana-iroha":return 24;case"japanese-formal":return 25;case"japanese-informal":return 26;case"kannada":return 27;case"katakana":return 28;case"katakana-iroha":return 29;case"khmer":return 30;case"korean-hangul-formal":return 31;case"korean-hanja-formal":return 32;case"korean-hanja-informal":return 33;case"lao":return 34;case"lower-armenian":return 35;case"malayalam":return 36;case"mongolian":return 37;case"myanmar":return 38;case"oriya":return 39;case"persian":return 40;case"simp-chinese-formal":return 41;case"simp-chinese-informal":return 42;case"tamil":return 43;case"telugu":return 44;case"thai":return 45;case"tibetan":return 46;case"trad-chinese-formal":return 47;case"trad-chinese-informal":return 48;case"upper-armenian":return 49;case"disclosure-open":return 50;case"disclosure-closed":return 51;default:return-1}}},op=function(e){return{name:"margin-"+e,initialValue:"0",prefix:!1,type:4}},np=op("top"),ap=op("right"),lp=op("bottom"),Ap=op("left"),hp={name:"overflow",initialValue:"visible",prefix:!1,type:1,parse:function(e,t){return t.filter(Iu).map((function(e){switch(e.value){case"hidden":return 1;case"scroll":return 2;case"clip":return 3;case"auto":return 4;default:return 0}}))}},cp={name:"overflow-wrap",initialValue:"normal",prefix:!1,type:2,parse:function(e,t){return"break-word"===t?"break-word":"normal"}},up=function(e){return{name:"padding-"+e,initialValue:"0",prefix:!1,type:3,format:"length-percentage"}},dp=up("top"),pp=up("right"),gp=up("bottom"),mp=up("left"),fp={name:"text-align",initialValue:"left",prefix:!1,type:2,parse:function(e,t){switch(t){case"right":return 2;case"center":case"justify":return 1;default:return 0}}},_p={name:"position",initialValue:"static",prefix:!1,type:2,parse:function(e,t){switch(t){case"relative":return 1;case"absolute":return 2;case"fixed":return 3;case"sticky":return 4}return 0}},vp={name:"text-shadow",initialValue:"none",type:1,prefix:!1,parse:function(e,t){return 1===t.length&&Su(t[0],"none")?[]:Lu(t).map((function(t){for(var i={color:od.TRANSPARENT,offsetX:Qu,offsetY:Qu,blur:Qu},s=0,r=0;r1?1:0],this.overflowWrap=Jp(e,cp,t.overflowWrap),this.paddingTop=Jp(e,dp,t.paddingTop),this.paddingRight=Jp(e,pp,t.paddingRight),this.paddingBottom=Jp(e,gp,t.paddingBottom),this.paddingLeft=Jp(e,mp,t.paddingLeft),this.paintOrder=Jp(e,Wp,t.paintOrder),this.position=Jp(e,_p,t.position),this.textAlign=Jp(e,fp,t.textAlign),this.textDecorationColor=Jp(e,Dp,null!==(i=t.textDecorationColor)&&void 0!==i?i:t.color),this.textDecorationLine=Jp(e,Sp,null!==(s=t.textDecorationLine)&&void 0!==s?s:t.textDecoration),this.textShadow=Jp(e,vp,t.textShadow),this.textTransform=Jp(e,bp,t.textTransform),this.transform=Jp(e,xp,t.transform),this.transformOrigin=Jp(e,Bp,t.transformOrigin),this.visibility=Jp(e,Cp,t.visibility),this.webkitTextStrokeColor=Jp(e,Kp,t.webkitTextStrokeColor),this.webkitTextStrokeWidth=Jp(e,Xp,t.webkitTextStrokeWidth),this.wordBreak=Jp(e,Mp,t.wordBreak),this.zIndex=Jp(e,Ep,t.zIndex)}return e.prototype.isVisible=function(){return this.display>0&&this.opacity>0&&0===this.visibility},e.prototype.isTransparent=function(){return qu(this.backgroundColor)},e.prototype.isTransformed=function(){return null!==this.transform},e.prototype.isPositioned=function(){return 0!==this.position},e.prototype.isPositionedWithZIndex=function(){return this.isPositioned()&&!this.zIndex.auto},e.prototype.isFloating=function(){return 0!==this.float},e.prototype.isInlineLevel=function(){return Op(this.display,4)||Op(this.display,33554432)||Op(this.display,268435456)||Op(this.display,536870912)||Op(this.display,67108864)||Op(this.display,134217728)},e}(),qp=function(e,t){this.content=Jp(e,Np,t.content),this.quotes=Jp(e,Hp,t.quotes)},Zp=function(e,t){this.counterIncrement=Jp(e,Qp,t.counterIncrement),this.counterReset=Jp(e,Vp,t.counterReset)},Jp=function(e,t,i){var s=new Cu,r=null!=i?i.toString():t.initialValue;s.write(r);var o=new Mu(s.read());switch(t.type){case 2:var n=o.parseComponentValue();return t.parse(e,Iu(n)?n.value:t.initialValue);case 0:return t.parse(e,o.parseComponentValue());case 1:return t.parse(e,o.parseComponentValues());case 4:return o.parseComponentValue();case 3:switch(t.format){case"angle":return Gu(e,o.parseComponentValue());case"color":return Yu(e,o.parseComponentValue());case"image":return gd(e,o.parseComponentValue());case"length":var a=o.parseComponentValue();return ku(a)?a:Qu;case"length-percentage":var l=o.parseComponentValue();return Ou(l)?l:Qu;case"time":return Fp(e,o.parseComponentValue())}}},$p=function(e,t){var i=function(e){switch(e.getAttribute("data-html2canvas-debug")){case"all":return 1;case"clone":return 2;case"parse":return 3;case"render":return 4;default:return 0}}(e);return 1===i||t===i},eg=function(e,t){this.context=e,this.textNodes=[],this.elements=[],this.flags=0,$p(t,3),this.styles=new Yp(e,window.getComputedStyle(t,null)),em(t)&&(this.styles.animationDuration.some((function(e){return e>0}))&&(t.style.animationDuration="0s"),null!==this.styles.transform&&(t.style.transform="none")),this.bounds=Zh(this.context,t),$p(t,4)&&(this.flags|=16)},tg="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",ig="undefined"==typeof Uint8Array?[]:new Uint8Array(256),sg=0;sg=0){if(e<55296||e>56319&&e<=65535)return t=((t=this.index[e>>5])<<2)+(31&e),this.data[t];if(e<=65535)return t=((t=this.index[2048+(e-55296>>5)])<<2)+(31&e),this.data[t];if(e>11),t=this.index[t],t+=e>>5&63,t=((t=this.index[t])<<2)+(31&e),this.data[t];if(e<=1114111)return this.data[this.highValueIndex]}return this.errorValue},e}(),ng="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",ag="undefined"==typeof Uint8Array?[]:new Uint8Array(256),lg=0;lg>10),n%1024+56320)),(r+1===i||s.length>16384)&&(o+=String.fromCharCode.apply(String,s),s.length=0)}return o},gg=function(e,t){var i,s,r,o=function(e){var t,i,s,r,o,n=.75*e.length,a=e.length,l=0;"="===e[e.length-1]&&(n--,"="===e[e.length-2]&&n--);var A="undefined"!=typeof ArrayBuffer&&"undefined"!=typeof Uint8Array&&void 0!==Uint8Array.prototype.slice?new ArrayBuffer(n):new Array(n),h=Array.isArray(A)?A:new Uint8Array(A);for(t=0;t>4,h[l++]=(15&s)<<4|r>>2,h[l++]=(3&r)<<6|63&o;return A}(e),n=Array.isArray(o)?function(e){for(var t=e.length,i=[],s=0;s=55296&&r<=56319&&i=i)return{done:!0,value:null};for(var e="×";sn.x||r.y>n.y;return n=r,0===t||a}));return e.body.removeChild(t),a}(document);return Object.defineProperty(wg,"SUPPORT_WORD_BREAKING",{value:e}),e},get SUPPORT_SVG_DRAWING(){var e=function(e){var t=new Image,i=e.createElement("canvas"),s=i.getContext("2d");if(!s)return!1;t.src="data:image/svg+xml,";try{s.drawImage(t,0,0),i.toDataURL()}catch(e){return!1}return!0}(document);return Object.defineProperty(wg,"SUPPORT_SVG_DRAWING",{value:e}),e},get SUPPORT_FOREIGNOBJECT_DRAWING(){var e="function"==typeof Array.from&&"function"==typeof window.fetch?function(e){var t=e.createElement("canvas"),i=100;t.width=i,t.height=i;var s=t.getContext("2d");if(!s)return Promise.reject(!1);s.fillStyle="rgb(0, 255, 0)",s.fillRect(0,0,i,i);var r=new Image,o=t.toDataURL();r.src=o;var n=bg(i,i,0,0,r);return s.fillStyle="red",s.fillRect(0,0,i,i),xg(n).then((function(t){s.drawImage(t,0,0);var r=s.getImageData(0,0,i,i).data;s.fillStyle="red",s.fillRect(0,0,i,i);var n=e.createElement("div");return n.style.backgroundImage="url("+o+")",n.style.height="100px",vg(r)?xg(bg(i,i,0,0,n)):Promise.reject(!1)})).then((function(e){return s.drawImage(e,0,0),vg(s.getImageData(0,0,i,i).data)})).catch((function(){return!1}))}(document):Promise.resolve(!1);return Object.defineProperty(wg,"SUPPORT_FOREIGNOBJECT_DRAWING",{value:e}),e},get SUPPORT_CORS_IMAGES(){var e=void 0!==(new Image).crossOrigin;return Object.defineProperty(wg,"SUPPORT_CORS_IMAGES",{value:e}),e},get SUPPORT_RESPONSE_TYPE(){var e="string"==typeof(new XMLHttpRequest).responseType;return Object.defineProperty(wg,"SUPPORT_RESPONSE_TYPE",{value:e}),e},get SUPPORT_CORS_XHR(){var e="withCredentials"in new XMLHttpRequest;return Object.defineProperty(wg,"SUPPORT_CORS_XHR",{value:e}),e},get SUPPORT_NATIVE_TEXT_SEGMENTATION(){var e=!("undefined"==typeof Intl||!Intl.Segmenter);return Object.defineProperty(wg,"SUPPORT_NATIVE_TEXT_SEGMENTATION",{value:e}),e}},yg=function(e,t){this.text=e,this.bounds=t},Pg=function(e,t){var i=t.ownerDocument;if(i){var s=i.createElement("html2canvaswrapper");s.appendChild(t.cloneNode(!0));var r=t.parentNode;if(r){r.replaceChild(s,t);var o=Zh(e,s);return s.firstChild&&r.replaceChild(s.firstChild,s),o}}return qh.EMPTY},Bg=function(e,t,i){var s=e.ownerDocument;if(!s)throw new Error("Node has no owner document");var r=s.createRange();return r.setStart(e,t),r.setEnd(e,t+i),r},Cg=function(e){if(wg.SUPPORT_NATIVE_TEXT_SEGMENTATION){var t=new Intl.Segmenter(void 0,{granularity:"grapheme"});return Array.from(t.segment(e)).map((function(e){return e.segment}))}return function(e){for(var t,i=_g(e),s=[];!(t=i.next()).done;)t.value&&s.push(t.value.slice());return s}(e)},Mg=function(e,t){return 0!==t.letterSpacing?Cg(e):function(e,t){if(wg.SUPPORT_NATIVE_TEXT_SEGMENTATION){var i=new Intl.Segmenter(void 0,{granularity:"word"});return Array.from(i.segment(e)).map((function(e){return e.segment}))}return Fg(e,t)}(e,t)},Eg=[32,160,4961,65792,65793,4153,4241],Fg=function(e,t){for(var i,s=function(e,t){var i=Jh(e),s=Kc(i,t),r=s[0],o=s[1],n=s[2],a=i.length,l=0,A=0;return{next:function(){if(A>=a)return{done:!0,value:null};for(var e="×";A0)if(wg.SUPPORT_RANGE_BOUNDS){var r=Bg(s,n,t.length).getClientRects();if(r.length>1){var a=Cg(t),l=0;a.forEach((function(t){o.push(new yg(t,qh.fromDOMRectList(e,Bg(s,l+n,t.length).getClientRects()))),l+=t.length}))}else o.push(new yg(t,qh.fromDOMRectList(e,r)))}else{var A=s.splitText(t.length);o.push(new yg(t,Pg(e,s))),s=A}else wg.SUPPORT_RANGE_BOUNDS||(s=s.splitText(t.length));n+=t.length})),o}(e,this.text,i,t)},Dg=function(e,t){switch(t){case 1:return e.toLowerCase();case 3:return e.replace(Sg,Tg);case 2:return e.toUpperCase();default:return e}},Sg=/(^|\s|:|-|\(|\))([a-z])/g,Tg=function(e,t,i){return e.length>0?t+i.toUpperCase():e},Rg=function(e){function t(t,i){var s=e.call(this,t,i)||this;return s.src=i.currentSrc||i.src,s.intrinsicWidth=i.naturalWidth,s.intrinsicHeight=i.naturalHeight,s.context.cache.addImage(s.src),s}return Gh(t,e),t}(eg),Lg=function(e){function t(t,i){var s=e.call(this,t,i)||this;return s.canvas=i,s.intrinsicWidth=i.width,s.intrinsicHeight=i.height,s}return Gh(t,e),t}(eg),Ug=function(e){function t(t,i){var s=e.call(this,t,i)||this,r=new XMLSerializer,o=Zh(t,i);return i.setAttribute("width",o.width+"px"),i.setAttribute("height",o.height+"px"),s.svg="data:image/svg+xml,"+encodeURIComponent(r.serializeToString(i)),s.intrinsicWidth=i.width.baseVal.value,s.intrinsicHeight=i.height.baseVal.value,s.context.cache.addImage(s.svg),s}return Gh(t,e),t}(eg),kg=function(e){function t(t,i){var s=e.call(this,t,i)||this;return s.value=i.value,s}return Gh(t,e),t}(eg),Og=function(e){function t(t,i){var s=e.call(this,t,i)||this;return s.start=i.start,s.reversed="boolean"==typeof i.reversed&&!0===i.reversed,s}return Gh(t,e),t}(eg),Ng=[{type:15,flags:0,unit:"px",number:3}],Qg=[{type:16,flags:0,number:50}],Vg="password",jg=function(e){function t(t,i){var s,r,o,n=e.call(this,t,i)||this;switch(n.type=i.type.toLowerCase(),n.checked=i.checked,n.value=0===(r=(s=i).type===Vg?new Array(s.value.length+1).join("•"):s.value).length?s.placeholder||"":r,"checkbox"!==n.type&&"radio"!==n.type||(n.styles.backgroundColor=3739148031,n.styles.borderTopColor=n.styles.borderRightColor=n.styles.borderBottomColor=n.styles.borderLeftColor=2779096575,n.styles.borderTopWidth=n.styles.borderRightWidth=n.styles.borderBottomWidth=n.styles.borderLeftWidth=1,n.styles.borderTopStyle=n.styles.borderRightStyle=n.styles.borderBottomStyle=n.styles.borderLeftStyle=1,n.styles.backgroundClip=[0],n.styles.backgroundOrigin=[0],n.bounds=(o=n.bounds).width>o.height?new qh(o.left+(o.width-o.height)/2,o.top,o.height,o.height):o.width0)i.textNodes.push(new Ig(e,r,i.styles));else if($g(r))if(pm(r)&&r.assignedNodes)r.assignedNodes().forEach((function(t){return Kg(e,t,i,s)}));else{var n=Xg(e,r);n.styles.isVisible()&&(qg(r,n,s)?n.flags|=4:Zg(n.styles)&&(n.flags|=2),-1!==Wg.indexOf(r.tagName)&&(n.flags|=8),i.elements.push(n),r.slot,r.shadowRoot?Kg(e,r.shadowRoot,n,s):um(r)||om(r)||dm(r)||Kg(e,r,n,s))}},Xg=function(e,t){return Am(t)?new Rg(e,t):am(t)?new Lg(e,t):om(t)?new Ug(e,t):im(t)?new kg(e,t):sm(t)?new Og(e,t):rm(t)?new jg(e,t):dm(t)?new Hg(e,t):um(t)?new zg(e,t):hm(t)?new Gg(e,t):new eg(e,t)},Yg=function(e,t){var i=Xg(e,t);return i.flags|=4,Kg(e,t,i,i),i},qg=function(e,t,i){return t.styles.isPositionedWithZIndex()||t.styles.opacity<1||t.styles.isTransformed()||nm(e)&&i.styles.isTransparent()},Zg=function(e){return e.isPositioned()||e.isFloating()},Jg=function(e){return e.nodeType===Node.TEXT_NODE},$g=function(e){return e.nodeType===Node.ELEMENT_NODE},em=function(e){return $g(e)&&void 0!==e.style&&!tm(e)},tm=function(e){return"object"==typeof e.className},im=function(e){return"LI"===e.tagName},sm=function(e){return"OL"===e.tagName},rm=function(e){return"INPUT"===e.tagName},om=function(e){return"svg"===e.tagName},nm=function(e){return"BODY"===e.tagName},am=function(e){return"CANVAS"===e.tagName},lm=function(e){return"VIDEO"===e.tagName},Am=function(e){return"IMG"===e.tagName},hm=function(e){return"IFRAME"===e.tagName},cm=function(e){return"STYLE"===e.tagName},um=function(e){return"TEXTAREA"===e.tagName},dm=function(e){return"SELECT"===e.tagName},pm=function(e){return"SLOT"===e.tagName},gm=function(e){return e.tagName.indexOf("-")>0},mm=function(){function e(){this.counters={}}return e.prototype.getCounterValue=function(e){var t=this.counters[e];return t&&t.length?t[t.length-1]:1},e.prototype.getCounterValues=function(e){var t=this.counters[e];return t||[]},e.prototype.pop=function(e){var t=this;e.forEach((function(e){return t.counters[e].pop()}))},e.prototype.parse=function(e){var t=this,i=e.counterIncrement,s=e.counterReset,r=!0;null!==i&&i.forEach((function(e){var i=t.counters[e.counter];i&&0!==e.increment&&(r=!1,i.length||i.push(1),i[Math.max(0,i.length-1)]+=e.increment)}));var o=[];return r&&s.forEach((function(e){var i=t.counters[e.counter];o.push(e.counter),i||(i=t.counters[e.counter]=[]),i.push(e.reset)})),o},e}(),fm={integers:[1e3,900,500,400,100,90,50,40,10,9,5,4,1],values:["M","CM","D","CD","C","XC","L","XL","X","IX","V","IV","I"]},_m={integers:[9e3,8e3,7e3,6e3,5e3,4e3,3e3,2e3,1e3,900,800,700,600,500,400,300,200,100,90,80,70,60,50,40,30,20,10,9,8,7,6,5,4,3,2,1],values:["Ք","Փ","Ւ","Ց","Ր","Տ","Վ","Ս","Ռ","Ջ","Պ","Չ","Ո","Շ","Ն","Յ","Մ","Ճ","Ղ","Ձ","Հ","Կ","Ծ","Խ","Լ","Ի","Ժ","Թ","Ը","Է","Զ","Ե","Դ","Գ","Բ","Ա"]},vm={integers:[1e4,9e3,8e3,7e3,6e3,5e3,4e3,3e3,2e3,1e3,400,300,200,100,90,80,70,60,50,40,30,20,19,18,17,16,15,10,9,8,7,6,5,4,3,2,1],values:["י׳","ט׳","ח׳","ז׳","ו׳","ה׳","ד׳","ג׳","ב׳","א׳","ת","ש","ר","ק","צ","פ","ע","ס","נ","מ","ל","כ","יט","יח","יז","טז","טו","י","ט","ח","ז","ו","ה","ד","ג","ב","א"]},bm={integers:[1e4,9e3,8e3,7e3,6e3,5e3,4e3,3e3,2e3,1e3,900,800,700,600,500,400,300,200,100,90,80,70,60,50,40,30,20,10,9,8,7,6,5,4,3,2,1],values:["ჵ","ჰ","ჯ","ჴ","ხ","ჭ","წ","ძ","ც","ჩ","შ","ყ","ღ","ქ","ფ","ჳ","ტ","ს","რ","ჟ","პ","ო","ჲ","ნ","მ","ლ","კ","ი","თ","ჱ","ზ","ვ","ე","დ","გ","ბ","ა"]},xm=function(e,t,i,s,r,o){return ei?Cm(e,r,o.length>0):s.integers.reduce((function(t,i,r){for(;e>=i;)e-=i,t+=s.values[r];return t}),"")+o},wm=function(e,t,i,s){var r="";do{i||e--,r=s(e)+r,e/=t}while(e*t>=t);return r},ym=function(e,t,i,s,r){var o=i-t+1;return(e<0?"-":"")+(wm(Math.abs(e),o,s,(function(e){return $h(Math.floor(e%o)+t)}))+r)},Pm=function(e,t,i){void 0===i&&(i=". ");var s=t.length;return wm(Math.abs(e),s,!1,(function(e){return t[Math.floor(e%s)]}))+i},Bm=function(e,t,i,s,r,o){if(e<-9999||e>9999)return Cm(e,4,r.length>0);var n=Math.abs(e),a=r;if(0===n)return t[0]+a;for(var l=0;n>0&&l<=4;l++){var A=n%10;0===A&&Op(o,1)&&""!==a?a=t[A]+a:A>1||1===A&&0===l||1===A&&1===l&&Op(o,2)||1===A&&1===l&&Op(o,4)&&e>100||1===A&&l>1&&Op(o,8)?a=t[A]+(l>0?i[l-1]:"")+a:1===A&&l>0&&(a=i[l-1]+a),n=Math.floor(n/10)}return(e<0?s:"")+a},Cm=function(e,t,i){var s=i?". ":"",r=i?"、":"",o=i?", ":"",n=i?" ":"";switch(t){case 0:return"•"+n;case 1:return"◦"+n;case 2:return"◾"+n;case 5:var a=ym(e,48,57,!0,s);return a.length<4?"0"+a:a;case 4:return Pm(e,"〇一二三四五六七八九",r);case 6:return xm(e,1,3999,fm,3,s).toLowerCase();case 7:return xm(e,1,3999,fm,3,s);case 8:return ym(e,945,969,!1,s);case 9:return ym(e,97,122,!1,s);case 10:return ym(e,65,90,!1,s);case 11:return ym(e,1632,1641,!0,s);case 12:case 49:return xm(e,1,9999,_m,3,s);case 35:return xm(e,1,9999,_m,3,s).toLowerCase();case 13:return ym(e,2534,2543,!0,s);case 14:case 30:return ym(e,6112,6121,!0,s);case 15:return Pm(e,"子丑寅卯辰巳午未申酉戌亥",r);case 16:return Pm(e,"甲乙丙丁戊己庚辛壬癸",r);case 17:case 48:return Bm(e,"零一二三四五六七八九","十百千萬","負",r,14);case 47:return Bm(e,"零壹貳參肆伍陸柒捌玖","拾佰仟萬","負",r,15);case 42:return Bm(e,"零一二三四五六七八九","十百千萬","负",r,14);case 41:return Bm(e,"零壹贰叁肆伍陆柒捌玖","拾佰仟萬","负",r,15);case 26:return Bm(e,"〇一二三四五六七八九","十百千万","マイナス",r,0);case 25:return Bm(e,"零壱弐参四伍六七八九","拾百千万","マイナス",r,7);case 31:return Bm(e,"영일이삼사오육칠팔구","십백천만","마이너스",o,7);case 33:return Bm(e,"零一二三四五六七八九","十百千萬","마이너스",o,0);case 32:return Bm(e,"零壹貳參四五六七八九","拾百千","마이너스",o,7);case 18:return ym(e,2406,2415,!0,s);case 20:return xm(e,1,19999,bm,3,s);case 21:return ym(e,2790,2799,!0,s);case 22:return ym(e,2662,2671,!0,s);case 22:return xm(e,1,10999,vm,3,s);case 23:return Pm(e,"あいうえおかきくけこさしすせそたちつてとなにぬねのはひふへほまみむめもやゆよらりるれろわゐゑをん");case 24:return Pm(e,"いろはにほへとちりぬるをわかよたれそつねならむうゐのおくやまけふこえてあさきゆめみしゑひもせす");case 27:return ym(e,3302,3311,!0,s);case 28:return Pm(e,"アイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワヰヱヲン",r);case 29:return Pm(e,"イロハニホヘトチリヌルヲワカヨタレソツネナラムウヰノオクヤマケフコエテアサキユメミシヱヒモセス",r);case 34:return ym(e,3792,3801,!0,s);case 37:return ym(e,6160,6169,!0,s);case 38:return ym(e,4160,4169,!0,s);case 39:return ym(e,2918,2927,!0,s);case 40:return ym(e,1776,1785,!0,s);case 43:return ym(e,3046,3055,!0,s);case 44:return ym(e,3174,3183,!0,s);case 45:return ym(e,3664,3673,!0,s);case 46:return ym(e,3872,3881,!0,s);default:return ym(e,48,57,!0,s)}},Mm=function(){function e(e,t,i){if(this.context=e,this.options=i,this.scrolledElements=[],this.referenceElement=t,this.counters=new mm,this.quoteDepth=0,!t.ownerDocument)throw new Error("Cloned element does not have an owner document");this.documentElement=this.cloneNode(t.ownerDocument.documentElement,!1)}return e.prototype.toIFrame=function(e,t){var i=this,s=Fm(e,t);if(!s.contentWindow)return Promise.reject("Unable to find iframe window");var r=e.defaultView.pageXOffset,o=e.defaultView.pageYOffset,n=s.contentWindow,a=n.document,l=Sm(s).then((function(){return Kh(i,void 0,void 0,(function(){var e,i;return Xh(this,(function(r){switch(r.label){case 0:return this.scrolledElements.forEach(km),n&&(n.scrollTo(t.left,t.top),!/(iPad|iPhone|iPod)/g.test(navigator.userAgent)||n.scrollY===t.top&&n.scrollX===t.left||(this.context.logger.warn("Unable to restore scroll position for cloned document"),this.context.windowBounds=this.context.windowBounds.add(n.scrollX-t.left,n.scrollY-t.top,0,0))),e=this.options.onclone,void 0===(i=this.clonedReferenceElement)?[2,Promise.reject("Error finding the "+this.referenceElement.nodeName+" in the cloned document")]:a.fonts&&a.fonts.ready?[4,a.fonts.ready]:[3,2];case 1:r.sent(),r.label=2;case 2:return/(AppleWebKit)/g.test(navigator.userAgent)?[4,Dm(a)]:[3,4];case 3:r.sent(),r.label=4;case 4:return"function"==typeof e?[2,Promise.resolve().then((function(){return e(a,i)})).then((function(){return s}))]:[2,s]}}))}))}));return a.open(),a.write(Lm(document.doctype)+""),Um(this.referenceElement.ownerDocument,r,o),a.replaceChild(a.adoptNode(this.documentElement),a.documentElement),a.close(),l},e.prototype.createElementClone=function(e){if($p(e,2),am(e))return this.createCanvasClone(e);if(lm(e))return this.createVideoClone(e);if(cm(e))return this.createStyleClone(e);var t=e.cloneNode(!1);return Am(t)&&(Am(e)&&e.currentSrc&&e.currentSrc!==e.src&&(t.src=e.currentSrc,t.srcset=""),"lazy"===t.loading&&(t.loading="eager")),gm(t)?this.createCustomElementClone(t):t},e.prototype.createCustomElementClone=function(e){var t=document.createElement("html2canvascustomelement");return Rm(e.style,t),t},e.prototype.createStyleClone=function(e){try{var t=e.sheet;if(t&&t.cssRules){var i=[].slice.call(t.cssRules,0).reduce((function(e,t){return t&&"string"==typeof t.cssText?e+t.cssText:e}),""),s=e.cloneNode(!1);return s.textContent=i,s}}catch(e){if(this.context.logger.error("Unable to access cssRules property",e),"SecurityError"!==e.name)throw e}return e.cloneNode(!1)},e.prototype.createCanvasClone=function(e){var t;if(this.options.inlineImages&&e.ownerDocument){var i=e.ownerDocument.createElement("img");try{return i.src=e.toDataURL(),i}catch(t){this.context.logger.info("Unable to inline canvas contents, canvas is tainted",e)}}var s=e.cloneNode(!1);try{s.width=e.width,s.height=e.height;var r=e.getContext("2d"),o=s.getContext("2d");if(o)if(!this.options.allowTaint&&r)o.putImageData(r.getImageData(0,0,e.width,e.height),0,0);else{var n=null!==(t=e.getContext("webgl2"))&&void 0!==t?t:e.getContext("webgl");if(n){var a=n.getContextAttributes();!1===(null==a?void 0:a.preserveDrawingBuffer)&&this.context.logger.warn("Unable to clone WebGL context as it has preserveDrawingBuffer=false",e)}o.drawImage(e,0,0)}return s}catch(t){this.context.logger.info("Unable to clone canvas as it is tainted",e)}return s},e.prototype.createVideoClone=function(e){var t=e.ownerDocument.createElement("canvas");t.width=e.offsetWidth,t.height=e.offsetHeight;var i=t.getContext("2d");try{return i&&(i.drawImage(e,0,0,t.width,t.height),this.options.allowTaint||i.getImageData(0,0,t.width,t.height)),t}catch(t){this.context.logger.info("Unable to clone video as it is tainted",e)}var s=e.ownerDocument.createElement("canvas");return s.width=e.offsetWidth,s.height=e.offsetHeight,s},e.prototype.appendChildNode=function(e,t,i){$g(t)&&("SCRIPT"===t.tagName||t.hasAttribute("data-html2canvas-ignore")||"function"==typeof this.options.ignoreElements&&this.options.ignoreElements(t))||this.options.copyStyles&&$g(t)&&cm(t)||e.appendChild(this.cloneNode(t,i))},e.prototype.cloneChildNodes=function(e,t,i){for(var s=this,r=e.shadowRoot?e.shadowRoot.firstChild:e.firstChild;r;r=r.nextSibling)if($g(r)&&pm(r)&&"function"==typeof r.assignedNodes){var o=r.assignedNodes();o.length&&o.forEach((function(e){return s.appendChildNode(t,e,i)}))}else this.appendChildNode(t,r,i)},e.prototype.cloneNode=function(e,t){if(Jg(e))return document.createTextNode(e.data);if(!e.ownerDocument)return e.cloneNode(!1);var i=e.ownerDocument.defaultView;if(i&&$g(e)&&(em(e)||tm(e))){var s=this.createElementClone(e);s.style.transitionProperty="none";var r=i.getComputedStyle(e),o=i.getComputedStyle(e,":before"),n=i.getComputedStyle(e,":after");this.referenceElement===e&&em(s)&&(this.clonedReferenceElement=s),nm(s)&&Qm(s);var a=this.counters.parse(new Zp(this.context,r)),l=this.resolvePseudoContent(e,s,o,Ag.BEFORE);gm(e)&&(t=!0),lm(e)||this.cloneChildNodes(e,s,t),l&&s.insertBefore(l,s.firstChild);var A=this.resolvePseudoContent(e,s,n,Ag.AFTER);return A&&s.appendChild(A),this.counters.pop(a),(r&&(this.options.copyStyles||tm(e))&&!hm(e)||t)&&Rm(r,s),0===e.scrollTop&&0===e.scrollLeft||this.scrolledElements.push([s,e.scrollLeft,e.scrollTop]),(um(e)||dm(e))&&(um(s)||dm(s))&&(s.value=e.value),s}return e.cloneNode(!1)},e.prototype.resolvePseudoContent=function(e,t,i,s){var r=this;if(i){var o=i.content,n=t.ownerDocument;if(n&&o&&"none"!==o&&"-moz-alt-content"!==o&&"none"!==i.display){this.counters.parse(new Zp(this.context,i));var a=new qp(this.context,i),l=n.createElement("html2canvaspseudoelement");Rm(i,l),a.content.forEach((function(t){if(0===t.type)l.appendChild(n.createTextNode(t.value));else if(22===t.type){var i=n.createElement("img");i.src=t.value,i.style.opacity="1",l.appendChild(i)}else if(18===t.type){if("attr"===t.name){var s=t.values.filter(Iu);s.length&&l.appendChild(n.createTextNode(e.getAttribute(s[0].value)||""))}else if("counter"===t.name){var o=t.values.filter(Ru),A=o[0],h=o[1];if(A&&Iu(A)){var c=r.counters.getCounterValue(A.value),u=h&&Iu(h)?rp.parse(r.context,h.value):3;l.appendChild(n.createTextNode(Cm(c,u,!1)))}}else if("counters"===t.name){var d=t.values.filter(Ru),p=(A=d[0],d[1]);h=d[2];if(A&&Iu(A)){var g=r.counters.getCounterValues(A.value),m=h&&Iu(h)?rp.parse(r.context,h.value):3,f=p&&0===p.type?p.value:"",_=g.map((function(e){return Cm(e,m,!1)})).join(f);l.appendChild(n.createTextNode(_))}}}else if(20===t.type)switch(t.value){case"open-quote":l.appendChild(n.createTextNode(zp(a.quotes,r.quoteDepth++,!0)));break;case"close-quote":l.appendChild(n.createTextNode(zp(a.quotes,--r.quoteDepth,!1)));break;default:l.appendChild(n.createTextNode(t.value))}})),l.className=Om+" "+Nm;var A=s===Ag.BEFORE?" "+Om:" "+Nm;return tm(t)?t.className.baseValue+=A:t.className+=A,l}}},e.destroy=function(e){return!!e.parentNode&&(e.parentNode.removeChild(e),!0)},e}();!function(e){e[e.BEFORE=0]="BEFORE",e[e.AFTER=1]="AFTER"}(Ag||(Ag={}));var Em,Fm=function(e,t){var i=e.createElement("iframe");return i.className="html2canvas-container",i.style.visibility="hidden",i.style.position="fixed",i.style.left="-10000px",i.style.top="0px",i.style.border="0",i.width=t.width.toString(),i.height=t.height.toString(),i.scrolling="no",i.setAttribute("data-html2canvas-ignore","true"),e.body.appendChild(i),i},Im=function(e){return new Promise((function(t){e.complete?t():e.src?(e.onload=t,e.onerror=t):t()}))},Dm=function(e){return Promise.all([].slice.call(e.images,0).map(Im))},Sm=function(e){return new Promise((function(t,i){var s=e.contentWindow;if(!s)return i("No window assigned for iframe");var r=s.document;s.onload=e.onload=function(){s.onload=e.onload=null;var i=setInterval((function(){r.body.childNodes.length>0&&"complete"===r.readyState&&(clearInterval(i),t(e))}),50)}}))},Tm=["all","d","content"],Rm=function(e,t){for(var i=e.length-1;i>=0;i--){var s=e.item(i);-1===Tm.indexOf(s)&&t.style.setProperty(s,e.getPropertyValue(s))}return t},Lm=function(e){var t="";return e&&(t+=""),t},Um=function(e,t,i){e&&e.defaultView&&(t!==e.defaultView.pageXOffset||i!==e.defaultView.pageYOffset)&&e.defaultView.scrollTo(t,i)},km=function(e){var t=e[0],i=e[1],s=e[2];t.scrollLeft=i,t.scrollTop=s},Om="___html2canvas___pseudoelement_before",Nm="___html2canvas___pseudoelement_after",Qm=function(e){Vm(e,"."+Om+':before{\n content: "" !important;\n display: none !important;\n}\n .'+Nm+':after{\n content: "" !important;\n display: none !important;\n}')},Vm=function(e,t){var i=e.ownerDocument;if(i){var s=i.createElement("style");s.textContent=t,e.appendChild(s)}},jm=function(){function e(){}return e.getOrigin=function(t){var i=e._link;return i?(i.href=t,i.href=i.href,i.protocol+i.hostname+i.port):"about:blank"},e.isSameOrigin=function(t){return e.getOrigin(t)===e._origin},e.setContext=function(t){e._link=t.document.createElement("a"),e._origin=e.getOrigin(t.location.href)},e._origin="about:blank",e}(),Hm=function(){function e(e,t){this.context=e,this._options=t,this._cache={}}return e.prototype.addImage=function(e){var t=Promise.resolve();return this.has(e)?t:qm(e)||Km(e)?((this._cache[e]=this.loadImage(e)).catch((function(){})),t):t},e.prototype.match=function(e){return this._cache[e]},e.prototype.loadImage=function(e){return Kh(this,void 0,void 0,(function(){var t,i,s,r,o=this;return Xh(this,(function(n){switch(n.label){case 0:return t=jm.isSameOrigin(e),i=!Xm(e)&&!0===this._options.useCORS&&wg.SUPPORT_CORS_IMAGES&&!t,s=!Xm(e)&&!t&&!qm(e)&&"string"==typeof this._options.proxy&&wg.SUPPORT_CORS_XHR&&!i,t||!1!==this._options.allowTaint||Xm(e)||qm(e)||s||i?(r=e,s?[4,this.proxy(r)]:[3,2]):[2];case 1:r=n.sent(),n.label=2;case 2:return this.context.logger.debug("Added image "+e.substring(0,256)),[4,new Promise((function(e,t){var s=new Image;s.onload=function(){return e(s)},s.onerror=t,(Ym(r)||i)&&(s.crossOrigin="anonymous"),s.src=r,!0===s.complete&&setTimeout((function(){return e(s)}),500),o._options.imageTimeout>0&&setTimeout((function(){return t("Timed out ("+o._options.imageTimeout+"ms) loading image")}),o._options.imageTimeout)}))];case 3:return[2,n.sent()]}}))}))},e.prototype.has=function(e){return void 0!==this._cache[e]},e.prototype.keys=function(){return Promise.resolve(Object.keys(this._cache))},e.prototype.proxy=function(e){var t=this,i=this._options.proxy;if(!i)throw new Error("No proxy defined");var s=e.substring(0,256);return new Promise((function(r,o){var n=wg.SUPPORT_RESPONSE_TYPE?"blob":"text",a=new XMLHttpRequest;a.onload=function(){if(200===a.status)if("text"===n)r(a.response);else{var e=new FileReader;e.addEventListener("load",(function(){return r(e.result)}),!1),e.addEventListener("error",(function(e){return o(e)}),!1),e.readAsDataURL(a.response)}else o("Failed to proxy resource "+s+" with status code "+a.status)},a.onerror=o;var l=i.indexOf("?")>-1?"&":"?";if(a.open("GET",""+i+l+"url="+encodeURIComponent(e)+"&responseType="+n),"text"!==n&&a instanceof XMLHttpRequest&&(a.responseType=n),t._options.imageTimeout){var A=t._options.imageTimeout;a.timeout=A,a.ontimeout=function(){return o("Timed out ("+A+"ms) proxying "+s)}}a.send()}))},e}(),zm=/^data:image\/svg\+xml/i,Gm=/^data:image\/.*;base64,/i,Wm=/^data:image\/.*/i,Km=function(e){return wg.SUPPORT_SVG_DRAWING||!Zm(e)},Xm=function(e){return Wm.test(e)},Ym=function(e){return Gm.test(e)},qm=function(e){return"blob"===e.substr(0,4)},Zm=function(e){return"svg"===e.substr(-3).toLowerCase()||zm.test(e)},Jm=function(){function e(e,t){this.type=0,this.x=e,this.y=t}return e.prototype.add=function(t,i){return new e(this.x+t,this.y+i)},e}(),$m=function(e,t,i){return new Jm(e.x+(t.x-e.x)*i,e.y+(t.y-e.y)*i)},ef=function(){function e(e,t,i,s){this.type=1,this.start=e,this.startControl=t,this.endControl=i,this.end=s}return e.prototype.subdivide=function(t,i){var s=$m(this.start,this.startControl,t),r=$m(this.startControl,this.endControl,t),o=$m(this.endControl,this.end,t),n=$m(s,r,t),a=$m(r,o,t),l=$m(n,a,t);return i?new e(this.start,s,n,l):new e(l,a,o,this.end)},e.prototype.add=function(t,i){return new e(this.start.add(t,i),this.startControl.add(t,i),this.endControl.add(t,i),this.end.add(t,i))},e.prototype.reverse=function(){return new e(this.end,this.endControl,this.startControl,this.start)},e}(),tf=function(e){return 1===e.type},sf=function(e){var t=e.styles,i=e.bounds,s=Hu(t.borderTopLeftRadius,i.width,i.height),r=s[0],o=s[1],n=Hu(t.borderTopRightRadius,i.width,i.height),a=n[0],l=n[1],A=Hu(t.borderBottomRightRadius,i.width,i.height),h=A[0],c=A[1],u=Hu(t.borderBottomLeftRadius,i.width,i.height),d=u[0],p=u[1],g=[];g.push((r+a)/i.width),g.push((d+h)/i.width),g.push((o+p)/i.height),g.push((l+c)/i.height);var m=Math.max.apply(Math,g);m>1&&(r/=m,o/=m,a/=m,l/=m,h/=m,c/=m,d/=m,p/=m);var f=i.width-a,_=i.height-c,v=i.width-h,b=i.height-p,x=t.borderTopWidth,w=t.borderRightWidth,y=t.borderBottomWidth,P=t.borderLeftWidth,B=zu(t.paddingTop,e.bounds.width),C=zu(t.paddingRight,e.bounds.width),M=zu(t.paddingBottom,e.bounds.width),E=zu(t.paddingLeft,e.bounds.width);this.topLeftBorderDoubleOuterBox=r>0||o>0?rf(i.left+P/3,i.top+x/3,r-P/3,o-x/3,Em.TOP_LEFT):new Jm(i.left+P/3,i.top+x/3),this.topRightBorderDoubleOuterBox=r>0||o>0?rf(i.left+f,i.top+x/3,a-w/3,l-x/3,Em.TOP_RIGHT):new Jm(i.left+i.width-w/3,i.top+x/3),this.bottomRightBorderDoubleOuterBox=h>0||c>0?rf(i.left+v,i.top+_,h-w/3,c-y/3,Em.BOTTOM_RIGHT):new Jm(i.left+i.width-w/3,i.top+i.height-y/3),this.bottomLeftBorderDoubleOuterBox=d>0||p>0?rf(i.left+P/3,i.top+b,d-P/3,p-y/3,Em.BOTTOM_LEFT):new Jm(i.left+P/3,i.top+i.height-y/3),this.topLeftBorderDoubleInnerBox=r>0||o>0?rf(i.left+2*P/3,i.top+2*x/3,r-2*P/3,o-2*x/3,Em.TOP_LEFT):new Jm(i.left+2*P/3,i.top+2*x/3),this.topRightBorderDoubleInnerBox=r>0||o>0?rf(i.left+f,i.top+2*x/3,a-2*w/3,l-2*x/3,Em.TOP_RIGHT):new Jm(i.left+i.width-2*w/3,i.top+2*x/3),this.bottomRightBorderDoubleInnerBox=h>0||c>0?rf(i.left+v,i.top+_,h-2*w/3,c-2*y/3,Em.BOTTOM_RIGHT):new Jm(i.left+i.width-2*w/3,i.top+i.height-2*y/3),this.bottomLeftBorderDoubleInnerBox=d>0||p>0?rf(i.left+2*P/3,i.top+b,d-2*P/3,p-2*y/3,Em.BOTTOM_LEFT):new Jm(i.left+2*P/3,i.top+i.height-2*y/3),this.topLeftBorderStroke=r>0||o>0?rf(i.left+P/2,i.top+x/2,r-P/2,o-x/2,Em.TOP_LEFT):new Jm(i.left+P/2,i.top+x/2),this.topRightBorderStroke=r>0||o>0?rf(i.left+f,i.top+x/2,a-w/2,l-x/2,Em.TOP_RIGHT):new Jm(i.left+i.width-w/2,i.top+x/2),this.bottomRightBorderStroke=h>0||c>0?rf(i.left+v,i.top+_,h-w/2,c-y/2,Em.BOTTOM_RIGHT):new Jm(i.left+i.width-w/2,i.top+i.height-y/2),this.bottomLeftBorderStroke=d>0||p>0?rf(i.left+P/2,i.top+b,d-P/2,p-y/2,Em.BOTTOM_LEFT):new Jm(i.left+P/2,i.top+i.height-y/2),this.topLeftBorderBox=r>0||o>0?rf(i.left,i.top,r,o,Em.TOP_LEFT):new Jm(i.left,i.top),this.topRightBorderBox=a>0||l>0?rf(i.left+f,i.top,a,l,Em.TOP_RIGHT):new Jm(i.left+i.width,i.top),this.bottomRightBorderBox=h>0||c>0?rf(i.left+v,i.top+_,h,c,Em.BOTTOM_RIGHT):new Jm(i.left+i.width,i.top+i.height),this.bottomLeftBorderBox=d>0||p>0?rf(i.left,i.top+b,d,p,Em.BOTTOM_LEFT):new Jm(i.left,i.top+i.height),this.topLeftPaddingBox=r>0||o>0?rf(i.left+P,i.top+x,Math.max(0,r-P),Math.max(0,o-x),Em.TOP_LEFT):new Jm(i.left+P,i.top+x),this.topRightPaddingBox=a>0||l>0?rf(i.left+Math.min(f,i.width-w),i.top+x,f>i.width+w?0:Math.max(0,a-w),Math.max(0,l-x),Em.TOP_RIGHT):new Jm(i.left+i.width-w,i.top+x),this.bottomRightPaddingBox=h>0||c>0?rf(i.left+Math.min(v,i.width-P),i.top+Math.min(_,i.height-y),Math.max(0,h-w),Math.max(0,c-y),Em.BOTTOM_RIGHT):new Jm(i.left+i.width-w,i.top+i.height-y),this.bottomLeftPaddingBox=d>0||p>0?rf(i.left+P,i.top+Math.min(b,i.height-y),Math.max(0,d-P),Math.max(0,p-y),Em.BOTTOM_LEFT):new Jm(i.left+P,i.top+i.height-y),this.topLeftContentBox=r>0||o>0?rf(i.left+P+E,i.top+x+B,Math.max(0,r-(P+E)),Math.max(0,o-(x+B)),Em.TOP_LEFT):new Jm(i.left+P+E,i.top+x+B),this.topRightContentBox=a>0||l>0?rf(i.left+Math.min(f,i.width+P+E),i.top+x+B,f>i.width+P+E?0:a-P+E,l-(x+B),Em.TOP_RIGHT):new Jm(i.left+i.width-(w+C),i.top+x+B),this.bottomRightContentBox=h>0||c>0?rf(i.left+Math.min(v,i.width-(P+E)),i.top+Math.min(_,i.height+x+B),Math.max(0,h-(w+C)),c-(y+M),Em.BOTTOM_RIGHT):new Jm(i.left+i.width-(w+C),i.top+i.height-(y+M)),this.bottomLeftContentBox=d>0||p>0?rf(i.left+P+E,i.top+b,Math.max(0,d-(P+E)),p-(y+M),Em.BOTTOM_LEFT):new Jm(i.left+P+E,i.top+i.height-(y+M))};!function(e){e[e.TOP_LEFT=0]="TOP_LEFT",e[e.TOP_RIGHT=1]="TOP_RIGHT",e[e.BOTTOM_RIGHT=2]="BOTTOM_RIGHT",e[e.BOTTOM_LEFT=3]="BOTTOM_LEFT"}(Em||(Em={}));var rf=function(e,t,i,s,r){var o=(Math.sqrt(2)-1)/3*4,n=i*o,a=s*o,l=e+i,A=t+s;switch(r){case Em.TOP_LEFT:return new ef(new Jm(e,A),new Jm(e,A-a),new Jm(l-n,t),new Jm(l,t));case Em.TOP_RIGHT:return new ef(new Jm(e,t),new Jm(e+n,t),new Jm(l,A-a),new Jm(l,A));case Em.BOTTOM_RIGHT:return new ef(new Jm(l,t),new Jm(l,t+a),new Jm(e+n,A),new Jm(e,A));case Em.BOTTOM_LEFT:default:return new ef(new Jm(l,A),new Jm(l-n,A),new Jm(e,t+a),new Jm(e,t))}},of=function(e){return[e.topLeftBorderBox,e.topRightBorderBox,e.bottomRightBorderBox,e.bottomLeftBorderBox]},nf=function(e){return[e.topLeftPaddingBox,e.topRightPaddingBox,e.bottomRightPaddingBox,e.bottomLeftPaddingBox]},af=function(e,t,i){this.offsetX=e,this.offsetY=t,this.matrix=i,this.type=0,this.target=6},lf=function(e,t){this.path=e,this.target=t,this.type=1},Af=function(e){this.opacity=e,this.type=2,this.target=6},hf=function(e){return 1===e.type},cf=function(e,t){return e.length===t.length&&e.some((function(e,i){return e===t[i]}))},uf=function(e){this.element=e,this.inlineLevel=[],this.nonInlineLevel=[],this.negativeZIndex=[],this.zeroOrAutoZIndexOrTransformedOrOpacity=[],this.positiveZIndex=[],this.nonPositionedFloats=[],this.nonPositionedInlineLevel=[]},df=function(){function e(e,t){if(this.container=e,this.parent=t,this.effects=[],this.curves=new sf(this.container),this.container.styles.opacity<1&&this.effects.push(new Af(this.container.styles.opacity)),null!==this.container.styles.transform){var i=this.container.bounds.left+this.container.styles.transformOrigin[0].number,s=this.container.bounds.top+this.container.styles.transformOrigin[1].number,r=this.container.styles.transform;this.effects.push(new af(i,s,r))}if(0!==this.container.styles.overflowX){var o=of(this.curves),n=nf(this.curves);cf(o,n)?this.effects.push(new lf(o,6)):(this.effects.push(new lf(o,2)),this.effects.push(new lf(n,4)))}}return e.prototype.getEffects=function(e){for(var t=-1===[2,3].indexOf(this.container.styles.position),i=this.parent,s=this.effects.slice(0);i;){var r=i.effects.filter((function(e){return!hf(e)}));if(t||0!==i.container.styles.position||!i.parent){if(s.unshift.apply(s,r),t=-1===[2,3].indexOf(i.container.styles.position),0!==i.container.styles.overflowX){var o=of(i.curves),n=nf(i.curves);cf(o,n)||s.unshift(new lf(n,6))}}else s.unshift.apply(s,r);i=i.parent}return s.filter((function(t){return Op(t.target,e)}))},e}(),pf=function(e,t,i,s){e.container.elements.forEach((function(r){var o=Op(r.flags,4),n=Op(r.flags,2),a=new df(r,e);Op(r.styles.display,2048)&&s.push(a);var l=Op(r.flags,8)?[]:s;if(o||n){var A=o||r.styles.isPositioned()?i:t,h=new uf(a);if(r.styles.isPositioned()||r.styles.opacity<1||r.styles.isTransformed()){var c=r.styles.zIndex.order;if(c<0){var u=0;A.negativeZIndex.some((function(e,t){return c>e.element.container.styles.zIndex.order?(u=t,!1):u>0})),A.negativeZIndex.splice(u,0,h)}else if(c>0){var d=0;A.positiveZIndex.some((function(e,t){return c>=e.element.container.styles.zIndex.order?(d=t+1,!1):d>0})),A.positiveZIndex.splice(d,0,h)}else A.zeroOrAutoZIndexOrTransformedOrOpacity.push(h)}else r.styles.isFloating()?A.nonPositionedFloats.push(h):A.nonPositionedInlineLevel.push(h);pf(a,h,o?h:i,l)}else r.styles.isInlineLevel()?t.inlineLevel.push(a):t.nonInlineLevel.push(a),pf(a,t,i,l);Op(r.flags,8)&&gf(r,l)}))},gf=function(e,t){for(var i=e instanceof Og?e.start:1,s=e instanceof Og&&e.reversed,r=0;r0&&e.intrinsicHeight>0){var s=bf(e),r=nf(t);this.path(r),this.ctx.save(),this.ctx.clip(),this.ctx.drawImage(i,0,0,e.intrinsicWidth,e.intrinsicHeight,s.left,s.top,s.width,s.height),this.ctx.restore()}},t.prototype.renderNodeContent=function(e){return Kh(this,void 0,void 0,(function(){var i,s,r,o,n,a,l,A,h,c,u,d,p,g,m,f,_,v;return Xh(this,(function(b){switch(b.label){case 0:this.applyEffects(e.getEffects(4)),i=e.container,s=e.curves,r=i.styles,o=0,n=i.textNodes,b.label=1;case 1:return o0&&y>0&&(f=s.ctx.createPattern(p,"repeat"),s.renderRepeat(v,f,B,C))):function(e){return 2===e.type}(i)&&(_=xf(e,t,[null,null,null]),v=_[0],b=_[1],x=_[2],w=_[3],y=_[4],P=0===i.position.length?[Vu]:i.position,B=zu(P[0],w),C=zu(P[P.length-1],y),M=function(e,t,i,s,r){var o=0,n=0;switch(e.size){case 0:0===e.shape?o=n=Math.min(Math.abs(t),Math.abs(t-s),Math.abs(i),Math.abs(i-r)):1===e.shape&&(o=Math.min(Math.abs(t),Math.abs(t-s)),n=Math.min(Math.abs(i),Math.abs(i-r)));break;case 2:if(0===e.shape)o=n=Math.min(cd(t,i),cd(t,i-r),cd(t-s,i),cd(t-s,i-r));else if(1===e.shape){var a=Math.min(Math.abs(i),Math.abs(i-r))/Math.min(Math.abs(t),Math.abs(t-s)),l=ud(s,r,t,i,!0),A=l[0],h=l[1];n=a*(o=cd(A-t,(h-i)/a))}break;case 1:0===e.shape?o=n=Math.max(Math.abs(t),Math.abs(t-s),Math.abs(i),Math.abs(i-r)):1===e.shape&&(o=Math.max(Math.abs(t),Math.abs(t-s)),n=Math.max(Math.abs(i),Math.abs(i-r)));break;case 3:if(0===e.shape)o=n=Math.max(cd(t,i),cd(t,i-r),cd(t-s,i),cd(t-s,i-r));else if(1===e.shape){a=Math.max(Math.abs(i),Math.abs(i-r))/Math.max(Math.abs(t),Math.abs(t-s));var c=ud(s,r,t,i,!1);A=c[0],h=c[1],n=a*(o=cd(A-t,(h-i)/a))}}return Array.isArray(e.size)&&(o=zu(e.size[0],s),n=2===e.size.length?zu(e.size[1],r):o),[o,n]}(i,B,C,w,y),E=M[0],F=M[1],E>0&&F>0&&(I=s.ctx.createRadialGradient(b+B,x+C,0,b+B,x+C,E),Ad(i.stops,2*E).forEach((function(e){return I.addColorStop(e.stop,Zu(e.color))})),s.path(v),s.ctx.fillStyle=I,E!==F?(D=e.bounds.left+.5*e.bounds.width,S=e.bounds.top+.5*e.bounds.height,R=1/(T=F/E),s.ctx.save(),s.ctx.translate(D,S),s.ctx.transform(1,0,0,T,0,0),s.ctx.translate(-D,-S),s.ctx.fillRect(b,R*(x-S)+S,w,y*R),s.ctx.restore()):s.ctx.fill())),L.label=6;case 6:return t--,[2]}}))},s=this,r=0,o=e.styles.backgroundImage.slice(0).reverse(),a.label=1;case 1:return r0?2!==l.style?[3,5]:[4,this.renderDashedDottedBorder(l.color,l.width,o,e.curves,2)]:[3,11]:[3,13];case 4:return h.sent(),[3,11];case 5:return 3!==l.style?[3,7]:[4,this.renderDashedDottedBorder(l.color,l.width,o,e.curves,3)];case 6:return h.sent(),[3,11];case 7:return 4!==l.style?[3,9]:[4,this.renderDoubleBorder(l.color,l.width,o,e.curves)];case 8:return h.sent(),[3,11];case 9:return[4,this.renderSolidBorder(l.color,o,e.curves)];case 10:h.sent(),h.label=11;case 11:o++,h.label=12;case 12:return n++,[3,3];case 13:return[2]}}))}))},t.prototype.renderDashedDottedBorder=function(e,t,i,s,r){return Kh(this,void 0,void 0,(function(){var o,n,a,l,A,h,c,u,d,p,g,m,f,_,v,b;return Xh(this,(function(x){return this.ctx.save(),o=function(e,t){switch(t){case 0:return ff(e.topLeftBorderStroke,e.topRightBorderStroke);case 1:return ff(e.topRightBorderStroke,e.bottomRightBorderStroke);case 2:return ff(e.bottomRightBorderStroke,e.bottomLeftBorderStroke);default:return ff(e.bottomLeftBorderStroke,e.topLeftBorderStroke)}}(s,i),n=mf(s,i),2===r&&(this.path(n),this.ctx.clip()),tf(n[0])?(a=n[0].start.x,l=n[0].start.y):(a=n[0].x,l=n[0].y),tf(n[1])?(A=n[1].end.x,h=n[1].end.y):(A=n[1].x,h=n[1].y),c=0===i||2===i?Math.abs(a-A):Math.abs(l-h),this.ctx.beginPath(),3===r?this.formatPath(o):this.formatPath(n.slice(0,2)),u=t<3?3*t:2*t,d=t<3?2*t:t,3===r&&(u=t,d=t),p=!0,c<=2*u?p=!1:c<=2*u+d?(u*=g=c/(2*u+d),d*=g):(m=Math.floor((c+d)/(u+d)),f=(c-m*u)/(m-1),d=(_=(c-(m+1)*u)/m)<=0||Math.abs(d-f){})),Xf(this,"_reject",(()=>{})),this.name=e,this.workerThread=t,this.result=new Promise(((e,t)=>{this._resolve=e,this._reject=t}))}postMessage(e,t){this.workerThread.postMessage({source:"loaders.gl",type:e,payload:t})}done(e){zf(this.isRunning),this.isRunning=!1,this._resolve(e)}error(e){zf(this.isRunning),this.isRunning=!1,this._reject(e)}}class qf{}const Zf=new Map;function Jf(e){zf(e.source&&!e.url||!e.source&&e.url);let t=Zf.get(e.source||e.url);return t||(e.url&&(t=function(e){if(!e.startsWith("http"))return e;return $f((t=e,"try {\n importScripts('".concat(t,"');\n} catch (error) {\n console.error(error);\n throw error;\n}")));var t}(e.url),Zf.set(e.url,t)),e.source&&(t=$f(e.source),Zf.set(e.source,t))),zf(t),t}function $f(e){const t=new Blob([e],{type:"application/javascript"});return URL.createObjectURL(t)}function e_(e,t=!0,i){const s=i||new Set;if(e){if(t_(e))s.add(e);else if(t_(e.buffer))s.add(e.buffer);else if(ArrayBuffer.isView(e));else if(t&&"object"==typeof e)for(const i in e)e_(e[i],t,s)}else;return void 0===i?Array.from(s):[]}function t_(e){return!!e&&(e instanceof ArrayBuffer||("undefined"!=typeof MessagePort&&e instanceof MessagePort||("undefined"!=typeof ImageBitmap&&e instanceof ImageBitmap||"undefined"!=typeof OffscreenCanvas&&e instanceof OffscreenCanvas)))}const i_=()=>{};class s_{static isSupported(){return"undefined"!=typeof Worker&&Gf||void 0!==typeof qf}constructor(e){Xf(this,"name",void 0),Xf(this,"source",void 0),Xf(this,"url",void 0),Xf(this,"terminated",!1),Xf(this,"worker",void 0),Xf(this,"onMessage",void 0),Xf(this,"onError",void 0),Xf(this,"_loadableURL","");const{name:t,source:i,url:s}=e;zf(i||s),this.name=t,this.source=i,this.url=s,this.onMessage=i_,this.onError=e=>console.log(e),this.worker=Gf?this._createBrowserWorker():this._createNodeWorker()}destroy(){this.onMessage=i_,this.onError=i_,this.worker.terminate(),this.terminated=!0}get isRunning(){return Boolean(this.onMessage)}postMessage(e,t){t=t||e_(e),this.worker.postMessage(e,t)}_getErrorFromErrorEvent(e){let t="Failed to load ";return t+="worker ".concat(this.name," from ").concat(this.url,". "),e.message&&(t+="".concat(e.message," in ")),e.lineno&&(t+=":".concat(e.lineno,":").concat(e.colno)),new Error(t)}_createBrowserWorker(){this._loadableURL=Jf({source:this.source,url:this.url});const e=new Worker(this._loadableURL,{name:this.name});return e.onmessage=e=>{e.data?this.onMessage(e.data):this.onError(new Error("No data received"))},e.onerror=e=>{this.onError(this._getErrorFromErrorEvent(e)),this.terminated=!0},e.onmessageerror=e=>console.error(e),e}_createNodeWorker(){let e;if(this.url){const t=this.url.includes(":/")||this.url.startsWith("/")?this.url:"./".concat(this.url);e=new qf(t,{eval:!1})}else{if(!this.source)throw new Error("no worker");e=new qf(this.source,{eval:!0})}return e.on("message",(e=>{this.onMessage(e)})),e.on("error",(e=>{this.onError(e)})),e.on("exit",(e=>{})),e}}class r_{static isSupported(){return s_.isSupported()}constructor(e){Xf(this,"name","unnamed"),Xf(this,"source",void 0),Xf(this,"url",void 0),Xf(this,"maxConcurrency",1),Xf(this,"maxMobileConcurrency",1),Xf(this,"onDebug",(()=>{})),Xf(this,"reuseWorkers",!0),Xf(this,"props",{}),Xf(this,"jobQueue",[]),Xf(this,"idleQueue",[]),Xf(this,"count",0),Xf(this,"isDestroyed",!1),this.source=e.source,this.url=e.url,this.setProps(e)}destroy(){this.idleQueue.forEach((e=>e.destroy())),this.isDestroyed=!0}setProps(e){this.props={...this.props,...e},void 0!==e.name&&(this.name=e.name),void 0!==e.maxConcurrency&&(this.maxConcurrency=e.maxConcurrency),void 0!==e.maxMobileConcurrency&&(this.maxMobileConcurrency=e.maxMobileConcurrency),void 0!==e.reuseWorkers&&(this.reuseWorkers=e.reuseWorkers),void 0!==e.onDebug&&(this.onDebug=e.onDebug)}async startJob(e,t=((e,t,i)=>e.done(i)),i=((e,t)=>e.error(t))){const s=new Promise((s=>(this.jobQueue.push({name:e,onMessage:t,onError:i,onStart:s}),this)));return this._startQueuedJob(),await s}async _startQueuedJob(){if(!this.jobQueue.length)return;const e=this._getAvailableWorker();if(!e)return;const t=this.jobQueue.shift();if(t){this.onDebug({message:"Starting job",name:t.name,workerThread:e,backlog:this.jobQueue.length});const i=new Yf(t.name,e);e.onMessage=e=>t.onMessage(i,e.type,e.payload),e.onError=e=>t.onError(i,e),t.onStart(i);try{await i.result}finally{this.returnWorkerToQueue(e)}}}returnWorkerToQueue(e){this.isDestroyed||!this.reuseWorkers||this.count>this._getMaxConcurrency()?(e.destroy(),this.count--):this.idleQueue.push(e),this.isDestroyed||this._startQueuedJob()}_getAvailableWorker(){if(this.idleQueue.length>0)return this.idleQueue.shift()||null;if(this.count{}};class n_{static isSupported(){return s_.isSupported()}static getWorkerFarm(e={}){return n_._workerFarm=n_._workerFarm||new n_({}),n_._workerFarm.setProps(e),n_._workerFarm}constructor(e){Xf(this,"props",void 0),Xf(this,"workerPools",new Map),this.props={...o_},this.setProps(e),this.workerPools=new Map}destroy(){for(const e of this.workerPools.values())e.destroy();this.workerPools=new Map}setProps(e){this.props={...this.props,...e};for(const e of this.workerPools.values())e.setProps(this._getWorkerPoolProps())}getWorkerPool(e){const{name:t,source:i,url:s}=e;let r=this.workerPools.get(t);return r||(r=new r_({name:t,source:i,url:s}),r.setProps(this._getWorkerPoolProps()),this.workerPools.set(t,r)),r}_getWorkerPoolProps(){return{maxConcurrency:this.props.maxConcurrency,maxMobileConcurrency:this.props.maxMobileConcurrency,reuseWorkers:this.props.reuseWorkers,onDebug:this.props.onDebug}}}Xf(n_,"_workerFarm",void 0);const a_={self:"undefined"!=typeof self&&self,window:"undefined"!=typeof window&&window,global:"undefined"!=typeof global&&global,document:"undefined"!=typeof document&&document,process:"object"==typeof process&&process},l_=a_.window||a_.self||a_.global,A_=a_.process||{},h_="undefined"!=typeof __VERSION__?__VERSION__:"untranspiled source",c_=!("object"==typeof process&&"[object process]"===String(process)&&!process.browser)||function(e){if("undefined"!=typeof window&&"object"==typeof window.process&&"renderer"===window.process.type)return!0;if("undefined"!=typeof process&&"object"==typeof process.versions&&Boolean(process.versions.electron))return!0;const t="object"==typeof navigator&&"string"==typeof navigator.userAgent&&navigator.userAgent,i=e||t;return!!(i&&i.indexOf("Electron")>=0)}();class u_{constructor(e,t,i="sessionStorage"){this.storage=function(e){try{const t=window[e],i="__storage_test__";return t.setItem(i,i),t.removeItem(i),t}catch(e){return null}}(i),this.id=e,this.config={},Object.assign(this.config,t),this._loadConfiguration()}getConfiguration(){return this.config}setConfiguration(e){return this.config={},this.updateConfiguration(e)}updateConfiguration(e){if(Object.assign(this.config,e),this.storage){const e=JSON.stringify(this.config);this.storage.setItem(this.id,e)}return this}_loadConfiguration(){let e={};if(this.storage){const t=this.storage.getItem(this.id);e=t?JSON.parse(t):{}}return Object.assign(this.config,e),this}}function d_(e,t,i,s=600){const r=e.src.replace(/\(/g,"%28").replace(/\)/g,"%29");e.width>s&&(i=Math.min(i,s/e.width));const o=e.width*i,n=e.height*i,a=["font-size:1px;","padding:".concat(Math.floor(n/2),"px ").concat(Math.floor(o/2),"px;"),"line-height:".concat(n,"px;"),"background:url(".concat(r,");"),"background-size:".concat(o,"px ").concat(n,"px;"),"color:transparent;"].join("");return["".concat(t," %c+"),a]}const p_={BLACK:30,RED:31,GREEN:32,YELLOW:33,BLUE:34,MAGENTA:35,CYAN:36,WHITE:37,BRIGHT_BLACK:90,BRIGHT_RED:91,BRIGHT_GREEN:92,BRIGHT_YELLOW:93,BRIGHT_BLUE:94,BRIGHT_MAGENTA:95,BRIGHT_CYAN:96,BRIGHT_WHITE:97};function g_(e){return"string"==typeof e?p_[e.toUpperCase()]||p_.WHITE:e}function m_(e,t){if(!e)throw new Error(t||"Assertion failed")}function f_(){let e;if(c_&&l_.performance)e=l_.performance.now();else if(A_.hrtime){const t=A_.hrtime();e=1e3*t[0]+t[1]/1e6}else e=Date.now();return e}const __={debug:c_&&console.debug||console.log,log:console.log,info:console.info,warn:console.warn,error:console.error},v_={enabled:!0,level:0};function b_(){}const x_={},w_={once:!0};function y_(e){for(const t in e)for(const i in e[t])return i||"untitled";return"empty"}class P_{constructor({id:e}={id:""}){this.id=e,this.VERSION=h_,this._startTs=f_(),this._deltaTs=f_(),this.LOG_THROTTLE_TIMEOUT=0,this._storage=new u_("__probe-".concat(this.id,"__"),v_),this.userData={},this.timeStamp("".concat(this.id," started")),function(e,t=["constructor"]){const i=Object.getPrototypeOf(e),s=Object.getOwnPropertyNames(i);for(const i of s)"function"==typeof e[i]&&(t.find((e=>i===e))||(e[i]=e[i].bind(e)))}(this),Object.seal(this)}set level(e){this.setLevel(e)}get level(){return this.getLevel()}isEnabled(){return this._storage.config.enabled}getLevel(){return this._storage.config.level}getTotal(){return Number((f_()-this._startTs).toPrecision(10))}getDelta(){return Number((f_()-this._deltaTs).toPrecision(10))}set priority(e){this.level=e}get priority(){return this.level}getPriority(){return this.level}enable(e=!0){return this._storage.updateConfiguration({enabled:e}),this}setLevel(e){return this._storage.updateConfiguration({level:e}),this}assert(e,t){m_(e,t)}warn(e){return this._getLogFunction(0,e,__.warn,arguments,w_)}error(e){return this._getLogFunction(0,e,__.error,arguments)}deprecated(e,t){return this.warn("`".concat(e,"` is deprecated and will be removed in a later version. Use `").concat(t,"` instead"))}removed(e,t){return this.error("`".concat(e,"` has been removed. Use `").concat(t,"` instead"))}probe(e,t){return this._getLogFunction(e,t,__.log,arguments,{time:!0,once:!0})}log(e,t){return this._getLogFunction(e,t,__.debug,arguments)}info(e,t){return this._getLogFunction(e,t,console.info,arguments)}once(e,t){return this._getLogFunction(e,t,__.debug||__.info,arguments,w_)}table(e,t,i){return t?this._getLogFunction(e,t,console.table||b_,i&&[i],{tag:y_(t)}):b_}image({logLevel:e,priority:t,image:i,message:s="",scale:r=1}){return this._shouldLog(e||t)?c_?function({image:e,message:t="",scale:i=1}){if("string"==typeof e){const s=new Image;return s.onload=()=>{const e=d_(s,t,i);console.log(...e)},s.src=e,b_}const s=e.nodeName||"";if("img"===s.toLowerCase())return console.log(...d_(e,t,i)),b_;if("canvas"===s.toLowerCase()){const s=new Image;return s.onload=()=>console.log(...d_(s,t,i)),s.src=e.toDataURL(),b_}return b_}({image:i,message:s,scale:r}):function({image:e,message:t="",scale:i=1}){let s=null;try{s=module.require("asciify-image")}catch(e){}if(s)return()=>s(e,{fit:"box",width:"".concat(Math.round(80*i),"%")}).then((e=>console.log(e)));return b_}({image:i,message:s,scale:r}):b_}settings(){console.table?console.table(this._storage.config):console.log(this._storage.config)}get(e){return this._storage.config[e]}set(e,t){this._storage.updateConfiguration({[e]:t})}time(e,t){return this._getLogFunction(e,t,console.time?console.time:console.info)}timeEnd(e,t){return this._getLogFunction(e,t,console.timeEnd?console.timeEnd:console.info)}timeStamp(e,t){return this._getLogFunction(e,t,console.timeStamp||b_)}group(e,t,i={collapsed:!1}){i=C_({logLevel:e,message:t,opts:i});const{collapsed:s}=i;return i.method=(s?console.groupCollapsed:console.group)||console.info,this._getLogFunction(i)}groupCollapsed(e,t,i={}){return this.group(e,t,Object.assign({},i,{collapsed:!0}))}groupEnd(e){return this._getLogFunction(e,"",console.groupEnd||b_)}withGroup(e,t,i){this.group(e,t)();try{i()}finally{this.groupEnd(e)()}}trace(){console.trace&&console.trace()}_shouldLog(e){return this.isEnabled()&&this.getLevel()>=B_(e)}_getLogFunction(e,t,i,s=[],r){if(this._shouldLog(e)){r=C_({logLevel:e,message:t,args:s,opts:r}),m_(i=i||r.method),r.total=this.getTotal(),r.delta=this.getDelta(),this._deltaTs=f_();const o=r.tag||r.message;if(r.once){if(x_[o])return b_;x_[o]=f_()}return t=function(e,t,i){if("string"==typeof t){const s=i.time?function(e,t=8){const i=Math.max(t-e.length,0);return"".concat(" ".repeat(i)).concat(e)}(function(e){let t;return t=e<10?"".concat(e.toFixed(2),"ms"):e<100?"".concat(e.toFixed(1),"ms"):e<1e3?"".concat(e.toFixed(0),"ms"):"".concat((e/1e3).toFixed(2),"s"),t}(i.total)):"";t=i.time?"".concat(e,": ").concat(s," ").concat(t):"".concat(e,": ").concat(t),t=function(e,t,i){return c_||"string"!=typeof e||(t&&(t=g_(t),e="[".concat(t,"m").concat(e,"")),i&&(t=g_(i),e="[".concat(i+10,"m").concat(e,""))),e}(t,i.color,i.background)}return t}(this.id,r.message,r),i.bind(console,t,...r.args)}return b_}}function B_(e){if(!e)return 0;let t;switch(typeof e){case"number":t=e;break;case"object":t=e.logLevel||e.priority||0;break;default:return 0}return m_(Number.isFinite(t)&&t>=0),t}function C_(e){const{logLevel:t,message:i}=e;e.logLevel=B_(t);const s=e.args?Array.from(e.args):[];for(;s.length&&s.shift()!==i;);switch(e.args=s,typeof t){case"string":case"function":void 0!==i&&s.unshift(i),e.message=t;break;case"object":Object.assign(e,t)}"function"==typeof e.message&&(e.message=e.message());const r=typeof e.message;return m_("string"===r||"object"===r),Object.assign(e,e.opts)}P_.VERSION=h_,new P_({id:"loaders.gl"});function M_(){return!("object"==typeof process&&"[object process]"===String(process)&&!process.browser)||function(e){if("undefined"!=typeof window&&"object"==typeof window.process&&"renderer"===window.process.type)return!0;if("undefined"!=typeof process&&"object"==typeof process.versions&&Boolean(process.versions.electron))return!0;const t="object"==typeof navigator&&"string"==typeof navigator.userAgent&&navigator.userAgent,i=e||t;return!!(i&&i.indexOf("Electron")>=0)}()}new class{constructor(){Xf(this,"console",void 0),this.console=console}log(...e){return this.console.log.bind(this.console,...e)}info(...e){return this.console.info.bind(this.console,...e)}warn(...e){return this.console.warn.bind(this.console,...e)}error(...e){return this.console.error.bind(this.console,...e)}};const E_={self:"undefined"!=typeof self&&self,window:"undefined"!=typeof window&&window,global:"undefined"!=typeof global&&global,document:"undefined"!=typeof document&&document,process:"object"==typeof process&&process},F_=E_.window||E_.self||E_.global,I_=E_.process||{},D_="undefined"!=typeof __VERSION__?__VERSION__:"untranspiled source";M_();class S_{constructor(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"sessionStorage";Xf(this,"storage",void 0),Xf(this,"id",void 0),Xf(this,"config",{}),this.storage=function(e){try{const t=window[e],i="__storage_test__";return t.setItem(i,i),t.removeItem(i),t}catch(e){return null}}(i),this.id=e,this.config={},Object.assign(this.config,t),this._loadConfiguration()}getConfiguration(){return this.config}setConfiguration(e){return this.config={},this.updateConfiguration(e)}updateConfiguration(e){if(Object.assign(this.config,e),this.storage){const e=JSON.stringify(this.config);this.storage.setItem(this.id,e)}return this}_loadConfiguration(){let e={};if(this.storage){const t=this.storage.getItem(this.id);e=t?JSON.parse(t):{}}return Object.assign(this.config,e),this}}function T_(e,t,i){let s=arguments.length>3&&void 0!==arguments[3]?arguments[3]:600;const r=e.src.replace(/\(/g,"%28").replace(/\)/g,"%29");e.width>s&&(i=Math.min(i,s/e.width));const o=e.width*i,n=e.height*i,a=["font-size:1px;","padding:".concat(Math.floor(n/2),"px ").concat(Math.floor(o/2),"px;"),"line-height:".concat(n,"px;"),"background:url(".concat(r,");"),"background-size:".concat(o,"px ").concat(n,"px;"),"color:transparent;"].join("");return["".concat(t," %c+"),a]}let R_;function L_(e){return"string"==typeof e?R_[e.toUpperCase()]||R_.WHITE:e}function U_(e,t){if(!e)throw new Error(t||"Assertion failed")}function k_(){let e;var t,i;if(M_&&"performance"in F_)e=null==F_||null===(t=F_.performance)||void 0===t||null===(i=t.now)||void 0===i?void 0:i.call(t);else if("hrtime"in I_){var s;const t=null==I_||null===(s=I_.hrtime)||void 0===s?void 0:s.call(I_);e=1e3*t[0]+t[1]/1e6}else e=Date.now();return e}!function(e){e[e.BLACK=30]="BLACK",e[e.RED=31]="RED",e[e.GREEN=32]="GREEN",e[e.YELLOW=33]="YELLOW",e[e.BLUE=34]="BLUE",e[e.MAGENTA=35]="MAGENTA",e[e.CYAN=36]="CYAN",e[e.WHITE=37]="WHITE",e[e.BRIGHT_BLACK=90]="BRIGHT_BLACK",e[e.BRIGHT_RED=91]="BRIGHT_RED",e[e.BRIGHT_GREEN=92]="BRIGHT_GREEN",e[e.BRIGHT_YELLOW=93]="BRIGHT_YELLOW",e[e.BRIGHT_BLUE=94]="BRIGHT_BLUE",e[e.BRIGHT_MAGENTA=95]="BRIGHT_MAGENTA",e[e.BRIGHT_CYAN=96]="BRIGHT_CYAN",e[e.BRIGHT_WHITE=97]="BRIGHT_WHITE"}(R_||(R_={}));const O_={debug:M_&&console.debug||console.log,log:console.log,info:console.info,warn:console.warn,error:console.error},N_={enabled:!0,level:0};function Q_(){}const V_={},j_={once:!0};class H_{constructor(){let{id:e}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{id:""};Xf(this,"id",void 0),Xf(this,"VERSION",D_),Xf(this,"_startTs",k_()),Xf(this,"_deltaTs",k_()),Xf(this,"_storage",void 0),Xf(this,"userData",{}),Xf(this,"LOG_THROTTLE_TIMEOUT",0),this.id=e,this._storage=new S_("__probe-".concat(this.id,"__"),N_),this.userData={},this.timeStamp("".concat(this.id," started")),function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:["constructor"];const i=Object.getPrototypeOf(e),s=Object.getOwnPropertyNames(i);for(const i of s)"function"==typeof e[i]&&(t.find((e=>i===e))||(e[i]=e[i].bind(e)))}(this),Object.seal(this)}set level(e){this.setLevel(e)}get level(){return this.getLevel()}isEnabled(){return this._storage.config.enabled}getLevel(){return this._storage.config.level}getTotal(){return Number((k_()-this._startTs).toPrecision(10))}getDelta(){return Number((k_()-this._deltaTs).toPrecision(10))}set priority(e){this.level=e}get priority(){return this.level}getPriority(){return this.level}enable(){let e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];return this._storage.updateConfiguration({enabled:e}),this}setLevel(e){return this._storage.updateConfiguration({level:e}),this}get(e){return this._storage.config[e]}set(e,t){this._storage.updateConfiguration({[e]:t})}settings(){console.table?console.table(this._storage.config):console.log(this._storage.config)}assert(e,t){U_(e,t)}warn(e){return this._getLogFunction(0,e,O_.warn,arguments,j_)}error(e){return this._getLogFunction(0,e,O_.error,arguments)}deprecated(e,t){return this.warn("`".concat(e,"` is deprecated and will be removed in a later version. Use `").concat(t,"` instead"))}removed(e,t){return this.error("`".concat(e,"` has been removed. Use `").concat(t,"` instead"))}probe(e,t){return this._getLogFunction(e,t,O_.log,arguments,{time:!0,once:!0})}log(e,t){return this._getLogFunction(e,t,O_.debug,arguments)}info(e,t){return this._getLogFunction(e,t,console.info,arguments)}once(e,t){for(var i=arguments.length,s=new Array(i>2?i-2:0),r=2;r{const t=T_(e,i,s);console.log(...t)},e.src=t,Q_}const r=t.nodeName||"";if("img"===r.toLowerCase())return console.log(...T_(t,i,s)),Q_;if("canvas"===r.toLowerCase()){const e=new Image;return e.onload=()=>console.log(...T_(e,i,s)),e.src=t.toDataURL(),Q_}return Q_}({image:s,message:r,scale:o}):function(e){let{image:t,message:i="",scale:s=1}=e,r=null;try{r=module.require("asciify-image")}catch(e){}if(r)return()=>r(t,{fit:"box",width:"".concat(Math.round(80*s),"%")}).then((e=>console.log(e)));return Q_}({image:s,message:r,scale:o}):Q_}time(e,t){return this._getLogFunction(e,t,console.time?console.time:console.info)}timeEnd(e,t){return this._getLogFunction(e,t,console.timeEnd?console.timeEnd:console.info)}timeStamp(e,t){return this._getLogFunction(e,t,console.timeStamp||Q_)}group(e,t){let i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{collapsed:!1};const s=G_({logLevel:e,message:t,opts:i}),{collapsed:r}=i;return s.method=(r?console.groupCollapsed:console.group)||console.info,this._getLogFunction(s)}groupCollapsed(e,t){let i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.group(e,t,Object.assign({},i,{collapsed:!0}))}groupEnd(e){return this._getLogFunction(e,"",console.groupEnd||Q_)}withGroup(e,t,i){this.group(e,t)();try{i()}finally{this.groupEnd(e)()}}trace(){console.trace&&console.trace()}_shouldLog(e){return this.isEnabled()&&this.getLevel()>=z_(e)}_getLogFunction(e,t,i,s,r){if(this._shouldLog(e)){r=G_({logLevel:e,message:t,args:s,opts:r}),U_(i=i||r.method),r.total=this.getTotal(),r.delta=this.getDelta(),this._deltaTs=k_();const o=r.tag||r.message;if(r.once){if(V_[o])return Q_;V_[o]=k_()}return t=function(e,t,i){if("string"==typeof t){const s=i.time?function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:8;const i=Math.max(t-e.length,0);return"".concat(" ".repeat(i)).concat(e)}(function(e){let t;return t=e<10?"".concat(e.toFixed(2),"ms"):e<100?"".concat(e.toFixed(1),"ms"):e<1e3?"".concat(e.toFixed(0),"ms"):"".concat((e/1e3).toFixed(2),"s"),t}(i.total)):"";t=i.time?"".concat(e,": ").concat(s," ").concat(t):"".concat(e,": ").concat(t),t=function(e,t,i){return M_||"string"!=typeof e||(t&&(t=L_(t),e="[".concat(t,"m").concat(e,"")),i&&(t=L_(i),e="[".concat(i+10,"m").concat(e,""))),e}(t,i.color,i.background)}return t}(this.id,r.message,r),i.bind(console,t,...r.args)}return Q_}}function z_(e){if(!e)return 0;let t;switch(typeof e){case"number":t=e;break;case"object":t=e.logLevel||e.priority||0;break;default:return 0}return U_(Number.isFinite(t)&&t>=0),t}function G_(e){const{logLevel:t,message:i}=e;e.logLevel=z_(t);const s=e.args?Array.from(e.args):[];for(;s.length&&s.shift()!==i;);switch(typeof t){case"string":case"function":void 0!==i&&s.unshift(i),e.message=t;break;case"object":Object.assign(e,t)}"function"==typeof e.message&&(e.message=e.message());const r=typeof e.message;return U_("string"===r||"object"===r),Object.assign(e,{args:s},e.opts)}function W_(e){for(const t in e)for(const i in e[t])return i||"untitled";return"empty"}var K_,X_,Y_,q_,Z_,J_,$_,ev,tv;let iv;Xf(H_,"VERSION",D_),new H_({id:"loaders.gl"}),(tv=K_||(K_={}))[tv.NONE=0]="NONE",tv[tv.BASISLZ=1]="BASISLZ",tv[tv.ZSTD=2]="ZSTD",tv[tv.ZLIB=3]="ZLIB",function(e){e[e.BASICFORMAT=0]="BASICFORMAT"}(X_||(X_={})),function(e){e[e.UNSPECIFIED=0]="UNSPECIFIED",e[e.ETC1S=163]="ETC1S",e[e.UASTC=166]="UASTC"}(Y_||(Y_={})),function(e){e[e.UNSPECIFIED=0]="UNSPECIFIED",e[e.SRGB=1]="SRGB"}(q_||(q_={})),function(e){e[e.UNSPECIFIED=0]="UNSPECIFIED",e[e.LINEAR=1]="LINEAR",e[e.SRGB=2]="SRGB",e[e.ITU=3]="ITU",e[e.NTSC=4]="NTSC",e[e.SLOG=5]="SLOG",e[e.SLOG2=6]="SLOG2"}(Z_||(Z_={})),function(e){e[e.ALPHA_STRAIGHT=0]="ALPHA_STRAIGHT",e[e.ALPHA_PREMULTIPLIED=1]="ALPHA_PREMULTIPLIED"}(J_||(J_={})),function(e){e[e.RGB=0]="RGB",e[e.RRR=3]="RRR",e[e.GGG=4]="GGG",e[e.AAA=15]="AAA"}($_||($_={})),function(e){e[e.RGB=0]="RGB",e[e.RGBA=3]="RGBA",e[e.RRR=4]="RRR",e[e.RRRG=5]="RRRG"}(ev||(ev={})),function(e){e[e.NONE=0]="NONE",e[e.Null=1]="Null",e[e.Int=2]="Int",e[e.Float=3]="Float",e[e.Binary=4]="Binary",e[e.Utf8=5]="Utf8",e[e.Bool=6]="Bool",e[e.Decimal=7]="Decimal",e[e.Date=8]="Date",e[e.Time=9]="Time",e[e.Timestamp=10]="Timestamp",e[e.Interval=11]="Interval",e[e.List=12]="List",e[e.Struct=13]="Struct",e[e.Union=14]="Union",e[e.FixedSizeBinary=15]="FixedSizeBinary",e[e.FixedSizeList=16]="FixedSizeList",e[e.Map=17]="Map",e[e.Dictionary=-1]="Dictionary",e[e.Int8=-2]="Int8",e[e.Int16=-3]="Int16",e[e.Int32=-4]="Int32",e[e.Int64=-5]="Int64",e[e.Uint8=-6]="Uint8",e[e.Uint16=-7]="Uint16",e[e.Uint32=-8]="Uint32",e[e.Uint64=-9]="Uint64",e[e.Float16=-10]="Float16",e[e.Float32=-11]="Float32",e[e.Float64=-12]="Float64",e[e.DateDay=-13]="DateDay",e[e.DateMillisecond=-14]="DateMillisecond",e[e.TimestampSecond=-15]="TimestampSecond",e[e.TimestampMillisecond=-16]="TimestampMillisecond",e[e.TimestampMicrosecond=-17]="TimestampMicrosecond",e[e.TimestampNanosecond=-18]="TimestampNanosecond",e[e.TimeSecond=-19]="TimeSecond",e[e.TimeMillisecond=-20]="TimeMillisecond",e[e.TimeMicrosecond=-21]="TimeMicrosecond",e[e.TimeNanosecond=-22]="TimeNanosecond",e[e.DenseUnion=-23]="DenseUnion",e[e.SparseUnion=-24]="SparseUnion",e[e.IntervalDayTime=-25]="IntervalDayTime",e[e.IntervalYearMonth=-26]="IntervalYearMonth"}(iv||(iv={}));const sv={DEFAULT:{}};function rv(e,t,i={}){const s="lightgrey",r=i.hoverColor||"rgba(0,0,0,0.4)",o=i.textColor||"black",n=500,a=n+n/3,l=a/24,A=[{boundary:[6,6,6,6],color:i.frontColor||i.color||"#55FF55"},{boundary:[18,6,6,6],color:i.backColor||i.color||"#55FF55"},{boundary:[12,6,6,6],color:i.rightColor||i.color||"#FF5555"},{boundary:[0,6,6,6],color:i.leftColor||i.color||"#FF5555"},{boundary:[6,0,6,6],color:i.topColor||i.color||"#7777FF"},{boundary:[6,12,6,6],color:i.bottomColor||i.color||"#7777FF"}],h=[{label:"NavCube.front",boundaries:[[7,7,4,4]],dir:[0,1,0],up:[0,0,1]},{label:"NavCube.back",boundaries:[[19,7,4,4]],dir:[0,-1,0],up:[0,0,1]},{label:"NavCube.right",boundaries:[[13,7,4,4]],dir:[-1,0,0],up:[0,0,1]},{label:"NavCube.left",boundaries:[[1,7,4,4]],dir:[1,0,0],up:[0,0,1]},{label:"NavCube.top",boundaries:[[7,1,4,4]],dir:[0,0,-1],up:[0,1,0]},{label:"NavCube.bottom",boundaries:[[7,13,4,4]],dir:[0,0,1],up:[0,-1,0]},{boundaries:[[7,5,4,2]],dir:[0,1,-1],up:[0,1,1]},{boundaries:[[1,6,4,1],[6,1,1,4]],dir:[1,0,-1],up:[1,0,1]},{boundaries:[[7,0,4,1],[19,6,4,1]],dir:[0,-1,-1],up:[0,-1,1]},{boundaries:[[13,6,4,1],[11,1,1,4]],dir:[-1,0,-1],up:[-1,0,1]},{boundaries:[[7,11,4,2]],dir:[0,1,1],up:[0,-1,1]},{boundaries:[[1,11,4,1],[6,13,1,4]],dir:[1,0,1],up:[-1,0,1]},{boundaries:[[7,17,4,1],[19,11,4,1]],dir:[0,-1,1],up:[0,1,1]},{boundaries:[[13,11,4,1],[11,13,1,4]],dir:[-1,0,1],up:[1,0,1]},{boundaries:[[5,7,2,4]],dir:[1,1,0],up:[0,0,1]},{boundaries:[[11,7,2,4]],dir:[-1,1,0],up:[0,0,1]},{boundaries:[[17,7,2,4]],dir:[-1,-1,0],up:[0,0,1]},{boundaries:[[0,7,1,4],[23,7,1,4]],dir:[1,-1,0],up:[0,0,1]},{boundaries:[[5,11,2,2]],dir:[1,1,1],up:[-1,-1,1]},{boundaries:[[23,11,1,1],[6,17,1,1],[0,11,1,1]],dir:[1,-1,1],up:[-1,1,1]},{boundaries:[[5,5,2,2]],dir:[1,1,-1],up:[1,1,1]},{boundaries:[[11,17,1,1],[17,11,2,1]],dir:[-1,-1,1],up:[1,1,1]},{boundaries:[[17,6,2,1],[11,0,1,1]],dir:[-1,-1,-1],up:[-1,-1,1]},{boundaries:[[11,11,2,2]],dir:[-1,1,1],up:[1,-1,1]},{boundaries:[[0,6,1,1],[6,0,1,1],[23,6,1,1]],dir:[1,-1,-1],up:[1,-1,1]},{boundaries:[[11,5,2,2]],dir:[-1,1,-1],up:[-1,1,1]}];i.frontColor||i.color,i.backColor||i.color,i.rightColor||i.color,i.leftColor||i.color,i.topColor||i.color,i.bottomColor||i.color;const c=[{yUp:"",label:"NavCube.front",boundaries:[[7,7,4,4]],dir:[0,0,-1],up:[0,1,0]},{label:"NavCube.back",boundaries:[[19,7,4,4]],dir:[0,0,1],up:[0,1,0]},{label:"NavCube.right",boundaries:[[13,7,4,4]],dir:[-1,0,0],up:[0,1,0]},{label:"NavCube.left",boundaries:[[1,7,4,4]],dir:[1,0,0],up:[0,1,0]},{label:"NavCube.top",boundaries:[[7,1,4,4]],dir:[0,-1,0],up:[0,0,-1]},{label:"NavCube.bottom",boundaries:[[7,13,4,4]],dir:[0,1,0],up:[0,0,1]},{boundaries:[[7,5,4,2]],dir:[0,-.7071,-.7071],up:[0,.7071,-.7071]},{boundaries:[[1,6,4,1],[6,1,1,4]],dir:[1,-1,0],up:[1,1,0]},{boundaries:[[7,0,4,1],[19,6,4,1]],dir:[0,-.7071,.7071],up:[0,.7071,.7071]},{boundaries:[[13,6,4,1],[11,1,1,4]],dir:[-1,-1,0],up:[-1,1,0]},{boundaries:[[7,11,4,2]],dir:[0,1,-1],up:[0,1,1]},{boundaries:[[1,11,4,1],[6,13,1,4]],dir:[1,1,0],up:[-1,1,0]},{boundaries:[[7,17,4,1],[19,11,4,1]],dir:[0,1,1],up:[0,1,-1]},{boundaries:[[13,11,4,1],[11,13,1,4]],dir:[-1,1,0],up:[1,1,0]},{boundaries:[[5,7,2,4]],dir:[1,0,-1],up:[0,1,0]},{boundaries:[[11,7,2,4]],dir:[-1,0,-1],up:[0,1,0]},{boundaries:[[17,7,2,4]],dir:[-1,0,1],up:[0,1,0]},{boundaries:[[0,7,1,4],[23,7,1,4]],dir:[1,0,1],up:[0,1,0]},{boundaries:[[5,11,2,2]],dir:[.5,.7071,-.5],up:[-.5,.7071,.5]},{boundaries:[[23,11,1,1],[6,17,1,1],[0,11,1,1]],dir:[.5,.7071,.5],up:[-.5,.7071,-.5]},{boundaries:[[5,5,2,2]],dir:[.5,-.7071,-.5],up:[.5,.7071,-.5]},{boundaries:[[11,17,1,1],[17,11,2,1]],dir:[-.5,.7071,.5],up:[.5,.7071,-.5]},{boundaries:[[17,6,2,1],[11,0,1,1]],dir:[-.5,-.7071,.5],up:[-.5,.7071,.5]},{boundaries:[[11,11,2,2]],dir:[-.5,.7071,-.5],up:[.5,.7071,.5]},{boundaries:[[0,6,1,1],[6,0,1,1],[23,6,1,1]],dir:[.5,-.7071,.5],up:[.5,.7071,.5]},{boundaries:[[11,5,2,2]],dir:[-.5,-.7071,-.5],up:[-.5,.7071,-.5]}];for(let e=0,t=h.length;e=r[0]*l&&t<=(r[0]+r[2])*l&&i>=r[1]*l&&i<=(r[1]+r[3])*l)return s}}return-1},this.setAreaHighlighted=function(e,t){var i=d[e];if(!i)throw"Area not found: "+e;i.highlighted=!!t,m()},this.getAreaDir=function(e){var t=d[e];if(!t)throw"Unknown area: "+e;return t.dir},this.getAreaUp=function(e){var t=d[e];if(!t)throw"Unknown area: "+e;return t.up},this.getImage=function(){return this._textureCanvas},this.destroy=function(){this._textureCanvas&&(this._textureCanvas.parentNode.removeChild(this._textureCanvas),this._textureCanvas=null)}}const ov=u.vec3(),nv=u.vec3();u.mat4();class av extends N{constructor(e,t={}){super("NavCube",e,t),e.navCube=this;try{this._navCubeScene=new Yt(e,{canvasId:t.canvasId,canvasElement:t.canvasElement,transparent:!0}),this._navCubeCanvas=this._navCubeScene.canvas.canvas,this._navCubeScene.input.keyboardEnabled=!1}catch(e){return void this.error(e)}const i=this._navCubeScene;i.clearLights(),new _t(i,{dir:[.4,-.4,.8],color:[.8,1,1],intensity:1,space:"view"}),new _t(i,{dir:[-.8,-.3,-.4],color:[.8,.8,.8],intensity:1,space:"view"}),new _t(i,{dir:[.8,-.6,-.8],color:[1,1,1],intensity:1,space:"view"}),this._navCubeCamera=i.camera,this._navCubeCamera.ortho.scale=7,this._navCubeCamera.ortho.near=.1,this._navCubeCamera.ortho.far=2e3,i.edgeMaterial.edgeColor=[.2,.2,.2],i.edgeMaterial.edgeAlpha=.6,this._zUp=Boolean(e.camera.zUp);var s=this;this.setIsProjectNorth(t.isProjectNorth),this.setProjectNorthOffsetAngle(t.projectNorthOffsetAngle);const r=function(){const e=u.mat4();return function(t,i,r){return u.identityMat4(e),u.rotationMat4v(t*s._projectNorthOffsetAngle*u.DEGTORAD,[0,1,0],e),u.transformVec3(e,i,r)}}();this._synchCamera=function(){var t=u.rotationMat4c(-90*u.DEGTORAD,1,0,0),i=u.vec3(),o=u.vec3(),n=u.vec3();return function(){var a=e.camera.eye,l=e.camera.look,A=e.camera.up;i=u.mulVec3Scalar(u.normalizeVec3(u.subVec3(a,l,i)),5),s._isProjectNorth&&s._projectNorthOffsetAngle&&(i=r(-1,i,ov),A=r(-1,A,nv)),s._zUp?(u.transformVec3(t,i,o),u.transformVec3(t,A,n),s._navCubeCamera.look=[0,0,0],s._navCubeCamera.eye=u.transformVec3(t,i,o),s._navCubeCamera.up=u.transformPoint3(t,A,n)):(s._navCubeCamera.look=[0,0,0],s._navCubeCamera.eye=i,s._navCubeCamera.up=A)}}(),this._cubeTextureCanvas=new rv(e,i,t),this._cubeSampler=new As(i,{image:this._cubeTextureCanvas.getImage(),flipY:!0,wrapS:1001,wrapT:1001}),this._cubeMesh=new Qi(i,{geometry:new Dt(i,{primitive:"triangles",normals:[0,0,1,0,0,1,0,0,1,0,0,1,1,0,0,1,0,0,1,0,0,1,0,0,0,1,0,0,1,0,0,1,0,0,1,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,0,-1,0,0,-1,0,0,-1,0,0,-1],positions:[1,1,1,-1,1,1,-1,-1,1,1,-1,1,1,1,1,1,-1,1,1,-1,-1,1,1,-1,1,1,1,1,1,-1,-1,1,-1,-1,1,1,-1,1,1,-1,1,-1,-1,-1,-1,-1,-1,1,-1,-1,-1,1,-1,-1,1,-1,1,-1,-1,1,1,-1,-1,-1,-1,-1,-1,1,-1,1,1,-1],uv:[.5,.6666,.25,.6666,.25,.3333,.5,.3333,.5,.6666,.5,.3333,.75,.3333,.75,.6666,.5,.6666,.5,1,.25,1,.25,.6666,.25,.6666,0,.6666,0,.3333,.25,.3333,.25,0,.5,0,.5,.3333,.25,.3333,.75,.3333,1,.3333,1,.6666,.75,.6666],indices:[0,1,2,0,2,3,4,5,6,4,6,7,8,9,10,8,10,11,12,13,14,12,14,15,16,17,18,16,18,19,20,21,22,20,22,23]}),material:new Ut(i,{diffuse:[.4,.4,.4],specular:[.4,.4,.4],emissive:[.6,.6,.6],diffuseMap:this._cubeSampler,emissiveMap:this._cubeSampler}),visible:!0,edges:!0}),this._shadow=!1===t.shadowVisible?null:new Qi(i,{geometry:new Dt(i,ji({center:[0,0,0],radiusTop:.001,radiusBottom:1.4,height:.01,radialSegments:20,heightSegments:1,openEnded:!0})),material:new Ut(i,{diffuse:[0,0,0],specular:[0,0,0],emissive:[0,0,0],alpha:.5}),position:[0,-1.5,0],visible:!0,pickable:!1,backfaces:!1}),this._onCameraMatrix=e.camera.on("matrix",this._synchCamera),this._onCameraWorldAxis=e.camera.on("worldAxis",(()=>{e.camera.zUp?(this._zUp=!0,this._cubeTextureCanvas.setZUp(),this._repaint(),this._synchCamera()):e.camera.yUp&&(this._zUp=!1,this._cubeTextureCanvas.setYUp(),this._repaint(),this._synchCamera())})),this._onCameraFOV=e.camera.perspective.on("fov",(e=>{this._synchProjection&&(this._navCubeCamera.perspective.fov=e)})),this._onCameraProjection=e.camera.on("projection",(e=>{this._synchProjection&&(this._navCubeCamera.projection="ortho"===e||"perspective"===e?e:"perspective")}));var o=-1;function n(e){var t=[0,0];if(e){for(var i=e.target,s=0,r=0;i.offsetParent;)s+=i.offsetLeft,r+=i.offsetTop,i=i.offsetParent;t[0]=e.pageX-s,t[1]=e.pageY-r}else e=window.event,t[0]=e.x,t[1]=e.y;return t}var a,l,A=null,h=null,c=!1,d=!1,p=.5;s._navCubeCanvas.addEventListener("mouseenter",s._onMouseEnter=function(e){d=!0}),s._navCubeCanvas.addEventListener("mouseleave",s._onMouseLeave=function(e){d=!1}),s._navCubeCanvas.addEventListener("mousedown",s._onMouseDown=function(e){if(1===e.which){A=e.x,h=e.y,a=e.clientX,l=e.clientY;var t=n(e),s=i.pick({canvasPos:t});c=!!s}}),document.addEventListener("mouseup",s._onMouseUp=function(e){if(1===e.which&&(c=!1,null!==A)){var t=n(e),a=i.pick({canvasPos:t,pickSurface:!0});if(a&&a.uv){var l=s._cubeTextureCanvas.getArea(a.uv);if(l>=0&&(document.body.style.cursor="pointer",o>=0&&(s._cubeTextureCanvas.setAreaHighlighted(o,!1),s._repaint(),o=-1),l>=0)){if(s._cubeTextureCanvas.setAreaHighlighted(l,!0),o=l,s._repaint(),e.xA+3||e.yh+3)return;var u=s._cubeTextureCanvas.getAreaDir(l);if(u){var d=s._cubeTextureCanvas.getAreaUp(l);s._isProjectNorth&&s._projectNorthOffsetAngle&&(u=r(1,u,ov),d=r(1,d,nv)),g(u,d,(function(){o>=0&&(s._cubeTextureCanvas.setAreaHighlighted(o,!1),s._repaint(),o=-1),document.body.style.cursor="pointer",o>=0&&(s._cubeTextureCanvas.setAreaHighlighted(o,!1),s._repaint(),o=-1),l>=0&&(s._cubeTextureCanvas.setAreaHighlighted(l,!1),o=-1,s._repaint())}))}}}}}),document.addEventListener("mousemove",s._onMouseMove=function(t){if(o>=0&&(s._cubeTextureCanvas.setAreaHighlighted(o,!1),s._repaint(),o=-1),1!==t.buttons||c){if(c){var r=t.clientX,A=t.clientY;return document.body.style.cursor="move",void function(t,i){var s=(t-a)*-p,r=(i-l)*-p;e.camera.orbitYaw(s),e.camera.orbitPitch(-r),a=t,l=i}(r,A)}if(d){var h=n(t),u=i.pick({canvasPos:h,pickSurface:!0});if(u){if(u.uv){document.body.style.cursor="pointer";var g=s._cubeTextureCanvas.getArea(u.uv);if(g===o)return;o>=0&&s._cubeTextureCanvas.setAreaHighlighted(o,!1),g>=0&&(s._cubeTextureCanvas.setAreaHighlighted(g,!0),s._repaint(),o=g)}}else document.body.style.cursor="default",o>=0&&(s._cubeTextureCanvas.setAreaHighlighted(o,!1),s._repaint(),o=-1)}}});var g=function(){var t=u.vec3();return function(i,r,o){var n=s._fitVisible?e.scene.getAABB(e.scene.visibleObjectIds):e.scene.aabb,a=u.getAABB3Diag(n);u.getAABB3Center(n,t);var l=Math.abs(a/Math.tan(s._cameraFitFOV*u.DEGTORAD));e.cameraControl.pivotPos=t,s._cameraFly?e.cameraFlight.flyTo({look:t,eye:[t[0]-l*i[0],t[1]-l*i[1],t[2]-l*i[2]],up:r||[0,1,0],orthoScale:1.1*a,fitFOV:s._cameraFitFOV,duration:s._cameraFlyDuration},o):e.cameraFlight.jumpTo({look:t,eye:[t[0]-l*i[0],t[1]-l*i[1],t[2]-l*i[2]],up:r||[0,1,0],orthoScale:1.1*a,fitFOV:s._cameraFitFOV},o)}}();this._onUpdated=e.localeService.on("updated",(()=>{this._cubeTextureCanvas.clear(),this._repaint()})),this.setVisible(t.visible),this.setCameraFitFOV(t.cameraFitFOV),this.setCameraFly(t.cameraFly),this.setCameraFlyDuration(t.cameraFlyDuration),this.setFitVisible(t.fitVisible),this.setSynchProjection(t.synchProjection)}send(e,t){if("language"===e)this._cubeTextureCanvas.clear(),this._repaint()}_repaint(){const e=this._cubeTextureCanvas.getImage();this._cubeMesh.material.diffuseMap.image=e,this._cubeMesh.material.emissiveMap.image=e}setVisible(e=!0){this._navCubeCanvas&&(this._cubeMesh.visible=e,this._shadow&&(this._shadow.visible=e),this._navCubeCanvas.style.visibility=e?"visible":"hidden")}getVisible(){return!!this._navCubeCanvas&&this._cubeMesh.visible}setFitVisible(e=!1){this._fitVisible=e}getFitVisible(){return this._fitVisible}setCameraFly(e=!0){this._cameraFly=e}getCameraFly(){return this._cameraFly}setCameraFitFOV(e=45){this._cameraFitFOV=e}getCameraFitFOV(){return this._cameraFitFOV}setCameraFlyDuration(e=.5){this._cameraFlyDuration=e}getCameraFlyDuration(){return this._cameraFlyDuration}setSynchProjection(e=!1){this._synchProjection=e}getSynchProjection(){return this._synchProjection}setIsProjectNorth(e=!1){this._isProjectNorth=e}getIsProjectNorth(){return this._isProjectNorth}setProjectNorthOffsetAngle(e){this._projectNorthOffsetAngle=e}getProjectNorthOffsetAngle(){return this._projectNorthOffsetAngle}destroy(){this._navCubeCanvas&&(this.viewer.localeService.off(this._onUpdated),this.viewer.camera.off(this._onCameraMatrix),this.viewer.camera.off(this._onCameraWorldAxis),this.viewer.camera.perspective.off(this._onCameraFOV),this.viewer.camera.off(this._onCameraProjection),this._navCubeCanvas.removeEventListener("mouseenter",this._onMouseEnter),this._navCubeCanvas.removeEventListener("mouseleave",this._onMouseLeave),this._navCubeCanvas.removeEventListener("mousedown",this._onMouseDown),document.removeEventListener("mousemove",this._onMouseMove),document.removeEventListener("mouseup",this._onMouseUp),this._navCubeCanvas=null,this._cubeTextureCanvas.destroy(),this._cubeTextureCanvas=null,this._onMouseEnter=null,this._onMouseLeave=null,this._onMouseDown=null,this._onMouseMove=null,this._onMouseUp=null),this._navCubeScene.destroy(),this._navCubeScene=null,this._cubeMesh=null,this._shadow=null,super.destroy()}}u.vec3();const lv=new Float64Array([0,0,1]),Av=new Float64Array(4);class hv{constructor(e){this.id=null,this._viewer=e.viewer,this._visible=!1,this._pos=u.vec3(),this._origin=u.vec3(),this._rtcPos=u.vec3(),this._baseDir=u.vec3(),this._rootNode=null,this._displayMeshes=null,this._affordanceMeshes=null,this._ignoreNextSectionPlaneDirUpdate=!1,this._createNodes(),this._bindEvents()}_setSectionPlane(e){this._sectionPlane&&(this._sectionPlane.off(this._onSectionPlanePos),this._sectionPlane.off(this._onSectionPlaneDir),this._onSectionPlanePos=null,this._onSectionPlaneDir=null,this._sectionPlane=null),e&&(this.id=e.id,this._setPos(e.pos),this._setDir(e.dir),this._sectionPlane=e,this._onSectionPlanePos=e.on("pos",(()=>{this._setPos(this._sectionPlane.pos)})),this._onSectionPlaneDir=e.on("dir",(()=>{this._ignoreNextSectionPlaneDirUpdate?this._ignoreNextSectionPlaneDirUpdate=!1:this._setDir(this._sectionPlane.dir)})))}get sectionPlane(){return this._sectionPlane}_setPos(e){this._pos.set(e),j(this._pos,this._origin,this._rtcPos),this._rootNode.origin=this._origin,this._rootNode.position=this._rtcPos}_setDir(e){this._baseDir.set(e),this._rootNode.quaternion=u.vec3PairToQuaternion(lv,e,Av)}_setSectionPlaneDir(e){this._sectionPlane&&(this._ignoreNextSectionPlaneDirUpdate=!0,this._sectionPlane.dir=e)}setVisible(e=!0){if(this._visible!==e){var t;for(t in this._visible=e,this._displayMeshes)this._displayMeshes.hasOwnProperty(t)&&(this._displayMeshes[t].visible=e);if(!e)for(t in this._affordanceMeshes)this._affordanceMeshes.hasOwnProperty(t)&&(this._affordanceMeshes[t].visible=e)}}getVisible(){return this._visible}setCulled(e){var t;for(t in this._displayMeshes)this._displayMeshes.hasOwnProperty(t)&&(this._displayMeshes[t].culled=e);if(!e)for(t in this._affordanceMeshes)this._affordanceMeshes.hasOwnProperty(t)&&(this._affordanceMeshes[t].culled=e)}_createNodes(){const e=!1,t=this._viewer.scene,i=.01;this._rootNode=new es(t,{position:[0,0,0],scale:[5,5,5],isObject:!1});const s=this._rootNode,r={arrowHead:new Dt(s,ji({radiusTop:.001,radiusBottom:.07,radialSegments:32,heightSegments:1,height:.2,openEnded:!1})),arrowHeadBig:new Dt(s,ji({radiusTop:.001,radiusBottom:.09,radialSegments:32,heightSegments:1,height:.25,openEnded:!1})),arrowHeadHandle:new Dt(s,ji({radiusTop:.09,radiusBottom:.09,radialSegments:8,heightSegments:1,height:.37,openEnded:!1})),curve:new Dt(s,gs({radius:.8,tube:i,radialSegments:64,tubeSegments:14,arc:2*Math.PI/4})),curveHandle:new Dt(s,gs({radius:.8,tube:.06,radialSegments:64,tubeSegments:14,arc:2*Math.PI/4})),hoop:new Dt(s,gs({radius:.8,tube:i,radialSegments:64,tubeSegments:8,arc:2*Math.PI})),axis:new Dt(s,ji({radiusTop:i,radiusBottom:i,radialSegments:20,heightSegments:1,height:1,openEnded:!1})),axisHandle:new Dt(s,ji({radiusTop:.08,radiusBottom:.08,radialSegments:20,heightSegments:1,height:1,openEnded:!1}))},o={pickable:new Ut(s,{diffuse:[1,1,0],alpha:0,alphaMode:"blend"}),red:new Ut(s,{diffuse:[1,0,0],emissive:[1,0,0],ambient:[0,0,0],specular:[.6,.6,.3],shininess:80,lineWidth:2}),highlightRed:new Ot(s,{edges:!1,fill:!0,fillColor:[1,0,0],fillAlpha:.6}),green:new Ut(s,{diffuse:[0,1,0],emissive:[0,1,0],ambient:[0,0,0],specular:[.6,.6,.3],shininess:80,lineWidth:2}),highlightGreen:new Ot(s,{edges:!1,fill:!0,fillColor:[0,1,0],fillAlpha:.6}),blue:new Ut(s,{diffuse:[0,0,1],emissive:[0,0,1],ambient:[0,0,0],specular:[.6,.6,.3],shininess:80,lineWidth:2}),highlightBlue:new Ot(s,{edges:!1,fill:!0,fillColor:[0,0,1],fillAlpha:.2}),center:new Ut(s,{diffuse:[0,0,0],emissive:[0,0,0],ambient:[0,0,0],specular:[.6,.6,.3],shininess:80}),highlightBall:new Ot(s,{edges:!1,fill:!0,fillColor:[.5,.5,.5],fillAlpha:.5,vertices:!1}),highlightPlane:new Ot(s,{edges:!0,edgeWidth:3,fill:!1,fillColor:[.5,.5,.5],fillAlpha:.5,vertices:!1})};this._displayMeshes={plane:s.addChild(new Qi(s,{geometry:new Dt(s,{primitive:"triangles",positions:[.5,.5,0,.5,-.5,0,-.5,-.5,0,-.5,.5,0,.5,.5,-0,.5,-.5,-0,-.5,-.5,-0,-.5,.5,-0],indices:[0,1,2,2,3,0]}),material:new Ut(s,{emissive:[0,0,0],diffuse:[0,0,0],backfaces:!0}),opacity:.6,ghosted:!0,ghostMaterial:new Ot(s,{edges:!1,filled:!0,fillColor:[1,1,0],edgeColor:[0,0,0],fillAlpha:.1,backfaces:!0}),pickable:!1,collidable:!0,clippable:!1,visible:!1,scale:[2.4,2.4,1],isObject:!1}),e),planeFrame:s.addChild(new Qi(s,{geometry:new Dt(s,gs({center:[0,0,0],radius:1.7,tube:.02,radialSegments:4,tubeSegments:4,arc:2*Math.PI})),material:new Ut(s,{emissive:[0,0,0],diffuse:[0,0,0],specular:[0,0,0],shininess:0}),highlightMaterial:new Ot(s,{edges:!1,edgeColor:[0,0,0],filled:!0,fillColor:[.8,.8,.8],fillAlpha:1}),pickable:!1,collidable:!1,clippable:!1,visible:!1,scale:[1,1,.1],rotation:[0,0,45],isObject:!1}),e),xCurve:s.addChild(new Qi(s,{geometry:r.curve,material:o.red,matrix:function(){const e=u.rotationMat4v(90*u.DEGTORAD,[0,1,0],u.identityMat4()),t=u.rotationMat4v(270*u.DEGTORAD,[1,0,0],u.identityMat4());return u.mulMat4(t,e,u.identityMat4())}(),pickable:!1,collidable:!0,clippable:!1,backfaces:!0,visible:!1,isObject:!1}),e),xCurveHandle:s.addChild(new Qi(s,{geometry:r.curveHandle,material:o.pickable,matrix:function(){const e=u.rotationMat4v(90*u.DEGTORAD,[0,1,0],u.identityMat4()),t=u.rotationMat4v(270*u.DEGTORAD,[1,0,0],u.identityMat4());return u.mulMat4(t,e,u.identityMat4())}(),pickable:!0,collidable:!0,clippable:!1,backfaces:!0,visible:!1,isObject:!1}),e),xCurveArrow1:s.addChild(new Qi(s,{geometry:r.arrowHead,material:o.red,matrix:function(){const e=u.translateMat4c(0,-.07,-.8,u.identityMat4()),t=u.scaleMat4v([.6,.6,.6],u.identityMat4()),i=u.rotationMat4v(0*u.DEGTORAD,[0,0,1],u.identityMat4());return u.mulMat4(u.mulMat4(e,t,u.identityMat4()),i,u.identityMat4())}(),pickable:!0,collidable:!0,clippable:!1,visible:!1,isObject:!1}),e),xCurveArrow2:s.addChild(new Qi(s,{geometry:r.arrowHead,material:o.red,matrix:function(){const e=u.translateMat4c(0,-.8,-.07,u.identityMat4()),t=u.scaleMat4v([.6,.6,.6],u.identityMat4()),i=u.rotationMat4v(90*u.DEGTORAD,[1,0,0],u.identityMat4());return u.mulMat4(u.mulMat4(e,t,u.identityMat4()),i,u.identityMat4())}(),pickable:!0,collidable:!0,clippable:!1,visible:!1,isObject:!1}),e),yCurve:s.addChild(new Qi(s,{geometry:r.curve,material:o.green,rotation:[-90,0,0],pickable:!1,collidable:!0,clippable:!1,backfaces:!0,visible:!1,isObject:!1}),e),yCurveHandle:s.addChild(new Qi(s,{geometry:r.curveHandle,material:o.pickable,rotation:[-90,0,0],pickable:!0,collidable:!0,clippable:!1,backfaces:!0,visible:!1,isObject:!1}),e),yCurveArrow1:s.addChild(new Qi(s,{geometry:r.arrowHead,material:o.green,matrix:function(){const e=u.translateMat4c(.07,0,-.8,u.identityMat4()),t=u.scaleMat4v([.6,.6,.6],u.identityMat4()),i=u.rotationMat4v(90*u.DEGTORAD,[0,0,1],u.identityMat4());return u.mulMat4(u.mulMat4(e,t,u.identityMat4()),i,u.identityMat4())}(),pickable:!0,collidable:!0,clippable:!1,visible:!1,isObject:!1}),e),yCurveArrow2:s.addChild(new Qi(s,{geometry:r.arrowHead,material:o.green,matrix:function(){const e=u.translateMat4c(.8,0,-.07,u.identityMat4()),t=u.scaleMat4v([.6,.6,.6],u.identityMat4()),i=u.rotationMat4v(90*u.DEGTORAD,[1,0,0],u.identityMat4());return u.mulMat4(u.mulMat4(e,t,u.identityMat4()),i,u.identityMat4())}(),pickable:!0,collidable:!0,clippable:!1,visible:!1,isObject:!1}),e),zCurve:s.addChild(new Qi(s,{geometry:r.curve,material:o.blue,matrix:u.rotationMat4v(180*u.DEGTORAD,[1,0,0],u.identityMat4()),pickable:!1,collidable:!0,clippable:!1,visible:!1,isObject:!1}),e),zCurveHandle:s.addChild(new Qi(s,{geometry:r.curveHandle,material:o.pickable,matrix:u.rotationMat4v(180*u.DEGTORAD,[1,0,0],u.identityMat4()),pickable:!0,collidable:!0,clippable:!1,visible:!1,isObject:!1}),e),zCurveCurveArrow1:s.addChild(new Qi(s,{geometry:r.arrowHead,material:o.blue,matrix:function(){const e=u.translateMat4c(.8,-.07,0,u.identityMat4()),t=u.scaleMat4v([.6,.6,.6],u.identityMat4());return u.mulMat4(e,t,u.identityMat4())}(),pickable:!0,collidable:!0,clippable:!1,visible:!1,isObject:!1}),e),zCurveArrow2:s.addChild(new Qi(s,{geometry:r.arrowHead,material:o.blue,matrix:function(){const e=u.translateMat4c(.05,-.8,0,u.identityMat4()),t=u.scaleMat4v([.6,.6,.6],u.identityMat4()),i=u.rotationMat4v(90*u.DEGTORAD,[0,0,1],u.identityMat4());return u.mulMat4(u.mulMat4(e,t,u.identityMat4()),i,u.identityMat4())}(),pickable:!0,collidable:!0,clippable:!1,visible:!1,isObject:!1}),e),center:s.addChild(new Qi(s,{geometry:new Dt(s,Hi({radius:.05})),material:o.center,pickable:!1,collidable:!0,clippable:!1,visible:!1,isObject:!1}),e),xAxisArrow:s.addChild(new Qi(s,{geometry:r.arrowHead,material:o.red,matrix:function(){const e=u.translateMat4c(0,1.1,0,u.identityMat4()),t=u.rotationMat4v(-90*u.DEGTORAD,[0,0,1],u.identityMat4());return u.mulMat4(t,e,u.identityMat4())}(),pickable:!1,collidable:!0,clippable:!1,visible:!1,isObject:!1}),e),xAxisArrowHandle:s.addChild(new Qi(s,{geometry:r.arrowHeadHandle,material:o.pickable,matrix:function(){const e=u.translateMat4c(0,1.1,0,u.identityMat4()),t=u.rotationMat4v(-90*u.DEGTORAD,[0,0,1],u.identityMat4());return u.mulMat4(t,e,u.identityMat4())}(),pickable:!0,collidable:!0,clippable:!1,visible:!1,isObject:!1}),e),xAxis:s.addChild(new Qi(s,{geometry:r.axis,material:o.red,matrix:function(){const e=u.translateMat4c(0,.5,0,u.identityMat4()),t=u.rotationMat4v(-90*u.DEGTORAD,[0,0,1],u.identityMat4());return u.mulMat4(t,e,u.identityMat4())}(),pickable:!1,collidable:!0,clippable:!1,visible:!1,isObject:!1}),e),xAxisHandle:s.addChild(new Qi(s,{geometry:r.axisHandle,material:o.pickable,matrix:function(){const e=u.translateMat4c(0,.5,0,u.identityMat4()),t=u.rotationMat4v(-90*u.DEGTORAD,[0,0,1],u.identityMat4());return u.mulMat4(t,e,u.identityMat4())}(),pickable:!0,collidable:!0,clippable:!1,visible:!1,isObject:!1}),e),yAxisArrow:s.addChild(new Qi(s,{geometry:r.arrowHead,material:o.green,matrix:function(){const e=u.translateMat4c(0,1.1,0,u.identityMat4()),t=u.rotationMat4v(180*u.DEGTORAD,[1,0,0],u.identityMat4());return u.mulMat4(t,e,u.identityMat4())}(),pickable:!1,collidable:!0,clippable:!1,visible:!1,isObject:!1}),e),yAxisArrowHandle:s.addChild(new Qi(s,{geometry:r.arrowHeadHandle,material:o.pickable,matrix:function(){const e=u.translateMat4c(0,1.1,0,u.identityMat4()),t=u.rotationMat4v(180*u.DEGTORAD,[1,0,0],u.identityMat4());return u.mulMat4(t,e,u.identityMat4())}(),pickable:!0,collidable:!0,clippable:!1,visible:!1,opacity:.2,isObject:!1}),e),yShaft:s.addChild(new Qi(s,{geometry:r.axis,material:o.green,position:[0,-.5,0],pickable:!1,collidable:!0,clippable:!1,visible:!1,isObject:!1}),e),yShaftHandle:s.addChild(new Qi(s,{geometry:r.axisHandle,material:o.pickable,position:[0,-.5,0],pickable:!0,collidable:!0,clippable:!1,visible:!1,isObject:!1}),e),zAxisArrow:s.addChild(new Qi(s,{geometry:r.arrowHead,material:o.blue,matrix:function(){const e=u.translateMat4c(0,1.1,0,u.identityMat4()),t=u.rotationMat4v(-90*u.DEGTORAD,[.8,0,0],u.identityMat4());return u.mulMat4(t,e,u.identityMat4())}(),pickable:!1,collidable:!0,clippable:!1,visible:!1,isObject:!1}),e),zAxisArrowHandle:s.addChild(new Qi(s,{geometry:r.arrowHeadHandle,material:o.pickable,matrix:function(){const e=u.translateMat4c(0,1.1,0,u.identityMat4()),t=u.rotationMat4v(-90*u.DEGTORAD,[.8,0,0],u.identityMat4());return u.mulMat4(t,e,u.identityMat4())}(),pickable:!0,collidable:!0,clippable:!1,visible:!1,isObject:!1}),e),zShaft:s.addChild(new Qi(s,{geometry:r.axis,material:o.blue,matrix:function(){const e=u.translateMat4c(0,.5,0,u.identityMat4()),t=u.rotationMat4v(-90*u.DEGTORAD,[1,0,0],u.identityMat4());return u.mulMat4(t,e,u.identityMat4())}(),clippable:!1,pickable:!1,collidable:!0,visible:!1,isObject:!1}),e),zAxisHandle:s.addChild(new Qi(s,{geometry:r.axisHandle,material:o.pickable,matrix:function(){const e=u.translateMat4c(0,.5,0,u.identityMat4()),t=u.rotationMat4v(-90*u.DEGTORAD,[1,0,0],u.identityMat4());return u.mulMat4(t,e,u.identityMat4())}(),clippable:!1,pickable:!0,collidable:!0,visible:!1,isObject:!1}),e)},this._affordanceMeshes={planeFrame:s.addChild(new Qi(s,{geometry:new Dt(s,gs({center:[0,0,0],radius:2,tube:i,radialSegments:4,tubeSegments:4,arc:2*Math.PI})),material:new Ut(s,{ambient:[1,1,1],diffuse:[0,0,0],emissive:[1,1,0]}),highlighted:!0,highlightMaterial:new Ot(s,{edges:!1,filled:!0,fillColor:[1,1,0],fillAlpha:1}),pickable:!1,collidable:!1,clippable:!1,visible:!1,scale:[1,1,1],rotation:[0,0,45],isObject:!1}),e),xHoop:s.addChild(new Qi(s,{geometry:r.hoop,material:o.red,highlighted:!0,highlightMaterial:o.highlightRed,matrix:function(){const e=u.rotationMat4v(90*u.DEGTORAD,[0,1,0],u.identityMat4()),t=u.rotationMat4v(270*u.DEGTORAD,[1,0,0],u.identityMat4());return u.mulMat4(t,e,u.identityMat4())}(),pickable:!1,collidable:!0,clippable:!1,visible:!1,isObject:!1}),e),yHoop:s.addChild(new Qi(s,{geometry:r.hoop,material:o.green,highlighted:!0,highlightMaterial:o.highlightGreen,rotation:[-90,0,0],pickable:!1,collidable:!0,clippable:!1,visible:!1,isObject:!1}),e),zHoop:s.addChild(new Qi(s,{geometry:r.hoop,material:o.blue,highlighted:!0,highlightMaterial:o.highlightBlue,matrix:u.rotationMat4v(180*u.DEGTORAD,[1,0,0],u.identityMat4()),pickable:!1,collidable:!0,clippable:!1,backfaces:!0,visible:!1,isObject:!1}),e),xAxisArrow:s.addChild(new Qi(s,{geometry:r.arrowHeadBig,material:o.red,matrix:function(){const e=u.translateMat4c(0,1.1,0,u.identityMat4()),t=u.rotationMat4v(-90*u.DEGTORAD,[0,0,1],u.identityMat4());return u.mulMat4(t,e,u.identityMat4())}(),pickable:!1,collidable:!0,clippable:!1,visible:!1,isObject:!1}),e),yAxisArrow:s.addChild(new Qi(s,{geometry:r.arrowHeadBig,material:o.green,matrix:function(){const e=u.translateMat4c(0,1.1,0,u.identityMat4()),t=u.rotationMat4v(180*u.DEGTORAD,[1,0,0],u.identityMat4());return u.mulMat4(t,e,u.identityMat4())}(),pickable:!1,collidable:!0,clippable:!1,visible:!1,isObject:!1}),e),zAxisArrow:s.addChild(new Qi(s,{geometry:r.arrowHeadBig,material:o.blue,matrix:function(){const e=u.translateMat4c(0,1.1,0,u.identityMat4()),t=u.rotationMat4v(-90*u.DEGTORAD,[.8,0,0],u.identityMat4());return u.mulMat4(t,e,u.identityMat4())}(),pickable:!1,collidable:!0,clippable:!1,visible:!1,isObject:!1}),e)}}_bindEvents(){const e=this;var t=!1;const i=-1,s=0,r=1,o=2,n=3,a=4,l=5,A=this._rootNode;var h=null,c=null;const d=u.vec2(),p=u.vec3([1,0,0]),g=u.vec3([0,1,0]),m=u.vec3([0,0,1]),f=this._viewer.scene.canvas.canvas,_=this._viewer.camera,v=this._viewer.scene;{const e=u.vec3([0,0,0]);let t=-1;this._onCameraViewMatrix=v.camera.on("viewMatrix",(()=>{})),this._onCameraProjMatrix=v.camera.on("projMatrix",(()=>{})),this._onSceneTick=v.on("tick",(()=>{const i=Math.abs(u.lenVec3(u.subVec3(v.camera.eye,this._pos,e)));if(i!==t&&"perspective"===_.projection){const e=.07*(Math.tan(_.perspective.fov*u.DEGTORAD)*i);A.scale=[e,e,e],t=i}if("ortho"===_.projection){const e=_.ortho.scale/10;A.scale=[e,e,e],t=i}}))}const b=function(){const e=new Float64Array(2);return function(t){if(t){for(var i=t.target,s=0,r=0;i.offsetParent;)s+=i.offsetLeft,r+=i.offsetTop,i=i.offsetParent;e[0]=t.pageX-s,e[1]=t.pageY-r}else t=window.event,e[0]=t.x,e[1]=t.y;return e}}(),x=function(){const t=u.mat4();return function(i,s){return u.quaternionToMat4(e._rootNode.quaternion,t),u.transformVec3(t,i,s),u.normalizeVec3(s),s}}();var w=function(){const e=u.vec3();return function(t){const i=Math.abs(t[0]);return i>Math.abs(t[1])&&i>Math.abs(t[2])?u.cross3Vec3(t,[0,1,0],e):u.cross3Vec3(t,[1,0,0],e),u.cross3Vec3(e,t,e),u.normalizeVec3(e),e}}();const y=function(){const t=u.vec3(),i=u.vec3(),s=u.vec4();return function(r,o,n){x(r,s);const a=w(s,o,n);B(o,a,t),B(n,a,i),u.subVec3(i,t);const l=u.dotVec3(i,s);e._pos[0]+=s[0]*l,e._pos[1]+=s[1]*l,e._pos[2]+=s[2]*l,e._rootNode.position=e._pos,e._sectionPlane&&(e._sectionPlane.pos=e._pos)}}();var P=function(){const t=u.vec4(),i=u.vec4(),s=u.vec4(),r=u.vec4();return function(o,n,a){x(o,r);if(!(B(n,r,t)&&B(a,r,i))){const e=w(r,n,a);B(n,e,t,1),B(a,e,i,1);var l=u.dotVec3(t,r);t[0]-=l*r[0],t[1]-=l*r[1],t[2]-=l*r[2],l=u.dotVec3(i,r),i[0]-=l*r[0],i[1]-=l*r[1],i[2]-=l*r[2]}u.normalizeVec3(t),u.normalizeVec3(i),l=u.dotVec3(t,i),l=u.clamp(l,-1,1);var A=Math.acos(l)*u.RADTODEG;u.cross3Vec3(t,i,s),u.dotVec3(s,r)<0&&(A=-A),e._rootNode.rotate(o,A),C()}}(),B=function(){const t=u.vec4([0,0,0,1]),i=u.mat4();return function(s,r,o,n){n=n||0,t[0]=s[0]/f.width*2-1,t[1]=-(s[1]/f.height*2-1),t[2]=0,t[3]=1,u.mulMat4(_.projMatrix,_.viewMatrix,i),u.inverseMat4(i),u.transformVec4(i,t,t),u.mulVec4Scalar(t,1/t[3]);var a=_.eye;u.subVec4(t,a,t);const l=e._sectionPlane.pos;var A=-u.dotVec3(l,r)-n,h=u.dotVec3(r,t);if(Math.abs(h)>.005){var c=-(u.dotVec3(r,a)+A)/h;return u.mulVec3Scalar(t,c,o),u.addVec3(o,a),u.subVec3(o,l,o),!0}return!1}}();const C=function(){const t=u.vec3(),i=u.mat4();return function(){e.sectionPlane&&(u.quaternionToMat4(A.quaternion,i),u.transformVec3(i,[0,0,1],t),e._setSectionPlaneDir(t))}}();var M,E=!1;this._onCameraControlHover=this._viewer.cameraControl.on("hoverEnter",(e=>{if(!this._visible)return;if(E)return;var A;t=!1,M&&(M.visible=!1);switch(e.entity.id){case this._displayMeshes.xAxisArrowHandle.id:case this._displayMeshes.xAxisHandle.id:A=this._affordanceMeshes.xAxisArrow,h=s;break;case this._displayMeshes.yAxisArrowHandle.id:case this._displayMeshes.yShaftHandle.id:A=this._affordanceMeshes.yAxisArrow,h=r;break;case this._displayMeshes.zAxisArrowHandle.id:case this._displayMeshes.zAxisHandle.id:A=this._affordanceMeshes.zAxisArrow,h=o;break;case this._displayMeshes.xCurveHandle.id:A=this._affordanceMeshes.xHoop,h=n;break;case this._displayMeshes.yCurveHandle.id:A=this._affordanceMeshes.yHoop,h=a;break;case this._displayMeshes.zCurveHandle.id:A=this._affordanceMeshes.zHoop,h=l;break;default:return void(h=i)}A&&(A.visible=!0),M=A,t=!0})),this._onCameraControlHoverLeave=this._viewer.cameraControl.on("hoverOutEntity",(e=>{this._visible&&(M&&(M.visible=!1),M=null,h=i)})),f.addEventListener("mousedown",this._canvasMouseDownListener=e=>{if(e.preventDefault(),this._visible&&t&&(this._viewer.cameraControl.pointerEnabled=!1,1===e.which)){E=!0;var i=b(e);c=h,d[0]=i[0],d[1]=i[1]}}),f.addEventListener("mousemove",this._canvasMouseMoveListener=e=>{if(!this._visible)return;if(!E)return;var t=b(e);const i=t[0],A=t[1];switch(c){case s:y(p,d,t);break;case r:y(g,d,t);break;case o:y(m,d,t);break;case n:P(p,d,t);break;case a:P(g,d,t);break;case l:P(m,d,t)}d[0]=i,d[1]=A}),f.addEventListener("mouseup",this._canvasMouseUpListener=e=>{this._visible&&(this._viewer.cameraControl.pointerEnabled=!0,E&&(e.which,E=!1,t=!1))}),f.addEventListener("wheel",this._canvasWheelListener=e=>{if(this._visible)Math.max(-1,Math.min(1,40*-e.deltaY))})}_destroy(){this._unbindEvents(),this._destroyNodes()}_unbindEvents(){const e=this._viewer,t=e.scene,i=t.canvas.canvas,s=e.camera,r=e.cameraControl;t.off(this._onSceneTick),i.removeEventListener("mousedown",this._canvasMouseDownListener),i.removeEventListener("mousemove",this._canvasMouseMoveListener),i.removeEventListener("mouseup",this._canvasMouseUpListener),i.removeEventListener("wheel",this._canvasWheelListener),s.off(this._onCameraViewMatrix),s.off(this._onCameraProjMatrix),r.off(this._onCameraControlHover),r.off(this._onCameraControlHoverLeave)}_destroyNodes(){this._setSectionPlane(null),this._rootNode.destroy(),this._displayMeshes={},this._affordanceMeshes={}}}class cv{constructor(e,t,i){this.id=i.id,this._sectionPlane=i,this._mesh=new Qi(t,{id:i.id,geometry:new Dt(t,St({xSize:.5,ySize:.5,zSize:.001})),material:new Ut(t,{emissive:[1,1,1],diffuse:[0,0,0],backfaces:!1}),edgeMaterial:new Qt(t,{edgeColor:[0,0,0],edgeAlpha:1,edgeWidth:1}),highlightMaterial:new Ot(t,{fill:!0,fillColor:[.5,1,.5],fillAlpha:.7,edges:!0,edgeColor:[0,0,0],edgeAlpha:1,edgeWidth:1}),selectedMaterial:new Ot(t,{fill:!0,fillColor:[0,0,1],fillAlpha:.7,edges:!0,edgeColor:[1,0,0],edgeAlpha:1,edgeWidth:1}),highlighted:!0,scale:[3,3,3],position:[0,0,0],rotation:[0,0,0],opacity:.3,edges:!0});{const e=u.vec3([0,0,0]),t=u.vec3(),i=u.vec3([0,0,1]),s=u.vec4(4),r=u.vec3(),o=()=>{const o=this._sectionPlane.scene.center,n=[-this._sectionPlane.dir[0],-this._sectionPlane.dir[1],-this._sectionPlane.dir[2]];u.subVec3(o,this._sectionPlane.pos,e);const a=-u.dotVec3(n,e);u.normalizeVec3(n),u.mulVec3Scalar(n,a,t);const l=u.vec3PairToQuaternion(i,this._sectionPlane.dir,s);r[0]=.1*t[0],r[1]=.1*t[1],r[2]=.1*t[2],this._mesh.quaternion=l,this._mesh.position=r};this._onSectionPlanePos=this._sectionPlane.on("pos",o),this._onSectionPlaneDir=this._sectionPlane.on("dir",o)}this._highlighted=!1,this._selected=!1}setHighlighted(e){this._highlighted=!!e,this._mesh.highlighted=this._highlighted,this._mesh.highlightMaterial.fillColor=e?[0,.7,0]:[0,0,0]}getHighlighted(){return this._highlighted}setSelected(e){this._selected=!!e,this._mesh.edgeMaterial.edgeWidth=e?3:1,this._mesh.highlightMaterial.edgeWidth=e?3:1}getSelected(){return this._selected}destroy(){this._sectionPlane.off(this._onSectionPlanePos),this._sectionPlane.off(this._onSectionPlaneDir),this._mesh.destroy()}}class uv{constructor(e,t){if(!(t.onHoverEnterPlane&&t.onHoverLeavePlane&&t.onClickedNothing&&t.onClickedPlane))throw"Missing config(s): onHoverEnterPlane, onHoverLeavePlane, onClickedNothing || onClickedPlane";this.plugin=e,this._viewer=e.viewer,this._onHoverEnterPlane=t.onHoverEnterPlane,this._onHoverLeavePlane=t.onHoverLeavePlane,this._onClickedNothing=t.onClickedNothing,this._onClickedPlane=t.onClickedPlane,this._visible=!0,this._planes={},this._canvas=t.overviewCanvas,this._scene=new Yt(this._viewer,{canvasId:this._canvas.id,transparent:!0}),this._scene.clearLights(),new _t(this._scene,{dir:[.4,-.4,.8],color:[.8,1,1],intensity:1,space:"view"}),new _t(this._scene,{dir:[-.8,-.3,-.4],color:[.8,.8,.8],intensity:1,space:"view"}),new _t(this._scene,{dir:[.8,-.6,-.8],color:[1,1,1],intensity:1,space:"view"}),this._scene.camera,this._scene.camera.perspective.fov=70,this._zUp=!1;{const e=this._scene.camera,t=u.rotationMat4c(-90*u.DEGTORAD,1,0,0),i=u.vec3(),s=u.vec3(),r=u.vec3();this._synchCamera=()=>{const o=this._viewer.camera.eye,n=this._viewer.camera.look,a=this._viewer.camera.up;u.mulVec3Scalar(u.normalizeVec3(u.subVec3(o,n,i)),7),this._zUp?(u.transformVec3(t,i,s),u.transformVec3(t,a,r),e.look=[0,0,0],e.eye=u.transformVec3(t,i,s),e.up=u.transformPoint3(t,a,r)):(e.look=[0,0,0],e.eye=i,e.up=a)}}this._onViewerCameraMatrix=this._viewer.camera.on("matrix",this._synchCamera),this._onViewerCameraWorldAxis=this._viewer.camera.on("worldAxis",this._synchCamera),this._onViewerCameraFOV=this._viewer.camera.perspective.on("fov",(e=>{this._scene.camera.perspective.fov=e}));var i=null;this._onInputMouseMove=this._scene.input.on("mousemove",(e=>{const t=this._scene.pick({canvasPos:e});if(t){if(!i||t.entity.id!==i.id){if(i){this._planes[i.id]&&this._onHoverLeavePlane(i.id)}i=t.entity;this._planes[i.id]&&this._onHoverEnterPlane(i.id)}}else i&&(this._onHoverLeavePlane(i.id),i=null)})),this._scene.canvas.canvas.addEventListener("mouseup",this._onCanvasMouseUp=()=>{if(i){this._planes[i.id]&&this._onClickedPlane(i.id)}else this._onClickedNothing()}),this._scene.canvas.canvas.addEventListener("mouseout",this._onCanvasMouseOut=()=>{i&&(this._onHoverLeavePlane(i.id),i=null)}),this.setVisible(t.overviewVisible)}addSectionPlane(e){this._planes[e.id]=new cv(this,this._scene,e)}setPlaneHighlighted(e,t){const i=this._planes[e];i&&i.setHighlighted(t)}setPlaneSelected(e,t){const i=this._planes[e];i&&i.setSelected(t)}removeSectionPlane(e){const t=this._planes[e.id];t&&(t.destroy(),delete this._planes[e.id])}setVisible(e=!0){this._visible=e,this._canvas.style.visibility=e?"visible":"hidden"}getVisible(){return this._visible}destroy(){this._viewer.camera.off(this._onViewerCameraMatrix),this._viewer.camera.off(this._onViewerCameraWorldAxis),this._viewer.camera.perspective.off(this._onViewerCameraFOV),this._scene.input.off(this._onInputMouseMove),this._scene.canvas.canvas.removeEventListener("mouseup",this._onCanvasMouseUp),this._scene.canvas.canvas.removeEventListener("mouseout",this._onCanvasMouseOut),this._scene.destroy()}}const dv=u.AABB3(),pv=u.vec3();class gv extends N{constructor(e,t={}){if(super("SectionPlanes",e),this._freeControls=[],this._sectionPlanes=e.scene.sectionPlanes,this._controls={},this._shownControlId=null,null!==t.overviewCanvasId&&void 0!==t.overviewCanvasId){const e=document.getElementById(t.overviewCanvasId);e?this._overview=new uv(this,{overviewCanvas:e,visible:t.overviewVisible,onHoverEnterPlane:e=>{this._overview.setPlaneHighlighted(e,!0)},onHoverLeavePlane:e=>{this._overview.setPlaneHighlighted(e,!1)},onClickedPlane:e=>{if(this.getShownControl()===e)return void this.hideControl();this.showControl(e);const t=this.sectionPlanes[e].pos;dv.set(this.viewer.scene.aabb),u.getAABB3Center(dv,pv),dv[0]+=t[0]-pv[0],dv[1]+=t[1]-pv[1],dv[2]+=t[2]-pv[2],dv[3]+=t[0]-pv[0],dv[4]+=t[1]-pv[1],dv[5]+=t[2]-pv[2],this.viewer.cameraFlight.flyTo({aabb:dv,fitFOV:65})},onClickedNothing:()=>{this.hideControl()}}):this.warn("Can't find overview canvas: '"+t.overviewCanvasId+"' - will create plugin without overview")}this._onSceneSectionPlaneCreated=e.scene.on("sectionPlaneCreated",(e=>{this._sectionPlaneCreated(e)}))}setOverviewVisible(e){this._overview&&this._overview.setVisible(e)}getOverviewVisible(){if(this._overview)return this._overview.getVisible()}get sectionPlanes(){return this._sectionPlanes}createSectionPlane(e={}){void 0!==e.id&&null!==e.id&&this.viewer.scene.components[e.id]&&(this.error("Viewer component with this ID already exists: "+e.id),delete e.id);return new zi(this.viewer.scene,{id:e.id,pos:e.pos,dir:e.dir,active:!0})}_sectionPlaneCreated(e){const t=this._freeControls.length>0?this._freeControls.pop():new hv(this);t._setSectionPlane(e),t.setVisible(!1),this._controls[e.id]=t,this._overview&&this._overview.addSectionPlane(e),e.once("destroyed",(()=>{this._sectionPlaneDestroyed(e)}))}flipSectionPlanes(){const e=this.viewer.scene.sectionPlanes;for(let t in e){e[t].flipDir()}}showControl(e){const t=this._controls[e];t?(this.hideControl(),t.setVisible(!0),this._overview&&this._overview.setPlaneSelected(e,!0),this._shownControlId=e):this.error("Control not found: "+e)}getShownControl(){return this._shownControlId}hideControl(){for(var e in this._controls)this._controls.hasOwnProperty(e)&&(this._controls[e].setVisible(!1),this._overview&&this._overview.setPlaneSelected(e,!1));this._shownControlId=null}destroySectionPlane(e){var t=this.viewer.scene.sectionPlanes[e];t?(this._sectionPlaneDestroyed(t),t.destroy(),e===this._shownControlId&&(this._shownControlId=null)):this.error("SectionPlane not found: "+e)}_sectionPlaneDestroyed(e){this._overview&&this._overview.removeSectionPlane(e);const t=this._controls[e.id];t&&(t.setVisible(!1),t._setSectionPlane(null),delete this._controls[e.id],this._freeControls.push(t))}clear(){const e=Object.keys(this._sectionPlanes);for(var t=0,i=e.length;t0){const i=document.createElement("a");i.href="#",i.id=`switch-${e.nodeId}`,i.textContent="+",i.classList.add("plus"),t&&i.addEventListener("click",t),o.appendChild(i)}const n=document.createElement("input");n.id=`checkbox-${e.nodeId}`,n.type="checkbox",n.checked=e.checked,n.style["pointer-events"]="all",i&&n.addEventListener("change",i),o.appendChild(n);const a=document.createElement("span");return a.textContent=e.title,o.appendChild(a),s&&(a.oncontextmenu=s),r&&(a.onclick=r),o}createDisabledNodeElement(e){const t=document.createElement("li"),i=document.createElement("a");i.href="#",i.textContent="!",i.classList.add("warn"),i.classList.add("warning"),t.appendChild(i);const s=document.createElement("span");return s.textContent=e,t.appendChild(s),t}addChildren(e,t){const i=document.createElement("ul");t.forEach((e=>{i.appendChild(e)})),e.parentElement.appendChild(i)}expand(e,t,i){e.classList.remove("plus"),e.classList.add("minus"),e.textContent="-",e.removeEventListener("click",t),e.addEventListener("click",i)}collapse(e,t,i){if(!e)return;const s=e.parentElement;if(!s)return;const r=s.querySelector("ul");r&&(s.removeChild(r),e.classList.remove("minus"),e.classList.add("plus"),e.textContent="+",e.removeEventListener("click",i),e.addEventListener("click",t))}isExpanded(e){return void 0!==e.parentElement.getElementsByTagName("li")[0]}getId(e){return e.parentElement.id}getIdFromCheckbox(e){return e.id.replace("checkbox-","")}getSwitchElement(e){return document.getElementById(`switch-${e}`)}isChecked(e){return e.checked}setCheckbox(e,t){const i=document.getElementById(`checkbox-${e}`);i&&t!==i.checked&&(i.checked=t)}setXRayed(e,t){const i=document.getElementById(e);i&&(t?i.classList.add("xrayed-node"):i.classList.remove("xrayed-node"))}setHighlighted(e,t){const i=document.getElementById(e);i&&(t?(i.scrollIntoView({block:"center"}),i.classList.add("highlighted-node")):i.classList.remove("highlighted-node"))}}const fv=[];class _v extends N{constructor(e,t={}){super("TreeViewPlugin",e),this.errors=[],this.valid=!0;const i=t.containerElement||document.getElementById(t.containerElementId);if(i instanceof HTMLElement){for(let e=0;;e++)if(!fv[e]){fv[e]=this,this._index=e,this._id=`tree-${e}`;break}if(this._containerElement=i,this._metaModels={},this._autoAddModels=!1!==t.autoAddModels,this._autoExpandDepth=t.autoExpandDepth||0,this._sortNodes=!1!==t.sortNodes,this._viewer=e,this._rootElement=null,this._muteSceneEvents=!1,this._muteTreeEvents=!1,this._rootNodes=[],this._objectNodes={},this._nodeNodes={},this._rootNames={},this._sortNodes=t.sortNodes,this._pruneEmptyNodes=t.pruneEmptyNodes,this._showListItemElementId=null,this._renderService=t.renderService||new mv,!this._renderService)throw new Error("TreeViewPlugin: no render service set");if(this._containerElement.oncontextmenu=e=>{e.preventDefault()},this._onObjectVisibility=this._viewer.scene.on("objectVisibility",(e=>{if(this._muteSceneEvents)return;const t=e.id,i=this._objectNodes[t];if(!i)return;const s=e.visible;if(!(s!==i.checked))return;this._muteTreeEvents=!0,i.checked=s,s?i.numVisibleEntities++:i.numVisibleEntities--,this._renderService.setCheckbox(i.nodeId,s);let r=i.parent;for(;r;)r.checked=s,s?r.numVisibleEntities++:r.numVisibleEntities--,this._renderService.setCheckbox(r.nodeId,r.numVisibleEntities>0),r=r.parent;this._muteTreeEvents=!1})),this._onObjectXrayed=this._viewer.scene.on("objectXRayed",(e=>{if(this._muteSceneEvents)return;const t=e.id,i=this._objectNodes[t];if(!i)return;this._muteTreeEvents=!0;const s=e.xrayed;s!==i.xrayed&&(i.xrayed=s,this._renderService.setXRayed(i.nodeId,s),this._muteTreeEvents=!1)})),this._switchExpandHandler=e=>{e.preventDefault(),e.stopPropagation();const t=e.target;this._expandSwitchElement(t)},this._switchCollapseHandler=e=>{e.preventDefault(),e.stopPropagation();const t=e.target;this._collapseSwitchElement(t)},this._checkboxChangeHandler=e=>{if(this._muteTreeEvents)return;this._muteSceneEvents=!0;const t=e.target,i=this._renderService.isChecked(t),s=this._renderService.getIdFromCheckbox(t),r=this._nodeNodes[s],o=this._viewer.scene.objects;let n=0;this._withNodeTree(r,(e=>{const t=e.objectId,s=o[t],r=0===e.children.length;e.numVisibleEntities=i?e.numEntities:0,r&&i!==e.checked&&n++,e.checked=i,this._renderService.setCheckbox(e.nodeId,i),s&&(s.visible=i)}));let a=r.parent;for(;a;)a.checked=i,i?a.numVisibleEntities+=n:a.numVisibleEntities-=n,this._renderService.setCheckbox(a.nodeId,a.numVisibleEntities>0),a=a.parent;this._muteSceneEvents=!1},this._hierarchy=t.hierarchy||"containment",this._autoExpandDepth=t.autoExpandDepth||0,this._autoAddModels){const e=Object.keys(this.viewer.metaScene.metaModels);for(let t=0,i=e.length;t{this.viewer.metaScene.metaModels[e]&&this.addModel(e)}))}this.hierarchy=t.hierarchy}else this.error("Mandatory config expected: valid containerElementId or containerElement")}set hierarchy(e){"containment"!==(e=e||"containment")&&"storeys"!==e&&"types"!==e&&(this.error("Unsupported value for `hierarchy' - defaulting to 'containment'"),e="containment"),this._hierarchy!==e&&(this._hierarchy=e,this._createNodes())}get hierarchy(){return this._hierarchy}addModel(e,t={}){if(!this._containerElement)return;const i=this.viewer.scene.models[e];if(!i)throw"Model not found: "+e;const s=this.viewer.metaScene.metaModels[e];s?this._metaModels[e]?this.warn("Model already added: "+e):(this._metaModels[e]=s,t&&t.rootName&&(this._rootNames[e]=t.rootName),i.on("destroyed",(()=>{this.removeModel(i.id)})),this._createNodes()):this.error("MetaModel not found: "+e)}removeModel(e){if(!this._containerElement)return;this._metaModels[e]&&(this._rootNames[e]&&delete this._rootNames[e],delete this._metaModels[e],this._createNodes())}showNode(e){this.unShowNode();const t=this._objectNodes[e];if(!t)return;const i=t.nodeId,s=this._renderService.getSwitchElement(i);if(s)return this._expandSwitchElement(s),s.scrollIntoView(),!0;const r=[];r.unshift(t);let o=t.parent;for(;o;)r.unshift(o),o=o.parent;for(let e=0,t=r.length;e{if(s===e)return;const r=this._renderService.getSwitchElement(i.nodeId);if(r){this._expandSwitchElement(r);const e=i.children;for(var o=0,n=e.length;o0;return this.valid}_validateMetaModelForStoreysHierarchy(e=0,t,i){return!0}_createEnabledNodes(){switch(this._pruneEmptyNodes&&this._findEmptyNodes(),this._hierarchy){case"storeys":this._createStoreysNodes(),0===this._rootNodes.length&&this.error("Failed to build storeys hierarchy");break;case"types":this._createTypesNodes();break;default:this._createContainmentNodes()}this._sortNodes&&this._doSortNodes(),this._synchNodesToEntities(),this._createTrees(),this.expandToDepth(this._autoExpandDepth)}_createDisabledNodes(){const e=this._renderService.createRootNode();this._rootElement=e,this._containerElement.appendChild(e);const t=this._viewer.metaScene.rootMetaObjects;for(let i in t){const s=t[i],r=s.type,o=s.name,n=o&&""!==o&&"Undefined"!==o&&"Default"!==o?o:r,a=this._renderService.createDisabledNodeElement(n);e.appendChild(a)}}_findEmptyNodes(){const e=this._viewer.metaScene.rootMetaObjects;for(let t in e)this._findEmptyNodes2(e[t])}_findEmptyNodes2(e,t=0){const i=this.viewer.scene,s=e.children,r=e.id,o=i.objects[r];if(e._countEntities=0,o&&e._countEntities++,s)for(let t=0,i=s.length;t{e.aabb&&r.aabb||(e.aabb||(e.aabb=t.getAABB(s.getObjectIDsInSubtree(e.objectId))),r.aabb||(r.aabb=t.getAABB(s.getObjectIDsInSubtree(r.objectId))));let o=0;return o=i.xUp?0:i.yUp?1:2,e.aabb[o]>r.aabb[o]?-1:e.aabb[o]s?1:0}_synchNodesToEntities(){const e=Object.keys(this.viewer.metaScene.metaObjects),t=this._viewer.metaScene.metaObjects,i=this._viewer.scene.objects;for(let s=0,r=e.length;sthis._createNodeElement(e))),t=this._renderService.createRootNode();e.forEach((e=>{t.appendChild(e)})),this._containerElement.appendChild(t),this._rootElement=t}_createNodeElement(e){return this._renderService.createNodeElement(e,this._switchExpandHandler,this._checkboxChangeHandler,(t=>{this.fire("contextmenu",{event:t,viewer:this._viewer,treeViewPlugin:this,treeViewNode:e}),t.preventDefault()}),(t=>{this.fire("nodeTitleClicked",{event:t,viewer:this._viewer,treeViewPlugin:this,treeViewNode:e}),t.preventDefault()}))}_expandSwitchElement(e){if(this._renderService.isExpanded(e))return;const t=this._renderService.getId(e),i=this._nodeNodes[t].children.map((e=>this._createNodeElement(e)));this._renderService.addChildren(e,i),this._renderService.expand(e,this._switchExpandHandler,this._switchCollapseHandler)}_collapseNode(e){const t=this._renderService.getSwitchElement(e);this._collapseSwitchElement(t)}_collapseSwitchElement(e){this._renderService.collapse(e,this._switchExpandHandler,this._switchCollapseHandler)}}class vv{constructor(){}getManifest(e,t,i){f.loadJSON(e,(e=>{t(e)}),(function(e){i(e)}))}getMetaModel(e,t,i){f.loadJSON(e,(e=>{t(e)}),(function(e){i(e)}))}getXKT(e,t,i){var s=()=>{};t=t||s,i=i||s;const r=e.match(/^data:(.*?)(;base64)?,(.*)$/);if(r){const e=!!r[2];var o=r[3];o=window.decodeURIComponent(o),e&&(o=window.atob(o));try{const e=new ArrayBuffer(o.length),i=new Uint8Array(e);for(var n=0;n=0;)e[t]=0}const i=new Uint8Array([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0]),s=new Uint8Array([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13]),r=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]),o=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),n=new Array(576);t(n);const a=new Array(60);t(a);const l=new Array(512);t(l);const A=new Array(256);t(A);const h=new Array(29);t(h);const c=new Array(30);function u(e,t,i,s,r){this.static_tree=e,this.extra_bits=t,this.extra_base=i,this.elems=s,this.max_length=r,this.has_stree=e&&e.length}let d,p,g;function m(e,t){this.dyn_tree=e,this.max_code=0,this.stat_desc=t}t(c);const f=e=>e<256?l[e]:l[256+(e>>>7)],_=(e,t)=>{e.pending_buf[e.pending++]=255&t,e.pending_buf[e.pending++]=t>>>8&255},v=(e,t,i)=>{e.bi_valid>16-i?(e.bi_buf|=t<>16-e.bi_valid,e.bi_valid+=i-16):(e.bi_buf|=t<{v(e,i[2*t],i[2*t+1])},x=(e,t)=>{let i=0;do{i|=1&e,e>>>=1,i<<=1}while(--t>0);return i>>>1},w=(e,t,i)=>{const s=new Array(16);let r,o,n=0;for(r=1;r<=15;r++)n=n+i[r-1]<<1,s[r]=n;for(o=0;o<=t;o++){let t=e[2*o+1];0!==t&&(e[2*o]=x(s[t]++,t))}},y=e=>{let t;for(t=0;t<286;t++)e.dyn_ltree[2*t]=0;for(t=0;t<30;t++)e.dyn_dtree[2*t]=0;for(t=0;t<19;t++)e.bl_tree[2*t]=0;e.dyn_ltree[512]=1,e.opt_len=e.static_len=0,e.sym_next=e.matches=0},P=e=>{e.bi_valid>8?_(e,e.bi_buf):e.bi_valid>0&&(e.pending_buf[e.pending++]=e.bi_buf),e.bi_buf=0,e.bi_valid=0},B=(e,t,i,s)=>{const r=2*t,o=2*i;return e[r]{const s=e.heap[i];let r=i<<1;for(;r<=e.heap_len&&(r{let o,n,a,l,u=0;if(0!==e.sym_next)do{o=255&e.pending_buf[e.sym_buf+u++],o+=(255&e.pending_buf[e.sym_buf+u++])<<8,n=e.pending_buf[e.sym_buf+u++],0===o?b(e,n,t):(a=A[n],b(e,a+256+1,t),l=i[a],0!==l&&(n-=h[a],v(e,n,l)),o--,a=f(o),b(e,a,r),l=s[a],0!==l&&(o-=c[a],v(e,o,l)))}while(u{const i=t.dyn_tree,s=t.stat_desc.static_tree,r=t.stat_desc.has_stree,o=t.stat_desc.elems;let n,a,l,A=-1;for(e.heap_len=0,e.heap_max=573,n=0;n>1;n>=1;n--)C(e,i,n);l=o;do{n=e.heap[1],e.heap[1]=e.heap[e.heap_len--],C(e,i,1),a=e.heap[1],e.heap[--e.heap_max]=n,e.heap[--e.heap_max]=a,i[2*l]=i[2*n]+i[2*a],e.depth[l]=(e.depth[n]>=e.depth[a]?e.depth[n]:e.depth[a])+1,i[2*n+1]=i[2*a+1]=l,e.heap[1]=l++,C(e,i,1)}while(e.heap_len>=2);e.heap[--e.heap_max]=e.heap[1],((e,t)=>{const i=t.dyn_tree,s=t.max_code,r=t.stat_desc.static_tree,o=t.stat_desc.has_stree,n=t.stat_desc.extra_bits,a=t.stat_desc.extra_base,l=t.stat_desc.max_length;let A,h,c,u,d,p,g=0;for(u=0;u<=15;u++)e.bl_count[u]=0;for(i[2*e.heap[e.heap_max]+1]=0,A=e.heap_max+1;A<573;A++)h=e.heap[A],u=i[2*i[2*h+1]+1]+1,u>l&&(u=l,g++),i[2*h+1]=u,h>s||(e.bl_count[u]++,d=0,h>=a&&(d=n[h-a]),p=i[2*h],e.opt_len+=p*(u+d),o&&(e.static_len+=p*(r[2*h+1]+d)));if(0!==g){do{for(u=l-1;0===e.bl_count[u];)u--;e.bl_count[u]--,e.bl_count[u+1]+=2,e.bl_count[l]--,g-=2}while(g>0);for(u=l;0!==u;u--)for(h=e.bl_count[u];0!==h;)c=e.heap[--A],c>s||(i[2*c+1]!==u&&(e.opt_len+=(u-i[2*c+1])*i[2*c],i[2*c+1]=u),h--)}})(e,t),w(i,A,e.bl_count)},F=(e,t,i)=>{let s,r,o=-1,n=t[1],a=0,l=7,A=4;for(0===n&&(l=138,A=3),t[2*(i+1)+1]=65535,s=0;s<=i;s++)r=n,n=t[2*(s+1)+1],++a{let s,r,o=-1,n=t[1],a=0,l=7,A=4;for(0===n&&(l=138,A=3),s=0;s<=i;s++)if(r=n,n=t[2*(s+1)+1],!(++a{v(e,0+(s?1:0),3),P(e),_(e,i),_(e,~i),i&&e.pending_buf.set(e.window.subarray(t,t+i),e.pending),e.pending+=i};var T={_tr_init:e=>{D||((()=>{let e,t,o,m,f;const _=new Array(16);for(o=0,m=0;m<28;m++)for(h[m]=o,e=0;e<1<>=7;m<30;m++)for(c[m]=f<<7,e=0;e<1<{let r,l,A=0;e.level>0?(2===e.strm.data_type&&(e.strm.data_type=(e=>{let t,i=4093624447;for(t=0;t<=31;t++,i>>>=1)if(1&i&&0!==e.dyn_ltree[2*t])return 0;if(0!==e.dyn_ltree[18]||0!==e.dyn_ltree[20]||0!==e.dyn_ltree[26])return 1;for(t=32;t<256;t++)if(0!==e.dyn_ltree[2*t])return 1;return 0})(e)),E(e,e.l_desc),E(e,e.d_desc),A=(e=>{let t;for(F(e,e.dyn_ltree,e.l_desc.max_code),F(e,e.dyn_dtree,e.d_desc.max_code),E(e,e.bl_desc),t=18;t>=3&&0===e.bl_tree[2*o[t]+1];t--);return e.opt_len+=3*(t+1)+5+5+4,t})(e),r=e.opt_len+3+7>>>3,l=e.static_len+3+7>>>3,l<=r&&(r=l)):r=l=i+5,i+4<=r&&-1!==t?S(e,t,i,s):4===e.strategy||l===r?(v(e,2+(s?1:0),3),M(e,n,a)):(v(e,4+(s?1:0),3),((e,t,i,s)=>{let r;for(v(e,t-257,5),v(e,i-1,5),v(e,s-4,4),r=0;r(e.pending_buf[e.sym_buf+e.sym_next++]=t,e.pending_buf[e.sym_buf+e.sym_next++]=t>>8,e.pending_buf[e.sym_buf+e.sym_next++]=i,0===t?e.dyn_ltree[2*i]++:(e.matches++,t--,e.dyn_ltree[2*(A[i]+256+1)]++,e.dyn_dtree[2*f(t)]++),e.sym_next===e.sym_end),_tr_align:e=>{v(e,2,3),b(e,256,n),(e=>{16===e.bi_valid?(_(e,e.bi_buf),e.bi_buf=0,e.bi_valid=0):e.bi_valid>=8&&(e.pending_buf[e.pending++]=255&e.bi_buf,e.bi_buf>>=8,e.bi_valid-=8)})(e)}},R=(e,t,i,s)=>{let r=65535&e|0,o=e>>>16&65535|0,n=0;for(;0!==i;){n=i>2e3?2e3:i,i-=n;do{r=r+t[s++]|0,o=o+r|0}while(--n);r%=65521,o%=65521}return r|o<<16|0};const L=new Uint32Array((()=>{let e,t=[];for(var i=0;i<256;i++){e=i;for(var s=0;s<8;s++)e=1&e?3988292384^e>>>1:e>>>1;t[i]=e}return t})());var U=(e,t,i,s)=>{const r=L,o=s+i;e^=-1;for(let i=s;i>>8^r[255&(e^t[i])];return-1^e},k={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"},O={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_MEM_ERROR:-4,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8};const{_tr_init:N,_tr_stored_block:Q,_tr_flush_block:V,_tr_tally:j,_tr_align:H}=T,{Z_NO_FLUSH:z,Z_PARTIAL_FLUSH:G,Z_FULL_FLUSH:W,Z_FINISH:K,Z_BLOCK:X,Z_OK:Y,Z_STREAM_END:q,Z_STREAM_ERROR:Z,Z_DATA_ERROR:J,Z_BUF_ERROR:$,Z_DEFAULT_COMPRESSION:ee,Z_FILTERED:te,Z_HUFFMAN_ONLY:ie,Z_RLE:se,Z_FIXED:re,Z_DEFAULT_STRATEGY:oe,Z_UNKNOWN:ne,Z_DEFLATED:ae}=O,le=258,Ae=262,he=42,ce=113,ue=666,de=(e,t)=>(e.msg=k[t],t),pe=e=>2*e-(e>4?9:0),ge=e=>{let t=e.length;for(;--t>=0;)e[t]=0},me=e=>{let t,i,s,r=e.w_size;t=e.hash_size,s=t;do{i=e.head[--s],e.head[s]=i>=r?i-r:0}while(--t);t=r,s=t;do{i=e.prev[--s],e.prev[s]=i>=r?i-r:0}while(--t)};let fe=(e,t,i)=>(t<{const t=e.state;let i=t.pending;i>e.avail_out&&(i=e.avail_out),0!==i&&(e.output.set(t.pending_buf.subarray(t.pending_out,t.pending_out+i),e.next_out),e.next_out+=i,t.pending_out+=i,e.total_out+=i,e.avail_out-=i,t.pending-=i,0===t.pending&&(t.pending_out=0))},ve=(e,t)=>{V(e,e.block_start>=0?e.block_start:-1,e.strstart-e.block_start,t),e.block_start=e.strstart,_e(e.strm)},be=(e,t)=>{e.pending_buf[e.pending++]=t},xe=(e,t)=>{e.pending_buf[e.pending++]=t>>>8&255,e.pending_buf[e.pending++]=255&t},we=(e,t,i,s)=>{let r=e.avail_in;return r>s&&(r=s),0===r?0:(e.avail_in-=r,t.set(e.input.subarray(e.next_in,e.next_in+r),i),1===e.state.wrap?e.adler=R(e.adler,t,r,i):2===e.state.wrap&&(e.adler=U(e.adler,t,r,i)),e.next_in+=r,e.total_in+=r,r)},ye=(e,t)=>{let i,s,r=e.max_chain_length,o=e.strstart,n=e.prev_length,a=e.nice_match;const l=e.strstart>e.w_size-Ae?e.strstart-(e.w_size-Ae):0,A=e.window,h=e.w_mask,c=e.prev,u=e.strstart+le;let d=A[o+n-1],p=A[o+n];e.prev_length>=e.good_match&&(r>>=2),a>e.lookahead&&(a=e.lookahead);do{if(i=t,A[i+n]===p&&A[i+n-1]===d&&A[i]===A[o]&&A[++i]===A[o+1]){o+=2,i++;do{}while(A[++o]===A[++i]&&A[++o]===A[++i]&&A[++o]===A[++i]&&A[++o]===A[++i]&&A[++o]===A[++i]&&A[++o]===A[++i]&&A[++o]===A[++i]&&A[++o]===A[++i]&&on){if(e.match_start=t,n=s,s>=a)break;d=A[o+n-1],p=A[o+n]}}}while((t=c[t&h])>l&&0!=--r);return n<=e.lookahead?n:e.lookahead},Pe=e=>{const t=e.w_size;let i,s,r;do{if(s=e.window_size-e.lookahead-e.strstart,e.strstart>=t+(t-Ae)&&(e.window.set(e.window.subarray(t,t+t-s),0),e.match_start-=t,e.strstart-=t,e.block_start-=t,e.insert>e.strstart&&(e.insert=e.strstart),me(e),s+=t),0===e.strm.avail_in)break;if(i=we(e.strm,e.window,e.strstart+e.lookahead,s),e.lookahead+=i,e.lookahead+e.insert>=3)for(r=e.strstart-e.insert,e.ins_h=e.window[r],e.ins_h=fe(e,e.ins_h,e.window[r+1]);e.insert&&(e.ins_h=fe(e,e.ins_h,e.window[r+3-1]),e.prev[r&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=r,r++,e.insert--,!(e.lookahead+e.insert<3)););}while(e.lookahead{let i,s,r,o=e.pending_buf_size-5>e.w_size?e.w_size:e.pending_buf_size-5,n=0,a=e.strm.avail_in;do{if(i=65535,r=e.bi_valid+42>>3,e.strm.avail_outs+e.strm.avail_in&&(i=s+e.strm.avail_in),i>r&&(i=r),i>8,e.pending_buf[e.pending-2]=~i,e.pending_buf[e.pending-1]=~i>>8,_e(e.strm),s&&(s>i&&(s=i),e.strm.output.set(e.window.subarray(e.block_start,e.block_start+s),e.strm.next_out),e.strm.next_out+=s,e.strm.avail_out-=s,e.strm.total_out+=s,e.block_start+=s,i-=s),i&&(we(e.strm,e.strm.output,e.strm.next_out,i),e.strm.next_out+=i,e.strm.avail_out-=i,e.strm.total_out+=i)}while(0===n);return a-=e.strm.avail_in,a&&(a>=e.w_size?(e.matches=2,e.window.set(e.strm.input.subarray(e.strm.next_in-e.w_size,e.strm.next_in),0),e.strstart=e.w_size,e.insert=e.strstart):(e.window_size-e.strstart<=a&&(e.strstart-=e.w_size,e.window.set(e.window.subarray(e.w_size,e.w_size+e.strstart),0),e.matches<2&&e.matches++,e.insert>e.strstart&&(e.insert=e.strstart)),e.window.set(e.strm.input.subarray(e.strm.next_in-a,e.strm.next_in),e.strstart),e.strstart+=a,e.insert+=a>e.w_size-e.insert?e.w_size-e.insert:a),e.block_start=e.strstart),e.high_waterr&&e.block_start>=e.w_size&&(e.block_start-=e.w_size,e.strstart-=e.w_size,e.window.set(e.window.subarray(e.w_size,e.w_size+e.strstart),0),e.matches<2&&e.matches++,r+=e.w_size,e.insert>e.strstart&&(e.insert=e.strstart)),r>e.strm.avail_in&&(r=e.strm.avail_in),r&&(we(e.strm,e.window,e.strstart,r),e.strstart+=r,e.insert+=r>e.w_size-e.insert?e.w_size-e.insert:r),e.high_water>3,r=e.pending_buf_size-r>65535?65535:e.pending_buf_size-r,o=r>e.w_size?e.w_size:r,s=e.strstart-e.block_start,(s>=o||(s||t===K)&&t!==z&&0===e.strm.avail_in&&s<=r)&&(i=s>r?r:s,n=t===K&&0===e.strm.avail_in&&i===s?1:0,Q(e,e.block_start,i,n),e.block_start+=i,_e(e.strm)),n?3:1)},Ce=(e,t)=>{let i,s;for(;;){if(e.lookahead=3&&(e.ins_h=fe(e,e.ins_h,e.window[e.strstart+3-1]),i=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),0!==i&&e.strstart-i<=e.w_size-Ae&&(e.match_length=ye(e,i)),e.match_length>=3)if(s=j(e,e.strstart-e.match_start,e.match_length-3),e.lookahead-=e.match_length,e.match_length<=e.max_lazy_match&&e.lookahead>=3){e.match_length--;do{e.strstart++,e.ins_h=fe(e,e.ins_h,e.window[e.strstart+3-1]),i=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart}while(0!=--e.match_length);e.strstart++}else e.strstart+=e.match_length,e.match_length=0,e.ins_h=e.window[e.strstart],e.ins_h=fe(e,e.ins_h,e.window[e.strstart+1]);else s=j(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++;if(s&&(ve(e,!1),0===e.strm.avail_out))return 1}return e.insert=e.strstart<2?e.strstart:2,t===K?(ve(e,!0),0===e.strm.avail_out?3:4):e.sym_next&&(ve(e,!1),0===e.strm.avail_out)?1:2},Me=(e,t)=>{let i,s,r;for(;;){if(e.lookahead=3&&(e.ins_h=fe(e,e.ins_h,e.window[e.strstart+3-1]),i=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),e.prev_length=e.match_length,e.prev_match=e.match_start,e.match_length=2,0!==i&&e.prev_length4096)&&(e.match_length=2)),e.prev_length>=3&&e.match_length<=e.prev_length){r=e.strstart+e.lookahead-3,s=j(e,e.strstart-1-e.prev_match,e.prev_length-3),e.lookahead-=e.prev_length-1,e.prev_length-=2;do{++e.strstart<=r&&(e.ins_h=fe(e,e.ins_h,e.window[e.strstart+3-1]),i=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart)}while(0!=--e.prev_length);if(e.match_available=0,e.match_length=2,e.strstart++,s&&(ve(e,!1),0===e.strm.avail_out))return 1}else if(e.match_available){if(s=j(e,0,e.window[e.strstart-1]),s&&ve(e,!1),e.strstart++,e.lookahead--,0===e.strm.avail_out)return 1}else e.match_available=1,e.strstart++,e.lookahead--}return e.match_available&&(s=j(e,0,e.window[e.strstart-1]),e.match_available=0),e.insert=e.strstart<2?e.strstart:2,t===K?(ve(e,!0),0===e.strm.avail_out?3:4):e.sym_next&&(ve(e,!1),0===e.strm.avail_out)?1:2};function Ee(e,t,i,s,r){this.good_length=e,this.max_lazy=t,this.nice_length=i,this.max_chain=s,this.func=r}const Fe=[new Ee(0,0,0,0,Be),new Ee(4,4,8,4,Ce),new Ee(4,5,16,8,Ce),new Ee(4,6,32,32,Ce),new Ee(4,4,16,16,Me),new Ee(8,16,32,32,Me),new Ee(8,16,128,128,Me),new Ee(8,32,128,256,Me),new Ee(32,128,258,1024,Me),new Ee(32,258,258,4096,Me)];function Ie(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=ae,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new Uint16Array(1146),this.dyn_dtree=new Uint16Array(122),this.bl_tree=new Uint16Array(78),ge(this.dyn_ltree),ge(this.dyn_dtree),ge(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new Uint16Array(16),this.heap=new Uint16Array(573),ge(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new Uint16Array(573),ge(this.depth),this.sym_buf=0,this.lit_bufsize=0,this.sym_next=0,this.sym_end=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}const De=e=>{if(!e)return 1;const t=e.state;return!t||t.strm!==e||t.status!==he&&57!==t.status&&69!==t.status&&73!==t.status&&91!==t.status&&103!==t.status&&t.status!==ce&&t.status!==ue?1:0},Se=e=>{if(De(e))return de(e,Z);e.total_in=e.total_out=0,e.data_type=ne;const t=e.state;return t.pending=0,t.pending_out=0,t.wrap<0&&(t.wrap=-t.wrap),t.status=2===t.wrap?57:t.wrap?he:ce,e.adler=2===t.wrap?0:1,t.last_flush=-2,N(t),Y},Te=e=>{const t=Se(e);var i;return t===Y&&((i=e.state).window_size=2*i.w_size,ge(i.head),i.max_lazy_match=Fe[i.level].max_lazy,i.good_match=Fe[i.level].good_length,i.nice_match=Fe[i.level].nice_length,i.max_chain_length=Fe[i.level].max_chain,i.strstart=0,i.block_start=0,i.lookahead=0,i.insert=0,i.match_length=i.prev_length=2,i.match_available=0,i.ins_h=0),t},Re=(e,t,i,s,r,o)=>{if(!e)return Z;let n=1;if(t===ee&&(t=6),s<0?(n=0,s=-s):s>15&&(n=2,s-=16),r<1||r>9||i!==ae||s<8||s>15||t<0||t>9||o<0||o>re||8===s&&1!==n)return de(e,Z);8===s&&(s=9);const a=new Ie;return e.state=a,a.strm=e,a.status=he,a.wrap=n,a.gzhead=null,a.w_bits=s,a.w_size=1<De(e)||2!==e.state.wrap?Z:(e.state.gzhead=t,Y),ke=(e,t)=>{if(De(e)||t>X||t<0)return e?de(e,Z):Z;const i=e.state;if(!e.output||0!==e.avail_in&&!e.input||i.status===ue&&t!==K)return de(e,0===e.avail_out?$:Z);const s=i.last_flush;if(i.last_flush=t,0!==i.pending){if(_e(e),0===e.avail_out)return i.last_flush=-1,Y}else if(0===e.avail_in&&pe(t)<=pe(s)&&t!==K)return de(e,$);if(i.status===ue&&0!==e.avail_in)return de(e,$);if(i.status===he&&0===i.wrap&&(i.status=ce),i.status===he){let t=ae+(i.w_bits-8<<4)<<8,s=-1;if(s=i.strategy>=ie||i.level<2?0:i.level<6?1:6===i.level?2:3,t|=s<<6,0!==i.strstart&&(t|=32),t+=31-t%31,xe(i,t),0!==i.strstart&&(xe(i,e.adler>>>16),xe(i,65535&e.adler)),e.adler=1,i.status=ce,_e(e),0!==i.pending)return i.last_flush=-1,Y}if(57===i.status)if(e.adler=0,be(i,31),be(i,139),be(i,8),i.gzhead)be(i,(i.gzhead.text?1:0)+(i.gzhead.hcrc?2:0)+(i.gzhead.extra?4:0)+(i.gzhead.name?8:0)+(i.gzhead.comment?16:0)),be(i,255&i.gzhead.time),be(i,i.gzhead.time>>8&255),be(i,i.gzhead.time>>16&255),be(i,i.gzhead.time>>24&255),be(i,9===i.level?2:i.strategy>=ie||i.level<2?4:0),be(i,255&i.gzhead.os),i.gzhead.extra&&i.gzhead.extra.length&&(be(i,255&i.gzhead.extra.length),be(i,i.gzhead.extra.length>>8&255)),i.gzhead.hcrc&&(e.adler=U(e.adler,i.pending_buf,i.pending,0)),i.gzindex=0,i.status=69;else if(be(i,0),be(i,0),be(i,0),be(i,0),be(i,0),be(i,9===i.level?2:i.strategy>=ie||i.level<2?4:0),be(i,3),i.status=ce,_e(e),0!==i.pending)return i.last_flush=-1,Y;if(69===i.status){if(i.gzhead.extra){let t=i.pending,s=(65535&i.gzhead.extra.length)-i.gzindex;for(;i.pending+s>i.pending_buf_size;){let r=i.pending_buf_size-i.pending;if(i.pending_buf.set(i.gzhead.extra.subarray(i.gzindex,i.gzindex+r),i.pending),i.pending=i.pending_buf_size,i.gzhead.hcrc&&i.pending>t&&(e.adler=U(e.adler,i.pending_buf,i.pending-t,t)),i.gzindex+=r,_e(e),0!==i.pending)return i.last_flush=-1,Y;t=0,s-=r}let r=new Uint8Array(i.gzhead.extra);i.pending_buf.set(r.subarray(i.gzindex,i.gzindex+s),i.pending),i.pending+=s,i.gzhead.hcrc&&i.pending>t&&(e.adler=U(e.adler,i.pending_buf,i.pending-t,t)),i.gzindex=0}i.status=73}if(73===i.status){if(i.gzhead.name){let t,s=i.pending;do{if(i.pending===i.pending_buf_size){if(i.gzhead.hcrc&&i.pending>s&&(e.adler=U(e.adler,i.pending_buf,i.pending-s,s)),_e(e),0!==i.pending)return i.last_flush=-1,Y;s=0}t=i.gzindexs&&(e.adler=U(e.adler,i.pending_buf,i.pending-s,s)),i.gzindex=0}i.status=91}if(91===i.status){if(i.gzhead.comment){let t,s=i.pending;do{if(i.pending===i.pending_buf_size){if(i.gzhead.hcrc&&i.pending>s&&(e.adler=U(e.adler,i.pending_buf,i.pending-s,s)),_e(e),0!==i.pending)return i.last_flush=-1,Y;s=0}t=i.gzindexs&&(e.adler=U(e.adler,i.pending_buf,i.pending-s,s))}i.status=103}if(103===i.status){if(i.gzhead.hcrc){if(i.pending+2>i.pending_buf_size&&(_e(e),0!==i.pending))return i.last_flush=-1,Y;be(i,255&e.adler),be(i,e.adler>>8&255),e.adler=0}if(i.status=ce,_e(e),0!==i.pending)return i.last_flush=-1,Y}if(0!==e.avail_in||0!==i.lookahead||t!==z&&i.status!==ue){let s=0===i.level?Be(i,t):i.strategy===ie?((e,t)=>{let i;for(;;){if(0===e.lookahead&&(Pe(e),0===e.lookahead)){if(t===z)return 1;break}if(e.match_length=0,i=j(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++,i&&(ve(e,!1),0===e.strm.avail_out))return 1}return e.insert=0,t===K?(ve(e,!0),0===e.strm.avail_out?3:4):e.sym_next&&(ve(e,!1),0===e.strm.avail_out)?1:2})(i,t):i.strategy===se?((e,t)=>{let i,s,r,o;const n=e.window;for(;;){if(e.lookahead<=le){if(Pe(e),e.lookahead<=le&&t===z)return 1;if(0===e.lookahead)break}if(e.match_length=0,e.lookahead>=3&&e.strstart>0&&(r=e.strstart-1,s=n[r],s===n[++r]&&s===n[++r]&&s===n[++r])){o=e.strstart+le;do{}while(s===n[++r]&&s===n[++r]&&s===n[++r]&&s===n[++r]&&s===n[++r]&&s===n[++r]&&s===n[++r]&&s===n[++r]&&re.lookahead&&(e.match_length=e.lookahead)}if(e.match_length>=3?(i=j(e,1,e.match_length-3),e.lookahead-=e.match_length,e.strstart+=e.match_length,e.match_length=0):(i=j(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++),i&&(ve(e,!1),0===e.strm.avail_out))return 1}return e.insert=0,t===K?(ve(e,!0),0===e.strm.avail_out?3:4):e.sym_next&&(ve(e,!1),0===e.strm.avail_out)?1:2})(i,t):Fe[i.level].func(i,t);if(3!==s&&4!==s||(i.status=ue),1===s||3===s)return 0===e.avail_out&&(i.last_flush=-1),Y;if(2===s&&(t===G?H(i):t!==X&&(Q(i,0,0,!1),t===W&&(ge(i.head),0===i.lookahead&&(i.strstart=0,i.block_start=0,i.insert=0))),_e(e),0===e.avail_out))return i.last_flush=-1,Y}return t!==K?Y:i.wrap<=0?q:(2===i.wrap?(be(i,255&e.adler),be(i,e.adler>>8&255),be(i,e.adler>>16&255),be(i,e.adler>>24&255),be(i,255&e.total_in),be(i,e.total_in>>8&255),be(i,e.total_in>>16&255),be(i,e.total_in>>24&255)):(xe(i,e.adler>>>16),xe(i,65535&e.adler)),_e(e),i.wrap>0&&(i.wrap=-i.wrap),0!==i.pending?Y:q)},Oe=e=>{if(De(e))return Z;const t=e.state.status;return e.state=null,t===ce?de(e,J):Y},Ne=(e,t)=>{let i=t.length;if(De(e))return Z;const s=e.state,r=s.wrap;if(2===r||1===r&&s.status!==he||s.lookahead)return Z;if(1===r&&(e.adler=R(e.adler,t,i,0)),s.wrap=0,i>=s.w_size){0===r&&(ge(s.head),s.strstart=0,s.block_start=0,s.insert=0);let e=new Uint8Array(s.w_size);e.set(t.subarray(i-s.w_size,i),0),t=e,i=s.w_size}const o=e.avail_in,n=e.next_in,a=e.input;for(e.avail_in=i,e.next_in=0,e.input=t,Pe(s);s.lookahead>=3;){let e=s.strstart,t=s.lookahead-2;do{s.ins_h=fe(s,s.ins_h,s.window[e+3-1]),s.prev[e&s.w_mask]=s.head[s.ins_h],s.head[s.ins_h]=e,e++}while(--t);s.strstart=e,s.lookahead=2,Pe(s)}return s.strstart+=s.lookahead,s.block_start=s.strstart,s.insert=s.lookahead,s.lookahead=0,s.match_length=s.prev_length=2,s.match_available=0,e.next_in=n,e.input=a,e.avail_in=o,s.wrap=r,Y};const Qe=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var Ve=function(e){const t=Array.prototype.slice.call(arguments,1);for(;t.length;){const i=t.shift();if(i){if("object"!=typeof i)throw new TypeError(i+"must be non-object");for(const t in i)Qe(i,t)&&(e[t]=i[t])}}return e},je=e=>{let t=0;for(let i=0,s=e.length;i=252?6:e>=248?5:e>=240?4:e>=224?3:e>=192?2:1;ze[254]=ze[254]=1;var Ge=e=>{if("function"==typeof TextEncoder&&TextEncoder.prototype.encode)return(new TextEncoder).encode(e);let t,i,s,r,o,n=e.length,a=0;for(r=0;r>>6,t[o++]=128|63&i):i<65536?(t[o++]=224|i>>>12,t[o++]=128|i>>>6&63,t[o++]=128|63&i):(t[o++]=240|i>>>18,t[o++]=128|i>>>12&63,t[o++]=128|i>>>6&63,t[o++]=128|63&i);return t},We=(e,t)=>{const i=t||e.length;if("function"==typeof TextDecoder&&TextDecoder.prototype.decode)return(new TextDecoder).decode(e.subarray(0,t));let s,r;const o=new Array(2*i);for(r=0,s=0;s4)o[r++]=65533,s+=n-1;else{for(t&=2===n?31:3===n?15:7;n>1&&s1?o[r++]=65533:t<65536?o[r++]=t:(t-=65536,o[r++]=55296|t>>10&1023,o[r++]=56320|1023&t)}}return((e,t)=>{if(t<65534&&e.subarray&&He)return String.fromCharCode.apply(null,e.length===t?e:e.subarray(0,t));let i="";for(let s=0;s{(t=t||e.length)>e.length&&(t=e.length);let i=t-1;for(;i>=0&&128==(192&e[i]);)i--;return i<0||0===i?t:i+ze[e[i]]>t?i:t},Xe=function(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0};const Ye=Object.prototype.toString,{Z_NO_FLUSH:qe,Z_SYNC_FLUSH:Ze,Z_FULL_FLUSH:Je,Z_FINISH:$e,Z_OK:et,Z_STREAM_END:tt,Z_DEFAULT_COMPRESSION:it,Z_DEFAULT_STRATEGY:st,Z_DEFLATED:rt}=O;function ot(e){this.options=Ve({level:it,method:rt,chunkSize:16384,windowBits:15,memLevel:8,strategy:st},e||{});let t=this.options;t.raw&&t.windowBits>0?t.windowBits=-t.windowBits:t.gzip&&t.windowBits>0&&t.windowBits<16&&(t.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new Xe,this.strm.avail_out=0;let i=Le(this.strm,t.level,t.method,t.windowBits,t.memLevel,t.strategy);if(i!==et)throw new Error(k[i]);if(t.header&&Ue(this.strm,t.header),t.dictionary){let e;if(e="string"==typeof t.dictionary?Ge(t.dictionary):"[object ArrayBuffer]"===Ye.call(t.dictionary)?new Uint8Array(t.dictionary):t.dictionary,i=Ne(this.strm,e),i!==et)throw new Error(k[i]);this._dict_set=!0}}function nt(e,t){const i=new ot(t);if(i.push(e,!0),i.err)throw i.msg||k[i.err];return i.result}ot.prototype.push=function(e,t){const i=this.strm,s=this.options.chunkSize;let r,o;if(this.ended)return!1;for(o=t===~~t?t:!0===t?$e:qe,"string"==typeof e?i.input=Ge(e):"[object ArrayBuffer]"===Ye.call(e)?i.input=new Uint8Array(e):i.input=e,i.next_in=0,i.avail_in=i.input.length;;)if(0===i.avail_out&&(i.output=new Uint8Array(s),i.next_out=0,i.avail_out=s),(o===Ze||o===Je)&&i.avail_out<=6)this.onData(i.output.subarray(0,i.next_out)),i.avail_out=0;else{if(r=ke(i,o),r===tt)return i.next_out>0&&this.onData(i.output.subarray(0,i.next_out)),r=Oe(this.strm),this.onEnd(r),this.ended=!0,r===et;if(0!==i.avail_out){if(o>0&&i.next_out>0)this.onData(i.output.subarray(0,i.next_out)),i.avail_out=0;else if(0===i.avail_in)break}else this.onData(i.output)}return!0},ot.prototype.onData=function(e){this.chunks.push(e)},ot.prototype.onEnd=function(e){e===et&&(this.result=je(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg};var at={Deflate:ot,deflate:nt,deflateRaw:function(e,t){return(t=t||{}).raw=!0,nt(e,t)},gzip:function(e,t){return(t=t||{}).gzip=!0,nt(e,t)},constants:O};const lt=16209;var At=function(e,t){let i,s,r,o,n,a,l,A,h,c,u,d,p,g,m,f,_,v,b,x,w,y,P,B;const C=e.state;i=e.next_in,P=e.input,s=i+(e.avail_in-5),r=e.next_out,B=e.output,o=r-(t-e.avail_out),n=r+(e.avail_out-257),a=C.dmax,l=C.wsize,A=C.whave,h=C.wnext,c=C.window,u=C.hold,d=C.bits,p=C.lencode,g=C.distcode,m=(1<>>24,u>>>=v,d-=v,v=_>>>16&255,0===v)B[r++]=65535&_;else{if(!(16&v)){if(0==(64&v)){_=p[(65535&_)+(u&(1<>>=v,d-=v),d<15&&(u+=P[i++]<>>24,u>>>=v,d-=v,v=_>>>16&255,!(16&v)){if(0==(64&v)){_=g[(65535&_)+(u&(1<a){e.msg="invalid distance too far back",C.mode=lt;break e}if(u>>>=v,d-=v,v=r-o,x>v){if(v=x-v,v>A&&C.sane){e.msg="invalid distance too far back",C.mode=lt;break e}if(w=0,y=c,0===h){if(w+=l-v,v2;)B[r++]=y[w++],B[r++]=y[w++],B[r++]=y[w++],b-=3;b&&(B[r++]=y[w++],b>1&&(B[r++]=y[w++]))}else{w=r-x;do{B[r++]=B[w++],B[r++]=B[w++],B[r++]=B[w++],b-=3}while(b>2);b&&(B[r++]=B[w++],b>1&&(B[r++]=B[w++]))}break}}break}}while(i>3,i-=b,d-=b<<3,u&=(1<{const l=a.bits;let A,h,c,u,d,p,g=0,m=0,f=0,_=0,v=0,b=0,x=0,w=0,y=0,P=0,B=null;const C=new Uint16Array(16),M=new Uint16Array(16);let E,F,I,D=null;for(g=0;g<=15;g++)C[g]=0;for(m=0;m=1&&0===C[_];_--);if(v>_&&(v=_),0===_)return r[o++]=20971520,r[o++]=20971520,a.bits=1,0;for(f=1;f<_&&0===C[f];f++);for(v0&&(0===e||1!==_))return-1;for(M[1]=0,g=1;g<15;g++)M[g+1]=M[g]+C[g];for(m=0;m852||2===e&&y>592)return 1;for(;;){E=g-x,n[m]+1=p?(F=D[n[m]-p],I=B[n[m]-p]):(F=96,I=0),A=1<>x)+h]=E<<24|F<<16|I|0}while(0!==h);for(A=1<>=1;if(0!==A?(P&=A-1,P+=A):P=0,m++,0==--C[g]){if(g===_)break;g=t[i+n[m]]}if(g>v&&(P&u)!==c){for(0===x&&(x=v),d+=f,b=g-x,w=1<852||2===e&&y>592)return 1;c=P&u,r[c]=v<<24|b<<16|d-o|0}}return 0!==P&&(r[d+P]=g-x<<24|64<<16|0),a.bits=v,0};const{Z_FINISH:gt,Z_BLOCK:mt,Z_TREES:ft,Z_OK:_t,Z_STREAM_END:vt,Z_NEED_DICT:bt,Z_STREAM_ERROR:xt,Z_DATA_ERROR:wt,Z_MEM_ERROR:yt,Z_BUF_ERROR:Pt,Z_DEFLATED:Bt}=O,Ct=16180,Mt=16190,Et=16191,Ft=16192,It=16194,Dt=16199,St=16200,Tt=16206,Rt=16209,Lt=e=>(e>>>24&255)+(e>>>8&65280)+((65280&e)<<8)+((255&e)<<24);function Ut(){this.strm=null,this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new Uint16Array(320),this.work=new Uint16Array(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}const kt=e=>{if(!e)return 1;const t=e.state;return!t||t.strm!==e||t.mode16211?1:0},Ot=e=>{if(kt(e))return xt;const t=e.state;return e.total_in=e.total_out=t.total=0,e.msg="",t.wrap&&(e.adler=1&t.wrap),t.mode=Ct,t.last=0,t.havedict=0,t.flags=-1,t.dmax=32768,t.head=null,t.hold=0,t.bits=0,t.lencode=t.lendyn=new Int32Array(852),t.distcode=t.distdyn=new Int32Array(592),t.sane=1,t.back=-1,_t},Nt=e=>{if(kt(e))return xt;const t=e.state;return t.wsize=0,t.whave=0,t.wnext=0,Ot(e)},Qt=(e,t)=>{let i;if(kt(e))return xt;const s=e.state;return t<0?(i=0,t=-t):(i=5+(t>>4),t<48&&(t&=15)),t&&(t<8||t>15)?xt:(null!==s.window&&s.wbits!==t&&(s.window=null),s.wrap=i,s.wbits=t,Nt(e))},Vt=(e,t)=>{if(!e)return xt;const i=new Ut;e.state=i,i.strm=e,i.window=null,i.mode=Ct;const s=Qt(e,t);return s!==_t&&(e.state=null),s};let jt,Ht,zt=!0;const Gt=e=>{if(zt){jt=new Int32Array(512),Ht=new Int32Array(32);let t=0;for(;t<144;)e.lens[t++]=8;for(;t<256;)e.lens[t++]=9;for(;t<280;)e.lens[t++]=7;for(;t<288;)e.lens[t++]=8;for(pt(1,e.lens,0,288,jt,0,e.work,{bits:9}),t=0;t<32;)e.lens[t++]=5;pt(2,e.lens,0,32,Ht,0,e.work,{bits:5}),zt=!1}e.lencode=jt,e.lenbits=9,e.distcode=Ht,e.distbits=5},Wt=(e,t,i,s)=>{let r;const o=e.state;return null===o.window&&(o.wsize=1<=o.wsize?(o.window.set(t.subarray(i-o.wsize,i),0),o.wnext=0,o.whave=o.wsize):(r=o.wsize-o.wnext,r>s&&(r=s),o.window.set(t.subarray(i-s,i-s+r),o.wnext),(s-=r)?(o.window.set(t.subarray(i-s,i),0),o.wnext=s,o.whave=o.wsize):(o.wnext+=r,o.wnext===o.wsize&&(o.wnext=0),o.whave{let i,s,r,o,n,a,l,A,h,c,u,d,p,g,m,f,_,v,b,x,w,y,P=0;const B=new Uint8Array(4);let C,M;const E=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]);if(kt(e)||!e.output||!e.input&&0!==e.avail_in)return xt;i=e.state,i.mode===Et&&(i.mode=Ft),n=e.next_out,r=e.output,l=e.avail_out,o=e.next_in,s=e.input,a=e.avail_in,A=i.hold,h=i.bits,c=a,u=l,y=_t;e:for(;;)switch(i.mode){case Ct:if(0===i.wrap){i.mode=Ft;break}for(;h<16;){if(0===a)break e;a--,A+=s[o++]<>>8&255,i.check=U(i.check,B,2,0),A=0,h=0,i.mode=16181;break}if(i.head&&(i.head.done=!1),!(1&i.wrap)||(((255&A)<<8)+(A>>8))%31){e.msg="incorrect header check",i.mode=Rt;break}if((15&A)!==Bt){e.msg="unknown compression method",i.mode=Rt;break}if(A>>>=4,h-=4,w=8+(15&A),0===i.wbits&&(i.wbits=w),w>15||w>i.wbits){e.msg="invalid window size",i.mode=Rt;break}i.dmax=1<>8&1),512&i.flags&&4&i.wrap&&(B[0]=255&A,B[1]=A>>>8&255,i.check=U(i.check,B,2,0)),A=0,h=0,i.mode=16182;case 16182:for(;h<32;){if(0===a)break e;a--,A+=s[o++]<>>8&255,B[2]=A>>>16&255,B[3]=A>>>24&255,i.check=U(i.check,B,4,0)),A=0,h=0,i.mode=16183;case 16183:for(;h<16;){if(0===a)break e;a--,A+=s[o++]<>8),512&i.flags&&4&i.wrap&&(B[0]=255&A,B[1]=A>>>8&255,i.check=U(i.check,B,2,0)),A=0,h=0,i.mode=16184;case 16184:if(1024&i.flags){for(;h<16;){if(0===a)break e;a--,A+=s[o++]<>>8&255,i.check=U(i.check,B,2,0)),A=0,h=0}else i.head&&(i.head.extra=null);i.mode=16185;case 16185:if(1024&i.flags&&(d=i.length,d>a&&(d=a),d&&(i.head&&(w=i.head.extra_len-i.length,i.head.extra||(i.head.extra=new Uint8Array(i.head.extra_len)),i.head.extra.set(s.subarray(o,o+d),w)),512&i.flags&&4&i.wrap&&(i.check=U(i.check,s,d,o)),a-=d,o+=d,i.length-=d),i.length))break e;i.length=0,i.mode=16186;case 16186:if(2048&i.flags){if(0===a)break e;d=0;do{w=s[o+d++],i.head&&w&&i.length<65536&&(i.head.name+=String.fromCharCode(w))}while(w&&d>9&1,i.head.done=!0),e.adler=i.check=0,i.mode=Et;break;case 16189:for(;h<32;){if(0===a)break e;a--,A+=s[o++]<>>=7&h,h-=7&h,i.mode=Tt;break}for(;h<3;){if(0===a)break e;a--,A+=s[o++]<>>=1,h-=1,3&A){case 0:i.mode=16193;break;case 1:if(Gt(i),i.mode=Dt,t===ft){A>>>=2,h-=2;break e}break;case 2:i.mode=16196;break;case 3:e.msg="invalid block type",i.mode=Rt}A>>>=2,h-=2;break;case 16193:for(A>>>=7&h,h-=7&h;h<32;){if(0===a)break e;a--,A+=s[o++]<>>16^65535)){e.msg="invalid stored block lengths",i.mode=Rt;break}if(i.length=65535&A,A=0,h=0,i.mode=It,t===ft)break e;case It:i.mode=16195;case 16195:if(d=i.length,d){if(d>a&&(d=a),d>l&&(d=l),0===d)break e;r.set(s.subarray(o,o+d),n),a-=d,o+=d,l-=d,n+=d,i.length-=d;break}i.mode=Et;break;case 16196:for(;h<14;){if(0===a)break e;a--,A+=s[o++]<>>=5,h-=5,i.ndist=1+(31&A),A>>>=5,h-=5,i.ncode=4+(15&A),A>>>=4,h-=4,i.nlen>286||i.ndist>30){e.msg="too many length or distance symbols",i.mode=Rt;break}i.have=0,i.mode=16197;case 16197:for(;i.have>>=3,h-=3}for(;i.have<19;)i.lens[E[i.have++]]=0;if(i.lencode=i.lendyn,i.lenbits=7,C={bits:i.lenbits},y=pt(0,i.lens,0,19,i.lencode,0,i.work,C),i.lenbits=C.bits,y){e.msg="invalid code lengths set",i.mode=Rt;break}i.have=0,i.mode=16198;case 16198:for(;i.have>>24,f=P>>>16&255,_=65535&P,!(m<=h);){if(0===a)break e;a--,A+=s[o++]<>>=m,h-=m,i.lens[i.have++]=_;else{if(16===_){for(M=m+2;h>>=m,h-=m,0===i.have){e.msg="invalid bit length repeat",i.mode=Rt;break}w=i.lens[i.have-1],d=3+(3&A),A>>>=2,h-=2}else if(17===_){for(M=m+3;h>>=m,h-=m,w=0,d=3+(7&A),A>>>=3,h-=3}else{for(M=m+7;h>>=m,h-=m,w=0,d=11+(127&A),A>>>=7,h-=7}if(i.have+d>i.nlen+i.ndist){e.msg="invalid bit length repeat",i.mode=Rt;break}for(;d--;)i.lens[i.have++]=w}}if(i.mode===Rt)break;if(0===i.lens[256]){e.msg="invalid code -- missing end-of-block",i.mode=Rt;break}if(i.lenbits=9,C={bits:i.lenbits},y=pt(1,i.lens,0,i.nlen,i.lencode,0,i.work,C),i.lenbits=C.bits,y){e.msg="invalid literal/lengths set",i.mode=Rt;break}if(i.distbits=6,i.distcode=i.distdyn,C={bits:i.distbits},y=pt(2,i.lens,i.nlen,i.ndist,i.distcode,0,i.work,C),i.distbits=C.bits,y){e.msg="invalid distances set",i.mode=Rt;break}if(i.mode=Dt,t===ft)break e;case Dt:i.mode=St;case St:if(a>=6&&l>=258){e.next_out=n,e.avail_out=l,e.next_in=o,e.avail_in=a,i.hold=A,i.bits=h,At(e,u),n=e.next_out,r=e.output,l=e.avail_out,o=e.next_in,s=e.input,a=e.avail_in,A=i.hold,h=i.bits,i.mode===Et&&(i.back=-1);break}for(i.back=0;P=i.lencode[A&(1<>>24,f=P>>>16&255,_=65535&P,!(m<=h);){if(0===a)break e;a--,A+=s[o++]<>v)],m=P>>>24,f=P>>>16&255,_=65535&P,!(v+m<=h);){if(0===a)break e;a--,A+=s[o++]<>>=v,h-=v,i.back+=v}if(A>>>=m,h-=m,i.back+=m,i.length=_,0===f){i.mode=16205;break}if(32&f){i.back=-1,i.mode=Et;break}if(64&f){e.msg="invalid literal/length code",i.mode=Rt;break}i.extra=15&f,i.mode=16201;case 16201:if(i.extra){for(M=i.extra;h>>=i.extra,h-=i.extra,i.back+=i.extra}i.was=i.length,i.mode=16202;case 16202:for(;P=i.distcode[A&(1<>>24,f=P>>>16&255,_=65535&P,!(m<=h);){if(0===a)break e;a--,A+=s[o++]<>v)],m=P>>>24,f=P>>>16&255,_=65535&P,!(v+m<=h);){if(0===a)break e;a--,A+=s[o++]<>>=v,h-=v,i.back+=v}if(A>>>=m,h-=m,i.back+=m,64&f){e.msg="invalid distance code",i.mode=Rt;break}i.offset=_,i.extra=15&f,i.mode=16203;case 16203:if(i.extra){for(M=i.extra;h>>=i.extra,h-=i.extra,i.back+=i.extra}if(i.offset>i.dmax){e.msg="invalid distance too far back",i.mode=Rt;break}i.mode=16204;case 16204:if(0===l)break e;if(d=u-l,i.offset>d){if(d=i.offset-d,d>i.whave&&i.sane){e.msg="invalid distance too far back",i.mode=Rt;break}d>i.wnext?(d-=i.wnext,p=i.wsize-d):p=i.wnext-d,d>i.length&&(d=i.length),g=i.window}else g=r,p=n-i.offset,d=i.length;d>l&&(d=l),l-=d,i.length-=d;do{r[n++]=g[p++]}while(--d);0===i.length&&(i.mode=St);break;case 16205:if(0===l)break e;r[n++]=i.length,l--,i.mode=St;break;case Tt:if(i.wrap){for(;h<32;){if(0===a)break e;a--,A|=s[o++]<{if(kt(e))return xt;let t=e.state;return t.window&&(t.window=null),e.state=null,_t},Zt=(e,t)=>{if(kt(e))return xt;const i=e.state;return 0==(2&i.wrap)?xt:(i.head=t,t.done=!1,_t)},Jt=(e,t)=>{const i=t.length;let s,r,o;return kt(e)?xt:(s=e.state,0!==s.wrap&&s.mode!==Mt?xt:s.mode===Mt&&(r=1,r=R(r,t,i,0),r!==s.check)?wt:(o=Wt(e,t,i,i),o?(s.mode=16210,yt):(s.havedict=1,_t)))},$t=function(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name="",this.comment="",this.hcrc=0,this.done=!1};const ei=Object.prototype.toString,{Z_NO_FLUSH:ti,Z_FINISH:ii,Z_OK:si,Z_STREAM_END:ri,Z_NEED_DICT:oi,Z_STREAM_ERROR:ni,Z_DATA_ERROR:ai,Z_MEM_ERROR:li}=O;function Ai(e){this.options=Ve({chunkSize:65536,windowBits:15,to:""},e||{});const t=this.options;t.raw&&t.windowBits>=0&&t.windowBits<16&&(t.windowBits=-t.windowBits,0===t.windowBits&&(t.windowBits=-15)),!(t.windowBits>=0&&t.windowBits<16)||e&&e.windowBits||(t.windowBits+=32),t.windowBits>15&&t.windowBits<48&&0==(15&t.windowBits)&&(t.windowBits|=15),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new Xe,this.strm.avail_out=0;let i=Xt(this.strm,t.windowBits);if(i!==si)throw new Error(k[i]);if(this.header=new $t,Zt(this.strm,this.header),t.dictionary&&("string"==typeof t.dictionary?t.dictionary=Ge(t.dictionary):"[object ArrayBuffer]"===ei.call(t.dictionary)&&(t.dictionary=new Uint8Array(t.dictionary)),t.raw&&(i=Jt(this.strm,t.dictionary),i!==si)))throw new Error(k[i])}function hi(e,t){const i=new Ai(t);if(i.push(e),i.err)throw i.msg||k[i.err];return i.result}Ai.prototype.push=function(e,t){const i=this.strm,s=this.options.chunkSize,r=this.options.dictionary;let o,n,a;if(this.ended)return!1;for(n=t===~~t?t:!0===t?ii:ti,"[object ArrayBuffer]"===ei.call(e)?i.input=new Uint8Array(e):i.input=e,i.next_in=0,i.avail_in=i.input.length;;){for(0===i.avail_out&&(i.output=new Uint8Array(s),i.next_out=0,i.avail_out=s),o=Yt(i,n),o===oi&&r&&(o=Jt(i,r),o===si?o=Yt(i,n):o===ai&&(o=oi));i.avail_in>0&&o===ri&&i.state.wrap>0&&0!==e[i.next_in];)Kt(i),o=Yt(i,n);switch(o){case ni:case ai:case oi:case li:return this.onEnd(o),this.ended=!0,!1}if(a=i.avail_out,i.next_out&&(0===i.avail_out||o===ri))if("string"===this.options.to){let e=Ke(i.output,i.next_out),t=i.next_out-e,r=We(i.output,e);i.next_out=t,i.avail_out=s-t,t&&i.output.set(i.output.subarray(e,e+t),0),this.onData(r)}else this.onData(i.output.length===i.next_out?i.output:i.output.subarray(0,i.next_out));if(o!==si||0!==a){if(o===ri)return o=qt(this.strm),this.onEnd(o),this.ended=!0,!0;if(0===i.avail_in)break}}return!0},Ai.prototype.onData=function(e){this.chunks.push(e)},Ai.prototype.onEnd=function(e){e===si&&("string"===this.options.to?this.result=this.chunks.join(""):this.result=je(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg};var ci={Inflate:Ai,inflate:hi,inflateRaw:function(e,t){return(t=t||{}).raw=!0,hi(e,t)},ungzip:hi,constants:O};const{Deflate:ui,deflate:di,deflateRaw:pi,gzip:gi}=at,{Inflate:mi,inflate:fi,inflateRaw:_i,ungzip:vi}=ci;var bi=ui,xi=di,wi=pi,yi=gi,Pi=mi,Bi=fi,Ci=_i,Mi=vi,Ei=O,Fi={Deflate:bi,deflate:xi,deflateRaw:wi,gzip:yi,Inflate:Pi,inflate:Bi,inflateRaw:Ci,ungzip:Mi,constants:Ei};e.Deflate=bi,e.Inflate=Pi,e.constants=Ei,e.default=Fi,e.deflate=xi,e.deflateRaw=wi,e.gzip=yi,e.inflate=Bi,e.inflateRaw=Ci,e.ungzip=Mi,Object.defineProperty(e,"__esModule",{value:!0})}));var bv=Object.freeze({__proto__:null});let xv=window.pako||bv;xv.inflate||(xv=xv.default);const wv=function(){const e=new Float32Array(3);return function(t){return e[0]=t[0]/255,e[1]=t[1]/255,e[2]=t[2]/255,e}}();const yv={version:1,parse:function(e,t,i,s,r,o){const n=function(e){return{positions:e[0],normals:e[1],indices:e[2],edgeIndices:e[3],meshPositions:e[4],meshIndices:e[5],meshEdgesIndices:e[6],meshColors:e[7],entityIDs:e[8],entityMeshes:e[9],entityIsObjects:e[10],positionsDecodeMatrix:e[11]}}(i),a=function(e){return{positions:new Uint16Array(xv.inflate(e.positions).buffer),normals:new Int8Array(xv.inflate(e.normals).buffer),indices:new Uint32Array(xv.inflate(e.indices).buffer),edgeIndices:new Uint32Array(xv.inflate(e.edgeIndices).buffer),meshPositions:new Uint32Array(xv.inflate(e.meshPositions).buffer),meshIndices:new Uint32Array(xv.inflate(e.meshIndices).buffer),meshEdgesIndices:new Uint32Array(xv.inflate(e.meshEdgesIndices).buffer),meshColors:new Uint8Array(xv.inflate(e.meshColors).buffer),entityIDs:xv.inflate(e.entityIDs,{to:"string"}),entityMeshes:new Uint32Array(xv.inflate(e.entityMeshes).buffer),entityIsObjects:new Uint8Array(xv.inflate(e.entityIsObjects).buffer),positionsDecodeMatrix:new Float32Array(xv.inflate(e.positionsDecodeMatrix).buffer)}}(n);!function(e,t,i,s,r,o){o.getNextId(),s.positionsCompression="precompressed",s.normalsCompression="precompressed";const n=i.positions,a=i.normals,l=i.indices,A=i.edgeIndices,h=i.meshPositions,c=i.meshIndices,d=i.meshEdgesIndices,p=i.meshColors,g=JSON.parse(i.entityIDs),m=i.entityMeshes,_=i.entityIsObjects,v=h.length,b=m.length;for(let r=0;rm[e]m[t]?1:0));for(let e=0;e1||(E[i]=e)}}for(let e=0;e1,o=Dv(_.subarray(4*t,4*t+3)),u=_[4*t+3]/255,v=a.subarray(d[t],i?a.length:d[t+1]),x=l.subarray(d[t],i?l.length:d[t+1]),w=A.subarray(p[t],i?A.length:p[t+1]),P=h.subarray(g[t],i?h.length:g[t+1]),M=c.subarray(m[t],m[t]+16);if(r){const e=`${n}-geometry.${t}`;s.createGeometry({id:e,primitive:"triangles",positionsCompressed:v,normalsCompressed:x,indices:w,edgeIndices:P,positionsDecodeMatrix:M})}else{const e=`${n}-${t}`;b[E[t]];const i={};s.createMesh(f.apply(i,{id:e,primitive:"triangles",positionsCompressed:v,normalsCompressed:x,indices:w,edgeIndices:P,positionsDecodeMatrix:M,color:o,opacity:u}))}}let F=0;for(let e=0;e1){const t={},r=`${n}-instance.${F++}`,o=`${n}-geometry.${i}`,a=16*w[e],A=u.subarray(a,a+16);s.createMesh(f.apply(t,{id:r,geometryId:o,matrix:A})),l.push(r)}else l.push(i)}if(l.length>0){const e={};s.createEntity(f.apply(e,{id:r,isObject:!0,meshIds:l}))}}}(0,0,a,s,0,o)}};let Tv=window.pako||bv;Tv.inflate||(Tv=Tv.default);const Rv=function(){const e=new Float32Array(3);return function(t){return e[0]=t[0]/255,e[1]=t[1]/255,e[2]=t[2]/255,e}}();const Lv={version:5,parse:function(e,t,i,s,r,o){const n=function(e){return{positions:e[0],normals:e[1],indices:e[2],edgeIndices:e[3],matrices:e[4],eachPrimitivePositionsAndNormalsPortion:e[5],eachPrimitiveIndicesPortion:e[6],eachPrimitiveEdgeIndicesPortion:e[7],eachPrimitiveColor:e[8],primitiveInstances:e[9],eachEntityId:e[10],eachEntityPrimitiveInstancesPortion:e[11],eachEntityMatricesPortion:e[12]}}(i),a=function(e){return{positions:new Float32Array(Tv.inflate(e.positions).buffer),normals:new Int8Array(Tv.inflate(e.normals).buffer),indices:new Uint32Array(Tv.inflate(e.indices).buffer),edgeIndices:new Uint32Array(Tv.inflate(e.edgeIndices).buffer),matrices:new Float32Array(Tv.inflate(e.matrices).buffer),eachPrimitivePositionsAndNormalsPortion:new Uint32Array(Tv.inflate(e.eachPrimitivePositionsAndNormalsPortion).buffer),eachPrimitiveIndicesPortion:new Uint32Array(Tv.inflate(e.eachPrimitiveIndicesPortion).buffer),eachPrimitiveEdgeIndicesPortion:new Uint32Array(Tv.inflate(e.eachPrimitiveEdgeIndicesPortion).buffer),eachPrimitiveColor:new Uint8Array(Tv.inflate(e.eachPrimitiveColor).buffer),primitiveInstances:new Uint32Array(Tv.inflate(e.primitiveInstances).buffer),eachEntityId:Tv.inflate(e.eachEntityId,{to:"string"}),eachEntityPrimitiveInstancesPortion:new Uint32Array(Tv.inflate(e.eachEntityPrimitiveInstancesPortion).buffer),eachEntityMatricesPortion:new Uint32Array(Tv.inflate(e.eachEntityMatricesPortion).buffer)}}(n);!function(e,t,i,s,r,o){const n=o.getNextId();s.positionsCompression="disabled",s.normalsCompression="precompressed";const a=i.positions,l=i.normals,A=i.indices,h=i.edgeIndices,c=i.matrices,u=i.eachPrimitivePositionsAndNormalsPortion,d=i.eachPrimitiveIndicesPortion,p=i.eachPrimitiveEdgeIndicesPortion,g=i.eachPrimitiveColor,m=i.primitiveInstances,_=JSON.parse(i.eachEntityId),v=i.eachEntityPrimitiveInstancesPortion,b=i.eachEntityMatricesPortion,x=u.length,w=m.length,y=new Uint8Array(x),P=_.length;for(let e=0;e1||(B[i]=e)}}for(let e=0;e1,r=Rv(g.subarray(4*e,4*e+3)),o=g[4*e+3]/255,c=a.subarray(u[e],t?a.length:u[e+1]),m=l.subarray(u[e],t?l.length:u[e+1]),v=A.subarray(d[e],t?A.length:d[e+1]),b=h.subarray(p[e],t?h.length:p[e+1]);if(i){const t=`${n}-geometry.${e}`;s.createGeometry({id:t,primitive:"triangles",positionsCompressed:c,normalsCompressed:m,indices:v,edgeIndices:b})}else{const t=e;_[B[e]];const i={};s.createMesh(f.apply(i,{id:t,primitive:"triangles",positionsCompressed:c,normalsCompressed:m,indices:v,edgeIndices:b,color:r,opacity:o}))}}let C=0;for(let e=0;e1){const t={},r="instance."+C++,o="geometry"+i,n=16*b[e],l=c.subarray(n,n+16);s.createMesh(f.apply(t,{id:r,geometryId:o,matrix:l})),a.push(r)}else a.push(i)}if(a.length>0){const e={};s.createEntity(f.apply(e,{id:r,isObject:!0,meshIds:a}))}}}(0,0,a,s,0,o)}};let Uv=window.pako||bv;Uv.inflate||(Uv=Uv.default);const kv=function(){const e=new Float32Array(3);return function(t){return e[0]=t[0]/255,e[1]=t[1]/255,e[2]=t[2]/255,e}}();const Ov={version:6,parse:function(e,t,i,s,r,o){const n=function(e){return{positions:e[0],normals:e[1],indices:e[2],edgeIndices:e[3],matrices:e[4],reusedPrimitivesDecodeMatrix:e[5],eachPrimitivePositionsAndNormalsPortion:e[6],eachPrimitiveIndicesPortion:e[7],eachPrimitiveEdgeIndicesPortion:e[8],eachPrimitiveColorAndOpacity:e[9],primitiveInstances:e[10],eachEntityId:e[11],eachEntityPrimitiveInstancesPortion:e[12],eachEntityMatricesPortion:e[13],eachTileAABB:e[14],eachTileEntitiesPortion:e[15]}}(i),a=function(e){function t(e,t){return 0===e.length?[]:Uv.inflate(e,t).buffer}return{positions:new Uint16Array(t(e.positions)),normals:new Int8Array(t(e.normals)),indices:new Uint32Array(t(e.indices)),edgeIndices:new Uint32Array(t(e.edgeIndices)),matrices:new Float32Array(t(e.matrices)),reusedPrimitivesDecodeMatrix:new Float32Array(t(e.reusedPrimitivesDecodeMatrix)),eachPrimitivePositionsAndNormalsPortion:new Uint32Array(t(e.eachPrimitivePositionsAndNormalsPortion)),eachPrimitiveIndicesPortion:new Uint32Array(t(e.eachPrimitiveIndicesPortion)),eachPrimitiveEdgeIndicesPortion:new Uint32Array(t(e.eachPrimitiveEdgeIndicesPortion)),eachPrimitiveColorAndOpacity:new Uint8Array(t(e.eachPrimitiveColorAndOpacity)),primitiveInstances:new Uint32Array(t(e.primitiveInstances)),eachEntityId:Uv.inflate(e.eachEntityId,{to:"string"}),eachEntityPrimitiveInstancesPortion:new Uint32Array(t(e.eachEntityPrimitiveInstancesPortion)),eachEntityMatricesPortion:new Uint32Array(t(e.eachEntityMatricesPortion)),eachTileAABB:new Float64Array(t(e.eachTileAABB)),eachTileEntitiesPortion:new Uint32Array(t(e.eachTileEntitiesPortion))}}(n);!function(e,t,i,s,r,o){const n=o.getNextId(),a=i.positions,l=i.normals,A=i.indices,h=i.edgeIndices,c=i.matrices,d=i.reusedPrimitivesDecodeMatrix,p=i.eachPrimitivePositionsAndNormalsPortion,g=i.eachPrimitiveIndicesPortion,m=i.eachPrimitiveEdgeIndicesPortion,_=i.eachPrimitiveColorAndOpacity,v=i.primitiveInstances,b=JSON.parse(i.eachEntityId),x=i.eachEntityPrimitiveInstancesPortion,w=i.eachEntityMatricesPortion,y=i.eachTileAABB,P=i.eachTileEntitiesPortion,B=p.length,C=v.length,M=b.length,E=P.length,F=new Uint32Array(B);for(let e=0;e1,c=t===B-1,u=a.subarray(p[t],c?a.length:p[t+1]),b=l.subarray(p[t],c?l.length:p[t+1]),x=A.subarray(g[t],c?A.length:g[t+1]),w=h.subarray(m[t],c?h.length:m[t+1]),y=kv(_.subarray(4*t,4*t+3)),P=_[4*t+3]/255,C=o.getNextId();if(r){const e=`${n}-geometry.${i}.${t}`;U[e]||(s.createGeometry({id:e,primitive:"triangles",positionsCompressed:u,indices:x,edgeIndices:w,positionsDecodeMatrix:d}),U[e]=!0),s.createMesh(f.apply(N,{id:C,geometryId:e,origin:I,matrix:E,color:y,opacity:P})),R.push(C)}else s.createMesh(f.apply(N,{id:C,origin:I,primitive:"triangles",positionsCompressed:u,normalsCompressed:b,indices:x,edgeIndices:w,positionsDecodeMatrix:L,color:y,opacity:P})),R.push(C)}R.length>0&&s.createEntity(f.apply(O,{id:P,isObject:!0,meshIds:R}))}}}(e,t,a,s,0,o)}};let Nv=window.pako||bv;Nv.inflate||(Nv=Nv.default);const Qv=function(){const e=new Float32Array(3);return function(t){return e[0]=t[0]/255,e[1]=t[1]/255,e[2]=t[2]/255,e}}();function Vv(e){const t=[];for(let i=0,s=e.length;i1,u=t===F-1,B=Qv(P.subarray(6*e,6*e+3)),C=P[6*e+3]/255,M=P[6*e+4]/255,E=P[6*e+5]/255,I=o.getNextId();if(r){const r=y[e],o=d.slice(r,r+16),w=`${n}-geometry.${i}.${t}`;if(!Q[w]){let e,i,r,o,n,d;switch(g[t]){case 0:e="solid",i=a.subarray(m[t],u?a.length:m[t+1]),r=l.subarray(_[t],u?l.length:_[t+1]),n=h.subarray(b[t],u?h.length:b[t+1]),d=c.subarray(x[t],u?c.length:x[t+1]);break;case 1:e="surface",i=a.subarray(m[t],u?a.length:m[t+1]),r=l.subarray(_[t],u?l.length:_[t+1]),n=h.subarray(b[t],u?h.length:b[t+1]),d=c.subarray(x[t],u?c.length:x[t+1]);break;case 2:e="points",i=a.subarray(m[t],u?a.length:m[t+1]),o=Vv(A.subarray(v[t],u?A.length:v[t+1]));break;case 3:e="lines",i=a.subarray(m[t],u?a.length:m[t+1]),n=h.subarray(b[t],u?h.length:b[t+1]);break;default:continue}s.createGeometry({id:w,primitive:e,positionsCompressed:i,normalsCompressed:r,colors:o,indices:n,edgeIndices:d,positionsDecodeMatrix:p}),Q[w]=!0}s.createMesh(f.apply(V,{id:I,geometryId:w,origin:R,matrix:o,color:B,metallic:M,roughness:E,opacity:C})),U.push(I)}else{let e,i,r,o,n,d;switch(g[t]){case 0:e="solid",i=a.subarray(m[t],u?a.length:m[t+1]),r=l.subarray(_[t],u?l.length:_[t+1]),n=h.subarray(b[t],u?h.length:b[t+1]),d=c.subarray(x[t],u?c.length:x[t+1]);break;case 1:e="surface",i=a.subarray(m[t],u?a.length:m[t+1]),r=l.subarray(_[t],u?l.length:_[t+1]),n=h.subarray(b[t],u?h.length:b[t+1]),d=c.subarray(x[t],u?c.length:x[t+1]);break;case 2:e="points",i=a.subarray(m[t],u?a.length:m[t+1]),o=Vv(A.subarray(v[t],u?A.length:v[t+1]));break;case 3:e="lines",i=a.subarray(m[t],u?a.length:m[t+1]),n=h.subarray(b[t],u?h.length:b[t+1]);break;default:continue}s.createMesh(f.apply(V,{id:I,origin:R,primitive:e,positionsCompressed:i,normalsCompressed:r,colors:o,indices:n,edgeIndices:d,positionsDecodeMatrix:N,color:B,metallic:M,roughness:E,opacity:C})),U.push(I)}}U.length>0&&s.createEntity(f.apply(O,{id:E,isObject:!0,meshIds:U}))}}}(e,t,a,s,0,o)}};let Hv=window.pako||bv;Hv.inflate||(Hv=Hv.default);const zv=u.vec4(),Gv=u.vec4();const Wv=function(){const e=new Float32Array(3);return function(t){return e[0]=t[0]/255,e[1]=t[1]/255,e[2]=t[2]/255,e}}();function Kv(e){const t=[];for(let i=0,s=e.length;i1,l=r===L-1,A=Wv(F.subarray(6*e,6*e+3)),h=F[6*e+3]/255,c=F[6*e+4]/255,I=F[6*e+5]/255,D=o.getNextId();if(a){const o=E[e],a=v.slice(o,o+16),M=`${n}-geometry.${i}.${r}`;let F=j[M];if(!F){F={batchThisMesh:!t.reuseGeometries};let e=!1;switch(x[r]){case 0:F.primitiveName="solid",F.geometryPositions=d.subarray(w[r],l?d.length:w[r+1]),F.geometryNormals=p.subarray(y[r],l?p.length:y[r+1]),F.geometryIndices=m.subarray(B[r],l?m.length:B[r+1]),F.geometryEdgeIndices=_.subarray(C[r],l?_.length:C[r+1]),e=F.geometryPositions.length>0&&F.geometryIndices.length>0;break;case 1:F.primitiveName="surface",F.geometryPositions=d.subarray(w[r],l?d.length:w[r+1]),F.geometryNormals=p.subarray(y[r],l?p.length:y[r+1]),F.geometryIndices=m.subarray(B[r],l?m.length:B[r+1]),F.geometryEdgeIndices=_.subarray(C[r],l?_.length:C[r+1]),e=F.geometryPositions.length>0&&F.geometryIndices.length>0;break;case 2:F.primitiveName="points",F.geometryPositions=d.subarray(w[r],l?d.length:w[r+1]),F.geometryColors=Kv(g.subarray(P[r],l?g.length:P[r+1])),e=F.geometryPositions.length>0;break;case 3:F.primitiveName="lines",F.geometryPositions=d.subarray(w[r],l?d.length:w[r+1]),F.geometryIndices=m.subarray(B[r],l?m.length:B[r+1]),e=F.geometryPositions.length>0&&F.geometryIndices.length>0;break;default:continue}if(e||(F=null),F&&(F.geometryPositions.length,F.batchThisMesh)){F.decompressedPositions=new Float32Array(F.geometryPositions.length);const e=F.geometryPositions,t=F.decompressedPositions;for(let i=0,s=e.length;i0&&n.length>0;break;case 1:e="surface",t=d.subarray(w[r],l?d.length:w[r+1]),i=p.subarray(y[r],l?p.length:y[r+1]),n=m.subarray(B[r],l?m.length:B[r+1]),a=_.subarray(C[r],l?_.length:C[r+1]),u=t.length>0&&n.length>0;break;case 2:e="points",t=d.subarray(w[r],l?d.length:w[r+1]),o=Kv(g.subarray(P[r],l?g.length:P[r+1])),u=t.length>0;break;case 3:e="lines",t=d.subarray(w[r],l?d.length:w[r+1]),n=m.subarray(B[r],l?m.length:B[r+1]),u=t.length>0&&n.length>0;break;default:continue}u&&(s.createMesh(f.apply(z,{id:D,origin:Q,primitive:e,positionsCompressed:t,normalsCompressed:i,colorsCompressed:o,indices:n,edgeIndices:a,positionsDecodeMatrix:R,color:A,metallic:c,roughness:I,opacity:h})),T.push(D))}}T.length>0&&s.createEntity(f.apply(H,{id:A,isObject:!0,meshIds:T}))}}}(e,t,a,s,r,o)}};let Yv=window.pako||bv;Yv.inflate||(Yv=Yv.default);const qv=u.vec4(),Zv=u.vec4();const Jv=function(){const e=new Float32Array(3);return function(t){return e[0]=t[0]/255,e[1]=t[1]/255,e[2]=t[2]/255,e}}();const $v={version:9,parse:function(e,t,i,s,r,o){const n=function(e){return{metadata:e[0],positions:e[1],normals:e[2],colors:e[3],indices:e[4],edgeIndices:e[5],matrices:e[6],reusedGeometriesDecodeMatrix:e[7],eachGeometryPrimitiveType:e[8],eachGeometryPositionsPortion:e[9],eachGeometryNormalsPortion:e[10],eachGeometryColorsPortion:e[11],eachGeometryIndicesPortion:e[12],eachGeometryEdgeIndicesPortion:e[13],eachMeshGeometriesPortion:e[14],eachMeshMatricesPortion:e[15],eachMeshMaterial:e[16],eachEntityId:e[17],eachEntityMeshesPortion:e[18],eachTileAABB:e[19],eachTileEntitiesPortion:e[20]}}(i),a=function(e){function t(e,t){return 0===e.length?[]:Yv.inflate(e,t).buffer}return{metadata:JSON.parse(Yv.inflate(e.metadata,{to:"string"})),positions:new Uint16Array(t(e.positions)),normals:new Int8Array(t(e.normals)),colors:new Uint8Array(t(e.colors)),indices:new Uint32Array(t(e.indices)),edgeIndices:new Uint32Array(t(e.edgeIndices)),matrices:new Float32Array(t(e.matrices)),reusedGeometriesDecodeMatrix:new Float32Array(t(e.reusedGeometriesDecodeMatrix)),eachGeometryPrimitiveType:new Uint8Array(t(e.eachGeometryPrimitiveType)),eachGeometryPositionsPortion:new Uint32Array(t(e.eachGeometryPositionsPortion)),eachGeometryNormalsPortion:new Uint32Array(t(e.eachGeometryNormalsPortion)),eachGeometryColorsPortion:new Uint32Array(t(e.eachGeometryColorsPortion)),eachGeometryIndicesPortion:new Uint32Array(t(e.eachGeometryIndicesPortion)),eachGeometryEdgeIndicesPortion:new Uint32Array(t(e.eachGeometryEdgeIndicesPortion)),eachMeshGeometriesPortion:new Uint32Array(t(e.eachMeshGeometriesPortion)),eachMeshMatricesPortion:new Uint32Array(t(e.eachMeshMatricesPortion)),eachMeshMaterial:new Uint8Array(t(e.eachMeshMaterial)),eachEntityId:JSON.parse(Yv.inflate(e.eachEntityId,{to:"string"})),eachEntityMeshesPortion:new Uint32Array(t(e.eachEntityMeshesPortion)),eachTileAABB:new Float64Array(t(e.eachTileAABB)),eachTileEntitiesPortion:new Uint32Array(t(e.eachTileEntitiesPortion))}}(n);!function(e,t,i,s,r,o){const n=o.getNextId(),a=i.metadata,l=i.positions,A=i.normals,h=i.colors,c=i.indices,d=i.edgeIndices,p=i.matrices,g=i.reusedGeometriesDecodeMatrix,m=i.eachGeometryPrimitiveType,_=i.eachGeometryPositionsPortion,v=i.eachGeometryNormalsPortion,b=i.eachGeometryColorsPortion,x=i.eachGeometryIndicesPortion,w=i.eachGeometryEdgeIndicesPortion,y=i.eachMeshGeometriesPortion,P=i.eachMeshMatricesPortion,B=i.eachMeshMaterial,C=i.eachEntityId,M=i.eachEntityMeshesPortion,E=i.eachTileAABB,F=i.eachTileEntitiesPortion,I=_.length,D=y.length,S=M.length,T=F.length;r&&r.loadData(a,{includeTypes:t.includeTypes,excludeTypes:t.excludeTypes,globalizeObjectIds:t.globalizeObjectIds});const R=new Uint32Array(I);for(let e=0;e1,C=r===I-1,M=Jv(B.subarray(6*e,6*e+3)),E=B[6*e+3]/255,F=B[6*e+4]/255,D=B[6*e+5]/255,S=o.getNextId();if(a){const o=P[e],a=p.slice(o,o+16),y=`${n}-geometry.${i}.${r}`;let B=k[y];if(!B){B={batchThisMesh:!t.reuseGeometries};let e=!1;switch(m[r]){case 0:B.primitiveName="solid",B.geometryPositions=l.subarray(_[r],C?l.length:_[r+1]),B.geometryNormals=A.subarray(v[r],C?A.length:v[r+1]),B.geometryIndices=c.subarray(x[r],C?c.length:x[r+1]),B.geometryEdgeIndices=d.subarray(w[r],C?d.length:w[r+1]),e=B.geometryPositions.length>0&&B.geometryIndices.length>0;break;case 1:B.primitiveName="surface",B.geometryPositions=l.subarray(_[r],C?l.length:_[r+1]),B.geometryNormals=A.subarray(v[r],C?A.length:v[r+1]),B.geometryIndices=c.subarray(x[r],C?c.length:x[r+1]),B.geometryEdgeIndices=d.subarray(w[r],C?d.length:w[r+1]),e=B.geometryPositions.length>0&&B.geometryIndices.length>0;break;case 2:B.primitiveName="points",B.geometryPositions=l.subarray(_[r],C?l.length:_[r+1]),B.geometryColors=h.subarray(b[r],C?h.length:b[r+1]),e=B.geometryPositions.length>0;break;case 3:B.primitiveName="lines",B.geometryPositions=l.subarray(_[r],C?l.length:_[r+1]),B.geometryIndices=c.subarray(x[r],C?c.length:x[r+1]),e=B.geometryPositions.length>0&&B.geometryIndices.length>0;break;default:continue}if(e||(B=null),B&&(B.geometryPositions.length,B.batchThisMesh)){B.decompressedPositions=new Float32Array(B.geometryPositions.length),B.transformedAndRecompressedPositions=new Uint16Array(B.geometryPositions.length);const e=B.geometryPositions,t=B.decompressedPositions;for(let i=0,s=e.length;i0&&n.length>0;break;case 1:e="surface",t=l.subarray(_[r],C?l.length:_[r+1]),i=A.subarray(v[r],C?A.length:v[r+1]),n=c.subarray(x[r],C?c.length:x[r+1]),a=d.subarray(w[r],C?d.length:w[r+1]),u=t.length>0&&n.length>0;break;case 2:e="points",t=l.subarray(_[r],C?l.length:_[r+1]),o=h.subarray(b[r],C?h.length:b[r+1]),u=t.length>0;break;case 3:e="lines",t=l.subarray(_[r],C?l.length:_[r+1]),n=c.subarray(x[r],C?c.length:x[r+1]),u=t.length>0&&n.length>0;break;default:continue}u&&(s.createMesh(f.apply(H,{id:S,origin:L,primitive:e,positionsCompressed:t,normalsCompressed:i,colorsCompressed:o,indices:n,edgeIndices:a,positionsDecodeMatrix:Q,color:M,metallic:F,roughness:D,opacity:E})),O.push(S))}}O.length>0&&s.createEntity(f.apply(j,{id:E,isObject:!0,meshIds:O}))}}}(e,t,a,s,r,o)}};let eb=window.pako||bv;eb.inflate||(eb=eb.default);const tb=u.vec4(),ib=u.vec4();const sb=function(){const e=new Float32Array(3);return function(t){return e[0]=t[0]/255,e[1]=t[1]/255,e[2]=t[2]/255,e}}();function rb(e,t){const i=[];if(t.length>1)for(let e=0,s=t.length-1;e1)for(let t=0,s=e.length/3-1;t0,a=9*e,c=1===h[a+0],u=h[a+1];h[a+2],h[a+3];const d=h[a+4],p=h[a+5],g=h[a+6],m=h[a+7],f=h[a+8];if(o){const t=new Uint8Array(l.subarray(i,r)).buffer,o=`${n}-texture-${e}`;if(c)s.createTexture({id:o,buffers:[t],minFilter:d,magFilter:p,wrapS:g,wrapT:m,wrapR:f});else{const e=new Blob([t],{type:10001===u?"image/jpeg":10002===u?"image/png":"image/gif"}),i=(window.URL||window.webkitURL).createObjectURL(e),r=document.createElement("img");r.src=i,s.createTexture({id:o,image:r,minFilter:d,magFilter:p,wrapS:g,wrapT:m,wrapR:f})}}}for(let e=0;e=0?`${n}-texture-${r}`:null,normalsTextureId:a>=0?`${n}-texture-${a}`:null,metallicRoughnessTextureId:o>=0?`${n}-texture-${o}`:null,emissiveTextureId:l>=0?`${n}-texture-${l}`:null,occlusionTextureId:A>=0?`${n}-texture-${A}`:null})}const H=new Uint32Array(N);for(let e=0;e1,l=r===N-1,A=D[e],h=A>=0?`${n}-textureSet-${A}`:null,T=sb(S.subarray(6*e,6*e+3)),R=S[6*e+3]/255,L=S[6*e+4]/255,O=S[6*e+5]/255,Q=o.getNextId();if(a){const o=I[e],a=b.slice(o,o+16),A=`${n}-geometry.${i}.${r}`;let F=W[A];if(!F){F={batchThisMesh:!t.reuseGeometries};let e=!1;switch(w[r]){case 0:F.primitiveName="solid",F.geometryPositions=c.subarray(y[r],l?c.length:y[r+1]),F.geometryNormals=d.subarray(P[r],l?d.length:P[r+1]),F.geometryUVs=g.subarray(C[r],l?g.length:C[r+1]),F.geometryIndices=m.subarray(M[r],l?m.length:M[r+1]),F.geometryEdgeIndices=_.subarray(E[r],l?_.length:E[r+1]),e=F.geometryPositions.length>0&&F.geometryIndices.length>0;break;case 1:F.primitiveName="surface",F.geometryPositions=c.subarray(y[r],l?c.length:y[r+1]),F.geometryNormals=d.subarray(P[r],l?d.length:P[r+1]),F.geometryUVs=g.subarray(C[r],l?g.length:C[r+1]),F.geometryIndices=m.subarray(M[r],l?m.length:M[r+1]),F.geometryEdgeIndices=_.subarray(E[r],l?_.length:E[r+1]),e=F.geometryPositions.length>0&&F.geometryIndices.length>0;break;case 2:F.primitiveName="points",F.geometryPositions=c.subarray(y[r],l?c.length:y[r+1]),F.geometryColors=p.subarray(B[r],l?p.length:B[r+1]),e=F.geometryPositions.length>0;break;case 3:F.primitiveName="lines",F.geometryPositions=c.subarray(y[r],l?c.length:y[r+1]),F.geometryIndices=m.subarray(M[r],l?m.length:M[r+1]),e=F.geometryPositions.length>0&&F.geometryIndices.length>0;break;case 4:F.primitiveName="lines",F.geometryPositions=c.subarray(y[r],l?c.length:y[r+1]),F.geometryIndices=rb(F.geometryPositions,m.subarray(M[r],l?m.length:M[r+1])),e=F.geometryPositions.length>0&&F.geometryIndices.length>0;break;default:continue}if(e||(F=null),F&&(F.geometryPositions.length,F.batchThisMesh)){F.decompressedPositions=new Float32Array(F.geometryPositions.length),F.transformedAndRecompressedPositions=new Uint16Array(F.geometryPositions.length);const e=F.geometryPositions,t=F.decompressedPositions;for(let i=0,s=e.length;i0&&a.length>0;break;case 1:e="surface",t=c.subarray(y[r],l?c.length:y[r+1]),i=d.subarray(P[r],l?d.length:P[r+1]),o=g.subarray(C[r],l?g.length:C[r+1]),a=m.subarray(M[r],l?m.length:M[r+1]),A=_.subarray(E[r],l?_.length:E[r+1]),u=t.length>0&&a.length>0;break;case 2:e="points",t=c.subarray(y[r],l?c.length:y[r+1]),n=p.subarray(B[r],l?p.length:B[r+1]),u=t.length>0;break;case 3:e="lines",t=c.subarray(y[r],l?c.length:y[r+1]),a=m.subarray(M[r],l?m.length:M[r+1]),u=t.length>0&&a.length>0;break;case 4:e="lines",t=c.subarray(y[r],l?c.length:y[r+1]),a=rb(t,m.subarray(M[r],l?m.length:M[r+1])),u=t.length>0&&a.length>0;break;default:continue}u&&(s.createMesh(f.apply(j,{id:Q,textureSetId:h,origin:z,primitive:e,positionsCompressed:t,normalsCompressed:i,uv:o&&o.length>0?o:null,colorsCompressed:n,indices:a,edgeIndices:A,positionsDecodeMatrix:v,color:T,metallic:L,roughness:O,opacity:R})),U.push(Q))}}U.length>0&&s.createEntity(f.apply(Q,{id:l,isObject:!0,meshIds:U}))}}}(e,t,a,s,r,o)}},nb={};nb[yv.version]=yv,nb[Cv.version]=Cv,nb[Fv.version]=Fv,nb[Sv.version]=Sv,nb[Lv.version]=Lv,nb[Ov.version]=Ov,nb[jv.version]=jv,nb[Xv.version]=Xv,nb[$v.version]=$v,nb[ob.version]=ob;class ab extends N{constructor(e,t={}){super("XKTLoader",e,t),this._maxGeometryBatchSize=t.maxGeometryBatchSize,this.textureTranscoder=t.textureTranscoder,this.dataSource=t.dataSource,this.objectDefaults=t.objectDefaults,this.includeTypes=t.includeTypes,this.excludeTypes=t.excludeTypes,this.excludeUnclassifiedObjects=t.excludeUnclassifiedObjects,this.reuseGeometries=t.reuseGeometries}get supportedVersions(){return Object.keys(nb)}get textureTranscoder(){return this._textureTranscoder}set textureTranscoder(e){this._textureTranscoder=e}get dataSource(){return this._dataSource}set dataSource(e){this._dataSource=e||new vv}get objectDefaults(){return this._objectDefaults}set objectDefaults(e){this._objectDefaults=e||sv}get includeTypes(){return this._includeTypes}set includeTypes(e){this._includeTypes=e}get excludeTypes(){return this._excludeTypes}set excludeTypes(e){this._excludeTypes=e}get excludeUnclassifiedObjects(){return this._excludeUnclassifiedObjects}set excludeUnclassifiedObjects(e){this._excludeUnclassifiedObjects=!!e}get globalizeObjectIds(){return this._globalizeObjectIds}set globalizeObjectIds(e){this._globalizeObjectIds=!!e}get reuseGeometries(){return this._reuseGeometries}set reuseGeometries(e){this._reuseGeometries=!1!==e}load(e={}){if(e.id&&this.viewer.scene.components[e.id]&&(this.error("Component with this ID already exists in viewer: "+e.id+" - will autogenerate this ID"),delete e.id),!(e.src||e.xkt||e.manifestSrc||e.manifest))return this.error("load() param expected: src, xkt, manifestSrc or manifestData"),o;const t={},i=e.includeTypes||this._includeTypes,s=e.excludeTypes||this._excludeTypes,r=e.objectDefaults||this._objectDefaults;if(t.reuseGeometries=null!==e.reuseGeometries&&void 0!==e.reuseGeometries?e.reuseGeometries:!1!==this._reuseGeometries,i){t.includeTypesMap={};for(let e=0,s=i.length;e{o.finalize(),a.finalize(),this.viewer.scene.canvas.spinner.processes--,o.once("destroyed",(()=>{this.viewer.metaScene.destroyMetaModel(a.id)})),this.scheduleTask((()=>{o.destroyed||(o.scene.fire("modelLoaded",o.id),o.fire("loaded",!0,!1))}))},A=e=>{this.viewer.scene.canvas.spinner.processes--,this.error(e),o.fire("error",e)};let h=0;const c={getNextId:()=>`${n}.${h++}`};if(e.metaModelSrc||e.metaModelData)if(e.metaModelSrc){const r=e.metaModelSrc;this._dataSource.getMetaModel(r,(r=>{o.destroyed||(a.loadData(r,{includeTypes:i,excludeTypes:s,globalizeObjectIds:t.globalizeObjectIds}),e.src?this._loadModel(e.src,e,t,o,null,c,l,A):(this._parseModel(e.xkt,e,t,o,null,c),l()))}),(e=>{A(`load(): Failed to load model metadata for model '${n} from '${r}' - ${e}`)}))}else e.metaModelData&&(a.loadData(e.metaModelData,{includeTypes:i,excludeTypes:s,globalizeObjectIds:t.globalizeObjectIds}),e.src?this._loadModel(e.src,e,t,o,null,c,l,A):(this._parseModel(e.xkt,e,t,o,null,c),l()));else if(e.src)this._loadModel(e.src,e,t,o,a,c,l,A);else if(e.xkt)this._parseModel(e.xkt,e,t,o,a,c),l();else if(e.manifestSrc||e.manifest){const r=e.manifestSrc?function(e){const t=e.split("/");return t.pop(),t.join("/")+"/"}(e.manifestSrc):"",n=(e,o,n)=>{let l=0;const A=()=>{l>=e.length?o():this._dataSource.getMetaModel(`${r}${e[l]}`,(e=>{a.loadData(e,{includeTypes:i,excludeTypes:s,globalizeObjectIds:t.globalizeObjectIds}),l++,this.scheduleTask(A,100)}),n)};A()},h=(i,s,n)=>{let a=0;const l=()=>{a>=i.length?s():this._dataSource.getXKT(`${r}${i[a]}`,(i=>{this._parseModel(i,e,t,o,null,c),a++,this.scheduleTask(l,100)}),n)};l()},u=(i,s,n)=>{let l=0;const A=()=>{l>=i.length?s():this._dataSource.getXKT(`${r}${i[l]}`,(i=>{this._parseModel(i,e,t,o,a,c),l++,this.scheduleTask(A,100)}),n)};A()};if(e.manifest){const t=e.manifest,i=t.xktFiles;if(!i||0===i.length)return void A("load(): Failed to load model manifest - manifest not valid");const s=t.metaModelFiles;s?n(s,(()=>{h(i,l,A)}),A):u(i,l,A)}else this._dataSource.getManifest(e.manifestSrc,(e=>{if(o.destroyed)return;const t=e.xktFiles;if(!t||0===t.length)return void A("load(): Failed to load model manifest - manifest not valid");const i=e.metaModelFiles;i?n(i,(()=>{h(t,l,A)}),A):u(t,l,A)}),A)}return o}_loadModel(e,t,i,s,r,o,n,a){this._dataSource.getXKT(t.src,(e=>{this._parseModel(e,t,i,s,r,o),n()}),a)}_parseModel(e,t,i,s,r,o){if(s.destroyed)return;const n=new DataView(e),a=new Uint8Array(e),l=n.getUint32(0,!0),A=nb[l];if(!A)return void this.error("Unsupported .XKT file version: "+l+" - this XKTLoaderPlugin supports versions "+Object.keys(nb));this.log("Loading .xkt V"+l);const h=n.getUint32(4,!0),c=[];let u=4*(h+2);for(let e=0;ee.size)throw new RangeError("offset:"+t+", length:"+i+", size:"+e.size);return e.slice?e.slice(t,t+i):e.webkitSlice?e.webkitSlice(t,t+i):e.mozSlice?e.mozSlice(t,t+i):e.msSlice?e.msSlice(t,t+i):void 0}(e,t,i))}catch(e){r(e)}}}function p(){}function g(e){var i,s=this;s.init=function(e){i=new Blob([],{type:n}),e()},s.writeUint8Array=function(e,s){i=new Blob([i,t?e:e.buffer],{type:n}),s()},s.getData=function(t,s){var r=new FileReader;r.onload=function(e){t(e.target.result)},r.onerror=s,r.readAsText(i,e)}}function m(t){var i=this,s="",r="";i.init=function(e){s+="data:"+(t||"")+";base64,",e()},i.writeUint8Array=function(t,i){var o,n=r.length,a=r;for(r="",o=0;o<3*Math.floor((n+t.length)/3)-n;o++)a+=String.fromCharCode(t[o]);for(;o2?s+=e.btoa(a):r=a,i()},i.getData=function(t){t(s+e.btoa(r))}}function f(e){var i,s=this;s.init=function(t){i=new Blob([],{type:e}),t()},s.writeUint8Array=function(s,r){i=new Blob([i,t?s:s.buffer],{type:e}),r()},s.getData=function(e){e(i)}}function _(e,t,i,s,r,n,a,l,A,h){var c,u,d,p=0,g=t.sn;function m(){e.removeEventListener("message",f,!1),l(u,d)}function f(t){var i=t.data,r=i.data,o=i.error;if(o)return o.toString=function(){return"Error: "+this.message},void A(o);if(i.sn===g)switch("number"==typeof i.codecTime&&(e.codecTime+=i.codecTime),"number"==typeof i.crcTime&&(e.crcTime+=i.crcTime),i.type){case"append":r?(u+=r.length,s.writeUint8Array(r,(function(){_()}),h)):_();break;case"flush":d=i.crc,r?(u+=r.length,s.writeUint8Array(r,(function(){m()}),h)):m();break;case"progress":a&&a(c+i.loaded,n);break;case"importScripts":case"newTask":case"echo":break;default:console.warn("zip.js:launchWorkerProcess: unknown message: ",i)}}function _(){(c=p*o)<=n?i.readUint8Array(r+c,Math.min(o,n-c),(function(i){a&&a(c,n);var s=0===c?t:{sn:g};s.type="append",s.data=i;try{e.postMessage(s,[i.buffer])}catch(t){e.postMessage(s)}p++}),A):e.postMessage({sn:g,type:"flush"})}u=0,e.addEventListener("message",f,!1),_()}function v(e,t,i,s,r,n,l,A,h,c){var u,d=0,p=0,g="input"===n,m="output"===n,f=new a;!function n(){var a;if((u=d*o)127?r[i-128]:String.fromCharCode(i);return s}function w(e){return decodeURIComponent(escape(e))}function y(e){var t,i="";for(t=0;t>16,i=65535&e;try{return new Date(1980+((65024&t)>>9),((480&t)>>5)-1,31&t,(63488&i)>>11,(2016&i)>>5,2*(31&i),0)}catch(e){}}(e.lastModDateRaw),1!=(1&e.bitFlag)?((s||8!=(8&e.bitFlag))&&(e.crc32=t.view.getUint32(i+10,!0),e.compressedSize=t.view.getUint32(i+14,!0),e.uncompressedSize=t.view.getUint32(i+18,!0)),4294967295!==e.compressedSize&&4294967295!==e.uncompressedSize?(e.filenameLength=t.view.getUint16(i+22,!0),e.extraFieldLength=t.view.getUint16(i+24,!0)):r("File is using Zip64 (4gb+ file size).")):r("File contains encrypted entry.")}function B(t,o,n){var a=0;function l(){}l.prototype.getData=function(s,o,l,h){var c=this;function u(e,t){h&&!function(e){var t=A(4);return t.view.setUint32(0,e),c.crc32==t.view.getUint32(0)}(t)?n("CRC failed."):s.getData((function(e){o(e)}))}function d(e){n(e||r)}function p(e){n(e||"Error while writing file data.")}t.readUint8Array(c.offset,30,(function(r){var o,g=A(r.length,r);1347093252==g.view.getUint32(0)?(P(c,g,4,!1,n),o=c.offset+30+c.filenameLength+c.extraFieldLength,s.init((function(){0===c.compressionMethod?b(c._worker,a++,t,s,o,c.compressedSize,h,u,l,d,p):function(t,i,s,r,o,n,a,l,A,h,c){var u=a?"output":"none";e.zip.useWebWorkers?_(t,{sn:i,codecClass:"Inflater",crcType:u},s,r,o,n,A,l,h,c):v(new e.zip.Inflater,s,r,o,n,u,A,l,h,c)}(c._worker,a++,t,s,o,c.compressedSize,h,u,l,d,p)}),p)):n(i)}),d)};var h={getEntries:function(e){var r=this._worker;!function(e){t.size<22?n(i):r(22,(function(){r(Math.min(65558,t.size),(function(){n(i)}))}));function r(i,r){t.readUint8Array(t.size-i,i,(function(t){for(var i=t.length-22;i>=0;i--)if(80===t[i]&&75===t[i+1]&&5===t[i+2]&&6===t[i+3])return void e(new DataView(t.buffer,i,22));r()}),(function(){n(s)}))}}((function(o){var a,h;a=o.getUint32(16,!0),h=o.getUint16(8,!0),a<0||a>=t.size?n(i):t.readUint8Array(a,t.size-a,(function(t){var s,o,a,c,u=0,d=[],p=A(t.length,t);for(s=0;s>>8^i[255&(t^e[s])];this.crc=t},a.prototype.get=function(){return~this.crc},a.prototype.table=function(){var e,t,i,s=[];for(e=0;e<256;e++){for(i=e,t=0;t<8;t++)1&i?i=i>>>1^3988292384:i>>>=1;s[e]=i}return s}(),l.prototype.append=function(e,t){return e},l.prototype.flush=function(){},c.prototype=new h,c.prototype.constructor=c,u.prototype=new h,u.prototype.constructor=u,d.prototype=new h,d.prototype.constructor=d,p.prototype.getData=function(e){e(this.data)},g.prototype=new p,g.prototype.constructor=g,m.prototype=new p,m.prototype.constructor=m,f.prototype=new p,f.prototype.constructor=f;var F={deflater:["z-worker.js","deflate.js"],inflater:["z-worker.js","inflate.js"]};function I(t,i,s){if(null===e.zip.workerScripts||null===e.zip.workerScriptsPath){var r;if(e.zip.workerScripts){if(r=e.zip.workerScripts[t],!Array.isArray(r))return void s(new Error("zip.workerScripts."+t+" is not an array!"));r=function(e){var t=document.createElement("a");return e.map((function(e){return t.href=e,t.href}))}(r)}else(r=F[t].slice(0))[0]=(e.zip.workerScriptsPath||"")+r[0];var o=new Worker(r[0]);o.codecTime=o.crcTime=0,o.postMessage({type:"importScripts",scripts:r.slice(1)}),o.addEventListener("message",(function e(t){var r=t.data;if(r.error)return o.terminate(),void s(r.error);"importScripts"===r.type&&(o.removeEventListener("message",e),o.removeEventListener("error",n),i(o))})),o.addEventListener("error",n)}else s(new Error("Either zip.workerScripts or zip.workerScriptsPath may be set, not both."));function n(e){o.terminate(),s(e)}}function D(e){console.error(e)}e.zip={Reader:h,Writer:p,BlobReader:d,Data64URIReader:u,TextReader:c,BlobWriter:f,Data64URIWriter:m,TextWriter:g,createReader:function(e,t,i){i=i||D,e.init((function(){B(e,t,i)}),i)},createWriter:function(e,t,i,s){i=i||D,s=!!s,e.init((function(){E(e,t,i,s)}),i)},useWebWorkers:!0,workerScriptsPath:null,workerScripts:null}}(lb);!function(e){var t,i,s=e.Reader,r=e.Writer;try{i=0===new Blob([new DataView(new ArrayBuffer(0))]).size}catch(e){}function o(e){var t=this;function i(i,s){var r;t.data?i():((r=new XMLHttpRequest).addEventListener("load",(function(){t.size||(t.size=Number(r.getResponseHeader("Content-Length"))||Number(r.response.byteLength)),t.data=new Uint8Array(r.response),i()}),!1),r.addEventListener("error",s,!1),r.open("GET",e),r.responseType="arraybuffer",r.send())}t.size=0,t.init=function(s,r){if(function(e){var t=document.createElement("a");return t.href=e,"http:"===t.protocol||"https:"===t.protocol}(e)){var o=new XMLHttpRequest;o.addEventListener("load",(function(){t.size=Number(o.getResponseHeader("Content-Length")),t.size?s():i(s,r)}),!1),o.addEventListener("error",r,!1),o.open("HEAD",e),o.send()}else i(s,r)},t.readUint8Array=function(e,s,r,o){i((function(){r(new Uint8Array(t.data.subarray(e,e+s)))}),o)}}function n(e){var t=this;t.size=0,t.init=function(i,s){var r=new XMLHttpRequest;r.addEventListener("load",(function(){t.size=Number(r.getResponseHeader("Content-Length")),"bytes"==r.getResponseHeader("Accept-Ranges")?i():s("HTTP Range not supported.")}),!1),r.addEventListener("error",s,!1),r.open("HEAD",e),r.send()},t.readUint8Array=function(t,i,s,r){!function(t,i,s,r){var o=new XMLHttpRequest;o.open("GET",e),o.responseType="arraybuffer",o.setRequestHeader("Range","bytes="+t+"-"+(t+i-1)),o.addEventListener("load",(function(){s(o.response)}),!1),o.addEventListener("error",r,!1),o.send()}(t,i,(function(e){s(new Uint8Array(e))}),r)}}function a(e){var t=this;t.size=0,t.init=function(i,s){t.size=e.byteLength,i()},t.readUint8Array=function(t,i,s,r){s(new Uint8Array(e.slice(t,t+i)))}}function l(){var e,t=this;t.init=function(t,i){e=new Uint8Array,t()},t.writeUint8Array=function(t,i,s){var r=new Uint8Array(e.length+t.length);r.set(e),r.set(t,e.length),e=r,i()},t.getData=function(t){t(e.buffer)}}function A(e,t){var s,r=this;r.init=function(t,i){e.createWriter((function(e){s=e,t()}),i)},r.writeUint8Array=function(e,r,o){var n=new Blob([i?e:e.buffer],{type:t});s.onwrite=function(){s.onwrite=null,r()},s.onerror=o,s.write(n)},r.getData=function(t){e.file(t)}}o.prototype=new s,o.prototype.constructor=o,n.prototype=new s,n.prototype.constructor=n,a.prototype=new s,a.prototype.constructor=a,l.prototype=new r,l.prototype.constructor=l,A.prototype=new r,A.prototype.constructor=A,e.FileWriter=A,e.HttpReader=o,e.HttpRangeReader=n,e.ArrayBufferReader=a,e.ArrayBufferWriter=l,e.fs&&((t=e.fs.ZipDirectoryEntry).prototype.addHttpContent=function(i,s,r){return function(i,s,r,o){if(i.directory)return o?new t(i.fs,s,r,i):new e.fs.ZipFileEntry(i.fs,s,r,i);throw"Parent entry is not a directory."}(this,i,{data:s,Reader:r?n:o})},t.prototype.importHttpContent=function(e,t,i,s){this.importZip(t?new n(e):new o(e),i,s)},e.fs.FS.prototype.importHttpContent=function(e,i,s,r){this.entries=[],this.root=new t(this),this.root.importHttpContent(e,i,s,r)})}(lb.zip),u.vec2(),u.vec3(),u.vec3(),u.vec3();class Ab{constructor(e={}){this._dataDir=e.dataDir||""}getProjects(e,t){const i=this._dataDir+"/projects/index.json";f.loadJSON(i,e,t)}getProject(e,t,i){const s=this._dataDir+"/projects/"+e+"/index.json";f.loadJSON(s,t,i)}getMetadata(e,t,i,s){const r=this._dataDir+"/projects/"+e+"/models/"+t+"/metadata.json";f.loadJSON(r,i,s)}getGeometry(e,t,i,s){const r=this._dataDir+"/projects/"+e+"/models/"+t+"/geometry.xkt";f.loadArraybuffer(r,i,s)}getObjectInfo(e,t,i,s,r){const o=this._dataDir+"/projects/"+e+"/models/"+t+"/props/"+i+".json";f.loadJSON(o,s,r)}getIssues(e,t,i,s){const r=this._dataDir+"/projects/"+e+"/models/"+t+"/issues.json";f.loadJSON(r,i,s)}getSplitModelManifest(e,t,i,s,r){const o=this._dataDir+"/projects/"+e+"/models/"+t+"/"+i;f.loadJSON(o,s,r)}getSplitModelMetadata(e,t,i,s,r){const o=this._dataDir+"/projects/"+e+"/models/"+t+"/"+i;f.loadJSON(o,s,r)}getSplitModelGeometry(e,t,i,s,r){const o=this._dataDir+"/projects/"+e+"/models/"+t+"/"+i;f.loadArraybuffer(o,s,r)}}class hb{constructor(e,t){this.items=e||[],this._lastUniqueId=(t||0)+1}addItem(){let e;if(2===arguments.length){const t=arguments[0];if(e=arguments[1],this.items[t])throw"ID clash: '"+t+"'";return this.items[t]=e,t}for(e=arguments[0]||{};;){const t=this._lastUniqueId++;if(!this.items[t])return this.items[t]=e,t}}removeItem(e){const t=this.items[e];return delete this.items[e],t}}class cb{constructor(e,t,i,s){this.bimViewer=e?e.bimViewer||e:this,this.server=e?e.server:i,this.viewer=e?e.viewer:s,this._children=[],e&&e._children.push(this),this._subIdMap=null,this._subIdEvents=null,this._eventSubs=null,this._events=null,this._eventCallDepth=0,this._enabled=null,this._active=null}fire(e,t,i){this._events||(this._events={}),this._eventSubs||(this._eventSubs={}),!0!==i&&(this._events[e]=t||!0);const s=this._eventSubs[e];let r;if(s)for(const i in s)s.hasOwnProperty(i)&&(r=s[i],this._eventCallDepth++,this._eventCallDepth<300?r.callback.call(r.scope,t):this.error("fire: potential stack overflow from recursive event '"+e+"' - dropping this event"),this._eventCallDepth--)}on(e,t,i){this._events||(this._events={}),this._subIdMap||(this._subIdMap=new hb),this._subIdEvents||(this._subIdEvents={}),this._eventSubs||(this._eventSubs={});let s=this._eventSubs[e];s||(s={},this._eventSubs[e]=s);const r=this._subIdMap.addItem();s[r]={callback:t,scope:i||this},this._subIdEvents[r]=e;const o=this._events[e];return void 0!==o&&t.call(i||this,o),r}off(e){if(null==e)return;if(!this._subIdEvents)return;const t=this._subIdEvents[e];if(t){delete this._subIdEvents[e];const i=this._eventSubs[t];i&&delete i[e],this._subIdMap.removeItem(e)}}once(e,t,i){const s=this,r=this.on(e,(function(e){s.off(r),t.call(i||this,e)}),i)}log(e){e="[LOG] "+e,window.console.log(e)}warn(e){e="[WARN] "+e,window.console.warn(e)}error(e){e="[ERROR] "+e,window.console.error(e)}_mutexActivation(e){const t=e.length;for(let i=0;i
Default text
',i.appendChild(this._modal),this._modalVisible=!1,this._modal.style.display="hidden"}show(e){this._modalVisible=!0,this._modal.querySelector(".xeokit-busy-modal-message").innerText=e,this._modal.style.display="block"}hide(){this._modalVisible=!1,this._modal.style.display="none"}destroy(){super.destroy(),this._modal&&(this._modal.parentNode.removeChild(this._modal),this._modal=null)}}const db=u.vec3();class pb extends cb{constructor(e,t={}){if(super(e,t),!t.buttonElement)throw"Missing config: buttonElement";const i=t.buttonElement,s=this.viewer.camera;this._modelMementos={},s.eye=[.577,.577,.577],s.look=[0,0,0],s.up=[-1,1,-1],this.bimViewer._modelsExplorer.on("modelLoaded",(e=>{this._saveModelMemento(e)})),this.bimViewer._modelsExplorer.on("modelUnloaded",(e=>{this._destroyModelMemento(e)})),this.on("enabled",(e=>{e?i.classList.remove("disabled"):i.classList.add("disabled")})),this.on("active",(e=>{e?i.classList.add("active"):i.classList.remove("active")})),i.addEventListener("click",(e=>{this.getEnabled()&&this.reset(),e.preventDefault()}))}_saveModelMemento(e){const t=this.viewer.metaScene.metaModels[e];if(!t)return;const i=new eh;i.saveObjects(this.viewer.scene,t,{visible:!0,edges:!0,xrayed:!0,highlighted:!0,selected:!0,clippable:!0,pickable:!0,colorize:!1,opacity:!1}),this._modelMementos[e]=i}_restoreModelMemento(e){const t=this.viewer.metaScene.metaModels[e];if(!t)return;this._modelMementos[e].restoreObjects(this.viewer.scene,t)}_destroyModelMemento(e){delete this._modelMementos[e]}reset(){const e=this.viewer.scene.modelIds;for(var t=0,i=e.length;t{e?i.classList.remove("disabled"):i.classList.add("disabled")})),this.on("active",(e=>{e?i.classList.add("active"):i.classList.remove("active")})),i.addEventListener("click",(e=>{this.getEnabled()&&this.fit(),e.preventDefault()}))}fit(){const e=this.viewer.scene,t=e.getAABB(e.visibleObjectIds);this.viewer.cameraFlight.flyTo({aabb:t}),this.viewer.cameraControl.pivotPos=u.getAABB3Center(t,gb)}set fov(e){this.viewer.scene.cameraFlight.fitFOV=e}get fov(){return this.viewer.scene.cameraFlight.fitFOV}set duration(e){this.viewer.scene.cameraFlight.duration=e}get duration(){return this.viewer.scene.cameraFlight.duration}}class fb extends cb{constructor(e,t){if(super(e,t),!t.buttonElement)throw"Missing config: buttonElement";const i=t.buttonElement,s=this.viewer.cameraControl,r=t.cameraControlNavModeMediator;s.navMode="orbit",s.followPointer=!0,this.on("enabled",(e=>{e?i.classList.remove("disabled"):i.classList.add("disabled")})),this.on("active",(e=>{e?i.classList.add("active"):i.classList.remove("active")})),this.on("active",(e=>{r.setFirstPersonModeActive(e),e?(s.followPointer=!0,s.pivoting=!1):s.pivoting=!0})),i.addEventListener("click",(e=>{if(this.getEnabled()){const e=this.getActive();this.setActive(!e)}e.preventDefault()})),this.bimViewer.on("reset",(()=>{this.setActive(!1)}))}}class _b extends cb{constructor(e,t){if(super(e,t),!t.buttonElement)throw"Missing config: buttonElement";const i=t.buttonElement;this.on("enabled",(e=>{e?i.classList.remove("disabled"):i.classList.add("disabled")})),this.on("active",(e=>{e?(i.classList.add("active"),this.viewer.cameraControl.doublePickFlyTo=!1,this._onPick=this.viewer.cameraControl.on("picked",(e=>{e.entity&&(e.entity.visible=!1)}))):(i.classList.remove("active"),this.viewer.cameraControl.doublePickFlyTo=!1,void 0!==this._onPick&&(this.viewer.cameraControl.off(this._onPick),this._onPick=void 0))})),i.addEventListener("click",(e=>{if(this.getEnabled()){this.bimViewer._sectionTool.hideControl();const e=this.getActive();this.setActive(!e)}e.preventDefault()})),this.bimViewer.on("reset",(()=>{this.setActive(!1)}))}}class vb extends cb{constructor(e,t){if(super(e),!t.buttonElement)throw"Missing config: buttonElement";const i=t.buttonElement;this.on("enabled",(e=>{e?i.classList.remove("disabled"):i.classList.add("disabled")})),this.on("active",(e=>{e?(i.classList.add("active"),this._onPick=this.viewer.cameraControl.on("picked",(e=>{e.entity&&(e.entity.selected=!e.entity.selected)}))):(i.classList.remove("active"),void 0!==this._onPick&&(this.viewer.cameraControl.off(this._onPick),this._onPick=void 0))})),i.addEventListener("click",(e=>{if(this.getEnabled()){this.bimViewer._sectionTool.hideControl();const e=this.getActive();this.setActive(!e)}e.preventDefault()})),this.bimViewer.on("reset",(()=>{this.setActive(!1)}))}}class bb extends cb{constructor(e,t){if(super(e,t),!t.buttonElement)throw"Missing config: buttonElement";this._buttonElement=t.buttonElement,this.on("enabled",(e=>{e?this._buttonElement.classList.remove("disabled"):this._buttonElement.classList.add("disabled")})),this._buttonElement.addEventListener("click",(e=>{this.getEnabled()&&this.setActive(!this.getActive(),(()=>{})),e.preventDefault()})),this.bimViewer.on("reset",(()=>{this.setActive(!1)})),this.viewer.scene.on("modelLoaded",(e=>{if(!this._active){const e=this.viewer.metaScene.getObjectIDsByType("IfcSpace");this.viewer.scene.setObjectsCulled(e,!0)}})),this._active=!1,this._buttonElement.classList.remove("active")}setActive(e){this._active!==e&&(this._active=e,e?(this._buttonElement.classList.add("active"),this._enterShowSpacesMode(),this.fire("active",this._active)):(this._buttonElement.classList.remove("active"),this._exitShowSpacesMode(),this.fire("active",this._active)))}_enterShowSpacesMode(){const e=this.viewer,t=e.scene,i=e.metaScene.getObjectIDsByType("IfcSpace");t.setObjectsCulled(i,!1)}_exitShowSpacesMode(){const e=this.viewer,t=e.scene,i=e.metaScene.getObjectIDsByType("IfcSpace");t.setObjectsCulled(i,!0)}}class xb extends cb{constructor(e,t){super(e)}}const wb=u.AABB3(),yb=u.vec3();class Pb extends o{constructor(e={}){if(!e.sectionPlanesPlugin)throw"Missing config: sectionPlanesPlugin";super(f.apply({},e)),this._sectionPlanesPlugin=e.sectionPlanesPlugin,this._viewer=this._sectionPlanesPlugin.viewer,this._onSceneSectionPlaneCreated=this._viewer.scene.on("sectionPlaneCreated",(()=>{this._buildMenu()})),this._onSceneSectionPlaneDestroyed=this._viewer.scene.on("sectionPlaneDestroyed",(()=>{this._buildMenu()})),this._buildMenu()}_buildMenu(){const e=this._sectionPlanesPlugin,t=Object.values(e.sectionPlanes),i=[];for(let s=0,r=t.length;s`${e.viewer.localeService.translate("sectionToolContextMenu.slice")||"Slice"} #`+(s+1),doHoverEnter(t){e.hideControl(),e.showControl(r.id)},doHoverLeave(t){e.hideControl()},items:[[{getTitle:e=>r.active?e.viewer.localeService.translate("sectionToolContextMenu.deactivate")||"Disable":e.viewer.localeService.translate("sectionToolContextMenu.activate")||"Enable",doAction:e=>{r.active=!r.active}},{getTitle:e=>e.viewer.localeService.translate("sectionToolContextMenu.edit")||"Edit",getEnabled:()=>r.active,doAction:t=>{e.hideControl(),e.showControl(r.id);const i=r.pos;wb.set(this._viewer.scene.aabb),u.getAABB3Center(wb,yb),wb[0]+=i[0]-yb[0],wb[1]+=i[1]-yb[1],wb[2]+=i[2]-yb[2],wb[3]+=i[0]-yb[0],wb[4]+=i[1]-yb[1],wb[5]+=i[2]-yb[2],this._viewer.cameraFlight.flyTo({aabb:wb,fitFOV:65})}},{getTitle:e=>e.viewer.localeService.translate("sectionToolContextMenu.flip")||"Flip",getEnabled:()=>r.active,doAction:e=>{r.flipDir()}},{getTitle:e=>e.viewer.localeService.translate("sectionToolContextMenu.delete")||"Delete",doAction:e=>{r.destroy()}}]]})}this.items=[[{getTitle:e=>e.viewer.localeService.translate("sectionToolContextMenu.clearSlices")||"Clear Slices",getEnabled:e=>e.bimViewer.getNumSections()>0,doAction:e=>{e.bimViewer.clearSections()}},{getTitle:e=>e.viewer.localeService.translate("sectionToolContextMenu.flipSlices")||"Flip Slices",getEnabled:e=>e.bimViewer.getNumSections()>0,doAction:e=>{e.bimViewer.flipSections()}}],[{getTitle:e=>e.viewer.localeService.translate("sectionToolContextMenu.disableAllSlices")||"Disable all Slices",getEnabled:e=>e.bimViewer.getNumSections()>0,doAction:e=>{e.bimViewer.disableSections()}},{getTitle:e=>e.viewer.localeService.translate("sectionToolContextMenu.enableAllSlices")||"Enable all Slices",getEnabled:e=>e.bimViewer.getNumSections()>0,doAction:e=>{e.bimViewer.enableSections()}}],i]}destroy(){super.destroy();const e=this._viewer.scene;e.off(this._onSceneSectionPlaneCreated),e.off(this._onSceneSectionPlaneDestroyed)}}class Bb extends cb{constructor(e,t){if(super(e,t),!t.buttonElement)throw"Missing config: buttonElement";if(!t.menuButtonElement)throw"Missing config: menuButtonElement";this._buttonElement=t.buttonElement,this._counterElement=t.counterElement,this._menuButtonElement=t.menuButtonElement,this._menuButtonArrowElement=t.menuButtonArrowElement,this._sectionPlanesPlugin=new gv(this.viewer,{}),this._sectionToolContextMenu=new Pb({sectionPlanesPlugin:this._sectionPlanesPlugin,hideOnMouseDown:!1,hideOnAction:!1}),this._sectionPlanesPlugin.setOverviewVisible(!1),this.on("enabled",(e=>{e?(this._buttonElement.classList.remove("disabled"),this._counterElement&&this._counterElement.classList.remove("disabled"),this._menuButtonElement.classList.remove("disabled"),this._menuButtonArrowElement.classList.remove("disabled")):(this._buttonElement.classList.add("disabled"),this._counterElement&&this._counterElement.classList.add("disabled"),this._menuButtonElement.classList.add("disabled"),this._menuButtonArrowElement.classList.add("disabled"))})),this.on("active",(e=>{e?(this._buttonElement.classList.add("active"),this._counterElement&&this._counterElement.classList.add("active"),this._menuButtonElement.classList.add("active"),this._menuButtonArrowElement.classList.add("active")):(this._buttonElement.classList.remove("active"),this._counterElement&&this._counterElement.classList.remove("active"),this._menuButtonElement.classList.remove("active"),this._menuButtonArrowElement.classList.remove("active"))})),this.on("active",(e=>{e||this._sectionPlanesPlugin.hideControl()})),this._buttonElement.addEventListener("click",(e=>{if(!this.getEnabled())return;if(e.target===this._menuButtonElement||e.target.parentNode===this._menuButtonElement){if(this._sectionToolContextMenu.shown)this._sectionToolContextMenu.hide();else{this._sectionToolContextMenu.context={bimViewer:this.bimViewer,viewer:this.viewer,sectionTool:this};const e=this._menuButtonElement.getBoundingClientRect();this._sectionToolContextMenu.show(e.left,e.bottom+5)}return}const t=this.getActive();this.setActive(!t),e.preventDefault()})),this._sectionToolContextMenu.on("shown",(()=>{this._menuButtonArrowElement.classList.remove("xeokit-arrow-down"),this._menuButtonArrowElement.classList.add("xeokit-arrow-up")})),this._sectionToolContextMenu.on("hidden",(()=>{this._menuButtonArrowElement.classList.remove("xeokit-arrow-up"),this._menuButtonArrowElement.classList.add("xeokit-arrow-down")})),this.bimViewer.on("reset",(()=>{this.clear(),this.setActive(!1)})),this.viewer.scene.on("sectionPlaneCreated",(()=>{this._updateSectionPlanesCount()})),this.viewer.scene.on("sectionPlaneDestroyed",(()=>{this._updateSectionPlanesCount()})),this._initSectionMode()}_initSectionMode(){document.addEventListener("mouseup",(e=>{if(1===e.which){const t=function(e){if(e){let t=e.target,i=0,s=0;for(;t.offsetParent;)i+=t.offsetLeft,s+=t.offsetTop,t=t.offsetParent;return[e.pageX-i,e.pageY-s]}e=window.event,this.mouseCanvasPos[0]=e.x,this.mouseCanvasPos[1]=e.y}(e);if(!this.getActive()||!this.getEnabled())return;const i=this.viewer.scene.pick({canvasPos:t,pickSurface:!0});if(i&&i.entity&&i.entity.isObject){const e=this._sectionPlanesPlugin.createSectionPlane({pos:i.worldPos,dir:u.mulVec3Scalar(i.worldNormal,-1)});this._sectionPlanesPlugin.showControl(e.id)}}})),this._updateSectionPlanesCount()}_updateSectionPlanesCount(){this._counterElement&&(this._counterElement.innerText=""+this.getNumSections())}getNumSections(){return Object.keys(this.viewer.scene.sectionPlanes).length}clear(){this._sectionPlanesPlugin.clear(),this._updateSectionPlanesCount()}flipSections(){this._sectionPlanesPlugin.flipSectionPlanes()}enableSections(){const e=this.viewer.scene.sectionPlanes;for(let t in e){e[t].active=!0}}disableSections(){const e=this.viewer.scene.sectionPlanes;for(let t in e){e[t].active=!1}}hideControl(){this._sectionPlanesPlugin.hideControl()}destroy(){this._sectionPlanesPlugin.destroy(),this._sectionToolContextMenu.destroy(),super.destroy()}}class Cb extends cb{constructor(e,t){if(super(e,t),!t.navCubeCanvasElement)throw"Missing config: navCubeCanvasElement";const i=t.navCubeCanvasElement;this._navCube=new av(this.viewer,{canvasElement:i,fitVisible:!0,color:"#CFCFCF"}),this._navCube.setVisible(this._active),this.on("active",(e=>{this._navCube.setVisible(e)}))}destroy(){this._navCube.destroy(),super.destroy()}}class Mb extends o{constructor(e={}){const t=!!e.enableEditModels,i=!!e.enableMeasurements,s=[[{getTitle:e=>e.viewer.localeService.translate("modelsContextMenu.loadModel")||"Load",getEnabled:e=>!e.bimViewer.isModelLoaded(e.modelId),doAction:e=>{e.bimViewer.loadModel(e.modelId)}},{getTitle:e=>e.viewer.localeService.translate("modelsContextMenu.unloadModel")||"Unload",getEnabled:e=>e.bimViewer.isModelLoaded(e.modelId),doAction:e=>{e.bimViewer.unloadModel(e.modelId)}}]];t&&s.push([{getTitle:e=>e.viewer.localeService.translate("modelsContextMenu.editModel")||"Edit",getEnabled:e=>!0,doAction:e=>{e.bimViewer.editModel(e.modelId)}},{getTitle:e=>e.viewer.localeService.translate("modelsContextMenu.deleteModel")||"Delete",getEnabled:e=>!0,doAction:e=>{e.bimViewer.deleteModel(e.modelId)}}]),s.push([{getTitle:e=>e.viewer.localeService.translate("modelsContextMenu.loadAllModels")||"Load All",getEnabled:e=>{const t=e.bimViewer,i=t.getModelIds();return t.getLoadedModelIds().length{e.bimViewer.loadAllModels()}},{getTitle:e=>e.viewer.localeService.translate("modelsContextMenu.unloadAllModels")||"Unload All",getEnabled:e=>e.bimViewer.getLoadedModelIds().length>0,doAction:e=>{e.bimViewer.unloadAllModels()}}]),s.push([{getTitle:e=>e.viewer.localeService.translate("modelsContextMenu.clearSlices")||"Clear Slices",getEnabled:e=>e.bimViewer.getNumSections()>0,doAction:e=>{e.bimViewer.clearSections()}}]),i&&s.push([{getTitle:e=>e.viewer.localeService.translate("canvasContextMenu.measurements")||"Measurements",doAction:function(e){},items:[[{getTitle:e=>e.viewer.localeService.translate("canvasContextMenu.clearMeasurements")||"Clear",getEnabled:e=>e.bimViewer.getNumMeasurements()>0,doAction:e=>{e.bimViewer.clearMeasurements()}},{getTitle:e=>e.bimViewer.getMeasurementsAxisVisible()?e.viewer.localeService.translate("canvasContextMenu.hideMeasurementAxisWires")||"Hide Axis Wires":e.viewer.localeService.translate("canvasContextMenu.showMeasurementAxisWires")||"Show Axis Wires",getEnabled:e=>e.bimViewer.getNumMeasurements()>0,doAction:e=>{e.bimViewer.setMeasurementsAxisVisible(!e.bimViewer.getMeasurementsAxisVisible())}},{getTitle:e=>e.bimViewer.getMeasurementsSnappingEnabled()?e.viewer.localeService.translate("canvasContextMenu.disableMeasurementSnapping")||"Disable Snapping":e.viewer.localeService.translate("canvasContextMenu.enableMeasurementSnapping")||"Enable Snapping",getEnabled:e=>e.bimViewer.getNumMeasurements()>0,doAction:e=>{e.bimViewer.setMeasurementsSnappingEnabled(!e.bimViewer.getMeasurementsSnappingEnabled())}}]]}]),super({hideOnAction:e.hideOnAction,context:e.context,items:s})}}const Eb=u.vec3();class Fb{constructor(e){this._server=e}setProjectId(e){this._projectId=e}setModelId(e){this._modelId=e}getManifest(e,t,i){this._server.getSplitModelManifest(this._projectId,this._modelId,e,t,i)}getMetaModel(e,t,i){this._server.getSplitModelMetadata(this._projectId,this._modelId,e,t,i)}getXKT(e,t,i){this._server.getSplitModelGeometry(this._projectId,this._modelId,e,t,i)}}class Ib extends cb{constructor(e,t){if(super(e,t),!t.modelsTabElement)throw"Missing config: modelsTabElement";if(!t.unloadModelsButtonElement)throw"Missing config: unloadModelsButtonElement";if(!t.modelsElement)throw"Missing config: modelsElement";if(this._enableAddModels=!!t.enableEditModels,this._modelsTabElement=t.modelsTabElement,this._loadModelsButtonElement=t.loadModelsButtonElement,this._unloadModelsButtonElement=t.unloadModelsButtonElement,this._addModelButtonElement=t.addModelButtonElement,this._modelsElement=t.modelsElement,this._modelsTabButtonElement=this._modelsTabElement.querySelector(".xeokit-tab-btn"),!this._modelsTabButtonElement)throw"Missing DOM element: ,xeokit-tab-btn";this._dataSource=new Fb(this.server),this._xktLoader=new ab(this.viewer,{dataSource:this._dataSource}),this._modelsContextMenu=new Mb({enableEditModels:t.enableEditModels,enableMeasurements:t.enableMeasurements,hideOnAction:!0}),this._modelsInfo={},this._numModels=0,this._numModelsLoaded=0,this._projectId=null}setObjectColors(e){this._xktLoader.objectDefaults=e}loadProject(e,t,i){this.server.getProject(e,(i=>{this.unloadProject(),this._projectId=e,this._modelsInfo={},this._numModels=0,this._parseProject(i,t),this._numModelsLoaded0&&this._unloadModelsButtonElement.classList.remove("disabled"),this._enableAddModels&&this._addModelButtonElement.classList.remove("disabled")}),(e=>{this.error(e),i&&i(e)}))}_parseProject(e,t){this._buildModelsMenu(e),this._parseViewerConfigs(e),this._parseViewerContent(e,(()=>{this._parseViewerState(e,(()=>{t()}))}))}_buildModelsMenu(e){var t="";const i=e.models||[];this._modelsInfo={},this._numModels=i.length;for(let e=0,s=i.length;e",t+=""+s.name+"",t+=""}this._modelsElement.innerHTML=t;for(let e=0,t=i.length;e{r.checked?this.loadModel(s):this.unloadModel(t.id)})),o.addEventListener("click",(()=>{!!this.viewer.scene.models[s]?this.unloadModel(t.id):this.loadModel(s)})),o.oncontextmenu=e=>{this._modelsContextMenu.context={bimViewer:this.bimViewer,viewer:this.viewer,modelId:s},this._modelsContextMenu.show(e.pageX,e.pageY),e.preventDefault()}}}_parseViewerConfigs(e){const t=e.viewerConfigs;t&&this.bimViewer.setConfigs(t)}_parseViewerContent(e,t){const i=e.viewerContent;i?this._parseModelsLoaded(i,(()=>{t()})):t()}_parseModelsLoaded(e,t){const i=e.modelsLoaded;i&&0!==i.length?this._loadNextModel(i.slice(0),t):t()}_loadNextModel(e,t){if(0===e.length)return void t();const i=e.pop();this.loadModel(i,(()=>{this._loadNextModel(e,t)}),(()=>{this._loadNextModel(e,t)}))}_parseViewerState(e,t){const i=e.viewerState;i?this.bimViewer.setViewerState(i,t):t()}unloadProject(){if(!this._projectId)return;const e=this.viewer.scene.models;for(var t in e)if(e.hasOwnProperty(t)){e[t].destroy()}this._modelsElement.innerHTML="",this._numModelsLoaded=0,this._loadModelsButtonElement.classList.add("disabled"),this._unloadModelsButtonElement.classList.add("disabled"),this._enableAddModels&&this._addModelButtonElement.classList.add("disabled");const i=this._projectId;this._projectId=null,this.fire("projectUnloaded",{projectId:i})}getLoadedProjectId(){return this._projectId}getModelIds(){return Object.keys(this._modelsInfo)}loadModel(e,t,i){if(!this._projectId){const e="No project currently loaded";return this.error(e),void(i&&i(e))}const s=this._modelsInfo[e];if(!s){const e="Model not in currently loaded project";return this.error(e),void(i&&i(e))}this.bimViewer._busyModal.show(`${this.viewer.localeService.translate("busyModal.loading")||"Loading"} ${s.name}`);this.bimViewer.getConfig("externalMetadata")&&!s.manifest?this.server.getMetadata(this._projectId,e,(r=>{this._loadGeometry(e,s,r,t,i)}),(e=>{this.bimViewer._busyModal.hide(),this.error(e),i&&i(e)})):this._loadGeometry(e,s,null,t,i)}_loadGeometry(e,t,i,s,r){const o=()=>{document.getElementById(""+e).checked=!0,this._numModelsLoaded++,this._unloadModelsButtonElement.classList.remove("disabled"),this._numModelsLoaded{this.bimViewer._busyModal.hide(),this.error(e),r&&r(e)};if(t.manifest){this._dataSource.setProjectId(this._projectId),this._dataSource.setModelId(e);const i=this._xktLoader.load({id:e,manifestSrc:t.manifest,excludeUnclassifiedObjects:!0,origin:t.origin||t.position,scale:t.scale,rotation:t.rotation,matrix:t.matrix,edges:!1!==t.edges,saoEnabled:t.saoEnabled,pbrEnabled:t.pbrEnabled,backfaces:t.backfaces,globalizeObjectIds:t.globalizeObjectIds,reuseGeometries:!1!==t.reuseGeometries});i.on("loaded",o),i.on("error",n)}else this.server.getGeometry(this._projectId,e,(s=>{const r=this._xktLoader.load({id:e,metaModelData:i,xkt:s,excludeUnclassifiedObjects:!0,origin:t.origin||t.position,scale:t.scale,rotation:t.rotation,matrix:t.matrix,edges:!1!==t.edges,saoEnabled:t.saoEnabled,pbrEnabled:t.pbrEnabled,backfaces:t.backfaces,globalizeObjectIds:t.globalizeObjectIds,reuseGeometries:!1!==t.reuseGeometries});r.on("loaded",o),r.on("error",n)}),n)}_jumpToInitialCamera(){const e=this.viewer,t=e.scene,i=t.getAABB(t.visibleObjectIds),s=u.getAABB3Diag(i),r=u.getAABB3Center(i,Eb),o=t.camera;o.perspective.fov;const n=Math.abs(s/Math.tan(45*u.DEGTORAD)),a=u.normalizeVec3(o.yUp?[-.5,-.7071,-.5]:[-1,1,-1]),l=u.normalizeVec3(o.yUp?[-.5,.7071,-.5]:[-1,1,1]);e.cameraControl.pivotPos=r,e.cameraControl.planView=!1,e.cameraFlight.jumpTo({look:r,eye:[r[0]-n*a[0],r[1]-n*a[1],r[2]-n*a[2]],up:l,orthoScale:1.1*s})}unloadModel(e){const t=this.viewer.scene.models[e];if(!t)return void this.error("Model not loaded: "+e);t.destroy();document.getElementById(""+e).checked=!1,document.getElementById("span-"+e),this._numModelsLoaded--,this._numModelsLoaded>0?this._unloadModelsButtonElement.classList.remove("disabled"):this._unloadModelsButtonElement.classList.add("disabled"),this._numModelsLoadede.viewer.localeService.translate("treeViewContextMenu.inspectProperties")||"Inspect Properties",getShown:e=>!!e.viewer.metaScene.metaObjects[e.treeViewNode.objectId],doAction:e=>{const t=e.treeViewNode.objectId;e.bimViewer.showObjectProperties(t)}}),i.push({getTitle:e=>e.viewer.localeService.translate("treeViewContextMenu.viewFit")||"View Fit",doAction:function(e){const t=e.viewer,i=t.scene,s=[];e.treeViewPlugin.withNodeTree(e.treeViewNode,(e=>{e.objectId&&s.push(e.objectId)})),i.setObjectsVisible(s,!0),i.setObjectsHighlighted(s,!0);const r=i.getAABB(s);t.cameraFlight.flyTo({aabb:r,duration:.5},(()=>{setTimeout((function(){i.setObjectsHighlighted(i.highlightedObjectIds,!1)}),500)})),t.cameraControl.pivotPos=u.getAABB3Center(r)}},{getTitle:e=>e.viewer.localeService.translate("canvasContextMenu.viewFitSelection")||"View Fit Selected",getEnabled:e=>e.viewer.scene.numSelectedObjects>0,doAction:e=>{const t=e.viewer,i=t.scene,s=i.getAABB(i.selectedObjectIds);t.cameraFlight.flyTo({aabb:s,duration:.5}),t.cameraControl.pivotPos=u.getAABB3Center(s)}},{getTitle:e=>e.viewer.localeService.translate("treeViewContextMenu.viewFitAll")||"View Fit All",doAction:function(e){const t=e.viewer,i=t.scene,s=i.getAABB(i.visibleObjectIds);t.cameraFlight.flyTo({aabb:s,duration:.5}),t.cameraControl.pivotPos=u.getAABB3Center(s)}}),r&&s.push({getTitle:e=>e.viewer.localeService.translate("canvasContextMenu.measurements")||"Measurements",doAction:function(e){},items:[[{getTitle:e=>e.viewer.localeService.translate("canvasContextMenu.clearMeasurements")||"Clear",getEnabled:e=>e.bimViewer.getNumMeasurements()>0,doAction:e=>{e.bimViewer.clearMeasurements()}},{getTitle:e=>e.bimViewer.getMeasurementsAxisVisible()?e.viewer.localeService.translate("canvasContextMenu.hideMeasurementAxisWires")||"Hide Axis Wires":e.viewer.localeService.translate("canvasContextMenu.showMeasurementAxisWires")||"Show Axis Wires",getEnabled:e=>e.bimViewer.getNumMeasurements()>0,doAction:e=>{e.bimViewer.setMeasurementsAxisVisible(!e.bimViewer.getMeasurementsAxisVisible())}},{getTitle:e=>e.bimViewer.getMeasurementsSnappingEnabled()?e.viewer.localeService.translate("canvasContextMenu.disableMeasurementSnapping")||"Disable Snapping":e.viewer.localeService.translate("canvasContextMenu.enableMeasurementSnapping")||"Enable Snapping",getEnabled:e=>e.bimViewer.getNumMeasurements()>0,doAction:e=>{e.bimViewer.setMeasurementsSnappingEnabled(!e.bimViewer.getMeasurementsSnappingEnabled())}}]]}),this.items=[t,i,[{getTitle:e=>e.viewer.localeService.translate("treeViewContextMenu.isolate")||"Isolate",doAction:function(e){const t=e.viewer,i=t.scene,s=[];e.treeViewPlugin.withNodeTree(e.treeViewNode,(e=>{e.objectId&&s.push(e.objectId)}));const r=i.getAABB(s);t.cameraControl.pivotPos=u.getAABB3Center(r,Db),i.setObjectsXRayed(i.xrayedObjectIds,!1),i.setObjectsVisible(i.visibleObjectIds,!1),i.setObjectsSelected(i.selectedObjectIds,!1),i.setObjectsVisible(s,!0),t.cameraFlight.flyTo({aabb:r},(()=>{}))}}],[{getTitle:e=>e.viewer.localeService.translate("treeViewContextMenu.hide")||"Hide",doAction:function(e){e.treeViewPlugin.withNodeTree(e.treeViewNode,(t=>{if(t.objectId){const i=e.viewer.scene.objects[t.objectId];i&&(i.visible=!1)}}))}},{getTitle:e=>e.viewer.localeService.translate("treeViewContextMenu.hideOthers")||"Hide Others",doAction:function(e){const t=e.viewer.scene;t.setObjectsVisible(t.visibleObjectIds,!1),t.setObjectsPickable(t.xrayedObjectIds,!0),t.setObjectsXRayed(t.xrayedObjectIds,!1),e.treeViewPlugin.withNodeTree(e.treeViewNode,(e=>{if(e.objectId){const i=t.objects[e.objectId];i&&(i.visible=!0)}}))}},{getTitle:e=>e.viewer.localeService.translate("treeViewContextMenu.hideAll")||"Hide All",getEnabled:function(e){return e.viewer.scene.visibleObjectIds.length>0},doAction:function(e){e.viewer.scene.setObjectsVisible(e.viewer.scene.visibleObjectIds,!1)}}],[{getTitle:e=>e.viewer.localeService.translate("treeViewContextMenu.show")||"Show",doAction:function(e){e.treeViewPlugin.withNodeTree(e.treeViewNode,(t=>{if(t.objectId){const i=e.viewer.scene.objects[t.objectId];i&&(i.visible=!0,i.xrayed&&(i.pickable=!0),i.xrayed=!1,i.selected=!1)}}))}},{getTitle:e=>e.viewer.localeService.translate("treeViewContextMenu.showOthers")||"Shows Others",doAction:function(e){const t=e.viewer.scene;t.setObjectsVisible(t.objectIds,!0),t.setObjectsPickable(t.xrayedObjectIds,!0),t.setObjectsXRayed(t.xrayedObjectIds,!1),e.treeViewPlugin.withNodeTree(e.treeViewNode,(e=>{if(e.objectId){const i=t.objects[e.objectId];i&&(i.visible=!1)}}))}},{getTitle:e=>e.viewer.localeService.translate("treeViewContextMenu.showAll")||"Show All",getEnabled:function(e){const t=e.viewer.scene;return t.numVisibleObjects0},doAction:function(e){const t=e.viewer.scene;t.setObjectsVisible(t.objectIds,!0),t.setObjectsPickable(t.xrayedObjectIds,!0),t.setObjectsXRayed(t.xrayedObjectIds,!1)}}],[{getTitle:e=>e.viewer.localeService.translate("treeViewContextMenu.xray")||"X-Ray",doAction:function(e){e.treeViewPlugin.withNodeTree(e.treeViewNode,(t=>{if(t.objectId){const i=e.viewer.scene.objects[t.objectId];i&&(i.selected=!1,i.xrayed=!0,i.visible=!0,i.pickable=e.bimViewer.getConfig("xrayPickable"))}}))}},{getTitle:e=>e.viewer.localeService.translate("treeViewContextMenu.undoXray")||"Undo X-Ray",doAction:function(e){e.treeViewPlugin.withNodeTree(e.treeViewNode,(t=>{if(t.objectId){const i=e.viewer.scene.objects[t.objectId];i&&(i.xrayed=!1,i.pickable=!0)}}))}},{getTitle:e=>e.viewer.localeService.translate("treeViewContextMenu.xrayOthers")||"X-Ray Others",doAction:function(e){const t=e.viewer.scene;t.setObjectsVisible(t.objectIds,!0),e.bimViewer.getConfig("xrayPickable")||t.setObjectsPickable(t.objectIds,!1),t.setObjectsXRayed(t.objectIds,!0),t.setObjectsSelected(t.selectedObjectIds,!1),e.treeViewPlugin.withNodeTree(e.treeViewNode,(e=>{if(e.objectId){const i=t.objects[e.objectId];i&&(i.xrayed=!1,i.pickable=!0)}}))}},{getTitle:e=>e.viewer.localeService.translate("treeViewContextMenu.xrayAll")||"X-Ray All",doAction:function(e){const t=e.viewer.scene;t.setObjectsVisible(t.objectIds,!0),t.setObjectsXRayed(t.objectIds,!0),t.setObjectsSelected(t.selectedObjectIds,!1),t.setObjectsPickable(t.objectIds,!1)}},{getTitle:e=>e.viewer.localeService.translate("treeViewContextMenu.xrayNone")||"X-Ray None",getEnabled:function(e){return e.viewer.scene.numXRayedObjects>0},doAction:function(e){const t=e.viewer.scene,i=t.xrayedObjectIds;t.setObjectsPickable(i,!0),t.setObjectsXRayed(i,!1)}}],[{getTitle:e=>e.viewer.localeService.translate("treeViewContextMenu.select")||"Select",doAction:function(e){e.treeViewPlugin.withNodeTree(e.treeViewNode,(t=>{if(t.objectId){const i=e.viewer.scene.objects[t.objectId];i&&(i.selected=!0,i.visible=!0)}}))}},{getTitle:e=>e.viewer.localeService.translate("treeViewContextMenu.undoSelect")||"Undo Select",doAction:function(e){e.treeViewPlugin.withNodeTree(e.treeViewNode,(t=>{if(t.objectId){const i=e.viewer.scene.objects[t.objectId];i&&(i.selected=!1)}}))}},{getTitle:e=>e.viewer.localeService.translate("treeViewContextMenu.selectNone")||"Select None",getEnabled:function(e){return e.viewer.scene.numSelectedObjects>0},doAction:function(e){e.viewer.scene.setObjectsSelected(e.viewer.scene.selectedObjectIds,!1)}}],[{getTitle:e=>e.viewer.localeService.translate("treeViewContextMenu.clearSlices")||"Clear Slices",getEnabled:function(e){return e.bimViewer.getNumSections()>0},doAction:function(e){e.bimViewer.clearSections()}}],s]}}class Tb extends cb{constructor(e,t={}){if(super(e),!t.objectsTabElement)throw"Missing config: objectsTabElement";if(!t.showAllObjectsButtonElement)throw"Missing config: showAllObjectsButtonElement";if(!t.hideAllObjectsButtonElement)throw"Missing config: hideAllObjectsButtonElement";if(!t.objectsElement)throw"Missing config: objectsElement";if(this._objectsTabElement=t.objectsTabElement,this._showAllObjectsButtonElement=t.showAllObjectsButtonElement,this._hideAllObjectsButtonElement=t.hideAllObjectsButtonElement,this._objectsTabButtonElement=this._objectsTabElement.querySelector(".xeokit-tab-btn"),!this._objectsTabButtonElement)throw"Missing DOM element: ,xeokit-tab-btn";const i=t.objectsElement;this._treeView=new _v(this.viewer,{containerElement:i,hierarchy:"containment",autoAddModels:!1,pruneEmptyNodes:!0}),this._treeViewContextMenu=new Sb(this.bimViewer,{hideOnAction:!0,enableMeasurements:t.enableMeasurements}),this._treeView.on("contextmenu",(e=>{this._treeViewContextMenu.context={bimViewer:this.bimViewer,viewer:e.viewer,treeViewPlugin:e.treeViewPlugin,treeViewNode:e.treeViewNode},this._treeViewContextMenu.show(e.event.pageX,e.event.pageY)})),this._treeView.on("nodeTitleClicked",(e=>{const t=this.viewer.scene,i=[];e.treeViewPlugin.withNodeTree(e.treeViewNode,(e=>{e.objectId&&i.push(e.objectId)}));e.treeViewNode.checked?(t.setObjectsXRayed(i,!1),t.setObjectsVisible(i,!1),t.setObjectsPickable(i,!0)):(t.setObjectsXRayed(i,!1),t.setObjectsVisible(i,!0),t.setObjectsPickable(i,!0))})),this._onModelLoaded=this.viewer.scene.on("modelLoaded",(e=>{if(this.viewer.metaScene.metaModels[e]){const t=this.bimViewer._modelsExplorer.getModelInfo(e);if(!t)return;this._treeView.addModel(e,{rootName:t.name})}})),this._onModelUnloaded=this.viewer.scene.on("modelUnloaded",(e=>{this.viewer.metaScene.metaModels[e]&&this._treeView.removeModel(e)})),this.bimViewer.on("reset",(()=>{this._treeView.collapse()}))}setEnabled(e){e?(this._objectsTabButtonElement.classList.remove("disabled"),this._showAllObjectsButtonElement.classList.remove("disabled"),this._hideAllObjectsButtonElement.classList.remove("disabled")):(this._objectsTabButtonElement.classList.add("disabled"),this._showAllObjectsButtonElement.classList.add("disabled"),this._hideAllObjectsButtonElement.classList.add("disabled"))}expandTreeViewToDepth(e){this._treeView.expandToDepth(e)}showNodeInTreeView(e){this._treeView.collapse(),this._treeView.showNode(e)}unShowNodeInTreeView(){this._treeView.unShowNode()}destroy(){super.destroy(),this._treeView.destroy(),this._treeViewContextMenu.destroy(),this.viewer.scene.off(this._onModelLoaded),this.viewer.scene.off(this._onModelUnloaded)}}class Rb extends cb{constructor(e,t={}){if(super(e),!t.classesTabElement)throw"Missing config: classesTabElement";if(!t.showAllClassesButtonElement)throw"Missing config: showAllClassesButtonElement";if(!t.hideAllClassesButtonElement)throw"Missing config: hideAllClassesButtonElement";if(!t.classesElement)throw"Missing config: classesElement";if(this._classesTabElement=t.classesTabElement,this._showAllClassesButtonElement=t.showAllClassesButtonElement,this._hideAllClassesButtonElement=t.hideAllClassesButtonElement,this._classesTabButtonElement=this._classesTabElement.querySelector(".xeokit-tab-btn"),!this._classesTabButtonElement)throw"Missing DOM element: xeokit-tab-btn";const i=t.classesElement;this._treeView=new _v(this.viewer,{containerElement:i,hierarchy:"types",autoAddModels:!1,pruneEmptyNodes:!0}),this._treeViewContextMenu=new Sb(this.bimViewer,{hideOnAction:!0,enableMeasurements:t.enableMeasurements}),this._treeView.on("contextmenu",(e=>{this._treeViewContextMenu.context={bimViewer:this.bimViewer,viewer:e.viewer,treeViewPlugin:e.treeViewPlugin,treeViewNode:e.treeViewNode},this._treeViewContextMenu.show(e.event.pageX,e.event.pageY)})),this._treeView.on("nodeTitleClicked",(e=>{const t=this.viewer.scene,i=[];e.treeViewPlugin.withNodeTree(e.treeViewNode,(e=>{e.objectId&&i.push(e.objectId)}));e.treeViewNode.checked?(t.setObjectsXRayed(i,!1),t.setObjectsVisible(i,!1),t.setObjectsPickable(i,!0)):(t.setObjectsXRayed(i,!1),t.setObjectsVisible(i,!0),t.setObjectsPickable(i,!0))})),this._onModelLoaded=this.viewer.scene.on("modelLoaded",(e=>{if(this.viewer.metaScene.metaModels[e]){const t=this.bimViewer._modelsExplorer.getModelInfo(e);if(!t)return;this._treeView.addModel(e,{rootName:t.name})}})),this._onModelUnloaded=this.viewer.scene.on("modelUnloaded",(e=>{this.viewer.metaScene.metaModels[e]&&this._treeView.removeModel(e)})),this.bimViewer.on("reset",(()=>{this._treeView.collapse()}))}setEnabled(e){e?(this._classesTabButtonElement.classList.remove("disabled"),this._showAllClassesButtonElement.classList.remove("disabled"),this._hideAllClassesButtonElement.classList.remove("disabled")):(this._classesTabButtonElement.classList.add("disabled"),this._showAllClassesButtonElement.classList.add("disabled"),this._hideAllClassesButtonElement.classList.add("disabled"))}expandTreeViewToDepth(e){this._treeView.expandToDepth(e)}showNodeInTreeView(e){this._treeView.collapse(),this._treeView.showNode(e)}unShowNodeInTreeView(){this._treeView.unShowNode()}destroy(){super.destroy(),this._treeView.destroy(),this._treeViewContextMenu.destroy(),this.viewer.scene.off(this._onModelLoaded),this.viewer.scene.off(this._onModelUnloaded)}}const Lb=u.vec3();class Ub extends cb{constructor(e,t={}){if(super(e),!t.storeysTabElement)throw"Missing config: storeysTabElement";if(!t.showAllStoreysButtonElement)throw"Missing config: showAllStoreysButtonElement";if(!t.hideAllStoreysButtonElement)throw"Missing config: hideAllStoreysButtonElement";if(!t.storeysElement)throw"Missing config: storeysElement";if(this._storeysTabElement=t.storeysTabElement,this._showAllStoreysButtonElement=t.showAllStoreysButtonElement,this._hideAllStoreysButtonElement=t.hideAllStoreysButtonElement,this._storeysTabButtonElement=this._storeysTabElement.querySelector(".xeokit-tab-btn"),!this._storeysTabButtonElement)throw"Missing DOM element: .xeokit-tab-btn";const i=t.storeysElement;this._treeView=new _v(this.viewer,{containerElement:i,autoAddModels:!1,hierarchy:"storeys",autoExpandDepth:1}),this._treeViewContextMenu=new Sb(this.bimViewer,{hideOnAction:!0,enableMeasurements:t.enableMeasurements}),this._treeView.on("contextmenu",(e=>{this._treeViewContextMenu.context={bimViewer:this.bimViewer,viewer:e.viewer,treeViewPlugin:e.treeViewPlugin,treeViewNode:e.treeViewNode,pruneEmptyNodes:!0},this._treeViewContextMenu.show(e.event.pageX,e.event.pageY)})),this._treeView.on("nodeTitleClicked",(e=>{const t=this.viewer.scene,i=[];e.treeViewPlugin.withNodeTree(e.treeViewNode,(e=>{e.objectId&&i.push(e.objectId)}));e.treeViewNode.checked?(t.setObjectsXRayed(i,!1),t.setObjectsVisible(i,!1),t.setObjectsPickable(i,!0)):(t.setObjectsXRayed(i,!1),t.setObjectsVisible(i,!0),t.setObjectsPickable(i,!0))})),this._onModelLoaded=this.viewer.scene.on("modelLoaded",(e=>{const t=this.bimViewer._modelsExplorer.getModelInfo(e);t&&this._treeView.addModel(e,{rootName:t.name})})),this._onModelUnloaded=this.viewer.scene.on("modelUnloaded",(e=>{this.viewer.metaScene.metaModels[e]&&this._treeView.removeModel(e)})),this.bimViewer.on("reset",(()=>{this._treeView.collapse(),this._treeView.expandToDepth(1)}))}setEnabled(e){e?(this._storeysTabButtonElement.classList.remove("disabled"),this._showAllStoreysButtonElement.classList.remove("disabled"),this._hideAllStoreysButtonElement.classList.remove("disabled")):(this._storeysTabButtonElement.classList.add("disabled"),this._showAllStoreysButtonElement.classList.add("disabled"),this._hideAllStoreysButtonElement.classList.add("disabled"))}expandTreeViewToDepth(e){this._treeView.expandToDepth(e)}showNodeInTreeView(e){this._treeView.collapse(),this._treeView.showNode(e)}unShowNodeInTreeView(){this._treeView.unShowNode()}selectStorey(e,t){const i=this.viewer.metaScene.metaObjects[e];if(!i)return void this.error("selectStorey() - object is not found: '"+e+"'");if("IfcBuildingStorey"!==i.type)return void this.error("selectStorey() - object is not found: '"+e+"'");const s=i.getObjectIDsInSubtree();this._selectObjects(s,t)}_selectObjects(e,t){const i=this.viewer.scene,s=i.getAABB(e);this.viewer.cameraControl.pivotPos=u.getAABB3Center(s,Lb),t?(i.setObjectsXRayed(i.objectIds,!0),i.setObjectsVisible(i.objectIds,!0),i.setObjectsPickable(i.objectIds,!1),i.setObjectsSelected(i.selectedObjectIds,!1),i.setObjectsXRayed(e,!1),i.setObjectsVisible(e,!0),i.setObjectsPickable(e,!0),this.viewer.cameraFlight.flyTo({aabb:s},(()=>{setTimeout((function(){i.setObjectsVisible(i.xrayedObjectIds,!1),i.setObjectsXRayed(i.xrayedObjectIds,!1)}),500),t()}))):(i.setObjectsVisible(i.objectIds,!1),i.setObjectsPickable(i.xrayedObjectIds,!0),i.setObjectsXRayed(i.xrayedObjectIds,!1),i.setObjectsSelected(i.selectedObjectIds,!1),i.setObjectsVisible(e,!0),this.viewer.cameraFlight.jumpTo({aabb:s}))}destroy(){super.destroy(),this._treeView.destroy(),this._treeViewContextMenu.destroy(),this.viewer.scene.off(this._onModelLoaded),this.viewer.scene.off(this._onModelUnloaded)}}const kb=u.vec3();class Ob extends cb{constructor(e,t){if(super(e,t),!t.buttonElement)throw"Missing config: buttonElement";this._saveOrthoActive=null,this._buttonElement=t.buttonElement,this._cameraControlNavModeMediator=t.cameraControlNavModeMediator,this._active=!1,this.on("enabled",(e=>{e?this._buttonElement.classList.remove("disabled"):this._buttonElement.classList.add("disabled")})),this._buttonElement.addEventListener("click",(e=>{this.getEnabled()&&(this.bimViewer._sectionTool.hideControl(),this.setActive(!this.getActive(),(()=>{}))),e.preventDefault()})),this.bimViewer.on("reset",(()=>{this.setActive(!0,(()=>{}))}))}setEnabled(e){super.setEnabled(e),this._saveOrthoActive=this.bimViewer._orthoMode.getActive()}setActive(e,t){this._active!==e?(this._active=e,e?(this._buttonElement.classList.add("active"),t?this._enterThreeDMode((()=>{this.fire("active",this._active),t()})):(this._enterThreeDMode(),this.fire("active",this._active))):(this._buttonElement.classList.remove("active"),t?this._exitThreeDMode((()=>{this.fire("active",this._active),t()})):(this._exitThreeDMode(),this.fire("active",this._active)))):t&&t()}_enterThreeDMode(e){const t=this.viewer,i=t.scene,s=i.getAABB(i.visibleObjectIds),r=u.getAABB3Diag(s),o=u.getAABB3Center(s,kb),n=Math.abs(r/Math.tan(32.5)),a=i.camera,l=a.yUp?[-1,-1,-1]:[1,1,1],A=a.yUp?[-1,1,-1]:[-1,1,1];t.cameraControl.pivotPos=o,this.bimViewer._navCubeMode.setActive(!0),this.bimViewer._firstPersonMode.setEnabled(!0),this._cameraControlNavModeMediator.setThreeDModeActive(!0),this.bimViewer._sectionTool.setEnabled(!0),this.bimViewer._orthoMode.setEnabled(!0),e?t.cameraFlight.flyTo({look:o,eye:[o[0]-n*l[0],o[1]-n*l[1],o[2]-n*l[2]],up:A,orthoScale:1.3*r,duration:1,projection:this._saveOrthoActive?"ortho":"perspective"},(()=>{e()})):t.cameraFlight.jumpTo({look:o,eye:[o[0]-n*l[0],o[1]-n*l[1],o[2]-n*l[2]],up:A,orthoScale:1.3*r,projection:this._saveOrthoActive?"ortho":"perspective"})}_exitThreeDMode(e){const t=this.viewer,i=t.scene,s=i.camera,r=i.getAABB(i.visibleObjectIds),o=u.getAABB3Center(r),n=u.getAABB3Diag(r),a=Math.abs(n/Math.tan(45*u.DEGTORAD)),l=1.3*n,A=kb;A[0]=o[0]+s.worldUp[0]*a,A[1]=o[1]+s.worldUp[1]*a,A[2]=o[2]+s.worldUp[2]*a;const h=u.mulVec3Scalar(s.worldForward,-1,[]);this.bimViewer._sectionTool.setActive(!1),this.bimViewer._firstPersonMode.setEnabled(!1),this._saveOrthoActive=this.bimViewer._orthoMode.getActive(),this.bimViewer._orthoMode.setEnabled(!1),this._cameraControlNavModeMediator.setThreeDModeActive(!1),e?t.cameraFlight.flyTo({eye:A,look:o,up:h,orthoScale:l,projection:"ortho"},(()=>{this.bimViewer._navCubeMode.setActive(!1)})):(t.cameraFlight.jumpTo({eye:A,look:o,up:h,orthoScale:l,projection:"ortho"}),this.bimViewer._navCubeMode.setActive(!1))}}class Nb extends o{constructor(e,t={}){super(t),this._bimViewer=e,this._buildMenu(t)}_buildMenu(e){const t=[],i=[],s=[],r=!!e.enableMeasurements;this._bimViewer._enablePropertiesInspector&&t.push({getTitle:e=>e.viewer.localeService.translate("objectContextMenu.inspectProperties")||"Inspect Properties",doAction:e=>{const t=e.entity.id;e.bimViewer.showObjectProperties(t)}}),t.push({getTitle:e=>e.viewer.localeService.translate("objectContextMenu.showInTree")||"Show in Explorer",doAction:e=>{const t=e.entity.id;e.showObjectInExplorers(t)}}),i.push({getTitle:e=>e.viewer.localeService.translate("objectContextMenu.viewFit")||"View Fit",doAction:e=>{const t=e.viewer,i=t.scene,s=e.entity;t.cameraFlight.flyTo({aabb:s.aabb,duration:.5},(()=>{setTimeout((function(){i.setObjectsHighlighted(i.highlightedObjectIds,!1)}),500)})),t.cameraControl.pivotPos=u.getAABB3Center(s.aabb)}},{getTitle:e=>e.viewer.localeService.translate("canvasContextMenu.viewFitSelection")||"View Fit Selected",getEnabled:e=>e.viewer.scene.numSelectedObjects>0,doAction:e=>{const t=e.viewer,i=t.scene,s=i.getAABB(i.selectedObjectIds);t.cameraFlight.flyTo({aabb:s,duration:.5}),t.cameraControl.pivotPos=u.getAABB3Center(s)}},{getTitle:e=>e.viewer.localeService.translate("objectContextMenu.viewFitAll")||"View Fit All",doAction:e=>{const t=e.viewer,i=t.scene,s=i.getAABB(i.visibleObjectIds);t.cameraFlight.flyTo({aabb:s,duration:.5}),t.cameraControl.pivotPos=u.getAABB3Center(s)}}),r&&s.push({getTitle:e=>e.viewer.localeService.translate("canvasContextMenu.measurements")||"Measurements",doAction:function(e){},items:[[{getTitle:e=>e.viewer.localeService.translate("canvasContextMenu.clearMeasurements")||"Clear",getEnabled:e=>e.bimViewer.getNumMeasurements()>0,doAction:e=>{e.bimViewer.clearMeasurements()}},{getTitle:e=>e.bimViewer.getMeasurementsAxisVisible()?e.viewer.localeService.translate("canvasContextMenu.hideMeasurementAxisWires")||"Hide Axis Wires":e.viewer.localeService.translate("canvasContextMenu.showMeasurementAxisWires")||"Show Axis Wires",getEnabled:e=>e.bimViewer.getNumMeasurements()>0,doAction:e=>{e.bimViewer.setMeasurementsAxisVisible(!e.bimViewer.getMeasurementsAxisVisible())}},{getTitle:e=>e.bimViewer.getMeasurementsSnappingEnabled()?e.viewer.localeService.translate("canvasContextMenu.disableMeasurementSnapping")||"Disable Snapping":e.viewer.localeService.translate("canvasContextMenu.enableMeasurementSnapping")||"Enable Snapping",getEnabled:e=>e.bimViewer.getNumMeasurements()>0,doAction:e=>{e.bimViewer.setMeasurementsSnappingEnabled(!e.bimViewer.getMeasurementsSnappingEnabled())}}]]}),this.items=[t,i,[{getTitle:e=>e.viewer.localeService.translate("objectContextMenu.hide")||"Hide",getEnabled:e=>e.entity.visible,doAction:e=>{e.entity.visible=!1}},{getTitle:e=>e.viewer.localeService.translate("objectContextMenu.hideOthers")||"Hide Others",doAction:e=>{const t=e.viewer,i=t.scene,s=e.entity,r=t.metaScene.metaObjects[s.id];r&&(i.setObjectsVisible(i.visibleObjectIds,!1),r.withMetaObjectsInSubtree((e=>{const t=i.objects[e.id];t&&(t.visible=!0)})))}},{getTitle:e=>e.viewer.localeService.translate("objectContextMenu.hideAll")||"Hide All",getEnabled:e=>e.viewer.scene.numVisibleObjects>0,doAction:e=>{e.viewer.scene.setObjectsVisible(e.viewer.scene.visibleObjectIds,!1)}},{getTitle:e=>e.viewer.localeService.translate("objectContextMenu.showAll")||"Show All",getEnabled:e=>{const t=e.viewer.scene;return t.numVisibleObjects0},doAction:e=>{const t=e.viewer.scene;t.setObjectsVisible(t.objectIds,!0),t.setObjectsPickable(t.xrayedObjectIds,!0),t.setObjectsXRayed(t.xrayedObjectIds,!1)}}],[{getTitle:e=>e.viewer.localeService.translate("objectContextMenu.xray")||"X-Ray",getEnabled:e=>!e.entity.xrayed,doAction:e=>{const t=e.entity;t.xrayed=!0,t.pickable=e.bimViewer.getConfig("xrayPickable")}},{getTitle:e=>e.viewer.localeService.translate("objectContextMenu.xrayOthers")||"X-Ray Others",doAction:e=>{const t=e.viewer,i=t.scene,s=e.entity,r=t.metaScene.metaObjects[s.id];r&&(i.setObjectsVisible(i.objectIds,!0),i.setObjectsXRayed(i.objectIds,!0),e.bimViewer.getConfig("xrayPickable")||i.setObjectsPickable(i.objectIds,!1),r.withMetaObjectsInSubtree((e=>{const t=i.objects[e.id];t&&(t.xrayed=!1,t.pickable=!0)})))}},{getTitle:e=>e.viewer.localeService.translate("objectContextMenu.xrayAll")||"X-Ray All",getEnabled:e=>{const t=e.viewer.scene;return t.numXRayedObjects{const t=e.viewer.scene;t.setObjectsVisible(t.objectIds,!0),e.bimViewer.getConfig("xrayPickable")||t.setObjectsPickable(t.objectIds,!1),t.setObjectsXRayed(t.objectIds,!0)}},{getTitle:e=>e.viewer.localeService.translate("objectContextMenu.xrayNone")||"X-Ray None",getEnabled:e=>e.viewer.scene.numXRayedObjects>0,doAction:e=>{const t=e.viewer.scene,i=t.xrayedObjectIds;t.setObjectsPickable(i,!0),t.setObjectsXRayed(i,!1)}}],[{getTitle:e=>e.viewer.localeService.translate("objectContextMenu.select")||"Select",getEnabled:e=>!e.entity.selected,doAction:e=>{e.entity.selected=!0}},{getTitle:e=>e.viewer.localeService.translate("objectContextMenu.undoSelect")||"Undo Select",getEnabled:e=>e.entity.selected,doAction:e=>{e.entity.selected=!1}},{getTitle:e=>e.viewer.localeService.translate("objectContextMenu.selectNone")||"Select None",getEnabled:e=>e.viewer.scene.numSelectedObjects>0,doAction:e=>{e.viewer.scene.setObjectsSelected(e.viewer.scene.selectedObjectIds,!1)}}],[{getTitle:e=>e.viewer.localeService.translate("objectContextMenu.clearSlices")||"Clear Slices",getEnabled:e=>e.bimViewer.getNumSections()>0,doAction:e=>{e.bimViewer.clearSections()}}],s]}}class Qb extends o{constructor(e,t={}){super({hideOnAction:t.hideOnAction,context:t.context,items:[[{getTitle:e=>e.viewer.localeService.translate("canvasContextMenu.viewFitAll")||"View Fit All",doAction:e=>{const t=e.viewer,i=t.scene,s=i.getAABB(i.visibleObjectIds);t.cameraFlight.flyTo({aabb:s,duration:.5}),t.cameraControl.pivotPos=u.getAABB3Center(s)}},{getTitle:e=>e.viewer.localeService.translate("canvasContextMenu.viewFitSelection")||"View Fit Selected",getEnabled:e=>e.viewer.scene.numSelectedObjects>0,doAction:e=>{const t=e.viewer,i=t.scene,s=i.getAABB(i.selectedObjectIds);t.cameraFlight.flyTo({aabb:s,duration:.5}),t.cameraControl.pivotPos=u.getAABB3Center(s)}}],[{getTitle:e=>e.viewer.localeService.translate("canvasContextMenu.hideAll")||"Hide All",getEnabled:e=>e.viewer.scene.numVisibleObjects>0,doAction:e=>{e.viewer.scene.setObjectsVisible(e.viewer.scene.visibleObjectIds,!1)}},{getTitle:e=>e.viewer.localeService.translate("canvasContextMenu.showAll")||"Show All",getEnabled:e=>{const t=e.viewer.scene;return t.numVisibleObjects0},doAction:e=>{const t=e.viewer.scene;t.setObjectsVisible(t.objectIds,!0),t.setObjectsXRayed(t.xrayedObjectIds,!1)}}],[{getTitle:e=>e.viewer.localeService.translate("canvasContextMenu.xRayAll")||"X-Ray All",getEnabled:e=>{const t=e.viewer.scene;return t.numXRayedObjects{const t=e.viewer.scene;t.setObjectsVisible(t.objectIds,!0),t.setObjectsXRayed(t.objectIds,!0),e.bimViewer.getConfig("xrayPickable")||t.setObjectsPickable(t.objectIds,!1)}},{getTitle:e=>e.viewer.localeService.translate("canvasContextMenu.xRayNone")||"X-Ray None",getEnabled:e=>e.viewer.scene.numXRayedObjects>0,doAction:e=>{const t=e.viewer.scene.xrayedObjectIds;e.viewer.scene.setObjectsPickable(t,!0),e.viewer.scene.setObjectsXRayed(t,!1)}}],[{getTitle:e=>e.viewer.localeService.translate("canvasContextMenu.selectNone")||"Select None",getEnabled:e=>e.viewer.scene.numSelectedObjects>0,doAction:e=>{e.viewer.scene.setObjectsSelected(e.viewer.scene.selectedObjectIds,!1)}}],[{getTitle:e=>e.viewer.localeService.translate("canvasContextMenu.resetView")||"Reset View",doAction:e=>{e.bimViewer.resetView()}}],[{getTitle:e=>e.viewer.localeService.translate("canvasContextMenu.clearSlices")||"Clear Slices",getEnabled:e=>e.bimViewer.getNumSections()>0,doAction:e=>{e.bimViewer.clearSections()}}],t.enableMeasurements?[{getTitle:e=>"Measurements",doAction:function(e){},items:[[{getTitle:e=>e.viewer.localeService.translate("canvasContextMenu.clearMeasurements")||"Clear",getEnabled:e=>e.bimViewer.getNumMeasurements()>0,doAction:e=>{e.bimViewer.clearMeasurements()}},{getTitle:e=>e.bimViewer.getMeasurementsAxisVisible()?e.viewer.localeService.translate("canvasContextMenu.hideMeasurementAxisWires")||"Hide Axis Wires":e.viewer.localeService.translate("canvasContextMenu.showMeasurementAxisWires")||"Show Axis Wires",getEnabled:e=>e.bimViewer.getNumMeasurements()>0,doAction:e=>{e.bimViewer.setMeasurementsAxisVisible(!e.bimViewer.getMeasurementsAxisVisible())}},{getTitle:e=>e.bimViewer.getMeasurementsSnappingEnabled()?e.viewer.localeService.translate("canvasContextMenu.disableMeasurementSnapping")||"Disable Snapping":e.viewer.localeService.translate("canvasContextMenu.enableMeasurementSnapping")||"Enable Snapping",getEnabled:e=>e.bimViewer.getNumMeasurements()>0,doAction:e=>{e.bimViewer.setMeasurementsSnappingEnabled(!e.bimViewer.getMeasurementsSnappingEnabled())}}]]}]:[]]})}}class Vb extends cb{constructor(e,t){if(super(e,t),!t.buttonElement)throw"Missing config: buttonElement";this._buttonElement=t.buttonElement,this.on("enabled",(e=>{e?this._buttonElement.classList.remove("disabled"):this._buttonElement.classList.add("disabled")})),this._buttonElement.addEventListener("click",(e=>{this.getEnabled()&&this.setActive(!this.getActive(),(()=>{})),e.preventDefault()})),this.bimViewer.on("reset",(()=>{this.setActive(!1)})),this.viewer.camera.on("projection",(()=>{const e="ortho"===this.viewer.camera.projection;this._active=e,this._active?this._buttonElement.classList.add("active"):this._buttonElement.classList.remove("active")})),this._active=!1,this._buttonElement.classList.remove("active")}setActive(e,t){this._active!==e?(this._active=e,e?(this._buttonElement.classList.add("active"),t?this._enterOrthoMode((()=>{this.fire("active",this._active),t()})):(this._enterOrthoMode(),this.fire("active",this._active))):(this._buttonElement.classList.remove("active"),t?this._exitOrthoMode((()=>{this.fire("active",this._active),t()})):(this._exitOrthoMode(),this.fire("active",this._active)))):t&&t()}_enterOrthoMode(e){e?this.viewer.cameraFlight.flyTo({projection:"ortho",duration:.5},e):this.viewer.cameraFlight.jumpTo({projection:"ortho"})}_exitOrthoMode(e){e?this.viewer.cameraFlight.flyTo({projection:"perspective",duration:.5},e):this.viewer.cameraFlight.jumpTo({projection:"perspective"})}}class jb extends cb{constructor(e,t={}){if(super(e),!t.propertiesTabElement)throw"Missing config: propertiesTabElement";if(!t.propertiesElement)throw"Missing config: propertiesElement";if(this._metaObject=null,this._propertiesTabElement=t.propertiesTabElement,this._propertiesElement=t.propertiesElement,this._propertiesTabButtonElement=this._propertiesTabElement.querySelector(".xeokit-tab-btn"),!this._propertiesTabButtonElement)throw"Missing DOM element: ,xeokit-tab-btn";this._onModelUnloaded=this.viewer.scene.on("modelUnloaded",(e=>{if(this._metaObject){const t=this._metaObject.metaModels;for(let i=0,s=t.length;i{this.clear()})),document.addEventListener("click",this._clickListener=e=>{e.target.matches(".xeokit-accordion .xeokit-accordion-button")&&(e.target.parentElement.classList.contains("active")?e.target.parentElement.classList.remove("active"):e.target.parentElement.classList.add("active"))}),this.clear()}showObjectPropertySets(e){const t=this.viewer.metaScene.metaObjects[e];if(!t)return;const i=t.propertySets;i&&i.length>0?this._setPropertySets(t,i):this._setPropertySets(t),this._metaObject=t}clear(){const e=[],t=this.viewer.localeService.translate("propertiesInspector.noObjectSelectedWarning")||"No object inspected. Right-click or long-tab an object and select 'Inspect Properties' to view its properties here.";e.push('
'),e.push(`

${t}

`),e.push("
");const i=e.join("");this._propertiesElement.innerHTML=i}_setPropertySets(e,t){const i=[];if(i.push('
'),e){i.push(''),i.push(``),e.type&&i.push(``),i.push(``),i.push(``);const s=e.attributes;if(s)for(let e in s)i.push(``);if(i.push("
Name:${e.name}
Class:${e.type}
UUID:${e.originalSystemId}
Viewer ID:${e.id}
${Hb(e)}:${s[e]}
"),t&&0!==t.length){i.push("
"),i.push('
');for(let e=0,s=t.length;e0){i.push(`
\n

${s.name}

\n
\n `);for(let e=0,t=r.length;e`)}i.push("
${t.name||t.label}:${t.value}
\n
\n
")}}i.push("
")}else{const e=this.viewer.localeService.translate("propertiesInspector.noPropSetWarning")||"No properties sets found for this object";i.push(`

${e}

`),i.push("")}}else i.push('

No object selected

');this._propertiesElement.innerHTML=i.join("")}setEnabled(e){e?this._propertiesTabButtonElement.classList.remove("disabled"):this._propertiesTabButtonElement.classList.add("disabled")}destroy(){super.destroy(),this.viewer.scene.off(this._onModelLoaded),this.viewer.scene.off(this._onModelUnloaded),document.removeEventListener("click",this._clickListener)}}function Hb(e){return e?e.charAt(0).toUpperCase()+e.slice(1):e}const zb=new Float32Array(3);class Gb{constructor(e){if(!e)throw"Parameter expected: cfg";if(!e.viewer)throw"Parameter expected: cfg.viewer";this.viewer=e.viewer,this._maxTreeDepth=e.maxTreeDepth||15,this._root=null,this._needsRebuild=!0,this._onModelLoaded=this.viewer.scene.on("modelLoaded",(e=>{this._needsRebuild=!0})),this._onModelUnloaded=this.viewer.scene.on("modelUnloaded",(e=>{this._needsRebuild=!0}))}get root(){return this._needsRebuild&&this._rebuild(),this._root}_rebuild(){const e=this.viewer.scene;this._root={aabb:e.getAABB()};for(let t in e.objects){const i=e.objects[t];this._insertEntity(this._root,i,1)}this._needsRebuild=!1}_insertEntity(e,t,i){const s=t.aabb;if(i>=this._maxTreeDepth)return e.entities=e.entities||[],void e.entities.push(t);if(e.left&&u.containsAABB3(e.left.aabb,s))return void this._insertEntity(e.left,t,i+1);if(e.right&&u.containsAABB3(e.right.aabb,s))return void this._insertEntity(e.right,t,i+1);const r=e.aabb;zb[0]=r[3]-r[0],zb[1]=r[4]-r[1],zb[2]=r[5]-r[2];let o=0;if(zb[1]>zb[o]&&(o=1),zb[2]>zb[o]&&(o=2),!e.left){const n=r.slice();if(n[o+3]=(r[o]+r[o+3])/2,e.left={aabb:n},u.containsAABB3(n,s))return void this._insertEntity(e.left,t,i+1)}if(!e.right){const n=r.slice();if(n[o]=(r[o]+r[o+3])/2,e.right={aabb:n},u.containsAABB3(n,s))return void this._insertEntity(e.right,t,i+1)}e.entities=e.entities||[],e.entities.push(t)}destroy(){const e=this.viewer.scene;e.off(this._onModelLoaded),e.off(this._onModelUnloaded),this._root=null,this._needsRebuild=!0}}class Wb extends cb{constructor(e,t){if(super(e),!t.buttonElement)throw"Missing config: buttonElement";this._objectsKdTree3=t.objectsKdTree3,this._marquee=u.AABB2(),this._marqueeFrustum=new L,this._marqueeFrustumProjMat=u.mat4(),this._marqueeDir=!1;const i=t.buttonElement;this.on("enabled",(e=>{e?i.classList.remove("disabled"):i.classList.add("disabled")})),this.on("active",(e=>{e?(i.classList.add("active"),this._objectsKdTree3.root):i.classList.remove("active")})),i.addEventListener("click",(e=>{if(this.getEnabled()){const e=this.getActive();this.setActive(!e)}e.preventDefault()})),this.bimViewer.on("reset",(()=>{this.setActive(!1)}));const s=this.viewer.scene,r=s.canvas.canvas;this._marqueeElement=document.createElement("div"),document.body.appendChild(this._marqueeElement);const o=this._marqueeElement.style;let n,a,l,A,h,c,d,p;o.position="absolute",o["z-index"]="40000005",o.width="8px",o.height="8px",o.visibility="hidden",o.top="0px",o.left="0px",o["box-shadow"]="0 2px 5px 0 #182A3D;",o.opacity=1,o["pointer-events"]="none";let g=!1,m=!1;r.addEventListener("mousedown",(e=>{if(!this.getActive()||!this.getEnabled())return;if(0!==e.button)return;const t=this.bimViewer.viewer.scene.input;t.keyDown[t.KEY_CTRL]||s.setObjectsSelected(s.selectedObjectIds,!1),n=e.pageX,a=e.pageY,o.visibility="visible",o.left=`${n}px`,o.top=`${a}px`,o.width="0px",o.height="0px",o.display="block",h=e.offsetX,c=e.offsetY,g=!0,this.viewer.cameraControl.pointerEnabled=!1})),r.addEventListener("mouseup",(e=>{if(!this.getActive()||!this.getEnabled())return;if(!g&&!m)return;if(0!==e.button)return;l=e.pageX,A=e.pageY;const t=Math.abs(l-n),i=Math.abs(A-a);o.width=`${t}px`,o.height=`${i}px`,o.visibility="hidden",g=!1,this.viewer.cameraControl.pointerEnabled=!0,m&&(m=!1),(t>3||i>3)&&this._marqueePick()})),document.addEventListener("mouseup",(e=>{this.getActive()&&this.getEnabled()&&0===e.button&&g&&(o.visibility="hidden",g=!1,m=!0,this.viewer.cameraControl.pointerEnabled=!0)}),!0),r.addEventListener("mousemove",(e=>{if(!this.getActive()||!this.getEnabled())return;if(0!==e.button)return;if(!g)return;const t=e.pageX,i=e.pageY,s=t-n,r=i-a;o.width=`${Math.abs(s)}px`,o.height=`${Math.abs(r)}px`,o.left=`${Math.min(n,t)}px`,o.top=`${Math.min(a,i)}px`,d=e.offsetX,p=e.offsetY;const l=h{if(s===L.INTERSECT&&(s=k(this._marqueeFrustum,i.aabb)),s!==L.OUTSIDE){if(i.entities){const t=i.entities;for(let i=0,s=t.length;ie.measurement.axisVisible?"Hide Measurement Axis":"Show Measurement Axis",doAction:function(e){e.measurement.axisVisible=!e.measurement.axisVisible}},{getTitle:e=>e.measurement.labelsVisible?"Hide Measurement Labels":"Show Measurement Labels",doAction:function(e){e.measurement.labelsVisible=!e.measurement.labelsVisible}}],[{title:"Delete Measurement",doAction:function(e){e.measurement.destroy()}}]]}),this._contextMenu.on("hidden",(()=>{this._contextMenu.context.measurement&&this._contextMenu.context.measurement.setHighlighted(!1)})),this._distanceMeasurementsPlugin=new VA(this.viewer,{defaultAxisVisible:!1}),this._distanceMeasurementsPlugin.on("mouseOver",(e=>{e.measurement.setHighlighted(!0)})),this._distanceMeasurementsPlugin.on("mouseLeave",(e=>{this._contextMenu.shown&&this._contextMenu.context.measurement.id===e.measurement.id||e.measurement.setHighlighted(!1)})),this._distanceMeasurementsPlugin.on("contextMenu",(e=>{this._contextMenu.context={distanceMeasurementsPlugin:this._distanceMeasurementsPlugin,measurement:e.measurement},this._contextMenu.show(e.event.clientX,e.event.clientY),e.event.preventDefault()})),this._distanceMeasurementsMouseControl=new QA(this._distanceMeasurementsPlugin,{}),this._distanceMeasurementsMouseControl.snapping=!0,this.on("enabled",(e=>{e?i.classList.remove("disabled"):i.classList.add("disabled")})),this.on("active",(e=>{e?(i.classList.add("active"),this._distanceMeasurementsMouseControl.activate()):(i.classList.remove("active"),this._distanceMeasurementsMouseControl.deactivate())})),i.addEventListener("click",(e=>{if(this.getEnabled()){const e=this.getActive();this.setActive(!e)}e.preventDefault()})),this.bimViewer.on("reset",(()=>{this.setActive(!1),this.clear()}))}getNumMeasurements(){return Object.keys(this._distanceMeasurementsPlugin.measurements).length}setMeasurementsAxisVisible(e){this._distanceMeasurementsPlugin.setAxisVisible(e)}getMeasurementsAxisVisible(){return this._distanceMeasurementsPlugin.getAxisVisible()}setSnappingEnabled(e){return this._distanceMeasurementsMouseControl.snapping=e}getSnappingEnabled(){return this._distanceMeasurementsMouseControl.snapping}clear(){this._distanceMeasurementsPlugin.clear()}destroy(){this._distanceMeasurementsPlugin.destroy(),this._distanceMeasurementsMouseControl.destroy(),this._contextMenu.destroy(),super.destroy()}}class Xb extends cb{constructor(e,t){if(super(e),!t.buttonElement)throw"Missing config: buttonElement";const i=t.buttonElement;this._contextMenu=new o({items:[[{getTitle:e=>e.measurement.labelsVisible?"Hide Measurement Label":"Show Measurement Label",doAction:function(e){e.measurement.labelsVisible=!e.measurement.labelsVisible}}],[{title:"Delete Measurement",doAction:function(e){e.measurement.destroy()}}]]}),this._contextMenu.on("hidden",(()=>{this._contextMenu.context.measurement&&this._contextMenu.context.measurement.setHighlighted(!1)})),this._angleMeasurementsPlugin=new pe(this.viewer,{}),this._angleMeasurementsPlugin.on("mouseOver",(e=>{e.measurement.setHighlighted(!0)})),this._angleMeasurementsPlugin.on("mouseLeave",(e=>{this._contextMenu.shown&&this._contextMenu.context.measurement.id===e.measurement.id||e.measurement.setHighlighted(!1)})),this._angleMeasurementsPlugin.on("contextMenu",(e=>{this._contextMenu.context={angleMeasurementsPlugin:this._angleMeasurementsPlugin,measurement:e.measurement},this._contextMenu.show(e.event.clientX,e.event.clientY),e.event.preventDefault()})),this._angleMeasurementsMouseControl=new de(this._angleMeasurementsPlugin,{}),this._angleMeasurementsMouseControl.snapping=!0,this.on("enabled",(e=>{e?i.classList.remove("disabled"):i.classList.add("disabled")})),this.on("active",(e=>{e?(i.classList.add("active"),this._angleMeasurementsMouseControl.activate()):(i.classList.remove("active"),this._angleMeasurementsMouseControl.deactivate())})),i.addEventListener("click",(e=>{if(this.getEnabled()){const e=this.getActive();this.setActive(!e)}e.preventDefault()})),this.bimViewer.on("reset",(()=>{this.setActive(!1),this.clear()}))}getNumMeasurements(){return Object.keys(this._angleMeasurementsPlugin.measurements).length}setSnappingEnabled(e){return this._angleMeasurementsMouseControl.snapping=e}getSnappingEnabled(){return this._angleMeasurementsMouseControl.snapping}clear(){this._angleMeasurementsPlugin.clear()}destroy(){this._angleMeasurementsPlugin.destroy(),this._angleMeasurementsMouseControl.destroy(),this._contextMenu.destroy(),super.destroy()}}function Yb(e){const t="xeokit-tab",i="active";function s(e){let s=e.parentNode.querySelectorAll("."+t);for(let t=0;t{e.preventDefault()},o.oncontextmenu=e=>{e.preventDefault()},n.oncontextmenu=e=>{e.preventDefault()};const l=new jf({localeService:t.localeService,canvasElement:i,keyboardEventsElement:t.keyboardEventsElement,transparent:!1,backgroundColor:[1,1,1],backgroundColorFromAmbientLight:!1,saoEnabled:!0,pbrEnabled:!1,colorTextureEnabled:!0,numCachedSectionPlanes:4});super(null,t,e,l),this._configs={},this._enableAddModels=!!t.enableEditModels,this._enableMeasurements=!1!==t.enableMeasurements,this._enablePropertiesInspector=!!t.inspectorElement,this.viewer=l,this._objectsKdTree3=new Gb({viewer:l}),this._customizeViewer(),this._initCanvasContextMenus(),s.innerHTML=function(e){return'
\n
\n Models\n
\n
\n \n '+(e.enableEditModels?'':"")+'
\n
\n
\n
\n
\n Objects\n
\n
\n \n \n
\n
\n
\n
\n
\n Classes\n
\n
\n \n \n
\n
\n
\n
\n
\n Storeys\n
\n
\n \n \n
\n
\n
\n
\n
'}(t),o.innerHTML=function(e={}){return'
\n \x3c!-- Reset button --\x3e\n
\n \n
\n
\n \x3c!-- 3D Mode button --\x3e\n \n \x3c!-- Perspective/Ortho Mode button --\x3e\n \n \x3c!-- Fit button --\x3e\n \n \x3c!-- First Person mode button --\x3e\n \n \x3c!-- Show/hide IFCSpaces --\x3e\n \n
\n \x3c!-- Tools button group --\x3e\n
\n \x3c!-- Hide tool button --\x3e\n \n \x3c!-- Select tool button --\x3e\n \n \x3c!-- Marquee select tool button --\x3e\n '+(e.enableMeasurements?'\x3c!-- Measure distance tool button --\x3e\n \n \x3c!-- Measure angle tool button --\x3e\n ':" ")+'\x3c!-- section tool button --\x3e\n \n
\n
'}({enableMeasurements:this._enableMeasurements}),this._enablePropertiesInspector&&(r.innerHTML='
\n
\n Properties\n
\n
\n
\n
\n
'),this._explorerElement=s,this._inspectorElement=r,Yb(s),this._enablePropertiesInspector&&Yb(r),this._modelsExplorer=new Ib(this,{enableMeasurements:this._enableMeasurements,modelsTabElement:s.querySelector(".xeokit-modelsTab"),loadModelsButtonElement:s.querySelector(".xeokit-loadAllModels"),unloadModelsButtonElement:s.querySelector(".xeokit-unloadAllModels"),addModelButtonElement:s.querySelector(".xeokit-addModel"),modelsElement:s.querySelector(".xeokit-models"),enableEditModels:this._enableAddModels}),this._objectsExplorer=new Tb(this,{enableMeasurements:this._enableMeasurements,objectsTabElement:s.querySelector(".xeokit-objectsTab"),showAllObjectsButtonElement:s.querySelector(".xeokit-showAllObjects"),hideAllObjectsButtonElement:s.querySelector(".xeokit-hideAllObjects"),objectsElement:s.querySelector(".xeokit-objects")}),this._classesExplorer=new Rb(this,{enableMeasurements:this._enableMeasurements,classesTabElement:s.querySelector(".xeokit-classesTab"),showAllClassesButtonElement:s.querySelector(".xeokit-showAllClasses"),hideAllClassesButtonElement:s.querySelector(".xeokit-hideAllClasses"),classesElement:s.querySelector(".xeokit-classes")}),this._storeysExplorer=new Ub(this,{enableMeasurements:this._enableMeasurements,storeysTabElement:s.querySelector(".xeokit-storeysTab"),showAllStoreysButtonElement:s.querySelector(".xeokit-showAllStoreys"),hideAllStoreysButtonElement:s.querySelector(".xeokit-hideAllStoreys"),storeysElement:s.querySelector(".xeokit-storeys")}),this._enablePropertiesInspector&&(this._propertiesInspector=new jb(this,{propertiesTabElement:r.querySelector(".xeokit-propertiesTab"),propertiesElement:r.querySelector(".xeokit-properties")})),this._resetAction=new pb(this,{buttonElement:o.querySelector(".xeokit-reset"),active:!1}),this._fitAction=new mb(this,{buttonElement:o.querySelector(".xeokit-fit"),active:!1});const A=new function(e){let t=!1;this.setThreeDModeActive=i=>{i?(e._firstPersonMode.setActive(!1),e._marqueeSelectionTool.setEnabled(!0),e.viewer.cameraControl.navMode="orbit"):(e._marqueeSelectionTool.setEnabled(!1),e._marqueeSelectionTool.setActive(!1),e._firstPersonMode.setActive(!1),e.viewer.cameraControl.navMode="planView"),t=i},this.setFirstPersonModeActive=i=>{e.viewer.cameraControl.navMode=i?"firstPerson":t?"orbit":"planView"}}(this);this._threeDMode=new Ob(this,{buttonElement:o.querySelector(".xeokit-threeD"),cameraControlNavModeMediator:A,active:!1}),this._orthoMode=new Vb(this,{buttonElement:o.querySelector(".xeokit-ortho"),active:!1}),this._firstPersonMode=new fb(this,{buttonElement:o.querySelector(".xeokit-firstPerson"),cameraControlNavModeMediator:A,active:!1}),this._hideTool=new _b(this,{buttonElement:o.querySelector(".xeokit-hide"),active:!1}),this._selectionTool=new vb(this,{buttonElement:o.querySelector(".xeokit-select"),active:!1}),this._marqueeSelectionTool=new Wb(this,{buttonElement:o.querySelector(".xeokit-marquee"),active:!1,objectsKdTree3:this._objectsKdTree3}),this._showSpacesMode=new bb(this,{buttonElement:o.querySelector(".xeokit-showSpaces"),active:!1}),this._queryTool=new xb(this,{active:!1}),this._sectionTool=new Bb(this,{buttonElement:o.querySelector(".xeokit-section"),counterElement:o.querySelector(".xeokit-section-counter"),menuButtonElement:o.querySelector(".xeokit-section-menu-button"),menuButtonArrowElement:o.querySelector(".xeokit-section-menu-button-arrow"),active:!1}),this._enableMeasurements&&(this._measureDistanceTool=new Kb(this,{buttonElement:o.querySelector(".xeokit-measure-distance"),active:!1}),this._measureAngleTool=new Xb(this,{buttonElement:o.querySelector(".xeokit-measure-angle"),active:!1})),this._navCubeMode=new Cb(this,{navCubeCanvasElement:n,active:!0}),this._busyModal=new ub(this,{busyModalBackdropElement:a}),this._threeDMode.setActive(!0),this._firstPersonMode.setActive(!1),this._navCubeMode.setActive(!0),this._modelsExplorer.on("modelLoaded",(e=>{this._modelsExplorer.getNumModelsLoaded()>0&&this.setControlsEnabled(!0),this.fire("modelLoaded",e)})),this._modelsExplorer.on("modelUnloaded",(e=>{0===this._modelsExplorer.getNumModelsLoaded()&&(this.setControlsEnabled(!1),this.openTab("models")),this.fire("modelUnloaded",e)})),this._resetAction.on("reset",(()=>{this.fire("reset",!0)})),this._mutexActivation([this._hideTool,this._selectionTool,this._marqueeSelectionTool,this._sectionTool,this._enableMeasurements?this._measureDistanceTool:null,this._enableMeasurements?this._measureAngleTool:null]),s.querySelector(".xeokit-showAllObjects").addEventListener("click",(e=>{this.setAllObjectsVisible(!0),this.setAllObjectsXRayed(!1),e.preventDefault()})),s.querySelector(".xeokit-hideAllObjects").addEventListener("click",(e=>{this.setAllObjectsVisible(!1),e.preventDefault()})),s.querySelector(".xeokit-showAllClasses").addEventListener("click",(e=>{this.setAllObjectsVisible(!0),this.setAllObjectsXRayed(!1),e.preventDefault()})),s.querySelector(".xeokit-hideAllClasses").addEventListener("click",(e=>{this.setAllObjectsVisible(!1),e.preventDefault()})),s.querySelector(".xeokit-showAllStoreys").addEventListener("click",(e=>{this.setAllObjectsVisible(!0),this.setAllObjectsXRayed(!1),e.preventDefault()})),s.querySelector(".xeokit-hideAllStoreys").addEventListener("click",(e=>{this.setAllObjectsVisible(!1),e.preventDefault()})),s.querySelector(".xeokit-loadAllModels").addEventListener("click",(e=>{this.setControlsEnabled(!1),this.loadAllModels(),e.preventDefault()})),s.querySelector(".xeokit-unloadAllModels").addEventListener("click",(e=>{this.setControlsEnabled(!1),this._modelsExplorer.unloadAllModels(),e.preventDefault()})),this._enableAddModels&&s.querySelector(".xeokit-addModel").addEventListener("click",(e=>{this.fire("addModel",{}),e.preventDefault()})),this._bcfViewpointsPlugin=new DA(this.viewer,{xrayAsZeroAlpha:!0}),this._fastNavPlugin=new jA(l,{hideEdges:!0,hideSAO:!0,hidePBR:!1,hideColorTexture:!1,hideTransparentObjects:!1,scaleCanvasResolution:!1,scaleCanvasResolutionFactor:.6}),this._initConfigs(),this.setControlsEnabled(!1)}get localeService(){return this.viewer.localeService}_customizeViewer(){const e=this.viewer.scene;e.xrayMaterial.fill=!1,e.xrayMaterial.fillAlpha=.3,e.xrayMaterial.fillColor=[0,0,0],e.xrayMaterial.edges=!0,e.xrayMaterial.edgeAlpha=.1,e.xrayMaterial.edgeColor=[0,0,0],e.highlightMaterial.edges=!0,e.highlightMaterial.edgeColor=[1,1,1],e.highlightMaterial.edgeAlpha=1,e.highlightMaterial.fill=!0,e.highlightMaterial.fillAlpha=.1,e.highlightMaterial.fillColor=[1,0,0],e.selectedMaterial.edges=!0,e.selectedMaterial.edgeColor=[1,1,1],e.selectedMaterial.edgeAlpha=1,e.selectedMaterial.fill=!0,e.selectedMaterial.fillAlpha=.1,e.selectedMaterial.fillColor=[0,1,0],e.pointsMaterial.pointSize=1,e.pointsMaterial.roundPoints=!0,e.pointsMaterial.perspectivePoints=!0,e.pointsMaterial.minPerspectivePointSize=2,e.pointsMaterial.maxPerspectivePointSize=4,this.viewer.cameraControl.panRightClick=!0,this.viewer.cameraControl.followPointer=!0,this.viewer.cameraControl.doublePickFlyTo=!1,this.viewer.cameraControl.smartPivot=!0,this.viewer.cameraControl.keyboardDollyRate=100,this.viewer.cameraControl.mouseWheelDollyRate=100,this.viewer.cameraControl.dollyInertia=0,this.viewer.cameraControl.dollyMinSpeed=.04,this.viewer.cameraControl.dollyProximityThreshold=30;const t=document.createRange().createContextualFragment("
").firstChild;document.body.appendChild(t),this.viewer.cameraControl.pivotElement=t,e.camera.perspective.near=.01,e.camera.perspective.far=3e3,e.camera.ortho.near=.01,e.camera.ortho.far=2e3;const i=e.sao;i.enabled=!0,i.numSamples=50,i.kernelRadius=200}_initCanvasContextMenus(){this._canvasContextMenu=new Qb(this,{hideOnAction:!0,enableMeasurements:this._enableMeasurements}),this._objectContextMenu=new Nb(this,{hideOnAction:!0,enableMeasurements:this._enableMeasurements}),this.viewer.cameraControl.on("rightClick",(e=>{e.event;const t=this.viewer.scene.pick({canvasPos:e.canvasPos});t&&t.entity.isObject?(this._canvasContextMenu.hide(),this._objectContextMenu.context={viewer:this.viewer,bimViewer:this,showObjectInExplorers:e=>{const t=this.getOpenTab();"objects"!==t&&"classes"!==t&&"storeys"!==t&&this.openTab("objects"),this.showObjectInExplorers(e)},entity:t.entity},this._objectContextMenu.show(e.pagePos[0],e.pagePos[1])):(this._objectContextMenu.hide(),this._canvasContextMenu.context={viewer:this.viewer,bimViewer:this},this._canvasContextMenu.show(e.pagePos[0],e.pagePos[1]))}))}_initConfigs(){this.setConfigs({cameraNear:"0.05",cameraFar:"3000.0",smartPivot:!0,saoEnabled:!0,pbrEnabled:!1,scaleCanvasResolution:!1,saoBias:.5,saoIntensity:.15,saoNumSamples:40,saoKernelRadius:100,edgesEnabled:!0,xrayContext:!0,xrayPickable:!1,selectedGlowThrough:!0,highlightGlowThrough:!0,backgroundColor:[1,1,1],externalMetadata:!1,dtxEnabled:!1})}setConfigs(e){for(let t in e)if(e.hasOwnProperty(t)){const i=e[t];this.setConfig(t,i)}}setConfig(e,t){function i(e){return!0===e||"true"===e}try{switch(e){case"backgroundColor":const s=t;this.setBackgroundColor(s),this._configs[e]=s;break;case"cameraNear":const r=parseFloat(t);this.viewer.scene.camera.perspective.near=r,this.viewer.scene.camera.ortho.near=r,this._configs[e]=r;break;case"cameraFar":const o=parseFloat(t);this.viewer.scene.camera.perspective.far=o,this._configs[e]=o;break;case"smartPivot":this.viewer.cameraControl.smartPivot=this._configs[e]=i(t);break;case"saoEnabled":this._fastNavPlugin.saoEnabled=this._configs[e]=i(t);break;case"saoBias":this.viewer.scene.sao.bias=parseFloat(t);break;case"saoIntensity":this.viewer.scene.sao.intensity=parseFloat(t);break;case"saoKernelRadius":this.viewer.scene.sao.kernelRadius=this._configs[e]=parseFloat(t);break;case"saoNumSamples":this.viewer.scene.sao.numSamples=this._configs[e]=parseFloat(t);break;case"saoBlur":this.viewer.scene.sao.blur=this._configs[e]=i(t);break;case"edgesEnabled":this._fastNavPlugin.edgesEnabled=this._configs[e]=i(t);break;case"pbrEnabled":this._fastNavPlugin.pbrEnabled=this._configs[e]=i(t);break;case"scaleCanvasResolution":this._fastNavPlugin.scaleCanvasResolution=this._configs[e]=i(t);break;case"viewFitFOV":this.viewer.cameraFlight.fitFOV=this._configs[e]=parseFloat(t);break;case"viewFitDuration":this.viewer.cameraFlight.duration=this._configs[e]=parseFloat(t);break;case"perspectiveFOV":this.viewer.camera.perspective.fov=this._configs[e]=parseFloat(t);break;case"excludeUnclassifiedObjects":case"xrayPickable":case"externalMetadata":this._configs[e]=i(t);break;case"xrayContext":this._configs[e]=t;break;case"selectedGlowThrough":const n=this._configs[e]=i(t),a=this.viewer.scene.selectedMaterial;a.glowThrough=n,a.fillAlpha=n?.5:1,a.edgeAlpha=n?.5:1;break;case"highlightGlowThrough":const l=this._configs[e]=i(t),A=this.viewer.scene.highlightMaterial;A.glowThrough=l,A.fillAlpha=l?.5:1,A.edgeAlpha=l?.5:1;break;case"showSpaces":this._configs[e]=i(t),this._showSpacesMode.setActive(t);break;case"dtxEnabled":this._configs[e]=i(t),this.viewer.scene.dtxEnabled=t;break;case"objectColors":this._configs[e]=t,this._modelsExplorer.setObjectColors(t);break;default:this.warn("setConfig() - unsupported configuration: '"+e+"'")}}catch(t){this.error("setConfig() - failed to configure '"+e+"': "+t)}}getConfig(e){return this._configs[e]}getProjectsInfo(e,t){e?this.server.getProjects(e,(e=>{this.error("getProjectsInfo() - "+e),t&&t(e)})):this.error("getProjectsInfo() - Argument expected: 'done'")}getProjectInfo(e,t,i){e?t?this.server.getProject(e,t,(e=>{this.error("getProjectInfo() - "+e),i&&i(e)})):this.error("getProjectInfo() - Argument expected: 'done'"):this.error("getProjectInfo() - Argument expected: projectId")}getObjectInfo(e,t,i,s,r){e?t?i?s?this.server.getObjectInfo(e,t,i,s,(e=>{r&&r(e)})):this.error("getProjectInfo() - Argument expected: 'done'"):this.error("getObjectInfo() - Argument expected: objectId"):this.error("getObjectInfo() - Argument expected: modelId"):this.error("getObjectInfo() - Argument expected: projectId")}loadProject(e,t,i){e?this._modelsExplorer.loadProject(e,(()=>{t&&t()}),(e=>{this.error("loadProject() - "+e),i&&i(e)})):this.error("loadProject() - Argument expected: objectId")}unloadProject(){this._modelsExplorer.unloadProject(),this.openTab("models"),this.setControlsEnabled(!1)}getLoadedProjectId(){return this._modelsExplorer.getLoadedProjectId()}getModelIds(){return this._modelsExplorer.getModelIds()}loadModel(e,t,i){e?this._modelsExplorer.loadModel(e,(()=>{t&&t()}),(e=>{this.error("loadModel() - "+e),i&&i(e)})):this.error("loadModel() - Argument expected: modelId")}loadAllModels(e=function(){}){const t=this._modelsExplorer.getModelIds(),i=(e,s)=>{if(e>=t.length)s();else{const r=t[e];this._modelsExplorer.isModelLoaded(r)?i(e+1,s):this._modelsExplorer.loadModel(r,(()=>{i(e+1,s)}),(t=>{this.error("loadAllModels() - "+t),i(e+1,s)}))}};i(0,e)}getLoadedModelIds(){return this._modelsExplorer._getLoadedModelIds()}isModelLoaded(e){if(e)return this._modelsExplorer.isModelLoaded(e);this.error("unloadModel() - Argument expected: modelId")}unloadModel(e){e?this._modelsExplorer.unloadModel(e):this.error("unloadModel() - Argument expected: modelId")}unloadAllModels(){this._modelsExplorer.unloadAllModels()}editModel(e){this.fire("editModel",{modelId:e})}deleteModel(e){this.fire("deleteModel",{modelId:e})}addModel(){this.fire("addModel",{})}setBackgroundColor(e){this.viewer.scene.canvas.backgroundColor=e}setObjectColorSource(e){console.log("BIMViewer.setObjectColorSource() is now deprecated and no longer functional. By default, BIMViewer.getObjectColorSource() will now always return the (formerly) default value of `model`.")}getObjectColorSource(){return"model"}setViewerState(e,t=(()=>{})){e.tabOpen&&this.openTab(e.tabOpen),e.expandObjectsTree&&this._objectsExplorer.expandTreeViewToDepth(e.expandObjectsTree),e.expandClassesTree&&this._classesExplorer.expandTreeViewToDepth(e.expandClassesTree),e.expandStoreysTree&&this._storeysExplorer.expandTreeViewToDepth(e.expandStoreysTree),e.setCamera&&this.setCamera(e.setCamera),this._parseSelectedStorey(e,(()=>{this._parseThreeDMode(e,(()=>{t()}))}))}_parseSelectedStorey(e,t){e.selectedStorey?(this.selectStorey(e.selectedStorey),t()):t()}_parseThreeDMode(e,t){const i=!1!==e.threeDActive;this.set3DEnabled(i,t)}showObjectInExplorers(e){e?(this._objectsExplorer.showNodeInTreeView(e),this._classesExplorer.showNodeInTreeView(e),this._storeysExplorer.showNodeInTreeView(e),this.fire("openExplorer",{})):this.error("showObjectInExplorers() - Argument expected: objectId")}unShowObjectInExplorers(){this._objectsExplorer.unShowNodeInTreeView(),this._classesExplorer.unShowNodeInTreeView(),this._storeysExplorer.unShowNodeInTreeView()}showObjectProperties(e){e?(this._enablePropertiesInspector&&this._propertiesInspector.showObjectPropertySets(e),this.fire("openInspector",{})):this.error("showObjectInExplorers() - Argument expected: objectId")}setObjectsVisible(e,t){this._withObjectsInSubtree(e,(e=>{e.visible=t}))}setAllObjectsVisible(e){e?this.viewer.scene.setObjectsVisible(this.viewer.scene.objectIds,!0):this.viewer.scene.setObjectsVisible(this.viewer.scene.visibleObjectIds,!1)}setObjectsXRayed(e,t){this._withObjectsInSubtree(e,(e=>{e.xrayed=t}))}setAllObjectsXRayed(e){e?this.viewer.scene.setObjectsXRayed(this.viewer.scene.objectIds,!0):this.viewer.scene.setObjectsXRayed(this.viewer.scene.xrayedObjectIds,!1)}setObjectsSelected(e,t){this._withObjectsInSubtree(e,(e=>{e.selected=t}))}setAllObjectsSelected(e){e?this.viewer.scene.setObjectsSelected(this.viewer.scene.objectIds,!0):this.viewer.scene.setObjectsSelected(this.viewer.scene.selectedObjectIds,!1)}_withObjectsInSubtree(e,t){if(e)for(let i=0,s=e.length;i{const i=this.viewer.scene.objects[e.id];i&&t(i)}))}else this.error("Argument expected: objectIds")}flyToObject(e,t){if(!e)return void this.error("flyToObject() - Argument expected: objectId");const i=this.viewer,s=i.scene,r=[];if(this.viewer.metaScene.withMetaObjectsInSubtree(e,(e=>{s.objects[e.id]&&r.push(e.id)})),0===r.length)return this.error("Object not found in viewer: '"+e+"'"),void(t&&t());s.setObjectsVisible(r,!0),s.setObjectsHighlighted(r,!0);const o=s.getAABB(r);i.cameraFlight.flyTo({aabb:o},(()=>{t&&t(),setTimeout((function(){s.setObjectsHighlighted(s.highlightedObjectIds,!1)}),500)})),i.cameraControl.pivotPos=u.getAABB3Center(o)}viewFitObjects(e,t){if(!e)return void this.error("flyToObject() - Argument expected: objectIds");const i=this.viewer,s=i.scene,r=[];for(var o=0,n=e.length;o{s.objects[e.id]&&r.push(e.id)}))}if(0===r.length)return void(t&&t());s.setObjectsVisible(r,!0),s.setObjectsHighlighted(r,!0);const a=s.getAABB(r);i.cameraFlight.flyTo({aabb:a},(()=>{t&&t(),setTimeout((function(){s.setObjectsHighlighted(s.highlightedObjectIds,!1)}),500)})),i.cameraControl.pivotPos=u.getAABB3Center(a)}viewFitAll(e){const t=this.viewer,i=t.scene.getAABB();t.cameraFlight.flyTo({aabb:i},(()=>{e&&e()})),t.cameraControl.pivotPos=u.getAABB3Center(i)}jumpToObject(e){if(!e)return void this.error("jumpToObject() - Argument expected: objectId");const t=this.viewer,i=t.scene,s=[];if(this.viewer.metaScene.withMetaObjectsInSubtree(e,(e=>{i.objects[e.id]&&s.push(e.id)})),0===s.length)return void this.error("Object not found in viewer: '"+e+"'");i.setObjectsVisible(s,!0);const r=i.getAABB(s);t.cameraFlight.jumpTo({aabb:r}),t.cameraControl.pivotPos=u.getAABB3Center(r)}setCamera(e){const t=this.viewer.scene.camera;e.eye&&(t.eye=e.eye),e.look&&(t.look=e.look),e.up&&(t.up=e.up)}viewFitModels(e,t){if(!e)return void this.error("viewFitModels() - Argument expected: modelIds");const i=this.viewer,s=i.scene,r=u.AABB3();u.collapseAABB3(r);for(var o=0,n=e.length;o{t(),setTimeout((function(){s.setObjectsHighlighted(s.highlightedObjectIds,!1)}),500)})):(i.cameraFlight.jumpTo({aabb:r}),setTimeout((function(){s.setObjectsHighlighted(s.highlightedObjectIds,!1)}),500)),i.cameraControl.pivotPos=u.getAABB3Center(r)}openTab(e){if(!e)return void this.error("openTab() - Argument expected: tabId");let t;switch(e){case"models":t="xeokit-modelsTab";break;case"objects":t="xeokit-objectsTab";break;case"classes":t="xeokit-classesTab";break;case"storeys":t="xeokit-storeysTab";break;case"properties":t="xeokit-propertiesTab";break;default:return void this.error("openTab() - tab not recognized: '"+e+"'")}this._openTab(this._explorerElement,t)}_openTab(e,t){const i="active";let s=e.querySelectorAll(".xeokit-tab"),r=e.querySelector("."+t);for(let e=0;e-1}const t="active";return e(this._explorerElement.querySelector(".xeokit-modelsTab"),t)?"models":e(this._explorerElement.querySelector(".xeokit-objectsTab"),t)?"objects":e(this._explorerElement.querySelector(".xeokit-classesTab"),t)?"classes":e(this._explorerElement.querySelector(".xeokit-storeysTab"),t)?"storeys":e(this._inspectorElement.querySelector(".xeokit-propertiesTab"),t)?"properties":"none"}set3DEnabled(e,t){this._threeDMode.setActive(e,t)}get3DEnabled(){return this._threeDMode.getActive()}setSpacesShown(e){this._showSpacesMode.setActive(e)}getSpacesShown(){return this._showSpacesMode.getActive()}setOrthoEnabled(e,t){this._orthoMode.setActive(e,t)}getOrthoEnabled(){return this._orthoMode.getActive()}selectStorey(e,t){const i=this.viewer.metaScene.metaObjects[e];i?"IfcBuildingStorey"===i.type?this._storeysExplorer.selectStorey(e,t):this.error("selectStorey() - Object is not an IfcBuildingStorey: '"+e+"'"):this.error("selectStorey() - Object is not found: '"+e+"'")}saveBCFViewpoint(e){return this._bcfViewpointsPlugin.getViewpoint(e)}loadBCFViewpoint(e,t){e?(this._orthoMode.setActive("ortho"===this.viewer.camera.projection),this._bcfViewpointsPlugin.setViewpoint(e,t)):this.error("loadBCFViewpoint() - Argument expected: bcfViewpoint")}resetView(){this._resetAction.reset()}setControlsEnabled(e){this._objectsExplorer.setEnabled(e),this._classesExplorer.setEnabled(e),this._storeysExplorer.setEnabled(e),this._resetAction.setEnabled(e),this._fitAction.setEnabled(e),this._threeDMode.setEnabled(e),this._orthoMode.setEnabled(e),this._firstPersonMode.setEnabled(e),this._queryTool.setEnabled(e),this._hideTool.setEnabled(e),this._selectionTool.setEnabled(e),this._marqueeSelectionTool.setEnabled(e),this._showSpacesMode.setEnabled(e),this._enableMeasurements&&(this._measureDistanceTool.setEnabled(e),this._measureAngleTool.setEnabled(e)),this._sectionTool.setEnabled(e),this._enablePropertiesInspector&&this._propertiesInspector.setEnabled(e)}setKeyboardEnabled(e){this.viewer.scene.input.keyboardEnabled=e}getKeyboardEnabled(){return this.viewer.scene.input.keyboardEnabled}clearSections(){this._sectionTool.clear()}disableSections(){this._sectionTool.disableSections()}enableSections(){this._sectionTool.enableSections()}flipSections(){this._sectionTool.flipSections()}hideSectionEditControl(){this._sectionTool.hideControl()}getNumSections(){return this._sectionTool.getNumSections()}getEnableMeasurements(){return this._enableMeasurements}clearMeasurements(){this._enableMeasurements&&(this._measureDistanceTool.clear(),this._measureAngleTool.clear())}getNumMeasurements(){return this._measureDistanceTool.getNumMeasurements()+this._measureAngleTool.getNumMeasurements()}setMeasurementsAxisVisible(e){this._enableMeasurements&&this._measureDistanceTool.setMeasurementsAxisVisible(e)}getMeasurementsAxisVisible(){return!!this._enableMeasurements&&this._measureDistanceTool.getMeasurementsAxisVisible()}setMeasurementsSnappingEnabled(e){this._enableMeasurements&&this._measureDistanceTool.setSnappingEnabled(e)}getMeasurementsSnappingEnabled(){return!!this._enableMeasurements&&this._measureDistanceTool.getSnappingEnabled()}destroy(){this.viewer.destroy(),this._bcfViewpointsPlugin.destroy(),this._canvasContextMenu.destroy(),this._objectContextMenu.destroy()}}export{qb as BIMViewer,HA as LocaleService,Ab as Server}; diff --git a/dist/xeokit-bim-viewer.min.umd.js b/dist/xeokit-bim-viewer.min.umd.js index ae23f966..158a76da 100644 --- a/dist/xeokit-bim-viewer.min.umd.js +++ b/dist/xeokit-bim-viewer.min.umd.js @@ -34,5 +34,5 @@ let yA=null;function PA(e,t){let i;for(let s=0;s<3;s++)if(0!=(i=yA[3*e+s]-yA[3*t LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - ***************************************************************************** */var xc=function(e,t){return xc=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var i in t)Object.prototype.hasOwnProperty.call(t,i)&&(e[i]=t[i])},xc(e,t)};function wc(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function i(){this.constructor=e}xc(e,t),e.prototype=null===t?Object.create(t):(i.prototype=t.prototype,new i)}var yc=function(){return yc=Object.assign||function(e){for(var t,i=1,s=arguments.length;i0&&r[r.length-1])||6!==o[0]&&2!==o[0])){n=0;continue}if(3===o[0]&&(!r||o[1]>r[0]&&o[1]=55296&&r<=56319&&i>10),n%1024+56320)),(r+1===i||s.length>16384)&&(o+=String.fromCharCode.apply(String,s),s.length=0)}return o},Dc="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",Sc="undefined"==typeof Uint8Array?[]:new Uint8Array(256),Tc=0;Tc=0){if(e<55296||e>56319&&e<=65535)return t=((t=this.index[e>>5])<<2)+(31&e),this.data[t];if(e<=65535)return t=((t=this.index[2048+(e-55296>>5)])<<2)+(31&e),this.data[t];if(e>11),t=this.index[t],t+=e>>5&63,t=((t=this.index[t])<<2)+(31&e),this.data[t];if(e<=1114111)return this.data[this.highValueIndex]}return this.errorValue},e}(),Nc="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",Qc="undefined"==typeof Uint8Array?[]:new Uint8Array(256),Vc=0;Vc>4,h[l++]=(15&s)<<4|r>>2,h[l++]=(3&r)<<6|63&o;return A}(e),n=Array.isArray(o)?function(e){for(var t=e.length,i=[],s=0;s0;){var n=s[--o];if(Array.isArray(e)?-1!==e.indexOf(n):e===n)for(var a=i;a<=s.length;){var l;if((l=s[++a])===t)return!0;if(l!==jc)break}if(n!==jc)break}return!1},Pu=function(e,t){for(var i=e;i>=0;){var s=t[i];if(s!==jc)return s;i--}return 0},Bu=function(e,t,i,s,r){if(0===i[s])return du;var o=s-1;if(Array.isArray(r)&&!0===r[o])return du;var n=o-1,a=o+1,l=t[o],A=n>=0?t[n]:0,h=t[a];if(2===l&&3===h)return du;if(-1!==fu.indexOf(l))return"!";if(-1!==fu.indexOf(h))return du;if(-1!==_u.indexOf(h))return du;if(8===Pu(o,t))return pu;if(11===gu.get(e[o]))return du;if((l===su||l===ru)&&11===gu.get(e[a]))return du;if(7===l||7===h)return du;if(9===l)return du;if(-1===[jc,Hc,zc].indexOf(l)&&9===h)return du;if(-1!==[Gc,Wc,Kc,Zc,tu].indexOf(h))return du;if(Pu(o,t)===qc)return du;if(yu(23,qc,o,t))return du;if(yu([Gc,Wc],Yc,o,t))return du;if(yu(12,12,o,t))return du;if(l===jc)return pu;if(23===l||23===h)return du;if(16===h||16===l)return pu;if(-1!==[Hc,zc,Yc].indexOf(h)||14===l)return du;if(36===A&&-1!==wu.indexOf(l))return du;if(l===tu&&36===h)return du;if(h===Xc)return du;if(-1!==mu.indexOf(h)&&l===Jc||-1!==mu.indexOf(l)&&h===Jc)return du;if(l===eu&&-1!==[au,su,ru].indexOf(h)||-1!==[au,su,ru].indexOf(l)&&h===$c)return du;if(-1!==mu.indexOf(l)&&-1!==vu.indexOf(h)||-1!==vu.indexOf(l)&&-1!==mu.indexOf(h))return du;if(-1!==[eu,$c].indexOf(l)&&(h===Jc||-1!==[qc,zc].indexOf(h)&&t[a+1]===Jc)||-1!==[qc,zc].indexOf(l)&&h===Jc||l===Jc&&-1!==[Jc,tu,Zc].indexOf(h))return du;if(-1!==[Jc,tu,Zc,Gc,Wc].indexOf(h))for(var c=o;c>=0;){if((u=t[c])===Jc)return du;if(-1===[tu,Zc].indexOf(u))break;c--}if(-1!==[eu,$c].indexOf(h))for(c=-1!==[Gc,Wc].indexOf(l)?n:o;c>=0;){var u;if((u=t[c])===Jc)return du;if(-1===[tu,Zc].indexOf(u))break;c--}if(lu===l&&-1!==[lu,Au,ou,nu].indexOf(h)||-1!==[Au,ou].indexOf(l)&&-1!==[Au,hu].indexOf(h)||-1!==[hu,nu].indexOf(l)&&h===hu)return du;if(-1!==xu.indexOf(l)&&-1!==[Xc,$c].indexOf(h)||-1!==xu.indexOf(h)&&l===eu)return du;if(-1!==mu.indexOf(l)&&-1!==mu.indexOf(h))return du;if(l===Zc&&-1!==mu.indexOf(h))return du;if(-1!==mu.concat(Jc).indexOf(l)&&h===qc&&-1===uu.indexOf(e[a])||-1!==mu.concat(Jc).indexOf(h)&&l===Wc)return du;if(41===l&&41===h){for(var d=i[o],p=1;d>0&&41===t[--d];)p++;if(p%2!=0)return du}return l===su&&h===ru?du:pu},Cu=function(e,t){t||(t={lineBreak:"normal",wordBreak:"normal"});var i=function(e,t){void 0===t&&(t="strict");var i=[],s=[],r=[];return e.forEach((function(e,o){var n=gu.get(e);if(n>50?(r.push(!0),n-=50):r.push(!1),-1!==["normal","auto","loose"].indexOf(t)&&-1!==[8208,8211,12316,12448].indexOf(e))return s.push(o),i.push(16);if(4===n||11===n){if(0===o)return s.push(o),i.push(iu);var a=i[o-1];return-1===bu.indexOf(a)?(s.push(s[o-1]),i.push(a)):(s.push(o),i.push(iu))}return s.push(o),31===n?i.push("strict"===t?Yc:au):n===cu||29===n?i.push(iu):43===n?e>=131072&&e<=196605||e>=196608&&e<=262141?i.push(au):i.push(iu):void i.push(n)})),[s,i,r]}(e,t.lineBreak),s=i[0],r=i[1],o=i[2];"break-all"!==t.wordBreak&&"break-word"!==t.wordBreak||(r=r.map((function(e){return-1!==[Jc,iu,cu].indexOf(e)?au:e})));var n="keep-all"===t.wordBreak?o.map((function(t,i){return t&&e[i]>=19968&&e[i]<=40959})):void 0;return[s,r,n]},Mu=function(){function e(e,t,i,s){this.codePoints=e,this.required="!"===t,this.start=i,this.end=s}return e.prototype.slice=function(){return Ic.apply(void 0,this.codePoints.slice(this.start,this.end))},e}(),Eu=45,Fu=43,Iu=-1,Du=function(e){return e>=48&&e<=57},Su=function(e){return Du(e)||e>=65&&e<=70||e>=97&&e<=102},Tu=function(e){return 10===e||9===e||32===e},Ru=function(e){return function(e){return function(e){return e>=97&&e<=122}(e)||function(e){return e>=65&&e<=90}(e)}(e)||function(e){return e>=128}(e)||95===e},Lu=function(e){return Ru(e)||Du(e)||e===Eu},Uu=function(e){return e>=0&&e<=8||11===e||e>=14&&e<=31||127===e},ku=function(e,t){return 92===e&&10!==t},Ou=function(e,t,i){return e===Eu?Ru(t)||ku(t,i):!!Ru(e)||!(92!==e||!ku(e,t))},Nu=function(e,t,i){return e===Fu||e===Eu?!!Du(t)||46===t&&Du(i):Du(46===e?t:e)},Qu=function(e){var t=0,i=1;e[t]!==Fu&&e[t]!==Eu||(e[t]===Eu&&(i=-1),t++);for(var s=[];Du(e[t]);)s.push(e[t++]);var r=s.length?parseInt(Ic.apply(void 0,s),10):0;46===e[t]&&t++;for(var o=[];Du(e[t]);)o.push(e[t++]);var n=o.length,a=n?parseInt(Ic.apply(void 0,o),10):0;69!==e[t]&&101!==e[t]||t++;var l=1;e[t]!==Fu&&e[t]!==Eu||(e[t]===Eu&&(l=-1),t++);for(var A=[];Du(e[t]);)A.push(e[t++]);var h=A.length?parseInt(Ic.apply(void 0,A),10):0;return i*(r+a*Math.pow(10,-n))*Math.pow(10,l*h)},Vu={type:2},ju={type:3},Hu={type:4},zu={type:13},Gu={type:8},Wu={type:21},Ku={type:9},Xu={type:10},Yu={type:11},qu={type:12},Zu={type:14},Ju={type:23},$u={type:1},ed={type:25},td={type:24},id={type:26},sd={type:27},rd={type:28},od={type:29},nd={type:31},ad={type:32},ld=function(){function e(){this._value=[]}return e.prototype.write=function(e){this._value=this._value.concat(Fc(e))},e.prototype.read=function(){for(var e=[],t=this.consumeToken();t!==ad;)e.push(t),t=this.consumeToken();return e},e.prototype.consumeToken=function(){var e=this.consumeCodePoint();switch(e){case 34:return this.consumeStringToken(34);case 35:var t=this.peekCodePoint(0),i=this.peekCodePoint(1),s=this.peekCodePoint(2);if(Lu(t)||ku(i,s)){var r=Ou(t,i,s)?2:1;return{type:5,value:this.consumeName(),flags:r}}break;case 36:if(61===this.peekCodePoint(0))return this.consumeCodePoint(),zu;break;case 39:return this.consumeStringToken(39);case 40:return Vu;case 41:return ju;case 42:if(61===this.peekCodePoint(0))return this.consumeCodePoint(),Zu;break;case Fu:if(Nu(e,this.peekCodePoint(0),this.peekCodePoint(1)))return this.reconsumeCodePoint(e),this.consumeNumericToken();break;case 44:return Hu;case Eu:var o=e,n=this.peekCodePoint(0),a=this.peekCodePoint(1);if(Nu(o,n,a))return this.reconsumeCodePoint(e),this.consumeNumericToken();if(Ou(o,n,a))return this.reconsumeCodePoint(e),this.consumeIdentLikeToken();if(n===Eu&&62===a)return this.consumeCodePoint(),this.consumeCodePoint(),td;break;case 46:if(Nu(e,this.peekCodePoint(0),this.peekCodePoint(1)))return this.reconsumeCodePoint(e),this.consumeNumericToken();break;case 47:if(42===this.peekCodePoint(0))for(this.consumeCodePoint();;){var l=this.consumeCodePoint();if(42===l&&47===(l=this.consumeCodePoint()))return this.consumeToken();if(l===Iu)return this.consumeToken()}break;case 58:return id;case 59:return sd;case 60:if(33===this.peekCodePoint(0)&&this.peekCodePoint(1)===Eu&&this.peekCodePoint(2)===Eu)return this.consumeCodePoint(),this.consumeCodePoint(),ed;break;case 64:var A=this.peekCodePoint(0),h=this.peekCodePoint(1),c=this.peekCodePoint(2);if(Ou(A,h,c))return{type:7,value:this.consumeName()};break;case 91:return rd;case 92:if(ku(e,this.peekCodePoint(0)))return this.reconsumeCodePoint(e),this.consumeIdentLikeToken();break;case 93:return od;case 61:if(61===this.peekCodePoint(0))return this.consumeCodePoint(),Gu;break;case 123:return Yu;case 125:return qu;case 117:case 85:var u=this.peekCodePoint(0),d=this.peekCodePoint(1);return u!==Fu||!Su(d)&&63!==d||(this.consumeCodePoint(),this.consumeUnicodeRangeToken()),this.reconsumeCodePoint(e),this.consumeIdentLikeToken();case 124:if(61===this.peekCodePoint(0))return this.consumeCodePoint(),Ku;if(124===this.peekCodePoint(0))return this.consumeCodePoint(),Wu;break;case 126:if(61===this.peekCodePoint(0))return this.consumeCodePoint(),Xu;break;case Iu:return ad}return Tu(e)?(this.consumeWhiteSpace(),nd):Du(e)?(this.reconsumeCodePoint(e),this.consumeNumericToken()):Ru(e)?(this.reconsumeCodePoint(e),this.consumeIdentLikeToken()):{type:6,value:Ic(e)}},e.prototype.consumeCodePoint=function(){var e=this._value.shift();return void 0===e?-1:e},e.prototype.reconsumeCodePoint=function(e){this._value.unshift(e)},e.prototype.peekCodePoint=function(e){return e>=this._value.length?-1:this._value[e]},e.prototype.consumeUnicodeRangeToken=function(){for(var e=[],t=this.consumeCodePoint();Su(t)&&e.length<6;)e.push(t),t=this.consumeCodePoint();for(var i=!1;63===t&&e.length<6;)e.push(t),t=this.consumeCodePoint(),i=!0;if(i)return{type:30,start:parseInt(Ic.apply(void 0,e.map((function(e){return 63===e?48:e}))),16),end:parseInt(Ic.apply(void 0,e.map((function(e){return 63===e?70:e}))),16)};var s=parseInt(Ic.apply(void 0,e),16);if(this.peekCodePoint(0)===Eu&&Su(this.peekCodePoint(1))){this.consumeCodePoint(),t=this.consumeCodePoint();for(var r=[];Su(t)&&r.length<6;)r.push(t),t=this.consumeCodePoint();return{type:30,start:s,end:parseInt(Ic.apply(void 0,r),16)}}return{type:30,start:s,end:s}},e.prototype.consumeIdentLikeToken=function(){var e=this.consumeName();return"url"===e.toLowerCase()&&40===this.peekCodePoint(0)?(this.consumeCodePoint(),this.consumeUrlToken()):40===this.peekCodePoint(0)?(this.consumeCodePoint(),{type:19,value:e}):{type:20,value:e}},e.prototype.consumeUrlToken=function(){var e=[];if(this.consumeWhiteSpace(),this.peekCodePoint(0)===Iu)return{type:22,value:""};var t=this.peekCodePoint(0);if(39===t||34===t){var i=this.consumeStringToken(this.consumeCodePoint());return 0===i.type&&(this.consumeWhiteSpace(),this.peekCodePoint(0)===Iu||41===this.peekCodePoint(0))?(this.consumeCodePoint(),{type:22,value:i.value}):(this.consumeBadUrlRemnants(),Ju)}for(;;){var s=this.consumeCodePoint();if(s===Iu||41===s)return{type:22,value:Ic.apply(void 0,e)};if(Tu(s))return this.consumeWhiteSpace(),this.peekCodePoint(0)===Iu||41===this.peekCodePoint(0)?(this.consumeCodePoint(),{type:22,value:Ic.apply(void 0,e)}):(this.consumeBadUrlRemnants(),Ju);if(34===s||39===s||40===s||Uu(s))return this.consumeBadUrlRemnants(),Ju;if(92===s){if(!ku(s,this.peekCodePoint(0)))return this.consumeBadUrlRemnants(),Ju;e.push(this.consumeEscapedCodePoint())}else e.push(s)}},e.prototype.consumeWhiteSpace=function(){for(;Tu(this.peekCodePoint(0));)this.consumeCodePoint()},e.prototype.consumeBadUrlRemnants=function(){for(;;){var e=this.consumeCodePoint();if(41===e||e===Iu)return;ku(e,this.peekCodePoint(0))&&this.consumeEscapedCodePoint()}},e.prototype.consumeStringSlice=function(e){for(var t="";e>0;){var i=Math.min(5e4,e);t+=Ic.apply(void 0,this._value.splice(0,i)),e-=i}return this._value.shift(),t},e.prototype.consumeStringToken=function(e){for(var t="",i=0;;){var s=this._value[i];if(s===Iu||void 0===s||s===e)return{type:0,value:t+=this.consumeStringSlice(i)};if(10===s)return this._value.splice(0,i),$u;if(92===s){var r=this._value[i+1];r!==Iu&&void 0!==r&&(10===r?(t+=this.consumeStringSlice(i),i=-1,this._value.shift()):ku(s,r)&&(t+=this.consumeStringSlice(i),t+=Ic(this.consumeEscapedCodePoint()),i=-1))}i++}},e.prototype.consumeNumber=function(){var e=[],t=4,i=this.peekCodePoint(0);for(i!==Fu&&i!==Eu||e.push(this.consumeCodePoint());Du(this.peekCodePoint(0));)e.push(this.consumeCodePoint());i=this.peekCodePoint(0);var s=this.peekCodePoint(1);if(46===i&&Du(s))for(e.push(this.consumeCodePoint(),this.consumeCodePoint()),t=8;Du(this.peekCodePoint(0));)e.push(this.consumeCodePoint());i=this.peekCodePoint(0),s=this.peekCodePoint(1);var r=this.peekCodePoint(2);if((69===i||101===i)&&((s===Fu||s===Eu)&&Du(r)||Du(s)))for(e.push(this.consumeCodePoint(),this.consumeCodePoint()),t=8;Du(this.peekCodePoint(0));)e.push(this.consumeCodePoint());return[Qu(e),t]},e.prototype.consumeNumericToken=function(){var e=this.consumeNumber(),t=e[0],i=e[1],s=this.peekCodePoint(0),r=this.peekCodePoint(1),o=this.peekCodePoint(2);return Ou(s,r,o)?{type:15,number:t,flags:i,unit:this.consumeName()}:37===s?(this.consumeCodePoint(),{type:16,number:t,flags:i}):{type:17,number:t,flags:i}},e.prototype.consumeEscapedCodePoint=function(){var e=this.consumeCodePoint();if(Su(e)){for(var t=Ic(e);Su(this.peekCodePoint(0))&&t.length<6;)t+=Ic(this.consumeCodePoint());Tu(this.peekCodePoint(0))&&this.consumeCodePoint();var i=parseInt(t,16);return 0===i||function(e){return e>=55296&&e<=57343}(i)||i>1114111?65533:i}return e===Iu?65533:e},e.prototype.consumeName=function(){for(var e="";;){var t=this.consumeCodePoint();if(Lu(t))e+=Ic(t);else{if(!ku(t,this.peekCodePoint(0)))return this.reconsumeCodePoint(t),e;e+=Ic(this.consumeEscapedCodePoint())}}},e}(),Ad=function(){function e(e){this._tokens=e}return e.create=function(t){var i=new ld;return i.write(t),new e(i.read())},e.parseValue=function(t){return e.create(t).parseComponentValue()},e.parseValues=function(t){return e.create(t).parseComponentValues()},e.prototype.parseComponentValue=function(){for(var e=this.consumeToken();31===e.type;)e=this.consumeToken();if(32===e.type)throw new SyntaxError("Error parsing CSS component value, unexpected EOF");this.reconsumeToken(e);var t=this.consumeComponentValue();do{e=this.consumeToken()}while(31===e.type);if(32===e.type)return t;throw new SyntaxError("Error parsing CSS component value, multiple values found when expecting only one")},e.prototype.parseComponentValues=function(){for(var e=[];;){var t=this.consumeComponentValue();if(32===t.type)return e;e.push(t),e.push()}},e.prototype.consumeComponentValue=function(){var e=this.consumeToken();switch(e.type){case 11:case 28:case 2:return this.consumeSimpleBlock(e.type);case 19:return this.consumeFunction(e)}return e},e.prototype.consumeSimpleBlock=function(e){for(var t={type:e,values:[]},i=this.consumeToken();;){if(32===i.type||_d(i,e))return t;this.reconsumeToken(i),t.values.push(this.consumeComponentValue()),i=this.consumeToken()}},e.prototype.consumeFunction=function(e){for(var t={name:e.value,values:[],type:18};;){var i=this.consumeToken();if(32===i.type||3===i.type)return t;this.reconsumeToken(i),t.values.push(this.consumeComponentValue())}},e.prototype.consumeToken=function(){var e=this._tokens.shift();return void 0===e?ad:e},e.prototype.reconsumeToken=function(e){this._tokens.unshift(e)},e}(),hd=function(e){return 15===e.type},cd=function(e){return 17===e.type},ud=function(e){return 20===e.type},dd=function(e){return 0===e.type},pd=function(e,t){return ud(e)&&e.value===t},gd=function(e){return 31!==e.type},md=function(e){return 31!==e.type&&4!==e.type},fd=function(e){var t=[],i=[];return e.forEach((function(e){if(4===e.type){if(0===i.length)throw new Error("Error parsing function args, zero tokens for arg");return t.push(i),void(i=[])}31!==e.type&&i.push(e)})),i.length&&t.push(i),t},_d=function(e,t){return 11===t&&12===e.type||(28===t&&29===e.type||2===t&&3===e.type)},vd=function(e){return 17===e.type||15===e.type},bd=function(e){return 16===e.type||vd(e)},xd=function(e){return e.length>1?[e[0],e[1]]:[e[0]]},wd={type:17,number:0,flags:4},yd={type:16,number:50,flags:4},Pd={type:16,number:100,flags:4},Bd=function(e,t,i){var s=e[0],r=e[1];return[Cd(s,t),Cd(void 0!==r?r:s,i)]},Cd=function(e,t){if(16===e.type)return e.number/100*t;if(hd(e))switch(e.unit){case"rem":case"em":return 16*e.number;default:return e.number}return e.number},Md="grad",Ed="turn",Fd=function(e,t){if(15===t.type)switch(t.unit){case"deg":return Math.PI*t.number/180;case Md:return Math.PI/200*t.number;case"rad":return t.number;case Ed:return 2*Math.PI*t.number}throw new Error("Unsupported angle type")},Id=function(e){return 15===e.type&&("deg"===e.unit||e.unit===Md||"rad"===e.unit||e.unit===Ed)},Dd=function(e){switch(e.filter(ud).map((function(e){return e.value})).join(" ")){case"to bottom right":case"to right bottom":case"left top":case"top left":return[wd,wd];case"to top":case"bottom":return Sd(0);case"to bottom left":case"to left bottom":case"right top":case"top right":return[wd,Pd];case"to right":case"left":return Sd(90);case"to top left":case"to left top":case"right bottom":case"bottom right":return[Pd,Pd];case"to bottom":case"top":return Sd(180);case"to top right":case"to right top":case"left bottom":case"bottom left":return[Pd,wd];case"to left":case"right":return Sd(270)}return 0},Sd=function(e){return Math.PI*e/180},Td=function(e,t){if(18===t.type){var i=Vd[t.name];if(void 0===i)throw new Error('Attempting to parse an unsupported color function "'+t.name+'"');return i(e,t.values)}if(5===t.type){if(3===t.value.length){var s=t.value.substring(0,1),r=t.value.substring(1,2),o=t.value.substring(2,3);return Ud(parseInt(s+s,16),parseInt(r+r,16),parseInt(o+o,16),1)}if(4===t.value.length){s=t.value.substring(0,1),r=t.value.substring(1,2),o=t.value.substring(2,3);var n=t.value.substring(3,4);return Ud(parseInt(s+s,16),parseInt(r+r,16),parseInt(o+o,16),parseInt(n+n,16)/255)}if(6===t.value.length){s=t.value.substring(0,2),r=t.value.substring(2,4),o=t.value.substring(4,6);return Ud(parseInt(s,16),parseInt(r,16),parseInt(o,16),1)}if(8===t.value.length){s=t.value.substring(0,2),r=t.value.substring(2,4),o=t.value.substring(4,6),n=t.value.substring(6,8);return Ud(parseInt(s,16),parseInt(r,16),parseInt(o,16),parseInt(n,16)/255)}}if(20===t.type){var a=Hd[t.value.toUpperCase()];if(void 0!==a)return a}return Hd.TRANSPARENT},Rd=function(e){return 0==(255&e)},Ld=function(e){var t=255&e,i=255&e>>8,s=255&e>>16,r=255&e>>24;return t<255?"rgba("+r+","+s+","+i+","+t/255+")":"rgb("+r+","+s+","+i+")"},Ud=function(e,t,i,s){return(e<<24|t<<16|i<<8|Math.round(255*s)<<0)>>>0},kd=function(e,t){if(17===e.type)return e.number;if(16===e.type){var i=3===t?1:255;return 3===t?e.number/100*i:Math.round(e.number/100*i)}return 0},Od=function(e,t){var i=t.filter(md);if(3===i.length){var s=i.map(kd),r=s[0],o=s[1],n=s[2];return Ud(r,o,n,1)}if(4===i.length){var a=i.map(kd),l=(r=a[0],o=a[1],n=a[2],a[3]);return Ud(r,o,n,l)}return 0};function Nd(e,t,i){return i<0&&(i+=1),i>=1&&(i-=1),i<1/6?(t-e)*i*6+e:i<.5?t:i<2/3?6*(t-e)*(2/3-i)+e:e}var Qd=function(e,t){var i=t.filter(md),s=i[0],r=i[1],o=i[2],n=i[3],a=(17===s.type?Sd(s.number):Fd(e,s))/(2*Math.PI),l=bd(r)?r.number/100:0,A=bd(o)?o.number/100:0,h=void 0!==n&&bd(n)?Cd(n,1):1;if(0===l)return Ud(255*A,255*A,255*A,1);var c=A<=.5?A*(l+1):A+l-A*l,u=2*A-c,d=Nd(u,c,a+1/3),p=Nd(u,c,a),g=Nd(u,c,a-1/3);return Ud(255*d,255*p,255*g,h)},Vd={hsl:Qd,hsla:Qd,rgb:Od,rgba:Od},jd=function(e,t){return Td(e,Ad.create(t).parseComponentValue())},Hd={ALICEBLUE:4042850303,ANTIQUEWHITE:4209760255,AQUA:16777215,AQUAMARINE:2147472639,AZURE:4043309055,BEIGE:4126530815,BISQUE:4293182719,BLACK:255,BLANCHEDALMOND:4293643775,BLUE:65535,BLUEVIOLET:2318131967,BROWN:2771004159,BURLYWOOD:3736635391,CADETBLUE:1604231423,CHARTREUSE:2147418367,CHOCOLATE:3530104575,CORAL:4286533887,CORNFLOWERBLUE:1687547391,CORNSILK:4294499583,CRIMSON:3692313855,CYAN:16777215,DARKBLUE:35839,DARKCYAN:9145343,DARKGOLDENROD:3095837695,DARKGRAY:2846468607,DARKGREEN:6553855,DARKGREY:2846468607,DARKKHAKI:3182914559,DARKMAGENTA:2332068863,DARKOLIVEGREEN:1433087999,DARKORANGE:4287365375,DARKORCHID:2570243327,DARKRED:2332033279,DARKSALMON:3918953215,DARKSEAGREEN:2411499519,DARKSLATEBLUE:1211993087,DARKSLATEGRAY:793726975,DARKSLATEGREY:793726975,DARKTURQUOISE:13554175,DARKVIOLET:2483082239,DEEPPINK:4279538687,DEEPSKYBLUE:12582911,DIMGRAY:1768516095,DIMGREY:1768516095,DODGERBLUE:512819199,FIREBRICK:2988581631,FLORALWHITE:4294635775,FORESTGREEN:579543807,FUCHSIA:4278255615,GAINSBORO:3705462015,GHOSTWHITE:4177068031,GOLD:4292280575,GOLDENROD:3668254975,GRAY:2155905279,GREEN:8388863,GREENYELLOW:2919182335,GREY:2155905279,HONEYDEW:4043305215,HOTPINK:4285117695,INDIANRED:3445382399,INDIGO:1258324735,IVORY:4294963455,KHAKI:4041641215,LAVENDER:3873897215,LAVENDERBLUSH:4293981695,LAWNGREEN:2096890111,LEMONCHIFFON:4294626815,LIGHTBLUE:2916673279,LIGHTCORAL:4034953471,LIGHTCYAN:3774873599,LIGHTGOLDENRODYELLOW:4210742015,LIGHTGRAY:3553874943,LIGHTGREEN:2431553791,LIGHTGREY:3553874943,LIGHTPINK:4290167295,LIGHTSALMON:4288707327,LIGHTSEAGREEN:548580095,LIGHTSKYBLUE:2278488831,LIGHTSLATEGRAY:2005441023,LIGHTSLATEGREY:2005441023,LIGHTSTEELBLUE:2965692159,LIGHTYELLOW:4294959359,LIME:16711935,LIMEGREEN:852308735,LINEN:4210091775,MAGENTA:4278255615,MAROON:2147483903,MEDIUMAQUAMARINE:1724754687,MEDIUMBLUE:52735,MEDIUMORCHID:3126187007,MEDIUMPURPLE:2473647103,MEDIUMSEAGREEN:1018393087,MEDIUMSLATEBLUE:2070474495,MEDIUMSPRINGGREEN:16423679,MEDIUMTURQUOISE:1221709055,MEDIUMVIOLETRED:3340076543,MIDNIGHTBLUE:421097727,MINTCREAM:4127193855,MISTYROSE:4293190143,MOCCASIN:4293178879,NAVAJOWHITE:4292783615,NAVY:33023,OLDLACE:4260751103,OLIVE:2155872511,OLIVEDRAB:1804477439,ORANGE:4289003775,ORANGERED:4282712319,ORCHID:3664828159,PALEGOLDENROD:4008225535,PALEGREEN:2566625535,PALETURQUOISE:2951671551,PALEVIOLETRED:3681588223,PAPAYAWHIP:4293907967,PEACHPUFF:4292524543,PERU:3448061951,PINK:4290825215,PLUM:3718307327,POWDERBLUE:2967529215,PURPLE:2147516671,REBECCAPURPLE:1714657791,RED:4278190335,ROSYBROWN:3163525119,ROYALBLUE:1097458175,SADDLEBROWN:2336560127,SALMON:4202722047,SANDYBROWN:4104413439,SEAGREEN:780883967,SEASHELL:4294307583,SIENNA:2689740287,SILVER:3233857791,SKYBLUE:2278484991,SLATEBLUE:1784335871,SLATEGRAY:1887473919,SLATEGREY:1887473919,SNOW:4294638335,SPRINGGREEN:16744447,STEELBLUE:1182971135,TAN:3535047935,TEAL:8421631,THISTLE:3636451583,TOMATO:4284696575,TRANSPARENT:0,TURQUOISE:1088475391,VIOLET:4001558271,WHEAT:4125012991,WHITE:4294967295,WHITESMOKE:4126537215,YELLOW:4294902015,YELLOWGREEN:2597139199},zd={name:"background-clip",initialValue:"border-box",prefix:!1,type:1,parse:function(e,t){return t.map((function(e){if(ud(e))switch(e.value){case"padding-box":return 1;case"content-box":return 2}return 0}))}},Gd={name:"background-color",initialValue:"transparent",prefix:!1,type:3,format:"color"},Wd=function(e,t){var i=Td(e,t[0]),s=t[1];return s&&bd(s)?{color:i,stop:s}:{color:i,stop:null}},Kd=function(e,t){var i=e[0],s=e[e.length-1];null===i.stop&&(i.stop=wd),null===s.stop&&(s.stop=Pd);for(var r=[],o=0,n=0;no?r.push(l):r.push(o),o=l}else r.push(null)}var A=null;for(n=0;ne.optimumDistance)?{optimumCorner:t,optimumDistance:a}:e}),{optimumDistance:r?1/0:-1/0,optimumCorner:null}).optimumCorner},Zd=function(e,t){var i=Sd(180),s=[];return fd(t).forEach((function(t,r){if(0===r){var o=t[0];if(20===o.type&&-1!==["top","left","right","bottom"].indexOf(o.value))return void(i=Dd(t));if(Id(o))return void(i=(Fd(e,o)+Sd(270))%Sd(360))}var n=Wd(e,t);s.push(n)})),{angle:i,stops:s,type:1}},Jd="closest-side",$d="farthest-side",ep="closest-corner",tp="farthest-corner",ip="circle",sp="ellipse",rp="cover",op="contain",np=function(e,t){var i=0,s=3,r=[],o=[];return fd(t).forEach((function(t,n){var a=!0;if(0===n?a=t.reduce((function(e,t){if(ud(t))switch(t.value){case"center":return o.push(yd),!1;case"top":case"left":return o.push(wd),!1;case"right":case"bottom":return o.push(Pd),!1}else if(bd(t)||vd(t))return o.push(t),!1;return e}),a):1===n&&(a=t.reduce((function(e,t){if(ud(t))switch(t.value){case ip:return i=0,!1;case sp:return i=1,!1;case op:case Jd:return s=0,!1;case $d:return s=1,!1;case ep:return s=2,!1;case rp:case tp:return s=3,!1}else if(vd(t)||bd(t))return Array.isArray(s)||(s=[]),s.push(t),!1;return e}),a)),a){var l=Wd(e,t);r.push(l)}})),{size:s,shape:i,stops:r,position:o,type:2}},ap=function(e,t){if(22===t.type){var i={url:t.value,type:0};return e.cache.addImage(t.value),i}if(18===t.type){var s=Ap[t.name];if(void 0===s)throw new Error('Attempting to parse an unsupported image function "'+t.name+'"');return s(e,t.values)}throw new Error("Unsupported image type "+t.type)};var lp,Ap={"linear-gradient":function(e,t){var i=Sd(180),s=[];return fd(t).forEach((function(t,r){if(0===r){var o=t[0];if(20===o.type&&"to"===o.value)return void(i=Dd(t));if(Id(o))return void(i=Fd(e,o))}var n=Wd(e,t);s.push(n)})),{angle:i,stops:s,type:1}},"-moz-linear-gradient":Zd,"-ms-linear-gradient":Zd,"-o-linear-gradient":Zd,"-webkit-linear-gradient":Zd,"radial-gradient":function(e,t){var i=0,s=3,r=[],o=[];return fd(t).forEach((function(t,n){var a=!0;if(0===n){var l=!1;a=t.reduce((function(e,t){if(l)if(ud(t))switch(t.value){case"center":return o.push(yd),e;case"top":case"left":return o.push(wd),e;case"right":case"bottom":return o.push(Pd),e}else(bd(t)||vd(t))&&o.push(t);else if(ud(t))switch(t.value){case ip:return i=0,!1;case sp:return i=1,!1;case"at":return l=!0,!1;case Jd:return s=0,!1;case rp:case $d:return s=1,!1;case op:case ep:return s=2,!1;case tp:return s=3,!1}else if(vd(t)||bd(t))return Array.isArray(s)||(s=[]),s.push(t),!1;return e}),a)}if(a){var A=Wd(e,t);r.push(A)}})),{size:s,shape:i,stops:r,position:o,type:2}},"-moz-radial-gradient":np,"-ms-radial-gradient":np,"-o-radial-gradient":np,"-webkit-radial-gradient":np,"-webkit-gradient":function(e,t){var i=Sd(180),s=[],r=1;return fd(t).forEach((function(t,i){var o=t[0];if(0===i){if(ud(o)&&"linear"===o.value)return void(r=1);if(ud(o)&&"radial"===o.value)return void(r=2)}if(18===o.type)if("from"===o.name){var n=Td(e,o.values[0]);s.push({stop:wd,color:n})}else if("to"===o.name){n=Td(e,o.values[0]);s.push({stop:Pd,color:n})}else if("color-stop"===o.name){var a=o.values.filter(md);if(2===a.length){n=Td(e,a[1]);var l=a[0];cd(l)&&s.push({stop:{type:16,number:100*l.number,flags:l.flags},color:n})}}})),1===r?{angle:(i+Sd(180))%Sd(360),stops:s,type:r}:{size:3,shape:0,stops:s,position:[],type:r}}},hp={name:"background-image",initialValue:"none",type:1,prefix:!1,parse:function(e,t){if(0===t.length)return[];var i=t[0];return 20===i.type&&"none"===i.value?[]:t.filter((function(e){return md(e)&&function(e){return!(20===e.type&&"none"===e.value||18===e.type&&!Ap[e.name])}(e)})).map((function(t){return ap(e,t)}))}},cp={name:"background-origin",initialValue:"border-box",prefix:!1,type:1,parse:function(e,t){return t.map((function(e){if(ud(e))switch(e.value){case"padding-box":return 1;case"content-box":return 2}return 0}))}},up={name:"background-position",initialValue:"0% 0%",type:1,prefix:!1,parse:function(e,t){return fd(t).map((function(e){return e.filter(bd)})).map(xd)}},dp={name:"background-repeat",initialValue:"repeat",prefix:!1,type:1,parse:function(e,t){return fd(t).map((function(e){return e.filter(ud).map((function(e){return e.value})).join(" ")})).map(pp)}},pp=function(e){switch(e){case"no-repeat":return 1;case"repeat-x":case"repeat no-repeat":return 2;case"repeat-y":case"no-repeat repeat":return 3;default:return 0}};!function(e){e.AUTO="auto",e.CONTAIN="contain",e.COVER="cover"}(lp||(lp={}));var gp,mp={name:"background-size",initialValue:"0",prefix:!1,type:1,parse:function(e,t){return fd(t).map((function(e){return e.filter(fp)}))}},fp=function(e){return ud(e)||bd(e)},_p=function(e){return{name:"border-"+e+"-color",initialValue:"transparent",prefix:!1,type:3,format:"color"}},vp=_p("top"),bp=_p("right"),xp=_p("bottom"),wp=_p("left"),yp=function(e){return{name:"border-radius-"+e,initialValue:"0 0",prefix:!1,type:1,parse:function(e,t){return xd(t.filter(bd))}}},Pp=yp("top-left"),Bp=yp("top-right"),Cp=yp("bottom-right"),Mp=yp("bottom-left"),Ep=function(e){return{name:"border-"+e+"-style",initialValue:"solid",prefix:!1,type:2,parse:function(e,t){switch(t){case"none":return 0;case"dashed":return 2;case"dotted":return 3;case"double":return 4}return 1}}},Fp=Ep("top"),Ip=Ep("right"),Dp=Ep("bottom"),Sp=Ep("left"),Tp=function(e){return{name:"border-"+e+"-width",initialValue:"0",type:0,prefix:!1,parse:function(e,t){return hd(t)?t.number:0}}},Rp=Tp("top"),Lp=Tp("right"),Up=Tp("bottom"),kp=Tp("left"),Op={name:"color",initialValue:"transparent",prefix:!1,type:3,format:"color"},Np={name:"direction",initialValue:"ltr",prefix:!1,type:2,parse:function(e,t){return"rtl"===t?1:0}},Qp={name:"display",initialValue:"inline-block",prefix:!1,type:1,parse:function(e,t){return t.filter(ud).reduce((function(e,t){return e|Vp(t.value)}),0)}},Vp=function(e){switch(e){case"block":case"-webkit-box":return 2;case"inline":return 4;case"run-in":return 8;case"flow":return 16;case"flow-root":return 32;case"table":return 64;case"flex":case"-webkit-flex":return 128;case"grid":case"-ms-grid":return 256;case"ruby":return 512;case"subgrid":return 1024;case"list-item":return 2048;case"table-row-group":return 4096;case"table-header-group":return 8192;case"table-footer-group":return 16384;case"table-row":return 32768;case"table-cell":return 65536;case"table-column-group":return 131072;case"table-column":return 262144;case"table-caption":return 524288;case"ruby-base":return 1048576;case"ruby-text":return 2097152;case"ruby-base-container":return 4194304;case"ruby-text-container":return 8388608;case"contents":return 16777216;case"inline-block":return 33554432;case"inline-list-item":return 67108864;case"inline-table":return 134217728;case"inline-flex":return 268435456;case"inline-grid":return 536870912}return 0},jp={name:"float",initialValue:"none",prefix:!1,type:2,parse:function(e,t){switch(t){case"left":return 1;case"right":return 2;case"inline-start":return 3;case"inline-end":return 4}return 0}},Hp={name:"letter-spacing",initialValue:"0",prefix:!1,type:0,parse:function(e,t){return 20===t.type&&"normal"===t.value?0:17===t.type||15===t.type?t.number:0}};!function(e){e.NORMAL="normal",e.STRICT="strict"}(gp||(gp={}));var zp,Gp={name:"line-break",initialValue:"normal",prefix:!1,type:2,parse:function(e,t){return"strict"===t?gp.STRICT:gp.NORMAL}},Wp={name:"line-height",initialValue:"normal",prefix:!1,type:4},Kp=function(e,t){return ud(e)&&"normal"===e.value?1.2*t:17===e.type?t*e.number:bd(e)?Cd(e,t):t},Xp={name:"list-style-image",initialValue:"none",type:0,prefix:!1,parse:function(e,t){return 20===t.type&&"none"===t.value?null:ap(e,t)}},Yp={name:"list-style-position",initialValue:"outside",prefix:!1,type:2,parse:function(e,t){return"inside"===t?0:1}},qp={name:"list-style-type",initialValue:"none",prefix:!1,type:2,parse:function(e,t){switch(t){case"disc":return 0;case"circle":return 1;case"square":return 2;case"decimal":return 3;case"cjk-decimal":return 4;case"decimal-leading-zero":return 5;case"lower-roman":return 6;case"upper-roman":return 7;case"lower-greek":return 8;case"lower-alpha":return 9;case"upper-alpha":return 10;case"arabic-indic":return 11;case"armenian":return 12;case"bengali":return 13;case"cambodian":return 14;case"cjk-earthly-branch":return 15;case"cjk-heavenly-stem":return 16;case"cjk-ideographic":return 17;case"devanagari":return 18;case"ethiopic-numeric":return 19;case"georgian":return 20;case"gujarati":return 21;case"gurmukhi":case"hebrew":return 22;case"hiragana":return 23;case"hiragana-iroha":return 24;case"japanese-formal":return 25;case"japanese-informal":return 26;case"kannada":return 27;case"katakana":return 28;case"katakana-iroha":return 29;case"khmer":return 30;case"korean-hangul-formal":return 31;case"korean-hanja-formal":return 32;case"korean-hanja-informal":return 33;case"lao":return 34;case"lower-armenian":return 35;case"malayalam":return 36;case"mongolian":return 37;case"myanmar":return 38;case"oriya":return 39;case"persian":return 40;case"simp-chinese-formal":return 41;case"simp-chinese-informal":return 42;case"tamil":return 43;case"telugu":return 44;case"thai":return 45;case"tibetan":return 46;case"trad-chinese-formal":return 47;case"trad-chinese-informal":return 48;case"upper-armenian":return 49;case"disclosure-open":return 50;case"disclosure-closed":return 51;default:return-1}}},Zp=function(e){return{name:"margin-"+e,initialValue:"0",prefix:!1,type:4}},Jp=Zp("top"),$p=Zp("right"),eg=Zp("bottom"),tg=Zp("left"),ig={name:"overflow",initialValue:"visible",prefix:!1,type:1,parse:function(e,t){return t.filter(ud).map((function(e){switch(e.value){case"hidden":return 1;case"scroll":return 2;case"clip":return 3;case"auto":return 4;default:return 0}}))}},sg={name:"overflow-wrap",initialValue:"normal",prefix:!1,type:2,parse:function(e,t){return"break-word"===t?"break-word":"normal"}},rg=function(e){return{name:"padding-"+e,initialValue:"0",prefix:!1,type:3,format:"length-percentage"}},og=rg("top"),ng=rg("right"),ag=rg("bottom"),lg=rg("left"),Ag={name:"text-align",initialValue:"left",prefix:!1,type:2,parse:function(e,t){switch(t){case"right":return 2;case"center":case"justify":return 1;default:return 0}}},hg={name:"position",initialValue:"static",prefix:!1,type:2,parse:function(e,t){switch(t){case"relative":return 1;case"absolute":return 2;case"fixed":return 3;case"sticky":return 4}return 0}},cg={name:"text-shadow",initialValue:"none",type:1,prefix:!1,parse:function(e,t){return 1===t.length&&pd(t[0],"none")?[]:fd(t).map((function(t){for(var i={color:Hd.TRANSPARENT,offsetX:wd,offsetY:wd,blur:wd},s=0,r=0;r1?1:0],this.overflowWrap=zg(e,sg,t.overflowWrap),this.paddingTop=zg(e,og,t.paddingTop),this.paddingRight=zg(e,ng,t.paddingRight),this.paddingBottom=zg(e,ag,t.paddingBottom),this.paddingLeft=zg(e,lg,t.paddingLeft),this.paintOrder=zg(e,Og,t.paintOrder),this.position=zg(e,hg,t.position),this.textAlign=zg(e,Ag,t.textAlign),this.textDecorationColor=zg(e,yg,null!==(i=t.textDecorationColor)&&void 0!==i?i:t.color),this.textDecorationLine=zg(e,Pg,null!==(s=t.textDecorationLine)&&void 0!==s?s:t.textDecoration),this.textShadow=zg(e,cg,t.textShadow),this.textTransform=zg(e,ug,t.textTransform),this.transform=zg(e,dg,t.transform),this.transformOrigin=zg(e,fg,t.transformOrigin),this.visibility=zg(e,_g,t.visibility),this.webkitTextStrokeColor=zg(e,Ng,t.webkitTextStrokeColor),this.webkitTextStrokeWidth=zg(e,Qg,t.webkitTextStrokeWidth),this.wordBreak=zg(e,vg,t.wordBreak),this.zIndex=zg(e,bg,t.zIndex)}return e.prototype.isVisible=function(){return this.display>0&&this.opacity>0&&0===this.visibility},e.prototype.isTransparent=function(){return Rd(this.backgroundColor)},e.prototype.isTransformed=function(){return null!==this.transform},e.prototype.isPositioned=function(){return 0!==this.position},e.prototype.isPositionedWithZIndex=function(){return this.isPositioned()&&!this.zIndex.auto},e.prototype.isFloating=function(){return 0!==this.float},e.prototype.isInlineLevel=function(){return Ig(this.display,4)||Ig(this.display,33554432)||Ig(this.display,268435456)||Ig(this.display,536870912)||Ig(this.display,67108864)||Ig(this.display,134217728)},e}(),jg=function(e,t){this.content=zg(e,Dg,t.content),this.quotes=zg(e,Lg,t.quotes)},Hg=function(e,t){this.counterIncrement=zg(e,Sg,t.counterIncrement),this.counterReset=zg(e,Tg,t.counterReset)},zg=function(e,t,i){var s=new ld,r=null!=i?i.toString():t.initialValue;s.write(r);var o=new Ad(s.read());switch(t.type){case 2:var n=o.parseComponentValue();return t.parse(e,ud(n)?n.value:t.initialValue);case 0:return t.parse(e,o.parseComponentValue());case 1:return t.parse(e,o.parseComponentValues());case 4:return o.parseComponentValue();case 3:switch(t.format){case"angle":return Fd(e,o.parseComponentValue());case"color":return Td(e,o.parseComponentValue());case"image":return ap(e,o.parseComponentValue());case"length":var a=o.parseComponentValue();return vd(a)?a:wd;case"length-percentage":var l=o.parseComponentValue();return bd(l)?l:wd;case"time":return xg(e,o.parseComponentValue())}}},Gg=function(e,t){var i=function(e){switch(e.getAttribute("data-html2canvas-debug")){case"all":return 1;case"clone":return 2;case"parse":return 3;case"render":return 4;default:return 0}}(e);return 1===i||t===i},Wg=function(e,t){this.context=e,this.textNodes=[],this.elements=[],this.flags=0,Gg(t,3),this.styles=new Vg(e,window.getComputedStyle(t,null)),qm(t)&&(this.styles.animationDuration.some((function(e){return e>0}))&&(t.style.animationDuration="0s"),null!==this.styles.transform&&(t.style.transform="none")),this.bounds=Ec(this.context,t),Gg(t,4)&&(this.flags|=16)},Kg="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",Xg="undefined"==typeof Uint8Array?[]:new Uint8Array(256),Yg=0;Yg=0){if(e<55296||e>56319&&e<=65535)return t=((t=this.index[e>>5])<<2)+(31&e),this.data[t];if(e<=65535)return t=((t=this.index[2048+(e-55296>>5)])<<2)+(31&e),this.data[t];if(e>11),t=this.index[t],t+=e>>5&63,t=((t=this.index[t])<<2)+(31&e),this.data[t];if(e<=1114111)return this.data[this.highValueIndex]}return this.errorValue},e}(),Jg="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",$g="undefined"==typeof Uint8Array?[]:new Uint8Array(256),em=0;em>10),n%1024+56320)),(r+1===i||s.length>16384)&&(o+=String.fromCharCode.apply(String,s),s.length=0)}return o},am=function(e,t){var i,s,r,o=function(e){var t,i,s,r,o,n=.75*e.length,a=e.length,l=0;"="===e[e.length-1]&&(n--,"="===e[e.length-2]&&n--);var A="undefined"!=typeof ArrayBuffer&&"undefined"!=typeof Uint8Array&&void 0!==Uint8Array.prototype.slice?new ArrayBuffer(n):new Array(n),h=Array.isArray(A)?A:new Uint8Array(A);for(t=0;t>4,h[l++]=(15&s)<<4|r>>2,h[l++]=(3&r)<<6|63&o;return A}(e),n=Array.isArray(o)?function(e){for(var t=e.length,i=[],s=0;s=55296&&r<=56319&&i=i)return{done:!0,value:null};for(var e=lm;sn.x||r.y>n.y;return n=r,0===t||a}));return e.body.removeChild(t),a}(document);return Object.defineProperty(gm,"SUPPORT_WORD_BREAKING",{value:e}),e},get SUPPORT_SVG_DRAWING(){var e=function(e){var t=new Image,i=e.createElement("canvas"),s=i.getContext("2d");if(!s)return!1;t.src="data:image/svg+xml,";try{s.drawImage(t,0,0),i.toDataURL()}catch(e){return!1}return!0}(document);return Object.defineProperty(gm,"SUPPORT_SVG_DRAWING",{value:e}),e},get SUPPORT_FOREIGNOBJECT_DRAWING(){var e="function"==typeof Array.from&&"function"==typeof window.fetch?function(e){var t=e.createElement("canvas"),i=100;t.width=i,t.height=i;var s=t.getContext("2d");if(!s)return Promise.reject(!1);s.fillStyle="rgb(0, 255, 0)",s.fillRect(0,0,i,i);var r=new Image,o=t.toDataURL();r.src=o;var n=dm(i,i,0,0,r);return s.fillStyle="red",s.fillRect(0,0,i,i),pm(n).then((function(t){s.drawImage(t,0,0);var r=s.getImageData(0,0,i,i).data;s.fillStyle="red",s.fillRect(0,0,i,i);var n=e.createElement("div");return n.style.backgroundImage="url("+o+")",n.style.height="100px",um(r)?pm(dm(i,i,0,0,n)):Promise.reject(!1)})).then((function(e){return s.drawImage(e,0,0),um(s.getImageData(0,0,i,i).data)})).catch((function(){return!1}))}(document):Promise.resolve(!1);return Object.defineProperty(gm,"SUPPORT_FOREIGNOBJECT_DRAWING",{value:e}),e},get SUPPORT_CORS_IMAGES(){var e=void 0!==(new Image).crossOrigin;return Object.defineProperty(gm,"SUPPORT_CORS_IMAGES",{value:e}),e},get SUPPORT_RESPONSE_TYPE(){var e="string"==typeof(new XMLHttpRequest).responseType;return Object.defineProperty(gm,"SUPPORT_RESPONSE_TYPE",{value:e}),e},get SUPPORT_CORS_XHR(){var e="withCredentials"in new XMLHttpRequest;return Object.defineProperty(gm,"SUPPORT_CORS_XHR",{value:e}),e},get SUPPORT_NATIVE_TEXT_SEGMENTATION(){var e=!("undefined"==typeof Intl||!Intl.Segmenter);return Object.defineProperty(gm,"SUPPORT_NATIVE_TEXT_SEGMENTATION",{value:e}),e}},mm=function(e,t){this.text=e,this.bounds=t},fm=function(e,t){var i=t.ownerDocument;if(i){var s=i.createElement("html2canvaswrapper");s.appendChild(t.cloneNode(!0));var r=t.parentNode;if(r){r.replaceChild(s,t);var o=Ec(e,s);return s.firstChild&&r.replaceChild(s.firstChild,s),o}}return Mc.EMPTY},_m=function(e,t,i){var s=e.ownerDocument;if(!s)throw new Error("Node has no owner document");var r=s.createRange();return r.setStart(e,t),r.setEnd(e,t+i),r},vm=function(e){if(gm.SUPPORT_NATIVE_TEXT_SEGMENTATION){var t=new Intl.Segmenter(void 0,{granularity:"grapheme"});return Array.from(t.segment(e)).map((function(e){return e.segment}))}return function(e){for(var t,i=cm(e),s=[];!(t=i.next()).done;)t.value&&s.push(t.value.slice());return s}(e)},bm=function(e,t){return 0!==t.letterSpacing?vm(e):function(e,t){if(gm.SUPPORT_NATIVE_TEXT_SEGMENTATION){var i=new Intl.Segmenter(void 0,{granularity:"word"});return Array.from(i.segment(e)).map((function(e){return e.segment}))}return wm(e,t)}(e,t)},xm=[32,160,4961,65792,65793,4153,4241],wm=function(e,t){for(var i,s=function(e,t){var i=Fc(e),s=Cu(i,t),r=s[0],o=s[1],n=s[2],a=i.length,l=0,A=0;return{next:function(){if(A>=a)return{done:!0,value:null};for(var e=du;A0)if(gm.SUPPORT_RANGE_BOUNDS){var r=_m(s,n,t.length).getClientRects();if(r.length>1){var a=vm(t),l=0;a.forEach((function(t){o.push(new mm(t,Mc.fromDOMRectList(e,_m(s,l+n,t.length).getClientRects()))),l+=t.length}))}else o.push(new mm(t,Mc.fromDOMRectList(e,r)))}else{var A=s.splitText(t.length);o.push(new mm(t,fm(e,s))),s=A}else gm.SUPPORT_RANGE_BOUNDS||(s=s.splitText(t.length));n+=t.length})),o}(e,this.text,i,t)},Pm=function(e,t){switch(t){case 1:return e.toLowerCase();case 3:return e.replace(Bm,Cm);case 2:return e.toUpperCase();default:return e}},Bm=/(^|\s|:|-|\(|\))([a-z])/g,Cm=function(e,t,i){return e.length>0?t+i.toUpperCase():e},Mm=function(e){function t(t,i){var s=e.call(this,t,i)||this;return s.src=i.currentSrc||i.src,s.intrinsicWidth=i.naturalWidth,s.intrinsicHeight=i.naturalHeight,s.context.cache.addImage(s.src),s}return wc(t,e),t}(Wg),Em=function(e){function t(t,i){var s=e.call(this,t,i)||this;return s.canvas=i,s.intrinsicWidth=i.width,s.intrinsicHeight=i.height,s}return wc(t,e),t}(Wg),Fm=function(e){function t(t,i){var s=e.call(this,t,i)||this,r=new XMLSerializer,o=Ec(t,i);return i.setAttribute("width",o.width+"px"),i.setAttribute("height",o.height+"px"),s.svg="data:image/svg+xml,"+encodeURIComponent(r.serializeToString(i)),s.intrinsicWidth=i.width.baseVal.value,s.intrinsicHeight=i.height.baseVal.value,s.context.cache.addImage(s.svg),s}return wc(t,e),t}(Wg),Im=function(e){function t(t,i){var s=e.call(this,t,i)||this;return s.value=i.value,s}return wc(t,e),t}(Wg),Dm=function(e){function t(t,i){var s=e.call(this,t,i)||this;return s.start=i.start,s.reversed="boolean"==typeof i.reversed&&!0===i.reversed,s}return wc(t,e),t}(Wg),Sm=[{type:15,flags:0,unit:"px",number:3}],Tm=[{type:16,flags:0,number:50}],Rm="checkbox",Lm="radio",Um="password",km=707406591,Om=function(e){function t(t,i){var s,r,o,n=e.call(this,t,i)||this;switch(n.type=i.type.toLowerCase(),n.checked=i.checked,n.value=0===(r=(s=i).type===Um?new Array(s.value.length+1).join("•"):s.value).length?s.placeholder||"":r,n.type!==Rm&&n.type!==Lm||(n.styles.backgroundColor=3739148031,n.styles.borderTopColor=n.styles.borderRightColor=n.styles.borderBottomColor=n.styles.borderLeftColor=2779096575,n.styles.borderTopWidth=n.styles.borderRightWidth=n.styles.borderBottomWidth=n.styles.borderLeftWidth=1,n.styles.borderTopStyle=n.styles.borderRightStyle=n.styles.borderBottomStyle=n.styles.borderLeftStyle=1,n.styles.backgroundClip=[0],n.styles.backgroundOrigin=[0],n.bounds=(o=n.bounds).width>o.height?new Mc(o.left+(o.width-o.height)/2,o.top,o.height,o.height):o.width0)i.textNodes.push(new ym(e,r,i.styles));else if(Ym(r))if(cf(r)&&r.assignedNodes)r.assignedNodes().forEach((function(t){return Hm(e,t,i,s)}));else{var n=zm(e,r);n.styles.isVisible()&&(Wm(r,n,s)?n.flags|=4:Km(n.styles)&&(n.flags|=2),-1!==jm.indexOf(r.tagName)&&(n.flags|=8),i.elements.push(n),r.slot,r.shadowRoot?Hm(e,r.shadowRoot,n,s):Af(r)||tf(r)||hf(r)||Hm(e,r,n,s))}},zm=function(e,t){return nf(t)?new Mm(e,t):rf(t)?new Em(e,t):tf(t)?new Fm(e,t):Jm(t)?new Im(e,t):$m(t)?new Dm(e,t):ef(t)?new Om(e,t):hf(t)?new Nm(e,t):Af(t)?new Qm(e,t):af(t)?new Vm(e,t):new Wg(e,t)},Gm=function(e,t){var i=zm(e,t);return i.flags|=4,Hm(e,t,i,i),i},Wm=function(e,t,i){return t.styles.isPositionedWithZIndex()||t.styles.opacity<1||t.styles.isTransformed()||sf(e)&&i.styles.isTransparent()},Km=function(e){return e.isPositioned()||e.isFloating()},Xm=function(e){return e.nodeType===Node.TEXT_NODE},Ym=function(e){return e.nodeType===Node.ELEMENT_NODE},qm=function(e){return Ym(e)&&void 0!==e.style&&!Zm(e)},Zm=function(e){return"object"==typeof e.className},Jm=function(e){return"LI"===e.tagName},$m=function(e){return"OL"===e.tagName},ef=function(e){return"INPUT"===e.tagName},tf=function(e){return"svg"===e.tagName},sf=function(e){return"BODY"===e.tagName},rf=function(e){return"CANVAS"===e.tagName},of=function(e){return"VIDEO"===e.tagName},nf=function(e){return"IMG"===e.tagName},af=function(e){return"IFRAME"===e.tagName},lf=function(e){return"STYLE"===e.tagName},Af=function(e){return"TEXTAREA"===e.tagName},hf=function(e){return"SELECT"===e.tagName},cf=function(e){return"SLOT"===e.tagName},uf=function(e){return e.tagName.indexOf("-")>0},df=function(){function e(){this.counters={}}return e.prototype.getCounterValue=function(e){var t=this.counters[e];return t&&t.length?t[t.length-1]:1},e.prototype.getCounterValues=function(e){var t=this.counters[e];return t||[]},e.prototype.pop=function(e){var t=this;e.forEach((function(e){return t.counters[e].pop()}))},e.prototype.parse=function(e){var t=this,i=e.counterIncrement,s=e.counterReset,r=!0;null!==i&&i.forEach((function(e){var i=t.counters[e.counter];i&&0!==e.increment&&(r=!1,i.length||i.push(1),i[Math.max(0,i.length-1)]+=e.increment)}));var o=[];return r&&s.forEach((function(e){var i=t.counters[e.counter];o.push(e.counter),i||(i=t.counters[e.counter]=[]),i.push(e.reset)})),o},e}(),pf={integers:[1e3,900,500,400,100,90,50,40,10,9,5,4,1],values:["M","CM","D","CD","C","XC","L","XL","X","IX","V","IV","I"]},gf={integers:[9e3,8e3,7e3,6e3,5e3,4e3,3e3,2e3,1e3,900,800,700,600,500,400,300,200,100,90,80,70,60,50,40,30,20,10,9,8,7,6,5,4,3,2,1],values:["Ք","Փ","Ւ","Ց","Ր","Տ","Վ","Ս","Ռ","Ջ","Պ","Չ","Ո","Շ","Ն","Յ","Մ","Ճ","Ղ","Ձ","Հ","Կ","Ծ","Խ","Լ","Ի","Ժ","Թ","Ը","Է","Զ","Ե","Դ","Գ","Բ","Ա"]},mf={integers:[1e4,9e3,8e3,7e3,6e3,5e3,4e3,3e3,2e3,1e3,400,300,200,100,90,80,70,60,50,40,30,20,19,18,17,16,15,10,9,8,7,6,5,4,3,2,1],values:["י׳","ט׳","ח׳","ז׳","ו׳","ה׳","ד׳","ג׳","ב׳","א׳","ת","ש","ר","ק","צ","פ","ע","ס","נ","מ","ל","כ","יט","יח","יז","טז","טו","י","ט","ח","ז","ו","ה","ד","ג","ב","א"]},ff={integers:[1e4,9e3,8e3,7e3,6e3,5e3,4e3,3e3,2e3,1e3,900,800,700,600,500,400,300,200,100,90,80,70,60,50,40,30,20,10,9,8,7,6,5,4,3,2,1],values:["ჵ","ჰ","ჯ","ჴ","ხ","ჭ","წ","ძ","ც","ჩ","შ","ყ","ღ","ქ","ფ","ჳ","ტ","ს","რ","ჟ","პ","ო","ჲ","ნ","მ","ლ","კ","ი","თ","ჱ","ზ","ვ","ე","დ","გ","ბ","ა"]},_f=function(e,t,i,s,r,o){return ei?Mf(e,r,o.length>0):s.integers.reduce((function(t,i,r){for(;e>=i;)e-=i,t+=s.values[r];return t}),"")+o},vf=function(e,t,i,s){var r="";do{i||e--,r=s(e)+r,e/=t}while(e*t>=t);return r},bf=function(e,t,i,s,r){var o=i-t+1;return(e<0?"-":"")+(vf(Math.abs(e),o,s,(function(e){return Ic(Math.floor(e%o)+t)}))+r)},xf=function(e,t,i){void 0===i&&(i=". ");var s=t.length;return vf(Math.abs(e),s,!1,(function(e){return t[Math.floor(e%s)]}))+i},wf=function(e,t,i,s,r,o){if(e<-9999||e>9999)return Mf(e,4,r.length>0);var n=Math.abs(e),a=r;if(0===n)return t[0]+a;for(var l=0;n>0&&l<=4;l++){var A=n%10;0===A&&Ig(o,1)&&""!==a?a=t[A]+a:A>1||1===A&&0===l||1===A&&1===l&&Ig(o,2)||1===A&&1===l&&Ig(o,4)&&e>100||1===A&&l>1&&Ig(o,8)?a=t[A]+(l>0?i[l-1]:"")+a:1===A&&l>0&&(a=i[l-1]+a),n=Math.floor(n/10)}return(e<0?s:"")+a},yf="十百千萬",Pf="拾佰仟萬",Bf="マイナス",Cf="마이너스",Mf=function(e,t,i){var s=i?". ":"",r=i?"、":"",o=i?", ":"",n=i?" ":"";switch(t){case 0:return"•"+n;case 1:return"◦"+n;case 2:return"◾"+n;case 5:var a=bf(e,48,57,!0,s);return a.length<4?"0"+a:a;case 4:return xf(e,"〇一二三四五六七八九",r);case 6:return _f(e,1,3999,pf,3,s).toLowerCase();case 7:return _f(e,1,3999,pf,3,s);case 8:return bf(e,945,969,!1,s);case 9:return bf(e,97,122,!1,s);case 10:return bf(e,65,90,!1,s);case 11:return bf(e,1632,1641,!0,s);case 12:case 49:return _f(e,1,9999,gf,3,s);case 35:return _f(e,1,9999,gf,3,s).toLowerCase();case 13:return bf(e,2534,2543,!0,s);case 14:case 30:return bf(e,6112,6121,!0,s);case 15:return xf(e,"子丑寅卯辰巳午未申酉戌亥",r);case 16:return xf(e,"甲乙丙丁戊己庚辛壬癸",r);case 17:case 48:return wf(e,"零一二三四五六七八九",yf,"負",r,14);case 47:return wf(e,"零壹貳參肆伍陸柒捌玖",Pf,"負",r,15);case 42:return wf(e,"零一二三四五六七八九",yf,"负",r,14);case 41:return wf(e,"零壹贰叁肆伍陆柒捌玖",Pf,"负",r,15);case 26:return wf(e,"〇一二三四五六七八九","十百千万",Bf,r,0);case 25:return wf(e,"零壱弐参四伍六七八九","拾百千万",Bf,r,7);case 31:return wf(e,"영일이삼사오육칠팔구","십백천만",Cf,o,7);case 33:return wf(e,"零一二三四五六七八九","十百千萬",Cf,o,0);case 32:return wf(e,"零壹貳參四五六七八九","拾百千",Cf,o,7);case 18:return bf(e,2406,2415,!0,s);case 20:return _f(e,1,19999,ff,3,s);case 21:return bf(e,2790,2799,!0,s);case 22:return bf(e,2662,2671,!0,s);case 22:return _f(e,1,10999,mf,3,s);case 23:return xf(e,"あいうえおかきくけこさしすせそたちつてとなにぬねのはひふへほまみむめもやゆよらりるれろわゐゑをん");case 24:return xf(e,"いろはにほへとちりぬるをわかよたれそつねならむうゐのおくやまけふこえてあさきゆめみしゑひもせす");case 27:return bf(e,3302,3311,!0,s);case 28:return xf(e,"アイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワヰヱヲン",r);case 29:return xf(e,"イロハニホヘトチリヌルヲワカヨタレソツネナラムウヰノオクヤマケフコエテアサキユメミシヱヒモセス",r);case 34:return bf(e,3792,3801,!0,s);case 37:return bf(e,6160,6169,!0,s);case 38:return bf(e,4160,4169,!0,s);case 39:return bf(e,2918,2927,!0,s);case 40:return bf(e,1776,1785,!0,s);case 43:return bf(e,3046,3055,!0,s);case 44:return bf(e,3174,3183,!0,s);case 45:return bf(e,3664,3673,!0,s);case 46:return bf(e,3872,3881,!0,s);default:return bf(e,48,57,!0,s)}},Ef="data-html2canvas-ignore",Ff=function(){function e(e,t,i){if(this.context=e,this.options=i,this.scrolledElements=[],this.referenceElement=t,this.counters=new df,this.quoteDepth=0,!t.ownerDocument)throw new Error("Cloned element does not have an owner document");this.documentElement=this.cloneNode(t.ownerDocument.documentElement,!1)}return e.prototype.toIFrame=function(e,t){var i=this,s=Df(e,t);if(!s.contentWindow)return Promise.reject("Unable to find iframe window");var r=e.defaultView.pageXOffset,o=e.defaultView.pageYOffset,n=s.contentWindow,a=n.document,l=Rf(s).then((function(){return Pc(i,void 0,void 0,(function(){var e,i;return Bc(this,(function(r){switch(r.label){case 0:return this.scrolledElements.forEach(Nf),n&&(n.scrollTo(t.left,t.top),!/(iPad|iPhone|iPod)/g.test(navigator.userAgent)||n.scrollY===t.top&&n.scrollX===t.left||(this.context.logger.warn("Unable to restore scroll position for cloned document"),this.context.windowBounds=this.context.windowBounds.add(n.scrollX-t.left,n.scrollY-t.top,0,0))),e=this.options.onclone,void 0===(i=this.clonedReferenceElement)?[2,Promise.reject("Error finding the "+this.referenceElement.nodeName+" in the cloned document")]:a.fonts&&a.fonts.ready?[4,a.fonts.ready]:[3,2];case 1:r.sent(),r.label=2;case 2:return/(AppleWebKit)/g.test(navigator.userAgent)?[4,Tf(a)]:[3,4];case 3:r.sent(),r.label=4;case 4:return"function"==typeof e?[2,Promise.resolve().then((function(){return e(a,i)})).then((function(){return s}))]:[2,s]}}))}))}));return a.open(),a.write(kf(document.doctype)+""),Of(this.referenceElement.ownerDocument,r,o),a.replaceChild(a.adoptNode(this.documentElement),a.documentElement),a.close(),l},e.prototype.createElementClone=function(e){if(Gg(e,2),rf(e))return this.createCanvasClone(e);if(of(e))return this.createVideoClone(e);if(lf(e))return this.createStyleClone(e);var t=e.cloneNode(!1);return nf(t)&&(nf(e)&&e.currentSrc&&e.currentSrc!==e.src&&(t.src=e.currentSrc,t.srcset=""),"lazy"===t.loading&&(t.loading="eager")),uf(t)?this.createCustomElementClone(t):t},e.prototype.createCustomElementClone=function(e){var t=document.createElement("html2canvascustomelement");return Uf(e.style,t),t},e.prototype.createStyleClone=function(e){try{var t=e.sheet;if(t&&t.cssRules){var i=[].slice.call(t.cssRules,0).reduce((function(e,t){return t&&"string"==typeof t.cssText?e+t.cssText:e}),""),s=e.cloneNode(!1);return s.textContent=i,s}}catch(e){if(this.context.logger.error("Unable to access cssRules property",e),"SecurityError"!==e.name)throw e}return e.cloneNode(!1)},e.prototype.createCanvasClone=function(e){var t;if(this.options.inlineImages&&e.ownerDocument){var i=e.ownerDocument.createElement("img");try{return i.src=e.toDataURL(),i}catch(t){this.context.logger.info("Unable to inline canvas contents, canvas is tainted",e)}}var s=e.cloneNode(!1);try{s.width=e.width,s.height=e.height;var r=e.getContext("2d"),o=s.getContext("2d");if(o)if(!this.options.allowTaint&&r)o.putImageData(r.getImageData(0,0,e.width,e.height),0,0);else{var n=null!==(t=e.getContext("webgl2"))&&void 0!==t?t:e.getContext("webgl");if(n){var a=n.getContextAttributes();!1===(null==a?void 0:a.preserveDrawingBuffer)&&this.context.logger.warn("Unable to clone WebGL context as it has preserveDrawingBuffer=false",e)}o.drawImage(e,0,0)}return s}catch(t){this.context.logger.info("Unable to clone canvas as it is tainted",e)}return s},e.prototype.createVideoClone=function(e){var t=e.ownerDocument.createElement("canvas");t.width=e.offsetWidth,t.height=e.offsetHeight;var i=t.getContext("2d");try{return i&&(i.drawImage(e,0,0,t.width,t.height),this.options.allowTaint||i.getImageData(0,0,t.width,t.height)),t}catch(t){this.context.logger.info("Unable to clone video as it is tainted",e)}var s=e.ownerDocument.createElement("canvas");return s.width=e.offsetWidth,s.height=e.offsetHeight,s},e.prototype.appendChildNode=function(e,t,i){Ym(t)&&("SCRIPT"===t.tagName||t.hasAttribute(Ef)||"function"==typeof this.options.ignoreElements&&this.options.ignoreElements(t))||this.options.copyStyles&&Ym(t)&&lf(t)||e.appendChild(this.cloneNode(t,i))},e.prototype.cloneChildNodes=function(e,t,i){for(var s=this,r=e.shadowRoot?e.shadowRoot.firstChild:e.firstChild;r;r=r.nextSibling)if(Ym(r)&&cf(r)&&"function"==typeof r.assignedNodes){var o=r.assignedNodes();o.length&&o.forEach((function(e){return s.appendChildNode(t,e,i)}))}else this.appendChildNode(t,r,i)},e.prototype.cloneNode=function(e,t){if(Xm(e))return document.createTextNode(e.data);if(!e.ownerDocument)return e.cloneNode(!1);var i=e.ownerDocument.defaultView;if(i&&Ym(e)&&(qm(e)||Zm(e))){var s=this.createElementClone(e);s.style.transitionProperty="none";var r=i.getComputedStyle(e),o=i.getComputedStyle(e,":before"),n=i.getComputedStyle(e,":after");this.referenceElement===e&&qm(s)&&(this.clonedReferenceElement=s),sf(s)&&Hf(s);var a=this.counters.parse(new Hg(this.context,r)),l=this.resolvePseudoContent(e,s,o,tm.BEFORE);uf(e)&&(t=!0),of(e)||this.cloneChildNodes(e,s,t),l&&s.insertBefore(l,s.firstChild);var A=this.resolvePseudoContent(e,s,n,tm.AFTER);return A&&s.appendChild(A),this.counters.pop(a),(r&&(this.options.copyStyles||Zm(e))&&!af(e)||t)&&Uf(r,s),0===e.scrollTop&&0===e.scrollLeft||this.scrolledElements.push([s,e.scrollLeft,e.scrollTop]),(Af(e)||hf(e))&&(Af(s)||hf(s))&&(s.value=e.value),s}return e.cloneNode(!1)},e.prototype.resolvePseudoContent=function(e,t,i,s){var r=this;if(i){var o=i.content,n=t.ownerDocument;if(n&&o&&"none"!==o&&"-moz-alt-content"!==o&&"none"!==i.display){this.counters.parse(new Hg(this.context,i));var a=new jg(this.context,i),l=n.createElement("html2canvaspseudoelement");Uf(i,l),a.content.forEach((function(t){if(0===t.type)l.appendChild(n.createTextNode(t.value));else if(22===t.type){var i=n.createElement("img");i.src=t.value,i.style.opacity="1",l.appendChild(i)}else if(18===t.type){if("attr"===t.name){var s=t.values.filter(ud);s.length&&l.appendChild(n.createTextNode(e.getAttribute(s[0].value)||""))}else if("counter"===t.name){var o=t.values.filter(md),A=o[0],h=o[1];if(A&&ud(A)){var c=r.counters.getCounterValue(A.value),u=h&&ud(h)?qp.parse(r.context,h.value):3;l.appendChild(n.createTextNode(Mf(c,u,!1)))}}else if("counters"===t.name){var d=t.values.filter(md),p=(A=d[0],d[1]);h=d[2];if(A&&ud(A)){var g=r.counters.getCounterValues(A.value),m=h&&ud(h)?qp.parse(r.context,h.value):3,f=p&&0===p.type?p.value:"",_=g.map((function(e){return Mf(e,m,!1)})).join(f);l.appendChild(n.createTextNode(_))}}}else if(20===t.type)switch(t.value){case"open-quote":l.appendChild(n.createTextNode(Ug(a.quotes,r.quoteDepth++,!0)));break;case"close-quote":l.appendChild(n.createTextNode(Ug(a.quotes,--r.quoteDepth,!1)));break;default:l.appendChild(n.createTextNode(t.value))}})),l.className=Qf+" "+Vf;var A=s===tm.BEFORE?" "+Qf:" "+Vf;return Zm(t)?t.className.baseValue+=A:t.className+=A,l}}},e.destroy=function(e){return!!e.parentNode&&(e.parentNode.removeChild(e),!0)},e}();!function(e){e[e.BEFORE=0]="BEFORE",e[e.AFTER=1]="AFTER"}(tm||(tm={}));var If,Df=function(e,t){var i=e.createElement("iframe");return i.className="html2canvas-container",i.style.visibility="hidden",i.style.position="fixed",i.style.left="-10000px",i.style.top="0px",i.style.border="0",i.width=t.width.toString(),i.height=t.height.toString(),i.scrolling="no",i.setAttribute(Ef,"true"),e.body.appendChild(i),i},Sf=function(e){return new Promise((function(t){e.complete?t():e.src?(e.onload=t,e.onerror=t):t()}))},Tf=function(e){return Promise.all([].slice.call(e.images,0).map(Sf))},Rf=function(e){return new Promise((function(t,i){var s=e.contentWindow;if(!s)return i("No window assigned for iframe");var r=s.document;s.onload=e.onload=function(){s.onload=e.onload=null;var i=setInterval((function(){r.body.childNodes.length>0&&"complete"===r.readyState&&(clearInterval(i),t(e))}),50)}}))},Lf=["all","d","content"],Uf=function(e,t){for(var i=e.length-1;i>=0;i--){var s=e.item(i);-1===Lf.indexOf(s)&&t.style.setProperty(s,e.getPropertyValue(s))}return t},kf=function(e){var t="";return e&&(t+=""),t},Of=function(e,t,i){e&&e.defaultView&&(t!==e.defaultView.pageXOffset||i!==e.defaultView.pageYOffset)&&e.defaultView.scrollTo(t,i)},Nf=function(e){var t=e[0],i=e[1],s=e[2];t.scrollLeft=i,t.scrollTop=s},Qf="___html2canvas___pseudoelement_before",Vf="___html2canvas___pseudoelement_after",jf='{\n content: "" !important;\n display: none !important;\n}',Hf=function(e){zf(e,"."+Qf+":before"+jf+"\n ."+Vf+":after"+jf)},zf=function(e,t){var i=e.ownerDocument;if(i){var s=i.createElement("style");s.textContent=t,e.appendChild(s)}},Gf=function(){function e(){}return e.getOrigin=function(t){var i=e._link;return i?(i.href=t,i.href=i.href,i.protocol+i.hostname+i.port):"about:blank"},e.isSameOrigin=function(t){return e.getOrigin(t)===e._origin},e.setContext=function(t){e._link=t.document.createElement("a"),e._origin=e.getOrigin(t.location.href)},e._origin="about:blank",e}(),Wf=function(){function e(e,t){this.context=e,this._options=t,this._cache={}}return e.prototype.addImage=function(e){var t=Promise.resolve();return this.has(e)?t:$f(e)||qf(e)?((this._cache[e]=this.loadImage(e)).catch((function(){})),t):t},e.prototype.match=function(e){return this._cache[e]},e.prototype.loadImage=function(e){return Pc(this,void 0,void 0,(function(){var t,i,s,r,o=this;return Bc(this,(function(n){switch(n.label){case 0:return t=Gf.isSameOrigin(e),i=!Zf(e)&&!0===this._options.useCORS&&gm.SUPPORT_CORS_IMAGES&&!t,s=!Zf(e)&&!t&&!$f(e)&&"string"==typeof this._options.proxy&&gm.SUPPORT_CORS_XHR&&!i,t||!1!==this._options.allowTaint||Zf(e)||$f(e)||s||i?(r=e,s?[4,this.proxy(r)]:[3,2]):[2];case 1:r=n.sent(),n.label=2;case 2:return this.context.logger.debug("Added image "+e.substring(0,256)),[4,new Promise((function(e,t){var s=new Image;s.onload=function(){return e(s)},s.onerror=t,(Jf(r)||i)&&(s.crossOrigin="anonymous"),s.src=r,!0===s.complete&&setTimeout((function(){return e(s)}),500),o._options.imageTimeout>0&&setTimeout((function(){return t("Timed out ("+o._options.imageTimeout+"ms) loading image")}),o._options.imageTimeout)}))];case 3:return[2,n.sent()]}}))}))},e.prototype.has=function(e){return void 0!==this._cache[e]},e.prototype.keys=function(){return Promise.resolve(Object.keys(this._cache))},e.prototype.proxy=function(e){var t=this,i=this._options.proxy;if(!i)throw new Error("No proxy defined");var s=e.substring(0,256);return new Promise((function(r,o){var n=gm.SUPPORT_RESPONSE_TYPE?"blob":"text",a=new XMLHttpRequest;a.onload=function(){if(200===a.status)if("text"===n)r(a.response);else{var e=new FileReader;e.addEventListener("load",(function(){return r(e.result)}),!1),e.addEventListener("error",(function(e){return o(e)}),!1),e.readAsDataURL(a.response)}else o("Failed to proxy resource "+s+" with status code "+a.status)},a.onerror=o;var l=i.indexOf("?")>-1?"&":"?";if(a.open("GET",""+i+l+"url="+encodeURIComponent(e)+"&responseType="+n),"text"!==n&&a instanceof XMLHttpRequest&&(a.responseType=n),t._options.imageTimeout){var A=t._options.imageTimeout;a.timeout=A,a.ontimeout=function(){return o("Timed out ("+A+"ms) proxying "+s)}}a.send()}))},e}(),Kf=/^data:image\/svg\+xml/i,Xf=/^data:image\/.*;base64,/i,Yf=/^data:image\/.*/i,qf=function(e){return gm.SUPPORT_SVG_DRAWING||!e_(e)},Zf=function(e){return Yf.test(e)},Jf=function(e){return Xf.test(e)},$f=function(e){return"blob"===e.substr(0,4)},e_=function(e){return"svg"===e.substr(-3).toLowerCase()||Kf.test(e)},t_=function(){function e(e,t){this.type=0,this.x=e,this.y=t}return e.prototype.add=function(t,i){return new e(this.x+t,this.y+i)},e}(),i_=function(e,t,i){return new t_(e.x+(t.x-e.x)*i,e.y+(t.y-e.y)*i)},s_=function(){function e(e,t,i,s){this.type=1,this.start=e,this.startControl=t,this.endControl=i,this.end=s}return e.prototype.subdivide=function(t,i){var s=i_(this.start,this.startControl,t),r=i_(this.startControl,this.endControl,t),o=i_(this.endControl,this.end,t),n=i_(s,r,t),a=i_(r,o,t),l=i_(n,a,t);return i?new e(this.start,s,n,l):new e(l,a,o,this.end)},e.prototype.add=function(t,i){return new e(this.start.add(t,i),this.startControl.add(t,i),this.endControl.add(t,i),this.end.add(t,i))},e.prototype.reverse=function(){return new e(this.end,this.endControl,this.startControl,this.start)},e}(),r_=function(e){return 1===e.type},o_=function(e){var t=e.styles,i=e.bounds,s=Bd(t.borderTopLeftRadius,i.width,i.height),r=s[0],o=s[1],n=Bd(t.borderTopRightRadius,i.width,i.height),a=n[0],l=n[1],A=Bd(t.borderBottomRightRadius,i.width,i.height),h=A[0],c=A[1],u=Bd(t.borderBottomLeftRadius,i.width,i.height),d=u[0],p=u[1],g=[];g.push((r+a)/i.width),g.push((d+h)/i.width),g.push((o+p)/i.height),g.push((l+c)/i.height);var m=Math.max.apply(Math,g);m>1&&(r/=m,o/=m,a/=m,l/=m,h/=m,c/=m,d/=m,p/=m);var f=i.width-a,_=i.height-c,v=i.width-h,b=i.height-p,x=t.borderTopWidth,w=t.borderRightWidth,y=t.borderBottomWidth,P=t.borderLeftWidth,B=Cd(t.paddingTop,e.bounds.width),C=Cd(t.paddingRight,e.bounds.width),M=Cd(t.paddingBottom,e.bounds.width),E=Cd(t.paddingLeft,e.bounds.width);this.topLeftBorderDoubleOuterBox=r>0||o>0?n_(i.left+P/3,i.top+x/3,r-P/3,o-x/3,If.TOP_LEFT):new t_(i.left+P/3,i.top+x/3),this.topRightBorderDoubleOuterBox=r>0||o>0?n_(i.left+f,i.top+x/3,a-w/3,l-x/3,If.TOP_RIGHT):new t_(i.left+i.width-w/3,i.top+x/3),this.bottomRightBorderDoubleOuterBox=h>0||c>0?n_(i.left+v,i.top+_,h-w/3,c-y/3,If.BOTTOM_RIGHT):new t_(i.left+i.width-w/3,i.top+i.height-y/3),this.bottomLeftBorderDoubleOuterBox=d>0||p>0?n_(i.left+P/3,i.top+b,d-P/3,p-y/3,If.BOTTOM_LEFT):new t_(i.left+P/3,i.top+i.height-y/3),this.topLeftBorderDoubleInnerBox=r>0||o>0?n_(i.left+2*P/3,i.top+2*x/3,r-2*P/3,o-2*x/3,If.TOP_LEFT):new t_(i.left+2*P/3,i.top+2*x/3),this.topRightBorderDoubleInnerBox=r>0||o>0?n_(i.left+f,i.top+2*x/3,a-2*w/3,l-2*x/3,If.TOP_RIGHT):new t_(i.left+i.width-2*w/3,i.top+2*x/3),this.bottomRightBorderDoubleInnerBox=h>0||c>0?n_(i.left+v,i.top+_,h-2*w/3,c-2*y/3,If.BOTTOM_RIGHT):new t_(i.left+i.width-2*w/3,i.top+i.height-2*y/3),this.bottomLeftBorderDoubleInnerBox=d>0||p>0?n_(i.left+2*P/3,i.top+b,d-2*P/3,p-2*y/3,If.BOTTOM_LEFT):new t_(i.left+2*P/3,i.top+i.height-2*y/3),this.topLeftBorderStroke=r>0||o>0?n_(i.left+P/2,i.top+x/2,r-P/2,o-x/2,If.TOP_LEFT):new t_(i.left+P/2,i.top+x/2),this.topRightBorderStroke=r>0||o>0?n_(i.left+f,i.top+x/2,a-w/2,l-x/2,If.TOP_RIGHT):new t_(i.left+i.width-w/2,i.top+x/2),this.bottomRightBorderStroke=h>0||c>0?n_(i.left+v,i.top+_,h-w/2,c-y/2,If.BOTTOM_RIGHT):new t_(i.left+i.width-w/2,i.top+i.height-y/2),this.bottomLeftBorderStroke=d>0||p>0?n_(i.left+P/2,i.top+b,d-P/2,p-y/2,If.BOTTOM_LEFT):new t_(i.left+P/2,i.top+i.height-y/2),this.topLeftBorderBox=r>0||o>0?n_(i.left,i.top,r,o,If.TOP_LEFT):new t_(i.left,i.top),this.topRightBorderBox=a>0||l>0?n_(i.left+f,i.top,a,l,If.TOP_RIGHT):new t_(i.left+i.width,i.top),this.bottomRightBorderBox=h>0||c>0?n_(i.left+v,i.top+_,h,c,If.BOTTOM_RIGHT):new t_(i.left+i.width,i.top+i.height),this.bottomLeftBorderBox=d>0||p>0?n_(i.left,i.top+b,d,p,If.BOTTOM_LEFT):new t_(i.left,i.top+i.height),this.topLeftPaddingBox=r>0||o>0?n_(i.left+P,i.top+x,Math.max(0,r-P),Math.max(0,o-x),If.TOP_LEFT):new t_(i.left+P,i.top+x),this.topRightPaddingBox=a>0||l>0?n_(i.left+Math.min(f,i.width-w),i.top+x,f>i.width+w?0:Math.max(0,a-w),Math.max(0,l-x),If.TOP_RIGHT):new t_(i.left+i.width-w,i.top+x),this.bottomRightPaddingBox=h>0||c>0?n_(i.left+Math.min(v,i.width-P),i.top+Math.min(_,i.height-y),Math.max(0,h-w),Math.max(0,c-y),If.BOTTOM_RIGHT):new t_(i.left+i.width-w,i.top+i.height-y),this.bottomLeftPaddingBox=d>0||p>0?n_(i.left+P,i.top+Math.min(b,i.height-y),Math.max(0,d-P),Math.max(0,p-y),If.BOTTOM_LEFT):new t_(i.left+P,i.top+i.height-y),this.topLeftContentBox=r>0||o>0?n_(i.left+P+E,i.top+x+B,Math.max(0,r-(P+E)),Math.max(0,o-(x+B)),If.TOP_LEFT):new t_(i.left+P+E,i.top+x+B),this.topRightContentBox=a>0||l>0?n_(i.left+Math.min(f,i.width+P+E),i.top+x+B,f>i.width+P+E?0:a-P+E,l-(x+B),If.TOP_RIGHT):new t_(i.left+i.width-(w+C),i.top+x+B),this.bottomRightContentBox=h>0||c>0?n_(i.left+Math.min(v,i.width-(P+E)),i.top+Math.min(_,i.height+x+B),Math.max(0,h-(w+C)),c-(y+M),If.BOTTOM_RIGHT):new t_(i.left+i.width-(w+C),i.top+i.height-(y+M)),this.bottomLeftContentBox=d>0||p>0?n_(i.left+P+E,i.top+b,Math.max(0,d-(P+E)),p-(y+M),If.BOTTOM_LEFT):new t_(i.left+P+E,i.top+i.height-(y+M))};!function(e){e[e.TOP_LEFT=0]="TOP_LEFT",e[e.TOP_RIGHT=1]="TOP_RIGHT",e[e.BOTTOM_RIGHT=2]="BOTTOM_RIGHT",e[e.BOTTOM_LEFT=3]="BOTTOM_LEFT"}(If||(If={}));var n_=function(e,t,i,s,r){var o=(Math.sqrt(2)-1)/3*4,n=i*o,a=s*o,l=e+i,A=t+s;switch(r){case If.TOP_LEFT:return new s_(new t_(e,A),new t_(e,A-a),new t_(l-n,t),new t_(l,t));case If.TOP_RIGHT:return new s_(new t_(e,t),new t_(e+n,t),new t_(l,A-a),new t_(l,A));case If.BOTTOM_RIGHT:return new s_(new t_(l,t),new t_(l,t+a),new t_(e+n,A),new t_(e,A));case If.BOTTOM_LEFT:default:return new s_(new t_(l,A),new t_(l-n,A),new t_(e,t+a),new t_(e,t))}},a_=function(e){return[e.topLeftBorderBox,e.topRightBorderBox,e.bottomRightBorderBox,e.bottomLeftBorderBox]},l_=function(e){return[e.topLeftPaddingBox,e.topRightPaddingBox,e.bottomRightPaddingBox,e.bottomLeftPaddingBox]},A_=function(e,t,i){this.offsetX=e,this.offsetY=t,this.matrix=i,this.type=0,this.target=6},h_=function(e,t){this.path=e,this.target=t,this.type=1},c_=function(e){this.opacity=e,this.type=2,this.target=6},u_=function(e){return 1===e.type},d_=function(e,t){return e.length===t.length&&e.some((function(e,i){return e===t[i]}))},p_=function(e){this.element=e,this.inlineLevel=[],this.nonInlineLevel=[],this.negativeZIndex=[],this.zeroOrAutoZIndexOrTransformedOrOpacity=[],this.positiveZIndex=[],this.nonPositionedFloats=[],this.nonPositionedInlineLevel=[]},g_=function(){function e(e,t){if(this.container=e,this.parent=t,this.effects=[],this.curves=new o_(this.container),this.container.styles.opacity<1&&this.effects.push(new c_(this.container.styles.opacity)),null!==this.container.styles.transform){var i=this.container.bounds.left+this.container.styles.transformOrigin[0].number,s=this.container.bounds.top+this.container.styles.transformOrigin[1].number,r=this.container.styles.transform;this.effects.push(new A_(i,s,r))}if(0!==this.container.styles.overflowX){var o=a_(this.curves),n=l_(this.curves);d_(o,n)?this.effects.push(new h_(o,6)):(this.effects.push(new h_(o,2)),this.effects.push(new h_(n,4)))}}return e.prototype.getEffects=function(e){for(var t=-1===[2,3].indexOf(this.container.styles.position),i=this.parent,s=this.effects.slice(0);i;){var r=i.effects.filter((function(e){return!u_(e)}));if(t||0!==i.container.styles.position||!i.parent){if(s.unshift.apply(s,r),t=-1===[2,3].indexOf(i.container.styles.position),0!==i.container.styles.overflowX){var o=a_(i.curves),n=l_(i.curves);d_(o,n)||s.unshift(new h_(n,6))}}else s.unshift.apply(s,r);i=i.parent}return s.filter((function(t){return Ig(t.target,e)}))},e}(),m_=function(e,t,i,s){e.container.elements.forEach((function(r){var o=Ig(r.flags,4),n=Ig(r.flags,2),a=new g_(r,e);Ig(r.styles.display,2048)&&s.push(a);var l=Ig(r.flags,8)?[]:s;if(o||n){var A=o||r.styles.isPositioned()?i:t,h=new p_(a);if(r.styles.isPositioned()||r.styles.opacity<1||r.styles.isTransformed()){var c=r.styles.zIndex.order;if(c<0){var u=0;A.negativeZIndex.some((function(e,t){return c>e.element.container.styles.zIndex.order?(u=t,!1):u>0})),A.negativeZIndex.splice(u,0,h)}else if(c>0){var d=0;A.positiveZIndex.some((function(e,t){return c>=e.element.container.styles.zIndex.order?(d=t+1,!1):d>0})),A.positiveZIndex.splice(d,0,h)}else A.zeroOrAutoZIndexOrTransformedOrOpacity.push(h)}else r.styles.isFloating()?A.nonPositionedFloats.push(h):A.nonPositionedInlineLevel.push(h);m_(a,h,o?h:i,l)}else r.styles.isInlineLevel()?t.inlineLevel.push(a):t.nonInlineLevel.push(a),m_(a,t,i,l);Ig(r.flags,8)&&f_(r,l)}))},f_=function(e,t){for(var i=e instanceof Dm?e.start:1,s=e instanceof Dm&&e.reversed,r=0;r0&&e.intrinsicHeight>0){var s=w_(e),r=l_(t);this.path(r),this.ctx.save(),this.ctx.clip(),this.ctx.drawImage(i,0,0,e.intrinsicWidth,e.intrinsicHeight,s.left,s.top,s.width,s.height),this.ctx.restore()}},t.prototype.renderNodeContent=function(e){return Pc(this,void 0,void 0,(function(){var i,s,r,o,n,a,l,A,h,c,u,d,p,g,m,f,_,v;return Bc(this,(function(b){switch(b.label){case 0:this.applyEffects(e.getEffects(4)),i=e.container,s=e.curves,r=i.styles,o=0,n=i.textNodes,b.label=1;case 1:return o0&&y>0&&(f=s.ctx.createPattern(p,"repeat"),s.renderRepeat(v,f,B,C))):function(e){return 2===e.type}(i)&&(_=y_(e,t,[null,null,null]),v=_[0],b=_[1],x=_[2],w=_[3],y=_[4],P=0===i.position.length?[yd]:i.position,B=Cd(P[0],w),C=Cd(P[P.length-1],y),M=function(e,t,i,s,r){var o=0,n=0;switch(e.size){case 0:0===e.shape?o=n=Math.min(Math.abs(t),Math.abs(t-s),Math.abs(i),Math.abs(i-r)):1===e.shape&&(o=Math.min(Math.abs(t),Math.abs(t-s)),n=Math.min(Math.abs(i),Math.abs(i-r)));break;case 2:if(0===e.shape)o=n=Math.min(Yd(t,i),Yd(t,i-r),Yd(t-s,i),Yd(t-s,i-r));else if(1===e.shape){var a=Math.min(Math.abs(i),Math.abs(i-r))/Math.min(Math.abs(t),Math.abs(t-s)),l=qd(s,r,t,i,!0),A=l[0],h=l[1];n=a*(o=Yd(A-t,(h-i)/a))}break;case 1:0===e.shape?o=n=Math.max(Math.abs(t),Math.abs(t-s),Math.abs(i),Math.abs(i-r)):1===e.shape&&(o=Math.max(Math.abs(t),Math.abs(t-s)),n=Math.max(Math.abs(i),Math.abs(i-r)));break;case 3:if(0===e.shape)o=n=Math.max(Yd(t,i),Yd(t,i-r),Yd(t-s,i),Yd(t-s,i-r));else if(1===e.shape){a=Math.max(Math.abs(i),Math.abs(i-r))/Math.max(Math.abs(t),Math.abs(t-s));var c=qd(s,r,t,i,!1);A=c[0],h=c[1],n=a*(o=Yd(A-t,(h-i)/a))}}return Array.isArray(e.size)&&(o=Cd(e.size[0],s),n=2===e.size.length?Cd(e.size[1],r):o),[o,n]}(i,B,C,w,y),E=M[0],F=M[1],E>0&&F>0&&(I=s.ctx.createRadialGradient(b+B,x+C,0,b+B,x+C,E),Kd(i.stops,2*E).forEach((function(e){return I.addColorStop(e.stop,Ld(e.color))})),s.path(v),s.ctx.fillStyle=I,E!==F?(D=e.bounds.left+.5*e.bounds.width,S=e.bounds.top+.5*e.bounds.height,R=1/(T=F/E),s.ctx.save(),s.ctx.translate(D,S),s.ctx.transform(1,0,0,T,0,0),s.ctx.translate(-D,-S),s.ctx.fillRect(b,R*(x-S)+S,w,y*R),s.ctx.restore()):s.ctx.fill())),L.label=6;case 6:return t--,[2]}}))},s=this,r=0,o=e.styles.backgroundImage.slice(0).reverse(),a.label=1;case 1:return r0?2!==l.style?[3,5]:[4,this.renderDashedDottedBorder(l.color,l.width,o,e.curves,2)]:[3,11]:[3,13];case 4:return h.sent(),[3,11];case 5:return 3!==l.style?[3,7]:[4,this.renderDashedDottedBorder(l.color,l.width,o,e.curves,3)];case 6:return h.sent(),[3,11];case 7:return 4!==l.style?[3,9]:[4,this.renderDoubleBorder(l.color,l.width,o,e.curves)];case 8:return h.sent(),[3,11];case 9:return[4,this.renderSolidBorder(l.color,o,e.curves)];case 10:h.sent(),h.label=11;case 11:o++,h.label=12;case 12:return n++,[3,3];case 13:return[2]}}))}))},t.prototype.renderDashedDottedBorder=function(e,t,i,s,r){return Pc(this,void 0,void 0,(function(){var o,n,a,l,A,h,c,u,d,p,g,m,f,_,v,b;return Bc(this,(function(x){return this.ctx.save(),o=function(e,t){switch(t){case 0:return v_(e.topLeftBorderStroke,e.topRightBorderStroke);case 1:return v_(e.topRightBorderStroke,e.bottomRightBorderStroke);case 2:return v_(e.bottomRightBorderStroke,e.bottomLeftBorderStroke);default:return v_(e.bottomLeftBorderStroke,e.topLeftBorderStroke)}}(s,i),n=__(s,i),2===r&&(this.path(n),this.ctx.clip()),r_(n[0])?(a=n[0].start.x,l=n[0].start.y):(a=n[0].x,l=n[0].y),r_(n[1])?(A=n[1].end.x,h=n[1].end.y):(A=n[1].x,h=n[1].y),c=0===i||2===i?Math.abs(a-A):Math.abs(l-h),this.ctx.beginPath(),3===r?this.formatPath(o):this.formatPath(n.slice(0,2)),u=t<3?3*t:2*t,d=t<3?2*t:t,3===r&&(u=t,d=t),p=!0,c<=2*u?p=!1:c<=2*u+d?(u*=g=c/(2*u+d),d*=g):(m=Math.floor((c+d)/(u+d)),f=(c-m*u)/(m-1),d=(_=(c-(m+1)*u)/m)<=0||Math.abs(d-f){})),Z_(this,"_reject",(()=>{})),this.name=e,this.workerThread=t,this.result=new Promise(((e,t)=>{this._resolve=e,this._reject=t}))}postMessage(e,t){this.workerThread.postMessage({source:"loaders.gl",type:e,payload:t})}done(e){K_(this.isRunning),this.isRunning=!1,this._resolve(e)}error(e){K_(this.isRunning),this.isRunning=!1,this._reject(e)}}class $_{}const ev=new Map;function tv(e){K_(e.source&&!e.url||!e.source&&e.url);let t=ev.get(e.source||e.url);return t||(e.url&&(t=function(e){if(!e.startsWith("http"))return e;return iv((t=e,"try {\n importScripts('".concat(t,"');\n} catch (error) {\n console.error(error);\n throw error;\n}")));var t}(e.url),ev.set(e.url,t)),e.source&&(t=iv(e.source),ev.set(e.source,t))),K_(t),t}function iv(e){const t=new Blob([e],{type:"application/javascript"});return URL.createObjectURL(t)}function sv(e,t=!0,i){const s=i||new Set;if(e){if(rv(e))s.add(e);else if(rv(e.buffer))s.add(e.buffer);else if(ArrayBuffer.isView(e));else if(t&&"object"==typeof e)for(const i in e)sv(e[i],t,s)}else;return void 0===i?Array.from(s):[]}function rv(e){return!!e&&(e instanceof ArrayBuffer||("undefined"!=typeof MessagePort&&e instanceof MessagePort||("undefined"!=typeof ImageBitmap&&e instanceof ImageBitmap||"undefined"!=typeof OffscreenCanvas&&e instanceof OffscreenCanvas)))}const ov=()=>{};class nv{static isSupported(){return"undefined"!=typeof Worker&&X_||void 0!==typeof $_}constructor(e){Z_(this,"name",void 0),Z_(this,"source",void 0),Z_(this,"url",void 0),Z_(this,"terminated",!1),Z_(this,"worker",void 0),Z_(this,"onMessage",void 0),Z_(this,"onError",void 0),Z_(this,"_loadableURL","");const{name:t,source:i,url:s}=e;K_(i||s),this.name=t,this.source=i,this.url=s,this.onMessage=ov,this.onError=e=>console.log(e),this.worker=X_?this._createBrowserWorker():this._createNodeWorker()}destroy(){this.onMessage=ov,this.onError=ov,this.worker.terminate(),this.terminated=!0}get isRunning(){return Boolean(this.onMessage)}postMessage(e,t){t=t||sv(e),this.worker.postMessage(e,t)}_getErrorFromErrorEvent(e){let t="Failed to load ";return t+="worker ".concat(this.name," from ").concat(this.url,". "),e.message&&(t+="".concat(e.message," in ")),e.lineno&&(t+=":".concat(e.lineno,":").concat(e.colno)),new Error(t)}_createBrowserWorker(){this._loadableURL=tv({source:this.source,url:this.url});const e=new Worker(this._loadableURL,{name:this.name});return e.onmessage=e=>{e.data?this.onMessage(e.data):this.onError(new Error("No data received"))},e.onerror=e=>{this.onError(this._getErrorFromErrorEvent(e)),this.terminated=!0},e.onmessageerror=e=>console.error(e),e}_createNodeWorker(){let e;if(this.url){const t=this.url.includes(":/")||this.url.startsWith("/")?this.url:"./".concat(this.url);e=new $_(t,{eval:!1})}else{if(!this.source)throw new Error("no worker");e=new $_(this.source,{eval:!0})}return e.on("message",(e=>{this.onMessage(e)})),e.on("error",(e=>{this.onError(e)})),e.on("exit",(e=>{})),e}}class av{static isSupported(){return nv.isSupported()}constructor(e){Z_(this,"name","unnamed"),Z_(this,"source",void 0),Z_(this,"url",void 0),Z_(this,"maxConcurrency",1),Z_(this,"maxMobileConcurrency",1),Z_(this,"onDebug",(()=>{})),Z_(this,"reuseWorkers",!0),Z_(this,"props",{}),Z_(this,"jobQueue",[]),Z_(this,"idleQueue",[]),Z_(this,"count",0),Z_(this,"isDestroyed",!1),this.source=e.source,this.url=e.url,this.setProps(e)}destroy(){this.idleQueue.forEach((e=>e.destroy())),this.isDestroyed=!0}setProps(e){this.props={...this.props,...e},void 0!==e.name&&(this.name=e.name),void 0!==e.maxConcurrency&&(this.maxConcurrency=e.maxConcurrency),void 0!==e.maxMobileConcurrency&&(this.maxMobileConcurrency=e.maxMobileConcurrency),void 0!==e.reuseWorkers&&(this.reuseWorkers=e.reuseWorkers),void 0!==e.onDebug&&(this.onDebug=e.onDebug)}async startJob(e,t=((e,t,i)=>e.done(i)),i=((e,t)=>e.error(t))){const s=new Promise((s=>(this.jobQueue.push({name:e,onMessage:t,onError:i,onStart:s}),this)));return this._startQueuedJob(),await s}async _startQueuedJob(){if(!this.jobQueue.length)return;const e=this._getAvailableWorker();if(!e)return;const t=this.jobQueue.shift();if(t){this.onDebug({message:"Starting job",name:t.name,workerThread:e,backlog:this.jobQueue.length});const i=new J_(t.name,e);e.onMessage=e=>t.onMessage(i,e.type,e.payload),e.onError=e=>t.onError(i,e),t.onStart(i);try{await i.result}finally{this.returnWorkerToQueue(e)}}}returnWorkerToQueue(e){this.isDestroyed||!this.reuseWorkers||this.count>this._getMaxConcurrency()?(e.destroy(),this.count--):this.idleQueue.push(e),this.isDestroyed||this._startQueuedJob()}_getAvailableWorker(){if(this.idleQueue.length>0)return this.idleQueue.shift()||null;if(this.count{}};class Av{static isSupported(){return nv.isSupported()}static getWorkerFarm(e={}){return Av._workerFarm=Av._workerFarm||new Av({}),Av._workerFarm.setProps(e),Av._workerFarm}constructor(e){Z_(this,"props",void 0),Z_(this,"workerPools",new Map),this.props={...lv},this.setProps(e),this.workerPools=new Map}destroy(){for(const e of this.workerPools.values())e.destroy();this.workerPools=new Map}setProps(e){this.props={...this.props,...e};for(const e of this.workerPools.values())e.setProps(this._getWorkerPoolProps())}getWorkerPool(e){const{name:t,source:i,url:s}=e;let r=this.workerPools.get(t);return r||(r=new av({name:t,source:i,url:s}),r.setProps(this._getWorkerPoolProps()),this.workerPools.set(t,r)),r}_getWorkerPoolProps(){return{maxConcurrency:this.props.maxConcurrency,maxMobileConcurrency:this.props.maxMobileConcurrency,reuseWorkers:this.props.reuseWorkers,onDebug:this.props.onDebug}}}Z_(Av,"_workerFarm",void 0);const hv={self:"undefined"!=typeof self&&self,window:"undefined"!=typeof window&&window,global:"undefined"!=typeof global&&global,document:"undefined"!=typeof document&&document,process:"object"==typeof process&&process},cv=hv.window||hv.self||hv.global,uv=hv.process||{},dv="undefined"!=typeof __VERSION__?__VERSION__:"untranspiled source",pv=!("object"==typeof process&&"[object process]"===String(process)&&!process.browser)||function(e){if("undefined"!=typeof window&&"object"==typeof window.process&&"renderer"===window.process.type)return!0;if("undefined"!=typeof process&&"object"==typeof process.versions&&Boolean(process.versions.electron))return!0;const t="object"==typeof navigator&&"string"==typeof navigator.userAgent&&navigator.userAgent,i=e||t;return!!(i&&i.indexOf("Electron")>=0)}();class gv{constructor(e,t,i="sessionStorage"){this.storage=function(e){try{const t=window[e],i="__storage_test__";return t.setItem(i,i),t.removeItem(i),t}catch(e){return null}}(i),this.id=e,this.config={},Object.assign(this.config,t),this._loadConfiguration()}getConfiguration(){return this.config}setConfiguration(e){return this.config={},this.updateConfiguration(e)}updateConfiguration(e){if(Object.assign(this.config,e),this.storage){const e=JSON.stringify(this.config);this.storage.setItem(this.id,e)}return this}_loadConfiguration(){let e={};if(this.storage){const t=this.storage.getItem(this.id);e=t?JSON.parse(t):{}}return Object.assign(this.config,e),this}}function mv(e,t,i,s=600){const r=e.src.replace(/\(/g,"%28").replace(/\)/g,"%29");e.width>s&&(i=Math.min(i,s/e.width));const o=e.width*i,n=e.height*i,a=["font-size:1px;","padding:".concat(Math.floor(n/2),"px ").concat(Math.floor(o/2),"px;"),"line-height:".concat(n,"px;"),"background:url(".concat(r,");"),"background-size:".concat(o,"px ").concat(n,"px;"),"color:transparent;"].join("");return["".concat(t," %c+"),a]}const fv={BLACK:30,RED:31,GREEN:32,YELLOW:33,BLUE:34,MAGENTA:35,CYAN:36,WHITE:37,BRIGHT_BLACK:90,BRIGHT_RED:91,BRIGHT_GREEN:92,BRIGHT_YELLOW:93,BRIGHT_BLUE:94,BRIGHT_MAGENTA:95,BRIGHT_CYAN:96,BRIGHT_WHITE:97};function _v(e){return"string"==typeof e?fv[e.toUpperCase()]||fv.WHITE:e}function vv(e,t){if(!e)throw new Error(t||"Assertion failed")}function bv(){let e;if(pv&&cv.performance)e=cv.performance.now();else if(uv.hrtime){const t=uv.hrtime();e=1e3*t[0]+t[1]/1e6}else e=Date.now();return e}const xv={debug:pv&&console.debug||console.log,log:console.log,info:console.info,warn:console.warn,error:console.error},wv={enabled:!0,level:0};function yv(){}const Pv={},Bv={once:!0};function Cv(e){for(const t in e)for(const i in e[t])return i||"untitled";return"empty"}class Mv{constructor({id:e}={id:""}){this.id=e,this.VERSION=dv,this._startTs=bv(),this._deltaTs=bv(),this.LOG_THROTTLE_TIMEOUT=0,this._storage=new gv("__probe-".concat(this.id,"__"),wv),this.userData={},this.timeStamp("".concat(this.id," started")),function(e,t=["constructor"]){const i=Object.getPrototypeOf(e),s=Object.getOwnPropertyNames(i);for(const i of s)"function"==typeof e[i]&&(t.find((e=>i===e))||(e[i]=e[i].bind(e)))}(this),Object.seal(this)}set level(e){this.setLevel(e)}get level(){return this.getLevel()}isEnabled(){return this._storage.config.enabled}getLevel(){return this._storage.config.level}getTotal(){return Number((bv()-this._startTs).toPrecision(10))}getDelta(){return Number((bv()-this._deltaTs).toPrecision(10))}set priority(e){this.level=e}get priority(){return this.level}getPriority(){return this.level}enable(e=!0){return this._storage.updateConfiguration({enabled:e}),this}setLevel(e){return this._storage.updateConfiguration({level:e}),this}assert(e,t){vv(e,t)}warn(e){return this._getLogFunction(0,e,xv.warn,arguments,Bv)}error(e){return this._getLogFunction(0,e,xv.error,arguments)}deprecated(e,t){return this.warn("`".concat(e,"` is deprecated and will be removed in a later version. Use `").concat(t,"` instead"))}removed(e,t){return this.error("`".concat(e,"` has been removed. Use `").concat(t,"` instead"))}probe(e,t){return this._getLogFunction(e,t,xv.log,arguments,{time:!0,once:!0})}log(e,t){return this._getLogFunction(e,t,xv.debug,arguments)}info(e,t){return this._getLogFunction(e,t,console.info,arguments)}once(e,t){return this._getLogFunction(e,t,xv.debug||xv.info,arguments,Bv)}table(e,t,i){return t?this._getLogFunction(e,t,console.table||yv,i&&[i],{tag:Cv(t)}):yv}image({logLevel:e,priority:t,image:i,message:s="",scale:r=1}){return this._shouldLog(e||t)?pv?function({image:e,message:t="",scale:i=1}){if("string"==typeof e){const s=new Image;return s.onload=()=>{const e=mv(s,t,i);console.log(...e)},s.src=e,yv}const s=e.nodeName||"";if("img"===s.toLowerCase())return console.log(...mv(e,t,i)),yv;if("canvas"===s.toLowerCase()){const s=new Image;return s.onload=()=>console.log(...mv(s,t,i)),s.src=e.toDataURL(),yv}return yv}({image:i,message:s,scale:r}):function({image:e,message:t="",scale:i=1}){let s=null;try{s=module.require("asciify-image")}catch(e){}if(s)return()=>s(e,{fit:"box",width:"".concat(Math.round(80*i),"%")}).then((e=>console.log(e)));return yv}({image:i,message:s,scale:r}):yv}settings(){console.table?console.table(this._storage.config):console.log(this._storage.config)}get(e){return this._storage.config[e]}set(e,t){this._storage.updateConfiguration({[e]:t})}time(e,t){return this._getLogFunction(e,t,console.time?console.time:console.info)}timeEnd(e,t){return this._getLogFunction(e,t,console.timeEnd?console.timeEnd:console.info)}timeStamp(e,t){return this._getLogFunction(e,t,console.timeStamp||yv)}group(e,t,i={collapsed:!1}){i=Fv({logLevel:e,message:t,opts:i});const{collapsed:s}=i;return i.method=(s?console.groupCollapsed:console.group)||console.info,this._getLogFunction(i)}groupCollapsed(e,t,i={}){return this.group(e,t,Object.assign({},i,{collapsed:!0}))}groupEnd(e){return this._getLogFunction(e,"",console.groupEnd||yv)}withGroup(e,t,i){this.group(e,t)();try{i()}finally{this.groupEnd(e)()}}trace(){console.trace&&console.trace()}_shouldLog(e){return this.isEnabled()&&this.getLevel()>=Ev(e)}_getLogFunction(e,t,i,s=[],r){if(this._shouldLog(e)){r=Fv({logLevel:e,message:t,args:s,opts:r}),vv(i=i||r.method),r.total=this.getTotal(),r.delta=this.getDelta(),this._deltaTs=bv();const o=r.tag||r.message;if(r.once){if(Pv[o])return yv;Pv[o]=bv()}return t=function(e,t,i){if("string"==typeof t){const s=i.time?function(e,t=8){const i=Math.max(t-e.length,0);return"".concat(" ".repeat(i)).concat(e)}(function(e){let t;return t=e<10?"".concat(e.toFixed(2),"ms"):e<100?"".concat(e.toFixed(1),"ms"):e<1e3?"".concat(e.toFixed(0),"ms"):"".concat((e/1e3).toFixed(2),"s"),t}(i.total)):"";t=i.time?"".concat(e,": ").concat(s," ").concat(t):"".concat(e,": ").concat(t),t=function(e,t,i){return pv||"string"!=typeof e||(t&&(t=_v(t),e="[".concat(t,"m").concat(e,"")),i&&(t=_v(i),e="[".concat(i+10,"m").concat(e,""))),e}(t,i.color,i.background)}return t}(this.id,r.message,r),i.bind(console,t,...r.args)}return yv}}function Ev(e){if(!e)return 0;let t;switch(typeof e){case"number":t=e;break;case"object":t=e.logLevel||e.priority||0;break;default:return 0}return vv(Number.isFinite(t)&&t>=0),t}function Fv(e){const{logLevel:t,message:i}=e;e.logLevel=Ev(t);const s=e.args?Array.from(e.args):[];for(;s.length&&s.shift()!==i;);switch(e.args=s,typeof t){case"string":case"function":void 0!==i&&s.unshift(i),e.message=t;break;case"object":Object.assign(e,t)}"function"==typeof e.message&&(e.message=e.message());const r=typeof e.message;return vv("string"===r||"object"===r),Object.assign(e,e.opts)}Mv.VERSION=dv,new Mv({id:"loaders.gl"});function Iv(){return!("object"==typeof process&&"[object process]"===String(process)&&!process.browser)||function(e){if("undefined"!=typeof window&&"object"==typeof window.process&&"renderer"===window.process.type)return!0;if("undefined"!=typeof process&&"object"==typeof process.versions&&Boolean(process.versions.electron))return!0;const t="object"==typeof navigator&&"string"==typeof navigator.userAgent&&navigator.userAgent,i=e||t;return!!(i&&i.indexOf("Electron")>=0)}()}new class{constructor(){Z_(this,"console",void 0),this.console=console}log(...e){return this.console.log.bind(this.console,...e)}info(...e){return this.console.info.bind(this.console,...e)}warn(...e){return this.console.warn.bind(this.console,...e)}error(...e){return this.console.error.bind(this.console,...e)}};const Dv={self:"undefined"!=typeof self&&self,window:"undefined"!=typeof window&&window,global:"undefined"!=typeof global&&global,document:"undefined"!=typeof document&&document,process:"object"==typeof process&&process},Sv=Dv.window||Dv.self||Dv.global,Tv=Dv.process||{},Rv="undefined"!=typeof __VERSION__?__VERSION__:"untranspiled source";Iv();class Lv{constructor(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"sessionStorage";Z_(this,"storage",void 0),Z_(this,"id",void 0),Z_(this,"config",{}),this.storage=function(e){try{const t=window[e],i="__storage_test__";return t.setItem(i,i),t.removeItem(i),t}catch(e){return null}}(i),this.id=e,this.config={},Object.assign(this.config,t),this._loadConfiguration()}getConfiguration(){return this.config}setConfiguration(e){return this.config={},this.updateConfiguration(e)}updateConfiguration(e){if(Object.assign(this.config,e),this.storage){const e=JSON.stringify(this.config);this.storage.setItem(this.id,e)}return this}_loadConfiguration(){let e={};if(this.storage){const t=this.storage.getItem(this.id);e=t?JSON.parse(t):{}}return Object.assign(this.config,e),this}}function Uv(e,t,i){let s=arguments.length>3&&void 0!==arguments[3]?arguments[3]:600;const r=e.src.replace(/\(/g,"%28").replace(/\)/g,"%29");e.width>s&&(i=Math.min(i,s/e.width));const o=e.width*i,n=e.height*i,a=["font-size:1px;","padding:".concat(Math.floor(n/2),"px ").concat(Math.floor(o/2),"px;"),"line-height:".concat(n,"px;"),"background:url(".concat(r,");"),"background-size:".concat(o,"px ").concat(n,"px;"),"color:transparent;"].join("");return["".concat(t," %c+"),a]}let kv;function Ov(e){return"string"==typeof e?kv[e.toUpperCase()]||kv.WHITE:e}function Nv(e,t){if(!e)throw new Error(t||"Assertion failed")}function Qv(){let e;var t,i;if(Iv&&"performance"in Sv)e=null==Sv||null===(t=Sv.performance)||void 0===t||null===(i=t.now)||void 0===i?void 0:i.call(t);else if("hrtime"in Tv){var s;const t=null==Tv||null===(s=Tv.hrtime)||void 0===s?void 0:s.call(Tv);e=1e3*t[0]+t[1]/1e6}else e=Date.now();return e}!function(e){e[e.BLACK=30]="BLACK",e[e.RED=31]="RED",e[e.GREEN=32]="GREEN",e[e.YELLOW=33]="YELLOW",e[e.BLUE=34]="BLUE",e[e.MAGENTA=35]="MAGENTA",e[e.CYAN=36]="CYAN",e[e.WHITE=37]="WHITE",e[e.BRIGHT_BLACK=90]="BRIGHT_BLACK",e[e.BRIGHT_RED=91]="BRIGHT_RED",e[e.BRIGHT_GREEN=92]="BRIGHT_GREEN",e[e.BRIGHT_YELLOW=93]="BRIGHT_YELLOW",e[e.BRIGHT_BLUE=94]="BRIGHT_BLUE",e[e.BRIGHT_MAGENTA=95]="BRIGHT_MAGENTA",e[e.BRIGHT_CYAN=96]="BRIGHT_CYAN",e[e.BRIGHT_WHITE=97]="BRIGHT_WHITE"}(kv||(kv={}));const Vv={debug:Iv&&console.debug||console.log,log:console.log,info:console.info,warn:console.warn,error:console.error},jv={enabled:!0,level:0};function Hv(){}const zv={},Gv={once:!0};class Wv{constructor(){let{id:e}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{id:""};Z_(this,"id",void 0),Z_(this,"VERSION",Rv),Z_(this,"_startTs",Qv()),Z_(this,"_deltaTs",Qv()),Z_(this,"_storage",void 0),Z_(this,"userData",{}),Z_(this,"LOG_THROTTLE_TIMEOUT",0),this.id=e,this._storage=new Lv("__probe-".concat(this.id,"__"),jv),this.userData={},this.timeStamp("".concat(this.id," started")),function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:["constructor"];const i=Object.getPrototypeOf(e),s=Object.getOwnPropertyNames(i);for(const i of s)"function"==typeof e[i]&&(t.find((e=>i===e))||(e[i]=e[i].bind(e)))}(this),Object.seal(this)}set level(e){this.setLevel(e)}get level(){return this.getLevel()}isEnabled(){return this._storage.config.enabled}getLevel(){return this._storage.config.level}getTotal(){return Number((Qv()-this._startTs).toPrecision(10))}getDelta(){return Number((Qv()-this._deltaTs).toPrecision(10))}set priority(e){this.level=e}get priority(){return this.level}getPriority(){return this.level}enable(){let e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];return this._storage.updateConfiguration({enabled:e}),this}setLevel(e){return this._storage.updateConfiguration({level:e}),this}get(e){return this._storage.config[e]}set(e,t){this._storage.updateConfiguration({[e]:t})}settings(){console.table?console.table(this._storage.config):console.log(this._storage.config)}assert(e,t){Nv(e,t)}warn(e){return this._getLogFunction(0,e,Vv.warn,arguments,Gv)}error(e){return this._getLogFunction(0,e,Vv.error,arguments)}deprecated(e,t){return this.warn("`".concat(e,"` is deprecated and will be removed in a later version. Use `").concat(t,"` instead"))}removed(e,t){return this.error("`".concat(e,"` has been removed. Use `").concat(t,"` instead"))}probe(e,t){return this._getLogFunction(e,t,Vv.log,arguments,{time:!0,once:!0})}log(e,t){return this._getLogFunction(e,t,Vv.debug,arguments)}info(e,t){return this._getLogFunction(e,t,console.info,arguments)}once(e,t){for(var i=arguments.length,s=new Array(i>2?i-2:0),r=2;r{const t=Uv(e,i,s);console.log(...t)},e.src=t,Hv}const r=t.nodeName||"";if("img"===r.toLowerCase())return console.log(...Uv(t,i,s)),Hv;if("canvas"===r.toLowerCase()){const e=new Image;return e.onload=()=>console.log(...Uv(e,i,s)),e.src=t.toDataURL(),Hv}return Hv}({image:s,message:r,scale:o}):function(e){let{image:t,message:i="",scale:s=1}=e,r=null;try{r=module.require("asciify-image")}catch(e){}if(r)return()=>r(t,{fit:"box",width:"".concat(Math.round(80*s),"%")}).then((e=>console.log(e)));return Hv}({image:s,message:r,scale:o}):Hv}time(e,t){return this._getLogFunction(e,t,console.time?console.time:console.info)}timeEnd(e,t){return this._getLogFunction(e,t,console.timeEnd?console.timeEnd:console.info)}timeStamp(e,t){return this._getLogFunction(e,t,console.timeStamp||Hv)}group(e,t){let i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{collapsed:!1};const s=Xv({logLevel:e,message:t,opts:i}),{collapsed:r}=i;return s.method=(r?console.groupCollapsed:console.group)||console.info,this._getLogFunction(s)}groupCollapsed(e,t){let i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.group(e,t,Object.assign({},i,{collapsed:!0}))}groupEnd(e){return this._getLogFunction(e,"",console.groupEnd||Hv)}withGroup(e,t,i){this.group(e,t)();try{i()}finally{this.groupEnd(e)()}}trace(){console.trace&&console.trace()}_shouldLog(e){return this.isEnabled()&&this.getLevel()>=Kv(e)}_getLogFunction(e,t,i,s,r){if(this._shouldLog(e)){r=Xv({logLevel:e,message:t,args:s,opts:r}),Nv(i=i||r.method),r.total=this.getTotal(),r.delta=this.getDelta(),this._deltaTs=Qv();const o=r.tag||r.message;if(r.once){if(zv[o])return Hv;zv[o]=Qv()}return t=function(e,t,i){if("string"==typeof t){const s=i.time?function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:8;const i=Math.max(t-e.length,0);return"".concat(" ".repeat(i)).concat(e)}(function(e){let t;return t=e<10?"".concat(e.toFixed(2),"ms"):e<100?"".concat(e.toFixed(1),"ms"):e<1e3?"".concat(e.toFixed(0),"ms"):"".concat((e/1e3).toFixed(2),"s"),t}(i.total)):"";t=i.time?"".concat(e,": ").concat(s," ").concat(t):"".concat(e,": ").concat(t),t=function(e,t,i){return Iv||"string"!=typeof e||(t&&(t=Ov(t),e="[".concat(t,"m").concat(e,"")),i&&(t=Ov(i),e="[".concat(i+10,"m").concat(e,""))),e}(t,i.color,i.background)}return t}(this.id,r.message,r),i.bind(console,t,...r.args)}return Hv}}function Kv(e){if(!e)return 0;let t;switch(typeof e){case"number":t=e;break;case"object":t=e.logLevel||e.priority||0;break;default:return 0}return Nv(Number.isFinite(t)&&t>=0),t}function Xv(e){const{logLevel:t,message:i}=e;e.logLevel=Kv(t);const s=e.args?Array.from(e.args):[];for(;s.length&&s.shift()!==i;);switch(typeof t){case"string":case"function":void 0!==i&&s.unshift(i),e.message=t;break;case"object":Object.assign(e,t)}"function"==typeof e.message&&(e.message=e.message());const r=typeof e.message;return Nv("string"===r||"object"===r),Object.assign(e,{args:s},e.opts)}function Yv(e){for(const t in e)for(const i in e[t])return i||"untitled";return"empty"}var qv,Zv,Jv,$v,eb,tb,ib,sb,rb;let ob;Z_(Wv,"VERSION",Rv),new Wv({id:"loaders.gl"}),(rb=qv||(qv={}))[rb.NONE=0]="NONE",rb[rb.BASISLZ=1]="BASISLZ",rb[rb.ZSTD=2]="ZSTD",rb[rb.ZLIB=3]="ZLIB",function(e){e[e.BASICFORMAT=0]="BASICFORMAT"}(Zv||(Zv={})),function(e){e[e.UNSPECIFIED=0]="UNSPECIFIED",e[e.ETC1S=163]="ETC1S",e[e.UASTC=166]="UASTC"}(Jv||(Jv={})),function(e){e[e.UNSPECIFIED=0]="UNSPECIFIED",e[e.SRGB=1]="SRGB"}($v||($v={})),function(e){e[e.UNSPECIFIED=0]="UNSPECIFIED",e[e.LINEAR=1]="LINEAR",e[e.SRGB=2]="SRGB",e[e.ITU=3]="ITU",e[e.NTSC=4]="NTSC",e[e.SLOG=5]="SLOG",e[e.SLOG2=6]="SLOG2"}(eb||(eb={})),function(e){e[e.ALPHA_STRAIGHT=0]="ALPHA_STRAIGHT",e[e.ALPHA_PREMULTIPLIED=1]="ALPHA_PREMULTIPLIED"}(tb||(tb={})),function(e){e[e.RGB=0]="RGB",e[e.RRR=3]="RRR",e[e.GGG=4]="GGG",e[e.AAA=15]="AAA"}(ib||(ib={})),function(e){e[e.RGB=0]="RGB",e[e.RGBA=3]="RGBA",e[e.RRR=4]="RRR",e[e.RRRG=5]="RRRG"}(sb||(sb={})),function(e){e[e.NONE=0]="NONE",e[e.Null=1]="Null",e[e.Int=2]="Int",e[e.Float=3]="Float",e[e.Binary=4]="Binary",e[e.Utf8=5]="Utf8",e[e.Bool=6]="Bool",e[e.Decimal=7]="Decimal",e[e.Date=8]="Date",e[e.Time=9]="Time",e[e.Timestamp=10]="Timestamp",e[e.Interval=11]="Interval",e[e.List=12]="List",e[e.Struct=13]="Struct",e[e.Union=14]="Union",e[e.FixedSizeBinary=15]="FixedSizeBinary",e[e.FixedSizeList=16]="FixedSizeList",e[e.Map=17]="Map",e[e.Dictionary=-1]="Dictionary",e[e.Int8=-2]="Int8",e[e.Int16=-3]="Int16",e[e.Int32=-4]="Int32",e[e.Int64=-5]="Int64",e[e.Uint8=-6]="Uint8",e[e.Uint16=-7]="Uint16",e[e.Uint32=-8]="Uint32",e[e.Uint64=-9]="Uint64",e[e.Float16=-10]="Float16",e[e.Float32=-11]="Float32",e[e.Float64=-12]="Float64",e[e.DateDay=-13]="DateDay",e[e.DateMillisecond=-14]="DateMillisecond",e[e.TimestampSecond=-15]="TimestampSecond",e[e.TimestampMillisecond=-16]="TimestampMillisecond",e[e.TimestampMicrosecond=-17]="TimestampMicrosecond",e[e.TimestampNanosecond=-18]="TimestampNanosecond",e[e.TimeSecond=-19]="TimeSecond",e[e.TimeMillisecond=-20]="TimeMillisecond",e[e.TimeMicrosecond=-21]="TimeMicrosecond",e[e.TimeNanosecond=-22]="TimeNanosecond",e[e.DenseUnion=-23]="DenseUnion",e[e.SparseUnion=-24]="SparseUnion",e[e.IntervalDayTime=-25]="IntervalDayTime",e[e.IntervalYearMonth=-26]="IntervalYearMonth"}(ob||(ob={}));const nb={DEFAULT:{}};function ab(e,t,i={}){const s="lightgrey",r=i.hoverColor||"rgba(0,0,0,0.4)",o=i.textColor||"black",n=500,a=n+n/3,l=a/24,A=[{boundary:[6,6,6,6],color:i.frontColor||i.color||"#55FF55"},{boundary:[18,6,6,6],color:i.backColor||i.color||"#55FF55"},{boundary:[12,6,6,6],color:i.rightColor||i.color||"#FF5555"},{boundary:[0,6,6,6],color:i.leftColor||i.color||"#FF5555"},{boundary:[6,0,6,6],color:i.topColor||i.color||"#7777FF"},{boundary:[6,12,6,6],color:i.bottomColor||i.color||"#7777FF"}],h=[{label:"NavCube.front",boundaries:[[7,7,4,4]],dir:[0,1,0],up:[0,0,1]},{label:"NavCube.back",boundaries:[[19,7,4,4]],dir:[0,-1,0],up:[0,0,1]},{label:"NavCube.right",boundaries:[[13,7,4,4]],dir:[-1,0,0],up:[0,0,1]},{label:"NavCube.left",boundaries:[[1,7,4,4]],dir:[1,0,0],up:[0,0,1]},{label:"NavCube.top",boundaries:[[7,1,4,4]],dir:[0,0,-1],up:[0,1,0]},{label:"NavCube.bottom",boundaries:[[7,13,4,4]],dir:[0,0,1],up:[0,-1,0]},{boundaries:[[7,5,4,2]],dir:[0,1,-1],up:[0,1,1]},{boundaries:[[1,6,4,1],[6,1,1,4]],dir:[1,0,-1],up:[1,0,1]},{boundaries:[[7,0,4,1],[19,6,4,1]],dir:[0,-1,-1],up:[0,-1,1]},{boundaries:[[13,6,4,1],[11,1,1,4]],dir:[-1,0,-1],up:[-1,0,1]},{boundaries:[[7,11,4,2]],dir:[0,1,1],up:[0,-1,1]},{boundaries:[[1,11,4,1],[6,13,1,4]],dir:[1,0,1],up:[-1,0,1]},{boundaries:[[7,17,4,1],[19,11,4,1]],dir:[0,-1,1],up:[0,1,1]},{boundaries:[[13,11,4,1],[11,13,1,4]],dir:[-1,0,1],up:[1,0,1]},{boundaries:[[5,7,2,4]],dir:[1,1,0],up:[0,0,1]},{boundaries:[[11,7,2,4]],dir:[-1,1,0],up:[0,0,1]},{boundaries:[[17,7,2,4]],dir:[-1,-1,0],up:[0,0,1]},{boundaries:[[0,7,1,4],[23,7,1,4]],dir:[1,-1,0],up:[0,0,1]},{boundaries:[[5,11,2,2]],dir:[1,1,1],up:[-1,-1,1]},{boundaries:[[23,11,1,1],[6,17,1,1],[0,11,1,1]],dir:[1,-1,1],up:[-1,1,1]},{boundaries:[[5,5,2,2]],dir:[1,1,-1],up:[1,1,1]},{boundaries:[[11,17,1,1],[17,11,2,1]],dir:[-1,-1,1],up:[1,1,1]},{boundaries:[[17,6,2,1],[11,0,1,1]],dir:[-1,-1,-1],up:[-1,-1,1]},{boundaries:[[11,11,2,2]],dir:[-1,1,1],up:[1,-1,1]},{boundaries:[[0,6,1,1],[6,0,1,1],[23,6,1,1]],dir:[1,-1,-1],up:[1,-1,1]},{boundaries:[[11,5,2,2]],dir:[-1,1,-1],up:[-1,1,1]}];i.frontColor||i.color,i.backColor||i.color,i.rightColor||i.color,i.leftColor||i.color,i.topColor||i.color,i.bottomColor||i.color;const c=[{yUp:"",label:"NavCube.front",boundaries:[[7,7,4,4]],dir:[0,0,-1],up:[0,1,0]},{label:"NavCube.back",boundaries:[[19,7,4,4]],dir:[0,0,1],up:[0,1,0]},{label:"NavCube.right",boundaries:[[13,7,4,4]],dir:[-1,0,0],up:[0,1,0]},{label:"NavCube.left",boundaries:[[1,7,4,4]],dir:[1,0,0],up:[0,1,0]},{label:"NavCube.top",boundaries:[[7,1,4,4]],dir:[0,-1,0],up:[0,0,-1]},{label:"NavCube.bottom",boundaries:[[7,13,4,4]],dir:[0,1,0],up:[0,0,1]},{boundaries:[[7,5,4,2]],dir:[0,-.7071,-.7071],up:[0,.7071,-.7071]},{boundaries:[[1,6,4,1],[6,1,1,4]],dir:[1,-1,0],up:[1,1,0]},{boundaries:[[7,0,4,1],[19,6,4,1]],dir:[0,-.7071,.7071],up:[0,.7071,.7071]},{boundaries:[[13,6,4,1],[11,1,1,4]],dir:[-1,-1,0],up:[-1,1,0]},{boundaries:[[7,11,4,2]],dir:[0,1,-1],up:[0,1,1]},{boundaries:[[1,11,4,1],[6,13,1,4]],dir:[1,1,0],up:[-1,1,0]},{boundaries:[[7,17,4,1],[19,11,4,1]],dir:[0,1,1],up:[0,1,-1]},{boundaries:[[13,11,4,1],[11,13,1,4]],dir:[-1,1,0],up:[1,1,0]},{boundaries:[[5,7,2,4]],dir:[1,0,-1],up:[0,1,0]},{boundaries:[[11,7,2,4]],dir:[-1,0,-1],up:[0,1,0]},{boundaries:[[17,7,2,4]],dir:[-1,0,1],up:[0,1,0]},{boundaries:[[0,7,1,4],[23,7,1,4]],dir:[1,0,1],up:[0,1,0]},{boundaries:[[5,11,2,2]],dir:[.5,.7071,-.5],up:[-.5,.7071,.5]},{boundaries:[[23,11,1,1],[6,17,1,1],[0,11,1,1]],dir:[.5,.7071,.5],up:[-.5,.7071,-.5]},{boundaries:[[5,5,2,2]],dir:[.5,-.7071,-.5],up:[.5,.7071,-.5]},{boundaries:[[11,17,1,1],[17,11,2,1]],dir:[-.5,.7071,.5],up:[.5,.7071,-.5]},{boundaries:[[17,6,2,1],[11,0,1,1]],dir:[-.5,-.7071,.5],up:[-.5,.7071,.5]},{boundaries:[[11,11,2,2]],dir:[-.5,.7071,-.5],up:[.5,.7071,.5]},{boundaries:[[0,6,1,1],[6,0,1,1],[23,6,1,1]],dir:[.5,-.7071,.5],up:[.5,.7071,.5]},{boundaries:[[11,5,2,2]],dir:[-.5,-.7071,-.5],up:[-.5,.7071,-.5]}];for(let e=0,t=h.length;e=r[0]*l&&t<=(r[0]+r[2])*l&&i>=r[1]*l&&i<=(r[1]+r[3])*l)return s}}return-1},this.setAreaHighlighted=function(e,t){var i=u[e];if(!i)throw"Area not found: "+e;i.highlighted=!!t,m()},this.getAreaDir=function(e){var t=u[e];if(!t)throw"Unknown area: "+e;return t.dir},this.getAreaUp=function(e){var t=u[e];if(!t)throw"Unknown area: "+e;return t.up},this.getImage=function(){return this._textureCanvas},this.destroy=function(){this._textureCanvas&&(this._textureCanvas.parentNode.removeChild(this._textureCanvas),this._textureCanvas=null)}}const lb=d.vec3(),Ab=d.vec3();d.mat4();class hb extends Q{constructor(e,t={}){super("NavCube",e,t),e.navCube=this;try{this._navCubeScene=new qt(e,{canvasId:t.canvasId,canvasElement:t.canvasElement,transparent:!0}),this._navCubeCanvas=this._navCubeScene.canvas.canvas,this._navCubeScene.input.keyboardEnabled=!1}catch(e){return void this.error(e)}const i=this._navCubeScene;i.clearLights(),new vt(i,{dir:[.4,-.4,.8],color:[.8,1,1],intensity:1,space:"view"}),new vt(i,{dir:[-.8,-.3,-.4],color:[.8,.8,.8],intensity:1,space:"view"}),new vt(i,{dir:[.8,-.6,-.8],color:[1,1,1],intensity:1,space:"view"}),this._navCubeCamera=i.camera,this._navCubeCamera.ortho.scale=7,this._navCubeCamera.ortho.near=.1,this._navCubeCamera.ortho.far=2e3,i.edgeMaterial.edgeColor=[.2,.2,.2],i.edgeMaterial.edgeAlpha=.6,this._zUp=Boolean(e.camera.zUp);var s=this;this.setIsProjectNorth(t.isProjectNorth),this.setProjectNorthOffsetAngle(t.projectNorthOffsetAngle);const r=function(){const e=d.mat4();return function(t,i,r){return d.identityMat4(e),d.rotationMat4v(t*s._projectNorthOffsetAngle*d.DEGTORAD,[0,1,0],e),d.transformVec3(e,i,r)}}();this._synchCamera=function(){var t=d.rotationMat4c(-90*d.DEGTORAD,1,0,0),i=d.vec3(),o=d.vec3(),n=d.vec3();return function(){var a=e.camera.eye,l=e.camera.look,A=e.camera.up;i=d.mulVec3Scalar(d.normalizeVec3(d.subVec3(a,l,i)),5),s._isProjectNorth&&s._projectNorthOffsetAngle&&(i=r(-1,i,lb),A=r(-1,A,Ab)),s._zUp?(d.transformVec3(t,i,o),d.transformVec3(t,A,n),s._navCubeCamera.look=[0,0,0],s._navCubeCamera.eye=d.transformVec3(t,i,o),s._navCubeCamera.up=d.transformPoint3(t,A,n)):(s._navCubeCamera.look=[0,0,0],s._navCubeCamera.eye=i,s._navCubeCamera.up=A)}}(),this._cubeTextureCanvas=new ab(e,i,t),this._cubeSampler=new Ts(i,{image:this._cubeTextureCanvas.getImage(),flipY:!0,wrapS:Jt,wrapT:Jt}),this._cubeMesh=new hs(i,{geometry:new St(i,{primitive:"triangles",normals:[0,0,1,0,0,1,0,0,1,0,0,1,1,0,0,1,0,0,1,0,0,1,0,0,0,1,0,0,1,0,0,1,0,0,1,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,0,-1,0,0,-1,0,0,-1,0,0,-1],positions:[1,1,1,-1,1,1,-1,-1,1,1,-1,1,1,1,1,1,-1,1,1,-1,-1,1,1,-1,1,1,1,1,1,-1,-1,1,-1,-1,1,1,-1,1,1,-1,1,-1,-1,-1,-1,-1,-1,1,-1,-1,-1,1,-1,-1,1,-1,1,-1,-1,1,1,-1,-1,-1,-1,-1,-1,1,-1,1,1,-1],uv:[.5,.6666,.25,.6666,.25,.3333,.5,.3333,.5,.6666,.5,.3333,.75,.3333,.75,.6666,.5,.6666,.5,1,.25,1,.25,.6666,.25,.6666,0,.6666,0,.3333,.25,.3333,.25,0,.5,0,.5,.3333,.25,.3333,.75,.3333,1,.3333,1,.6666,.75,.6666],indices:[0,1,2,0,2,3,4,5,6,4,6,7,8,9,10,8,10,11,12,13,14,12,14,15,16,17,18,16,18,19,20,21,22,20,22,23]}),material:new kt(i,{diffuse:[.4,.4,.4],specular:[.4,.4,.4],emissive:[.6,.6,.6],diffuseMap:this._cubeSampler,emissiveMap:this._cubeSampler}),visible:!0,edges:!0}),this._shadow=!1===t.shadowVisible?null:new hs(i,{geometry:new St(i,us({center:[0,0,0],radiusTop:.001,radiusBottom:1.4,height:.01,radialSegments:20,heightSegments:1,openEnded:!0})),material:new kt(i,{diffuse:[0,0,0],specular:[0,0,0],emissive:[0,0,0],alpha:.5}),position:[0,-1.5,0],visible:!0,pickable:!1,backfaces:!1}),this._onCameraMatrix=e.camera.on("matrix",this._synchCamera),this._onCameraWorldAxis=e.camera.on("worldAxis",(()=>{e.camera.zUp?(this._zUp=!0,this._cubeTextureCanvas.setZUp(),this._repaint(),this._synchCamera()):e.camera.yUp&&(this._zUp=!1,this._cubeTextureCanvas.setYUp(),this._repaint(),this._synchCamera())})),this._onCameraFOV=e.camera.perspective.on("fov",(e=>{this._synchProjection&&(this._navCubeCamera.perspective.fov=e)})),this._onCameraProjection=e.camera.on("projection",(e=>{this._synchProjection&&(this._navCubeCamera.projection="ortho"===e||"perspective"===e?e:"perspective")}));var o=-1;function n(e){var t=[0,0];if(e){for(var i=e.target,s=0,r=0;i.offsetParent;)s+=i.offsetLeft,r+=i.offsetTop,i=i.offsetParent;t[0]=e.pageX-s,t[1]=e.pageY-r}else e=window.event,t[0]=e.x,t[1]=e.y;return t}var a,l,A=null,h=null,c=!1,u=!1,p=.5;s._navCubeCanvas.addEventListener("mouseenter",s._onMouseEnter=function(e){u=!0}),s._navCubeCanvas.addEventListener("mouseleave",s._onMouseLeave=function(e){u=!1}),s._navCubeCanvas.addEventListener("mousedown",s._onMouseDown=function(e){if(1===e.which){A=e.x,h=e.y,a=e.clientX,l=e.clientY;var t=n(e),s=i.pick({canvasPos:t});c=!!s}}),document.addEventListener("mouseup",s._onMouseUp=function(e){if(1===e.which&&(c=!1,null!==A)){var t=n(e),a=i.pick({canvasPos:t,pickSurface:!0});if(a&&a.uv){var l=s._cubeTextureCanvas.getArea(a.uv);if(l>=0&&(document.body.style.cursor="pointer",o>=0&&(s._cubeTextureCanvas.setAreaHighlighted(o,!1),s._repaint(),o=-1),l>=0)){if(s._cubeTextureCanvas.setAreaHighlighted(l,!0),o=l,s._repaint(),e.xA+3||e.yh+3)return;var u=s._cubeTextureCanvas.getAreaDir(l);if(u){var d=s._cubeTextureCanvas.getAreaUp(l);s._isProjectNorth&&s._projectNorthOffsetAngle&&(u=r(1,u,lb),d=r(1,d,Ab)),g(u,d,(function(){o>=0&&(s._cubeTextureCanvas.setAreaHighlighted(o,!1),s._repaint(),o=-1),document.body.style.cursor="pointer",o>=0&&(s._cubeTextureCanvas.setAreaHighlighted(o,!1),s._repaint(),o=-1),l>=0&&(s._cubeTextureCanvas.setAreaHighlighted(l,!1),o=-1,s._repaint())}))}}}}}),document.addEventListener("mousemove",s._onMouseMove=function(t){if(o>=0&&(s._cubeTextureCanvas.setAreaHighlighted(o,!1),s._repaint(),o=-1),1!==t.buttons||c){if(c){var r=t.clientX,A=t.clientY;return document.body.style.cursor="move",void function(t,i){var s=(t-a)*-p,r=(i-l)*-p;e.camera.orbitYaw(s),e.camera.orbitPitch(-r),a=t,l=i}(r,A)}if(u){var h=n(t),d=i.pick({canvasPos:h,pickSurface:!0});if(d){if(d.uv){document.body.style.cursor="pointer";var g=s._cubeTextureCanvas.getArea(d.uv);if(g===o)return;o>=0&&s._cubeTextureCanvas.setAreaHighlighted(o,!1),g>=0&&(s._cubeTextureCanvas.setAreaHighlighted(g,!0),s._repaint(),o=g)}}else document.body.style.cursor="default",o>=0&&(s._cubeTextureCanvas.setAreaHighlighted(o,!1),s._repaint(),o=-1)}}});var g=function(){var t=d.vec3();return function(i,r,o){var n=s._fitVisible?e.scene.getAABB(e.scene.visibleObjectIds):e.scene.aabb,a=d.getAABB3Diag(n);d.getAABB3Center(n,t);var l=Math.abs(a/Math.tan(s._cameraFitFOV*d.DEGTORAD));e.cameraControl.pivotPos=t,s._cameraFly?e.cameraFlight.flyTo({look:t,eye:[t[0]-l*i[0],t[1]-l*i[1],t[2]-l*i[2]],up:r||[0,1,0],orthoScale:1.1*a,fitFOV:s._cameraFitFOV,duration:s._cameraFlyDuration},o):e.cameraFlight.jumpTo({look:t,eye:[t[0]-l*i[0],t[1]-l*i[1],t[2]-l*i[2]],up:r||[0,1,0],orthoScale:1.1*a,fitFOV:s._cameraFitFOV},o)}}();this._onUpdated=e.localeService.on("updated",(()=>{this._cubeTextureCanvas.clear(),this._repaint()})),this.setVisible(t.visible),this.setCameraFitFOV(t.cameraFitFOV),this.setCameraFly(t.cameraFly),this.setCameraFlyDuration(t.cameraFlyDuration),this.setFitVisible(t.fitVisible),this.setSynchProjection(t.synchProjection)}send(e,t){if("language"===e)this._cubeTextureCanvas.clear(),this._repaint()}_repaint(){const e=this._cubeTextureCanvas.getImage();this._cubeMesh.material.diffuseMap.image=e,this._cubeMesh.material.emissiveMap.image=e}setVisible(e=!0){this._navCubeCanvas&&(this._cubeMesh.visible=e,this._shadow&&(this._shadow.visible=e),this._navCubeCanvas.style.visibility=e?"visible":"hidden")}getVisible(){return!!this._navCubeCanvas&&this._cubeMesh.visible}setFitVisible(e=!1){this._fitVisible=e}getFitVisible(){return this._fitVisible}setCameraFly(e=!0){this._cameraFly=e}getCameraFly(){return this._cameraFly}setCameraFitFOV(e=45){this._cameraFitFOV=e}getCameraFitFOV(){return this._cameraFitFOV}setCameraFlyDuration(e=.5){this._cameraFlyDuration=e}getCameraFlyDuration(){return this._cameraFlyDuration}setSynchProjection(e=!1){this._synchProjection=e}getSynchProjection(){return this._synchProjection}setIsProjectNorth(e=!1){this._isProjectNorth=e}getIsProjectNorth(){return this._isProjectNorth}setProjectNorthOffsetAngle(e){this._projectNorthOffsetAngle=e}getProjectNorthOffsetAngle(){return this._projectNorthOffsetAngle}destroy(){this._navCubeCanvas&&(this.viewer.localeService.off(this._onUpdated),this.viewer.camera.off(this._onCameraMatrix),this.viewer.camera.off(this._onCameraWorldAxis),this.viewer.camera.perspective.off(this._onCameraFOV),this.viewer.camera.off(this._onCameraProjection),this._navCubeCanvas.removeEventListener("mouseenter",this._onMouseEnter),this._navCubeCanvas.removeEventListener("mouseleave",this._onMouseLeave),this._navCubeCanvas.removeEventListener("mousedown",this._onMouseDown),document.removeEventListener("mousemove",this._onMouseMove),document.removeEventListener("mouseup",this._onMouseUp),this._navCubeCanvas=null,this._cubeTextureCanvas.destroy(),this._cubeTextureCanvas=null,this._onMouseEnter=null,this._onMouseLeave=null,this._onMouseDown=null,this._onMouseMove=null,this._onMouseUp=null),this._navCubeScene.destroy(),this._navCubeScene=null,this._cubeMesh=null,this._shadow=null,super.destroy()}}d.vec3();const cb=new Float64Array([0,0,1]),ub=new Float64Array(4);class db{constructor(e){this.id=null,this._viewer=e.viewer,this._visible=!1,this._pos=d.vec3(),this._origin=d.vec3(),this._rtcPos=d.vec3(),this._baseDir=d.vec3(),this._rootNode=null,this._displayMeshes=null,this._affordanceMeshes=null,this._ignoreNextSectionPlaneDirUpdate=!1,this._createNodes(),this._bindEvents()}_setSectionPlane(e){this._sectionPlane&&(this._sectionPlane.off(this._onSectionPlanePos),this._sectionPlane.off(this._onSectionPlaneDir),this._onSectionPlanePos=null,this._onSectionPlaneDir=null,this._sectionPlane=null),e&&(this.id=e.id,this._setPos(e.pos),this._setDir(e.dir),this._sectionPlane=e,this._onSectionPlanePos=e.on("pos",(()=>{this._setPos(this._sectionPlane.pos)})),this._onSectionPlaneDir=e.on("dir",(()=>{this._ignoreNextSectionPlaneDirUpdate?this._ignoreNextSectionPlaneDirUpdate=!1:this._setDir(this._sectionPlane.dir)})))}get sectionPlane(){return this._sectionPlane}_setPos(e){this._pos.set(e),H(this._pos,this._origin,this._rtcPos),this._rootNode.origin=this._origin,this._rootNode.position=this._rtcPos}_setDir(e){this._baseDir.set(e),this._rootNode.quaternion=d.vec3PairToQuaternion(cb,e,ub)}_setSectionPlaneDir(e){this._sectionPlane&&(this._ignoreNextSectionPlaneDirUpdate=!0,this._sectionPlane.dir=e)}setVisible(e=!0){if(this._visible!==e){var t;for(t in this._visible=e,this._displayMeshes)this._displayMeshes.hasOwnProperty(t)&&(this._displayMeshes[t].visible=e);if(!e)for(t in this._affordanceMeshes)this._affordanceMeshes.hasOwnProperty(t)&&(this._affordanceMeshes[t].visible=e)}}getVisible(){return this._visible}setCulled(e){var t;for(t in this._displayMeshes)this._displayMeshes.hasOwnProperty(t)&&(this._displayMeshes[t].culled=e);if(!e)for(t in this._affordanceMeshes)this._affordanceMeshes.hasOwnProperty(t)&&(this._affordanceMeshes[t].culled=e)}_createNodes(){const e=!1,t=this._viewer.scene,i=.01;this._rootNode=new Ps(t,{position:[0,0,0],scale:[5,5,5]});const s=this._rootNode,r={arrowHead:new St(s,us({radiusTop:.001,radiusBottom:.07,radialSegments:32,heightSegments:1,height:.2,openEnded:!1})),arrowHeadBig:new St(s,us({radiusTop:.001,radiusBottom:.09,radialSegments:32,heightSegments:1,height:.25,openEnded:!1})),arrowHeadHandle:new St(s,us({radiusTop:.09,radiusBottom:.09,radialSegments:8,heightSegments:1,height:.37,openEnded:!1})),curve:new St(s,Ns({radius:.8,tube:i,radialSegments:64,tubeSegments:14,arc:2*Math.PI/4})),curveHandle:new St(s,Ns({radius:.8,tube:.06,radialSegments:64,tubeSegments:14,arc:2*Math.PI/4})),hoop:new St(s,Ns({radius:.8,tube:i,radialSegments:64,tubeSegments:8,arc:2*Math.PI})),axis:new St(s,us({radiusTop:i,radiusBottom:i,radialSegments:20,heightSegments:1,height:1,openEnded:!1})),axisHandle:new St(s,us({radiusTop:.08,radiusBottom:.08,radialSegments:20,heightSegments:1,height:1,openEnded:!1}))},o={pickable:new kt(s,{diffuse:[1,1,0],alpha:0,alphaMode:"blend"}),red:new kt(s,{diffuse:[1,0,0],emissive:[1,0,0],ambient:[0,0,0],specular:[.6,.6,.3],shininess:80,lineWidth:2}),highlightRed:new Nt(s,{edges:!1,fill:!0,fillColor:[1,0,0],fillAlpha:.6}),green:new kt(s,{diffuse:[0,1,0],emissive:[0,1,0],ambient:[0,0,0],specular:[.6,.6,.3],shininess:80,lineWidth:2}),highlightGreen:new Nt(s,{edges:!1,fill:!0,fillColor:[0,1,0],fillAlpha:.6}),blue:new kt(s,{diffuse:[0,0,1],emissive:[0,0,1],ambient:[0,0,0],specular:[.6,.6,.3],shininess:80,lineWidth:2}),highlightBlue:new Nt(s,{edges:!1,fill:!0,fillColor:[0,0,1],fillAlpha:.2}),center:new kt(s,{diffuse:[0,0,0],emissive:[0,0,0],ambient:[0,0,0],specular:[.6,.6,.3],shininess:80}),highlightBall:new Nt(s,{edges:!1,fill:!0,fillColor:[.5,.5,.5],fillAlpha:.5,vertices:!1}),highlightPlane:new Nt(s,{edges:!0,edgeWidth:3,fill:!1,fillColor:[.5,.5,.5],fillAlpha:.5,vertices:!1})};this._displayMeshes={plane:s.addChild(new hs(s,{geometry:new St(s,{primitive:"triangles",positions:[.5,.5,0,.5,-.5,0,-.5,-.5,0,-.5,.5,0,.5,.5,-0,.5,-.5,-0,-.5,-.5,-0,-.5,.5,-0],indices:[0,1,2,2,3,0]}),material:new kt(s,{emissive:[0,0,0],diffuse:[0,0,0],backfaces:!0}),opacity:.6,ghosted:!0,ghostMaterial:new Nt(s,{edges:!1,filled:!0,fillColor:[1,1,0],edgeColor:[0,0,0],fillAlpha:.1,backfaces:!0}),pickable:!1,collidable:!0,clippable:!1,visible:!1,scale:[2.4,2.4,1]}),e),planeFrame:s.addChild(new hs(s,{geometry:new St(s,Ns({center:[0,0,0],radius:1.7,tube:.02,radialSegments:4,tubeSegments:4,arc:2*Math.PI})),material:new kt(s,{emissive:[0,0,0],diffuse:[0,0,0],specular:[0,0,0],shininess:0}),highlightMaterial:new Nt(s,{edges:!1,edgeColor:[0,0,0],filled:!0,fillColor:[.8,.8,.8],fillAlpha:1}),pickable:!1,collidable:!1,clippable:!1,visible:!1,scale:[1,1,.1],rotation:[0,0,45]}),e),xCurve:s.addChild(new hs(s,{geometry:r.curve,material:o.red,matrix:function(){const e=d.rotationMat4v(90*d.DEGTORAD,[0,1,0],d.identityMat4()),t=d.rotationMat4v(270*d.DEGTORAD,[1,0,0],d.identityMat4());return d.mulMat4(t,e,d.identityMat4())}(),pickable:!1,collidable:!0,clippable:!1,backfaces:!0,visible:!1}),e),xCurveHandle:s.addChild(new hs(s,{geometry:r.curveHandle,material:o.pickable,matrix:function(){const e=d.rotationMat4v(90*d.DEGTORAD,[0,1,0],d.identityMat4()),t=d.rotationMat4v(270*d.DEGTORAD,[1,0,0],d.identityMat4());return d.mulMat4(t,e,d.identityMat4())}(),pickable:!0,collidable:!0,clippable:!1,backfaces:!0,visible:!1}),e),xCurveArrow1:s.addChild(new hs(s,{geometry:r.arrowHead,material:o.red,matrix:function(){const e=d.translateMat4c(0,-.07,-.8,d.identityMat4()),t=d.scaleMat4v([.6,.6,.6],d.identityMat4()),i=d.rotationMat4v(0*d.DEGTORAD,[0,0,1],d.identityMat4());return d.mulMat4(d.mulMat4(e,t,d.identityMat4()),i,d.identityMat4())}(),pickable:!0,collidable:!0,clippable:!1,visible:!1}),e),xCurveArrow2:s.addChild(new hs(s,{geometry:r.arrowHead,material:o.red,matrix:function(){const e=d.translateMat4c(0,-.8,-.07,d.identityMat4()),t=d.scaleMat4v([.6,.6,.6],d.identityMat4()),i=d.rotationMat4v(90*d.DEGTORAD,[1,0,0],d.identityMat4());return d.mulMat4(d.mulMat4(e,t,d.identityMat4()),i,d.identityMat4())}(),pickable:!0,collidable:!0,clippable:!1,visible:!1}),e),yCurve:s.addChild(new hs(s,{geometry:r.curve,material:o.green,rotation:[-90,0,0],pickable:!1,collidable:!0,clippable:!1,backfaces:!0,visible:!1}),e),yCurveHandle:s.addChild(new hs(s,{geometry:r.curveHandle,material:o.pickable,rotation:[-90,0,0],pickable:!0,collidable:!0,clippable:!1,backfaces:!0,visible:!1}),e),yCurveArrow1:s.addChild(new hs(s,{geometry:r.arrowHead,material:o.green,matrix:function(){const e=d.translateMat4c(.07,0,-.8,d.identityMat4()),t=d.scaleMat4v([.6,.6,.6],d.identityMat4()),i=d.rotationMat4v(90*d.DEGTORAD,[0,0,1],d.identityMat4());return d.mulMat4(d.mulMat4(e,t,d.identityMat4()),i,d.identityMat4())}(),pickable:!0,collidable:!0,clippable:!1,visible:!1}),e),yCurveArrow2:s.addChild(new hs(s,{geometry:r.arrowHead,material:o.green,matrix:function(){const e=d.translateMat4c(.8,0,-.07,d.identityMat4()),t=d.scaleMat4v([.6,.6,.6],d.identityMat4()),i=d.rotationMat4v(90*d.DEGTORAD,[1,0,0],d.identityMat4());return d.mulMat4(d.mulMat4(e,t,d.identityMat4()),i,d.identityMat4())}(),pickable:!0,collidable:!0,clippable:!1,visible:!1}),e),zCurve:s.addChild(new hs(s,{geometry:r.curve,material:o.blue,matrix:d.rotationMat4v(180*d.DEGTORAD,[1,0,0],d.identityMat4()),pickable:!1,collidable:!0,clippable:!1,visible:!1}),e),zCurveHandle:s.addChild(new hs(s,{geometry:r.curveHandle,material:o.pickable,matrix:d.rotationMat4v(180*d.DEGTORAD,[1,0,0],d.identityMat4()),pickable:!0,collidable:!0,clippable:!1,visible:!1}),e),zCurveCurveArrow1:s.addChild(new hs(s,{geometry:r.arrowHead,material:o.blue,matrix:function(){const e=d.translateMat4c(.8,-.07,0,d.identityMat4()),t=d.scaleMat4v([.6,.6,.6],d.identityMat4());return d.mulMat4(e,t,d.identityMat4())}(),pickable:!0,collidable:!0,clippable:!1,visible:!1}),e),zCurveArrow2:s.addChild(new hs(s,{geometry:r.arrowHead,material:o.blue,matrix:function(){const e=d.translateMat4c(.05,-.8,0,d.identityMat4()),t=d.scaleMat4v([.6,.6,.6],d.identityMat4()),i=d.rotationMat4v(90*d.DEGTORAD,[0,0,1],d.identityMat4());return d.mulMat4(d.mulMat4(e,t,d.identityMat4()),i,d.identityMat4())}(),pickable:!0,collidable:!0,clippable:!1,visible:!1}),e),center:s.addChild(new hs(s,{geometry:new St(s,ds({radius:.05})),material:o.center,pickable:!1,collidable:!0,clippable:!1,visible:!1}),e),xAxisArrow:s.addChild(new hs(s,{geometry:r.arrowHead,material:o.red,matrix:function(){const e=d.translateMat4c(0,1.1,0,d.identityMat4()),t=d.rotationMat4v(-90*d.DEGTORAD,[0,0,1],d.identityMat4());return d.mulMat4(t,e,d.identityMat4())}(),pickable:!1,collidable:!0,clippable:!1,visible:!1}),e),xAxisArrowHandle:s.addChild(new hs(s,{geometry:r.arrowHeadHandle,material:o.pickable,matrix:function(){const e=d.translateMat4c(0,1.1,0,d.identityMat4()),t=d.rotationMat4v(-90*d.DEGTORAD,[0,0,1],d.identityMat4());return d.mulMat4(t,e,d.identityMat4())}(),pickable:!0,collidable:!0,clippable:!1,visible:!1}),e),xAxis:s.addChild(new hs(s,{geometry:r.axis,material:o.red,matrix:function(){const e=d.translateMat4c(0,.5,0,d.identityMat4()),t=d.rotationMat4v(-90*d.DEGTORAD,[0,0,1],d.identityMat4());return d.mulMat4(t,e,d.identityMat4())}(),pickable:!1,collidable:!0,clippable:!1,visible:!1}),e),xAxisHandle:s.addChild(new hs(s,{geometry:r.axisHandle,material:o.pickable,matrix:function(){const e=d.translateMat4c(0,.5,0,d.identityMat4()),t=d.rotationMat4v(-90*d.DEGTORAD,[0,0,1],d.identityMat4());return d.mulMat4(t,e,d.identityMat4())}(),pickable:!0,collidable:!0,clippable:!1,visible:!1}),e),yAxisArrow:s.addChild(new hs(s,{geometry:r.arrowHead,material:o.green,matrix:function(){const e=d.translateMat4c(0,1.1,0,d.identityMat4()),t=d.rotationMat4v(180*d.DEGTORAD,[1,0,0],d.identityMat4());return d.mulMat4(t,e,d.identityMat4())}(),pickable:!1,collidable:!0,clippable:!1,visible:!1}),e),yAxisArrowHandle:s.addChild(new hs(s,{geometry:r.arrowHeadHandle,material:o.pickable,matrix:function(){const e=d.translateMat4c(0,1.1,0,d.identityMat4()),t=d.rotationMat4v(180*d.DEGTORAD,[1,0,0],d.identityMat4());return d.mulMat4(t,e,d.identityMat4())}(),pickable:!0,collidable:!0,clippable:!1,visible:!1,opacity:.2}),e),yShaft:s.addChild(new hs(s,{geometry:r.axis,material:o.green,position:[0,-.5,0],pickable:!1,collidable:!0,clippable:!1,visible:!1}),e),yShaftHandle:s.addChild(new hs(s,{geometry:r.axisHandle,material:o.pickable,position:[0,-.5,0],pickable:!0,collidable:!0,clippable:!1,visible:!1}),e),zAxisArrow:s.addChild(new hs(s,{geometry:r.arrowHead,material:o.blue,matrix:function(){const e=d.translateMat4c(0,1.1,0,d.identityMat4()),t=d.rotationMat4v(-90*d.DEGTORAD,[.8,0,0],d.identityMat4());return d.mulMat4(t,e,d.identityMat4())}(),pickable:!1,collidable:!0,clippable:!1,visible:!1}),e),zAxisArrowHandle:s.addChild(new hs(s,{geometry:r.arrowHeadHandle,material:o.pickable,matrix:function(){const e=d.translateMat4c(0,1.1,0,d.identityMat4()),t=d.rotationMat4v(-90*d.DEGTORAD,[.8,0,0],d.identityMat4());return d.mulMat4(t,e,d.identityMat4())}(),pickable:!0,collidable:!0,clippable:!1,visible:!1}),e),zShaft:s.addChild(new hs(s,{geometry:r.axis,material:o.blue,matrix:function(){const e=d.translateMat4c(0,.5,0,d.identityMat4()),t=d.rotationMat4v(-90*d.DEGTORAD,[1,0,0],d.identityMat4());return d.mulMat4(t,e,d.identityMat4())}(),clippable:!1,pickable:!1,collidable:!0,visible:!1}),e),zAxisHandle:s.addChild(new hs(s,{geometry:r.axisHandle,material:o.pickable,matrix:function(){const e=d.translateMat4c(0,.5,0,d.identityMat4()),t=d.rotationMat4v(-90*d.DEGTORAD,[1,0,0],d.identityMat4());return d.mulMat4(t,e,d.identityMat4())}(),clippable:!1,pickable:!0,collidable:!0,visible:!1}),e)},this._affordanceMeshes={planeFrame:s.addChild(new hs(s,{geometry:new St(s,Ns({center:[0,0,0],radius:2,tube:i,radialSegments:4,tubeSegments:4,arc:2*Math.PI})),material:new kt(s,{ambient:[1,1,1],diffuse:[0,0,0],emissive:[1,1,0]}),highlighted:!0,highlightMaterial:new Nt(s,{edges:!1,filled:!0,fillColor:[1,1,0],fillAlpha:1}),pickable:!1,collidable:!1,clippable:!1,visible:!1,scale:[1,1,1],rotation:[0,0,45]}),e),xHoop:s.addChild(new hs(s,{geometry:r.hoop,material:o.red,highlighted:!0,highlightMaterial:o.highlightRed,matrix:function(){const e=d.rotationMat4v(90*d.DEGTORAD,[0,1,0],d.identityMat4()),t=d.rotationMat4v(270*d.DEGTORAD,[1,0,0],d.identityMat4());return d.mulMat4(t,e,d.identityMat4())}(),pickable:!1,collidable:!0,clippable:!1,visible:!1}),e),yHoop:s.addChild(new hs(s,{geometry:r.hoop,material:o.green,highlighted:!0,highlightMaterial:o.highlightGreen,rotation:[-90,0,0],pickable:!1,collidable:!0,clippable:!1,visible:!1}),e),zHoop:s.addChild(new hs(s,{geometry:r.hoop,material:o.blue,highlighted:!0,highlightMaterial:o.highlightBlue,matrix:d.rotationMat4v(180*d.DEGTORAD,[1,0,0],d.identityMat4()),pickable:!1,collidable:!0,clippable:!1,backfaces:!0,visible:!1}),e),xAxisArrow:s.addChild(new hs(s,{geometry:r.arrowHeadBig,material:o.red,matrix:function(){const e=d.translateMat4c(0,1.1,0,d.identityMat4()),t=d.rotationMat4v(-90*d.DEGTORAD,[0,0,1],d.identityMat4());return d.mulMat4(t,e,d.identityMat4())}(),pickable:!1,collidable:!0,clippable:!1,visible:!1}),e),yAxisArrow:s.addChild(new hs(s,{geometry:r.arrowHeadBig,material:o.green,matrix:function(){const e=d.translateMat4c(0,1.1,0,d.identityMat4()),t=d.rotationMat4v(180*d.DEGTORAD,[1,0,0],d.identityMat4());return d.mulMat4(t,e,d.identityMat4())}(),pickable:!1,collidable:!0,clippable:!1,visible:!1}),e),zAxisArrow:s.addChild(new hs(s,{geometry:r.arrowHeadBig,material:o.blue,matrix:function(){const e=d.translateMat4c(0,1.1,0,d.identityMat4()),t=d.rotationMat4v(-90*d.DEGTORAD,[.8,0,0],d.identityMat4());return d.mulMat4(t,e,d.identityMat4())}(),pickable:!1,collidable:!0,clippable:!1,visible:!1}),e)}}_bindEvents(){const e=this;var t=!1;const i=-1,s=0,r=1,o=2,n=3,a=4,l=5,A=this._rootNode;var h=null,c=null;const u=d.vec2(),p=d.vec3([1,0,0]),g=d.vec3([0,1,0]),m=d.vec3([0,0,1]),f=this._viewer.scene.canvas.canvas,_=this._viewer.camera,v=this._viewer.scene;{const e=d.vec3([0,0,0]);let t=-1;this._onCameraViewMatrix=v.camera.on("viewMatrix",(()=>{})),this._onCameraProjMatrix=v.camera.on("projMatrix",(()=>{})),this._onSceneTick=v.on("tick",(()=>{const i=Math.abs(d.lenVec3(d.subVec3(v.camera.eye,this._pos,e)));if(i!==t&&"perspective"===_.projection){const e=.07*(Math.tan(_.perspective.fov*d.DEGTORAD)*i);A.scale=[e,e,e],t=i}if("ortho"===_.projection){const e=_.ortho.scale/10;A.scale=[e,e,e],t=i}}))}const b=function(){const e=new Float64Array(2);return function(t){if(t){for(var i=t.target,s=0,r=0;i.offsetParent;)s+=i.offsetLeft,r+=i.offsetTop,i=i.offsetParent;e[0]=t.pageX-s,e[1]=t.pageY-r}else t=window.event,e[0]=t.x,e[1]=t.y;return e}}(),x=function(){const t=d.mat4();return function(i,s){return d.quaternionToMat4(e._rootNode.quaternion,t),d.transformVec3(t,i,s),d.normalizeVec3(s),s}}();var w=function(){const e=d.vec3();return function(t){const i=Math.abs(t[0]);return i>Math.abs(t[1])&&i>Math.abs(t[2])?d.cross3Vec3(t,[0,1,0],e):d.cross3Vec3(t,[1,0,0],e),d.cross3Vec3(e,t,e),d.normalizeVec3(e),e}}();const y=function(){const t=d.vec3(),i=d.vec3(),s=d.vec4();return function(r,o,n){x(r,s);const a=w(s,o,n);B(o,a,t),B(n,a,i),d.subVec3(i,t);const l=d.dotVec3(i,s);e._pos[0]+=s[0]*l,e._pos[1]+=s[1]*l,e._pos[2]+=s[2]*l,e._rootNode.position=e._pos,e._sectionPlane&&(e._sectionPlane.pos=e._pos)}}();var P=function(){const t=d.vec4(),i=d.vec4(),s=d.vec4(),r=d.vec4();return function(o,n,a){x(o,r);if(!(B(n,r,t)&&B(a,r,i))){const e=w(r,n,a);B(n,e,t,1),B(a,e,i,1);var l=d.dotVec3(t,r);t[0]-=l*r[0],t[1]-=l*r[1],t[2]-=l*r[2],l=d.dotVec3(i,r),i[0]-=l*r[0],i[1]-=l*r[1],i[2]-=l*r[2]}d.normalizeVec3(t),d.normalizeVec3(i),l=d.dotVec3(t,i),l=d.clamp(l,-1,1);var A=Math.acos(l)*d.RADTODEG;d.cross3Vec3(t,i,s),d.dotVec3(s,r)<0&&(A=-A),e._rootNode.rotate(o,A),C()}}(),B=function(){const t=d.vec4([0,0,0,1]),i=d.mat4();return function(s,r,o,n){n=n||0,t[0]=s[0]/f.width*2-1,t[1]=-(s[1]/f.height*2-1),t[2]=0,t[3]=1,d.mulMat4(_.projMatrix,_.viewMatrix,i),d.inverseMat4(i),d.transformVec4(i,t,t),d.mulVec4Scalar(t,1/t[3]);var a=_.eye;d.subVec4(t,a,t);const l=e._sectionPlane.pos;var A=-d.dotVec3(l,r)-n,h=d.dotVec3(r,t);if(Math.abs(h)>.005){var c=-(d.dotVec3(r,a)+A)/h;return d.mulVec3Scalar(t,c,o),d.addVec3(o,a),d.subVec3(o,l,o),!0}return!1}}();const C=function(){const t=d.vec3(),i=d.mat4();return function(){e.sectionPlane&&(d.quaternionToMat4(A.quaternion,i),d.transformVec3(i,[0,0,1],t),e._setSectionPlaneDir(t))}}();var M,E=!1;this._onCameraControlHover=this._viewer.cameraControl.on("hoverEnter",(e=>{if(!this._visible)return;if(E)return;var A;t=!1,M&&(M.visible=!1);switch(e.entity.id){case this._displayMeshes.xAxisArrowHandle.id:case this._displayMeshes.xAxisHandle.id:A=this._affordanceMeshes.xAxisArrow,h=s;break;case this._displayMeshes.yAxisArrowHandle.id:case this._displayMeshes.yShaftHandle.id:A=this._affordanceMeshes.yAxisArrow,h=r;break;case this._displayMeshes.zAxisArrowHandle.id:case this._displayMeshes.zAxisHandle.id:A=this._affordanceMeshes.zAxisArrow,h=o;break;case this._displayMeshes.xCurveHandle.id:A=this._affordanceMeshes.xHoop,h=n;break;case this._displayMeshes.yCurveHandle.id:A=this._affordanceMeshes.yHoop,h=a;break;case this._displayMeshes.zCurveHandle.id:A=this._affordanceMeshes.zHoop,h=l;break;default:return void(h=i)}A&&(A.visible=!0),M=A,t=!0})),this._onCameraControlHoverLeave=this._viewer.cameraControl.on("hoverOutEntity",(e=>{this._visible&&(M&&(M.visible=!1),M=null,h=i)})),f.addEventListener("mousedown",this._canvasMouseDownListener=e=>{if(e.preventDefault(),this._visible&&t&&(this._viewer.cameraControl.pointerEnabled=!1,1===e.which)){E=!0;var i=b(e);c=h,u[0]=i[0],u[1]=i[1]}}),f.addEventListener("mousemove",this._canvasMouseMoveListener=e=>{if(!this._visible)return;if(!E)return;var t=b(e);const i=t[0],A=t[1];switch(c){case s:y(p,u,t);break;case r:y(g,u,t);break;case o:y(m,u,t);break;case n:P(p,u,t);break;case a:P(g,u,t);break;case l:P(m,u,t)}u[0]=i,u[1]=A}),f.addEventListener("mouseup",this._canvasMouseUpListener=e=>{this._visible&&(this._viewer.cameraControl.pointerEnabled=!0,E&&(e.which,E=!1,t=!1))}),f.addEventListener("wheel",this._canvasWheelListener=e=>{if(this._visible)Math.max(-1,Math.min(1,40*-e.deltaY))})}_destroy(){this._unbindEvents(),this._destroyNodes()}_unbindEvents(){const e=this._viewer,t=e.scene,i=t.canvas.canvas,s=e.camera,r=e.cameraControl;t.off(this._onSceneTick),i.removeEventListener("mousedown",this._canvasMouseDownListener),i.removeEventListener("mousemove",this._canvasMouseMoveListener),i.removeEventListener("mouseup",this._canvasMouseUpListener),i.removeEventListener("wheel",this._canvasWheelListener),s.off(this._onCameraViewMatrix),s.off(this._onCameraProjMatrix),r.off(this._onCameraControlHover),r.off(this._onCameraControlHoverLeave)}_destroyNodes(){this._setSectionPlane(null),this._rootNode.destroy(),this._displayMeshes={},this._affordanceMeshes={}}}class pb{constructor(e,t,i){this.id=i.id,this._sectionPlane=i,this._mesh=new hs(t,{id:i.id,geometry:new St(t,Tt({xSize:.5,ySize:.5,zSize:.001})),material:new kt(t,{emissive:[1,1,1],diffuse:[0,0,0],backfaces:!1}),edgeMaterial:new Vt(t,{edgeColor:[0,0,0],edgeAlpha:1,edgeWidth:1}),highlightMaterial:new Nt(t,{fill:!0,fillColor:[.5,1,.5],fillAlpha:.7,edges:!0,edgeColor:[0,0,0],edgeAlpha:1,edgeWidth:1}),selectedMaterial:new Nt(t,{fill:!0,fillColor:[0,0,1],fillAlpha:.7,edges:!0,edgeColor:[1,0,0],edgeAlpha:1,edgeWidth:1}),highlighted:!0,scale:[3,3,3],position:[0,0,0],rotation:[0,0,0],opacity:.3,edges:!0});{const e=d.vec3([0,0,0]),t=d.vec3(),i=d.vec3([0,0,1]),s=d.vec4(4),r=d.vec3(),o=()=>{const o=this._sectionPlane.scene.center,n=[-this._sectionPlane.dir[0],-this._sectionPlane.dir[1],-this._sectionPlane.dir[2]];d.subVec3(o,this._sectionPlane.pos,e);const a=-d.dotVec3(n,e);d.normalizeVec3(n),d.mulVec3Scalar(n,a,t);const l=d.vec3PairToQuaternion(i,this._sectionPlane.dir,s);r[0]=.1*t[0],r[1]=.1*t[1],r[2]=.1*t[2],this._mesh.quaternion=l,this._mesh.position=r};this._onSectionPlanePos=this._sectionPlane.on("pos",o),this._onSectionPlaneDir=this._sectionPlane.on("dir",o)}this._highlighted=!1,this._selected=!1}setHighlighted(e){this._highlighted=!!e,this._mesh.highlighted=this._highlighted,this._mesh.highlightMaterial.fillColor=e?[0,.7,0]:[0,0,0]}getHighlighted(){return this._highlighted}setSelected(e){this._selected=!!e,this._mesh.edgeMaterial.edgeWidth=e?3:1,this._mesh.highlightMaterial.edgeWidth=e?3:1}getSelected(){return this._selected}destroy(){this._sectionPlane.off(this._onSectionPlanePos),this._sectionPlane.off(this._onSectionPlaneDir),this._mesh.destroy()}}class gb{constructor(e,t){if(!(t.onHoverEnterPlane&&t.onHoverLeavePlane&&t.onClickedNothing&&t.onClickedPlane))throw"Missing config(s): onHoverEnterPlane, onHoverLeavePlane, onClickedNothing || onClickedPlane";this.plugin=e,this._viewer=e.viewer,this._onHoverEnterPlane=t.onHoverEnterPlane,this._onHoverLeavePlane=t.onHoverLeavePlane,this._onClickedNothing=t.onClickedNothing,this._onClickedPlane=t.onClickedPlane,this._visible=!0,this._planes={},this._canvas=t.overviewCanvas,this._scene=new qt(this._viewer,{canvasId:this._canvas.id,transparent:!0}),this._scene.clearLights(),new vt(this._scene,{dir:[.4,-.4,.8],color:[.8,1,1],intensity:1,space:"view"}),new vt(this._scene,{dir:[-.8,-.3,-.4],color:[.8,.8,.8],intensity:1,space:"view"}),new vt(this._scene,{dir:[.8,-.6,-.8],color:[1,1,1],intensity:1,space:"view"}),this._scene.camera,this._scene.camera.perspective.fov=70,this._zUp=!1;{const e=this._scene.camera,t=d.rotationMat4c(-90*d.DEGTORAD,1,0,0),i=d.vec3(),s=d.vec3(),r=d.vec3();this._synchCamera=()=>{const o=this._viewer.camera.eye,n=this._viewer.camera.look,a=this._viewer.camera.up;d.mulVec3Scalar(d.normalizeVec3(d.subVec3(o,n,i)),7),this._zUp?(d.transformVec3(t,i,s),d.transformVec3(t,a,r),e.look=[0,0,0],e.eye=d.transformVec3(t,i,s),e.up=d.transformPoint3(t,a,r)):(e.look=[0,0,0],e.eye=i,e.up=a)}}this._onViewerCameraMatrix=this._viewer.camera.on("matrix",this._synchCamera),this._onViewerCameraWorldAxis=this._viewer.camera.on("worldAxis",this._synchCamera),this._onViewerCameraFOV=this._viewer.camera.perspective.on("fov",(e=>{this._scene.camera.perspective.fov=e}));var i=null;this._onInputMouseMove=this._scene.input.on("mousemove",(e=>{const t=this._scene.pick({canvasPos:e});if(t){if(!i||t.entity.id!==i.id){if(i){this._planes[i.id]&&this._onHoverLeavePlane(i.id)}i=t.entity;this._planes[i.id]&&this._onHoverEnterPlane(i.id)}}else i&&(this._onHoverLeavePlane(i.id),i=null)})),this._scene.canvas.canvas.addEventListener("mouseup",this._onCanvasMouseUp=()=>{if(i){this._planes[i.id]&&this._onClickedPlane(i.id)}else this._onClickedNothing()}),this._scene.canvas.canvas.addEventListener("mouseout",this._onCanvasMouseOut=()=>{i&&(this._onHoverLeavePlane(i.id),i=null)}),this.setVisible(t.overviewVisible)}addSectionPlane(e){this._planes[e.id]=new pb(this,this._scene,e)}setPlaneHighlighted(e,t){const i=this._planes[e];i&&i.setHighlighted(t)}setPlaneSelected(e,t){const i=this._planes[e];i&&i.setSelected(t)}removeSectionPlane(e){const t=this._planes[e.id];t&&(t.destroy(),delete this._planes[e.id])}setVisible(e=!0){this._visible=e,this._canvas.style.visibility=e?"visible":"hidden"}getVisible(){return this._visible}destroy(){this._viewer.camera.off(this._onViewerCameraMatrix),this._viewer.camera.off(this._onViewerCameraWorldAxis),this._viewer.camera.perspective.off(this._onViewerCameraFOV),this._scene.input.off(this._onInputMouseMove),this._scene.canvas.canvas.removeEventListener("mouseup",this._onCanvasMouseUp),this._scene.canvas.canvas.removeEventListener("mouseout",this._onCanvasMouseOut),this._scene.destroy()}}const mb=d.AABB3(),fb=d.vec3();class _b extends Q{constructor(e,t={}){if(super("SectionPlanes",e),this._freeControls=[],this._sectionPlanes=e.scene.sectionPlanes,this._controls={},this._shownControlId=null,null!==t.overviewCanvasId&&void 0!==t.overviewCanvasId){const e=document.getElementById(t.overviewCanvasId);e?this._overview=new gb(this,{overviewCanvas:e,visible:t.overviewVisible,onHoverEnterPlane:e=>{this._overview.setPlaneHighlighted(e,!0)},onHoverLeavePlane:e=>{this._overview.setPlaneHighlighted(e,!1)},onClickedPlane:e=>{if(this.getShownControl()===e)return void this.hideControl();this.showControl(e);const t=this.sectionPlanes[e].pos;mb.set(this.viewer.scene.aabb),d.getAABB3Center(mb,fb),mb[0]+=t[0]-fb[0],mb[1]+=t[1]-fb[1],mb[2]+=t[2]-fb[2],mb[3]+=t[0]-fb[0],mb[4]+=t[1]-fb[1],mb[5]+=t[2]-fb[2],this.viewer.cameraFlight.flyTo({aabb:mb,fitFOV:65})},onClickedNothing:()=>{this.hideControl()}}):this.warn("Can't find overview canvas: '"+t.overviewCanvasId+"' - will create plugin without overview")}this._onSceneSectionPlaneCreated=e.scene.on("sectionPlaneCreated",(e=>{this._sectionPlaneCreated(e)}))}setOverviewVisible(e){this._overview&&this._overview.setVisible(e)}getOverviewVisible(){if(this._overview)return this._overview.getVisible()}get sectionPlanes(){return this._sectionPlanes}createSectionPlane(e={}){void 0!==e.id&&null!==e.id&&this.viewer.scene.components[e.id]&&(this.error("Viewer component with this ID already exists: "+e.id),delete e.id);return new ps(this.viewer.scene,{id:e.id,pos:e.pos,dir:e.dir,active:!0})}_sectionPlaneCreated(e){const t=this._freeControls.length>0?this._freeControls.pop():new db(this);t._setSectionPlane(e),t.setVisible(!1),this._controls[e.id]=t,this._overview&&this._overview.addSectionPlane(e),e.once("destroyed",(()=>{this._sectionPlaneDestroyed(e)}))}flipSectionPlanes(){const e=this.viewer.scene.sectionPlanes;for(let t in e){e[t].flipDir()}}showControl(e){const t=this._controls[e];t?(this.hideControl(),t.setVisible(!0),this._overview&&this._overview.setPlaneSelected(e,!0),this._shownControlId=e):this.error("Control not found: "+e)}getShownControl(){return this._shownControlId}hideControl(){for(var e in this._controls)this._controls.hasOwnProperty(e)&&(this._controls[e].setVisible(!1),this._overview&&this._overview.setPlaneSelected(e,!1));this._shownControlId=null}destroySectionPlane(e){var t=this.viewer.scene.sectionPlanes[e];t?(this._sectionPlaneDestroyed(t),t.destroy(),e===this._shownControlId&&(this._shownControlId=null)):this.error("SectionPlane not found: "+e)}_sectionPlaneDestroyed(e){this._overview&&this._overview.removeSectionPlane(e);const t=this._controls[e.id];t&&(t.setVisible(!1),t._setSectionPlane(null),delete this._controls[e.id],this._freeControls.push(t))}clear(){const e=Object.keys(this._sectionPlanes);for(var t=0,i=e.length;t0){const i=document.createElement("a");i.href="#",i.id=`switch-${e.nodeId}`,i.textContent="+",i.classList.add("plus"),t&&i.addEventListener("click",t),o.appendChild(i)}const n=document.createElement("input");n.id=`checkbox-${e.nodeId}`,n.type="checkbox",n.checked=e.checked,n.style["pointer-events"]="all",i&&n.addEventListener("change",i),o.appendChild(n);const a=document.createElement("span");return a.textContent=e.title,o.appendChild(a),s&&(a.oncontextmenu=s),r&&(a.onclick=r),o}createDisabledNodeElement(e){const t=document.createElement("li"),i=document.createElement("a");i.href="#",i.textContent="!",i.classList.add("warn"),i.classList.add("warning"),t.appendChild(i);const s=document.createElement("span");return s.textContent=e,t.appendChild(s),t}addChildren(e,t){const i=document.createElement("ul");t.forEach((e=>{i.appendChild(e)})),e.parentElement.appendChild(i)}expand(e,t,i){e.classList.remove("plus"),e.classList.add("minus"),e.textContent="-",e.removeEventListener("click",t),e.addEventListener("click",i)}collapse(e,t,i){if(!e)return;const s=e.parentElement;if(!s)return;const r=s.querySelector("ul");r&&(s.removeChild(r),e.classList.remove("minus"),e.classList.add("plus"),e.textContent="+",e.removeEventListener("click",i),e.addEventListener("click",t))}isExpanded(e){return void 0!==e.parentElement.getElementsByTagName("li")[0]}getId(e){return e.parentElement.id}getIdFromCheckbox(e){return e.id.replace("checkbox-","")}getSwitchElement(e){return document.getElementById(`switch-${e}`)}isChecked(e){return e.checked}setCheckbox(e,t){const i=document.getElementById(`checkbox-${e}`);i&&t!==i.checked&&(i.checked=t)}setXRayed(e,t){const i=document.getElementById(e);i&&(t?i.classList.add("xrayed-node"):i.classList.remove("xrayed-node"))}setHighlighted(e,t){const i=document.getElementById(e);i&&(t?(i.scrollIntoView({block:"center"}),i.classList.add("highlighted-node")):i.classList.remove("highlighted-node"))}}const bb=[];class xb extends Q{constructor(e,t={}){super("TreeViewPlugin",e),this.errors=[],this.valid=!0;const i=t.containerElement||document.getElementById(t.containerElementId);if(i instanceof HTMLElement){for(let e=0;;e++)if(!bb[e]){bb[e]=this,this._index=e,this._id=`tree-${e}`;break}if(this._containerElement=i,this._metaModels={},this._autoAddModels=!1!==t.autoAddModels,this._autoExpandDepth=t.autoExpandDepth||0,this._sortNodes=!1!==t.sortNodes,this._viewer=e,this._rootElement=null,this._muteSceneEvents=!1,this._muteTreeEvents=!1,this._rootNodes=[],this._objectNodes={},this._nodeNodes={},this._rootNames={},this._sortNodes=t.sortNodes,this._pruneEmptyNodes=t.pruneEmptyNodes,this._showListItemElementId=null,this._renderService=t.renderService||new vb,!this._renderService)throw new Error("TreeViewPlugin: no render service set");if(this._containerElement.oncontextmenu=e=>{e.preventDefault()},this._onObjectVisibility=this._viewer.scene.on("objectVisibility",(e=>{if(this._muteSceneEvents)return;const t=e.id,i=this._objectNodes[t];if(!i)return;const s=e.visible;if(!(s!==i.checked))return;this._muteTreeEvents=!0,i.checked=s,s?i.numVisibleEntities++:i.numVisibleEntities--,this._renderService.setCheckbox(i.nodeId,s);let r=i.parent;for(;r;)r.checked=s,s?r.numVisibleEntities++:r.numVisibleEntities--,this._renderService.setCheckbox(r.nodeId,r.numVisibleEntities>0),r=r.parent;this._muteTreeEvents=!1})),this._onObjectXrayed=this._viewer.scene.on("objectXRayed",(e=>{if(this._muteSceneEvents)return;const t=e.id,i=this._objectNodes[t];if(!i)return;this._muteTreeEvents=!0;const s=e.xrayed;s!==i.xrayed&&(i.xrayed=s,this._renderService.setXRayed(i.nodeId,s),this._muteTreeEvents=!1)})),this._switchExpandHandler=e=>{e.preventDefault(),e.stopPropagation();const t=e.target;this._expandSwitchElement(t)},this._switchCollapseHandler=e=>{e.preventDefault(),e.stopPropagation();const t=e.target;this._collapseSwitchElement(t)},this._checkboxChangeHandler=e=>{if(this._muteTreeEvents)return;this._muteSceneEvents=!0;const t=e.target,i=this._renderService.isChecked(t),s=this._renderService.getIdFromCheckbox(t),r=this._nodeNodes[s],o=this._viewer.scene.objects;let n=0;this._withNodeTree(r,(e=>{const t=e.objectId,s=o[t],r=0===e.children.length;e.numVisibleEntities=i?e.numEntities:0,r&&i!==e.checked&&n++,e.checked=i,this._renderService.setCheckbox(e.nodeId,i),s&&(s.visible=i)}));let a=r.parent;for(;a;)a.checked=i,i?a.numVisibleEntities+=n:a.numVisibleEntities-=n,this._renderService.setCheckbox(a.nodeId,a.numVisibleEntities>0),a=a.parent;this._muteSceneEvents=!1},this._hierarchy=t.hierarchy||"containment",this._autoExpandDepth=t.autoExpandDepth||0,this._autoAddModels){const e=Object.keys(this.viewer.metaScene.metaModels);for(let t=0,i=e.length;t{this.viewer.metaScene.metaModels[e]&&this.addModel(e)}))}this.hierarchy=t.hierarchy}else this.error("Mandatory config expected: valid containerElementId or containerElement")}set hierarchy(e){"containment"!==(e=e||"containment")&&"storeys"!==e&&"types"!==e&&(this.error("Unsupported value for `hierarchy' - defaulting to 'containment'"),e="containment"),this._hierarchy!==e&&(this._hierarchy=e,this._createNodes())}get hierarchy(){return this._hierarchy}addModel(e,t={}){if(!this._containerElement)return;const i=this.viewer.scene.models[e];if(!i)throw"Model not found: "+e;const s=this.viewer.metaScene.metaModels[e];s?this._metaModels[e]?this.warn("Model already added: "+e):(this._metaModels[e]=s,t&&t.rootName&&(this._rootNames[e]=t.rootName),i.on("destroyed",(()=>{this.removeModel(i.id)})),this._createNodes()):this.error("MetaModel not found: "+e)}removeModel(e){if(!this._containerElement)return;this._metaModels[e]&&(this._rootNames[e]&&delete this._rootNames[e],delete this._metaModels[e],this._createNodes())}showNode(e){this.unShowNode();const t=this._objectNodes[e];if(!t)return;const i=t.nodeId,s=this._renderService.getSwitchElement(i);if(s)return this._expandSwitchElement(s),s.scrollIntoView(),!0;const r=[];r.unshift(t);let o=t.parent;for(;o;)r.unshift(o),o=o.parent;for(let e=0,t=r.length;e{if(s===e)return;const r=this._renderService.getSwitchElement(i.nodeId);if(r){this._expandSwitchElement(r);const e=i.children;for(var o=0,n=e.length;o0;return this.valid}_validateMetaModelForStoreysHierarchy(e=0,t,i){return!0}_createEnabledNodes(){switch(this._pruneEmptyNodes&&this._findEmptyNodes(),this._hierarchy){case"storeys":this._createStoreysNodes(),0===this._rootNodes.length&&this.error("Failed to build storeys hierarchy");break;case"types":this._createTypesNodes();break;default:this._createContainmentNodes()}this._sortNodes&&this._doSortNodes(),this._synchNodesToEntities(),this._createTrees(),this.expandToDepth(this._autoExpandDepth)}_createDisabledNodes(){const e=this._renderService.createRootNode();this._rootElement=e,this._containerElement.appendChild(e);const t=this._viewer.metaScene.rootMetaObjects;for(let i in t){const s=t[i],r=s.type,o=s.name,n=o&&""!==o&&"Undefined"!==o&&"Default"!==o?o:r,a=this._renderService.createDisabledNodeElement(n);e.appendChild(a)}}_findEmptyNodes(){const e=this._viewer.metaScene.rootMetaObjects;for(let t in e)this._findEmptyNodes2(e[t])}_findEmptyNodes2(e,t=0){const i=this.viewer.scene,s=e.children,r=e.id,o=i.objects[r];if(e._countEntities=0,o&&e._countEntities++,s)for(let t=0,i=s.length;t{e.aabb&&r.aabb||(e.aabb||(e.aabb=t.getAABB(s.getObjectIDsInSubtree(e.objectId))),r.aabb||(r.aabb=t.getAABB(s.getObjectIDsInSubtree(r.objectId))));let o=0;return o=i.xUp?0:i.yUp?1:2,e.aabb[o]>r.aabb[o]?-1:e.aabb[o]s?1:0}_synchNodesToEntities(){const e=Object.keys(this.viewer.metaScene.metaObjects),t=this._viewer.metaScene.metaObjects,i=this._viewer.scene.objects;for(let s=0,r=e.length;sthis._createNodeElement(e))),t=this._renderService.createRootNode();e.forEach((e=>{t.appendChild(e)})),this._containerElement.appendChild(t),this._rootElement=t}_createNodeElement(e){return this._renderService.createNodeElement(e,this._switchExpandHandler,this._checkboxChangeHandler,(t=>{this.fire("contextmenu",{event:t,viewer:this._viewer,treeViewPlugin:this,treeViewNode:e}),t.preventDefault()}),(t=>{this.fire("nodeTitleClicked",{event:t,viewer:this._viewer,treeViewPlugin:this,treeViewNode:e}),t.preventDefault()}))}_expandSwitchElement(e){if(this._renderService.isExpanded(e))return;const t=this._renderService.getId(e),i=this._nodeNodes[t].children.map((e=>this._createNodeElement(e)));this._renderService.addChildren(e,i),this._renderService.expand(e,this._switchExpandHandler,this._switchCollapseHandler)}_collapseNode(e){const t=this._renderService.getSwitchElement(e);this._collapseSwitchElement(t)}_collapseSwitchElement(e){this._renderService.collapse(e,this._switchExpandHandler,this._switchCollapseHandler)}}class wb{constructor(){}getManifest(e,t,i){_.loadJSON(e,(e=>{t(e)}),(function(e){i(e)}))}getMetaModel(e,t,i){_.loadJSON(e,(e=>{t(e)}),(function(e){i(e)}))}getXKT(e,t,i){var s=()=>{};t=t||s,i=i||s;const r=e.match(/^data:(.*?)(;base64)?,(.*)$/);if(r){const e=!!r[2];var o=r[3];o=window.decodeURIComponent(o),e&&(o=window.atob(o));try{const e=new ArrayBuffer(o.length),i=new Uint8Array(e);for(var n=0;n=0;)e[t]=0}const i=new Uint8Array([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0]),s=new Uint8Array([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13]),r=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]),o=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),n=new Array(576);t(n);const a=new Array(60);t(a);const l=new Array(512);t(l);const A=new Array(256);t(A);const h=new Array(29);t(h);const c=new Array(30);function u(e,t,i,s,r){this.static_tree=e,this.extra_bits=t,this.extra_base=i,this.elems=s,this.max_length=r,this.has_stree=e&&e.length}let d,p,g;function m(e,t){this.dyn_tree=e,this.max_code=0,this.stat_desc=t}t(c);const f=e=>e<256?l[e]:l[256+(e>>>7)],_=(e,t)=>{e.pending_buf[e.pending++]=255&t,e.pending_buf[e.pending++]=t>>>8&255},v=(e,t,i)=>{e.bi_valid>16-i?(e.bi_buf|=t<>16-e.bi_valid,e.bi_valid+=i-16):(e.bi_buf|=t<{v(e,i[2*t],i[2*t+1])},x=(e,t)=>{let i=0;do{i|=1&e,e>>>=1,i<<=1}while(--t>0);return i>>>1},w=(e,t,i)=>{const s=new Array(16);let r,o,n=0;for(r=1;r<=15;r++)n=n+i[r-1]<<1,s[r]=n;for(o=0;o<=t;o++){let t=e[2*o+1];0!==t&&(e[2*o]=x(s[t]++,t))}},y=e=>{let t;for(t=0;t<286;t++)e.dyn_ltree[2*t]=0;for(t=0;t<30;t++)e.dyn_dtree[2*t]=0;for(t=0;t<19;t++)e.bl_tree[2*t]=0;e.dyn_ltree[512]=1,e.opt_len=e.static_len=0,e.sym_next=e.matches=0},P=e=>{e.bi_valid>8?_(e,e.bi_buf):e.bi_valid>0&&(e.pending_buf[e.pending++]=e.bi_buf),e.bi_buf=0,e.bi_valid=0},B=(e,t,i,s)=>{const r=2*t,o=2*i;return e[r]{const s=e.heap[i];let r=i<<1;for(;r<=e.heap_len&&(r{let o,n,a,l,u=0;if(0!==e.sym_next)do{o=255&e.pending_buf[e.sym_buf+u++],o+=(255&e.pending_buf[e.sym_buf+u++])<<8,n=e.pending_buf[e.sym_buf+u++],0===o?b(e,n,t):(a=A[n],b(e,a+256+1,t),l=i[a],0!==l&&(n-=h[a],v(e,n,l)),o--,a=f(o),b(e,a,r),l=s[a],0!==l&&(o-=c[a],v(e,o,l)))}while(u{const i=t.dyn_tree,s=t.stat_desc.static_tree,r=t.stat_desc.has_stree,o=t.stat_desc.elems;let n,a,l,A=-1;for(e.heap_len=0,e.heap_max=573,n=0;n>1;n>=1;n--)C(e,i,n);l=o;do{n=e.heap[1],e.heap[1]=e.heap[e.heap_len--],C(e,i,1),a=e.heap[1],e.heap[--e.heap_max]=n,e.heap[--e.heap_max]=a,i[2*l]=i[2*n]+i[2*a],e.depth[l]=(e.depth[n]>=e.depth[a]?e.depth[n]:e.depth[a])+1,i[2*n+1]=i[2*a+1]=l,e.heap[1]=l++,C(e,i,1)}while(e.heap_len>=2);e.heap[--e.heap_max]=e.heap[1],((e,t)=>{const i=t.dyn_tree,s=t.max_code,r=t.stat_desc.static_tree,o=t.stat_desc.has_stree,n=t.stat_desc.extra_bits,a=t.stat_desc.extra_base,l=t.stat_desc.max_length;let A,h,c,u,d,p,g=0;for(u=0;u<=15;u++)e.bl_count[u]=0;for(i[2*e.heap[e.heap_max]+1]=0,A=e.heap_max+1;A<573;A++)h=e.heap[A],u=i[2*i[2*h+1]+1]+1,u>l&&(u=l,g++),i[2*h+1]=u,h>s||(e.bl_count[u]++,d=0,h>=a&&(d=n[h-a]),p=i[2*h],e.opt_len+=p*(u+d),o&&(e.static_len+=p*(r[2*h+1]+d)));if(0!==g){do{for(u=l-1;0===e.bl_count[u];)u--;e.bl_count[u]--,e.bl_count[u+1]+=2,e.bl_count[l]--,g-=2}while(g>0);for(u=l;0!==u;u--)for(h=e.bl_count[u];0!==h;)c=e.heap[--A],c>s||(i[2*c+1]!==u&&(e.opt_len+=(u-i[2*c+1])*i[2*c],i[2*c+1]=u),h--)}})(e,t),w(i,A,e.bl_count)},F=(e,t,i)=>{let s,r,o=-1,n=t[1],a=0,l=7,A=4;for(0===n&&(l=138,A=3),t[2*(i+1)+1]=65535,s=0;s<=i;s++)r=n,n=t[2*(s+1)+1],++a{let s,r,o=-1,n=t[1],a=0,l=7,A=4;for(0===n&&(l=138,A=3),s=0;s<=i;s++)if(r=n,n=t[2*(s+1)+1],!(++a{v(e,0+(s?1:0),3),P(e),_(e,i),_(e,~i),i&&e.pending_buf.set(e.window.subarray(t,t+i),e.pending),e.pending+=i};var T={_tr_init:e=>{D||((()=>{let e,t,o,m,f;const _=new Array(16);for(o=0,m=0;m<28;m++)for(h[m]=o,e=0;e<1<>=7;m<30;m++)for(c[m]=f<<7,e=0;e<1<{let r,l,A=0;e.level>0?(2===e.strm.data_type&&(e.strm.data_type=(e=>{let t,i=4093624447;for(t=0;t<=31;t++,i>>>=1)if(1&i&&0!==e.dyn_ltree[2*t])return 0;if(0!==e.dyn_ltree[18]||0!==e.dyn_ltree[20]||0!==e.dyn_ltree[26])return 1;for(t=32;t<256;t++)if(0!==e.dyn_ltree[2*t])return 1;return 0})(e)),E(e,e.l_desc),E(e,e.d_desc),A=(e=>{let t;for(F(e,e.dyn_ltree,e.l_desc.max_code),F(e,e.dyn_dtree,e.d_desc.max_code),E(e,e.bl_desc),t=18;t>=3&&0===e.bl_tree[2*o[t]+1];t--);return e.opt_len+=3*(t+1)+5+5+4,t})(e),r=e.opt_len+3+7>>>3,l=e.static_len+3+7>>>3,l<=r&&(r=l)):r=l=i+5,i+4<=r&&-1!==t?S(e,t,i,s):4===e.strategy||l===r?(v(e,2+(s?1:0),3),M(e,n,a)):(v(e,4+(s?1:0),3),((e,t,i,s)=>{let r;for(v(e,t-257,5),v(e,i-1,5),v(e,s-4,4),r=0;r(e.pending_buf[e.sym_buf+e.sym_next++]=t,e.pending_buf[e.sym_buf+e.sym_next++]=t>>8,e.pending_buf[e.sym_buf+e.sym_next++]=i,0===t?e.dyn_ltree[2*i]++:(e.matches++,t--,e.dyn_ltree[2*(A[i]+256+1)]++,e.dyn_dtree[2*f(t)]++),e.sym_next===e.sym_end),_tr_align:e=>{v(e,2,3),b(e,256,n),(e=>{16===e.bi_valid?(_(e,e.bi_buf),e.bi_buf=0,e.bi_valid=0):e.bi_valid>=8&&(e.pending_buf[e.pending++]=255&e.bi_buf,e.bi_buf>>=8,e.bi_valid-=8)})(e)}},R=(e,t,i,s)=>{let r=65535&e|0,o=e>>>16&65535|0,n=0;for(;0!==i;){n=i>2e3?2e3:i,i-=n;do{r=r+t[s++]|0,o=o+r|0}while(--n);r%=65521,o%=65521}return r|o<<16|0};const L=new Uint32Array((()=>{let e,t=[];for(var i=0;i<256;i++){e=i;for(var s=0;s<8;s++)e=1&e?3988292384^e>>>1:e>>>1;t[i]=e}return t})());var U=(e,t,i,s)=>{const r=L,o=s+i;e^=-1;for(let i=s;i>>8^r[255&(e^t[i])];return-1^e},k={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"},O={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_MEM_ERROR:-4,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8};const{_tr_init:N,_tr_stored_block:Q,_tr_flush_block:V,_tr_tally:j,_tr_align:H}=T,{Z_NO_FLUSH:z,Z_PARTIAL_FLUSH:G,Z_FULL_FLUSH:W,Z_FINISH:K,Z_BLOCK:X,Z_OK:Y,Z_STREAM_END:q,Z_STREAM_ERROR:Z,Z_DATA_ERROR:J,Z_BUF_ERROR:$,Z_DEFAULT_COMPRESSION:ee,Z_FILTERED:te,Z_HUFFMAN_ONLY:ie,Z_RLE:se,Z_FIXED:re,Z_DEFAULT_STRATEGY:oe,Z_UNKNOWN:ne,Z_DEFLATED:ae}=O,le=258,Ae=262,he=42,ce=113,ue=666,de=(e,t)=>(e.msg=k[t],t),pe=e=>2*e-(e>4?9:0),ge=e=>{let t=e.length;for(;--t>=0;)e[t]=0},me=e=>{let t,i,s,r=e.w_size;t=e.hash_size,s=t;do{i=e.head[--s],e.head[s]=i>=r?i-r:0}while(--t);t=r,s=t;do{i=e.prev[--s],e.prev[s]=i>=r?i-r:0}while(--t)};let fe=(e,t,i)=>(t<{const t=e.state;let i=t.pending;i>e.avail_out&&(i=e.avail_out),0!==i&&(e.output.set(t.pending_buf.subarray(t.pending_out,t.pending_out+i),e.next_out),e.next_out+=i,t.pending_out+=i,e.total_out+=i,e.avail_out-=i,t.pending-=i,0===t.pending&&(t.pending_out=0))},ve=(e,t)=>{V(e,e.block_start>=0?e.block_start:-1,e.strstart-e.block_start,t),e.block_start=e.strstart,_e(e.strm)},be=(e,t)=>{e.pending_buf[e.pending++]=t},xe=(e,t)=>{e.pending_buf[e.pending++]=t>>>8&255,e.pending_buf[e.pending++]=255&t},we=(e,t,i,s)=>{let r=e.avail_in;return r>s&&(r=s),0===r?0:(e.avail_in-=r,t.set(e.input.subarray(e.next_in,e.next_in+r),i),1===e.state.wrap?e.adler=R(e.adler,t,r,i):2===e.state.wrap&&(e.adler=U(e.adler,t,r,i)),e.next_in+=r,e.total_in+=r,r)},ye=(e,t)=>{let i,s,r=e.max_chain_length,o=e.strstart,n=e.prev_length,a=e.nice_match;const l=e.strstart>e.w_size-Ae?e.strstart-(e.w_size-Ae):0,A=e.window,h=e.w_mask,c=e.prev,u=e.strstart+le;let d=A[o+n-1],p=A[o+n];e.prev_length>=e.good_match&&(r>>=2),a>e.lookahead&&(a=e.lookahead);do{if(i=t,A[i+n]===p&&A[i+n-1]===d&&A[i]===A[o]&&A[++i]===A[o+1]){o+=2,i++;do{}while(A[++o]===A[++i]&&A[++o]===A[++i]&&A[++o]===A[++i]&&A[++o]===A[++i]&&A[++o]===A[++i]&&A[++o]===A[++i]&&A[++o]===A[++i]&&A[++o]===A[++i]&&on){if(e.match_start=t,n=s,s>=a)break;d=A[o+n-1],p=A[o+n]}}}while((t=c[t&h])>l&&0!=--r);return n<=e.lookahead?n:e.lookahead},Pe=e=>{const t=e.w_size;let i,s,r;do{if(s=e.window_size-e.lookahead-e.strstart,e.strstart>=t+(t-Ae)&&(e.window.set(e.window.subarray(t,t+t-s),0),e.match_start-=t,e.strstart-=t,e.block_start-=t,e.insert>e.strstart&&(e.insert=e.strstart),me(e),s+=t),0===e.strm.avail_in)break;if(i=we(e.strm,e.window,e.strstart+e.lookahead,s),e.lookahead+=i,e.lookahead+e.insert>=3)for(r=e.strstart-e.insert,e.ins_h=e.window[r],e.ins_h=fe(e,e.ins_h,e.window[r+1]);e.insert&&(e.ins_h=fe(e,e.ins_h,e.window[r+3-1]),e.prev[r&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=r,r++,e.insert--,!(e.lookahead+e.insert<3)););}while(e.lookahead{let i,s,r,o=e.pending_buf_size-5>e.w_size?e.w_size:e.pending_buf_size-5,n=0,a=e.strm.avail_in;do{if(i=65535,r=e.bi_valid+42>>3,e.strm.avail_outs+e.strm.avail_in&&(i=s+e.strm.avail_in),i>r&&(i=r),i>8,e.pending_buf[e.pending-2]=~i,e.pending_buf[e.pending-1]=~i>>8,_e(e.strm),s&&(s>i&&(s=i),e.strm.output.set(e.window.subarray(e.block_start,e.block_start+s),e.strm.next_out),e.strm.next_out+=s,e.strm.avail_out-=s,e.strm.total_out+=s,e.block_start+=s,i-=s),i&&(we(e.strm,e.strm.output,e.strm.next_out,i),e.strm.next_out+=i,e.strm.avail_out-=i,e.strm.total_out+=i)}while(0===n);return a-=e.strm.avail_in,a&&(a>=e.w_size?(e.matches=2,e.window.set(e.strm.input.subarray(e.strm.next_in-e.w_size,e.strm.next_in),0),e.strstart=e.w_size,e.insert=e.strstart):(e.window_size-e.strstart<=a&&(e.strstart-=e.w_size,e.window.set(e.window.subarray(e.w_size,e.w_size+e.strstart),0),e.matches<2&&e.matches++,e.insert>e.strstart&&(e.insert=e.strstart)),e.window.set(e.strm.input.subarray(e.strm.next_in-a,e.strm.next_in),e.strstart),e.strstart+=a,e.insert+=a>e.w_size-e.insert?e.w_size-e.insert:a),e.block_start=e.strstart),e.high_waterr&&e.block_start>=e.w_size&&(e.block_start-=e.w_size,e.strstart-=e.w_size,e.window.set(e.window.subarray(e.w_size,e.w_size+e.strstart),0),e.matches<2&&e.matches++,r+=e.w_size,e.insert>e.strstart&&(e.insert=e.strstart)),r>e.strm.avail_in&&(r=e.strm.avail_in),r&&(we(e.strm,e.window,e.strstart,r),e.strstart+=r,e.insert+=r>e.w_size-e.insert?e.w_size-e.insert:r),e.high_water>3,r=e.pending_buf_size-r>65535?65535:e.pending_buf_size-r,o=r>e.w_size?e.w_size:r,s=e.strstart-e.block_start,(s>=o||(s||t===K)&&t!==z&&0===e.strm.avail_in&&s<=r)&&(i=s>r?r:s,n=t===K&&0===e.strm.avail_in&&i===s?1:0,Q(e,e.block_start,i,n),e.block_start+=i,_e(e.strm)),n?3:1)},Ce=(e,t)=>{let i,s;for(;;){if(e.lookahead=3&&(e.ins_h=fe(e,e.ins_h,e.window[e.strstart+3-1]),i=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),0!==i&&e.strstart-i<=e.w_size-Ae&&(e.match_length=ye(e,i)),e.match_length>=3)if(s=j(e,e.strstart-e.match_start,e.match_length-3),e.lookahead-=e.match_length,e.match_length<=e.max_lazy_match&&e.lookahead>=3){e.match_length--;do{e.strstart++,e.ins_h=fe(e,e.ins_h,e.window[e.strstart+3-1]),i=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart}while(0!=--e.match_length);e.strstart++}else e.strstart+=e.match_length,e.match_length=0,e.ins_h=e.window[e.strstart],e.ins_h=fe(e,e.ins_h,e.window[e.strstart+1]);else s=j(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++;if(s&&(ve(e,!1),0===e.strm.avail_out))return 1}return e.insert=e.strstart<2?e.strstart:2,t===K?(ve(e,!0),0===e.strm.avail_out?3:4):e.sym_next&&(ve(e,!1),0===e.strm.avail_out)?1:2},Me=(e,t)=>{let i,s,r;for(;;){if(e.lookahead=3&&(e.ins_h=fe(e,e.ins_h,e.window[e.strstart+3-1]),i=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),e.prev_length=e.match_length,e.prev_match=e.match_start,e.match_length=2,0!==i&&e.prev_length4096)&&(e.match_length=2)),e.prev_length>=3&&e.match_length<=e.prev_length){r=e.strstart+e.lookahead-3,s=j(e,e.strstart-1-e.prev_match,e.prev_length-3),e.lookahead-=e.prev_length-1,e.prev_length-=2;do{++e.strstart<=r&&(e.ins_h=fe(e,e.ins_h,e.window[e.strstart+3-1]),i=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart)}while(0!=--e.prev_length);if(e.match_available=0,e.match_length=2,e.strstart++,s&&(ve(e,!1),0===e.strm.avail_out))return 1}else if(e.match_available){if(s=j(e,0,e.window[e.strstart-1]),s&&ve(e,!1),e.strstart++,e.lookahead--,0===e.strm.avail_out)return 1}else e.match_available=1,e.strstart++,e.lookahead--}return e.match_available&&(s=j(e,0,e.window[e.strstart-1]),e.match_available=0),e.insert=e.strstart<2?e.strstart:2,t===K?(ve(e,!0),0===e.strm.avail_out?3:4):e.sym_next&&(ve(e,!1),0===e.strm.avail_out)?1:2};function Ee(e,t,i,s,r){this.good_length=e,this.max_lazy=t,this.nice_length=i,this.max_chain=s,this.func=r}const Fe=[new Ee(0,0,0,0,Be),new Ee(4,4,8,4,Ce),new Ee(4,5,16,8,Ce),new Ee(4,6,32,32,Ce),new Ee(4,4,16,16,Me),new Ee(8,16,32,32,Me),new Ee(8,16,128,128,Me),new Ee(8,32,128,256,Me),new Ee(32,128,258,1024,Me),new Ee(32,258,258,4096,Me)];function Ie(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=ae,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new Uint16Array(1146),this.dyn_dtree=new Uint16Array(122),this.bl_tree=new Uint16Array(78),ge(this.dyn_ltree),ge(this.dyn_dtree),ge(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new Uint16Array(16),this.heap=new Uint16Array(573),ge(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new Uint16Array(573),ge(this.depth),this.sym_buf=0,this.lit_bufsize=0,this.sym_next=0,this.sym_end=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}const De=e=>{if(!e)return 1;const t=e.state;return!t||t.strm!==e||t.status!==he&&57!==t.status&&69!==t.status&&73!==t.status&&91!==t.status&&103!==t.status&&t.status!==ce&&t.status!==ue?1:0},Se=e=>{if(De(e))return de(e,Z);e.total_in=e.total_out=0,e.data_type=ne;const t=e.state;return t.pending=0,t.pending_out=0,t.wrap<0&&(t.wrap=-t.wrap),t.status=2===t.wrap?57:t.wrap?he:ce,e.adler=2===t.wrap?0:1,t.last_flush=-2,N(t),Y},Te=e=>{const t=Se(e);var i;return t===Y&&((i=e.state).window_size=2*i.w_size,ge(i.head),i.max_lazy_match=Fe[i.level].max_lazy,i.good_match=Fe[i.level].good_length,i.nice_match=Fe[i.level].nice_length,i.max_chain_length=Fe[i.level].max_chain,i.strstart=0,i.block_start=0,i.lookahead=0,i.insert=0,i.match_length=i.prev_length=2,i.match_available=0,i.ins_h=0),t},Re=(e,t,i,s,r,o)=>{if(!e)return Z;let n=1;if(t===ee&&(t=6),s<0?(n=0,s=-s):s>15&&(n=2,s-=16),r<1||r>9||i!==ae||s<8||s>15||t<0||t>9||o<0||o>re||8===s&&1!==n)return de(e,Z);8===s&&(s=9);const a=new Ie;return e.state=a,a.strm=e,a.status=he,a.wrap=n,a.gzhead=null,a.w_bits=s,a.w_size=1<De(e)||2!==e.state.wrap?Z:(e.state.gzhead=t,Y),ke=(e,t)=>{if(De(e)||t>X||t<0)return e?de(e,Z):Z;const i=e.state;if(!e.output||0!==e.avail_in&&!e.input||i.status===ue&&t!==K)return de(e,0===e.avail_out?$:Z);const s=i.last_flush;if(i.last_flush=t,0!==i.pending){if(_e(e),0===e.avail_out)return i.last_flush=-1,Y}else if(0===e.avail_in&&pe(t)<=pe(s)&&t!==K)return de(e,$);if(i.status===ue&&0!==e.avail_in)return de(e,$);if(i.status===he&&0===i.wrap&&(i.status=ce),i.status===he){let t=ae+(i.w_bits-8<<4)<<8,s=-1;if(s=i.strategy>=ie||i.level<2?0:i.level<6?1:6===i.level?2:3,t|=s<<6,0!==i.strstart&&(t|=32),t+=31-t%31,xe(i,t),0!==i.strstart&&(xe(i,e.adler>>>16),xe(i,65535&e.adler)),e.adler=1,i.status=ce,_e(e),0!==i.pending)return i.last_flush=-1,Y}if(57===i.status)if(e.adler=0,be(i,31),be(i,139),be(i,8),i.gzhead)be(i,(i.gzhead.text?1:0)+(i.gzhead.hcrc?2:0)+(i.gzhead.extra?4:0)+(i.gzhead.name?8:0)+(i.gzhead.comment?16:0)),be(i,255&i.gzhead.time),be(i,i.gzhead.time>>8&255),be(i,i.gzhead.time>>16&255),be(i,i.gzhead.time>>24&255),be(i,9===i.level?2:i.strategy>=ie||i.level<2?4:0),be(i,255&i.gzhead.os),i.gzhead.extra&&i.gzhead.extra.length&&(be(i,255&i.gzhead.extra.length),be(i,i.gzhead.extra.length>>8&255)),i.gzhead.hcrc&&(e.adler=U(e.adler,i.pending_buf,i.pending,0)),i.gzindex=0,i.status=69;else if(be(i,0),be(i,0),be(i,0),be(i,0),be(i,0),be(i,9===i.level?2:i.strategy>=ie||i.level<2?4:0),be(i,3),i.status=ce,_e(e),0!==i.pending)return i.last_flush=-1,Y;if(69===i.status){if(i.gzhead.extra){let t=i.pending,s=(65535&i.gzhead.extra.length)-i.gzindex;for(;i.pending+s>i.pending_buf_size;){let r=i.pending_buf_size-i.pending;if(i.pending_buf.set(i.gzhead.extra.subarray(i.gzindex,i.gzindex+r),i.pending),i.pending=i.pending_buf_size,i.gzhead.hcrc&&i.pending>t&&(e.adler=U(e.adler,i.pending_buf,i.pending-t,t)),i.gzindex+=r,_e(e),0!==i.pending)return i.last_flush=-1,Y;t=0,s-=r}let r=new Uint8Array(i.gzhead.extra);i.pending_buf.set(r.subarray(i.gzindex,i.gzindex+s),i.pending),i.pending+=s,i.gzhead.hcrc&&i.pending>t&&(e.adler=U(e.adler,i.pending_buf,i.pending-t,t)),i.gzindex=0}i.status=73}if(73===i.status){if(i.gzhead.name){let t,s=i.pending;do{if(i.pending===i.pending_buf_size){if(i.gzhead.hcrc&&i.pending>s&&(e.adler=U(e.adler,i.pending_buf,i.pending-s,s)),_e(e),0!==i.pending)return i.last_flush=-1,Y;s=0}t=i.gzindexs&&(e.adler=U(e.adler,i.pending_buf,i.pending-s,s)),i.gzindex=0}i.status=91}if(91===i.status){if(i.gzhead.comment){let t,s=i.pending;do{if(i.pending===i.pending_buf_size){if(i.gzhead.hcrc&&i.pending>s&&(e.adler=U(e.adler,i.pending_buf,i.pending-s,s)),_e(e),0!==i.pending)return i.last_flush=-1,Y;s=0}t=i.gzindexs&&(e.adler=U(e.adler,i.pending_buf,i.pending-s,s))}i.status=103}if(103===i.status){if(i.gzhead.hcrc){if(i.pending+2>i.pending_buf_size&&(_e(e),0!==i.pending))return i.last_flush=-1,Y;be(i,255&e.adler),be(i,e.adler>>8&255),e.adler=0}if(i.status=ce,_e(e),0!==i.pending)return i.last_flush=-1,Y}if(0!==e.avail_in||0!==i.lookahead||t!==z&&i.status!==ue){let s=0===i.level?Be(i,t):i.strategy===ie?((e,t)=>{let i;for(;;){if(0===e.lookahead&&(Pe(e),0===e.lookahead)){if(t===z)return 1;break}if(e.match_length=0,i=j(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++,i&&(ve(e,!1),0===e.strm.avail_out))return 1}return e.insert=0,t===K?(ve(e,!0),0===e.strm.avail_out?3:4):e.sym_next&&(ve(e,!1),0===e.strm.avail_out)?1:2})(i,t):i.strategy===se?((e,t)=>{let i,s,r,o;const n=e.window;for(;;){if(e.lookahead<=le){if(Pe(e),e.lookahead<=le&&t===z)return 1;if(0===e.lookahead)break}if(e.match_length=0,e.lookahead>=3&&e.strstart>0&&(r=e.strstart-1,s=n[r],s===n[++r]&&s===n[++r]&&s===n[++r])){o=e.strstart+le;do{}while(s===n[++r]&&s===n[++r]&&s===n[++r]&&s===n[++r]&&s===n[++r]&&s===n[++r]&&s===n[++r]&&s===n[++r]&&re.lookahead&&(e.match_length=e.lookahead)}if(e.match_length>=3?(i=j(e,1,e.match_length-3),e.lookahead-=e.match_length,e.strstart+=e.match_length,e.match_length=0):(i=j(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++),i&&(ve(e,!1),0===e.strm.avail_out))return 1}return e.insert=0,t===K?(ve(e,!0),0===e.strm.avail_out?3:4):e.sym_next&&(ve(e,!1),0===e.strm.avail_out)?1:2})(i,t):Fe[i.level].func(i,t);if(3!==s&&4!==s||(i.status=ue),1===s||3===s)return 0===e.avail_out&&(i.last_flush=-1),Y;if(2===s&&(t===G?H(i):t!==X&&(Q(i,0,0,!1),t===W&&(ge(i.head),0===i.lookahead&&(i.strstart=0,i.block_start=0,i.insert=0))),_e(e),0===e.avail_out))return i.last_flush=-1,Y}return t!==K?Y:i.wrap<=0?q:(2===i.wrap?(be(i,255&e.adler),be(i,e.adler>>8&255),be(i,e.adler>>16&255),be(i,e.adler>>24&255),be(i,255&e.total_in),be(i,e.total_in>>8&255),be(i,e.total_in>>16&255),be(i,e.total_in>>24&255)):(xe(i,e.adler>>>16),xe(i,65535&e.adler)),_e(e),i.wrap>0&&(i.wrap=-i.wrap),0!==i.pending?Y:q)},Oe=e=>{if(De(e))return Z;const t=e.state.status;return e.state=null,t===ce?de(e,J):Y},Ne=(e,t)=>{let i=t.length;if(De(e))return Z;const s=e.state,r=s.wrap;if(2===r||1===r&&s.status!==he||s.lookahead)return Z;if(1===r&&(e.adler=R(e.adler,t,i,0)),s.wrap=0,i>=s.w_size){0===r&&(ge(s.head),s.strstart=0,s.block_start=0,s.insert=0);let e=new Uint8Array(s.w_size);e.set(t.subarray(i-s.w_size,i),0),t=e,i=s.w_size}const o=e.avail_in,n=e.next_in,a=e.input;for(e.avail_in=i,e.next_in=0,e.input=t,Pe(s);s.lookahead>=3;){let e=s.strstart,t=s.lookahead-2;do{s.ins_h=fe(s,s.ins_h,s.window[e+3-1]),s.prev[e&s.w_mask]=s.head[s.ins_h],s.head[s.ins_h]=e,e++}while(--t);s.strstart=e,s.lookahead=2,Pe(s)}return s.strstart+=s.lookahead,s.block_start=s.strstart,s.insert=s.lookahead,s.lookahead=0,s.match_length=s.prev_length=2,s.match_available=0,e.next_in=n,e.input=a,e.avail_in=o,s.wrap=r,Y};const Qe=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var Ve=function(e){const t=Array.prototype.slice.call(arguments,1);for(;t.length;){const i=t.shift();if(i){if("object"!=typeof i)throw new TypeError(i+"must be non-object");for(const t in i)Qe(i,t)&&(e[t]=i[t])}}return e},je=e=>{let t=0;for(let i=0,s=e.length;i=252?6:e>=248?5:e>=240?4:e>=224?3:e>=192?2:1;ze[254]=ze[254]=1;var Ge=e=>{if("function"==typeof TextEncoder&&TextEncoder.prototype.encode)return(new TextEncoder).encode(e);let t,i,s,r,o,n=e.length,a=0;for(r=0;r>>6,t[o++]=128|63&i):i<65536?(t[o++]=224|i>>>12,t[o++]=128|i>>>6&63,t[o++]=128|63&i):(t[o++]=240|i>>>18,t[o++]=128|i>>>12&63,t[o++]=128|i>>>6&63,t[o++]=128|63&i);return t},We=(e,t)=>{const i=t||e.length;if("function"==typeof TextDecoder&&TextDecoder.prototype.decode)return(new TextDecoder).decode(e.subarray(0,t));let s,r;const o=new Array(2*i);for(r=0,s=0;s4)o[r++]=65533,s+=n-1;else{for(t&=2===n?31:3===n?15:7;n>1&&s1?o[r++]=65533:t<65536?o[r++]=t:(t-=65536,o[r++]=55296|t>>10&1023,o[r++]=56320|1023&t)}}return((e,t)=>{if(t<65534&&e.subarray&&He)return String.fromCharCode.apply(null,e.length===t?e:e.subarray(0,t));let i="";for(let s=0;s{(t=t||e.length)>e.length&&(t=e.length);let i=t-1;for(;i>=0&&128==(192&e[i]);)i--;return i<0||0===i?t:i+ze[e[i]]>t?i:t},Xe=function(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0};const Ye=Object.prototype.toString,{Z_NO_FLUSH:qe,Z_SYNC_FLUSH:Ze,Z_FULL_FLUSH:Je,Z_FINISH:$e,Z_OK:et,Z_STREAM_END:tt,Z_DEFAULT_COMPRESSION:it,Z_DEFAULT_STRATEGY:st,Z_DEFLATED:rt}=O;function ot(e){this.options=Ve({level:it,method:rt,chunkSize:16384,windowBits:15,memLevel:8,strategy:st},e||{});let t=this.options;t.raw&&t.windowBits>0?t.windowBits=-t.windowBits:t.gzip&&t.windowBits>0&&t.windowBits<16&&(t.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new Xe,this.strm.avail_out=0;let i=Le(this.strm,t.level,t.method,t.windowBits,t.memLevel,t.strategy);if(i!==et)throw new Error(k[i]);if(t.header&&Ue(this.strm,t.header),t.dictionary){let e;if(e="string"==typeof t.dictionary?Ge(t.dictionary):"[object ArrayBuffer]"===Ye.call(t.dictionary)?new Uint8Array(t.dictionary):t.dictionary,i=Ne(this.strm,e),i!==et)throw new Error(k[i]);this._dict_set=!0}}function nt(e,t){const i=new ot(t);if(i.push(e,!0),i.err)throw i.msg||k[i.err];return i.result}ot.prototype.push=function(e,t){const i=this.strm,s=this.options.chunkSize;let r,o;if(this.ended)return!1;for(o=t===~~t?t:!0===t?$e:qe,"string"==typeof e?i.input=Ge(e):"[object ArrayBuffer]"===Ye.call(e)?i.input=new Uint8Array(e):i.input=e,i.next_in=0,i.avail_in=i.input.length;;)if(0===i.avail_out&&(i.output=new Uint8Array(s),i.next_out=0,i.avail_out=s),(o===Ze||o===Je)&&i.avail_out<=6)this.onData(i.output.subarray(0,i.next_out)),i.avail_out=0;else{if(r=ke(i,o),r===tt)return i.next_out>0&&this.onData(i.output.subarray(0,i.next_out)),r=Oe(this.strm),this.onEnd(r),this.ended=!0,r===et;if(0!==i.avail_out){if(o>0&&i.next_out>0)this.onData(i.output.subarray(0,i.next_out)),i.avail_out=0;else if(0===i.avail_in)break}else this.onData(i.output)}return!0},ot.prototype.onData=function(e){this.chunks.push(e)},ot.prototype.onEnd=function(e){e===et&&(this.result=je(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg};var at={Deflate:ot,deflate:nt,deflateRaw:function(e,t){return(t=t||{}).raw=!0,nt(e,t)},gzip:function(e,t){return(t=t||{}).gzip=!0,nt(e,t)},constants:O};const lt=16209;var At=function(e,t){let i,s,r,o,n,a,l,A,h,c,u,d,p,g,m,f,_,v,b,x,w,y,P,B;const C=e.state;i=e.next_in,P=e.input,s=i+(e.avail_in-5),r=e.next_out,B=e.output,o=r-(t-e.avail_out),n=r+(e.avail_out-257),a=C.dmax,l=C.wsize,A=C.whave,h=C.wnext,c=C.window,u=C.hold,d=C.bits,p=C.lencode,g=C.distcode,m=(1<>>24,u>>>=v,d-=v,v=_>>>16&255,0===v)B[r++]=65535&_;else{if(!(16&v)){if(0==(64&v)){_=p[(65535&_)+(u&(1<>>=v,d-=v),d<15&&(u+=P[i++]<>>24,u>>>=v,d-=v,v=_>>>16&255,!(16&v)){if(0==(64&v)){_=g[(65535&_)+(u&(1<a){e.msg="invalid distance too far back",C.mode=lt;break e}if(u>>>=v,d-=v,v=r-o,x>v){if(v=x-v,v>A&&C.sane){e.msg="invalid distance too far back",C.mode=lt;break e}if(w=0,y=c,0===h){if(w+=l-v,v2;)B[r++]=y[w++],B[r++]=y[w++],B[r++]=y[w++],b-=3;b&&(B[r++]=y[w++],b>1&&(B[r++]=y[w++]))}else{w=r-x;do{B[r++]=B[w++],B[r++]=B[w++],B[r++]=B[w++],b-=3}while(b>2);b&&(B[r++]=B[w++],b>1&&(B[r++]=B[w++]))}break}}break}}while(i>3,i-=b,d-=b<<3,u&=(1<{const l=a.bits;let A,h,c,u,d,p,g=0,m=0,f=0,_=0,v=0,b=0,x=0,w=0,y=0,P=0,B=null;const C=new Uint16Array(16),M=new Uint16Array(16);let E,F,I,D=null;for(g=0;g<=15;g++)C[g]=0;for(m=0;m=1&&0===C[_];_--);if(v>_&&(v=_),0===_)return r[o++]=20971520,r[o++]=20971520,a.bits=1,0;for(f=1;f<_&&0===C[f];f++);for(v0&&(0===e||1!==_))return-1;for(M[1]=0,g=1;g<15;g++)M[g+1]=M[g]+C[g];for(m=0;m852||2===e&&y>592)return 1;for(;;){E=g-x,n[m]+1=p?(F=D[n[m]-p],I=B[n[m]-p]):(F=96,I=0),A=1<>x)+h]=E<<24|F<<16|I|0}while(0!==h);for(A=1<>=1;if(0!==A?(P&=A-1,P+=A):P=0,m++,0==--C[g]){if(g===_)break;g=t[i+n[m]]}if(g>v&&(P&u)!==c){for(0===x&&(x=v),d+=f,b=g-x,w=1<852||2===e&&y>592)return 1;c=P&u,r[c]=v<<24|b<<16|d-o|0}}return 0!==P&&(r[d+P]=g-x<<24|64<<16|0),a.bits=v,0};const{Z_FINISH:gt,Z_BLOCK:mt,Z_TREES:ft,Z_OK:_t,Z_STREAM_END:vt,Z_NEED_DICT:bt,Z_STREAM_ERROR:xt,Z_DATA_ERROR:wt,Z_MEM_ERROR:yt,Z_BUF_ERROR:Pt,Z_DEFLATED:Bt}=O,Ct=16180,Mt=16190,Et=16191,Ft=16192,It=16194,Dt=16199,St=16200,Tt=16206,Rt=16209,Lt=e=>(e>>>24&255)+(e>>>8&65280)+((65280&e)<<8)+((255&e)<<24);function Ut(){this.strm=null,this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new Uint16Array(320),this.work=new Uint16Array(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}const kt=e=>{if(!e)return 1;const t=e.state;return!t||t.strm!==e||t.mode16211?1:0},Ot=e=>{if(kt(e))return xt;const t=e.state;return e.total_in=e.total_out=t.total=0,e.msg="",t.wrap&&(e.adler=1&t.wrap),t.mode=Ct,t.last=0,t.havedict=0,t.flags=-1,t.dmax=32768,t.head=null,t.hold=0,t.bits=0,t.lencode=t.lendyn=new Int32Array(852),t.distcode=t.distdyn=new Int32Array(592),t.sane=1,t.back=-1,_t},Nt=e=>{if(kt(e))return xt;const t=e.state;return t.wsize=0,t.whave=0,t.wnext=0,Ot(e)},Qt=(e,t)=>{let i;if(kt(e))return xt;const s=e.state;return t<0?(i=0,t=-t):(i=5+(t>>4),t<48&&(t&=15)),t&&(t<8||t>15)?xt:(null!==s.window&&s.wbits!==t&&(s.window=null),s.wrap=i,s.wbits=t,Nt(e))},Vt=(e,t)=>{if(!e)return xt;const i=new Ut;e.state=i,i.strm=e,i.window=null,i.mode=Ct;const s=Qt(e,t);return s!==_t&&(e.state=null),s};let jt,Ht,zt=!0;const Gt=e=>{if(zt){jt=new Int32Array(512),Ht=new Int32Array(32);let t=0;for(;t<144;)e.lens[t++]=8;for(;t<256;)e.lens[t++]=9;for(;t<280;)e.lens[t++]=7;for(;t<288;)e.lens[t++]=8;for(pt(1,e.lens,0,288,jt,0,e.work,{bits:9}),t=0;t<32;)e.lens[t++]=5;pt(2,e.lens,0,32,Ht,0,e.work,{bits:5}),zt=!1}e.lencode=jt,e.lenbits=9,e.distcode=Ht,e.distbits=5},Wt=(e,t,i,s)=>{let r;const o=e.state;return null===o.window&&(o.wsize=1<=o.wsize?(o.window.set(t.subarray(i-o.wsize,i),0),o.wnext=0,o.whave=o.wsize):(r=o.wsize-o.wnext,r>s&&(r=s),o.window.set(t.subarray(i-s,i-s+r),o.wnext),(s-=r)?(o.window.set(t.subarray(i-s,i),0),o.wnext=s,o.whave=o.wsize):(o.wnext+=r,o.wnext===o.wsize&&(o.wnext=0),o.whave{let i,s,r,o,n,a,l,A,h,c,u,d,p,g,m,f,_,v,b,x,w,y,P=0;const B=new Uint8Array(4);let C,M;const E=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]);if(kt(e)||!e.output||!e.input&&0!==e.avail_in)return xt;i=e.state,i.mode===Et&&(i.mode=Ft),n=e.next_out,r=e.output,l=e.avail_out,o=e.next_in,s=e.input,a=e.avail_in,A=i.hold,h=i.bits,c=a,u=l,y=_t;e:for(;;)switch(i.mode){case Ct:if(0===i.wrap){i.mode=Ft;break}for(;h<16;){if(0===a)break e;a--,A+=s[o++]<>>8&255,i.check=U(i.check,B,2,0),A=0,h=0,i.mode=16181;break}if(i.head&&(i.head.done=!1),!(1&i.wrap)||(((255&A)<<8)+(A>>8))%31){e.msg="incorrect header check",i.mode=Rt;break}if((15&A)!==Bt){e.msg="unknown compression method",i.mode=Rt;break}if(A>>>=4,h-=4,w=8+(15&A),0===i.wbits&&(i.wbits=w),w>15||w>i.wbits){e.msg="invalid window size",i.mode=Rt;break}i.dmax=1<>8&1),512&i.flags&&4&i.wrap&&(B[0]=255&A,B[1]=A>>>8&255,i.check=U(i.check,B,2,0)),A=0,h=0,i.mode=16182;case 16182:for(;h<32;){if(0===a)break e;a--,A+=s[o++]<>>8&255,B[2]=A>>>16&255,B[3]=A>>>24&255,i.check=U(i.check,B,4,0)),A=0,h=0,i.mode=16183;case 16183:for(;h<16;){if(0===a)break e;a--,A+=s[o++]<>8),512&i.flags&&4&i.wrap&&(B[0]=255&A,B[1]=A>>>8&255,i.check=U(i.check,B,2,0)),A=0,h=0,i.mode=16184;case 16184:if(1024&i.flags){for(;h<16;){if(0===a)break e;a--,A+=s[o++]<>>8&255,i.check=U(i.check,B,2,0)),A=0,h=0}else i.head&&(i.head.extra=null);i.mode=16185;case 16185:if(1024&i.flags&&(d=i.length,d>a&&(d=a),d&&(i.head&&(w=i.head.extra_len-i.length,i.head.extra||(i.head.extra=new Uint8Array(i.head.extra_len)),i.head.extra.set(s.subarray(o,o+d),w)),512&i.flags&&4&i.wrap&&(i.check=U(i.check,s,d,o)),a-=d,o+=d,i.length-=d),i.length))break e;i.length=0,i.mode=16186;case 16186:if(2048&i.flags){if(0===a)break e;d=0;do{w=s[o+d++],i.head&&w&&i.length<65536&&(i.head.name+=String.fromCharCode(w))}while(w&&d>9&1,i.head.done=!0),e.adler=i.check=0,i.mode=Et;break;case 16189:for(;h<32;){if(0===a)break e;a--,A+=s[o++]<>>=7&h,h-=7&h,i.mode=Tt;break}for(;h<3;){if(0===a)break e;a--,A+=s[o++]<>>=1,h-=1,3&A){case 0:i.mode=16193;break;case 1:if(Gt(i),i.mode=Dt,t===ft){A>>>=2,h-=2;break e}break;case 2:i.mode=16196;break;case 3:e.msg="invalid block type",i.mode=Rt}A>>>=2,h-=2;break;case 16193:for(A>>>=7&h,h-=7&h;h<32;){if(0===a)break e;a--,A+=s[o++]<>>16^65535)){e.msg="invalid stored block lengths",i.mode=Rt;break}if(i.length=65535&A,A=0,h=0,i.mode=It,t===ft)break e;case It:i.mode=16195;case 16195:if(d=i.length,d){if(d>a&&(d=a),d>l&&(d=l),0===d)break e;r.set(s.subarray(o,o+d),n),a-=d,o+=d,l-=d,n+=d,i.length-=d;break}i.mode=Et;break;case 16196:for(;h<14;){if(0===a)break e;a--,A+=s[o++]<>>=5,h-=5,i.ndist=1+(31&A),A>>>=5,h-=5,i.ncode=4+(15&A),A>>>=4,h-=4,i.nlen>286||i.ndist>30){e.msg="too many length or distance symbols",i.mode=Rt;break}i.have=0,i.mode=16197;case 16197:for(;i.have>>=3,h-=3}for(;i.have<19;)i.lens[E[i.have++]]=0;if(i.lencode=i.lendyn,i.lenbits=7,C={bits:i.lenbits},y=pt(0,i.lens,0,19,i.lencode,0,i.work,C),i.lenbits=C.bits,y){e.msg="invalid code lengths set",i.mode=Rt;break}i.have=0,i.mode=16198;case 16198:for(;i.have>>24,f=P>>>16&255,_=65535&P,!(m<=h);){if(0===a)break e;a--,A+=s[o++]<>>=m,h-=m,i.lens[i.have++]=_;else{if(16===_){for(M=m+2;h>>=m,h-=m,0===i.have){e.msg="invalid bit length repeat",i.mode=Rt;break}w=i.lens[i.have-1],d=3+(3&A),A>>>=2,h-=2}else if(17===_){for(M=m+3;h>>=m,h-=m,w=0,d=3+(7&A),A>>>=3,h-=3}else{for(M=m+7;h>>=m,h-=m,w=0,d=11+(127&A),A>>>=7,h-=7}if(i.have+d>i.nlen+i.ndist){e.msg="invalid bit length repeat",i.mode=Rt;break}for(;d--;)i.lens[i.have++]=w}}if(i.mode===Rt)break;if(0===i.lens[256]){e.msg="invalid code -- missing end-of-block",i.mode=Rt;break}if(i.lenbits=9,C={bits:i.lenbits},y=pt(1,i.lens,0,i.nlen,i.lencode,0,i.work,C),i.lenbits=C.bits,y){e.msg="invalid literal/lengths set",i.mode=Rt;break}if(i.distbits=6,i.distcode=i.distdyn,C={bits:i.distbits},y=pt(2,i.lens,i.nlen,i.ndist,i.distcode,0,i.work,C),i.distbits=C.bits,y){e.msg="invalid distances set",i.mode=Rt;break}if(i.mode=Dt,t===ft)break e;case Dt:i.mode=St;case St:if(a>=6&&l>=258){e.next_out=n,e.avail_out=l,e.next_in=o,e.avail_in=a,i.hold=A,i.bits=h,At(e,u),n=e.next_out,r=e.output,l=e.avail_out,o=e.next_in,s=e.input,a=e.avail_in,A=i.hold,h=i.bits,i.mode===Et&&(i.back=-1);break}for(i.back=0;P=i.lencode[A&(1<>>24,f=P>>>16&255,_=65535&P,!(m<=h);){if(0===a)break e;a--,A+=s[o++]<>v)],m=P>>>24,f=P>>>16&255,_=65535&P,!(v+m<=h);){if(0===a)break e;a--,A+=s[o++]<>>=v,h-=v,i.back+=v}if(A>>>=m,h-=m,i.back+=m,i.length=_,0===f){i.mode=16205;break}if(32&f){i.back=-1,i.mode=Et;break}if(64&f){e.msg="invalid literal/length code",i.mode=Rt;break}i.extra=15&f,i.mode=16201;case 16201:if(i.extra){for(M=i.extra;h>>=i.extra,h-=i.extra,i.back+=i.extra}i.was=i.length,i.mode=16202;case 16202:for(;P=i.distcode[A&(1<>>24,f=P>>>16&255,_=65535&P,!(m<=h);){if(0===a)break e;a--,A+=s[o++]<>v)],m=P>>>24,f=P>>>16&255,_=65535&P,!(v+m<=h);){if(0===a)break e;a--,A+=s[o++]<>>=v,h-=v,i.back+=v}if(A>>>=m,h-=m,i.back+=m,64&f){e.msg="invalid distance code",i.mode=Rt;break}i.offset=_,i.extra=15&f,i.mode=16203;case 16203:if(i.extra){for(M=i.extra;h>>=i.extra,h-=i.extra,i.back+=i.extra}if(i.offset>i.dmax){e.msg="invalid distance too far back",i.mode=Rt;break}i.mode=16204;case 16204:if(0===l)break e;if(d=u-l,i.offset>d){if(d=i.offset-d,d>i.whave&&i.sane){e.msg="invalid distance too far back",i.mode=Rt;break}d>i.wnext?(d-=i.wnext,p=i.wsize-d):p=i.wnext-d,d>i.length&&(d=i.length),g=i.window}else g=r,p=n-i.offset,d=i.length;d>l&&(d=l),l-=d,i.length-=d;do{r[n++]=g[p++]}while(--d);0===i.length&&(i.mode=St);break;case 16205:if(0===l)break e;r[n++]=i.length,l--,i.mode=St;break;case Tt:if(i.wrap){for(;h<32;){if(0===a)break e;a--,A|=s[o++]<{if(kt(e))return xt;let t=e.state;return t.window&&(t.window=null),e.state=null,_t},Zt=(e,t)=>{if(kt(e))return xt;const i=e.state;return 0==(2&i.wrap)?xt:(i.head=t,t.done=!1,_t)},Jt=(e,t)=>{const i=t.length;let s,r,o;return kt(e)?xt:(s=e.state,0!==s.wrap&&s.mode!==Mt?xt:s.mode===Mt&&(r=1,r=R(r,t,i,0),r!==s.check)?wt:(o=Wt(e,t,i,i),o?(s.mode=16210,yt):(s.havedict=1,_t)))},$t=function(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name="",this.comment="",this.hcrc=0,this.done=!1};const ei=Object.prototype.toString,{Z_NO_FLUSH:ti,Z_FINISH:ii,Z_OK:si,Z_STREAM_END:ri,Z_NEED_DICT:oi,Z_STREAM_ERROR:ni,Z_DATA_ERROR:ai,Z_MEM_ERROR:li}=O;function Ai(e){this.options=Ve({chunkSize:65536,windowBits:15,to:""},e||{});const t=this.options;t.raw&&t.windowBits>=0&&t.windowBits<16&&(t.windowBits=-t.windowBits,0===t.windowBits&&(t.windowBits=-15)),!(t.windowBits>=0&&t.windowBits<16)||e&&e.windowBits||(t.windowBits+=32),t.windowBits>15&&t.windowBits<48&&0==(15&t.windowBits)&&(t.windowBits|=15),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new Xe,this.strm.avail_out=0;let i=Xt(this.strm,t.windowBits);if(i!==si)throw new Error(k[i]);if(this.header=new $t,Zt(this.strm,this.header),t.dictionary&&("string"==typeof t.dictionary?t.dictionary=Ge(t.dictionary):"[object ArrayBuffer]"===ei.call(t.dictionary)&&(t.dictionary=new Uint8Array(t.dictionary)),t.raw&&(i=Jt(this.strm,t.dictionary),i!==si)))throw new Error(k[i])}function hi(e,t){const i=new Ai(t);if(i.push(e),i.err)throw i.msg||k[i.err];return i.result}Ai.prototype.push=function(e,t){const i=this.strm,s=this.options.chunkSize,r=this.options.dictionary;let o,n,a;if(this.ended)return!1;for(n=t===~~t?t:!0===t?ii:ti,"[object ArrayBuffer]"===ei.call(e)?i.input=new Uint8Array(e):i.input=e,i.next_in=0,i.avail_in=i.input.length;;){for(0===i.avail_out&&(i.output=new Uint8Array(s),i.next_out=0,i.avail_out=s),o=Yt(i,n),o===oi&&r&&(o=Jt(i,r),o===si?o=Yt(i,n):o===ai&&(o=oi));i.avail_in>0&&o===ri&&i.state.wrap>0&&0!==e[i.next_in];)Kt(i),o=Yt(i,n);switch(o){case ni:case ai:case oi:case li:return this.onEnd(o),this.ended=!0,!1}if(a=i.avail_out,i.next_out&&(0===i.avail_out||o===ri))if("string"===this.options.to){let e=Ke(i.output,i.next_out),t=i.next_out-e,r=We(i.output,e);i.next_out=t,i.avail_out=s-t,t&&i.output.set(i.output.subarray(e,e+t),0),this.onData(r)}else this.onData(i.output.length===i.next_out?i.output:i.output.subarray(0,i.next_out));if(o!==si||0!==a){if(o===ri)return o=qt(this.strm),this.onEnd(o),this.ended=!0,!0;if(0===i.avail_in)break}}return!0},Ai.prototype.onData=function(e){this.chunks.push(e)},Ai.prototype.onEnd=function(e){e===si&&("string"===this.options.to?this.result=this.chunks.join(""):this.result=je(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg};var ci={Inflate:Ai,inflate:hi,inflateRaw:function(e,t){return(t=t||{}).raw=!0,hi(e,t)},ungzip:hi,constants:O};const{Deflate:ui,deflate:di,deflateRaw:pi,gzip:gi}=at,{Inflate:mi,inflate:fi,inflateRaw:_i,ungzip:vi}=ci;var bi=ui,xi=di,wi=pi,yi=gi,Pi=mi,Bi=fi,Ci=_i,Mi=vi,Ei=O,Fi={Deflate:bi,deflate:xi,deflateRaw:wi,gzip:yi,Inflate:Pi,inflate:Bi,inflateRaw:Ci,ungzip:Mi,constants:Ei};e.Deflate=bi,e.Inflate=Pi,e.constants=Ei,e.default=Fi,e.deflate=xi,e.deflateRaw=wi,e.gzip=yi,e.inflate=Bi,e.inflateRaw=Ci,e.ungzip=Mi,Object.defineProperty(e,"__esModule",{value:!0})}));var yb=Object.freeze({__proto__:null});let Pb=window.pako||yb;Pb.inflate||(Pb=Pb.default);const Bb=function(){const e=new Float32Array(3);return function(t){return e[0]=t[0]/255,e[1]=t[1]/255,e[2]=t[2]/255,e}}();const Cb={version:1,parse:function(e,t,i,s,r,o){const n=function(e){return{positions:e[0],normals:e[1],indices:e[2],edgeIndices:e[3],meshPositions:e[4],meshIndices:e[5],meshEdgesIndices:e[6],meshColors:e[7],entityIDs:e[8],entityMeshes:e[9],entityIsObjects:e[10],positionsDecodeMatrix:e[11]}}(i),a=function(e){return{positions:new Uint16Array(Pb.inflate(e.positions).buffer),normals:new Int8Array(Pb.inflate(e.normals).buffer),indices:new Uint32Array(Pb.inflate(e.indices).buffer),edgeIndices:new Uint32Array(Pb.inflate(e.edgeIndices).buffer),meshPositions:new Uint32Array(Pb.inflate(e.meshPositions).buffer),meshIndices:new Uint32Array(Pb.inflate(e.meshIndices).buffer),meshEdgesIndices:new Uint32Array(Pb.inflate(e.meshEdgesIndices).buffer),meshColors:new Uint8Array(Pb.inflate(e.meshColors).buffer),entityIDs:Pb.inflate(e.entityIDs,{to:"string"}),entityMeshes:new Uint32Array(Pb.inflate(e.entityMeshes).buffer),entityIsObjects:new Uint8Array(Pb.inflate(e.entityIsObjects).buffer),positionsDecodeMatrix:new Float32Array(Pb.inflate(e.positionsDecodeMatrix).buffer)}}(n);!function(e,t,i,s,r,o){o.getNextId(),s.positionsCompression="precompressed",s.normalsCompression="precompressed";const n=i.positions,a=i.normals,l=i.indices,A=i.edgeIndices,h=i.meshPositions,c=i.meshIndices,u=i.meshEdgesIndices,p=i.meshColors,g=JSON.parse(i.entityIDs),m=i.entityMeshes,f=i.entityIsObjects,v=h.length,b=m.length;for(let r=0;rm[e]m[t]?1:0));for(let e=0;e1||(E[i]=e)}}for(let e=0;e1,o=Rb(f.subarray(4*t,4*t+3)),u=f[4*t+3]/255,v=a.subarray(d[t],i?a.length:d[t+1]),x=l.subarray(d[t],i?l.length:d[t+1]),w=A.subarray(p[t],i?A.length:p[t+1]),P=h.subarray(g[t],i?h.length:g[t+1]),M=c.subarray(m[t],m[t]+16);if(r){const e=`${n}-geometry.${t}`;s.createGeometry({id:e,primitive:"triangles",positionsCompressed:v,normalsCompressed:x,indices:w,edgeIndices:P,positionsDecodeMatrix:M})}else{const e=`${n}-${t}`;b[E[t]];const i={};s.createMesh(_.apply(i,{id:e,primitive:"triangles",positionsCompressed:v,normalsCompressed:x,indices:w,edgeIndices:P,positionsDecodeMatrix:M,color:o,opacity:u}))}}let F=0;for(let e=0;e1){const t={},r=`${n}-instance.${F++}`,o=`${n}-geometry.${i}`,a=16*w[e],A=u.subarray(a,a+16);s.createMesh(_.apply(t,{id:r,geometryId:o,matrix:A})),l.push(r)}else l.push(i)}if(l.length>0){const e={};s.createEntity(_.apply(e,{id:r,isObject:!0,meshIds:l}))}}}(0,0,a,s,0,o)}};let Ub=window.pako||yb;Ub.inflate||(Ub=Ub.default);const kb=function(){const e=new Float32Array(3);return function(t){return e[0]=t[0]/255,e[1]=t[1]/255,e[2]=t[2]/255,e}}();const Ob={version:5,parse:function(e,t,i,s,r,o){const n=function(e){return{positions:e[0],normals:e[1],indices:e[2],edgeIndices:e[3],matrices:e[4],eachPrimitivePositionsAndNormalsPortion:e[5],eachPrimitiveIndicesPortion:e[6],eachPrimitiveEdgeIndicesPortion:e[7],eachPrimitiveColor:e[8],primitiveInstances:e[9],eachEntityId:e[10],eachEntityPrimitiveInstancesPortion:e[11],eachEntityMatricesPortion:e[12]}}(i),a=function(e){return{positions:new Float32Array(Ub.inflate(e.positions).buffer),normals:new Int8Array(Ub.inflate(e.normals).buffer),indices:new Uint32Array(Ub.inflate(e.indices).buffer),edgeIndices:new Uint32Array(Ub.inflate(e.edgeIndices).buffer),matrices:new Float32Array(Ub.inflate(e.matrices).buffer),eachPrimitivePositionsAndNormalsPortion:new Uint32Array(Ub.inflate(e.eachPrimitivePositionsAndNormalsPortion).buffer),eachPrimitiveIndicesPortion:new Uint32Array(Ub.inflate(e.eachPrimitiveIndicesPortion).buffer),eachPrimitiveEdgeIndicesPortion:new Uint32Array(Ub.inflate(e.eachPrimitiveEdgeIndicesPortion).buffer),eachPrimitiveColor:new Uint8Array(Ub.inflate(e.eachPrimitiveColor).buffer),primitiveInstances:new Uint32Array(Ub.inflate(e.primitiveInstances).buffer),eachEntityId:Ub.inflate(e.eachEntityId,{to:"string"}),eachEntityPrimitiveInstancesPortion:new Uint32Array(Ub.inflate(e.eachEntityPrimitiveInstancesPortion).buffer),eachEntityMatricesPortion:new Uint32Array(Ub.inflate(e.eachEntityMatricesPortion).buffer)}}(n);!function(e,t,i,s,r,o){const n=o.getNextId();s.positionsCompression="disabled",s.normalsCompression="precompressed";const a=i.positions,l=i.normals,A=i.indices,h=i.edgeIndices,c=i.matrices,u=i.eachPrimitivePositionsAndNormalsPortion,d=i.eachPrimitiveIndicesPortion,p=i.eachPrimitiveEdgeIndicesPortion,g=i.eachPrimitiveColor,m=i.primitiveInstances,f=JSON.parse(i.eachEntityId),v=i.eachEntityPrimitiveInstancesPortion,b=i.eachEntityMatricesPortion,x=u.length,w=m.length,y=new Uint8Array(x),P=f.length;for(let e=0;e1||(B[i]=e)}}for(let e=0;e1,r=kb(g.subarray(4*e,4*e+3)),o=g[4*e+3]/255,c=a.subarray(u[e],t?a.length:u[e+1]),m=l.subarray(u[e],t?l.length:u[e+1]),v=A.subarray(d[e],t?A.length:d[e+1]),b=h.subarray(p[e],t?h.length:p[e+1]);if(i){const t=`${n}-geometry.${e}`;s.createGeometry({id:t,primitive:"triangles",positionsCompressed:c,normalsCompressed:m,indices:v,edgeIndices:b})}else{const t=e;f[B[e]];const i={};s.createMesh(_.apply(i,{id:t,primitive:"triangles",positionsCompressed:c,normalsCompressed:m,indices:v,edgeIndices:b,color:r,opacity:o}))}}let C=0;for(let e=0;e1){const t={},r="instance."+C++,o="geometry"+i,n=16*b[e],l=c.subarray(n,n+16);s.createMesh(_.apply(t,{id:r,geometryId:o,matrix:l})),a.push(r)}else a.push(i)}if(a.length>0){const e={};s.createEntity(_.apply(e,{id:r,isObject:!0,meshIds:a}))}}}(0,0,a,s,0,o)}};let Nb=window.pako||yb;Nb.inflate||(Nb=Nb.default);const Qb=function(){const e=new Float32Array(3);return function(t){return e[0]=t[0]/255,e[1]=t[1]/255,e[2]=t[2]/255,e}}();const Vb={version:6,parse:function(e,t,i,s,r,o){const n=function(e){return{positions:e[0],normals:e[1],indices:e[2],edgeIndices:e[3],matrices:e[4],reusedPrimitivesDecodeMatrix:e[5],eachPrimitivePositionsAndNormalsPortion:e[6],eachPrimitiveIndicesPortion:e[7],eachPrimitiveEdgeIndicesPortion:e[8],eachPrimitiveColorAndOpacity:e[9],primitiveInstances:e[10],eachEntityId:e[11],eachEntityPrimitiveInstancesPortion:e[12],eachEntityMatricesPortion:e[13],eachTileAABB:e[14],eachTileEntitiesPortion:e[15]}}(i),a=function(e){function t(e,t){return 0===e.length?[]:Nb.inflate(e,t).buffer}return{positions:new Uint16Array(t(e.positions)),normals:new Int8Array(t(e.normals)),indices:new Uint32Array(t(e.indices)),edgeIndices:new Uint32Array(t(e.edgeIndices)),matrices:new Float32Array(t(e.matrices)),reusedPrimitivesDecodeMatrix:new Float32Array(t(e.reusedPrimitivesDecodeMatrix)),eachPrimitivePositionsAndNormalsPortion:new Uint32Array(t(e.eachPrimitivePositionsAndNormalsPortion)),eachPrimitiveIndicesPortion:new Uint32Array(t(e.eachPrimitiveIndicesPortion)),eachPrimitiveEdgeIndicesPortion:new Uint32Array(t(e.eachPrimitiveEdgeIndicesPortion)),eachPrimitiveColorAndOpacity:new Uint8Array(t(e.eachPrimitiveColorAndOpacity)),primitiveInstances:new Uint32Array(t(e.primitiveInstances)),eachEntityId:Nb.inflate(e.eachEntityId,{to:"string"}),eachEntityPrimitiveInstancesPortion:new Uint32Array(t(e.eachEntityPrimitiveInstancesPortion)),eachEntityMatricesPortion:new Uint32Array(t(e.eachEntityMatricesPortion)),eachTileAABB:new Float64Array(t(e.eachTileAABB)),eachTileEntitiesPortion:new Uint32Array(t(e.eachTileEntitiesPortion))}}(n);!function(e,t,i,s,r,o){const n=o.getNextId(),a=i.positions,l=i.normals,A=i.indices,h=i.edgeIndices,c=i.matrices,u=i.reusedPrimitivesDecodeMatrix,p=i.eachPrimitivePositionsAndNormalsPortion,g=i.eachPrimitiveIndicesPortion,m=i.eachPrimitiveEdgeIndicesPortion,f=i.eachPrimitiveColorAndOpacity,v=i.primitiveInstances,b=JSON.parse(i.eachEntityId),x=i.eachEntityPrimitiveInstancesPortion,w=i.eachEntityMatricesPortion,y=i.eachTileAABB,P=i.eachTileEntitiesPortion,B=p.length,C=v.length,M=b.length,E=P.length,F=new Uint32Array(B);for(let e=0;e1,c=t===B-1,d=a.subarray(p[t],c?a.length:p[t+1]),b=l.subarray(p[t],c?l.length:p[t+1]),x=A.subarray(g[t],c?A.length:g[t+1]),w=h.subarray(m[t],c?h.length:m[t+1]),y=Qb(f.subarray(4*t,4*t+3)),P=f[4*t+3]/255,C=o.getNextId();if(r){const e=`${n}-geometry.${i}.${t}`;U[e]||(s.createGeometry({id:e,primitive:"triangles",positionsCompressed:d,indices:x,edgeIndices:w,positionsDecodeMatrix:u}),U[e]=!0),s.createMesh(_.apply(N,{id:C,geometryId:e,origin:I,matrix:E,color:y,opacity:P})),R.push(C)}else s.createMesh(_.apply(N,{id:C,origin:I,primitive:"triangles",positionsCompressed:d,normalsCompressed:b,indices:x,edgeIndices:w,positionsDecodeMatrix:L,color:y,opacity:P})),R.push(C)}R.length>0&&s.createEntity(_.apply(O,{id:P,isObject:!0,meshIds:R}))}}}(e,t,a,s,0,o)}};let jb=window.pako||yb;jb.inflate||(jb=jb.default);const Hb=function(){const e=new Float32Array(3);return function(t){return e[0]=t[0]/255,e[1]=t[1]/255,e[2]=t[2]/255,e}}();function zb(e){const t=[];for(let i=0,s=e.length;i1,d=t===F-1,B=Hb(P.subarray(6*e,6*e+3)),C=P[6*e+3]/255,M=P[6*e+4]/255,E=P[6*e+5]/255,I=o.getNextId();if(r){const r=y[e],o=u.slice(r,r+16),w=`${n}-geometry.${i}.${t}`;if(!Q[w]){let e,i,r,o,n,u;switch(g[t]){case 0:e="solid",i=a.subarray(m[t],d?a.length:m[t+1]),r=l.subarray(f[t],d?l.length:f[t+1]),n=h.subarray(b[t],d?h.length:b[t+1]),u=c.subarray(x[t],d?c.length:x[t+1]);break;case 1:e="surface",i=a.subarray(m[t],d?a.length:m[t+1]),r=l.subarray(f[t],d?l.length:f[t+1]),n=h.subarray(b[t],d?h.length:b[t+1]),u=c.subarray(x[t],d?c.length:x[t+1]);break;case 2:e="points",i=a.subarray(m[t],d?a.length:m[t+1]),o=zb(A.subarray(v[t],d?A.length:v[t+1]));break;case 3:e="lines",i=a.subarray(m[t],d?a.length:m[t+1]),n=h.subarray(b[t],d?h.length:b[t+1]);break;default:continue}s.createGeometry({id:w,primitive:e,positionsCompressed:i,normalsCompressed:r,colors:o,indices:n,edgeIndices:u,positionsDecodeMatrix:p}),Q[w]=!0}s.createMesh(_.apply(V,{id:I,geometryId:w,origin:R,matrix:o,color:B,metallic:M,roughness:E,opacity:C})),U.push(I)}else{let e,i,r,o,n,u;switch(g[t]){case 0:e="solid",i=a.subarray(m[t],d?a.length:m[t+1]),r=l.subarray(f[t],d?l.length:f[t+1]),n=h.subarray(b[t],d?h.length:b[t+1]),u=c.subarray(x[t],d?c.length:x[t+1]);break;case 1:e="surface",i=a.subarray(m[t],d?a.length:m[t+1]),r=l.subarray(f[t],d?l.length:f[t+1]),n=h.subarray(b[t],d?h.length:b[t+1]),u=c.subarray(x[t],d?c.length:x[t+1]);break;case 2:e="points",i=a.subarray(m[t],d?a.length:m[t+1]),o=zb(A.subarray(v[t],d?A.length:v[t+1]));break;case 3:e="lines",i=a.subarray(m[t],d?a.length:m[t+1]),n=h.subarray(b[t],d?h.length:b[t+1]);break;default:continue}s.createMesh(_.apply(V,{id:I,origin:R,primitive:e,positionsCompressed:i,normalsCompressed:r,colors:o,indices:n,edgeIndices:u,positionsDecodeMatrix:N,color:B,metallic:M,roughness:E,opacity:C})),U.push(I)}}U.length>0&&s.createEntity(_.apply(O,{id:E,isObject:!0,meshIds:U}))}}}(e,t,a,s,0,o)}};let Wb=window.pako||yb;Wb.inflate||(Wb=Wb.default);const Kb=d.vec4(),Xb=d.vec4();const Yb=function(){const e=new Float32Array(3);return function(t){return e[0]=t[0]/255,e[1]=t[1]/255,e[2]=t[2]/255,e}}();function qb(e){const t=[];for(let i=0,s=e.length;i1,l=r===L-1,A=Yb(F.subarray(6*e,6*e+3)),h=F[6*e+3]/255,c=F[6*e+4]/255,I=F[6*e+5]/255,D=o.getNextId();if(a){const o=E[e],a=v.slice(o,o+16),M=`${n}-geometry.${i}.${r}`;let F=j[M];if(!F){F={batchThisMesh:!t.reuseGeometries};let e=!1;switch(x[r]){case 0:F.primitiveName="solid",F.geometryPositions=u.subarray(w[r],l?u.length:w[r+1]),F.geometryNormals=p.subarray(y[r],l?p.length:y[r+1]),F.geometryIndices=m.subarray(B[r],l?m.length:B[r+1]),F.geometryEdgeIndices=f.subarray(C[r],l?f.length:C[r+1]),e=F.geometryPositions.length>0&&F.geometryIndices.length>0;break;case 1:F.primitiveName="surface",F.geometryPositions=u.subarray(w[r],l?u.length:w[r+1]),F.geometryNormals=p.subarray(y[r],l?p.length:y[r+1]),F.geometryIndices=m.subarray(B[r],l?m.length:B[r+1]),F.geometryEdgeIndices=f.subarray(C[r],l?f.length:C[r+1]),e=F.geometryPositions.length>0&&F.geometryIndices.length>0;break;case 2:F.primitiveName="points",F.geometryPositions=u.subarray(w[r],l?u.length:w[r+1]),F.geometryColors=qb(g.subarray(P[r],l?g.length:P[r+1])),e=F.geometryPositions.length>0;break;case 3:F.primitiveName="lines",F.geometryPositions=u.subarray(w[r],l?u.length:w[r+1]),F.geometryIndices=m.subarray(B[r],l?m.length:B[r+1]),e=F.geometryPositions.length>0&&F.geometryIndices.length>0;break;default:continue}if(e||(F=null),F&&(F.geometryPositions.length,F.batchThisMesh)){F.decompressedPositions=new Float32Array(F.geometryPositions.length);const e=F.geometryPositions,t=F.decompressedPositions;for(let i=0,s=e.length;i0&&n.length>0;break;case 1:e="surface",t=u.subarray(w[r],l?u.length:w[r+1]),i=p.subarray(y[r],l?p.length:y[r+1]),n=m.subarray(B[r],l?m.length:B[r+1]),a=f.subarray(C[r],l?f.length:C[r+1]),d=t.length>0&&n.length>0;break;case 2:e="points",t=u.subarray(w[r],l?u.length:w[r+1]),o=qb(g.subarray(P[r],l?g.length:P[r+1])),d=t.length>0;break;case 3:e="lines",t=u.subarray(w[r],l?u.length:w[r+1]),n=m.subarray(B[r],l?m.length:B[r+1]),d=t.length>0&&n.length>0;break;default:continue}d&&(s.createMesh(_.apply(z,{id:D,origin:Q,primitive:e,positionsCompressed:t,normalsCompressed:i,colorsCompressed:o,indices:n,edgeIndices:a,positionsDecodeMatrix:R,color:A,metallic:c,roughness:I,opacity:h})),T.push(D))}}T.length>0&&s.createEntity(_.apply(H,{id:A,isObject:!0,meshIds:T}))}}}(e,t,a,s,r,o)}};let Jb=window.pako||yb;Jb.inflate||(Jb=Jb.default);const $b=d.vec4(),ex=d.vec4();const tx=function(){const e=new Float32Array(3);return function(t){return e[0]=t[0]/255,e[1]=t[1]/255,e[2]=t[2]/255,e}}();const ix={version:9,parse:function(e,t,i,s,r,o){const n=function(e){return{metadata:e[0],positions:e[1],normals:e[2],colors:e[3],indices:e[4],edgeIndices:e[5],matrices:e[6],reusedGeometriesDecodeMatrix:e[7],eachGeometryPrimitiveType:e[8],eachGeometryPositionsPortion:e[9],eachGeometryNormalsPortion:e[10],eachGeometryColorsPortion:e[11],eachGeometryIndicesPortion:e[12],eachGeometryEdgeIndicesPortion:e[13],eachMeshGeometriesPortion:e[14],eachMeshMatricesPortion:e[15],eachMeshMaterial:e[16],eachEntityId:e[17],eachEntityMeshesPortion:e[18],eachTileAABB:e[19],eachTileEntitiesPortion:e[20]}}(i),a=function(e){function t(e,t){return 0===e.length?[]:Jb.inflate(e,t).buffer}return{metadata:JSON.parse(Jb.inflate(e.metadata,{to:"string"})),positions:new Uint16Array(t(e.positions)),normals:new Int8Array(t(e.normals)),colors:new Uint8Array(t(e.colors)),indices:new Uint32Array(t(e.indices)),edgeIndices:new Uint32Array(t(e.edgeIndices)),matrices:new Float32Array(t(e.matrices)),reusedGeometriesDecodeMatrix:new Float32Array(t(e.reusedGeometriesDecodeMatrix)),eachGeometryPrimitiveType:new Uint8Array(t(e.eachGeometryPrimitiveType)),eachGeometryPositionsPortion:new Uint32Array(t(e.eachGeometryPositionsPortion)),eachGeometryNormalsPortion:new Uint32Array(t(e.eachGeometryNormalsPortion)),eachGeometryColorsPortion:new Uint32Array(t(e.eachGeometryColorsPortion)),eachGeometryIndicesPortion:new Uint32Array(t(e.eachGeometryIndicesPortion)),eachGeometryEdgeIndicesPortion:new Uint32Array(t(e.eachGeometryEdgeIndicesPortion)),eachMeshGeometriesPortion:new Uint32Array(t(e.eachMeshGeometriesPortion)),eachMeshMatricesPortion:new Uint32Array(t(e.eachMeshMatricesPortion)),eachMeshMaterial:new Uint8Array(t(e.eachMeshMaterial)),eachEntityId:JSON.parse(Jb.inflate(e.eachEntityId,{to:"string"})),eachEntityMeshesPortion:new Uint32Array(t(e.eachEntityMeshesPortion)),eachTileAABB:new Float64Array(t(e.eachTileAABB)),eachTileEntitiesPortion:new Uint32Array(t(e.eachTileEntitiesPortion))}}(n);!function(e,t,i,s,r,o){const n=o.getNextId(),a=i.metadata,l=i.positions,A=i.normals,h=i.colors,c=i.indices,u=i.edgeIndices,p=i.matrices,g=i.reusedGeometriesDecodeMatrix,m=i.eachGeometryPrimitiveType,f=i.eachGeometryPositionsPortion,v=i.eachGeometryNormalsPortion,b=i.eachGeometryColorsPortion,x=i.eachGeometryIndicesPortion,w=i.eachGeometryEdgeIndicesPortion,y=i.eachMeshGeometriesPortion,P=i.eachMeshMatricesPortion,B=i.eachMeshMaterial,C=i.eachEntityId,M=i.eachEntityMeshesPortion,E=i.eachTileAABB,F=i.eachTileEntitiesPortion,I=f.length,D=y.length,S=M.length,T=F.length;r&&r.loadData(a,{includeTypes:t.includeTypes,excludeTypes:t.excludeTypes,globalizeObjectIds:t.globalizeObjectIds});const R=new Uint32Array(I);for(let e=0;e1,C=r===I-1,M=tx(B.subarray(6*e,6*e+3)),E=B[6*e+3]/255,F=B[6*e+4]/255,D=B[6*e+5]/255,S=o.getNextId();if(a){const o=P[e],a=p.slice(o,o+16),y=`${n}-geometry.${i}.${r}`;let B=k[y];if(!B){B={batchThisMesh:!t.reuseGeometries};let e=!1;switch(m[r]){case 0:B.primitiveName="solid",B.geometryPositions=l.subarray(f[r],C?l.length:f[r+1]),B.geometryNormals=A.subarray(v[r],C?A.length:v[r+1]),B.geometryIndices=c.subarray(x[r],C?c.length:x[r+1]),B.geometryEdgeIndices=u.subarray(w[r],C?u.length:w[r+1]),e=B.geometryPositions.length>0&&B.geometryIndices.length>0;break;case 1:B.primitiveName="surface",B.geometryPositions=l.subarray(f[r],C?l.length:f[r+1]),B.geometryNormals=A.subarray(v[r],C?A.length:v[r+1]),B.geometryIndices=c.subarray(x[r],C?c.length:x[r+1]),B.geometryEdgeIndices=u.subarray(w[r],C?u.length:w[r+1]),e=B.geometryPositions.length>0&&B.geometryIndices.length>0;break;case 2:B.primitiveName="points",B.geometryPositions=l.subarray(f[r],C?l.length:f[r+1]),B.geometryColors=h.subarray(b[r],C?h.length:b[r+1]),e=B.geometryPositions.length>0;break;case 3:B.primitiveName="lines",B.geometryPositions=l.subarray(f[r],C?l.length:f[r+1]),B.geometryIndices=c.subarray(x[r],C?c.length:x[r+1]),e=B.geometryPositions.length>0&&B.geometryIndices.length>0;break;default:continue}if(e||(B=null),B&&(B.geometryPositions.length,B.batchThisMesh)){B.decompressedPositions=new Float32Array(B.geometryPositions.length),B.transformedAndRecompressedPositions=new Uint16Array(B.geometryPositions.length);const e=B.geometryPositions,t=B.decompressedPositions;for(let i=0,s=e.length;i0&&n.length>0;break;case 1:e="surface",t=l.subarray(f[r],C?l.length:f[r+1]),i=A.subarray(v[r],C?A.length:v[r+1]),n=c.subarray(x[r],C?c.length:x[r+1]),a=u.subarray(w[r],C?u.length:w[r+1]),d=t.length>0&&n.length>0;break;case 2:e="points",t=l.subarray(f[r],C?l.length:f[r+1]),o=h.subarray(b[r],C?h.length:b[r+1]),d=t.length>0;break;case 3:e="lines",t=l.subarray(f[r],C?l.length:f[r+1]),n=c.subarray(x[r],C?c.length:x[r+1]),d=t.length>0&&n.length>0;break;default:continue}d&&(s.createMesh(_.apply(H,{id:S,origin:L,primitive:e,positionsCompressed:t,normalsCompressed:i,colorsCompressed:o,indices:n,edgeIndices:a,positionsDecodeMatrix:Q,color:M,metallic:F,roughness:D,opacity:E})),O.push(S))}}O.length>0&&s.createEntity(_.apply(j,{id:E,isObject:!0,meshIds:O}))}}}(e,t,a,s,r,o)}};let sx=window.pako||yb;sx.inflate||(sx=sx.default);const rx=d.vec4(),ox=d.vec4();const nx=function(){const e=new Float32Array(3);return function(t){return e[0]=t[0]/255,e[1]=t[1]/255,e[2]=t[2]/255,e}}();function ax(e,t){const i=[];if(t.length>1)for(let e=0,s=t.length-1;e1)for(let t=0,s=e.length/3-1;t0,a=9*e,c=1===h[a+0],u=h[a+1];h[a+2],h[a+3];const d=h[a+4],p=h[a+5],g=h[a+6],m=h[a+7],f=h[a+8];if(o){const t=new Uint8Array(l.subarray(i,r)).buffer,o=`${n}-texture-${e}`;if(c)s.createTexture({id:o,buffers:[t],minFilter:d,magFilter:p,wrapS:g,wrapT:m,wrapR:f});else{const e=new Blob([t],{type:10001===u?"image/jpeg":10002===u?"image/png":"image/gif"}),i=(window.URL||window.webkitURL).createObjectURL(e),r=document.createElement("img");r.src=i,s.createTexture({id:o,image:r,minFilter:d,magFilter:p,wrapS:g,wrapT:m,wrapR:f})}}}for(let e=0;e=0?`${n}-texture-${r}`:null,normalsTextureId:a>=0?`${n}-texture-${a}`:null,metallicRoughnessTextureId:o>=0?`${n}-texture-${o}`:null,emissiveTextureId:l>=0?`${n}-texture-${l}`:null,occlusionTextureId:A>=0?`${n}-texture-${A}`:null})}const H=new Uint32Array(N);for(let e=0;e1,l=r===N-1,A=D[e],h=A>=0?`${n}-textureSet-${A}`:null,T=nx(S.subarray(6*e,6*e+3)),R=S[6*e+3]/255,L=S[6*e+4]/255,O=S[6*e+5]/255,Q=o.getNextId();if(a){const o=I[e],a=b.slice(o,o+16),A=`${n}-geometry.${i}.${r}`;let F=W[A];if(!F){F={batchThisMesh:!t.reuseGeometries};let e=!1;switch(w[r]){case 0:F.primitiveName="solid",F.geometryPositions=c.subarray(y[r],l?c.length:y[r+1]),F.geometryNormals=u.subarray(P[r],l?u.length:P[r+1]),F.geometryUVs=g.subarray(C[r],l?g.length:C[r+1]),F.geometryIndices=m.subarray(M[r],l?m.length:M[r+1]),F.geometryEdgeIndices=f.subarray(E[r],l?f.length:E[r+1]),e=F.geometryPositions.length>0&&F.geometryIndices.length>0;break;case 1:F.primitiveName="surface",F.geometryPositions=c.subarray(y[r],l?c.length:y[r+1]),F.geometryNormals=u.subarray(P[r],l?u.length:P[r+1]),F.geometryUVs=g.subarray(C[r],l?g.length:C[r+1]),F.geometryIndices=m.subarray(M[r],l?m.length:M[r+1]),F.geometryEdgeIndices=f.subarray(E[r],l?f.length:E[r+1]),e=F.geometryPositions.length>0&&F.geometryIndices.length>0;break;case 2:F.primitiveName="points",F.geometryPositions=c.subarray(y[r],l?c.length:y[r+1]),F.geometryColors=p.subarray(B[r],l?p.length:B[r+1]),e=F.geometryPositions.length>0;break;case 3:F.primitiveName="lines",F.geometryPositions=c.subarray(y[r],l?c.length:y[r+1]),F.geometryIndices=m.subarray(M[r],l?m.length:M[r+1]),e=F.geometryPositions.length>0&&F.geometryIndices.length>0;break;case 4:F.primitiveName="lines",F.geometryPositions=c.subarray(y[r],l?c.length:y[r+1]),F.geometryIndices=ax(F.geometryPositions,m.subarray(M[r],l?m.length:M[r+1])),e=F.geometryPositions.length>0&&F.geometryIndices.length>0;break;default:continue}if(e||(F=null),F&&(F.geometryPositions.length,F.batchThisMesh)){F.decompressedPositions=new Float32Array(F.geometryPositions.length),F.transformedAndRecompressedPositions=new Uint16Array(F.geometryPositions.length);const e=F.geometryPositions,t=F.decompressedPositions;for(let i=0,s=e.length;i0&&a.length>0;break;case 1:e="surface",t=c.subarray(y[r],l?c.length:y[r+1]),i=u.subarray(P[r],l?u.length:P[r+1]),o=g.subarray(C[r],l?g.length:C[r+1]),a=m.subarray(M[r],l?m.length:M[r+1]),A=f.subarray(E[r],l?f.length:E[r+1]),d=t.length>0&&a.length>0;break;case 2:e="points",t=c.subarray(y[r],l?c.length:y[r+1]),n=p.subarray(B[r],l?p.length:B[r+1]),d=t.length>0;break;case 3:e="lines",t=c.subarray(y[r],l?c.length:y[r+1]),a=m.subarray(M[r],l?m.length:M[r+1]),d=t.length>0&&a.length>0;break;case 4:e="lines",t=c.subarray(y[r],l?c.length:y[r+1]),a=ax(t,m.subarray(M[r],l?m.length:M[r+1])),d=t.length>0&&a.length>0;break;default:continue}d&&(s.createMesh(_.apply(j,{id:Q,textureSetId:h,origin:z,primitive:e,positionsCompressed:t,normalsCompressed:i,uv:o&&o.length>0?o:null,colorsCompressed:n,indices:a,edgeIndices:A,positionsDecodeMatrix:v,color:T,metallic:L,roughness:O,opacity:R})),U.push(Q))}}U.length>0&&s.createEntity(_.apply(Q,{id:l,isObject:!0,meshIds:U}))}}}(e,t,a,s,r,o)}},Ax={};Ax[Cb.version]=Cb,Ax[Fb.version]=Fb,Ax[Sb.version]=Sb,Ax[Lb.version]=Lb,Ax[Ob.version]=Ob,Ax[Vb.version]=Vb,Ax[Gb.version]=Gb,Ax[Zb.version]=Zb,Ax[ix.version]=ix,Ax[lx.version]=lx;class hx extends Q{constructor(e,t={}){super("XKTLoader",e,t),this._maxGeometryBatchSize=t.maxGeometryBatchSize,this.textureTranscoder=t.textureTranscoder,this.dataSource=t.dataSource,this.objectDefaults=t.objectDefaults,this.includeTypes=t.includeTypes,this.excludeTypes=t.excludeTypes,this.excludeUnclassifiedObjects=t.excludeUnclassifiedObjects,this.reuseGeometries=t.reuseGeometries}get supportedVersions(){return Object.keys(Ax)}get textureTranscoder(){return this._textureTranscoder}set textureTranscoder(e){this._textureTranscoder=e}get dataSource(){return this._dataSource}set dataSource(e){this._dataSource=e||new wb}get objectDefaults(){return this._objectDefaults}set objectDefaults(e){this._objectDefaults=e||nb}get includeTypes(){return this._includeTypes}set includeTypes(e){this._includeTypes=e}get excludeTypes(){return this._excludeTypes}set excludeTypes(e){this._excludeTypes=e}get excludeUnclassifiedObjects(){return this._excludeUnclassifiedObjects}set excludeUnclassifiedObjects(e){this._excludeUnclassifiedObjects=!!e}get globalizeObjectIds(){return this._globalizeObjectIds}set globalizeObjectIds(e){this._globalizeObjectIds=!!e}get reuseGeometries(){return this._reuseGeometries}set reuseGeometries(e){this._reuseGeometries=!1!==e}load(e={}){if(e.id&&this.viewer.scene.components[e.id]&&(this.error("Component with this ID already exists in viewer: "+e.id+" - will autogenerate this ID"),delete e.id),!(e.src||e.xkt||e.manifestSrc||e.manifest))return this.error("load() param expected: src, xkt, manifestSrc or manifestData"),o;const t={},i=e.includeTypes||this._includeTypes,s=e.excludeTypes||this._excludeTypes,r=e.objectDefaults||this._objectDefaults;if(t.reuseGeometries=null!==e.reuseGeometries&&void 0!==e.reuseGeometries?e.reuseGeometries:!1!==this._reuseGeometries,i){t.includeTypesMap={};for(let e=0,s=i.length;e{o.finalize(),a.finalize(),this.viewer.scene.canvas.spinner.processes--,o.once("destroyed",(()=>{this.viewer.metaScene.destroyMetaModel(a.id)})),this.scheduleTask((()=>{o.destroyed||(o.scene.fire("modelLoaded",o.id),o.fire("loaded",!0,!1))}))},A=e=>{this.viewer.scene.canvas.spinner.processes--,this.error(e),o.fire("error",e)};let h=0;const c={getNextId:()=>`${n}.${h++}`};if(e.metaModelSrc||e.metaModelData)if(e.metaModelSrc){const r=e.metaModelSrc;this._dataSource.getMetaModel(r,(r=>{o.destroyed||(a.loadData(r,{includeTypes:i,excludeTypes:s,globalizeObjectIds:t.globalizeObjectIds}),e.src?this._loadModel(e.src,e,t,o,null,c,l,A):(this._parseModel(e.xkt,e,t,o,null,c),l()))}),(e=>{A(`load(): Failed to load model metadata for model '${n} from '${r}' - ${e}`)}))}else e.metaModelData&&(a.loadData(e.metaModelData,{includeTypes:i,excludeTypes:s,globalizeObjectIds:t.globalizeObjectIds}),e.src?this._loadModel(e.src,e,t,o,null,c,l,A):(this._parseModel(e.xkt,e,t,o,null,c),l()));else if(e.src)this._loadModel(e.src,e,t,o,a,c,l,A);else if(e.xkt)this._parseModel(e.xkt,e,t,o,a,c),l();else if(e.manifestSrc||e.manifest){const r=e.manifestSrc?function(e){const t=e.split("/");return t.pop(),t.join("/")+"/"}(e.manifestSrc):"",n=(e,o,n)=>{let l=0;const A=()=>{l>=e.length?o():this._dataSource.getMetaModel(`${r}${e[l]}`,(e=>{a.loadData(e,{includeTypes:i,excludeTypes:s,globalizeObjectIds:t.globalizeObjectIds}),l++,this.scheduleTask(A,100)}),n)};A()},h=(i,s,n)=>{let a=0;const l=()=>{a>=i.length?s():this._dataSource.getXKT(`${r}${i[a]}`,(i=>{this._parseModel(i,e,t,o,null,c),a++,this.scheduleTask(l,100)}),n)};l()},u=(i,s,n)=>{let l=0;const A=()=>{l>=i.length?s():this._dataSource.getXKT(`${r}${i[l]}`,(i=>{this._parseModel(i,e,t,o,a,c),l++,this.scheduleTask(A,100)}),n)};A()};if(e.manifest){const t=e.manifest,i=t.xktFiles;if(!i||0===i.length)return void A("load(): Failed to load model manifest - manifest not valid");const s=t.metaModelFiles;s?n(s,(()=>{h(i,l,A)}),A):u(i,l,A)}else this._dataSource.getManifest(e.manifestSrc,(e=>{if(o.destroyed)return;const t=e.xktFiles;if(!t||0===t.length)return void A("load(): Failed to load model manifest - manifest not valid");const i=e.metaModelFiles;i?n(i,(()=>{h(t,l,A)}),A):u(t,l,A)}),A)}return o}_loadModel(e,t,i,s,r,o,n,a){this._dataSource.getXKT(t.src,(e=>{this._parseModel(e,t,i,s,r,o),n()}),a)}_parseModel(e,t,i,s,r,o){if(s.destroyed)return;const n=new DataView(e),a=new Uint8Array(e),l=n.getUint32(0,!0),A=Ax[l];if(!A)return void this.error("Unsupported .XKT file version: "+l+" - this XKTLoaderPlugin supports versions "+Object.keys(Ax));this.log("Loading .xkt V"+l);const h=n.getUint32(4,!0),c=[];let u=4*(h+2);for(let e=0;ee.size)throw new RangeError("offset:"+t+", length:"+i+", size:"+e.size);return e.slice?e.slice(t,t+i):e.webkitSlice?e.webkitSlice(t,t+i):e.mozSlice?e.mozSlice(t,t+i):e.msSlice?e.msSlice(t,t+i):void 0}(e,t,i))}catch(e){r(e)}}}function p(){}function g(e){var i,s=this;s.init=function(e){i=new Blob([],{type:n}),e()},s.writeUint8Array=function(e,s){i=new Blob([i,t?e:e.buffer],{type:n}),s()},s.getData=function(t,s){var r=new FileReader;r.onload=function(e){t(e.target.result)},r.onerror=s,r.readAsText(i,e)}}function m(t){var i=this,s="",r="";i.init=function(e){s+="data:"+(t||"")+";base64,",e()},i.writeUint8Array=function(t,i){var o,n=r.length,a=r;for(r="",o=0;o<3*Math.floor((n+t.length)/3)-n;o++)a+=String.fromCharCode(t[o]);for(;o2?s+=e.btoa(a):r=a,i()},i.getData=function(t){t(s+e.btoa(r))}}function f(e){var i,s=this;s.init=function(t){i=new Blob([],{type:e}),t()},s.writeUint8Array=function(s,r){i=new Blob([i,t?s:s.buffer],{type:e}),r()},s.getData=function(e){e(i)}}function _(e,t,i,s,r,n,a,l,A,h){var c,u,d,p=0,g=t.sn;function m(){e.removeEventListener("message",f,!1),l(u,d)}function f(t){var i=t.data,r=i.data,o=i.error;if(o)return o.toString=function(){return"Error: "+this.message},void A(o);if(i.sn===g)switch("number"==typeof i.codecTime&&(e.codecTime+=i.codecTime),"number"==typeof i.crcTime&&(e.crcTime+=i.crcTime),i.type){case"append":r?(u+=r.length,s.writeUint8Array(r,(function(){_()}),h)):_();break;case"flush":d=i.crc,r?(u+=r.length,s.writeUint8Array(r,(function(){m()}),h)):m();break;case"progress":a&&a(c+i.loaded,n);break;case"importScripts":case"newTask":case"echo":break;default:console.warn("zip.js:launchWorkerProcess: unknown message: ",i)}}function _(){(c=p*o)<=n?i.readUint8Array(r+c,Math.min(o,n-c),(function(i){a&&a(c,n);var s=0===c?t:{sn:g};s.type="append",s.data=i;try{e.postMessage(s,[i.buffer])}catch(t){e.postMessage(s)}p++}),A):e.postMessage({sn:g,type:"flush"})}u=0,e.addEventListener("message",f,!1),_()}function v(e,t,i,s,r,n,l,A,h,c){var u,d=0,p=0,g="input"===n,m="output"===n,f=new a;!function n(){var a;if((u=d*o)127?r[i-128]:String.fromCharCode(i);return s}function w(e){return decodeURIComponent(escape(e))}function y(e){var t,i="";for(t=0;t>16,i=65535&e;try{return new Date(1980+((65024&t)>>9),((480&t)>>5)-1,31&t,(63488&i)>>11,(2016&i)>>5,2*(31&i),0)}catch(e){}}(e.lastModDateRaw),1!=(1&e.bitFlag)?((s||8!=(8&e.bitFlag))&&(e.crc32=t.view.getUint32(i+10,!0),e.compressedSize=t.view.getUint32(i+14,!0),e.uncompressedSize=t.view.getUint32(i+18,!0)),4294967295!==e.compressedSize&&4294967295!==e.uncompressedSize?(e.filenameLength=t.view.getUint16(i+22,!0),e.extraFieldLength=t.view.getUint16(i+24,!0)):r("File is using Zip64 (4gb+ file size).")):r("File contains encrypted entry.")}function B(t,o,n){var a=0;function l(){}l.prototype.getData=function(s,o,l,h){var c=this;function u(e,t){h&&!function(e){var t=A(4);return t.view.setUint32(0,e),c.crc32==t.view.getUint32(0)}(t)?n("CRC failed."):s.getData((function(e){o(e)}))}function d(e){n(e||r)}function p(e){n(e||"Error while writing file data.")}t.readUint8Array(c.offset,30,(function(r){var o,g=A(r.length,r);1347093252==g.view.getUint32(0)?(P(c,g,4,!1,n),o=c.offset+30+c.filenameLength+c.extraFieldLength,s.init((function(){0===c.compressionMethod?b(c._worker,a++,t,s,o,c.compressedSize,h,u,l,d,p):function(t,i,s,r,o,n,a,l,A,h,c){var u=a?"output":"none";e.zip.useWebWorkers?_(t,{sn:i,codecClass:"Inflater",crcType:u},s,r,o,n,A,l,h,c):v(new e.zip.Inflater,s,r,o,n,u,A,l,h,c)}(c._worker,a++,t,s,o,c.compressedSize,h,u,l,d,p)}),p)):n(i)}),d)};var h={getEntries:function(e){var r=this._worker;!function(e){t.size<22?n(i):r(22,(function(){r(Math.min(65558,t.size),(function(){n(i)}))}));function r(i,r){t.readUint8Array(t.size-i,i,(function(t){for(var i=t.length-22;i>=0;i--)if(80===t[i]&&75===t[i+1]&&5===t[i+2]&&6===t[i+3])return void e(new DataView(t.buffer,i,22));r()}),(function(){n(s)}))}}((function(o){var a,h;a=o.getUint32(16,!0),h=o.getUint16(8,!0),a<0||a>=t.size?n(i):t.readUint8Array(a,t.size-a,(function(t){var s,o,a,c,u=0,d=[],p=A(t.length,t);for(s=0;s>>8^i[255&(t^e[s])];this.crc=t},a.prototype.get=function(){return~this.crc},a.prototype.table=function(){var e,t,i,s=[];for(e=0;e<256;e++){for(i=e,t=0;t<8;t++)1&i?i=i>>>1^3988292384:i>>>=1;s[e]=i}return s}(),l.prototype.append=function(e,t){return e},l.prototype.flush=function(){},c.prototype=new h,c.prototype.constructor=c,u.prototype=new h,u.prototype.constructor=u,d.prototype=new h,d.prototype.constructor=d,p.prototype.getData=function(e){e(this.data)},g.prototype=new p,g.prototype.constructor=g,m.prototype=new p,m.prototype.constructor=m,f.prototype=new p,f.prototype.constructor=f;var F={deflater:["z-worker.js","deflate.js"],inflater:["z-worker.js","inflate.js"]};function I(t,i,s){if(null===e.zip.workerScripts||null===e.zip.workerScriptsPath){var r;if(e.zip.workerScripts){if(r=e.zip.workerScripts[t],!Array.isArray(r))return void s(new Error("zip.workerScripts."+t+" is not an array!"));r=function(e){var t=document.createElement("a");return e.map((function(e){return t.href=e,t.href}))}(r)}else(r=F[t].slice(0))[0]=(e.zip.workerScriptsPath||"")+r[0];var o=new Worker(r[0]);o.codecTime=o.crcTime=0,o.postMessage({type:"importScripts",scripts:r.slice(1)}),o.addEventListener("message",(function e(t){var r=t.data;if(r.error)return o.terminate(),void s(r.error);"importScripts"===r.type&&(o.removeEventListener("message",e),o.removeEventListener("error",n),i(o))})),o.addEventListener("error",n)}else s(new Error("Either zip.workerScripts or zip.workerScriptsPath may be set, not both."));function n(e){o.terminate(),s(e)}}function D(e){console.error(e)}e.zip={Reader:h,Writer:p,BlobReader:d,Data64URIReader:u,TextReader:c,BlobWriter:f,Data64URIWriter:m,TextWriter:g,createReader:function(e,t,i){i=i||D,e.init((function(){B(e,t,i)}),i)},createWriter:function(e,t,i,s){i=i||D,s=!!s,e.init((function(){E(e,t,i,s)}),i)},useWebWorkers:!0,workerScriptsPath:null,workerScripts:null}}(cx);!function(e){var t,i,s=e.Reader,r=e.Writer;try{i=0===new Blob([new DataView(new ArrayBuffer(0))]).size}catch(e){}function o(e){var t=this;function i(i,s){var r;t.data?i():((r=new XMLHttpRequest).addEventListener("load",(function(){t.size||(t.size=Number(r.getResponseHeader("Content-Length"))||Number(r.response.byteLength)),t.data=new Uint8Array(r.response),i()}),!1),r.addEventListener("error",s,!1),r.open("GET",e),r.responseType="arraybuffer",r.send())}t.size=0,t.init=function(s,r){if(function(e){var t=document.createElement("a");return t.href=e,"http:"===t.protocol||"https:"===t.protocol}(e)){var o=new XMLHttpRequest;o.addEventListener("load",(function(){t.size=Number(o.getResponseHeader("Content-Length")),t.size?s():i(s,r)}),!1),o.addEventListener("error",r,!1),o.open("HEAD",e),o.send()}else i(s,r)},t.readUint8Array=function(e,s,r,o){i((function(){r(new Uint8Array(t.data.subarray(e,e+s)))}),o)}}function n(e){var t=this;t.size=0,t.init=function(i,s){var r=new XMLHttpRequest;r.addEventListener("load",(function(){t.size=Number(r.getResponseHeader("Content-Length")),"bytes"==r.getResponseHeader("Accept-Ranges")?i():s("HTTP Range not supported.")}),!1),r.addEventListener("error",s,!1),r.open("HEAD",e),r.send()},t.readUint8Array=function(t,i,s,r){!function(t,i,s,r){var o=new XMLHttpRequest;o.open("GET",e),o.responseType="arraybuffer",o.setRequestHeader("Range","bytes="+t+"-"+(t+i-1)),o.addEventListener("load",(function(){s(o.response)}),!1),o.addEventListener("error",r,!1),o.send()}(t,i,(function(e){s(new Uint8Array(e))}),r)}}function a(e){var t=this;t.size=0,t.init=function(i,s){t.size=e.byteLength,i()},t.readUint8Array=function(t,i,s,r){s(new Uint8Array(e.slice(t,t+i)))}}function l(){var e,t=this;t.init=function(t,i){e=new Uint8Array,t()},t.writeUint8Array=function(t,i,s){var r=new Uint8Array(e.length+t.length);r.set(e),r.set(t,e.length),e=r,i()},t.getData=function(t){t(e.buffer)}}function A(e,t){var s,r=this;r.init=function(t,i){e.createWriter((function(e){s=e,t()}),i)},r.writeUint8Array=function(e,r,o){var n=new Blob([i?e:e.buffer],{type:t});s.onwrite=function(){s.onwrite=null,r()},s.onerror=o,s.write(n)},r.getData=function(t){e.file(t)}}o.prototype=new s,o.prototype.constructor=o,n.prototype=new s,n.prototype.constructor=n,a.prototype=new s,a.prototype.constructor=a,l.prototype=new r,l.prototype.constructor=l,A.prototype=new r,A.prototype.constructor=A,e.FileWriter=A,e.HttpReader=o,e.HttpRangeReader=n,e.ArrayBufferReader=a,e.ArrayBufferWriter=l,e.fs&&((t=e.fs.ZipDirectoryEntry).prototype.addHttpContent=function(i,s,r){return function(i,s,r,o){if(i.directory)return o?new t(i.fs,s,r,i):new e.fs.ZipFileEntry(i.fs,s,r,i);throw"Parent entry is not a directory."}(this,i,{data:s,Reader:r?n:o})},t.prototype.importHttpContent=function(e,t,i,s){this.importZip(t?new n(e):new o(e),i,s)},e.fs.FS.prototype.importHttpContent=function(e,i,s,r){this.entries=[],this.root=new t(this),this.root.importHttpContent(e,i,s,r)})}(cx.zip),d.vec2(),d.vec3(),d.vec3(),d.vec3();class ux{constructor(e,t){this.items=e||[],this._lastUniqueId=(t||0)+1}addItem(){let e;if(2===arguments.length){const t=arguments[0];if(e=arguments[1],this.items[t])throw"ID clash: '"+t+"'";return this.items[t]=e,t}for(e=arguments[0]||{};;){const t=this._lastUniqueId++;if(!this.items[t])return this.items[t]=e,t}}removeItem(e){const t=this.items[e];return delete this.items[e],t}}class dx{constructor(e,t,i,s){this.bimViewer=e?e.bimViewer||e:this,this.server=e?e.server:i,this.viewer=e?e.viewer:s,this._children=[],e&&e._children.push(this),this._subIdMap=null,this._subIdEvents=null,this._eventSubs=null,this._events=null,this._eventCallDepth=0,this._enabled=null,this._active=null}fire(e,t,i){this._events||(this._events={}),this._eventSubs||(this._eventSubs={}),!0!==i&&(this._events[e]=t||!0);const s=this._eventSubs[e];let r;if(s)for(const i in s)s.hasOwnProperty(i)&&(r=s[i],this._eventCallDepth++,this._eventCallDepth<300?r.callback.call(r.scope,t):this.error("fire: potential stack overflow from recursive event '"+e+"' - dropping this event"),this._eventCallDepth--)}on(e,t,i){this._events||(this._events={}),this._subIdMap||(this._subIdMap=new ux),this._subIdEvents||(this._subIdEvents={}),this._eventSubs||(this._eventSubs={});let s=this._eventSubs[e];s||(s={},this._eventSubs[e]=s);const r=this._subIdMap.addItem();s[r]={callback:t,scope:i||this},this._subIdEvents[r]=e;const o=this._events[e];return void 0!==o&&t.call(i||this,o),r}off(e){if(null==e)return;if(!this._subIdEvents)return;const t=this._subIdEvents[e];if(t){delete this._subIdEvents[e];const i=this._eventSubs[t];i&&delete i[e],this._subIdMap.removeItem(e)}}once(e,t,i){const s=this,r=this.on(e,(function(e){s.off(r),t.call(i||this,e)}),i)}log(e){e="[LOG] "+e,window.console.log(e)}warn(e){e="[WARN] "+e,window.console.warn(e)}error(e){e="[ERROR] "+e,window.console.error(e)}_mutexActivation(e){const t=e.length;for(let i=0;i
Default text
',i.appendChild(this._modal),this._modalVisible=!1,this._modal.style.display="hidden"}show(e){this._modalVisible=!0,this._modal.querySelector(".xeokit-busy-modal-message").innerText=e,this._modal.style.display="block"}hide(){this._modalVisible=!1,this._modal.style.display="none"}destroy(){super.destroy(),this._modal&&(this._modal.parentNode.removeChild(this._modal),this._modal=null)}}const gx=d.vec3();class mx extends dx{constructor(e,t={}){if(super(e,t),!t.buttonElement)throw"Missing config: buttonElement";const i=t.buttonElement,s=this.viewer.camera;this._modelMementos={},s.eye=[.577,.577,.577],s.look=[0,0,0],s.up=[-1,1,-1],this.bimViewer._modelsExplorer.on("modelLoaded",(e=>{this._saveModelMemento(e)})),this.bimViewer._modelsExplorer.on("modelUnloaded",(e=>{this._destroyModelMemento(e)})),this.on("enabled",(e=>{e?i.classList.remove("disabled"):i.classList.add("disabled")})),this.on("active",(e=>{e?i.classList.add("active"):i.classList.remove("active")})),i.addEventListener("click",(e=>{this.getEnabled()&&this.reset(),e.preventDefault()}))}_saveModelMemento(e){const t=this.viewer.metaScene.metaModels[e];if(!t)return;const i=new Ih;i.saveObjects(this.viewer.scene,t,{visible:!0,edges:!0,xrayed:!0,highlighted:!0,selected:!0,clippable:!0,pickable:!0,colorize:!1,opacity:!1}),this._modelMementos[e]=i}_restoreModelMemento(e){const t=this.viewer.metaScene.metaModels[e];if(!t)return;this._modelMementos[e].restoreObjects(this.viewer.scene,t)}_destroyModelMemento(e){delete this._modelMementos[e]}reset(){const e=this.viewer.scene.modelIds;for(var t=0,i=e.length;t{e?i.classList.remove("disabled"):i.classList.add("disabled")})),this.on("active",(e=>{e?i.classList.add("active"):i.classList.remove("active")})),i.addEventListener("click",(e=>{this.getEnabled()&&this.fit(),e.preventDefault()}))}fit(){const e=this.viewer.scene,t=e.getAABB(e.visibleObjectIds);this.viewer.cameraFlight.flyTo({aabb:t}),this.viewer.cameraControl.pivotPos=d.getAABB3Center(t,fx)}set fov(e){this.viewer.scene.cameraFlight.fitFOV=e}get fov(){return this.viewer.scene.cameraFlight.fitFOV}set duration(e){this.viewer.scene.cameraFlight.duration=e}get duration(){return this.viewer.scene.cameraFlight.duration}}class vx extends dx{constructor(e,t){if(super(e,t),!t.buttonElement)throw"Missing config: buttonElement";const i=t.buttonElement,s=this.viewer.cameraControl,r=t.cameraControlNavModeMediator;s.navMode="orbit",s.followPointer=!0,this.on("enabled",(e=>{e?i.classList.remove("disabled"):i.classList.add("disabled")})),this.on("active",(e=>{e?i.classList.add("active"):i.classList.remove("active")})),this.on("active",(e=>{r.setFirstPersonModeActive(e),e?(s.followPointer=!0,s.pivoting=!1):s.pivoting=!0})),i.addEventListener("click",(e=>{if(this.getEnabled()){const e=this.getActive();this.setActive(!e)}e.preventDefault()})),this.bimViewer.on("reset",(()=>{this.setActive(!1)}))}}class bx extends dx{constructor(e,t){if(super(e,t),!t.buttonElement)throw"Missing config: buttonElement";const i=t.buttonElement;this.on("enabled",(e=>{e?i.classList.remove("disabled"):i.classList.add("disabled")})),this.on("active",(e=>{e?(i.classList.add("active"),this.viewer.cameraControl.doublePickFlyTo=!1,this._onPick=this.viewer.cameraControl.on("picked",(e=>{e.entity&&(e.entity.visible=!1)}))):(i.classList.remove("active"),this.viewer.cameraControl.doublePickFlyTo=!1,void 0!==this._onPick&&(this.viewer.cameraControl.off(this._onPick),this._onPick=void 0))})),i.addEventListener("click",(e=>{if(this.getEnabled()){this.bimViewer._sectionTool.hideControl();const e=this.getActive();this.setActive(!e)}e.preventDefault()})),this.bimViewer.on("reset",(()=>{this.setActive(!1)}))}}class xx extends dx{constructor(e,t){if(super(e),!t.buttonElement)throw"Missing config: buttonElement";const i=t.buttonElement;this.on("enabled",(e=>{e?i.classList.remove("disabled"):i.classList.add("disabled")})),this.on("active",(e=>{e?(i.classList.add("active"),this._onPick=this.viewer.cameraControl.on("picked",(e=>{e.entity&&(e.entity.selected=!e.entity.selected)}))):(i.classList.remove("active"),void 0!==this._onPick&&(this.viewer.cameraControl.off(this._onPick),this._onPick=void 0))})),i.addEventListener("click",(e=>{if(this.getEnabled()){this.bimViewer._sectionTool.hideControl();const e=this.getActive();this.setActive(!e)}e.preventDefault()})),this.bimViewer.on("reset",(()=>{this.setActive(!1)}))}}class wx extends dx{constructor(e,t){if(super(e,t),!t.buttonElement)throw"Missing config: buttonElement";this._buttonElement=t.buttonElement,this.on("enabled",(e=>{e?this._buttonElement.classList.remove("disabled"):this._buttonElement.classList.add("disabled")})),this._buttonElement.addEventListener("click",(e=>{this.getEnabled()&&this.setActive(!this.getActive(),(()=>{})),e.preventDefault()})),this.bimViewer.on("reset",(()=>{this.setActive(!1)})),this.viewer.scene.on("modelLoaded",(e=>{if(!this._active){const e=this.viewer.metaScene.getObjectIDsByType("IfcSpace");this.viewer.scene.setObjectsCulled(e,!0)}})),this._active=!1,this._buttonElement.classList.remove("active")}setActive(e){this._active!==e&&(this._active=e,e?(this._buttonElement.classList.add("active"),this._enterShowSpacesMode(),this.fire("active",this._active)):(this._buttonElement.classList.remove("active"),this._exitShowSpacesMode(),this.fire("active",this._active)))}_enterShowSpacesMode(){const e=this.viewer,t=e.scene,i=e.metaScene.getObjectIDsByType("IfcSpace");t.setObjectsCulled(i,!1)}_exitShowSpacesMode(){const e=this.viewer,t=e.scene,i=e.metaScene.getObjectIDsByType("IfcSpace");t.setObjectsCulled(i,!0)}}class yx extends dx{constructor(e,t){super(e)}}const Px=d.AABB3(),Bx=d.vec3();class Cx extends n{constructor(e={}){if(!e.sectionPlanesPlugin)throw"Missing config: sectionPlanesPlugin";super(_.apply({},e)),this._sectionPlanesPlugin=e.sectionPlanesPlugin,this._viewer=this._sectionPlanesPlugin.viewer,this._onSceneSectionPlaneCreated=this._viewer.scene.on("sectionPlaneCreated",(()=>{this._buildMenu()})),this._onSceneSectionPlaneDestroyed=this._viewer.scene.on("sectionPlaneDestroyed",(()=>{this._buildMenu()})),this._buildMenu()}_buildMenu(){const e=this._sectionPlanesPlugin,t=Object.values(e.sectionPlanes),i=[];for(let s=0,r=t.length;s`${e.viewer.localeService.translate("sectionToolContextMenu.slice")||"Slice"} #`+(s+1),doHoverEnter(t){e.hideControl(),e.showControl(r.id)},doHoverLeave(t){e.hideControl()},items:[[{getTitle:e=>r.active?e.viewer.localeService.translate("sectionToolContextMenu.deactivate")||"Disable":e.viewer.localeService.translate("sectionToolContextMenu.activate")||"Enable",doAction:e=>{r.active=!r.active}},{getTitle:e=>e.viewer.localeService.translate("sectionToolContextMenu.edit")||"Edit",getEnabled:()=>r.active,doAction:t=>{e.hideControl(),e.showControl(r.id);const i=r.pos;Px.set(this._viewer.scene.aabb),d.getAABB3Center(Px,Bx),Px[0]+=i[0]-Bx[0],Px[1]+=i[1]-Bx[1],Px[2]+=i[2]-Bx[2],Px[3]+=i[0]-Bx[0],Px[4]+=i[1]-Bx[1],Px[5]+=i[2]-Bx[2],this._viewer.cameraFlight.flyTo({aabb:Px,fitFOV:65})}},{getTitle:e=>e.viewer.localeService.translate("sectionToolContextMenu.flip")||"Flip",getEnabled:()=>r.active,doAction:e=>{r.flipDir()}},{getTitle:e=>e.viewer.localeService.translate("sectionToolContextMenu.delete")||"Delete",doAction:e=>{r.destroy()}}]]})}this.items=[[{getTitle:e=>e.viewer.localeService.translate("sectionToolContextMenu.clearSlices")||"Clear Slices",getEnabled:e=>e.bimViewer.getNumSections()>0,doAction:e=>{e.bimViewer.clearSections()}},{getTitle:e=>e.viewer.localeService.translate("sectionToolContextMenu.flipSlices")||"Flip Slices",getEnabled:e=>e.bimViewer.getNumSections()>0,doAction:e=>{e.bimViewer.flipSections()}}],[{getTitle:e=>e.viewer.localeService.translate("sectionToolContextMenu.disableAllSlices")||"Disable all Slices",getEnabled:e=>e.bimViewer.getNumSections()>0,doAction:e=>{e.bimViewer.disableSections()}},{getTitle:e=>e.viewer.localeService.translate("sectionToolContextMenu.enableAllSlices")||"Enable all Slices",getEnabled:e=>e.bimViewer.getNumSections()>0,doAction:e=>{e.bimViewer.enableSections()}}],i]}destroy(){super.destroy();const e=this._viewer.scene;e.off(this._onSceneSectionPlaneCreated),e.off(this._onSceneSectionPlaneDestroyed)}}class Mx extends dx{constructor(e,t){if(super(e,t),!t.buttonElement)throw"Missing config: buttonElement";if(!t.menuButtonElement)throw"Missing config: menuButtonElement";this._buttonElement=t.buttonElement,this._counterElement=t.counterElement,this._menuButtonElement=t.menuButtonElement,this._menuButtonArrowElement=t.menuButtonArrowElement,this._sectionPlanesPlugin=new _b(this.viewer,{}),this._sectionToolContextMenu=new Cx({sectionPlanesPlugin:this._sectionPlanesPlugin,hideOnMouseDown:!1,hideOnAction:!1}),this._sectionPlanesPlugin.setOverviewVisible(!1),this.on("enabled",(e=>{e?(this._buttonElement.classList.remove("disabled"),this._counterElement&&this._counterElement.classList.remove("disabled"),this._menuButtonElement.classList.remove("disabled"),this._menuButtonArrowElement.classList.remove("disabled")):(this._buttonElement.classList.add("disabled"),this._counterElement&&this._counterElement.classList.add("disabled"),this._menuButtonElement.classList.add("disabled"),this._menuButtonArrowElement.classList.add("disabled"))})),this.on("active",(e=>{e?(this._buttonElement.classList.add("active"),this._counterElement&&this._counterElement.classList.add("active"),this._menuButtonElement.classList.add("active"),this._menuButtonArrowElement.classList.add("active")):(this._buttonElement.classList.remove("active"),this._counterElement&&this._counterElement.classList.remove("active"),this._menuButtonElement.classList.remove("active"),this._menuButtonArrowElement.classList.remove("active"))})),this.on("active",(e=>{e||this._sectionPlanesPlugin.hideControl()})),this._buttonElement.addEventListener("click",(e=>{if(!this.getEnabled())return;if(e.target===this._menuButtonElement||e.target.parentNode===this._menuButtonElement){if(this._sectionToolContextMenu.shown)this._sectionToolContextMenu.hide();else{this._sectionToolContextMenu.context={bimViewer:this.bimViewer,viewer:this.viewer,sectionTool:this};const e=this._menuButtonElement.getBoundingClientRect();this._sectionToolContextMenu.show(e.left,e.bottom+5)}return}const t=this.getActive();this.setActive(!t),e.preventDefault()})),this._sectionToolContextMenu.on("shown",(()=>{this._menuButtonArrowElement.classList.remove("xeokit-arrow-down"),this._menuButtonArrowElement.classList.add("xeokit-arrow-up")})),this._sectionToolContextMenu.on("hidden",(()=>{this._menuButtonArrowElement.classList.remove("xeokit-arrow-up"),this._menuButtonArrowElement.classList.add("xeokit-arrow-down")})),this.bimViewer.on("reset",(()=>{this.clear(),this.setActive(!1)})),this.viewer.scene.on("sectionPlaneCreated",(()=>{this._updateSectionPlanesCount()})),this.viewer.scene.on("sectionPlaneDestroyed",(()=>{this._updateSectionPlanesCount()})),this._initSectionMode()}_initSectionMode(){document.addEventListener("mouseup",(e=>{if(1===e.which){const t=function(e){if(e){let t=e.target,i=0,s=0;for(;t.offsetParent;)i+=t.offsetLeft,s+=t.offsetTop,t=t.offsetParent;return[e.pageX-i,e.pageY-s]}e=window.event,this.mouseCanvasPos[0]=e.x,this.mouseCanvasPos[1]=e.y}(e);if(!this.getActive()||!this.getEnabled())return;const i=this.viewer.scene.pick({canvasPos:t,pickSurface:!0});if(i){const e=this._sectionPlanesPlugin.createSectionPlane({pos:i.worldPos,dir:d.mulVec3Scalar(i.worldNormal,-1)});this._sectionPlanesPlugin.showControl(e.id)}}})),this._updateSectionPlanesCount()}_updateSectionPlanesCount(){this._counterElement&&(this._counterElement.innerText=""+this.getNumSections())}getNumSections(){return Object.keys(this.viewer.scene.sectionPlanes).length}clear(){this._sectionPlanesPlugin.clear(),this._updateSectionPlanesCount()}flipSections(){this._sectionPlanesPlugin.flipSectionPlanes()}enableSections(){const e=this.viewer.scene.sectionPlanes;for(let t in e){e[t].active=!0}}disableSections(){const e=this.viewer.scene.sectionPlanes;for(let t in e){e[t].active=!1}}hideControl(){this._sectionPlanesPlugin.hideControl()}destroy(){this._sectionPlanesPlugin.destroy(),this._sectionToolContextMenu.destroy(),super.destroy()}}class Ex extends dx{constructor(e,t){if(super(e,t),!t.navCubeCanvasElement)throw"Missing config: navCubeCanvasElement";const i=t.navCubeCanvasElement;this._navCube=new hb(this.viewer,{canvasElement:i,fitVisible:!0,color:"#CFCFCF"}),this._navCube.setVisible(this._active),this.on("active",(e=>{this._navCube.setVisible(e)}))}destroy(){this._navCube.destroy(),super.destroy()}}class Fx extends n{constructor(e={}){const t=!!e.enableEditModels,i=!!e.enableMeasurements,s=[[{getTitle:e=>e.viewer.localeService.translate("modelsContextMenu.loadModel")||"Load",getEnabled:e=>!e.bimViewer.isModelLoaded(e.modelId),doAction:e=>{e.bimViewer.loadModel(e.modelId)}},{getTitle:e=>e.viewer.localeService.translate("modelsContextMenu.unloadModel")||"Unload",getEnabled:e=>e.bimViewer.isModelLoaded(e.modelId),doAction:e=>{e.bimViewer.unloadModel(e.modelId)}}]];t&&s.push([{getTitle:e=>e.viewer.localeService.translate("modelsContextMenu.editModel")||"Edit",getEnabled:e=>!0,doAction:e=>{e.bimViewer.editModel(e.modelId)}},{getTitle:e=>e.viewer.localeService.translate("modelsContextMenu.deleteModel")||"Delete",getEnabled:e=>!0,doAction:e=>{e.bimViewer.deleteModel(e.modelId)}}]),s.push([{getTitle:e=>e.viewer.localeService.translate("modelsContextMenu.loadAllModels")||"Load All",getEnabled:e=>{const t=e.bimViewer,i=t.getModelIds();return t.getLoadedModelIds().length{e.bimViewer.loadAllModels()}},{getTitle:e=>e.viewer.localeService.translate("modelsContextMenu.unloadAllModels")||"Unload All",getEnabled:e=>e.bimViewer.getLoadedModelIds().length>0,doAction:e=>{e.bimViewer.unloadAllModels()}}]),s.push([{getTitle:e=>e.viewer.localeService.translate("modelsContextMenu.clearSlices")||"Clear Slices",getEnabled:e=>e.bimViewer.getNumSections()>0,doAction:e=>{e.bimViewer.clearSections()}}]),i&&s.push([{getTitle:e=>e.viewer.localeService.translate("canvasContextMenu.measurements")||"Measurements",doAction:function(e){},items:[[{getTitle:e=>e.viewer.localeService.translate("canvasContextMenu.clearMeasurements")||"Clear",getEnabled:e=>e.bimViewer.getNumMeasurements()>0,doAction:e=>{e.bimViewer.clearMeasurements()}},{getTitle:e=>e.bimViewer.getMeasurementsAxisVisible()?e.viewer.localeService.translate("canvasContextMenu.hideMeasurementAxisWires")||"Hide Axis Wires":e.viewer.localeService.translate("canvasContextMenu.showMeasurementAxisWires")||"Show Axis Wires",getEnabled:e=>e.bimViewer.getNumMeasurements()>0,doAction:e=>{e.bimViewer.setMeasurementsAxisVisible(!e.bimViewer.getMeasurementsAxisVisible())}},{getTitle:e=>e.bimViewer.getMeasurementsSnappingEnabled()?e.viewer.localeService.translate("canvasContextMenu.disableMeasurementSnapping")||"Disable Snapping":e.viewer.localeService.translate("canvasContextMenu.enableMeasurementSnapping")||"Enable Snapping",getEnabled:e=>e.bimViewer.getNumMeasurements()>0,doAction:e=>{e.bimViewer.setMeasurementsSnappingEnabled(!e.bimViewer.getMeasurementsSnappingEnabled())}}]]}]),super({hideOnAction:e.hideOnAction,context:e.context,items:s})}}const Ix=d.vec3();class Dx{constructor(e){this._server=e}setProjectId(e){this._projectId=e}setModelId(e){this._modelId=e}getManifest(e,t,i){this._server.getSplitModelManifest(this._projectId,this._modelId,e,t,i)}getMetaModel(e,t,i){this._server.getSplitModelMetadata(this._projectId,this._modelId,e,t,i)}getXKT(e,t,i){this._server.getSplitModelGeometry(this._projectId,this._modelId,e,t,i)}}class Sx extends dx{constructor(e,t){if(super(e,t),!t.modelsTabElement)throw"Missing config: modelsTabElement";if(!t.unloadModelsButtonElement)throw"Missing config: unloadModelsButtonElement";if(!t.modelsElement)throw"Missing config: modelsElement";if(this._enableAddModels=!!t.enableEditModels,this._modelsTabElement=t.modelsTabElement,this._loadModelsButtonElement=t.loadModelsButtonElement,this._unloadModelsButtonElement=t.unloadModelsButtonElement,this._addModelButtonElement=t.addModelButtonElement,this._modelsElement=t.modelsElement,this._modelsTabButtonElement=this._modelsTabElement.querySelector(".xeokit-tab-btn"),!this._modelsTabButtonElement)throw"Missing DOM element: ,xeokit-tab-btn";this._dataSource=new Dx(this.server),this._xktLoader=new hx(this.viewer,{dataSource:this._dataSource}),this._modelsContextMenu=new Fx({enableEditModels:t.enableEditModels,enableMeasurements:t.enableMeasurements,hideOnAction:!0}),this._modelsInfo={},this._numModels=0,this._numModelsLoaded=0,this._projectId=null}setObjectColors(e){this._xktLoader.objectDefaults=e}loadProject(e,t,i){this.server.getProject(e,(i=>{this.unloadProject(),this._projectId=e,this._modelsInfo={},this._numModels=0,this._parseProject(i,t),this._numModelsLoaded0&&this._unloadModelsButtonElement.classList.remove("disabled"),this._enableAddModels&&this._addModelButtonElement.classList.remove("disabled")}),(e=>{this.error(e),i&&i(e)}))}_parseProject(e,t){this._buildModelsMenu(e),this._parseViewerConfigs(e),this._parseViewerContent(e,(()=>{this._parseViewerState(e,(()=>{t()}))}))}_buildModelsMenu(e){var t="";const i=e.models||[];this._modelsInfo={},this._numModels=i.length;for(let e=0,s=i.length;e",t+=""+s.name+"",t+=""}this._modelsElement.innerHTML=t;for(let e=0,t=i.length;e{r.checked?this.loadModel(s):this.unloadModel(t.id)})),o.addEventListener("click",(()=>{!!this.viewer.scene.models[s]?this.unloadModel(t.id):this.loadModel(s)})),o.oncontextmenu=e=>{this._modelsContextMenu.context={bimViewer:this.bimViewer,viewer:this.viewer,modelId:s},this._modelsContextMenu.show(e.pageX,e.pageY),e.preventDefault()}}}_parseViewerConfigs(e){const t=e.viewerConfigs;t&&this.bimViewer.setConfigs(t)}_parseViewerContent(e,t){const i=e.viewerContent;i?this._parseModelsLoaded(i,(()=>{t()})):t()}_parseModelsLoaded(e,t){const i=e.modelsLoaded;i&&0!==i.length?this._loadNextModel(i.slice(0),t):t()}_loadNextModel(e,t){if(0===e.length)return void t();const i=e.pop();this.loadModel(i,(()=>{this._loadNextModel(e,t)}),(()=>{this._loadNextModel(e,t)}))}_parseViewerState(e,t){const i=e.viewerState;i?this.bimViewer.setViewerState(i,t):t()}unloadProject(){if(!this._projectId)return;const e=this.viewer.scene.models;for(var t in e)if(e.hasOwnProperty(t)){e[t].destroy()}this._modelsElement.innerHTML="",this._numModelsLoaded=0,this._loadModelsButtonElement.classList.add("disabled"),this._unloadModelsButtonElement.classList.add("disabled"),this._enableAddModels&&this._addModelButtonElement.classList.add("disabled");const i=this._projectId;this._projectId=null,this.fire("projectUnloaded",{projectId:i})}getLoadedProjectId(){return this._projectId}getModelIds(){return Object.keys(this._modelsInfo)}loadModel(e,t,i){if(!this._projectId){const e="No project currently loaded";return this.error(e),void(i&&i(e))}const s=this._modelsInfo[e];if(!s){const e="Model not in currently loaded project";return this.error(e),void(i&&i(e))}this.bimViewer._busyModal.show(`${this.viewer.localeService.translate("busyModal.loading")||"Loading"} ${s.name}`);this.bimViewer.getConfig("externalMetadata")&&!s.manifest?this.server.getMetadata(this._projectId,e,(r=>{this._loadGeometry(e,s,r,t,i)}),(e=>{this.bimViewer._busyModal.hide(),this.error(e),i&&i(e)})):this._loadGeometry(e,s,null,t,i)}_loadGeometry(e,t,i,s,r){const o=()=>{document.getElementById(""+e).checked=!0,this._numModelsLoaded++,this._unloadModelsButtonElement.classList.remove("disabled"),this._numModelsLoaded{this.bimViewer._busyModal.hide(),this.error(e),r&&r(e)};if(t.manifest){this._dataSource.setProjectId(this._projectId),this._dataSource.setModelId(e);const i=this._xktLoader.load({id:e,manifestSrc:t.manifest,excludeUnclassifiedObjects:!0,origin:t.origin||t.position,scale:t.scale,rotation:t.rotation,matrix:t.matrix,edges:!1!==t.edges,saoEnabled:t.saoEnabled,pbrEnabled:t.pbrEnabled,backfaces:t.backfaces,globalizeObjectIds:t.globalizeObjectIds,reuseGeometries:!1!==t.reuseGeometries});i.on("loaded",o),i.on("error",n)}else this.server.getGeometry(this._projectId,e,(s=>{const r=this._xktLoader.load({id:e,metaModelData:i,xkt:s,excludeUnclassifiedObjects:!0,origin:t.origin||t.position,scale:t.scale,rotation:t.rotation,matrix:t.matrix,edges:!1!==t.edges,saoEnabled:t.saoEnabled,pbrEnabled:t.pbrEnabled,backfaces:t.backfaces,globalizeObjectIds:t.globalizeObjectIds,reuseGeometries:!1!==t.reuseGeometries});r.on("loaded",o),r.on("error",n)}),n)}_jumpToInitialCamera(){const e=this.viewer,t=e.scene,i=t.getAABB(t.visibleObjectIds),s=d.getAABB3Diag(i),r=d.getAABB3Center(i,Ix),o=t.camera;o.perspective.fov;const n=Math.abs(s/Math.tan(45*d.DEGTORAD)),a=d.normalizeVec3(o.yUp?[-.5,-.7071,-.5]:[-1,1,-1]),l=d.normalizeVec3(o.yUp?[-.5,.7071,-.5]:[-1,1,1]);e.cameraControl.pivotPos=r,e.cameraControl.planView=!1,e.cameraFlight.jumpTo({look:r,eye:[r[0]-n*a[0],r[1]-n*a[1],r[2]-n*a[2]],up:l,orthoScale:1.1*s})}unloadModel(e){const t=this.viewer.scene.models[e];if(!t)return void this.error("Model not loaded: "+e);t.destroy();document.getElementById(""+e).checked=!1,document.getElementById("span-"+e),this._numModelsLoaded--,this._numModelsLoaded>0?this._unloadModelsButtonElement.classList.remove("disabled"):this._unloadModelsButtonElement.classList.add("disabled"),this._numModelsLoadede.viewer.localeService.translate("treeViewContextMenu.inspectProperties")||"Inspect Properties",getShown:e=>!!e.viewer.metaScene.metaObjects[e.treeViewNode.objectId],doAction:e=>{const t=e.treeViewNode.objectId;e.bimViewer.showObjectProperties(t)}}),i.push({getTitle:e=>e.viewer.localeService.translate("treeViewContextMenu.viewFit")||"View Fit",doAction:function(e){const t=e.viewer,i=t.scene,s=[];e.treeViewPlugin.withNodeTree(e.treeViewNode,(e=>{e.objectId&&s.push(e.objectId)})),i.setObjectsVisible(s,!0),i.setObjectsHighlighted(s,!0);const r=i.getAABB(s);t.cameraFlight.flyTo({aabb:r,duration:.5},(()=>{setTimeout((function(){i.setObjectsHighlighted(i.highlightedObjectIds,!1)}),500)})),t.cameraControl.pivotPos=d.getAABB3Center(r)}},{getTitle:e=>e.viewer.localeService.translate("canvasContextMenu.viewFitSelection")||"View Fit Selected",getEnabled:e=>e.viewer.scene.numSelectedObjects>0,doAction:e=>{const t=e.viewer,i=t.scene,s=i.getAABB(i.selectedObjectIds);t.cameraFlight.flyTo({aabb:s,duration:.5}),t.cameraControl.pivotPos=d.getAABB3Center(s)}},{getTitle:e=>e.viewer.localeService.translate("treeViewContextMenu.viewFitAll")||"View Fit All",doAction:function(e){const t=e.viewer,i=t.scene,s=i.getAABB(i.visibleObjectIds);t.cameraFlight.flyTo({aabb:s,duration:.5}),t.cameraControl.pivotPos=d.getAABB3Center(s)}}),r&&s.push({getTitle:e=>e.viewer.localeService.translate("canvasContextMenu.measurements")||"Measurements",doAction:function(e){},items:[[{getTitle:e=>e.viewer.localeService.translate("canvasContextMenu.clearMeasurements")||"Clear",getEnabled:e=>e.bimViewer.getNumMeasurements()>0,doAction:e=>{e.bimViewer.clearMeasurements()}},{getTitle:e=>e.bimViewer.getMeasurementsAxisVisible()?e.viewer.localeService.translate("canvasContextMenu.hideMeasurementAxisWires")||"Hide Axis Wires":e.viewer.localeService.translate("canvasContextMenu.showMeasurementAxisWires")||"Show Axis Wires",getEnabled:e=>e.bimViewer.getNumMeasurements()>0,doAction:e=>{e.bimViewer.setMeasurementsAxisVisible(!e.bimViewer.getMeasurementsAxisVisible())}},{getTitle:e=>e.bimViewer.getMeasurementsSnappingEnabled()?e.viewer.localeService.translate("canvasContextMenu.disableMeasurementSnapping")||"Disable Snapping":e.viewer.localeService.translate("canvasContextMenu.enableMeasurementSnapping")||"Enable Snapping",getEnabled:e=>e.bimViewer.getNumMeasurements()>0,doAction:e=>{e.bimViewer.setMeasurementsSnappingEnabled(!e.bimViewer.getMeasurementsSnappingEnabled())}}]]}),this.items=[t,i,[{getTitle:e=>e.viewer.localeService.translate("treeViewContextMenu.isolate")||"Isolate",doAction:function(e){const t=e.viewer,i=t.scene,s=[];e.treeViewPlugin.withNodeTree(e.treeViewNode,(e=>{e.objectId&&s.push(e.objectId)}));const r=i.getAABB(s);t.cameraControl.pivotPos=d.getAABB3Center(r,Tx),i.setObjectsXRayed(i.xrayedObjectIds,!1),i.setObjectsVisible(i.visibleObjectIds,!1),i.setObjectsSelected(i.selectedObjectIds,!1),i.setObjectsVisible(s,!0),t.cameraFlight.flyTo({aabb:r},(()=>{}))}}],[{getTitle:e=>e.viewer.localeService.translate("treeViewContextMenu.hide")||"Hide",doAction:function(e){e.treeViewPlugin.withNodeTree(e.treeViewNode,(t=>{if(t.objectId){const i=e.viewer.scene.objects[t.objectId];i&&(i.visible=!1)}}))}},{getTitle:e=>e.viewer.localeService.translate("treeViewContextMenu.hideOthers")||"Hide Others",doAction:function(e){const t=e.viewer.scene;t.setObjectsVisible(t.visibleObjectIds,!1),t.setObjectsPickable(t.xrayedObjectIds,!0),t.setObjectsXRayed(t.xrayedObjectIds,!1),e.treeViewPlugin.withNodeTree(e.treeViewNode,(e=>{if(e.objectId){const i=t.objects[e.objectId];i&&(i.visible=!0)}}))}},{getTitle:e=>e.viewer.localeService.translate("treeViewContextMenu.hideAll")||"Hide All",getEnabled:function(e){return e.viewer.scene.visibleObjectIds.length>0},doAction:function(e){e.viewer.scene.setObjectsVisible(e.viewer.scene.visibleObjectIds,!1)}}],[{getTitle:e=>e.viewer.localeService.translate("treeViewContextMenu.show")||"Show",doAction:function(e){e.treeViewPlugin.withNodeTree(e.treeViewNode,(t=>{if(t.objectId){const i=e.viewer.scene.objects[t.objectId];i&&(i.visible=!0,i.xrayed&&(i.pickable=!0),i.xrayed=!1,i.selected=!1)}}))}},{getTitle:e=>e.viewer.localeService.translate("treeViewContextMenu.showOthers")||"Shows Others",doAction:function(e){const t=e.viewer.scene;t.setObjectsVisible(t.objectIds,!0),t.setObjectsPickable(t.xrayedObjectIds,!0),t.setObjectsXRayed(t.xrayedObjectIds,!1),e.treeViewPlugin.withNodeTree(e.treeViewNode,(e=>{if(e.objectId){const i=t.objects[e.objectId];i&&(i.visible=!1)}}))}},{getTitle:e=>e.viewer.localeService.translate("treeViewContextMenu.showAll")||"Show All",getEnabled:function(e){const t=e.viewer.scene;return t.numVisibleObjects0},doAction:function(e){const t=e.viewer.scene;t.setObjectsVisible(t.objectIds,!0),t.setObjectsPickable(t.xrayedObjectIds,!0),t.setObjectsXRayed(t.xrayedObjectIds,!1)}}],[{getTitle:e=>e.viewer.localeService.translate("treeViewContextMenu.xray")||"X-Ray",doAction:function(e){e.treeViewPlugin.withNodeTree(e.treeViewNode,(t=>{if(t.objectId){const i=e.viewer.scene.objects[t.objectId];i&&(i.selected=!1,i.xrayed=!0,i.visible=!0,i.pickable=e.bimViewer.getConfig("xrayPickable"))}}))}},{getTitle:e=>e.viewer.localeService.translate("treeViewContextMenu.undoXray")||"Undo X-Ray",doAction:function(e){e.treeViewPlugin.withNodeTree(e.treeViewNode,(t=>{if(t.objectId){const i=e.viewer.scene.objects[t.objectId];i&&(i.xrayed=!1,i.pickable=!0)}}))}},{getTitle:e=>e.viewer.localeService.translate("treeViewContextMenu.xrayOthers")||"X-Ray Others",doAction:function(e){const t=e.viewer.scene;t.setObjectsVisible(t.objectIds,!0),e.bimViewer.getConfig("xrayPickable")||t.setObjectsPickable(t.objectIds,!1),t.setObjectsXRayed(t.objectIds,!0),t.setObjectsSelected(t.selectedObjectIds,!1),e.treeViewPlugin.withNodeTree(e.treeViewNode,(e=>{if(e.objectId){const i=t.objects[e.objectId];i&&(i.xrayed=!1,i.pickable=!0)}}))}},{getTitle:e=>e.viewer.localeService.translate("treeViewContextMenu.xrayAll")||"X-Ray All",doAction:function(e){const t=e.viewer.scene;t.setObjectsVisible(t.objectIds,!0),t.setObjectsXRayed(t.objectIds,!0),t.setObjectsSelected(t.selectedObjectIds,!1),t.setObjectsPickable(t.objectIds,!1)}},{getTitle:e=>e.viewer.localeService.translate("treeViewContextMenu.xrayNone")||"X-Ray None",getEnabled:function(e){return e.viewer.scene.numXRayedObjects>0},doAction:function(e){const t=e.viewer.scene,i=t.xrayedObjectIds;t.setObjectsPickable(i,!0),t.setObjectsXRayed(i,!1)}}],[{getTitle:e=>e.viewer.localeService.translate("treeViewContextMenu.select")||"Select",doAction:function(e){e.treeViewPlugin.withNodeTree(e.treeViewNode,(t=>{if(t.objectId){const i=e.viewer.scene.objects[t.objectId];i&&(i.selected=!0,i.visible=!0)}}))}},{getTitle:e=>e.viewer.localeService.translate("treeViewContextMenu.undoSelect")||"Undo Select",doAction:function(e){e.treeViewPlugin.withNodeTree(e.treeViewNode,(t=>{if(t.objectId){const i=e.viewer.scene.objects[t.objectId];i&&(i.selected=!1)}}))}},{getTitle:e=>e.viewer.localeService.translate("treeViewContextMenu.selectNone")||"Select None",getEnabled:function(e){return e.viewer.scene.numSelectedObjects>0},doAction:function(e){e.viewer.scene.setObjectsSelected(e.viewer.scene.selectedObjectIds,!1)}}],[{getTitle:e=>e.viewer.localeService.translate("treeViewContextMenu.clearSlices")||"Clear Slices",getEnabled:function(e){return e.bimViewer.getNumSections()>0},doAction:function(e){e.bimViewer.clearSections()}}],s]}}class Lx extends dx{constructor(e,t={}){if(super(e),!t.objectsTabElement)throw"Missing config: objectsTabElement";if(!t.showAllObjectsButtonElement)throw"Missing config: showAllObjectsButtonElement";if(!t.hideAllObjectsButtonElement)throw"Missing config: hideAllObjectsButtonElement";if(!t.objectsElement)throw"Missing config: objectsElement";if(this._objectsTabElement=t.objectsTabElement,this._showAllObjectsButtonElement=t.showAllObjectsButtonElement,this._hideAllObjectsButtonElement=t.hideAllObjectsButtonElement,this._objectsTabButtonElement=this._objectsTabElement.querySelector(".xeokit-tab-btn"),!this._objectsTabButtonElement)throw"Missing DOM element: ,xeokit-tab-btn";const i=t.objectsElement;this._treeView=new xb(this.viewer,{containerElement:i,hierarchy:"containment",autoAddModels:!1,pruneEmptyNodes:!0}),this._treeViewContextMenu=new Rx(this.bimViewer,{hideOnAction:!0,enableMeasurements:t.enableMeasurements}),this._treeView.on("contextmenu",(e=>{this._treeViewContextMenu.context={bimViewer:this.bimViewer,viewer:e.viewer,treeViewPlugin:e.treeViewPlugin,treeViewNode:e.treeViewNode},this._treeViewContextMenu.show(e.event.pageX,e.event.pageY)})),this._treeView.on("nodeTitleClicked",(e=>{const t=this.viewer.scene,i=[];e.treeViewPlugin.withNodeTree(e.treeViewNode,(e=>{e.objectId&&i.push(e.objectId)}));e.treeViewNode.checked?(t.setObjectsXRayed(i,!1),t.setObjectsVisible(i,!1),t.setObjectsPickable(i,!0)):(t.setObjectsXRayed(i,!1),t.setObjectsVisible(i,!0),t.setObjectsPickable(i,!0))})),this._onModelLoaded=this.viewer.scene.on("modelLoaded",(e=>{if(this.viewer.metaScene.metaModels[e]){const t=this.bimViewer._modelsExplorer.getModelInfo(e);if(!t)return;this._treeView.addModel(e,{rootName:t.name})}})),this._onModelUnloaded=this.viewer.scene.on("modelUnloaded",(e=>{this.viewer.metaScene.metaModels[e]&&this._treeView.removeModel(e)})),this.bimViewer.on("reset",(()=>{this._treeView.collapse()}))}setEnabled(e){e?(this._objectsTabButtonElement.classList.remove("disabled"),this._showAllObjectsButtonElement.classList.remove("disabled"),this._hideAllObjectsButtonElement.classList.remove("disabled")):(this._objectsTabButtonElement.classList.add("disabled"),this._showAllObjectsButtonElement.classList.add("disabled"),this._hideAllObjectsButtonElement.classList.add("disabled"))}expandTreeViewToDepth(e){this._treeView.expandToDepth(e)}showNodeInTreeView(e){this._treeView.collapse(),this._treeView.showNode(e)}unShowNodeInTreeView(){this._treeView.unShowNode()}destroy(){super.destroy(),this._treeView.destroy(),this._treeViewContextMenu.destroy(),this.viewer.scene.off(this._onModelLoaded),this.viewer.scene.off(this._onModelUnloaded)}}class Ux extends dx{constructor(e,t={}){if(super(e),!t.classesTabElement)throw"Missing config: classesTabElement";if(!t.showAllClassesButtonElement)throw"Missing config: showAllClassesButtonElement";if(!t.hideAllClassesButtonElement)throw"Missing config: hideAllClassesButtonElement";if(!t.classesElement)throw"Missing config: classesElement";if(this._classesTabElement=t.classesTabElement,this._showAllClassesButtonElement=t.showAllClassesButtonElement,this._hideAllClassesButtonElement=t.hideAllClassesButtonElement,this._classesTabButtonElement=this._classesTabElement.querySelector(".xeokit-tab-btn"),!this._classesTabButtonElement)throw"Missing DOM element: xeokit-tab-btn";const i=t.classesElement;this._treeView=new xb(this.viewer,{containerElement:i,hierarchy:"types",autoAddModels:!1,pruneEmptyNodes:!0}),this._treeViewContextMenu=new Rx(this.bimViewer,{hideOnAction:!0,enableMeasurements:t.enableMeasurements}),this._treeView.on("contextmenu",(e=>{this._treeViewContextMenu.context={bimViewer:this.bimViewer,viewer:e.viewer,treeViewPlugin:e.treeViewPlugin,treeViewNode:e.treeViewNode},this._treeViewContextMenu.show(e.event.pageX,e.event.pageY)})),this._treeView.on("nodeTitleClicked",(e=>{const t=this.viewer.scene,i=[];e.treeViewPlugin.withNodeTree(e.treeViewNode,(e=>{e.objectId&&i.push(e.objectId)}));e.treeViewNode.checked?(t.setObjectsXRayed(i,!1),t.setObjectsVisible(i,!1),t.setObjectsPickable(i,!0)):(t.setObjectsXRayed(i,!1),t.setObjectsVisible(i,!0),t.setObjectsPickable(i,!0))})),this._onModelLoaded=this.viewer.scene.on("modelLoaded",(e=>{if(this.viewer.metaScene.metaModels[e]){const t=this.bimViewer._modelsExplorer.getModelInfo(e);if(!t)return;this._treeView.addModel(e,{rootName:t.name})}})),this._onModelUnloaded=this.viewer.scene.on("modelUnloaded",(e=>{this.viewer.metaScene.metaModels[e]&&this._treeView.removeModel(e)})),this.bimViewer.on("reset",(()=>{this._treeView.collapse()}))}setEnabled(e){e?(this._classesTabButtonElement.classList.remove("disabled"),this._showAllClassesButtonElement.classList.remove("disabled"),this._hideAllClassesButtonElement.classList.remove("disabled")):(this._classesTabButtonElement.classList.add("disabled"),this._showAllClassesButtonElement.classList.add("disabled"),this._hideAllClassesButtonElement.classList.add("disabled"))}expandTreeViewToDepth(e){this._treeView.expandToDepth(e)}showNodeInTreeView(e){this._treeView.collapse(),this._treeView.showNode(e)}unShowNodeInTreeView(){this._treeView.unShowNode()}destroy(){super.destroy(),this._treeView.destroy(),this._treeViewContextMenu.destroy(),this.viewer.scene.off(this._onModelLoaded),this.viewer.scene.off(this._onModelUnloaded)}}const kx=d.vec3();class Ox extends dx{constructor(e,t={}){if(super(e),!t.storeysTabElement)throw"Missing config: storeysTabElement";if(!t.showAllStoreysButtonElement)throw"Missing config: showAllStoreysButtonElement";if(!t.hideAllStoreysButtonElement)throw"Missing config: hideAllStoreysButtonElement";if(!t.storeysElement)throw"Missing config: storeysElement";if(this._storeysTabElement=t.storeysTabElement,this._showAllStoreysButtonElement=t.showAllStoreysButtonElement,this._hideAllStoreysButtonElement=t.hideAllStoreysButtonElement,this._storeysTabButtonElement=this._storeysTabElement.querySelector(".xeokit-tab-btn"),!this._storeysTabButtonElement)throw"Missing DOM element: .xeokit-tab-btn";const i=t.storeysElement;this._treeView=new xb(this.viewer,{containerElement:i,autoAddModels:!1,hierarchy:"storeys",autoExpandDepth:1}),this._treeViewContextMenu=new Rx(this.bimViewer,{hideOnAction:!0,enableMeasurements:t.enableMeasurements}),this._treeView.on("contextmenu",(e=>{this._treeViewContextMenu.context={bimViewer:this.bimViewer,viewer:e.viewer,treeViewPlugin:e.treeViewPlugin,treeViewNode:e.treeViewNode,pruneEmptyNodes:!0},this._treeViewContextMenu.show(e.event.pageX,e.event.pageY)})),this._treeView.on("nodeTitleClicked",(e=>{const t=this.viewer.scene,i=[];e.treeViewPlugin.withNodeTree(e.treeViewNode,(e=>{e.objectId&&i.push(e.objectId)}));e.treeViewNode.checked?(t.setObjectsXRayed(i,!1),t.setObjectsVisible(i,!1),t.setObjectsPickable(i,!0)):(t.setObjectsXRayed(i,!1),t.setObjectsVisible(i,!0),t.setObjectsPickable(i,!0))})),this._onModelLoaded=this.viewer.scene.on("modelLoaded",(e=>{const t=this.bimViewer._modelsExplorer.getModelInfo(e);t&&this._treeView.addModel(e,{rootName:t.name})})),this._onModelUnloaded=this.viewer.scene.on("modelUnloaded",(e=>{this.viewer.metaScene.metaModels[e]&&this._treeView.removeModel(e)})),this.bimViewer.on("reset",(()=>{this._treeView.collapse(),this._treeView.expandToDepth(1)}))}setEnabled(e){e?(this._storeysTabButtonElement.classList.remove("disabled"),this._showAllStoreysButtonElement.classList.remove("disabled"),this._hideAllStoreysButtonElement.classList.remove("disabled")):(this._storeysTabButtonElement.classList.add("disabled"),this._showAllStoreysButtonElement.classList.add("disabled"),this._hideAllStoreysButtonElement.classList.add("disabled"))}expandTreeViewToDepth(e){this._treeView.expandToDepth(e)}showNodeInTreeView(e){this._treeView.collapse(),this._treeView.showNode(e)}unShowNodeInTreeView(){this._treeView.unShowNode()}selectStorey(e,t){const i=this.viewer.metaScene.metaObjects[e];if(!i)return void this.error("selectStorey() - object is not found: '"+e+"'");if("IfcBuildingStorey"!==i.type)return void this.error("selectStorey() - object is not found: '"+e+"'");const s=i.getObjectIDsInSubtree();this._selectObjects(s,t)}_selectObjects(e,t){const i=this.viewer.scene,s=i.getAABB(e);this.viewer.cameraControl.pivotPos=d.getAABB3Center(s,kx),t?(i.setObjectsXRayed(i.objectIds,!0),i.setObjectsVisible(i.objectIds,!0),i.setObjectsPickable(i.objectIds,!1),i.setObjectsSelected(i.selectedObjectIds,!1),i.setObjectsXRayed(e,!1),i.setObjectsVisible(e,!0),i.setObjectsPickable(e,!0),this.viewer.cameraFlight.flyTo({aabb:s},(()=>{setTimeout((function(){i.setObjectsVisible(i.xrayedObjectIds,!1),i.setObjectsXRayed(i.xrayedObjectIds,!1)}),500),t()}))):(i.setObjectsVisible(i.objectIds,!1),i.setObjectsPickable(i.xrayedObjectIds,!0),i.setObjectsXRayed(i.xrayedObjectIds,!1),i.setObjectsSelected(i.selectedObjectIds,!1),i.setObjectsVisible(e,!0),this.viewer.cameraFlight.jumpTo({aabb:s}))}destroy(){super.destroy(),this._treeView.destroy(),this._treeViewContextMenu.destroy(),this.viewer.scene.off(this._onModelLoaded),this.viewer.scene.off(this._onModelUnloaded)}}const Nx=d.vec3();class Qx extends dx{constructor(e,t){if(super(e,t),!t.buttonElement)throw"Missing config: buttonElement";this._saveOrthoActive=null,this._buttonElement=t.buttonElement,this._cameraControlNavModeMediator=t.cameraControlNavModeMediator,this._active=!1,this.on("enabled",(e=>{e?this._buttonElement.classList.remove("disabled"):this._buttonElement.classList.add("disabled")})),this._buttonElement.addEventListener("click",(e=>{this.getEnabled()&&(this.bimViewer._sectionTool.hideControl(),this.setActive(!this.getActive(),(()=>{}))),e.preventDefault()})),this.bimViewer.on("reset",(()=>{this.setActive(!0,(()=>{}))}))}setEnabled(e){super.setEnabled(e),this._saveOrthoActive=this.bimViewer._orthoMode.getActive()}setActive(e,t){this._active!==e?(this._active=e,e?(this._buttonElement.classList.add("active"),t?this._enterThreeDMode((()=>{this.fire("active",this._active),t()})):(this._enterThreeDMode(),this.fire("active",this._active))):(this._buttonElement.classList.remove("active"),t?this._exitThreeDMode((()=>{this.fire("active",this._active),t()})):(this._exitThreeDMode(),this.fire("active",this._active)))):t&&t()}_enterThreeDMode(e){const t=this.viewer,i=t.scene,s=i.getAABB(i.visibleObjectIds),r=d.getAABB3Diag(s),o=d.getAABB3Center(s,Nx),n=Math.abs(r/Math.tan(32.5)),a=i.camera,l=a.yUp?[-1,-1,-1]:[1,1,1],A=a.yUp?[-1,1,-1]:[-1,1,1];t.cameraControl.pivotPos=o,this.bimViewer._navCubeMode.setActive(!0),this.bimViewer._firstPersonMode.setEnabled(!0),this._cameraControlNavModeMediator.setThreeDModeActive(!0),this.bimViewer._sectionTool.setEnabled(!0),this.bimViewer._orthoMode.setEnabled(!0),e?t.cameraFlight.flyTo({look:o,eye:[o[0]-n*l[0],o[1]-n*l[1],o[2]-n*l[2]],up:A,orthoScale:1.3*r,duration:1,projection:this._saveOrthoActive?"ortho":"perspective"},(()=>{e()})):t.cameraFlight.jumpTo({look:o,eye:[o[0]-n*l[0],o[1]-n*l[1],o[2]-n*l[2]],up:A,orthoScale:1.3*r,projection:this._saveOrthoActive?"ortho":"perspective"})}_exitThreeDMode(e){const t=this.viewer,i=t.scene,s=i.camera,r=i.getAABB(i.visibleObjectIds),o=d.getAABB3Center(r),n=d.getAABB3Diag(r),a=Math.abs(n/Math.tan(45*d.DEGTORAD)),l=1.3*n,A=Nx;A[0]=o[0]+s.worldUp[0]*a,A[1]=o[1]+s.worldUp[1]*a,A[2]=o[2]+s.worldUp[2]*a;const h=d.mulVec3Scalar(s.worldForward,-1,[]);this.bimViewer._sectionTool.setActive(!1),this.bimViewer._firstPersonMode.setEnabled(!1),this._saveOrthoActive=this.bimViewer._orthoMode.getActive(),this.bimViewer._orthoMode.setEnabled(!1),this._cameraControlNavModeMediator.setThreeDModeActive(!1),e?t.cameraFlight.flyTo({eye:A,look:o,up:h,orthoScale:l,projection:"ortho"},(()=>{this.bimViewer._navCubeMode.setActive(!1)})):(t.cameraFlight.jumpTo({eye:A,look:o,up:h,orthoScale:l,projection:"ortho"}),this.bimViewer._navCubeMode.setActive(!1))}}class Vx extends n{constructor(e,t={}){super(t),this._bimViewer=e,this._buildMenu(t)}_buildMenu(e){const t=[],i=[],s=[],r=!!e.enableMeasurements;this._bimViewer._enablePropertiesInspector&&t.push({getTitle:e=>e.viewer.localeService.translate("objectContextMenu.inspectProperties")||"Inspect Properties",doAction:e=>{const t=e.entity.id;e.bimViewer.showObjectProperties(t)}}),t.push({getTitle:e=>e.viewer.localeService.translate("objectContextMenu.showInTree")||"Show in Explorer",doAction:e=>{const t=e.entity.id;e.showObjectInExplorers(t)}}),i.push({getTitle:e=>e.viewer.localeService.translate("objectContextMenu.viewFit")||"View Fit",doAction:e=>{const t=e.viewer,i=t.scene,s=e.entity;t.cameraFlight.flyTo({aabb:s.aabb,duration:.5},(()=>{setTimeout((function(){i.setObjectsHighlighted(i.highlightedObjectIds,!1)}),500)})),t.cameraControl.pivotPos=d.getAABB3Center(s.aabb)}},{getTitle:e=>e.viewer.localeService.translate("canvasContextMenu.viewFitSelection")||"View Fit Selected",getEnabled:e=>e.viewer.scene.numSelectedObjects>0,doAction:e=>{const t=e.viewer,i=t.scene,s=i.getAABB(i.selectedObjectIds);t.cameraFlight.flyTo({aabb:s,duration:.5}),t.cameraControl.pivotPos=d.getAABB3Center(s)}},{getTitle:e=>e.viewer.localeService.translate("objectContextMenu.viewFitAll")||"View Fit All",doAction:e=>{const t=e.viewer,i=t.scene,s=i.getAABB(i.visibleObjectIds);t.cameraFlight.flyTo({aabb:s,duration:.5}),t.cameraControl.pivotPos=d.getAABB3Center(s)}}),r&&s.push({getTitle:e=>e.viewer.localeService.translate("canvasContextMenu.measurements")||"Measurements",doAction:function(e){},items:[[{getTitle:e=>e.viewer.localeService.translate("canvasContextMenu.clearMeasurements")||"Clear",getEnabled:e=>e.bimViewer.getNumMeasurements()>0,doAction:e=>{e.bimViewer.clearMeasurements()}},{getTitle:e=>e.bimViewer.getMeasurementsAxisVisible()?e.viewer.localeService.translate("canvasContextMenu.hideMeasurementAxisWires")||"Hide Axis Wires":e.viewer.localeService.translate("canvasContextMenu.showMeasurementAxisWires")||"Show Axis Wires",getEnabled:e=>e.bimViewer.getNumMeasurements()>0,doAction:e=>{e.bimViewer.setMeasurementsAxisVisible(!e.bimViewer.getMeasurementsAxisVisible())}},{getTitle:e=>e.bimViewer.getMeasurementsSnappingEnabled()?e.viewer.localeService.translate("canvasContextMenu.disableMeasurementSnapping")||"Disable Snapping":e.viewer.localeService.translate("canvasContextMenu.enableMeasurementSnapping")||"Enable Snapping",getEnabled:e=>e.bimViewer.getNumMeasurements()>0,doAction:e=>{e.bimViewer.setMeasurementsSnappingEnabled(!e.bimViewer.getMeasurementsSnappingEnabled())}}]]}),this.items=[t,i,[{getTitle:e=>e.viewer.localeService.translate("objectContextMenu.hide")||"Hide",getEnabled:e=>e.entity.visible,doAction:e=>{e.entity.visible=!1}},{getTitle:e=>e.viewer.localeService.translate("objectContextMenu.hideOthers")||"Hide Others",doAction:e=>{const t=e.viewer,i=t.scene,s=e.entity,r=t.metaScene.metaObjects[s.id];r&&(i.setObjectsVisible(i.visibleObjectIds,!1),r.withMetaObjectsInSubtree((e=>{const t=i.objects[e.id];t&&(t.visible=!0)})))}},{getTitle:e=>e.viewer.localeService.translate("objectContextMenu.hideAll")||"Hide All",getEnabled:e=>e.viewer.scene.numVisibleObjects>0,doAction:e=>{e.viewer.scene.setObjectsVisible(e.viewer.scene.visibleObjectIds,!1)}},{getTitle:e=>e.viewer.localeService.translate("objectContextMenu.showAll")||"Show All",getEnabled:e=>{const t=e.viewer.scene;return t.numVisibleObjects0},doAction:e=>{const t=e.viewer.scene;t.setObjectsVisible(t.objectIds,!0),t.setObjectsPickable(t.xrayedObjectIds,!0),t.setObjectsXRayed(t.xrayedObjectIds,!1)}}],[{getTitle:e=>e.viewer.localeService.translate("objectContextMenu.xray")||"X-Ray",getEnabled:e=>!e.entity.xrayed,doAction:e=>{const t=e.entity;t.xrayed=!0,t.pickable=e.bimViewer.getConfig("xrayPickable")}},{getTitle:e=>e.viewer.localeService.translate("objectContextMenu.xrayOthers")||"X-Ray Others",doAction:e=>{const t=e.viewer,i=t.scene,s=e.entity,r=t.metaScene.metaObjects[s.id];r&&(i.setObjectsVisible(i.objectIds,!0),i.setObjectsXRayed(i.objectIds,!0),e.bimViewer.getConfig("xrayPickable")||i.setObjectsPickable(i.objectIds,!1),r.withMetaObjectsInSubtree((e=>{const t=i.objects[e.id];t&&(t.xrayed=!1,t.pickable=!0)})))}},{getTitle:e=>e.viewer.localeService.translate("objectContextMenu.xrayAll")||"X-Ray All",getEnabled:e=>{const t=e.viewer.scene;return t.numXRayedObjects{const t=e.viewer.scene;t.setObjectsVisible(t.objectIds,!0),e.bimViewer.getConfig("xrayPickable")||t.setObjectsPickable(t.objectIds,!1),t.setObjectsXRayed(t.objectIds,!0)}},{getTitle:e=>e.viewer.localeService.translate("objectContextMenu.xrayNone")||"X-Ray None",getEnabled:e=>e.viewer.scene.numXRayedObjects>0,doAction:e=>{const t=e.viewer.scene,i=t.xrayedObjectIds;t.setObjectsPickable(i,!0),t.setObjectsXRayed(i,!1)}}],[{getTitle:e=>e.viewer.localeService.translate("objectContextMenu.select")||"Select",getEnabled:e=>!e.entity.selected,doAction:e=>{e.entity.selected=!0}},{getTitle:e=>e.viewer.localeService.translate("objectContextMenu.undoSelect")||"Undo Select",getEnabled:e=>e.entity.selected,doAction:e=>{e.entity.selected=!1}},{getTitle:e=>e.viewer.localeService.translate("objectContextMenu.selectNone")||"Select None",getEnabled:e=>e.viewer.scene.numSelectedObjects>0,doAction:e=>{e.viewer.scene.setObjectsSelected(e.viewer.scene.selectedObjectIds,!1)}}],[{getTitle:e=>e.viewer.localeService.translate("objectContextMenu.clearSlices")||"Clear Slices",getEnabled:e=>e.bimViewer.getNumSections()>0,doAction:e=>{e.bimViewer.clearSections()}}],s]}}class jx extends n{constructor(e,t={}){super({hideOnAction:t.hideOnAction,context:t.context,items:[[{getTitle:e=>e.viewer.localeService.translate("canvasContextMenu.viewFitAll")||"View Fit All",doAction:e=>{const t=e.viewer,i=t.scene,s=i.getAABB(i.visibleObjectIds);t.cameraFlight.flyTo({aabb:s,duration:.5}),t.cameraControl.pivotPos=d.getAABB3Center(s)}},{getTitle:e=>e.viewer.localeService.translate("canvasContextMenu.viewFitSelection")||"View Fit Selected",getEnabled:e=>e.viewer.scene.numSelectedObjects>0,doAction:e=>{const t=e.viewer,i=t.scene,s=i.getAABB(i.selectedObjectIds);t.cameraFlight.flyTo({aabb:s,duration:.5}),t.cameraControl.pivotPos=d.getAABB3Center(s)}}],[{getTitle:e=>e.viewer.localeService.translate("canvasContextMenu.hideAll")||"Hide All",getEnabled:e=>e.viewer.scene.numVisibleObjects>0,doAction:e=>{e.viewer.scene.setObjectsVisible(e.viewer.scene.visibleObjectIds,!1)}},{getTitle:e=>e.viewer.localeService.translate("canvasContextMenu.showAll")||"Show All",getEnabled:e=>{const t=e.viewer.scene;return t.numVisibleObjects0},doAction:e=>{const t=e.viewer.scene;t.setObjectsVisible(t.objectIds,!0),t.setObjectsXRayed(t.xrayedObjectIds,!1)}}],[{getTitle:e=>e.viewer.localeService.translate("canvasContextMenu.xRayAll")||"X-Ray All",getEnabled:e=>{const t=e.viewer.scene;return t.numXRayedObjects{const t=e.viewer.scene;t.setObjectsVisible(t.objectIds,!0),t.setObjectsXRayed(t.objectIds,!0),e.bimViewer.getConfig("xrayPickable")||t.setObjectsPickable(t.objectIds,!1)}},{getTitle:e=>e.viewer.localeService.translate("canvasContextMenu.xRayNone")||"X-Ray None",getEnabled:e=>e.viewer.scene.numXRayedObjects>0,doAction:e=>{const t=e.viewer.scene.xrayedObjectIds;e.viewer.scene.setObjectsPickable(t,!0),e.viewer.scene.setObjectsXRayed(t,!1)}}],[{getTitle:e=>e.viewer.localeService.translate("canvasContextMenu.selectNone")||"Select None",getEnabled:e=>e.viewer.scene.numSelectedObjects>0,doAction:e=>{e.viewer.scene.setObjectsSelected(e.viewer.scene.selectedObjectIds,!1)}}],[{getTitle:e=>e.viewer.localeService.translate("canvasContextMenu.resetView")||"Reset View",doAction:e=>{e.bimViewer.resetView()}}],[{getTitle:e=>e.viewer.localeService.translate("canvasContextMenu.clearSlices")||"Clear Slices",getEnabled:e=>e.bimViewer.getNumSections()>0,doAction:e=>{e.bimViewer.clearSections()}}],t.enableMeasurements?[{getTitle:e=>"Measurements",doAction:function(e){},items:[[{getTitle:e=>e.viewer.localeService.translate("canvasContextMenu.clearMeasurements")||"Clear",getEnabled:e=>e.bimViewer.getNumMeasurements()>0,doAction:e=>{e.bimViewer.clearMeasurements()}},{getTitle:e=>e.bimViewer.getMeasurementsAxisVisible()?e.viewer.localeService.translate("canvasContextMenu.hideMeasurementAxisWires")||"Hide Axis Wires":e.viewer.localeService.translate("canvasContextMenu.showMeasurementAxisWires")||"Show Axis Wires",getEnabled:e=>e.bimViewer.getNumMeasurements()>0,doAction:e=>{e.bimViewer.setMeasurementsAxisVisible(!e.bimViewer.getMeasurementsAxisVisible())}},{getTitle:e=>e.bimViewer.getMeasurementsSnappingEnabled()?e.viewer.localeService.translate("canvasContextMenu.disableMeasurementSnapping")||"Disable Snapping":e.viewer.localeService.translate("canvasContextMenu.enableMeasurementSnapping")||"Enable Snapping",getEnabled:e=>e.bimViewer.getNumMeasurements()>0,doAction:e=>{e.bimViewer.setMeasurementsSnappingEnabled(!e.bimViewer.getMeasurementsSnappingEnabled())}}]]}]:[]]})}}class Hx extends dx{constructor(e,t){if(super(e,t),!t.buttonElement)throw"Missing config: buttonElement";this._buttonElement=t.buttonElement,this.on("enabled",(e=>{e?this._buttonElement.classList.remove("disabled"):this._buttonElement.classList.add("disabled")})),this._buttonElement.addEventListener("click",(e=>{this.getEnabled()&&this.setActive(!this.getActive(),(()=>{})),e.preventDefault()})),this.bimViewer.on("reset",(()=>{this.setActive(!1)})),this.viewer.camera.on("projection",(()=>{const e="ortho"===this.viewer.camera.projection;this._active=e,this._active?this._buttonElement.classList.add("active"):this._buttonElement.classList.remove("active")})),this._active=!1,this._buttonElement.classList.remove("active")}setActive(e,t){this._active!==e?(this._active=e,e?(this._buttonElement.classList.add("active"),t?this._enterOrthoMode((()=>{this.fire("active",this._active),t()})):(this._enterOrthoMode(),this.fire("active",this._active))):(this._buttonElement.classList.remove("active"),t?this._exitOrthoMode((()=>{this.fire("active",this._active),t()})):(this._exitOrthoMode(),this.fire("active",this._active)))):t&&t()}_enterOrthoMode(e){e?this.viewer.cameraFlight.flyTo({projection:"ortho",duration:.5},e):this.viewer.cameraFlight.jumpTo({projection:"ortho"})}_exitOrthoMode(e){e?this.viewer.cameraFlight.flyTo({projection:"perspective",duration:.5},e):this.viewer.cameraFlight.jumpTo({projection:"perspective"})}}class zx extends dx{constructor(e,t={}){if(super(e),!t.propertiesTabElement)throw"Missing config: propertiesTabElement";if(!t.propertiesElement)throw"Missing config: propertiesElement";if(this._metaObject=null,this._propertiesTabElement=t.propertiesTabElement,this._propertiesElement=t.propertiesElement,this._propertiesTabButtonElement=this._propertiesTabElement.querySelector(".xeokit-tab-btn"),!this._propertiesTabButtonElement)throw"Missing DOM element: ,xeokit-tab-btn";this._onModelUnloaded=this.viewer.scene.on("modelUnloaded",(e=>{if(this._metaObject){const t=this._metaObject.metaModels;for(let i=0,s=t.length;i{this.clear()})),document.addEventListener("click",this._clickListener=e=>{e.target.matches(".xeokit-accordion .xeokit-accordion-button")&&(e.target.parentElement.classList.contains("active")?e.target.parentElement.classList.remove("active"):e.target.parentElement.classList.add("active"))}),this.clear()}showObjectPropertySets(e){const t=this.viewer.metaScene.metaObjects[e];if(!t)return;const i=t.propertySets;i&&i.length>0?this._setPropertySets(t,i):this._setPropertySets(t),this._metaObject=t}clear(){const e=[],t=this.viewer.localeService.translate("propertiesInspector.noObjectSelectedWarning")||"No object inspected. Right-click or long-tab an object and select 'Inspect Properties' to view its properties here.";e.push('
'),e.push(`

${t}

`),e.push("
");const i=e.join("");this._propertiesElement.innerHTML=i}_setPropertySets(e,t){const i=[];if(i.push('
'),e){i.push(''),i.push(``),e.type&&i.push(``),i.push(``),i.push(``);const s=e.attributes;if(s)for(let e in s)i.push(``);if(i.push("
Name:${e.name}
Class:${e.type}
UUID:${e.originalSystemId}
Viewer ID:${e.id}
${Gx(e)}:${s[e]}
"),t&&0!==t.length){i.push("
"),i.push('
');for(let e=0,s=t.length;e0){i.push(`
\n

${s.name}

\n
\n `);for(let e=0,t=r.length;e`)}i.push("
${t.name||t.label}:${t.value}
\n
\n
")}}i.push("
")}else{const e=this.viewer.localeService.translate("propertiesInspector.noPropSetWarning")||"No properties sets found for this object";i.push(`

${e}

`),i.push("")}}else i.push('

No object selected

');this._propertiesElement.innerHTML=i.join("")}setEnabled(e){e?this._propertiesTabButtonElement.classList.remove("disabled"):this._propertiesTabButtonElement.classList.add("disabled")}destroy(){super.destroy(),this.viewer.scene.off(this._onModelLoaded),this.viewer.scene.off(this._onModelUnloaded),document.removeEventListener("click",this._clickListener)}}function Gx(e){return e?e.charAt(0).toUpperCase()+e.slice(1):e}const Wx=new Float32Array(3);class Kx{constructor(e){if(!e)throw"Parameter expected: cfg";if(!e.viewer)throw"Parameter expected: cfg.viewer";this.viewer=e.viewer,this._maxTreeDepth=e.maxTreeDepth||15,this._root=null,this._needsRebuild=!0,this._onModelLoaded=this.viewer.scene.on("modelLoaded",(e=>{this._needsRebuild=!0})),this._onModelUnloaded=this.viewer.scene.on("modelUnloaded",(e=>{this._needsRebuild=!0}))}get root(){return this._needsRebuild&&this._rebuild(),this._root}_rebuild(){const e=this.viewer.scene;this._root={aabb:e.getAABB()};for(let t in e.objects){const i=e.objects[t];this._insertEntity(this._root,i,1)}this._needsRebuild=!1}_insertEntity(e,t,i){const s=t.aabb;if(i>=this._maxTreeDepth)return e.entities=e.entities||[],void e.entities.push(t);if(e.left&&d.containsAABB3(e.left.aabb,s))return void this._insertEntity(e.left,t,i+1);if(e.right&&d.containsAABB3(e.right.aabb,s))return void this._insertEntity(e.right,t,i+1);const r=e.aabb;Wx[0]=r[3]-r[0],Wx[1]=r[4]-r[1],Wx[2]=r[5]-r[2];let o=0;if(Wx[1]>Wx[o]&&(o=1),Wx[2]>Wx[o]&&(o=2),!e.left){const n=r.slice();if(n[o+3]=(r[o]+r[o+3])/2,e.left={aabb:n},d.containsAABB3(n,s))return void this._insertEntity(e.left,t,i+1)}if(!e.right){const n=r.slice();if(n[o]=(r[o]+r[o+3])/2,e.right={aabb:n},d.containsAABB3(n,s))return void this._insertEntity(e.right,t,i+1)}e.entities=e.entities||[],e.entities.push(t)}destroy(){const e=this.viewer.scene;e.off(this._onModelLoaded),e.off(this._onModelUnloaded),this._root=null,this._needsRebuild=!0}}class Xx extends dx{constructor(e,t){if(super(e),!t.buttonElement)throw"Missing config: buttonElement";this._objectsKdTree3=t.objectsKdTree3,this._marquee=d.AABB2(),this._marqueeFrustum=new U,this._marqueeFrustumProjMat=d.mat4(),this._marqueeDir=!1;const i=t.buttonElement;this.on("enabled",(e=>{e?i.classList.remove("disabled"):i.classList.add("disabled")})),this.on("active",(e=>{e?(i.classList.add("active"),this._objectsKdTree3.root):i.classList.remove("active")})),i.addEventListener("click",(e=>{if(this.getEnabled()){const e=this.getActive();this.setActive(!e)}e.preventDefault()})),this.bimViewer.on("reset",(()=>{this.setActive(!1)}));const s=this.viewer.scene,r=s.canvas.canvas;this._marqueeElement=document.createElement("div"),document.body.appendChild(this._marqueeElement);const o=this._marqueeElement.style;let n,a,l,A,h,c,u,p;o.position="absolute",o["z-index"]="40000005",o.width="8px",o.height="8px",o.visibility="hidden",o.top="0px",o.left="0px",o["box-shadow"]="0 2px 5px 0 #182A3D;",o.opacity=1,o["pointer-events"]="none";let g=!1,m=!1;r.addEventListener("mousedown",(e=>{if(!this.getActive()||!this.getEnabled())return;if(0!==e.button)return;const t=this.bimViewer.viewer.scene.input;t.keyDown[t.KEY_CTRL]||s.setObjectsSelected(s.selectedObjectIds,!1),n=e.pageX,a=e.pageY,o.visibility="visible",o.left=`${n}px`,o.top=`${a}px`,o.width="0px",o.height="0px",o.display="block",h=e.offsetX,c=e.offsetY,g=!0,this.viewer.cameraControl.pointerEnabled=!1})),r.addEventListener("mouseup",(e=>{if(!this.getActive()||!this.getEnabled())return;if(!g&&!m)return;if(0!==e.button)return;l=e.pageX,A=e.pageY;const t=Math.abs(l-n),i=Math.abs(A-a);o.width=`${t}px`,o.height=`${i}px`,o.visibility="hidden",g=!1,this.viewer.cameraControl.pointerEnabled=!0,m&&(m=!1),(t>3||i>3)&&this._marqueePick()})),document.addEventListener("mouseup",(e=>{this.getActive()&&this.getEnabled()&&0===e.button&&g&&(o.visibility="hidden",g=!1,m=!0,this.viewer.cameraControl.pointerEnabled=!0)}),!0),r.addEventListener("mousemove",(e=>{if(!this.getActive()||!this.getEnabled())return;if(0!==e.button)return;if(!g)return;const t=e.pageX,i=e.pageY,s=t-n,r=i-a;o.width=`${Math.abs(s)}px`,o.height=`${Math.abs(r)}px`,o.left=`${Math.min(n,t)}px`,o.top=`${Math.min(a,i)}px`,u=e.offsetX,p=e.offsetY;const l=h{if(s===U.INTERSECT&&(s=O(this._marqueeFrustum,i.aabb)),s!==U.OUTSIDE){if(i.entities){const t=i.entities;for(let i=0,s=t.length;ie.measurement.axisVisible?"Hide Measurement Axis":"Show Measurement Axis",doAction:function(e){e.measurement.axisVisible=!e.measurement.axisVisible}},{getTitle:e=>e.measurement.labelsVisible?"Hide Measurement Labels":"Show Measurement Labels",doAction:function(e){e.measurement.labelsVisible=!e.measurement.labelsVisible}}],[{title:"Delete Measurement",doAction:function(e){e.measurement.destroy()}}]]}),this._contextMenu.on("hidden",(()=>{this._contextMenu.context.measurement&&this._contextMenu.context.measurement.setHighlighted(!1)})),this._distanceMeasurementsPlugin=new fh(this.viewer,{defaultAxisVisible:!1}),this._distanceMeasurementsPlugin.on("mouseOver",(e=>{e.measurement.setHighlighted(!0)})),this._distanceMeasurementsPlugin.on("mouseLeave",(e=>{this._contextMenu.shown&&this._contextMenu.context.measurement.id===e.measurement.id||e.measurement.setHighlighted(!1)})),this._distanceMeasurementsPlugin.on("contextMenu",(e=>{this._contextMenu.context={distanceMeasurementsPlugin:this._distanceMeasurementsPlugin,measurement:e.measurement},this._contextMenu.show(e.event.clientX,e.event.clientY),e.event.preventDefault()})),this._distanceMeasurementsMouseControl=new mh(this._distanceMeasurementsPlugin,{}),this._distanceMeasurementsMouseControl.snapping=!0,this.on("enabled",(e=>{e?i.classList.remove("disabled"):i.classList.add("disabled")})),this.on("active",(e=>{e?(i.classList.add("active"),this._distanceMeasurementsMouseControl.activate()):(i.classList.remove("active"),this._distanceMeasurementsMouseControl.deactivate())})),i.addEventListener("click",(e=>{if(this.getEnabled()){const e=this.getActive();this.setActive(!e)}e.preventDefault()})),this.bimViewer.on("reset",(()=>{this.setActive(!1),this.clear()}))}getNumMeasurements(){return Object.keys(this._distanceMeasurementsPlugin.measurements).length}setMeasurementsAxisVisible(e){this._distanceMeasurementsPlugin.setAxisVisible(e)}getMeasurementsAxisVisible(){return this._distanceMeasurementsPlugin.getAxisVisible()}setSnappingEnabled(e){return this._distanceMeasurementsMouseControl.snapping=e}getSnappingEnabled(){return this._distanceMeasurementsMouseControl.snapping}clear(){this._distanceMeasurementsPlugin.clear()}destroy(){this._distanceMeasurementsPlugin.destroy(),this._distanceMeasurementsMouseControl.destroy(),this._contextMenu.destroy(),super.destroy()}}class qx extends dx{constructor(e,t){if(super(e),!t.buttonElement)throw"Missing config: buttonElement";const i=t.buttonElement;this._contextMenu=new n({items:[[{getTitle:e=>e.measurement.labelsVisible?"Hide Measurement Label":"Show Measurement Label",doAction:function(e){e.measurement.labelsVisible=!e.measurement.labelsVisible}}],[{title:"Delete Measurement",doAction:function(e){e.measurement.destroy()}}]]}),this._contextMenu.on("hidden",(()=>{this._contextMenu.context.measurement&&this._contextMenu.context.measurement.setHighlighted(!1)})),this._angleMeasurementsPlugin=new ge(this.viewer,{}),this._angleMeasurementsPlugin.on("mouseOver",(e=>{e.measurement.setHighlighted(!0)})),this._angleMeasurementsPlugin.on("mouseLeave",(e=>{this._contextMenu.shown&&this._contextMenu.context.measurement.id===e.measurement.id||e.measurement.setHighlighted(!1)})),this._angleMeasurementsPlugin.on("contextMenu",(e=>{this._contextMenu.context={angleMeasurementsPlugin:this._angleMeasurementsPlugin,measurement:e.measurement},this._contextMenu.show(e.event.clientX,e.event.clientY),e.event.preventDefault()})),this._angleMeasurementsMouseControl=new pe(this._angleMeasurementsPlugin,{}),this._angleMeasurementsMouseControl.snapping=!0,this.on("enabled",(e=>{e?i.classList.remove("disabled"):i.classList.add("disabled")})),this.on("active",(e=>{e?(i.classList.add("active"),this._angleMeasurementsMouseControl.activate()):(i.classList.remove("active"),this._angleMeasurementsMouseControl.deactivate())})),i.addEventListener("click",(e=>{if(this.getEnabled()){const e=this.getActive();this.setActive(!e)}e.preventDefault()})),this.bimViewer.on("reset",(()=>{this.setActive(!1),this.clear()}))}getNumMeasurements(){return Object.keys(this._angleMeasurementsPlugin.measurements).length}setSnappingEnabled(e){return this._angleMeasurementsMouseControl.snapping=e}getSnappingEnabled(){return this._angleMeasurementsMouseControl.snapping}clear(){this._angleMeasurementsPlugin.clear()}destroy(){this._angleMeasurementsPlugin.destroy(),this._angleMeasurementsMouseControl.destroy(),this._contextMenu.destroy(),super.destroy()}}function Zx(e){const t="xeokit-tab",i="active";function s(e){let s=e.parentNode.querySelectorAll("."+t);for(let t=0;t{e.preventDefault()},o.oncontextmenu=e=>{e.preventDefault()},n.oncontextmenu=e=>{e.preventDefault()};const l=new G_({localeService:t.localeService,canvasElement:i,keyboardEventsElement:t.keyboardEventsElement,transparent:!1,backgroundColor:[1,1,1],backgroundColorFromAmbientLight:!1,saoEnabled:!0,pbrEnabled:!1,colorTextureEnabled:!0,numCachedSectionPlanes:4});super(null,t,e,l),this._configs={},this._enableAddModels=!!t.enableEditModels,this._enableMeasurements=!1!==t.enableMeasurements,this._enablePropertiesInspector=!!t.inspectorElement,this.viewer=l,this._objectsKdTree3=new Kx({viewer:l}),this._customizeViewer(),this._initCanvasContextMenus(),s.innerHTML=function(e){return'
\n
\n Models\n
\n
\n \n '+(e.enableEditModels?'':"")+'
\n
\n
\n
\n
\n Objects\n
\n
\n \n \n
\n
\n
\n
\n
\n Classes\n
\n
\n \n \n
\n
\n
\n
\n
\n Storeys\n
\n
\n \n \n
\n
\n
\n
\n
'}(t),o.innerHTML=function(e={}){return'
\n \x3c!-- Reset button --\x3e\n
\n \n
\n
\n \x3c!-- 3D Mode button --\x3e\n \n \x3c!-- Perspective/Ortho Mode button --\x3e\n \n \x3c!-- Fit button --\x3e\n \n \x3c!-- First Person mode button --\x3e\n \n \x3c!-- Show/hide IFCSpaces --\x3e\n \n
\n \x3c!-- Tools button group --\x3e\n
\n \x3c!-- Hide tool button --\x3e\n \n \x3c!-- Select tool button --\x3e\n \n \x3c!-- Marquee select tool button --\x3e\n '+(e.enableMeasurements?'\x3c!-- Measure distance tool button --\x3e\n \n \x3c!-- Measure angle tool button --\x3e\n ':" ")+'\x3c!-- section tool button --\x3e\n \n
\n
'}({enableMeasurements:this._enableMeasurements}),this._enablePropertiesInspector&&(r.innerHTML='
\n
\n Properties\n
\n
\n
\n
\n
'),this._explorerElement=s,this._inspectorElement=r,Zx(s),this._enablePropertiesInspector&&Zx(r),this._modelsExplorer=new Sx(this,{enableMeasurements:this._enableMeasurements,modelsTabElement:s.querySelector(".xeokit-modelsTab"),loadModelsButtonElement:s.querySelector(".xeokit-loadAllModels"),unloadModelsButtonElement:s.querySelector(".xeokit-unloadAllModels"),addModelButtonElement:s.querySelector(".xeokit-addModel"),modelsElement:s.querySelector(".xeokit-models"),enableEditModels:this._enableAddModels}),this._objectsExplorer=new Lx(this,{enableMeasurements:this._enableMeasurements,objectsTabElement:s.querySelector(".xeokit-objectsTab"),showAllObjectsButtonElement:s.querySelector(".xeokit-showAllObjects"),hideAllObjectsButtonElement:s.querySelector(".xeokit-hideAllObjects"),objectsElement:s.querySelector(".xeokit-objects")}),this._classesExplorer=new Ux(this,{enableMeasurements:this._enableMeasurements,classesTabElement:s.querySelector(".xeokit-classesTab"),showAllClassesButtonElement:s.querySelector(".xeokit-showAllClasses"),hideAllClassesButtonElement:s.querySelector(".xeokit-hideAllClasses"),classesElement:s.querySelector(".xeokit-classes")}),this._storeysExplorer=new Ox(this,{enableMeasurements:this._enableMeasurements,storeysTabElement:s.querySelector(".xeokit-storeysTab"),showAllStoreysButtonElement:s.querySelector(".xeokit-showAllStoreys"),hideAllStoreysButtonElement:s.querySelector(".xeokit-hideAllStoreys"),storeysElement:s.querySelector(".xeokit-storeys")}),this._enablePropertiesInspector&&(this._propertiesInspector=new zx(this,{propertiesTabElement:r.querySelector(".xeokit-propertiesTab"),propertiesElement:r.querySelector(".xeokit-properties")})),this._resetAction=new mx(this,{buttonElement:o.querySelector(".xeokit-reset"),active:!1}),this._fitAction=new _x(this,{buttonElement:o.querySelector(".xeokit-fit"),active:!1});const A=new function(e){let t=!1;this.setThreeDModeActive=i=>{i?(e._firstPersonMode.setActive(!1),e._marqueeSelectionTool.setEnabled(!0),e.viewer.cameraControl.navMode="orbit"):(e._marqueeSelectionTool.setEnabled(!1),e._marqueeSelectionTool.setActive(!1),e._firstPersonMode.setActive(!1),e.viewer.cameraControl.navMode="planView"),t=i},this.setFirstPersonModeActive=i=>{e.viewer.cameraControl.navMode=i?"firstPerson":t?"orbit":"planView"}}(this);this._threeDMode=new Qx(this,{buttonElement:o.querySelector(".xeokit-threeD"),cameraControlNavModeMediator:A,active:!1}),this._orthoMode=new Hx(this,{buttonElement:o.querySelector(".xeokit-ortho"),active:!1}),this._firstPersonMode=new vx(this,{buttonElement:o.querySelector(".xeokit-firstPerson"),cameraControlNavModeMediator:A,active:!1}),this._hideTool=new bx(this,{buttonElement:o.querySelector(".xeokit-hide"),active:!1}),this._selectionTool=new xx(this,{buttonElement:o.querySelector(".xeokit-select"),active:!1}),this._marqueeSelectionTool=new Xx(this,{buttonElement:o.querySelector(".xeokit-marquee"),active:!1,objectsKdTree3:this._objectsKdTree3}),this._showSpacesMode=new wx(this,{buttonElement:o.querySelector(".xeokit-showSpaces"),active:!1}),this._queryTool=new yx(this,{active:!1}),this._sectionTool=new Mx(this,{buttonElement:o.querySelector(".xeokit-section"),counterElement:o.querySelector(".xeokit-section-counter"),menuButtonElement:o.querySelector(".xeokit-section-menu-button"),menuButtonArrowElement:o.querySelector(".xeokit-section-menu-button-arrow"),active:!1}),this._enableMeasurements&&(this._measureDistanceTool=new Yx(this,{buttonElement:o.querySelector(".xeokit-measure-distance"),active:!1}),this._measureAngleTool=new qx(this,{buttonElement:o.querySelector(".xeokit-measure-angle"),active:!1})),this._navCubeMode=new Ex(this,{navCubeCanvasElement:n,active:!0}),this._busyModal=new px(this,{busyModalBackdropElement:a}),this._threeDMode.setActive(!0),this._firstPersonMode.setActive(!1),this._navCubeMode.setActive(!0),this._modelsExplorer.on("modelLoaded",(e=>{this._modelsExplorer.getNumModelsLoaded()>0&&this.setControlsEnabled(!0),this.fire("modelLoaded",e)})),this._modelsExplorer.on("modelUnloaded",(e=>{0===this._modelsExplorer.getNumModelsLoaded()&&(this.setControlsEnabled(!1),this.openTab("models")),this.fire("modelUnloaded",e)})),this._resetAction.on("reset",(()=>{this.fire("reset",!0)})),this._mutexActivation([this._hideTool,this._selectionTool,this._marqueeSelectionTool,this._sectionTool,this._enableMeasurements?this._measureDistanceTool:null,this._enableMeasurements?this._measureAngleTool:null]),s.querySelector(".xeokit-showAllObjects").addEventListener("click",(e=>{this.setAllObjectsVisible(!0),this.setAllObjectsXRayed(!1),e.preventDefault()})),s.querySelector(".xeokit-hideAllObjects").addEventListener("click",(e=>{this.setAllObjectsVisible(!1),e.preventDefault()})),s.querySelector(".xeokit-showAllClasses").addEventListener("click",(e=>{this.setAllObjectsVisible(!0),this.setAllObjectsXRayed(!1),e.preventDefault()})),s.querySelector(".xeokit-hideAllClasses").addEventListener("click",(e=>{this.setAllObjectsVisible(!1),e.preventDefault()})),s.querySelector(".xeokit-showAllStoreys").addEventListener("click",(e=>{this.setAllObjectsVisible(!0),this.setAllObjectsXRayed(!1),e.preventDefault()})),s.querySelector(".xeokit-hideAllStoreys").addEventListener("click",(e=>{this.setAllObjectsVisible(!1),e.preventDefault()})),s.querySelector(".xeokit-loadAllModels").addEventListener("click",(e=>{this.setControlsEnabled(!1),this.loadAllModels(),e.preventDefault()})),s.querySelector(".xeokit-unloadAllModels").addEventListener("click",(e=>{this.setControlsEnabled(!1),this._modelsExplorer.unloadAllModels(),e.preventDefault()})),this._enableAddModels&&s.querySelector(".xeokit-addModel").addEventListener("click",(e=>{this.fire("addModel",{}),e.preventDefault()})),this._bcfViewpointsPlugin=new ah(this.viewer,{xrayAsZeroAlpha:!0}),this._fastNavPlugin=new _h(l,{hideEdges:!0,hideSAO:!0,hidePBR:!1,hideColorTexture:!1,hideTransparentObjects:!1,scaleCanvasResolution:!1,scaleCanvasResolutionFactor:.6}),this._initConfigs(),this.setControlsEnabled(!1)}get localeService(){return this.viewer.localeService}_customizeViewer(){const e=this.viewer.scene;e.xrayMaterial.fill=!1,e.xrayMaterial.fillAlpha=.3,e.xrayMaterial.fillColor=[0,0,0],e.xrayMaterial.edges=!0,e.xrayMaterial.edgeAlpha=.1,e.xrayMaterial.edgeColor=[0,0,0],e.highlightMaterial.edges=!0,e.highlightMaterial.edgeColor=[1,1,1],e.highlightMaterial.edgeAlpha=1,e.highlightMaterial.fill=!0,e.highlightMaterial.fillAlpha=.1,e.highlightMaterial.fillColor=[1,0,0],e.selectedMaterial.edges=!0,e.selectedMaterial.edgeColor=[1,1,1],e.selectedMaterial.edgeAlpha=1,e.selectedMaterial.fill=!0,e.selectedMaterial.fillAlpha=.1,e.selectedMaterial.fillColor=[0,1,0],e.pointsMaterial.pointSize=1,e.pointsMaterial.roundPoints=!0,e.pointsMaterial.perspectivePoints=!0,e.pointsMaterial.minPerspectivePointSize=2,e.pointsMaterial.maxPerspectivePointSize=4,this.viewer.cameraControl.panRightClick=!0,this.viewer.cameraControl.followPointer=!0,this.viewer.cameraControl.doublePickFlyTo=!1,this.viewer.cameraControl.smartPivot=!0,this.viewer.cameraControl.keyboardDollyRate=100,this.viewer.cameraControl.mouseWheelDollyRate=100,this.viewer.cameraControl.dollyInertia=0,this.viewer.cameraControl.dollyMinSpeed=.04,this.viewer.cameraControl.dollyProximityThreshold=30;const t=document.createRange().createContextualFragment("
").firstChild;document.body.appendChild(t),this.viewer.cameraControl.pivotElement=t,e.camera.perspective.near=.01,e.camera.perspective.far=3e3,e.camera.ortho.near=.01,e.camera.ortho.far=2e3;const i=e.sao;i.enabled=!0,i.numSamples=50,i.kernelRadius=200}_initCanvasContextMenus(){this._canvasContextMenu=new jx(this,{hideOnAction:!0,enableMeasurements:this._enableMeasurements}),this._objectContextMenu=new Vx(this,{hideOnAction:!0,enableMeasurements:this._enableMeasurements}),this.viewer.cameraControl.on("rightClick",(e=>{e.event;const t=this.viewer.scene.pick({canvasPos:e.canvasPos});t&&t.entity.isObject?(this._canvasContextMenu.hide(),this._objectContextMenu.context={viewer:this.viewer,bimViewer:this,showObjectInExplorers:e=>{const t=this.getOpenTab();"objects"!==t&&"classes"!==t&&"storeys"!==t&&this.openTab("objects"),this.showObjectInExplorers(e)},entity:t.entity},this._objectContextMenu.show(e.pagePos[0],e.pagePos[1])):(this._objectContextMenu.hide(),this._canvasContextMenu.context={viewer:this.viewer,bimViewer:this},this._canvasContextMenu.show(e.pagePos[0],e.pagePos[1]))}))}_initConfigs(){this.setConfigs({cameraNear:"0.05",cameraFar:"3000.0",smartPivot:!0,saoEnabled:!0,pbrEnabled:!1,scaleCanvasResolution:!1,saoBias:.5,saoIntensity:.15,saoNumSamples:40,saoKernelRadius:100,edgesEnabled:!0,xrayContext:!0,xrayPickable:!1,selectedGlowThrough:!0,highlightGlowThrough:!0,backgroundColor:[1,1,1],externalMetadata:!1,dtxEnabled:!1})}setConfigs(e){for(let t in e)if(e.hasOwnProperty(t)){const i=e[t];this.setConfig(t,i)}}setConfig(e,t){function i(e){return!0===e||"true"===e}try{switch(e){case"backgroundColor":const s=t;this.setBackgroundColor(s),this._configs[e]=s;break;case"cameraNear":const r=parseFloat(t);this.viewer.scene.camera.perspective.near=r,this.viewer.scene.camera.ortho.near=r,this._configs[e]=r;break;case"cameraFar":const o=parseFloat(t);this.viewer.scene.camera.perspective.far=o,this._configs[e]=o;break;case"smartPivot":this.viewer.cameraControl.smartPivot=this._configs[e]=i(t);break;case"saoEnabled":this._fastNavPlugin.saoEnabled=this._configs[e]=i(t);break;case"saoBias":this.viewer.scene.sao.bias=parseFloat(t);break;case"saoIntensity":this.viewer.scene.sao.intensity=parseFloat(t);break;case"saoKernelRadius":this.viewer.scene.sao.kernelRadius=this._configs[e]=parseFloat(t);break;case"saoNumSamples":this.viewer.scene.sao.numSamples=this._configs[e]=parseFloat(t);break;case"saoBlur":this.viewer.scene.sao.blur=this._configs[e]=i(t);break;case"edgesEnabled":this._fastNavPlugin.edgesEnabled=this._configs[e]=i(t);break;case"pbrEnabled":this._fastNavPlugin.pbrEnabled=this._configs[e]=i(t);break;case"scaleCanvasResolution":this._fastNavPlugin.scaleCanvasResolution=this._configs[e]=i(t);break;case"viewFitFOV":this.viewer.cameraFlight.fitFOV=this._configs[e]=parseFloat(t);break;case"viewFitDuration":this.viewer.cameraFlight.duration=this._configs[e]=parseFloat(t);break;case"perspectiveFOV":this.viewer.camera.perspective.fov=this._configs[e]=parseFloat(t);break;case"excludeUnclassifiedObjects":case"xrayPickable":case"externalMetadata":this._configs[e]=i(t);break;case"xrayContext":this._configs[e]=t;break;case"selectedGlowThrough":const n=this._configs[e]=i(t),a=this.viewer.scene.selectedMaterial;a.glowThrough=n,a.fillAlpha=n?.5:1,a.edgeAlpha=n?.5:1;break;case"highlightGlowThrough":const l=this._configs[e]=i(t),A=this.viewer.scene.highlightMaterial;A.glowThrough=l,A.fillAlpha=l?.5:1,A.edgeAlpha=l?.5:1;break;case"showSpaces":this._configs[e]=i(t),this._showSpacesMode.setActive(t);break;case"dtxEnabled":this._configs[e]=i(t),this.viewer.scene.dtxEnabled=t;break;case"objectColors":this._configs[e]=t,this._modelsExplorer.setObjectColors(t);break;default:this.warn("setConfig() - unsupported configuration: '"+e+"'")}}catch(t){this.error("setConfig() - failed to configure '"+e+"': "+t)}}getConfig(e){return this._configs[e]}getProjectsInfo(e,t){e?this.server.getProjects(e,(e=>{this.error("getProjectsInfo() - "+e),t&&t(e)})):this.error("getProjectsInfo() - Argument expected: 'done'")}getProjectInfo(e,t,i){e?t?this.server.getProject(e,t,(e=>{this.error("getProjectInfo() - "+e),i&&i(e)})):this.error("getProjectInfo() - Argument expected: 'done'"):this.error("getProjectInfo() - Argument expected: projectId")}getObjectInfo(e,t,i,s,r){e?t?i?s?this.server.getObjectInfo(e,t,i,s,(e=>{r&&r(e)})):this.error("getProjectInfo() - Argument expected: 'done'"):this.error("getObjectInfo() - Argument expected: objectId"):this.error("getObjectInfo() - Argument expected: modelId"):this.error("getObjectInfo() - Argument expected: projectId")}loadProject(e,t,i){e?this._modelsExplorer.loadProject(e,(()=>{t&&t()}),(e=>{this.error("loadProject() - "+e),i&&i(e)})):this.error("loadProject() - Argument expected: objectId")}unloadProject(){this._modelsExplorer.unloadProject(),this.openTab("models"),this.setControlsEnabled(!1)}getLoadedProjectId(){return this._modelsExplorer.getLoadedProjectId()}getModelIds(){return this._modelsExplorer.getModelIds()}loadModel(e,t,i){e?this._modelsExplorer.loadModel(e,(()=>{t&&t()}),(e=>{this.error("loadModel() - "+e),i&&i(e)})):this.error("loadModel() - Argument expected: modelId")}loadAllModels(e=function(){}){const t=this._modelsExplorer.getModelIds(),i=(e,s)=>{if(e>=t.length)s();else{const r=t[e];this._modelsExplorer.isModelLoaded(r)?i(e+1,s):this._modelsExplorer.loadModel(r,(()=>{i(e+1,s)}),(t=>{this.error("loadAllModels() - "+t),i(e+1,s)}))}};i(0,e)}getLoadedModelIds(){return this._modelsExplorer._getLoadedModelIds()}isModelLoaded(e){if(e)return this._modelsExplorer.isModelLoaded(e);this.error("unloadModel() - Argument expected: modelId")}unloadModel(e){e?this._modelsExplorer.unloadModel(e):this.error("unloadModel() - Argument expected: modelId")}unloadAllModels(){this._modelsExplorer.unloadAllModels()}editModel(e){this.fire("editModel",{modelId:e})}deleteModel(e){this.fire("deleteModel",{modelId:e})}addModel(){this.fire("addModel",{})}setBackgroundColor(e){this.viewer.scene.canvas.backgroundColor=e}setObjectColorSource(e){console.log("BIMViewer.setObjectColorSource() is now deprecated and no longer functional. By default, BIMViewer.getObjectColorSource() will now always return the (formerly) default value of `model`.")}getObjectColorSource(){return"model"}setViewerState(e,t=(()=>{})){e.tabOpen&&this.openTab(e.tabOpen),e.expandObjectsTree&&this._objectsExplorer.expandTreeViewToDepth(e.expandObjectsTree),e.expandClassesTree&&this._classesExplorer.expandTreeViewToDepth(e.expandClassesTree),e.expandStoreysTree&&this._storeysExplorer.expandTreeViewToDepth(e.expandStoreysTree),e.setCamera&&this.setCamera(e.setCamera),this._parseSelectedStorey(e,(()=>{this._parseThreeDMode(e,(()=>{t()}))}))}_parseSelectedStorey(e,t){e.selectedStorey?(this.selectStorey(e.selectedStorey),t()):t()}_parseThreeDMode(e,t){const i=!1!==e.threeDActive;this.set3DEnabled(i,t)}showObjectInExplorers(e){e?(this._objectsExplorer.showNodeInTreeView(e),this._classesExplorer.showNodeInTreeView(e),this._storeysExplorer.showNodeInTreeView(e),this.fire("openExplorer",{})):this.error("showObjectInExplorers() - Argument expected: objectId")}unShowObjectInExplorers(){this._objectsExplorer.unShowNodeInTreeView(),this._classesExplorer.unShowNodeInTreeView(),this._storeysExplorer.unShowNodeInTreeView()}showObjectProperties(e){e?(this._enablePropertiesInspector&&this._propertiesInspector.showObjectPropertySets(e),this.fire("openInspector",{})):this.error("showObjectInExplorers() - Argument expected: objectId")}setObjectsVisible(e,t){this._withObjectsInSubtree(e,(e=>{e.visible=t}))}setAllObjectsVisible(e){e?this.viewer.scene.setObjectsVisible(this.viewer.scene.objectIds,!0):this.viewer.scene.setObjectsVisible(this.viewer.scene.visibleObjectIds,!1)}setObjectsXRayed(e,t){this._withObjectsInSubtree(e,(e=>{e.xrayed=t}))}setAllObjectsXRayed(e){e?this.viewer.scene.setObjectsXRayed(this.viewer.scene.objectIds,!0):this.viewer.scene.setObjectsXRayed(this.viewer.scene.xrayedObjectIds,!1)}setObjectsSelected(e,t){this._withObjectsInSubtree(e,(e=>{e.selected=t}))}setAllObjectsSelected(e){e?this.viewer.scene.setObjectsSelected(this.viewer.scene.objectIds,!0):this.viewer.scene.setObjectsSelected(this.viewer.scene.selectedObjectIds,!1)}_withObjectsInSubtree(e,t){if(e)for(let i=0,s=e.length;i{const i=this.viewer.scene.objects[e.id];i&&t(i)}))}else this.error("Argument expected: objectIds")}flyToObject(e,t){if(!e)return void this.error("flyToObject() - Argument expected: objectId");const i=this.viewer,s=i.scene,r=[];if(this.viewer.metaScene.withMetaObjectsInSubtree(e,(e=>{s.objects[e.id]&&r.push(e.id)})),0===r.length)return this.error("Object not found in viewer: '"+e+"'"),void(t&&t());s.setObjectsVisible(r,!0),s.setObjectsHighlighted(r,!0);const o=s.getAABB(r);i.cameraFlight.flyTo({aabb:o},(()=>{t&&t(),setTimeout((function(){s.setObjectsHighlighted(s.highlightedObjectIds,!1)}),500)})),i.cameraControl.pivotPos=d.getAABB3Center(o)}viewFitObjects(e,t){if(!e)return void this.error("flyToObject() - Argument expected: objectIds");const i=this.viewer,s=i.scene,r=[];for(var o=0,n=e.length;o{s.objects[e.id]&&r.push(e.id)}))}if(0===r.length)return void(t&&t());s.setObjectsVisible(r,!0),s.setObjectsHighlighted(r,!0);const a=s.getAABB(r);i.cameraFlight.flyTo({aabb:a},(()=>{t&&t(),setTimeout((function(){s.setObjectsHighlighted(s.highlightedObjectIds,!1)}),500)})),i.cameraControl.pivotPos=d.getAABB3Center(a)}viewFitAll(e){const t=this.viewer,i=t.scene.getAABB();t.cameraFlight.flyTo({aabb:i},(()=>{e&&e()})),t.cameraControl.pivotPos=d.getAABB3Center(i)}jumpToObject(e){if(!e)return void this.error("jumpToObject() - Argument expected: objectId");const t=this.viewer,i=t.scene,s=[];if(this.viewer.metaScene.withMetaObjectsInSubtree(e,(e=>{i.objects[e.id]&&s.push(e.id)})),0===s.length)return void this.error("Object not found in viewer: '"+e+"'");i.setObjectsVisible(s,!0);const r=i.getAABB(s);t.cameraFlight.jumpTo({aabb:r}),t.cameraControl.pivotPos=d.getAABB3Center(r)}setCamera(e){const t=this.viewer.scene.camera;e.eye&&(t.eye=e.eye),e.look&&(t.look=e.look),e.up&&(t.up=e.up)}viewFitModels(e,t){if(!e)return void this.error("viewFitModels() - Argument expected: modelIds");const i=this.viewer,s=i.scene,r=d.AABB3();d.collapseAABB3(r);for(var o=0,n=e.length;o{t(),setTimeout((function(){s.setObjectsHighlighted(s.highlightedObjectIds,!1)}),500)})):(i.cameraFlight.jumpTo({aabb:r}),setTimeout((function(){s.setObjectsHighlighted(s.highlightedObjectIds,!1)}),500)),i.cameraControl.pivotPos=d.getAABB3Center(r)}openTab(e){if(!e)return void this.error("openTab() - Argument expected: tabId");let t;switch(e){case"models":t="xeokit-modelsTab";break;case"objects":t="xeokit-objectsTab";break;case"classes":t="xeokit-classesTab";break;case"storeys":t="xeokit-storeysTab";break;case"properties":t="xeokit-propertiesTab";break;default:return void this.error("openTab() - tab not recognized: '"+e+"'")}this._openTab(this._explorerElement,t)}_openTab(e,t){const i="active";let s=e.querySelectorAll(".xeokit-tab"),r=e.querySelector("."+t);for(let e=0;e-1}const t="active";return e(this._explorerElement.querySelector(".xeokit-modelsTab"),t)?"models":e(this._explorerElement.querySelector(".xeokit-objectsTab"),t)?"objects":e(this._explorerElement.querySelector(".xeokit-classesTab"),t)?"classes":e(this._explorerElement.querySelector(".xeokit-storeysTab"),t)?"storeys":e(this._inspectorElement.querySelector(".xeokit-propertiesTab"),t)?"properties":"none"}set3DEnabled(e,t){this._threeDMode.setActive(e,t)}get3DEnabled(){return this._threeDMode.getActive()}setSpacesShown(e){this._showSpacesMode.setActive(e)}getSpacesShown(){return this._showSpacesMode.getActive()}setOrthoEnabled(e,t){this._orthoMode.setActive(e,t)}getOrthoEnabled(){return this._orthoMode.getActive()}selectStorey(e,t){const i=this.viewer.metaScene.metaObjects[e];i?"IfcBuildingStorey"===i.type?this._storeysExplorer.selectStorey(e,t):this.error("selectStorey() - Object is not an IfcBuildingStorey: '"+e+"'"):this.error("selectStorey() - Object is not found: '"+e+"'")}saveBCFViewpoint(e){return this._bcfViewpointsPlugin.getViewpoint(e)}loadBCFViewpoint(e,t){e?(this._orthoMode.setActive("ortho"===this.viewer.camera.projection),this._bcfViewpointsPlugin.setViewpoint(e,t)):this.error("loadBCFViewpoint() - Argument expected: bcfViewpoint")}resetView(){this._resetAction.reset()}setControlsEnabled(e){this._objectsExplorer.setEnabled(e),this._classesExplorer.setEnabled(e),this._storeysExplorer.setEnabled(e),this._resetAction.setEnabled(e),this._fitAction.setEnabled(e),this._threeDMode.setEnabled(e),this._orthoMode.setEnabled(e),this._firstPersonMode.setEnabled(e),this._queryTool.setEnabled(e),this._hideTool.setEnabled(e),this._selectionTool.setEnabled(e),this._marqueeSelectionTool.setEnabled(e),this._showSpacesMode.setEnabled(e),this._enableMeasurements&&(this._measureDistanceTool.setEnabled(e),this._measureAngleTool.setEnabled(e)),this._sectionTool.setEnabled(e),this._enablePropertiesInspector&&this._propertiesInspector.setEnabled(e)}setKeyboardEnabled(e){this.viewer.scene.input.keyboardEnabled=e}getKeyboardEnabled(){return this.viewer.scene.input.keyboardEnabled}clearSections(){this._sectionTool.clear()}disableSections(){this._sectionTool.disableSections()}enableSections(){this._sectionTool.enableSections()}flipSections(){this._sectionTool.flipSections()}hideSectionEditControl(){this._sectionTool.hideControl()}getNumSections(){return this._sectionTool.getNumSections()}getEnableMeasurements(){return this._enableMeasurements}clearMeasurements(){this._enableMeasurements&&(this._measureDistanceTool.clear(),this._measureAngleTool.clear())}getNumMeasurements(){return this._measureDistanceTool.getNumMeasurements()+this._measureAngleTool.getNumMeasurements()}setMeasurementsAxisVisible(e){this._enableMeasurements&&this._measureDistanceTool.setMeasurementsAxisVisible(e)}getMeasurementsAxisVisible(){return!!this._enableMeasurements&&this._measureDistanceTool.getMeasurementsAxisVisible()}setMeasurementsSnappingEnabled(e){this._enableMeasurements&&this._measureDistanceTool.setSnappingEnabled(e)}getMeasurementsSnappingEnabled(){return!!this._enableMeasurements&&this._measureDistanceTool.getSnappingEnabled()}destroy(){this.viewer.destroy(),this._bcfViewpointsPlugin.destroy(),this._canvasContextMenu.destroy(),this._objectContextMenu.destroy()}},e.LocaleService=vh,e.Server=class{constructor(e={}){this._dataDir=e.dataDir||""}getProjects(e,t){const i=this._dataDir+"/projects/index.json";_.loadJSON(i,e,t)}getProject(e,t,i){const s=this._dataDir+"/projects/"+e+"/index.json";_.loadJSON(s,t,i)}getMetadata(e,t,i,s){const r=this._dataDir+"/projects/"+e+"/models/"+t+"/metadata.json";_.loadJSON(r,i,s)}getGeometry(e,t,i,s){const r=this._dataDir+"/projects/"+e+"/models/"+t+"/geometry.xkt";_.loadArraybuffer(r,i,s)}getObjectInfo(e,t,i,s,r){const o=this._dataDir+"/projects/"+e+"/models/"+t+"/props/"+i+".json";_.loadJSON(o,s,r)}getIssues(e,t,i,s){const r=this._dataDir+"/projects/"+e+"/models/"+t+"/issues.json";_.loadJSON(r,i,s)}getSplitModelManifest(e,t,i,s,r){const o=this._dataDir+"/projects/"+e+"/models/"+t+"/"+i;_.loadJSON(o,s,r)}getSplitModelMetadata(e,t,i,s,r){const o=this._dataDir+"/projects/"+e+"/models/"+t+"/"+i;_.loadJSON(o,s,r)}getSplitModelGeometry(e,t,i,s,r){const o=this._dataDir+"/projects/"+e+"/models/"+t+"/"+i;_.loadArraybuffer(o,s,r)}},Object.defineProperty(e,"__esModule",{value:!0})})); + ***************************************************************************** */var xc=function(e,t){return xc=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var i in t)Object.prototype.hasOwnProperty.call(t,i)&&(e[i]=t[i])},xc(e,t)};function wc(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function i(){this.constructor=e}xc(e,t),e.prototype=null===t?Object.create(t):(i.prototype=t.prototype,new i)}var yc=function(){return yc=Object.assign||function(e){for(var t,i=1,s=arguments.length;i0&&r[r.length-1])||6!==o[0]&&2!==o[0])){n=0;continue}if(3===o[0]&&(!r||o[1]>r[0]&&o[1]=55296&&r<=56319&&i>10),n%1024+56320)),(r+1===i||s.length>16384)&&(o+=String.fromCharCode.apply(String,s),s.length=0)}return o},Dc="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",Sc="undefined"==typeof Uint8Array?[]:new Uint8Array(256),Tc=0;Tc=0){if(e<55296||e>56319&&e<=65535)return t=((t=this.index[e>>5])<<2)+(31&e),this.data[t];if(e<=65535)return t=((t=this.index[2048+(e-55296>>5)])<<2)+(31&e),this.data[t];if(e>11),t=this.index[t],t+=e>>5&63,t=((t=this.index[t])<<2)+(31&e),this.data[t];if(e<=1114111)return this.data[this.highValueIndex]}return this.errorValue},e}(),Nc="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",Qc="undefined"==typeof Uint8Array?[]:new Uint8Array(256),Vc=0;Vc>4,h[l++]=(15&s)<<4|r>>2,h[l++]=(3&r)<<6|63&o;return A}(e),n=Array.isArray(o)?function(e){for(var t=e.length,i=[],s=0;s0;){var n=s[--o];if(Array.isArray(e)?-1!==e.indexOf(n):e===n)for(var a=i;a<=s.length;){var l;if((l=s[++a])===t)return!0;if(l!==jc)break}if(n!==jc)break}return!1},Pu=function(e,t){for(var i=e;i>=0;){var s=t[i];if(s!==jc)return s;i--}return 0},Bu=function(e,t,i,s,r){if(0===i[s])return du;var o=s-1;if(Array.isArray(r)&&!0===r[o])return du;var n=o-1,a=o+1,l=t[o],A=n>=0?t[n]:0,h=t[a];if(2===l&&3===h)return du;if(-1!==fu.indexOf(l))return"!";if(-1!==fu.indexOf(h))return du;if(-1!==_u.indexOf(h))return du;if(8===Pu(o,t))return pu;if(11===gu.get(e[o]))return du;if((l===su||l===ru)&&11===gu.get(e[a]))return du;if(7===l||7===h)return du;if(9===l)return du;if(-1===[jc,Hc,zc].indexOf(l)&&9===h)return du;if(-1!==[Gc,Wc,Kc,Zc,tu].indexOf(h))return du;if(Pu(o,t)===qc)return du;if(yu(23,qc,o,t))return du;if(yu([Gc,Wc],Yc,o,t))return du;if(yu(12,12,o,t))return du;if(l===jc)return pu;if(23===l||23===h)return du;if(16===h||16===l)return pu;if(-1!==[Hc,zc,Yc].indexOf(h)||14===l)return du;if(36===A&&-1!==wu.indexOf(l))return du;if(l===tu&&36===h)return du;if(h===Xc)return du;if(-1!==mu.indexOf(h)&&l===Jc||-1!==mu.indexOf(l)&&h===Jc)return du;if(l===eu&&-1!==[au,su,ru].indexOf(h)||-1!==[au,su,ru].indexOf(l)&&h===$c)return du;if(-1!==mu.indexOf(l)&&-1!==vu.indexOf(h)||-1!==vu.indexOf(l)&&-1!==mu.indexOf(h))return du;if(-1!==[eu,$c].indexOf(l)&&(h===Jc||-1!==[qc,zc].indexOf(h)&&t[a+1]===Jc)||-1!==[qc,zc].indexOf(l)&&h===Jc||l===Jc&&-1!==[Jc,tu,Zc].indexOf(h))return du;if(-1!==[Jc,tu,Zc,Gc,Wc].indexOf(h))for(var c=o;c>=0;){if((u=t[c])===Jc)return du;if(-1===[tu,Zc].indexOf(u))break;c--}if(-1!==[eu,$c].indexOf(h))for(c=-1!==[Gc,Wc].indexOf(l)?n:o;c>=0;){var u;if((u=t[c])===Jc)return du;if(-1===[tu,Zc].indexOf(u))break;c--}if(lu===l&&-1!==[lu,Au,ou,nu].indexOf(h)||-1!==[Au,ou].indexOf(l)&&-1!==[Au,hu].indexOf(h)||-1!==[hu,nu].indexOf(l)&&h===hu)return du;if(-1!==xu.indexOf(l)&&-1!==[Xc,$c].indexOf(h)||-1!==xu.indexOf(h)&&l===eu)return du;if(-1!==mu.indexOf(l)&&-1!==mu.indexOf(h))return du;if(l===Zc&&-1!==mu.indexOf(h))return du;if(-1!==mu.concat(Jc).indexOf(l)&&h===qc&&-1===uu.indexOf(e[a])||-1!==mu.concat(Jc).indexOf(h)&&l===Wc)return du;if(41===l&&41===h){for(var d=i[o],p=1;d>0&&41===t[--d];)p++;if(p%2!=0)return du}return l===su&&h===ru?du:pu},Cu=function(e,t){t||(t={lineBreak:"normal",wordBreak:"normal"});var i=function(e,t){void 0===t&&(t="strict");var i=[],s=[],r=[];return e.forEach((function(e,o){var n=gu.get(e);if(n>50?(r.push(!0),n-=50):r.push(!1),-1!==["normal","auto","loose"].indexOf(t)&&-1!==[8208,8211,12316,12448].indexOf(e))return s.push(o),i.push(16);if(4===n||11===n){if(0===o)return s.push(o),i.push(iu);var a=i[o-1];return-1===bu.indexOf(a)?(s.push(s[o-1]),i.push(a)):(s.push(o),i.push(iu))}return s.push(o),31===n?i.push("strict"===t?Yc:au):n===cu||29===n?i.push(iu):43===n?e>=131072&&e<=196605||e>=196608&&e<=262141?i.push(au):i.push(iu):void i.push(n)})),[s,i,r]}(e,t.lineBreak),s=i[0],r=i[1],o=i[2];"break-all"!==t.wordBreak&&"break-word"!==t.wordBreak||(r=r.map((function(e){return-1!==[Jc,iu,cu].indexOf(e)?au:e})));var n="keep-all"===t.wordBreak?o.map((function(t,i){return t&&e[i]>=19968&&e[i]<=40959})):void 0;return[s,r,n]},Mu=function(){function e(e,t,i,s){this.codePoints=e,this.required="!"===t,this.start=i,this.end=s}return e.prototype.slice=function(){return Ic.apply(void 0,this.codePoints.slice(this.start,this.end))},e}(),Eu=45,Fu=43,Iu=-1,Du=function(e){return e>=48&&e<=57},Su=function(e){return Du(e)||e>=65&&e<=70||e>=97&&e<=102},Tu=function(e){return 10===e||9===e||32===e},Ru=function(e){return function(e){return function(e){return e>=97&&e<=122}(e)||function(e){return e>=65&&e<=90}(e)}(e)||function(e){return e>=128}(e)||95===e},Lu=function(e){return Ru(e)||Du(e)||e===Eu},Uu=function(e){return e>=0&&e<=8||11===e||e>=14&&e<=31||127===e},ku=function(e,t){return 92===e&&10!==t},Ou=function(e,t,i){return e===Eu?Ru(t)||ku(t,i):!!Ru(e)||!(92!==e||!ku(e,t))},Nu=function(e,t,i){return e===Fu||e===Eu?!!Du(t)||46===t&&Du(i):Du(46===e?t:e)},Qu=function(e){var t=0,i=1;e[t]!==Fu&&e[t]!==Eu||(e[t]===Eu&&(i=-1),t++);for(var s=[];Du(e[t]);)s.push(e[t++]);var r=s.length?parseInt(Ic.apply(void 0,s),10):0;46===e[t]&&t++;for(var o=[];Du(e[t]);)o.push(e[t++]);var n=o.length,a=n?parseInt(Ic.apply(void 0,o),10):0;69!==e[t]&&101!==e[t]||t++;var l=1;e[t]!==Fu&&e[t]!==Eu||(e[t]===Eu&&(l=-1),t++);for(var A=[];Du(e[t]);)A.push(e[t++]);var h=A.length?parseInt(Ic.apply(void 0,A),10):0;return i*(r+a*Math.pow(10,-n))*Math.pow(10,l*h)},Vu={type:2},ju={type:3},Hu={type:4},zu={type:13},Gu={type:8},Wu={type:21},Ku={type:9},Xu={type:10},Yu={type:11},qu={type:12},Zu={type:14},Ju={type:23},$u={type:1},ed={type:25},td={type:24},id={type:26},sd={type:27},rd={type:28},od={type:29},nd={type:31},ad={type:32},ld=function(){function e(){this._value=[]}return e.prototype.write=function(e){this._value=this._value.concat(Fc(e))},e.prototype.read=function(){for(var e=[],t=this.consumeToken();t!==ad;)e.push(t),t=this.consumeToken();return e},e.prototype.consumeToken=function(){var e=this.consumeCodePoint();switch(e){case 34:return this.consumeStringToken(34);case 35:var t=this.peekCodePoint(0),i=this.peekCodePoint(1),s=this.peekCodePoint(2);if(Lu(t)||ku(i,s)){var r=Ou(t,i,s)?2:1;return{type:5,value:this.consumeName(),flags:r}}break;case 36:if(61===this.peekCodePoint(0))return this.consumeCodePoint(),zu;break;case 39:return this.consumeStringToken(39);case 40:return Vu;case 41:return ju;case 42:if(61===this.peekCodePoint(0))return this.consumeCodePoint(),Zu;break;case Fu:if(Nu(e,this.peekCodePoint(0),this.peekCodePoint(1)))return this.reconsumeCodePoint(e),this.consumeNumericToken();break;case 44:return Hu;case Eu:var o=e,n=this.peekCodePoint(0),a=this.peekCodePoint(1);if(Nu(o,n,a))return this.reconsumeCodePoint(e),this.consumeNumericToken();if(Ou(o,n,a))return this.reconsumeCodePoint(e),this.consumeIdentLikeToken();if(n===Eu&&62===a)return this.consumeCodePoint(),this.consumeCodePoint(),td;break;case 46:if(Nu(e,this.peekCodePoint(0),this.peekCodePoint(1)))return this.reconsumeCodePoint(e),this.consumeNumericToken();break;case 47:if(42===this.peekCodePoint(0))for(this.consumeCodePoint();;){var l=this.consumeCodePoint();if(42===l&&47===(l=this.consumeCodePoint()))return this.consumeToken();if(l===Iu)return this.consumeToken()}break;case 58:return id;case 59:return sd;case 60:if(33===this.peekCodePoint(0)&&this.peekCodePoint(1)===Eu&&this.peekCodePoint(2)===Eu)return this.consumeCodePoint(),this.consumeCodePoint(),ed;break;case 64:var A=this.peekCodePoint(0),h=this.peekCodePoint(1),c=this.peekCodePoint(2);if(Ou(A,h,c))return{type:7,value:this.consumeName()};break;case 91:return rd;case 92:if(ku(e,this.peekCodePoint(0)))return this.reconsumeCodePoint(e),this.consumeIdentLikeToken();break;case 93:return od;case 61:if(61===this.peekCodePoint(0))return this.consumeCodePoint(),Gu;break;case 123:return Yu;case 125:return qu;case 117:case 85:var u=this.peekCodePoint(0),d=this.peekCodePoint(1);return u!==Fu||!Su(d)&&63!==d||(this.consumeCodePoint(),this.consumeUnicodeRangeToken()),this.reconsumeCodePoint(e),this.consumeIdentLikeToken();case 124:if(61===this.peekCodePoint(0))return this.consumeCodePoint(),Ku;if(124===this.peekCodePoint(0))return this.consumeCodePoint(),Wu;break;case 126:if(61===this.peekCodePoint(0))return this.consumeCodePoint(),Xu;break;case Iu:return ad}return Tu(e)?(this.consumeWhiteSpace(),nd):Du(e)?(this.reconsumeCodePoint(e),this.consumeNumericToken()):Ru(e)?(this.reconsumeCodePoint(e),this.consumeIdentLikeToken()):{type:6,value:Ic(e)}},e.prototype.consumeCodePoint=function(){var e=this._value.shift();return void 0===e?-1:e},e.prototype.reconsumeCodePoint=function(e){this._value.unshift(e)},e.prototype.peekCodePoint=function(e){return e>=this._value.length?-1:this._value[e]},e.prototype.consumeUnicodeRangeToken=function(){for(var e=[],t=this.consumeCodePoint();Su(t)&&e.length<6;)e.push(t),t=this.consumeCodePoint();for(var i=!1;63===t&&e.length<6;)e.push(t),t=this.consumeCodePoint(),i=!0;if(i)return{type:30,start:parseInt(Ic.apply(void 0,e.map((function(e){return 63===e?48:e}))),16),end:parseInt(Ic.apply(void 0,e.map((function(e){return 63===e?70:e}))),16)};var s=parseInt(Ic.apply(void 0,e),16);if(this.peekCodePoint(0)===Eu&&Su(this.peekCodePoint(1))){this.consumeCodePoint(),t=this.consumeCodePoint();for(var r=[];Su(t)&&r.length<6;)r.push(t),t=this.consumeCodePoint();return{type:30,start:s,end:parseInt(Ic.apply(void 0,r),16)}}return{type:30,start:s,end:s}},e.prototype.consumeIdentLikeToken=function(){var e=this.consumeName();return"url"===e.toLowerCase()&&40===this.peekCodePoint(0)?(this.consumeCodePoint(),this.consumeUrlToken()):40===this.peekCodePoint(0)?(this.consumeCodePoint(),{type:19,value:e}):{type:20,value:e}},e.prototype.consumeUrlToken=function(){var e=[];if(this.consumeWhiteSpace(),this.peekCodePoint(0)===Iu)return{type:22,value:""};var t=this.peekCodePoint(0);if(39===t||34===t){var i=this.consumeStringToken(this.consumeCodePoint());return 0===i.type&&(this.consumeWhiteSpace(),this.peekCodePoint(0)===Iu||41===this.peekCodePoint(0))?(this.consumeCodePoint(),{type:22,value:i.value}):(this.consumeBadUrlRemnants(),Ju)}for(;;){var s=this.consumeCodePoint();if(s===Iu||41===s)return{type:22,value:Ic.apply(void 0,e)};if(Tu(s))return this.consumeWhiteSpace(),this.peekCodePoint(0)===Iu||41===this.peekCodePoint(0)?(this.consumeCodePoint(),{type:22,value:Ic.apply(void 0,e)}):(this.consumeBadUrlRemnants(),Ju);if(34===s||39===s||40===s||Uu(s))return this.consumeBadUrlRemnants(),Ju;if(92===s){if(!ku(s,this.peekCodePoint(0)))return this.consumeBadUrlRemnants(),Ju;e.push(this.consumeEscapedCodePoint())}else e.push(s)}},e.prototype.consumeWhiteSpace=function(){for(;Tu(this.peekCodePoint(0));)this.consumeCodePoint()},e.prototype.consumeBadUrlRemnants=function(){for(;;){var e=this.consumeCodePoint();if(41===e||e===Iu)return;ku(e,this.peekCodePoint(0))&&this.consumeEscapedCodePoint()}},e.prototype.consumeStringSlice=function(e){for(var t="";e>0;){var i=Math.min(5e4,e);t+=Ic.apply(void 0,this._value.splice(0,i)),e-=i}return this._value.shift(),t},e.prototype.consumeStringToken=function(e){for(var t="",i=0;;){var s=this._value[i];if(s===Iu||void 0===s||s===e)return{type:0,value:t+=this.consumeStringSlice(i)};if(10===s)return this._value.splice(0,i),$u;if(92===s){var r=this._value[i+1];r!==Iu&&void 0!==r&&(10===r?(t+=this.consumeStringSlice(i),i=-1,this._value.shift()):ku(s,r)&&(t+=this.consumeStringSlice(i),t+=Ic(this.consumeEscapedCodePoint()),i=-1))}i++}},e.prototype.consumeNumber=function(){var e=[],t=4,i=this.peekCodePoint(0);for(i!==Fu&&i!==Eu||e.push(this.consumeCodePoint());Du(this.peekCodePoint(0));)e.push(this.consumeCodePoint());i=this.peekCodePoint(0);var s=this.peekCodePoint(1);if(46===i&&Du(s))for(e.push(this.consumeCodePoint(),this.consumeCodePoint()),t=8;Du(this.peekCodePoint(0));)e.push(this.consumeCodePoint());i=this.peekCodePoint(0),s=this.peekCodePoint(1);var r=this.peekCodePoint(2);if((69===i||101===i)&&((s===Fu||s===Eu)&&Du(r)||Du(s)))for(e.push(this.consumeCodePoint(),this.consumeCodePoint()),t=8;Du(this.peekCodePoint(0));)e.push(this.consumeCodePoint());return[Qu(e),t]},e.prototype.consumeNumericToken=function(){var e=this.consumeNumber(),t=e[0],i=e[1],s=this.peekCodePoint(0),r=this.peekCodePoint(1),o=this.peekCodePoint(2);return Ou(s,r,o)?{type:15,number:t,flags:i,unit:this.consumeName()}:37===s?(this.consumeCodePoint(),{type:16,number:t,flags:i}):{type:17,number:t,flags:i}},e.prototype.consumeEscapedCodePoint=function(){var e=this.consumeCodePoint();if(Su(e)){for(var t=Ic(e);Su(this.peekCodePoint(0))&&t.length<6;)t+=Ic(this.consumeCodePoint());Tu(this.peekCodePoint(0))&&this.consumeCodePoint();var i=parseInt(t,16);return 0===i||function(e){return e>=55296&&e<=57343}(i)||i>1114111?65533:i}return e===Iu?65533:e},e.prototype.consumeName=function(){for(var e="";;){var t=this.consumeCodePoint();if(Lu(t))e+=Ic(t);else{if(!ku(t,this.peekCodePoint(0)))return this.reconsumeCodePoint(t),e;e+=Ic(this.consumeEscapedCodePoint())}}},e}(),Ad=function(){function e(e){this._tokens=e}return e.create=function(t){var i=new ld;return i.write(t),new e(i.read())},e.parseValue=function(t){return e.create(t).parseComponentValue()},e.parseValues=function(t){return e.create(t).parseComponentValues()},e.prototype.parseComponentValue=function(){for(var e=this.consumeToken();31===e.type;)e=this.consumeToken();if(32===e.type)throw new SyntaxError("Error parsing CSS component value, unexpected EOF");this.reconsumeToken(e);var t=this.consumeComponentValue();do{e=this.consumeToken()}while(31===e.type);if(32===e.type)return t;throw new SyntaxError("Error parsing CSS component value, multiple values found when expecting only one")},e.prototype.parseComponentValues=function(){for(var e=[];;){var t=this.consumeComponentValue();if(32===t.type)return e;e.push(t),e.push()}},e.prototype.consumeComponentValue=function(){var e=this.consumeToken();switch(e.type){case 11:case 28:case 2:return this.consumeSimpleBlock(e.type);case 19:return this.consumeFunction(e)}return e},e.prototype.consumeSimpleBlock=function(e){for(var t={type:e,values:[]},i=this.consumeToken();;){if(32===i.type||_d(i,e))return t;this.reconsumeToken(i),t.values.push(this.consumeComponentValue()),i=this.consumeToken()}},e.prototype.consumeFunction=function(e){for(var t={name:e.value,values:[],type:18};;){var i=this.consumeToken();if(32===i.type||3===i.type)return t;this.reconsumeToken(i),t.values.push(this.consumeComponentValue())}},e.prototype.consumeToken=function(){var e=this._tokens.shift();return void 0===e?ad:e},e.prototype.reconsumeToken=function(e){this._tokens.unshift(e)},e}(),hd=function(e){return 15===e.type},cd=function(e){return 17===e.type},ud=function(e){return 20===e.type},dd=function(e){return 0===e.type},pd=function(e,t){return ud(e)&&e.value===t},gd=function(e){return 31!==e.type},md=function(e){return 31!==e.type&&4!==e.type},fd=function(e){var t=[],i=[];return e.forEach((function(e){if(4===e.type){if(0===i.length)throw new Error("Error parsing function args, zero tokens for arg");return t.push(i),void(i=[])}31!==e.type&&i.push(e)})),i.length&&t.push(i),t},_d=function(e,t){return 11===t&&12===e.type||(28===t&&29===e.type||2===t&&3===e.type)},vd=function(e){return 17===e.type||15===e.type},bd=function(e){return 16===e.type||vd(e)},xd=function(e){return e.length>1?[e[0],e[1]]:[e[0]]},wd={type:17,number:0,flags:4},yd={type:16,number:50,flags:4},Pd={type:16,number:100,flags:4},Bd=function(e,t,i){var s=e[0],r=e[1];return[Cd(s,t),Cd(void 0!==r?r:s,i)]},Cd=function(e,t){if(16===e.type)return e.number/100*t;if(hd(e))switch(e.unit){case"rem":case"em":return 16*e.number;default:return e.number}return e.number},Md="grad",Ed="turn",Fd=function(e,t){if(15===t.type)switch(t.unit){case"deg":return Math.PI*t.number/180;case Md:return Math.PI/200*t.number;case"rad":return t.number;case Ed:return 2*Math.PI*t.number}throw new Error("Unsupported angle type")},Id=function(e){return 15===e.type&&("deg"===e.unit||e.unit===Md||"rad"===e.unit||e.unit===Ed)},Dd=function(e){switch(e.filter(ud).map((function(e){return e.value})).join(" ")){case"to bottom right":case"to right bottom":case"left top":case"top left":return[wd,wd];case"to top":case"bottom":return Sd(0);case"to bottom left":case"to left bottom":case"right top":case"top right":return[wd,Pd];case"to right":case"left":return Sd(90);case"to top left":case"to left top":case"right bottom":case"bottom right":return[Pd,Pd];case"to bottom":case"top":return Sd(180);case"to top right":case"to right top":case"left bottom":case"bottom left":return[Pd,wd];case"to left":case"right":return Sd(270)}return 0},Sd=function(e){return Math.PI*e/180},Td=function(e,t){if(18===t.type){var i=Vd[t.name];if(void 0===i)throw new Error('Attempting to parse an unsupported color function "'+t.name+'"');return i(e,t.values)}if(5===t.type){if(3===t.value.length){var s=t.value.substring(0,1),r=t.value.substring(1,2),o=t.value.substring(2,3);return Ud(parseInt(s+s,16),parseInt(r+r,16),parseInt(o+o,16),1)}if(4===t.value.length){s=t.value.substring(0,1),r=t.value.substring(1,2),o=t.value.substring(2,3);var n=t.value.substring(3,4);return Ud(parseInt(s+s,16),parseInt(r+r,16),parseInt(o+o,16),parseInt(n+n,16)/255)}if(6===t.value.length){s=t.value.substring(0,2),r=t.value.substring(2,4),o=t.value.substring(4,6);return Ud(parseInt(s,16),parseInt(r,16),parseInt(o,16),1)}if(8===t.value.length){s=t.value.substring(0,2),r=t.value.substring(2,4),o=t.value.substring(4,6),n=t.value.substring(6,8);return Ud(parseInt(s,16),parseInt(r,16),parseInt(o,16),parseInt(n,16)/255)}}if(20===t.type){var a=Hd[t.value.toUpperCase()];if(void 0!==a)return a}return Hd.TRANSPARENT},Rd=function(e){return 0==(255&e)},Ld=function(e){var t=255&e,i=255&e>>8,s=255&e>>16,r=255&e>>24;return t<255?"rgba("+r+","+s+","+i+","+t/255+")":"rgb("+r+","+s+","+i+")"},Ud=function(e,t,i,s){return(e<<24|t<<16|i<<8|Math.round(255*s)<<0)>>>0},kd=function(e,t){if(17===e.type)return e.number;if(16===e.type){var i=3===t?1:255;return 3===t?e.number/100*i:Math.round(e.number/100*i)}return 0},Od=function(e,t){var i=t.filter(md);if(3===i.length){var s=i.map(kd),r=s[0],o=s[1],n=s[2];return Ud(r,o,n,1)}if(4===i.length){var a=i.map(kd),l=(r=a[0],o=a[1],n=a[2],a[3]);return Ud(r,o,n,l)}return 0};function Nd(e,t,i){return i<0&&(i+=1),i>=1&&(i-=1),i<1/6?(t-e)*i*6+e:i<.5?t:i<2/3?6*(t-e)*(2/3-i)+e:e}var Qd=function(e,t){var i=t.filter(md),s=i[0],r=i[1],o=i[2],n=i[3],a=(17===s.type?Sd(s.number):Fd(e,s))/(2*Math.PI),l=bd(r)?r.number/100:0,A=bd(o)?o.number/100:0,h=void 0!==n&&bd(n)?Cd(n,1):1;if(0===l)return Ud(255*A,255*A,255*A,1);var c=A<=.5?A*(l+1):A+l-A*l,u=2*A-c,d=Nd(u,c,a+1/3),p=Nd(u,c,a),g=Nd(u,c,a-1/3);return Ud(255*d,255*p,255*g,h)},Vd={hsl:Qd,hsla:Qd,rgb:Od,rgba:Od},jd=function(e,t){return Td(e,Ad.create(t).parseComponentValue())},Hd={ALICEBLUE:4042850303,ANTIQUEWHITE:4209760255,AQUA:16777215,AQUAMARINE:2147472639,AZURE:4043309055,BEIGE:4126530815,BISQUE:4293182719,BLACK:255,BLANCHEDALMOND:4293643775,BLUE:65535,BLUEVIOLET:2318131967,BROWN:2771004159,BURLYWOOD:3736635391,CADETBLUE:1604231423,CHARTREUSE:2147418367,CHOCOLATE:3530104575,CORAL:4286533887,CORNFLOWERBLUE:1687547391,CORNSILK:4294499583,CRIMSON:3692313855,CYAN:16777215,DARKBLUE:35839,DARKCYAN:9145343,DARKGOLDENROD:3095837695,DARKGRAY:2846468607,DARKGREEN:6553855,DARKGREY:2846468607,DARKKHAKI:3182914559,DARKMAGENTA:2332068863,DARKOLIVEGREEN:1433087999,DARKORANGE:4287365375,DARKORCHID:2570243327,DARKRED:2332033279,DARKSALMON:3918953215,DARKSEAGREEN:2411499519,DARKSLATEBLUE:1211993087,DARKSLATEGRAY:793726975,DARKSLATEGREY:793726975,DARKTURQUOISE:13554175,DARKVIOLET:2483082239,DEEPPINK:4279538687,DEEPSKYBLUE:12582911,DIMGRAY:1768516095,DIMGREY:1768516095,DODGERBLUE:512819199,FIREBRICK:2988581631,FLORALWHITE:4294635775,FORESTGREEN:579543807,FUCHSIA:4278255615,GAINSBORO:3705462015,GHOSTWHITE:4177068031,GOLD:4292280575,GOLDENROD:3668254975,GRAY:2155905279,GREEN:8388863,GREENYELLOW:2919182335,GREY:2155905279,HONEYDEW:4043305215,HOTPINK:4285117695,INDIANRED:3445382399,INDIGO:1258324735,IVORY:4294963455,KHAKI:4041641215,LAVENDER:3873897215,LAVENDERBLUSH:4293981695,LAWNGREEN:2096890111,LEMONCHIFFON:4294626815,LIGHTBLUE:2916673279,LIGHTCORAL:4034953471,LIGHTCYAN:3774873599,LIGHTGOLDENRODYELLOW:4210742015,LIGHTGRAY:3553874943,LIGHTGREEN:2431553791,LIGHTGREY:3553874943,LIGHTPINK:4290167295,LIGHTSALMON:4288707327,LIGHTSEAGREEN:548580095,LIGHTSKYBLUE:2278488831,LIGHTSLATEGRAY:2005441023,LIGHTSLATEGREY:2005441023,LIGHTSTEELBLUE:2965692159,LIGHTYELLOW:4294959359,LIME:16711935,LIMEGREEN:852308735,LINEN:4210091775,MAGENTA:4278255615,MAROON:2147483903,MEDIUMAQUAMARINE:1724754687,MEDIUMBLUE:52735,MEDIUMORCHID:3126187007,MEDIUMPURPLE:2473647103,MEDIUMSEAGREEN:1018393087,MEDIUMSLATEBLUE:2070474495,MEDIUMSPRINGGREEN:16423679,MEDIUMTURQUOISE:1221709055,MEDIUMVIOLETRED:3340076543,MIDNIGHTBLUE:421097727,MINTCREAM:4127193855,MISTYROSE:4293190143,MOCCASIN:4293178879,NAVAJOWHITE:4292783615,NAVY:33023,OLDLACE:4260751103,OLIVE:2155872511,OLIVEDRAB:1804477439,ORANGE:4289003775,ORANGERED:4282712319,ORCHID:3664828159,PALEGOLDENROD:4008225535,PALEGREEN:2566625535,PALETURQUOISE:2951671551,PALEVIOLETRED:3681588223,PAPAYAWHIP:4293907967,PEACHPUFF:4292524543,PERU:3448061951,PINK:4290825215,PLUM:3718307327,POWDERBLUE:2967529215,PURPLE:2147516671,REBECCAPURPLE:1714657791,RED:4278190335,ROSYBROWN:3163525119,ROYALBLUE:1097458175,SADDLEBROWN:2336560127,SALMON:4202722047,SANDYBROWN:4104413439,SEAGREEN:780883967,SEASHELL:4294307583,SIENNA:2689740287,SILVER:3233857791,SKYBLUE:2278484991,SLATEBLUE:1784335871,SLATEGRAY:1887473919,SLATEGREY:1887473919,SNOW:4294638335,SPRINGGREEN:16744447,STEELBLUE:1182971135,TAN:3535047935,TEAL:8421631,THISTLE:3636451583,TOMATO:4284696575,TRANSPARENT:0,TURQUOISE:1088475391,VIOLET:4001558271,WHEAT:4125012991,WHITE:4294967295,WHITESMOKE:4126537215,YELLOW:4294902015,YELLOWGREEN:2597139199},zd={name:"background-clip",initialValue:"border-box",prefix:!1,type:1,parse:function(e,t){return t.map((function(e){if(ud(e))switch(e.value){case"padding-box":return 1;case"content-box":return 2}return 0}))}},Gd={name:"background-color",initialValue:"transparent",prefix:!1,type:3,format:"color"},Wd=function(e,t){var i=Td(e,t[0]),s=t[1];return s&&bd(s)?{color:i,stop:s}:{color:i,stop:null}},Kd=function(e,t){var i=e[0],s=e[e.length-1];null===i.stop&&(i.stop=wd),null===s.stop&&(s.stop=Pd);for(var r=[],o=0,n=0;no?r.push(l):r.push(o),o=l}else r.push(null)}var A=null;for(n=0;ne.optimumDistance)?{optimumCorner:t,optimumDistance:a}:e}),{optimumDistance:r?1/0:-1/0,optimumCorner:null}).optimumCorner},Zd=function(e,t){var i=Sd(180),s=[];return fd(t).forEach((function(t,r){if(0===r){var o=t[0];if(20===o.type&&-1!==["top","left","right","bottom"].indexOf(o.value))return void(i=Dd(t));if(Id(o))return void(i=(Fd(e,o)+Sd(270))%Sd(360))}var n=Wd(e,t);s.push(n)})),{angle:i,stops:s,type:1}},Jd="closest-side",$d="farthest-side",ep="closest-corner",tp="farthest-corner",ip="circle",sp="ellipse",rp="cover",op="contain",np=function(e,t){var i=0,s=3,r=[],o=[];return fd(t).forEach((function(t,n){var a=!0;if(0===n?a=t.reduce((function(e,t){if(ud(t))switch(t.value){case"center":return o.push(yd),!1;case"top":case"left":return o.push(wd),!1;case"right":case"bottom":return o.push(Pd),!1}else if(bd(t)||vd(t))return o.push(t),!1;return e}),a):1===n&&(a=t.reduce((function(e,t){if(ud(t))switch(t.value){case ip:return i=0,!1;case sp:return i=1,!1;case op:case Jd:return s=0,!1;case $d:return s=1,!1;case ep:return s=2,!1;case rp:case tp:return s=3,!1}else if(vd(t)||bd(t))return Array.isArray(s)||(s=[]),s.push(t),!1;return e}),a)),a){var l=Wd(e,t);r.push(l)}})),{size:s,shape:i,stops:r,position:o,type:2}},ap=function(e,t){if(22===t.type){var i={url:t.value,type:0};return e.cache.addImage(t.value),i}if(18===t.type){var s=Ap[t.name];if(void 0===s)throw new Error('Attempting to parse an unsupported image function "'+t.name+'"');return s(e,t.values)}throw new Error("Unsupported image type "+t.type)};var lp,Ap={"linear-gradient":function(e,t){var i=Sd(180),s=[];return fd(t).forEach((function(t,r){if(0===r){var o=t[0];if(20===o.type&&"to"===o.value)return void(i=Dd(t));if(Id(o))return void(i=Fd(e,o))}var n=Wd(e,t);s.push(n)})),{angle:i,stops:s,type:1}},"-moz-linear-gradient":Zd,"-ms-linear-gradient":Zd,"-o-linear-gradient":Zd,"-webkit-linear-gradient":Zd,"radial-gradient":function(e,t){var i=0,s=3,r=[],o=[];return fd(t).forEach((function(t,n){var a=!0;if(0===n){var l=!1;a=t.reduce((function(e,t){if(l)if(ud(t))switch(t.value){case"center":return o.push(yd),e;case"top":case"left":return o.push(wd),e;case"right":case"bottom":return o.push(Pd),e}else(bd(t)||vd(t))&&o.push(t);else if(ud(t))switch(t.value){case ip:return i=0,!1;case sp:return i=1,!1;case"at":return l=!0,!1;case Jd:return s=0,!1;case rp:case $d:return s=1,!1;case op:case ep:return s=2,!1;case tp:return s=3,!1}else if(vd(t)||bd(t))return Array.isArray(s)||(s=[]),s.push(t),!1;return e}),a)}if(a){var A=Wd(e,t);r.push(A)}})),{size:s,shape:i,stops:r,position:o,type:2}},"-moz-radial-gradient":np,"-ms-radial-gradient":np,"-o-radial-gradient":np,"-webkit-radial-gradient":np,"-webkit-gradient":function(e,t){var i=Sd(180),s=[],r=1;return fd(t).forEach((function(t,i){var o=t[0];if(0===i){if(ud(o)&&"linear"===o.value)return void(r=1);if(ud(o)&&"radial"===o.value)return void(r=2)}if(18===o.type)if("from"===o.name){var n=Td(e,o.values[0]);s.push({stop:wd,color:n})}else if("to"===o.name){n=Td(e,o.values[0]);s.push({stop:Pd,color:n})}else if("color-stop"===o.name){var a=o.values.filter(md);if(2===a.length){n=Td(e,a[1]);var l=a[0];cd(l)&&s.push({stop:{type:16,number:100*l.number,flags:l.flags},color:n})}}})),1===r?{angle:(i+Sd(180))%Sd(360),stops:s,type:r}:{size:3,shape:0,stops:s,position:[],type:r}}},hp={name:"background-image",initialValue:"none",type:1,prefix:!1,parse:function(e,t){if(0===t.length)return[];var i=t[0];return 20===i.type&&"none"===i.value?[]:t.filter((function(e){return md(e)&&function(e){return!(20===e.type&&"none"===e.value||18===e.type&&!Ap[e.name])}(e)})).map((function(t){return ap(e,t)}))}},cp={name:"background-origin",initialValue:"border-box",prefix:!1,type:1,parse:function(e,t){return t.map((function(e){if(ud(e))switch(e.value){case"padding-box":return 1;case"content-box":return 2}return 0}))}},up={name:"background-position",initialValue:"0% 0%",type:1,prefix:!1,parse:function(e,t){return fd(t).map((function(e){return e.filter(bd)})).map(xd)}},dp={name:"background-repeat",initialValue:"repeat",prefix:!1,type:1,parse:function(e,t){return fd(t).map((function(e){return e.filter(ud).map((function(e){return e.value})).join(" ")})).map(pp)}},pp=function(e){switch(e){case"no-repeat":return 1;case"repeat-x":case"repeat no-repeat":return 2;case"repeat-y":case"no-repeat repeat":return 3;default:return 0}};!function(e){e.AUTO="auto",e.CONTAIN="contain",e.COVER="cover"}(lp||(lp={}));var gp,mp={name:"background-size",initialValue:"0",prefix:!1,type:1,parse:function(e,t){return fd(t).map((function(e){return e.filter(fp)}))}},fp=function(e){return ud(e)||bd(e)},_p=function(e){return{name:"border-"+e+"-color",initialValue:"transparent",prefix:!1,type:3,format:"color"}},vp=_p("top"),bp=_p("right"),xp=_p("bottom"),wp=_p("left"),yp=function(e){return{name:"border-radius-"+e,initialValue:"0 0",prefix:!1,type:1,parse:function(e,t){return xd(t.filter(bd))}}},Pp=yp("top-left"),Bp=yp("top-right"),Cp=yp("bottom-right"),Mp=yp("bottom-left"),Ep=function(e){return{name:"border-"+e+"-style",initialValue:"solid",prefix:!1,type:2,parse:function(e,t){switch(t){case"none":return 0;case"dashed":return 2;case"dotted":return 3;case"double":return 4}return 1}}},Fp=Ep("top"),Ip=Ep("right"),Dp=Ep("bottom"),Sp=Ep("left"),Tp=function(e){return{name:"border-"+e+"-width",initialValue:"0",type:0,prefix:!1,parse:function(e,t){return hd(t)?t.number:0}}},Rp=Tp("top"),Lp=Tp("right"),Up=Tp("bottom"),kp=Tp("left"),Op={name:"color",initialValue:"transparent",prefix:!1,type:3,format:"color"},Np={name:"direction",initialValue:"ltr",prefix:!1,type:2,parse:function(e,t){return"rtl"===t?1:0}},Qp={name:"display",initialValue:"inline-block",prefix:!1,type:1,parse:function(e,t){return t.filter(ud).reduce((function(e,t){return e|Vp(t.value)}),0)}},Vp=function(e){switch(e){case"block":case"-webkit-box":return 2;case"inline":return 4;case"run-in":return 8;case"flow":return 16;case"flow-root":return 32;case"table":return 64;case"flex":case"-webkit-flex":return 128;case"grid":case"-ms-grid":return 256;case"ruby":return 512;case"subgrid":return 1024;case"list-item":return 2048;case"table-row-group":return 4096;case"table-header-group":return 8192;case"table-footer-group":return 16384;case"table-row":return 32768;case"table-cell":return 65536;case"table-column-group":return 131072;case"table-column":return 262144;case"table-caption":return 524288;case"ruby-base":return 1048576;case"ruby-text":return 2097152;case"ruby-base-container":return 4194304;case"ruby-text-container":return 8388608;case"contents":return 16777216;case"inline-block":return 33554432;case"inline-list-item":return 67108864;case"inline-table":return 134217728;case"inline-flex":return 268435456;case"inline-grid":return 536870912}return 0},jp={name:"float",initialValue:"none",prefix:!1,type:2,parse:function(e,t){switch(t){case"left":return 1;case"right":return 2;case"inline-start":return 3;case"inline-end":return 4}return 0}},Hp={name:"letter-spacing",initialValue:"0",prefix:!1,type:0,parse:function(e,t){return 20===t.type&&"normal"===t.value?0:17===t.type||15===t.type?t.number:0}};!function(e){e.NORMAL="normal",e.STRICT="strict"}(gp||(gp={}));var zp,Gp={name:"line-break",initialValue:"normal",prefix:!1,type:2,parse:function(e,t){return"strict"===t?gp.STRICT:gp.NORMAL}},Wp={name:"line-height",initialValue:"normal",prefix:!1,type:4},Kp=function(e,t){return ud(e)&&"normal"===e.value?1.2*t:17===e.type?t*e.number:bd(e)?Cd(e,t):t},Xp={name:"list-style-image",initialValue:"none",type:0,prefix:!1,parse:function(e,t){return 20===t.type&&"none"===t.value?null:ap(e,t)}},Yp={name:"list-style-position",initialValue:"outside",prefix:!1,type:2,parse:function(e,t){return"inside"===t?0:1}},qp={name:"list-style-type",initialValue:"none",prefix:!1,type:2,parse:function(e,t){switch(t){case"disc":return 0;case"circle":return 1;case"square":return 2;case"decimal":return 3;case"cjk-decimal":return 4;case"decimal-leading-zero":return 5;case"lower-roman":return 6;case"upper-roman":return 7;case"lower-greek":return 8;case"lower-alpha":return 9;case"upper-alpha":return 10;case"arabic-indic":return 11;case"armenian":return 12;case"bengali":return 13;case"cambodian":return 14;case"cjk-earthly-branch":return 15;case"cjk-heavenly-stem":return 16;case"cjk-ideographic":return 17;case"devanagari":return 18;case"ethiopic-numeric":return 19;case"georgian":return 20;case"gujarati":return 21;case"gurmukhi":case"hebrew":return 22;case"hiragana":return 23;case"hiragana-iroha":return 24;case"japanese-formal":return 25;case"japanese-informal":return 26;case"kannada":return 27;case"katakana":return 28;case"katakana-iroha":return 29;case"khmer":return 30;case"korean-hangul-formal":return 31;case"korean-hanja-formal":return 32;case"korean-hanja-informal":return 33;case"lao":return 34;case"lower-armenian":return 35;case"malayalam":return 36;case"mongolian":return 37;case"myanmar":return 38;case"oriya":return 39;case"persian":return 40;case"simp-chinese-formal":return 41;case"simp-chinese-informal":return 42;case"tamil":return 43;case"telugu":return 44;case"thai":return 45;case"tibetan":return 46;case"trad-chinese-formal":return 47;case"trad-chinese-informal":return 48;case"upper-armenian":return 49;case"disclosure-open":return 50;case"disclosure-closed":return 51;default:return-1}}},Zp=function(e){return{name:"margin-"+e,initialValue:"0",prefix:!1,type:4}},Jp=Zp("top"),$p=Zp("right"),eg=Zp("bottom"),tg=Zp("left"),ig={name:"overflow",initialValue:"visible",prefix:!1,type:1,parse:function(e,t){return t.filter(ud).map((function(e){switch(e.value){case"hidden":return 1;case"scroll":return 2;case"clip":return 3;case"auto":return 4;default:return 0}}))}},sg={name:"overflow-wrap",initialValue:"normal",prefix:!1,type:2,parse:function(e,t){return"break-word"===t?"break-word":"normal"}},rg=function(e){return{name:"padding-"+e,initialValue:"0",prefix:!1,type:3,format:"length-percentage"}},og=rg("top"),ng=rg("right"),ag=rg("bottom"),lg=rg("left"),Ag={name:"text-align",initialValue:"left",prefix:!1,type:2,parse:function(e,t){switch(t){case"right":return 2;case"center":case"justify":return 1;default:return 0}}},hg={name:"position",initialValue:"static",prefix:!1,type:2,parse:function(e,t){switch(t){case"relative":return 1;case"absolute":return 2;case"fixed":return 3;case"sticky":return 4}return 0}},cg={name:"text-shadow",initialValue:"none",type:1,prefix:!1,parse:function(e,t){return 1===t.length&&pd(t[0],"none")?[]:fd(t).map((function(t){for(var i={color:Hd.TRANSPARENT,offsetX:wd,offsetY:wd,blur:wd},s=0,r=0;r1?1:0],this.overflowWrap=zg(e,sg,t.overflowWrap),this.paddingTop=zg(e,og,t.paddingTop),this.paddingRight=zg(e,ng,t.paddingRight),this.paddingBottom=zg(e,ag,t.paddingBottom),this.paddingLeft=zg(e,lg,t.paddingLeft),this.paintOrder=zg(e,Og,t.paintOrder),this.position=zg(e,hg,t.position),this.textAlign=zg(e,Ag,t.textAlign),this.textDecorationColor=zg(e,yg,null!==(i=t.textDecorationColor)&&void 0!==i?i:t.color),this.textDecorationLine=zg(e,Pg,null!==(s=t.textDecorationLine)&&void 0!==s?s:t.textDecoration),this.textShadow=zg(e,cg,t.textShadow),this.textTransform=zg(e,ug,t.textTransform),this.transform=zg(e,dg,t.transform),this.transformOrigin=zg(e,fg,t.transformOrigin),this.visibility=zg(e,_g,t.visibility),this.webkitTextStrokeColor=zg(e,Ng,t.webkitTextStrokeColor),this.webkitTextStrokeWidth=zg(e,Qg,t.webkitTextStrokeWidth),this.wordBreak=zg(e,vg,t.wordBreak),this.zIndex=zg(e,bg,t.zIndex)}return e.prototype.isVisible=function(){return this.display>0&&this.opacity>0&&0===this.visibility},e.prototype.isTransparent=function(){return Rd(this.backgroundColor)},e.prototype.isTransformed=function(){return null!==this.transform},e.prototype.isPositioned=function(){return 0!==this.position},e.prototype.isPositionedWithZIndex=function(){return this.isPositioned()&&!this.zIndex.auto},e.prototype.isFloating=function(){return 0!==this.float},e.prototype.isInlineLevel=function(){return Ig(this.display,4)||Ig(this.display,33554432)||Ig(this.display,268435456)||Ig(this.display,536870912)||Ig(this.display,67108864)||Ig(this.display,134217728)},e}(),jg=function(e,t){this.content=zg(e,Dg,t.content),this.quotes=zg(e,Lg,t.quotes)},Hg=function(e,t){this.counterIncrement=zg(e,Sg,t.counterIncrement),this.counterReset=zg(e,Tg,t.counterReset)},zg=function(e,t,i){var s=new ld,r=null!=i?i.toString():t.initialValue;s.write(r);var o=new Ad(s.read());switch(t.type){case 2:var n=o.parseComponentValue();return t.parse(e,ud(n)?n.value:t.initialValue);case 0:return t.parse(e,o.parseComponentValue());case 1:return t.parse(e,o.parseComponentValues());case 4:return o.parseComponentValue();case 3:switch(t.format){case"angle":return Fd(e,o.parseComponentValue());case"color":return Td(e,o.parseComponentValue());case"image":return ap(e,o.parseComponentValue());case"length":var a=o.parseComponentValue();return vd(a)?a:wd;case"length-percentage":var l=o.parseComponentValue();return bd(l)?l:wd;case"time":return xg(e,o.parseComponentValue())}}},Gg=function(e,t){var i=function(e){switch(e.getAttribute("data-html2canvas-debug")){case"all":return 1;case"clone":return 2;case"parse":return 3;case"render":return 4;default:return 0}}(e);return 1===i||t===i},Wg=function(e,t){this.context=e,this.textNodes=[],this.elements=[],this.flags=0,Gg(t,3),this.styles=new Vg(e,window.getComputedStyle(t,null)),qm(t)&&(this.styles.animationDuration.some((function(e){return e>0}))&&(t.style.animationDuration="0s"),null!==this.styles.transform&&(t.style.transform="none")),this.bounds=Ec(this.context,t),Gg(t,4)&&(this.flags|=16)},Kg="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",Xg="undefined"==typeof Uint8Array?[]:new Uint8Array(256),Yg=0;Yg=0){if(e<55296||e>56319&&e<=65535)return t=((t=this.index[e>>5])<<2)+(31&e),this.data[t];if(e<=65535)return t=((t=this.index[2048+(e-55296>>5)])<<2)+(31&e),this.data[t];if(e>11),t=this.index[t],t+=e>>5&63,t=((t=this.index[t])<<2)+(31&e),this.data[t];if(e<=1114111)return this.data[this.highValueIndex]}return this.errorValue},e}(),Jg="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",$g="undefined"==typeof Uint8Array?[]:new Uint8Array(256),em=0;em>10),n%1024+56320)),(r+1===i||s.length>16384)&&(o+=String.fromCharCode.apply(String,s),s.length=0)}return o},am=function(e,t){var i,s,r,o=function(e){var t,i,s,r,o,n=.75*e.length,a=e.length,l=0;"="===e[e.length-1]&&(n--,"="===e[e.length-2]&&n--);var A="undefined"!=typeof ArrayBuffer&&"undefined"!=typeof Uint8Array&&void 0!==Uint8Array.prototype.slice?new ArrayBuffer(n):new Array(n),h=Array.isArray(A)?A:new Uint8Array(A);for(t=0;t>4,h[l++]=(15&s)<<4|r>>2,h[l++]=(3&r)<<6|63&o;return A}(e),n=Array.isArray(o)?function(e){for(var t=e.length,i=[],s=0;s=55296&&r<=56319&&i=i)return{done:!0,value:null};for(var e=lm;sn.x||r.y>n.y;return n=r,0===t||a}));return e.body.removeChild(t),a}(document);return Object.defineProperty(gm,"SUPPORT_WORD_BREAKING",{value:e}),e},get SUPPORT_SVG_DRAWING(){var e=function(e){var t=new Image,i=e.createElement("canvas"),s=i.getContext("2d");if(!s)return!1;t.src="data:image/svg+xml,";try{s.drawImage(t,0,0),i.toDataURL()}catch(e){return!1}return!0}(document);return Object.defineProperty(gm,"SUPPORT_SVG_DRAWING",{value:e}),e},get SUPPORT_FOREIGNOBJECT_DRAWING(){var e="function"==typeof Array.from&&"function"==typeof window.fetch?function(e){var t=e.createElement("canvas"),i=100;t.width=i,t.height=i;var s=t.getContext("2d");if(!s)return Promise.reject(!1);s.fillStyle="rgb(0, 255, 0)",s.fillRect(0,0,i,i);var r=new Image,o=t.toDataURL();r.src=o;var n=dm(i,i,0,0,r);return s.fillStyle="red",s.fillRect(0,0,i,i),pm(n).then((function(t){s.drawImage(t,0,0);var r=s.getImageData(0,0,i,i).data;s.fillStyle="red",s.fillRect(0,0,i,i);var n=e.createElement("div");return n.style.backgroundImage="url("+o+")",n.style.height="100px",um(r)?pm(dm(i,i,0,0,n)):Promise.reject(!1)})).then((function(e){return s.drawImage(e,0,0),um(s.getImageData(0,0,i,i).data)})).catch((function(){return!1}))}(document):Promise.resolve(!1);return Object.defineProperty(gm,"SUPPORT_FOREIGNOBJECT_DRAWING",{value:e}),e},get SUPPORT_CORS_IMAGES(){var e=void 0!==(new Image).crossOrigin;return Object.defineProperty(gm,"SUPPORT_CORS_IMAGES",{value:e}),e},get SUPPORT_RESPONSE_TYPE(){var e="string"==typeof(new XMLHttpRequest).responseType;return Object.defineProperty(gm,"SUPPORT_RESPONSE_TYPE",{value:e}),e},get SUPPORT_CORS_XHR(){var e="withCredentials"in new XMLHttpRequest;return Object.defineProperty(gm,"SUPPORT_CORS_XHR",{value:e}),e},get SUPPORT_NATIVE_TEXT_SEGMENTATION(){var e=!("undefined"==typeof Intl||!Intl.Segmenter);return Object.defineProperty(gm,"SUPPORT_NATIVE_TEXT_SEGMENTATION",{value:e}),e}},mm=function(e,t){this.text=e,this.bounds=t},fm=function(e,t){var i=t.ownerDocument;if(i){var s=i.createElement("html2canvaswrapper");s.appendChild(t.cloneNode(!0));var r=t.parentNode;if(r){r.replaceChild(s,t);var o=Ec(e,s);return s.firstChild&&r.replaceChild(s.firstChild,s),o}}return Mc.EMPTY},_m=function(e,t,i){var s=e.ownerDocument;if(!s)throw new Error("Node has no owner document");var r=s.createRange();return r.setStart(e,t),r.setEnd(e,t+i),r},vm=function(e){if(gm.SUPPORT_NATIVE_TEXT_SEGMENTATION){var t=new Intl.Segmenter(void 0,{granularity:"grapheme"});return Array.from(t.segment(e)).map((function(e){return e.segment}))}return function(e){for(var t,i=cm(e),s=[];!(t=i.next()).done;)t.value&&s.push(t.value.slice());return s}(e)},bm=function(e,t){return 0!==t.letterSpacing?vm(e):function(e,t){if(gm.SUPPORT_NATIVE_TEXT_SEGMENTATION){var i=new Intl.Segmenter(void 0,{granularity:"word"});return Array.from(i.segment(e)).map((function(e){return e.segment}))}return wm(e,t)}(e,t)},xm=[32,160,4961,65792,65793,4153,4241],wm=function(e,t){for(var i,s=function(e,t){var i=Fc(e),s=Cu(i,t),r=s[0],o=s[1],n=s[2],a=i.length,l=0,A=0;return{next:function(){if(A>=a)return{done:!0,value:null};for(var e=du;A0)if(gm.SUPPORT_RANGE_BOUNDS){var r=_m(s,n,t.length).getClientRects();if(r.length>1){var a=vm(t),l=0;a.forEach((function(t){o.push(new mm(t,Mc.fromDOMRectList(e,_m(s,l+n,t.length).getClientRects()))),l+=t.length}))}else o.push(new mm(t,Mc.fromDOMRectList(e,r)))}else{var A=s.splitText(t.length);o.push(new mm(t,fm(e,s))),s=A}else gm.SUPPORT_RANGE_BOUNDS||(s=s.splitText(t.length));n+=t.length})),o}(e,this.text,i,t)},Pm=function(e,t){switch(t){case 1:return e.toLowerCase();case 3:return e.replace(Bm,Cm);case 2:return e.toUpperCase();default:return e}},Bm=/(^|\s|:|-|\(|\))([a-z])/g,Cm=function(e,t,i){return e.length>0?t+i.toUpperCase():e},Mm=function(e){function t(t,i){var s=e.call(this,t,i)||this;return s.src=i.currentSrc||i.src,s.intrinsicWidth=i.naturalWidth,s.intrinsicHeight=i.naturalHeight,s.context.cache.addImage(s.src),s}return wc(t,e),t}(Wg),Em=function(e){function t(t,i){var s=e.call(this,t,i)||this;return s.canvas=i,s.intrinsicWidth=i.width,s.intrinsicHeight=i.height,s}return wc(t,e),t}(Wg),Fm=function(e){function t(t,i){var s=e.call(this,t,i)||this,r=new XMLSerializer,o=Ec(t,i);return i.setAttribute("width",o.width+"px"),i.setAttribute("height",o.height+"px"),s.svg="data:image/svg+xml,"+encodeURIComponent(r.serializeToString(i)),s.intrinsicWidth=i.width.baseVal.value,s.intrinsicHeight=i.height.baseVal.value,s.context.cache.addImage(s.svg),s}return wc(t,e),t}(Wg),Im=function(e){function t(t,i){var s=e.call(this,t,i)||this;return s.value=i.value,s}return wc(t,e),t}(Wg),Dm=function(e){function t(t,i){var s=e.call(this,t,i)||this;return s.start=i.start,s.reversed="boolean"==typeof i.reversed&&!0===i.reversed,s}return wc(t,e),t}(Wg),Sm=[{type:15,flags:0,unit:"px",number:3}],Tm=[{type:16,flags:0,number:50}],Rm="checkbox",Lm="radio",Um="password",km=707406591,Om=function(e){function t(t,i){var s,r,o,n=e.call(this,t,i)||this;switch(n.type=i.type.toLowerCase(),n.checked=i.checked,n.value=0===(r=(s=i).type===Um?new Array(s.value.length+1).join("•"):s.value).length?s.placeholder||"":r,n.type!==Rm&&n.type!==Lm||(n.styles.backgroundColor=3739148031,n.styles.borderTopColor=n.styles.borderRightColor=n.styles.borderBottomColor=n.styles.borderLeftColor=2779096575,n.styles.borderTopWidth=n.styles.borderRightWidth=n.styles.borderBottomWidth=n.styles.borderLeftWidth=1,n.styles.borderTopStyle=n.styles.borderRightStyle=n.styles.borderBottomStyle=n.styles.borderLeftStyle=1,n.styles.backgroundClip=[0],n.styles.backgroundOrigin=[0],n.bounds=(o=n.bounds).width>o.height?new Mc(o.left+(o.width-o.height)/2,o.top,o.height,o.height):o.width0)i.textNodes.push(new ym(e,r,i.styles));else if(Ym(r))if(cf(r)&&r.assignedNodes)r.assignedNodes().forEach((function(t){return Hm(e,t,i,s)}));else{var n=zm(e,r);n.styles.isVisible()&&(Wm(r,n,s)?n.flags|=4:Km(n.styles)&&(n.flags|=2),-1!==jm.indexOf(r.tagName)&&(n.flags|=8),i.elements.push(n),r.slot,r.shadowRoot?Hm(e,r.shadowRoot,n,s):Af(r)||tf(r)||hf(r)||Hm(e,r,n,s))}},zm=function(e,t){return nf(t)?new Mm(e,t):rf(t)?new Em(e,t):tf(t)?new Fm(e,t):Jm(t)?new Im(e,t):$m(t)?new Dm(e,t):ef(t)?new Om(e,t):hf(t)?new Nm(e,t):Af(t)?new Qm(e,t):af(t)?new Vm(e,t):new Wg(e,t)},Gm=function(e,t){var i=zm(e,t);return i.flags|=4,Hm(e,t,i,i),i},Wm=function(e,t,i){return t.styles.isPositionedWithZIndex()||t.styles.opacity<1||t.styles.isTransformed()||sf(e)&&i.styles.isTransparent()},Km=function(e){return e.isPositioned()||e.isFloating()},Xm=function(e){return e.nodeType===Node.TEXT_NODE},Ym=function(e){return e.nodeType===Node.ELEMENT_NODE},qm=function(e){return Ym(e)&&void 0!==e.style&&!Zm(e)},Zm=function(e){return"object"==typeof e.className},Jm=function(e){return"LI"===e.tagName},$m=function(e){return"OL"===e.tagName},ef=function(e){return"INPUT"===e.tagName},tf=function(e){return"svg"===e.tagName},sf=function(e){return"BODY"===e.tagName},rf=function(e){return"CANVAS"===e.tagName},of=function(e){return"VIDEO"===e.tagName},nf=function(e){return"IMG"===e.tagName},af=function(e){return"IFRAME"===e.tagName},lf=function(e){return"STYLE"===e.tagName},Af=function(e){return"TEXTAREA"===e.tagName},hf=function(e){return"SELECT"===e.tagName},cf=function(e){return"SLOT"===e.tagName},uf=function(e){return e.tagName.indexOf("-")>0},df=function(){function e(){this.counters={}}return e.prototype.getCounterValue=function(e){var t=this.counters[e];return t&&t.length?t[t.length-1]:1},e.prototype.getCounterValues=function(e){var t=this.counters[e];return t||[]},e.prototype.pop=function(e){var t=this;e.forEach((function(e){return t.counters[e].pop()}))},e.prototype.parse=function(e){var t=this,i=e.counterIncrement,s=e.counterReset,r=!0;null!==i&&i.forEach((function(e){var i=t.counters[e.counter];i&&0!==e.increment&&(r=!1,i.length||i.push(1),i[Math.max(0,i.length-1)]+=e.increment)}));var o=[];return r&&s.forEach((function(e){var i=t.counters[e.counter];o.push(e.counter),i||(i=t.counters[e.counter]=[]),i.push(e.reset)})),o},e}(),pf={integers:[1e3,900,500,400,100,90,50,40,10,9,5,4,1],values:["M","CM","D","CD","C","XC","L","XL","X","IX","V","IV","I"]},gf={integers:[9e3,8e3,7e3,6e3,5e3,4e3,3e3,2e3,1e3,900,800,700,600,500,400,300,200,100,90,80,70,60,50,40,30,20,10,9,8,7,6,5,4,3,2,1],values:["Ք","Փ","Ւ","Ց","Ր","Տ","Վ","Ս","Ռ","Ջ","Պ","Չ","Ո","Շ","Ն","Յ","Մ","Ճ","Ղ","Ձ","Հ","Կ","Ծ","Խ","Լ","Ի","Ժ","Թ","Ը","Է","Զ","Ե","Դ","Գ","Բ","Ա"]},mf={integers:[1e4,9e3,8e3,7e3,6e3,5e3,4e3,3e3,2e3,1e3,400,300,200,100,90,80,70,60,50,40,30,20,19,18,17,16,15,10,9,8,7,6,5,4,3,2,1],values:["י׳","ט׳","ח׳","ז׳","ו׳","ה׳","ד׳","ג׳","ב׳","א׳","ת","ש","ר","ק","צ","פ","ע","ס","נ","מ","ל","כ","יט","יח","יז","טז","טו","י","ט","ח","ז","ו","ה","ד","ג","ב","א"]},ff={integers:[1e4,9e3,8e3,7e3,6e3,5e3,4e3,3e3,2e3,1e3,900,800,700,600,500,400,300,200,100,90,80,70,60,50,40,30,20,10,9,8,7,6,5,4,3,2,1],values:["ჵ","ჰ","ჯ","ჴ","ხ","ჭ","წ","ძ","ც","ჩ","შ","ყ","ღ","ქ","ფ","ჳ","ტ","ს","რ","ჟ","პ","ო","ჲ","ნ","მ","ლ","კ","ი","თ","ჱ","ზ","ვ","ე","დ","გ","ბ","ა"]},_f=function(e,t,i,s,r,o){return ei?Mf(e,r,o.length>0):s.integers.reduce((function(t,i,r){for(;e>=i;)e-=i,t+=s.values[r];return t}),"")+o},vf=function(e,t,i,s){var r="";do{i||e--,r=s(e)+r,e/=t}while(e*t>=t);return r},bf=function(e,t,i,s,r){var o=i-t+1;return(e<0?"-":"")+(vf(Math.abs(e),o,s,(function(e){return Ic(Math.floor(e%o)+t)}))+r)},xf=function(e,t,i){void 0===i&&(i=". ");var s=t.length;return vf(Math.abs(e),s,!1,(function(e){return t[Math.floor(e%s)]}))+i},wf=function(e,t,i,s,r,o){if(e<-9999||e>9999)return Mf(e,4,r.length>0);var n=Math.abs(e),a=r;if(0===n)return t[0]+a;for(var l=0;n>0&&l<=4;l++){var A=n%10;0===A&&Ig(o,1)&&""!==a?a=t[A]+a:A>1||1===A&&0===l||1===A&&1===l&&Ig(o,2)||1===A&&1===l&&Ig(o,4)&&e>100||1===A&&l>1&&Ig(o,8)?a=t[A]+(l>0?i[l-1]:"")+a:1===A&&l>0&&(a=i[l-1]+a),n=Math.floor(n/10)}return(e<0?s:"")+a},yf="十百千萬",Pf="拾佰仟萬",Bf="マイナス",Cf="마이너스",Mf=function(e,t,i){var s=i?". ":"",r=i?"、":"",o=i?", ":"",n=i?" ":"";switch(t){case 0:return"•"+n;case 1:return"◦"+n;case 2:return"◾"+n;case 5:var a=bf(e,48,57,!0,s);return a.length<4?"0"+a:a;case 4:return xf(e,"〇一二三四五六七八九",r);case 6:return _f(e,1,3999,pf,3,s).toLowerCase();case 7:return _f(e,1,3999,pf,3,s);case 8:return bf(e,945,969,!1,s);case 9:return bf(e,97,122,!1,s);case 10:return bf(e,65,90,!1,s);case 11:return bf(e,1632,1641,!0,s);case 12:case 49:return _f(e,1,9999,gf,3,s);case 35:return _f(e,1,9999,gf,3,s).toLowerCase();case 13:return bf(e,2534,2543,!0,s);case 14:case 30:return bf(e,6112,6121,!0,s);case 15:return xf(e,"子丑寅卯辰巳午未申酉戌亥",r);case 16:return xf(e,"甲乙丙丁戊己庚辛壬癸",r);case 17:case 48:return wf(e,"零一二三四五六七八九",yf,"負",r,14);case 47:return wf(e,"零壹貳參肆伍陸柒捌玖",Pf,"負",r,15);case 42:return wf(e,"零一二三四五六七八九",yf,"负",r,14);case 41:return wf(e,"零壹贰叁肆伍陆柒捌玖",Pf,"负",r,15);case 26:return wf(e,"〇一二三四五六七八九","十百千万",Bf,r,0);case 25:return wf(e,"零壱弐参四伍六七八九","拾百千万",Bf,r,7);case 31:return wf(e,"영일이삼사오육칠팔구","십백천만",Cf,o,7);case 33:return wf(e,"零一二三四五六七八九","十百千萬",Cf,o,0);case 32:return wf(e,"零壹貳參四五六七八九","拾百千",Cf,o,7);case 18:return bf(e,2406,2415,!0,s);case 20:return _f(e,1,19999,ff,3,s);case 21:return bf(e,2790,2799,!0,s);case 22:return bf(e,2662,2671,!0,s);case 22:return _f(e,1,10999,mf,3,s);case 23:return xf(e,"あいうえおかきくけこさしすせそたちつてとなにぬねのはひふへほまみむめもやゆよらりるれろわゐゑをん");case 24:return xf(e,"いろはにほへとちりぬるをわかよたれそつねならむうゐのおくやまけふこえてあさきゆめみしゑひもせす");case 27:return bf(e,3302,3311,!0,s);case 28:return xf(e,"アイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワヰヱヲン",r);case 29:return xf(e,"イロハニホヘトチリヌルヲワカヨタレソツネナラムウヰノオクヤマケフコエテアサキユメミシヱヒモセス",r);case 34:return bf(e,3792,3801,!0,s);case 37:return bf(e,6160,6169,!0,s);case 38:return bf(e,4160,4169,!0,s);case 39:return bf(e,2918,2927,!0,s);case 40:return bf(e,1776,1785,!0,s);case 43:return bf(e,3046,3055,!0,s);case 44:return bf(e,3174,3183,!0,s);case 45:return bf(e,3664,3673,!0,s);case 46:return bf(e,3872,3881,!0,s);default:return bf(e,48,57,!0,s)}},Ef="data-html2canvas-ignore",Ff=function(){function e(e,t,i){if(this.context=e,this.options=i,this.scrolledElements=[],this.referenceElement=t,this.counters=new df,this.quoteDepth=0,!t.ownerDocument)throw new Error("Cloned element does not have an owner document");this.documentElement=this.cloneNode(t.ownerDocument.documentElement,!1)}return e.prototype.toIFrame=function(e,t){var i=this,s=Df(e,t);if(!s.contentWindow)return Promise.reject("Unable to find iframe window");var r=e.defaultView.pageXOffset,o=e.defaultView.pageYOffset,n=s.contentWindow,a=n.document,l=Rf(s).then((function(){return Pc(i,void 0,void 0,(function(){var e,i;return Bc(this,(function(r){switch(r.label){case 0:return this.scrolledElements.forEach(Nf),n&&(n.scrollTo(t.left,t.top),!/(iPad|iPhone|iPod)/g.test(navigator.userAgent)||n.scrollY===t.top&&n.scrollX===t.left||(this.context.logger.warn("Unable to restore scroll position for cloned document"),this.context.windowBounds=this.context.windowBounds.add(n.scrollX-t.left,n.scrollY-t.top,0,0))),e=this.options.onclone,void 0===(i=this.clonedReferenceElement)?[2,Promise.reject("Error finding the "+this.referenceElement.nodeName+" in the cloned document")]:a.fonts&&a.fonts.ready?[4,a.fonts.ready]:[3,2];case 1:r.sent(),r.label=2;case 2:return/(AppleWebKit)/g.test(navigator.userAgent)?[4,Tf(a)]:[3,4];case 3:r.sent(),r.label=4;case 4:return"function"==typeof e?[2,Promise.resolve().then((function(){return e(a,i)})).then((function(){return s}))]:[2,s]}}))}))}));return a.open(),a.write(kf(document.doctype)+""),Of(this.referenceElement.ownerDocument,r,o),a.replaceChild(a.adoptNode(this.documentElement),a.documentElement),a.close(),l},e.prototype.createElementClone=function(e){if(Gg(e,2),rf(e))return this.createCanvasClone(e);if(of(e))return this.createVideoClone(e);if(lf(e))return this.createStyleClone(e);var t=e.cloneNode(!1);return nf(t)&&(nf(e)&&e.currentSrc&&e.currentSrc!==e.src&&(t.src=e.currentSrc,t.srcset=""),"lazy"===t.loading&&(t.loading="eager")),uf(t)?this.createCustomElementClone(t):t},e.prototype.createCustomElementClone=function(e){var t=document.createElement("html2canvascustomelement");return Uf(e.style,t),t},e.prototype.createStyleClone=function(e){try{var t=e.sheet;if(t&&t.cssRules){var i=[].slice.call(t.cssRules,0).reduce((function(e,t){return t&&"string"==typeof t.cssText?e+t.cssText:e}),""),s=e.cloneNode(!1);return s.textContent=i,s}}catch(e){if(this.context.logger.error("Unable to access cssRules property",e),"SecurityError"!==e.name)throw e}return e.cloneNode(!1)},e.prototype.createCanvasClone=function(e){var t;if(this.options.inlineImages&&e.ownerDocument){var i=e.ownerDocument.createElement("img");try{return i.src=e.toDataURL(),i}catch(t){this.context.logger.info("Unable to inline canvas contents, canvas is tainted",e)}}var s=e.cloneNode(!1);try{s.width=e.width,s.height=e.height;var r=e.getContext("2d"),o=s.getContext("2d");if(o)if(!this.options.allowTaint&&r)o.putImageData(r.getImageData(0,0,e.width,e.height),0,0);else{var n=null!==(t=e.getContext("webgl2"))&&void 0!==t?t:e.getContext("webgl");if(n){var a=n.getContextAttributes();!1===(null==a?void 0:a.preserveDrawingBuffer)&&this.context.logger.warn("Unable to clone WebGL context as it has preserveDrawingBuffer=false",e)}o.drawImage(e,0,0)}return s}catch(t){this.context.logger.info("Unable to clone canvas as it is tainted",e)}return s},e.prototype.createVideoClone=function(e){var t=e.ownerDocument.createElement("canvas");t.width=e.offsetWidth,t.height=e.offsetHeight;var i=t.getContext("2d");try{return i&&(i.drawImage(e,0,0,t.width,t.height),this.options.allowTaint||i.getImageData(0,0,t.width,t.height)),t}catch(t){this.context.logger.info("Unable to clone video as it is tainted",e)}var s=e.ownerDocument.createElement("canvas");return s.width=e.offsetWidth,s.height=e.offsetHeight,s},e.prototype.appendChildNode=function(e,t,i){Ym(t)&&("SCRIPT"===t.tagName||t.hasAttribute(Ef)||"function"==typeof this.options.ignoreElements&&this.options.ignoreElements(t))||this.options.copyStyles&&Ym(t)&&lf(t)||e.appendChild(this.cloneNode(t,i))},e.prototype.cloneChildNodes=function(e,t,i){for(var s=this,r=e.shadowRoot?e.shadowRoot.firstChild:e.firstChild;r;r=r.nextSibling)if(Ym(r)&&cf(r)&&"function"==typeof r.assignedNodes){var o=r.assignedNodes();o.length&&o.forEach((function(e){return s.appendChildNode(t,e,i)}))}else this.appendChildNode(t,r,i)},e.prototype.cloneNode=function(e,t){if(Xm(e))return document.createTextNode(e.data);if(!e.ownerDocument)return e.cloneNode(!1);var i=e.ownerDocument.defaultView;if(i&&Ym(e)&&(qm(e)||Zm(e))){var s=this.createElementClone(e);s.style.transitionProperty="none";var r=i.getComputedStyle(e),o=i.getComputedStyle(e,":before"),n=i.getComputedStyle(e,":after");this.referenceElement===e&&qm(s)&&(this.clonedReferenceElement=s),sf(s)&&Hf(s);var a=this.counters.parse(new Hg(this.context,r)),l=this.resolvePseudoContent(e,s,o,tm.BEFORE);uf(e)&&(t=!0),of(e)||this.cloneChildNodes(e,s,t),l&&s.insertBefore(l,s.firstChild);var A=this.resolvePseudoContent(e,s,n,tm.AFTER);return A&&s.appendChild(A),this.counters.pop(a),(r&&(this.options.copyStyles||Zm(e))&&!af(e)||t)&&Uf(r,s),0===e.scrollTop&&0===e.scrollLeft||this.scrolledElements.push([s,e.scrollLeft,e.scrollTop]),(Af(e)||hf(e))&&(Af(s)||hf(s))&&(s.value=e.value),s}return e.cloneNode(!1)},e.prototype.resolvePseudoContent=function(e,t,i,s){var r=this;if(i){var o=i.content,n=t.ownerDocument;if(n&&o&&"none"!==o&&"-moz-alt-content"!==o&&"none"!==i.display){this.counters.parse(new Hg(this.context,i));var a=new jg(this.context,i),l=n.createElement("html2canvaspseudoelement");Uf(i,l),a.content.forEach((function(t){if(0===t.type)l.appendChild(n.createTextNode(t.value));else if(22===t.type){var i=n.createElement("img");i.src=t.value,i.style.opacity="1",l.appendChild(i)}else if(18===t.type){if("attr"===t.name){var s=t.values.filter(ud);s.length&&l.appendChild(n.createTextNode(e.getAttribute(s[0].value)||""))}else if("counter"===t.name){var o=t.values.filter(md),A=o[0],h=o[1];if(A&&ud(A)){var c=r.counters.getCounterValue(A.value),u=h&&ud(h)?qp.parse(r.context,h.value):3;l.appendChild(n.createTextNode(Mf(c,u,!1)))}}else if("counters"===t.name){var d=t.values.filter(md),p=(A=d[0],d[1]);h=d[2];if(A&&ud(A)){var g=r.counters.getCounterValues(A.value),m=h&&ud(h)?qp.parse(r.context,h.value):3,f=p&&0===p.type?p.value:"",_=g.map((function(e){return Mf(e,m,!1)})).join(f);l.appendChild(n.createTextNode(_))}}}else if(20===t.type)switch(t.value){case"open-quote":l.appendChild(n.createTextNode(Ug(a.quotes,r.quoteDepth++,!0)));break;case"close-quote":l.appendChild(n.createTextNode(Ug(a.quotes,--r.quoteDepth,!1)));break;default:l.appendChild(n.createTextNode(t.value))}})),l.className=Qf+" "+Vf;var A=s===tm.BEFORE?" "+Qf:" "+Vf;return Zm(t)?t.className.baseValue+=A:t.className+=A,l}}},e.destroy=function(e){return!!e.parentNode&&(e.parentNode.removeChild(e),!0)},e}();!function(e){e[e.BEFORE=0]="BEFORE",e[e.AFTER=1]="AFTER"}(tm||(tm={}));var If,Df=function(e,t){var i=e.createElement("iframe");return i.className="html2canvas-container",i.style.visibility="hidden",i.style.position="fixed",i.style.left="-10000px",i.style.top="0px",i.style.border="0",i.width=t.width.toString(),i.height=t.height.toString(),i.scrolling="no",i.setAttribute(Ef,"true"),e.body.appendChild(i),i},Sf=function(e){return new Promise((function(t){e.complete?t():e.src?(e.onload=t,e.onerror=t):t()}))},Tf=function(e){return Promise.all([].slice.call(e.images,0).map(Sf))},Rf=function(e){return new Promise((function(t,i){var s=e.contentWindow;if(!s)return i("No window assigned for iframe");var r=s.document;s.onload=e.onload=function(){s.onload=e.onload=null;var i=setInterval((function(){r.body.childNodes.length>0&&"complete"===r.readyState&&(clearInterval(i),t(e))}),50)}}))},Lf=["all","d","content"],Uf=function(e,t){for(var i=e.length-1;i>=0;i--){var s=e.item(i);-1===Lf.indexOf(s)&&t.style.setProperty(s,e.getPropertyValue(s))}return t},kf=function(e){var t="";return e&&(t+=""),t},Of=function(e,t,i){e&&e.defaultView&&(t!==e.defaultView.pageXOffset||i!==e.defaultView.pageYOffset)&&e.defaultView.scrollTo(t,i)},Nf=function(e){var t=e[0],i=e[1],s=e[2];t.scrollLeft=i,t.scrollTop=s},Qf="___html2canvas___pseudoelement_before",Vf="___html2canvas___pseudoelement_after",jf='{\n content: "" !important;\n display: none !important;\n}',Hf=function(e){zf(e,"."+Qf+":before"+jf+"\n ."+Vf+":after"+jf)},zf=function(e,t){var i=e.ownerDocument;if(i){var s=i.createElement("style");s.textContent=t,e.appendChild(s)}},Gf=function(){function e(){}return e.getOrigin=function(t){var i=e._link;return i?(i.href=t,i.href=i.href,i.protocol+i.hostname+i.port):"about:blank"},e.isSameOrigin=function(t){return e.getOrigin(t)===e._origin},e.setContext=function(t){e._link=t.document.createElement("a"),e._origin=e.getOrigin(t.location.href)},e._origin="about:blank",e}(),Wf=function(){function e(e,t){this.context=e,this._options=t,this._cache={}}return e.prototype.addImage=function(e){var t=Promise.resolve();return this.has(e)?t:$f(e)||qf(e)?((this._cache[e]=this.loadImage(e)).catch((function(){})),t):t},e.prototype.match=function(e){return this._cache[e]},e.prototype.loadImage=function(e){return Pc(this,void 0,void 0,(function(){var t,i,s,r,o=this;return Bc(this,(function(n){switch(n.label){case 0:return t=Gf.isSameOrigin(e),i=!Zf(e)&&!0===this._options.useCORS&&gm.SUPPORT_CORS_IMAGES&&!t,s=!Zf(e)&&!t&&!$f(e)&&"string"==typeof this._options.proxy&&gm.SUPPORT_CORS_XHR&&!i,t||!1!==this._options.allowTaint||Zf(e)||$f(e)||s||i?(r=e,s?[4,this.proxy(r)]:[3,2]):[2];case 1:r=n.sent(),n.label=2;case 2:return this.context.logger.debug("Added image "+e.substring(0,256)),[4,new Promise((function(e,t){var s=new Image;s.onload=function(){return e(s)},s.onerror=t,(Jf(r)||i)&&(s.crossOrigin="anonymous"),s.src=r,!0===s.complete&&setTimeout((function(){return e(s)}),500),o._options.imageTimeout>0&&setTimeout((function(){return t("Timed out ("+o._options.imageTimeout+"ms) loading image")}),o._options.imageTimeout)}))];case 3:return[2,n.sent()]}}))}))},e.prototype.has=function(e){return void 0!==this._cache[e]},e.prototype.keys=function(){return Promise.resolve(Object.keys(this._cache))},e.prototype.proxy=function(e){var t=this,i=this._options.proxy;if(!i)throw new Error("No proxy defined");var s=e.substring(0,256);return new Promise((function(r,o){var n=gm.SUPPORT_RESPONSE_TYPE?"blob":"text",a=new XMLHttpRequest;a.onload=function(){if(200===a.status)if("text"===n)r(a.response);else{var e=new FileReader;e.addEventListener("load",(function(){return r(e.result)}),!1),e.addEventListener("error",(function(e){return o(e)}),!1),e.readAsDataURL(a.response)}else o("Failed to proxy resource "+s+" with status code "+a.status)},a.onerror=o;var l=i.indexOf("?")>-1?"&":"?";if(a.open("GET",""+i+l+"url="+encodeURIComponent(e)+"&responseType="+n),"text"!==n&&a instanceof XMLHttpRequest&&(a.responseType=n),t._options.imageTimeout){var A=t._options.imageTimeout;a.timeout=A,a.ontimeout=function(){return o("Timed out ("+A+"ms) proxying "+s)}}a.send()}))},e}(),Kf=/^data:image\/svg\+xml/i,Xf=/^data:image\/.*;base64,/i,Yf=/^data:image\/.*/i,qf=function(e){return gm.SUPPORT_SVG_DRAWING||!e_(e)},Zf=function(e){return Yf.test(e)},Jf=function(e){return Xf.test(e)},$f=function(e){return"blob"===e.substr(0,4)},e_=function(e){return"svg"===e.substr(-3).toLowerCase()||Kf.test(e)},t_=function(){function e(e,t){this.type=0,this.x=e,this.y=t}return e.prototype.add=function(t,i){return new e(this.x+t,this.y+i)},e}(),i_=function(e,t,i){return new t_(e.x+(t.x-e.x)*i,e.y+(t.y-e.y)*i)},s_=function(){function e(e,t,i,s){this.type=1,this.start=e,this.startControl=t,this.endControl=i,this.end=s}return e.prototype.subdivide=function(t,i){var s=i_(this.start,this.startControl,t),r=i_(this.startControl,this.endControl,t),o=i_(this.endControl,this.end,t),n=i_(s,r,t),a=i_(r,o,t),l=i_(n,a,t);return i?new e(this.start,s,n,l):new e(l,a,o,this.end)},e.prototype.add=function(t,i){return new e(this.start.add(t,i),this.startControl.add(t,i),this.endControl.add(t,i),this.end.add(t,i))},e.prototype.reverse=function(){return new e(this.end,this.endControl,this.startControl,this.start)},e}(),r_=function(e){return 1===e.type},o_=function(e){var t=e.styles,i=e.bounds,s=Bd(t.borderTopLeftRadius,i.width,i.height),r=s[0],o=s[1],n=Bd(t.borderTopRightRadius,i.width,i.height),a=n[0],l=n[1],A=Bd(t.borderBottomRightRadius,i.width,i.height),h=A[0],c=A[1],u=Bd(t.borderBottomLeftRadius,i.width,i.height),d=u[0],p=u[1],g=[];g.push((r+a)/i.width),g.push((d+h)/i.width),g.push((o+p)/i.height),g.push((l+c)/i.height);var m=Math.max.apply(Math,g);m>1&&(r/=m,o/=m,a/=m,l/=m,h/=m,c/=m,d/=m,p/=m);var f=i.width-a,_=i.height-c,v=i.width-h,b=i.height-p,x=t.borderTopWidth,w=t.borderRightWidth,y=t.borderBottomWidth,P=t.borderLeftWidth,B=Cd(t.paddingTop,e.bounds.width),C=Cd(t.paddingRight,e.bounds.width),M=Cd(t.paddingBottom,e.bounds.width),E=Cd(t.paddingLeft,e.bounds.width);this.topLeftBorderDoubleOuterBox=r>0||o>0?n_(i.left+P/3,i.top+x/3,r-P/3,o-x/3,If.TOP_LEFT):new t_(i.left+P/3,i.top+x/3),this.topRightBorderDoubleOuterBox=r>0||o>0?n_(i.left+f,i.top+x/3,a-w/3,l-x/3,If.TOP_RIGHT):new t_(i.left+i.width-w/3,i.top+x/3),this.bottomRightBorderDoubleOuterBox=h>0||c>0?n_(i.left+v,i.top+_,h-w/3,c-y/3,If.BOTTOM_RIGHT):new t_(i.left+i.width-w/3,i.top+i.height-y/3),this.bottomLeftBorderDoubleOuterBox=d>0||p>0?n_(i.left+P/3,i.top+b,d-P/3,p-y/3,If.BOTTOM_LEFT):new t_(i.left+P/3,i.top+i.height-y/3),this.topLeftBorderDoubleInnerBox=r>0||o>0?n_(i.left+2*P/3,i.top+2*x/3,r-2*P/3,o-2*x/3,If.TOP_LEFT):new t_(i.left+2*P/3,i.top+2*x/3),this.topRightBorderDoubleInnerBox=r>0||o>0?n_(i.left+f,i.top+2*x/3,a-2*w/3,l-2*x/3,If.TOP_RIGHT):new t_(i.left+i.width-2*w/3,i.top+2*x/3),this.bottomRightBorderDoubleInnerBox=h>0||c>0?n_(i.left+v,i.top+_,h-2*w/3,c-2*y/3,If.BOTTOM_RIGHT):new t_(i.left+i.width-2*w/3,i.top+i.height-2*y/3),this.bottomLeftBorderDoubleInnerBox=d>0||p>0?n_(i.left+2*P/3,i.top+b,d-2*P/3,p-2*y/3,If.BOTTOM_LEFT):new t_(i.left+2*P/3,i.top+i.height-2*y/3),this.topLeftBorderStroke=r>0||o>0?n_(i.left+P/2,i.top+x/2,r-P/2,o-x/2,If.TOP_LEFT):new t_(i.left+P/2,i.top+x/2),this.topRightBorderStroke=r>0||o>0?n_(i.left+f,i.top+x/2,a-w/2,l-x/2,If.TOP_RIGHT):new t_(i.left+i.width-w/2,i.top+x/2),this.bottomRightBorderStroke=h>0||c>0?n_(i.left+v,i.top+_,h-w/2,c-y/2,If.BOTTOM_RIGHT):new t_(i.left+i.width-w/2,i.top+i.height-y/2),this.bottomLeftBorderStroke=d>0||p>0?n_(i.left+P/2,i.top+b,d-P/2,p-y/2,If.BOTTOM_LEFT):new t_(i.left+P/2,i.top+i.height-y/2),this.topLeftBorderBox=r>0||o>0?n_(i.left,i.top,r,o,If.TOP_LEFT):new t_(i.left,i.top),this.topRightBorderBox=a>0||l>0?n_(i.left+f,i.top,a,l,If.TOP_RIGHT):new t_(i.left+i.width,i.top),this.bottomRightBorderBox=h>0||c>0?n_(i.left+v,i.top+_,h,c,If.BOTTOM_RIGHT):new t_(i.left+i.width,i.top+i.height),this.bottomLeftBorderBox=d>0||p>0?n_(i.left,i.top+b,d,p,If.BOTTOM_LEFT):new t_(i.left,i.top+i.height),this.topLeftPaddingBox=r>0||o>0?n_(i.left+P,i.top+x,Math.max(0,r-P),Math.max(0,o-x),If.TOP_LEFT):new t_(i.left+P,i.top+x),this.topRightPaddingBox=a>0||l>0?n_(i.left+Math.min(f,i.width-w),i.top+x,f>i.width+w?0:Math.max(0,a-w),Math.max(0,l-x),If.TOP_RIGHT):new t_(i.left+i.width-w,i.top+x),this.bottomRightPaddingBox=h>0||c>0?n_(i.left+Math.min(v,i.width-P),i.top+Math.min(_,i.height-y),Math.max(0,h-w),Math.max(0,c-y),If.BOTTOM_RIGHT):new t_(i.left+i.width-w,i.top+i.height-y),this.bottomLeftPaddingBox=d>0||p>0?n_(i.left+P,i.top+Math.min(b,i.height-y),Math.max(0,d-P),Math.max(0,p-y),If.BOTTOM_LEFT):new t_(i.left+P,i.top+i.height-y),this.topLeftContentBox=r>0||o>0?n_(i.left+P+E,i.top+x+B,Math.max(0,r-(P+E)),Math.max(0,o-(x+B)),If.TOP_LEFT):new t_(i.left+P+E,i.top+x+B),this.topRightContentBox=a>0||l>0?n_(i.left+Math.min(f,i.width+P+E),i.top+x+B,f>i.width+P+E?0:a-P+E,l-(x+B),If.TOP_RIGHT):new t_(i.left+i.width-(w+C),i.top+x+B),this.bottomRightContentBox=h>0||c>0?n_(i.left+Math.min(v,i.width-(P+E)),i.top+Math.min(_,i.height+x+B),Math.max(0,h-(w+C)),c-(y+M),If.BOTTOM_RIGHT):new t_(i.left+i.width-(w+C),i.top+i.height-(y+M)),this.bottomLeftContentBox=d>0||p>0?n_(i.left+P+E,i.top+b,Math.max(0,d-(P+E)),p-(y+M),If.BOTTOM_LEFT):new t_(i.left+P+E,i.top+i.height-(y+M))};!function(e){e[e.TOP_LEFT=0]="TOP_LEFT",e[e.TOP_RIGHT=1]="TOP_RIGHT",e[e.BOTTOM_RIGHT=2]="BOTTOM_RIGHT",e[e.BOTTOM_LEFT=3]="BOTTOM_LEFT"}(If||(If={}));var n_=function(e,t,i,s,r){var o=(Math.sqrt(2)-1)/3*4,n=i*o,a=s*o,l=e+i,A=t+s;switch(r){case If.TOP_LEFT:return new s_(new t_(e,A),new t_(e,A-a),new t_(l-n,t),new t_(l,t));case If.TOP_RIGHT:return new s_(new t_(e,t),new t_(e+n,t),new t_(l,A-a),new t_(l,A));case If.BOTTOM_RIGHT:return new s_(new t_(l,t),new t_(l,t+a),new t_(e+n,A),new t_(e,A));case If.BOTTOM_LEFT:default:return new s_(new t_(l,A),new t_(l-n,A),new t_(e,t+a),new t_(e,t))}},a_=function(e){return[e.topLeftBorderBox,e.topRightBorderBox,e.bottomRightBorderBox,e.bottomLeftBorderBox]},l_=function(e){return[e.topLeftPaddingBox,e.topRightPaddingBox,e.bottomRightPaddingBox,e.bottomLeftPaddingBox]},A_=function(e,t,i){this.offsetX=e,this.offsetY=t,this.matrix=i,this.type=0,this.target=6},h_=function(e,t){this.path=e,this.target=t,this.type=1},c_=function(e){this.opacity=e,this.type=2,this.target=6},u_=function(e){return 1===e.type},d_=function(e,t){return e.length===t.length&&e.some((function(e,i){return e===t[i]}))},p_=function(e){this.element=e,this.inlineLevel=[],this.nonInlineLevel=[],this.negativeZIndex=[],this.zeroOrAutoZIndexOrTransformedOrOpacity=[],this.positiveZIndex=[],this.nonPositionedFloats=[],this.nonPositionedInlineLevel=[]},g_=function(){function e(e,t){if(this.container=e,this.parent=t,this.effects=[],this.curves=new o_(this.container),this.container.styles.opacity<1&&this.effects.push(new c_(this.container.styles.opacity)),null!==this.container.styles.transform){var i=this.container.bounds.left+this.container.styles.transformOrigin[0].number,s=this.container.bounds.top+this.container.styles.transformOrigin[1].number,r=this.container.styles.transform;this.effects.push(new A_(i,s,r))}if(0!==this.container.styles.overflowX){var o=a_(this.curves),n=l_(this.curves);d_(o,n)?this.effects.push(new h_(o,6)):(this.effects.push(new h_(o,2)),this.effects.push(new h_(n,4)))}}return e.prototype.getEffects=function(e){for(var t=-1===[2,3].indexOf(this.container.styles.position),i=this.parent,s=this.effects.slice(0);i;){var r=i.effects.filter((function(e){return!u_(e)}));if(t||0!==i.container.styles.position||!i.parent){if(s.unshift.apply(s,r),t=-1===[2,3].indexOf(i.container.styles.position),0!==i.container.styles.overflowX){var o=a_(i.curves),n=l_(i.curves);d_(o,n)||s.unshift(new h_(n,6))}}else s.unshift.apply(s,r);i=i.parent}return s.filter((function(t){return Ig(t.target,e)}))},e}(),m_=function(e,t,i,s){e.container.elements.forEach((function(r){var o=Ig(r.flags,4),n=Ig(r.flags,2),a=new g_(r,e);Ig(r.styles.display,2048)&&s.push(a);var l=Ig(r.flags,8)?[]:s;if(o||n){var A=o||r.styles.isPositioned()?i:t,h=new p_(a);if(r.styles.isPositioned()||r.styles.opacity<1||r.styles.isTransformed()){var c=r.styles.zIndex.order;if(c<0){var u=0;A.negativeZIndex.some((function(e,t){return c>e.element.container.styles.zIndex.order?(u=t,!1):u>0})),A.negativeZIndex.splice(u,0,h)}else if(c>0){var d=0;A.positiveZIndex.some((function(e,t){return c>=e.element.container.styles.zIndex.order?(d=t+1,!1):d>0})),A.positiveZIndex.splice(d,0,h)}else A.zeroOrAutoZIndexOrTransformedOrOpacity.push(h)}else r.styles.isFloating()?A.nonPositionedFloats.push(h):A.nonPositionedInlineLevel.push(h);m_(a,h,o?h:i,l)}else r.styles.isInlineLevel()?t.inlineLevel.push(a):t.nonInlineLevel.push(a),m_(a,t,i,l);Ig(r.flags,8)&&f_(r,l)}))},f_=function(e,t){for(var i=e instanceof Dm?e.start:1,s=e instanceof Dm&&e.reversed,r=0;r0&&e.intrinsicHeight>0){var s=w_(e),r=l_(t);this.path(r),this.ctx.save(),this.ctx.clip(),this.ctx.drawImage(i,0,0,e.intrinsicWidth,e.intrinsicHeight,s.left,s.top,s.width,s.height),this.ctx.restore()}},t.prototype.renderNodeContent=function(e){return Pc(this,void 0,void 0,(function(){var i,s,r,o,n,a,l,A,h,c,u,d,p,g,m,f,_,v;return Bc(this,(function(b){switch(b.label){case 0:this.applyEffects(e.getEffects(4)),i=e.container,s=e.curves,r=i.styles,o=0,n=i.textNodes,b.label=1;case 1:return o0&&y>0&&(f=s.ctx.createPattern(p,"repeat"),s.renderRepeat(v,f,B,C))):function(e){return 2===e.type}(i)&&(_=y_(e,t,[null,null,null]),v=_[0],b=_[1],x=_[2],w=_[3],y=_[4],P=0===i.position.length?[yd]:i.position,B=Cd(P[0],w),C=Cd(P[P.length-1],y),M=function(e,t,i,s,r){var o=0,n=0;switch(e.size){case 0:0===e.shape?o=n=Math.min(Math.abs(t),Math.abs(t-s),Math.abs(i),Math.abs(i-r)):1===e.shape&&(o=Math.min(Math.abs(t),Math.abs(t-s)),n=Math.min(Math.abs(i),Math.abs(i-r)));break;case 2:if(0===e.shape)o=n=Math.min(Yd(t,i),Yd(t,i-r),Yd(t-s,i),Yd(t-s,i-r));else if(1===e.shape){var a=Math.min(Math.abs(i),Math.abs(i-r))/Math.min(Math.abs(t),Math.abs(t-s)),l=qd(s,r,t,i,!0),A=l[0],h=l[1];n=a*(o=Yd(A-t,(h-i)/a))}break;case 1:0===e.shape?o=n=Math.max(Math.abs(t),Math.abs(t-s),Math.abs(i),Math.abs(i-r)):1===e.shape&&(o=Math.max(Math.abs(t),Math.abs(t-s)),n=Math.max(Math.abs(i),Math.abs(i-r)));break;case 3:if(0===e.shape)o=n=Math.max(Yd(t,i),Yd(t,i-r),Yd(t-s,i),Yd(t-s,i-r));else if(1===e.shape){a=Math.max(Math.abs(i),Math.abs(i-r))/Math.max(Math.abs(t),Math.abs(t-s));var c=qd(s,r,t,i,!1);A=c[0],h=c[1],n=a*(o=Yd(A-t,(h-i)/a))}}return Array.isArray(e.size)&&(o=Cd(e.size[0],s),n=2===e.size.length?Cd(e.size[1],r):o),[o,n]}(i,B,C,w,y),E=M[0],F=M[1],E>0&&F>0&&(I=s.ctx.createRadialGradient(b+B,x+C,0,b+B,x+C,E),Kd(i.stops,2*E).forEach((function(e){return I.addColorStop(e.stop,Ld(e.color))})),s.path(v),s.ctx.fillStyle=I,E!==F?(D=e.bounds.left+.5*e.bounds.width,S=e.bounds.top+.5*e.bounds.height,R=1/(T=F/E),s.ctx.save(),s.ctx.translate(D,S),s.ctx.transform(1,0,0,T,0,0),s.ctx.translate(-D,-S),s.ctx.fillRect(b,R*(x-S)+S,w,y*R),s.ctx.restore()):s.ctx.fill())),L.label=6;case 6:return t--,[2]}}))},s=this,r=0,o=e.styles.backgroundImage.slice(0).reverse(),a.label=1;case 1:return r0?2!==l.style?[3,5]:[4,this.renderDashedDottedBorder(l.color,l.width,o,e.curves,2)]:[3,11]:[3,13];case 4:return h.sent(),[3,11];case 5:return 3!==l.style?[3,7]:[4,this.renderDashedDottedBorder(l.color,l.width,o,e.curves,3)];case 6:return h.sent(),[3,11];case 7:return 4!==l.style?[3,9]:[4,this.renderDoubleBorder(l.color,l.width,o,e.curves)];case 8:return h.sent(),[3,11];case 9:return[4,this.renderSolidBorder(l.color,o,e.curves)];case 10:h.sent(),h.label=11;case 11:o++,h.label=12;case 12:return n++,[3,3];case 13:return[2]}}))}))},t.prototype.renderDashedDottedBorder=function(e,t,i,s,r){return Pc(this,void 0,void 0,(function(){var o,n,a,l,A,h,c,u,d,p,g,m,f,_,v,b;return Bc(this,(function(x){return this.ctx.save(),o=function(e,t){switch(t){case 0:return v_(e.topLeftBorderStroke,e.topRightBorderStroke);case 1:return v_(e.topRightBorderStroke,e.bottomRightBorderStroke);case 2:return v_(e.bottomRightBorderStroke,e.bottomLeftBorderStroke);default:return v_(e.bottomLeftBorderStroke,e.topLeftBorderStroke)}}(s,i),n=__(s,i),2===r&&(this.path(n),this.ctx.clip()),r_(n[0])?(a=n[0].start.x,l=n[0].start.y):(a=n[0].x,l=n[0].y),r_(n[1])?(A=n[1].end.x,h=n[1].end.y):(A=n[1].x,h=n[1].y),c=0===i||2===i?Math.abs(a-A):Math.abs(l-h),this.ctx.beginPath(),3===r?this.formatPath(o):this.formatPath(n.slice(0,2)),u=t<3?3*t:2*t,d=t<3?2*t:t,3===r&&(u=t,d=t),p=!0,c<=2*u?p=!1:c<=2*u+d?(u*=g=c/(2*u+d),d*=g):(m=Math.floor((c+d)/(u+d)),f=(c-m*u)/(m-1),d=(_=(c-(m+1)*u)/m)<=0||Math.abs(d-f){})),Z_(this,"_reject",(()=>{})),this.name=e,this.workerThread=t,this.result=new Promise(((e,t)=>{this._resolve=e,this._reject=t}))}postMessage(e,t){this.workerThread.postMessage({source:"loaders.gl",type:e,payload:t})}done(e){K_(this.isRunning),this.isRunning=!1,this._resolve(e)}error(e){K_(this.isRunning),this.isRunning=!1,this._reject(e)}}class $_{}const ev=new Map;function tv(e){K_(e.source&&!e.url||!e.source&&e.url);let t=ev.get(e.source||e.url);return t||(e.url&&(t=function(e){if(!e.startsWith("http"))return e;return iv((t=e,"try {\n importScripts('".concat(t,"');\n} catch (error) {\n console.error(error);\n throw error;\n}")));var t}(e.url),ev.set(e.url,t)),e.source&&(t=iv(e.source),ev.set(e.source,t))),K_(t),t}function iv(e){const t=new Blob([e],{type:"application/javascript"});return URL.createObjectURL(t)}function sv(e,t=!0,i){const s=i||new Set;if(e){if(rv(e))s.add(e);else if(rv(e.buffer))s.add(e.buffer);else if(ArrayBuffer.isView(e));else if(t&&"object"==typeof e)for(const i in e)sv(e[i],t,s)}else;return void 0===i?Array.from(s):[]}function rv(e){return!!e&&(e instanceof ArrayBuffer||("undefined"!=typeof MessagePort&&e instanceof MessagePort||("undefined"!=typeof ImageBitmap&&e instanceof ImageBitmap||"undefined"!=typeof OffscreenCanvas&&e instanceof OffscreenCanvas)))}const ov=()=>{};class nv{static isSupported(){return"undefined"!=typeof Worker&&X_||void 0!==typeof $_}constructor(e){Z_(this,"name",void 0),Z_(this,"source",void 0),Z_(this,"url",void 0),Z_(this,"terminated",!1),Z_(this,"worker",void 0),Z_(this,"onMessage",void 0),Z_(this,"onError",void 0),Z_(this,"_loadableURL","");const{name:t,source:i,url:s}=e;K_(i||s),this.name=t,this.source=i,this.url=s,this.onMessage=ov,this.onError=e=>console.log(e),this.worker=X_?this._createBrowserWorker():this._createNodeWorker()}destroy(){this.onMessage=ov,this.onError=ov,this.worker.terminate(),this.terminated=!0}get isRunning(){return Boolean(this.onMessage)}postMessage(e,t){t=t||sv(e),this.worker.postMessage(e,t)}_getErrorFromErrorEvent(e){let t="Failed to load ";return t+="worker ".concat(this.name," from ").concat(this.url,". "),e.message&&(t+="".concat(e.message," in ")),e.lineno&&(t+=":".concat(e.lineno,":").concat(e.colno)),new Error(t)}_createBrowserWorker(){this._loadableURL=tv({source:this.source,url:this.url});const e=new Worker(this._loadableURL,{name:this.name});return e.onmessage=e=>{e.data?this.onMessage(e.data):this.onError(new Error("No data received"))},e.onerror=e=>{this.onError(this._getErrorFromErrorEvent(e)),this.terminated=!0},e.onmessageerror=e=>console.error(e),e}_createNodeWorker(){let e;if(this.url){const t=this.url.includes(":/")||this.url.startsWith("/")?this.url:"./".concat(this.url);e=new $_(t,{eval:!1})}else{if(!this.source)throw new Error("no worker");e=new $_(this.source,{eval:!0})}return e.on("message",(e=>{this.onMessage(e)})),e.on("error",(e=>{this.onError(e)})),e.on("exit",(e=>{})),e}}class av{static isSupported(){return nv.isSupported()}constructor(e){Z_(this,"name","unnamed"),Z_(this,"source",void 0),Z_(this,"url",void 0),Z_(this,"maxConcurrency",1),Z_(this,"maxMobileConcurrency",1),Z_(this,"onDebug",(()=>{})),Z_(this,"reuseWorkers",!0),Z_(this,"props",{}),Z_(this,"jobQueue",[]),Z_(this,"idleQueue",[]),Z_(this,"count",0),Z_(this,"isDestroyed",!1),this.source=e.source,this.url=e.url,this.setProps(e)}destroy(){this.idleQueue.forEach((e=>e.destroy())),this.isDestroyed=!0}setProps(e){this.props={...this.props,...e},void 0!==e.name&&(this.name=e.name),void 0!==e.maxConcurrency&&(this.maxConcurrency=e.maxConcurrency),void 0!==e.maxMobileConcurrency&&(this.maxMobileConcurrency=e.maxMobileConcurrency),void 0!==e.reuseWorkers&&(this.reuseWorkers=e.reuseWorkers),void 0!==e.onDebug&&(this.onDebug=e.onDebug)}async startJob(e,t=((e,t,i)=>e.done(i)),i=((e,t)=>e.error(t))){const s=new Promise((s=>(this.jobQueue.push({name:e,onMessage:t,onError:i,onStart:s}),this)));return this._startQueuedJob(),await s}async _startQueuedJob(){if(!this.jobQueue.length)return;const e=this._getAvailableWorker();if(!e)return;const t=this.jobQueue.shift();if(t){this.onDebug({message:"Starting job",name:t.name,workerThread:e,backlog:this.jobQueue.length});const i=new J_(t.name,e);e.onMessage=e=>t.onMessage(i,e.type,e.payload),e.onError=e=>t.onError(i,e),t.onStart(i);try{await i.result}finally{this.returnWorkerToQueue(e)}}}returnWorkerToQueue(e){this.isDestroyed||!this.reuseWorkers||this.count>this._getMaxConcurrency()?(e.destroy(),this.count--):this.idleQueue.push(e),this.isDestroyed||this._startQueuedJob()}_getAvailableWorker(){if(this.idleQueue.length>0)return this.idleQueue.shift()||null;if(this.count{}};class Av{static isSupported(){return nv.isSupported()}static getWorkerFarm(e={}){return Av._workerFarm=Av._workerFarm||new Av({}),Av._workerFarm.setProps(e),Av._workerFarm}constructor(e){Z_(this,"props",void 0),Z_(this,"workerPools",new Map),this.props={...lv},this.setProps(e),this.workerPools=new Map}destroy(){for(const e of this.workerPools.values())e.destroy();this.workerPools=new Map}setProps(e){this.props={...this.props,...e};for(const e of this.workerPools.values())e.setProps(this._getWorkerPoolProps())}getWorkerPool(e){const{name:t,source:i,url:s}=e;let r=this.workerPools.get(t);return r||(r=new av({name:t,source:i,url:s}),r.setProps(this._getWorkerPoolProps()),this.workerPools.set(t,r)),r}_getWorkerPoolProps(){return{maxConcurrency:this.props.maxConcurrency,maxMobileConcurrency:this.props.maxMobileConcurrency,reuseWorkers:this.props.reuseWorkers,onDebug:this.props.onDebug}}}Z_(Av,"_workerFarm",void 0);const hv={self:"undefined"!=typeof self&&self,window:"undefined"!=typeof window&&window,global:"undefined"!=typeof global&&global,document:"undefined"!=typeof document&&document,process:"object"==typeof process&&process},cv=hv.window||hv.self||hv.global,uv=hv.process||{},dv="undefined"!=typeof __VERSION__?__VERSION__:"untranspiled source",pv=!("object"==typeof process&&"[object process]"===String(process)&&!process.browser)||function(e){if("undefined"!=typeof window&&"object"==typeof window.process&&"renderer"===window.process.type)return!0;if("undefined"!=typeof process&&"object"==typeof process.versions&&Boolean(process.versions.electron))return!0;const t="object"==typeof navigator&&"string"==typeof navigator.userAgent&&navigator.userAgent,i=e||t;return!!(i&&i.indexOf("Electron")>=0)}();class gv{constructor(e,t,i="sessionStorage"){this.storage=function(e){try{const t=window[e],i="__storage_test__";return t.setItem(i,i),t.removeItem(i),t}catch(e){return null}}(i),this.id=e,this.config={},Object.assign(this.config,t),this._loadConfiguration()}getConfiguration(){return this.config}setConfiguration(e){return this.config={},this.updateConfiguration(e)}updateConfiguration(e){if(Object.assign(this.config,e),this.storage){const e=JSON.stringify(this.config);this.storage.setItem(this.id,e)}return this}_loadConfiguration(){let e={};if(this.storage){const t=this.storage.getItem(this.id);e=t?JSON.parse(t):{}}return Object.assign(this.config,e),this}}function mv(e,t,i,s=600){const r=e.src.replace(/\(/g,"%28").replace(/\)/g,"%29");e.width>s&&(i=Math.min(i,s/e.width));const o=e.width*i,n=e.height*i,a=["font-size:1px;","padding:".concat(Math.floor(n/2),"px ").concat(Math.floor(o/2),"px;"),"line-height:".concat(n,"px;"),"background:url(".concat(r,");"),"background-size:".concat(o,"px ").concat(n,"px;"),"color:transparent;"].join("");return["".concat(t," %c+"),a]}const fv={BLACK:30,RED:31,GREEN:32,YELLOW:33,BLUE:34,MAGENTA:35,CYAN:36,WHITE:37,BRIGHT_BLACK:90,BRIGHT_RED:91,BRIGHT_GREEN:92,BRIGHT_YELLOW:93,BRIGHT_BLUE:94,BRIGHT_MAGENTA:95,BRIGHT_CYAN:96,BRIGHT_WHITE:97};function _v(e){return"string"==typeof e?fv[e.toUpperCase()]||fv.WHITE:e}function vv(e,t){if(!e)throw new Error(t||"Assertion failed")}function bv(){let e;if(pv&&cv.performance)e=cv.performance.now();else if(uv.hrtime){const t=uv.hrtime();e=1e3*t[0]+t[1]/1e6}else e=Date.now();return e}const xv={debug:pv&&console.debug||console.log,log:console.log,info:console.info,warn:console.warn,error:console.error},wv={enabled:!0,level:0};function yv(){}const Pv={},Bv={once:!0};function Cv(e){for(const t in e)for(const i in e[t])return i||"untitled";return"empty"}class Mv{constructor({id:e}={id:""}){this.id=e,this.VERSION=dv,this._startTs=bv(),this._deltaTs=bv(),this.LOG_THROTTLE_TIMEOUT=0,this._storage=new gv("__probe-".concat(this.id,"__"),wv),this.userData={},this.timeStamp("".concat(this.id," started")),function(e,t=["constructor"]){const i=Object.getPrototypeOf(e),s=Object.getOwnPropertyNames(i);for(const i of s)"function"==typeof e[i]&&(t.find((e=>i===e))||(e[i]=e[i].bind(e)))}(this),Object.seal(this)}set level(e){this.setLevel(e)}get level(){return this.getLevel()}isEnabled(){return this._storage.config.enabled}getLevel(){return this._storage.config.level}getTotal(){return Number((bv()-this._startTs).toPrecision(10))}getDelta(){return Number((bv()-this._deltaTs).toPrecision(10))}set priority(e){this.level=e}get priority(){return this.level}getPriority(){return this.level}enable(e=!0){return this._storage.updateConfiguration({enabled:e}),this}setLevel(e){return this._storage.updateConfiguration({level:e}),this}assert(e,t){vv(e,t)}warn(e){return this._getLogFunction(0,e,xv.warn,arguments,Bv)}error(e){return this._getLogFunction(0,e,xv.error,arguments)}deprecated(e,t){return this.warn("`".concat(e,"` is deprecated and will be removed in a later version. Use `").concat(t,"` instead"))}removed(e,t){return this.error("`".concat(e,"` has been removed. Use `").concat(t,"` instead"))}probe(e,t){return this._getLogFunction(e,t,xv.log,arguments,{time:!0,once:!0})}log(e,t){return this._getLogFunction(e,t,xv.debug,arguments)}info(e,t){return this._getLogFunction(e,t,console.info,arguments)}once(e,t){return this._getLogFunction(e,t,xv.debug||xv.info,arguments,Bv)}table(e,t,i){return t?this._getLogFunction(e,t,console.table||yv,i&&[i],{tag:Cv(t)}):yv}image({logLevel:e,priority:t,image:i,message:s="",scale:r=1}){return this._shouldLog(e||t)?pv?function({image:e,message:t="",scale:i=1}){if("string"==typeof e){const s=new Image;return s.onload=()=>{const e=mv(s,t,i);console.log(...e)},s.src=e,yv}const s=e.nodeName||"";if("img"===s.toLowerCase())return console.log(...mv(e,t,i)),yv;if("canvas"===s.toLowerCase()){const s=new Image;return s.onload=()=>console.log(...mv(s,t,i)),s.src=e.toDataURL(),yv}return yv}({image:i,message:s,scale:r}):function({image:e,message:t="",scale:i=1}){let s=null;try{s=module.require("asciify-image")}catch(e){}if(s)return()=>s(e,{fit:"box",width:"".concat(Math.round(80*i),"%")}).then((e=>console.log(e)));return yv}({image:i,message:s,scale:r}):yv}settings(){console.table?console.table(this._storage.config):console.log(this._storage.config)}get(e){return this._storage.config[e]}set(e,t){this._storage.updateConfiguration({[e]:t})}time(e,t){return this._getLogFunction(e,t,console.time?console.time:console.info)}timeEnd(e,t){return this._getLogFunction(e,t,console.timeEnd?console.timeEnd:console.info)}timeStamp(e,t){return this._getLogFunction(e,t,console.timeStamp||yv)}group(e,t,i={collapsed:!1}){i=Fv({logLevel:e,message:t,opts:i});const{collapsed:s}=i;return i.method=(s?console.groupCollapsed:console.group)||console.info,this._getLogFunction(i)}groupCollapsed(e,t,i={}){return this.group(e,t,Object.assign({},i,{collapsed:!0}))}groupEnd(e){return this._getLogFunction(e,"",console.groupEnd||yv)}withGroup(e,t,i){this.group(e,t)();try{i()}finally{this.groupEnd(e)()}}trace(){console.trace&&console.trace()}_shouldLog(e){return this.isEnabled()&&this.getLevel()>=Ev(e)}_getLogFunction(e,t,i,s=[],r){if(this._shouldLog(e)){r=Fv({logLevel:e,message:t,args:s,opts:r}),vv(i=i||r.method),r.total=this.getTotal(),r.delta=this.getDelta(),this._deltaTs=bv();const o=r.tag||r.message;if(r.once){if(Pv[o])return yv;Pv[o]=bv()}return t=function(e,t,i){if("string"==typeof t){const s=i.time?function(e,t=8){const i=Math.max(t-e.length,0);return"".concat(" ".repeat(i)).concat(e)}(function(e){let t;return t=e<10?"".concat(e.toFixed(2),"ms"):e<100?"".concat(e.toFixed(1),"ms"):e<1e3?"".concat(e.toFixed(0),"ms"):"".concat((e/1e3).toFixed(2),"s"),t}(i.total)):"";t=i.time?"".concat(e,": ").concat(s," ").concat(t):"".concat(e,": ").concat(t),t=function(e,t,i){return pv||"string"!=typeof e||(t&&(t=_v(t),e="[".concat(t,"m").concat(e,"")),i&&(t=_v(i),e="[".concat(i+10,"m").concat(e,""))),e}(t,i.color,i.background)}return t}(this.id,r.message,r),i.bind(console,t,...r.args)}return yv}}function Ev(e){if(!e)return 0;let t;switch(typeof e){case"number":t=e;break;case"object":t=e.logLevel||e.priority||0;break;default:return 0}return vv(Number.isFinite(t)&&t>=0),t}function Fv(e){const{logLevel:t,message:i}=e;e.logLevel=Ev(t);const s=e.args?Array.from(e.args):[];for(;s.length&&s.shift()!==i;);switch(e.args=s,typeof t){case"string":case"function":void 0!==i&&s.unshift(i),e.message=t;break;case"object":Object.assign(e,t)}"function"==typeof e.message&&(e.message=e.message());const r=typeof e.message;return vv("string"===r||"object"===r),Object.assign(e,e.opts)}Mv.VERSION=dv,new Mv({id:"loaders.gl"});function Iv(){return!("object"==typeof process&&"[object process]"===String(process)&&!process.browser)||function(e){if("undefined"!=typeof window&&"object"==typeof window.process&&"renderer"===window.process.type)return!0;if("undefined"!=typeof process&&"object"==typeof process.versions&&Boolean(process.versions.electron))return!0;const t="object"==typeof navigator&&"string"==typeof navigator.userAgent&&navigator.userAgent,i=e||t;return!!(i&&i.indexOf("Electron")>=0)}()}new class{constructor(){Z_(this,"console",void 0),this.console=console}log(...e){return this.console.log.bind(this.console,...e)}info(...e){return this.console.info.bind(this.console,...e)}warn(...e){return this.console.warn.bind(this.console,...e)}error(...e){return this.console.error.bind(this.console,...e)}};const Dv={self:"undefined"!=typeof self&&self,window:"undefined"!=typeof window&&window,global:"undefined"!=typeof global&&global,document:"undefined"!=typeof document&&document,process:"object"==typeof process&&process},Sv=Dv.window||Dv.self||Dv.global,Tv=Dv.process||{},Rv="undefined"!=typeof __VERSION__?__VERSION__:"untranspiled source";Iv();class Lv{constructor(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"sessionStorage";Z_(this,"storage",void 0),Z_(this,"id",void 0),Z_(this,"config",{}),this.storage=function(e){try{const t=window[e],i="__storage_test__";return t.setItem(i,i),t.removeItem(i),t}catch(e){return null}}(i),this.id=e,this.config={},Object.assign(this.config,t),this._loadConfiguration()}getConfiguration(){return this.config}setConfiguration(e){return this.config={},this.updateConfiguration(e)}updateConfiguration(e){if(Object.assign(this.config,e),this.storage){const e=JSON.stringify(this.config);this.storage.setItem(this.id,e)}return this}_loadConfiguration(){let e={};if(this.storage){const t=this.storage.getItem(this.id);e=t?JSON.parse(t):{}}return Object.assign(this.config,e),this}}function Uv(e,t,i){let s=arguments.length>3&&void 0!==arguments[3]?arguments[3]:600;const r=e.src.replace(/\(/g,"%28").replace(/\)/g,"%29");e.width>s&&(i=Math.min(i,s/e.width));const o=e.width*i,n=e.height*i,a=["font-size:1px;","padding:".concat(Math.floor(n/2),"px ").concat(Math.floor(o/2),"px;"),"line-height:".concat(n,"px;"),"background:url(".concat(r,");"),"background-size:".concat(o,"px ").concat(n,"px;"),"color:transparent;"].join("");return["".concat(t," %c+"),a]}let kv;function Ov(e){return"string"==typeof e?kv[e.toUpperCase()]||kv.WHITE:e}function Nv(e,t){if(!e)throw new Error(t||"Assertion failed")}function Qv(){let e;var t,i;if(Iv&&"performance"in Sv)e=null==Sv||null===(t=Sv.performance)||void 0===t||null===(i=t.now)||void 0===i?void 0:i.call(t);else if("hrtime"in Tv){var s;const t=null==Tv||null===(s=Tv.hrtime)||void 0===s?void 0:s.call(Tv);e=1e3*t[0]+t[1]/1e6}else e=Date.now();return e}!function(e){e[e.BLACK=30]="BLACK",e[e.RED=31]="RED",e[e.GREEN=32]="GREEN",e[e.YELLOW=33]="YELLOW",e[e.BLUE=34]="BLUE",e[e.MAGENTA=35]="MAGENTA",e[e.CYAN=36]="CYAN",e[e.WHITE=37]="WHITE",e[e.BRIGHT_BLACK=90]="BRIGHT_BLACK",e[e.BRIGHT_RED=91]="BRIGHT_RED",e[e.BRIGHT_GREEN=92]="BRIGHT_GREEN",e[e.BRIGHT_YELLOW=93]="BRIGHT_YELLOW",e[e.BRIGHT_BLUE=94]="BRIGHT_BLUE",e[e.BRIGHT_MAGENTA=95]="BRIGHT_MAGENTA",e[e.BRIGHT_CYAN=96]="BRIGHT_CYAN",e[e.BRIGHT_WHITE=97]="BRIGHT_WHITE"}(kv||(kv={}));const Vv={debug:Iv&&console.debug||console.log,log:console.log,info:console.info,warn:console.warn,error:console.error},jv={enabled:!0,level:0};function Hv(){}const zv={},Gv={once:!0};class Wv{constructor(){let{id:e}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{id:""};Z_(this,"id",void 0),Z_(this,"VERSION",Rv),Z_(this,"_startTs",Qv()),Z_(this,"_deltaTs",Qv()),Z_(this,"_storage",void 0),Z_(this,"userData",{}),Z_(this,"LOG_THROTTLE_TIMEOUT",0),this.id=e,this._storage=new Lv("__probe-".concat(this.id,"__"),jv),this.userData={},this.timeStamp("".concat(this.id," started")),function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:["constructor"];const i=Object.getPrototypeOf(e),s=Object.getOwnPropertyNames(i);for(const i of s)"function"==typeof e[i]&&(t.find((e=>i===e))||(e[i]=e[i].bind(e)))}(this),Object.seal(this)}set level(e){this.setLevel(e)}get level(){return this.getLevel()}isEnabled(){return this._storage.config.enabled}getLevel(){return this._storage.config.level}getTotal(){return Number((Qv()-this._startTs).toPrecision(10))}getDelta(){return Number((Qv()-this._deltaTs).toPrecision(10))}set priority(e){this.level=e}get priority(){return this.level}getPriority(){return this.level}enable(){let e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];return this._storage.updateConfiguration({enabled:e}),this}setLevel(e){return this._storage.updateConfiguration({level:e}),this}get(e){return this._storage.config[e]}set(e,t){this._storage.updateConfiguration({[e]:t})}settings(){console.table?console.table(this._storage.config):console.log(this._storage.config)}assert(e,t){Nv(e,t)}warn(e){return this._getLogFunction(0,e,Vv.warn,arguments,Gv)}error(e){return this._getLogFunction(0,e,Vv.error,arguments)}deprecated(e,t){return this.warn("`".concat(e,"` is deprecated and will be removed in a later version. Use `").concat(t,"` instead"))}removed(e,t){return this.error("`".concat(e,"` has been removed. Use `").concat(t,"` instead"))}probe(e,t){return this._getLogFunction(e,t,Vv.log,arguments,{time:!0,once:!0})}log(e,t){return this._getLogFunction(e,t,Vv.debug,arguments)}info(e,t){return this._getLogFunction(e,t,console.info,arguments)}once(e,t){for(var i=arguments.length,s=new Array(i>2?i-2:0),r=2;r{const t=Uv(e,i,s);console.log(...t)},e.src=t,Hv}const r=t.nodeName||"";if("img"===r.toLowerCase())return console.log(...Uv(t,i,s)),Hv;if("canvas"===r.toLowerCase()){const e=new Image;return e.onload=()=>console.log(...Uv(e,i,s)),e.src=t.toDataURL(),Hv}return Hv}({image:s,message:r,scale:o}):function(e){let{image:t,message:i="",scale:s=1}=e,r=null;try{r=module.require("asciify-image")}catch(e){}if(r)return()=>r(t,{fit:"box",width:"".concat(Math.round(80*s),"%")}).then((e=>console.log(e)));return Hv}({image:s,message:r,scale:o}):Hv}time(e,t){return this._getLogFunction(e,t,console.time?console.time:console.info)}timeEnd(e,t){return this._getLogFunction(e,t,console.timeEnd?console.timeEnd:console.info)}timeStamp(e,t){return this._getLogFunction(e,t,console.timeStamp||Hv)}group(e,t){let i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{collapsed:!1};const s=Xv({logLevel:e,message:t,opts:i}),{collapsed:r}=i;return s.method=(r?console.groupCollapsed:console.group)||console.info,this._getLogFunction(s)}groupCollapsed(e,t){let i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.group(e,t,Object.assign({},i,{collapsed:!0}))}groupEnd(e){return this._getLogFunction(e,"",console.groupEnd||Hv)}withGroup(e,t,i){this.group(e,t)();try{i()}finally{this.groupEnd(e)()}}trace(){console.trace&&console.trace()}_shouldLog(e){return this.isEnabled()&&this.getLevel()>=Kv(e)}_getLogFunction(e,t,i,s,r){if(this._shouldLog(e)){r=Xv({logLevel:e,message:t,args:s,opts:r}),Nv(i=i||r.method),r.total=this.getTotal(),r.delta=this.getDelta(),this._deltaTs=Qv();const o=r.tag||r.message;if(r.once){if(zv[o])return Hv;zv[o]=Qv()}return t=function(e,t,i){if("string"==typeof t){const s=i.time?function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:8;const i=Math.max(t-e.length,0);return"".concat(" ".repeat(i)).concat(e)}(function(e){let t;return t=e<10?"".concat(e.toFixed(2),"ms"):e<100?"".concat(e.toFixed(1),"ms"):e<1e3?"".concat(e.toFixed(0),"ms"):"".concat((e/1e3).toFixed(2),"s"),t}(i.total)):"";t=i.time?"".concat(e,": ").concat(s," ").concat(t):"".concat(e,": ").concat(t),t=function(e,t,i){return Iv||"string"!=typeof e||(t&&(t=Ov(t),e="[".concat(t,"m").concat(e,"")),i&&(t=Ov(i),e="[".concat(i+10,"m").concat(e,""))),e}(t,i.color,i.background)}return t}(this.id,r.message,r),i.bind(console,t,...r.args)}return Hv}}function Kv(e){if(!e)return 0;let t;switch(typeof e){case"number":t=e;break;case"object":t=e.logLevel||e.priority||0;break;default:return 0}return Nv(Number.isFinite(t)&&t>=0),t}function Xv(e){const{logLevel:t,message:i}=e;e.logLevel=Kv(t);const s=e.args?Array.from(e.args):[];for(;s.length&&s.shift()!==i;);switch(typeof t){case"string":case"function":void 0!==i&&s.unshift(i),e.message=t;break;case"object":Object.assign(e,t)}"function"==typeof e.message&&(e.message=e.message());const r=typeof e.message;return Nv("string"===r||"object"===r),Object.assign(e,{args:s},e.opts)}function Yv(e){for(const t in e)for(const i in e[t])return i||"untitled";return"empty"}var qv,Zv,Jv,$v,eb,tb,ib,sb,rb;let ob;Z_(Wv,"VERSION",Rv),new Wv({id:"loaders.gl"}),(rb=qv||(qv={}))[rb.NONE=0]="NONE",rb[rb.BASISLZ=1]="BASISLZ",rb[rb.ZSTD=2]="ZSTD",rb[rb.ZLIB=3]="ZLIB",function(e){e[e.BASICFORMAT=0]="BASICFORMAT"}(Zv||(Zv={})),function(e){e[e.UNSPECIFIED=0]="UNSPECIFIED",e[e.ETC1S=163]="ETC1S",e[e.UASTC=166]="UASTC"}(Jv||(Jv={})),function(e){e[e.UNSPECIFIED=0]="UNSPECIFIED",e[e.SRGB=1]="SRGB"}($v||($v={})),function(e){e[e.UNSPECIFIED=0]="UNSPECIFIED",e[e.LINEAR=1]="LINEAR",e[e.SRGB=2]="SRGB",e[e.ITU=3]="ITU",e[e.NTSC=4]="NTSC",e[e.SLOG=5]="SLOG",e[e.SLOG2=6]="SLOG2"}(eb||(eb={})),function(e){e[e.ALPHA_STRAIGHT=0]="ALPHA_STRAIGHT",e[e.ALPHA_PREMULTIPLIED=1]="ALPHA_PREMULTIPLIED"}(tb||(tb={})),function(e){e[e.RGB=0]="RGB",e[e.RRR=3]="RRR",e[e.GGG=4]="GGG",e[e.AAA=15]="AAA"}(ib||(ib={})),function(e){e[e.RGB=0]="RGB",e[e.RGBA=3]="RGBA",e[e.RRR=4]="RRR",e[e.RRRG=5]="RRRG"}(sb||(sb={})),function(e){e[e.NONE=0]="NONE",e[e.Null=1]="Null",e[e.Int=2]="Int",e[e.Float=3]="Float",e[e.Binary=4]="Binary",e[e.Utf8=5]="Utf8",e[e.Bool=6]="Bool",e[e.Decimal=7]="Decimal",e[e.Date=8]="Date",e[e.Time=9]="Time",e[e.Timestamp=10]="Timestamp",e[e.Interval=11]="Interval",e[e.List=12]="List",e[e.Struct=13]="Struct",e[e.Union=14]="Union",e[e.FixedSizeBinary=15]="FixedSizeBinary",e[e.FixedSizeList=16]="FixedSizeList",e[e.Map=17]="Map",e[e.Dictionary=-1]="Dictionary",e[e.Int8=-2]="Int8",e[e.Int16=-3]="Int16",e[e.Int32=-4]="Int32",e[e.Int64=-5]="Int64",e[e.Uint8=-6]="Uint8",e[e.Uint16=-7]="Uint16",e[e.Uint32=-8]="Uint32",e[e.Uint64=-9]="Uint64",e[e.Float16=-10]="Float16",e[e.Float32=-11]="Float32",e[e.Float64=-12]="Float64",e[e.DateDay=-13]="DateDay",e[e.DateMillisecond=-14]="DateMillisecond",e[e.TimestampSecond=-15]="TimestampSecond",e[e.TimestampMillisecond=-16]="TimestampMillisecond",e[e.TimestampMicrosecond=-17]="TimestampMicrosecond",e[e.TimestampNanosecond=-18]="TimestampNanosecond",e[e.TimeSecond=-19]="TimeSecond",e[e.TimeMillisecond=-20]="TimeMillisecond",e[e.TimeMicrosecond=-21]="TimeMicrosecond",e[e.TimeNanosecond=-22]="TimeNanosecond",e[e.DenseUnion=-23]="DenseUnion",e[e.SparseUnion=-24]="SparseUnion",e[e.IntervalDayTime=-25]="IntervalDayTime",e[e.IntervalYearMonth=-26]="IntervalYearMonth"}(ob||(ob={}));const nb={DEFAULT:{}};function ab(e,t,i={}){const s="lightgrey",r=i.hoverColor||"rgba(0,0,0,0.4)",o=i.textColor||"black",n=500,a=n+n/3,l=a/24,A=[{boundary:[6,6,6,6],color:i.frontColor||i.color||"#55FF55"},{boundary:[18,6,6,6],color:i.backColor||i.color||"#55FF55"},{boundary:[12,6,6,6],color:i.rightColor||i.color||"#FF5555"},{boundary:[0,6,6,6],color:i.leftColor||i.color||"#FF5555"},{boundary:[6,0,6,6],color:i.topColor||i.color||"#7777FF"},{boundary:[6,12,6,6],color:i.bottomColor||i.color||"#7777FF"}],h=[{label:"NavCube.front",boundaries:[[7,7,4,4]],dir:[0,1,0],up:[0,0,1]},{label:"NavCube.back",boundaries:[[19,7,4,4]],dir:[0,-1,0],up:[0,0,1]},{label:"NavCube.right",boundaries:[[13,7,4,4]],dir:[-1,0,0],up:[0,0,1]},{label:"NavCube.left",boundaries:[[1,7,4,4]],dir:[1,0,0],up:[0,0,1]},{label:"NavCube.top",boundaries:[[7,1,4,4]],dir:[0,0,-1],up:[0,1,0]},{label:"NavCube.bottom",boundaries:[[7,13,4,4]],dir:[0,0,1],up:[0,-1,0]},{boundaries:[[7,5,4,2]],dir:[0,1,-1],up:[0,1,1]},{boundaries:[[1,6,4,1],[6,1,1,4]],dir:[1,0,-1],up:[1,0,1]},{boundaries:[[7,0,4,1],[19,6,4,1]],dir:[0,-1,-1],up:[0,-1,1]},{boundaries:[[13,6,4,1],[11,1,1,4]],dir:[-1,0,-1],up:[-1,0,1]},{boundaries:[[7,11,4,2]],dir:[0,1,1],up:[0,-1,1]},{boundaries:[[1,11,4,1],[6,13,1,4]],dir:[1,0,1],up:[-1,0,1]},{boundaries:[[7,17,4,1],[19,11,4,1]],dir:[0,-1,1],up:[0,1,1]},{boundaries:[[13,11,4,1],[11,13,1,4]],dir:[-1,0,1],up:[1,0,1]},{boundaries:[[5,7,2,4]],dir:[1,1,0],up:[0,0,1]},{boundaries:[[11,7,2,4]],dir:[-1,1,0],up:[0,0,1]},{boundaries:[[17,7,2,4]],dir:[-1,-1,0],up:[0,0,1]},{boundaries:[[0,7,1,4],[23,7,1,4]],dir:[1,-1,0],up:[0,0,1]},{boundaries:[[5,11,2,2]],dir:[1,1,1],up:[-1,-1,1]},{boundaries:[[23,11,1,1],[6,17,1,1],[0,11,1,1]],dir:[1,-1,1],up:[-1,1,1]},{boundaries:[[5,5,2,2]],dir:[1,1,-1],up:[1,1,1]},{boundaries:[[11,17,1,1],[17,11,2,1]],dir:[-1,-1,1],up:[1,1,1]},{boundaries:[[17,6,2,1],[11,0,1,1]],dir:[-1,-1,-1],up:[-1,-1,1]},{boundaries:[[11,11,2,2]],dir:[-1,1,1],up:[1,-1,1]},{boundaries:[[0,6,1,1],[6,0,1,1],[23,6,1,1]],dir:[1,-1,-1],up:[1,-1,1]},{boundaries:[[11,5,2,2]],dir:[-1,1,-1],up:[-1,1,1]}];i.frontColor||i.color,i.backColor||i.color,i.rightColor||i.color,i.leftColor||i.color,i.topColor||i.color,i.bottomColor||i.color;const c=[{yUp:"",label:"NavCube.front",boundaries:[[7,7,4,4]],dir:[0,0,-1],up:[0,1,0]},{label:"NavCube.back",boundaries:[[19,7,4,4]],dir:[0,0,1],up:[0,1,0]},{label:"NavCube.right",boundaries:[[13,7,4,4]],dir:[-1,0,0],up:[0,1,0]},{label:"NavCube.left",boundaries:[[1,7,4,4]],dir:[1,0,0],up:[0,1,0]},{label:"NavCube.top",boundaries:[[7,1,4,4]],dir:[0,-1,0],up:[0,0,-1]},{label:"NavCube.bottom",boundaries:[[7,13,4,4]],dir:[0,1,0],up:[0,0,1]},{boundaries:[[7,5,4,2]],dir:[0,-.7071,-.7071],up:[0,.7071,-.7071]},{boundaries:[[1,6,4,1],[6,1,1,4]],dir:[1,-1,0],up:[1,1,0]},{boundaries:[[7,0,4,1],[19,6,4,1]],dir:[0,-.7071,.7071],up:[0,.7071,.7071]},{boundaries:[[13,6,4,1],[11,1,1,4]],dir:[-1,-1,0],up:[-1,1,0]},{boundaries:[[7,11,4,2]],dir:[0,1,-1],up:[0,1,1]},{boundaries:[[1,11,4,1],[6,13,1,4]],dir:[1,1,0],up:[-1,1,0]},{boundaries:[[7,17,4,1],[19,11,4,1]],dir:[0,1,1],up:[0,1,-1]},{boundaries:[[13,11,4,1],[11,13,1,4]],dir:[-1,1,0],up:[1,1,0]},{boundaries:[[5,7,2,4]],dir:[1,0,-1],up:[0,1,0]},{boundaries:[[11,7,2,4]],dir:[-1,0,-1],up:[0,1,0]},{boundaries:[[17,7,2,4]],dir:[-1,0,1],up:[0,1,0]},{boundaries:[[0,7,1,4],[23,7,1,4]],dir:[1,0,1],up:[0,1,0]},{boundaries:[[5,11,2,2]],dir:[.5,.7071,-.5],up:[-.5,.7071,.5]},{boundaries:[[23,11,1,1],[6,17,1,1],[0,11,1,1]],dir:[.5,.7071,.5],up:[-.5,.7071,-.5]},{boundaries:[[5,5,2,2]],dir:[.5,-.7071,-.5],up:[.5,.7071,-.5]},{boundaries:[[11,17,1,1],[17,11,2,1]],dir:[-.5,.7071,.5],up:[.5,.7071,-.5]},{boundaries:[[17,6,2,1],[11,0,1,1]],dir:[-.5,-.7071,.5],up:[-.5,.7071,.5]},{boundaries:[[11,11,2,2]],dir:[-.5,.7071,-.5],up:[.5,.7071,.5]},{boundaries:[[0,6,1,1],[6,0,1,1],[23,6,1,1]],dir:[.5,-.7071,.5],up:[.5,.7071,.5]},{boundaries:[[11,5,2,2]],dir:[-.5,-.7071,-.5],up:[-.5,.7071,-.5]}];for(let e=0,t=h.length;e=r[0]*l&&t<=(r[0]+r[2])*l&&i>=r[1]*l&&i<=(r[1]+r[3])*l)return s}}return-1},this.setAreaHighlighted=function(e,t){var i=u[e];if(!i)throw"Area not found: "+e;i.highlighted=!!t,m()},this.getAreaDir=function(e){var t=u[e];if(!t)throw"Unknown area: "+e;return t.dir},this.getAreaUp=function(e){var t=u[e];if(!t)throw"Unknown area: "+e;return t.up},this.getImage=function(){return this._textureCanvas},this.destroy=function(){this._textureCanvas&&(this._textureCanvas.parentNode.removeChild(this._textureCanvas),this._textureCanvas=null)}}const lb=d.vec3(),Ab=d.vec3();d.mat4();class hb extends Q{constructor(e,t={}){super("NavCube",e,t),e.navCube=this;try{this._navCubeScene=new qt(e,{canvasId:t.canvasId,canvasElement:t.canvasElement,transparent:!0}),this._navCubeCanvas=this._navCubeScene.canvas.canvas,this._navCubeScene.input.keyboardEnabled=!1}catch(e){return void this.error(e)}const i=this._navCubeScene;i.clearLights(),new vt(i,{dir:[.4,-.4,.8],color:[.8,1,1],intensity:1,space:"view"}),new vt(i,{dir:[-.8,-.3,-.4],color:[.8,.8,.8],intensity:1,space:"view"}),new vt(i,{dir:[.8,-.6,-.8],color:[1,1,1],intensity:1,space:"view"}),this._navCubeCamera=i.camera,this._navCubeCamera.ortho.scale=7,this._navCubeCamera.ortho.near=.1,this._navCubeCamera.ortho.far=2e3,i.edgeMaterial.edgeColor=[.2,.2,.2],i.edgeMaterial.edgeAlpha=.6,this._zUp=Boolean(e.camera.zUp);var s=this;this.setIsProjectNorth(t.isProjectNorth),this.setProjectNorthOffsetAngle(t.projectNorthOffsetAngle);const r=function(){const e=d.mat4();return function(t,i,r){return d.identityMat4(e),d.rotationMat4v(t*s._projectNorthOffsetAngle*d.DEGTORAD,[0,1,0],e),d.transformVec3(e,i,r)}}();this._synchCamera=function(){var t=d.rotationMat4c(-90*d.DEGTORAD,1,0,0),i=d.vec3(),o=d.vec3(),n=d.vec3();return function(){var a=e.camera.eye,l=e.camera.look,A=e.camera.up;i=d.mulVec3Scalar(d.normalizeVec3(d.subVec3(a,l,i)),5),s._isProjectNorth&&s._projectNorthOffsetAngle&&(i=r(-1,i,lb),A=r(-1,A,Ab)),s._zUp?(d.transformVec3(t,i,o),d.transformVec3(t,A,n),s._navCubeCamera.look=[0,0,0],s._navCubeCamera.eye=d.transformVec3(t,i,o),s._navCubeCamera.up=d.transformPoint3(t,A,n)):(s._navCubeCamera.look=[0,0,0],s._navCubeCamera.eye=i,s._navCubeCamera.up=A)}}(),this._cubeTextureCanvas=new ab(e,i,t),this._cubeSampler=new Ts(i,{image:this._cubeTextureCanvas.getImage(),flipY:!0,wrapS:Jt,wrapT:Jt}),this._cubeMesh=new hs(i,{geometry:new St(i,{primitive:"triangles",normals:[0,0,1,0,0,1,0,0,1,0,0,1,1,0,0,1,0,0,1,0,0,1,0,0,0,1,0,0,1,0,0,1,0,0,1,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,0,-1,0,0,-1,0,0,-1,0,0,-1],positions:[1,1,1,-1,1,1,-1,-1,1,1,-1,1,1,1,1,1,-1,1,1,-1,-1,1,1,-1,1,1,1,1,1,-1,-1,1,-1,-1,1,1,-1,1,1,-1,1,-1,-1,-1,-1,-1,-1,1,-1,-1,-1,1,-1,-1,1,-1,1,-1,-1,1,1,-1,-1,-1,-1,-1,-1,1,-1,1,1,-1],uv:[.5,.6666,.25,.6666,.25,.3333,.5,.3333,.5,.6666,.5,.3333,.75,.3333,.75,.6666,.5,.6666,.5,1,.25,1,.25,.6666,.25,.6666,0,.6666,0,.3333,.25,.3333,.25,0,.5,0,.5,.3333,.25,.3333,.75,.3333,1,.3333,1,.6666,.75,.6666],indices:[0,1,2,0,2,3,4,5,6,4,6,7,8,9,10,8,10,11,12,13,14,12,14,15,16,17,18,16,18,19,20,21,22,20,22,23]}),material:new kt(i,{diffuse:[.4,.4,.4],specular:[.4,.4,.4],emissive:[.6,.6,.6],diffuseMap:this._cubeSampler,emissiveMap:this._cubeSampler}),visible:!0,edges:!0}),this._shadow=!1===t.shadowVisible?null:new hs(i,{geometry:new St(i,us({center:[0,0,0],radiusTop:.001,radiusBottom:1.4,height:.01,radialSegments:20,heightSegments:1,openEnded:!0})),material:new kt(i,{diffuse:[0,0,0],specular:[0,0,0],emissive:[0,0,0],alpha:.5}),position:[0,-1.5,0],visible:!0,pickable:!1,backfaces:!1}),this._onCameraMatrix=e.camera.on("matrix",this._synchCamera),this._onCameraWorldAxis=e.camera.on("worldAxis",(()=>{e.camera.zUp?(this._zUp=!0,this._cubeTextureCanvas.setZUp(),this._repaint(),this._synchCamera()):e.camera.yUp&&(this._zUp=!1,this._cubeTextureCanvas.setYUp(),this._repaint(),this._synchCamera())})),this._onCameraFOV=e.camera.perspective.on("fov",(e=>{this._synchProjection&&(this._navCubeCamera.perspective.fov=e)})),this._onCameraProjection=e.camera.on("projection",(e=>{this._synchProjection&&(this._navCubeCamera.projection="ortho"===e||"perspective"===e?e:"perspective")}));var o=-1;function n(e){var t=[0,0];if(e){for(var i=e.target,s=0,r=0;i.offsetParent;)s+=i.offsetLeft,r+=i.offsetTop,i=i.offsetParent;t[0]=e.pageX-s,t[1]=e.pageY-r}else e=window.event,t[0]=e.x,t[1]=e.y;return t}var a,l,A=null,h=null,c=!1,u=!1,p=.5;s._navCubeCanvas.addEventListener("mouseenter",s._onMouseEnter=function(e){u=!0}),s._navCubeCanvas.addEventListener("mouseleave",s._onMouseLeave=function(e){u=!1}),s._navCubeCanvas.addEventListener("mousedown",s._onMouseDown=function(e){if(1===e.which){A=e.x,h=e.y,a=e.clientX,l=e.clientY;var t=n(e),s=i.pick({canvasPos:t});c=!!s}}),document.addEventListener("mouseup",s._onMouseUp=function(e){if(1===e.which&&(c=!1,null!==A)){var t=n(e),a=i.pick({canvasPos:t,pickSurface:!0});if(a&&a.uv){var l=s._cubeTextureCanvas.getArea(a.uv);if(l>=0&&(document.body.style.cursor="pointer",o>=0&&(s._cubeTextureCanvas.setAreaHighlighted(o,!1),s._repaint(),o=-1),l>=0)){if(s._cubeTextureCanvas.setAreaHighlighted(l,!0),o=l,s._repaint(),e.xA+3||e.yh+3)return;var u=s._cubeTextureCanvas.getAreaDir(l);if(u){var d=s._cubeTextureCanvas.getAreaUp(l);s._isProjectNorth&&s._projectNorthOffsetAngle&&(u=r(1,u,lb),d=r(1,d,Ab)),g(u,d,(function(){o>=0&&(s._cubeTextureCanvas.setAreaHighlighted(o,!1),s._repaint(),o=-1),document.body.style.cursor="pointer",o>=0&&(s._cubeTextureCanvas.setAreaHighlighted(o,!1),s._repaint(),o=-1),l>=0&&(s._cubeTextureCanvas.setAreaHighlighted(l,!1),o=-1,s._repaint())}))}}}}}),document.addEventListener("mousemove",s._onMouseMove=function(t){if(o>=0&&(s._cubeTextureCanvas.setAreaHighlighted(o,!1),s._repaint(),o=-1),1!==t.buttons||c){if(c){var r=t.clientX,A=t.clientY;return document.body.style.cursor="move",void function(t,i){var s=(t-a)*-p,r=(i-l)*-p;e.camera.orbitYaw(s),e.camera.orbitPitch(-r),a=t,l=i}(r,A)}if(u){var h=n(t),d=i.pick({canvasPos:h,pickSurface:!0});if(d){if(d.uv){document.body.style.cursor="pointer";var g=s._cubeTextureCanvas.getArea(d.uv);if(g===o)return;o>=0&&s._cubeTextureCanvas.setAreaHighlighted(o,!1),g>=0&&(s._cubeTextureCanvas.setAreaHighlighted(g,!0),s._repaint(),o=g)}}else document.body.style.cursor="default",o>=0&&(s._cubeTextureCanvas.setAreaHighlighted(o,!1),s._repaint(),o=-1)}}});var g=function(){var t=d.vec3();return function(i,r,o){var n=s._fitVisible?e.scene.getAABB(e.scene.visibleObjectIds):e.scene.aabb,a=d.getAABB3Diag(n);d.getAABB3Center(n,t);var l=Math.abs(a/Math.tan(s._cameraFitFOV*d.DEGTORAD));e.cameraControl.pivotPos=t,s._cameraFly?e.cameraFlight.flyTo({look:t,eye:[t[0]-l*i[0],t[1]-l*i[1],t[2]-l*i[2]],up:r||[0,1,0],orthoScale:1.1*a,fitFOV:s._cameraFitFOV,duration:s._cameraFlyDuration},o):e.cameraFlight.jumpTo({look:t,eye:[t[0]-l*i[0],t[1]-l*i[1],t[2]-l*i[2]],up:r||[0,1,0],orthoScale:1.1*a,fitFOV:s._cameraFitFOV},o)}}();this._onUpdated=e.localeService.on("updated",(()=>{this._cubeTextureCanvas.clear(),this._repaint()})),this.setVisible(t.visible),this.setCameraFitFOV(t.cameraFitFOV),this.setCameraFly(t.cameraFly),this.setCameraFlyDuration(t.cameraFlyDuration),this.setFitVisible(t.fitVisible),this.setSynchProjection(t.synchProjection)}send(e,t){if("language"===e)this._cubeTextureCanvas.clear(),this._repaint()}_repaint(){const e=this._cubeTextureCanvas.getImage();this._cubeMesh.material.diffuseMap.image=e,this._cubeMesh.material.emissiveMap.image=e}setVisible(e=!0){this._navCubeCanvas&&(this._cubeMesh.visible=e,this._shadow&&(this._shadow.visible=e),this._navCubeCanvas.style.visibility=e?"visible":"hidden")}getVisible(){return!!this._navCubeCanvas&&this._cubeMesh.visible}setFitVisible(e=!1){this._fitVisible=e}getFitVisible(){return this._fitVisible}setCameraFly(e=!0){this._cameraFly=e}getCameraFly(){return this._cameraFly}setCameraFitFOV(e=45){this._cameraFitFOV=e}getCameraFitFOV(){return this._cameraFitFOV}setCameraFlyDuration(e=.5){this._cameraFlyDuration=e}getCameraFlyDuration(){return this._cameraFlyDuration}setSynchProjection(e=!1){this._synchProjection=e}getSynchProjection(){return this._synchProjection}setIsProjectNorth(e=!1){this._isProjectNorth=e}getIsProjectNorth(){return this._isProjectNorth}setProjectNorthOffsetAngle(e){this._projectNorthOffsetAngle=e}getProjectNorthOffsetAngle(){return this._projectNorthOffsetAngle}destroy(){this._navCubeCanvas&&(this.viewer.localeService.off(this._onUpdated),this.viewer.camera.off(this._onCameraMatrix),this.viewer.camera.off(this._onCameraWorldAxis),this.viewer.camera.perspective.off(this._onCameraFOV),this.viewer.camera.off(this._onCameraProjection),this._navCubeCanvas.removeEventListener("mouseenter",this._onMouseEnter),this._navCubeCanvas.removeEventListener("mouseleave",this._onMouseLeave),this._navCubeCanvas.removeEventListener("mousedown",this._onMouseDown),document.removeEventListener("mousemove",this._onMouseMove),document.removeEventListener("mouseup",this._onMouseUp),this._navCubeCanvas=null,this._cubeTextureCanvas.destroy(),this._cubeTextureCanvas=null,this._onMouseEnter=null,this._onMouseLeave=null,this._onMouseDown=null,this._onMouseMove=null,this._onMouseUp=null),this._navCubeScene.destroy(),this._navCubeScene=null,this._cubeMesh=null,this._shadow=null,super.destroy()}}d.vec3();const cb=new Float64Array([0,0,1]),ub=new Float64Array(4);class db{constructor(e){this.id=null,this._viewer=e.viewer,this._visible=!1,this._pos=d.vec3(),this._origin=d.vec3(),this._rtcPos=d.vec3(),this._baseDir=d.vec3(),this._rootNode=null,this._displayMeshes=null,this._affordanceMeshes=null,this._ignoreNextSectionPlaneDirUpdate=!1,this._createNodes(),this._bindEvents()}_setSectionPlane(e){this._sectionPlane&&(this._sectionPlane.off(this._onSectionPlanePos),this._sectionPlane.off(this._onSectionPlaneDir),this._onSectionPlanePos=null,this._onSectionPlaneDir=null,this._sectionPlane=null),e&&(this.id=e.id,this._setPos(e.pos),this._setDir(e.dir),this._sectionPlane=e,this._onSectionPlanePos=e.on("pos",(()=>{this._setPos(this._sectionPlane.pos)})),this._onSectionPlaneDir=e.on("dir",(()=>{this._ignoreNextSectionPlaneDirUpdate?this._ignoreNextSectionPlaneDirUpdate=!1:this._setDir(this._sectionPlane.dir)})))}get sectionPlane(){return this._sectionPlane}_setPos(e){this._pos.set(e),H(this._pos,this._origin,this._rtcPos),this._rootNode.origin=this._origin,this._rootNode.position=this._rtcPos}_setDir(e){this._baseDir.set(e),this._rootNode.quaternion=d.vec3PairToQuaternion(cb,e,ub)}_setSectionPlaneDir(e){this._sectionPlane&&(this._ignoreNextSectionPlaneDirUpdate=!0,this._sectionPlane.dir=e)}setVisible(e=!0){if(this._visible!==e){var t;for(t in this._visible=e,this._displayMeshes)this._displayMeshes.hasOwnProperty(t)&&(this._displayMeshes[t].visible=e);if(!e)for(t in this._affordanceMeshes)this._affordanceMeshes.hasOwnProperty(t)&&(this._affordanceMeshes[t].visible=e)}}getVisible(){return this._visible}setCulled(e){var t;for(t in this._displayMeshes)this._displayMeshes.hasOwnProperty(t)&&(this._displayMeshes[t].culled=e);if(!e)for(t in this._affordanceMeshes)this._affordanceMeshes.hasOwnProperty(t)&&(this._affordanceMeshes[t].culled=e)}_createNodes(){const e=!1,t=this._viewer.scene,i=.01;this._rootNode=new Ps(t,{position:[0,0,0],scale:[5,5,5],isObject:!1});const s=this._rootNode,r={arrowHead:new St(s,us({radiusTop:.001,radiusBottom:.07,radialSegments:32,heightSegments:1,height:.2,openEnded:!1})),arrowHeadBig:new St(s,us({radiusTop:.001,radiusBottom:.09,radialSegments:32,heightSegments:1,height:.25,openEnded:!1})),arrowHeadHandle:new St(s,us({radiusTop:.09,radiusBottom:.09,radialSegments:8,heightSegments:1,height:.37,openEnded:!1})),curve:new St(s,Ns({radius:.8,tube:i,radialSegments:64,tubeSegments:14,arc:2*Math.PI/4})),curveHandle:new St(s,Ns({radius:.8,tube:.06,radialSegments:64,tubeSegments:14,arc:2*Math.PI/4})),hoop:new St(s,Ns({radius:.8,tube:i,radialSegments:64,tubeSegments:8,arc:2*Math.PI})),axis:new St(s,us({radiusTop:i,radiusBottom:i,radialSegments:20,heightSegments:1,height:1,openEnded:!1})),axisHandle:new St(s,us({radiusTop:.08,radiusBottom:.08,radialSegments:20,heightSegments:1,height:1,openEnded:!1}))},o={pickable:new kt(s,{diffuse:[1,1,0],alpha:0,alphaMode:"blend"}),red:new kt(s,{diffuse:[1,0,0],emissive:[1,0,0],ambient:[0,0,0],specular:[.6,.6,.3],shininess:80,lineWidth:2}),highlightRed:new Nt(s,{edges:!1,fill:!0,fillColor:[1,0,0],fillAlpha:.6}),green:new kt(s,{diffuse:[0,1,0],emissive:[0,1,0],ambient:[0,0,0],specular:[.6,.6,.3],shininess:80,lineWidth:2}),highlightGreen:new Nt(s,{edges:!1,fill:!0,fillColor:[0,1,0],fillAlpha:.6}),blue:new kt(s,{diffuse:[0,0,1],emissive:[0,0,1],ambient:[0,0,0],specular:[.6,.6,.3],shininess:80,lineWidth:2}),highlightBlue:new Nt(s,{edges:!1,fill:!0,fillColor:[0,0,1],fillAlpha:.2}),center:new kt(s,{diffuse:[0,0,0],emissive:[0,0,0],ambient:[0,0,0],specular:[.6,.6,.3],shininess:80}),highlightBall:new Nt(s,{edges:!1,fill:!0,fillColor:[.5,.5,.5],fillAlpha:.5,vertices:!1}),highlightPlane:new Nt(s,{edges:!0,edgeWidth:3,fill:!1,fillColor:[.5,.5,.5],fillAlpha:.5,vertices:!1})};this._displayMeshes={plane:s.addChild(new hs(s,{geometry:new St(s,{primitive:"triangles",positions:[.5,.5,0,.5,-.5,0,-.5,-.5,0,-.5,.5,0,.5,.5,-0,.5,-.5,-0,-.5,-.5,-0,-.5,.5,-0],indices:[0,1,2,2,3,0]}),material:new kt(s,{emissive:[0,0,0],diffuse:[0,0,0],backfaces:!0}),opacity:.6,ghosted:!0,ghostMaterial:new Nt(s,{edges:!1,filled:!0,fillColor:[1,1,0],edgeColor:[0,0,0],fillAlpha:.1,backfaces:!0}),pickable:!1,collidable:!0,clippable:!1,visible:!1,scale:[2.4,2.4,1],isObject:!1}),e),planeFrame:s.addChild(new hs(s,{geometry:new St(s,Ns({center:[0,0,0],radius:1.7,tube:.02,radialSegments:4,tubeSegments:4,arc:2*Math.PI})),material:new kt(s,{emissive:[0,0,0],diffuse:[0,0,0],specular:[0,0,0],shininess:0}),highlightMaterial:new Nt(s,{edges:!1,edgeColor:[0,0,0],filled:!0,fillColor:[.8,.8,.8],fillAlpha:1}),pickable:!1,collidable:!1,clippable:!1,visible:!1,scale:[1,1,.1],rotation:[0,0,45],isObject:!1}),e),xCurve:s.addChild(new hs(s,{geometry:r.curve,material:o.red,matrix:function(){const e=d.rotationMat4v(90*d.DEGTORAD,[0,1,0],d.identityMat4()),t=d.rotationMat4v(270*d.DEGTORAD,[1,0,0],d.identityMat4());return d.mulMat4(t,e,d.identityMat4())}(),pickable:!1,collidable:!0,clippable:!1,backfaces:!0,visible:!1,isObject:!1}),e),xCurveHandle:s.addChild(new hs(s,{geometry:r.curveHandle,material:o.pickable,matrix:function(){const e=d.rotationMat4v(90*d.DEGTORAD,[0,1,0],d.identityMat4()),t=d.rotationMat4v(270*d.DEGTORAD,[1,0,0],d.identityMat4());return d.mulMat4(t,e,d.identityMat4())}(),pickable:!0,collidable:!0,clippable:!1,backfaces:!0,visible:!1,isObject:!1}),e),xCurveArrow1:s.addChild(new hs(s,{geometry:r.arrowHead,material:o.red,matrix:function(){const e=d.translateMat4c(0,-.07,-.8,d.identityMat4()),t=d.scaleMat4v([.6,.6,.6],d.identityMat4()),i=d.rotationMat4v(0*d.DEGTORAD,[0,0,1],d.identityMat4());return d.mulMat4(d.mulMat4(e,t,d.identityMat4()),i,d.identityMat4())}(),pickable:!0,collidable:!0,clippable:!1,visible:!1,isObject:!1}),e),xCurveArrow2:s.addChild(new hs(s,{geometry:r.arrowHead,material:o.red,matrix:function(){const e=d.translateMat4c(0,-.8,-.07,d.identityMat4()),t=d.scaleMat4v([.6,.6,.6],d.identityMat4()),i=d.rotationMat4v(90*d.DEGTORAD,[1,0,0],d.identityMat4());return d.mulMat4(d.mulMat4(e,t,d.identityMat4()),i,d.identityMat4())}(),pickable:!0,collidable:!0,clippable:!1,visible:!1,isObject:!1}),e),yCurve:s.addChild(new hs(s,{geometry:r.curve,material:o.green,rotation:[-90,0,0],pickable:!1,collidable:!0,clippable:!1,backfaces:!0,visible:!1,isObject:!1}),e),yCurveHandle:s.addChild(new hs(s,{geometry:r.curveHandle,material:o.pickable,rotation:[-90,0,0],pickable:!0,collidable:!0,clippable:!1,backfaces:!0,visible:!1,isObject:!1}),e),yCurveArrow1:s.addChild(new hs(s,{geometry:r.arrowHead,material:o.green,matrix:function(){const e=d.translateMat4c(.07,0,-.8,d.identityMat4()),t=d.scaleMat4v([.6,.6,.6],d.identityMat4()),i=d.rotationMat4v(90*d.DEGTORAD,[0,0,1],d.identityMat4());return d.mulMat4(d.mulMat4(e,t,d.identityMat4()),i,d.identityMat4())}(),pickable:!0,collidable:!0,clippable:!1,visible:!1,isObject:!1}),e),yCurveArrow2:s.addChild(new hs(s,{geometry:r.arrowHead,material:o.green,matrix:function(){const e=d.translateMat4c(.8,0,-.07,d.identityMat4()),t=d.scaleMat4v([.6,.6,.6],d.identityMat4()),i=d.rotationMat4v(90*d.DEGTORAD,[1,0,0],d.identityMat4());return d.mulMat4(d.mulMat4(e,t,d.identityMat4()),i,d.identityMat4())}(),pickable:!0,collidable:!0,clippable:!1,visible:!1,isObject:!1}),e),zCurve:s.addChild(new hs(s,{geometry:r.curve,material:o.blue,matrix:d.rotationMat4v(180*d.DEGTORAD,[1,0,0],d.identityMat4()),pickable:!1,collidable:!0,clippable:!1,visible:!1,isObject:!1}),e),zCurveHandle:s.addChild(new hs(s,{geometry:r.curveHandle,material:o.pickable,matrix:d.rotationMat4v(180*d.DEGTORAD,[1,0,0],d.identityMat4()),pickable:!0,collidable:!0,clippable:!1,visible:!1,isObject:!1}),e),zCurveCurveArrow1:s.addChild(new hs(s,{geometry:r.arrowHead,material:o.blue,matrix:function(){const e=d.translateMat4c(.8,-.07,0,d.identityMat4()),t=d.scaleMat4v([.6,.6,.6],d.identityMat4());return d.mulMat4(e,t,d.identityMat4())}(),pickable:!0,collidable:!0,clippable:!1,visible:!1,isObject:!1}),e),zCurveArrow2:s.addChild(new hs(s,{geometry:r.arrowHead,material:o.blue,matrix:function(){const e=d.translateMat4c(.05,-.8,0,d.identityMat4()),t=d.scaleMat4v([.6,.6,.6],d.identityMat4()),i=d.rotationMat4v(90*d.DEGTORAD,[0,0,1],d.identityMat4());return d.mulMat4(d.mulMat4(e,t,d.identityMat4()),i,d.identityMat4())}(),pickable:!0,collidable:!0,clippable:!1,visible:!1,isObject:!1}),e),center:s.addChild(new hs(s,{geometry:new St(s,ds({radius:.05})),material:o.center,pickable:!1,collidable:!0,clippable:!1,visible:!1,isObject:!1}),e),xAxisArrow:s.addChild(new hs(s,{geometry:r.arrowHead,material:o.red,matrix:function(){const e=d.translateMat4c(0,1.1,0,d.identityMat4()),t=d.rotationMat4v(-90*d.DEGTORAD,[0,0,1],d.identityMat4());return d.mulMat4(t,e,d.identityMat4())}(),pickable:!1,collidable:!0,clippable:!1,visible:!1,isObject:!1}),e),xAxisArrowHandle:s.addChild(new hs(s,{geometry:r.arrowHeadHandle,material:o.pickable,matrix:function(){const e=d.translateMat4c(0,1.1,0,d.identityMat4()),t=d.rotationMat4v(-90*d.DEGTORAD,[0,0,1],d.identityMat4());return d.mulMat4(t,e,d.identityMat4())}(),pickable:!0,collidable:!0,clippable:!1,visible:!1,isObject:!1}),e),xAxis:s.addChild(new hs(s,{geometry:r.axis,material:o.red,matrix:function(){const e=d.translateMat4c(0,.5,0,d.identityMat4()),t=d.rotationMat4v(-90*d.DEGTORAD,[0,0,1],d.identityMat4());return d.mulMat4(t,e,d.identityMat4())}(),pickable:!1,collidable:!0,clippable:!1,visible:!1,isObject:!1}),e),xAxisHandle:s.addChild(new hs(s,{geometry:r.axisHandle,material:o.pickable,matrix:function(){const e=d.translateMat4c(0,.5,0,d.identityMat4()),t=d.rotationMat4v(-90*d.DEGTORAD,[0,0,1],d.identityMat4());return d.mulMat4(t,e,d.identityMat4())}(),pickable:!0,collidable:!0,clippable:!1,visible:!1,isObject:!1}),e),yAxisArrow:s.addChild(new hs(s,{geometry:r.arrowHead,material:o.green,matrix:function(){const e=d.translateMat4c(0,1.1,0,d.identityMat4()),t=d.rotationMat4v(180*d.DEGTORAD,[1,0,0],d.identityMat4());return d.mulMat4(t,e,d.identityMat4())}(),pickable:!1,collidable:!0,clippable:!1,visible:!1,isObject:!1}),e),yAxisArrowHandle:s.addChild(new hs(s,{geometry:r.arrowHeadHandle,material:o.pickable,matrix:function(){const e=d.translateMat4c(0,1.1,0,d.identityMat4()),t=d.rotationMat4v(180*d.DEGTORAD,[1,0,0],d.identityMat4());return d.mulMat4(t,e,d.identityMat4())}(),pickable:!0,collidable:!0,clippable:!1,visible:!1,opacity:.2,isObject:!1}),e),yShaft:s.addChild(new hs(s,{geometry:r.axis,material:o.green,position:[0,-.5,0],pickable:!1,collidable:!0,clippable:!1,visible:!1,isObject:!1}),e),yShaftHandle:s.addChild(new hs(s,{geometry:r.axisHandle,material:o.pickable,position:[0,-.5,0],pickable:!0,collidable:!0,clippable:!1,visible:!1,isObject:!1}),e),zAxisArrow:s.addChild(new hs(s,{geometry:r.arrowHead,material:o.blue,matrix:function(){const e=d.translateMat4c(0,1.1,0,d.identityMat4()),t=d.rotationMat4v(-90*d.DEGTORAD,[.8,0,0],d.identityMat4());return d.mulMat4(t,e,d.identityMat4())}(),pickable:!1,collidable:!0,clippable:!1,visible:!1,isObject:!1}),e),zAxisArrowHandle:s.addChild(new hs(s,{geometry:r.arrowHeadHandle,material:o.pickable,matrix:function(){const e=d.translateMat4c(0,1.1,0,d.identityMat4()),t=d.rotationMat4v(-90*d.DEGTORAD,[.8,0,0],d.identityMat4());return d.mulMat4(t,e,d.identityMat4())}(),pickable:!0,collidable:!0,clippable:!1,visible:!1,isObject:!1}),e),zShaft:s.addChild(new hs(s,{geometry:r.axis,material:o.blue,matrix:function(){const e=d.translateMat4c(0,.5,0,d.identityMat4()),t=d.rotationMat4v(-90*d.DEGTORAD,[1,0,0],d.identityMat4());return d.mulMat4(t,e,d.identityMat4())}(),clippable:!1,pickable:!1,collidable:!0,visible:!1,isObject:!1}),e),zAxisHandle:s.addChild(new hs(s,{geometry:r.axisHandle,material:o.pickable,matrix:function(){const e=d.translateMat4c(0,.5,0,d.identityMat4()),t=d.rotationMat4v(-90*d.DEGTORAD,[1,0,0],d.identityMat4());return d.mulMat4(t,e,d.identityMat4())}(),clippable:!1,pickable:!0,collidable:!0,visible:!1,isObject:!1}),e)},this._affordanceMeshes={planeFrame:s.addChild(new hs(s,{geometry:new St(s,Ns({center:[0,0,0],radius:2,tube:i,radialSegments:4,tubeSegments:4,arc:2*Math.PI})),material:new kt(s,{ambient:[1,1,1],diffuse:[0,0,0],emissive:[1,1,0]}),highlighted:!0,highlightMaterial:new Nt(s,{edges:!1,filled:!0,fillColor:[1,1,0],fillAlpha:1}),pickable:!1,collidable:!1,clippable:!1,visible:!1,scale:[1,1,1],rotation:[0,0,45],isObject:!1}),e),xHoop:s.addChild(new hs(s,{geometry:r.hoop,material:o.red,highlighted:!0,highlightMaterial:o.highlightRed,matrix:function(){const e=d.rotationMat4v(90*d.DEGTORAD,[0,1,0],d.identityMat4()),t=d.rotationMat4v(270*d.DEGTORAD,[1,0,0],d.identityMat4());return d.mulMat4(t,e,d.identityMat4())}(),pickable:!1,collidable:!0,clippable:!1,visible:!1,isObject:!1}),e),yHoop:s.addChild(new hs(s,{geometry:r.hoop,material:o.green,highlighted:!0,highlightMaterial:o.highlightGreen,rotation:[-90,0,0],pickable:!1,collidable:!0,clippable:!1,visible:!1,isObject:!1}),e),zHoop:s.addChild(new hs(s,{geometry:r.hoop,material:o.blue,highlighted:!0,highlightMaterial:o.highlightBlue,matrix:d.rotationMat4v(180*d.DEGTORAD,[1,0,0],d.identityMat4()),pickable:!1,collidable:!0,clippable:!1,backfaces:!0,visible:!1,isObject:!1}),e),xAxisArrow:s.addChild(new hs(s,{geometry:r.arrowHeadBig,material:o.red,matrix:function(){const e=d.translateMat4c(0,1.1,0,d.identityMat4()),t=d.rotationMat4v(-90*d.DEGTORAD,[0,0,1],d.identityMat4());return d.mulMat4(t,e,d.identityMat4())}(),pickable:!1,collidable:!0,clippable:!1,visible:!1,isObject:!1}),e),yAxisArrow:s.addChild(new hs(s,{geometry:r.arrowHeadBig,material:o.green,matrix:function(){const e=d.translateMat4c(0,1.1,0,d.identityMat4()),t=d.rotationMat4v(180*d.DEGTORAD,[1,0,0],d.identityMat4());return d.mulMat4(t,e,d.identityMat4())}(),pickable:!1,collidable:!0,clippable:!1,visible:!1,isObject:!1}),e),zAxisArrow:s.addChild(new hs(s,{geometry:r.arrowHeadBig,material:o.blue,matrix:function(){const e=d.translateMat4c(0,1.1,0,d.identityMat4()),t=d.rotationMat4v(-90*d.DEGTORAD,[.8,0,0],d.identityMat4());return d.mulMat4(t,e,d.identityMat4())}(),pickable:!1,collidable:!0,clippable:!1,visible:!1,isObject:!1}),e)}}_bindEvents(){const e=this;var t=!1;const i=-1,s=0,r=1,o=2,n=3,a=4,l=5,A=this._rootNode;var h=null,c=null;const u=d.vec2(),p=d.vec3([1,0,0]),g=d.vec3([0,1,0]),m=d.vec3([0,0,1]),f=this._viewer.scene.canvas.canvas,_=this._viewer.camera,v=this._viewer.scene;{const e=d.vec3([0,0,0]);let t=-1;this._onCameraViewMatrix=v.camera.on("viewMatrix",(()=>{})),this._onCameraProjMatrix=v.camera.on("projMatrix",(()=>{})),this._onSceneTick=v.on("tick",(()=>{const i=Math.abs(d.lenVec3(d.subVec3(v.camera.eye,this._pos,e)));if(i!==t&&"perspective"===_.projection){const e=.07*(Math.tan(_.perspective.fov*d.DEGTORAD)*i);A.scale=[e,e,e],t=i}if("ortho"===_.projection){const e=_.ortho.scale/10;A.scale=[e,e,e],t=i}}))}const b=function(){const e=new Float64Array(2);return function(t){if(t){for(var i=t.target,s=0,r=0;i.offsetParent;)s+=i.offsetLeft,r+=i.offsetTop,i=i.offsetParent;e[0]=t.pageX-s,e[1]=t.pageY-r}else t=window.event,e[0]=t.x,e[1]=t.y;return e}}(),x=function(){const t=d.mat4();return function(i,s){return d.quaternionToMat4(e._rootNode.quaternion,t),d.transformVec3(t,i,s),d.normalizeVec3(s),s}}();var w=function(){const e=d.vec3();return function(t){const i=Math.abs(t[0]);return i>Math.abs(t[1])&&i>Math.abs(t[2])?d.cross3Vec3(t,[0,1,0],e):d.cross3Vec3(t,[1,0,0],e),d.cross3Vec3(e,t,e),d.normalizeVec3(e),e}}();const y=function(){const t=d.vec3(),i=d.vec3(),s=d.vec4();return function(r,o,n){x(r,s);const a=w(s,o,n);B(o,a,t),B(n,a,i),d.subVec3(i,t);const l=d.dotVec3(i,s);e._pos[0]+=s[0]*l,e._pos[1]+=s[1]*l,e._pos[2]+=s[2]*l,e._rootNode.position=e._pos,e._sectionPlane&&(e._sectionPlane.pos=e._pos)}}();var P=function(){const t=d.vec4(),i=d.vec4(),s=d.vec4(),r=d.vec4();return function(o,n,a){x(o,r);if(!(B(n,r,t)&&B(a,r,i))){const e=w(r,n,a);B(n,e,t,1),B(a,e,i,1);var l=d.dotVec3(t,r);t[0]-=l*r[0],t[1]-=l*r[1],t[2]-=l*r[2],l=d.dotVec3(i,r),i[0]-=l*r[0],i[1]-=l*r[1],i[2]-=l*r[2]}d.normalizeVec3(t),d.normalizeVec3(i),l=d.dotVec3(t,i),l=d.clamp(l,-1,1);var A=Math.acos(l)*d.RADTODEG;d.cross3Vec3(t,i,s),d.dotVec3(s,r)<0&&(A=-A),e._rootNode.rotate(o,A),C()}}(),B=function(){const t=d.vec4([0,0,0,1]),i=d.mat4();return function(s,r,o,n){n=n||0,t[0]=s[0]/f.width*2-1,t[1]=-(s[1]/f.height*2-1),t[2]=0,t[3]=1,d.mulMat4(_.projMatrix,_.viewMatrix,i),d.inverseMat4(i),d.transformVec4(i,t,t),d.mulVec4Scalar(t,1/t[3]);var a=_.eye;d.subVec4(t,a,t);const l=e._sectionPlane.pos;var A=-d.dotVec3(l,r)-n,h=d.dotVec3(r,t);if(Math.abs(h)>.005){var c=-(d.dotVec3(r,a)+A)/h;return d.mulVec3Scalar(t,c,o),d.addVec3(o,a),d.subVec3(o,l,o),!0}return!1}}();const C=function(){const t=d.vec3(),i=d.mat4();return function(){e.sectionPlane&&(d.quaternionToMat4(A.quaternion,i),d.transformVec3(i,[0,0,1],t),e._setSectionPlaneDir(t))}}();var M,E=!1;this._onCameraControlHover=this._viewer.cameraControl.on("hoverEnter",(e=>{if(!this._visible)return;if(E)return;var A;t=!1,M&&(M.visible=!1);switch(e.entity.id){case this._displayMeshes.xAxisArrowHandle.id:case this._displayMeshes.xAxisHandle.id:A=this._affordanceMeshes.xAxisArrow,h=s;break;case this._displayMeshes.yAxisArrowHandle.id:case this._displayMeshes.yShaftHandle.id:A=this._affordanceMeshes.yAxisArrow,h=r;break;case this._displayMeshes.zAxisArrowHandle.id:case this._displayMeshes.zAxisHandle.id:A=this._affordanceMeshes.zAxisArrow,h=o;break;case this._displayMeshes.xCurveHandle.id:A=this._affordanceMeshes.xHoop,h=n;break;case this._displayMeshes.yCurveHandle.id:A=this._affordanceMeshes.yHoop,h=a;break;case this._displayMeshes.zCurveHandle.id:A=this._affordanceMeshes.zHoop,h=l;break;default:return void(h=i)}A&&(A.visible=!0),M=A,t=!0})),this._onCameraControlHoverLeave=this._viewer.cameraControl.on("hoverOutEntity",(e=>{this._visible&&(M&&(M.visible=!1),M=null,h=i)})),f.addEventListener("mousedown",this._canvasMouseDownListener=e=>{if(e.preventDefault(),this._visible&&t&&(this._viewer.cameraControl.pointerEnabled=!1,1===e.which)){E=!0;var i=b(e);c=h,u[0]=i[0],u[1]=i[1]}}),f.addEventListener("mousemove",this._canvasMouseMoveListener=e=>{if(!this._visible)return;if(!E)return;var t=b(e);const i=t[0],A=t[1];switch(c){case s:y(p,u,t);break;case r:y(g,u,t);break;case o:y(m,u,t);break;case n:P(p,u,t);break;case a:P(g,u,t);break;case l:P(m,u,t)}u[0]=i,u[1]=A}),f.addEventListener("mouseup",this._canvasMouseUpListener=e=>{this._visible&&(this._viewer.cameraControl.pointerEnabled=!0,E&&(e.which,E=!1,t=!1))}),f.addEventListener("wheel",this._canvasWheelListener=e=>{if(this._visible)Math.max(-1,Math.min(1,40*-e.deltaY))})}_destroy(){this._unbindEvents(),this._destroyNodes()}_unbindEvents(){const e=this._viewer,t=e.scene,i=t.canvas.canvas,s=e.camera,r=e.cameraControl;t.off(this._onSceneTick),i.removeEventListener("mousedown",this._canvasMouseDownListener),i.removeEventListener("mousemove",this._canvasMouseMoveListener),i.removeEventListener("mouseup",this._canvasMouseUpListener),i.removeEventListener("wheel",this._canvasWheelListener),s.off(this._onCameraViewMatrix),s.off(this._onCameraProjMatrix),r.off(this._onCameraControlHover),r.off(this._onCameraControlHoverLeave)}_destroyNodes(){this._setSectionPlane(null),this._rootNode.destroy(),this._displayMeshes={},this._affordanceMeshes={}}}class pb{constructor(e,t,i){this.id=i.id,this._sectionPlane=i,this._mesh=new hs(t,{id:i.id,geometry:new St(t,Tt({xSize:.5,ySize:.5,zSize:.001})),material:new kt(t,{emissive:[1,1,1],diffuse:[0,0,0],backfaces:!1}),edgeMaterial:new Vt(t,{edgeColor:[0,0,0],edgeAlpha:1,edgeWidth:1}),highlightMaterial:new Nt(t,{fill:!0,fillColor:[.5,1,.5],fillAlpha:.7,edges:!0,edgeColor:[0,0,0],edgeAlpha:1,edgeWidth:1}),selectedMaterial:new Nt(t,{fill:!0,fillColor:[0,0,1],fillAlpha:.7,edges:!0,edgeColor:[1,0,0],edgeAlpha:1,edgeWidth:1}),highlighted:!0,scale:[3,3,3],position:[0,0,0],rotation:[0,0,0],opacity:.3,edges:!0});{const e=d.vec3([0,0,0]),t=d.vec3(),i=d.vec3([0,0,1]),s=d.vec4(4),r=d.vec3(),o=()=>{const o=this._sectionPlane.scene.center,n=[-this._sectionPlane.dir[0],-this._sectionPlane.dir[1],-this._sectionPlane.dir[2]];d.subVec3(o,this._sectionPlane.pos,e);const a=-d.dotVec3(n,e);d.normalizeVec3(n),d.mulVec3Scalar(n,a,t);const l=d.vec3PairToQuaternion(i,this._sectionPlane.dir,s);r[0]=.1*t[0],r[1]=.1*t[1],r[2]=.1*t[2],this._mesh.quaternion=l,this._mesh.position=r};this._onSectionPlanePos=this._sectionPlane.on("pos",o),this._onSectionPlaneDir=this._sectionPlane.on("dir",o)}this._highlighted=!1,this._selected=!1}setHighlighted(e){this._highlighted=!!e,this._mesh.highlighted=this._highlighted,this._mesh.highlightMaterial.fillColor=e?[0,.7,0]:[0,0,0]}getHighlighted(){return this._highlighted}setSelected(e){this._selected=!!e,this._mesh.edgeMaterial.edgeWidth=e?3:1,this._mesh.highlightMaterial.edgeWidth=e?3:1}getSelected(){return this._selected}destroy(){this._sectionPlane.off(this._onSectionPlanePos),this._sectionPlane.off(this._onSectionPlaneDir),this._mesh.destroy()}}class gb{constructor(e,t){if(!(t.onHoverEnterPlane&&t.onHoverLeavePlane&&t.onClickedNothing&&t.onClickedPlane))throw"Missing config(s): onHoverEnterPlane, onHoverLeavePlane, onClickedNothing || onClickedPlane";this.plugin=e,this._viewer=e.viewer,this._onHoverEnterPlane=t.onHoverEnterPlane,this._onHoverLeavePlane=t.onHoverLeavePlane,this._onClickedNothing=t.onClickedNothing,this._onClickedPlane=t.onClickedPlane,this._visible=!0,this._planes={},this._canvas=t.overviewCanvas,this._scene=new qt(this._viewer,{canvasId:this._canvas.id,transparent:!0}),this._scene.clearLights(),new vt(this._scene,{dir:[.4,-.4,.8],color:[.8,1,1],intensity:1,space:"view"}),new vt(this._scene,{dir:[-.8,-.3,-.4],color:[.8,.8,.8],intensity:1,space:"view"}),new vt(this._scene,{dir:[.8,-.6,-.8],color:[1,1,1],intensity:1,space:"view"}),this._scene.camera,this._scene.camera.perspective.fov=70,this._zUp=!1;{const e=this._scene.camera,t=d.rotationMat4c(-90*d.DEGTORAD,1,0,0),i=d.vec3(),s=d.vec3(),r=d.vec3();this._synchCamera=()=>{const o=this._viewer.camera.eye,n=this._viewer.camera.look,a=this._viewer.camera.up;d.mulVec3Scalar(d.normalizeVec3(d.subVec3(o,n,i)),7),this._zUp?(d.transformVec3(t,i,s),d.transformVec3(t,a,r),e.look=[0,0,0],e.eye=d.transformVec3(t,i,s),e.up=d.transformPoint3(t,a,r)):(e.look=[0,0,0],e.eye=i,e.up=a)}}this._onViewerCameraMatrix=this._viewer.camera.on("matrix",this._synchCamera),this._onViewerCameraWorldAxis=this._viewer.camera.on("worldAxis",this._synchCamera),this._onViewerCameraFOV=this._viewer.camera.perspective.on("fov",(e=>{this._scene.camera.perspective.fov=e}));var i=null;this._onInputMouseMove=this._scene.input.on("mousemove",(e=>{const t=this._scene.pick({canvasPos:e});if(t){if(!i||t.entity.id!==i.id){if(i){this._planes[i.id]&&this._onHoverLeavePlane(i.id)}i=t.entity;this._planes[i.id]&&this._onHoverEnterPlane(i.id)}}else i&&(this._onHoverLeavePlane(i.id),i=null)})),this._scene.canvas.canvas.addEventListener("mouseup",this._onCanvasMouseUp=()=>{if(i){this._planes[i.id]&&this._onClickedPlane(i.id)}else this._onClickedNothing()}),this._scene.canvas.canvas.addEventListener("mouseout",this._onCanvasMouseOut=()=>{i&&(this._onHoverLeavePlane(i.id),i=null)}),this.setVisible(t.overviewVisible)}addSectionPlane(e){this._planes[e.id]=new pb(this,this._scene,e)}setPlaneHighlighted(e,t){const i=this._planes[e];i&&i.setHighlighted(t)}setPlaneSelected(e,t){const i=this._planes[e];i&&i.setSelected(t)}removeSectionPlane(e){const t=this._planes[e.id];t&&(t.destroy(),delete this._planes[e.id])}setVisible(e=!0){this._visible=e,this._canvas.style.visibility=e?"visible":"hidden"}getVisible(){return this._visible}destroy(){this._viewer.camera.off(this._onViewerCameraMatrix),this._viewer.camera.off(this._onViewerCameraWorldAxis),this._viewer.camera.perspective.off(this._onViewerCameraFOV),this._scene.input.off(this._onInputMouseMove),this._scene.canvas.canvas.removeEventListener("mouseup",this._onCanvasMouseUp),this._scene.canvas.canvas.removeEventListener("mouseout",this._onCanvasMouseOut),this._scene.destroy()}}const mb=d.AABB3(),fb=d.vec3();class _b extends Q{constructor(e,t={}){if(super("SectionPlanes",e),this._freeControls=[],this._sectionPlanes=e.scene.sectionPlanes,this._controls={},this._shownControlId=null,null!==t.overviewCanvasId&&void 0!==t.overviewCanvasId){const e=document.getElementById(t.overviewCanvasId);e?this._overview=new gb(this,{overviewCanvas:e,visible:t.overviewVisible,onHoverEnterPlane:e=>{this._overview.setPlaneHighlighted(e,!0)},onHoverLeavePlane:e=>{this._overview.setPlaneHighlighted(e,!1)},onClickedPlane:e=>{if(this.getShownControl()===e)return void this.hideControl();this.showControl(e);const t=this.sectionPlanes[e].pos;mb.set(this.viewer.scene.aabb),d.getAABB3Center(mb,fb),mb[0]+=t[0]-fb[0],mb[1]+=t[1]-fb[1],mb[2]+=t[2]-fb[2],mb[3]+=t[0]-fb[0],mb[4]+=t[1]-fb[1],mb[5]+=t[2]-fb[2],this.viewer.cameraFlight.flyTo({aabb:mb,fitFOV:65})},onClickedNothing:()=>{this.hideControl()}}):this.warn("Can't find overview canvas: '"+t.overviewCanvasId+"' - will create plugin without overview")}this._onSceneSectionPlaneCreated=e.scene.on("sectionPlaneCreated",(e=>{this._sectionPlaneCreated(e)}))}setOverviewVisible(e){this._overview&&this._overview.setVisible(e)}getOverviewVisible(){if(this._overview)return this._overview.getVisible()}get sectionPlanes(){return this._sectionPlanes}createSectionPlane(e={}){void 0!==e.id&&null!==e.id&&this.viewer.scene.components[e.id]&&(this.error("Viewer component with this ID already exists: "+e.id),delete e.id);return new ps(this.viewer.scene,{id:e.id,pos:e.pos,dir:e.dir,active:!0})}_sectionPlaneCreated(e){const t=this._freeControls.length>0?this._freeControls.pop():new db(this);t._setSectionPlane(e),t.setVisible(!1),this._controls[e.id]=t,this._overview&&this._overview.addSectionPlane(e),e.once("destroyed",(()=>{this._sectionPlaneDestroyed(e)}))}flipSectionPlanes(){const e=this.viewer.scene.sectionPlanes;for(let t in e){e[t].flipDir()}}showControl(e){const t=this._controls[e];t?(this.hideControl(),t.setVisible(!0),this._overview&&this._overview.setPlaneSelected(e,!0),this._shownControlId=e):this.error("Control not found: "+e)}getShownControl(){return this._shownControlId}hideControl(){for(var e in this._controls)this._controls.hasOwnProperty(e)&&(this._controls[e].setVisible(!1),this._overview&&this._overview.setPlaneSelected(e,!1));this._shownControlId=null}destroySectionPlane(e){var t=this.viewer.scene.sectionPlanes[e];t?(this._sectionPlaneDestroyed(t),t.destroy(),e===this._shownControlId&&(this._shownControlId=null)):this.error("SectionPlane not found: "+e)}_sectionPlaneDestroyed(e){this._overview&&this._overview.removeSectionPlane(e);const t=this._controls[e.id];t&&(t.setVisible(!1),t._setSectionPlane(null),delete this._controls[e.id],this._freeControls.push(t))}clear(){const e=Object.keys(this._sectionPlanes);for(var t=0,i=e.length;t0){const i=document.createElement("a");i.href="#",i.id=`switch-${e.nodeId}`,i.textContent="+",i.classList.add("plus"),t&&i.addEventListener("click",t),o.appendChild(i)}const n=document.createElement("input");n.id=`checkbox-${e.nodeId}`,n.type="checkbox",n.checked=e.checked,n.style["pointer-events"]="all",i&&n.addEventListener("change",i),o.appendChild(n);const a=document.createElement("span");return a.textContent=e.title,o.appendChild(a),s&&(a.oncontextmenu=s),r&&(a.onclick=r),o}createDisabledNodeElement(e){const t=document.createElement("li"),i=document.createElement("a");i.href="#",i.textContent="!",i.classList.add("warn"),i.classList.add("warning"),t.appendChild(i);const s=document.createElement("span");return s.textContent=e,t.appendChild(s),t}addChildren(e,t){const i=document.createElement("ul");t.forEach((e=>{i.appendChild(e)})),e.parentElement.appendChild(i)}expand(e,t,i){e.classList.remove("plus"),e.classList.add("minus"),e.textContent="-",e.removeEventListener("click",t),e.addEventListener("click",i)}collapse(e,t,i){if(!e)return;const s=e.parentElement;if(!s)return;const r=s.querySelector("ul");r&&(s.removeChild(r),e.classList.remove("minus"),e.classList.add("plus"),e.textContent="+",e.removeEventListener("click",i),e.addEventListener("click",t))}isExpanded(e){return void 0!==e.parentElement.getElementsByTagName("li")[0]}getId(e){return e.parentElement.id}getIdFromCheckbox(e){return e.id.replace("checkbox-","")}getSwitchElement(e){return document.getElementById(`switch-${e}`)}isChecked(e){return e.checked}setCheckbox(e,t){const i=document.getElementById(`checkbox-${e}`);i&&t!==i.checked&&(i.checked=t)}setXRayed(e,t){const i=document.getElementById(e);i&&(t?i.classList.add("xrayed-node"):i.classList.remove("xrayed-node"))}setHighlighted(e,t){const i=document.getElementById(e);i&&(t?(i.scrollIntoView({block:"center"}),i.classList.add("highlighted-node")):i.classList.remove("highlighted-node"))}}const bb=[];class xb extends Q{constructor(e,t={}){super("TreeViewPlugin",e),this.errors=[],this.valid=!0;const i=t.containerElement||document.getElementById(t.containerElementId);if(i instanceof HTMLElement){for(let e=0;;e++)if(!bb[e]){bb[e]=this,this._index=e,this._id=`tree-${e}`;break}if(this._containerElement=i,this._metaModels={},this._autoAddModels=!1!==t.autoAddModels,this._autoExpandDepth=t.autoExpandDepth||0,this._sortNodes=!1!==t.sortNodes,this._viewer=e,this._rootElement=null,this._muteSceneEvents=!1,this._muteTreeEvents=!1,this._rootNodes=[],this._objectNodes={},this._nodeNodes={},this._rootNames={},this._sortNodes=t.sortNodes,this._pruneEmptyNodes=t.pruneEmptyNodes,this._showListItemElementId=null,this._renderService=t.renderService||new vb,!this._renderService)throw new Error("TreeViewPlugin: no render service set");if(this._containerElement.oncontextmenu=e=>{e.preventDefault()},this._onObjectVisibility=this._viewer.scene.on("objectVisibility",(e=>{if(this._muteSceneEvents)return;const t=e.id,i=this._objectNodes[t];if(!i)return;const s=e.visible;if(!(s!==i.checked))return;this._muteTreeEvents=!0,i.checked=s,s?i.numVisibleEntities++:i.numVisibleEntities--,this._renderService.setCheckbox(i.nodeId,s);let r=i.parent;for(;r;)r.checked=s,s?r.numVisibleEntities++:r.numVisibleEntities--,this._renderService.setCheckbox(r.nodeId,r.numVisibleEntities>0),r=r.parent;this._muteTreeEvents=!1})),this._onObjectXrayed=this._viewer.scene.on("objectXRayed",(e=>{if(this._muteSceneEvents)return;const t=e.id,i=this._objectNodes[t];if(!i)return;this._muteTreeEvents=!0;const s=e.xrayed;s!==i.xrayed&&(i.xrayed=s,this._renderService.setXRayed(i.nodeId,s),this._muteTreeEvents=!1)})),this._switchExpandHandler=e=>{e.preventDefault(),e.stopPropagation();const t=e.target;this._expandSwitchElement(t)},this._switchCollapseHandler=e=>{e.preventDefault(),e.stopPropagation();const t=e.target;this._collapseSwitchElement(t)},this._checkboxChangeHandler=e=>{if(this._muteTreeEvents)return;this._muteSceneEvents=!0;const t=e.target,i=this._renderService.isChecked(t),s=this._renderService.getIdFromCheckbox(t),r=this._nodeNodes[s],o=this._viewer.scene.objects;let n=0;this._withNodeTree(r,(e=>{const t=e.objectId,s=o[t],r=0===e.children.length;e.numVisibleEntities=i?e.numEntities:0,r&&i!==e.checked&&n++,e.checked=i,this._renderService.setCheckbox(e.nodeId,i),s&&(s.visible=i)}));let a=r.parent;for(;a;)a.checked=i,i?a.numVisibleEntities+=n:a.numVisibleEntities-=n,this._renderService.setCheckbox(a.nodeId,a.numVisibleEntities>0),a=a.parent;this._muteSceneEvents=!1},this._hierarchy=t.hierarchy||"containment",this._autoExpandDepth=t.autoExpandDepth||0,this._autoAddModels){const e=Object.keys(this.viewer.metaScene.metaModels);for(let t=0,i=e.length;t{this.viewer.metaScene.metaModels[e]&&this.addModel(e)}))}this.hierarchy=t.hierarchy}else this.error("Mandatory config expected: valid containerElementId or containerElement")}set hierarchy(e){"containment"!==(e=e||"containment")&&"storeys"!==e&&"types"!==e&&(this.error("Unsupported value for `hierarchy' - defaulting to 'containment'"),e="containment"),this._hierarchy!==e&&(this._hierarchy=e,this._createNodes())}get hierarchy(){return this._hierarchy}addModel(e,t={}){if(!this._containerElement)return;const i=this.viewer.scene.models[e];if(!i)throw"Model not found: "+e;const s=this.viewer.metaScene.metaModels[e];s?this._metaModels[e]?this.warn("Model already added: "+e):(this._metaModels[e]=s,t&&t.rootName&&(this._rootNames[e]=t.rootName),i.on("destroyed",(()=>{this.removeModel(i.id)})),this._createNodes()):this.error("MetaModel not found: "+e)}removeModel(e){if(!this._containerElement)return;this._metaModels[e]&&(this._rootNames[e]&&delete this._rootNames[e],delete this._metaModels[e],this._createNodes())}showNode(e){this.unShowNode();const t=this._objectNodes[e];if(!t)return;const i=t.nodeId,s=this._renderService.getSwitchElement(i);if(s)return this._expandSwitchElement(s),s.scrollIntoView(),!0;const r=[];r.unshift(t);let o=t.parent;for(;o;)r.unshift(o),o=o.parent;for(let e=0,t=r.length;e{if(s===e)return;const r=this._renderService.getSwitchElement(i.nodeId);if(r){this._expandSwitchElement(r);const e=i.children;for(var o=0,n=e.length;o0;return this.valid}_validateMetaModelForStoreysHierarchy(e=0,t,i){return!0}_createEnabledNodes(){switch(this._pruneEmptyNodes&&this._findEmptyNodes(),this._hierarchy){case"storeys":this._createStoreysNodes(),0===this._rootNodes.length&&this.error("Failed to build storeys hierarchy");break;case"types":this._createTypesNodes();break;default:this._createContainmentNodes()}this._sortNodes&&this._doSortNodes(),this._synchNodesToEntities(),this._createTrees(),this.expandToDepth(this._autoExpandDepth)}_createDisabledNodes(){const e=this._renderService.createRootNode();this._rootElement=e,this._containerElement.appendChild(e);const t=this._viewer.metaScene.rootMetaObjects;for(let i in t){const s=t[i],r=s.type,o=s.name,n=o&&""!==o&&"Undefined"!==o&&"Default"!==o?o:r,a=this._renderService.createDisabledNodeElement(n);e.appendChild(a)}}_findEmptyNodes(){const e=this._viewer.metaScene.rootMetaObjects;for(let t in e)this._findEmptyNodes2(e[t])}_findEmptyNodes2(e,t=0){const i=this.viewer.scene,s=e.children,r=e.id,o=i.objects[r];if(e._countEntities=0,o&&e._countEntities++,s)for(let t=0,i=s.length;t{e.aabb&&r.aabb||(e.aabb||(e.aabb=t.getAABB(s.getObjectIDsInSubtree(e.objectId))),r.aabb||(r.aabb=t.getAABB(s.getObjectIDsInSubtree(r.objectId))));let o=0;return o=i.xUp?0:i.yUp?1:2,e.aabb[o]>r.aabb[o]?-1:e.aabb[o]s?1:0}_synchNodesToEntities(){const e=Object.keys(this.viewer.metaScene.metaObjects),t=this._viewer.metaScene.metaObjects,i=this._viewer.scene.objects;for(let s=0,r=e.length;sthis._createNodeElement(e))),t=this._renderService.createRootNode();e.forEach((e=>{t.appendChild(e)})),this._containerElement.appendChild(t),this._rootElement=t}_createNodeElement(e){return this._renderService.createNodeElement(e,this._switchExpandHandler,this._checkboxChangeHandler,(t=>{this.fire("contextmenu",{event:t,viewer:this._viewer,treeViewPlugin:this,treeViewNode:e}),t.preventDefault()}),(t=>{this.fire("nodeTitleClicked",{event:t,viewer:this._viewer,treeViewPlugin:this,treeViewNode:e}),t.preventDefault()}))}_expandSwitchElement(e){if(this._renderService.isExpanded(e))return;const t=this._renderService.getId(e),i=this._nodeNodes[t].children.map((e=>this._createNodeElement(e)));this._renderService.addChildren(e,i),this._renderService.expand(e,this._switchExpandHandler,this._switchCollapseHandler)}_collapseNode(e){const t=this._renderService.getSwitchElement(e);this._collapseSwitchElement(t)}_collapseSwitchElement(e){this._renderService.collapse(e,this._switchExpandHandler,this._switchCollapseHandler)}}class wb{constructor(){}getManifest(e,t,i){_.loadJSON(e,(e=>{t(e)}),(function(e){i(e)}))}getMetaModel(e,t,i){_.loadJSON(e,(e=>{t(e)}),(function(e){i(e)}))}getXKT(e,t,i){var s=()=>{};t=t||s,i=i||s;const r=e.match(/^data:(.*?)(;base64)?,(.*)$/);if(r){const e=!!r[2];var o=r[3];o=window.decodeURIComponent(o),e&&(o=window.atob(o));try{const e=new ArrayBuffer(o.length),i=new Uint8Array(e);for(var n=0;n=0;)e[t]=0}const i=new Uint8Array([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0]),s=new Uint8Array([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13]),r=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]),o=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),n=new Array(576);t(n);const a=new Array(60);t(a);const l=new Array(512);t(l);const A=new Array(256);t(A);const h=new Array(29);t(h);const c=new Array(30);function u(e,t,i,s,r){this.static_tree=e,this.extra_bits=t,this.extra_base=i,this.elems=s,this.max_length=r,this.has_stree=e&&e.length}let d,p,g;function m(e,t){this.dyn_tree=e,this.max_code=0,this.stat_desc=t}t(c);const f=e=>e<256?l[e]:l[256+(e>>>7)],_=(e,t)=>{e.pending_buf[e.pending++]=255&t,e.pending_buf[e.pending++]=t>>>8&255},v=(e,t,i)=>{e.bi_valid>16-i?(e.bi_buf|=t<>16-e.bi_valid,e.bi_valid+=i-16):(e.bi_buf|=t<{v(e,i[2*t],i[2*t+1])},x=(e,t)=>{let i=0;do{i|=1&e,e>>>=1,i<<=1}while(--t>0);return i>>>1},w=(e,t,i)=>{const s=new Array(16);let r,o,n=0;for(r=1;r<=15;r++)n=n+i[r-1]<<1,s[r]=n;for(o=0;o<=t;o++){let t=e[2*o+1];0!==t&&(e[2*o]=x(s[t]++,t))}},y=e=>{let t;for(t=0;t<286;t++)e.dyn_ltree[2*t]=0;for(t=0;t<30;t++)e.dyn_dtree[2*t]=0;for(t=0;t<19;t++)e.bl_tree[2*t]=0;e.dyn_ltree[512]=1,e.opt_len=e.static_len=0,e.sym_next=e.matches=0},P=e=>{e.bi_valid>8?_(e,e.bi_buf):e.bi_valid>0&&(e.pending_buf[e.pending++]=e.bi_buf),e.bi_buf=0,e.bi_valid=0},B=(e,t,i,s)=>{const r=2*t,o=2*i;return e[r]{const s=e.heap[i];let r=i<<1;for(;r<=e.heap_len&&(r{let o,n,a,l,u=0;if(0!==e.sym_next)do{o=255&e.pending_buf[e.sym_buf+u++],o+=(255&e.pending_buf[e.sym_buf+u++])<<8,n=e.pending_buf[e.sym_buf+u++],0===o?b(e,n,t):(a=A[n],b(e,a+256+1,t),l=i[a],0!==l&&(n-=h[a],v(e,n,l)),o--,a=f(o),b(e,a,r),l=s[a],0!==l&&(o-=c[a],v(e,o,l)))}while(u{const i=t.dyn_tree,s=t.stat_desc.static_tree,r=t.stat_desc.has_stree,o=t.stat_desc.elems;let n,a,l,A=-1;for(e.heap_len=0,e.heap_max=573,n=0;n>1;n>=1;n--)C(e,i,n);l=o;do{n=e.heap[1],e.heap[1]=e.heap[e.heap_len--],C(e,i,1),a=e.heap[1],e.heap[--e.heap_max]=n,e.heap[--e.heap_max]=a,i[2*l]=i[2*n]+i[2*a],e.depth[l]=(e.depth[n]>=e.depth[a]?e.depth[n]:e.depth[a])+1,i[2*n+1]=i[2*a+1]=l,e.heap[1]=l++,C(e,i,1)}while(e.heap_len>=2);e.heap[--e.heap_max]=e.heap[1],((e,t)=>{const i=t.dyn_tree,s=t.max_code,r=t.stat_desc.static_tree,o=t.stat_desc.has_stree,n=t.stat_desc.extra_bits,a=t.stat_desc.extra_base,l=t.stat_desc.max_length;let A,h,c,u,d,p,g=0;for(u=0;u<=15;u++)e.bl_count[u]=0;for(i[2*e.heap[e.heap_max]+1]=0,A=e.heap_max+1;A<573;A++)h=e.heap[A],u=i[2*i[2*h+1]+1]+1,u>l&&(u=l,g++),i[2*h+1]=u,h>s||(e.bl_count[u]++,d=0,h>=a&&(d=n[h-a]),p=i[2*h],e.opt_len+=p*(u+d),o&&(e.static_len+=p*(r[2*h+1]+d)));if(0!==g){do{for(u=l-1;0===e.bl_count[u];)u--;e.bl_count[u]--,e.bl_count[u+1]+=2,e.bl_count[l]--,g-=2}while(g>0);for(u=l;0!==u;u--)for(h=e.bl_count[u];0!==h;)c=e.heap[--A],c>s||(i[2*c+1]!==u&&(e.opt_len+=(u-i[2*c+1])*i[2*c],i[2*c+1]=u),h--)}})(e,t),w(i,A,e.bl_count)},F=(e,t,i)=>{let s,r,o=-1,n=t[1],a=0,l=7,A=4;for(0===n&&(l=138,A=3),t[2*(i+1)+1]=65535,s=0;s<=i;s++)r=n,n=t[2*(s+1)+1],++a{let s,r,o=-1,n=t[1],a=0,l=7,A=4;for(0===n&&(l=138,A=3),s=0;s<=i;s++)if(r=n,n=t[2*(s+1)+1],!(++a{v(e,0+(s?1:0),3),P(e),_(e,i),_(e,~i),i&&e.pending_buf.set(e.window.subarray(t,t+i),e.pending),e.pending+=i};var T={_tr_init:e=>{D||((()=>{let e,t,o,m,f;const _=new Array(16);for(o=0,m=0;m<28;m++)for(h[m]=o,e=0;e<1<>=7;m<30;m++)for(c[m]=f<<7,e=0;e<1<{let r,l,A=0;e.level>0?(2===e.strm.data_type&&(e.strm.data_type=(e=>{let t,i=4093624447;for(t=0;t<=31;t++,i>>>=1)if(1&i&&0!==e.dyn_ltree[2*t])return 0;if(0!==e.dyn_ltree[18]||0!==e.dyn_ltree[20]||0!==e.dyn_ltree[26])return 1;for(t=32;t<256;t++)if(0!==e.dyn_ltree[2*t])return 1;return 0})(e)),E(e,e.l_desc),E(e,e.d_desc),A=(e=>{let t;for(F(e,e.dyn_ltree,e.l_desc.max_code),F(e,e.dyn_dtree,e.d_desc.max_code),E(e,e.bl_desc),t=18;t>=3&&0===e.bl_tree[2*o[t]+1];t--);return e.opt_len+=3*(t+1)+5+5+4,t})(e),r=e.opt_len+3+7>>>3,l=e.static_len+3+7>>>3,l<=r&&(r=l)):r=l=i+5,i+4<=r&&-1!==t?S(e,t,i,s):4===e.strategy||l===r?(v(e,2+(s?1:0),3),M(e,n,a)):(v(e,4+(s?1:0),3),((e,t,i,s)=>{let r;for(v(e,t-257,5),v(e,i-1,5),v(e,s-4,4),r=0;r(e.pending_buf[e.sym_buf+e.sym_next++]=t,e.pending_buf[e.sym_buf+e.sym_next++]=t>>8,e.pending_buf[e.sym_buf+e.sym_next++]=i,0===t?e.dyn_ltree[2*i]++:(e.matches++,t--,e.dyn_ltree[2*(A[i]+256+1)]++,e.dyn_dtree[2*f(t)]++),e.sym_next===e.sym_end),_tr_align:e=>{v(e,2,3),b(e,256,n),(e=>{16===e.bi_valid?(_(e,e.bi_buf),e.bi_buf=0,e.bi_valid=0):e.bi_valid>=8&&(e.pending_buf[e.pending++]=255&e.bi_buf,e.bi_buf>>=8,e.bi_valid-=8)})(e)}},R=(e,t,i,s)=>{let r=65535&e|0,o=e>>>16&65535|0,n=0;for(;0!==i;){n=i>2e3?2e3:i,i-=n;do{r=r+t[s++]|0,o=o+r|0}while(--n);r%=65521,o%=65521}return r|o<<16|0};const L=new Uint32Array((()=>{let e,t=[];for(var i=0;i<256;i++){e=i;for(var s=0;s<8;s++)e=1&e?3988292384^e>>>1:e>>>1;t[i]=e}return t})());var U=(e,t,i,s)=>{const r=L,o=s+i;e^=-1;for(let i=s;i>>8^r[255&(e^t[i])];return-1^e},k={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"},O={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_MEM_ERROR:-4,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8};const{_tr_init:N,_tr_stored_block:Q,_tr_flush_block:V,_tr_tally:j,_tr_align:H}=T,{Z_NO_FLUSH:z,Z_PARTIAL_FLUSH:G,Z_FULL_FLUSH:W,Z_FINISH:K,Z_BLOCK:X,Z_OK:Y,Z_STREAM_END:q,Z_STREAM_ERROR:Z,Z_DATA_ERROR:J,Z_BUF_ERROR:$,Z_DEFAULT_COMPRESSION:ee,Z_FILTERED:te,Z_HUFFMAN_ONLY:ie,Z_RLE:se,Z_FIXED:re,Z_DEFAULT_STRATEGY:oe,Z_UNKNOWN:ne,Z_DEFLATED:ae}=O,le=258,Ae=262,he=42,ce=113,ue=666,de=(e,t)=>(e.msg=k[t],t),pe=e=>2*e-(e>4?9:0),ge=e=>{let t=e.length;for(;--t>=0;)e[t]=0},me=e=>{let t,i,s,r=e.w_size;t=e.hash_size,s=t;do{i=e.head[--s],e.head[s]=i>=r?i-r:0}while(--t);t=r,s=t;do{i=e.prev[--s],e.prev[s]=i>=r?i-r:0}while(--t)};let fe=(e,t,i)=>(t<{const t=e.state;let i=t.pending;i>e.avail_out&&(i=e.avail_out),0!==i&&(e.output.set(t.pending_buf.subarray(t.pending_out,t.pending_out+i),e.next_out),e.next_out+=i,t.pending_out+=i,e.total_out+=i,e.avail_out-=i,t.pending-=i,0===t.pending&&(t.pending_out=0))},ve=(e,t)=>{V(e,e.block_start>=0?e.block_start:-1,e.strstart-e.block_start,t),e.block_start=e.strstart,_e(e.strm)},be=(e,t)=>{e.pending_buf[e.pending++]=t},xe=(e,t)=>{e.pending_buf[e.pending++]=t>>>8&255,e.pending_buf[e.pending++]=255&t},we=(e,t,i,s)=>{let r=e.avail_in;return r>s&&(r=s),0===r?0:(e.avail_in-=r,t.set(e.input.subarray(e.next_in,e.next_in+r),i),1===e.state.wrap?e.adler=R(e.adler,t,r,i):2===e.state.wrap&&(e.adler=U(e.adler,t,r,i)),e.next_in+=r,e.total_in+=r,r)},ye=(e,t)=>{let i,s,r=e.max_chain_length,o=e.strstart,n=e.prev_length,a=e.nice_match;const l=e.strstart>e.w_size-Ae?e.strstart-(e.w_size-Ae):0,A=e.window,h=e.w_mask,c=e.prev,u=e.strstart+le;let d=A[o+n-1],p=A[o+n];e.prev_length>=e.good_match&&(r>>=2),a>e.lookahead&&(a=e.lookahead);do{if(i=t,A[i+n]===p&&A[i+n-1]===d&&A[i]===A[o]&&A[++i]===A[o+1]){o+=2,i++;do{}while(A[++o]===A[++i]&&A[++o]===A[++i]&&A[++o]===A[++i]&&A[++o]===A[++i]&&A[++o]===A[++i]&&A[++o]===A[++i]&&A[++o]===A[++i]&&A[++o]===A[++i]&&on){if(e.match_start=t,n=s,s>=a)break;d=A[o+n-1],p=A[o+n]}}}while((t=c[t&h])>l&&0!=--r);return n<=e.lookahead?n:e.lookahead},Pe=e=>{const t=e.w_size;let i,s,r;do{if(s=e.window_size-e.lookahead-e.strstart,e.strstart>=t+(t-Ae)&&(e.window.set(e.window.subarray(t,t+t-s),0),e.match_start-=t,e.strstart-=t,e.block_start-=t,e.insert>e.strstart&&(e.insert=e.strstart),me(e),s+=t),0===e.strm.avail_in)break;if(i=we(e.strm,e.window,e.strstart+e.lookahead,s),e.lookahead+=i,e.lookahead+e.insert>=3)for(r=e.strstart-e.insert,e.ins_h=e.window[r],e.ins_h=fe(e,e.ins_h,e.window[r+1]);e.insert&&(e.ins_h=fe(e,e.ins_h,e.window[r+3-1]),e.prev[r&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=r,r++,e.insert--,!(e.lookahead+e.insert<3)););}while(e.lookahead{let i,s,r,o=e.pending_buf_size-5>e.w_size?e.w_size:e.pending_buf_size-5,n=0,a=e.strm.avail_in;do{if(i=65535,r=e.bi_valid+42>>3,e.strm.avail_outs+e.strm.avail_in&&(i=s+e.strm.avail_in),i>r&&(i=r),i>8,e.pending_buf[e.pending-2]=~i,e.pending_buf[e.pending-1]=~i>>8,_e(e.strm),s&&(s>i&&(s=i),e.strm.output.set(e.window.subarray(e.block_start,e.block_start+s),e.strm.next_out),e.strm.next_out+=s,e.strm.avail_out-=s,e.strm.total_out+=s,e.block_start+=s,i-=s),i&&(we(e.strm,e.strm.output,e.strm.next_out,i),e.strm.next_out+=i,e.strm.avail_out-=i,e.strm.total_out+=i)}while(0===n);return a-=e.strm.avail_in,a&&(a>=e.w_size?(e.matches=2,e.window.set(e.strm.input.subarray(e.strm.next_in-e.w_size,e.strm.next_in),0),e.strstart=e.w_size,e.insert=e.strstart):(e.window_size-e.strstart<=a&&(e.strstart-=e.w_size,e.window.set(e.window.subarray(e.w_size,e.w_size+e.strstart),0),e.matches<2&&e.matches++,e.insert>e.strstart&&(e.insert=e.strstart)),e.window.set(e.strm.input.subarray(e.strm.next_in-a,e.strm.next_in),e.strstart),e.strstart+=a,e.insert+=a>e.w_size-e.insert?e.w_size-e.insert:a),e.block_start=e.strstart),e.high_waterr&&e.block_start>=e.w_size&&(e.block_start-=e.w_size,e.strstart-=e.w_size,e.window.set(e.window.subarray(e.w_size,e.w_size+e.strstart),0),e.matches<2&&e.matches++,r+=e.w_size,e.insert>e.strstart&&(e.insert=e.strstart)),r>e.strm.avail_in&&(r=e.strm.avail_in),r&&(we(e.strm,e.window,e.strstart,r),e.strstart+=r,e.insert+=r>e.w_size-e.insert?e.w_size-e.insert:r),e.high_water>3,r=e.pending_buf_size-r>65535?65535:e.pending_buf_size-r,o=r>e.w_size?e.w_size:r,s=e.strstart-e.block_start,(s>=o||(s||t===K)&&t!==z&&0===e.strm.avail_in&&s<=r)&&(i=s>r?r:s,n=t===K&&0===e.strm.avail_in&&i===s?1:0,Q(e,e.block_start,i,n),e.block_start+=i,_e(e.strm)),n?3:1)},Ce=(e,t)=>{let i,s;for(;;){if(e.lookahead=3&&(e.ins_h=fe(e,e.ins_h,e.window[e.strstart+3-1]),i=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),0!==i&&e.strstart-i<=e.w_size-Ae&&(e.match_length=ye(e,i)),e.match_length>=3)if(s=j(e,e.strstart-e.match_start,e.match_length-3),e.lookahead-=e.match_length,e.match_length<=e.max_lazy_match&&e.lookahead>=3){e.match_length--;do{e.strstart++,e.ins_h=fe(e,e.ins_h,e.window[e.strstart+3-1]),i=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart}while(0!=--e.match_length);e.strstart++}else e.strstart+=e.match_length,e.match_length=0,e.ins_h=e.window[e.strstart],e.ins_h=fe(e,e.ins_h,e.window[e.strstart+1]);else s=j(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++;if(s&&(ve(e,!1),0===e.strm.avail_out))return 1}return e.insert=e.strstart<2?e.strstart:2,t===K?(ve(e,!0),0===e.strm.avail_out?3:4):e.sym_next&&(ve(e,!1),0===e.strm.avail_out)?1:2},Me=(e,t)=>{let i,s,r;for(;;){if(e.lookahead=3&&(e.ins_h=fe(e,e.ins_h,e.window[e.strstart+3-1]),i=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),e.prev_length=e.match_length,e.prev_match=e.match_start,e.match_length=2,0!==i&&e.prev_length4096)&&(e.match_length=2)),e.prev_length>=3&&e.match_length<=e.prev_length){r=e.strstart+e.lookahead-3,s=j(e,e.strstart-1-e.prev_match,e.prev_length-3),e.lookahead-=e.prev_length-1,e.prev_length-=2;do{++e.strstart<=r&&(e.ins_h=fe(e,e.ins_h,e.window[e.strstart+3-1]),i=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart)}while(0!=--e.prev_length);if(e.match_available=0,e.match_length=2,e.strstart++,s&&(ve(e,!1),0===e.strm.avail_out))return 1}else if(e.match_available){if(s=j(e,0,e.window[e.strstart-1]),s&&ve(e,!1),e.strstart++,e.lookahead--,0===e.strm.avail_out)return 1}else e.match_available=1,e.strstart++,e.lookahead--}return e.match_available&&(s=j(e,0,e.window[e.strstart-1]),e.match_available=0),e.insert=e.strstart<2?e.strstart:2,t===K?(ve(e,!0),0===e.strm.avail_out?3:4):e.sym_next&&(ve(e,!1),0===e.strm.avail_out)?1:2};function Ee(e,t,i,s,r){this.good_length=e,this.max_lazy=t,this.nice_length=i,this.max_chain=s,this.func=r}const Fe=[new Ee(0,0,0,0,Be),new Ee(4,4,8,4,Ce),new Ee(4,5,16,8,Ce),new Ee(4,6,32,32,Ce),new Ee(4,4,16,16,Me),new Ee(8,16,32,32,Me),new Ee(8,16,128,128,Me),new Ee(8,32,128,256,Me),new Ee(32,128,258,1024,Me),new Ee(32,258,258,4096,Me)];function Ie(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=ae,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new Uint16Array(1146),this.dyn_dtree=new Uint16Array(122),this.bl_tree=new Uint16Array(78),ge(this.dyn_ltree),ge(this.dyn_dtree),ge(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new Uint16Array(16),this.heap=new Uint16Array(573),ge(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new Uint16Array(573),ge(this.depth),this.sym_buf=0,this.lit_bufsize=0,this.sym_next=0,this.sym_end=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}const De=e=>{if(!e)return 1;const t=e.state;return!t||t.strm!==e||t.status!==he&&57!==t.status&&69!==t.status&&73!==t.status&&91!==t.status&&103!==t.status&&t.status!==ce&&t.status!==ue?1:0},Se=e=>{if(De(e))return de(e,Z);e.total_in=e.total_out=0,e.data_type=ne;const t=e.state;return t.pending=0,t.pending_out=0,t.wrap<0&&(t.wrap=-t.wrap),t.status=2===t.wrap?57:t.wrap?he:ce,e.adler=2===t.wrap?0:1,t.last_flush=-2,N(t),Y},Te=e=>{const t=Se(e);var i;return t===Y&&((i=e.state).window_size=2*i.w_size,ge(i.head),i.max_lazy_match=Fe[i.level].max_lazy,i.good_match=Fe[i.level].good_length,i.nice_match=Fe[i.level].nice_length,i.max_chain_length=Fe[i.level].max_chain,i.strstart=0,i.block_start=0,i.lookahead=0,i.insert=0,i.match_length=i.prev_length=2,i.match_available=0,i.ins_h=0),t},Re=(e,t,i,s,r,o)=>{if(!e)return Z;let n=1;if(t===ee&&(t=6),s<0?(n=0,s=-s):s>15&&(n=2,s-=16),r<1||r>9||i!==ae||s<8||s>15||t<0||t>9||o<0||o>re||8===s&&1!==n)return de(e,Z);8===s&&(s=9);const a=new Ie;return e.state=a,a.strm=e,a.status=he,a.wrap=n,a.gzhead=null,a.w_bits=s,a.w_size=1<De(e)||2!==e.state.wrap?Z:(e.state.gzhead=t,Y),ke=(e,t)=>{if(De(e)||t>X||t<0)return e?de(e,Z):Z;const i=e.state;if(!e.output||0!==e.avail_in&&!e.input||i.status===ue&&t!==K)return de(e,0===e.avail_out?$:Z);const s=i.last_flush;if(i.last_flush=t,0!==i.pending){if(_e(e),0===e.avail_out)return i.last_flush=-1,Y}else if(0===e.avail_in&&pe(t)<=pe(s)&&t!==K)return de(e,$);if(i.status===ue&&0!==e.avail_in)return de(e,$);if(i.status===he&&0===i.wrap&&(i.status=ce),i.status===he){let t=ae+(i.w_bits-8<<4)<<8,s=-1;if(s=i.strategy>=ie||i.level<2?0:i.level<6?1:6===i.level?2:3,t|=s<<6,0!==i.strstart&&(t|=32),t+=31-t%31,xe(i,t),0!==i.strstart&&(xe(i,e.adler>>>16),xe(i,65535&e.adler)),e.adler=1,i.status=ce,_e(e),0!==i.pending)return i.last_flush=-1,Y}if(57===i.status)if(e.adler=0,be(i,31),be(i,139),be(i,8),i.gzhead)be(i,(i.gzhead.text?1:0)+(i.gzhead.hcrc?2:0)+(i.gzhead.extra?4:0)+(i.gzhead.name?8:0)+(i.gzhead.comment?16:0)),be(i,255&i.gzhead.time),be(i,i.gzhead.time>>8&255),be(i,i.gzhead.time>>16&255),be(i,i.gzhead.time>>24&255),be(i,9===i.level?2:i.strategy>=ie||i.level<2?4:0),be(i,255&i.gzhead.os),i.gzhead.extra&&i.gzhead.extra.length&&(be(i,255&i.gzhead.extra.length),be(i,i.gzhead.extra.length>>8&255)),i.gzhead.hcrc&&(e.adler=U(e.adler,i.pending_buf,i.pending,0)),i.gzindex=0,i.status=69;else if(be(i,0),be(i,0),be(i,0),be(i,0),be(i,0),be(i,9===i.level?2:i.strategy>=ie||i.level<2?4:0),be(i,3),i.status=ce,_e(e),0!==i.pending)return i.last_flush=-1,Y;if(69===i.status){if(i.gzhead.extra){let t=i.pending,s=(65535&i.gzhead.extra.length)-i.gzindex;for(;i.pending+s>i.pending_buf_size;){let r=i.pending_buf_size-i.pending;if(i.pending_buf.set(i.gzhead.extra.subarray(i.gzindex,i.gzindex+r),i.pending),i.pending=i.pending_buf_size,i.gzhead.hcrc&&i.pending>t&&(e.adler=U(e.adler,i.pending_buf,i.pending-t,t)),i.gzindex+=r,_e(e),0!==i.pending)return i.last_flush=-1,Y;t=0,s-=r}let r=new Uint8Array(i.gzhead.extra);i.pending_buf.set(r.subarray(i.gzindex,i.gzindex+s),i.pending),i.pending+=s,i.gzhead.hcrc&&i.pending>t&&(e.adler=U(e.adler,i.pending_buf,i.pending-t,t)),i.gzindex=0}i.status=73}if(73===i.status){if(i.gzhead.name){let t,s=i.pending;do{if(i.pending===i.pending_buf_size){if(i.gzhead.hcrc&&i.pending>s&&(e.adler=U(e.adler,i.pending_buf,i.pending-s,s)),_e(e),0!==i.pending)return i.last_flush=-1,Y;s=0}t=i.gzindexs&&(e.adler=U(e.adler,i.pending_buf,i.pending-s,s)),i.gzindex=0}i.status=91}if(91===i.status){if(i.gzhead.comment){let t,s=i.pending;do{if(i.pending===i.pending_buf_size){if(i.gzhead.hcrc&&i.pending>s&&(e.adler=U(e.adler,i.pending_buf,i.pending-s,s)),_e(e),0!==i.pending)return i.last_flush=-1,Y;s=0}t=i.gzindexs&&(e.adler=U(e.adler,i.pending_buf,i.pending-s,s))}i.status=103}if(103===i.status){if(i.gzhead.hcrc){if(i.pending+2>i.pending_buf_size&&(_e(e),0!==i.pending))return i.last_flush=-1,Y;be(i,255&e.adler),be(i,e.adler>>8&255),e.adler=0}if(i.status=ce,_e(e),0!==i.pending)return i.last_flush=-1,Y}if(0!==e.avail_in||0!==i.lookahead||t!==z&&i.status!==ue){let s=0===i.level?Be(i,t):i.strategy===ie?((e,t)=>{let i;for(;;){if(0===e.lookahead&&(Pe(e),0===e.lookahead)){if(t===z)return 1;break}if(e.match_length=0,i=j(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++,i&&(ve(e,!1),0===e.strm.avail_out))return 1}return e.insert=0,t===K?(ve(e,!0),0===e.strm.avail_out?3:4):e.sym_next&&(ve(e,!1),0===e.strm.avail_out)?1:2})(i,t):i.strategy===se?((e,t)=>{let i,s,r,o;const n=e.window;for(;;){if(e.lookahead<=le){if(Pe(e),e.lookahead<=le&&t===z)return 1;if(0===e.lookahead)break}if(e.match_length=0,e.lookahead>=3&&e.strstart>0&&(r=e.strstart-1,s=n[r],s===n[++r]&&s===n[++r]&&s===n[++r])){o=e.strstart+le;do{}while(s===n[++r]&&s===n[++r]&&s===n[++r]&&s===n[++r]&&s===n[++r]&&s===n[++r]&&s===n[++r]&&s===n[++r]&&re.lookahead&&(e.match_length=e.lookahead)}if(e.match_length>=3?(i=j(e,1,e.match_length-3),e.lookahead-=e.match_length,e.strstart+=e.match_length,e.match_length=0):(i=j(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++),i&&(ve(e,!1),0===e.strm.avail_out))return 1}return e.insert=0,t===K?(ve(e,!0),0===e.strm.avail_out?3:4):e.sym_next&&(ve(e,!1),0===e.strm.avail_out)?1:2})(i,t):Fe[i.level].func(i,t);if(3!==s&&4!==s||(i.status=ue),1===s||3===s)return 0===e.avail_out&&(i.last_flush=-1),Y;if(2===s&&(t===G?H(i):t!==X&&(Q(i,0,0,!1),t===W&&(ge(i.head),0===i.lookahead&&(i.strstart=0,i.block_start=0,i.insert=0))),_e(e),0===e.avail_out))return i.last_flush=-1,Y}return t!==K?Y:i.wrap<=0?q:(2===i.wrap?(be(i,255&e.adler),be(i,e.adler>>8&255),be(i,e.adler>>16&255),be(i,e.adler>>24&255),be(i,255&e.total_in),be(i,e.total_in>>8&255),be(i,e.total_in>>16&255),be(i,e.total_in>>24&255)):(xe(i,e.adler>>>16),xe(i,65535&e.adler)),_e(e),i.wrap>0&&(i.wrap=-i.wrap),0!==i.pending?Y:q)},Oe=e=>{if(De(e))return Z;const t=e.state.status;return e.state=null,t===ce?de(e,J):Y},Ne=(e,t)=>{let i=t.length;if(De(e))return Z;const s=e.state,r=s.wrap;if(2===r||1===r&&s.status!==he||s.lookahead)return Z;if(1===r&&(e.adler=R(e.adler,t,i,0)),s.wrap=0,i>=s.w_size){0===r&&(ge(s.head),s.strstart=0,s.block_start=0,s.insert=0);let e=new Uint8Array(s.w_size);e.set(t.subarray(i-s.w_size,i),0),t=e,i=s.w_size}const o=e.avail_in,n=e.next_in,a=e.input;for(e.avail_in=i,e.next_in=0,e.input=t,Pe(s);s.lookahead>=3;){let e=s.strstart,t=s.lookahead-2;do{s.ins_h=fe(s,s.ins_h,s.window[e+3-1]),s.prev[e&s.w_mask]=s.head[s.ins_h],s.head[s.ins_h]=e,e++}while(--t);s.strstart=e,s.lookahead=2,Pe(s)}return s.strstart+=s.lookahead,s.block_start=s.strstart,s.insert=s.lookahead,s.lookahead=0,s.match_length=s.prev_length=2,s.match_available=0,e.next_in=n,e.input=a,e.avail_in=o,s.wrap=r,Y};const Qe=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var Ve=function(e){const t=Array.prototype.slice.call(arguments,1);for(;t.length;){const i=t.shift();if(i){if("object"!=typeof i)throw new TypeError(i+"must be non-object");for(const t in i)Qe(i,t)&&(e[t]=i[t])}}return e},je=e=>{let t=0;for(let i=0,s=e.length;i=252?6:e>=248?5:e>=240?4:e>=224?3:e>=192?2:1;ze[254]=ze[254]=1;var Ge=e=>{if("function"==typeof TextEncoder&&TextEncoder.prototype.encode)return(new TextEncoder).encode(e);let t,i,s,r,o,n=e.length,a=0;for(r=0;r>>6,t[o++]=128|63&i):i<65536?(t[o++]=224|i>>>12,t[o++]=128|i>>>6&63,t[o++]=128|63&i):(t[o++]=240|i>>>18,t[o++]=128|i>>>12&63,t[o++]=128|i>>>6&63,t[o++]=128|63&i);return t},We=(e,t)=>{const i=t||e.length;if("function"==typeof TextDecoder&&TextDecoder.prototype.decode)return(new TextDecoder).decode(e.subarray(0,t));let s,r;const o=new Array(2*i);for(r=0,s=0;s4)o[r++]=65533,s+=n-1;else{for(t&=2===n?31:3===n?15:7;n>1&&s1?o[r++]=65533:t<65536?o[r++]=t:(t-=65536,o[r++]=55296|t>>10&1023,o[r++]=56320|1023&t)}}return((e,t)=>{if(t<65534&&e.subarray&&He)return String.fromCharCode.apply(null,e.length===t?e:e.subarray(0,t));let i="";for(let s=0;s{(t=t||e.length)>e.length&&(t=e.length);let i=t-1;for(;i>=0&&128==(192&e[i]);)i--;return i<0||0===i?t:i+ze[e[i]]>t?i:t},Xe=function(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0};const Ye=Object.prototype.toString,{Z_NO_FLUSH:qe,Z_SYNC_FLUSH:Ze,Z_FULL_FLUSH:Je,Z_FINISH:$e,Z_OK:et,Z_STREAM_END:tt,Z_DEFAULT_COMPRESSION:it,Z_DEFAULT_STRATEGY:st,Z_DEFLATED:rt}=O;function ot(e){this.options=Ve({level:it,method:rt,chunkSize:16384,windowBits:15,memLevel:8,strategy:st},e||{});let t=this.options;t.raw&&t.windowBits>0?t.windowBits=-t.windowBits:t.gzip&&t.windowBits>0&&t.windowBits<16&&(t.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new Xe,this.strm.avail_out=0;let i=Le(this.strm,t.level,t.method,t.windowBits,t.memLevel,t.strategy);if(i!==et)throw new Error(k[i]);if(t.header&&Ue(this.strm,t.header),t.dictionary){let e;if(e="string"==typeof t.dictionary?Ge(t.dictionary):"[object ArrayBuffer]"===Ye.call(t.dictionary)?new Uint8Array(t.dictionary):t.dictionary,i=Ne(this.strm,e),i!==et)throw new Error(k[i]);this._dict_set=!0}}function nt(e,t){const i=new ot(t);if(i.push(e,!0),i.err)throw i.msg||k[i.err];return i.result}ot.prototype.push=function(e,t){const i=this.strm,s=this.options.chunkSize;let r,o;if(this.ended)return!1;for(o=t===~~t?t:!0===t?$e:qe,"string"==typeof e?i.input=Ge(e):"[object ArrayBuffer]"===Ye.call(e)?i.input=new Uint8Array(e):i.input=e,i.next_in=0,i.avail_in=i.input.length;;)if(0===i.avail_out&&(i.output=new Uint8Array(s),i.next_out=0,i.avail_out=s),(o===Ze||o===Je)&&i.avail_out<=6)this.onData(i.output.subarray(0,i.next_out)),i.avail_out=0;else{if(r=ke(i,o),r===tt)return i.next_out>0&&this.onData(i.output.subarray(0,i.next_out)),r=Oe(this.strm),this.onEnd(r),this.ended=!0,r===et;if(0!==i.avail_out){if(o>0&&i.next_out>0)this.onData(i.output.subarray(0,i.next_out)),i.avail_out=0;else if(0===i.avail_in)break}else this.onData(i.output)}return!0},ot.prototype.onData=function(e){this.chunks.push(e)},ot.prototype.onEnd=function(e){e===et&&(this.result=je(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg};var at={Deflate:ot,deflate:nt,deflateRaw:function(e,t){return(t=t||{}).raw=!0,nt(e,t)},gzip:function(e,t){return(t=t||{}).gzip=!0,nt(e,t)},constants:O};const lt=16209;var At=function(e,t){let i,s,r,o,n,a,l,A,h,c,u,d,p,g,m,f,_,v,b,x,w,y,P,B;const C=e.state;i=e.next_in,P=e.input,s=i+(e.avail_in-5),r=e.next_out,B=e.output,o=r-(t-e.avail_out),n=r+(e.avail_out-257),a=C.dmax,l=C.wsize,A=C.whave,h=C.wnext,c=C.window,u=C.hold,d=C.bits,p=C.lencode,g=C.distcode,m=(1<>>24,u>>>=v,d-=v,v=_>>>16&255,0===v)B[r++]=65535&_;else{if(!(16&v)){if(0==(64&v)){_=p[(65535&_)+(u&(1<>>=v,d-=v),d<15&&(u+=P[i++]<>>24,u>>>=v,d-=v,v=_>>>16&255,!(16&v)){if(0==(64&v)){_=g[(65535&_)+(u&(1<a){e.msg="invalid distance too far back",C.mode=lt;break e}if(u>>>=v,d-=v,v=r-o,x>v){if(v=x-v,v>A&&C.sane){e.msg="invalid distance too far back",C.mode=lt;break e}if(w=0,y=c,0===h){if(w+=l-v,v2;)B[r++]=y[w++],B[r++]=y[w++],B[r++]=y[w++],b-=3;b&&(B[r++]=y[w++],b>1&&(B[r++]=y[w++]))}else{w=r-x;do{B[r++]=B[w++],B[r++]=B[w++],B[r++]=B[w++],b-=3}while(b>2);b&&(B[r++]=B[w++],b>1&&(B[r++]=B[w++]))}break}}break}}while(i>3,i-=b,d-=b<<3,u&=(1<{const l=a.bits;let A,h,c,u,d,p,g=0,m=0,f=0,_=0,v=0,b=0,x=0,w=0,y=0,P=0,B=null;const C=new Uint16Array(16),M=new Uint16Array(16);let E,F,I,D=null;for(g=0;g<=15;g++)C[g]=0;for(m=0;m=1&&0===C[_];_--);if(v>_&&(v=_),0===_)return r[o++]=20971520,r[o++]=20971520,a.bits=1,0;for(f=1;f<_&&0===C[f];f++);for(v0&&(0===e||1!==_))return-1;for(M[1]=0,g=1;g<15;g++)M[g+1]=M[g]+C[g];for(m=0;m852||2===e&&y>592)return 1;for(;;){E=g-x,n[m]+1=p?(F=D[n[m]-p],I=B[n[m]-p]):(F=96,I=0),A=1<>x)+h]=E<<24|F<<16|I|0}while(0!==h);for(A=1<>=1;if(0!==A?(P&=A-1,P+=A):P=0,m++,0==--C[g]){if(g===_)break;g=t[i+n[m]]}if(g>v&&(P&u)!==c){for(0===x&&(x=v),d+=f,b=g-x,w=1<852||2===e&&y>592)return 1;c=P&u,r[c]=v<<24|b<<16|d-o|0}}return 0!==P&&(r[d+P]=g-x<<24|64<<16|0),a.bits=v,0};const{Z_FINISH:gt,Z_BLOCK:mt,Z_TREES:ft,Z_OK:_t,Z_STREAM_END:vt,Z_NEED_DICT:bt,Z_STREAM_ERROR:xt,Z_DATA_ERROR:wt,Z_MEM_ERROR:yt,Z_BUF_ERROR:Pt,Z_DEFLATED:Bt}=O,Ct=16180,Mt=16190,Et=16191,Ft=16192,It=16194,Dt=16199,St=16200,Tt=16206,Rt=16209,Lt=e=>(e>>>24&255)+(e>>>8&65280)+((65280&e)<<8)+((255&e)<<24);function Ut(){this.strm=null,this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new Uint16Array(320),this.work=new Uint16Array(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}const kt=e=>{if(!e)return 1;const t=e.state;return!t||t.strm!==e||t.mode16211?1:0},Ot=e=>{if(kt(e))return xt;const t=e.state;return e.total_in=e.total_out=t.total=0,e.msg="",t.wrap&&(e.adler=1&t.wrap),t.mode=Ct,t.last=0,t.havedict=0,t.flags=-1,t.dmax=32768,t.head=null,t.hold=0,t.bits=0,t.lencode=t.lendyn=new Int32Array(852),t.distcode=t.distdyn=new Int32Array(592),t.sane=1,t.back=-1,_t},Nt=e=>{if(kt(e))return xt;const t=e.state;return t.wsize=0,t.whave=0,t.wnext=0,Ot(e)},Qt=(e,t)=>{let i;if(kt(e))return xt;const s=e.state;return t<0?(i=0,t=-t):(i=5+(t>>4),t<48&&(t&=15)),t&&(t<8||t>15)?xt:(null!==s.window&&s.wbits!==t&&(s.window=null),s.wrap=i,s.wbits=t,Nt(e))},Vt=(e,t)=>{if(!e)return xt;const i=new Ut;e.state=i,i.strm=e,i.window=null,i.mode=Ct;const s=Qt(e,t);return s!==_t&&(e.state=null),s};let jt,Ht,zt=!0;const Gt=e=>{if(zt){jt=new Int32Array(512),Ht=new Int32Array(32);let t=0;for(;t<144;)e.lens[t++]=8;for(;t<256;)e.lens[t++]=9;for(;t<280;)e.lens[t++]=7;for(;t<288;)e.lens[t++]=8;for(pt(1,e.lens,0,288,jt,0,e.work,{bits:9}),t=0;t<32;)e.lens[t++]=5;pt(2,e.lens,0,32,Ht,0,e.work,{bits:5}),zt=!1}e.lencode=jt,e.lenbits=9,e.distcode=Ht,e.distbits=5},Wt=(e,t,i,s)=>{let r;const o=e.state;return null===o.window&&(o.wsize=1<=o.wsize?(o.window.set(t.subarray(i-o.wsize,i),0),o.wnext=0,o.whave=o.wsize):(r=o.wsize-o.wnext,r>s&&(r=s),o.window.set(t.subarray(i-s,i-s+r),o.wnext),(s-=r)?(o.window.set(t.subarray(i-s,i),0),o.wnext=s,o.whave=o.wsize):(o.wnext+=r,o.wnext===o.wsize&&(o.wnext=0),o.whave{let i,s,r,o,n,a,l,A,h,c,u,d,p,g,m,f,_,v,b,x,w,y,P=0;const B=new Uint8Array(4);let C,M;const E=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]);if(kt(e)||!e.output||!e.input&&0!==e.avail_in)return xt;i=e.state,i.mode===Et&&(i.mode=Ft),n=e.next_out,r=e.output,l=e.avail_out,o=e.next_in,s=e.input,a=e.avail_in,A=i.hold,h=i.bits,c=a,u=l,y=_t;e:for(;;)switch(i.mode){case Ct:if(0===i.wrap){i.mode=Ft;break}for(;h<16;){if(0===a)break e;a--,A+=s[o++]<>>8&255,i.check=U(i.check,B,2,0),A=0,h=0,i.mode=16181;break}if(i.head&&(i.head.done=!1),!(1&i.wrap)||(((255&A)<<8)+(A>>8))%31){e.msg="incorrect header check",i.mode=Rt;break}if((15&A)!==Bt){e.msg="unknown compression method",i.mode=Rt;break}if(A>>>=4,h-=4,w=8+(15&A),0===i.wbits&&(i.wbits=w),w>15||w>i.wbits){e.msg="invalid window size",i.mode=Rt;break}i.dmax=1<>8&1),512&i.flags&&4&i.wrap&&(B[0]=255&A,B[1]=A>>>8&255,i.check=U(i.check,B,2,0)),A=0,h=0,i.mode=16182;case 16182:for(;h<32;){if(0===a)break e;a--,A+=s[o++]<>>8&255,B[2]=A>>>16&255,B[3]=A>>>24&255,i.check=U(i.check,B,4,0)),A=0,h=0,i.mode=16183;case 16183:for(;h<16;){if(0===a)break e;a--,A+=s[o++]<>8),512&i.flags&&4&i.wrap&&(B[0]=255&A,B[1]=A>>>8&255,i.check=U(i.check,B,2,0)),A=0,h=0,i.mode=16184;case 16184:if(1024&i.flags){for(;h<16;){if(0===a)break e;a--,A+=s[o++]<>>8&255,i.check=U(i.check,B,2,0)),A=0,h=0}else i.head&&(i.head.extra=null);i.mode=16185;case 16185:if(1024&i.flags&&(d=i.length,d>a&&(d=a),d&&(i.head&&(w=i.head.extra_len-i.length,i.head.extra||(i.head.extra=new Uint8Array(i.head.extra_len)),i.head.extra.set(s.subarray(o,o+d),w)),512&i.flags&&4&i.wrap&&(i.check=U(i.check,s,d,o)),a-=d,o+=d,i.length-=d),i.length))break e;i.length=0,i.mode=16186;case 16186:if(2048&i.flags){if(0===a)break e;d=0;do{w=s[o+d++],i.head&&w&&i.length<65536&&(i.head.name+=String.fromCharCode(w))}while(w&&d>9&1,i.head.done=!0),e.adler=i.check=0,i.mode=Et;break;case 16189:for(;h<32;){if(0===a)break e;a--,A+=s[o++]<>>=7&h,h-=7&h,i.mode=Tt;break}for(;h<3;){if(0===a)break e;a--,A+=s[o++]<>>=1,h-=1,3&A){case 0:i.mode=16193;break;case 1:if(Gt(i),i.mode=Dt,t===ft){A>>>=2,h-=2;break e}break;case 2:i.mode=16196;break;case 3:e.msg="invalid block type",i.mode=Rt}A>>>=2,h-=2;break;case 16193:for(A>>>=7&h,h-=7&h;h<32;){if(0===a)break e;a--,A+=s[o++]<>>16^65535)){e.msg="invalid stored block lengths",i.mode=Rt;break}if(i.length=65535&A,A=0,h=0,i.mode=It,t===ft)break e;case It:i.mode=16195;case 16195:if(d=i.length,d){if(d>a&&(d=a),d>l&&(d=l),0===d)break e;r.set(s.subarray(o,o+d),n),a-=d,o+=d,l-=d,n+=d,i.length-=d;break}i.mode=Et;break;case 16196:for(;h<14;){if(0===a)break e;a--,A+=s[o++]<>>=5,h-=5,i.ndist=1+(31&A),A>>>=5,h-=5,i.ncode=4+(15&A),A>>>=4,h-=4,i.nlen>286||i.ndist>30){e.msg="too many length or distance symbols",i.mode=Rt;break}i.have=0,i.mode=16197;case 16197:for(;i.have>>=3,h-=3}for(;i.have<19;)i.lens[E[i.have++]]=0;if(i.lencode=i.lendyn,i.lenbits=7,C={bits:i.lenbits},y=pt(0,i.lens,0,19,i.lencode,0,i.work,C),i.lenbits=C.bits,y){e.msg="invalid code lengths set",i.mode=Rt;break}i.have=0,i.mode=16198;case 16198:for(;i.have>>24,f=P>>>16&255,_=65535&P,!(m<=h);){if(0===a)break e;a--,A+=s[o++]<>>=m,h-=m,i.lens[i.have++]=_;else{if(16===_){for(M=m+2;h>>=m,h-=m,0===i.have){e.msg="invalid bit length repeat",i.mode=Rt;break}w=i.lens[i.have-1],d=3+(3&A),A>>>=2,h-=2}else if(17===_){for(M=m+3;h>>=m,h-=m,w=0,d=3+(7&A),A>>>=3,h-=3}else{for(M=m+7;h>>=m,h-=m,w=0,d=11+(127&A),A>>>=7,h-=7}if(i.have+d>i.nlen+i.ndist){e.msg="invalid bit length repeat",i.mode=Rt;break}for(;d--;)i.lens[i.have++]=w}}if(i.mode===Rt)break;if(0===i.lens[256]){e.msg="invalid code -- missing end-of-block",i.mode=Rt;break}if(i.lenbits=9,C={bits:i.lenbits},y=pt(1,i.lens,0,i.nlen,i.lencode,0,i.work,C),i.lenbits=C.bits,y){e.msg="invalid literal/lengths set",i.mode=Rt;break}if(i.distbits=6,i.distcode=i.distdyn,C={bits:i.distbits},y=pt(2,i.lens,i.nlen,i.ndist,i.distcode,0,i.work,C),i.distbits=C.bits,y){e.msg="invalid distances set",i.mode=Rt;break}if(i.mode=Dt,t===ft)break e;case Dt:i.mode=St;case St:if(a>=6&&l>=258){e.next_out=n,e.avail_out=l,e.next_in=o,e.avail_in=a,i.hold=A,i.bits=h,At(e,u),n=e.next_out,r=e.output,l=e.avail_out,o=e.next_in,s=e.input,a=e.avail_in,A=i.hold,h=i.bits,i.mode===Et&&(i.back=-1);break}for(i.back=0;P=i.lencode[A&(1<>>24,f=P>>>16&255,_=65535&P,!(m<=h);){if(0===a)break e;a--,A+=s[o++]<>v)],m=P>>>24,f=P>>>16&255,_=65535&P,!(v+m<=h);){if(0===a)break e;a--,A+=s[o++]<>>=v,h-=v,i.back+=v}if(A>>>=m,h-=m,i.back+=m,i.length=_,0===f){i.mode=16205;break}if(32&f){i.back=-1,i.mode=Et;break}if(64&f){e.msg="invalid literal/length code",i.mode=Rt;break}i.extra=15&f,i.mode=16201;case 16201:if(i.extra){for(M=i.extra;h>>=i.extra,h-=i.extra,i.back+=i.extra}i.was=i.length,i.mode=16202;case 16202:for(;P=i.distcode[A&(1<>>24,f=P>>>16&255,_=65535&P,!(m<=h);){if(0===a)break e;a--,A+=s[o++]<>v)],m=P>>>24,f=P>>>16&255,_=65535&P,!(v+m<=h);){if(0===a)break e;a--,A+=s[o++]<>>=v,h-=v,i.back+=v}if(A>>>=m,h-=m,i.back+=m,64&f){e.msg="invalid distance code",i.mode=Rt;break}i.offset=_,i.extra=15&f,i.mode=16203;case 16203:if(i.extra){for(M=i.extra;h>>=i.extra,h-=i.extra,i.back+=i.extra}if(i.offset>i.dmax){e.msg="invalid distance too far back",i.mode=Rt;break}i.mode=16204;case 16204:if(0===l)break e;if(d=u-l,i.offset>d){if(d=i.offset-d,d>i.whave&&i.sane){e.msg="invalid distance too far back",i.mode=Rt;break}d>i.wnext?(d-=i.wnext,p=i.wsize-d):p=i.wnext-d,d>i.length&&(d=i.length),g=i.window}else g=r,p=n-i.offset,d=i.length;d>l&&(d=l),l-=d,i.length-=d;do{r[n++]=g[p++]}while(--d);0===i.length&&(i.mode=St);break;case 16205:if(0===l)break e;r[n++]=i.length,l--,i.mode=St;break;case Tt:if(i.wrap){for(;h<32;){if(0===a)break e;a--,A|=s[o++]<{if(kt(e))return xt;let t=e.state;return t.window&&(t.window=null),e.state=null,_t},Zt=(e,t)=>{if(kt(e))return xt;const i=e.state;return 0==(2&i.wrap)?xt:(i.head=t,t.done=!1,_t)},Jt=(e,t)=>{const i=t.length;let s,r,o;return kt(e)?xt:(s=e.state,0!==s.wrap&&s.mode!==Mt?xt:s.mode===Mt&&(r=1,r=R(r,t,i,0),r!==s.check)?wt:(o=Wt(e,t,i,i),o?(s.mode=16210,yt):(s.havedict=1,_t)))},$t=function(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name="",this.comment="",this.hcrc=0,this.done=!1};const ei=Object.prototype.toString,{Z_NO_FLUSH:ti,Z_FINISH:ii,Z_OK:si,Z_STREAM_END:ri,Z_NEED_DICT:oi,Z_STREAM_ERROR:ni,Z_DATA_ERROR:ai,Z_MEM_ERROR:li}=O;function Ai(e){this.options=Ve({chunkSize:65536,windowBits:15,to:""},e||{});const t=this.options;t.raw&&t.windowBits>=0&&t.windowBits<16&&(t.windowBits=-t.windowBits,0===t.windowBits&&(t.windowBits=-15)),!(t.windowBits>=0&&t.windowBits<16)||e&&e.windowBits||(t.windowBits+=32),t.windowBits>15&&t.windowBits<48&&0==(15&t.windowBits)&&(t.windowBits|=15),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new Xe,this.strm.avail_out=0;let i=Xt(this.strm,t.windowBits);if(i!==si)throw new Error(k[i]);if(this.header=new $t,Zt(this.strm,this.header),t.dictionary&&("string"==typeof t.dictionary?t.dictionary=Ge(t.dictionary):"[object ArrayBuffer]"===ei.call(t.dictionary)&&(t.dictionary=new Uint8Array(t.dictionary)),t.raw&&(i=Jt(this.strm,t.dictionary),i!==si)))throw new Error(k[i])}function hi(e,t){const i=new Ai(t);if(i.push(e),i.err)throw i.msg||k[i.err];return i.result}Ai.prototype.push=function(e,t){const i=this.strm,s=this.options.chunkSize,r=this.options.dictionary;let o,n,a;if(this.ended)return!1;for(n=t===~~t?t:!0===t?ii:ti,"[object ArrayBuffer]"===ei.call(e)?i.input=new Uint8Array(e):i.input=e,i.next_in=0,i.avail_in=i.input.length;;){for(0===i.avail_out&&(i.output=new Uint8Array(s),i.next_out=0,i.avail_out=s),o=Yt(i,n),o===oi&&r&&(o=Jt(i,r),o===si?o=Yt(i,n):o===ai&&(o=oi));i.avail_in>0&&o===ri&&i.state.wrap>0&&0!==e[i.next_in];)Kt(i),o=Yt(i,n);switch(o){case ni:case ai:case oi:case li:return this.onEnd(o),this.ended=!0,!1}if(a=i.avail_out,i.next_out&&(0===i.avail_out||o===ri))if("string"===this.options.to){let e=Ke(i.output,i.next_out),t=i.next_out-e,r=We(i.output,e);i.next_out=t,i.avail_out=s-t,t&&i.output.set(i.output.subarray(e,e+t),0),this.onData(r)}else this.onData(i.output.length===i.next_out?i.output:i.output.subarray(0,i.next_out));if(o!==si||0!==a){if(o===ri)return o=qt(this.strm),this.onEnd(o),this.ended=!0,!0;if(0===i.avail_in)break}}return!0},Ai.prototype.onData=function(e){this.chunks.push(e)},Ai.prototype.onEnd=function(e){e===si&&("string"===this.options.to?this.result=this.chunks.join(""):this.result=je(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg};var ci={Inflate:Ai,inflate:hi,inflateRaw:function(e,t){return(t=t||{}).raw=!0,hi(e,t)},ungzip:hi,constants:O};const{Deflate:ui,deflate:di,deflateRaw:pi,gzip:gi}=at,{Inflate:mi,inflate:fi,inflateRaw:_i,ungzip:vi}=ci;var bi=ui,xi=di,wi=pi,yi=gi,Pi=mi,Bi=fi,Ci=_i,Mi=vi,Ei=O,Fi={Deflate:bi,deflate:xi,deflateRaw:wi,gzip:yi,Inflate:Pi,inflate:Bi,inflateRaw:Ci,ungzip:Mi,constants:Ei};e.Deflate=bi,e.Inflate=Pi,e.constants=Ei,e.default=Fi,e.deflate=xi,e.deflateRaw=wi,e.gzip=yi,e.inflate=Bi,e.inflateRaw=Ci,e.ungzip=Mi,Object.defineProperty(e,"__esModule",{value:!0})}));var yb=Object.freeze({__proto__:null});let Pb=window.pako||yb;Pb.inflate||(Pb=Pb.default);const Bb=function(){const e=new Float32Array(3);return function(t){return e[0]=t[0]/255,e[1]=t[1]/255,e[2]=t[2]/255,e}}();const Cb={version:1,parse:function(e,t,i,s,r,o){const n=function(e){return{positions:e[0],normals:e[1],indices:e[2],edgeIndices:e[3],meshPositions:e[4],meshIndices:e[5],meshEdgesIndices:e[6],meshColors:e[7],entityIDs:e[8],entityMeshes:e[9],entityIsObjects:e[10],positionsDecodeMatrix:e[11]}}(i),a=function(e){return{positions:new Uint16Array(Pb.inflate(e.positions).buffer),normals:new Int8Array(Pb.inflate(e.normals).buffer),indices:new Uint32Array(Pb.inflate(e.indices).buffer),edgeIndices:new Uint32Array(Pb.inflate(e.edgeIndices).buffer),meshPositions:new Uint32Array(Pb.inflate(e.meshPositions).buffer),meshIndices:new Uint32Array(Pb.inflate(e.meshIndices).buffer),meshEdgesIndices:new Uint32Array(Pb.inflate(e.meshEdgesIndices).buffer),meshColors:new Uint8Array(Pb.inflate(e.meshColors).buffer),entityIDs:Pb.inflate(e.entityIDs,{to:"string"}),entityMeshes:new Uint32Array(Pb.inflate(e.entityMeshes).buffer),entityIsObjects:new Uint8Array(Pb.inflate(e.entityIsObjects).buffer),positionsDecodeMatrix:new Float32Array(Pb.inflate(e.positionsDecodeMatrix).buffer)}}(n);!function(e,t,i,s,r,o){o.getNextId(),s.positionsCompression="precompressed",s.normalsCompression="precompressed";const n=i.positions,a=i.normals,l=i.indices,A=i.edgeIndices,h=i.meshPositions,c=i.meshIndices,u=i.meshEdgesIndices,p=i.meshColors,g=JSON.parse(i.entityIDs),m=i.entityMeshes,f=i.entityIsObjects,v=h.length,b=m.length;for(let r=0;rm[e]m[t]?1:0));for(let e=0;e1||(E[i]=e)}}for(let e=0;e1,o=Rb(f.subarray(4*t,4*t+3)),u=f[4*t+3]/255,v=a.subarray(d[t],i?a.length:d[t+1]),x=l.subarray(d[t],i?l.length:d[t+1]),w=A.subarray(p[t],i?A.length:p[t+1]),P=h.subarray(g[t],i?h.length:g[t+1]),M=c.subarray(m[t],m[t]+16);if(r){const e=`${n}-geometry.${t}`;s.createGeometry({id:e,primitive:"triangles",positionsCompressed:v,normalsCompressed:x,indices:w,edgeIndices:P,positionsDecodeMatrix:M})}else{const e=`${n}-${t}`;b[E[t]];const i={};s.createMesh(_.apply(i,{id:e,primitive:"triangles",positionsCompressed:v,normalsCompressed:x,indices:w,edgeIndices:P,positionsDecodeMatrix:M,color:o,opacity:u}))}}let F=0;for(let e=0;e1){const t={},r=`${n}-instance.${F++}`,o=`${n}-geometry.${i}`,a=16*w[e],A=u.subarray(a,a+16);s.createMesh(_.apply(t,{id:r,geometryId:o,matrix:A})),l.push(r)}else l.push(i)}if(l.length>0){const e={};s.createEntity(_.apply(e,{id:r,isObject:!0,meshIds:l}))}}}(0,0,a,s,0,o)}};let Ub=window.pako||yb;Ub.inflate||(Ub=Ub.default);const kb=function(){const e=new Float32Array(3);return function(t){return e[0]=t[0]/255,e[1]=t[1]/255,e[2]=t[2]/255,e}}();const Ob={version:5,parse:function(e,t,i,s,r,o){const n=function(e){return{positions:e[0],normals:e[1],indices:e[2],edgeIndices:e[3],matrices:e[4],eachPrimitivePositionsAndNormalsPortion:e[5],eachPrimitiveIndicesPortion:e[6],eachPrimitiveEdgeIndicesPortion:e[7],eachPrimitiveColor:e[8],primitiveInstances:e[9],eachEntityId:e[10],eachEntityPrimitiveInstancesPortion:e[11],eachEntityMatricesPortion:e[12]}}(i),a=function(e){return{positions:new Float32Array(Ub.inflate(e.positions).buffer),normals:new Int8Array(Ub.inflate(e.normals).buffer),indices:new Uint32Array(Ub.inflate(e.indices).buffer),edgeIndices:new Uint32Array(Ub.inflate(e.edgeIndices).buffer),matrices:new Float32Array(Ub.inflate(e.matrices).buffer),eachPrimitivePositionsAndNormalsPortion:new Uint32Array(Ub.inflate(e.eachPrimitivePositionsAndNormalsPortion).buffer),eachPrimitiveIndicesPortion:new Uint32Array(Ub.inflate(e.eachPrimitiveIndicesPortion).buffer),eachPrimitiveEdgeIndicesPortion:new Uint32Array(Ub.inflate(e.eachPrimitiveEdgeIndicesPortion).buffer),eachPrimitiveColor:new Uint8Array(Ub.inflate(e.eachPrimitiveColor).buffer),primitiveInstances:new Uint32Array(Ub.inflate(e.primitiveInstances).buffer),eachEntityId:Ub.inflate(e.eachEntityId,{to:"string"}),eachEntityPrimitiveInstancesPortion:new Uint32Array(Ub.inflate(e.eachEntityPrimitiveInstancesPortion).buffer),eachEntityMatricesPortion:new Uint32Array(Ub.inflate(e.eachEntityMatricesPortion).buffer)}}(n);!function(e,t,i,s,r,o){const n=o.getNextId();s.positionsCompression="disabled",s.normalsCompression="precompressed";const a=i.positions,l=i.normals,A=i.indices,h=i.edgeIndices,c=i.matrices,u=i.eachPrimitivePositionsAndNormalsPortion,d=i.eachPrimitiveIndicesPortion,p=i.eachPrimitiveEdgeIndicesPortion,g=i.eachPrimitiveColor,m=i.primitiveInstances,f=JSON.parse(i.eachEntityId),v=i.eachEntityPrimitiveInstancesPortion,b=i.eachEntityMatricesPortion,x=u.length,w=m.length,y=new Uint8Array(x),P=f.length;for(let e=0;e1||(B[i]=e)}}for(let e=0;e1,r=kb(g.subarray(4*e,4*e+3)),o=g[4*e+3]/255,c=a.subarray(u[e],t?a.length:u[e+1]),m=l.subarray(u[e],t?l.length:u[e+1]),v=A.subarray(d[e],t?A.length:d[e+1]),b=h.subarray(p[e],t?h.length:p[e+1]);if(i){const t=`${n}-geometry.${e}`;s.createGeometry({id:t,primitive:"triangles",positionsCompressed:c,normalsCompressed:m,indices:v,edgeIndices:b})}else{const t=e;f[B[e]];const i={};s.createMesh(_.apply(i,{id:t,primitive:"triangles",positionsCompressed:c,normalsCompressed:m,indices:v,edgeIndices:b,color:r,opacity:o}))}}let C=0;for(let e=0;e1){const t={},r="instance."+C++,o="geometry"+i,n=16*b[e],l=c.subarray(n,n+16);s.createMesh(_.apply(t,{id:r,geometryId:o,matrix:l})),a.push(r)}else a.push(i)}if(a.length>0){const e={};s.createEntity(_.apply(e,{id:r,isObject:!0,meshIds:a}))}}}(0,0,a,s,0,o)}};let Nb=window.pako||yb;Nb.inflate||(Nb=Nb.default);const Qb=function(){const e=new Float32Array(3);return function(t){return e[0]=t[0]/255,e[1]=t[1]/255,e[2]=t[2]/255,e}}();const Vb={version:6,parse:function(e,t,i,s,r,o){const n=function(e){return{positions:e[0],normals:e[1],indices:e[2],edgeIndices:e[3],matrices:e[4],reusedPrimitivesDecodeMatrix:e[5],eachPrimitivePositionsAndNormalsPortion:e[6],eachPrimitiveIndicesPortion:e[7],eachPrimitiveEdgeIndicesPortion:e[8],eachPrimitiveColorAndOpacity:e[9],primitiveInstances:e[10],eachEntityId:e[11],eachEntityPrimitiveInstancesPortion:e[12],eachEntityMatricesPortion:e[13],eachTileAABB:e[14],eachTileEntitiesPortion:e[15]}}(i),a=function(e){function t(e,t){return 0===e.length?[]:Nb.inflate(e,t).buffer}return{positions:new Uint16Array(t(e.positions)),normals:new Int8Array(t(e.normals)),indices:new Uint32Array(t(e.indices)),edgeIndices:new Uint32Array(t(e.edgeIndices)),matrices:new Float32Array(t(e.matrices)),reusedPrimitivesDecodeMatrix:new Float32Array(t(e.reusedPrimitivesDecodeMatrix)),eachPrimitivePositionsAndNormalsPortion:new Uint32Array(t(e.eachPrimitivePositionsAndNormalsPortion)),eachPrimitiveIndicesPortion:new Uint32Array(t(e.eachPrimitiveIndicesPortion)),eachPrimitiveEdgeIndicesPortion:new Uint32Array(t(e.eachPrimitiveEdgeIndicesPortion)),eachPrimitiveColorAndOpacity:new Uint8Array(t(e.eachPrimitiveColorAndOpacity)),primitiveInstances:new Uint32Array(t(e.primitiveInstances)),eachEntityId:Nb.inflate(e.eachEntityId,{to:"string"}),eachEntityPrimitiveInstancesPortion:new Uint32Array(t(e.eachEntityPrimitiveInstancesPortion)),eachEntityMatricesPortion:new Uint32Array(t(e.eachEntityMatricesPortion)),eachTileAABB:new Float64Array(t(e.eachTileAABB)),eachTileEntitiesPortion:new Uint32Array(t(e.eachTileEntitiesPortion))}}(n);!function(e,t,i,s,r,o){const n=o.getNextId(),a=i.positions,l=i.normals,A=i.indices,h=i.edgeIndices,c=i.matrices,u=i.reusedPrimitivesDecodeMatrix,p=i.eachPrimitivePositionsAndNormalsPortion,g=i.eachPrimitiveIndicesPortion,m=i.eachPrimitiveEdgeIndicesPortion,f=i.eachPrimitiveColorAndOpacity,v=i.primitiveInstances,b=JSON.parse(i.eachEntityId),x=i.eachEntityPrimitiveInstancesPortion,w=i.eachEntityMatricesPortion,y=i.eachTileAABB,P=i.eachTileEntitiesPortion,B=p.length,C=v.length,M=b.length,E=P.length,F=new Uint32Array(B);for(let e=0;e1,c=t===B-1,d=a.subarray(p[t],c?a.length:p[t+1]),b=l.subarray(p[t],c?l.length:p[t+1]),x=A.subarray(g[t],c?A.length:g[t+1]),w=h.subarray(m[t],c?h.length:m[t+1]),y=Qb(f.subarray(4*t,4*t+3)),P=f[4*t+3]/255,C=o.getNextId();if(r){const e=`${n}-geometry.${i}.${t}`;U[e]||(s.createGeometry({id:e,primitive:"triangles",positionsCompressed:d,indices:x,edgeIndices:w,positionsDecodeMatrix:u}),U[e]=!0),s.createMesh(_.apply(N,{id:C,geometryId:e,origin:I,matrix:E,color:y,opacity:P})),R.push(C)}else s.createMesh(_.apply(N,{id:C,origin:I,primitive:"triangles",positionsCompressed:d,normalsCompressed:b,indices:x,edgeIndices:w,positionsDecodeMatrix:L,color:y,opacity:P})),R.push(C)}R.length>0&&s.createEntity(_.apply(O,{id:P,isObject:!0,meshIds:R}))}}}(e,t,a,s,0,o)}};let jb=window.pako||yb;jb.inflate||(jb=jb.default);const Hb=function(){const e=new Float32Array(3);return function(t){return e[0]=t[0]/255,e[1]=t[1]/255,e[2]=t[2]/255,e}}();function zb(e){const t=[];for(let i=0,s=e.length;i1,d=t===F-1,B=Hb(P.subarray(6*e,6*e+3)),C=P[6*e+3]/255,M=P[6*e+4]/255,E=P[6*e+5]/255,I=o.getNextId();if(r){const r=y[e],o=u.slice(r,r+16),w=`${n}-geometry.${i}.${t}`;if(!Q[w]){let e,i,r,o,n,u;switch(g[t]){case 0:e="solid",i=a.subarray(m[t],d?a.length:m[t+1]),r=l.subarray(f[t],d?l.length:f[t+1]),n=h.subarray(b[t],d?h.length:b[t+1]),u=c.subarray(x[t],d?c.length:x[t+1]);break;case 1:e="surface",i=a.subarray(m[t],d?a.length:m[t+1]),r=l.subarray(f[t],d?l.length:f[t+1]),n=h.subarray(b[t],d?h.length:b[t+1]),u=c.subarray(x[t],d?c.length:x[t+1]);break;case 2:e="points",i=a.subarray(m[t],d?a.length:m[t+1]),o=zb(A.subarray(v[t],d?A.length:v[t+1]));break;case 3:e="lines",i=a.subarray(m[t],d?a.length:m[t+1]),n=h.subarray(b[t],d?h.length:b[t+1]);break;default:continue}s.createGeometry({id:w,primitive:e,positionsCompressed:i,normalsCompressed:r,colors:o,indices:n,edgeIndices:u,positionsDecodeMatrix:p}),Q[w]=!0}s.createMesh(_.apply(V,{id:I,geometryId:w,origin:R,matrix:o,color:B,metallic:M,roughness:E,opacity:C})),U.push(I)}else{let e,i,r,o,n,u;switch(g[t]){case 0:e="solid",i=a.subarray(m[t],d?a.length:m[t+1]),r=l.subarray(f[t],d?l.length:f[t+1]),n=h.subarray(b[t],d?h.length:b[t+1]),u=c.subarray(x[t],d?c.length:x[t+1]);break;case 1:e="surface",i=a.subarray(m[t],d?a.length:m[t+1]),r=l.subarray(f[t],d?l.length:f[t+1]),n=h.subarray(b[t],d?h.length:b[t+1]),u=c.subarray(x[t],d?c.length:x[t+1]);break;case 2:e="points",i=a.subarray(m[t],d?a.length:m[t+1]),o=zb(A.subarray(v[t],d?A.length:v[t+1]));break;case 3:e="lines",i=a.subarray(m[t],d?a.length:m[t+1]),n=h.subarray(b[t],d?h.length:b[t+1]);break;default:continue}s.createMesh(_.apply(V,{id:I,origin:R,primitive:e,positionsCompressed:i,normalsCompressed:r,colors:o,indices:n,edgeIndices:u,positionsDecodeMatrix:N,color:B,metallic:M,roughness:E,opacity:C})),U.push(I)}}U.length>0&&s.createEntity(_.apply(O,{id:E,isObject:!0,meshIds:U}))}}}(e,t,a,s,0,o)}};let Wb=window.pako||yb;Wb.inflate||(Wb=Wb.default);const Kb=d.vec4(),Xb=d.vec4();const Yb=function(){const e=new Float32Array(3);return function(t){return e[0]=t[0]/255,e[1]=t[1]/255,e[2]=t[2]/255,e}}();function qb(e){const t=[];for(let i=0,s=e.length;i1,l=r===L-1,A=Yb(F.subarray(6*e,6*e+3)),h=F[6*e+3]/255,c=F[6*e+4]/255,I=F[6*e+5]/255,D=o.getNextId();if(a){const o=E[e],a=v.slice(o,o+16),M=`${n}-geometry.${i}.${r}`;let F=j[M];if(!F){F={batchThisMesh:!t.reuseGeometries};let e=!1;switch(x[r]){case 0:F.primitiveName="solid",F.geometryPositions=u.subarray(w[r],l?u.length:w[r+1]),F.geometryNormals=p.subarray(y[r],l?p.length:y[r+1]),F.geometryIndices=m.subarray(B[r],l?m.length:B[r+1]),F.geometryEdgeIndices=f.subarray(C[r],l?f.length:C[r+1]),e=F.geometryPositions.length>0&&F.geometryIndices.length>0;break;case 1:F.primitiveName="surface",F.geometryPositions=u.subarray(w[r],l?u.length:w[r+1]),F.geometryNormals=p.subarray(y[r],l?p.length:y[r+1]),F.geometryIndices=m.subarray(B[r],l?m.length:B[r+1]),F.geometryEdgeIndices=f.subarray(C[r],l?f.length:C[r+1]),e=F.geometryPositions.length>0&&F.geometryIndices.length>0;break;case 2:F.primitiveName="points",F.geometryPositions=u.subarray(w[r],l?u.length:w[r+1]),F.geometryColors=qb(g.subarray(P[r],l?g.length:P[r+1])),e=F.geometryPositions.length>0;break;case 3:F.primitiveName="lines",F.geometryPositions=u.subarray(w[r],l?u.length:w[r+1]),F.geometryIndices=m.subarray(B[r],l?m.length:B[r+1]),e=F.geometryPositions.length>0&&F.geometryIndices.length>0;break;default:continue}if(e||(F=null),F&&(F.geometryPositions.length,F.batchThisMesh)){F.decompressedPositions=new Float32Array(F.geometryPositions.length);const e=F.geometryPositions,t=F.decompressedPositions;for(let i=0,s=e.length;i0&&n.length>0;break;case 1:e="surface",t=u.subarray(w[r],l?u.length:w[r+1]),i=p.subarray(y[r],l?p.length:y[r+1]),n=m.subarray(B[r],l?m.length:B[r+1]),a=f.subarray(C[r],l?f.length:C[r+1]),d=t.length>0&&n.length>0;break;case 2:e="points",t=u.subarray(w[r],l?u.length:w[r+1]),o=qb(g.subarray(P[r],l?g.length:P[r+1])),d=t.length>0;break;case 3:e="lines",t=u.subarray(w[r],l?u.length:w[r+1]),n=m.subarray(B[r],l?m.length:B[r+1]),d=t.length>0&&n.length>0;break;default:continue}d&&(s.createMesh(_.apply(z,{id:D,origin:Q,primitive:e,positionsCompressed:t,normalsCompressed:i,colorsCompressed:o,indices:n,edgeIndices:a,positionsDecodeMatrix:R,color:A,metallic:c,roughness:I,opacity:h})),T.push(D))}}T.length>0&&s.createEntity(_.apply(H,{id:A,isObject:!0,meshIds:T}))}}}(e,t,a,s,r,o)}};let Jb=window.pako||yb;Jb.inflate||(Jb=Jb.default);const $b=d.vec4(),ex=d.vec4();const tx=function(){const e=new Float32Array(3);return function(t){return e[0]=t[0]/255,e[1]=t[1]/255,e[2]=t[2]/255,e}}();const ix={version:9,parse:function(e,t,i,s,r,o){const n=function(e){return{metadata:e[0],positions:e[1],normals:e[2],colors:e[3],indices:e[4],edgeIndices:e[5],matrices:e[6],reusedGeometriesDecodeMatrix:e[7],eachGeometryPrimitiveType:e[8],eachGeometryPositionsPortion:e[9],eachGeometryNormalsPortion:e[10],eachGeometryColorsPortion:e[11],eachGeometryIndicesPortion:e[12],eachGeometryEdgeIndicesPortion:e[13],eachMeshGeometriesPortion:e[14],eachMeshMatricesPortion:e[15],eachMeshMaterial:e[16],eachEntityId:e[17],eachEntityMeshesPortion:e[18],eachTileAABB:e[19],eachTileEntitiesPortion:e[20]}}(i),a=function(e){function t(e,t){return 0===e.length?[]:Jb.inflate(e,t).buffer}return{metadata:JSON.parse(Jb.inflate(e.metadata,{to:"string"})),positions:new Uint16Array(t(e.positions)),normals:new Int8Array(t(e.normals)),colors:new Uint8Array(t(e.colors)),indices:new Uint32Array(t(e.indices)),edgeIndices:new Uint32Array(t(e.edgeIndices)),matrices:new Float32Array(t(e.matrices)),reusedGeometriesDecodeMatrix:new Float32Array(t(e.reusedGeometriesDecodeMatrix)),eachGeometryPrimitiveType:new Uint8Array(t(e.eachGeometryPrimitiveType)),eachGeometryPositionsPortion:new Uint32Array(t(e.eachGeometryPositionsPortion)),eachGeometryNormalsPortion:new Uint32Array(t(e.eachGeometryNormalsPortion)),eachGeometryColorsPortion:new Uint32Array(t(e.eachGeometryColorsPortion)),eachGeometryIndicesPortion:new Uint32Array(t(e.eachGeometryIndicesPortion)),eachGeometryEdgeIndicesPortion:new Uint32Array(t(e.eachGeometryEdgeIndicesPortion)),eachMeshGeometriesPortion:new Uint32Array(t(e.eachMeshGeometriesPortion)),eachMeshMatricesPortion:new Uint32Array(t(e.eachMeshMatricesPortion)),eachMeshMaterial:new Uint8Array(t(e.eachMeshMaterial)),eachEntityId:JSON.parse(Jb.inflate(e.eachEntityId,{to:"string"})),eachEntityMeshesPortion:new Uint32Array(t(e.eachEntityMeshesPortion)),eachTileAABB:new Float64Array(t(e.eachTileAABB)),eachTileEntitiesPortion:new Uint32Array(t(e.eachTileEntitiesPortion))}}(n);!function(e,t,i,s,r,o){const n=o.getNextId(),a=i.metadata,l=i.positions,A=i.normals,h=i.colors,c=i.indices,u=i.edgeIndices,p=i.matrices,g=i.reusedGeometriesDecodeMatrix,m=i.eachGeometryPrimitiveType,f=i.eachGeometryPositionsPortion,v=i.eachGeometryNormalsPortion,b=i.eachGeometryColorsPortion,x=i.eachGeometryIndicesPortion,w=i.eachGeometryEdgeIndicesPortion,y=i.eachMeshGeometriesPortion,P=i.eachMeshMatricesPortion,B=i.eachMeshMaterial,C=i.eachEntityId,M=i.eachEntityMeshesPortion,E=i.eachTileAABB,F=i.eachTileEntitiesPortion,I=f.length,D=y.length,S=M.length,T=F.length;r&&r.loadData(a,{includeTypes:t.includeTypes,excludeTypes:t.excludeTypes,globalizeObjectIds:t.globalizeObjectIds});const R=new Uint32Array(I);for(let e=0;e1,C=r===I-1,M=tx(B.subarray(6*e,6*e+3)),E=B[6*e+3]/255,F=B[6*e+4]/255,D=B[6*e+5]/255,S=o.getNextId();if(a){const o=P[e],a=p.slice(o,o+16),y=`${n}-geometry.${i}.${r}`;let B=k[y];if(!B){B={batchThisMesh:!t.reuseGeometries};let e=!1;switch(m[r]){case 0:B.primitiveName="solid",B.geometryPositions=l.subarray(f[r],C?l.length:f[r+1]),B.geometryNormals=A.subarray(v[r],C?A.length:v[r+1]),B.geometryIndices=c.subarray(x[r],C?c.length:x[r+1]),B.geometryEdgeIndices=u.subarray(w[r],C?u.length:w[r+1]),e=B.geometryPositions.length>0&&B.geometryIndices.length>0;break;case 1:B.primitiveName="surface",B.geometryPositions=l.subarray(f[r],C?l.length:f[r+1]),B.geometryNormals=A.subarray(v[r],C?A.length:v[r+1]),B.geometryIndices=c.subarray(x[r],C?c.length:x[r+1]),B.geometryEdgeIndices=u.subarray(w[r],C?u.length:w[r+1]),e=B.geometryPositions.length>0&&B.geometryIndices.length>0;break;case 2:B.primitiveName="points",B.geometryPositions=l.subarray(f[r],C?l.length:f[r+1]),B.geometryColors=h.subarray(b[r],C?h.length:b[r+1]),e=B.geometryPositions.length>0;break;case 3:B.primitiveName="lines",B.geometryPositions=l.subarray(f[r],C?l.length:f[r+1]),B.geometryIndices=c.subarray(x[r],C?c.length:x[r+1]),e=B.geometryPositions.length>0&&B.geometryIndices.length>0;break;default:continue}if(e||(B=null),B&&(B.geometryPositions.length,B.batchThisMesh)){B.decompressedPositions=new Float32Array(B.geometryPositions.length),B.transformedAndRecompressedPositions=new Uint16Array(B.geometryPositions.length);const e=B.geometryPositions,t=B.decompressedPositions;for(let i=0,s=e.length;i0&&n.length>0;break;case 1:e="surface",t=l.subarray(f[r],C?l.length:f[r+1]),i=A.subarray(v[r],C?A.length:v[r+1]),n=c.subarray(x[r],C?c.length:x[r+1]),a=u.subarray(w[r],C?u.length:w[r+1]),d=t.length>0&&n.length>0;break;case 2:e="points",t=l.subarray(f[r],C?l.length:f[r+1]),o=h.subarray(b[r],C?h.length:b[r+1]),d=t.length>0;break;case 3:e="lines",t=l.subarray(f[r],C?l.length:f[r+1]),n=c.subarray(x[r],C?c.length:x[r+1]),d=t.length>0&&n.length>0;break;default:continue}d&&(s.createMesh(_.apply(H,{id:S,origin:L,primitive:e,positionsCompressed:t,normalsCompressed:i,colorsCompressed:o,indices:n,edgeIndices:a,positionsDecodeMatrix:Q,color:M,metallic:F,roughness:D,opacity:E})),O.push(S))}}O.length>0&&s.createEntity(_.apply(j,{id:E,isObject:!0,meshIds:O}))}}}(e,t,a,s,r,o)}};let sx=window.pako||yb;sx.inflate||(sx=sx.default);const rx=d.vec4(),ox=d.vec4();const nx=function(){const e=new Float32Array(3);return function(t){return e[0]=t[0]/255,e[1]=t[1]/255,e[2]=t[2]/255,e}}();function ax(e,t){const i=[];if(t.length>1)for(let e=0,s=t.length-1;e1)for(let t=0,s=e.length/3-1;t0,a=9*e,c=1===h[a+0],u=h[a+1];h[a+2],h[a+3];const d=h[a+4],p=h[a+5],g=h[a+6],m=h[a+7],f=h[a+8];if(o){const t=new Uint8Array(l.subarray(i,r)).buffer,o=`${n}-texture-${e}`;if(c)s.createTexture({id:o,buffers:[t],minFilter:d,magFilter:p,wrapS:g,wrapT:m,wrapR:f});else{const e=new Blob([t],{type:10001===u?"image/jpeg":10002===u?"image/png":"image/gif"}),i=(window.URL||window.webkitURL).createObjectURL(e),r=document.createElement("img");r.src=i,s.createTexture({id:o,image:r,minFilter:d,magFilter:p,wrapS:g,wrapT:m,wrapR:f})}}}for(let e=0;e=0?`${n}-texture-${r}`:null,normalsTextureId:a>=0?`${n}-texture-${a}`:null,metallicRoughnessTextureId:o>=0?`${n}-texture-${o}`:null,emissiveTextureId:l>=0?`${n}-texture-${l}`:null,occlusionTextureId:A>=0?`${n}-texture-${A}`:null})}const H=new Uint32Array(N);for(let e=0;e1,l=r===N-1,A=D[e],h=A>=0?`${n}-textureSet-${A}`:null,T=nx(S.subarray(6*e,6*e+3)),R=S[6*e+3]/255,L=S[6*e+4]/255,O=S[6*e+5]/255,Q=o.getNextId();if(a){const o=I[e],a=b.slice(o,o+16),A=`${n}-geometry.${i}.${r}`;let F=W[A];if(!F){F={batchThisMesh:!t.reuseGeometries};let e=!1;switch(w[r]){case 0:F.primitiveName="solid",F.geometryPositions=c.subarray(y[r],l?c.length:y[r+1]),F.geometryNormals=u.subarray(P[r],l?u.length:P[r+1]),F.geometryUVs=g.subarray(C[r],l?g.length:C[r+1]),F.geometryIndices=m.subarray(M[r],l?m.length:M[r+1]),F.geometryEdgeIndices=f.subarray(E[r],l?f.length:E[r+1]),e=F.geometryPositions.length>0&&F.geometryIndices.length>0;break;case 1:F.primitiveName="surface",F.geometryPositions=c.subarray(y[r],l?c.length:y[r+1]),F.geometryNormals=u.subarray(P[r],l?u.length:P[r+1]),F.geometryUVs=g.subarray(C[r],l?g.length:C[r+1]),F.geometryIndices=m.subarray(M[r],l?m.length:M[r+1]),F.geometryEdgeIndices=f.subarray(E[r],l?f.length:E[r+1]),e=F.geometryPositions.length>0&&F.geometryIndices.length>0;break;case 2:F.primitiveName="points",F.geometryPositions=c.subarray(y[r],l?c.length:y[r+1]),F.geometryColors=p.subarray(B[r],l?p.length:B[r+1]),e=F.geometryPositions.length>0;break;case 3:F.primitiveName="lines",F.geometryPositions=c.subarray(y[r],l?c.length:y[r+1]),F.geometryIndices=m.subarray(M[r],l?m.length:M[r+1]),e=F.geometryPositions.length>0&&F.geometryIndices.length>0;break;case 4:F.primitiveName="lines",F.geometryPositions=c.subarray(y[r],l?c.length:y[r+1]),F.geometryIndices=ax(F.geometryPositions,m.subarray(M[r],l?m.length:M[r+1])),e=F.geometryPositions.length>0&&F.geometryIndices.length>0;break;default:continue}if(e||(F=null),F&&(F.geometryPositions.length,F.batchThisMesh)){F.decompressedPositions=new Float32Array(F.geometryPositions.length),F.transformedAndRecompressedPositions=new Uint16Array(F.geometryPositions.length);const e=F.geometryPositions,t=F.decompressedPositions;for(let i=0,s=e.length;i0&&a.length>0;break;case 1:e="surface",t=c.subarray(y[r],l?c.length:y[r+1]),i=u.subarray(P[r],l?u.length:P[r+1]),o=g.subarray(C[r],l?g.length:C[r+1]),a=m.subarray(M[r],l?m.length:M[r+1]),A=f.subarray(E[r],l?f.length:E[r+1]),d=t.length>0&&a.length>0;break;case 2:e="points",t=c.subarray(y[r],l?c.length:y[r+1]),n=p.subarray(B[r],l?p.length:B[r+1]),d=t.length>0;break;case 3:e="lines",t=c.subarray(y[r],l?c.length:y[r+1]),a=m.subarray(M[r],l?m.length:M[r+1]),d=t.length>0&&a.length>0;break;case 4:e="lines",t=c.subarray(y[r],l?c.length:y[r+1]),a=ax(t,m.subarray(M[r],l?m.length:M[r+1])),d=t.length>0&&a.length>0;break;default:continue}d&&(s.createMesh(_.apply(j,{id:Q,textureSetId:h,origin:z,primitive:e,positionsCompressed:t,normalsCompressed:i,uv:o&&o.length>0?o:null,colorsCompressed:n,indices:a,edgeIndices:A,positionsDecodeMatrix:v,color:T,metallic:L,roughness:O,opacity:R})),U.push(Q))}}U.length>0&&s.createEntity(_.apply(Q,{id:l,isObject:!0,meshIds:U}))}}}(e,t,a,s,r,o)}},Ax={};Ax[Cb.version]=Cb,Ax[Fb.version]=Fb,Ax[Sb.version]=Sb,Ax[Lb.version]=Lb,Ax[Ob.version]=Ob,Ax[Vb.version]=Vb,Ax[Gb.version]=Gb,Ax[Zb.version]=Zb,Ax[ix.version]=ix,Ax[lx.version]=lx;class hx extends Q{constructor(e,t={}){super("XKTLoader",e,t),this._maxGeometryBatchSize=t.maxGeometryBatchSize,this.textureTranscoder=t.textureTranscoder,this.dataSource=t.dataSource,this.objectDefaults=t.objectDefaults,this.includeTypes=t.includeTypes,this.excludeTypes=t.excludeTypes,this.excludeUnclassifiedObjects=t.excludeUnclassifiedObjects,this.reuseGeometries=t.reuseGeometries}get supportedVersions(){return Object.keys(Ax)}get textureTranscoder(){return this._textureTranscoder}set textureTranscoder(e){this._textureTranscoder=e}get dataSource(){return this._dataSource}set dataSource(e){this._dataSource=e||new wb}get objectDefaults(){return this._objectDefaults}set objectDefaults(e){this._objectDefaults=e||nb}get includeTypes(){return this._includeTypes}set includeTypes(e){this._includeTypes=e}get excludeTypes(){return this._excludeTypes}set excludeTypes(e){this._excludeTypes=e}get excludeUnclassifiedObjects(){return this._excludeUnclassifiedObjects}set excludeUnclassifiedObjects(e){this._excludeUnclassifiedObjects=!!e}get globalizeObjectIds(){return this._globalizeObjectIds}set globalizeObjectIds(e){this._globalizeObjectIds=!!e}get reuseGeometries(){return this._reuseGeometries}set reuseGeometries(e){this._reuseGeometries=!1!==e}load(e={}){if(e.id&&this.viewer.scene.components[e.id]&&(this.error("Component with this ID already exists in viewer: "+e.id+" - will autogenerate this ID"),delete e.id),!(e.src||e.xkt||e.manifestSrc||e.manifest))return this.error("load() param expected: src, xkt, manifestSrc or manifestData"),o;const t={},i=e.includeTypes||this._includeTypes,s=e.excludeTypes||this._excludeTypes,r=e.objectDefaults||this._objectDefaults;if(t.reuseGeometries=null!==e.reuseGeometries&&void 0!==e.reuseGeometries?e.reuseGeometries:!1!==this._reuseGeometries,i){t.includeTypesMap={};for(let e=0,s=i.length;e{o.finalize(),a.finalize(),this.viewer.scene.canvas.spinner.processes--,o.once("destroyed",(()=>{this.viewer.metaScene.destroyMetaModel(a.id)})),this.scheduleTask((()=>{o.destroyed||(o.scene.fire("modelLoaded",o.id),o.fire("loaded",!0,!1))}))},A=e=>{this.viewer.scene.canvas.spinner.processes--,this.error(e),o.fire("error",e)};let h=0;const c={getNextId:()=>`${n}.${h++}`};if(e.metaModelSrc||e.metaModelData)if(e.metaModelSrc){const r=e.metaModelSrc;this._dataSource.getMetaModel(r,(r=>{o.destroyed||(a.loadData(r,{includeTypes:i,excludeTypes:s,globalizeObjectIds:t.globalizeObjectIds}),e.src?this._loadModel(e.src,e,t,o,null,c,l,A):(this._parseModel(e.xkt,e,t,o,null,c),l()))}),(e=>{A(`load(): Failed to load model metadata for model '${n} from '${r}' - ${e}`)}))}else e.metaModelData&&(a.loadData(e.metaModelData,{includeTypes:i,excludeTypes:s,globalizeObjectIds:t.globalizeObjectIds}),e.src?this._loadModel(e.src,e,t,o,null,c,l,A):(this._parseModel(e.xkt,e,t,o,null,c),l()));else if(e.src)this._loadModel(e.src,e,t,o,a,c,l,A);else if(e.xkt)this._parseModel(e.xkt,e,t,o,a,c),l();else if(e.manifestSrc||e.manifest){const r=e.manifestSrc?function(e){const t=e.split("/");return t.pop(),t.join("/")+"/"}(e.manifestSrc):"",n=(e,o,n)=>{let l=0;const A=()=>{l>=e.length?o():this._dataSource.getMetaModel(`${r}${e[l]}`,(e=>{a.loadData(e,{includeTypes:i,excludeTypes:s,globalizeObjectIds:t.globalizeObjectIds}),l++,this.scheduleTask(A,100)}),n)};A()},h=(i,s,n)=>{let a=0;const l=()=>{a>=i.length?s():this._dataSource.getXKT(`${r}${i[a]}`,(i=>{this._parseModel(i,e,t,o,null,c),a++,this.scheduleTask(l,100)}),n)};l()},u=(i,s,n)=>{let l=0;const A=()=>{l>=i.length?s():this._dataSource.getXKT(`${r}${i[l]}`,(i=>{this._parseModel(i,e,t,o,a,c),l++,this.scheduleTask(A,100)}),n)};A()};if(e.manifest){const t=e.manifest,i=t.xktFiles;if(!i||0===i.length)return void A("load(): Failed to load model manifest - manifest not valid");const s=t.metaModelFiles;s?n(s,(()=>{h(i,l,A)}),A):u(i,l,A)}else this._dataSource.getManifest(e.manifestSrc,(e=>{if(o.destroyed)return;const t=e.xktFiles;if(!t||0===t.length)return void A("load(): Failed to load model manifest - manifest not valid");const i=e.metaModelFiles;i?n(i,(()=>{h(t,l,A)}),A):u(t,l,A)}),A)}return o}_loadModel(e,t,i,s,r,o,n,a){this._dataSource.getXKT(t.src,(e=>{this._parseModel(e,t,i,s,r,o),n()}),a)}_parseModel(e,t,i,s,r,o){if(s.destroyed)return;const n=new DataView(e),a=new Uint8Array(e),l=n.getUint32(0,!0),A=Ax[l];if(!A)return void this.error("Unsupported .XKT file version: "+l+" - this XKTLoaderPlugin supports versions "+Object.keys(Ax));this.log("Loading .xkt V"+l);const h=n.getUint32(4,!0),c=[];let u=4*(h+2);for(let e=0;ee.size)throw new RangeError("offset:"+t+", length:"+i+", size:"+e.size);return e.slice?e.slice(t,t+i):e.webkitSlice?e.webkitSlice(t,t+i):e.mozSlice?e.mozSlice(t,t+i):e.msSlice?e.msSlice(t,t+i):void 0}(e,t,i))}catch(e){r(e)}}}function p(){}function g(e){var i,s=this;s.init=function(e){i=new Blob([],{type:n}),e()},s.writeUint8Array=function(e,s){i=new Blob([i,t?e:e.buffer],{type:n}),s()},s.getData=function(t,s){var r=new FileReader;r.onload=function(e){t(e.target.result)},r.onerror=s,r.readAsText(i,e)}}function m(t){var i=this,s="",r="";i.init=function(e){s+="data:"+(t||"")+";base64,",e()},i.writeUint8Array=function(t,i){var o,n=r.length,a=r;for(r="",o=0;o<3*Math.floor((n+t.length)/3)-n;o++)a+=String.fromCharCode(t[o]);for(;o2?s+=e.btoa(a):r=a,i()},i.getData=function(t){t(s+e.btoa(r))}}function f(e){var i,s=this;s.init=function(t){i=new Blob([],{type:e}),t()},s.writeUint8Array=function(s,r){i=new Blob([i,t?s:s.buffer],{type:e}),r()},s.getData=function(e){e(i)}}function _(e,t,i,s,r,n,a,l,A,h){var c,u,d,p=0,g=t.sn;function m(){e.removeEventListener("message",f,!1),l(u,d)}function f(t){var i=t.data,r=i.data,o=i.error;if(o)return o.toString=function(){return"Error: "+this.message},void A(o);if(i.sn===g)switch("number"==typeof i.codecTime&&(e.codecTime+=i.codecTime),"number"==typeof i.crcTime&&(e.crcTime+=i.crcTime),i.type){case"append":r?(u+=r.length,s.writeUint8Array(r,(function(){_()}),h)):_();break;case"flush":d=i.crc,r?(u+=r.length,s.writeUint8Array(r,(function(){m()}),h)):m();break;case"progress":a&&a(c+i.loaded,n);break;case"importScripts":case"newTask":case"echo":break;default:console.warn("zip.js:launchWorkerProcess: unknown message: ",i)}}function _(){(c=p*o)<=n?i.readUint8Array(r+c,Math.min(o,n-c),(function(i){a&&a(c,n);var s=0===c?t:{sn:g};s.type="append",s.data=i;try{e.postMessage(s,[i.buffer])}catch(t){e.postMessage(s)}p++}),A):e.postMessage({sn:g,type:"flush"})}u=0,e.addEventListener("message",f,!1),_()}function v(e,t,i,s,r,n,l,A,h,c){var u,d=0,p=0,g="input"===n,m="output"===n,f=new a;!function n(){var a;if((u=d*o)127?r[i-128]:String.fromCharCode(i);return s}function w(e){return decodeURIComponent(escape(e))}function y(e){var t,i="";for(t=0;t>16,i=65535&e;try{return new Date(1980+((65024&t)>>9),((480&t)>>5)-1,31&t,(63488&i)>>11,(2016&i)>>5,2*(31&i),0)}catch(e){}}(e.lastModDateRaw),1!=(1&e.bitFlag)?((s||8!=(8&e.bitFlag))&&(e.crc32=t.view.getUint32(i+10,!0),e.compressedSize=t.view.getUint32(i+14,!0),e.uncompressedSize=t.view.getUint32(i+18,!0)),4294967295!==e.compressedSize&&4294967295!==e.uncompressedSize?(e.filenameLength=t.view.getUint16(i+22,!0),e.extraFieldLength=t.view.getUint16(i+24,!0)):r("File is using Zip64 (4gb+ file size).")):r("File contains encrypted entry.")}function B(t,o,n){var a=0;function l(){}l.prototype.getData=function(s,o,l,h){var c=this;function u(e,t){h&&!function(e){var t=A(4);return t.view.setUint32(0,e),c.crc32==t.view.getUint32(0)}(t)?n("CRC failed."):s.getData((function(e){o(e)}))}function d(e){n(e||r)}function p(e){n(e||"Error while writing file data.")}t.readUint8Array(c.offset,30,(function(r){var o,g=A(r.length,r);1347093252==g.view.getUint32(0)?(P(c,g,4,!1,n),o=c.offset+30+c.filenameLength+c.extraFieldLength,s.init((function(){0===c.compressionMethod?b(c._worker,a++,t,s,o,c.compressedSize,h,u,l,d,p):function(t,i,s,r,o,n,a,l,A,h,c){var u=a?"output":"none";e.zip.useWebWorkers?_(t,{sn:i,codecClass:"Inflater",crcType:u},s,r,o,n,A,l,h,c):v(new e.zip.Inflater,s,r,o,n,u,A,l,h,c)}(c._worker,a++,t,s,o,c.compressedSize,h,u,l,d,p)}),p)):n(i)}),d)};var h={getEntries:function(e){var r=this._worker;!function(e){t.size<22?n(i):r(22,(function(){r(Math.min(65558,t.size),(function(){n(i)}))}));function r(i,r){t.readUint8Array(t.size-i,i,(function(t){for(var i=t.length-22;i>=0;i--)if(80===t[i]&&75===t[i+1]&&5===t[i+2]&&6===t[i+3])return void e(new DataView(t.buffer,i,22));r()}),(function(){n(s)}))}}((function(o){var a,h;a=o.getUint32(16,!0),h=o.getUint16(8,!0),a<0||a>=t.size?n(i):t.readUint8Array(a,t.size-a,(function(t){var s,o,a,c,u=0,d=[],p=A(t.length,t);for(s=0;s>>8^i[255&(t^e[s])];this.crc=t},a.prototype.get=function(){return~this.crc},a.prototype.table=function(){var e,t,i,s=[];for(e=0;e<256;e++){for(i=e,t=0;t<8;t++)1&i?i=i>>>1^3988292384:i>>>=1;s[e]=i}return s}(),l.prototype.append=function(e,t){return e},l.prototype.flush=function(){},c.prototype=new h,c.prototype.constructor=c,u.prototype=new h,u.prototype.constructor=u,d.prototype=new h,d.prototype.constructor=d,p.prototype.getData=function(e){e(this.data)},g.prototype=new p,g.prototype.constructor=g,m.prototype=new p,m.prototype.constructor=m,f.prototype=new p,f.prototype.constructor=f;var F={deflater:["z-worker.js","deflate.js"],inflater:["z-worker.js","inflate.js"]};function I(t,i,s){if(null===e.zip.workerScripts||null===e.zip.workerScriptsPath){var r;if(e.zip.workerScripts){if(r=e.zip.workerScripts[t],!Array.isArray(r))return void s(new Error("zip.workerScripts."+t+" is not an array!"));r=function(e){var t=document.createElement("a");return e.map((function(e){return t.href=e,t.href}))}(r)}else(r=F[t].slice(0))[0]=(e.zip.workerScriptsPath||"")+r[0];var o=new Worker(r[0]);o.codecTime=o.crcTime=0,o.postMessage({type:"importScripts",scripts:r.slice(1)}),o.addEventListener("message",(function e(t){var r=t.data;if(r.error)return o.terminate(),void s(r.error);"importScripts"===r.type&&(o.removeEventListener("message",e),o.removeEventListener("error",n),i(o))})),o.addEventListener("error",n)}else s(new Error("Either zip.workerScripts or zip.workerScriptsPath may be set, not both."));function n(e){o.terminate(),s(e)}}function D(e){console.error(e)}e.zip={Reader:h,Writer:p,BlobReader:d,Data64URIReader:u,TextReader:c,BlobWriter:f,Data64URIWriter:m,TextWriter:g,createReader:function(e,t,i){i=i||D,e.init((function(){B(e,t,i)}),i)},createWriter:function(e,t,i,s){i=i||D,s=!!s,e.init((function(){E(e,t,i,s)}),i)},useWebWorkers:!0,workerScriptsPath:null,workerScripts:null}}(cx);!function(e){var t,i,s=e.Reader,r=e.Writer;try{i=0===new Blob([new DataView(new ArrayBuffer(0))]).size}catch(e){}function o(e){var t=this;function i(i,s){var r;t.data?i():((r=new XMLHttpRequest).addEventListener("load",(function(){t.size||(t.size=Number(r.getResponseHeader("Content-Length"))||Number(r.response.byteLength)),t.data=new Uint8Array(r.response),i()}),!1),r.addEventListener("error",s,!1),r.open("GET",e),r.responseType="arraybuffer",r.send())}t.size=0,t.init=function(s,r){if(function(e){var t=document.createElement("a");return t.href=e,"http:"===t.protocol||"https:"===t.protocol}(e)){var o=new XMLHttpRequest;o.addEventListener("load",(function(){t.size=Number(o.getResponseHeader("Content-Length")),t.size?s():i(s,r)}),!1),o.addEventListener("error",r,!1),o.open("HEAD",e),o.send()}else i(s,r)},t.readUint8Array=function(e,s,r,o){i((function(){r(new Uint8Array(t.data.subarray(e,e+s)))}),o)}}function n(e){var t=this;t.size=0,t.init=function(i,s){var r=new XMLHttpRequest;r.addEventListener("load",(function(){t.size=Number(r.getResponseHeader("Content-Length")),"bytes"==r.getResponseHeader("Accept-Ranges")?i():s("HTTP Range not supported.")}),!1),r.addEventListener("error",s,!1),r.open("HEAD",e),r.send()},t.readUint8Array=function(t,i,s,r){!function(t,i,s,r){var o=new XMLHttpRequest;o.open("GET",e),o.responseType="arraybuffer",o.setRequestHeader("Range","bytes="+t+"-"+(t+i-1)),o.addEventListener("load",(function(){s(o.response)}),!1),o.addEventListener("error",r,!1),o.send()}(t,i,(function(e){s(new Uint8Array(e))}),r)}}function a(e){var t=this;t.size=0,t.init=function(i,s){t.size=e.byteLength,i()},t.readUint8Array=function(t,i,s,r){s(new Uint8Array(e.slice(t,t+i)))}}function l(){var e,t=this;t.init=function(t,i){e=new Uint8Array,t()},t.writeUint8Array=function(t,i,s){var r=new Uint8Array(e.length+t.length);r.set(e),r.set(t,e.length),e=r,i()},t.getData=function(t){t(e.buffer)}}function A(e,t){var s,r=this;r.init=function(t,i){e.createWriter((function(e){s=e,t()}),i)},r.writeUint8Array=function(e,r,o){var n=new Blob([i?e:e.buffer],{type:t});s.onwrite=function(){s.onwrite=null,r()},s.onerror=o,s.write(n)},r.getData=function(t){e.file(t)}}o.prototype=new s,o.prototype.constructor=o,n.prototype=new s,n.prototype.constructor=n,a.prototype=new s,a.prototype.constructor=a,l.prototype=new r,l.prototype.constructor=l,A.prototype=new r,A.prototype.constructor=A,e.FileWriter=A,e.HttpReader=o,e.HttpRangeReader=n,e.ArrayBufferReader=a,e.ArrayBufferWriter=l,e.fs&&((t=e.fs.ZipDirectoryEntry).prototype.addHttpContent=function(i,s,r){return function(i,s,r,o){if(i.directory)return o?new t(i.fs,s,r,i):new e.fs.ZipFileEntry(i.fs,s,r,i);throw"Parent entry is not a directory."}(this,i,{data:s,Reader:r?n:o})},t.prototype.importHttpContent=function(e,t,i,s){this.importZip(t?new n(e):new o(e),i,s)},e.fs.FS.prototype.importHttpContent=function(e,i,s,r){this.entries=[],this.root=new t(this),this.root.importHttpContent(e,i,s,r)})}(cx.zip),d.vec2(),d.vec3(),d.vec3(),d.vec3();class ux{constructor(e,t){this.items=e||[],this._lastUniqueId=(t||0)+1}addItem(){let e;if(2===arguments.length){const t=arguments[0];if(e=arguments[1],this.items[t])throw"ID clash: '"+t+"'";return this.items[t]=e,t}for(e=arguments[0]||{};;){const t=this._lastUniqueId++;if(!this.items[t])return this.items[t]=e,t}}removeItem(e){const t=this.items[e];return delete this.items[e],t}}class dx{constructor(e,t,i,s){this.bimViewer=e?e.bimViewer||e:this,this.server=e?e.server:i,this.viewer=e?e.viewer:s,this._children=[],e&&e._children.push(this),this._subIdMap=null,this._subIdEvents=null,this._eventSubs=null,this._events=null,this._eventCallDepth=0,this._enabled=null,this._active=null}fire(e,t,i){this._events||(this._events={}),this._eventSubs||(this._eventSubs={}),!0!==i&&(this._events[e]=t||!0);const s=this._eventSubs[e];let r;if(s)for(const i in s)s.hasOwnProperty(i)&&(r=s[i],this._eventCallDepth++,this._eventCallDepth<300?r.callback.call(r.scope,t):this.error("fire: potential stack overflow from recursive event '"+e+"' - dropping this event"),this._eventCallDepth--)}on(e,t,i){this._events||(this._events={}),this._subIdMap||(this._subIdMap=new ux),this._subIdEvents||(this._subIdEvents={}),this._eventSubs||(this._eventSubs={});let s=this._eventSubs[e];s||(s={},this._eventSubs[e]=s);const r=this._subIdMap.addItem();s[r]={callback:t,scope:i||this},this._subIdEvents[r]=e;const o=this._events[e];return void 0!==o&&t.call(i||this,o),r}off(e){if(null==e)return;if(!this._subIdEvents)return;const t=this._subIdEvents[e];if(t){delete this._subIdEvents[e];const i=this._eventSubs[t];i&&delete i[e],this._subIdMap.removeItem(e)}}once(e,t,i){const s=this,r=this.on(e,(function(e){s.off(r),t.call(i||this,e)}),i)}log(e){e="[LOG] "+e,window.console.log(e)}warn(e){e="[WARN] "+e,window.console.warn(e)}error(e){e="[ERROR] "+e,window.console.error(e)}_mutexActivation(e){const t=e.length;for(let i=0;i
Default text
',i.appendChild(this._modal),this._modalVisible=!1,this._modal.style.display="hidden"}show(e){this._modalVisible=!0,this._modal.querySelector(".xeokit-busy-modal-message").innerText=e,this._modal.style.display="block"}hide(){this._modalVisible=!1,this._modal.style.display="none"}destroy(){super.destroy(),this._modal&&(this._modal.parentNode.removeChild(this._modal),this._modal=null)}}const gx=d.vec3();class mx extends dx{constructor(e,t={}){if(super(e,t),!t.buttonElement)throw"Missing config: buttonElement";const i=t.buttonElement,s=this.viewer.camera;this._modelMementos={},s.eye=[.577,.577,.577],s.look=[0,0,0],s.up=[-1,1,-1],this.bimViewer._modelsExplorer.on("modelLoaded",(e=>{this._saveModelMemento(e)})),this.bimViewer._modelsExplorer.on("modelUnloaded",(e=>{this._destroyModelMemento(e)})),this.on("enabled",(e=>{e?i.classList.remove("disabled"):i.classList.add("disabled")})),this.on("active",(e=>{e?i.classList.add("active"):i.classList.remove("active")})),i.addEventListener("click",(e=>{this.getEnabled()&&this.reset(),e.preventDefault()}))}_saveModelMemento(e){const t=this.viewer.metaScene.metaModels[e];if(!t)return;const i=new Ih;i.saveObjects(this.viewer.scene,t,{visible:!0,edges:!0,xrayed:!0,highlighted:!0,selected:!0,clippable:!0,pickable:!0,colorize:!1,opacity:!1}),this._modelMementos[e]=i}_restoreModelMemento(e){const t=this.viewer.metaScene.metaModels[e];if(!t)return;this._modelMementos[e].restoreObjects(this.viewer.scene,t)}_destroyModelMemento(e){delete this._modelMementos[e]}reset(){const e=this.viewer.scene.modelIds;for(var t=0,i=e.length;t{e?i.classList.remove("disabled"):i.classList.add("disabled")})),this.on("active",(e=>{e?i.classList.add("active"):i.classList.remove("active")})),i.addEventListener("click",(e=>{this.getEnabled()&&this.fit(),e.preventDefault()}))}fit(){const e=this.viewer.scene,t=e.getAABB(e.visibleObjectIds);this.viewer.cameraFlight.flyTo({aabb:t}),this.viewer.cameraControl.pivotPos=d.getAABB3Center(t,fx)}set fov(e){this.viewer.scene.cameraFlight.fitFOV=e}get fov(){return this.viewer.scene.cameraFlight.fitFOV}set duration(e){this.viewer.scene.cameraFlight.duration=e}get duration(){return this.viewer.scene.cameraFlight.duration}}class vx extends dx{constructor(e,t){if(super(e,t),!t.buttonElement)throw"Missing config: buttonElement";const i=t.buttonElement,s=this.viewer.cameraControl,r=t.cameraControlNavModeMediator;s.navMode="orbit",s.followPointer=!0,this.on("enabled",(e=>{e?i.classList.remove("disabled"):i.classList.add("disabled")})),this.on("active",(e=>{e?i.classList.add("active"):i.classList.remove("active")})),this.on("active",(e=>{r.setFirstPersonModeActive(e),e?(s.followPointer=!0,s.pivoting=!1):s.pivoting=!0})),i.addEventListener("click",(e=>{if(this.getEnabled()){const e=this.getActive();this.setActive(!e)}e.preventDefault()})),this.bimViewer.on("reset",(()=>{this.setActive(!1)}))}}class bx extends dx{constructor(e,t){if(super(e,t),!t.buttonElement)throw"Missing config: buttonElement";const i=t.buttonElement;this.on("enabled",(e=>{e?i.classList.remove("disabled"):i.classList.add("disabled")})),this.on("active",(e=>{e?(i.classList.add("active"),this.viewer.cameraControl.doublePickFlyTo=!1,this._onPick=this.viewer.cameraControl.on("picked",(e=>{e.entity&&(e.entity.visible=!1)}))):(i.classList.remove("active"),this.viewer.cameraControl.doublePickFlyTo=!1,void 0!==this._onPick&&(this.viewer.cameraControl.off(this._onPick),this._onPick=void 0))})),i.addEventListener("click",(e=>{if(this.getEnabled()){this.bimViewer._sectionTool.hideControl();const e=this.getActive();this.setActive(!e)}e.preventDefault()})),this.bimViewer.on("reset",(()=>{this.setActive(!1)}))}}class xx extends dx{constructor(e,t){if(super(e),!t.buttonElement)throw"Missing config: buttonElement";const i=t.buttonElement;this.on("enabled",(e=>{e?i.classList.remove("disabled"):i.classList.add("disabled")})),this.on("active",(e=>{e?(i.classList.add("active"),this._onPick=this.viewer.cameraControl.on("picked",(e=>{e.entity&&(e.entity.selected=!e.entity.selected)}))):(i.classList.remove("active"),void 0!==this._onPick&&(this.viewer.cameraControl.off(this._onPick),this._onPick=void 0))})),i.addEventListener("click",(e=>{if(this.getEnabled()){this.bimViewer._sectionTool.hideControl();const e=this.getActive();this.setActive(!e)}e.preventDefault()})),this.bimViewer.on("reset",(()=>{this.setActive(!1)}))}}class wx extends dx{constructor(e,t){if(super(e,t),!t.buttonElement)throw"Missing config: buttonElement";this._buttonElement=t.buttonElement,this.on("enabled",(e=>{e?this._buttonElement.classList.remove("disabled"):this._buttonElement.classList.add("disabled")})),this._buttonElement.addEventListener("click",(e=>{this.getEnabled()&&this.setActive(!this.getActive(),(()=>{})),e.preventDefault()})),this.bimViewer.on("reset",(()=>{this.setActive(!1)})),this.viewer.scene.on("modelLoaded",(e=>{if(!this._active){const e=this.viewer.metaScene.getObjectIDsByType("IfcSpace");this.viewer.scene.setObjectsCulled(e,!0)}})),this._active=!1,this._buttonElement.classList.remove("active")}setActive(e){this._active!==e&&(this._active=e,e?(this._buttonElement.classList.add("active"),this._enterShowSpacesMode(),this.fire("active",this._active)):(this._buttonElement.classList.remove("active"),this._exitShowSpacesMode(),this.fire("active",this._active)))}_enterShowSpacesMode(){const e=this.viewer,t=e.scene,i=e.metaScene.getObjectIDsByType("IfcSpace");t.setObjectsCulled(i,!1)}_exitShowSpacesMode(){const e=this.viewer,t=e.scene,i=e.metaScene.getObjectIDsByType("IfcSpace");t.setObjectsCulled(i,!0)}}class yx extends dx{constructor(e,t){super(e)}}const Px=d.AABB3(),Bx=d.vec3();class Cx extends n{constructor(e={}){if(!e.sectionPlanesPlugin)throw"Missing config: sectionPlanesPlugin";super(_.apply({},e)),this._sectionPlanesPlugin=e.sectionPlanesPlugin,this._viewer=this._sectionPlanesPlugin.viewer,this._onSceneSectionPlaneCreated=this._viewer.scene.on("sectionPlaneCreated",(()=>{this._buildMenu()})),this._onSceneSectionPlaneDestroyed=this._viewer.scene.on("sectionPlaneDestroyed",(()=>{this._buildMenu()})),this._buildMenu()}_buildMenu(){const e=this._sectionPlanesPlugin,t=Object.values(e.sectionPlanes),i=[];for(let s=0,r=t.length;s`${e.viewer.localeService.translate("sectionToolContextMenu.slice")||"Slice"} #`+(s+1),doHoverEnter(t){e.hideControl(),e.showControl(r.id)},doHoverLeave(t){e.hideControl()},items:[[{getTitle:e=>r.active?e.viewer.localeService.translate("sectionToolContextMenu.deactivate")||"Disable":e.viewer.localeService.translate("sectionToolContextMenu.activate")||"Enable",doAction:e=>{r.active=!r.active}},{getTitle:e=>e.viewer.localeService.translate("sectionToolContextMenu.edit")||"Edit",getEnabled:()=>r.active,doAction:t=>{e.hideControl(),e.showControl(r.id);const i=r.pos;Px.set(this._viewer.scene.aabb),d.getAABB3Center(Px,Bx),Px[0]+=i[0]-Bx[0],Px[1]+=i[1]-Bx[1],Px[2]+=i[2]-Bx[2],Px[3]+=i[0]-Bx[0],Px[4]+=i[1]-Bx[1],Px[5]+=i[2]-Bx[2],this._viewer.cameraFlight.flyTo({aabb:Px,fitFOV:65})}},{getTitle:e=>e.viewer.localeService.translate("sectionToolContextMenu.flip")||"Flip",getEnabled:()=>r.active,doAction:e=>{r.flipDir()}},{getTitle:e=>e.viewer.localeService.translate("sectionToolContextMenu.delete")||"Delete",doAction:e=>{r.destroy()}}]]})}this.items=[[{getTitle:e=>e.viewer.localeService.translate("sectionToolContextMenu.clearSlices")||"Clear Slices",getEnabled:e=>e.bimViewer.getNumSections()>0,doAction:e=>{e.bimViewer.clearSections()}},{getTitle:e=>e.viewer.localeService.translate("sectionToolContextMenu.flipSlices")||"Flip Slices",getEnabled:e=>e.bimViewer.getNumSections()>0,doAction:e=>{e.bimViewer.flipSections()}}],[{getTitle:e=>e.viewer.localeService.translate("sectionToolContextMenu.disableAllSlices")||"Disable all Slices",getEnabled:e=>e.bimViewer.getNumSections()>0,doAction:e=>{e.bimViewer.disableSections()}},{getTitle:e=>e.viewer.localeService.translate("sectionToolContextMenu.enableAllSlices")||"Enable all Slices",getEnabled:e=>e.bimViewer.getNumSections()>0,doAction:e=>{e.bimViewer.enableSections()}}],i]}destroy(){super.destroy();const e=this._viewer.scene;e.off(this._onSceneSectionPlaneCreated),e.off(this._onSceneSectionPlaneDestroyed)}}class Mx extends dx{constructor(e,t){if(super(e,t),!t.buttonElement)throw"Missing config: buttonElement";if(!t.menuButtonElement)throw"Missing config: menuButtonElement";this._buttonElement=t.buttonElement,this._counterElement=t.counterElement,this._menuButtonElement=t.menuButtonElement,this._menuButtonArrowElement=t.menuButtonArrowElement,this._sectionPlanesPlugin=new _b(this.viewer,{}),this._sectionToolContextMenu=new Cx({sectionPlanesPlugin:this._sectionPlanesPlugin,hideOnMouseDown:!1,hideOnAction:!1}),this._sectionPlanesPlugin.setOverviewVisible(!1),this.on("enabled",(e=>{e?(this._buttonElement.classList.remove("disabled"),this._counterElement&&this._counterElement.classList.remove("disabled"),this._menuButtonElement.classList.remove("disabled"),this._menuButtonArrowElement.classList.remove("disabled")):(this._buttonElement.classList.add("disabled"),this._counterElement&&this._counterElement.classList.add("disabled"),this._menuButtonElement.classList.add("disabled"),this._menuButtonArrowElement.classList.add("disabled"))})),this.on("active",(e=>{e?(this._buttonElement.classList.add("active"),this._counterElement&&this._counterElement.classList.add("active"),this._menuButtonElement.classList.add("active"),this._menuButtonArrowElement.classList.add("active")):(this._buttonElement.classList.remove("active"),this._counterElement&&this._counterElement.classList.remove("active"),this._menuButtonElement.classList.remove("active"),this._menuButtonArrowElement.classList.remove("active"))})),this.on("active",(e=>{e||this._sectionPlanesPlugin.hideControl()})),this._buttonElement.addEventListener("click",(e=>{if(!this.getEnabled())return;if(e.target===this._menuButtonElement||e.target.parentNode===this._menuButtonElement){if(this._sectionToolContextMenu.shown)this._sectionToolContextMenu.hide();else{this._sectionToolContextMenu.context={bimViewer:this.bimViewer,viewer:this.viewer,sectionTool:this};const e=this._menuButtonElement.getBoundingClientRect();this._sectionToolContextMenu.show(e.left,e.bottom+5)}return}const t=this.getActive();this.setActive(!t),e.preventDefault()})),this._sectionToolContextMenu.on("shown",(()=>{this._menuButtonArrowElement.classList.remove("xeokit-arrow-down"),this._menuButtonArrowElement.classList.add("xeokit-arrow-up")})),this._sectionToolContextMenu.on("hidden",(()=>{this._menuButtonArrowElement.classList.remove("xeokit-arrow-up"),this._menuButtonArrowElement.classList.add("xeokit-arrow-down")})),this.bimViewer.on("reset",(()=>{this.clear(),this.setActive(!1)})),this.viewer.scene.on("sectionPlaneCreated",(()=>{this._updateSectionPlanesCount()})),this.viewer.scene.on("sectionPlaneDestroyed",(()=>{this._updateSectionPlanesCount()})),this._initSectionMode()}_initSectionMode(){document.addEventListener("mouseup",(e=>{if(1===e.which){const t=function(e){if(e){let t=e.target,i=0,s=0;for(;t.offsetParent;)i+=t.offsetLeft,s+=t.offsetTop,t=t.offsetParent;return[e.pageX-i,e.pageY-s]}e=window.event,this.mouseCanvasPos[0]=e.x,this.mouseCanvasPos[1]=e.y}(e);if(!this.getActive()||!this.getEnabled())return;const i=this.viewer.scene.pick({canvasPos:t,pickSurface:!0});if(i&&i.entity&&i.entity.isObject){const e=this._sectionPlanesPlugin.createSectionPlane({pos:i.worldPos,dir:d.mulVec3Scalar(i.worldNormal,-1)});this._sectionPlanesPlugin.showControl(e.id)}}})),this._updateSectionPlanesCount()}_updateSectionPlanesCount(){this._counterElement&&(this._counterElement.innerText=""+this.getNumSections())}getNumSections(){return Object.keys(this.viewer.scene.sectionPlanes).length}clear(){this._sectionPlanesPlugin.clear(),this._updateSectionPlanesCount()}flipSections(){this._sectionPlanesPlugin.flipSectionPlanes()}enableSections(){const e=this.viewer.scene.sectionPlanes;for(let t in e){e[t].active=!0}}disableSections(){const e=this.viewer.scene.sectionPlanes;for(let t in e){e[t].active=!1}}hideControl(){this._sectionPlanesPlugin.hideControl()}destroy(){this._sectionPlanesPlugin.destroy(),this._sectionToolContextMenu.destroy(),super.destroy()}}class Ex extends dx{constructor(e,t){if(super(e,t),!t.navCubeCanvasElement)throw"Missing config: navCubeCanvasElement";const i=t.navCubeCanvasElement;this._navCube=new hb(this.viewer,{canvasElement:i,fitVisible:!0,color:"#CFCFCF"}),this._navCube.setVisible(this._active),this.on("active",(e=>{this._navCube.setVisible(e)}))}destroy(){this._navCube.destroy(),super.destroy()}}class Fx extends n{constructor(e={}){const t=!!e.enableEditModels,i=!!e.enableMeasurements,s=[[{getTitle:e=>e.viewer.localeService.translate("modelsContextMenu.loadModel")||"Load",getEnabled:e=>!e.bimViewer.isModelLoaded(e.modelId),doAction:e=>{e.bimViewer.loadModel(e.modelId)}},{getTitle:e=>e.viewer.localeService.translate("modelsContextMenu.unloadModel")||"Unload",getEnabled:e=>e.bimViewer.isModelLoaded(e.modelId),doAction:e=>{e.bimViewer.unloadModel(e.modelId)}}]];t&&s.push([{getTitle:e=>e.viewer.localeService.translate("modelsContextMenu.editModel")||"Edit",getEnabled:e=>!0,doAction:e=>{e.bimViewer.editModel(e.modelId)}},{getTitle:e=>e.viewer.localeService.translate("modelsContextMenu.deleteModel")||"Delete",getEnabled:e=>!0,doAction:e=>{e.bimViewer.deleteModel(e.modelId)}}]),s.push([{getTitle:e=>e.viewer.localeService.translate("modelsContextMenu.loadAllModels")||"Load All",getEnabled:e=>{const t=e.bimViewer,i=t.getModelIds();return t.getLoadedModelIds().length{e.bimViewer.loadAllModels()}},{getTitle:e=>e.viewer.localeService.translate("modelsContextMenu.unloadAllModels")||"Unload All",getEnabled:e=>e.bimViewer.getLoadedModelIds().length>0,doAction:e=>{e.bimViewer.unloadAllModels()}}]),s.push([{getTitle:e=>e.viewer.localeService.translate("modelsContextMenu.clearSlices")||"Clear Slices",getEnabled:e=>e.bimViewer.getNumSections()>0,doAction:e=>{e.bimViewer.clearSections()}}]),i&&s.push([{getTitle:e=>e.viewer.localeService.translate("canvasContextMenu.measurements")||"Measurements",doAction:function(e){},items:[[{getTitle:e=>e.viewer.localeService.translate("canvasContextMenu.clearMeasurements")||"Clear",getEnabled:e=>e.bimViewer.getNumMeasurements()>0,doAction:e=>{e.bimViewer.clearMeasurements()}},{getTitle:e=>e.bimViewer.getMeasurementsAxisVisible()?e.viewer.localeService.translate("canvasContextMenu.hideMeasurementAxisWires")||"Hide Axis Wires":e.viewer.localeService.translate("canvasContextMenu.showMeasurementAxisWires")||"Show Axis Wires",getEnabled:e=>e.bimViewer.getNumMeasurements()>0,doAction:e=>{e.bimViewer.setMeasurementsAxisVisible(!e.bimViewer.getMeasurementsAxisVisible())}},{getTitle:e=>e.bimViewer.getMeasurementsSnappingEnabled()?e.viewer.localeService.translate("canvasContextMenu.disableMeasurementSnapping")||"Disable Snapping":e.viewer.localeService.translate("canvasContextMenu.enableMeasurementSnapping")||"Enable Snapping",getEnabled:e=>e.bimViewer.getNumMeasurements()>0,doAction:e=>{e.bimViewer.setMeasurementsSnappingEnabled(!e.bimViewer.getMeasurementsSnappingEnabled())}}]]}]),super({hideOnAction:e.hideOnAction,context:e.context,items:s})}}const Ix=d.vec3();class Dx{constructor(e){this._server=e}setProjectId(e){this._projectId=e}setModelId(e){this._modelId=e}getManifest(e,t,i){this._server.getSplitModelManifest(this._projectId,this._modelId,e,t,i)}getMetaModel(e,t,i){this._server.getSplitModelMetadata(this._projectId,this._modelId,e,t,i)}getXKT(e,t,i){this._server.getSplitModelGeometry(this._projectId,this._modelId,e,t,i)}}class Sx extends dx{constructor(e,t){if(super(e,t),!t.modelsTabElement)throw"Missing config: modelsTabElement";if(!t.unloadModelsButtonElement)throw"Missing config: unloadModelsButtonElement";if(!t.modelsElement)throw"Missing config: modelsElement";if(this._enableAddModels=!!t.enableEditModels,this._modelsTabElement=t.modelsTabElement,this._loadModelsButtonElement=t.loadModelsButtonElement,this._unloadModelsButtonElement=t.unloadModelsButtonElement,this._addModelButtonElement=t.addModelButtonElement,this._modelsElement=t.modelsElement,this._modelsTabButtonElement=this._modelsTabElement.querySelector(".xeokit-tab-btn"),!this._modelsTabButtonElement)throw"Missing DOM element: ,xeokit-tab-btn";this._dataSource=new Dx(this.server),this._xktLoader=new hx(this.viewer,{dataSource:this._dataSource}),this._modelsContextMenu=new Fx({enableEditModels:t.enableEditModels,enableMeasurements:t.enableMeasurements,hideOnAction:!0}),this._modelsInfo={},this._numModels=0,this._numModelsLoaded=0,this._projectId=null}setObjectColors(e){this._xktLoader.objectDefaults=e}loadProject(e,t,i){this.server.getProject(e,(i=>{this.unloadProject(),this._projectId=e,this._modelsInfo={},this._numModels=0,this._parseProject(i,t),this._numModelsLoaded0&&this._unloadModelsButtonElement.classList.remove("disabled"),this._enableAddModels&&this._addModelButtonElement.classList.remove("disabled")}),(e=>{this.error(e),i&&i(e)}))}_parseProject(e,t){this._buildModelsMenu(e),this._parseViewerConfigs(e),this._parseViewerContent(e,(()=>{this._parseViewerState(e,(()=>{t()}))}))}_buildModelsMenu(e){var t="";const i=e.models||[];this._modelsInfo={},this._numModels=i.length;for(let e=0,s=i.length;e",t+=""+s.name+"",t+=""}this._modelsElement.innerHTML=t;for(let e=0,t=i.length;e{r.checked?this.loadModel(s):this.unloadModel(t.id)})),o.addEventListener("click",(()=>{!!this.viewer.scene.models[s]?this.unloadModel(t.id):this.loadModel(s)})),o.oncontextmenu=e=>{this._modelsContextMenu.context={bimViewer:this.bimViewer,viewer:this.viewer,modelId:s},this._modelsContextMenu.show(e.pageX,e.pageY),e.preventDefault()}}}_parseViewerConfigs(e){const t=e.viewerConfigs;t&&this.bimViewer.setConfigs(t)}_parseViewerContent(e,t){const i=e.viewerContent;i?this._parseModelsLoaded(i,(()=>{t()})):t()}_parseModelsLoaded(e,t){const i=e.modelsLoaded;i&&0!==i.length?this._loadNextModel(i.slice(0),t):t()}_loadNextModel(e,t){if(0===e.length)return void t();const i=e.pop();this.loadModel(i,(()=>{this._loadNextModel(e,t)}),(()=>{this._loadNextModel(e,t)}))}_parseViewerState(e,t){const i=e.viewerState;i?this.bimViewer.setViewerState(i,t):t()}unloadProject(){if(!this._projectId)return;const e=this.viewer.scene.models;for(var t in e)if(e.hasOwnProperty(t)){e[t].destroy()}this._modelsElement.innerHTML="",this._numModelsLoaded=0,this._loadModelsButtonElement.classList.add("disabled"),this._unloadModelsButtonElement.classList.add("disabled"),this._enableAddModels&&this._addModelButtonElement.classList.add("disabled");const i=this._projectId;this._projectId=null,this.fire("projectUnloaded",{projectId:i})}getLoadedProjectId(){return this._projectId}getModelIds(){return Object.keys(this._modelsInfo)}loadModel(e,t,i){if(!this._projectId){const e="No project currently loaded";return this.error(e),void(i&&i(e))}const s=this._modelsInfo[e];if(!s){const e="Model not in currently loaded project";return this.error(e),void(i&&i(e))}this.bimViewer._busyModal.show(`${this.viewer.localeService.translate("busyModal.loading")||"Loading"} ${s.name}`);this.bimViewer.getConfig("externalMetadata")&&!s.manifest?this.server.getMetadata(this._projectId,e,(r=>{this._loadGeometry(e,s,r,t,i)}),(e=>{this.bimViewer._busyModal.hide(),this.error(e),i&&i(e)})):this._loadGeometry(e,s,null,t,i)}_loadGeometry(e,t,i,s,r){const o=()=>{document.getElementById(""+e).checked=!0,this._numModelsLoaded++,this._unloadModelsButtonElement.classList.remove("disabled"),this._numModelsLoaded{this.bimViewer._busyModal.hide(),this.error(e),r&&r(e)};if(t.manifest){this._dataSource.setProjectId(this._projectId),this._dataSource.setModelId(e);const i=this._xktLoader.load({id:e,manifestSrc:t.manifest,excludeUnclassifiedObjects:!0,origin:t.origin||t.position,scale:t.scale,rotation:t.rotation,matrix:t.matrix,edges:!1!==t.edges,saoEnabled:t.saoEnabled,pbrEnabled:t.pbrEnabled,backfaces:t.backfaces,globalizeObjectIds:t.globalizeObjectIds,reuseGeometries:!1!==t.reuseGeometries});i.on("loaded",o),i.on("error",n)}else this.server.getGeometry(this._projectId,e,(s=>{const r=this._xktLoader.load({id:e,metaModelData:i,xkt:s,excludeUnclassifiedObjects:!0,origin:t.origin||t.position,scale:t.scale,rotation:t.rotation,matrix:t.matrix,edges:!1!==t.edges,saoEnabled:t.saoEnabled,pbrEnabled:t.pbrEnabled,backfaces:t.backfaces,globalizeObjectIds:t.globalizeObjectIds,reuseGeometries:!1!==t.reuseGeometries});r.on("loaded",o),r.on("error",n)}),n)}_jumpToInitialCamera(){const e=this.viewer,t=e.scene,i=t.getAABB(t.visibleObjectIds),s=d.getAABB3Diag(i),r=d.getAABB3Center(i,Ix),o=t.camera;o.perspective.fov;const n=Math.abs(s/Math.tan(45*d.DEGTORAD)),a=d.normalizeVec3(o.yUp?[-.5,-.7071,-.5]:[-1,1,-1]),l=d.normalizeVec3(o.yUp?[-.5,.7071,-.5]:[-1,1,1]);e.cameraControl.pivotPos=r,e.cameraControl.planView=!1,e.cameraFlight.jumpTo({look:r,eye:[r[0]-n*a[0],r[1]-n*a[1],r[2]-n*a[2]],up:l,orthoScale:1.1*s})}unloadModel(e){const t=this.viewer.scene.models[e];if(!t)return void this.error("Model not loaded: "+e);t.destroy();document.getElementById(""+e).checked=!1,document.getElementById("span-"+e),this._numModelsLoaded--,this._numModelsLoaded>0?this._unloadModelsButtonElement.classList.remove("disabled"):this._unloadModelsButtonElement.classList.add("disabled"),this._numModelsLoadede.viewer.localeService.translate("treeViewContextMenu.inspectProperties")||"Inspect Properties",getShown:e=>!!e.viewer.metaScene.metaObjects[e.treeViewNode.objectId],doAction:e=>{const t=e.treeViewNode.objectId;e.bimViewer.showObjectProperties(t)}}),i.push({getTitle:e=>e.viewer.localeService.translate("treeViewContextMenu.viewFit")||"View Fit",doAction:function(e){const t=e.viewer,i=t.scene,s=[];e.treeViewPlugin.withNodeTree(e.treeViewNode,(e=>{e.objectId&&s.push(e.objectId)})),i.setObjectsVisible(s,!0),i.setObjectsHighlighted(s,!0);const r=i.getAABB(s);t.cameraFlight.flyTo({aabb:r,duration:.5},(()=>{setTimeout((function(){i.setObjectsHighlighted(i.highlightedObjectIds,!1)}),500)})),t.cameraControl.pivotPos=d.getAABB3Center(r)}},{getTitle:e=>e.viewer.localeService.translate("canvasContextMenu.viewFitSelection")||"View Fit Selected",getEnabled:e=>e.viewer.scene.numSelectedObjects>0,doAction:e=>{const t=e.viewer,i=t.scene,s=i.getAABB(i.selectedObjectIds);t.cameraFlight.flyTo({aabb:s,duration:.5}),t.cameraControl.pivotPos=d.getAABB3Center(s)}},{getTitle:e=>e.viewer.localeService.translate("treeViewContextMenu.viewFitAll")||"View Fit All",doAction:function(e){const t=e.viewer,i=t.scene,s=i.getAABB(i.visibleObjectIds);t.cameraFlight.flyTo({aabb:s,duration:.5}),t.cameraControl.pivotPos=d.getAABB3Center(s)}}),r&&s.push({getTitle:e=>e.viewer.localeService.translate("canvasContextMenu.measurements")||"Measurements",doAction:function(e){},items:[[{getTitle:e=>e.viewer.localeService.translate("canvasContextMenu.clearMeasurements")||"Clear",getEnabled:e=>e.bimViewer.getNumMeasurements()>0,doAction:e=>{e.bimViewer.clearMeasurements()}},{getTitle:e=>e.bimViewer.getMeasurementsAxisVisible()?e.viewer.localeService.translate("canvasContextMenu.hideMeasurementAxisWires")||"Hide Axis Wires":e.viewer.localeService.translate("canvasContextMenu.showMeasurementAxisWires")||"Show Axis Wires",getEnabled:e=>e.bimViewer.getNumMeasurements()>0,doAction:e=>{e.bimViewer.setMeasurementsAxisVisible(!e.bimViewer.getMeasurementsAxisVisible())}},{getTitle:e=>e.bimViewer.getMeasurementsSnappingEnabled()?e.viewer.localeService.translate("canvasContextMenu.disableMeasurementSnapping")||"Disable Snapping":e.viewer.localeService.translate("canvasContextMenu.enableMeasurementSnapping")||"Enable Snapping",getEnabled:e=>e.bimViewer.getNumMeasurements()>0,doAction:e=>{e.bimViewer.setMeasurementsSnappingEnabled(!e.bimViewer.getMeasurementsSnappingEnabled())}}]]}),this.items=[t,i,[{getTitle:e=>e.viewer.localeService.translate("treeViewContextMenu.isolate")||"Isolate",doAction:function(e){const t=e.viewer,i=t.scene,s=[];e.treeViewPlugin.withNodeTree(e.treeViewNode,(e=>{e.objectId&&s.push(e.objectId)}));const r=i.getAABB(s);t.cameraControl.pivotPos=d.getAABB3Center(r,Tx),i.setObjectsXRayed(i.xrayedObjectIds,!1),i.setObjectsVisible(i.visibleObjectIds,!1),i.setObjectsSelected(i.selectedObjectIds,!1),i.setObjectsVisible(s,!0),t.cameraFlight.flyTo({aabb:r},(()=>{}))}}],[{getTitle:e=>e.viewer.localeService.translate("treeViewContextMenu.hide")||"Hide",doAction:function(e){e.treeViewPlugin.withNodeTree(e.treeViewNode,(t=>{if(t.objectId){const i=e.viewer.scene.objects[t.objectId];i&&(i.visible=!1)}}))}},{getTitle:e=>e.viewer.localeService.translate("treeViewContextMenu.hideOthers")||"Hide Others",doAction:function(e){const t=e.viewer.scene;t.setObjectsVisible(t.visibleObjectIds,!1),t.setObjectsPickable(t.xrayedObjectIds,!0),t.setObjectsXRayed(t.xrayedObjectIds,!1),e.treeViewPlugin.withNodeTree(e.treeViewNode,(e=>{if(e.objectId){const i=t.objects[e.objectId];i&&(i.visible=!0)}}))}},{getTitle:e=>e.viewer.localeService.translate("treeViewContextMenu.hideAll")||"Hide All",getEnabled:function(e){return e.viewer.scene.visibleObjectIds.length>0},doAction:function(e){e.viewer.scene.setObjectsVisible(e.viewer.scene.visibleObjectIds,!1)}}],[{getTitle:e=>e.viewer.localeService.translate("treeViewContextMenu.show")||"Show",doAction:function(e){e.treeViewPlugin.withNodeTree(e.treeViewNode,(t=>{if(t.objectId){const i=e.viewer.scene.objects[t.objectId];i&&(i.visible=!0,i.xrayed&&(i.pickable=!0),i.xrayed=!1,i.selected=!1)}}))}},{getTitle:e=>e.viewer.localeService.translate("treeViewContextMenu.showOthers")||"Shows Others",doAction:function(e){const t=e.viewer.scene;t.setObjectsVisible(t.objectIds,!0),t.setObjectsPickable(t.xrayedObjectIds,!0),t.setObjectsXRayed(t.xrayedObjectIds,!1),e.treeViewPlugin.withNodeTree(e.treeViewNode,(e=>{if(e.objectId){const i=t.objects[e.objectId];i&&(i.visible=!1)}}))}},{getTitle:e=>e.viewer.localeService.translate("treeViewContextMenu.showAll")||"Show All",getEnabled:function(e){const t=e.viewer.scene;return t.numVisibleObjects0},doAction:function(e){const t=e.viewer.scene;t.setObjectsVisible(t.objectIds,!0),t.setObjectsPickable(t.xrayedObjectIds,!0),t.setObjectsXRayed(t.xrayedObjectIds,!1)}}],[{getTitle:e=>e.viewer.localeService.translate("treeViewContextMenu.xray")||"X-Ray",doAction:function(e){e.treeViewPlugin.withNodeTree(e.treeViewNode,(t=>{if(t.objectId){const i=e.viewer.scene.objects[t.objectId];i&&(i.selected=!1,i.xrayed=!0,i.visible=!0,i.pickable=e.bimViewer.getConfig("xrayPickable"))}}))}},{getTitle:e=>e.viewer.localeService.translate("treeViewContextMenu.undoXray")||"Undo X-Ray",doAction:function(e){e.treeViewPlugin.withNodeTree(e.treeViewNode,(t=>{if(t.objectId){const i=e.viewer.scene.objects[t.objectId];i&&(i.xrayed=!1,i.pickable=!0)}}))}},{getTitle:e=>e.viewer.localeService.translate("treeViewContextMenu.xrayOthers")||"X-Ray Others",doAction:function(e){const t=e.viewer.scene;t.setObjectsVisible(t.objectIds,!0),e.bimViewer.getConfig("xrayPickable")||t.setObjectsPickable(t.objectIds,!1),t.setObjectsXRayed(t.objectIds,!0),t.setObjectsSelected(t.selectedObjectIds,!1),e.treeViewPlugin.withNodeTree(e.treeViewNode,(e=>{if(e.objectId){const i=t.objects[e.objectId];i&&(i.xrayed=!1,i.pickable=!0)}}))}},{getTitle:e=>e.viewer.localeService.translate("treeViewContextMenu.xrayAll")||"X-Ray All",doAction:function(e){const t=e.viewer.scene;t.setObjectsVisible(t.objectIds,!0),t.setObjectsXRayed(t.objectIds,!0),t.setObjectsSelected(t.selectedObjectIds,!1),t.setObjectsPickable(t.objectIds,!1)}},{getTitle:e=>e.viewer.localeService.translate("treeViewContextMenu.xrayNone")||"X-Ray None",getEnabled:function(e){return e.viewer.scene.numXRayedObjects>0},doAction:function(e){const t=e.viewer.scene,i=t.xrayedObjectIds;t.setObjectsPickable(i,!0),t.setObjectsXRayed(i,!1)}}],[{getTitle:e=>e.viewer.localeService.translate("treeViewContextMenu.select")||"Select",doAction:function(e){e.treeViewPlugin.withNodeTree(e.treeViewNode,(t=>{if(t.objectId){const i=e.viewer.scene.objects[t.objectId];i&&(i.selected=!0,i.visible=!0)}}))}},{getTitle:e=>e.viewer.localeService.translate("treeViewContextMenu.undoSelect")||"Undo Select",doAction:function(e){e.treeViewPlugin.withNodeTree(e.treeViewNode,(t=>{if(t.objectId){const i=e.viewer.scene.objects[t.objectId];i&&(i.selected=!1)}}))}},{getTitle:e=>e.viewer.localeService.translate("treeViewContextMenu.selectNone")||"Select None",getEnabled:function(e){return e.viewer.scene.numSelectedObjects>0},doAction:function(e){e.viewer.scene.setObjectsSelected(e.viewer.scene.selectedObjectIds,!1)}}],[{getTitle:e=>e.viewer.localeService.translate("treeViewContextMenu.clearSlices")||"Clear Slices",getEnabled:function(e){return e.bimViewer.getNumSections()>0},doAction:function(e){e.bimViewer.clearSections()}}],s]}}class Lx extends dx{constructor(e,t={}){if(super(e),!t.objectsTabElement)throw"Missing config: objectsTabElement";if(!t.showAllObjectsButtonElement)throw"Missing config: showAllObjectsButtonElement";if(!t.hideAllObjectsButtonElement)throw"Missing config: hideAllObjectsButtonElement";if(!t.objectsElement)throw"Missing config: objectsElement";if(this._objectsTabElement=t.objectsTabElement,this._showAllObjectsButtonElement=t.showAllObjectsButtonElement,this._hideAllObjectsButtonElement=t.hideAllObjectsButtonElement,this._objectsTabButtonElement=this._objectsTabElement.querySelector(".xeokit-tab-btn"),!this._objectsTabButtonElement)throw"Missing DOM element: ,xeokit-tab-btn";const i=t.objectsElement;this._treeView=new xb(this.viewer,{containerElement:i,hierarchy:"containment",autoAddModels:!1,pruneEmptyNodes:!0}),this._treeViewContextMenu=new Rx(this.bimViewer,{hideOnAction:!0,enableMeasurements:t.enableMeasurements}),this._treeView.on("contextmenu",(e=>{this._treeViewContextMenu.context={bimViewer:this.bimViewer,viewer:e.viewer,treeViewPlugin:e.treeViewPlugin,treeViewNode:e.treeViewNode},this._treeViewContextMenu.show(e.event.pageX,e.event.pageY)})),this._treeView.on("nodeTitleClicked",(e=>{const t=this.viewer.scene,i=[];e.treeViewPlugin.withNodeTree(e.treeViewNode,(e=>{e.objectId&&i.push(e.objectId)}));e.treeViewNode.checked?(t.setObjectsXRayed(i,!1),t.setObjectsVisible(i,!1),t.setObjectsPickable(i,!0)):(t.setObjectsXRayed(i,!1),t.setObjectsVisible(i,!0),t.setObjectsPickable(i,!0))})),this._onModelLoaded=this.viewer.scene.on("modelLoaded",(e=>{if(this.viewer.metaScene.metaModels[e]){const t=this.bimViewer._modelsExplorer.getModelInfo(e);if(!t)return;this._treeView.addModel(e,{rootName:t.name})}})),this._onModelUnloaded=this.viewer.scene.on("modelUnloaded",(e=>{this.viewer.metaScene.metaModels[e]&&this._treeView.removeModel(e)})),this.bimViewer.on("reset",(()=>{this._treeView.collapse()}))}setEnabled(e){e?(this._objectsTabButtonElement.classList.remove("disabled"),this._showAllObjectsButtonElement.classList.remove("disabled"),this._hideAllObjectsButtonElement.classList.remove("disabled")):(this._objectsTabButtonElement.classList.add("disabled"),this._showAllObjectsButtonElement.classList.add("disabled"),this._hideAllObjectsButtonElement.classList.add("disabled"))}expandTreeViewToDepth(e){this._treeView.expandToDepth(e)}showNodeInTreeView(e){this._treeView.collapse(),this._treeView.showNode(e)}unShowNodeInTreeView(){this._treeView.unShowNode()}destroy(){super.destroy(),this._treeView.destroy(),this._treeViewContextMenu.destroy(),this.viewer.scene.off(this._onModelLoaded),this.viewer.scene.off(this._onModelUnloaded)}}class Ux extends dx{constructor(e,t={}){if(super(e),!t.classesTabElement)throw"Missing config: classesTabElement";if(!t.showAllClassesButtonElement)throw"Missing config: showAllClassesButtonElement";if(!t.hideAllClassesButtonElement)throw"Missing config: hideAllClassesButtonElement";if(!t.classesElement)throw"Missing config: classesElement";if(this._classesTabElement=t.classesTabElement,this._showAllClassesButtonElement=t.showAllClassesButtonElement,this._hideAllClassesButtonElement=t.hideAllClassesButtonElement,this._classesTabButtonElement=this._classesTabElement.querySelector(".xeokit-tab-btn"),!this._classesTabButtonElement)throw"Missing DOM element: xeokit-tab-btn";const i=t.classesElement;this._treeView=new xb(this.viewer,{containerElement:i,hierarchy:"types",autoAddModels:!1,pruneEmptyNodes:!0}),this._treeViewContextMenu=new Rx(this.bimViewer,{hideOnAction:!0,enableMeasurements:t.enableMeasurements}),this._treeView.on("contextmenu",(e=>{this._treeViewContextMenu.context={bimViewer:this.bimViewer,viewer:e.viewer,treeViewPlugin:e.treeViewPlugin,treeViewNode:e.treeViewNode},this._treeViewContextMenu.show(e.event.pageX,e.event.pageY)})),this._treeView.on("nodeTitleClicked",(e=>{const t=this.viewer.scene,i=[];e.treeViewPlugin.withNodeTree(e.treeViewNode,(e=>{e.objectId&&i.push(e.objectId)}));e.treeViewNode.checked?(t.setObjectsXRayed(i,!1),t.setObjectsVisible(i,!1),t.setObjectsPickable(i,!0)):(t.setObjectsXRayed(i,!1),t.setObjectsVisible(i,!0),t.setObjectsPickable(i,!0))})),this._onModelLoaded=this.viewer.scene.on("modelLoaded",(e=>{if(this.viewer.metaScene.metaModels[e]){const t=this.bimViewer._modelsExplorer.getModelInfo(e);if(!t)return;this._treeView.addModel(e,{rootName:t.name})}})),this._onModelUnloaded=this.viewer.scene.on("modelUnloaded",(e=>{this.viewer.metaScene.metaModels[e]&&this._treeView.removeModel(e)})),this.bimViewer.on("reset",(()=>{this._treeView.collapse()}))}setEnabled(e){e?(this._classesTabButtonElement.classList.remove("disabled"),this._showAllClassesButtonElement.classList.remove("disabled"),this._hideAllClassesButtonElement.classList.remove("disabled")):(this._classesTabButtonElement.classList.add("disabled"),this._showAllClassesButtonElement.classList.add("disabled"),this._hideAllClassesButtonElement.classList.add("disabled"))}expandTreeViewToDepth(e){this._treeView.expandToDepth(e)}showNodeInTreeView(e){this._treeView.collapse(),this._treeView.showNode(e)}unShowNodeInTreeView(){this._treeView.unShowNode()}destroy(){super.destroy(),this._treeView.destroy(),this._treeViewContextMenu.destroy(),this.viewer.scene.off(this._onModelLoaded),this.viewer.scene.off(this._onModelUnloaded)}}const kx=d.vec3();class Ox extends dx{constructor(e,t={}){if(super(e),!t.storeysTabElement)throw"Missing config: storeysTabElement";if(!t.showAllStoreysButtonElement)throw"Missing config: showAllStoreysButtonElement";if(!t.hideAllStoreysButtonElement)throw"Missing config: hideAllStoreysButtonElement";if(!t.storeysElement)throw"Missing config: storeysElement";if(this._storeysTabElement=t.storeysTabElement,this._showAllStoreysButtonElement=t.showAllStoreysButtonElement,this._hideAllStoreysButtonElement=t.hideAllStoreysButtonElement,this._storeysTabButtonElement=this._storeysTabElement.querySelector(".xeokit-tab-btn"),!this._storeysTabButtonElement)throw"Missing DOM element: .xeokit-tab-btn";const i=t.storeysElement;this._treeView=new xb(this.viewer,{containerElement:i,autoAddModels:!1,hierarchy:"storeys",autoExpandDepth:1}),this._treeViewContextMenu=new Rx(this.bimViewer,{hideOnAction:!0,enableMeasurements:t.enableMeasurements}),this._treeView.on("contextmenu",(e=>{this._treeViewContextMenu.context={bimViewer:this.bimViewer,viewer:e.viewer,treeViewPlugin:e.treeViewPlugin,treeViewNode:e.treeViewNode,pruneEmptyNodes:!0},this._treeViewContextMenu.show(e.event.pageX,e.event.pageY)})),this._treeView.on("nodeTitleClicked",(e=>{const t=this.viewer.scene,i=[];e.treeViewPlugin.withNodeTree(e.treeViewNode,(e=>{e.objectId&&i.push(e.objectId)}));e.treeViewNode.checked?(t.setObjectsXRayed(i,!1),t.setObjectsVisible(i,!1),t.setObjectsPickable(i,!0)):(t.setObjectsXRayed(i,!1),t.setObjectsVisible(i,!0),t.setObjectsPickable(i,!0))})),this._onModelLoaded=this.viewer.scene.on("modelLoaded",(e=>{const t=this.bimViewer._modelsExplorer.getModelInfo(e);t&&this._treeView.addModel(e,{rootName:t.name})})),this._onModelUnloaded=this.viewer.scene.on("modelUnloaded",(e=>{this.viewer.metaScene.metaModels[e]&&this._treeView.removeModel(e)})),this.bimViewer.on("reset",(()=>{this._treeView.collapse(),this._treeView.expandToDepth(1)}))}setEnabled(e){e?(this._storeysTabButtonElement.classList.remove("disabled"),this._showAllStoreysButtonElement.classList.remove("disabled"),this._hideAllStoreysButtonElement.classList.remove("disabled")):(this._storeysTabButtonElement.classList.add("disabled"),this._showAllStoreysButtonElement.classList.add("disabled"),this._hideAllStoreysButtonElement.classList.add("disabled"))}expandTreeViewToDepth(e){this._treeView.expandToDepth(e)}showNodeInTreeView(e){this._treeView.collapse(),this._treeView.showNode(e)}unShowNodeInTreeView(){this._treeView.unShowNode()}selectStorey(e,t){const i=this.viewer.metaScene.metaObjects[e];if(!i)return void this.error("selectStorey() - object is not found: '"+e+"'");if("IfcBuildingStorey"!==i.type)return void this.error("selectStorey() - object is not found: '"+e+"'");const s=i.getObjectIDsInSubtree();this._selectObjects(s,t)}_selectObjects(e,t){const i=this.viewer.scene,s=i.getAABB(e);this.viewer.cameraControl.pivotPos=d.getAABB3Center(s,kx),t?(i.setObjectsXRayed(i.objectIds,!0),i.setObjectsVisible(i.objectIds,!0),i.setObjectsPickable(i.objectIds,!1),i.setObjectsSelected(i.selectedObjectIds,!1),i.setObjectsXRayed(e,!1),i.setObjectsVisible(e,!0),i.setObjectsPickable(e,!0),this.viewer.cameraFlight.flyTo({aabb:s},(()=>{setTimeout((function(){i.setObjectsVisible(i.xrayedObjectIds,!1),i.setObjectsXRayed(i.xrayedObjectIds,!1)}),500),t()}))):(i.setObjectsVisible(i.objectIds,!1),i.setObjectsPickable(i.xrayedObjectIds,!0),i.setObjectsXRayed(i.xrayedObjectIds,!1),i.setObjectsSelected(i.selectedObjectIds,!1),i.setObjectsVisible(e,!0),this.viewer.cameraFlight.jumpTo({aabb:s}))}destroy(){super.destroy(),this._treeView.destroy(),this._treeViewContextMenu.destroy(),this.viewer.scene.off(this._onModelLoaded),this.viewer.scene.off(this._onModelUnloaded)}}const Nx=d.vec3();class Qx extends dx{constructor(e,t){if(super(e,t),!t.buttonElement)throw"Missing config: buttonElement";this._saveOrthoActive=null,this._buttonElement=t.buttonElement,this._cameraControlNavModeMediator=t.cameraControlNavModeMediator,this._active=!1,this.on("enabled",(e=>{e?this._buttonElement.classList.remove("disabled"):this._buttonElement.classList.add("disabled")})),this._buttonElement.addEventListener("click",(e=>{this.getEnabled()&&(this.bimViewer._sectionTool.hideControl(),this.setActive(!this.getActive(),(()=>{}))),e.preventDefault()})),this.bimViewer.on("reset",(()=>{this.setActive(!0,(()=>{}))}))}setEnabled(e){super.setEnabled(e),this._saveOrthoActive=this.bimViewer._orthoMode.getActive()}setActive(e,t){this._active!==e?(this._active=e,e?(this._buttonElement.classList.add("active"),t?this._enterThreeDMode((()=>{this.fire("active",this._active),t()})):(this._enterThreeDMode(),this.fire("active",this._active))):(this._buttonElement.classList.remove("active"),t?this._exitThreeDMode((()=>{this.fire("active",this._active),t()})):(this._exitThreeDMode(),this.fire("active",this._active)))):t&&t()}_enterThreeDMode(e){const t=this.viewer,i=t.scene,s=i.getAABB(i.visibleObjectIds),r=d.getAABB3Diag(s),o=d.getAABB3Center(s,Nx),n=Math.abs(r/Math.tan(32.5)),a=i.camera,l=a.yUp?[-1,-1,-1]:[1,1,1],A=a.yUp?[-1,1,-1]:[-1,1,1];t.cameraControl.pivotPos=o,this.bimViewer._navCubeMode.setActive(!0),this.bimViewer._firstPersonMode.setEnabled(!0),this._cameraControlNavModeMediator.setThreeDModeActive(!0),this.bimViewer._sectionTool.setEnabled(!0),this.bimViewer._orthoMode.setEnabled(!0),e?t.cameraFlight.flyTo({look:o,eye:[o[0]-n*l[0],o[1]-n*l[1],o[2]-n*l[2]],up:A,orthoScale:1.3*r,duration:1,projection:this._saveOrthoActive?"ortho":"perspective"},(()=>{e()})):t.cameraFlight.jumpTo({look:o,eye:[o[0]-n*l[0],o[1]-n*l[1],o[2]-n*l[2]],up:A,orthoScale:1.3*r,projection:this._saveOrthoActive?"ortho":"perspective"})}_exitThreeDMode(e){const t=this.viewer,i=t.scene,s=i.camera,r=i.getAABB(i.visibleObjectIds),o=d.getAABB3Center(r),n=d.getAABB3Diag(r),a=Math.abs(n/Math.tan(45*d.DEGTORAD)),l=1.3*n,A=Nx;A[0]=o[0]+s.worldUp[0]*a,A[1]=o[1]+s.worldUp[1]*a,A[2]=o[2]+s.worldUp[2]*a;const h=d.mulVec3Scalar(s.worldForward,-1,[]);this.bimViewer._sectionTool.setActive(!1),this.bimViewer._firstPersonMode.setEnabled(!1),this._saveOrthoActive=this.bimViewer._orthoMode.getActive(),this.bimViewer._orthoMode.setEnabled(!1),this._cameraControlNavModeMediator.setThreeDModeActive(!1),e?t.cameraFlight.flyTo({eye:A,look:o,up:h,orthoScale:l,projection:"ortho"},(()=>{this.bimViewer._navCubeMode.setActive(!1)})):(t.cameraFlight.jumpTo({eye:A,look:o,up:h,orthoScale:l,projection:"ortho"}),this.bimViewer._navCubeMode.setActive(!1))}}class Vx extends n{constructor(e,t={}){super(t),this._bimViewer=e,this._buildMenu(t)}_buildMenu(e){const t=[],i=[],s=[],r=!!e.enableMeasurements;this._bimViewer._enablePropertiesInspector&&t.push({getTitle:e=>e.viewer.localeService.translate("objectContextMenu.inspectProperties")||"Inspect Properties",doAction:e=>{const t=e.entity.id;e.bimViewer.showObjectProperties(t)}}),t.push({getTitle:e=>e.viewer.localeService.translate("objectContextMenu.showInTree")||"Show in Explorer",doAction:e=>{const t=e.entity.id;e.showObjectInExplorers(t)}}),i.push({getTitle:e=>e.viewer.localeService.translate("objectContextMenu.viewFit")||"View Fit",doAction:e=>{const t=e.viewer,i=t.scene,s=e.entity;t.cameraFlight.flyTo({aabb:s.aabb,duration:.5},(()=>{setTimeout((function(){i.setObjectsHighlighted(i.highlightedObjectIds,!1)}),500)})),t.cameraControl.pivotPos=d.getAABB3Center(s.aabb)}},{getTitle:e=>e.viewer.localeService.translate("canvasContextMenu.viewFitSelection")||"View Fit Selected",getEnabled:e=>e.viewer.scene.numSelectedObjects>0,doAction:e=>{const t=e.viewer,i=t.scene,s=i.getAABB(i.selectedObjectIds);t.cameraFlight.flyTo({aabb:s,duration:.5}),t.cameraControl.pivotPos=d.getAABB3Center(s)}},{getTitle:e=>e.viewer.localeService.translate("objectContextMenu.viewFitAll")||"View Fit All",doAction:e=>{const t=e.viewer,i=t.scene,s=i.getAABB(i.visibleObjectIds);t.cameraFlight.flyTo({aabb:s,duration:.5}),t.cameraControl.pivotPos=d.getAABB3Center(s)}}),r&&s.push({getTitle:e=>e.viewer.localeService.translate("canvasContextMenu.measurements")||"Measurements",doAction:function(e){},items:[[{getTitle:e=>e.viewer.localeService.translate("canvasContextMenu.clearMeasurements")||"Clear",getEnabled:e=>e.bimViewer.getNumMeasurements()>0,doAction:e=>{e.bimViewer.clearMeasurements()}},{getTitle:e=>e.bimViewer.getMeasurementsAxisVisible()?e.viewer.localeService.translate("canvasContextMenu.hideMeasurementAxisWires")||"Hide Axis Wires":e.viewer.localeService.translate("canvasContextMenu.showMeasurementAxisWires")||"Show Axis Wires",getEnabled:e=>e.bimViewer.getNumMeasurements()>0,doAction:e=>{e.bimViewer.setMeasurementsAxisVisible(!e.bimViewer.getMeasurementsAxisVisible())}},{getTitle:e=>e.bimViewer.getMeasurementsSnappingEnabled()?e.viewer.localeService.translate("canvasContextMenu.disableMeasurementSnapping")||"Disable Snapping":e.viewer.localeService.translate("canvasContextMenu.enableMeasurementSnapping")||"Enable Snapping",getEnabled:e=>e.bimViewer.getNumMeasurements()>0,doAction:e=>{e.bimViewer.setMeasurementsSnappingEnabled(!e.bimViewer.getMeasurementsSnappingEnabled())}}]]}),this.items=[t,i,[{getTitle:e=>e.viewer.localeService.translate("objectContextMenu.hide")||"Hide",getEnabled:e=>e.entity.visible,doAction:e=>{e.entity.visible=!1}},{getTitle:e=>e.viewer.localeService.translate("objectContextMenu.hideOthers")||"Hide Others",doAction:e=>{const t=e.viewer,i=t.scene,s=e.entity,r=t.metaScene.metaObjects[s.id];r&&(i.setObjectsVisible(i.visibleObjectIds,!1),r.withMetaObjectsInSubtree((e=>{const t=i.objects[e.id];t&&(t.visible=!0)})))}},{getTitle:e=>e.viewer.localeService.translate("objectContextMenu.hideAll")||"Hide All",getEnabled:e=>e.viewer.scene.numVisibleObjects>0,doAction:e=>{e.viewer.scene.setObjectsVisible(e.viewer.scene.visibleObjectIds,!1)}},{getTitle:e=>e.viewer.localeService.translate("objectContextMenu.showAll")||"Show All",getEnabled:e=>{const t=e.viewer.scene;return t.numVisibleObjects0},doAction:e=>{const t=e.viewer.scene;t.setObjectsVisible(t.objectIds,!0),t.setObjectsPickable(t.xrayedObjectIds,!0),t.setObjectsXRayed(t.xrayedObjectIds,!1)}}],[{getTitle:e=>e.viewer.localeService.translate("objectContextMenu.xray")||"X-Ray",getEnabled:e=>!e.entity.xrayed,doAction:e=>{const t=e.entity;t.xrayed=!0,t.pickable=e.bimViewer.getConfig("xrayPickable")}},{getTitle:e=>e.viewer.localeService.translate("objectContextMenu.xrayOthers")||"X-Ray Others",doAction:e=>{const t=e.viewer,i=t.scene,s=e.entity,r=t.metaScene.metaObjects[s.id];r&&(i.setObjectsVisible(i.objectIds,!0),i.setObjectsXRayed(i.objectIds,!0),e.bimViewer.getConfig("xrayPickable")||i.setObjectsPickable(i.objectIds,!1),r.withMetaObjectsInSubtree((e=>{const t=i.objects[e.id];t&&(t.xrayed=!1,t.pickable=!0)})))}},{getTitle:e=>e.viewer.localeService.translate("objectContextMenu.xrayAll")||"X-Ray All",getEnabled:e=>{const t=e.viewer.scene;return t.numXRayedObjects{const t=e.viewer.scene;t.setObjectsVisible(t.objectIds,!0),e.bimViewer.getConfig("xrayPickable")||t.setObjectsPickable(t.objectIds,!1),t.setObjectsXRayed(t.objectIds,!0)}},{getTitle:e=>e.viewer.localeService.translate("objectContextMenu.xrayNone")||"X-Ray None",getEnabled:e=>e.viewer.scene.numXRayedObjects>0,doAction:e=>{const t=e.viewer.scene,i=t.xrayedObjectIds;t.setObjectsPickable(i,!0),t.setObjectsXRayed(i,!1)}}],[{getTitle:e=>e.viewer.localeService.translate("objectContextMenu.select")||"Select",getEnabled:e=>!e.entity.selected,doAction:e=>{e.entity.selected=!0}},{getTitle:e=>e.viewer.localeService.translate("objectContextMenu.undoSelect")||"Undo Select",getEnabled:e=>e.entity.selected,doAction:e=>{e.entity.selected=!1}},{getTitle:e=>e.viewer.localeService.translate("objectContextMenu.selectNone")||"Select None",getEnabled:e=>e.viewer.scene.numSelectedObjects>0,doAction:e=>{e.viewer.scene.setObjectsSelected(e.viewer.scene.selectedObjectIds,!1)}}],[{getTitle:e=>e.viewer.localeService.translate("objectContextMenu.clearSlices")||"Clear Slices",getEnabled:e=>e.bimViewer.getNumSections()>0,doAction:e=>{e.bimViewer.clearSections()}}],s]}}class jx extends n{constructor(e,t={}){super({hideOnAction:t.hideOnAction,context:t.context,items:[[{getTitle:e=>e.viewer.localeService.translate("canvasContextMenu.viewFitAll")||"View Fit All",doAction:e=>{const t=e.viewer,i=t.scene,s=i.getAABB(i.visibleObjectIds);t.cameraFlight.flyTo({aabb:s,duration:.5}),t.cameraControl.pivotPos=d.getAABB3Center(s)}},{getTitle:e=>e.viewer.localeService.translate("canvasContextMenu.viewFitSelection")||"View Fit Selected",getEnabled:e=>e.viewer.scene.numSelectedObjects>0,doAction:e=>{const t=e.viewer,i=t.scene,s=i.getAABB(i.selectedObjectIds);t.cameraFlight.flyTo({aabb:s,duration:.5}),t.cameraControl.pivotPos=d.getAABB3Center(s)}}],[{getTitle:e=>e.viewer.localeService.translate("canvasContextMenu.hideAll")||"Hide All",getEnabled:e=>e.viewer.scene.numVisibleObjects>0,doAction:e=>{e.viewer.scene.setObjectsVisible(e.viewer.scene.visibleObjectIds,!1)}},{getTitle:e=>e.viewer.localeService.translate("canvasContextMenu.showAll")||"Show All",getEnabled:e=>{const t=e.viewer.scene;return t.numVisibleObjects0},doAction:e=>{const t=e.viewer.scene;t.setObjectsVisible(t.objectIds,!0),t.setObjectsXRayed(t.xrayedObjectIds,!1)}}],[{getTitle:e=>e.viewer.localeService.translate("canvasContextMenu.xRayAll")||"X-Ray All",getEnabled:e=>{const t=e.viewer.scene;return t.numXRayedObjects{const t=e.viewer.scene;t.setObjectsVisible(t.objectIds,!0),t.setObjectsXRayed(t.objectIds,!0),e.bimViewer.getConfig("xrayPickable")||t.setObjectsPickable(t.objectIds,!1)}},{getTitle:e=>e.viewer.localeService.translate("canvasContextMenu.xRayNone")||"X-Ray None",getEnabled:e=>e.viewer.scene.numXRayedObjects>0,doAction:e=>{const t=e.viewer.scene.xrayedObjectIds;e.viewer.scene.setObjectsPickable(t,!0),e.viewer.scene.setObjectsXRayed(t,!1)}}],[{getTitle:e=>e.viewer.localeService.translate("canvasContextMenu.selectNone")||"Select None",getEnabled:e=>e.viewer.scene.numSelectedObjects>0,doAction:e=>{e.viewer.scene.setObjectsSelected(e.viewer.scene.selectedObjectIds,!1)}}],[{getTitle:e=>e.viewer.localeService.translate("canvasContextMenu.resetView")||"Reset View",doAction:e=>{e.bimViewer.resetView()}}],[{getTitle:e=>e.viewer.localeService.translate("canvasContextMenu.clearSlices")||"Clear Slices",getEnabled:e=>e.bimViewer.getNumSections()>0,doAction:e=>{e.bimViewer.clearSections()}}],t.enableMeasurements?[{getTitle:e=>"Measurements",doAction:function(e){},items:[[{getTitle:e=>e.viewer.localeService.translate("canvasContextMenu.clearMeasurements")||"Clear",getEnabled:e=>e.bimViewer.getNumMeasurements()>0,doAction:e=>{e.bimViewer.clearMeasurements()}},{getTitle:e=>e.bimViewer.getMeasurementsAxisVisible()?e.viewer.localeService.translate("canvasContextMenu.hideMeasurementAxisWires")||"Hide Axis Wires":e.viewer.localeService.translate("canvasContextMenu.showMeasurementAxisWires")||"Show Axis Wires",getEnabled:e=>e.bimViewer.getNumMeasurements()>0,doAction:e=>{e.bimViewer.setMeasurementsAxisVisible(!e.bimViewer.getMeasurementsAxisVisible())}},{getTitle:e=>e.bimViewer.getMeasurementsSnappingEnabled()?e.viewer.localeService.translate("canvasContextMenu.disableMeasurementSnapping")||"Disable Snapping":e.viewer.localeService.translate("canvasContextMenu.enableMeasurementSnapping")||"Enable Snapping",getEnabled:e=>e.bimViewer.getNumMeasurements()>0,doAction:e=>{e.bimViewer.setMeasurementsSnappingEnabled(!e.bimViewer.getMeasurementsSnappingEnabled())}}]]}]:[]]})}}class Hx extends dx{constructor(e,t){if(super(e,t),!t.buttonElement)throw"Missing config: buttonElement";this._buttonElement=t.buttonElement,this.on("enabled",(e=>{e?this._buttonElement.classList.remove("disabled"):this._buttonElement.classList.add("disabled")})),this._buttonElement.addEventListener("click",(e=>{this.getEnabled()&&this.setActive(!this.getActive(),(()=>{})),e.preventDefault()})),this.bimViewer.on("reset",(()=>{this.setActive(!1)})),this.viewer.camera.on("projection",(()=>{const e="ortho"===this.viewer.camera.projection;this._active=e,this._active?this._buttonElement.classList.add("active"):this._buttonElement.classList.remove("active")})),this._active=!1,this._buttonElement.classList.remove("active")}setActive(e,t){this._active!==e?(this._active=e,e?(this._buttonElement.classList.add("active"),t?this._enterOrthoMode((()=>{this.fire("active",this._active),t()})):(this._enterOrthoMode(),this.fire("active",this._active))):(this._buttonElement.classList.remove("active"),t?this._exitOrthoMode((()=>{this.fire("active",this._active),t()})):(this._exitOrthoMode(),this.fire("active",this._active)))):t&&t()}_enterOrthoMode(e){e?this.viewer.cameraFlight.flyTo({projection:"ortho",duration:.5},e):this.viewer.cameraFlight.jumpTo({projection:"ortho"})}_exitOrthoMode(e){e?this.viewer.cameraFlight.flyTo({projection:"perspective",duration:.5},e):this.viewer.cameraFlight.jumpTo({projection:"perspective"})}}class zx extends dx{constructor(e,t={}){if(super(e),!t.propertiesTabElement)throw"Missing config: propertiesTabElement";if(!t.propertiesElement)throw"Missing config: propertiesElement";if(this._metaObject=null,this._propertiesTabElement=t.propertiesTabElement,this._propertiesElement=t.propertiesElement,this._propertiesTabButtonElement=this._propertiesTabElement.querySelector(".xeokit-tab-btn"),!this._propertiesTabButtonElement)throw"Missing DOM element: ,xeokit-tab-btn";this._onModelUnloaded=this.viewer.scene.on("modelUnloaded",(e=>{if(this._metaObject){const t=this._metaObject.metaModels;for(let i=0,s=t.length;i{this.clear()})),document.addEventListener("click",this._clickListener=e=>{e.target.matches(".xeokit-accordion .xeokit-accordion-button")&&(e.target.parentElement.classList.contains("active")?e.target.parentElement.classList.remove("active"):e.target.parentElement.classList.add("active"))}),this.clear()}showObjectPropertySets(e){const t=this.viewer.metaScene.metaObjects[e];if(!t)return;const i=t.propertySets;i&&i.length>0?this._setPropertySets(t,i):this._setPropertySets(t),this._metaObject=t}clear(){const e=[],t=this.viewer.localeService.translate("propertiesInspector.noObjectSelectedWarning")||"No object inspected. Right-click or long-tab an object and select 'Inspect Properties' to view its properties here.";e.push('
'),e.push(`

${t}

`),e.push("
");const i=e.join("");this._propertiesElement.innerHTML=i}_setPropertySets(e,t){const i=[];if(i.push('
'),e){i.push(''),i.push(``),e.type&&i.push(``),i.push(``),i.push(``);const s=e.attributes;if(s)for(let e in s)i.push(``);if(i.push("
Name:${e.name}
Class:${e.type}
UUID:${e.originalSystemId}
Viewer ID:${e.id}
${Gx(e)}:${s[e]}
"),t&&0!==t.length){i.push("
"),i.push('
');for(let e=0,s=t.length;e0){i.push(`
\n

${s.name}

\n
\n `);for(let e=0,t=r.length;e`)}i.push("
${t.name||t.label}:${t.value}
\n
\n
")}}i.push("
")}else{const e=this.viewer.localeService.translate("propertiesInspector.noPropSetWarning")||"No properties sets found for this object";i.push(`

${e}

`),i.push("")}}else i.push('

No object selected

');this._propertiesElement.innerHTML=i.join("")}setEnabled(e){e?this._propertiesTabButtonElement.classList.remove("disabled"):this._propertiesTabButtonElement.classList.add("disabled")}destroy(){super.destroy(),this.viewer.scene.off(this._onModelLoaded),this.viewer.scene.off(this._onModelUnloaded),document.removeEventListener("click",this._clickListener)}}function Gx(e){return e?e.charAt(0).toUpperCase()+e.slice(1):e}const Wx=new Float32Array(3);class Kx{constructor(e){if(!e)throw"Parameter expected: cfg";if(!e.viewer)throw"Parameter expected: cfg.viewer";this.viewer=e.viewer,this._maxTreeDepth=e.maxTreeDepth||15,this._root=null,this._needsRebuild=!0,this._onModelLoaded=this.viewer.scene.on("modelLoaded",(e=>{this._needsRebuild=!0})),this._onModelUnloaded=this.viewer.scene.on("modelUnloaded",(e=>{this._needsRebuild=!0}))}get root(){return this._needsRebuild&&this._rebuild(),this._root}_rebuild(){const e=this.viewer.scene;this._root={aabb:e.getAABB()};for(let t in e.objects){const i=e.objects[t];this._insertEntity(this._root,i,1)}this._needsRebuild=!1}_insertEntity(e,t,i){const s=t.aabb;if(i>=this._maxTreeDepth)return e.entities=e.entities||[],void e.entities.push(t);if(e.left&&d.containsAABB3(e.left.aabb,s))return void this._insertEntity(e.left,t,i+1);if(e.right&&d.containsAABB3(e.right.aabb,s))return void this._insertEntity(e.right,t,i+1);const r=e.aabb;Wx[0]=r[3]-r[0],Wx[1]=r[4]-r[1],Wx[2]=r[5]-r[2];let o=0;if(Wx[1]>Wx[o]&&(o=1),Wx[2]>Wx[o]&&(o=2),!e.left){const n=r.slice();if(n[o+3]=(r[o]+r[o+3])/2,e.left={aabb:n},d.containsAABB3(n,s))return void this._insertEntity(e.left,t,i+1)}if(!e.right){const n=r.slice();if(n[o]=(r[o]+r[o+3])/2,e.right={aabb:n},d.containsAABB3(n,s))return void this._insertEntity(e.right,t,i+1)}e.entities=e.entities||[],e.entities.push(t)}destroy(){const e=this.viewer.scene;e.off(this._onModelLoaded),e.off(this._onModelUnloaded),this._root=null,this._needsRebuild=!0}}class Xx extends dx{constructor(e,t){if(super(e),!t.buttonElement)throw"Missing config: buttonElement";this._objectsKdTree3=t.objectsKdTree3,this._marquee=d.AABB2(),this._marqueeFrustum=new U,this._marqueeFrustumProjMat=d.mat4(),this._marqueeDir=!1;const i=t.buttonElement;this.on("enabled",(e=>{e?i.classList.remove("disabled"):i.classList.add("disabled")})),this.on("active",(e=>{e?(i.classList.add("active"),this._objectsKdTree3.root):i.classList.remove("active")})),i.addEventListener("click",(e=>{if(this.getEnabled()){const e=this.getActive();this.setActive(!e)}e.preventDefault()})),this.bimViewer.on("reset",(()=>{this.setActive(!1)}));const s=this.viewer.scene,r=s.canvas.canvas;this._marqueeElement=document.createElement("div"),document.body.appendChild(this._marqueeElement);const o=this._marqueeElement.style;let n,a,l,A,h,c,u,p;o.position="absolute",o["z-index"]="40000005",o.width="8px",o.height="8px",o.visibility="hidden",o.top="0px",o.left="0px",o["box-shadow"]="0 2px 5px 0 #182A3D;",o.opacity=1,o["pointer-events"]="none";let g=!1,m=!1;r.addEventListener("mousedown",(e=>{if(!this.getActive()||!this.getEnabled())return;if(0!==e.button)return;const t=this.bimViewer.viewer.scene.input;t.keyDown[t.KEY_CTRL]||s.setObjectsSelected(s.selectedObjectIds,!1),n=e.pageX,a=e.pageY,o.visibility="visible",o.left=`${n}px`,o.top=`${a}px`,o.width="0px",o.height="0px",o.display="block",h=e.offsetX,c=e.offsetY,g=!0,this.viewer.cameraControl.pointerEnabled=!1})),r.addEventListener("mouseup",(e=>{if(!this.getActive()||!this.getEnabled())return;if(!g&&!m)return;if(0!==e.button)return;l=e.pageX,A=e.pageY;const t=Math.abs(l-n),i=Math.abs(A-a);o.width=`${t}px`,o.height=`${i}px`,o.visibility="hidden",g=!1,this.viewer.cameraControl.pointerEnabled=!0,m&&(m=!1),(t>3||i>3)&&this._marqueePick()})),document.addEventListener("mouseup",(e=>{this.getActive()&&this.getEnabled()&&0===e.button&&g&&(o.visibility="hidden",g=!1,m=!0,this.viewer.cameraControl.pointerEnabled=!0)}),!0),r.addEventListener("mousemove",(e=>{if(!this.getActive()||!this.getEnabled())return;if(0!==e.button)return;if(!g)return;const t=e.pageX,i=e.pageY,s=t-n,r=i-a;o.width=`${Math.abs(s)}px`,o.height=`${Math.abs(r)}px`,o.left=`${Math.min(n,t)}px`,o.top=`${Math.min(a,i)}px`,u=e.offsetX,p=e.offsetY;const l=h{if(s===U.INTERSECT&&(s=O(this._marqueeFrustum,i.aabb)),s!==U.OUTSIDE){if(i.entities){const t=i.entities;for(let i=0,s=t.length;ie.measurement.axisVisible?"Hide Measurement Axis":"Show Measurement Axis",doAction:function(e){e.measurement.axisVisible=!e.measurement.axisVisible}},{getTitle:e=>e.measurement.labelsVisible?"Hide Measurement Labels":"Show Measurement Labels",doAction:function(e){e.measurement.labelsVisible=!e.measurement.labelsVisible}}],[{title:"Delete Measurement",doAction:function(e){e.measurement.destroy()}}]]}),this._contextMenu.on("hidden",(()=>{this._contextMenu.context.measurement&&this._contextMenu.context.measurement.setHighlighted(!1)})),this._distanceMeasurementsPlugin=new fh(this.viewer,{defaultAxisVisible:!1}),this._distanceMeasurementsPlugin.on("mouseOver",(e=>{e.measurement.setHighlighted(!0)})),this._distanceMeasurementsPlugin.on("mouseLeave",(e=>{this._contextMenu.shown&&this._contextMenu.context.measurement.id===e.measurement.id||e.measurement.setHighlighted(!1)})),this._distanceMeasurementsPlugin.on("contextMenu",(e=>{this._contextMenu.context={distanceMeasurementsPlugin:this._distanceMeasurementsPlugin,measurement:e.measurement},this._contextMenu.show(e.event.clientX,e.event.clientY),e.event.preventDefault()})),this._distanceMeasurementsMouseControl=new mh(this._distanceMeasurementsPlugin,{}),this._distanceMeasurementsMouseControl.snapping=!0,this.on("enabled",(e=>{e?i.classList.remove("disabled"):i.classList.add("disabled")})),this.on("active",(e=>{e?(i.classList.add("active"),this._distanceMeasurementsMouseControl.activate()):(i.classList.remove("active"),this._distanceMeasurementsMouseControl.deactivate())})),i.addEventListener("click",(e=>{if(this.getEnabled()){const e=this.getActive();this.setActive(!e)}e.preventDefault()})),this.bimViewer.on("reset",(()=>{this.setActive(!1),this.clear()}))}getNumMeasurements(){return Object.keys(this._distanceMeasurementsPlugin.measurements).length}setMeasurementsAxisVisible(e){this._distanceMeasurementsPlugin.setAxisVisible(e)}getMeasurementsAxisVisible(){return this._distanceMeasurementsPlugin.getAxisVisible()}setSnappingEnabled(e){return this._distanceMeasurementsMouseControl.snapping=e}getSnappingEnabled(){return this._distanceMeasurementsMouseControl.snapping}clear(){this._distanceMeasurementsPlugin.clear()}destroy(){this._distanceMeasurementsPlugin.destroy(),this._distanceMeasurementsMouseControl.destroy(),this._contextMenu.destroy(),super.destroy()}}class qx extends dx{constructor(e,t){if(super(e),!t.buttonElement)throw"Missing config: buttonElement";const i=t.buttonElement;this._contextMenu=new n({items:[[{getTitle:e=>e.measurement.labelsVisible?"Hide Measurement Label":"Show Measurement Label",doAction:function(e){e.measurement.labelsVisible=!e.measurement.labelsVisible}}],[{title:"Delete Measurement",doAction:function(e){e.measurement.destroy()}}]]}),this._contextMenu.on("hidden",(()=>{this._contextMenu.context.measurement&&this._contextMenu.context.measurement.setHighlighted(!1)})),this._angleMeasurementsPlugin=new ge(this.viewer,{}),this._angleMeasurementsPlugin.on("mouseOver",(e=>{e.measurement.setHighlighted(!0)})),this._angleMeasurementsPlugin.on("mouseLeave",(e=>{this._contextMenu.shown&&this._contextMenu.context.measurement.id===e.measurement.id||e.measurement.setHighlighted(!1)})),this._angleMeasurementsPlugin.on("contextMenu",(e=>{this._contextMenu.context={angleMeasurementsPlugin:this._angleMeasurementsPlugin,measurement:e.measurement},this._contextMenu.show(e.event.clientX,e.event.clientY),e.event.preventDefault()})),this._angleMeasurementsMouseControl=new pe(this._angleMeasurementsPlugin,{}),this._angleMeasurementsMouseControl.snapping=!0,this.on("enabled",(e=>{e?i.classList.remove("disabled"):i.classList.add("disabled")})),this.on("active",(e=>{e?(i.classList.add("active"),this._angleMeasurementsMouseControl.activate()):(i.classList.remove("active"),this._angleMeasurementsMouseControl.deactivate())})),i.addEventListener("click",(e=>{if(this.getEnabled()){const e=this.getActive();this.setActive(!e)}e.preventDefault()})),this.bimViewer.on("reset",(()=>{this.setActive(!1),this.clear()}))}getNumMeasurements(){return Object.keys(this._angleMeasurementsPlugin.measurements).length}setSnappingEnabled(e){return this._angleMeasurementsMouseControl.snapping=e}getSnappingEnabled(){return this._angleMeasurementsMouseControl.snapping}clear(){this._angleMeasurementsPlugin.clear()}destroy(){this._angleMeasurementsPlugin.destroy(),this._angleMeasurementsMouseControl.destroy(),this._contextMenu.destroy(),super.destroy()}}function Zx(e){const t="xeokit-tab",i="active";function s(e){let s=e.parentNode.querySelectorAll("."+t);for(let t=0;t{e.preventDefault()},o.oncontextmenu=e=>{e.preventDefault()},n.oncontextmenu=e=>{e.preventDefault()};const l=new G_({localeService:t.localeService,canvasElement:i,keyboardEventsElement:t.keyboardEventsElement,transparent:!1,backgroundColor:[1,1,1],backgroundColorFromAmbientLight:!1,saoEnabled:!0,pbrEnabled:!1,colorTextureEnabled:!0,numCachedSectionPlanes:4});super(null,t,e,l),this._configs={},this._enableAddModels=!!t.enableEditModels,this._enableMeasurements=!1!==t.enableMeasurements,this._enablePropertiesInspector=!!t.inspectorElement,this.viewer=l,this._objectsKdTree3=new Kx({viewer:l}),this._customizeViewer(),this._initCanvasContextMenus(),s.innerHTML=function(e){return'
\n
\n Models\n
\n
\n \n '+(e.enableEditModels?'':"")+'
\n
\n
\n
\n
\n Objects\n
\n
\n \n \n
\n
\n
\n
\n
\n Classes\n
\n
\n \n \n
\n
\n
\n
\n
\n Storeys\n
\n
\n \n \n
\n
\n
\n
\n
'}(t),o.innerHTML=function(e={}){return'
\n \x3c!-- Reset button --\x3e\n
\n \n
\n
\n \x3c!-- 3D Mode button --\x3e\n \n \x3c!-- Perspective/Ortho Mode button --\x3e\n \n \x3c!-- Fit button --\x3e\n \n \x3c!-- First Person mode button --\x3e\n \n \x3c!-- Show/hide IFCSpaces --\x3e\n \n
\n \x3c!-- Tools button group --\x3e\n
\n \x3c!-- Hide tool button --\x3e\n \n \x3c!-- Select tool button --\x3e\n \n \x3c!-- Marquee select tool button --\x3e\n '+(e.enableMeasurements?'\x3c!-- Measure distance tool button --\x3e\n \n \x3c!-- Measure angle tool button --\x3e\n ':" ")+'\x3c!-- section tool button --\x3e\n \n
\n
'}({enableMeasurements:this._enableMeasurements}),this._enablePropertiesInspector&&(r.innerHTML='
\n
\n Properties\n
\n
\n
\n
\n
'),this._explorerElement=s,this._inspectorElement=r,Zx(s),this._enablePropertiesInspector&&Zx(r),this._modelsExplorer=new Sx(this,{enableMeasurements:this._enableMeasurements,modelsTabElement:s.querySelector(".xeokit-modelsTab"),loadModelsButtonElement:s.querySelector(".xeokit-loadAllModels"),unloadModelsButtonElement:s.querySelector(".xeokit-unloadAllModels"),addModelButtonElement:s.querySelector(".xeokit-addModel"),modelsElement:s.querySelector(".xeokit-models"),enableEditModels:this._enableAddModels}),this._objectsExplorer=new Lx(this,{enableMeasurements:this._enableMeasurements,objectsTabElement:s.querySelector(".xeokit-objectsTab"),showAllObjectsButtonElement:s.querySelector(".xeokit-showAllObjects"),hideAllObjectsButtonElement:s.querySelector(".xeokit-hideAllObjects"),objectsElement:s.querySelector(".xeokit-objects")}),this._classesExplorer=new Ux(this,{enableMeasurements:this._enableMeasurements,classesTabElement:s.querySelector(".xeokit-classesTab"),showAllClassesButtonElement:s.querySelector(".xeokit-showAllClasses"),hideAllClassesButtonElement:s.querySelector(".xeokit-hideAllClasses"),classesElement:s.querySelector(".xeokit-classes")}),this._storeysExplorer=new Ox(this,{enableMeasurements:this._enableMeasurements,storeysTabElement:s.querySelector(".xeokit-storeysTab"),showAllStoreysButtonElement:s.querySelector(".xeokit-showAllStoreys"),hideAllStoreysButtonElement:s.querySelector(".xeokit-hideAllStoreys"),storeysElement:s.querySelector(".xeokit-storeys")}),this._enablePropertiesInspector&&(this._propertiesInspector=new zx(this,{propertiesTabElement:r.querySelector(".xeokit-propertiesTab"),propertiesElement:r.querySelector(".xeokit-properties")})),this._resetAction=new mx(this,{buttonElement:o.querySelector(".xeokit-reset"),active:!1}),this._fitAction=new _x(this,{buttonElement:o.querySelector(".xeokit-fit"),active:!1});const A=new function(e){let t=!1;this.setThreeDModeActive=i=>{i?(e._firstPersonMode.setActive(!1),e._marqueeSelectionTool.setEnabled(!0),e.viewer.cameraControl.navMode="orbit"):(e._marqueeSelectionTool.setEnabled(!1),e._marqueeSelectionTool.setActive(!1),e._firstPersonMode.setActive(!1),e.viewer.cameraControl.navMode="planView"),t=i},this.setFirstPersonModeActive=i=>{e.viewer.cameraControl.navMode=i?"firstPerson":t?"orbit":"planView"}}(this);this._threeDMode=new Qx(this,{buttonElement:o.querySelector(".xeokit-threeD"),cameraControlNavModeMediator:A,active:!1}),this._orthoMode=new Hx(this,{buttonElement:o.querySelector(".xeokit-ortho"),active:!1}),this._firstPersonMode=new vx(this,{buttonElement:o.querySelector(".xeokit-firstPerson"),cameraControlNavModeMediator:A,active:!1}),this._hideTool=new bx(this,{buttonElement:o.querySelector(".xeokit-hide"),active:!1}),this._selectionTool=new xx(this,{buttonElement:o.querySelector(".xeokit-select"),active:!1}),this._marqueeSelectionTool=new Xx(this,{buttonElement:o.querySelector(".xeokit-marquee"),active:!1,objectsKdTree3:this._objectsKdTree3}),this._showSpacesMode=new wx(this,{buttonElement:o.querySelector(".xeokit-showSpaces"),active:!1}),this._queryTool=new yx(this,{active:!1}),this._sectionTool=new Mx(this,{buttonElement:o.querySelector(".xeokit-section"),counterElement:o.querySelector(".xeokit-section-counter"),menuButtonElement:o.querySelector(".xeokit-section-menu-button"),menuButtonArrowElement:o.querySelector(".xeokit-section-menu-button-arrow"),active:!1}),this._enableMeasurements&&(this._measureDistanceTool=new Yx(this,{buttonElement:o.querySelector(".xeokit-measure-distance"),active:!1}),this._measureAngleTool=new qx(this,{buttonElement:o.querySelector(".xeokit-measure-angle"),active:!1})),this._navCubeMode=new Ex(this,{navCubeCanvasElement:n,active:!0}),this._busyModal=new px(this,{busyModalBackdropElement:a}),this._threeDMode.setActive(!0),this._firstPersonMode.setActive(!1),this._navCubeMode.setActive(!0),this._modelsExplorer.on("modelLoaded",(e=>{this._modelsExplorer.getNumModelsLoaded()>0&&this.setControlsEnabled(!0),this.fire("modelLoaded",e)})),this._modelsExplorer.on("modelUnloaded",(e=>{0===this._modelsExplorer.getNumModelsLoaded()&&(this.setControlsEnabled(!1),this.openTab("models")),this.fire("modelUnloaded",e)})),this._resetAction.on("reset",(()=>{this.fire("reset",!0)})),this._mutexActivation([this._hideTool,this._selectionTool,this._marqueeSelectionTool,this._sectionTool,this._enableMeasurements?this._measureDistanceTool:null,this._enableMeasurements?this._measureAngleTool:null]),s.querySelector(".xeokit-showAllObjects").addEventListener("click",(e=>{this.setAllObjectsVisible(!0),this.setAllObjectsXRayed(!1),e.preventDefault()})),s.querySelector(".xeokit-hideAllObjects").addEventListener("click",(e=>{this.setAllObjectsVisible(!1),e.preventDefault()})),s.querySelector(".xeokit-showAllClasses").addEventListener("click",(e=>{this.setAllObjectsVisible(!0),this.setAllObjectsXRayed(!1),e.preventDefault()})),s.querySelector(".xeokit-hideAllClasses").addEventListener("click",(e=>{this.setAllObjectsVisible(!1),e.preventDefault()})),s.querySelector(".xeokit-showAllStoreys").addEventListener("click",(e=>{this.setAllObjectsVisible(!0),this.setAllObjectsXRayed(!1),e.preventDefault()})),s.querySelector(".xeokit-hideAllStoreys").addEventListener("click",(e=>{this.setAllObjectsVisible(!1),e.preventDefault()})),s.querySelector(".xeokit-loadAllModels").addEventListener("click",(e=>{this.setControlsEnabled(!1),this.loadAllModels(),e.preventDefault()})),s.querySelector(".xeokit-unloadAllModels").addEventListener("click",(e=>{this.setControlsEnabled(!1),this._modelsExplorer.unloadAllModels(),e.preventDefault()})),this._enableAddModels&&s.querySelector(".xeokit-addModel").addEventListener("click",(e=>{this.fire("addModel",{}),e.preventDefault()})),this._bcfViewpointsPlugin=new ah(this.viewer,{xrayAsZeroAlpha:!0}),this._fastNavPlugin=new _h(l,{hideEdges:!0,hideSAO:!0,hidePBR:!1,hideColorTexture:!1,hideTransparentObjects:!1,scaleCanvasResolution:!1,scaleCanvasResolutionFactor:.6}),this._initConfigs(),this.setControlsEnabled(!1)}get localeService(){return this.viewer.localeService}_customizeViewer(){const e=this.viewer.scene;e.xrayMaterial.fill=!1,e.xrayMaterial.fillAlpha=.3,e.xrayMaterial.fillColor=[0,0,0],e.xrayMaterial.edges=!0,e.xrayMaterial.edgeAlpha=.1,e.xrayMaterial.edgeColor=[0,0,0],e.highlightMaterial.edges=!0,e.highlightMaterial.edgeColor=[1,1,1],e.highlightMaterial.edgeAlpha=1,e.highlightMaterial.fill=!0,e.highlightMaterial.fillAlpha=.1,e.highlightMaterial.fillColor=[1,0,0],e.selectedMaterial.edges=!0,e.selectedMaterial.edgeColor=[1,1,1],e.selectedMaterial.edgeAlpha=1,e.selectedMaterial.fill=!0,e.selectedMaterial.fillAlpha=.1,e.selectedMaterial.fillColor=[0,1,0],e.pointsMaterial.pointSize=1,e.pointsMaterial.roundPoints=!0,e.pointsMaterial.perspectivePoints=!0,e.pointsMaterial.minPerspectivePointSize=2,e.pointsMaterial.maxPerspectivePointSize=4,this.viewer.cameraControl.panRightClick=!0,this.viewer.cameraControl.followPointer=!0,this.viewer.cameraControl.doublePickFlyTo=!1,this.viewer.cameraControl.smartPivot=!0,this.viewer.cameraControl.keyboardDollyRate=100,this.viewer.cameraControl.mouseWheelDollyRate=100,this.viewer.cameraControl.dollyInertia=0,this.viewer.cameraControl.dollyMinSpeed=.04,this.viewer.cameraControl.dollyProximityThreshold=30;const t=document.createRange().createContextualFragment("
").firstChild;document.body.appendChild(t),this.viewer.cameraControl.pivotElement=t,e.camera.perspective.near=.01,e.camera.perspective.far=3e3,e.camera.ortho.near=.01,e.camera.ortho.far=2e3;const i=e.sao;i.enabled=!0,i.numSamples=50,i.kernelRadius=200}_initCanvasContextMenus(){this._canvasContextMenu=new jx(this,{hideOnAction:!0,enableMeasurements:this._enableMeasurements}),this._objectContextMenu=new Vx(this,{hideOnAction:!0,enableMeasurements:this._enableMeasurements}),this.viewer.cameraControl.on("rightClick",(e=>{e.event;const t=this.viewer.scene.pick({canvasPos:e.canvasPos});t&&t.entity.isObject?(this._canvasContextMenu.hide(),this._objectContextMenu.context={viewer:this.viewer,bimViewer:this,showObjectInExplorers:e=>{const t=this.getOpenTab();"objects"!==t&&"classes"!==t&&"storeys"!==t&&this.openTab("objects"),this.showObjectInExplorers(e)},entity:t.entity},this._objectContextMenu.show(e.pagePos[0],e.pagePos[1])):(this._objectContextMenu.hide(),this._canvasContextMenu.context={viewer:this.viewer,bimViewer:this},this._canvasContextMenu.show(e.pagePos[0],e.pagePos[1]))}))}_initConfigs(){this.setConfigs({cameraNear:"0.05",cameraFar:"3000.0",smartPivot:!0,saoEnabled:!0,pbrEnabled:!1,scaleCanvasResolution:!1,saoBias:.5,saoIntensity:.15,saoNumSamples:40,saoKernelRadius:100,edgesEnabled:!0,xrayContext:!0,xrayPickable:!1,selectedGlowThrough:!0,highlightGlowThrough:!0,backgroundColor:[1,1,1],externalMetadata:!1,dtxEnabled:!1})}setConfigs(e){for(let t in e)if(e.hasOwnProperty(t)){const i=e[t];this.setConfig(t,i)}}setConfig(e,t){function i(e){return!0===e||"true"===e}try{switch(e){case"backgroundColor":const s=t;this.setBackgroundColor(s),this._configs[e]=s;break;case"cameraNear":const r=parseFloat(t);this.viewer.scene.camera.perspective.near=r,this.viewer.scene.camera.ortho.near=r,this._configs[e]=r;break;case"cameraFar":const o=parseFloat(t);this.viewer.scene.camera.perspective.far=o,this._configs[e]=o;break;case"smartPivot":this.viewer.cameraControl.smartPivot=this._configs[e]=i(t);break;case"saoEnabled":this._fastNavPlugin.saoEnabled=this._configs[e]=i(t);break;case"saoBias":this.viewer.scene.sao.bias=parseFloat(t);break;case"saoIntensity":this.viewer.scene.sao.intensity=parseFloat(t);break;case"saoKernelRadius":this.viewer.scene.sao.kernelRadius=this._configs[e]=parseFloat(t);break;case"saoNumSamples":this.viewer.scene.sao.numSamples=this._configs[e]=parseFloat(t);break;case"saoBlur":this.viewer.scene.sao.blur=this._configs[e]=i(t);break;case"edgesEnabled":this._fastNavPlugin.edgesEnabled=this._configs[e]=i(t);break;case"pbrEnabled":this._fastNavPlugin.pbrEnabled=this._configs[e]=i(t);break;case"scaleCanvasResolution":this._fastNavPlugin.scaleCanvasResolution=this._configs[e]=i(t);break;case"viewFitFOV":this.viewer.cameraFlight.fitFOV=this._configs[e]=parseFloat(t);break;case"viewFitDuration":this.viewer.cameraFlight.duration=this._configs[e]=parseFloat(t);break;case"perspectiveFOV":this.viewer.camera.perspective.fov=this._configs[e]=parseFloat(t);break;case"excludeUnclassifiedObjects":case"xrayPickable":case"externalMetadata":this._configs[e]=i(t);break;case"xrayContext":this._configs[e]=t;break;case"selectedGlowThrough":const n=this._configs[e]=i(t),a=this.viewer.scene.selectedMaterial;a.glowThrough=n,a.fillAlpha=n?.5:1,a.edgeAlpha=n?.5:1;break;case"highlightGlowThrough":const l=this._configs[e]=i(t),A=this.viewer.scene.highlightMaterial;A.glowThrough=l,A.fillAlpha=l?.5:1,A.edgeAlpha=l?.5:1;break;case"showSpaces":this._configs[e]=i(t),this._showSpacesMode.setActive(t);break;case"dtxEnabled":this._configs[e]=i(t),this.viewer.scene.dtxEnabled=t;break;case"objectColors":this._configs[e]=t,this._modelsExplorer.setObjectColors(t);break;default:this.warn("setConfig() - unsupported configuration: '"+e+"'")}}catch(t){this.error("setConfig() - failed to configure '"+e+"': "+t)}}getConfig(e){return this._configs[e]}getProjectsInfo(e,t){e?this.server.getProjects(e,(e=>{this.error("getProjectsInfo() - "+e),t&&t(e)})):this.error("getProjectsInfo() - Argument expected: 'done'")}getProjectInfo(e,t,i){e?t?this.server.getProject(e,t,(e=>{this.error("getProjectInfo() - "+e),i&&i(e)})):this.error("getProjectInfo() - Argument expected: 'done'"):this.error("getProjectInfo() - Argument expected: projectId")}getObjectInfo(e,t,i,s,r){e?t?i?s?this.server.getObjectInfo(e,t,i,s,(e=>{r&&r(e)})):this.error("getProjectInfo() - Argument expected: 'done'"):this.error("getObjectInfo() - Argument expected: objectId"):this.error("getObjectInfo() - Argument expected: modelId"):this.error("getObjectInfo() - Argument expected: projectId")}loadProject(e,t,i){e?this._modelsExplorer.loadProject(e,(()=>{t&&t()}),(e=>{this.error("loadProject() - "+e),i&&i(e)})):this.error("loadProject() - Argument expected: objectId")}unloadProject(){this._modelsExplorer.unloadProject(),this.openTab("models"),this.setControlsEnabled(!1)}getLoadedProjectId(){return this._modelsExplorer.getLoadedProjectId()}getModelIds(){return this._modelsExplorer.getModelIds()}loadModel(e,t,i){e?this._modelsExplorer.loadModel(e,(()=>{t&&t()}),(e=>{this.error("loadModel() - "+e),i&&i(e)})):this.error("loadModel() - Argument expected: modelId")}loadAllModels(e=function(){}){const t=this._modelsExplorer.getModelIds(),i=(e,s)=>{if(e>=t.length)s();else{const r=t[e];this._modelsExplorer.isModelLoaded(r)?i(e+1,s):this._modelsExplorer.loadModel(r,(()=>{i(e+1,s)}),(t=>{this.error("loadAllModels() - "+t),i(e+1,s)}))}};i(0,e)}getLoadedModelIds(){return this._modelsExplorer._getLoadedModelIds()}isModelLoaded(e){if(e)return this._modelsExplorer.isModelLoaded(e);this.error("unloadModel() - Argument expected: modelId")}unloadModel(e){e?this._modelsExplorer.unloadModel(e):this.error("unloadModel() - Argument expected: modelId")}unloadAllModels(){this._modelsExplorer.unloadAllModels()}editModel(e){this.fire("editModel",{modelId:e})}deleteModel(e){this.fire("deleteModel",{modelId:e})}addModel(){this.fire("addModel",{})}setBackgroundColor(e){this.viewer.scene.canvas.backgroundColor=e}setObjectColorSource(e){console.log("BIMViewer.setObjectColorSource() is now deprecated and no longer functional. By default, BIMViewer.getObjectColorSource() will now always return the (formerly) default value of `model`.")}getObjectColorSource(){return"model"}setViewerState(e,t=(()=>{})){e.tabOpen&&this.openTab(e.tabOpen),e.expandObjectsTree&&this._objectsExplorer.expandTreeViewToDepth(e.expandObjectsTree),e.expandClassesTree&&this._classesExplorer.expandTreeViewToDepth(e.expandClassesTree),e.expandStoreysTree&&this._storeysExplorer.expandTreeViewToDepth(e.expandStoreysTree),e.setCamera&&this.setCamera(e.setCamera),this._parseSelectedStorey(e,(()=>{this._parseThreeDMode(e,(()=>{t()}))}))}_parseSelectedStorey(e,t){e.selectedStorey?(this.selectStorey(e.selectedStorey),t()):t()}_parseThreeDMode(e,t){const i=!1!==e.threeDActive;this.set3DEnabled(i,t)}showObjectInExplorers(e){e?(this._objectsExplorer.showNodeInTreeView(e),this._classesExplorer.showNodeInTreeView(e),this._storeysExplorer.showNodeInTreeView(e),this.fire("openExplorer",{})):this.error("showObjectInExplorers() - Argument expected: objectId")}unShowObjectInExplorers(){this._objectsExplorer.unShowNodeInTreeView(),this._classesExplorer.unShowNodeInTreeView(),this._storeysExplorer.unShowNodeInTreeView()}showObjectProperties(e){e?(this._enablePropertiesInspector&&this._propertiesInspector.showObjectPropertySets(e),this.fire("openInspector",{})):this.error("showObjectInExplorers() - Argument expected: objectId")}setObjectsVisible(e,t){this._withObjectsInSubtree(e,(e=>{e.visible=t}))}setAllObjectsVisible(e){e?this.viewer.scene.setObjectsVisible(this.viewer.scene.objectIds,!0):this.viewer.scene.setObjectsVisible(this.viewer.scene.visibleObjectIds,!1)}setObjectsXRayed(e,t){this._withObjectsInSubtree(e,(e=>{e.xrayed=t}))}setAllObjectsXRayed(e){e?this.viewer.scene.setObjectsXRayed(this.viewer.scene.objectIds,!0):this.viewer.scene.setObjectsXRayed(this.viewer.scene.xrayedObjectIds,!1)}setObjectsSelected(e,t){this._withObjectsInSubtree(e,(e=>{e.selected=t}))}setAllObjectsSelected(e){e?this.viewer.scene.setObjectsSelected(this.viewer.scene.objectIds,!0):this.viewer.scene.setObjectsSelected(this.viewer.scene.selectedObjectIds,!1)}_withObjectsInSubtree(e,t){if(e)for(let i=0,s=e.length;i{const i=this.viewer.scene.objects[e.id];i&&t(i)}))}else this.error("Argument expected: objectIds")}flyToObject(e,t){if(!e)return void this.error("flyToObject() - Argument expected: objectId");const i=this.viewer,s=i.scene,r=[];if(this.viewer.metaScene.withMetaObjectsInSubtree(e,(e=>{s.objects[e.id]&&r.push(e.id)})),0===r.length)return this.error("Object not found in viewer: '"+e+"'"),void(t&&t());s.setObjectsVisible(r,!0),s.setObjectsHighlighted(r,!0);const o=s.getAABB(r);i.cameraFlight.flyTo({aabb:o},(()=>{t&&t(),setTimeout((function(){s.setObjectsHighlighted(s.highlightedObjectIds,!1)}),500)})),i.cameraControl.pivotPos=d.getAABB3Center(o)}viewFitObjects(e,t){if(!e)return void this.error("flyToObject() - Argument expected: objectIds");const i=this.viewer,s=i.scene,r=[];for(var o=0,n=e.length;o{s.objects[e.id]&&r.push(e.id)}))}if(0===r.length)return void(t&&t());s.setObjectsVisible(r,!0),s.setObjectsHighlighted(r,!0);const a=s.getAABB(r);i.cameraFlight.flyTo({aabb:a},(()=>{t&&t(),setTimeout((function(){s.setObjectsHighlighted(s.highlightedObjectIds,!1)}),500)})),i.cameraControl.pivotPos=d.getAABB3Center(a)}viewFitAll(e){const t=this.viewer,i=t.scene.getAABB();t.cameraFlight.flyTo({aabb:i},(()=>{e&&e()})),t.cameraControl.pivotPos=d.getAABB3Center(i)}jumpToObject(e){if(!e)return void this.error("jumpToObject() - Argument expected: objectId");const t=this.viewer,i=t.scene,s=[];if(this.viewer.metaScene.withMetaObjectsInSubtree(e,(e=>{i.objects[e.id]&&s.push(e.id)})),0===s.length)return void this.error("Object not found in viewer: '"+e+"'");i.setObjectsVisible(s,!0);const r=i.getAABB(s);t.cameraFlight.jumpTo({aabb:r}),t.cameraControl.pivotPos=d.getAABB3Center(r)}setCamera(e){const t=this.viewer.scene.camera;e.eye&&(t.eye=e.eye),e.look&&(t.look=e.look),e.up&&(t.up=e.up)}viewFitModels(e,t){if(!e)return void this.error("viewFitModels() - Argument expected: modelIds");const i=this.viewer,s=i.scene,r=d.AABB3();d.collapseAABB3(r);for(var o=0,n=e.length;o{t(),setTimeout((function(){s.setObjectsHighlighted(s.highlightedObjectIds,!1)}),500)})):(i.cameraFlight.jumpTo({aabb:r}),setTimeout((function(){s.setObjectsHighlighted(s.highlightedObjectIds,!1)}),500)),i.cameraControl.pivotPos=d.getAABB3Center(r)}openTab(e){if(!e)return void this.error("openTab() - Argument expected: tabId");let t;switch(e){case"models":t="xeokit-modelsTab";break;case"objects":t="xeokit-objectsTab";break;case"classes":t="xeokit-classesTab";break;case"storeys":t="xeokit-storeysTab";break;case"properties":t="xeokit-propertiesTab";break;default:return void this.error("openTab() - tab not recognized: '"+e+"'")}this._openTab(this._explorerElement,t)}_openTab(e,t){const i="active";let s=e.querySelectorAll(".xeokit-tab"),r=e.querySelector("."+t);for(let e=0;e-1}const t="active";return e(this._explorerElement.querySelector(".xeokit-modelsTab"),t)?"models":e(this._explorerElement.querySelector(".xeokit-objectsTab"),t)?"objects":e(this._explorerElement.querySelector(".xeokit-classesTab"),t)?"classes":e(this._explorerElement.querySelector(".xeokit-storeysTab"),t)?"storeys":e(this._inspectorElement.querySelector(".xeokit-propertiesTab"),t)?"properties":"none"}set3DEnabled(e,t){this._threeDMode.setActive(e,t)}get3DEnabled(){return this._threeDMode.getActive()}setSpacesShown(e){this._showSpacesMode.setActive(e)}getSpacesShown(){return this._showSpacesMode.getActive()}setOrthoEnabled(e,t){this._orthoMode.setActive(e,t)}getOrthoEnabled(){return this._orthoMode.getActive()}selectStorey(e,t){const i=this.viewer.metaScene.metaObjects[e];i?"IfcBuildingStorey"===i.type?this._storeysExplorer.selectStorey(e,t):this.error("selectStorey() - Object is not an IfcBuildingStorey: '"+e+"'"):this.error("selectStorey() - Object is not found: '"+e+"'")}saveBCFViewpoint(e){return this._bcfViewpointsPlugin.getViewpoint(e)}loadBCFViewpoint(e,t){e?(this._orthoMode.setActive("ortho"===this.viewer.camera.projection),this._bcfViewpointsPlugin.setViewpoint(e,t)):this.error("loadBCFViewpoint() - Argument expected: bcfViewpoint")}resetView(){this._resetAction.reset()}setControlsEnabled(e){this._objectsExplorer.setEnabled(e),this._classesExplorer.setEnabled(e),this._storeysExplorer.setEnabled(e),this._resetAction.setEnabled(e),this._fitAction.setEnabled(e),this._threeDMode.setEnabled(e),this._orthoMode.setEnabled(e),this._firstPersonMode.setEnabled(e),this._queryTool.setEnabled(e),this._hideTool.setEnabled(e),this._selectionTool.setEnabled(e),this._marqueeSelectionTool.setEnabled(e),this._showSpacesMode.setEnabled(e),this._enableMeasurements&&(this._measureDistanceTool.setEnabled(e),this._measureAngleTool.setEnabled(e)),this._sectionTool.setEnabled(e),this._enablePropertiesInspector&&this._propertiesInspector.setEnabled(e)}setKeyboardEnabled(e){this.viewer.scene.input.keyboardEnabled=e}getKeyboardEnabled(){return this.viewer.scene.input.keyboardEnabled}clearSections(){this._sectionTool.clear()}disableSections(){this._sectionTool.disableSections()}enableSections(){this._sectionTool.enableSections()}flipSections(){this._sectionTool.flipSections()}hideSectionEditControl(){this._sectionTool.hideControl()}getNumSections(){return this._sectionTool.getNumSections()}getEnableMeasurements(){return this._enableMeasurements}clearMeasurements(){this._enableMeasurements&&(this._measureDistanceTool.clear(),this._measureAngleTool.clear())}getNumMeasurements(){return this._measureDistanceTool.getNumMeasurements()+this._measureAngleTool.getNumMeasurements()}setMeasurementsAxisVisible(e){this._enableMeasurements&&this._measureDistanceTool.setMeasurementsAxisVisible(e)}getMeasurementsAxisVisible(){return!!this._enableMeasurements&&this._measureDistanceTool.getMeasurementsAxisVisible()}setMeasurementsSnappingEnabled(e){this._enableMeasurements&&this._measureDistanceTool.setSnappingEnabled(e)}getMeasurementsSnappingEnabled(){return!!this._enableMeasurements&&this._measureDistanceTool.getSnappingEnabled()}destroy(){this.viewer.destroy(),this._bcfViewpointsPlugin.destroy(),this._canvasContextMenu.destroy(),this._objectContextMenu.destroy()}},e.LocaleService=vh,e.Server=class{constructor(e={}){this._dataDir=e.dataDir||""}getProjects(e,t){const i=this._dataDir+"/projects/index.json";_.loadJSON(i,e,t)}getProject(e,t,i){const s=this._dataDir+"/projects/"+e+"/index.json";_.loadJSON(s,t,i)}getMetadata(e,t,i,s){const r=this._dataDir+"/projects/"+e+"/models/"+t+"/metadata.json";_.loadJSON(r,i,s)}getGeometry(e,t,i,s){const r=this._dataDir+"/projects/"+e+"/models/"+t+"/geometry.xkt";_.loadArraybuffer(r,i,s)}getObjectInfo(e,t,i,s,r){const o=this._dataDir+"/projects/"+e+"/models/"+t+"/props/"+i+".json";_.loadJSON(o,s,r)}getIssues(e,t,i,s){const r=this._dataDir+"/projects/"+e+"/models/"+t+"/issues.json";_.loadJSON(r,i,s)}getSplitModelManifest(e,t,i,s,r){const o=this._dataDir+"/projects/"+e+"/models/"+t+"/"+i;_.loadJSON(o,s,r)}getSplitModelMetadata(e,t,i,s,r){const o=this._dataDir+"/projects/"+e+"/models/"+t+"/"+i;_.loadJSON(o,s,r)}getSplitModelGeometry(e,t,i,s,r){const o=this._dataDir+"/projects/"+e+"/models/"+t+"/"+i;_.loadArraybuffer(o,s,r)}},Object.defineProperty(e,"__esModule",{value:!0})})); diff --git a/dist/xeokit-bim-viewer.umd.js b/dist/xeokit-bim-viewer.umd.js index bd476e81..d381e947 100644 --- a/dist/xeokit-bim-viewer.umd.js +++ b/dist/xeokit-bim-viewer.umd.js @@ -11994,7 +11994,7 @@ * start, corner or end point will cause the point to snap to the nearest vertex or edge. A quick * touch-release will immediately set the point at the tapped position on the object surface. * - * [[Run example](/examples/measurement/#angle_createWithTouch_snapping)] + * [[Run example](https://xeokit.github.io/xeokit-sdk/examples/measurement/#angle_createWithTouch_snapping)] * * ````javascript * import {Viewer, XKTLoaderPlugin, AngleMeasurementsPlugin, AngleMeasurementsTouchControl} from "xeokit-sdk.es.js"; @@ -79893,7 +79893,7 @@ * start or end point will cause the point to snap to the nearest vertex or edge. A quick * touch-release will immediately set the point at the tapped position on the object surface. * - * [[Run example](/examples/measurement/#distance_createWithTouch_snapping)] + * [[Run example](https://xeokit.github.io/xeokit-sdk/examples/measurement/#distance_createWithTouch_snapping)] * * ````javascript * import {Viewer, XKTLoaderPlugin, DistanceMeasurementsPlugin, DistanceMeasurementsTouchControl} from "xeokit-sdk.es.js"; @@ -99284,7 +99284,8 @@ this._rootNode = new Node$2(scene, { position: [0, 0, 0], - scale: [5, 5, 5] + scale: [5, 5, 5], + isObject: false }); const rootNode = this._rootNode; @@ -99475,7 +99476,8 @@ collidable: true, clippable: false, visible: false, - scale: [2.4, 2.4, 1] + scale: [2.4, 2.4, 1], + isObject: false }), NO_STATE_INHERIT), planeFrame: rootNode.addChild(new Mesh(rootNode, { // Visible frame @@ -99506,7 +99508,8 @@ clippable: false, visible: false, scale: [1, 1, .1], - rotation: [0, 0, 45] + rotation: [0, 0, 45], + isObject: false }), NO_STATE_INHERIT), //---------------------------------------------------------------------------------------------------------- @@ -99525,7 +99528,8 @@ collidable: true, clippable: false, backfaces: true, - visible: false + visible: false, + isObject: false }), NO_STATE_INHERIT), xCurveHandle: rootNode.addChild(new Mesh(rootNode, { // Red hoop about Y-axis @@ -99540,7 +99544,8 @@ collidable: true, clippable: false, backfaces: true, - visible: false + visible: false, + isObject: false }), NO_STATE_INHERIT), xCurveArrow1: rootNode.addChild(new Mesh(rootNode, { @@ -99555,7 +99560,8 @@ pickable: true, collidable: true, clippable: false, - visible: false + visible: false, + isObject: false }), NO_STATE_INHERIT), xCurveArrow2: rootNode.addChild(new Mesh(rootNode, { @@ -99570,7 +99576,8 @@ pickable: true, collidable: true, clippable: false, - visible: false + visible: false, + isObject: false }), NO_STATE_INHERIT), //---------------------------------------------------------------------------------------------------------- @@ -99585,7 +99592,8 @@ collidable: true, clippable: false, backfaces: true, - visible: false + visible: false, + isObject: false }), NO_STATE_INHERIT), yCurveHandle: rootNode.addChild(new Mesh(rootNode, { @@ -99596,7 +99604,8 @@ collidable: true, clippable: false, backfaces: true, - visible: false + visible: false, + isObject: false }), NO_STATE_INHERIT), yCurveArrow1: rootNode.addChild(new Mesh(rootNode, { @@ -99611,7 +99620,8 @@ pickable: true, collidable: true, clippable: false, - visible: false + visible: false, + isObject: false }), NO_STATE_INHERIT), yCurveArrow2: rootNode.addChild(new Mesh(rootNode, { @@ -99626,7 +99636,8 @@ pickable: true, collidable: true, clippable: false, - visible: false + visible: false, + isObject: false }), NO_STATE_INHERIT), //---------------------------------------------------------------------------------------------------------- @@ -99640,7 +99651,8 @@ pickable: false, collidable: true, clippable: false, - visible: false + visible: false, + isObject: false }), NO_STATE_INHERIT), zCurveHandle: rootNode.addChild(new Mesh(rootNode, { @@ -99650,7 +99662,8 @@ pickable: true, collidable: true, clippable: false, - visible: false + visible: false, + isObject: false }), NO_STATE_INHERIT), zCurveCurveArrow1: rootNode.addChild(new Mesh(rootNode, { @@ -99664,7 +99677,8 @@ pickable: true, collidable: true, clippable: false, - visible: false + visible: false, + isObject: false }), NO_STATE_INHERIT), zCurveArrow2: rootNode.addChild(new Mesh(rootNode, { @@ -99679,7 +99693,8 @@ pickable: true, collidable: true, clippable: false, - visible: false + visible: false, + isObject: false }), NO_STATE_INHERIT), //---------------------------------------------------------------------------------------------------------- @@ -99694,7 +99709,8 @@ pickable: false, collidable: true, clippable: false, - visible: false + visible: false, + isObject: false }), NO_STATE_INHERIT), //---------------------------------------------------------------------------------------------------------- @@ -99712,7 +99728,8 @@ pickable: false, collidable: true, clippable: false, - visible: false + visible: false, + isObject: false }), NO_STATE_INHERIT), xAxisArrowHandle: rootNode.addChild(new Mesh(rootNode, { @@ -99726,7 +99743,8 @@ pickable: true, collidable: true, clippable: false, - visible: false + visible: false, + isObject: false }), NO_STATE_INHERIT), xAxis: rootNode.addChild(new Mesh(rootNode, { @@ -99740,7 +99758,8 @@ pickable: false, collidable: true, clippable: false, - visible: false + visible: false, + isObject: false }), NO_STATE_INHERIT), xAxisHandle: rootNode.addChild(new Mesh(rootNode, { @@ -99754,7 +99773,8 @@ pickable: true, collidable: true, clippable: false, - visible: false + visible: false, + isObject: false }), NO_STATE_INHERIT), //---------------------------------------------------------------------------------------------------------- @@ -99772,7 +99792,8 @@ pickable: false, collidable: true, clippable: false, - visible: false + visible: false, + isObject: false }), NO_STATE_INHERIT), yAxisArrowHandle: rootNode.addChild(new Mesh(rootNode, { @@ -99787,7 +99808,8 @@ collidable: true, clippable: false, visible: false, - opacity: 0.2 + opacity: 0.2, + isObject: false }), NO_STATE_INHERIT), yShaft: rootNode.addChild(new Mesh(rootNode, { @@ -99797,7 +99819,8 @@ pickable: false, collidable: true, clippable: false, - visible: false + visible: false, + isObject: false }), NO_STATE_INHERIT), yShaftHandle: rootNode.addChild(new Mesh(rootNode, { @@ -99807,7 +99830,8 @@ pickable: true, collidable: true, clippable: false, - visible: false + visible: false, + isObject: false }), NO_STATE_INHERIT), //---------------------------------------------------------------------------------------------------------- @@ -99825,7 +99849,8 @@ pickable: false, collidable: true, clippable: false, - visible: false + visible: false, + isObject: false }), NO_STATE_INHERIT), zAxisArrowHandle: rootNode.addChild(new Mesh(rootNode, { @@ -99839,7 +99864,8 @@ pickable: true, collidable: true, clippable: false, - visible: false + visible: false, + isObject: false }), NO_STATE_INHERIT), @@ -99854,7 +99880,8 @@ clippable: false, pickable: false, collidable: true, - visible: false + visible: false, + isObject: false }), NO_STATE_INHERIT), zAxisHandle: rootNode.addChild(new Mesh(rootNode, { @@ -99868,7 +99895,8 @@ clippable: false, pickable: true, collidable: true, - visible: false + visible: false, + isObject: false }), NO_STATE_INHERIT) }; @@ -99900,7 +99928,8 @@ clippable: false, visible: false, scale: [1, 1, 1], - rotation: [0, 0, 45] + rotation: [0, 0, 45], + isObject: false }), NO_STATE_INHERIT), xHoop: rootNode.addChild(new Mesh(rootNode, { // Full @@ -99916,7 +99945,8 @@ pickable: false, collidable: true, clippable: false, - visible: false + visible: false, + isObject: false }), NO_STATE_INHERIT), yHoop: rootNode.addChild(new Mesh(rootNode, { @@ -99928,7 +99958,8 @@ pickable: false, collidable: true, clippable: false, - visible: false + visible: false, + isObject: false }), NO_STATE_INHERIT), zHoop: rootNode.addChild(new Mesh(rootNode, { // Blue hoop about Z-axis @@ -99941,7 +99972,8 @@ collidable: true, clippable: false, backfaces: true, - visible: false + visible: false, + isObject: false }), NO_STATE_INHERIT), xAxisArrow: rootNode.addChild(new Mesh(rootNode, { @@ -99955,7 +99987,8 @@ pickable: false, collidable: true, clippable: false, - visible: false + visible: false, + isObject: false }), NO_STATE_INHERIT), yAxisArrow: rootNode.addChild(new Mesh(rootNode, { @@ -99969,7 +100002,8 @@ pickable: false, collidable: true, clippable: false, - visible: false + visible: false, + isObject: false }), NO_STATE_INHERIT), zAxisArrow: rootNode.addChild(new Mesh(rootNode, { @@ -99983,7 +100017,8 @@ pickable: false, collidable: true, clippable: false, - visible: false + visible: false, + isObject: false }), NO_STATE_INHERIT) }; } @@ -110112,7 +110147,7 @@ pickSurface: true // <<------ This causes picking to find the intersection point on the entity }); - if (pickResult) { + if (pickResult && pickResult.entity && pickResult.entity.isObject) { // Only slice model objects, not 3D UI helpers const sectionPlane = this._sectionPlanesPlugin.createSectionPlane({ pos: pickResult.worldPos, diff --git a/package-lock.json b/package-lock.json index 8ded47da..4e076e15 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,15 +1,15 @@ { "name": "@xeokit/xeokit-bim-viewer", - "version": "2.5.1-beta-27", + "version": "2.5.1-beta-28", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@xeokit/xeokit-bim-viewer", - "version": "2.5.1-beta-27", + "version": "2.5.1-beta-28", "license": "See LICENSE.txt", "dependencies": { - "@xeokit/xeokit-sdk": "2.6.0-beta-13", + "@xeokit/xeokit-sdk": "2.6.0-beta-14", "http-server": "^13.0.2" }, "devDependencies": { @@ -337,9 +337,9 @@ } }, "node_modules/@xeokit/xeokit-sdk": { - "version": "2.6.0-beta-13", - "resolved": "https://registry.npmjs.org/@xeokit/xeokit-sdk/-/xeokit-sdk-2.6.0-beta-13.tgz", - "integrity": "sha512-Tfg4ZGWRu3ve4s0RaQzY2woK6ntEP1IhA0KrVen26y63LEgCs8EVFIT24VPmWSIVLTC+302kjDeuceT2+tqZMQ==", + "version": "2.6.0-beta-14", + "resolved": "https://registry.npmjs.org/@xeokit/xeokit-sdk/-/xeokit-sdk-2.6.0-beta-14.tgz", + "integrity": "sha512-Gf2c0lMwy7xJTCC/p2GCet8zkskxm1ajo3n5u4vXrWb07ZxSeFiYcoSkZflOfFiBCylVwn1Qkj9bGD4DZFItTg==", "dependencies": { "@loaders.gl/core": "^3.2.6", "@loaders.gl/gltf": "^3.2.6", @@ -4452,9 +4452,9 @@ } }, "@xeokit/xeokit-sdk": { - "version": "2.6.0-beta-13", - "resolved": "https://registry.npmjs.org/@xeokit/xeokit-sdk/-/xeokit-sdk-2.6.0-beta-13.tgz", - "integrity": "sha512-Tfg4ZGWRu3ve4s0RaQzY2woK6ntEP1IhA0KrVen26y63LEgCs8EVFIT24VPmWSIVLTC+302kjDeuceT2+tqZMQ==", + "version": "2.6.0-beta-14", + "resolved": "https://registry.npmjs.org/@xeokit/xeokit-sdk/-/xeokit-sdk-2.6.0-beta-14.tgz", + "integrity": "sha512-Gf2c0lMwy7xJTCC/p2GCet8zkskxm1ajo3n5u4vXrWb07ZxSeFiYcoSkZflOfFiBCylVwn1Qkj9bGD4DZFItTg==", "requires": { "@loaders.gl/core": "^3.2.6", "@loaders.gl/gltf": "^3.2.6", diff --git a/package.json b/package.json index 0d4ecc3f..ef7a3068 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@xeokit/xeokit-bim-viewer", - "version": "2.5.1-beta-27", + "version": "2.5.1-beta-28", "description": "BIM viewer built on xeokit", "main": "dist/xeokit-bim-viewer.min.es.js", "files": [ @@ -50,7 +50,7 @@ "rollup-plugin-terser": "^7.0.2" }, "dependencies": { - "@xeokit/xeokit-sdk": "2.6.0-beta-13", + "@xeokit/xeokit-sdk": "2.6.0-beta-14", "http-server": "^13.0.2" } } \ No newline at end of file diff --git a/src/toolbar/SectionTool.js b/src/toolbar/SectionTool.js index db71994c..f9692e91 100644 --- a/src/toolbar/SectionTool.js +++ b/src/toolbar/SectionTool.js @@ -142,7 +142,7 @@ class SectionTool extends Controller { // XX pickSurface: true // <<------ This causes picking to find the intersection point on the entity }); - if (pickResult) { + if (pickResult && pickResult.entity && pickResult.entity.isObject) { // Only slice model objects, not 3D UI helpers const sectionPlane = this._sectionPlanesPlugin.createSectionPlane({ pos: pickResult.worldPos,