@bimdata/viewer 2.4.1 → 2.4.2-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -1616,7 +1616,7 @@ Fragment shader:
|
|
|
1616
1616
|
height: ${o.textAreaHeight??20}px;
|
|
1617
1617
|
cursor: ${o.textCursor};
|
|
1618
1618
|
`)},null,4),[[Yc,o.text]])])])),[[a,()=>o.edit=!1]]):W("",!0)],4)}const Sai=F(kai,[["render",Bai],["__scopeId","data-v-845bf4a9"]]);let Lai=0;const Tai=12;class jai extends SX{constructor(e,i){super(["text"]),this._markersPlugin=e.$refs.markers,this.connector=null,this._drawer=i}create(e,i){const{x:o,y:r,text:s=null,size:n=Tai,rotation:a,apiId:l=null}=i,c=`bimdata__text-marker--${Lai++}`,d={text:s,size:n};let u;const h={text:s,size:n},A=this._markersPlugin.addMarker({x:o,y:r,component:Sai,rotation:a,props:{initText:s,initSize:n,newMarker:l===null,textToolEnabled:this.connector.enabledRef,id:c},listeners:{onEditUpdate:f=>{this.connector.deactivateAction(),f||(d.text?(h.text!==d.text||h.size!==d.size)&&(this._drawer.save(u),h.text=d.text,h.size=d.size):this._drawer.deleteDrawing(c))},onTextUpdate:f=>{d.text=f},onSizeUpdate:f=>{d.size=f},onDeleteDrawing:()=>{this._drawer.deleteDrawing(c),this.connector.deactivateAction()}}});return u=new Nai(A,c,d),u}}class Nai extends BX{constructor(e,i,o){super("text"),this._textMarker=e,this.id=i,this._textPayload=o}get rotation(){return this._textMarker.rotation??0}get text(){return this._textPayload.text}get size(){return this._textPayload.size}get x(){return this._textMarker.x}set x(e){this._textMarker.x=e}get y(){return this._textMarker.y}set y(e){this._textMarker.y=e}destroy(){this._textMarker.destroy()}}class Ym extends BX{constructor(e){super(e),this._sceneObject=null,this._style=null}get sceneObject(){return this._sceneObject}set sceneObject(e){this._sceneObject=e,this._style=e.getShape(0).style}get id(){return this._sceneObject.id}get lineWidth(){return this._style.lineWidth}set lineWidth(e){this._style.lineWidth=e}get lineColor(){return this._style.lineColor}set lineColor(e){this._style.lineColor=e}get x(){return this._sceneObject.center.x}get y(){return this._sceneObject.center.y}set x(e){this._sceneObject.move({x:e,y:this.y})}set y(e){this._sceneObject.move({x:this.x,y:e})}destroy(){this._sceneObject.scene.removeObject(this._sceneObject.id)}}class Rai extends Ym{constructor(e,i,o){super("rectangle");const{p1:r,p2:s=r,p3:n=r,p4:a=r,lineColor:l=o.color,lineWidth:c=o.width}=i,d=e.scene.addObject({shapes:[{paths:[{type:"line",points:[r.x,r.y,s.x,s.y,n.x,n.y,a.x,a.y],close:!0}],style:{lineWidth:c,lineColor:l,fill:1,fillOpacity:0}}]}),u=d.getShape(0).getPath(0);this.p1=u.getPoint(0),this.p2=u.getPoint(1),this.p3=u.getPoint(2),this.p4=u.getPoint(3),this.sceneObject=d}dragTo({canvasPosition:e}){const{_sceneObject:i}=this,{viewer:o}=i.scene,{x:r,y:s}=o.camera.getCanvasPosition(this.p1),{x:n,y:a}=e,l=o.camera.getPosition({x:n,y:s}),c=o.camera.getPosition({x:n,y:a}),d=o.camera.getPosition({x:r,y:a});this.p2.x=l.x,this.p2.y=l.y,this.p3.x=c.x,this.p3.y=c.y,this.p4.x=d.x,this.p4.y=d.y}}class Oai extends Ym{constructor(e,i,o){super("line");const{p1:r,p2:s=r,lineColor:n=o.color,lineWidth:a=o.width}=i,l=e.scene.addObject({shapes:[{paths:[{type:"line",points:[r.x,r.y,s.x,s.y]}],style:{lineWidth:a,lineColor:n}}]});this.p1=l.getShape(0).getPath(0).getPoint(0),this.p2=l.getShape(0).getPath(0).getPoint(1),this.sceneObject=l}dragTo({position:e}){const{x:i,y:o}=e;this.p2.x=i,this.p2.y=o}}const zai=4,TX=45;class Fai extends Ym{constructor(e,i,o){super("arrow");const{p1:r,p2:s=r,lineColor:n=o.color,lineWidth:a=o.width}=i,l=e.scene.addObject({shapes:[{paths:[{type:"line",points:[r.x,r.y,s.x,s.y]},{type:"line",start:!0,points:[s.x,s.y,s.x,s.y,s.x,s.y]}],style:{lineWidth:a,lineColor:n}}]}),c=l.getShape(0).getPath(0),d=l.getShape(0).getPath(1);this.p1=c.getPoint(0),this.p2=c.getPoint(1),this.p3=d.getPoint(0),this.p4=d.getPoint(1),this.p5=d.getPoint(2),this.vector2DUtils=l.scene.viewer.utils.vector2D,this.sceneObject=l,this.dragTo({position:s})}dragTo({position:e}){const{x:i,y:o}=e,{p1:r,p2:s,p3:n,p4:a,p5:l}=this;s.x=i,s.y=o,a.x=i,a.y=o;const c=this.vector2DUtils.sub(e,r),d=this.vector2DUtils.angle(c,{x:1,y:0}),u=zai*this.lineWidth,h=this.vector2DUtils.rotateAround(this.vector2DUtils.add({x:u,y:0},e),e,d+Math.PI*TX/180),A=this.vector2DUtils.rotateAround(this.vector2DUtils.add({x:u,y:0},e),e,d-Math.PI*TX/180);n.x=h.x,n.y=h.y,l.x=A.x,l.y=A.y}}const wc=.23;class Uai extends Ym{constructor(e,i,o){super("ellipse");const{p1:r={x:0,y:0},curves:s=[],lineColor:n=o.color,lineWidth:a=o.width}=i;let l;if(s.length===4)l=s.map((h,A)=>({...h,close:A===3}));else{const{x:h,y:A}=r;l=Array.from({length:4},(f,p)=>({type:"curve",x:h,y:A,cpX1:h,cpY1:A,cpX2:h,cpY2:A,toX:h,toY:A,close:p===3}))}const c=e.scene.addObject({shapes:[{paths:l,style:{lineWidth:a,lineColor:n,fill:1,fillOpacity:0}}]}),d=c.getShape(0),{camera:u}=c.scene.viewer;this._startPosition=u.getCanvasPosition(d.getPath(0)),this.curve1=d.getPath(0),this.curve2=d.getPath(1),this.curve3=d.getPath(2),this.curve4=d.getPath(3),this.getWorldPosition=u.getPosition.bind(u),this.sceneObject=c}dragTo({canvasPosition:e}){const{curve1:i,curve2:o,curve3:r,curve4:s}=this,{x:n,y:a}=this._startPosition,{x:l,y:c}=e,d=this.getWorldPosition({x:(n+l)/2,y:a}),u=this.getWorldPosition({x:l,y:(a+c)/2}),h=this.getWorldPosition({x:(n+l)/2,y:c}),A=this.getWorldPosition({x:n,y:(a+c)/2}),f=l-n,p=c-a,g=this.getWorldPosition({x:n+(1-wc)*f,y:a}),m=this.getWorldPosition({x:l,y:a+wc*p}),M=this.getWorldPosition({x:l,y:a+(1-wc)*p}),y=this.getWorldPosition({x:n+(1-wc)*f,y:c}),b=this.getWorldPosition({x:n+wc*f,y:c}),C=this.getWorldPosition({x:n,y:a+(1-wc)*p}),x=this.getWorldPosition({x:n,y:a+wc*p}),I=this.getWorldPosition({x:n+wc*f,y:a});i.x=d.x,i.y=d.y,i.cpX1=g.x,i.cpY1=g.y,i.cpX2=m.x,i.cpY2=m.y,i.toX=u.x,i.toY=u.y,o.x=u.x,o.y=u.y,o.cpX1=M.x,o.cpY1=M.y,o.cpX2=y.x,o.cpY2=y.y,o.toX=h.x,o.toY=h.y,r.x=h.x,r.y=h.y,r.cpX1=b.x,r.cpY1=b.y,r.cpX2=C.x,r.cpY2=C.y,r.toX=A.x,r.toY=A.y,s.x=A.x,s.y=A.y,s.cpX1=x.x,s.cpY1=x.y,s.cpX2=I.x,s.cpY2=I.y,s.toX=d.x,s.toY=d.y}}class Vai extends Ym{constructor(e,i,o){super("freehand");const{curves:r=[],lineColor:s=o.color,lineWidth:n=o.width}=i,a=e.scene.addObject({shapes:[{paths:r,style:{lineWidth:n,lineColor:s}}]});this.stroke=a.getShape(0),this.ppts=[],this.sceneObject=a}dragTo({position:e}){const{stroke:i,ppts:o}=this;if(o.push(e),o.length<3)return;let r=o[0].x,s=o[0].y;for(let d=1;d<o.length-2;d++){const u=(o[d].x+o[d+1].x)/2,h=(o[d].y+o[d+1].y)/2,A=o[d].x,f=o[d].y;i.addPath({type:"curve",x:r,y:s,toX:u,toY:h,cpX1:A,cpY1:f,cpX2:A,cpY2:f}),r=u,s=h}const n=o[o.length-2],a=o[o.length-1],l=n.x,c=n.y;i.addPath({type:"curve",x:r,y:s,toX:a.x,toY:a.y,cpX1:l,cpY1:c,cpX2:l,cpY2:c}),o.length=0}get curves(){return this.stroke.paths}}class Hai extends SX{constructor(e){super(["rectangle","line","arrow","ellipse","freehand"]),this.shapeClasses={rectangle:Rai,line:Oai,arrow:Fai,ellipse:Uai,freehand:Vai},this._engine2d=e}create(e,i,o){const r=this.shapeClasses[e];if(!r)throw new TypeError(`No drawing class for type ${e}`);return new r(this._engine2d,i,o)}}class Qai{constructor(e,i,o){this._pickStrategies=new Map;const r=new vai(e.viewer);r.drawingTypes.forEach(l=>this._pickStrategies.set(l,r));const s=new yai;s.drawingTypes.forEach(l=>this._pickStrategies.set(l,s)),this.drawingFactories=new Map;const n=new jai(e,this);n.drawingTypes.forEach(l=>this.drawingFactories.set(l,n));const a=new Hai(e.viewer,this);a.drawingTypes.forEach(l=>this.drawingFactories.set(l,a)),this._drawings=new Map,this.lineStyle=yr({color:0,width:.05}),this._loadedModel=o,this._service=new mai(i),st(()=>this._loadedModel.value,async l=>{if(this.clearDrawings(),!l)return;const c=await this._service.getDrawingsData(l.id);for(const d of c)this.makeDrawing(d.type,d)})}save(e){this._service.save(e,this._loadedModel.value.id)}addDrawingFactory(e){for(const i of e.drawingTypes){if(this.drawingFactories.has(i))throw new Error(`Drawing factory for type ${i} already exists`);this.drawingFactories.set(i,e)}}makeDrawing(e,i,o=this.lineStyle){if(!this._loadedModel.value)throw new Error("Cannot make drawing without a loaded model");const r=this.drawingFactories.get(e);if(!r)throw new TypeError(`No drawing factory for type ${e}`);const s=r.create(e,i,o);if(s.apiId=i.apiId,this._drawings.has(s.id))throw new Error(`Drawing with id ${s.id} already exists`);return this._drawings.set(s.id,s),s}deleteDrawing(e){const i=this._drawings.get(e);return i?(i.destroy(),this._drawings.delete(e),this._service.delete(i,this._loadedModel.value.id),!0):!1}loadDrawings(e){const i=e.map(o=>this._service._parser.parse(o)).filter(Boolean);for(const o of i)this.makeDrawing(o.type,o)}clearDrawings(){this._drawings.forEach(e=>e.destroy()),this._drawings.clear()}pick(e){const i=new Map;for(const[o,r]of this._drawings.entries()){const s=this._pickStrategies.get(r.type);s&&(i.has(s)||i.set(s,new Map),i.get(s).set(o,r))}for(const[o,r]of i.entries()){const s=o.pick(r,e);if(s)return s}}}const jX=20,_ai={setup(){const{lineStyle:t}=nt("drawer"),e=pe(!1),i=Ve({get:()=>t.color.toString(16).padStart(6,"0"),set:s=>{t.color=Number.parseInt(s,16)}}),o=pe(!1),r=Ve({get:()=>t.width*jX,set:s=>{t.width=s/jX}});return{lineColor:i,lineColorSelectorDisplayed:e,onShowColorSelectorClick:()=>{e.value=!e.value,o.value=!1},lineWidth:r,lineWidthSliderDisplayed:o,onShowLineWidthSliderClick:()=>{o.value=!o.value,e.value=!1}}}},NX=t=>(Ti("data-v-6b34ccfc"),t=t(),ji(),t),qai=NX(()=>w("div",{class:"bimdata-drawing-tools__sub-actions__color"},null,-1)),Gai=NX(()=>w("div",{class:"bimdata-drawing-tools__sub-actions__line-width"},[w("div",{class:"bimdata-drawing-tools__sub-actions__line-width__dot"})],-1)),Kai={class:"bimdata-drawing-tools__sub-actions__line-width-slider__content"};function Yai(t,e,i,o,r,s){const n=D("BIMDataColorSelector"),a=D("BIMDataButton"),l=D("BIMDataSlider"),c=Jt("click-away");return k(),R("div",{class:"bimdata-drawing-tools__sub-actions",style:X(`--pen2d-selected-color: #${o.lineColor}; --pen2d-line-width: ${o.lineWidth}px`)},[it((k(),_(a,{ghost:"",rounded:"",icon:"",onClick:o.onShowColorSelectorClick},{default:z(()=>[qai,o.lineColorSelectorDisplayed?(k(),_(n,{key:0,"model-value":o.lineColor,class:"bimdata-drawing-tools__sub-actions__color-selector",style:{"border-radius":"3px"},"onUpdate:modelValue":e[0]||(e[0]=d=>{o.lineColor=d,o.lineColorSelectorDisplayed=!1})},null,8,["model-value"])):W("",!0)]),_:1},8,["onClick"])),[[c,()=>o.lineColorSelectorDisplayed=!1]]),it((k(),_(a,{ghost:"",rounded:"",icon:"",onClick:o.onShowLineWidthSliderClick},{default:z(()=>[Gai,o.lineWidthSliderDisplayed?(k(),R("div",{key:0,class:"bimdata-drawing-tools__sub-actions__line-width-slider",onClick:e[2]||(e[2]=Xe(()=>{},["stop"]))},[w("div",null,H(t.$t("drawing-tools.pen.line-width")),1),w("div",Kai,[S(l,{modelValue:o.lineWidth,"onUpdate:modelValue":e[1]||(e[1]=d=>o.lineWidth=d),min:1,max:10,step:1},null,8,["modelValue"]),w("div",null,H(o.lineWidth)+" pt",1)])])):W("",!0)]),_:1},8,["onClick"])),[[c,()=>o.lineWidthSliderDisplayed=!1]])],4)}const Zai=F(_ai,[["render",Yai],["__scopeId","data-v-6b34ccfc"]]),Jai={name:"BIMDataDrawingTools",components:{LineStyleComponent:Zai},setup(){const t=nt("$viewer"),e=t.localContext.pluginComponentInstances.get("plan"),i=Ve(()=>{const{model:d,pdfPages:u,pdfPageIndex:h}=e;return u.length===0?d:u[h]}),o=Ui(null),r=Ui(null);st(r,()=>{r.value&&!n.value&&(n.value=r.value)});let s;yi(()=>{s=new Qai(e,t.api,i),sr("drawer",s);const d=new Map([Kni,nsi,Asi,Csi,Bsi,Osi,_si,Wsi,lai].map((u,h)=>{const A=new u(e,s);return h===0&&(r.value=A),[A.name,A]}));s.drawingFactories.get("text").connector=d.get("text").connector,o.value=new Map;for(const u of d.values())if(u.group){if(!o.value.has(u.group)){const h=pe(0),A=pe(!1);o.value.set(u.group,{get selectedActionIndex(){return h.value},set selectedActionIndex(f){h.value=f},get groupMenuDisplayed(){return A.value},set groupMenuDisplayed(f){A.value=f},actions:[]})}o.value.get(u.group).actions.push(u)}else o.value.set(u.name,{selectedActionIndex:0,actions:[u]})});const n=Ui(null),a=d=>{d.key==="Escape"&&(n.value=null)};window.addEventListener("keydown",a),Li(()=>{window.removeEventListener("keydown",a)});const l=Ve(()=>n.value&&n.value.lineStyleComponentDisplayed!==!1);st(n,(d,u)=>{if(o.value.forEach(h=>{h.groupMenuDisplayed=!1}),u?.onDeactivate(),d?d?.onActivate(()=>n.value=null):n.value=r.value,n.value.group){const h=o.value.get(n.value.group),A=h.actions.findIndex(f=>f.name===n.value.name);h.selectedActionIndex=A}});const c=d=>d?d.actions.some(u=>{var h;return u.name===((h=n.value)==null?void 0:h.name)}):!1;return{groupedActions:o,activeAction:n,lineStyleComponentDisplayed:l,isGroupActive:c,onActionGroupClick:d=>{d.groupMenuDisplayed=!1,c(d)?n.value=null:n.value=d.actions[d.selectedActionIndex]},toggleMenu:d=>{o.value.forEach(u=>{u!==d&&(u.groupMenuDisplayed=!1)}),d.groupMenuDisplayed=!d.groupMenuDisplayed},loadedModel:i,loadDrawings:d=>{s?.loadDrawings(d)},clearDrawings:()=>{s?.clearDrawings()}}}},RX=t=>(Ti("data-v-4f5203e5"),t=t(),ji(),t),Wai={key:0,class:"bimdata-drawing-tools"},Xai={class:"bimdata-drawing-tools__action__icon"},$ai=["onClick"],eli=RX(()=>w("div",{class:"bimdata-drawing-tools__action__menu__triangle"},null,-1)),tli={class:"bimdata-drawing-tools__action__menu__list__item"},ili={class:"bimdata-drawing-tools__action__icon"},oli=RX(()=>w("div",{class:"bimdata-drawing-tools__separator"},null,-1));function rli(t,e,i,o,r,s){const n=D("BIMDataIconValidate"),a=D("BIMDataMenu"),l=D("BIMDataButton"),c=D("LineStyleComponent");return o.loadedModel?(k(),R("div",Wai,[(k(!0),R(Ke,null,At(o.groupedActions,([d,u])=>(k(),_(l,{key:d,class:"bimdata-drawing-tools__action",color:o.isGroupActive(u)?"secondary":"primary",fill:o.isGroupActive(u),ghost:!o.isGroupActive(u),radius:"",icon:"",width:"36px",height:"36px",onClick:h=>o.onActionGroupClick(u)},{default:z(()=>[w("div",Xai,[(k(),_(Yi(u.actions[u.selectedActionIndex].icon)))]),u.actions.length>1?(k(),R("div",{key:0,class:"bimdata-drawing-tools__action__menu",onClick:Xe(h=>o.toggleMenu(u),["stop","self"])},[eli,u.groupMenuDisplayed?(k(),_(a,{key:0,class:"bimdata-drawing-tools__action__menu__list","menu-items":u.actions.map((h,A)=>({key:A,text:h.name,name:h.name,label:h.label,icon:h.icon,action:()=>{u.selectedActionIndex=A,u.groupMenuDisplayed=!1,o.activeAction=h}}))},{item:z(({item:h})=>{var A;return[w("div",tli,[w("div",null,[w("div",ili,[(k(),_(Yi(h.icon)))]),w("div",null,H(t.$t(h.label)),1)]),w("div",null,[h.name===((A=o.activeAction)==null?void 0:A.name)?(k(),_(n,{key:0,fill:"",color:"default"})):W("",!0)])])]}),_:2},1032,["menu-items"])):W("",!0)],8,$ai)):W("",!0)]),_:2},1032,["color","fill","ghost","onClick"]))),128)),o.lineStyleComponentDisplayed?(k(),R(Ke,{key:0},[oli,S(c)],64)):W("",!0)])):W("",!0)}const nli=F(Jai,[["render",rli],["__scopeId","data-v-4f5203e5"]]),sli="Drawing Tools",ali={"line-width":"Line width"},lli={pointer:"Move",pan:"Pan",arrow:"Arrow",ellipse:"Ellipsis",line:"Line",rectangle:"Rectangle"},cli={tooltip:sli,pen:ali,action:lli},dli="Outils 2D",uli={"line-width":"\xC9paisseur du trait"},hli={pointer:"D\xE9placer",pan:"Panoramique",arrow:"Fl\xE8che",ellipse:"Ellipse",line:"Trait",rectangle:"Rectangle"},pli={tooltip:dli,pen:uli,action:hli},Ali={name:"drawing-tools",i18n:{en:cli,fr:pli},component:nli,addToWindows:["plan"],button:{position:"left",content:"none"}},OX="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_$",fli=22;function zX(){let t="";for(;t.length<fli;)t=t.concat(OX.charAt(Math.floor(Math.random()*OX.length)));return t}let FX=class{constructor(t,{modelId:e,apiData:i,parent:o,isSpace:r=!1}){let{id:s,name:n,color:a=null,uuid:l}=i;this._state=t,this.id=s,this.uuid=l,this.modelId=e,this.order=i.order,this.children=zr([]),this.expandedRef=pe(!1),this._name=pe(n),this._color=pe(+a),this._visible=pe(!1),this._parent=o,o?.children.push(this),this.isSpace=r}get visible(){return this._visible.value}set visible(t){this._visible.value=t}get expanded(){return this.expandedRef.value}set expanded(t){this.expandedRef.value=t}get parent(){return this._parent}set parent(t){this._parent=t,t&&(this.color=t.color)}get name(){return this._name.value}set name(t){this._name.value=t}get color(){return this.parent?this.parent.color:this._color.value}set color(t){this.children.forEach(e=>e.color=t),this.parent||(this._color.value=t)}destroy(){this.children.forEach(t=>t.destroy())}};class UX extends FX{constructor(e,{modelId:i,apiSpace:o,parent:r}){super(e,{modelId:i,apiData:o,parent:r,isSpace:!0});const{id:s,geometry:n}=o;if(this._path=Ui(e.paths.get(s)||null),this._path.value&&(this._path.value.element=this,this.path.colorize(r?r.color:this.color),this.computeVisibility()),n&&!this.path){const{pen:a,texter:l}=e.viewer.plugins;this._path.value=a.draw(n.map(c=>({x:c.x,y:c.y}))),this._path.value.absoluteElevation=n[0].z,this.path.colorize(r?r.color:this.color),this.path.text=l.addText(this.name,this.path.object.id),this.path.object.getShape().style.lineOpacity=0,a.primaryColor=null,this.path.element=this,e.paths.set(s,this.path),this.computeVisibility()}}get visible(){return super.visible}set visible(e){super.visible=e,this.path&&(e?this.path.show():this.path.hide())}get name(){return super.name}set name(e){super.name=e,this.path&&(this.path.text.text=e)}get path(){return this._path.value}set path(e){if(!this.isSpace)return;const{$viewer:i}=this._state;e.element=this,this._path.value=e,this._path.value.absoluteElevation=i.localContext.selectedStorey.absoluteElevation,this._state.paths.set(this.id,this.path),this.computeVisibility()}get geometry(){if(!this.path)return null;const e=this.path.absoluteElevation;return this.path.points.map(i=>({x:i.x,y:i.y,z:e}))}get color(){return super.color}set color(e){var i;(i=this.path)==null||i.colorize(e),super.color=e}computeVisibility(){if(this._state.$viewer.localContext.selectedStorey){const{$viewer:e}=this._state,{absoluteElevation:i,absoluteTopElevation:o}=e.localContext.selectedStorey;this.visible=this.path.absoluteElevation>=i&&this.path.absoluteElevation<o}else this.visible=!1}resetPath(){const e=this.path;if(!(e!=null&&e.previousPoints))return;const i=e.object.getShape().getPath().points;for(let o=0;o<e.previousPoints.length;o++){const r=e.previousPoints[o],s=i[o];s.x=r.x,s.y=r.y}e.previousPoints=null}destroy(){this.path&&(this.path.destroy(),this._state.paths.delete(this.id)),super.destroy()}}let Bk=class $te extends FX{constructor(e,{modelId:i,apiZone:o,parent:r=null}){super(e,{modelId:i,apiData:o,parent:r,isSpace:!1}),o.zones.forEach(s=>new $te(e,{modelId:i,apiZone:s,parent:this})),o.spaces.forEach(s=>new UX(e,{modelId:i,apiSpace:s,parent:this})),this.storey_uuid=o.storey_uuid,this._colorEditing=pe(!1),this.children.sort(Rl("order")),this.expanded&&this.children.length===0&&(this.expanded=!1)}get colorEditing(){return this._colorEditing.value}set colorEditing(e){this._colorEditing.value=e}};class gli{constructor(e){this.state=e,this.zoneTrees=zr([]),this._loading=pe(!1),st(()=>e.$viewer.localContext.loadedModels[0],async i=>{this.zoneTrees.splice(0,this.zoneTrees.length),e.paths.forEach(o=>o.destroy()),e.paths.clear(),i&&(this.zoneTrees.push(...i.zones.map(o=>new Bk(this.state,{modelId:i.id,apiZone:o}))),this.zoneTrees.sort(Rl("order")))},{immediate:!0}),st(()=>e.$viewer.localContext.selectedStorey,i=>{var o;if(!i)return;const{absoluteElevation:r,absoluteTopElevation:s}=i;if(e.paths.forEach(n=>{const{absoluteElevation:a}=n;a>=r&&a<s?n.element.visible=!0:n.element.visible=!1}),(o=e.selectedElement)!=null&&o.path){const{absoluteElevation:n}=e.selectedElement.path;(n<r||n>=s)&&(e.selectedElement=null)}},{immediate:!0}),st(()=>e.selectedElement,(i,o)=>{if(o&&o.path&&(o.path.object.getShape().style.lineOpacity=0),!i)return;let r=i.parent;for(;r;)r.expanded=!0,r=r.parent;if(i.path){i.path.object.getShape().style.lineOpacity=1;const{absoluteElevation:s,absoluteTopElevation:n}=e.$viewer.localContext.selectedStorey,{absoluteElevation:a}=i.path;if(a<s||a>=n){const l=e.$viewer.localContext.loadedModels[0].storeys.find(c=>a>=c.absoluteElevation&&a<c.absoluteTopElevation);l&&e.$viewer.localContext.selectStorey(l)}}}),st(()=>e.highlightedElement,(i,o)=>{if(o!=null&&o.path&&(o.path.object.getShape().style.fillOpacity=.2),!i)return;let r=i.parent;for(;r;)r.expanded=!0,r=r.parent;i.path&&(i.path.object.getShape().style.fillOpacity=.3)})}get loading(){return this._loading.value}set loading(e){this._loading.value=e}async createZone(e,i=null,o=null){const{cloudId:r,projectId:s,apiClient:n}=this.state.$viewer.api;try{this._loading.value=!0;const a=this.state.$viewer.localContext.loadedModels[0].id,l=(await n.modelApi.createZone(r,a,s,[{uuid:zX(),name:e,parent_id:i?.id,color:String(o),storey_uuid:this.state.$viewer.localContext.selectedStorey.uuid}]))[0],c=new Bk(this.state,{modelId:a,apiZone:l,parent:i});return this.state.selectedElement=c,await this.restoreApiState(),c}catch(a){console.error(a),this.state.$viewer.globalContext.hub.emit("alert",{type:"error",message:this.state.$viewer.i18n.$t("zone-editor.error.create-zone")})}finally{this._loading.value=!1}}async createSpace(e,i){const{cloudId:o,projectId:r,apiClient:s}=this.state.$viewer.api;try{this.loading=!0;const n=await s.modelApi.createZoneSpace(o,i.modelId,r,i.id,{uuid:zX(),name:e}),a=new UX(this.state,{modelId:i.modelId,apiSpace:n,parent:i});return this.state.selectedElement=a,await this.restoreApiState(),a}catch(n){console.error(n),this.state.$viewer.globalContext.hub.emit("alert",{type:"error",message:this.state.$viewer.i18n.$t("zone-editor.error.create-space")})}finally{this.loading=!1}}async delete(e,i=!0){const{cloudId:o,projectId:r,apiClient:s}=this.state.$viewer.api,{isSpace:n}=e;i&&(this.loading=!0);try{if(await Promise.all(e.children.map(a=>this.delete(a,!1))),!i&&!n)return;await s.modelApi[n?"deleteSpace":"deleteZone"](o,e.id,e.modelId,r),i&&await this.restoreApiState()}catch(a){console.error(a),this.state.$viewer.globalContext.hub.emit("alert",{type:"error",message:this.state.$viewer.i18n.$t(`zone-editor.error.delete-${n?"space":"zone"}`)})}finally{i&&(this.loading=!1)}this.state.selectedElement&&(this.state.selectedElement===e||VX(this.state.selectedElement,e))&&(this.state.selectedElement=null)}getRequestedOrder(e,i){if(e===0)return 0;const o=i?.children??this.zoneTrees,r=o[e];if(r)return r.order;{const s=o[e-1];return s?s.order+1:0}}async reorder(e,i,o){if(i!=null&&i.isSpace)return;const r=e.parent,s=i?.id===r?.id,{cloudId:n,projectId:a,apiClient:l}=this.state.$viewer.api;let c=i;for(;c;)c.expanded=!0,c=c.parent;try{this.loading=!0;const d={order:this.getRequestedOrder(o,i)};if(!s&&!e.isSpace&&(d.parent_id=i?.id??null),e.isSpace){if(!i)return;s?await l.modelApi.updateZoneSpace(n,e.id,e.modelId,a,i.id,d):(Object.assign(d,{id:e.id}),await Promise.all([l.modelApi.addZoneSpace(n,e.modelId,a,i.id,d),l.modelApi.deleteZoneSpace(n,e.id,e.modelId,a,r.id)]))}else d.parent_id===null&&r&&(d.color=r.color,e._color.value=r.color),await l.modelApi.updateZone(n,e.id,e.modelId,a,d);await this.restoreApiState()}catch(d){console.error(d),this.state.$viewer.globalContext.hub.emit("alert",{type:"error",message:this.state.$viewer.i18n.$t("zone-editor.error.update-order")});return}finally{this.loading=!1}}async rename(e,i){return this.update(e,{name:i},"update-name")}async colorize(e,i){return this.update(e,{color:String(i)},"update-color")}async updatePath(e,i){if(!e.isSpace)return;const o=i?.absoluteElevation;return this.update(e,{geometry:i?.points.map(r=>({x:r.x,y:r.y,z:o}))??null},"update-geometry")}async update(e,i,o){const{api:r,i18n:s}=this.state.$viewer,{cloudId:n,projectId:a}=r,{id:l,modelId:c,isSpace:d}=e;this.loading=!0;try{await r.apiClient.modelApi[d?"updateSpace":"updateZone"](n,l,c,a,i)}catch(u){console.error(u),this.state.$viewer.globalContext.hub.emit("alert",{type:"error",message:s.$t(`zone-editor.error.${o}`)})}finally{this.loading=!1}}async restoreApiState(){const e=this.state.$viewer.localContext.loadedModels[0],{selectedElement:i,highlightedElement:o}=this.state;if(!e)return;const{apiClient:r,cloudId:s,projectId:n}=this.state.$viewer.api,a=(await r.modelApi.getZones(s,e.id,n)).map(f=>new Bk(this.state,{modelId:e.id,apiZone:f})).sort(Rl("order")),{zones:l,spaces:c}=this.elements,{zones:d,spaces:u}=Sk(a);d.forEach((f,p)=>{const g=l.get(p);g&&(f.expanded=g.expanded)}),u.forEach((f,p)=>{const g=c.get(p);g&&(f.expanded=g.expanded)}),this.zoneTrees.splice(0,this.zoneTrees.length),await bo(),this.zoneTrees.push(...a);const{spaces:h,zones:A}=this.elements;i&&(this.state.selectedElement=i.isSpace?h.get(i.id):A.get(i.id)),o&&(this.state.highlightedElement=o.isSpace?h.get(o.id):A.get(o.id))}get elements(){const{zones:e,spaces:i}=Sk(this.zoneTrees);return{zones:e,spaces:i}}}function Sk(t,e=null,i=null){const o=e??new Map,r=i??new Map;return t.forEach(s=>{s.isSpace?r.set(s.id,s):o.set(s.id,s),s.children&&Sk(s.children,o,r)}),{zones:o,spaces:r}}function VX(t,e){var i;return((i=e.children)==null?void 0:i.some(o=>o.id===t.id||VX(o,t)))??!1}const mli={},vli={width:"19",height:"20",viewBox:"0 0 19 20",fill:"none",xmlns:"http://www.w3.org/2000/svg"},yli=br('<path fill-rule="evenodd" clip-rule="evenodd" d="M9.53906 10.2704H11.3877V9.15625H9.53906V10.2704Z" fill="#30374B"></path><path fill-rule="evenodd" clip-rule="evenodd" d="M7.82903 10.2704H8.55308V9.15625H7.82903H6.71484V10.2704V11.0048H7.82903V10.2704Z" fill="#30374B"></path><path fill-rule="evenodd" clip-rule="evenodd" d="M6.71484 13.6494H7.82903V11.8008H6.71484V13.6494Z" fill="#30374B"></path><path fill-rule="evenodd" clip-rule="evenodd" d="M6.71484 16.2793H7.82903V14.4307H6.71484V16.2793Z" fill="#30374B"></path><path fill-rule="evenodd" clip-rule="evenodd" d="M9.79102 14.7647V16.5106H11.5369L16.6864 11.3612L14.9405 9.61523L9.79102 14.7647Z" fill="#30374B"></path><mask id="mask0_5416_15810" style="mask-type:alpha;" maskUnits="userSpaceOnUse" x="15" y="8" width="4" height="3"><path fill-rule="evenodd" clip-rule="evenodd" d="M15.4395 8.12891H18.1736V10.863H15.4395V8.12891Z" fill="white"></path></mask><g mask="url(#mask0_5416_15810)"><path fill-rule="evenodd" clip-rule="evenodd" d="M18.0374 9.35452L16.948 8.26506C16.7664 8.08352 16.4731 8.08352 16.2915 8.26506L15.4395 9.11712L17.1854 10.863L18.0374 10.0111C18.2191 9.82943 18.2191 9.53616 18.0374 9.35452Z" fill="#30374B"></path></g><mask id="mask1_5416_15810" style="mask-type:alpha;" maskUnits="userSpaceOnUse" x="0" y="0" width="14" height="20"><path fill-rule="evenodd" clip-rule="evenodd" d="M0 0H13.9621V19.7602H0V0Z" fill="white"></path></mask><g mask="url(#mask1_5416_15810)"><path fill-rule="evenodd" clip-rule="evenodd" d="M12.5556 18.4544H7.82861V17.1086H6.71442V18.4544H1.40648V1.30572H12.5556V10.6815L13.9621 9.27505V0H0V19.7602H13.9621V15.4637L12.5556 16.8702V18.4544Z" fill="#30374B"></path></g>',9),wli=[yli];function bli(t,e){return k(),R("svg",vli,wli)}const HX=F(mli,[["render",bli]]),Mli={components:{ZoneEditorIcon:HX},props:{doneButton:{type:Boolean,default:!0}},setup(){const t=nt("$viewer"),e=pe(!1);let i=null;t.globalContext.hub.once("zone-editor:open",(r=null)=>{i=r},{getLastEvent:!0});const o=Ve(()=>t.localContext.loadedModels[0]);return{model:o,loading:e,onDoneClick:async()=>{if(e.value=!0,!o.value)throw new Error("[Zone Editor] No model loaded while quitting the zone editor");try{const{apiClient:r,cloudId:s,projectId:n}=t.api,a=await r.modelApi.getZones(s,o.value.id,n);o.value.setZones(a)}catch(r){console.error(`[Zone Editor] Impossible to retrieve zones of model with id : ${o.value.id}`,r)}t.globalContext.layout=i}}}},Cli=t=>(Ti("data-v-a3c7eacc"),t=t(),ji(),t),xli={class:"bimdata-zone-editor__header"},kli={class:"bimdata-zone-editor__header__texts"},Ili={class:"bimdata-zone-editor__header__texts__title"},Eli=Cli(()=>w("span",{class:"m-x-12"},"-",-1)),Dli={class:"bimdata-zone-editor__header__texts__model"},Pli={class:"bimdata-zone-editor__header__buttons"};function Bli(t,e,i,o,r,s){const n=D("ZoneEditorIcon"),a=D("BIMDataSpinner"),l=D("BIMDataButton");return k(),R("div",xli,[w("div",kli,[S(n,{class:"m-x-6"}),w("span",Ili,H(t.$t("zone-editor.title")),1),o.model?(k(),R(Ke,{key:0},[Eli,w("span",Dli,H(o.model.name),1)],64)):W("",!0)]),w("div",Pli,[i.doneButton?(k(),_(l,{key:0,color:"primary",fill:"",radius:"",class:"m-x-6",width:"120px",onClick:o.onDoneClick},{default:z(()=>[o.loading?(k(),_(a,{key:0})):(k(),R(Ke,{key:1},[Oe(H(t.$t("global.done")),1)],64))]),_:1},8,["onClick"])):W("",!0)])])}const Sli=F(Mli,[["render",Bli],["__scopeId","data-v-a3c7eacc"]]),Lli={name:"ViewerPlanMini",data(){return{loading:!1}},computed:{model(){return this.$viewer.localContext.loadedModels[0]},selectedStorey(){return this.$viewer.localContext.selectedStorey}},watch:{loading(t){t?this.$viewer.localContext.loadingProcessStart():this.$viewer.localContext.loadingProcessEnd()},selectedStorey(t){this.onStoreyChange(t)},model(t,e){this.onModelChange(t,e)}},created(){this.isMounted=new Promise(t=>{this.mountResolve=t})},mounted(){this.$viewer.localContext.el.addEventListener("contextmenu",this.onContextMenu);const t=dh({canvas:this.$refs.canvas});t.styles.default.lineWidth=.01,t.settings.rotateSpeed=.05,t.settings.snapMargin=.04,t.textureManager.textureMatrix.scale(.01,.01),this.viewer=t,window.engine2d=t,this.engine2dCreated=!0,this.plugins=lf(this,{caliper:!1,spaceNames:!1,gauge:!1,bitmaps:!0,storeys:!1,doors:!1,compass:!1});const e=this.plugins.bitmaps;this.localContextSubscriptions=[this.$viewer.localContext.hub.on("plan-shown",({plan:i})=>{e.showPlan(i)}),this.$viewer.localContext.hub.on("plan-hidden",({plan:i})=>{e.hidePlan(i)})],this.$viewer.localContext.registerShortcut({name:"fitview",key:"F",execute:()=>this.fitView()}),this.mountResolve()},unmounted(){var t,e;this.$viewer.localContext.unregisterShortcut("fitview"),(t=this.$viewer.localContext.el)==null||t.removeEventListener("contextmenu",this.onContextMenu),Object.values(this.plugins).forEach(i=>{var o;return(o=i.destroy)==null?void 0:o.call(i)}),(e=this.viewer)==null||e.destroy(),this.localContextSubscriptions.forEach(i=>this.$viewer.localContext.hub.off(i))},methods:{async onModelChange(t,e){await this.isMounted,e&&this.plugins.bitmaps.clear()},async onStoreyChange(t){t&&(this.loading=!0,await Promise.all(t.plans.filter(e=>this.$viewer.localContext.shownPlans.some(i=>e.key===i.key)).map(e=>this.plugins.bitmaps.showPlan(e))),this.fitView(),this.loading=!1)},fitView({bitmaps:t,marginsRatio:e=1.1}={}){if(!t){const p=this.$viewer.localContext.shownPlans;t=this.plugins.bitmaps.bitmaps.filter(g=>p.some(m=>m.key===g.plan.key))}const i=t[0],o=this.viewer;if(!i)return;const{x:r,y:s,scale:n,imageBitmap:{width:a,height:l}}=i,{width:c,height:d}=o.canvas,u=a/c,h=l/d,A=Math.max(u,h)*i3*e,f=n/A*100;o.camera.setViewpoint({x:r,y:s,rotation:0,zoom:f})},onContextMenu(){const t=this;this.$viewer.contextMenu.registerContextCommand({get label(){return t.$t("global.fit_view")},picto:"F",execute:()=>this.fitView()})}}},Tli={class:"bimdata-viewer-plan-mini"},jli={ref:"canvas",class:"bimdata-viewer-plan-mini__canvas"},Nli={key:"texter",ref:"texter",style:{position:"absolute",top:"0px",left:"0px"}};function Rli(t,e,i,o,r,s){const n=D("BIMDataNoModelWindowPlaceHolder");return k(),R("div",Tli,[w("canvas",jli,null,512),!s.model&&!r.loading?(k(),_(n,{key:0})):W("",!0),w("div",Nli,null,512)])}const Oli=F(Lli,[["render",Rli],["__scopeId","data-v-8e70ca31"]]),zli={},Fli={width:"13",height:"17",viewBox:"0 0 13 17",fill:"none",xmlns:"http://www.w3.org/2000/svg"},Uli=w("path",{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M0.0205887 0.760241C-0.0369001 0.612234 0.0293064 0.447777 0.177996 0.369239L0.794439 0.0436382C0.943129 -0.0348991 1.13191 -0.00512553 1.24327 0.114426C2.20441 1.14624 3.98875 2.45304 5.91415 3.77084C6.67376 4.29074 7.45537 4.81236 8.20995 5.31594C9.3481 6.0755 10.4248 6.79402 11.2717 7.40369C12.7916 8.49791 13.1419 9.88267 12.9535 11.1463C12.784 12.2835 12.1812 13.3235 11.6281 13.9998L12.22 14.9378C12.3183 15.0935 12.26 15.2927 12.0898 15.3826L9.11031 16.9563C8.94008 17.0462 8.72242 16.9929 8.62414 16.8371L8.0322 15.8992C7.11546 15.9992 5.82958 15.9568 4.66823 15.5225C3.3779 15.04 2.24219 14.0701 1.96637 12.3187C1.82059 11.393 1.68028 10.2545 1.53148 9.04694C1.41992 8.14169 1.30358 7.19767 1.17658 6.27549C0.876924 4.09967 0.517281 2.039 0.0205887 0.760241ZM1.10889 1.88952C1.4235 3.12855 1.67045 4.65216 1.8828 6.19409C2.01281 7.13806 2.12977 8.08803 2.24122 8.99317C2.38829 10.1877 2.52577 11.3043 2.67091 12.2258C2.90528 13.714 3.84317 14.5105 4.93756 14.9197C6.05334 15.337 7.33156 15.3476 8.16398 15.225C8.30978 15.2035 8.45493 15.2666 8.52877 15.3836L9.06263 16.2296L11.4257 14.9814L10.8918 14.1355C10.818 14.0185 10.8308 13.8719 10.924 13.7671C11.4563 13.1689 12.0853 12.1509 12.2483 11.0582C12.408 9.98654 12.1231 8.84526 10.8315 7.91546C9.99174 7.31094 8.93656 6.60686 7.80965 5.85492C7.05354 5.3504 6.26503 4.82427 5.48775 4.29227C4.0633 3.31734 2.67549 2.32196 1.63764 1.42496L6.84795 9.68113C7.39973 9.55339 7.99902 9.7688 8.29767 10.242C8.65803 10.813 8.44417 11.5432 7.82001 11.8729C7.19585 12.2026 6.39774 12.0069 6.03738 11.4359C5.73868 10.9626 5.83449 10.38 6.23147 10.0067L1.10889 1.88952Z",fill:"#2F374A"},null,-1),Vli=[Uli];function Hli(t,e){return k(),R("svg",Fli,Vli)}const Qli=F(zli,[["render",Hli]]),_li={components:{ViewerPlanMini:Oli,FeatherPenIcon:Qli},setup(){const t=nt("state");let e=null;yi(()=>{t.viewer=i.value,e=qli(t,r,a)});const i=Ui(null),o=pe("path"),r=pe(!1),s=(u="path")=>{r.value&&n.value.resetPath(),o.value=u,r.value=!r.value},n=Ve(()=>t.selectedElement),a=Ve(()=>{var u;return((u=n.value)==null?void 0:u.path)&&r.value}),l=u=>{u.key==="Escape"&&(a.value&&n.value.resetPath(),r.value=!1)};document.addEventListener("keydown",l),Li(()=>{document.removeEventListener("keydown",l),e?.()});let c=null;const d=u=>{u.stopEditing(),u.stopDrawing(),u.path=null,u.off(c)};return st(r,u=>{const{pen:h,texter:A}=t.viewer.plugins;u?n.value.path?(h.path=n.value.path,h.path.previousPoints=h.path.points,h.startEditing()):(h.drawMode=o.value,o.value==="rectangle"&&(h.primaryColor=n.value.color),h.startDrawing(),c=h.once("add",({path:f})=>{r.value=!1,f.colorize(n.value.color),n.value.path=f,f.element=n.value,t.service.updatePath(n.value,f),n.value.path.text=A.addText(n.value.name,f.object.id),h.primaryColor=null})):d(h)}),st(n,(u,h)=>{h&&r.value&&h.resetPath(),r.value=!1}),{viewer:i,drawing:r,drawMode:o,selectedElement:n,editing:a,onDrawClick:s,onDoneEditingClick:()=>{n.value.path.previousPoints=null,t.service.updatePath(n.value,n.value.path),r.value=!1},onCancelEditingClick:()=>{n.value.resetPath(),r.value=!1}}}};function qli(t,e,i){const{viewer:o,paths:r}=t,s=o.viewer.canvas.parentElement,n=o.viewer.ui.on("click",({object:l})=>{if(!(e.value||i.value))if(l){const c=[...r.values()].find(d=>d.object.id===l.id);if(!c)return;t.selectedElement=c.element}else!e.value&&!i.value&&(t.selectedElement=null)}),a=o.viewer.ui.on("mousemove",({object:l})=>{if(!(e.value||i.value))if(l){s.style.cursor="pointer";const c=[...r.values()].find(d=>d.object.id===l.id);if(!c)return;t.highlightedElement=c.element}else s.style.cursor="default",t.highlightedElement=null});return()=>{o.viewer.ui.off(n),o.viewer.ui.off(a)}}const Gli=t=>(Ti("data-v-0af764e7"),t=t(),ji(),t),Kli={class:"zone-editor__viewer"},Yli={key:0,class:"zone-editor__viewer__draw-buttons"},Zli=Gli(()=>w("div",{class:"zone-editor__viewer__rectangle-icon"},null,-1));function Jli(t,e,i,o,r,s){var n;const a=D("BIMDataIcon"),l=D("FeatherPenIcon"),c=D("BIMDataButton"),d=D("ViewerPlanMini");return k(),R("div",Kli,[(n=o.selectedElement)!=null&&n.isSpace?(k(),R("div",Yli,[S(c,{color:o.drawing&&o.drawMode==="path"?"secondary":"default",fill:"",square:"",icon:"",onClick:e[0]||(e[0]=u=>o.onDrawClick("path"))},{default:z(()=>[o.selectedElement.path?(k(),_(a,{key:0,name:"edit",size:"xs"})):(k(),_(l,{key:1}))]),_:1},8,["color"]),o.selectedElement.path?W("",!0):(k(),_(c,{key:0,class:"m-l-6",color:o.drawing&&o.drawMode==="rectangle"?"secondary":"default",fill:"",square:"",icon:"",onClick:e[1]||(e[1]=u=>o.onDrawClick("rectangle"))},{default:z(()=>[Zli]),_:1},8,["color"])),o.editing?(k(),R(Ke,{key:1},[S(c,{color:"primary",fill:"",radius:"",class:"m-x-6",width:"80px",height:"26px",onClick:o.onDoneEditingClick},{default:z(()=>[Oe(H(t.$t("global.done")),1)]),_:1},8,["onClick"]),S(c,{color:"high",fill:"",radius:"",class:"m-x-6",width:"80px",height:"26px",onClick:o.onCancelEditingClick},{default:z(()=>[Oe(H(t.$t("global.cancel")),1)]),_:1},8,["onClick"])],64)):W("",!0)])):W("",!0),S(d,{ref:"viewer"},null,512)])}const Wli=F(_li,[["render",Jli],["__scopeId","data-v-0af764e7"]]),Xli="data:video/webm;base64,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",$li={},eci={width:"13",height:"13",viewBox:"0 0 13 13",xmlns:"http://www.w3.org/2000/svg"},tci=w("path",{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M3.12605 1.01236H4.91461V0H3.12605V1.01236ZM6.70594 1.01236H8.49449V0H6.70594V1.01236ZM11.8107 1.05155C11.7626 1.02552 11.7099 1.01236 11.6543 1.01236H10.2795V0H11.6543C11.8766 0 12.0971 0.0555353 12.2918 0.160821L11.8107 1.05155ZM1.01236 1.82124H0V1.34326C0 0.606839 0.599173 0.00419407 1.33545 0L1.34123 1.01236C1.16002 1.01337 1.01236 1.1619 1.01236 1.34326V1.82124ZM11.9869 4.01884H12.9993V2.23029H11.9869V4.01884ZM0 5.39859H1.01236V3.61004H0V5.39859ZM11.9869 7.59555H12.9993V5.807H11.9869V7.59555ZM0 8.9753H1.01236V7.18675H0V8.9753ZM11.9869 11.1731H12.9993V9.38451H11.9869V11.1731ZM0.698963 12.835C0.267987 12.5989 0.000144623 12.1473 0 11.6561V10.7643H1.01236V11.656C1.01236 11.7772 1.0786 11.8886 1.18504 11.9468L0.698963 12.835ZM2.71348 12.9993H4.50203V11.9869H2.71348V12.9993ZM6.29019 12.9993H8.07874V11.9869H6.29019V12.9993ZM9.87008 12.9993V11.9869H11.6586L11.674 12.9993H9.87008Z",fill:"#30374B"},null,-1),ici=[tci];function oci(t,e){return k(),R("svg",eci,ici)}const QX=F($li,[["render",oci]]),rci={},nci={width:"14",height:"13",viewBox:"0 0 14 13",xmlns:"http://www.w3.org/2000/svg"},sci=w("path",{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M9.14062 2.94864H9.91241V2.28711H9.14062V2.94864Z",fill:"#30374B"},null,-1),aci=w("path",{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M1.15101 0.771782H2.40119V0H1.15101V0.771782ZM3.65057 0.771782H4.90075V0H3.65057V0.771782ZM6.1512 0.771782H7.40138V0H6.1512V0.771782ZM9.91006 1.03727H9.13827V1.02415C9.13827 0.885013 9.02515 0.771782 8.88601 0.771782H8.65183V0H8.88601C9.45074 0 9.91006 0.459431 9.91006 1.02415V1.03727ZM0 2.39505H0.771782V1.14488H0V2.39505ZM0 4.89568H0.771782V3.6455H0V4.89568ZM0 7.39604H0.771782V6.14586H0V7.39604ZM1.03154 9.91029C0.459431 9.91029 0 9.45086 0 8.88614V8.64622H0.771782V8.88614C0.771782 9.02528 0.885013 9.13851 1.02415 9.13851L1.03154 9.91029Z",fill:"#30374B"},null,-1),lci=w("path",{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M2.28906 9.91045H2.95059V9.13867H2.28906V9.91045Z",fill:"#30374B"},null,-1),cci=w("path",{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M5.54831 3.86163H6.91183V3.08984H5.54831V3.86163ZM8.27529 3.86163H9.63881V3.08984H8.27529V3.86163ZM12.1698 3.8915C12.1331 3.87166 12.0928 3.86163 12.0504 3.86163H11.0023V3.08984H12.0504C12.2199 3.08984 12.388 3.13218 12.5365 3.21245L12.1698 3.8915ZM3.93613 4.47835H3.16434V4.11396C3.16434 3.55254 3.62102 3.09311 4.18243 3.08992L4.18685 3.8617C4.04859 3.86247 3.93613 3.9757 3.93613 4.11396V4.47835ZM12.3028 6.15372H13.0746V4.79021H12.3028V6.15372ZM3.16406 7.20544H3.93584V5.84192H3.16406V7.20544ZM12.3028 8.88071H13.0746V7.51719H12.3028V8.88071ZM3.16406 9.93243H3.93584V8.56891H3.16406V9.93243ZM12.3028 11.6077H13.0746V10.2442H12.3028V11.6077ZM3.69681 12.8745C3.36825 12.6946 3.16406 12.3503 3.16406 11.9758V11.2959H3.93584V11.9757C3.93584 12.0681 3.98623 12.153 4.06738 12.1974L3.69681 12.8745ZM5.23226 13.0001H6.59578V12.2283H5.23226V13.0001ZM7.95925 13.0001H9.32276V12.2283H7.95925V13.0001ZM10.6862 13.0001V12.2283H12.0498L12.0614 13.0001H10.6862Z",fill:"#30374B"},null,-1),dci=[sci,aci,lci,cci];function uci(t,e){return k(),R("svg",nci,dci)}const _X=F(rci,[["render",uci]]),hci={components:{SpaceIcon:QX,ZoneIcon:_X},props:{element:{type:Object,required:!0},getNodePosition:{type:Function,required:!0}},emits:["color-change","rename","delete","create-zone","create-space"],setup(t,{emit:e}){const{i18n:i}=nt("$viewer"),o=pe(!1),r=pe("bottom");st(o,n=>{n&&(r.value=t.getNodePosition(t.element))});const s=[];return t.element.isSpace||s.push({key:1,icon:"create-zone",get text(){return i.$t("zone-editor.create_zone")},action:()=>{o.value=!1,e("create-zone")}},{key:2,icon:"create-space",get text(){return i.$t("zone-editor.create_space")},action:()=>{o.value=!1,e("create-space")},space:!0}),s.push({key:3,icon:"edit",get text(){return i.$t("global.rename")},action:()=>{o.value=!1,e("rename")}}),t.element.parent||s.push({key:4,get text(){return i.$t("zone-editor.edit_color")},icon:"color",action:()=>{o.value=!1,e("color-change")}}),s.push({divider:!0},{key:5,get text(){return i.$t("global.delete")},icon:"delete",color:"var(--color-high)",background:"var(--color-high-lighter)",action:()=>{o.value=!1,e("delete")}}),{menuDisplayed:o,menuItems:s,position:r}}},pci={class:"zone-editor__zone-list-element-menu"},Aci={class:"zone-editor__zone-list-element-menu__menu__element"},fci={class:"zone-editor__zone-list-element-menu__menu__element__start"},gci={key:0};function mci(t,e,i,o,r,s){const n=D("BIMDataIcon"),a=D("BIMDataButton"),l=D("BIMDataIconChevron"),c=D("SpaceIcon"),d=D("ZoneIcon"),u=D("BIMDataMenu"),h=Jt("click-away");return it((k(),R("div",pci,[S(a,{class:"m-l-6",width:"20px",height:"20px",color:"primary",ghost:"",rounded:"",icon:"",onClick:e[0]||(e[0]=Xe(A=>o.menuDisplayed=!o.menuDisplayed,["stop"]))},{default:z(()=>[S(n,{name:"ellipsis",size:"m",rotate:90})]),_:1}),o.menuDisplayed?(k(),_(u,{key:0,class:$(["zone-editor__zone-list-element-menu__menu",`zone-editor__zone-list-element-menu__menu--${o.position}`]),"menu-items":o.menuItems,"children-left":!1},{item:z(({item:A})=>{var f;return[w("div",Aci,[w("div",fci,[S(n,{name:A.icon,size:"xs",margin:"0 12px 0 0"},null,8,["name"]),w("span",null,H(A.text),1)]),(f=A.children)!=null&&f.length?(k(),R("div",gci,[S(l,{size:"xs"})])):W("",!0)])]}),"child-item":z(({child:A})=>[A.space?(k(),_(c,{key:0,class:"m-r-12"})):(k(),_(d,{key:1,class:"m-r-12"})),Oe(" "+H(A.text),1)]),_:1},8,["class","menu-items"])):W("",!0)])),[[h,()=>o.menuDisplayed=!1]])}const vci=F(hci,[["render",mci],["__scopeId","data-v-ddb9e945"]]),yci={props:{initValue:{type:String,default:""},position:{type:String,default:"bottom"}},emits:["cancel","validate"],setup(t,{emit:e}){const i=s=>{s.defaultPrevented||(s.key==="Enter"&&o.value&&e("validate",o.value),s.key==="Escape"&&e("cancel"))};document.addEventListener("keydown",i),Li(()=>document.removeEventListener("keydown",i));const o=pe(t.initValue),r=pe(null);return yi(()=>{r.value.focus()}),{label:o,labelInput:r}}},wci={class:"zone-editor__zone-list__naming-modal__input m-x-12"};function bci(t,e,i,o,r,s){const n=D("BIMDataInput"),a=D("BIMDataButton");return k(),R("div",{class:$(["zone-editor__zone-list__naming-modal",{"zone-editor__zone-list__naming-modal--top":i.position==="top"}]),onMousedown:e[4]||(e[4]=Xe(()=>{},["stop"]))},[w("div",wci,[S(n,{ref:"labelInput",modelValue:o.label,"onUpdate:modelValue":e[0]||(e[0]=l=>o.label=l),loading:!1},null,8,["modelValue"])]),w("div",{class:"zone-editor__zone-list__naming-modal__buttons",onClick:e[3]||(e[3]=Xe(()=>{},["stop"]))},[S(a,{color:"primary",ghost:"",radius:"",class:"m-12",width:"80px",onClick:e[1]||(e[1]=l=>t.$emit("cancel"))},{default:z(()=>[Oe(H(t.$t("global.cancel")),1)]),_:1}),S(a,{color:"primary",fill:"",radius:"",class:"m-12",width:"80px",disabled:!o.label,onClick:e[2]||(e[2]=l=>t.$emit("validate",o.label))},{default:z(()=>[Oe(H(t.$t("global.validate")),1)]),_:1},8,["disabled"])])],34)}const Mci=F(yci,[["render",bci],["__scopeId","data-v-3c01d36a"]]),Cci={props:{label:{type:String,default:null},position:{type:String,default:"bottom"}},emits:["cancel","delete"],setup(t,{emit:e}){const i=o=>{o.defaultPrevented||o.key==="Escape"&&e("cancel")};document.addEventListener("keydown",i),Li(()=>document.removeEventListener("keydown",i))}},xci={class:"zone-editor__zone-list__delete-modal__message m-24"},kci={class:"zone-editor__zone-list__delete-modal__buttons"};function Ici(t,e,i,o,r,s){const n=D("BIMDataButton");return k(),R("div",{class:$(["zone-editor__zone-list__delete-modal",{"zone-editor__zone-list__delete-modal--top":i.position==="top"}]),onMousedown:e[2]||(e[2]=Xe(()=>{},["stop"]))},[w("div",xci," Are you sure you want to delete "+H(i.label||"the zone")+" ? ",1),w("div",kci,[S(n,{color:"primary",ghost:"",radius:"",class:"m-12",width:"80px",onClick:e[0]||(e[0]=a=>t.$emit("cancel"))},{default:z(()=>[Oe(H(t.$t("global.cancel")),1)]),_:1}),S(n,{color:"high",fill:"",radius:"",class:"m-12",width:"80px",onClick:e[1]||(e[1]=a=>t.$emit("delete"))},{default:z(()=>[Oe(H(t.$t("global.delete")),1)]),_:1})])],34)}const Eci=F(Cci,[["render",Ici],["__scopeId","data-v-30977045"]]),Dci={components:{ZoneEditorIcon:HX,ColorSelector:Lb,SpaceIcon:QX,ZoneIcon:_X,ZoneListElementMenu:vci,NamingModal:Mci,DeleteModal:Eci},emits:["zone-selected"],setup(){const t=nt("state"),e=nt("$viewer"),{i18n:i}=e,{service:o}=t,r=pe(null),s=pe(null),n=L=>`#${L.toString(16).padStart(6,0)}`,a=Ve(()=>t.selectedElement),l=Ve(()=>{var L;return(L=t.highlightedElement)==null?void 0:L.id}),c=L=>{const j=r.value.querySelector(L);if(!j)return;const O=s.value.$el.getBoundingClientRect(),V=j.getBoundingClientRect();(V.top<=O.top||V.bottom>=O.bottom)&&j.scrollIntoView({behavior:"smooth",block:"center",inline:"start"})};st(a,async()=>{await new Promise(L=>setTimeout(L,0)),c('[data-selected-element="true"]')});const d=L=>{const j=r.value.querySelector(`[data-node-id="${L.id}"]`);if(!j)return"bottom";const O=j.getBoundingClientRect(),V=s.value.$el.getBoundingClientRect(),Q=V.top+V.height/2;return O.top>Q?"top":"bottom"},u=pe(null),h=pe(null),A=pe(null),f=pe(null),p=pe(null),g=pe(!1),m=async()=>{g.value=!0},M=()=>{h.value=null,f.value=null},y=async(L,j)=>{if(h.value!=null)L.name=j,o.rename(L,j);else try{p.value==="space"?await o.createSpace(j,L):await o.createZone(j,L)}finally{p.value=null}M()},b=L=>{g.value=!1,o.createZone(L,null,Dl())},C=L=>p.value==="space"?`${i.$t("zone-editor.space")}-${L.children.filter(j=>j.isSpace).length+1}`:`${i.$t("zone-editor.zone")}-${L.children.filter(j=>!j.isSpace).length+1}`,x=async({node:L,parent:j,index:O})=>o.reorder(L,j,O),I=L=>{t.selectedElement===L?t.selectedElement=null:t.selectedElement=L},E=L=>{u.value=L?.id,t.highlightedElement=L},P=(L,j)=>{L.color=j,L.colorEditing=!1,o.colorize(L,j)},N=Ve(()=>{const L=e.localContext.selectedStorey;return L?o.zoneTrees.filter(j=>j.storey_uuid===L.uuid):[]});return{el:r,tree:s,trees:N,selectedElement:a,hoveredZoneId:u,highlightedElementId:l,renamingElementId:h,deletingElementId:A,creatingChildZoneId:f,childToBeCreated:p,zoneNameModalDIsplayed:g,loading:Ve(()=>o.loading),onGlobalNamingModalValidate:b,getNodePosition:d,onClick:I,onHover:E,deleteZone:L=>{L.destroy(),o.delete(L)},onCreateZoneClick:m,toColorString:n,clearNamingModal:M,onNamingModalValidate:y,getChildInitName:C,onZoneDrop:x,onColorChange:P,video:Xli}}},Pci={ref:"el",class:"zone-editor__zone-list"},Bci=["data-selected-element","data-node-id"],Sci={class:"zone-editor__zone-list__list-element-template__line-start"},Lci={class:"zone-editor__zone-list__list-element-template__line-start__icon"},Tci={key:2,class:"zone-editor__zone-list__list-element-template__line-end"},jci=["onClick"],Nci={key:2,class:"zone-editor__zone-list__empty"},Rci={class:"zone-editor__zone-list__empty__img"},Oci={autoplay:"",muted:"",width:"200",height:"200",loop:""},zci=["src"],Fci={class:"zone-editor__zone-list__empty__icon"},Uci={class:"zone-editor__zone-list__empty__txt"};function Vci(t,e,i,o,r,s){var n;const a=D("BIMDataSpinner"),l=D("BIMDataIcon"),c=D("BIMDataButton"),d=D("NamingModal"),u=D("DeleteModal"),h=D("SpaceIcon"),A=D("ZoneIcon"),f=D("BIMDataTextbox"),p=D("BIMDataIconWarning"),g=D("BIMDataTooltip"),m=D("ColorSelector"),M=D("ZoneListElementMenu"),y=D("BIMDataTree"),b=D("ZoneEditorIcon"),C=Jt("click-away");return k(),R("div",Pci,[o.loading?(k(),_(a,{key:0,class:"zone-editor__zone-list__loading"})):W("",!0),S(c,{color:"primary",width:"100%",fill:"",radius:"",icon:"",onClick:o.onCreateZoneClick},{default:z(()=>[S(l,{name:"plus",size:"xxxs",margin:"0 12px 0 0"}),w("span",null,H(t.$t("zone-editor.create_zone")),1)]),_:1},8,["onClick"]),o.zoneNameModalDIsplayed?it((k(),_(d,{key:1,"init-value":`${t.$t("zone-editor.zone")}-${o.trees.length+1}`,onCancel:e[0]||(e[0]=x=>o.zoneNameModalDIsplayed=!1),onValidate:o.onGlobalNamingModalValidate},null,8,["init-value","onValidate"])),[[C,()=>o.zoneNameModalDIsplayed=!1]]):W("",!0),it(S(y,{ref:"tree",class:"zone-editor__zone-list__tree m-y-6","drag-and-drop":!0,data:o.trees,"selected-id":(n=o.selectedElement)==null?void 0:n.id,"highlighted-id":o.highlightedElementId,onClick:o.onClick,onDrop:o.onZoneDrop,onHover:o.onHover},{node:z(({node:x,depth:I})=>{var E;return[w("div",{class:"zone-editor__zone-list__list-element-template","data-selected-element":((E=o.selectedElement)==null?void 0:E.id)===x.id,"data-node-id":x.id},[x.id===o.renamingElementId||x.id===o.creatingChildZoneId?it((k(),_(d,{key:0,"init-value":x.id===o.renamingElementId?x.name:o.getChildInitName(x),position:o.getNodePosition(x),onCancel:o.clearNamingModal,onValidate:P=>o.onNamingModalValidate(x,P)},null,8,["init-value","position","onCancel","onValidate"])),[[C,o.clearNamingModal]]):W("",!0),x.id===o.deletingElementId?it((k(),_(u,{key:1,label:x.name,position:o.getNodePosition(x),onCancel:e[1]||(e[1]=P=>o.deletingElementId=null),onDelete:P=>(o.deletingElementId=null,o.deleteZone(x))},null,8,["label","position","onDelete"])),[[C,()=>o.deletingElementId=null]]):W("",!0),w("div",Sci,[w("div",Lci,[x.isSpace?(k(),_(h,{key:0})):(k(),_(A,{key:1}))]),S(f,{text:x.name,width:!x.parent||x.isSpace&&!x.path?"calc(100% - 37px)":"calc(100% - 19px)","tooltip-position":o.getNodePosition(x)},null,8,["text","width","tooltip-position"])]),I===0||o.hoveredZoneId===x.id||x.isSpace&&!x.path?(k(),R("div",Tci,[x.isSpace&&!x.path?(k(),_(g,{key:0,text:t.$t("zone-editor.no_path_space"),position:"left",color:"primary"},{default:z(()=>[S(p,{fill:"",color:"warning"})]),_:1},8,["text"])):W("",!0),I===0?it((k(),R("div",{key:1,class:"zone-editor__zone-list__list-element-template__line-end__color-button",style:X(`background-color: ${o.toColorString(x.color)};`),onClick:Xe(P=>x.colorEditing=!x.colorEditing,["stop"]),onMousedown:e[3]||(e[3]=Xe(()=>{},["stop"]))},[x.colorEditing?(k(),_(m,{key:0,class:$(["zone-editor__zone-list__list-element-template__line-end__color-selector",{"zone-editor__zone-list__list-element-template__line-end__color-selector--top":o.getNodePosition(x)==="top"}]),"selected-color":x.color,onClick:e[2]||(e[2]=Xe(()=>{},["stop"])),onColorSelect:P=>o.onColorChange(x,P.value)},null,8,["class","selected-color","onColorSelect"])):W("",!0)],44,jci)),[[C,()=>{x.colorEditing=!1}]]):W("",!0),S(M,{element:x,"get-node-position":o.getNodePosition,onColorChange:P=>x.colorEditing=!0,onRename:P=>o.renamingElementId=x.id,onDelete:P=>o.deletingElementId=x.id,onCreateZone:P=>(o.creatingChildZoneId=x.id,o.childToBeCreated="zone"),onCreateSpace:P=>(o.creatingChildZoneId=x.id,o.childToBeCreated="space"),onMousedown:e[4]||(e[4]=Xe(()=>{},["stop"]))},null,8,["element","get-node-position","onColorChange","onRename","onDelete","onCreateZone","onCreateSpace"])])):W("",!0)],8,Bci)]}),_:1},8,["data","selected-id","highlighted-id","onClick","onDrop","onHover"]),[[Dt,o.trees.length>0]]),o.trees.length===0?(k(),R("div",Nci,[w("div",Rci,[w("video",Oci,[w("source",{src:o.video,type:"video/webm"},null,8,zci)])]),w("div",Fci,[S(b)]),w("div",Uci,H(t.$t("zone-editor.no_zone_text")),1)])):W("",!0)],512)}const Hci=F(Dci,[["render",Vci],["__scopeId","data-v-f638fc6c"]]),Qci={components:{ZoneList:Hci},setup(){const{i18n:t,localContext:e}=nt("$viewer"),i=[{id:0,get label(){return t.$t("zone-editor.zones")}},{id:1,get label(){return t.$t("zone-editor.equipments")}}],o=pe(0),r=Ve(()=>{var n;return((n=e.loadedModels[0])==null?void 0:n.storeys)||[]}),s=Ve(()=>e.selectedStorey);return{tabs:i,selectedTabIndex:o,storeys:r,selectedStorey:s,onStoreyClick:n=>{e.selectStorey(n)}}}},_ci={class:"bimdata-zone-editor__list"};function qci(t,e,i,o,r,s){const n=D("BIMDataIconStorey"),a=D("BIMDataTextbox"),l=D("BIMDataDropdownList"),c=D("ZoneList");return k(),R("div",_ci,[S(l,{list:o.storeys,width:"100%","per-page":10,"element-key":"dropdown","close-on-element-click":"",onElementClick:o.onStoreyClick},{header:z(()=>[S(n,{fill:"",color:"default"}),o.selectedStorey?(k(),_(a,{key:0,text:o.selectedStorey.name,class:"m-l-12",width:"calc(100% - 24px)"},null,8,["text"])):W("",!0)]),element:z(({element:d})=>{var u;return[w("div",{class:$(["bimdata-zone-editor__list__storey",{"bimdata-zone-editor__list__storey--selected":d.key===((u=o.selectedStorey)==null?void 0:u.key)}])},[S(a,{text:d.name},null,8,["text"])],2)]}),_:1},8,["list","onElementClick"]),S(c,{class:"bimdata-zone-editor__list__tab"})])}const Gci=F(Qci,[["render",qci],["__scopeId","data-v-e75e36ff"]]),Kci={components:{ZoneEditorHeader:Sli,ZoneEditorViewer:Wli,ZoneEditorList:Gci},setup(){const t=zr({$viewer:nt("$viewer"),viewer:null,service:null,selectedElement:null,highlightedElement:null,paths:new Map});t.service=new gli(t),sr("state",t)}},Yci={class:"bimdata-zone-editor"},Zci={class:"bimdata-zone-editor__content"};function Jci(t,e,i,o,r,s){const n=D("ZoneEditorHeader"),a=D("ZoneEditorList"),l=D("ZoneEditorViewer");return k(),R("div",Yci,[S(n,{doneButton:t.$plugin.settings.doneButton!==!1},null,8,["doneButton"]),w("div",Zci,[S(a,{class:"bimdata-zone-editor__content__list"}),S(l,{class:"bimdata-zone-editor__content__viewer"})])])}const Wci=F(Kci,[["render",Jci],["__scopeId","data-v-569273d5"]]),Xci="Zone editor",$ci="Zone editor",edi="Zones",tdi="Zone",idi="Space",odi="Equipments",rdi="Create zone",ndi="Create space",sdi="Edit color",adi="Click on \u201CCreate zone\u201D then select the appropriate drawing tool to draw space on the plan.",ldi="This space has no path",cdi={zones:"Unable to load zones","create-zone":"Unable to create zone","create-space":"Unable to create space","delete-zone":"Unable to delete zone","delete-space":"Unable to delete space","update-name":"Unable to update name","update-order":"Unable to update order","update-color":"Unable to update color","update-geometry":"Unable to update geometry"},ddi={tooltip:Xci,title:$ci,zones:edi,zone:tdi,space:idi,equipments:odi,create_zone:rdi,create_space:ndi,edit_color:sdi,no_zone_text:adi,no_path_space:ldi,error:cdi},udi="\xC9diteur de zone",hdi="Cr\xE9ateur de zones",pdi="Zones",Adi="Zone",fdi="Espace",gdi="\xC9quipements",mdi="Cr\xE9er une zone",vdi="Cr\xE9er un espace",ydi="\xC9diter la couleur",wdi="Cliquez sur \u201CCr\xE9er une zone\u201D puis s\xE9lectionnez l'outil de dessin le plus adapt\xE9 \xE0 vos besoins pour cr\xE9er des espaces sur votre plan.",bdi="Cet espace n'a pas de trac\xE9",Mdi={zones:"Impossible de charger les zones","create-zone":"Impossible de cr\xE9er la zone","create-space":"Impossible de cr\xE9er l'espace","delete-zone":"Impossible de supprimer la zone","delete-space":"Impossible de supprimer l'espace","update-name":"Impossible de mettre \xE0 jour le nom","update-order":"Impossible de mettre \xE0 jour l'ordre","update-color":"Impossible de mettre \xE0 jour la couleur","update-geometry":"Impossible de mettre \xE0 jour la g\xE9om\xE9trie"},Cdi={tooltip:udi,title:hdi,zones:pdi,zone:Adi,space:fdi,equipments:gdi,create_zone:mdi,create_space:vdi,edit_color:ydi,no_zone_text:wdi,no_path_space:bdi,error:Mdi},xdi={name:"zone-editor",i18n:{en:ddi,fr:Cdi},component:Wci,window:{name:"zone-editor",header:!1,displayedInWindowSelector:!1,modelTypes:["METABUILDING"],multiModel:!1}},kdi={},Idi={width:"19",height:"20",viewBox:"0 0 19 20",fill:"none",xmlns:"http://www.w3.org/2000/svg"},Edi=br('<path fill-rule="evenodd" clip-rule="evenodd" d="M9.53906 10.2704H11.3877V9.15625H9.53906V10.2704Z" fill="#30374B"></path><path fill-rule="evenodd" clip-rule="evenodd" d="M7.82903 10.2704H8.55308V9.15625H7.82903H6.71484V10.2704V11.0048H7.82903V10.2704Z" fill="#30374B"></path><path fill-rule="evenodd" clip-rule="evenodd" d="M6.71484 13.6494H7.82903V11.8008H6.71484V13.6494Z" fill="#30374B"></path><path fill-rule="evenodd" clip-rule="evenodd" d="M6.71484 16.2793H7.82903V14.4307H6.71484V16.2793Z" fill="#30374B"></path><path fill-rule="evenodd" clip-rule="evenodd" d="M9.79102 14.7647V16.5106H11.5369L16.6864 11.3612L14.9405 9.61523L9.79102 14.7647Z" fill="#30374B"></path><mask id="mask0_5416_15810" style="mask-type:alpha;" maskUnits="userSpaceOnUse" x="15" y="8" width="4" height="3"><path fill-rule="evenodd" clip-rule="evenodd" d="M15.4395 8.12891H18.1736V10.863H15.4395V8.12891Z" fill="white"></path></mask><g mask="url(#mask0_5416_15810)"><path fill-rule="evenodd" clip-rule="evenodd" d="M18.0374 9.35452L16.948 8.26506C16.7664 8.08352 16.4731 8.08352 16.2915 8.26506L15.4395 9.11712L17.1854 10.863L18.0374 10.0111C18.2191 9.82943 18.2191 9.53616 18.0374 9.35452Z" fill="#30374B"></path></g><mask id="mask1_5416_15810" style="mask-type:alpha;" maskUnits="userSpaceOnUse" x="0" y="0" width="14" height="20"><path fill-rule="evenodd" clip-rule="evenodd" d="M0 0H13.9621V19.7602H0V0Z" fill="white"></path></mask><g mask="url(#mask1_5416_15810)"><path fill-rule="evenodd" clip-rule="evenodd" d="M12.5556 18.4544H7.82861V17.1086H6.71442V18.4544H1.40648V1.30572H12.5556V10.6815L13.9621 9.27505V0H0V19.7602H13.9621V15.4637L12.5556 16.8702V18.4544Z" fill="#30374B"></path></g>',9),Ddi=[Edi];function Pdi(t,e){return k(),R("svg",Idi,Ddi)}const Bdi=F(kdi,[["render",Pdi]]),Sdi="Zone editor",Ldi={tooltip:Sdi},Tdi="\xC9diteur de zone",jdi={tooltip:Tdi},Ndi={name:"zone-editor-button",i18n:{en:Ldi,fr:jdi},addToWindows:["plan"],button:{tooltip:"zone-editor.tooltip",position:"right",content:"free",icon:{component:Bdi}},component:{render(){return null},setup(){const t=nt("$viewer"),e=nt("$plugin");Bs(()=>{const i=t.localContext.loadedModels;i.length===1&&i[0].type==="METABUILDING"?e.shown||e.show():e.shown&&e.hide()})},onOpen(){var t;const e=this.$viewer.globalContext.layout;this.$viewer.globalContext.hub.emit("zone-editor:open",e);const i=this.$viewer.localContext.loadedModelIds[0],o=(t=this.$viewer.localContext.selectedStorey)==null?void 0:t.key;this.$viewer.globalContext.layout={windowName:"zone-editor",windowState:{modelIds:[i],storey:o}}}}},Rdi=352,Odi={components:{WindowManagerIcon:Qx},inject:["$viewer"],data(){return{windows:null,smallLayout:!1}},computed:{itemWidth(){return this.smallLayout?"100%":"146px"}},created(){this.windows=[...this.$viewer.windowManager.registeredWindows.values()].filter(t=>t.displayedInWindowSelector!==!1),this.localContextResizeSubscription=this.$viewer.localContext.hub.on("context-resize",this.onResize)},unmounted(){this.$viewer.localContext.hub.off(this.localContextResizeSubscription)},methods:{onResize({width:t}){this.smallLayout=t<Rdi},isAccessMarketplaceEnabled(){return this.$viewer.pluginsCfg.accessMarketplace===!0},onAccessMarketplace(){window.open(this.getUrlFromAPIUrl(this.$viewer.api.apiUrl),"_blank").focus()},getUrlFromAPIUrl(t){const e=new URL(t),i=e.hostname;let o="";const[r,...s]=i.split("."),n=s.join(".");return r.includes("-staging")?o="-staging":r.includes("-next")&&(o="-next"),e.protocol+"//marketplace"+o+"."+n},onWindowClick(t){this.$viewer.localContext.loadWindow(t.name)}}},zdi={class:"window-selector"},Fdi={class:"window-selector__header__title"},Udi={class:"window-selector__element"},Vdi=["src"];function Hdi(t,e,i,o,r,s){const n=D("WindowManagerIcon"),a=D("BIMDataButton"),l=D("BIMDataIconDefault"),c=D("BIMDataIconPlus"),d=D("BIMDataCard"),u=D("BIMDataResponsiveGrid");return k(),R("div",zdi,[w("div",{class:$(["window-selector__header",{"small-layout":r.smallLayout}])},[w("div",Fdi,[S(n),w("div",null,[w("span",null,H(t.$t("window-selector.title-part-1")),1),w("strong",null,"\xA0"+H(t.$t("window-selector.title-part-2")),1)])]),s.isAccessMarketplaceEnabled()?(k(),_(a,{key:0,color:"secondary",fill:"",radius:"",width:r.smallLayout?"100%":"100px",onClick:s.onAccessMarketplace},{default:z(()=>[Oe(H(t.$t("window-selector.access_marketplace")),1)]),_:1},8,["width","onClick"])):W("",!0)],2),S(u,{class:"window-selector__select","item-width":s.itemWidth},{default:z(()=>[(k(!0),R(Ke,null,At(r.windows,h=>(k(),_(d,{key:h.name,class:"m-y-12",width:s.itemWidth},{content:z(()=>{var A;return[w("div",Udi,[(A=h.icon)!=null&&A.imgUri?(k(),R("img",{key:0,src:h.icon.imgUri,alt:"window icon",width:"32",height:"32"},null,8,Vdi)):(k(),_(l,{key:1,size:"xl",margin:"0 6px 0 0"})),w("strong",null,H(h.label?t.$t(h.label):h.name),1),S(a,{color:"primary",outline:"",radius:"",width:"100px","data-test":`window-${h.name}`,onClick:f=>s.onWindowClick(h)},{default:z(()=>[S(c,{size:"xxxs",margin:"0 6px 0 0"}),Oe(" "+H(t.$t("window-selector.add")),1)]),_:2},1032,["data-test","onClick"])])]}),_:2},1032,["width"]))),128))]),_:1},8,["item-width"])])}const Qdi=F(Odi,[["render",Hdi],["__scopeId","data-v-d7f1c71b"]]),_di="Hinzuf\xFCgen",qdi="Zugang zum Marktplatz",Gdi={"title-part-1":"Liste der","title-part-2":"aktivierbaren Fenster",add:_di,access_marketplace:qdi},Kdi="Add",Ydi="Go to the Marketplace",Zdi={"title-part-1":"List of","title-part-2":"activatable windows",add:Kdi,access_marketplace:Ydi},Jdi="Agregar",Wdi="Acceder al Marketplace",Xdi={"title-part-1":"Lista de","title-part-2":"ventanas activables",add:Jdi,access_marketplace:Wdi},$di="Ajouter",eui="Acc\xE9der \xE0 la Marketplace",tui={"title-part-1":"Liste des","title-part-2":"fen\xEAtres activables",add:$di,access_marketplace:eui},iui="Aggiungi",oui="Accedere al Marketplace",rui={"title-part-1":"Lista delle","title-part-2":"finestre attivabili",add:iui,access_marketplace:oui},nui={name:"window-selector",i18n:{de:Gdi,en:Zdi,es:Xdi,fr:tui,it:rui},component:Qdi,window:{name:"window-selector",defaultWindow:!0,displayedInWindowSelector:!1,noModel:!0}},sui={setup(){const t=nt("$viewer"),e=nt("$plugin"),i=t.localContext.viewer,{apiClient:o,cloudId:r,projectId:s}=t.api,n=Ve(()=>t.localContext.loadedModels[0]),a=Ve(()=>t.localContext.selectedStorey);st([n,()=>e.shown],([{type:A}={}])=>{A==="METABUILDING"&&i.settings.metaBuildingStructure!==!1?(e.show(),i.storeySelectorShown=!1):(e.hide(),i.storeySelectorShown=i.settings.storeySelector!==!1)},{immediate:!0});const l=A=>{n.value&&t.localContext.selectStorey(n.value.storeys.find(f=>f.uuid===A.uuid))},c=({node:A,selected:f})=>{if(A.zone){let p=m=>m.spaces.concat(m.zones.flatMap(p));p=p(A.zone);const g=i.spaces.filter(m=>p.includes(m.id));for(const m of g)f!==!1?m.show():m.hide()}if(A.space){const p=i.spaces.find(g=>g.id===A.space.id);f!==!1?p?.show():p?.hide()}A.plan&&(f!==!1?t.localContext.showPlan(A.plan):t.localContext.hidePlan(A.plan))},d=pe(null),u=pe(null);let h=null;return yi(()=>{h=aui(i,{highlightedId:d,selectedId:u})}),Ps(()=>{h?.()}),()=>po(xX,{apiClient:o,space:{id:r},project:{id:s},model:n.value,storey:a.value,selectable:!0,onStoreySelected:l,onSelectionChanged:c,highlightedId:d.value,"onUpdate:highlightedId":A=>d.value=A,selectedId:u.value,"onUpdate:selectedId":A=>u.value=A})}};function aui(t,{highlightedId:e,selectedId:i}){const o=t.viewer,r=o.canvas.parentElement,s=st(e,(c,d)=>{var u,h;const A=(u=t.spaces.find(p=>p.id===d))==null?void 0:u.object;A&&(A.getShape().style.fillOpacity=.2);const f=(h=t.spaces.find(p=>p.id===c))==null?void 0:h.object;f&&(f.getShape().style.fillOpacity=.3)}),n=st(i,(c,d)=>{var u,h;const A=(u=t.spaces.find(p=>p.id===d))==null?void 0:u.object;A&&(A.getShape().style.lineOpacity=0);const f=(h=t.spaces.find(p=>p.id===c))==null?void 0:h.object;f&&(f.getShape().style.lineOpacity=1)}),a=o.ui.on("mousemove",({object:c})=>{if(c){r.style.cursor="pointer";const d=t.spaces.find(u=>u.object.id===c.id);if(!d)return;e.value=d.id}else r.style.cursor="default",e.value=null,e.value=null,e.value=null}),l=o.ui.on("click",({object:c})=>{if(c){const d=t.spaces.find(u=>u.object.id===c.id);if(!d)return;i.value===d.id?i.value=null:i.value=d.id}else i.value=null});return()=>{s(),n(),o.ui.off(a),o.ui.off(l)}}const lui={name:"metaBuildingStructure",component:sui,addToWindows:["plan"],sidePanel:{position:"right",width:400}};function cui(t={}){const e=[],i=[nui,Hzt,PFt,C0t,Ylt,upt,wvt,jUt,Sit,Tpt,Cft,v6t,_tt,t7t,p7t,ani,bHt,sQt,_ce,VQt,Ndi,xdi,THt,Dot,mni,jni,XVt,uvt,Blt,G0e,Y0e,Ide,sge,lui,OVt],o=[Hii,r9t,q0t,jit,Ali];return i.filter(r=>t.default!==!1&&t[r.name]!==!1||t[r.name]).forEach(r=>e.push(r)),o.filter(r=>t[r.name]).forEach(r=>e.push(r)),e.forEach(r=>{r.settings=t[r.name]??{}}),new Map(e.map(r=>[r.name,r]))}function dui(){this.__data__=[],this.size=0}var uui=dui;function hui(t,e){return t===e||t!==t&&e!==e}var qX=hui,pui=qX;function Aui(t,e){for(var i=t.length;i--;)if(pui(t[i][0],e))return i;return-1}var Yy=Aui,fui=Yy,gui=Array.prototype,mui=gui.splice;function vui(t){var e=this.__data__,i=fui(e,t);if(i<0)return!1;var o=e.length-1;return i==o?e.pop():mui.call(e,i,1),--this.size,!0}var yui=vui,wui=Yy;function bui(t){var e=this.__data__,i=wui(e,t);return i<0?void 0:e[i][1]}var Mui=bui,Cui=Yy;function xui(t){return Cui(this.__data__,t)>-1}var kui=xui,Iui=Yy;function Eui(t,e){var i=this.__data__,o=Iui(i,t);return o<0?(++this.size,i.push([t,e])):i[o][1]=e,this}var Dui=Eui,Pui=uui,Bui=yui,Sui=Mui,Lui=kui,Tui=Dui;function C1(t){var e=-1,i=t==null?0:t.length;for(this.clear();++e<i;){var o=t[e];this.set(o[0],o[1])}}C1.prototype.clear=Pui,C1.prototype.delete=Bui,C1.prototype.get=Sui,C1.prototype.has=Lui,C1.prototype.set=Tui;var Zy=C1,jui=Zy;function Nui(){this.__data__=new jui,this.size=0}var Rui=Nui;function Oui(t){var e=this.__data__,i=e.delete(t);return this.size=e.size,i}var zui=Oui;function Fui(t){return this.__data__.get(t)}var Uui=Fui;function Vui(t){return this.__data__.has(t)}var Hui=Vui;function Qui(t){var e=typeof t;return t!=null&&(e=="object"||e=="function")}var Zm=Qui,_ui=zA,qui=Zm,Gui="[object AsyncFunction]",Kui="[object Function]",Yui="[object GeneratorFunction]",Zui="[object Proxy]";function Jui(t){if(!qui(t))return!1;var e=_ui(t);return e==Kui||e==Yui||e==Gui||e==Zui}var GX=Jui,Wui=js,Xui=Wui["__core-js_shared__"],$ui=Xui,Lk=$ui,KX=function(){var t=/[^.]+$/.exec(Lk&&Lk.keys&&Lk.keys.IE_PROTO||"");return t?"Symbol(src)_1."+t:""}();function ehi(t){return!!KX&&KX in t}var thi=ehi,ihi=Function.prototype,ohi=ihi.toString;function rhi(t){if(t!=null){try{return ohi.call(t)}catch{}try{return t+""}catch{}}return""}var YX=rhi,nhi=GX,shi=thi,ahi=Zm,lhi=YX,chi=/[\\^$.*+?()[\]{}|]/g,dhi=/^\[object .+?Constructor\]$/,uhi=Function.prototype,hhi=Object.prototype,phi=uhi.toString,Ahi=hhi.hasOwnProperty,fhi=RegExp("^"+phi.call(Ahi).replace(chi,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function ghi(t){if(!ahi(t)||shi(t))return!1;var e=nhi(t)?fhi:dhi;return e.test(lhi(t))}var mhi=ghi;function vhi(t,e){return t?.[e]}var yhi=vhi,whi=mhi,bhi=yhi;function Mhi(t,e){var i=bhi(t,e);return whi(i)?i:void 0}var uu=Mhi,Chi=uu,xhi=js,khi=Chi(xhi,"Map"),Tk=khi,Ihi=uu,Ehi=Ihi(Object,"create"),Jy=Ehi,ZX=Jy;function Dhi(){this.__data__=ZX?ZX(null):{},this.size=0}var Phi=Dhi;function Bhi(t){var e=this.has(t)&&delete this.__data__[t];return this.size-=e?1:0,e}var Shi=Bhi,Lhi=Jy,Thi="__lodash_hash_undefined__",jhi=Object.prototype,Nhi=jhi.hasOwnProperty;function Rhi(t){var e=this.__data__;if(Lhi){var i=e[t];return i===Thi?void 0:i}return Nhi.call(e,t)?e[t]:void 0}var Ohi=Rhi,zhi=Jy,Fhi=Object.prototype,Uhi=Fhi.hasOwnProperty;function Vhi(t){var e=this.__data__;return zhi?e[t]!==void 0:Uhi.call(e,t)}var Hhi=Vhi,Qhi=Jy,_hi="__lodash_hash_undefined__";function qhi(t,e){var i=this.__data__;return this.size+=this.has(t)?0:1,i[t]=Qhi&&e===void 0?_hi:e,this}var Ghi=qhi,Khi=Phi,Yhi=Shi,Zhi=Ohi,Jhi=Hhi,Whi=Ghi;function x1(t){var e=-1,i=t==null?0:t.length;for(this.clear();++e<i;){var o=t[e];this.set(o[0],o[1])}}x1.prototype.clear=Khi,x1.prototype.delete=Yhi,x1.prototype.get=Zhi,x1.prototype.has=Jhi,x1.prototype.set=Whi;var Xhi=x1,JX=Xhi,$hi=Zy,epi=Tk;function tpi(){this.size=0,this.__data__={hash:new JX,map:new(epi||$hi),string:new JX}}var ipi=tpi;function opi(t){var e=typeof t;return e=="string"||e=="number"||e=="symbol"||e=="boolean"?t!=="__proto__":t===null}var rpi=opi,npi=rpi;function spi(t,e){var i=t.__data__;return npi(e)?i[typeof e=="string"?"string":"hash"]:i.map}var Wy=spi,api=Wy;function lpi(t){var e=api(this,t).delete(t);return this.size-=e?1:0,e}var cpi=lpi,dpi=Wy;function upi(t){return dpi(this,t).get(t)}var hpi=upi,ppi=Wy;function Api(t){return ppi(this,t).has(t)}var fpi=Api,gpi=Wy;function mpi(t,e){var i=gpi(this,t),o=i.size;return i.set(t,e),this.size+=i.size==o?0:1,this}var vpi=mpi,ypi=ipi,wpi=cpi,bpi=hpi,Mpi=fpi,Cpi=vpi;function k1(t){var e=-1,i=t==null?0:t.length;for(this.clear();++e<i;){var o=t[e];this.set(o[0],o[1])}}k1.prototype.clear=ypi,k1.prototype.delete=wpi,k1.prototype.get=bpi,k1.prototype.has=Mpi,k1.prototype.set=Cpi;var xpi=k1,kpi=Zy,Ipi=Tk,Epi=xpi,Dpi=200;function Ppi(t,e){var i=this.__data__;if(i instanceof kpi){var o=i.__data__;if(!Ipi||o.length<Dpi-1)return o.push([t,e]),this.size=++i.size,this;i=this.__data__=new Epi(o)}return i.set(t,e),this.size=i.size,this}var Bpi=Ppi,Spi=Zy,Lpi=Rui,Tpi=zui,jpi=Uui,Npi=Hui,Rpi=Bpi;function I1(t){var e=this.__data__=new Spi(t);this.size=e.size}I1.prototype.clear=Lpi,I1.prototype.delete=Tpi,I1.prototype.get=jpi,I1.prototype.has=Npi,I1.prototype.set=Rpi;var Opi=I1;function zpi(t,e){for(var i=-1,o=t==null?0:t.length;++i<o&&e(t[i],i,t)!==!1;);return t}var Fpi=zpi,Upi=uu,Vpi=function(){try{var t=Upi(Object,"defineProperty");return t({},"",{}),t}catch{}}(),Hpi=Vpi,WX=Hpi;function Qpi(t,e,i){e=="__proto__"&&WX?WX(t,e,{configurable:!0,enumerable:!0,value:i,writable:!0}):t[e]=i}var XX=Qpi,_pi=XX,qpi=qX,Gpi=Object.prototype,Kpi=Gpi.hasOwnProperty;function Ypi(t,e,i){var o=t[e];(!(Kpi.call(t,e)&&qpi(o,i))||i===void 0&&!(e in t))&&_pi(t,e,i)}var $X=Ypi,Zpi=$X,Jpi=XX;function Wpi(t,e,i,o){var r=!i;i||(i={});for(var s=-1,n=e.length;++s<n;){var a=e[s],l=o?o(i[a],t[a],a,i,t):void 0;l===void 0&&(l=t[a]),r?Jpi(i,a,l):Zpi(i,a,l)}return i}var Xy=Wpi;function Xpi(t,e){for(var i=-1,o=Array(t);++i<t;)o[i]=e(i);return o}var $pi=Xpi,e1i=zA,t1i=Ju,i1i="[object Arguments]";function o1i(t){return t1i(t)&&e1i(t)==i1i}var r1i=o1i,e$=r1i,n1i=Ju,t$=Object.prototype,s1i=t$.hasOwnProperty,a1i=t$.propertyIsEnumerable,l1i=e$(function(){return arguments}())?e$:function(t){return n1i(t)&&s1i.call(t,"callee")&&!a1i.call(t,"callee")},c1i=l1i,$y={exports:{}};function d1i(){return!1}var u1i=d1i;$y.exports,function(t,e){var i=js,o=u1i,r=e&&!e.nodeType&&e,s=r&&!0&&t&&!t.nodeType&&t,n=s&&s.exports===r,a=n?i.Buffer:void 0,l=a?a.isBuffer:void 0,c=l||o;t.exports=c}($y,$y.exports);var i$=$y.exports,h1i=9007199254740991,p1i=/^(?:0|[1-9]\d*)$/;function A1i(t,e){var i=typeof t;return e=e??h1i,!!e&&(i=="number"||i!="symbol"&&p1i.test(t))&&t>-1&&t%1==0&&t<e}var f1i=A1i,g1i=9007199254740991;function m1i(t){return typeof t=="number"&&t>-1&&t%1==0&&t<=g1i}var o$=m1i,v1i=zA,y1i=o$,w1i=Ju,b1i="[object Arguments]",M1i="[object Array]",C1i="[object Boolean]",x1i="[object Date]",k1i="[object Error]",I1i="[object Function]",E1i="[object Map]",D1i="[object Number]",P1i="[object Object]",B1i="[object RegExp]",S1i="[object Set]",L1i="[object String]",T1i="[object WeakMap]",j1i="[object ArrayBuffer]",N1i="[object DataView]",R1i="[object Float32Array]",O1i="[object Float64Array]",z1i="[object Int8Array]",F1i="[object Int16Array]",U1i="[object Int32Array]",V1i="[object Uint8Array]",H1i="[object Uint8ClampedArray]",Q1i="[object Uint16Array]",_1i="[object Uint32Array]",Hi={};Hi[R1i]=Hi[O1i]=Hi[z1i]=Hi[F1i]=Hi[U1i]=Hi[V1i]=Hi[H1i]=Hi[Q1i]=Hi[_1i]=!0,Hi[b1i]=Hi[M1i]=Hi[j1i]=Hi[C1i]=Hi[N1i]=Hi[x1i]=Hi[k1i]=Hi[I1i]=Hi[E1i]=Hi[D1i]=Hi[P1i]=Hi[B1i]=Hi[S1i]=Hi[L1i]=Hi[T1i]=!1;function q1i(t){return w1i(t)&&y1i(t.length)&&!!Hi[v1i(t)]}var G1i=q1i;function K1i(t){return function(e){return t(e)}}var jk=K1i,e8={exports:{}};e8.exports,function(t,e){var i=gT,o=e&&!e.nodeType&&e,r=o&&!0&&t&&!t.nodeType&&t,s=r&&r.exports===o,n=s&&i.process,a=function(){try{var l=r&&r.require&&r.require("util").types;return l||n&&n.binding&&n.binding("util")}catch{}}();t.exports=a}(e8,e8.exports);var Nk=e8.exports,Y1i=G1i,Z1i=jk,r$=Nk,n$=r$&&r$.isTypedArray,J1i=n$?Z1i(n$):Y1i,W1i=J1i,X1i=$pi,$1i=c1i,eAi=h4,tAi=i$,iAi=f1i,oAi=W1i,rAi=Object.prototype,nAi=rAi.hasOwnProperty;function sAi(t,e){var i=eAi(t),o=!i&&$1i(t),r=!i&&!o&&tAi(t),s=!i&&!o&&!r&&oAi(t),n=i||o||r||s,a=n?X1i(t.length,String):[],l=a.length;for(var c in t)(e||nAi.call(t,c))&&!(n&&(c=="length"||r&&(c=="offset"||c=="parent")||s&&(c=="buffer"||c=="byteLength"||c=="byteOffset")||iAi(c,l)))&&a.push(c);return a}var s$=sAi,aAi=Object.prototype;function lAi(t){var e=t&&t.constructor,i=typeof e=="function"&&e.prototype||aAi;return t===i}var Rk=lAi;function cAi(t,e){return function(i){return t(e(i))}}var a$=cAi,dAi=a$,uAi=dAi(Object.keys,Object),hAi=uAi,pAi=Rk,AAi=hAi,fAi=Object.prototype,gAi=fAi.hasOwnProperty;function mAi(t){if(!pAi(t))return AAi(t);var e=[];for(var i in Object(t))gAi.call(t,i)&&i!="constructor"&&e.push(i);return e}var vAi=mAi,yAi=GX,wAi=o$;function bAi(t){return t!=null&&wAi(t.length)&&!yAi(t)}var l$=bAi,MAi=s$,CAi=vAi,xAi=l$;function kAi(t){return xAi(t)?MAi(t):CAi(t)}var Ok=kAi,IAi=Xy,EAi=Ok;function DAi(t,e){return t&&IAi(e,EAi(e),t)}var PAi=DAi;function BAi(t){var e=[];if(t!=null)for(var i in Object(t))e.push(i);return e}var SAi=BAi,LAi=Zm,TAi=Rk,jAi=SAi,NAi=Object.prototype,RAi=NAi.hasOwnProperty;function OAi(t){if(!LAi(t))return jAi(t);var e=TAi(t),i=[];for(var o in t)o=="constructor"&&(e||!RAi.call(t,o))||i.push(o);return i}var zAi=OAi,FAi=s$,UAi=zAi,VAi=l$;function HAi(t){return VAi(t)?FAi(t,!0):UAi(t)}var zk=HAi,QAi=Xy,_Ai=zk;function qAi(t,e){return t&&QAi(e,_Ai(e),t)}var GAi=qAi,t8={exports:{}};t8.exports,function(t,e){var i=js,o=e&&!e.nodeType&&e,r=o&&!0&&t&&!t.nodeType&&t,s=r&&r.exports===o,n=s?i.Buffer:void 0,a=n?n.allocUnsafe:void 0;function l(c,d){if(d)return c.slice();var u=c.length,h=a?a(u):new c.constructor(u);return c.copy(h),h}t.exports=l}(t8,t8.exports);var KAi=t8.exports;function YAi(t,e){var i=-1,o=t.length;for(e||(e=Array(o));++i<o;)e[i]=t[i];return e}var ZAi=YAi;function JAi(t,e){for(var i=-1,o=t==null?0:t.length,r=0,s=[];++i<o;){var n=t[i];e(n,i,t)&&(s[r++]=n)}return s}var WAi=JAi;function XAi(){return[]}var c$=XAi,$Ai=WAi,efi=c$,tfi=Object.prototype,ifi=tfi.propertyIsEnumerable,d$=Object.getOwnPropertySymbols,ofi=d$?function(t){return t==null?[]:(t=Object(t),$Ai(d$(t),function(e){return ifi.call(t,e)}))}:efi,Fk=ofi,rfi=Xy,nfi=Fk;function sfi(t,e){return rfi(t,nfi(t),e)}var afi=sfi;function lfi(t,e){for(var i=-1,o=e.length,r=t.length;++i<o;)t[r+i]=e[i];return t}var u$=lfi,cfi=a$,dfi=cfi(Object.getPrototypeOf,Object),h$=dfi,ufi=u$,hfi=h$,pfi=Fk,Afi=c$,ffi=Object.getOwnPropertySymbols,gfi=ffi?function(t){for(var e=[];t;)ufi(e,pfi(t)),t=hfi(t);return e}:Afi,p$=gfi,mfi=Xy,vfi=p$;function yfi(t,e){return mfi(t,vfi(t),e)}var wfi=yfi,bfi=u$,Mfi=h4;function Cfi(t,e,i){var o=e(t);return Mfi(t)?o:bfi(o,i(t))}var A$=Cfi,xfi=A$,kfi=Fk,Ifi=Ok;function Efi(t){return xfi(t,Ifi,kfi)}var Dfi=Efi,Pfi=A$,Bfi=p$,Sfi=zk;function Lfi(t){return Pfi(t,Sfi,Bfi)}var Tfi=Lfi,jfi=uu,Nfi=js,Rfi=jfi(Nfi,"DataView"),Ofi=Rfi,zfi=uu,Ffi=js,Ufi=zfi(Ffi,"Promise"),Vfi=Ufi,Hfi=uu,Qfi=js,_fi=Hfi(Qfi,"Set"),qfi=_fi,Gfi=uu,Kfi=js,Yfi=Gfi(Kfi,"WeakMap"),Zfi=Yfi,Uk=Ofi,Vk=Tk,Hk=Vfi,Qk=qfi,_k=Zfi,f$=zA,E1=YX,g$="[object Map]",Jfi="[object Object]",m$="[object Promise]",v$="[object Set]",y$="[object WeakMap]",w$="[object DataView]",Wfi=E1(Uk),Xfi=E1(Vk),$fi=E1(Hk),e0i=E1(Qk),t0i=E1(_k),hu=f$;(Uk&&hu(new Uk(new ArrayBuffer(1)))!=w$||Vk&&hu(new Vk)!=g$||Hk&&hu(Hk.resolve())!=m$||Qk&&hu(new Qk)!=v$||_k&&hu(new _k)!=y$)&&(hu=function(t){var e=f$(t),i=e==Jfi?t.constructor:void 0,o=i?E1(i):"";if(o)switch(o){case Wfi:return w$;case Xfi:return g$;case $fi:return m$;case e0i:return v$;case t0i:return y$}return e});var qk=hu,i0i=Object.prototype,o0i=i0i.hasOwnProperty;function r0i(t){var e=t.length,i=new t.constructor(e);return e&&typeof t[0]=="string"&&o0i.call(t,"index")&&(i.index=t.index,i.input=t.input),i}var n0i=r0i,s0i=js,a0i=s0i.Uint8Array,l0i=a0i,b$=l0i;function c0i(t){var e=new t.constructor(t.byteLength);return new b$(e).set(new b$(t)),e}var Gk=c0i,d0i=Gk;function u0i(t,e){var i=e?d0i(t.buffer):t.buffer;return new t.constructor(i,t.byteOffset,t.byteLength)}var h0i=u0i,p0i=/\w*$/;function A0i(t){var e=new t.constructor(t.source,p0i.exec(t));return e.lastIndex=t.lastIndex,e}var f0i=A0i,M$=u4,C$=M$?M$.prototype:void 0,x$=C$?C$.valueOf:void 0;function g0i(t){return x$?Object(x$.call(t)):{}}var m0i=g0i,v0i=Gk;function y0i(t,e){var i=e?v0i(t.buffer):t.buffer;return new t.constructor(i,t.byteOffset,t.length)}var w0i=y0i,b0i=Gk,M0i=h0i,C0i=f0i,x0i=m0i,k0i=w0i,I0i="[object Boolean]",E0i="[object Date]",D0i="[object Map]",P0i="[object Number]",B0i="[object RegExp]",S0i="[object Set]",L0i="[object String]",T0i="[object Symbol]",j0i="[object ArrayBuffer]",N0i="[object DataView]",R0i="[object Float32Array]",O0i="[object Float64Array]",z0i="[object Int8Array]",F0i="[object Int16Array]",U0i="[object Int32Array]",V0i="[object Uint8Array]",H0i="[object Uint8ClampedArray]",Q0i="[object Uint16Array]",_0i="[object Uint32Array]";function q0i(t,e,i){var o=t.constructor;switch(e){case j0i:return b0i(t);case I0i:case E0i:return new o(+t);case N0i:return M0i(t,i);case R0i:case O0i:case z0i:case F0i:case U0i:case V0i:case H0i:case Q0i:case _0i:return k0i(t,i);case D0i:return new o;case P0i:case L0i:return new o(t);case B0i:return C0i(t);case S0i:return new o;case T0i:return x0i(t)}}var G0i=q0i,K0i=Zm,k$=Object.create,Y0i=function(){function t(){}return function(e){if(!K0i(e))return{};if(k$)return k$(e);t.prototype=e;var i=new t;return t.prototype=void 0,i}}(),Z0i=Y0i,J0i=Z0i,W0i=h$,X0i=Rk;function $0i(t){return typeof t.constructor=="function"&&!X0i(t)?J0i(W0i(t)):{}}var egi=$0i,tgi=qk,igi=Ju,ogi="[object Map]";function rgi(t){return igi(t)&&tgi(t)==ogi}var ngi=rgi,sgi=ngi,agi=jk,I$=Nk,E$=I$&&I$.isMap,lgi=E$?agi(E$):sgi,cgi=lgi,dgi=qk,ugi=Ju,hgi="[object Set]";function pgi(t){return ugi(t)&&dgi(t)==hgi}var Agi=pgi,fgi=Agi,ggi=jk,D$=Nk,P$=D$&&D$.isSet,mgi=P$?ggi(P$):fgi,vgi=mgi,ygi=Opi,wgi=Fpi,bgi=$X,Mgi=PAi,Cgi=GAi,xgi=KAi,kgi=ZAi,Igi=afi,Egi=wfi,Dgi=Dfi,Pgi=Tfi,Bgi=qk,Sgi=n0i,Lgi=G0i,Tgi=egi,jgi=h4,Ngi=i$,Rgi=cgi,Ogi=Zm,zgi=vgi,Fgi=Ok,Ugi=zk,Vgi=1,Hgi=2,Qgi=4,B$="[object Arguments]",_gi="[object Array]",qgi="[object Boolean]",Ggi="[object Date]",Kgi="[object Error]",S$="[object Function]",Ygi="[object GeneratorFunction]",Zgi="[object Map]",Jgi="[object Number]",L$="[object Object]",Wgi="[object RegExp]",Xgi="[object Set]",$gi="[object String]",emi="[object Symbol]",tmi="[object WeakMap]",imi="[object ArrayBuffer]",omi="[object DataView]",rmi="[object Float32Array]",nmi="[object Float64Array]",smi="[object Int8Array]",ami="[object Int16Array]",lmi="[object Int32Array]",cmi="[object Uint8Array]",dmi="[object Uint8ClampedArray]",umi="[object Uint16Array]",hmi="[object Uint32Array]",zi={};zi[B$]=zi[_gi]=zi[imi]=zi[omi]=zi[qgi]=zi[Ggi]=zi[rmi]=zi[nmi]=zi[smi]=zi[ami]=zi[lmi]=zi[Zgi]=zi[Jgi]=zi[L$]=zi[Wgi]=zi[Xgi]=zi[$gi]=zi[emi]=zi[cmi]=zi[dmi]=zi[umi]=zi[hmi]=!0,zi[Kgi]=zi[S$]=zi[tmi]=!1;function i8(t,e,i,o,r,s){var n,a=e&Vgi,l=e&Hgi,c=e&Qgi;if(i&&(n=r?i(t,o,r,s):i(t)),n!==void 0)return n;if(!Ogi(t))return t;var d=jgi(t);if(d){if(n=Sgi(t),!a)return kgi(t,n)}else{var u=Bgi(t),h=u==S$||u==Ygi;if(Ngi(t))return xgi(t,a);if(u==L$||u==B$||h&&!r){if(n=l||h?{}:Tgi(t),!a)return l?Egi(t,Cgi(n,t)):Igi(t,Mgi(n,t))}else{if(!zi[u])return r?t:{};n=Lgi(t,u,a)}}s||(s=new ygi);var A=s.get(t);if(A)return A;s.set(t,n),zgi(t)?t.forEach(function(g){n.add(i8(g,e,i,g,t,s))}):Rgi(t)&&t.forEach(function(g,m){n.set(m,i8(g,e,i,m,t,s))});var f=c?l?Pgi:Dgi:l?Ugi:Fgi,p=d?void 0:f(t);return wgi(p||t,function(g,m){p&&(m=g,g=t[m]),bgi(n,m,i8(g,e,i,m,t,s))}),n}var pmi=i8,Ami=pmi,fmi=1,gmi=4;function mmi(t){return Ami(t,fmi|gmi)}var vmi=mmi;const ymi=BA(vmi);class wmi{constructor(e={}){const{name:i,isViewer:o=!1,i18n:r=null,addToWindows:s=[],window:n=null,component:a=null,initiallyShown:l=!0,button:c=null,sidePanel:d=null,startupScript:u=null,settings:h={},...A}=e;if(!i)throw new TypeError("Plugin must have a name.");A&&Object.assign(this,A),this.name=i,this.isViewer=o,this.i18n=r,this.addToWindows=s,this.window=n,this.component=a,this.initiallyShown=l,c?this.button=new bmi(c):d&&(this.sidePanel=new Mmi(d)),this.startupScript=u,this.settings=h}}class bmi{constructor(e={}){const{position:i="left",stance:o=0,tooltip:r,content:s="free",keepOpen:n,icon:a,iconOpen:l,initiallyOpen:c=!1}=e;this.position=i,this.stance=o,this.tooltip=r,this.content=s,this.keepOpen=n,this.icon=a,this.iconOpen=l,this.initiallyOpen=c}}class Mmi{constructor(e={}){const{position:i="left",width:o=300}=e;this.position=i,this.width=o}}let Cmi=0;class xmi extends wmi{constructor(e={},i){var o;super(ymi(e)),this.localContext=i,this.id=Cmi++,this._shown=pe(this.initiallyShown),this._isOpen=pe(((o=this.button)==null?void 0:o.initiallyOpen)??!1),this._loading=pe(!1),this._componentInstance=pe(null),this.button&&(this._buttonText=pe(this.button.text))}get shown(){return this._shown.value}show(){this._shown.value=!0}hide(){this._shown.value=!1}get loading(){return this._loading.value}async open(...e){this.isOpen||(await this._onOpenOrClose("open",...e),this._isOpen.value=!0,this.localContext.hub.emit("plugin-open",{name:this.name,plugin:this.componentInstance}),this.localContext.$viewer.globalContext.hub.emit("plugin-open",{name:this.name,plugin:this.componentInstance}))}async close(...e){this.isOpen&&(await this._onOpenOrClose("close",...e),this._isOpen.value=!1,this.localContext.hub.emit("plugin-close",{name:this.name,plugin:this.componentInstance}),this.localContext.$viewer.globalContext.hub.emit("plugin-close",{name:this.name,plugin:this.componentInstance}))}get isOpen(){return this._isOpen.value}_onOpenOrClose(e,...i){if(!this.component){console.warn(`Plugin ${this.name} does not have a component. It cannot be opened or closed.`);return}if(this.loading){console.log(`Plugin ${this.name} is loading. It cannot be opened or closed.`);return}if(typeof this.component[`on${hh(e)}`]!="function")return;const o=this.component[`on${hh(e)}`].call(this.componentInstance,...i);return typeof o?.then=="function"?(this._loading.value=!0,o.then(()=>{this._loading.value=!1})):o}get componentInstance(){return this._componentInstance.value}set componentInstance(e){this._componentInstance.value=e}get buttonText(){return this._buttonText.value}set buttonText(e){this._buttonText.value=e}}class kmi{constructor(e={}){this.registeredPlugins=e!==!1?cui(e):new Map,this.cfg=e}getPluginInstance(e,i){return this.registeredPlugins.has(e)?new xmi(this.registeredPlugins.get(e),i):(console.warn(`No plugin with name "${e}". You must register it before accessing it.`),null)}runPluginsScripts(e){this.registeredPlugins.forEach(i=>{var o;try{(o=i.startupScript)==null||o.call(i,e)}catch(r){console.error(`[Viewer] Failed to execute startupScript of plugin ${i.name}.`,r)}})}registerPlugin(e){if(this.registeredPlugins.has(e.name)&&console.warn(`[BIMDataViewer - PluginManager:registerPlugin] Plugin with name "${e.name}" is already registered. It will be overwritten.`),e.button&&e.sidePanel)throw new TypeError(`[BIMDataViewer - PluginManager:registerPlugin] Plugin "${e.name}" has both a button and a side panel. You should choose one or the other.`);this.registeredPlugins.set(e.name,e)}get pluginTranslations(){const e={};return this.registeredPlugins.forEach(i=>{i.i18n&&Object.keys(i.i18n).forEach(o=>{e[o]||(e[o]={}),e[o][i.name]=i.i18n[o]})}),e}}class Imi{constructor({name:e,label:i,plugins:o=[],header:r=!0,icon:s,modelTypes:n=[],multiModel:a=!0,logoAndVersion:l=!1,defaultWindow:c=!1,displayedInWindowSelector:d=!0,noModel:u=!1}){this.name=e,this.label=i,this.plugins=o,this.header=r,this.icon=s,this.modelTypes=n,this.multiModel=a,this.logoAndVersion=l,this.default=c,this.displayedInWindowSelector=d,this.noModel=u}}class Emi{constructor(){this.registeredWindows=new Map,this.defaultWindow=null,this.windowContainers=zr([])}registerWindow(e){var i,o,r;if(!e)throw new TypeError("registerWindow - window is required.");if(e.plugins||(e.plugins=[]),!(typeof e.name=="string"&&(o=(i=e.plugins)==null?void 0:i.every)!=null&&o.call(i,n=>typeof n=="string")))throw new TypeError("registerWindow - Windows must have a name as string and window.plugins must be an array of plugin names as string.");if(this.registeredWindows.has(e.name))throw new Error(`A window with the name ${e.name} already exist. It must be unique.`);const s=new Imi({name:e.name,label:e.label,plugins:[...e.plugins],header:e.header,icon:{imgUri:(r=e.icon)==null?void 0:r.imgUri},modelTypes:e.modelTypes,multiModel:e.multiModel??!0,logoAndVersion:e.logoAndVersion,defaultWindow:e.defaultWindow,displayedInWindowSelector:e.displayedInWindowSelector??!0,noModel:e.noModel??!1});return this.registeredWindows.set(s.name,s),s.default&&(this.defaultWindow&&(console.warn(`A window with the name ${this.defaultWindow.name} was already set as default and will be replaced by ${s.name}.`),this.defaultWindow.default=!1),this.defaultWindow=s),s}unregisterWindow(e){return this.registeredWindows.delete(e)}registerAndAddPluginsToWindows(e=[]){e.filter(i=>i.window&&!this.registeredWindows.has(i.window)).forEach(i=>{this.registerWindow(i.window).plugins.unshift(i.name)}),e.filter(i=>{var o;return((o=i.addToWindows)==null?void 0:o.length)>0}).forEach(i=>{i.addToWindows.forEach(o=>{const r=this.registeredWindows.get(o);r?r.plugins.push(i.name):console.warn(`[Viewer] Plugin with name ${i.name} can not be added to the window ${o} because it is not registered.`)})})}}const Jm=15,Kk=30,Yk=19,Dmi=29,o8=256,Zk=o8+1+Dmi,T$=2*Zk+1,Wm=256,Pmi=7,j$=16,N$=17,R$=18,Jk=8*2,r8=-1,Bmi=1,n8=2,Smi=0,D1=0,O$=1,Lmi=3,tn=4,vs=0,z$=1,s8=2,ys=-2,Tmi=-3,P1=-5;function a8(t){return l8(t.map(([e,i])=>new Array(e).fill(i,0,e)))}function l8(t){return t.reduce((e,i)=>e.concat(Array.isArray(i)?l8(i):i),[])}const F$=[0,1,2,3].concat(...a8([[2,4],[2,5],[4,6],[4,7],[8,8],[8,9],[16,10],[16,11],[32,12],[32,13],[64,14],[64,15],[2,0],[1,16],[1,17],[2,18],[2,19],[4,20],[4,21],[8,22],[8,23],[16,24],[16,25],[32,26],[32,27],[64,28],[64,29]]));function Qi(){const t=this;function e(r){const s=t.dyn_tree,n=t.stat_desc.static_tree,a=t.stat_desc.extra_bits,l=t.stat_desc.extra_base,c=t.stat_desc.max_length;let d,u,h,A,f,p,g=0;for(A=0;A<=Jm;A++)r.bl_count[A]=0;for(s[r.heap[r.heap_max]*2+1]=0,d=r.heap_max+1;d<T$;d++)u=r.heap[d],A=s[s[u*2+1]*2+1]+1,A>c&&(A=c,g++),s[u*2+1]=A,!(u>t.max_code)&&(r.bl_count[A]++,f=0,u>=l&&(f=a[u-l]),p=s[u*2],r.opt_len+=p*(A+f),n&&(r.static_len+=p*(n[u*2+1]+f)));if(g!==0){do{for(A=c-1;r.bl_count[A]===0;)A--;r.bl_count[A]--,r.bl_count[A+1]+=2,r.bl_count[c]--,g-=2}while(g>0);for(A=c;A!==0;A--)for(u=r.bl_count[A];u!==0;)h=r.heap[--d],!(h>t.max_code)&&(s[h*2+1]!=A&&(r.opt_len+=(A-s[h*2+1])*s[h*2],s[h*2+1]=A),u--)}}function i(r,s){let n=0;do n|=r&1,r>>>=1,n<<=1;while(--s>0);return n>>>1}function o(r,s,n){const a=[];let l=0,c,d,u;for(c=1;c<=Jm;c++)a[c]=l=l+n[c-1]<<1;for(d=0;d<=s;d++)u=r[d*2+1],u!==0&&(r[d*2]=i(a[u]++,u))}t.build_tree=function(r){const s=t.dyn_tree,n=t.stat_desc.static_tree,a=t.stat_desc.elems;let l,c,d=-1,u;for(r.heap_len=0,r.heap_max=T$,l=0;l<a;l++)s[l*2]!==0?(r.heap[++r.heap_len]=d=l,r.depth[l]=0):s[l*2+1]=0;for(;r.heap_len<2;)u=r.heap[++r.heap_len]=d<2?++d:0,s[u*2]=1,r.depth[u]=0,r.opt_len--,n&&(r.static_len-=n[u*2+1]);for(t.max_code=d,l=Math.floor(r.heap_len/2);l>=1;l--)r.pqdownheap(s,l);u=a;do l=r.heap[1],r.heap[1]=r.heap[r.heap_len--],r.pqdownheap(s,1),c=r.heap[1],r.heap[--r.heap_max]=l,r.heap[--r.heap_max]=c,s[u*2]=s[l*2]+s[c*2],r.depth[u]=Math.max(r.depth[l],r.depth[c])+1,s[l*2+1]=s[c*2+1]=u,r.heap[1]=u++,r.pqdownheap(s,1);while(r.heap_len>=2);r.heap[--r.heap_max]=r.heap[1],e(r),o(s,t.max_code,r.bl_count)}}Qi._length_code=[0,1,2,3,4,5,6,7].concat(...a8([[2,8],[2,9],[2,10],[2,11],[4,12],[4,13],[4,14],[4,15],[8,16],[8,17],[8,18],[8,19],[16,20],[16,21],[16,22],[16,23],[32,24],[32,25],[32,26],[31,27],[1,28]])),Qi.base_length=[0,1,2,3,4,5,6,7,8,10,12,14,16,20,24,28,32,40,48,56,64,80,96,112,128,160,192,224,0],Qi.base_dist=[0,1,2,3,4,6,8,12,16,24,32,48,64,96,128,192,256,384,512,768,1024,1536,2048,3072,4096,6144,8192,12288,16384,24576],Qi.d_code=function(t){return t<256?F$[t]:F$[256+(t>>>7)]},Qi.extra_lbits=[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],Qi.extra_dbits=[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],Qi.extra_blbits=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],Qi.bl_order=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];function rr(t,e,i,o,r){const s=this;s.static_tree=t,s.extra_bits=e,s.extra_base=i,s.elems=o,s.max_length=r}const jmi=[12,140,76,204,44,172,108,236,28,156,92,220,60,188,124,252,2,130,66,194,34,162,98,226,18,146,82,210,50,178,114,242,10,138,74,202,42,170,106,234,26,154,90,218,58,186,122,250,6,134,70,198,38,166,102,230,22,150,86,214,54,182,118,246,14,142,78,206,46,174,110,238,30,158,94,222,62,190,126,254,1,129,65,193,33,161,97,225,17,145,81,209,49,177,113,241,9,137,73,201,41,169,105,233,25,153,89,217,57,185,121,249,5,133,69,197,37,165,101,229,21,149,85,213,53,181,117,245,13,141,77,205,45,173,109,237,29,157,93,221,61,189,125,253,19,275,147,403,83,339,211,467,51,307,179,435,115,371,243,499,11,267,139,395,75,331,203,459,43,299,171,427,107,363,235,491,27,283,155,411,91,347,219,475,59,315,187,443,123,379,251,507,7,263,135,391,71,327,199,455,39,295,167,423,103,359,231,487,23,279,151,407,87,343,215,471,55,311,183,439,119,375,247,503,15,271,143,399,79,335,207,463,47,303,175,431,111,367,239,495,31,287,159,415,95,351,223,479,63,319,191,447,127,383,255,511,0,64,32,96,16,80,48,112,8,72,40,104,24,88,56,120,4,68,36,100,20,84,52,116,3,131,67,195,35,163,99,227],Nmi=a8([[144,8],[112,9],[24,7],[8,8]]);rr.static_ltree=l8(jmi.map((t,e)=>[t,Nmi[e]]));const Rmi=[0,16,8,24,4,20,12,28,2,18,10,26,6,22,14,30,1,17,9,25,5,21,13,29,3,19,11,27,7,23],Omi=a8([[30,5]]);rr.static_dtree=l8(Rmi.map((t,e)=>[t,Omi[e]])),rr.static_l_desc=new rr(rr.static_ltree,Qi.extra_lbits,o8+1,Zk,Jm),rr.static_d_desc=new rr(rr.static_dtree,Qi.extra_dbits,0,Kk,Jm),rr.static_bl_desc=new rr(null,Qi.extra_blbits,0,Yk,Pmi);const zmi=9,Fmi=8;function Xs(t,e,i,o,r){const s=this;s.good_length=t,s.max_lazy=e,s.nice_length=i,s.max_chain=o,s.func=r}const U$=0,c8=1,pu=2,ws=[new Xs(0,0,0,0,U$),new Xs(4,4,8,4,c8),new Xs(4,5,16,8,c8),new Xs(4,6,32,32,c8),new Xs(4,4,16,16,pu),new Xs(8,16,32,32,pu),new Xs(8,16,128,128,pu),new Xs(8,32,128,256,pu),new Xs(32,128,258,1024,pu),new Xs(32,258,258,4096,pu)],d8=["need dictionary","stream end","","","stream error","data error","","buffer error","",""],bs=0,u8=1,Xm=2,h8=3,Umi=32,Wk=42,p8=113,$m=666,Xk=8,Vmi=0,$k=1,Hmi=2,eo=3,A8=258,In=A8+eo+1;function V$(t,e,i,o){const r=t[e*2],s=t[i*2];return r<s||r==s&&o[e]<=o[i]}function Qmi(){const t=this;let e,i,o,r,s,n,a,l,c,d,u,h,A,f,p,g,m,M,y,b,C,x,I,E,P,N,L,j,O,V,Q,U,Y;const J=new Qi,ae=new Qi,de=new Qi;t.depth=[];let Ee,ye,Se,Ge,ue,ge;t.bl_count=[],t.heap=[],Q=[],U=[],Y=[];function ke(){c=2*s,u[A-1]=0;for(let De=0;De<A-1;De++)u[De]=0;N=ws[L].max_lazy,O=ws[L].good_length,V=ws[L].nice_length,P=ws[L].max_chain,C=0,m=0,I=0,M=E=eo-1,b=0,h=0}function je(){let De;for(De=0;De<Zk;De++)Q[De*2]=0;for(De=0;De<Kk;De++)U[De*2]=0;for(De=0;De<Yk;De++)Y[De*2]=0;Q[Wm*2]=1,t.opt_len=t.static_len=0,ye=Se=0}function Te(){J.dyn_tree=Q,J.stat_desc=rr.static_l_desc,ae.dyn_tree=U,ae.stat_desc=rr.static_d_desc,de.dyn_tree=Y,de.stat_desc=rr.static_bl_desc,ue=0,ge=0,Ge=8,je()}t.pqdownheap=function(De,ze){const Le=t.heap,Ue=Le[ze];let Fe=ze<<1;for(;Fe<=t.heap_len&&(Fe<t.heap_len&&V$(De,Le[Fe+1],Le[Fe],t.depth)&&Fe++,!V$(De,Ue,Le[Fe],t.depth));)Le[ze]=Le[Fe],ze=Fe,Fe<<=1;Le[ze]=Ue};function He(De,ze){let Le=-1,Ue,Fe=De[0*2+1],et=0,rt=7,yt=4;Fe===0&&(rt=138,yt=3),De[(ze+1)*2+1]=65535;for(let wt=0;wt<=ze;wt++)Ue=Fe,Fe=De[(wt+1)*2+1],!(++et<rt&&Ue==Fe)&&(et<yt?Y[Ue*2]+=et:Ue!==0?(Ue!=Le&&Y[Ue*2]++,Y[j$*2]++):et<=10?Y[N$*2]++:Y[R$*2]++,et=0,Le=Ue,Fe===0?(rt=138,yt=3):Ue==Fe?(rt=6,yt=3):(rt=7,yt=4))}function _e(){let De;for(He(Q,J.max_code),He(U,ae.max_code),de.build_tree(t),De=Yk-1;De>=3&&Y[Qi.bl_order[De]*2+1]===0;De--);return t.opt_len+=3*(De+1)+5+5+4,De}function Ye(De){t.pending_buf[t.pending++]=De}function Z(De){Ye(De&255),Ye(De>>>8&255)}function te(De){Ye(De>>8&255),Ye(De&255&255)}function le(De,ze){let Le;const Ue=ze;ge>Jk-Ue?(Le=De,ue|=Le<<ge&65535,Z(ue),ue=Le>>>Jk-ge,ge+=Ue-Jk):(ue|=De<<ge&65535,ge+=Ue)}function Ie(De,ze){const Le=De*2;le(ze[Le]&65535,ze[Le+1]&65535)}function ne(De,ze){let Le,Ue=-1,Fe,et=De[0*2+1],rt=0,yt=7,wt=4;for(et===0&&(yt=138,wt=3),Le=0;Le<=ze;Le++)if(Fe=et,et=De[(Le+1)*2+1],!(++rt<yt&&Fe==et)){if(rt<wt)do Ie(Fe,Y);while(--rt!==0);else Fe!==0?(Fe!=Ue&&(Ie(Fe,Y),rt--),Ie(j$,Y),le(rt-3,2)):rt<=10?(Ie(N$,Y),le(rt-3,3)):(Ie(R$,Y),le(rt-11,7));rt=0,Ue=Fe,et===0?(yt=138,wt=3):Fe==et?(yt=6,wt=3):(yt=7,wt=4)}}function he(De,ze,Le){let Ue;for(le(De-257,5),le(ze-1,5),le(Le-4,4),Ue=0;Ue<Le;Ue++)le(Y[Qi.bl_order[Ue]*2+1],3);ne(Q,De-1),ne(U,ze-1)}function we(){ge==16?(Z(ue),ue=0,ge=0):ge>=8&&(Ye(ue&255),ue>>>=8,ge-=8)}function G(){le($k<<1,3),Ie(Wm,rr.static_ltree),we(),1+Ge+10-ge<9&&(le($k<<1,3),Ie(Wm,rr.static_ltree),we()),Ge=7}function K(De,ze){let Le,Ue,Fe;if(t.dist_buf[ye]=De,t.lc_buf[ye]=ze&255,ye++,De===0?Q[ze*2]++:(Se++,De--,Q[(Qi._length_code[ze]+o8+1)*2]++,U[Qi.d_code(De)*2]++),!(ye&8191)&&L>2){for(Le=ye*8,Ue=C-m,Fe=0;Fe<Kk;Fe++)Le+=U[Fe*2]*(5+Qi.extra_dbits[Fe]);if(Le>>>=3,Se<Math.floor(ye/2)&&Le<Math.floor(Ue/2))return!0}return ye==Ee-1}function se(De,ze){let Le,Ue,Fe=0,et,rt;if(ye!==0)do Le=t.dist_buf[Fe],Ue=t.lc_buf[Fe],Fe++,Le===0?Ie(Ue,De):(et=Qi._length_code[Ue],Ie(et+o8+1,De),rt=Qi.extra_lbits[et],rt!==0&&(Ue-=Qi.base_length[et],le(Ue,rt)),Le--,et=Qi.d_code(Le),Ie(et,ze),rt=Qi.extra_dbits[et],rt!==0&&(Le-=Qi.base_dist[et],le(Le,rt)));while(Fe<ye);Ie(Wm,De),Ge=De[Wm*2+1]}function ve(){ge>8?Z(ue):ge>0&&Ye(ue&255),ue=0,ge=0}function ee(De,ze,Le){ve(),Ge=8,Le&&(Z(ze),Z(~ze)),t.pending_buf.set(l.subarray(De,De+ze),t.pending),t.pending+=ze}function fe(De,ze,Le){le((Vmi<<1)+(Le?1:0),3),ee(De,ze,!0)}function Ce(De,ze,Le){let Ue,Fe,et=0;L>0?(J.build_tree(t),ae.build_tree(t),et=_e(),Ue=t.opt_len+3+7>>>3,Fe=t.static_len+3+7>>>3,Fe<=Ue&&(Ue=Fe)):Ue=Fe=ze+5,ze+4<=Ue&&De!=-1?fe(De,ze,Le):Fe==Ue?(le(($k<<1)+(Le?1:0),3),se(rr.static_ltree,rr.static_dtree)):(le((Hmi<<1)+(Le?1:0),3),he(J.max_code+1,ae.max_code+1,et+1),se(Q,U)),je(),Le&&ve()}function Pe(De){Ce(m>=0?m:-1,C-m,De),m=C,e.flush_pending()}function ct(){let De,ze,Le,Ue;do{if(Ue=c-I-C,Ue===0&&C===0&&I===0)Ue=s;else if(Ue==-1)Ue--;else if(C>=s+s-In){l.set(l.subarray(s,s+s),0),x-=s,C-=s,m-=s,De=A,Le=De;do ze=u[--Le]&65535,u[Le]=ze>=s?ze-s:0;while(--De!==0);De=s,Le=De;do ze=d[--Le]&65535,d[Le]=ze>=s?ze-s:0;while(--De!==0);Ue+=s}if(e.avail_in===0)return;De=e.read_buf(l,C+I,Ue),I+=De,I>=eo&&(h=l[C]&255,h=(h<<g^l[C+1]&255)&p)}while(I<In&&e.avail_in!==0)}function Ze(De){let ze=65535,Le;for(ze>o-5&&(ze=o-5);;){if(I<=1){if(ct(),I===0&&De==D1)return bs;if(I===0)break}if(C+=I,I=0,Le=m+ze,(C===0||C>=Le)&&(I=C-Le,C=Le,Pe(!1),e.avail_out===0)||C-m>=s-In&&(Pe(!1),e.avail_out===0))return bs}return Pe(De==tn),e.avail_out===0?De==tn?Xm:bs:De==tn?h8:u8}function qe(De){let ze=P,Le=C,Ue,Fe,et=E;const rt=C>s-In?C-(s-In):0;let yt=V;const wt=a,We=C+A8;let Zt=l[Le+et-1],It=l[Le+et];E>=O&&(ze>>=2),yt>I&&(yt=I);do if(Ue=De,!(l[Ue+et]!=It||l[Ue+et-1]!=Zt||l[Ue]!=l[Le]||l[++Ue]!=l[Le+1])){Le+=2,Ue++;do;while(l[++Le]==l[++Ue]&&l[++Le]==l[++Ue]&&l[++Le]==l[++Ue]&&l[++Le]==l[++Ue]&&l[++Le]==l[++Ue]&&l[++Le]==l[++Ue]&&l[++Le]==l[++Ue]&&l[++Le]==l[++Ue]&&Le<We);if(Fe=A8-(We-Le),Le=We-A8,Fe>et){if(x=De,et=Fe,Fe>=yt)break;Zt=l[Le+et-1],It=l[Le+et]}}while((De=d[De&wt]&65535)>rt&&--ze!==0);return et<=I?et:I}function Ct(De){let ze=0,Le;for(;;){if(I<In){if(ct(),I<In&&De==D1)return bs;if(I===0)break}if(I>=eo&&(h=(h<<g^l[C+(eo-1)]&255)&p,ze=u[h]&65535,d[C&a]=u[h],u[h]=C),ze!==0&&(C-ze&65535)<=s-In&&j!=n8&&(M=qe(ze)),M>=eo)if(Le=K(C-x,M-eo),I-=M,M<=N&&I>=eo){M--;do C++,h=(h<<g^l[C+(eo-1)]&255)&p,ze=u[h]&65535,d[C&a]=u[h],u[h]=C;while(--M!==0);C++}else C+=M,M=0,h=l[C]&255,h=(h<<g^l[C+1]&255)&p;else Le=K(0,l[C]&255),I--,C++;if(Le&&(Pe(!1),e.avail_out===0))return bs}return Pe(De==tn),e.avail_out===0?De==tn?Xm:bs:De==tn?h8:u8}function Qe(De){let ze=0,Le,Ue;for(;;){if(I<In){if(ct(),I<In&&De==D1)return bs;if(I===0)break}if(I>=eo&&(h=(h<<g^l[C+(eo-1)]&255)&p,ze=u[h]&65535,d[C&a]=u[h],u[h]=C),E=M,y=x,M=eo-1,ze!==0&&E<N&&(C-ze&65535)<=s-In&&(j!=n8&&(M=qe(ze)),M<=5&&(j==Bmi||M==eo&&C-x>4096)&&(M=eo-1)),E>=eo&&M<=E){Ue=C+I-eo,Le=K(C-1-y,E-eo),I-=E-1,E-=2;do++C<=Ue&&(h=(h<<g^l[C+(eo-1)]&255)&p,ze=u[h]&65535,d[C&a]=u[h],u[h]=C);while(--E!==0);if(b=0,M=eo-1,C++,Le&&(Pe(!1),e.avail_out===0))return bs}else if(b!==0){if(Le=K(0,l[C-1]&255),Le&&Pe(!1),C++,I--,e.avail_out===0)return bs}else b=1,C++,I--}return b!==0&&(Le=K(0,l[C-1]&255),b=0),Pe(De==tn),e.avail_out===0?De==tn?Xm:bs:De==tn?h8:u8}function Rt(De){return De.total_in=De.total_out=0,De.msg=null,t.pending=0,t.pending_out=0,i=p8,r=D1,Te(),ke(),vs}t.deflateInit=function(De,ze,Le,Ue,Fe,et){return Ue||(Ue=Xk),Fe||(Fe=Fmi),et||(et=Smi),De.msg=null,ze==r8&&(ze=6),Fe<1||Fe>zmi||Ue!=Xk||Le<9||Le>15||ze<0||ze>9||et<0||et>n8?ys:(De.dstate=t,n=Le,s=1<<n,a=s-1,f=Fe+7,A=1<<f,p=A-1,g=Math.floor((f+eo-1)/eo),l=new Uint8Array(s*2),d=[],u=[],Ee=1<<Fe+6,t.pending_buf=new Uint8Array(Ee*4),o=Ee*4,t.dist_buf=new Uint16Array(Ee),t.lc_buf=new Uint8Array(Ee),L=ze,j=et,Rt(De))},t.deflateEnd=function(){return i!=Wk&&i!=p8&&i!=$m?ys:(t.lc_buf=null,t.dist_buf=null,t.pending_buf=null,u=null,d=null,l=null,t.dstate=null,i==p8?Tmi:vs)},t.deflateParams=function(De,ze,Le){let Ue=vs;return ze==r8&&(ze=6),ze<0||ze>9||Le<0||Le>n8?ys:(ws[L].func!=ws[ze].func&&De.total_in!==0&&(Ue=De.deflate(O$)),L!=ze&&(L=ze,N=ws[L].max_lazy,O=ws[L].good_length,V=ws[L].nice_length,P=ws[L].max_chain),j=Le,Ue)},t.deflateSetDictionary=function(De,ze,Le){let Ue=Le,Fe,et=0;if(!ze||i!=Wk)return ys;if(Ue<eo)return vs;for(Ue>s-In&&(Ue=s-In,et=Le-Ue),l.set(ze.subarray(et,et+Ue),0),C=Ue,m=Ue,h=l[0]&255,h=(h<<g^l[1]&255)&p,Fe=0;Fe<=Ue-eo;Fe++)h=(h<<g^l[Fe+(eo-1)]&255)&p,d[Fe&a]=u[h],u[h]=Fe;return vs},t.deflate=function(De,ze){let Le,Ue,Fe,et,rt;if(ze>tn||ze<0)return ys;if(!De.next_out||!De.next_in&&De.avail_in!==0||i==$m&&ze!=tn)return De.msg=d8[s8-ys],ys;if(De.avail_out===0)return De.msg=d8[s8-P1],P1;if(e=De,et=r,r=ze,i==Wk&&(Ue=Xk+(n-8<<4)<<8,Fe=(L-1&255)>>1,Fe>3&&(Fe=3),Ue|=Fe<<6,C!==0&&(Ue|=Umi),Ue+=31-Ue%31,i=p8,te(Ue)),t.pending!==0){if(e.flush_pending(),e.avail_out===0)return r=-1,vs}else if(e.avail_in===0&&ze<=et&&ze!=tn)return e.msg=d8[s8-P1],P1;if(i==$m&&e.avail_in!==0)return De.msg=d8[s8-P1],P1;if(e.avail_in!==0||I!==0||ze!=D1&&i!=$m){switch(rt=-1,ws[L].func){case U$:rt=Ze(ze);break;case c8:rt=Ct(ze);break;case pu:rt=Qe(ze);break}if((rt==Xm||rt==h8)&&(i=$m),rt==bs||rt==Xm)return e.avail_out===0&&(r=-1),vs;if(rt==u8){if(ze==O$)G();else if(fe(0,0,!1),ze==Lmi)for(Le=0;Le<A;Le++)u[Le]=0;if(e.flush_pending(),e.avail_out===0)return r=-1,vs}}return ze!=tn?vs:z$}}function H$(){const t=this;t.next_in_index=0,t.next_out_index=0,t.avail_in=0,t.total_in=0,t.avail_out=0,t.total_out=0}H$.prototype={deflateInit(t,e){const i=this;return i.dstate=new Qmi,e||(e=Jm),i.dstate.deflateInit(i,t,e)},deflate(t){const e=this;return e.dstate?e.dstate.deflate(e,t):ys},deflateEnd(){const t=this;if(!t.dstate)return ys;const e=t.dstate.deflateEnd();return t.dstate=null,e},deflateParams(t,e){const i=this;return i.dstate?i.dstate.deflateParams(i,t,e):ys},deflateSetDictionary(t,e){const i=this;return i.dstate?i.dstate.deflateSetDictionary(i,t,e):ys},read_buf(t,e,i){const o=this;let r=o.avail_in;return r>i&&(r=i),r===0?0:(o.avail_in-=r,t.set(o.next_in.subarray(o.next_in_index,o.next_in_index+r),e),o.next_in_index+=r,o.total_in+=r,r)},flush_pending(){const t=this;let e=t.dstate.pending;e>t.avail_out&&(e=t.avail_out),e!==0&&(t.next_out.set(t.dstate.pending_buf.subarray(t.dstate.pending_out,t.dstate.pending_out+e),t.next_out_index),t.next_out_index+=e,t.dstate.pending_out+=e,t.total_out+=e,t.avail_out-=e,t.dstate.pending-=e,t.dstate.pending===0&&(t.dstate.pending_out=0))}};function _mi(t){const e=this,i=new H$,o=qmi(t&&t.chunkSize?t.chunkSize:64*1024),r=D1,s=new Uint8Array(o);let n=t?t.level:r8;typeof n>"u"&&(n=r8),i.deflateInit(n),i.next_out=s,e.append=function(a,l){let c,d,u=0,h=0,A=0;const f=[];if(a.length){i.next_in_index=0,i.next_in=a,i.avail_in=a.length;do{if(i.next_out_index=0,i.avail_out=o,c=i.deflate(r),c!=vs)throw new Error("deflating: "+i.msg);i.next_out_index&&(i.next_out_index==o?f.push(new Uint8Array(s)):f.push(s.subarray(0,i.next_out_index))),A+=i.next_out_index,l&&i.next_in_index>0&&i.next_in_index!=u&&(l(i.next_in_index),u=i.next_in_index)}while(i.avail_in>0||i.avail_out===0);return f.length>1?(d=new Uint8Array(A),f.forEach(function(p){d.set(p,h),h+=p.length})):d=f[0]?new Uint8Array(f[0]):new Uint8Array,d}},e.flush=function(){let a,l,c=0,d=0;const u=[];do{if(i.next_out_index=0,i.avail_out=o,a=i.deflate(tn),a!=z$&&a!=vs)throw new Error("deflating: "+i.msg);o-i.avail_out>0&&u.push(s.slice(0,i.next_out_index)),d+=i.next_out_index}while(i.avail_in>0||i.avail_out===0);return i.deflateEnd(),l=new Uint8Array(d),u.forEach(function(h){l.set(h,c),c+=h.length}),l}}function qmi(t){return t+5*(Math.floor(t/16383)+1)}const Gmi=15,hi=0,Za=1,Kmi=2,on=-2,_i=-3,Q$=-4,Ja=-5,En=[0,1,3,7,15,31,63,127,255,511,1023,2047,4095,8191,16383,32767,65535],_$=1440,Ymi=0,Zmi=4,Jmi=9,Wmi=5,Xmi=[96,7,256,0,8,80,0,8,16,84,8,115,82,7,31,0,8,112,0,8,48,0,9,192,80,7,10,0,8,96,0,8,32,0,9,160,0,8,0,0,8,128,0,8,64,0,9,224,80,7,6,0,8,88,0,8,24,0,9,144,83,7,59,0,8,120,0,8,56,0,9,208,81,7,17,0,8,104,0,8,40,0,9,176,0,8,8,0,8,136,0,8,72,0,9,240,80,7,4,0,8,84,0,8,20,85,8,227,83,7,43,0,8,116,0,8,52,0,9,200,81,7,13,0,8,100,0,8,36,0,9,168,0,8,4,0,8,132,0,8,68,0,9,232,80,7,8,0,8,92,0,8,28,0,9,152,84,7,83,0,8,124,0,8,60,0,9,216,82,7,23,0,8,108,0,8,44,0,9,184,0,8,12,0,8,140,0,8,76,0,9,248,80,7,3,0,8,82,0,8,18,85,8,163,83,7,35,0,8,114,0,8,50,0,9,196,81,7,11,0,8,98,0,8,34,0,9,164,0,8,2,0,8,130,0,8,66,0,9,228,80,7,7,0,8,90,0,8,26,0,9,148,84,7,67,0,8,122,0,8,58,0,9,212,82,7,19,0,8,106,0,8,42,0,9,180,0,8,10,0,8,138,0,8,74,0,9,244,80,7,5,0,8,86,0,8,22,192,8,0,83,7,51,0,8,118,0,8,54,0,9,204,81,7,15,0,8,102,0,8,38,0,9,172,0,8,6,0,8,134,0,8,70,0,9,236,80,7,9,0,8,94,0,8,30,0,9,156,84,7,99,0,8,126,0,8,62,0,9,220,82,7,27,0,8,110,0,8,46,0,9,188,0,8,14,0,8,142,0,8,78,0,9,252,96,7,256,0,8,81,0,8,17,85,8,131,82,7,31,0,8,113,0,8,49,0,9,194,80,7,10,0,8,97,0,8,33,0,9,162,0,8,1,0,8,129,0,8,65,0,9,226,80,7,6,0,8,89,0,8,25,0,9,146,83,7,59,0,8,121,0,8,57,0,9,210,81,7,17,0,8,105,0,8,41,0,9,178,0,8,9,0,8,137,0,8,73,0,9,242,80,7,4,0,8,85,0,8,21,80,8,258,83,7,43,0,8,117,0,8,53,0,9,202,81,7,13,0,8,101,0,8,37,0,9,170,0,8,5,0,8,133,0,8,69,0,9,234,80,7,8,0,8,93,0,8,29,0,9,154,84,7,83,0,8,125,0,8,61,0,9,218,82,7,23,0,8,109,0,8,45,0,9,186,0,8,13,0,8,141,0,8,77,0,9,250,80,7,3,0,8,83,0,8,19,85,8,195,83,7,35,0,8,115,0,8,51,0,9,198,81,7,11,0,8,99,0,8,35,0,9,166,0,8,3,0,8,131,0,8,67,0,9,230,80,7,7,0,8,91,0,8,27,0,9,150,84,7,67,0,8,123,0,8,59,0,9,214,82,7,19,0,8,107,0,8,43,0,9,182,0,8,11,0,8,139,0,8,75,0,9,246,80,7,5,0,8,87,0,8,23,192,8,0,83,7,51,0,8,119,0,8,55,0,9,206,81,7,15,0,8,103,0,8,39,0,9,174,0,8,7,0,8,135,0,8,71,0,9,238,80,7,9,0,8,95,0,8,31,0,9,158,84,7,99,0,8,127,0,8,63,0,9,222,82,7,27,0,8,111,0,8,47,0,9,190,0,8,15,0,8,143,0,8,79,0,9,254,96,7,256,0,8,80,0,8,16,84,8,115,82,7,31,0,8,112,0,8,48,0,9,193,80,7,10,0,8,96,0,8,32,0,9,161,0,8,0,0,8,128,0,8,64,0,9,225,80,7,6,0,8,88,0,8,24,0,9,145,83,7,59,0,8,120,0,8,56,0,9,209,81,7,17,0,8,104,0,8,40,0,9,177,0,8,8,0,8,136,0,8,72,0,9,241,80,7,4,0,8,84,0,8,20,85,8,227,83,7,43,0,8,116,0,8,52,0,9,201,81,7,13,0,8,100,0,8,36,0,9,169,0,8,4,0,8,132,0,8,68,0,9,233,80,7,8,0,8,92,0,8,28,0,9,153,84,7,83,0,8,124,0,8,60,0,9,217,82,7,23,0,8,108,0,8,44,0,9,185,0,8,12,0,8,140,0,8,76,0,9,249,80,7,3,0,8,82,0,8,18,85,8,163,83,7,35,0,8,114,0,8,50,0,9,197,81,7,11,0,8,98,0,8,34,0,9,165,0,8,2,0,8,130,0,8,66,0,9,229,80,7,7,0,8,90,0,8,26,0,9,149,84,7,67,0,8,122,0,8,58,0,9,213,82,7,19,0,8,106,0,8,42,0,9,181,0,8,10,0,8,138,0,8,74,0,9,245,80,7,5,0,8,86,0,8,22,192,8,0,83,7,51,0,8,118,0,8,54,0,9,205,81,7,15,0,8,102,0,8,38,0,9,173,0,8,6,0,8,134,0,8,70,0,9,237,80,7,9,0,8,94,0,8,30,0,9,157,84,7,99,0,8,126,0,8,62,0,9,221,82,7,27,0,8,110,0,8,46,0,9,189,0,8,14,0,8,142,0,8,78,0,9,253,96,7,256,0,8,81,0,8,17,85,8,131,82,7,31,0,8,113,0,8,49,0,9,195,80,7,10,0,8,97,0,8,33,0,9,163,0,8,1,0,8,129,0,8,65,0,9,227,80,7,6,0,8,89,0,8,25,0,9,147,83,7,59,0,8,121,0,8,57,0,9,211,81,7,17,0,8,105,0,8,41,0,9,179,0,8,9,0,8,137,0,8,73,0,9,243,80,7,4,0,8,85,0,8,21,80,8,258,83,7,43,0,8,117,0,8,53,0,9,203,81,7,13,0,8,101,0,8,37,0,9,171,0,8,5,0,8,133,0,8,69,0,9,235,80,7,8,0,8,93,0,8,29,0,9,155,84,7,83,0,8,125,0,8,61,0,9,219,82,7,23,0,8,109,0,8,45,0,9,187,0,8,13,0,8,141,0,8,77,0,9,251,80,7,3,0,8,83,0,8,19,85,8,195,83,7,35,0,8,115,0,8,51,0,9,199,81,7,11,0,8,99,0,8,35,0,9,167,0,8,3,0,8,131,0,8,67,0,9,231,80,7,7,0,8,91,0,8,27,0,9,151,84,7,67,0,8,123,0,8,59,0,9,215,82,7,19,0,8,107,0,8,43,0,9,183,0,8,11,0,8,139,0,8,75,0,9,247,80,7,5,0,8,87,0,8,23,192,8,0,83,7,51,0,8,119,0,8,55,0,9,207,81,7,15,0,8,103,0,8,39,0,9,175,0,8,7,0,8,135,0,8,71,0,9,239,80,7,9,0,8,95,0,8,31,0,9,159,84,7,99,0,8,127,0,8,63,0,9,223,82,7,27,0,8,111,0,8,47,0,9,191,0,8,15,0,8,143,0,8,79,0,9,255],$mi=[80,5,1,87,5,257,83,5,17,91,5,4097,81,5,5,89,5,1025,85,5,65,93,5,16385,80,5,3,88,5,513,84,5,33,92,5,8193,82,5,9,90,5,2049,86,5,129,192,5,24577,80,5,2,87,5,385,83,5,25,91,5,6145,81,5,7,89,5,1537,85,5,97,93,5,24577,80,5,4,88,5,769,84,5,49,92,5,12289,82,5,13,90,5,3073,86,5,193,192,5,24577],evi=[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0],tvi=[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,112,112],ivi=[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577],ovi=[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],bc=15;function eI(){const t=this;let e,i,o,r,s,n;function a(c,d,u,h,A,f,p,g,m,M,y){let b,C,x,I,E,P,N,L,j,O,V,Q,U,Y,J;O=0,E=u;do o[c[d+O]]++,O++,E--;while(E!==0);if(o[0]==u)return p[0]=-1,g[0]=0,hi;for(L=g[0],P=1;P<=bc&&o[P]===0;P++);for(N=P,L<P&&(L=P),E=bc;E!==0&&o[E]===0;E--);for(x=E,L>E&&(L=E),g[0]=L,Y=1<<P;P<E;P++,Y<<=1)if((Y-=o[P])<0)return _i;if((Y-=o[E])<0)return _i;for(o[E]+=Y,n[1]=P=0,O=1,U=2;--E!==0;)n[U]=P+=o[O],U++,O++;E=0,O=0;do(P=c[d+O])!==0&&(y[n[P]++]=E),O++;while(++E<u);for(u=n[x],n[0]=E=0,O=0,I=-1,Q=-L,s[0]=0,V=0,J=0;N<=x;N++)for(b=o[N];b--!==0;){for(;N>Q+L;){if(I++,Q+=L,J=x-Q,J=J>L?L:J,(C=1<<(P=N-Q))>b+1&&(C-=b+1,U=N,P<J))for(;++P<J&&!((C<<=1)<=o[++U]);)C-=o[U];if(J=1<<P,M[0]+J>_$)return _i;s[I]=V=M[0],M[0]+=J,I!==0?(n[I]=E,r[0]=P,r[1]=L,P=E>>>Q-L,r[2]=V-s[I-1]-P,m.set(r,(s[I-1]+P)*3)):p[0]=V}for(r[1]=N-Q,O>=u?r[0]=192:y[O]<h?(r[0]=y[O]<256?0:96,r[2]=y[O++]):(r[0]=f[y[O]-h]+16+64,r[2]=A[y[O++]-h]),C=1<<N-Q,P=E>>>Q;P<J;P+=C)m.set(r,(V+P)*3);for(P=1<<N-1;E&P;P>>>=1)E^=P;for(E^=P,j=(1<<Q)-1;(E&j)!=n[I];)I--,Q-=L,j=(1<<Q)-1}return Y!==0&&x!=1?Ja:hi}function l(c){let d;for(e||(e=[],i=[],o=new Int32Array(bc+1),r=[],s=new Int32Array(bc),n=new Int32Array(bc+1)),i.length<c&&(i=[]),d=0;d<c;d++)i[d]=0;for(d=0;d<bc+1;d++)o[d]=0;for(d=0;d<3;d++)r[d]=0;s.set(o.subarray(0,bc),0),n.set(o.subarray(0,bc+1),0)}t.inflate_trees_bits=function(c,d,u,h,A){let f;return l(19),e[0]=0,f=a(c,0,19,19,null,null,u,d,h,e,i),f==_i?A.msg="oversubscribed dynamic bit lengths tree":(f==Ja||d[0]===0)&&(A.msg="incomplete dynamic bit lengths tree",f=_i),f},t.inflate_trees_dynamic=function(c,d,u,h,A,f,p,g,m){let M;return l(288),e[0]=0,M=a(u,0,c,257,evi,tvi,f,h,g,e,i),M!=hi||h[0]===0?(M==_i?m.msg="oversubscribed literal/length tree":M!=Q$&&(m.msg="incomplete literal/length tree",M=_i),M):(l(288),M=a(u,c,d,0,ivi,ovi,p,A,g,e,i),M!=hi||A[0]===0&&c>257?(M==_i?m.msg="oversubscribed distance tree":M==Ja?(m.msg="incomplete distance tree",M=_i):M!=Q$&&(m.msg="empty distance tree with lengths",M=_i),M):hi)}}eI.inflate_trees_fixed=function(t,e,i,o){return t[0]=Jmi,e[0]=Wmi,i[0]=Xmi,o[0]=$mi,hi};const f8=0,q$=1,G$=2,K$=3,Y$=4,Z$=5,J$=6,tI=7,W$=8,g8=9;function rvi(){const t=this;let e,i=0,o,r=0,s=0,n=0,a=0,l=0,c=0,d=0,u,h=0,A,f=0;function p(g,m,M,y,b,C,x,I){let E,P,N,L,j,O,V,Q,U,Y,J,ae,de,Ee,ye,Se;V=I.next_in_index,Q=I.avail_in,j=x.bitb,O=x.bitk,U=x.write,Y=U<x.read?x.read-U-1:x.end-U,J=En[g],ae=En[m];do{for(;O<20;)Q--,j|=(I.read_byte(V++)&255)<<O,O+=8;if(E=j&J,P=M,N=y,Se=(N+E)*3,(L=P[Se])===0){j>>=P[Se+1],O-=P[Se+1],x.win[U++]=P[Se+2],Y--;continue}do{if(j>>=P[Se+1],O-=P[Se+1],L&16){for(L&=15,de=P[Se+2]+(j&En[L]),j>>=L,O-=L;O<15;)Q--,j|=(I.read_byte(V++)&255)<<O,O+=8;E=j&ae,P=b,N=C,Se=(N+E)*3,L=P[Se];do if(j>>=P[Se+1],O-=P[Se+1],L&16){for(L&=15;O<L;)Q--,j|=(I.read_byte(V++)&255)<<O,O+=8;if(Ee=P[Se+2]+(j&En[L]),j>>=L,O-=L,Y-=de,U>=Ee)ye=U-Ee,U-ye>0&&2>U-ye?(x.win[U++]=x.win[ye++],x.win[U++]=x.win[ye++],de-=2):(x.win.set(x.win.subarray(ye,ye+2),U),U+=2,ye+=2,de-=2);else{ye=U-Ee;do ye+=x.end;while(ye<0);if(L=x.end-ye,de>L){if(de-=L,U-ye>0&&L>U-ye)do x.win[U++]=x.win[ye++];while(--L!==0);else x.win.set(x.win.subarray(ye,ye+L),U),U+=L,ye+=L,L=0;ye=0}}if(U-ye>0&&de>U-ye)do x.win[U++]=x.win[ye++];while(--de!==0);else x.win.set(x.win.subarray(ye,ye+de),U),U+=de,ye+=de,de=0;break}else if(!(L&64))E+=P[Se+2],E+=j&En[L],Se=(N+E)*3,L=P[Se];else return I.msg="invalid distance code",de=I.avail_in-Q,de=O>>3<de?O>>3:de,Q+=de,V-=de,O-=de<<3,x.bitb=j,x.bitk=O,I.avail_in=Q,I.total_in+=V-I.next_in_index,I.next_in_index=V,x.write=U,_i;while(!0);break}if(L&64)return L&32?(de=I.avail_in-Q,de=O>>3<de?O>>3:de,Q+=de,V-=de,O-=de<<3,x.bitb=j,x.bitk=O,I.avail_in=Q,I.total_in+=V-I.next_in_index,I.next_in_index=V,x.write=U,Za):(I.msg="invalid literal/length code",de=I.avail_in-Q,de=O>>3<de?O>>3:de,Q+=de,V-=de,O-=de<<3,x.bitb=j,x.bitk=O,I.avail_in=Q,I.total_in+=V-I.next_in_index,I.next_in_index=V,x.write=U,_i);if(E+=P[Se+2],E+=j&En[L],Se=(N+E)*3,(L=P[Se])===0){j>>=P[Se+1],O-=P[Se+1],x.win[U++]=P[Se+2],Y--;break}}while(!0)}while(Y>=258&&Q>=10);return de=I.avail_in-Q,de=O>>3<de?O>>3:de,Q+=de,V-=de,O-=de<<3,x.bitb=j,x.bitk=O,I.avail_in=Q,I.total_in+=V-I.next_in_index,I.next_in_index=V,x.write=U,hi}t.init=function(g,m,M,y,b,C){e=f8,c=g,d=m,u=M,h=y,A=b,f=C,o=null},t.proc=function(g,m,M){let y,b,C,x=0,I=0,E=0,P,N,L,j;for(E=m.next_in_index,P=m.avail_in,x=g.bitb,I=g.bitk,N=g.write,L=N<g.read?g.read-N-1:g.end-N;;)switch(e){case f8:if(L>=258&&P>=10&&(g.bitb=x,g.bitk=I,m.avail_in=P,m.total_in+=E-m.next_in_index,m.next_in_index=E,g.write=N,M=p(c,d,u,h,A,f,g,m),E=m.next_in_index,P=m.avail_in,x=g.bitb,I=g.bitk,N=g.write,L=N<g.read?g.read-N-1:g.end-N,M!=hi)){e=M==Za?tI:g8;break}s=c,o=u,r=h,e=q$;case q$:for(y=s;I<y;){if(P!==0)M=hi;else return g.bitb=x,g.bitk=I,m.avail_in=P,m.total_in+=E-m.next_in_index,m.next_in_index=E,g.write=N,g.inflate_flush(m,M);P--,x|=(m.read_byte(E++)&255)<<I,I+=8}if(b=(r+(x&En[y]))*3,x>>>=o[b+1],I-=o[b+1],C=o[b],C===0){n=o[b+2],e=J$;break}if(C&16){a=C&15,i=o[b+2],e=G$;break}if(!(C&64)){s=C,r=b/3+o[b+2];break}if(C&32){e=tI;break}return e=g8,m.msg="invalid literal/length code",M=_i,g.bitb=x,g.bitk=I,m.avail_in=P,m.total_in+=E-m.next_in_index,m.next_in_index=E,g.write=N,g.inflate_flush(m,M);case G$:for(y=a;I<y;){if(P!==0)M=hi;else return g.bitb=x,g.bitk=I,m.avail_in=P,m.total_in+=E-m.next_in_index,m.next_in_index=E,g.write=N,g.inflate_flush(m,M);P--,x|=(m.read_byte(E++)&255)<<I,I+=8}i+=x&En[y],x>>=y,I-=y,s=d,o=A,r=f,e=K$;case K$:for(y=s;I<y;){if(P!==0)M=hi;else return g.bitb=x,g.bitk=I,m.avail_in=P,m.total_in+=E-m.next_in_index,m.next_in_index=E,g.write=N,g.inflate_flush(m,M);P--,x|=(m.read_byte(E++)&255)<<I,I+=8}if(b=(r+(x&En[y]))*3,x>>=o[b+1],I-=o[b+1],C=o[b],C&16){a=C&15,l=o[b+2],e=Y$;break}if(!(C&64)){s=C,r=b/3+o[b+2];break}return e=g8,m.msg="invalid distance code",M=_i,g.bitb=x,g.bitk=I,m.avail_in=P,m.total_in+=E-m.next_in_index,m.next_in_index=E,g.write=N,g.inflate_flush(m,M);case Y$:for(y=a;I<y;){if(P!==0)M=hi;else return g.bitb=x,g.bitk=I,m.avail_in=P,m.total_in+=E-m.next_in_index,m.next_in_index=E,g.write=N,g.inflate_flush(m,M);P--,x|=(m.read_byte(E++)&255)<<I,I+=8}l+=x&En[y],x>>=y,I-=y,e=Z$;case Z$:for(j=N-l;j<0;)j+=g.end;for(;i!==0;){if(L===0&&(N==g.end&&g.read!==0&&(N=0,L=N<g.read?g.read-N-1:g.end-N),L===0&&(g.write=N,M=g.inflate_flush(m,M),N=g.write,L=N<g.read?g.read-N-1:g.end-N,N==g.end&&g.read!==0&&(N=0,L=N<g.read?g.read-N-1:g.end-N),L===0)))return g.bitb=x,g.bitk=I,m.avail_in=P,m.total_in+=E-m.next_in_index,m.next_in_index=E,g.write=N,g.inflate_flush(m,M);g.win[N++]=g.win[j++],L--,j==g.end&&(j=0),i--}e=f8;break;case J$:if(L===0&&(N==g.end&&g.read!==0&&(N=0,L=N<g.read?g.read-N-1:g.end-N),L===0&&(g.write=N,M=g.inflate_flush(m,M),N=g.write,L=N<g.read?g.read-N-1:g.end-N,N==g.end&&g.read!==0&&(N=0,L=N<g.read?g.read-N-1:g.end-N),L===0)))return g.bitb=x,g.bitk=I,m.avail_in=P,m.total_in+=E-m.next_in_index,m.next_in_index=E,g.write=N,g.inflate_flush(m,M);M=hi,g.win[N++]=n,L--,e=f8;break;case tI:if(I>7&&(I-=8,P++,E--),g.write=N,M=g.inflate_flush(m,M),N=g.write,L=N<g.read?g.read-N-1:g.end-N,g.read!=g.write)return g.bitb=x,g.bitk=I,m.avail_in=P,m.total_in+=E-m.next_in_index,m.next_in_index=E,g.write=N,g.inflate_flush(m,M);e=W$;case W$:return M=Za,g.bitb=x,g.bitk=I,m.avail_in=P,m.total_in+=E-m.next_in_index,m.next_in_index=E,g.write=N,g.inflate_flush(m,M);case g8:return M=_i,g.bitb=x,g.bitk=I,m.avail_in=P,m.total_in+=E-m.next_in_index,m.next_in_index=E,g.write=N,g.inflate_flush(m,M);default:return M=on,g.bitb=x,g.bitk=I,m.avail_in=P,m.total_in+=E-m.next_in_index,m.next_in_index=E,g.write=N,g.inflate_flush(m,M)}},t.free=function(){}}const X$=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],B1=0,iI=1,$$=2,eee=3,tee=4,iee=5,m8=6,v8=7,oee=8,Au=9;function nvi(t,e){const i=this;let o=B1,r=0,s=0,n=0,a;const l=[0],c=[0],d=new rvi;let u=0,h=new Int32Array(_$*3);const A=0,f=new eI;i.bitk=0,i.bitb=0,i.win=new Uint8Array(e),i.end=e,i.read=0,i.write=0,i.reset=function(p,g){g&&(g[0]=A),o==m8&&d.free(p),o=B1,i.bitk=0,i.bitb=0,i.read=i.write=0},i.reset(t,null),i.inflate_flush=function(p,g){let m,M,y;return M=p.next_out_index,y=i.read,m=(y<=i.write?i.write:i.end)-y,m>p.avail_out&&(m=p.avail_out),m!==0&&g==Ja&&(g=hi),p.avail_out-=m,p.total_out+=m,p.next_out.set(i.win.subarray(y,y+m),M),M+=m,y+=m,y==i.end&&(y=0,i.write==i.end&&(i.write=0),m=i.write-y,m>p.avail_out&&(m=p.avail_out),m!==0&&g==Ja&&(g=hi),p.avail_out-=m,p.total_out+=m,p.next_out.set(i.win.subarray(y,y+m),M),M+=m,y+=m),p.next_out_index=M,i.read=y,g},i.proc=function(p,g){let m,M,y,b,C,x,I,E;for(b=p.next_in_index,C=p.avail_in,M=i.bitb,y=i.bitk,x=i.write,I=x<i.read?i.read-x-1:i.end-x;;){let P,N,L,j,O,V,Q,U;switch(o){case B1:for(;y<3;){if(C!==0)g=hi;else return i.bitb=M,i.bitk=y,p.avail_in=C,p.total_in+=b-p.next_in_index,p.next_in_index=b,i.write=x,i.inflate_flush(p,g);C--,M|=(p.read_byte(b++)&255)<<y,y+=8}switch(m=M&7,u=m&1,m>>>1){case 0:M>>>=3,y-=3,m=y&7,M>>>=m,y-=m,o=iI;break;case 1:P=[],N=[],L=[[]],j=[[]],eI.inflate_trees_fixed(P,N,L,j),d.init(P[0],N[0],L[0],0,j[0],0),M>>>=3,y-=3,o=m8;break;case 2:M>>>=3,y-=3,o=eee;break;case 3:return M>>>=3,y-=3,o=Au,p.msg="invalid block type",g=_i,i.bitb=M,i.bitk=y,p.avail_in=C,p.total_in+=b-p.next_in_index,p.next_in_index=b,i.write=x,i.inflate_flush(p,g)}break;case iI:for(;y<32;){if(C!==0)g=hi;else return i.bitb=M,i.bitk=y,p.avail_in=C,p.total_in+=b-p.next_in_index,p.next_in_index=b,i.write=x,i.inflate_flush(p,g);C--,M|=(p.read_byte(b++)&255)<<y,y+=8}if((~M>>>16&65535)!=(M&65535))return o=Au,p.msg="invalid stored block lengths",g=_i,i.bitb=M,i.bitk=y,p.avail_in=C,p.total_in+=b-p.next_in_index,p.next_in_index=b,i.write=x,i.inflate_flush(p,g);r=M&65535,M=y=0,o=r!==0?$$:u!==0?v8:B1;break;case $$:if(C===0||I===0&&(x==i.end&&i.read!==0&&(x=0,I=x<i.read?i.read-x-1:i.end-x),I===0&&(i.write=x,g=i.inflate_flush(p,g),x=i.write,I=x<i.read?i.read-x-1:i.end-x,x==i.end&&i.read!==0&&(x=0,I=x<i.read?i.read-x-1:i.end-x),I===0)))return i.bitb=M,i.bitk=y,p.avail_in=C,p.total_in+=b-p.next_in_index,p.next_in_index=b,i.write=x,i.inflate_flush(p,g);if(g=hi,m=r,m>C&&(m=C),m>I&&(m=I),i.win.set(p.read_buf(b,m),x),b+=m,C-=m,x+=m,I-=m,(r-=m)!==0)break;o=u!==0?v8:B1;break;case eee:for(;y<14;){if(C!==0)g=hi;else return i.bitb=M,i.bitk=y,p.avail_in=C,p.total_in+=b-p.next_in_index,p.next_in_index=b,i.write=x,i.inflate_flush(p,g);C--,M|=(p.read_byte(b++)&255)<<y,y+=8}if(s=m=M&16383,(m&31)>29||(m>>5&31)>29)return o=Au,p.msg="too many length or distance symbols",g=_i,i.bitb=M,i.bitk=y,p.avail_in=C,p.total_in+=b-p.next_in_index,p.next_in_index=b,i.write=x,i.inflate_flush(p,g);if(m=258+(m&31)+(m>>5&31),!a||a.length<m)a=[];else for(E=0;E<m;E++)a[E]=0;M>>>=14,y-=14,n=0,o=tee;case tee:for(;n<4+(s>>>10);){for(;y<3;){if(C!==0)g=hi;else return i.bitb=M,i.bitk=y,p.avail_in=C,p.total_in+=b-p.next_in_index,p.next_in_index=b,i.write=x,i.inflate_flush(p,g);C--,M|=(p.read_byte(b++)&255)<<y,y+=8}a[X$[n++]]=M&7,M>>>=3,y-=3}for(;n<19;)a[X$[n++]]=0;if(l[0]=7,m=f.inflate_trees_bits(a,l,c,h,p),m!=hi)return g=m,g==_i&&(a=null,o=Au),i.bitb=M,i.bitk=y,p.avail_in=C,p.total_in+=b-p.next_in_index,p.next_in_index=b,i.write=x,i.inflate_flush(p,g);n=0,o=iee;case iee:for(;m=s,!(n>=258+(m&31)+(m>>5&31));){let Y,J;for(m=l[0];y<m;){if(C!==0)g=hi;else return i.bitb=M,i.bitk=y,p.avail_in=C,p.total_in+=b-p.next_in_index,p.next_in_index=b,i.write=x,i.inflate_flush(p,g);C--,M|=(p.read_byte(b++)&255)<<y,y+=8}if(m=h[(c[0]+(M&En[m]))*3+1],J=h[(c[0]+(M&En[m]))*3+2],J<16)M>>>=m,y-=m,a[n++]=J;else{for(E=J==18?7:J-14,Y=J==18?11:3;y<m+E;){if(C!==0)g=hi;else return i.bitb=M,i.bitk=y,p.avail_in=C,p.total_in+=b-p.next_in_index,p.next_in_index=b,i.write=x,i.inflate_flush(p,g);C--,M|=(p.read_byte(b++)&255)<<y,y+=8}if(M>>>=m,y-=m,Y+=M&En[E],M>>>=E,y-=E,E=n,m=s,E+Y>258+(m&31)+(m>>5&31)||J==16&&E<1)return a=null,o=Au,p.msg="invalid bit length repeat",g=_i,i.bitb=M,i.bitk=y,p.avail_in=C,p.total_in+=b-p.next_in_index,p.next_in_index=b,i.write=x,i.inflate_flush(p,g);J=J==16?a[E-1]:0;do a[E++]=J;while(--Y!==0);n=E}}if(c[0]=-1,O=[],V=[],Q=[],U=[],O[0]=9,V[0]=6,m=s,m=f.inflate_trees_dynamic(257+(m&31),1+(m>>5&31),a,O,V,Q,U,h,p),m!=hi)return m==_i&&(a=null,o=Au),g=m,i.bitb=M,i.bitk=y,p.avail_in=C,p.total_in+=b-p.next_in_index,p.next_in_index=b,i.write=x,i.inflate_flush(p,g);d.init(O[0],V[0],h,Q[0],h,U[0]),o=m8;case m8:if(i.bitb=M,i.bitk=y,p.avail_in=C,p.total_in+=b-p.next_in_index,p.next_in_index=b,i.write=x,(g=d.proc(i,p,g))!=Za)return i.inflate_flush(p,g);if(g=hi,d.free(p),b=p.next_in_index,C=p.avail_in,M=i.bitb,y=i.bitk,x=i.write,I=x<i.read?i.read-x-1:i.end-x,u===0){o=B1;break}o=v8;case v8:if(i.write=x,g=i.inflate_flush(p,g),x=i.write,I=x<i.read?i.read-x-1:i.end-x,i.read!=i.write)return i.bitb=M,i.bitk=y,p.avail_in=C,p.total_in+=b-p.next_in_index,p.next_in_index=b,i.write=x,i.inflate_flush(p,g);o=oee;case oee:return g=Za,i.bitb=M,i.bitk=y,p.avail_in=C,p.total_in+=b-p.next_in_index,p.next_in_index=b,i.write=x,i.inflate_flush(p,g);case Au:return g=_i,i.bitb=M,i.bitk=y,p.avail_in=C,p.total_in+=b-p.next_in_index,p.next_in_index=b,i.write=x,i.inflate_flush(p,g);default:return g=on,i.bitb=M,i.bitk=y,p.avail_in=C,p.total_in+=b-p.next_in_index,p.next_in_index=b,i.write=x,i.inflate_flush(p,g)}}},i.free=function(p){i.reset(p,null),i.win=null,h=null},i.set_dictionary=function(p,g,m){i.win.set(p.subarray(g,g+m),0),i.read=i.write=m},i.sync_point=function(){return o==iI?1:0}}const svi=32,avi=8,lvi=0,ree=1,nee=2,see=3,aee=4,lee=5,oI=6,ev=7,cee=12,Mc=13,cvi=[0,0,255,255];function dvi(){const t=this;t.mode=0,t.method=0,t.was=[0],t.need=0,t.marker=0,t.wbits=0;function e(i){return!i||!i.istate?on:(i.total_in=i.total_out=0,i.msg=null,i.istate.mode=ev,i.istate.blocks.reset(i,null),hi)}t.inflateEnd=function(i){return t.blocks&&t.blocks.free(i),t.blocks=null,hi},t.inflateInit=function(i,o){return i.msg=null,t.blocks=null,o<8||o>15?(t.inflateEnd(i),on):(t.wbits=o,i.istate.blocks=new nvi(i,1<<o),e(i),hi)},t.inflate=function(i,o){let r,s;if(!i||!i.istate||!i.next_in)return on;const n=i.istate;for(o=o==Zmi?Ja:hi,r=Ja;;)switch(n.mode){case lvi:if(i.avail_in===0)return r;if(r=o,i.avail_in--,i.total_in++,((n.method=i.read_byte(i.next_in_index++))&15)!=avi){n.mode=Mc,i.msg="unknown compression method",n.marker=5;break}if((n.method>>4)+8>n.wbits){n.mode=Mc,i.msg="invalid win size",n.marker=5;break}n.mode=ree;case ree:if(i.avail_in===0)return r;if(r=o,i.avail_in--,i.total_in++,s=i.read_byte(i.next_in_index++)&255,((n.method<<8)+s)%31!==0){n.mode=Mc,i.msg="incorrect header check",n.marker=5;break}if(!(s&svi)){n.mode=ev;break}n.mode=nee;case nee:if(i.avail_in===0)return r;r=o,i.avail_in--,i.total_in++,n.need=(i.read_byte(i.next_in_index++)&255)<<24&4278190080,n.mode=see;case see:if(i.avail_in===0)return r;r=o,i.avail_in--,i.total_in++,n.need+=(i.read_byte(i.next_in_index++)&255)<<16&16711680,n.mode=aee;case aee:if(i.avail_in===0)return r;r=o,i.avail_in--,i.total_in++,n.need+=(i.read_byte(i.next_in_index++)&255)<<8&65280,n.mode=lee;case lee:return i.avail_in===0?r:(r=o,i.avail_in--,i.total_in++,n.need+=i.read_byte(i.next_in_index++)&255,n.mode=oI,Kmi);case oI:return n.mode=Mc,i.msg="need dictionary",n.marker=0,on;case ev:if(r=n.blocks.proc(i,r),r==_i){n.mode=Mc,n.marker=0;break}if(r==hi&&(r=o),r!=Za)return r;r=o,n.blocks.reset(i,n.was),n.mode=cee;case cee:return i.avail_in=0,Za;case Mc:return _i;default:return on}},t.inflateSetDictionary=function(i,o,r){let s=0,n=r;if(!i||!i.istate||i.istate.mode!=oI)return on;const a=i.istate;return n>=1<<a.wbits&&(n=(1<<a.wbits)-1,s=r-n),a.blocks.set_dictionary(o,s,n),a.mode=ev,hi},t.inflateSync=function(i){let o,r,s,n,a;if(!i||!i.istate)return on;const l=i.istate;if(l.mode!=Mc&&(l.mode=Mc,l.marker=0),(o=i.avail_in)===0)return Ja;for(r=i.next_in_index,s=l.marker;o!==0&&s<4;)i.read_byte(r)==cvi[s]?s++:i.read_byte(r)!==0?s=0:s=4-s,r++,o--;return i.total_in+=r-i.next_in_index,i.next_in_index=r,i.avail_in=o,l.marker=s,s!=4?_i:(n=i.total_in,a=i.total_out,e(i),i.total_in=n,i.total_out=a,l.mode=ev,hi)},t.inflateSyncPoint=function(i){return!i||!i.istate||!i.istate.blocks?on:i.istate.blocks.sync_point()}}function dee(){}dee.prototype={inflateInit(t){const e=this;return e.istate=new dvi,t||(t=Gmi),e.istate.inflateInit(e,t)},inflate(t){const e=this;return e.istate?e.istate.inflate(e,t):on},inflateEnd(){const t=this;if(!t.istate)return on;const e=t.istate.inflateEnd(t);return t.istate=null,e},inflateSync(){const t=this;return t.istate?t.istate.inflateSync(t):on},inflateSetDictionary(t,e){const i=this;return i.istate?i.istate.inflateSetDictionary(i,t,e):on},read_byte(t){return this.next_in[t]},read_buf(t,e){return this.next_in.subarray(t,t+e)}};function uvi(t){const e=this,i=new dee,o=t&&t.chunkSize?Math.floor(t.chunkSize*2):128*1024,r=Ymi,s=new Uint8Array(o);let n=!1;i.inflateInit(),i.next_out=s,e.append=function(a,l){const c=[];let d,u,h=0,A=0,f=0;if(a.length!==0){i.next_in_index=0,i.next_in=a,i.avail_in=a.length;do{if(i.next_out_index=0,i.avail_out=o,i.avail_in===0&&!n&&(i.next_in_index=0,n=!0),d=i.inflate(r),n&&d===Ja){if(i.avail_in!==0)throw new Error("inflating: bad input")}else if(d!==hi&&d!==Za)throw new Error("inflating: "+i.msg);if((n||d===Za)&&i.avail_in===a.length)throw new Error("inflating: bad input");i.next_out_index&&(i.next_out_index===o?c.push(new Uint8Array(s)):c.push(s.subarray(0,i.next_out_index))),f+=i.next_out_index,l&&i.next_in_index>0&&i.next_in_index!=h&&(l(i.next_in_index),h=i.next_in_index)}while(i.avail_in>0||i.avail_out===0);return c.length>1?(u=new Uint8Array(f),c.forEach(function(p){u.set(p,A),A+=p.length})):u=c[0]?new Uint8Array(c[0]):new Uint8Array,u}},e.flush=function(){i.inflateEnd()}}const fu=4294967295,Cc=65535,hvi=8,pvi=0,Avi=99,fvi=67324752,gvi=134695760,uee=33639248,mvi=101010256,hee=101075792,vvi=117853008,S1=22,rI=20,nI=56,yvi=1,wvi=39169,bvi=10,Mvi=1,Cvi=21589,xvi=28789,kvi=25461,Ivi=6534,pee=1,Evi=6,Aee=8,fee=2048,gee=16,Dvi="/",Tr=void 0,xc="undefined",tv="function";class mee{constructor(e){return class extends TransformStream{constructor(i,o){const r=new e(o);super({transform(s,n){n.enqueue(r.append(s))},flush(s){const n=r.flush();n&&s.enqueue(n)}})}}}}const Pvi=64;let vee=2;try{typeof navigator!=xc&&navigator.hardwareConcurrency&&(vee=navigator.hardwareConcurrency)}catch{}const Bvi={chunkSize:512*1024,maxWorkers:vee,terminateWorkerTimeout:5e3,useWebWorkers:!0,useCompressionStream:!0,workerScripts:Tr,CompressionStreamNative:typeof CompressionStream!=xc&&CompressionStream,DecompressionStreamNative:typeof DecompressionStream!=xc&&DecompressionStream},kc=Object.assign({},Bvi);function Svi(){return kc}function Lvi(t){return Math.max(t.chunkSize,Pvi)}function sI(t){const{baseURL:e,chunkSize:i,maxWorkers:o,terminateWorkerTimeout:r,useCompressionStream:s,useWebWorkers:n,Deflate:a,Inflate:l,CompressionStream:c,DecompressionStream:d,workerScripts:u}=t;if(Ic("baseURL",e),Ic("chunkSize",i),Ic("maxWorkers",o),Ic("terminateWorkerTimeout",r),Ic("useCompressionStream",s),Ic("useWebWorkers",n),a&&(kc.CompressionStream=new mee(a)),l&&(kc.DecompressionStream=new mee(l)),Ic("CompressionStream",c),Ic("DecompressionStream",d),u!==Tr){const{deflate:h,inflate:A}=u;if((h||A)&&(kc.workerScripts||(kc.workerScripts={})),h){if(!Array.isArray(h))throw new Error("workerScripts.deflate must be an array");kc.workerScripts.deflate=h}if(A){if(!Array.isArray(A))throw new Error("workerScripts.inflate must be an array");kc.workerScripts.inflate=A}}}function Ic(t,e){e!==Tr&&(kc[t]=e)}const aI={application:{"andrew-inset":"ez",annodex:"anx","atom+xml":"atom","atomcat+xml":"atomcat","atomserv+xml":"atomsrv",bbolin:"lin","cu-seeme":"cu","davmount+xml":"davmount",dsptype:"tsp",ecmascript:["es","ecma"],futuresplash:"spl",hta:"hta","java-archive":"jar","java-serialized-object":"ser","java-vm":"class",m3g:"m3g","mac-binhex40":"hqx",mathematica:["nb","ma","mb"],msaccess:"mdb",msword:["doc","dot","wiz"],mxf:"mxf",oda:"oda",ogg:"ogx",pdf:"pdf","pgp-keys":"key","pgp-signature":["asc","sig"],"pics-rules":"prf",postscript:["ps","ai","eps","epsi","epsf","eps2","eps3"],rar:"rar","rdf+xml":"rdf","rss+xml":"rss",rtf:"rtf","xhtml+xml":["xhtml","xht"],xml:["xml","xsl","xsd","xpdl"],"xspf+xml":"xspf",zip:"zip","vnd.android.package-archive":"apk","vnd.cinderella":"cdy","vnd.google-earth.kml+xml":"kml","vnd.google-earth.kmz":"kmz","vnd.mozilla.xul+xml":"xul","vnd.ms-excel":["xls","xlb","xlt","xlm","xla","xlc","xlw"],"vnd.ms-pki.seccat":"cat","vnd.ms-pki.stl":"stl","vnd.ms-powerpoint":["ppt","pps","pot","ppa","pwz"],"vnd.oasis.opendocument.chart":"odc","vnd.oasis.opendocument.database":"odb","vnd.oasis.opendocument.formula":"odf","vnd.oasis.opendocument.graphics":"odg","vnd.oasis.opendocument.graphics-template":"otg","vnd.oasis.opendocument.image":"odi","vnd.oasis.opendocument.presentation":"odp","vnd.oasis.opendocument.presentation-template":"otp","vnd.oasis.opendocument.spreadsheet":"ods","vnd.oasis.opendocument.spreadsheet-template":"ots","vnd.oasis.opendocument.text":"odt","vnd.oasis.opendocument.text-master":["odm","otm"],"vnd.oasis.opendocument.text-template":"ott","vnd.oasis.opendocument.text-web":"oth","vnd.openxmlformats-officedocument.spreadsheetml.sheet":"xlsx","vnd.openxmlformats-officedocument.spreadsheetml.template":"xltx","vnd.openxmlformats-officedocument.presentationml.presentation":"pptx","vnd.openxmlformats-officedocument.presentationml.slideshow":"ppsx","vnd.openxmlformats-officedocument.presentationml.template":"potx","vnd.openxmlformats-officedocument.wordprocessingml.document":"docx","vnd.openxmlformats-officedocument.wordprocessingml.template":"dotx","vnd.smaf":"mmf","vnd.stardivision.calc":"sdc","vnd.stardivision.chart":"sds","vnd.stardivision.draw":"sda","vnd.stardivision.impress":"sdd","vnd.stardivision.math":["sdf","smf"],"vnd.stardivision.writer":["sdw","vor"],"vnd.stardivision.writer-global":"sgl","vnd.sun.xml.calc":"sxc","vnd.sun.xml.calc.template":"stc","vnd.sun.xml.draw":"sxd","vnd.sun.xml.draw.template":"std","vnd.sun.xml.impress":"sxi","vnd.sun.xml.impress.template":"sti","vnd.sun.xml.math":"sxm","vnd.sun.xml.writer":"sxw","vnd.sun.xml.writer.global":"sxg","vnd.sun.xml.writer.template":"stw","vnd.symbian.install":["sis","sisx"],"vnd.visio":["vsd","vst","vss","vsw","vsdx","vssx","vstx","vssm","vstm"],"vnd.wap.wbxml":"wbxml","vnd.wap.wmlc":"wmlc","vnd.wap.wmlscriptc":"wmlsc","vnd.wordperfect":"wpd","vnd.wordperfect5.1":"wp5","x-123":"wk","x-7z-compressed":"7z","x-abiword":"abw","x-apple-diskimage":"dmg","x-bcpio":"bcpio","x-bittorrent":"torrent","x-cbr":["cbr","cba","cbt","cb7"],"x-cbz":"cbz","x-cdf":["cdf","cda"],"x-cdlink":"vcd","x-chess-pgn":"pgn","x-cpio":"cpio","x-csh":"csh","x-director":["dir","dxr","cst","cct","cxt","w3d","fgd","swa"],"x-dms":"dms","x-doom":"wad","x-dvi":"dvi","x-httpd-eruby":"rhtml","x-font":"pcf.Z","x-freemind":"mm","x-gnumeric":"gnumeric","x-go-sgf":"sgf","x-graphing-calculator":"gcf","x-gtar":["gtar","taz"],"x-hdf":"hdf","x-httpd-php":["phtml","pht","php"],"x-httpd-php-source":"phps","x-httpd-php3":"php3","x-httpd-php3-preprocessed":"php3p","x-httpd-php4":"php4","x-httpd-php5":"php5","x-ica":"ica","x-info":"info","x-internet-signup":["ins","isp"],"x-iphone":"iii","x-iso9660-image":"iso","x-java-jnlp-file":"jnlp","x-jmol":"jmz","x-killustrator":"kil","x-latex":"latex","x-lyx":"lyx","x-lzx":"lzx","x-maker":["frm","fb","fbdoc"],"x-ms-wmd":"wmd","x-msdos-program":["com","exe","bat","dll"],"x-netcdf":["nc"],"x-ns-proxy-autoconfig":["pac","dat"],"x-nwc":"nwc","x-object":"o","x-oz-application":"oza","x-pkcs7-certreqresp":"p7r","x-python-code":["pyc","pyo"],"x-qgis":["qgs","shp","shx"],"x-quicktimeplayer":"qtl","x-redhat-package-manager":["rpm","rpa"],"x-ruby":"rb","x-sh":"sh","x-shar":"shar","x-shockwave-flash":["swf","swfl"],"x-silverlight":"scr","x-stuffit":"sit","x-sv4cpio":"sv4cpio","x-sv4crc":"sv4crc","x-tar":"tar","x-tex-gf":"gf","x-tex-pk":"pk","x-texinfo":["texinfo","texi"],"x-trash":["~","%","bak","old","sik"],"x-ustar":"ustar","x-wais-source":"src","x-wingz":"wz","x-x509-ca-cert":["crt","der","cer"],"x-xcf":"xcf","x-xfig":"fig","x-xpinstall":"xpi",applixware:"aw","atomsvc+xml":"atomsvc","ccxml+xml":"ccxml","cdmi-capability":"cdmia","cdmi-container":"cdmic","cdmi-domain":"cdmid","cdmi-object":"cdmio","cdmi-queue":"cdmiq","docbook+xml":"dbk","dssc+der":"dssc","dssc+xml":"xdssc","emma+xml":"emma","epub+zip":"epub",exi:"exi","font-tdpfr":"pfr","gml+xml":"gml","gpx+xml":"gpx",gxf:"gxf",hyperstudio:"stk","inkml+xml":["ink","inkml"],ipfix:"ipfix","jsonml+json":"jsonml","lost+xml":"lostxml","mads+xml":"mads",marc:"mrc","marcxml+xml":"mrcx","mathml+xml":["mathml","mml"],mbox:"mbox","mediaservercontrol+xml":"mscml","metalink+xml":"metalink","metalink4+xml":"meta4","mets+xml":"mets","mods+xml":"mods",mp21:["m21","mp21"],mp4:"mp4s","oebps-package+xml":"opf","omdoc+xml":"omdoc",onenote:["onetoc","onetoc2","onetmp","onepkg"],oxps:"oxps","patch-ops-error+xml":"xer","pgp-encrypted":"pgp",pkcs10:"p10","pkcs7-mime":["p7m","p7c"],"pkcs7-signature":"p7s",pkcs8:"p8","pkix-attr-cert":"ac","pkix-crl":"crl","pkix-pkipath":"pkipath",pkixcmp:"pki","pls+xml":"pls","prs.cww":"cww","pskc+xml":"pskcxml","reginfo+xml":"rif","relax-ng-compact-syntax":"rnc","resource-lists+xml":"rl","resource-lists-diff+xml":"rld","rls-services+xml":"rs","rpki-ghostbusters":"gbr","rpki-manifest":"mft","rpki-roa":"roa","rsd+xml":"rsd","sbml+xml":"sbml","scvp-cv-request":"scq","scvp-cv-response":"scs","scvp-vp-request":"spq","scvp-vp-response":"spp",sdp:"sdp","set-payment-initiation":"setpay","set-registration-initiation":"setreg","shf+xml":"shf","sparql-query":"rq","sparql-results+xml":"srx",srgs:"gram","srgs+xml":"grxml","sru+xml":"sru","ssdl+xml":"ssdl","ssml+xml":"ssml","tei+xml":["tei","teicorpus"],"thraud+xml":"tfi","timestamped-data":"tsd","vnd.3gpp.pic-bw-large":"plb","vnd.3gpp.pic-bw-small":"psb","vnd.3gpp.pic-bw-var":"pvb","vnd.3gpp2.tcap":"tcap","vnd.3m.post-it-notes":"pwn","vnd.accpac.simply.aso":"aso","vnd.accpac.simply.imp":"imp","vnd.acucobol":"acu","vnd.acucorp":["atc","acutc"],"vnd.adobe.air-application-installer-package+zip":"air","vnd.adobe.formscentral.fcdt":"fcdt","vnd.adobe.fxp":["fxp","fxpl"],"vnd.adobe.xdp+xml":"xdp","vnd.adobe.xfdf":"xfdf","vnd.ahead.space":"ahead","vnd.airzip.filesecure.azf":"azf","vnd.airzip.filesecure.azs":"azs","vnd.amazon.ebook":"azw","vnd.americandynamics.acc":"acc","vnd.amiga.ami":"ami","vnd.anser-web-certificate-issue-initiation":"cii","vnd.anser-web-funds-transfer-initiation":"fti","vnd.antix.game-component":"atx","vnd.apple.installer+xml":"mpkg","vnd.apple.mpegurl":"m3u8","vnd.aristanetworks.swi":"swi","vnd.astraea-software.iota":"iota","vnd.audiograph":"aep","vnd.blueice.multipass":"mpm","vnd.bmi":"bmi","vnd.businessobjects":"rep","vnd.chemdraw+xml":"cdxml","vnd.chipnuts.karaoke-mmd":"mmd","vnd.claymore":"cla","vnd.cloanto.rp9":"rp9","vnd.clonk.c4group":["c4g","c4d","c4f","c4p","c4u"],"vnd.cluetrust.cartomobile-config":"c11amc","vnd.cluetrust.cartomobile-config-pkg":"c11amz","vnd.commonspace":"csp","vnd.contact.cmsg":"cdbcmsg","vnd.cosmocaller":"cmc","vnd.crick.clicker":"clkx","vnd.crick.clicker.keyboard":"clkk","vnd.crick.clicker.palette":"clkp","vnd.crick.clicker.template":"clkt","vnd.crick.clicker.wordbank":"clkw","vnd.criticaltools.wbs+xml":"wbs","vnd.ctc-posml":"pml","vnd.cups-ppd":"ppd","vnd.curl.car":"car","vnd.curl.pcurl":"pcurl","vnd.dart":"dart","vnd.data-vision.rdz":"rdz","vnd.dece.data":["uvf","uvvf","uvd","uvvd"],"vnd.dece.ttml+xml":["uvt","uvvt"],"vnd.dece.unspecified":["uvx","uvvx"],"vnd.dece.zip":["uvz","uvvz"],"vnd.denovo.fcselayout-link":"fe_launch","vnd.dna":"dna","vnd.dolby.mlp":"mlp","vnd.dpgraph":"dpg","vnd.dreamfactory":"dfac","vnd.ds-keypoint":"kpxx","vnd.dvb.ait":"ait","vnd.dvb.service":"svc","vnd.dynageo":"geo","vnd.ecowin.chart":"mag","vnd.enliven":"nml","vnd.epson.esf":"esf","vnd.epson.msf":"msf","vnd.epson.quickanime":"qam","vnd.epson.salt":"slt","vnd.epson.ssf":"ssf","vnd.eszigno3+xml":["es3","et3"],"vnd.ezpix-album":"ez2","vnd.ezpix-package":"ez3","vnd.fdf":"fdf","vnd.fdsn.mseed":"mseed","vnd.fdsn.seed":["seed","dataless"],"vnd.flographit":"gph","vnd.fluxtime.clip":"ftc","vnd.framemaker":["fm","frame","maker","book"],"vnd.frogans.fnc":"fnc","vnd.frogans.ltf":"ltf","vnd.fsc.weblaunch":"fsc","vnd.fujitsu.oasys":"oas","vnd.fujitsu.oasys2":"oa2","vnd.fujitsu.oasys3":"oa3","vnd.fujitsu.oasysgp":"fg5","vnd.fujitsu.oasysprs":"bh2","vnd.fujixerox.ddd":"ddd","vnd.fujixerox.docuworks":"xdw","vnd.fujixerox.docuworks.binder":"xbd","vnd.fuzzysheet":"fzs","vnd.genomatix.tuxedo":"txd","vnd.geogebra.file":"ggb","vnd.geogebra.tool":"ggt","vnd.geometry-explorer":["gex","gre"],"vnd.geonext":"gxt","vnd.geoplan":"g2w","vnd.geospace":"g3w","vnd.gmx":"gmx","vnd.grafeq":["gqf","gqs"],"vnd.groove-account":"gac","vnd.groove-help":"ghf","vnd.groove-identity-message":"gim","vnd.groove-injector":"grv","vnd.groove-tool-message":"gtm","vnd.groove-tool-template":"tpl","vnd.groove-vcard":"vcg","vnd.hal+xml":"hal","vnd.handheld-entertainment+xml":"zmm","vnd.hbci":"hbci","vnd.hhe.lesson-player":"les","vnd.hp-hpgl":"hpgl","vnd.hp-hpid":"hpid","vnd.hp-hps":"hps","vnd.hp-jlyt":"jlt","vnd.hp-pcl":"pcl","vnd.hp-pclxl":"pclxl","vnd.hydrostatix.sof-data":"sfd-hdstx","vnd.ibm.minipay":"mpy","vnd.ibm.modcap":["afp","listafp","list3820"],"vnd.ibm.rights-management":"irm","vnd.ibm.secure-container":"sc","vnd.iccprofile":["icc","icm"],"vnd.igloader":"igl","vnd.immervision-ivp":"ivp","vnd.immervision-ivu":"ivu","vnd.insors.igm":"igm","vnd.intercon.formnet":["xpw","xpx"],"vnd.intergeo":"i2g","vnd.intu.qbo":"qbo","vnd.intu.qfx":"qfx","vnd.ipunplugged.rcprofile":"rcprofile","vnd.irepository.package+xml":"irp","vnd.is-xpr":"xpr","vnd.isac.fcs":"fcs","vnd.jam":"jam","vnd.jcp.javame.midlet-rms":"rms","vnd.jisp":"jisp","vnd.joost.joda-archive":"joda","vnd.kahootz":["ktz","ktr"],"vnd.kde.karbon":"karbon","vnd.kde.kchart":"chrt","vnd.kde.kformula":"kfo","vnd.kde.kivio":"flw","vnd.kde.kontour":"kon","vnd.kde.kpresenter":["kpr","kpt"],"vnd.kde.kspread":"ksp","vnd.kde.kword":["kwd","kwt"],"vnd.kenameaapp":"htke","vnd.kidspiration":"kia","vnd.kinar":["kne","knp"],"vnd.koan":["skp","skd","skt","skm"],"vnd.kodak-descriptor":"sse","vnd.las.las+xml":"lasxml","vnd.llamagraphics.life-balance.desktop":"lbd","vnd.llamagraphics.life-balance.exchange+xml":"lbe","vnd.lotus-1-2-3":"123","vnd.lotus-approach":"apr","vnd.lotus-freelance":"pre","vnd.lotus-notes":"nsf","vnd.lotus-organizer":"org","vnd.lotus-screencam":"scm","vnd.lotus-wordpro":"lwp","vnd.macports.portpkg":"portpkg","vnd.mcd":"mcd","vnd.medcalcdata":"mc1","vnd.mediastation.cdkey":"cdkey","vnd.mfer":"mwf","vnd.mfmp":"mfm","vnd.micrografx.flo":"flo","vnd.micrografx.igx":"igx","vnd.mif":"mif","vnd.mobius.daf":"daf","vnd.mobius.dis":"dis","vnd.mobius.mbk":"mbk","vnd.mobius.mqy":"mqy","vnd.mobius.msl":"msl","vnd.mobius.plc":"plc","vnd.mobius.txf":"txf","vnd.mophun.application":"mpn","vnd.mophun.certificate":"mpc","vnd.ms-artgalry":"cil","vnd.ms-cab-compressed":"cab","vnd.ms-excel.addin.macroenabled.12":"xlam","vnd.ms-excel.sheet.binary.macroenabled.12":"xlsb","vnd.ms-excel.sheet.macroenabled.12":"xlsm","vnd.ms-excel.template.macroenabled.12":"xltm","vnd.ms-fontobject":"eot","vnd.ms-htmlhelp":"chm","vnd.ms-ims":"ims","vnd.ms-lrm":"lrm","vnd.ms-officetheme":"thmx","vnd.ms-powerpoint.addin.macroenabled.12":"ppam","vnd.ms-powerpoint.presentation.macroenabled.12":"pptm","vnd.ms-powerpoint.slide.macroenabled.12":"sldm","vnd.ms-powerpoint.slideshow.macroenabled.12":"ppsm","vnd.ms-powerpoint.template.macroenabled.12":"potm","vnd.ms-project":["mpp","mpt"],"vnd.ms-word.document.macroenabled.12":"docm","vnd.ms-word.template.macroenabled.12":"dotm","vnd.ms-works":["wps","wks","wcm","wdb"],"vnd.ms-wpl":"wpl","vnd.ms-xpsdocument":"xps","vnd.mseq":"mseq","vnd.musician":"mus","vnd.muvee.style":"msty","vnd.mynfc":"taglet","vnd.neurolanguage.nlu":"nlu","vnd.nitf":["ntf","nitf"],"vnd.noblenet-directory":"nnd","vnd.noblenet-sealer":"nns","vnd.noblenet-web":"nnw","vnd.nokia.n-gage.data":"ngdat","vnd.nokia.n-gage.symbian.install":"n-gage","vnd.nokia.radio-preset":"rpst","vnd.nokia.radio-presets":"rpss","vnd.novadigm.edm":"edm","vnd.novadigm.edx":"edx","vnd.novadigm.ext":"ext","vnd.oasis.opendocument.chart-template":"otc","vnd.oasis.opendocument.formula-template":"odft","vnd.oasis.opendocument.image-template":"oti","vnd.olpc-sugar":"xo","vnd.oma.dd2+xml":"dd2","vnd.openofficeorg.extension":"oxt","vnd.openxmlformats-officedocument.presentationml.slide":"sldx","vnd.osgeo.mapguide.package":"mgp","vnd.osgi.dp":"dp","vnd.osgi.subsystem":"esa","vnd.palm":["pdb","pqa","oprc"],"vnd.pawaafile":"paw","vnd.pg.format":"str","vnd.pg.osasli":"ei6","vnd.picsel":"efif","vnd.pmi.widget":"wg","vnd.pocketlearn":"plf","vnd.powerbuilder6":"pbd","vnd.previewsystems.box":"box","vnd.proteus.magazine":"mgz","vnd.publishare-delta-tree":"qps","vnd.pvi.ptid1":"ptid","vnd.quark.quarkxpress":["qxd","qxt","qwd","qwt","qxl","qxb"],"vnd.realvnc.bed":"bed","vnd.recordare.musicxml":"mxl","vnd.recordare.musicxml+xml":"musicxml","vnd.rig.cryptonote":"cryptonote","vnd.rn-realmedia":"rm","vnd.rn-realmedia-vbr":"rmvb","vnd.route66.link66+xml":"link66","vnd.sailingtracker.track":"st","vnd.seemail":"see","vnd.sema":"sema","vnd.semd":"semd","vnd.semf":"semf","vnd.shana.informed.formdata":"ifm","vnd.shana.informed.formtemplate":"itp","vnd.shana.informed.interchange":"iif","vnd.shana.informed.package":"ipk","vnd.simtech-mindmapper":["twd","twds"],"vnd.smart.teacher":"teacher","vnd.solent.sdkm+xml":["sdkm","sdkd"],"vnd.spotfire.dxp":"dxp","vnd.spotfire.sfs":"sfs","vnd.stepmania.package":"smzip","vnd.stepmania.stepchart":"sm","vnd.sus-calendar":["sus","susp"],"vnd.svd":"svd","vnd.syncml+xml":"xsm","vnd.syncml.dm+wbxml":"bdm","vnd.syncml.dm+xml":"xdm","vnd.tao.intent-module-archive":"tao","vnd.tcpdump.pcap":["pcap","cap","dmp"],"vnd.tmobile-livetv":"tmo","vnd.trid.tpt":"tpt","vnd.triscape.mxs":"mxs","vnd.trueapp":"tra","vnd.ufdl":["ufd","ufdl"],"vnd.uiq.theme":"utz","vnd.umajin":"umj","vnd.unity":"unityweb","vnd.uoml+xml":"uoml","vnd.vcx":"vcx","vnd.visionary":"vis","vnd.vsf":"vsf","vnd.webturbo":"wtb","vnd.wolfram.player":"nbp","vnd.wqd":"wqd","vnd.wt.stf":"stf","vnd.xara":"xar","vnd.xfdl":"xfdl","vnd.yamaha.hv-dic":"hvd","vnd.yamaha.hv-script":"hvs","vnd.yamaha.hv-voice":"hvp","vnd.yamaha.openscoreformat":"osf","vnd.yamaha.openscoreformat.osfpvg+xml":"osfpvg","vnd.yamaha.smaf-audio":"saf","vnd.yamaha.smaf-phrase":"spf","vnd.yellowriver-custom-menu":"cmp","vnd.zul":["zir","zirz"],"vnd.zzazz.deck+xml":"zaz","voicexml+xml":"vxml",widget:"wgt",winhlp:"hlp","wsdl+xml":"wsdl","wspolicy+xml":"wspolicy","x-ace-compressed":"ace","x-authorware-bin":["aab","x32","u32","vox"],"x-authorware-map":"aam","x-authorware-seg":"aas","x-blorb":["blb","blorb"],"x-bzip":"bz","x-bzip2":["bz2","boz"],"x-cfs-compressed":"cfs","x-chat":"chat","x-conference":"nsc","x-dgc-compressed":"dgc","x-dtbncx+xml":"ncx","x-dtbook+xml":"dtb","x-dtbresource+xml":"res","x-eva":"eva","x-font-bdf":"bdf","x-font-ghostscript":"gsf","x-font-linux-psf":"psf","x-font-pcf":"pcf","x-font-snf":"snf","x-font-ttf":["ttf","ttc"],"x-font-type1":["pfa","pfb","pfm","afm"],"x-freearc":"arc","x-gca-compressed":"gca","x-glulx":"ulx","x-gramps-xml":"gramps","x-install-instructions":"install","x-lzh-compressed":["lzh","lha"],"x-mie":"mie","x-mobipocket-ebook":["prc","mobi"],"x-ms-application":"application","x-ms-shortcut":"lnk","x-ms-xbap":"xbap","x-msbinder":"obd","x-mscardfile":"crd","x-msclip":"clp","application/x-ms-installer":"msi","x-msmediaview":["mvb","m13","m14"],"x-msmetafile":["wmf","wmz","emf","emz"],"x-msmoney":"mny","x-mspublisher":"pub","x-msschedule":"scd","x-msterminal":"trm","x-mswrite":"wri","x-nzb":"nzb","x-pkcs12":["p12","pfx"],"x-pkcs7-certificates":["p7b","spc"],"x-research-info-systems":"ris","x-silverlight-app":"xap","x-sql":"sql","x-stuffitx":"sitx","x-subrip":"srt","x-t3vm-image":"t3","x-tex-tfm":"tfm","x-tgif":"obj","x-xliff+xml":"xlf","x-xz":"xz","x-zmachine":["z1","z2","z3","z4","z5","z6","z7","z8"],"xaml+xml":"xaml","xcap-diff+xml":"xdf","xenc+xml":"xenc","xml-dtd":"dtd","xop+xml":"xop","xproc+xml":"xpl","xslt+xml":"xslt","xv+xml":["mxml","xhvml","xvml","xvm"],yang:"yang","yin+xml":"yin",envoy:"evy",fractals:"fif","internet-property-stream":"acx",olescript:"axs","vnd.ms-outlook":"msg","vnd.ms-pkicertstore":"sst","x-compress":"z","x-perfmon":["pma","pmc","pmr","pmw"],"ynd.ms-pkipko":"pko",gzip:["gz","tgz"],"smil+xml":["smi","smil"],"vnd.debian.binary-package":["deb","udeb"],"vnd.hzn-3d-crossword":"x3d","vnd.sqlite3":["db","sqlite","sqlite3","db-wal","sqlite-wal","db-shm","sqlite-shm"],"vnd.wap.sic":"sic","vnd.wap.slc":"slc","x-krita":["kra","krz"],"x-perl":["pm","pl"],yaml:["yaml","yml"]},audio:{amr:"amr","amr-wb":"awb",annodex:"axa",basic:["au","snd"],flac:"flac",midi:["mid","midi","kar","rmi"],mpeg:["mpga","mpega","mp3","m4a","mp2a","m2a","m3a"],mpegurl:"m3u",ogg:["oga","ogg","spx"],"prs.sid":"sid","x-aiff":"aifc","x-gsm":"gsm","x-ms-wma":"wma","x-ms-wax":"wax","x-pn-realaudio":"ram","x-realaudio":"ra","x-sd2":"sd2",adpcm:"adp",mp4:"mp4a",s3m:"s3m",silk:"sil","vnd.dece.audio":["uva","uvva"],"vnd.digital-winds":"eol","vnd.dra":"dra","vnd.dts":"dts","vnd.dts.hd":"dtshd","vnd.lucent.voice":"lvp","vnd.ms-playready.media.pya":"pya","vnd.nuera.ecelp4800":"ecelp4800","vnd.nuera.ecelp7470":"ecelp7470","vnd.nuera.ecelp9600":"ecelp9600","vnd.rip":"rip",webm:"weba","x-caf":"caf","x-matroska":"mka","x-pn-realaudio-plugin":"rmp",xm:"xm",aac:"aac",aiff:["aiff","aif","aff"],opus:"opus",wav:"wav"},chemical:{"x-alchemy":"alc","x-cache":["cac","cache"],"x-cache-csf":"csf","x-cactvs-binary":["cbin","cascii","ctab"],"x-cdx":"cdx","x-chem3d":"c3d","x-cif":"cif","x-cmdf":"cmdf","x-cml":"cml","x-compass":"cpa","x-crossfire":"bsd","x-csml":["csml","csm"],"x-ctx":"ctx","x-cxf":["cxf","cef"],"x-embl-dl-nucleotide":["emb","embl"],"x-gamess-input":["inp","gam","gamin"],"x-gaussian-checkpoint":["fch","fchk"],"x-gaussian-cube":"cub","x-gaussian-input":["gau","gjc","gjf"],"x-gaussian-log":"gal","x-gcg8-sequence":"gcg","x-genbank":"gen","x-hin":"hin","x-isostar":["istr","ist"],"x-jcamp-dx":["jdx","dx"],"x-kinemage":"kin","x-macmolecule":"mcm","x-macromodel-input":"mmod","x-mdl-molfile":"mol","x-mdl-rdfile":"rd","x-mdl-rxnfile":"rxn","x-mdl-sdfile":"sd","x-mdl-tgf":"tgf","x-mmcif":"mcif","x-mol2":"mol2","x-molconn-Z":"b","x-mopac-graph":"gpt","x-mopac-input":["mop","mopcrt","zmt"],"x-mopac-out":"moo","x-ncbi-asn1":"asn","x-ncbi-asn1-ascii":["prt","ent"],"x-ncbi-asn1-binary":"val","x-rosdal":"ros","x-swissprot":"sw","x-vamas-iso14976":"vms","x-vmd":"vmd","x-xtel":"xtel","x-xyz":"xyz"},font:{otf:"otf",woff:"woff",woff2:"woff2"},image:{gif:"gif",ief:"ief",jpeg:["jpeg","jpg","jpe","jfif","jfif-tbnl","jif"],pcx:"pcx",png:"png","svg+xml":["svg","svgz"],tiff:["tiff","tif"],"vnd.djvu":["djvu","djv"],"vnd.wap.wbmp":"wbmp","x-canon-cr2":"cr2","x-canon-crw":"crw","x-cmu-raster":"ras","x-coreldraw":"cdr","x-coreldrawpattern":"pat","x-coreldrawtemplate":"cdt","x-corelphotopaint":"cpt","x-epson-erf":"erf","x-icon":"ico","x-jg":"art","x-jng":"jng","x-nikon-nef":"nef","x-olympus-orf":"orf","x-portable-anymap":"pnm","x-portable-bitmap":"pbm","x-portable-graymap":"pgm","x-portable-pixmap":"ppm","x-rgb":"rgb","x-xbitmap":"xbm","x-xpixmap":"xpm","x-xwindowdump":"xwd",bmp:"bmp",cgm:"cgm",g3fax:"g3",ktx:"ktx","prs.btif":"btif",sgi:"sgi","vnd.dece.graphic":["uvi","uvvi","uvg","uvvg"],"vnd.dwg":"dwg","vnd.dxf":"dxf","vnd.fastbidsheet":"fbs","vnd.fpx":"fpx","vnd.fst":"fst","vnd.fujixerox.edmics-mmr":"mmr","vnd.fujixerox.edmics-rlc":"rlc","vnd.ms-modi":"mdi","vnd.ms-photo":"wdp","vnd.net-fpx":"npx","vnd.xiff":"xif",webp:"webp","x-3ds":"3ds","x-cmx":"cmx","x-freehand":["fh","fhc","fh4","fh5","fh7"],"x-pict":["pic","pct"],"x-tga":"tga","cis-cod":"cod",avif:"avifs",heic:["heif","heic"],pjpeg:["pjpg"],"vnd.adobe.photoshop":"psd","x-adobe-dng":"dng","x-fuji-raf":"raf","x-icns":"icns","x-kodak-dcr":"dcr","x-kodak-k25":"k25","x-kodak-kdc":"kdc","x-minolta-mrw":"mrw","x-panasonic-raw":["raw","rw2","rwl"],"x-pentax-pef":["pef","ptx"],"x-sigma-x3f":"x3f","x-sony-arw":"arw","x-sony-sr2":"sr2","x-sony-srf":"srf"},message:{rfc822:["eml","mime","mht","mhtml","nws"]},model:{iges:["igs","iges"],mesh:["msh","mesh","silo"],vrml:["wrl","vrml"],"x3d+vrml":["x3dv","x3dvz"],"x3d+xml":"x3dz","x3d+binary":["x3db","x3dbz"],"vnd.collada+xml":"dae","vnd.dwf":"dwf","vnd.gdl":"gdl","vnd.gtw":"gtw","vnd.mts":"mts","vnd.usdz+zip":"usdz","vnd.vtu":"vtu"},text:{"cache-manifest":["manifest","appcache"],calendar:["ics","icz","ifb"],css:"css",csv:"csv",h323:"323",html:["html","htm","shtml","stm"],iuls:"uls",plain:["txt","text","brf","conf","def","list","log","in","bas","diff","ksh"],richtext:"rtx",scriptlet:["sct","wsc"],texmacs:"tm","tab-separated-values":"tsv","vnd.sun.j2me.app-descriptor":"jad","vnd.wap.wml":"wml","vnd.wap.wmlscript":"wmls","x-bibtex":"bib","x-boo":"boo","x-c++hdr":["h++","hpp","hxx","hh"],"x-c++src":["c++","cpp","cxx","cc"],"x-component":"htc","x-dsrc":"d","x-diff":"patch","x-haskell":"hs","x-java":"java","x-literate-haskell":"lhs","x-moc":"moc","x-pascal":["p","pas","pp","inc"],"x-pcs-gcd":"gcd","x-python":"py","x-scala":"scala","x-setext":"etx","x-tcl":["tcl","tk"],"x-tex":["tex","ltx","sty","cls"],"x-vcalendar":"vcs","x-vcard":"vcf",n3:"n3","prs.lines.tag":"dsc",sgml:["sgml","sgm"],troff:["t","tr","roff","man","me","ms"],turtle:"ttl","uri-list":["uri","uris","urls"],vcard:"vcard","vnd.curl":"curl","vnd.curl.dcurl":"dcurl","vnd.curl.scurl":"scurl","vnd.curl.mcurl":"mcurl","vnd.dvb.subtitle":"sub","vnd.fly":"fly","vnd.fmi.flexstor":"flx","vnd.graphviz":"gv","vnd.in3d.3dml":"3dml","vnd.in3d.spot":"spot","x-asm":["s","asm"],"x-c":["c","h","dic"],"x-fortran":["f","for","f77","f90"],"x-opml":"opml","x-nfo":"nfo","x-sfv":"sfv","x-uuencode":"uu",webviewhtml:"htt",javascript:"js",json:"json",markdown:["md","markdown","mdown","markdn"],"vnd.wap.si":"si","vnd.wap.sl":"sl"},video:{avif:"avif","3gpp":"3gp",annodex:"axv",dl:"dl",dv:["dif","dv"],fli:"fli",gl:"gl",mpeg:["mpeg","mpg","mpe","m1v","m2v","mp2","mpa","mpv2"],mp4:["mp4","mp4v","mpg4"],quicktime:["qt","mov"],ogg:"ogv","vnd.mpegurl":["mxu","m4u"],"x-flv":"flv","x-la-asf":["lsf","lsx"],"x-mng":"mng","x-ms-asf":["asf","asx","asr"],"x-ms-wm":"wm","x-ms-wmv":"wmv","x-ms-wmx":"wmx","x-ms-wvx":"wvx","x-msvideo":"avi","x-sgi-movie":"movie","x-matroska":["mpv","mkv","mk3d","mks"],"3gpp2":"3g2",h261:"h261",h263:"h263",h264:"h264",jpeg:"jpgv",jpm:["jpm","jpgm"],mj2:["mj2","mjp2"],"vnd.dece.hd":["uvh","uvvh"],"vnd.dece.mobile":["uvm","uvvm"],"vnd.dece.pd":["uvp","uvvp"],"vnd.dece.sd":["uvs","uvvs"],"vnd.dece.video":["uvv","uvvv"],"vnd.dvb.file":"dvb","vnd.fvt":"fvt","vnd.ms-playready.media.pyv":"pyv","vnd.uvvu.mp4":["uvu","uvvu"],"vnd.vivo":"viv",webm:"webm","x-f4v":"f4v","x-m4v":"m4v","x-ms-vob":"vob","x-smv":"smv",mp2t:"ts"},"x-conference":{"x-cooltalk":"ice"},"x-world":{"x-vrml":["vrm","flr","wrz","xaf","xof"]}};(()=>{const t={};for(const e of Object.keys(aI))for(const i of Object.keys(aI[e])){const o=aI[e][i];if(typeof o=="string")t[o]=e+"/"+i;else for(let r=0;r<o.length;r++)t[o[r]]=e+"/"+i}return t})();const yee=[];for(let t=0;t<256;t++){let e=t;for(let i=0;i<8;i++)e&1?e=e>>>1^3988292384:e=e>>>1;yee[t]=e}class y8{constructor(e){this.crc=e||-1}append(e){let i=this.crc|0;for(let o=0,r=e.length|0;o<r;o++)i=i>>>8^yee[(i^e[o])&255];this.crc=i}get(){return~this.crc}}class wee extends TransformStream{constructor(){let e;const i=new y8;super({transform(o,r){i.append(o),r.enqueue(o)},flush(){const o=new Uint8Array(4);new DataView(o.buffer).setUint32(0,i.get()),e.value=o}}),e=this}}function Tvi(t){if(typeof TextEncoder==xc){t=unescape(encodeURIComponent(t));const e=new Uint8Array(t.length);for(let i=0;i<e.length;i++)e[i]=t.charCodeAt(i);return e}else return new TextEncoder().encode(t)}const jr={concat(t,e){if(t.length===0||e.length===0)return t.concat(e);const i=t[t.length-1],o=jr.getPartial(i);return o===32?t.concat(e):jr._shiftRight(e,o,i|0,t.slice(0,t.length-1))},bitLength(t){const e=t.length;if(e===0)return 0;const i=t[e-1];return(e-1)*32+jr.getPartial(i)},clamp(t,e){if(t.length*32<e)return t;t=t.slice(0,Math.ceil(e/32));const i=t.length;return e=e&31,i>0&&e&&(t[i-1]=jr.partial(e,t[i-1]&2147483648>>e-1,1)),t},partial(t,e,i){return t===32?e:(i?e|0:e<<32-t)+t*1099511627776},getPartial(t){return Math.round(t/1099511627776)||32},_shiftRight(t,e,i,o){for(o===void 0&&(o=[]);e>=32;e-=32)o.push(i),i=0;if(e===0)return o.concat(t);for(let n=0;n<t.length;n++)o.push(i|t[n]>>>e),i=t[n]<<32-e;const r=t.length?t[t.length-1]:0,s=jr.getPartial(r);return o.push(jr.partial(e+s&31,e+s>32?i:o.pop(),1)),o}},w8={bytes:{fromBits(t){const e=jr.bitLength(t)/8,i=new Uint8Array(e);let o;for(let r=0;r<e;r++)r&3||(o=t[r/4]),i[r]=o>>>24,o<<=8;return i},toBits(t){const e=[];let i,o=0;for(i=0;i<t.length;i++)o=o<<8|t[i],(i&3)===3&&(e.push(o),o=0);return i&3&&e.push(jr.partial(8*(i&3),o)),e}}},bee={};bee.sha1=class{constructor(t){const e=this;e.blockSize=512,e._init=[1732584193,4023233417,2562383102,271733878,3285377520],e._key=[1518500249,1859775393,2400959708,3395469782],t?(e._h=t._h.slice(0),e._buffer=t._buffer.slice(0),e._length=t._length):e.reset()}reset(){const t=this;return t._h=t._init.slice(0),t._buffer=[],t._length=0,t}update(t){const e=this;typeof t=="string"&&(t=w8.utf8String.toBits(t));const i=e._buffer=jr.concat(e._buffer,t),o=e._length,r=e._length=o+jr.bitLength(t);if(r>9007199254740991)throw new Error("Cannot hash more than 2^53 - 1 bits");const s=new Uint32Array(i);let n=0;for(let a=e.blockSize+o-(e.blockSize+o&e.blockSize-1);a<=r;a+=e.blockSize)e._block(s.subarray(16*n,16*(n+1))),n+=1;return i.splice(0,16*n),e}finalize(){const t=this;let e=t._buffer;const i=t._h;e=jr.concat(e,[jr.partial(1,1)]);for(let o=e.length+2;o&15;o++)e.push(0);for(e.push(Math.floor(t._length/4294967296)),e.push(t._length|0);e.length;)t._block(e.splice(0,16));return t.reset(),i}_f(t,e,i,o){if(t<=19)return e&i|~e&o;if(t<=39)return e^i^o;if(t<=59)return e&i|e&o|i&o;if(t<=79)return e^i^o}_S(t,e){return e<<t|e>>>32-t}_block(t){const e=this,i=e._h,o=Array(80);for(let c=0;c<16;c++)o[c]=t[c];let r=i[0],s=i[1],n=i[2],a=i[3],l=i[4];for(let c=0;c<=79;c++){c>=16&&(o[c]=e._S(1,o[c-3]^o[c-8]^o[c-14]^o[c-16]));const d=e._S(5,r)+e._f(c,s,n,a)+l+o[c]+e._key[Math.floor(c/20)]|0;l=a,a=n,n=e._S(30,s),s=r,r=d}i[0]=i[0]+r|0,i[1]=i[1]+s|0,i[2]=i[2]+n|0,i[3]=i[3]+a|0,i[4]=i[4]+l|0}};const Mee={};Mee.aes=class{constructor(t){const e=this;e._tables=[[[],[],[],[],[]],[[],[],[],[],[]]],e._tables[0][0][0]||e._precompute();const i=e._tables[0][4],o=e._tables[1],r=t.length;let s,n,a,l=1;if(r!==4&&r!==6&&r!==8)throw new Error("invalid aes key size");for(e._key=[n=t.slice(0),a=[]],s=r;s<4*r+28;s++){let c=n[s-1];(s%r===0||r===8&&s%r===4)&&(c=i[c>>>24]<<24^i[c>>16&255]<<16^i[c>>8&255]<<8^i[c&255],s%r===0&&(c=c<<8^c>>>24^l<<24,l=l<<1^(l>>7)*283)),n[s]=n[s-r]^c}for(let c=0;s;c++,s--){const d=n[c&3?s:s-4];s<=4||c<4?a[c]=d:a[c]=o[0][i[d>>>24]]^o[1][i[d>>16&255]]^o[2][i[d>>8&255]]^o[3][i[d&255]]}}encrypt(t){return this._crypt(t,0)}decrypt(t){return this._crypt(t,1)}_precompute(){const t=this._tables[0],e=this._tables[1],i=t[4],o=e[4],r=[],s=[];let n,a,l,c;for(let d=0;d<256;d++)s[(r[d]=d<<1^(d>>7)*283)^d]=d;for(let d=n=0;!i[d];d^=a||1,n=s[n]||1){let u=n^n<<1^n<<2^n<<3^n<<4;u=u>>8^u&255^99,i[d]=u,o[u]=d,c=r[l=r[a=r[d]]];let h=c*16843009^l*65537^a*257^d*16843008,A=r[u]*257^u*16843008;for(let f=0;f<4;f++)t[f][d]=A=A<<24^A>>>8,e[f][u]=h=h<<24^h>>>8}for(let d=0;d<5;d++)t[d]=t[d].slice(0),e[d]=e[d].slice(0)}_crypt(t,e){if(t.length!==4)throw new Error("invalid aes block size");const i=this._key[e],o=i.length/4-2,r=[0,0,0,0],s=this._tables[e],n=s[0],a=s[1],l=s[2],c=s[3],d=s[4];let u=t[0]^i[0],h=t[e?3:1]^i[1],A=t[2]^i[2],f=t[e?1:3]^i[3],p=4,g,m,M;for(let y=0;y<o;y++)g=n[u>>>24]^a[h>>16&255]^l[A>>8&255]^c[f&255]^i[p],m=n[h>>>24]^a[A>>16&255]^l[f>>8&255]^c[u&255]^i[p+1],M=n[A>>>24]^a[f>>16&255]^l[u>>8&255]^c[h&255]^i[p+2],f=n[f>>>24]^a[u>>16&255]^l[h>>8&255]^c[A&255]^i[p+3],p+=4,u=g,h=m,A=M;for(let y=0;y<4;y++)r[e?3&-y:y]=d[u>>>24]<<24^d[h>>16&255]<<16^d[A>>8&255]<<8^d[f&255]^i[p++],g=u,u=h,h=A,A=f,f=g;return r}};const jvi={getRandomValues(t){const e=new Uint32Array(t.buffer),i=o=>{let r=987654321;const s=4294967295;return function(){return r=36969*(r&65535)+(r>>16)&s,o=18e3*(o&65535)+(o>>16)&s,(((r<<16)+o&s)/4294967296+.5)*(Math.random()>.5?1:-1)}};for(let o=0,r;o<t.length;o+=4){const s=i((r||Math.random())*4294967296);r=s()*987654071,e[o/4]=s()*4294967296|0}return t}},Cee={};Cee.ctrGladman=class{constructor(t,e){this._prf=t,this._initIv=e,this._iv=e}reset(){this._iv=this._initIv}update(t){return this.calculate(this._prf,t,this._iv)}incWord(t){if((t>>24&255)===255){let e=t>>16&255,i=t>>8&255,o=t&255;e===255?(e=0,i===255?(i=0,o===255?o=0:++o):++i):++e,t=0,t+=e<<16,t+=i<<8,t+=o}else t+=1<<24;return t}incCounter(t){(t[0]=this.incWord(t[0]))===0&&(t[1]=this.incWord(t[1]))}calculate(t,e,i){let o;if(!(o=e.length))return[];const r=jr.bitLength(e);for(let s=0;s<o;s+=4){this.incCounter(i);const n=t.encrypt(i);e[s]^=n[0],e[s+1]^=n[1],e[s+2]^=n[2],e[s+3]^=n[3]}return jr.clamp(e,r)}};const gu={importKey(t){return new gu.hmacSha1(w8.bytes.toBits(t))},pbkdf2(t,e,i,o){if(i=i||1e4,o<0||i<0)throw new Error("invalid params to pbkdf2");const r=(o>>5)+1<<2;let s,n,a,l,c;const d=new ArrayBuffer(r),u=new DataView(d);let h=0;const A=jr;for(e=w8.bytes.toBits(e),c=1;h<(r||1);c++){for(s=n=t.encrypt(A.concat(e,[c])),a=1;a<i;a++)for(n=t.encrypt(n),l=0;l<n.length;l++)s[l]^=n[l];for(a=0;h<(r||1)&&a<s.length;a++)u.setInt32(h,s[a]),h+=4}return d.slice(0,o/8)}};gu.hmacSha1=class{constructor(t){const e=this,i=e._hash=bee.sha1,o=[[],[]];e._baseHash=[new i,new i];const r=e._baseHash[0].blockSize/32;t.length>r&&(t=new i().update(t).finalize());for(let s=0;s<r;s++)o[0][s]=t[s]^909522486,o[1][s]=t[s]^1549556828;e._baseHash[0].update(o[0]),e._baseHash[1].update(o[1]),e._resultHash=new i(e._baseHash[0])}reset(){const t=this;t._resultHash=new t._hash(t._baseHash[0]),t._updated=!1}update(t){const e=this;e._updated=!0,e._resultHash.update(t)}digest(){const t=this,e=t._resultHash.finalize(),i=new t._hash(t._baseHash[1]).update(e).finalize();return t.reset(),i}encrypt(t){if(this._updated)throw new Error("encrypt on already updated hmac called!");return this.update(t),this.digest(t)}};const Nvi=typeof crypto!=xc&&typeof crypto.getRandomValues==tv,xee="Invalid password",kee="Invalid signature",lI="zipjs-abort-check-password";function Iee(t){return Nvi?crypto.getRandomValues(t):jvi.getRandomValues(t)}const L1=16,Rvi="raw",Eee={name:"PBKDF2"},Ovi={name:"HMAC"},zvi="SHA-1",Fvi=Object.assign({hash:Ovi},Eee),cI=Object.assign({iterations:1e3,hash:{name:zvi}},Eee),Uvi=["deriveBits"],iv=[8,12,16],ov=[16,24,32],Ec=10,Vvi=[0,0,0,0],b8=typeof crypto!=xc,rv=b8&&crypto.subtle,Dee=b8&&typeof rv!=xc,$s=w8.bytes,Hvi=Mee.aes,Qvi=Cee.ctrGladman,_vi=gu.hmacSha1;let Pee=b8&&Dee&&typeof rv.importKey==tv,Bee=b8&&Dee&&typeof rv.deriveBits==tv;class qvi extends TransformStream{constructor({password:e,rawPassword:i,signed:o,encryptionStrength:r,checkPasswordOnly:s}){super({start(){Object.assign(this,{ready:new Promise(n=>this.resolveReady=n),password:Tee(e,i),signed:o,strength:r-1,pending:new Uint8Array})},async transform(n,a){const l=this,{password:c,strength:d,resolveReady:u,ready:h}=l;c?(await Kvi(l,d,c,Kn(n,0,iv[d]+2)),n=Kn(n,iv[d]+2),s?a.error(new Error(lI)):u()):await h;const A=new Uint8Array(n.length-Ec-(n.length-Ec)%L1);a.enqueue(See(l,n,A,0,Ec,!0))},async flush(n){const{signed:a,ctr:l,hmac:c,pending:d,ready:u}=this;if(c&&l){await u;const h=Kn(d,0,d.length-Ec),A=Kn(d,d.length-Ec);let f=new Uint8Array;if(h.length){const p=sv($s,h);c.update(p);const g=l.update(p);f=nv($s,g)}if(a){const p=Kn(nv($s,c.digest()),0,Ec);for(let g=0;g<Ec;g++)if(p[g]!=A[g])throw new Error(kee)}n.enqueue(f)}}})}}class Gvi extends TransformStream{constructor({password:e,rawPassword:i,encryptionStrength:o}){let r;super({start(){Object.assign(this,{ready:new Promise(s=>this.resolveReady=s),password:Tee(e,i),strength:o-1,pending:new Uint8Array})},async transform(s,n){const a=this,{password:l,strength:c,resolveReady:d,ready:u}=a;let h=new Uint8Array;l?(h=await Yvi(a,c,l),d()):await u;const A=new Uint8Array(h.length+s.length-s.length%L1);A.set(h,0),n.enqueue(See(a,s,A,h.length,0))},async flush(s){const{ctr:n,hmac:a,pending:l,ready:c}=this;if(a&&n){await c;let d=new Uint8Array;if(l.length){const u=n.update(sv($s,l));a.update(u),d=nv($s,u)}r.signature=nv($s,a.digest()).slice(0,Ec),s.enqueue(dI(d,r.signature))}}}),r=this}}function See(t,e,i,o,r,s){const{ctr:n,hmac:a,pending:l}=t,c=e.length-r;l.length&&(e=dI(l,e),i=Wvi(i,c-c%L1));let d;for(d=0;d<=c-L1;d+=L1){const u=sv($s,Kn(e,d,d+L1));s&&a.update(u);const h=n.update(u);s||a.update(h),i.set(nv($s,h),d+o)}return t.pending=Kn(e,d),i}async function Kvi(t,e,i,o){const r=await Lee(t,e,i,Kn(o,0,iv[e])),s=Kn(o,iv[e]);if(r[0]!=s[0]||r[1]!=s[1])throw new Error(xee)}async function Yvi(t,e,i){const o=Iee(new Uint8Array(iv[e])),r=await Lee(t,e,i,o);return dI(o,r)}async function Lee(t,e,i,o){t.password=null;const r=await Zvi(Rvi,i,Fvi,!1,Uvi),s=await Jvi(Object.assign({salt:o},cI),r,8*(ov[e]*2+2)),n=new Uint8Array(s),a=sv($s,Kn(n,0,ov[e])),l=sv($s,Kn(n,ov[e],ov[e]*2)),c=Kn(n,ov[e]*2);return Object.assign(t,{keys:{key:a,authentication:l,passwordVerification:c},ctr:new Qvi(new Hvi(a),Array.from(Vvi)),hmac:new _vi(l)}),c}async function Zvi(t,e,i,o,r){if(Pee)try{return await rv.importKey(t,e,i,o,r)}catch{return Pee=!1,gu.importKey(e)}else return gu.importKey(e)}async function Jvi(t,e,i){if(Bee)try{return await rv.deriveBits(t,e,i)}catch{return Bee=!1,gu.pbkdf2(e,t.salt,cI.iterations,i)}else return gu.pbkdf2(e,t.salt,cI.iterations,i)}function Tee(t,e){return e===Tr?Tvi(t):e}function dI(t,e){let i=t;return t.length+e.length&&(i=new Uint8Array(t.length+e.length),i.set(t,0),i.set(e,t.length)),i}function Wvi(t,e){if(e&&e>t.length){const i=t;t=new Uint8Array(e),t.set(i,0)}return t}function Kn(t,e,i){return t.subarray(e,i)}function nv(t,e){return t.fromBits(e)}function sv(t,e){return t.toBits(e)}const T1=12;class Xvi extends TransformStream{constructor({password:e,passwordVerification:i,checkPasswordOnly:o}){super({start(){Object.assign(this,{password:e,passwordVerification:i}),Ree(this,e)},transform(r,s){const n=this;if(n.password){const a=jee(n,r.subarray(0,T1));if(n.password=null,a[T1-1]!=n.passwordVerification)throw new Error(xee);r=r.subarray(T1)}o?s.error(new Error(lI)):s.enqueue(jee(n,r))}})}}class $vi extends TransformStream{constructor({password:e,passwordVerification:i}){super({start(){Object.assign(this,{password:e,passwordVerification:i}),Ree(this,e)},transform(o,r){const s=this;let n,a;if(s.password){s.password=null;const l=Iee(new Uint8Array(T1));l[T1-1]=s.passwordVerification,n=new Uint8Array(o.length+l.length),n.set(Nee(s,l),0),a=T1}else n=new Uint8Array(o.length),a=0;n.set(Nee(s,o),a),r.enqueue(n)}})}}function jee(t,e){const i=new Uint8Array(e.length);for(let o=0;o<e.length;o++)i[o]=Oee(t)^e[o],uI(t,i[o]);return i}function Nee(t,e){const i=new Uint8Array(e.length);for(let o=0;o<e.length;o++)i[o]=Oee(t)^e[o],uI(t,e[o]);return i}function Ree(t,e){const i=[305419896,591751049,878082192];Object.assign(t,{keys:i,crcKey0:new y8(i[0]),crcKey2:new y8(i[2])});for(let o=0;o<e.length;o++)uI(t,e.charCodeAt(o))}function uI(t,e){let[i,o,r]=t.keys;t.crcKey0.append([e]),i=~t.crcKey0.get(),o=Fee(Math.imul(Fee(o+zee(i)),134775813)+1),t.crcKey2.append([o>>>24]),r=~t.crcKey2.get(),t.keys=[i,o,r]}function Oee(t){const e=t.keys[2]|2;return zee(Math.imul(e,e^1)>>>8)}function zee(t){return t&255}function Fee(t){return t&4294967295}const Uee="deflate-raw";class e2i extends TransformStream{constructor(e,{chunkSize:i,CompressionStream:o,CompressionStreamNative:r}){super({});const{compressed:s,encrypted:n,useCompressionStream:a,zipCrypto:l,signed:c,level:d}=e,u=this;let h,A,f=Vee(super.readable);(!n||l)&&c&&(h=new wee,f=ea(f,h)),s&&(f=Qee(f,a,{level:d,chunkSize:i},r,o)),n&&(l?f=ea(f,new $vi(e)):(A=new Gvi(e),f=ea(f,A))),Hee(u,f,()=>{let p;n&&!l&&(p=A.signature),(!n||l)&&c&&(p=new DataView(h.value.buffer).getUint32(0)),u.signature=p})}}class t2i extends TransformStream{constructor(e,{chunkSize:i,DecompressionStream:o,DecompressionStreamNative:r}){super({});const{zipCrypto:s,encrypted:n,signed:a,signature:l,compressed:c,useCompressionStream:d}=e;let u,h,A=Vee(super.readable);n&&(s?A=ea(A,new Xvi(e)):(h=new qvi(e),A=ea(A,h))),c&&(A=Qee(A,d,{chunkSize:i},r,o)),(!n||s)&&a&&(u=new wee,A=ea(A,u)),Hee(this,A,()=>{if((!n||s)&&a){const f=new DataView(u.value.buffer);if(l!=f.getUint32(0,!1))throw new Error(kee)}})}}function Vee(t){return ea(t,new TransformStream({transform(e,i){e&&e.length&&i.enqueue(e)}}))}function Hee(t,e,i){e=ea(e,new TransformStream({flush:i})),Object.defineProperty(t,"readable",{get(){return e}})}function Qee(t,e,i,o,r){try{const s=e&&o?o:r;t=ea(t,new s(Uee,i))}catch{if(e)try{t=ea(t,new r(Uee,i))}catch{return t}else return t}return t}function ea(t,e){return t.pipeThrough(e)}const i2i="message",o2i="start",r2i="pull",_ee="data",n2i="ack",qee="close",s2i="deflate",Gee="inflate";class a2i extends TransformStream{constructor(e,i){super({});const o=this,{codecType:r}=e;let s;r.startsWith(s2i)?s=e2i:r.startsWith(Gee)&&(s=t2i);let n=0,a=0;const l=new s(e,i),c=super.readable,d=new TransformStream({transform(h,A){h&&h.length&&(a+=h.length,A.enqueue(h))},flush(){Object.assign(o,{inputSize:a})}}),u=new TransformStream({transform(h,A){h&&h.length&&(n+=h.length,A.enqueue(h))},flush(){const{signature:h}=l;Object.assign(o,{signature:h,outputSize:n,inputSize:a})}});Object.defineProperty(o,"readable",{get(){return c.pipeThrough(d).pipeThrough(l).pipeThrough(u)}})}}class l2i extends TransformStream{constructor(e){let i;super({transform:o,flush(r){i&&i.length&&r.enqueue(i)}});function o(r,s){if(i){const n=new Uint8Array(i.length+r.length);n.set(i),n.set(r,i.length),r=n,i=null}r.length>e?(s.enqueue(r.slice(0,e)),o(r.slice(e),s)):i=r}}}let Kee=typeof Worker!=xc;class hI{constructor(e,{readable:i,writable:o},{options:r,config:s,streamOptions:n,useWebWorkers:a,transferStreams:l,scripts:c},d){const{signal:u}=n;return Object.assign(e,{busy:!0,readable:i.pipeThrough(new l2i(s.chunkSize)).pipeThrough(new c2i(i,n),{signal:u}),writable:o,options:Object.assign({},r),scripts:c,transferStreams:l,terminate(){return new Promise(h=>{const{worker:A,busy:f}=e;A?(f?e.resolveTerminated=h:(A.terminate(),h()),e.interface=null):h()})},onTaskFinished(){const{resolveTerminated:h}=e;h&&(e.resolveTerminated=null,e.terminated=!0,e.worker.terminate(),h()),e.busy=!1,d(e)}}),(a&&Kee?d2i:Yee)(e,s)}}class c2i extends TransformStream{constructor(e,{onstart:i,onprogress:o,size:r,onend:s}){let n=0;super({async start(){i&&await pI(i,r)},async transform(a,l){n+=a.length,o&&await pI(o,n,r),l.enqueue(a)},async flush(){e.size=n,s&&await pI(s,n)}})}}async function pI(t,...e){try{await t(...e)}catch{}}function Yee(t,e){return{run:()=>u2i(t,e)}}function d2i(t,e){const{baseURL:i,chunkSize:o}=e;if(!t.interface){let r;try{r=A2i(t.scripts[0],i,t)}catch{return Kee=!1,Yee(t,e)}Object.assign(t,{worker:r,interface:{run:()=>h2i(t,{chunkSize:o})}})}return t.interface}async function u2i({options:t,readable:e,writable:i,onTaskFinished:o},r){try{const s=new a2i(t,r);await e.pipeThrough(s).pipeTo(i,{preventClose:!0,preventAbort:!0});const{signature:n,inputSize:a,outputSize:l}=s;return{signature:n,inputSize:a,outputSize:l}}finally{o()}}async function h2i(t,e){let i,o;const r=new Promise((h,A)=>{i=h,o=A});Object.assign(t,{reader:null,writer:null,resolveResult:i,rejectResult:o,result:r});const{readable:s,options:n,scripts:a}=t,{writable:l,closed:c}=p2i(t.writable),d=M8({type:o2i,scripts:a.slice(1),options:n,config:e,readable:s,writable:l},t);d||Object.assign(t,{reader:s.getReader(),writer:l.getWriter()});const u=await r;return d||await l.getWriter().close(),await c,u}function p2i(t){let e;const i=new Promise(o=>e=o);return{writable:new WritableStream({async write(o){const r=t.getWriter();await r.ready,await r.write(o),r.releaseLock()},close(){e()},abort(o){return t.getWriter().abort(o)}}),closed:i}}let Zee=!0,Jee=!0;function A2i(t,e,i){const o={type:"module"};let r,s;typeof t==tv&&(t=t());try{r=new URL(t,e)}catch{r=t}if(Zee)try{s=new Worker(r)}catch{Zee=!1,s=new Worker(r,o)}else s=new Worker(r,o);return s.addEventListener(i2i,n=>f2i(n,i)),s}function M8(t,{worker:e,writer:i,onTaskFinished:o,transferStreams:r}){try{let{value:s,readable:n,writable:a}=t;const l=[];if(s&&(s.byteLength<s.buffer.byteLength?t.value=s.buffer.slice(0,s.byteLength):t.value=s.buffer,l.push(t.value)),r&&Jee?(n&&l.push(n),a&&l.push(a)):t.readable=t.writable=null,l.length)try{return e.postMessage(t,l),!0}catch{Jee=!1,t.readable=t.writable=null,e.postMessage(t)}else e.postMessage(t)}catch(s){throw i&&i.releaseLock(),o(),s}}async function f2i({data:t},e){const{type:i,value:o,messageId:r,result:s,error:n}=t,{reader:a,writer:l,resolveResult:c,rejectResult:d,onTaskFinished:u}=e;try{if(n){const{message:A,stack:f,code:p,name:g}=n,m=new Error(A);Object.assign(m,{stack:f,code:p,name:g}),h(m)}else{if(i==r2i){const{value:A,done:f}=await a.read();M8({type:_ee,value:A,done:f,messageId:r},e)}i==_ee&&(await l.ready,await l.write(new Uint8Array(o)),M8({type:n2i,messageId:r},e)),i==qee&&h(null,s)}}catch(A){M8({type:qee,messageId:r},e),h(A)}function h(A,f){A?d(A):c(f),l&&l.releaseLock(),u()}}let mu=[];const AI=[];let Wee=0;async function g2i(t,e){const{options:i,config:o}=e,{transferStreams:r,useWebWorkers:s,useCompressionStream:n,codecType:a,compressed:l,signed:c,encrypted:d}=i,{workerScripts:u,maxWorkers:h}=o;e.transferStreams=r||r===Tr;const A=!l&&!c&&!d&&!e.transferStreams;return e.useWebWorkers=!A&&(s||s===Tr&&o.useWebWorkers),e.scripts=e.useWebWorkers&&u?u[a]:[],i.useCompressionStream=n||n===Tr&&o.useCompressionStream,(await f()).run();async function f(){const g=mu.find(m=>!m.busy);if(g)return Xee(g),new hI(g,t,e,p);if(mu.length<h){const m={indexWorker:Wee};return Wee++,mu.push(m),new hI(m,t,e,p)}else return new Promise(m=>AI.push({resolve:m,stream:t,workerOptions:e}))}function p(g){if(AI.length){const[{resolve:m,stream:M,workerOptions:y}]=AI.splice(0,1);m(new hI(g,M,y,p))}else g.worker?(Xee(g),m2i(g,e)):mu=mu.filter(m=>m!=g)}}function m2i(t,e){const{config:i}=e,{terminateWorkerTimeout:o}=i;Number.isFinite(o)&&o>=0&&(t.terminated?t.terminated=!1:t.terminateTimeout=setTimeout(async()=>{mu=mu.filter(r=>r!=t);try{await t.terminate()}catch{}},o))}function Xee(t){const{terminateTimeout:e}=t;e&&(clearTimeout(e),t.terminateTimeout=null)}function v2i(t,e={}){const i=`const{Array:e,Object:t,Number:n,Math:r,Error:s,Uint8Array:i,Uint16Array:o,Uint32Array:c,Int32Array:f,Map:a,DataView:l,Promise:u,TextEncoder:w,crypto:h,postMessage:d,TransformStream:p,ReadableStream:y,WritableStream:m,CompressionStream:b,DecompressionStream:g}=self,k=void 0,v="undefined",S="function";class z{constructor(e){return class extends p{constructor(t,n){const r=new e(n);super({transform(e,t){t.enqueue(r.append(e))},flush(e){const t=r.flush();t&&e.enqueue(t)}})}}}}const C=[];for(let e=0;256>e;e++){let t=e;for(let e=0;8>e;e++)1&t?t=t>>>1^3988292384:t>>>=1;C[e]=t}class x{constructor(e){this.t=e||-1}append(e){let t=0|this.t;for(let n=0,r=0|e.length;r>n;n++)t=t>>>8^C[255&(t^e[n])];this.t=t}get(){return~this.t}}class A extends p{constructor(){let e;const t=new x;super({transform(e,n){t.append(e),n.enqueue(e)},flush(){const n=new i(4);new l(n.buffer).setUint32(0,t.get()),e.value=n}}),e=this}}const _={concat(e,t){if(0===e.length||0===t.length)return e.concat(t);const n=e[e.length-1],r=_.i(n);return 32===r?e.concat(t):_.o(t,r,0|n,e.slice(0,e.length-1))},l(e){const t=e.length;if(0===t)return 0;const n=e[t-1];return 32*(t-1)+_.i(n)},u(e,t){if(32*e.length<t)return e;const n=(e=e.slice(0,r.ceil(t/32))).length;return t&=31,n>0&&t&&(e[n-1]=_.h(t,e[n-1]&2147483648>>t-1,1)),e},h:(e,t,n)=>32===e?t:(n?0|t:t<<32-e)+1099511627776*e,i:e=>r.round(e/1099511627776)||32,o(e,t,n,r){for(void 0===r&&(r=[]);t>=32;t-=32)r.push(n),n=0;if(0===t)return r.concat(e);for(let s=0;s<e.length;s++)r.push(n|e[s]>>>t),n=e[s]<<32-t;const s=e.length?e[e.length-1]:0,i=_.i(s);return r.push(_.h(t+i&31,t+i>32?n:r.pop(),1)),r}},I={p:{m(e){const t=_.l(e)/8,n=new i(t);let r;for(let s=0;t>s;s++)3&s||(r=e[s/4]),n[s]=r>>>24,r<<=8;return n},k(e){const t=[];let n,r=0;for(n=0;n<e.length;n++)r=r<<8|e[n],3&~n||(t.push(r),r=0);return 3&n&&t.push(_.h(8*(3&n),r)),t}}},P=class{constructor(e){const t=this;t.blockSize=512,t.v=[1732584193,4023233417,2562383102,271733878,3285377520],t.S=[1518500249,1859775393,2400959708,3395469782],e?(t.C=e.C.slice(0),t.A=e.A.slice(0),t._=e._):t.reset()}reset(){const e=this;return e.C=e.v.slice(0),e.A=[],e._=0,e}update(e){const t=this;"string"==typeof e&&(e=I.I.k(e));const n=t.A=_.concat(t.A,e),r=t._,i=t._=r+_.l(e);if(i>9007199254740991)throw new s("Cannot hash more than 2^53 - 1 bits");const o=new c(n);let f=0;for(let e=t.blockSize+r-(t.blockSize+r&t.blockSize-1);i>=e;e+=t.blockSize)t.P(o.subarray(16*f,16*(f+1))),f+=1;return n.splice(0,16*f),t}D(){const e=this;let t=e.A;const n=e.C;t=_.concat(t,[_.h(1,1)]);for(let e=t.length+2;15&e;e++)t.push(0);for(t.push(r.floor(e._/4294967296)),t.push(0|e._);t.length;)e.P(t.splice(0,16));return e.reset(),n}V(e,t,n,r){return e>19?e>39?e>59?e>79?void 0:t^n^r:t&n|t&r|n&r:t^n^r:t&n|~t&r}R(e,t){return t<<e|t>>>32-e}P(t){const n=this,s=n.C,i=e(80);for(let e=0;16>e;e++)i[e]=t[e];let o=s[0],c=s[1],f=s[2],a=s[3],l=s[4];for(let e=0;79>=e;e++){16>e||(i[e]=n.R(1,i[e-3]^i[e-8]^i[e-14]^i[e-16]));const t=n.R(5,o)+n.V(e,c,f,a)+l+i[e]+n.S[r.floor(e/20)]|0;l=a,a=f,f=n.R(30,c),c=o,o=t}s[0]=s[0]+o|0,s[1]=s[1]+c|0,s[2]=s[2]+f|0,s[3]=s[3]+a|0,s[4]=s[4]+l|0}},D={getRandomValues(e){const t=new c(e.buffer),n=e=>{let t=987654321;const n=4294967295;return()=>(t=36969*(65535&t)+(t>>16)&n,(((t<<16)+(e=18e3*(65535&e)+(e>>16)&n)&n)/4294967296+.5)*(r.random()>.5?1:-1))};for(let s,i=0;i<e.length;i+=4){const e=n(4294967296*(s||r.random()));s=987654071*e(),t[i/4]=4294967296*e()|0}return e}},V={importKey:e=>new V.B(I.p.k(e)),M(e,t,n,r){if(n=n||1e4,0>r||0>n)throw new s("invalid params to pbkdf2");const i=1+(r>>5)<<2;let o,c,f,a,u;const w=new ArrayBuffer(i),h=new l(w);let d=0;const p=_;for(t=I.p.k(t),u=1;(i||1)>d;u++){for(o=c=e.encrypt(p.concat(t,[u])),f=1;n>f;f++)for(c=e.encrypt(c),a=0;a<c.length;a++)o[a]^=c[a];for(f=0;(i||1)>d&&f<o.length;f++)h.setInt32(d,o[f]),d+=4}return w.slice(0,r/8)},B:class{constructor(e){const t=this,n=t.U=P,r=[[],[]];t.K=[new n,new n];const s=t.K[0].blockSize/32;e.length>s&&(e=(new n).update(e).D());for(let t=0;s>t;t++)r[0][t]=909522486^e[t],r[1][t]=1549556828^e[t];t.K[0].update(r[0]),t.K[1].update(r[1]),t.N=new n(t.K[0])}reset(){const e=this;e.N=new e.U(e.K[0]),e.O=!1}update(e){this.O=!0,this.N.update(e)}digest(){const e=this,t=e.N.D(),n=new e.U(e.K[1]).update(t).D();return e.reset(),n}encrypt(e){if(this.O)throw new s("encrypt on already updated hmac called!");return this.update(e),this.digest(e)}}},R=typeof h!=v&&typeof h.getRandomValues==S,B="Invalid password",E="Invalid signature",M="zipjs-abort-check-password";function U(e){return R?h.getRandomValues(e):D.getRandomValues(e)}const K=16,N={name:"PBKDF2"},O=t.assign({hash:{name:"HMAC"}},N),T=t.assign({iterations:1e3,hash:{name:"SHA-1"}},N),W=["deriveBits"],j=[8,12,16],H=[16,24,32],L=10,F=[0,0,0,0],q=typeof h!=v,G=q&&h.subtle,J=q&&typeof G!=v,Q=I.p,X=class{constructor(e){const t=this;t.T=[[[],[],[],[],[]],[[],[],[],[],[]]],t.T[0][0][0]||t.W();const n=t.T[0][4],r=t.T[1],i=e.length;let o,c,f,a=1;if(4!==i&&6!==i&&8!==i)throw new s("invalid aes key size");for(t.S=[c=e.slice(0),f=[]],o=i;4*i+28>o;o++){let e=c[o-1];(o%i==0||8===i&&o%i==4)&&(e=n[e>>>24]<<24^n[e>>16&255]<<16^n[e>>8&255]<<8^n[255&e],o%i==0&&(e=e<<8^e>>>24^a<<24,a=a<<1^283*(a>>7))),c[o]=c[o-i]^e}for(let e=0;o;e++,o--){const t=c[3&e?o:o-4];f[e]=4>=o||4>e?t:r[0][n[t>>>24]]^r[1][n[t>>16&255]]^r[2][n[t>>8&255]]^r[3][n[255&t]]}}encrypt(e){return this.j(e,0)}decrypt(e){return this.j(e,1)}W(){const e=this.T[0],t=this.T[1],n=e[4],r=t[4],s=[],i=[];let o,c,f,a;for(let e=0;256>e;e++)i[(s[e]=e<<1^283*(e>>7))^e]=e;for(let l=o=0;!n[l];l^=c||1,o=i[o]||1){let i=o^o<<1^o<<2^o<<3^o<<4;i=i>>8^255&i^99,n[l]=i,r[i]=l,a=s[f=s[c=s[l]]];let u=16843009*a^65537*f^257*c^16843008*l,w=257*s[i]^16843008*i;for(let n=0;4>n;n++)e[n][l]=w=w<<24^w>>>8,t[n][i]=u=u<<24^u>>>8}for(let n=0;5>n;n++)e[n]=e[n].slice(0),t[n]=t[n].slice(0)}j(e,t){if(4!==e.length)throw new s("invalid aes block size");const n=this.S[t],r=n.length/4-2,i=[0,0,0,0],o=this.T[t],c=o[0],f=o[1],a=o[2],l=o[3],u=o[4];let w,h,d,p=e[0]^n[0],y=e[t?3:1]^n[1],m=e[2]^n[2],b=e[t?1:3]^n[3],g=4;for(let e=0;r>e;e++)w=c[p>>>24]^f[y>>16&255]^a[m>>8&255]^l[255&b]^n[g],h=c[y>>>24]^f[m>>16&255]^a[b>>8&255]^l[255&p]^n[g+1],d=c[m>>>24]^f[b>>16&255]^a[p>>8&255]^l[255&y]^n[g+2],b=c[b>>>24]^f[p>>16&255]^a[y>>8&255]^l[255&m]^n[g+3],g+=4,p=w,y=h,m=d;for(let e=0;4>e;e++)i[t?3&-e:e]=u[p>>>24]<<24^u[y>>16&255]<<16^u[m>>8&255]<<8^u[255&b]^n[g++],w=p,p=y,y=m,m=b,b=w;return i}},Y=class{constructor(e,t){this.H=e,this.L=t,this.F=t}reset(){this.F=this.L}update(e){return this.q(this.H,e,this.F)}G(e){if(255&~(e>>24))e+=1<<24;else{let t=e>>16&255,n=e>>8&255,r=255&e;255===t?(t=0,255===n?(n=0,255===r?r=0:++r):++n):++t,e=0,e+=t<<16,e+=n<<8,e+=r}return e}J(e){0===(e[0]=this.G(e[0]))&&(e[1]=this.G(e[1]))}q(e,t,n){let r;if(!(r=t.length))return[];const s=_.l(t);for(let s=0;r>s;s+=4){this.J(n);const r=e.encrypt(n);t[s]^=r[0],t[s+1]^=r[1],t[s+2]^=r[2],t[s+3]^=r[3]}return _.u(t,s)}},Z=V.B;let $=q&&J&&typeof G.importKey==S,ee=q&&J&&typeof G.deriveBits==S;class te extends p{constructor({password:e,rawPassword:n,signed:r,encryptionStrength:o,checkPasswordOnly:c}){super({start(){t.assign(this,{ready:new u((e=>this.X=e)),password:ie(e,n),signed:r,Y:o-1,pending:new i})},async transform(e,t){const n=this,{password:r,Y:o,X:f,ready:a}=n;r?(await(async(e,t,n,r)=>{const i=await se(e,t,n,ce(r,0,j[t])),o=ce(r,j[t]);if(i[0]!=o[0]||i[1]!=o[1])throw new s(B)})(n,o,r,ce(e,0,j[o]+2)),e=ce(e,j[o]+2),c?t.error(new s(M)):f()):await a;const l=new i(e.length-L-(e.length-L)%K);t.enqueue(re(n,e,l,0,L,!0))},async flush(e){const{signed:t,Z:n,$:r,pending:o,ready:c}=this;if(r&&n){await c;const f=ce(o,0,o.length-L),a=ce(o,o.length-L);let l=new i;if(f.length){const e=ae(Q,f);r.update(e);const t=n.update(e);l=fe(Q,t)}if(t){const e=ce(fe(Q,r.digest()),0,L);for(let t=0;L>t;t++)if(e[t]!=a[t])throw new s(E)}e.enqueue(l)}}})}}class ne extends p{constructor({password:e,rawPassword:n,encryptionStrength:r}){let s;super({start(){t.assign(this,{ready:new u((e=>this.X=e)),password:ie(e,n),Y:r-1,pending:new i})},async transform(e,t){const n=this,{password:r,Y:s,X:o,ready:c}=n;let f=new i;r?(f=await(async(e,t,n)=>{const r=U(new i(j[t]));return oe(r,await se(e,t,n,r))})(n,s,r),o()):await c;const a=new i(f.length+e.length-e.length%K);a.set(f,0),t.enqueue(re(n,e,a,f.length,0))},async flush(e){const{Z:t,$:n,pending:r,ready:o}=this;if(n&&t){await o;let c=new i;if(r.length){const e=t.update(ae(Q,r));n.update(e),c=fe(Q,e)}s.signature=fe(Q,n.digest()).slice(0,L),e.enqueue(oe(c,s.signature))}}}),s=this}}function re(e,t,n,r,s,o){const{Z:c,$:f,pending:a}=e,l=t.length-s;let u;for(a.length&&(t=oe(a,t),n=((e,t)=>{if(t&&t>e.length){const n=e;(e=new i(t)).set(n,0)}return e})(n,l-l%K)),u=0;l-K>=u;u+=K){const e=ae(Q,ce(t,u,u+K));o&&f.update(e);const s=c.update(e);o||f.update(s),n.set(fe(Q,s),u+r)}return e.pending=ce(t,u),n}async function se(n,r,s,o){n.password=null;const c=await(async(e,t,n,r,s)=>{if(!$)return V.importKey(t);try{return await G.importKey("raw",t,n,!1,s)}catch(e){return $=!1,V.importKey(t)}})(0,s,O,0,W),f=await(async(e,t,n)=>{if(!ee)return V.M(t,e.salt,T.iterations,n);try{return await G.deriveBits(e,t,n)}catch(r){return ee=!1,V.M(t,e.salt,T.iterations,n)}})(t.assign({salt:o},T),c,8*(2*H[r]+2)),a=new i(f),l=ae(Q,ce(a,0,H[r])),u=ae(Q,ce(a,H[r],2*H[r])),w=ce(a,2*H[r]);return t.assign(n,{keys:{key:l,ee:u,passwordVerification:w},Z:new Y(new X(l),e.from(F)),$:new Z(u)}),w}function ie(e,t){return t===k?(e=>{if(typeof w==v){const t=new i((e=unescape(encodeURIComponent(e))).length);for(let n=0;n<t.length;n++)t[n]=e.charCodeAt(n);return t}return(new w).encode(e)})(e):t}function oe(e,t){let n=e;return e.length+t.length&&(n=new i(e.length+t.length),n.set(e,0),n.set(t,e.length)),n}function ce(e,t,n){return e.subarray(t,n)}function fe(e,t){return e.m(t)}function ae(e,t){return e.k(t)}class le extends p{constructor({password:e,passwordVerification:n,checkPasswordOnly:r}){super({start(){t.assign(this,{password:e,passwordVerification:n}),de(this,e)},transform(e,t){const n=this;if(n.password){const t=we(n,e.subarray(0,12));if(n.password=null,t[11]!=n.passwordVerification)throw new s(B);e=e.subarray(12)}r?t.error(new s(M)):t.enqueue(we(n,e))}})}}class ue extends p{constructor({password:e,passwordVerification:n}){super({start(){t.assign(this,{password:e,passwordVerification:n}),de(this,e)},transform(e,t){const n=this;let r,s;if(n.password){n.password=null;const t=U(new i(12));t[11]=n.passwordVerification,r=new i(e.length+t.length),r.set(he(n,t),0),s=12}else r=new i(e.length),s=0;r.set(he(n,e),s),t.enqueue(r)}})}}function we(e,t){const n=new i(t.length);for(let r=0;r<t.length;r++)n[r]=ye(e)^t[r],pe(e,n[r]);return n}function he(e,t){const n=new i(t.length);for(let r=0;r<t.length;r++)n[r]=ye(e)^t[r],pe(e,t[r]);return n}function de(e,n){const r=[305419896,591751049,878082192];t.assign(e,{keys:r,te:new x(r[0]),ne:new x(r[2])});for(let t=0;t<n.length;t++)pe(e,n.charCodeAt(t))}function pe(e,t){let[n,s,i]=e.keys;e.te.append([t]),n=~e.te.get(),s=be(r.imul(be(s+me(n)),134775813)+1),e.ne.append([s>>>24]),i=~e.ne.get(),e.keys=[n,s,i]}function ye(e){const t=2|e.keys[2];return me(r.imul(t,1^t)>>>8)}function me(e){return 255&e}function be(e){return 4294967295&e}const ge="deflate-raw";class ke extends p{constructor(e,{chunkSize:t,CompressionStream:n,CompressionStreamNative:r}){super({});const{compressed:s,encrypted:i,useCompressionStream:o,zipCrypto:c,signed:f,level:a}=e,u=this;let w,h,d=Se(super.readable);i&&!c||!f||(w=new A,d=xe(d,w)),s&&(d=Ce(d,o,{level:a,chunkSize:t},r,n)),i&&(c?d=xe(d,new ue(e)):(h=new ne(e),d=xe(d,h))),ze(u,d,(()=>{let e;i&&!c&&(e=h.signature),i&&!c||!f||(e=new l(w.value.buffer).getUint32(0)),u.signature=e}))}}class ve extends p{constructor(e,{chunkSize:t,DecompressionStream:n,DecompressionStreamNative:r}){super({});const{zipCrypto:i,encrypted:o,signed:c,signature:f,compressed:a,useCompressionStream:u}=e;let w,h,d=Se(super.readable);o&&(i?d=xe(d,new le(e)):(h=new te(e),d=xe(d,h))),a&&(d=Ce(d,u,{chunkSize:t},r,n)),o&&!i||!c||(w=new A,d=xe(d,w)),ze(this,d,(()=>{if((!o||i)&&c){const e=new l(w.value.buffer);if(f!=e.getUint32(0,!1))throw new s(E)}}))}}function Se(e){return xe(e,new p({transform(e,t){e&&e.length&&t.enqueue(e)}}))}function ze(e,n,r){n=xe(n,new p({flush:r})),t.defineProperty(e,"readable",{get:()=>n})}function Ce(e,t,n,r,s){try{e=xe(e,new(t&&r?r:s)(ge,n))}catch(r){if(!t)return e;try{e=xe(e,new s(ge,n))}catch(t){return e}}return e}function xe(e,t){return e.pipeThrough(t)}const Ae="data",_e="close";class Ie extends p{constructor(e,n){super({});const r=this,{codecType:s}=e;let i;s.startsWith("deflate")?i=ke:s.startsWith("inflate")&&(i=ve);let o=0,c=0;const f=new i(e,n),a=super.readable,l=new p({transform(e,t){e&&e.length&&(c+=e.length,t.enqueue(e))},flush(){t.assign(r,{inputSize:c})}}),u=new p({transform(e,t){e&&e.length&&(o+=e.length,t.enqueue(e))},flush(){const{signature:e}=f;t.assign(r,{signature:e,outputSize:o,inputSize:c})}});t.defineProperty(r,"readable",{get:()=>a.pipeThrough(l).pipeThrough(f).pipeThrough(u)})}}class Pe extends p{constructor(e){let t;super({transform:function n(r,s){if(t){const e=new i(t.length+r.length);e.set(t),e.set(r,t.length),r=e,t=null}r.length>e?(s.enqueue(r.slice(0,e)),n(r.slice(e),s)):t=r},flush(e){t&&t.length&&e.enqueue(t)}})}}const De=new a,Ve=new a;let Re,Be=0,Ee=!0;async function Me(e){try{const{options:t,scripts:r,config:s}=e;if(r&&r.length)try{Ee?importScripts.apply(k,r):await Ue(r)}catch(e){Ee=!1,await Ue(r)}self.initCodec&&self.initCodec(),s.CompressionStreamNative=self.CompressionStream,s.DecompressionStreamNative=self.DecompressionStream,self.Deflate&&(s.CompressionStream=new z(self.Deflate)),self.Inflate&&(s.DecompressionStream=new z(self.Inflate));const i={highWaterMark:1},o=e.readable||new y({async pull(e){const t=new u((e=>De.set(Be,e)));Ke({type:"pull",messageId:Be}),Be=(Be+1)%n.MAX_SAFE_INTEGER;const{value:r,done:s}=await t;e.enqueue(r),s&&e.close()}},i),c=e.writable||new m({async write(e){let t;const r=new u((e=>t=e));Ve.set(Be,t),Ke({type:Ae,value:e,messageId:Be}),Be=(Be+1)%n.MAX_SAFE_INTEGER,await r}},i),f=new Ie(t,s);Re=new AbortController;const{signal:a}=Re;await o.pipeThrough(f).pipeThrough(new Pe(s.chunkSize)).pipeTo(c,{signal:a,preventClose:!0,preventAbort:!0}),await c.getWriter().close();const{signature:l,inputSize:w,outputSize:h}=f;Ke({type:_e,result:{signature:l,inputSize:w,outputSize:h}})}catch(e){Ne(e)}}async function Ue(e){for(const t of e)await import(t)}function Ke(e){let{value:t}=e;if(t)if(t.length)try{t=new i(t),e.value=t.buffer,d(e,[e.value])}catch(t){d(e)}else d(e);else d(e)}function Ne(e=new s("Unknown error")){const{message:t,stack:n,code:r,name:i}=e;d({error:{message:t,stack:n,code:r,name:i}})}addEventListener("message",(({data:e})=>{const{type:t,messageId:n,value:r,done:s}=e;try{if("start"==t&&Me(e),t==Ae){const e=De.get(n);De.delete(n),e({value:new i(r),done:s})}if("ack"==t){const e=Ve.get(n);Ve.delete(n),e()}t==_e&&Re.abort()}catch(e){Ne(e)}}));const Oe=15,Te=573,We=-2;function je(t){return He(t.map((([t,n])=>new e(t).fill(n,0,t))))}function He(t){return t.reduce(((t,n)=>t.concat(e.isArray(n)?He(n):n)),[])}const Le=[0,1,2,3].concat(...je([[2,4],[2,5],[4,6],[4,7],[8,8],[8,9],[16,10],[16,11],[32,12],[32,13],[64,14],[64,15],[2,0],[1,16],[1,17],[2,18],[2,19],[4,20],[4,21],[8,22],[8,23],[16,24],[16,25],[32,26],[32,27],[64,28],[64,29]]));function Fe(){const e=this;function t(e,t){let n=0;do{n|=1&e,e>>>=1,n<<=1}while(--t>0);return n>>>1}e.re=n=>{const s=e.se,i=e.oe.ie,o=e.oe.ce;let c,f,a,l=-1;for(n.fe=0,n.ae=Te,c=0;o>c;c++)0!==s[2*c]?(n.le[++n.fe]=l=c,n.ue[c]=0):s[2*c+1]=0;for(;2>n.fe;)a=n.le[++n.fe]=2>l?++l:0,s[2*a]=1,n.ue[a]=0,n.we--,i&&(n.he-=i[2*a+1]);for(e.de=l,c=r.floor(n.fe/2);c>=1;c--)n.pe(s,c);a=o;do{c=n.le[1],n.le[1]=n.le[n.fe--],n.pe(s,1),f=n.le[1],n.le[--n.ae]=c,n.le[--n.ae]=f,s[2*a]=s[2*c]+s[2*f],n.ue[a]=r.max(n.ue[c],n.ue[f])+1,s[2*c+1]=s[2*f+1]=a,n.le[1]=a++,n.pe(s,1)}while(n.fe>=2);n.le[--n.ae]=n.le[1],(t=>{const n=e.se,r=e.oe.ie,s=e.oe.ye,i=e.oe.me,o=e.oe.be;let c,f,a,l,u,w,h=0;for(l=0;Oe>=l;l++)t.ge[l]=0;for(n[2*t.le[t.ae]+1]=0,c=t.ae+1;Te>c;c++)f=t.le[c],l=n[2*n[2*f+1]+1]+1,l>o&&(l=o,h++),n[2*f+1]=l,f>e.de||(t.ge[l]++,u=0,i>f||(u=s[f-i]),w=n[2*f],t.we+=w*(l+u),r&&(t.he+=w*(r[2*f+1]+u)));if(0!==h){do{for(l=o-1;0===t.ge[l];)l--;t.ge[l]--,t.ge[l+1]+=2,t.ge[o]--,h-=2}while(h>0);for(l=o;0!==l;l--)for(f=t.ge[l];0!==f;)a=t.le[--c],a>e.de||(n[2*a+1]!=l&&(t.we+=(l-n[2*a+1])*n[2*a],n[2*a+1]=l),f--)}})(n),((e,n,r)=>{const s=[];let i,o,c,f=0;for(i=1;Oe>=i;i++)s[i]=f=f+r[i-1]<<1;for(o=0;n>=o;o++)c=e[2*o+1],0!==c&&(e[2*o]=t(s[c]++,c))})(s,e.de,n.ge)}}function qe(e,t,n,r,s){const i=this;i.ie=e,i.ye=t,i.me=n,i.ce=r,i.be=s}Fe.ke=[0,1,2,3,4,5,6,7].concat(...je([[2,8],[2,9],[2,10],[2,11],[4,12],[4,13],[4,14],[4,15],[8,16],[8,17],[8,18],[8,19],[16,20],[16,21],[16,22],[16,23],[32,24],[32,25],[32,26],[31,27],[1,28]])),Fe.ve=[0,1,2,3,4,5,6,7,8,10,12,14,16,20,24,28,32,40,48,56,64,80,96,112,128,160,192,224,0],Fe.Se=[0,1,2,3,4,6,8,12,16,24,32,48,64,96,128,192,256,384,512,768,1024,1536,2048,3072,4096,6144,8192,12288,16384,24576],Fe.ze=e=>256>e?Le[e]:Le[256+(e>>>7)],Fe.Ce=[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],Fe.xe=[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],Fe.Ae=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],Fe._e=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];const Ge=je([[144,8],[112,9],[24,7],[8,8]]);qe.Ie=He([12,140,76,204,44,172,108,236,28,156,92,220,60,188,124,252,2,130,66,194,34,162,98,226,18,146,82,210,50,178,114,242,10,138,74,202,42,170,106,234,26,154,90,218,58,186,122,250,6,134,70,198,38,166,102,230,22,150,86,214,54,182,118,246,14,142,78,206,46,174,110,238,30,158,94,222,62,190,126,254,1,129,65,193,33,161,97,225,17,145,81,209,49,177,113,241,9,137,73,201,41,169,105,233,25,153,89,217,57,185,121,249,5,133,69,197,37,165,101,229,21,149,85,213,53,181,117,245,13,141,77,205,45,173,109,237,29,157,93,221,61,189,125,253,19,275,147,403,83,339,211,467,51,307,179,435,115,371,243,499,11,267,139,395,75,331,203,459,43,299,171,427,107,363,235,491,27,283,155,411,91,347,219,475,59,315,187,443,123,379,251,507,7,263,135,391,71,327,199,455,39,295,167,423,103,359,231,487,23,279,151,407,87,343,215,471,55,311,183,439,119,375,247,503,15,271,143,399,79,335,207,463,47,303,175,431,111,367,239,495,31,287,159,415,95,351,223,479,63,319,191,447,127,383,255,511,0,64,32,96,16,80,48,112,8,72,40,104,24,88,56,120,4,68,36,100,20,84,52,116,3,131,67,195,35,163,99,227].map(((e,t)=>[e,Ge[t]])));const Je=je([[30,5]]);function Qe(e,t,n,r,s){const i=this;i.Pe=e,i.De=t,i.Ve=n,i.Re=r,i.Be=s}qe.Ee=He([0,16,8,24,4,20,12,28,2,18,10,26,6,22,14,30,1,17,9,25,5,21,13,29,3,19,11,27,7,23].map(((e,t)=>[e,Je[t]]))),qe.Me=new qe(qe.Ie,Fe.Ce,257,286,Oe),qe.Ue=new qe(qe.Ee,Fe.xe,0,30,Oe),qe.Ke=new qe(null,Fe.Ae,0,19,7);const Xe=[new Qe(0,0,0,0,0),new Qe(4,4,8,4,1),new Qe(4,5,16,8,1),new Qe(4,6,32,32,1),new Qe(4,4,16,16,2),new Qe(8,16,32,32,2),new Qe(8,16,128,128,2),new Qe(8,32,128,256,2),new Qe(32,128,258,1024,2),new Qe(32,258,258,4096,2)],Ye=["need dictionary","stream end","","","stream error","data error","","buffer error","",""],Ze=113,$e=666,et=262;function tt(e,t,n,r){const s=e[2*t],i=e[2*n];return i>s||s==i&&r[t]<=r[n]}function nt(){const e=this;let t,n,s,c,f,a,l,u,w,h,d,p,y,m,b,g,k,v,S,z,C,x,A,_,I,P,D,V,R,B,E,M,U;const K=new Fe,N=new Fe,O=new Fe;let T,W,j,H,L,F;function q(){let t;for(t=0;286>t;t++)E[2*t]=0;for(t=0;30>t;t++)M[2*t]=0;for(t=0;19>t;t++)U[2*t]=0;E[512]=1,e.we=e.he=0,W=j=0}function G(e,t){let n,r=-1,s=e[1],i=0,o=7,c=4;0===s&&(o=138,c=3),e[2*(t+1)+1]=65535;for(let f=0;t>=f;f++)n=s,s=e[2*(f+1)+1],++i<o&&n==s||(c>i?U[2*n]+=i:0!==n?(n!=r&&U[2*n]++,U[32]++):i>10?U[36]++:U[34]++,i=0,r=n,0===s?(o=138,c=3):n==s?(o=6,c=3):(o=7,c=4))}function J(t){e.Ne[e.pending++]=t}function Q(e){J(255&e),J(e>>>8&255)}function X(e,t){let n;const r=t;F>16-r?(n=e,L|=n<<F&65535,Q(L),L=n>>>16-F,F+=r-16):(L|=e<<F&65535,F+=r)}function Y(e,t){const n=2*e;X(65535&t[n],65535&t[n+1])}function Z(e,t){let n,r,s=-1,i=e[1],o=0,c=7,f=4;for(0===i&&(c=138,f=3),n=0;t>=n;n++)if(r=i,i=e[2*(n+1)+1],++o>=c||r!=i){if(f>o)do{Y(r,U)}while(0!=--o);else 0!==r?(r!=s&&(Y(r,U),o--),Y(16,U),X(o-3,2)):o>10?(Y(18,U),X(o-11,7)):(Y(17,U),X(o-3,3));o=0,s=r,0===i?(c=138,f=3):r==i?(c=6,f=3):(c=7,f=4)}}function $(){16==F?(Q(L),L=0,F=0):8>F||(J(255&L),L>>>=8,F-=8)}function ee(t,n){let s,i,o;if(e.Oe[W]=t,e.Te[W]=255&n,W++,0===t?E[2*n]++:(j++,t--,E[2*(Fe.ke[n]+256+1)]++,M[2*Fe.ze(t)]++),!(8191&W)&&D>2){for(s=8*W,i=C-k,o=0;30>o;o++)s+=M[2*o]*(5+Fe.xe[o]);if(s>>>=3,j<r.floor(W/2)&&s<r.floor(i/2))return!0}return W==T-1}function te(t,n){let r,s,i,o,c=0;if(0!==W)do{r=e.Oe[c],s=e.Te[c],c++,0===r?Y(s,t):(i=Fe.ke[s],Y(i+256+1,t),o=Fe.Ce[i],0!==o&&(s-=Fe.ve[i],X(s,o)),r--,i=Fe.ze(r),Y(i,n),o=Fe.xe[i],0!==o&&(r-=Fe.Se[i],X(r,o)))}while(W>c);Y(256,t),H=t[513]}function ne(){F>8?Q(L):F>0&&J(255&L),L=0,F=0}function re(t,n,r){X(0+(r?1:0),3),((t,n)=>{ne(),H=8,Q(n),Q(~n),e.Ne.set(u.subarray(t,t+n),e.pending),e.pending+=n})(t,n)}function se(n){((t,n,r)=>{let s,i,o=0;D>0?(K.re(e),N.re(e),o=(()=>{let t;for(G(E,K.de),G(M,N.de),O.re(e),t=18;t>=3&&0===U[2*Fe._e[t]+1];t--);return e.we+=14+3*(t+1),t})(),s=e.we+3+7>>>3,i=e.he+3+7>>>3,i>s||(s=i)):s=i=n+5,n+4>s||-1==t?i==s?(X(2+(r?1:0),3),te(qe.Ie,qe.Ee)):(X(4+(r?1:0),3),((e,t,n)=>{let r;for(X(e-257,5),X(t-1,5),X(n-4,4),r=0;n>r;r++)X(U[2*Fe._e[r]+1],3);Z(E,e-1),Z(M,t-1)})(K.de+1,N.de+1,o+1),te(E,M)):re(t,n,r),q(),r&&ne()})(0>k?-1:k,C-k,n),k=C,t.We()}function ie(){let e,n,r,s;do{if(s=w-A-C,0===s&&0===C&&0===A)s=f;else if(-1==s)s--;else if(C>=f+f-et){u.set(u.subarray(f,f+f),0),x-=f,C-=f,k-=f,e=y,r=e;do{n=65535&d[--r],d[r]=f>n?0:n-f}while(0!=--e);e=f,r=e;do{n=65535&h[--r],h[r]=f>n?0:n-f}while(0!=--e);s+=f}if(0===t.je)return;e=t.He(u,C+A,s),A+=e,3>A||(p=255&u[C],p=(p<<g^255&u[C+1])&b)}while(et>A&&0!==t.je)}function oe(e){let t,n,r=I,s=C,i=_;const o=C>f-et?C-(f-et):0;let c=B;const a=l,w=C+258;let d=u[s+i-1],p=u[s+i];R>_||(r>>=2),c>A&&(c=A);do{if(t=e,u[t+i]==p&&u[t+i-1]==d&&u[t]==u[s]&&u[++t]==u[s+1]){s+=2,t++;do{}while(u[++s]==u[++t]&&u[++s]==u[++t]&&u[++s]==u[++t]&&u[++s]==u[++t]&&u[++s]==u[++t]&&u[++s]==u[++t]&&u[++s]==u[++t]&&u[++s]==u[++t]&&w>s);if(n=258-(w-s),s=w-258,n>i){if(x=e,i=n,n>=c)break;d=u[s+i-1],p=u[s+i]}}}while((e=65535&h[e&a])>o&&0!=--r);return i>A?A:i}e.ue=[],e.ge=[],e.le=[],E=[],M=[],U=[],e.pe=(t,n)=>{const r=e.le,s=r[n];let i=n<<1;for(;i<=e.fe&&(i<e.fe&&tt(t,r[i+1],r[i],e.ue)&&i++,!tt(t,s,r[i],e.ue));)r[n]=r[i],n=i,i<<=1;r[n]=s},e.Le=(t,S,x,W,j,G)=>(W||(W=8),j||(j=8),G||(G=0),t.Fe=null,-1==S&&(S=6),1>j||j>9||8!=W||9>x||x>15||0>S||S>9||0>G||G>2?We:(t.qe=e,a=x,f=1<<a,l=f-1,m=j+7,y=1<<m,b=y-1,g=r.floor((m+3-1)/3),u=new i(2*f),h=[],d=[],T=1<<j+6,e.Ne=new i(4*T),s=4*T,e.Oe=new o(T),e.Te=new i(T),D=S,V=G,(t=>(t.Ge=t.Je=0,t.Fe=null,e.pending=0,e.Qe=0,n=Ze,c=0,K.se=E,K.oe=qe.Me,N.se=M,N.oe=qe.Ue,O.se=U,O.oe=qe.Ke,L=0,F=0,H=8,q(),(()=>{w=2*f,d[y-1]=0;for(let e=0;y-1>e;e++)d[e]=0;P=Xe[D].De,R=Xe[D].Pe,B=Xe[D].Ve,I=Xe[D].Re,C=0,k=0,A=0,v=_=2,z=0,p=0})(),0))(t))),e.Xe=()=>42!=n&&n!=Ze&&n!=$e?We:(e.Te=null,e.Oe=null,e.Ne=null,d=null,h=null,u=null,e.qe=null,n==Ze?-3:0),e.Ye=(e,t,n)=>{let r=0;return-1==t&&(t=6),0>t||t>9||0>n||n>2?We:(Xe[D].Be!=Xe[t].Be&&0!==e.Ge&&(r=e.Ze(1)),D!=t&&(D=t,P=Xe[D].De,R=Xe[D].Pe,B=Xe[D].Ve,I=Xe[D].Re),V=n,r)},e.$e=(e,t,r)=>{let s,i=r,o=0;if(!t||42!=n)return We;if(3>i)return 0;for(i>f-et&&(i=f-et,o=r-i),u.set(t.subarray(o,o+i),0),C=i,k=i,p=255&u[0],p=(p<<g^255&u[1])&b,s=0;i-3>=s;s++)p=(p<<g^255&u[s+2])&b,h[s&l]=d[p],d[p]=s;return 0},e.Ze=(r,i)=>{let o,w,m,I,R;if(i>4||0>i)return We;if(!r.et||!r.tt&&0!==r.je||n==$e&&4!=i)return r.Fe=Ye[4],We;if(0===r.nt)return r.Fe=Ye[7],-5;var B;if(t=r,I=c,c=i,42==n&&(w=8+(a-8<<4)<<8,m=(D-1&255)>>1,m>3&&(m=3),w|=m<<6,0!==C&&(w|=32),w+=31-w%31,n=Ze,J((B=w)>>8&255),J(255&B)),0!==e.pending){if(t.We(),0===t.nt)return c=-1,0}else if(0===t.je&&I>=i&&4!=i)return t.Fe=Ye[7],-5;if(n==$e&&0!==t.je)return r.Fe=Ye[7],-5;if(0!==t.je||0!==A||0!=i&&n!=$e){switch(R=-1,Xe[D].Be){case 0:R=(e=>{let n,r=65535;for(r>s-5&&(r=s-5);;){if(1>=A){if(ie(),0===A&&0==e)return 0;if(0===A)break}if(C+=A,A=0,n=k+r,(0===C||C>=n)&&(A=C-n,C=n,se(!1),0===t.nt))return 0;if(C-k>=f-et&&(se(!1),0===t.nt))return 0}return se(4==e),0===t.nt?4==e?2:0:4==e?3:1})(i);break;case 1:R=(e=>{let n,r=0;for(;;){if(et>A){if(ie(),et>A&&0==e)return 0;if(0===A)break}if(3>A||(p=(p<<g^255&u[C+2])&b,r=65535&d[p],h[C&l]=d[p],d[p]=C),0===r||(C-r&65535)>f-et||2!=V&&(v=oe(r)),3>v)n=ee(0,255&u[C]),A--,C++;else if(n=ee(C-x,v-3),A-=v,v>P||3>A)C+=v,v=0,p=255&u[C],p=(p<<g^255&u[C+1])&b;else{v--;do{C++,p=(p<<g^255&u[C+2])&b,r=65535&d[p],h[C&l]=d[p],d[p]=C}while(0!=--v);C++}if(n&&(se(!1),0===t.nt))return 0}return se(4==e),0===t.nt?4==e?2:0:4==e?3:1})(i);break;case 2:R=(e=>{let n,r,s=0;for(;;){if(et>A){if(ie(),et>A&&0==e)return 0;if(0===A)break}if(3>A||(p=(p<<g^255&u[C+2])&b,s=65535&d[p],h[C&l]=d[p],d[p]=C),_=v,S=x,v=2,0!==s&&P>_&&f-et>=(C-s&65535)&&(2!=V&&(v=oe(s)),5>=v&&(1==V||3==v&&C-x>4096)&&(v=2)),3>_||v>_)if(0!==z){if(n=ee(0,255&u[C-1]),n&&se(!1),C++,A--,0===t.nt)return 0}else z=1,C++,A--;else{r=C+A-3,n=ee(C-1-S,_-3),A-=_-1,_-=2;do{++C>r||(p=(p<<g^255&u[C+2])&b,s=65535&d[p],h[C&l]=d[p],d[p]=C)}while(0!=--_);if(z=0,v=2,C++,n&&(se(!1),0===t.nt))return 0}}return 0!==z&&(n=ee(0,255&u[C-1]),z=0),se(4==e),0===t.nt?4==e?2:0:4==e?3:1})(i)}if(2!=R&&3!=R||(n=$e),0==R||2==R)return 0===t.nt&&(c=-1),0;if(1==R){if(1==i)X(2,3),Y(256,qe.Ie),$(),9>1+H+10-F&&(X(2,3),Y(256,qe.Ie),$()),H=7;else if(re(0,0,!1),3==i)for(o=0;y>o;o++)d[o]=0;if(t.We(),0===t.nt)return c=-1,0}}return 4!=i?0:1}}function rt(){const e=this;e.rt=0,e.st=0,e.je=0,e.Ge=0,e.nt=0,e.Je=0}function st(e){const t=new rt,n=(o=e&&e.chunkSize?e.chunkSize:65536)+5*(r.floor(o/16383)+1);var o;const c=new i(n);let f=e?e.level:-1;void 0===f&&(f=-1),t.Le(f),t.et=c,this.append=(e,r)=>{let o,f,a=0,l=0,u=0;const w=[];if(e.length){t.rt=0,t.tt=e,t.je=e.length;do{if(t.st=0,t.nt=n,o=t.Ze(0),0!=o)throw new s("deflating: "+t.Fe);t.st&&(t.st==n?w.push(new i(c)):w.push(c.subarray(0,t.st))),u+=t.st,r&&t.rt>0&&t.rt!=a&&(r(t.rt),a=t.rt)}while(t.je>0||0===t.nt);return w.length>1?(f=new i(u),w.forEach((e=>{f.set(e,l),l+=e.length}))):f=w[0]?new i(w[0]):new i,f}},this.flush=()=>{let e,r,o=0,f=0;const a=[];do{if(t.st=0,t.nt=n,e=t.Ze(4),1!=e&&0!=e)throw new s("deflating: "+t.Fe);n-t.nt>0&&a.push(c.slice(0,t.st)),f+=t.st}while(t.je>0||0===t.nt);return t.Xe(),r=new i(f),a.forEach((e=>{r.set(e,o),o+=e.length})),r}}rt.prototype={Le(e,t){const n=this;return n.qe=new nt,t||(t=Oe),n.qe.Le(n,e,t)},Ze(e){const t=this;return t.qe?t.qe.Ze(t,e):We},Xe(){const e=this;if(!e.qe)return We;const t=e.qe.Xe();return e.qe=null,t},Ye(e,t){const n=this;return n.qe?n.qe.Ye(n,e,t):We},$e(e,t){const n=this;return n.qe?n.qe.$e(n,e,t):We},He(e,t,n){const r=this;let s=r.je;return s>n&&(s=n),0===s?0:(r.je-=s,e.set(r.tt.subarray(r.rt,r.rt+s),t),r.rt+=s,r.Ge+=s,s)},We(){const e=this;let t=e.qe.pending;t>e.nt&&(t=e.nt),0!==t&&(e.et.set(e.qe.Ne.subarray(e.qe.Qe,e.qe.Qe+t),e.st),e.st+=t,e.qe.Qe+=t,e.Je+=t,e.nt-=t,e.qe.pending-=t,0===e.qe.pending&&(e.qe.Qe=0))}};const it=0,ot=1,ct=-2,ft=-3,at=-4,lt=-5,ut=[0,1,3,7,15,31,63,127,255,511,1023,2047,4095,8191,16383,32767,65535],wt=1440,ht=[96,7,256,0,8,80,0,8,16,84,8,115,82,7,31,0,8,112,0,8,48,0,9,192,80,7,10,0,8,96,0,8,32,0,9,160,0,8,0,0,8,128,0,8,64,0,9,224,80,7,6,0,8,88,0,8,24,0,9,144,83,7,59,0,8,120,0,8,56,0,9,208,81,7,17,0,8,104,0,8,40,0,9,176,0,8,8,0,8,136,0,8,72,0,9,240,80,7,4,0,8,84,0,8,20,85,8,227,83,7,43,0,8,116,0,8,52,0,9,200,81,7,13,0,8,100,0,8,36,0,9,168,0,8,4,0,8,132,0,8,68,0,9,232,80,7,8,0,8,92,0,8,28,0,9,152,84,7,83,0,8,124,0,8,60,0,9,216,82,7,23,0,8,108,0,8,44,0,9,184,0,8,12,0,8,140,0,8,76,0,9,248,80,7,3,0,8,82,0,8,18,85,8,163,83,7,35,0,8,114,0,8,50,0,9,196,81,7,11,0,8,98,0,8,34,0,9,164,0,8,2,0,8,130,0,8,66,0,9,228,80,7,7,0,8,90,0,8,26,0,9,148,84,7,67,0,8,122,0,8,58,0,9,212,82,7,19,0,8,106,0,8,42,0,9,180,0,8,10,0,8,138,0,8,74,0,9,244,80,7,5,0,8,86,0,8,22,192,8,0,83,7,51,0,8,118,0,8,54,0,9,204,81,7,15,0,8,102,0,8,38,0,9,172,0,8,6,0,8,134,0,8,70,0,9,236,80,7,9,0,8,94,0,8,30,0,9,156,84,7,99,0,8,126,0,8,62,0,9,220,82,7,27,0,8,110,0,8,46,0,9,188,0,8,14,0,8,142,0,8,78,0,9,252,96,7,256,0,8,81,0,8,17,85,8,131,82,7,31,0,8,113,0,8,49,0,9,194,80,7,10,0,8,97,0,8,33,0,9,162,0,8,1,0,8,129,0,8,65,0,9,226,80,7,6,0,8,89,0,8,25,0,9,146,83,7,59,0,8,121,0,8,57,0,9,210,81,7,17,0,8,105,0,8,41,0,9,178,0,8,9,0,8,137,0,8,73,0,9,242,80,7,4,0,8,85,0,8,21,80,8,258,83,7,43,0,8,117,0,8,53,0,9,202,81,7,13,0,8,101,0,8,37,0,9,170,0,8,5,0,8,133,0,8,69,0,9,234,80,7,8,0,8,93,0,8,29,0,9,154,84,7,83,0,8,125,0,8,61,0,9,218,82,7,23,0,8,109,0,8,45,0,9,186,0,8,13,0,8,141,0,8,77,0,9,250,80,7,3,0,8,83,0,8,19,85,8,195,83,7,35,0,8,115,0,8,51,0,9,198,81,7,11,0,8,99,0,8,35,0,9,166,0,8,3,0,8,131,0,8,67,0,9,230,80,7,7,0,8,91,0,8,27,0,9,150,84,7,67,0,8,123,0,8,59,0,9,214,82,7,19,0,8,107,0,8,43,0,9,182,0,8,11,0,8,139,0,8,75,0,9,246,80,7,5,0,8,87,0,8,23,192,8,0,83,7,51,0,8,119,0,8,55,0,9,206,81,7,15,0,8,103,0,8,39,0,9,174,0,8,7,0,8,135,0,8,71,0,9,238,80,7,9,0,8,95,0,8,31,0,9,158,84,7,99,0,8,127,0,8,63,0,9,222,82,7,27,0,8,111,0,8,47,0,9,190,0,8,15,0,8,143,0,8,79,0,9,254,96,7,256,0,8,80,0,8,16,84,8,115,82,7,31,0,8,112,0,8,48,0,9,193,80,7,10,0,8,96,0,8,32,0,9,161,0,8,0,0,8,128,0,8,64,0,9,225,80,7,6,0,8,88,0,8,24,0,9,145,83,7,59,0,8,120,0,8,56,0,9,209,81,7,17,0,8,104,0,8,40,0,9,177,0,8,8,0,8,136,0,8,72,0,9,241,80,7,4,0,8,84,0,8,20,85,8,227,83,7,43,0,8,116,0,8,52,0,9,201,81,7,13,0,8,100,0,8,36,0,9,169,0,8,4,0,8,132,0,8,68,0,9,233,80,7,8,0,8,92,0,8,28,0,9,153,84,7,83,0,8,124,0,8,60,0,9,217,82,7,23,0,8,108,0,8,44,0,9,185,0,8,12,0,8,140,0,8,76,0,9,249,80,7,3,0,8,82,0,8,18,85,8,163,83,7,35,0,8,114,0,8,50,0,9,197,81,7,11,0,8,98,0,8,34,0,9,165,0,8,2,0,8,130,0,8,66,0,9,229,80,7,7,0,8,90,0,8,26,0,9,149,84,7,67,0,8,122,0,8,58,0,9,213,82,7,19,0,8,106,0,8,42,0,9,181,0,8,10,0,8,138,0,8,74,0,9,245,80,7,5,0,8,86,0,8,22,192,8,0,83,7,51,0,8,118,0,8,54,0,9,205,81,7,15,0,8,102,0,8,38,0,9,173,0,8,6,0,8,134,0,8,70,0,9,237,80,7,9,0,8,94,0,8,30,0,9,157,84,7,99,0,8,126,0,8,62,0,9,221,82,7,27,0,8,110,0,8,46,0,9,189,0,8,14,0,8,142,0,8,78,0,9,253,96,7,256,0,8,81,0,8,17,85,8,131,82,7,31,0,8,113,0,8,49,0,9,195,80,7,10,0,8,97,0,8,33,0,9,163,0,8,1,0,8,129,0,8,65,0,9,227,80,7,6,0,8,89,0,8,25,0,9,147,83,7,59,0,8,121,0,8,57,0,9,211,81,7,17,0,8,105,0,8,41,0,9,179,0,8,9,0,8,137,0,8,73,0,9,243,80,7,4,0,8,85,0,8,21,80,8,258,83,7,43,0,8,117,0,8,53,0,9,203,81,7,13,0,8,101,0,8,37,0,9,171,0,8,5,0,8,133,0,8,69,0,9,235,80,7,8,0,8,93,0,8,29,0,9,155,84,7,83,0,8,125,0,8,61,0,9,219,82,7,23,0,8,109,0,8,45,0,9,187,0,8,13,0,8,141,0,8,77,0,9,251,80,7,3,0,8,83,0,8,19,85,8,195,83,7,35,0,8,115,0,8,51,0,9,199,81,7,11,0,8,99,0,8,35,0,9,167,0,8,3,0,8,131,0,8,67,0,9,231,80,7,7,0,8,91,0,8,27,0,9,151,84,7,67,0,8,123,0,8,59,0,9,215,82,7,19,0,8,107,0,8,43,0,9,183,0,8,11,0,8,139,0,8,75,0,9,247,80,7,5,0,8,87,0,8,23,192,8,0,83,7,51,0,8,119,0,8,55,0,9,207,81,7,15,0,8,103,0,8,39,0,9,175,0,8,7,0,8,135,0,8,71,0,9,239,80,7,9,0,8,95,0,8,31,0,9,159,84,7,99,0,8,127,0,8,63,0,9,223,82,7,27,0,8,111,0,8,47,0,9,191,0,8,15,0,8,143,0,8,79,0,9,255],dt=[80,5,1,87,5,257,83,5,17,91,5,4097,81,5,5,89,5,1025,85,5,65,93,5,16385,80,5,3,88,5,513,84,5,33,92,5,8193,82,5,9,90,5,2049,86,5,129,192,5,24577,80,5,2,87,5,385,83,5,25,91,5,6145,81,5,7,89,5,1537,85,5,97,93,5,24577,80,5,4,88,5,769,84,5,49,92,5,12289,82,5,13,90,5,3073,86,5,193,192,5,24577],pt=[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0],yt=[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,112,112],mt=[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577],bt=[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],gt=15;function kt(){let e,t,n,r,s,i;function o(e,t,o,c,f,a,l,u,w,h,d){let p,y,m,b,g,k,v,S,z,C,x,A,_,I,P;C=0,g=o;do{n[e[t+C]]++,C++,g--}while(0!==g);if(n[0]==o)return l[0]=-1,u[0]=0,it;for(S=u[0],k=1;gt>=k&&0===n[k];k++);for(v=k,k>S&&(S=k),g=gt;0!==g&&0===n[g];g--);for(m=g,S>g&&(S=g),u[0]=S,I=1<<k;g>k;k++,I<<=1)if(0>(I-=n[k]))return ft;if(0>(I-=n[g]))return ft;for(n[g]+=I,i[1]=k=0,C=1,_=2;0!=--g;)i[_]=k+=n[C],_++,C++;g=0,C=0;do{0!==(k=e[t+C])&&(d[i[k]++]=g),C++}while(++g<o);for(o=i[m],i[0]=g=0,C=0,b=-1,A=-S,s[0]=0,x=0,P=0;m>=v;v++)for(p=n[v];0!=p--;){for(;v>A+S;){if(b++,A+=S,P=m-A,P=P>S?S:P,(y=1<<(k=v-A))>p+1&&(y-=p+1,_=v,P>k))for(;++k<P&&(y<<=1)>n[++_];)y-=n[_];if(P=1<<k,h[0]+P>wt)return ft;s[b]=x=h[0],h[0]+=P,0!==b?(i[b]=g,r[0]=k,r[1]=S,k=g>>>A-S,r[2]=x-s[b-1]-k,w.set(r,3*(s[b-1]+k))):l[0]=x}for(r[1]=v-A,o>C?d[C]<c?(r[0]=256>d[C]?0:96,r[2]=d[C++]):(r[0]=a[d[C]-c]+16+64,r[2]=f[d[C++]-c]):r[0]=192,y=1<<v-A,k=g>>>A;P>k;k+=y)w.set(r,3*(x+k));for(k=1<<v-1;g&k;k>>>=1)g^=k;for(g^=k,z=(1<<A)-1;(g&z)!=i[b];)b--,A-=S,z=(1<<A)-1}return 0!==I&&1!=m?lt:it}function c(o){let c;for(e||(e=[],t=[],n=new f(gt+1),r=[],s=new f(gt),i=new f(gt+1)),t.length<o&&(t=[]),c=0;o>c;c++)t[c]=0;for(c=0;gt+1>c;c++)n[c]=0;for(c=0;3>c;c++)r[c]=0;s.set(n.subarray(0,gt),0),i.set(n.subarray(0,gt+1),0)}this.it=(n,r,s,i,f)=>{let a;return c(19),e[0]=0,a=o(n,0,19,19,null,null,s,r,i,e,t),a==ft?f.Fe="oversubscribed dynamic bit lengths tree":a!=lt&&0!==r[0]||(f.Fe="incomplete dynamic bit lengths tree",a=ft),a},this.ot=(n,r,s,i,f,a,l,u,w)=>{let h;return c(288),e[0]=0,h=o(s,0,n,257,pt,yt,a,i,u,e,t),h!=it||0===i[0]?(h==ft?w.Fe="oversubscribed literal/length tree":h!=at&&(w.Fe="incomplete literal/length tree",h=ft),h):(c(288),h=o(s,n,r,0,mt,bt,l,f,u,e,t),h!=it||0===f[0]&&n>257?(h==ft?w.Fe="oversubscribed distance tree":h==lt?(w.Fe="incomplete distance tree",h=ft):h!=at&&(w.Fe="empty distance tree with lengths",h=ft),h):it)}}kt.ct=(e,t,n,r)=>(e[0]=9,t[0]=5,n[0]=ht,r[0]=dt,it);const vt=0,St=1,zt=2,Ct=3,xt=4,At=5,_t=6,It=7,Pt=8,Dt=9;function Vt(){const e=this;let t,n,r,s,i=0,o=0,c=0,f=0,a=0,l=0,u=0,w=0,h=0,d=0;function p(e,t,n,r,s,i,o,c){let f,a,l,u,w,h,d,p,y,m,b,g,k,v,S,z;d=c.rt,p=c.je,w=o.ft,h=o.lt,y=o.write,m=y<o.read?o.read-y-1:o.end-y,b=ut[e],g=ut[t];do{for(;20>h;)p--,w|=(255&c.ut(d++))<<h,h+=8;if(f=w&b,a=n,l=r,z=3*(l+f),0!==(u=a[z]))for(;;){if(w>>=a[z+1],h-=a[z+1],16&u){for(u&=15,k=a[z+2]+(w&ut[u]),w>>=u,h-=u;15>h;)p--,w|=(255&c.ut(d++))<<h,h+=8;for(f=w&g,a=s,l=i,z=3*(l+f),u=a[z];;){if(w>>=a[z+1],h-=a[z+1],16&u){for(u&=15;u>h;)p--,w|=(255&c.ut(d++))<<h,h+=8;if(v=a[z+2]+(w&ut[u]),w>>=u,h-=u,m-=k,v>y){S=y-v;do{S+=o.end}while(0>S);if(u=o.end-S,k>u){if(k-=u,y-S>0&&u>y-S)do{o.wt[y++]=o.wt[S++]}while(0!=--u);else o.wt.set(o.wt.subarray(S,S+u),y),y+=u,S+=u,u=0;S=0}}else S=y-v,y-S>0&&2>y-S?(o.wt[y++]=o.wt[S++],o.wt[y++]=o.wt[S++],k-=2):(o.wt.set(o.wt.subarray(S,S+2),y),y+=2,S+=2,k-=2);if(y-S>0&&k>y-S)do{o.wt[y++]=o.wt[S++]}while(0!=--k);else o.wt.set(o.wt.subarray(S,S+k),y),y+=k,S+=k,k=0;break}if(64&u)return c.Fe="invalid distance code",k=c.je-p,k=k>h>>3?h>>3:k,p+=k,d-=k,h-=k<<3,o.ft=w,o.lt=h,c.je=p,c.Ge+=d-c.rt,c.rt=d,o.write=y,ft;f+=a[z+2],f+=w&ut[u],z=3*(l+f),u=a[z]}break}if(64&u)return 32&u?(k=c.je-p,k=k>h>>3?h>>3:k,p+=k,d-=k,h-=k<<3,o.ft=w,o.lt=h,c.je=p,c.Ge+=d-c.rt,c.rt=d,o.write=y,ot):(c.Fe="invalid literal/length code",k=c.je-p,k=k>h>>3?h>>3:k,p+=k,d-=k,h-=k<<3,o.ft=w,o.lt=h,c.je=p,c.Ge+=d-c.rt,c.rt=d,o.write=y,ft);if(f+=a[z+2],f+=w&ut[u],z=3*(l+f),0===(u=a[z])){w>>=a[z+1],h-=a[z+1],o.wt[y++]=a[z+2],m--;break}}else w>>=a[z+1],h-=a[z+1],o.wt[y++]=a[z+2],m--}while(m>=258&&p>=10);return k=c.je-p,k=k>h>>3?h>>3:k,p+=k,d-=k,h-=k<<3,o.ft=w,o.lt=h,c.je=p,c.Ge+=d-c.rt,c.rt=d,o.write=y,it}e.init=(e,i,o,c,f,a)=>{t=vt,u=e,w=i,r=o,h=c,s=f,d=a,n=null},e.ht=(e,y,m)=>{let b,g,k,v,S,z,C,x=0,A=0,_=0;for(_=y.rt,v=y.je,x=e.ft,A=e.lt,S=e.write,z=S<e.read?e.read-S-1:e.end-S;;)switch(t){case vt:if(z>=258&&v>=10&&(e.ft=x,e.lt=A,y.je=v,y.Ge+=_-y.rt,y.rt=_,e.write=S,m=p(u,w,r,h,s,d,e,y),_=y.rt,v=y.je,x=e.ft,A=e.lt,S=e.write,z=S<e.read?e.read-S-1:e.end-S,m!=it)){t=m==ot?It:Dt;break}c=u,n=r,o=h,t=St;case St:for(b=c;b>A;){if(0===v)return e.ft=x,e.lt=A,y.je=v,y.Ge+=_-y.rt,y.rt=_,e.write=S,e.dt(y,m);m=it,v--,x|=(255&y.ut(_++))<<A,A+=8}if(g=3*(o+(x&ut[b])),x>>>=n[g+1],A-=n[g+1],k=n[g],0===k){f=n[g+2],t=_t;break}if(16&k){a=15&k,i=n[g+2],t=zt;break}if(!(64&k)){c=k,o=g/3+n[g+2];break}if(32&k){t=It;break}return t=Dt,y.Fe="invalid literal/length code",m=ft,e.ft=x,e.lt=A,y.je=v,y.Ge+=_-y.rt,y.rt=_,e.write=S,e.dt(y,m);case zt:for(b=a;b>A;){if(0===v)return e.ft=x,e.lt=A,y.je=v,y.Ge+=_-y.rt,y.rt=_,e.write=S,e.dt(y,m);m=it,v--,x|=(255&y.ut(_++))<<A,A+=8}i+=x&ut[b],x>>=b,A-=b,c=w,n=s,o=d,t=Ct;case Ct:for(b=c;b>A;){if(0===v)return e.ft=x,e.lt=A,y.je=v,y.Ge+=_-y.rt,y.rt=_,e.write=S,e.dt(y,m);m=it,v--,x|=(255&y.ut(_++))<<A,A+=8}if(g=3*(o+(x&ut[b])),x>>=n[g+1],A-=n[g+1],k=n[g],16&k){a=15&k,l=n[g+2],t=xt;break}if(!(64&k)){c=k,o=g/3+n[g+2];break}return t=Dt,y.Fe="invalid distance code",m=ft,e.ft=x,e.lt=A,y.je=v,y.Ge+=_-y.rt,y.rt=_,e.write=S,e.dt(y,m);case xt:for(b=a;b>A;){if(0===v)return e.ft=x,e.lt=A,y.je=v,y.Ge+=_-y.rt,y.rt=_,e.write=S,e.dt(y,m);m=it,v--,x|=(255&y.ut(_++))<<A,A+=8}l+=x&ut[b],x>>=b,A-=b,t=At;case At:for(C=S-l;0>C;)C+=e.end;for(;0!==i;){if(0===z&&(S==e.end&&0!==e.read&&(S=0,z=S<e.read?e.read-S-1:e.end-S),0===z&&(e.write=S,m=e.dt(y,m),S=e.write,z=S<e.read?e.read-S-1:e.end-S,S==e.end&&0!==e.read&&(S=0,z=S<e.read?e.read-S-1:e.end-S),0===z)))return e.ft=x,e.lt=A,y.je=v,y.Ge+=_-y.rt,y.rt=_,e.write=S,e.dt(y,m);e.wt[S++]=e.wt[C++],z--,C==e.end&&(C=0),i--}t=vt;break;case _t:if(0===z&&(S==e.end&&0!==e.read&&(S=0,z=S<e.read?e.read-S-1:e.end-S),0===z&&(e.write=S,m=e.dt(y,m),S=e.write,z=S<e.read?e.read-S-1:e.end-S,S==e.end&&0!==e.read&&(S=0,z=S<e.read?e.read-S-1:e.end-S),0===z)))return e.ft=x,e.lt=A,y.je=v,y.Ge+=_-y.rt,y.rt=_,e.write=S,e.dt(y,m);m=it,e.wt[S++]=f,z--,t=vt;break;case It:if(A>7&&(A-=8,v++,_--),e.write=S,m=e.dt(y,m),S=e.write,z=S<e.read?e.read-S-1:e.end-S,e.read!=e.write)return e.ft=x,e.lt=A,y.je=v,y.Ge+=_-y.rt,y.rt=_,e.write=S,e.dt(y,m);t=Pt;case Pt:return m=ot,e.ft=x,e.lt=A,y.je=v,y.Ge+=_-y.rt,y.rt=_,e.write=S,e.dt(y,m);case Dt:return m=ft,e.ft=x,e.lt=A,y.je=v,y.Ge+=_-y.rt,y.rt=_,e.write=S,e.dt(y,m);default:return m=ct,e.ft=x,e.lt=A,y.je=v,y.Ge+=_-y.rt,y.rt=_,e.write=S,e.dt(y,m)}},e.yt=()=>{}}const Rt=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],Bt=0,Et=1,Mt=2,Ut=3,Kt=4,Nt=5,Ot=6,Tt=7,Wt=8,jt=9;function Ht(e,t){const n=this;let r,s=Bt,o=0,c=0,a=0;const l=[0],u=[0],w=new Vt;let h=0,d=new f(3*wt);const p=new kt;n.lt=0,n.ft=0,n.wt=new i(t),n.end=t,n.read=0,n.write=0,n.reset=(e,t)=>{t&&(t[0]=0),s==Ot&&w.yt(e),s=Bt,n.lt=0,n.ft=0,n.read=n.write=0},n.reset(e,null),n.dt=(e,t)=>{let r,s,i;return s=e.st,i=n.read,r=(i>n.write?n.end:n.write)-i,r>e.nt&&(r=e.nt),0!==r&&t==lt&&(t=it),e.nt-=r,e.Je+=r,e.et.set(n.wt.subarray(i,i+r),s),s+=r,i+=r,i==n.end&&(i=0,n.write==n.end&&(n.write=0),r=n.write-i,r>e.nt&&(r=e.nt),0!==r&&t==lt&&(t=it),e.nt-=r,e.Je+=r,e.et.set(n.wt.subarray(i,i+r),s),s+=r,i+=r),e.st=s,n.read=i,t},n.ht=(e,t)=>{let i,f,y,m,b,g,k,v;for(m=e.rt,b=e.je,f=n.ft,y=n.lt,g=n.write,k=g<n.read?n.read-g-1:n.end-g;;){let S,z,C,x,A,_,I,P;switch(s){case Bt:for(;3>y;){if(0===b)return n.ft=f,n.lt=y,e.je=b,e.Ge+=m-e.rt,e.rt=m,n.write=g,n.dt(e,t);t=it,b--,f|=(255&e.ut(m++))<<y,y+=8}switch(i=7&f,h=1&i,i>>>1){case 0:f>>>=3,y-=3,i=7&y,f>>>=i,y-=i,s=Et;break;case 1:S=[],z=[],C=[[]],x=[[]],kt.ct(S,z,C,x),w.init(S[0],z[0],C[0],0,x[0],0),f>>>=3,y-=3,s=Ot;break;case 2:f>>>=3,y-=3,s=Ut;break;case 3:return f>>>=3,y-=3,s=jt,e.Fe="invalid block type",t=ft,n.ft=f,n.lt=y,e.je=b,e.Ge+=m-e.rt,e.rt=m,n.write=g,n.dt(e,t)}break;case Et:for(;32>y;){if(0===b)return n.ft=f,n.lt=y,e.je=b,e.Ge+=m-e.rt,e.rt=m,n.write=g,n.dt(e,t);t=it,b--,f|=(255&e.ut(m++))<<y,y+=8}if((~f>>>16&65535)!=(65535&f))return s=jt,e.Fe="invalid stored block lengths",t=ft,n.ft=f,n.lt=y,e.je=b,e.Ge+=m-e.rt,e.rt=m,n.write=g,n.dt(e,t);o=65535&f,f=y=0,s=0!==o?Mt:0!==h?Tt:Bt;break;case Mt:if(0===b)return n.ft=f,n.lt=y,e.je=b,e.Ge+=m-e.rt,e.rt=m,n.write=g,n.dt(e,t);if(0===k&&(g==n.end&&0!==n.read&&(g=0,k=g<n.read?n.read-g-1:n.end-g),0===k&&(n.write=g,t=n.dt(e,t),g=n.write,k=g<n.read?n.read-g-1:n.end-g,g==n.end&&0!==n.read&&(g=0,k=g<n.read?n.read-g-1:n.end-g),0===k)))return n.ft=f,n.lt=y,e.je=b,e.Ge+=m-e.rt,e.rt=m,n.write=g,n.dt(e,t);if(t=it,i=o,i>b&&(i=b),i>k&&(i=k),n.wt.set(e.He(m,i),g),m+=i,b-=i,g+=i,k-=i,0!=(o-=i))break;s=0!==h?Tt:Bt;break;case Ut:for(;14>y;){if(0===b)return n.ft=f,n.lt=y,e.je=b,e.Ge+=m-e.rt,e.rt=m,n.write=g,n.dt(e,t);t=it,b--,f|=(255&e.ut(m++))<<y,y+=8}if(c=i=16383&f,(31&i)>29||(i>>5&31)>29)return s=jt,e.Fe="too many length or distance symbols",t=ft,n.ft=f,n.lt=y,e.je=b,e.Ge+=m-e.rt,e.rt=m,n.write=g,n.dt(e,t);if(i=258+(31&i)+(i>>5&31),!r||r.length<i)r=[];else for(v=0;i>v;v++)r[v]=0;f>>>=14,y-=14,a=0,s=Kt;case Kt:for(;4+(c>>>10)>a;){for(;3>y;){if(0===b)return n.ft=f,n.lt=y,e.je=b,e.Ge+=m-e.rt,e.rt=m,n.write=g,n.dt(e,t);t=it,b--,f|=(255&e.ut(m++))<<y,y+=8}r[Rt[a++]]=7&f,f>>>=3,y-=3}for(;19>a;)r[Rt[a++]]=0;if(l[0]=7,i=p.it(r,l,u,d,e),i!=it)return(t=i)==ft&&(r=null,s=jt),n.ft=f,n.lt=y,e.je=b,e.Ge+=m-e.rt,e.rt=m,n.write=g,n.dt(e,t);a=0,s=Nt;case Nt:for(;i=c,258+(31&i)+(i>>5&31)>a;){let o,w;for(i=l[0];i>y;){if(0===b)return n.ft=f,n.lt=y,e.je=b,e.Ge+=m-e.rt,e.rt=m,n.write=g,n.dt(e,t);t=it,b--,f|=(255&e.ut(m++))<<y,y+=8}if(i=d[3*(u[0]+(f&ut[i]))+1],w=d[3*(u[0]+(f&ut[i]))+2],16>w)f>>>=i,y-=i,r[a++]=w;else{for(v=18==w?7:w-14,o=18==w?11:3;i+v>y;){if(0===b)return n.ft=f,n.lt=y,e.je=b,e.Ge+=m-e.rt,e.rt=m,n.write=g,n.dt(e,t);t=it,b--,f|=(255&e.ut(m++))<<y,y+=8}if(f>>>=i,y-=i,o+=f&ut[v],f>>>=v,y-=v,v=a,i=c,v+o>258+(31&i)+(i>>5&31)||16==w&&1>v)return r=null,s=jt,e.Fe="invalid bit length repeat",t=ft,n.ft=f,n.lt=y,e.je=b,e.Ge+=m-e.rt,e.rt=m,n.write=g,n.dt(e,t);w=16==w?r[v-1]:0;do{r[v++]=w}while(0!=--o);a=v}}if(u[0]=-1,A=[],_=[],I=[],P=[],A[0]=9,_[0]=6,i=c,i=p.ot(257+(31&i),1+(i>>5&31),r,A,_,I,P,d,e),i!=it)return i==ft&&(r=null,s=jt),t=i,n.ft=f,n.lt=y,e.je=b,e.Ge+=m-e.rt,e.rt=m,n.write=g,n.dt(e,t);w.init(A[0],_[0],d,I[0],d,P[0]),s=Ot;case Ot:if(n.ft=f,n.lt=y,e.je=b,e.Ge+=m-e.rt,e.rt=m,n.write=g,(t=w.ht(n,e,t))!=ot)return n.dt(e,t);if(t=it,w.yt(e),m=e.rt,b=e.je,f=n.ft,y=n.lt,g=n.write,k=g<n.read?n.read-g-1:n.end-g,0===h){s=Bt;break}s=Tt;case Tt:if(n.write=g,t=n.dt(e,t),g=n.write,k=g<n.read?n.read-g-1:n.end-g,n.read!=n.write)return n.ft=f,n.lt=y,e.je=b,e.Ge+=m-e.rt,e.rt=m,n.write=g,n.dt(e,t);s=Wt;case Wt:return t=ot,n.ft=f,n.lt=y,e.je=b,e.Ge+=m-e.rt,e.rt=m,n.write=g,n.dt(e,t);case jt:return t=ft,n.ft=f,n.lt=y,e.je=b,e.Ge+=m-e.rt,e.rt=m,n.write=g,n.dt(e,t);default:return t=ct,n.ft=f,n.lt=y,e.je=b,e.Ge+=m-e.rt,e.rt=m,n.write=g,n.dt(e,t)}}},n.yt=e=>{n.reset(e,null),n.wt=null,d=null},n.bt=(e,t,r)=>{n.wt.set(e.subarray(t,t+r),0),n.read=n.write=r},n.gt=()=>s==Et?1:0}const Lt=13,Ft=[0,0,255,255];function qt(){const e=this;function t(e){return e&&e.kt?(e.Ge=e.Je=0,e.Fe=null,e.kt.mode=7,e.kt.vt.reset(e,null),it):ct}e.mode=0,e.method=0,e.St=[0],e.zt=0,e.marker=0,e.Ct=0,e.xt=t=>(e.vt&&e.vt.yt(t),e.vt=null,it),e.At=(n,r)=>(n.Fe=null,e.vt=null,8>r||r>15?(e.xt(n),ct):(e.Ct=r,n.kt.vt=new Ht(n,1<<r),t(n),it)),e._t=(e,t)=>{let n,r;if(!e||!e.kt||!e.tt)return ct;const s=e.kt;for(t=4==t?lt:it,n=lt;;)switch(s.mode){case 0:if(0===e.je)return n;if(n=t,e.je--,e.Ge++,8!=(15&(s.method=e.ut(e.rt++)))){s.mode=Lt,e.Fe="unknown compression method",s.marker=5;break}if(8+(s.method>>4)>s.Ct){s.mode=Lt,e.Fe="invalid win size",s.marker=5;break}s.mode=1;case 1:if(0===e.je)return n;if(n=t,e.je--,e.Ge++,r=255&e.ut(e.rt++),((s.method<<8)+r)%31!=0){s.mode=Lt,e.Fe="incorrect header check",s.marker=5;break}if(!(32&r)){s.mode=7;break}s.mode=2;case 2:if(0===e.je)return n;n=t,e.je--,e.Ge++,s.zt=(255&e.ut(e.rt++))<<24&4278190080,s.mode=3;case 3:if(0===e.je)return n;n=t,e.je--,e.Ge++,s.zt+=(255&e.ut(e.rt++))<<16&16711680,s.mode=4;case 4:if(0===e.je)return n;n=t,e.je--,e.Ge++,s.zt+=(255&e.ut(e.rt++))<<8&65280,s.mode=5;case 5:return 0===e.je?n:(n=t,e.je--,e.Ge++,s.zt+=255&e.ut(e.rt++),s.mode=6,2);case 6:return s.mode=Lt,e.Fe="need dictionary",s.marker=0,ct;case 7:if(n=s.vt.ht(e,n),n==ft){s.mode=Lt,s.marker=0;break}if(n==it&&(n=t),n!=ot)return n;n=t,s.vt.reset(e,s.St),s.mode=12;case 12:return e.je=0,ot;case Lt:return ft;default:return ct}},e.It=(e,t,n)=>{let r=0,s=n;if(!e||!e.kt||6!=e.kt.mode)return ct;const i=e.kt;return s<1<<i.Ct||(s=(1<<i.Ct)-1,r=n-s),i.vt.bt(t,r,s),i.mode=7,it},e.Pt=e=>{let n,r,s,i,o;if(!e||!e.kt)return ct;const c=e.kt;if(c.mode!=Lt&&(c.mode=Lt,c.marker=0),0===(n=e.je))return lt;for(r=e.rt,s=c.marker;0!==n&&4>s;)e.ut(r)==Ft[s]?s++:s=0!==e.ut(r)?0:4-s,r++,n--;return e.Ge+=r-e.rt,e.rt=r,e.je=n,c.marker=s,4!=s?ft:(i=e.Ge,o=e.Je,t(e),e.Ge=i,e.Je=o,c.mode=7,it)},e.Dt=e=>e&&e.kt&&e.kt.vt?e.kt.vt.gt():ct}function Gt(){}function Jt(e){const t=new Gt,n=e&&e.chunkSize?r.floor(2*e.chunkSize):131072,o=new i(n);let c=!1;t.At(),t.et=o,this.append=(e,r)=>{const f=[];let a,l,u=0,w=0,h=0;if(0!==e.length){t.rt=0,t.tt=e,t.je=e.length;do{if(t.st=0,t.nt=n,0!==t.je||c||(t.rt=0,c=!0),a=t._t(0),c&&a===lt){if(0!==t.je)throw new s("inflating: bad input")}else if(a!==it&&a!==ot)throw new s("inflating: "+t.Fe);if((c||a===ot)&&t.je===e.length)throw new s("inflating: bad input");t.st&&(t.st===n?f.push(new i(o)):f.push(o.subarray(0,t.st))),h+=t.st,r&&t.rt>0&&t.rt!=u&&(r(t.rt),u=t.rt)}while(t.je>0||0===t.nt);return f.length>1?(l=new i(h),f.forEach((e=>{l.set(e,w),w+=e.length}))):l=f[0]?new i(f[0]):new i,l}},this.flush=()=>{t.xt()}}Gt.prototype={At(e){const t=this;return t.kt=new qt,e||(e=15),t.kt.At(t,e)},_t(e){const t=this;return t.kt?t.kt._t(t,e):ct},xt(){const e=this;if(!e.kt)return ct;const t=e.kt.xt(e);return e.kt=null,t},Pt(){const e=this;return e.kt?e.kt.Pt(e):ct},It(e,t){const n=this;return n.kt?n.kt.It(n,e,t):ct},ut(e){return this.tt[e]},He(e,t){return this.tt.subarray(e,e+t)}},self.initCodec=()=>{self.Deflate=st,self.Inflate=Jt};
|
|
1619
|
-
`,o=()=>e.useDataURI?"data:text/javascript,"+encodeURIComponent(i):URL.createObjectURL(new Blob([i],{type:"text/javascript"}));t({workerScripts:{inflate:[o],deflate:[o]}})}const y2i="Writer iterator completed too soon",w2i="Content-Type",b2i=64*1024,$ee="writable";class fI{constructor(){this.size=0}init(){this.initialized=!0}}class ete extends fI{get readable(){const e=this,{chunkSize:i=b2i}=e,o=new ReadableStream({start(){this.chunkOffset=0},async pull(r){const{offset:s=0,size:n,diskNumberStart:a}=o,{chunkOffset:l}=this;r.enqueue(await fr(e,s+l,Math.min(i,n-l),a)),l+i>n?r.close():this.chunkOffset+=i}});return o}}class tte extends ete{constructor(e){super(),Object.assign(this,{blob:e,size:e.size})}async readUint8Array(e,i){const o=this,r=e+i;let s=await(e||r<o.size?o.blob.slice(e,r):o.blob).arrayBuffer();return s.byteLength>i&&(s=s.slice(e,r)),new Uint8Array(s)}}class ite extends fI{constructor(e){super();const i=this,o=new TransformStream,r=[];e&&r.push([w2i,e]),Object.defineProperty(i,$ee,{get(){return o.writable}}),i.blob=new Response(o.readable,{headers:r}).blob()}getData(){return this.blob}}class M2i extends ite{constructor(e){super(e),Object.assign(this,{encoding:e,utf8:!e||e.toLowerCase()=="utf-8"})}async getData(){const{encoding:e,utf8:i}=this,o=await super.getData();if(o.text&&i)return o.text();{const r=new FileReader;return new Promise((s,n)=>{Object.assign(r,{onload:({target:a})=>s(a.result),onerror:()=>n(r.error)}),r.readAsText(o,e)})}}}class C2i extends ete{constructor(e){super(),this.readers=e}async init(){const e=this,{readers:i}=e;e.lastDiskNumber=0,e.lastDiskOffset=0,await Promise.all(i.map(async(o,r)=>{await o.init(),r!=i.length-1&&(e.lastDiskOffset+=o.size),e.size+=o.size})),super.init()}async readUint8Array(e,i,o=0){const r=this,{readers:s}=this;let n,a=o;a==-1&&(a=s.length-1);let l=e;for(;l>=s[a].size;)l-=s[a].size,a++;const c=s[a],d=c.size;if(l+i<=d)n=await fr(c,l,i);else{const u=d-l;n=new Uint8Array(i),n.set(await fr(c,l,u)),n.set(await r.readUint8Array(e+u,i-u,o),u)}return r.lastDiskNumber=Math.max(a,r.lastDiskNumber),n}}class ote extends fI{constructor(e,i=4294967295){super();const o=this;Object.assign(o,{diskNumber:0,diskOffset:0,size:0,maxSize:i,availableSize:i});let r,s,n;const a=new WritableStream({async write(d){const{availableSize:u}=o;if(n)d.length>=u?(await l(d.slice(0,u)),await c(),o.diskOffset+=r.size,o.diskNumber++,n=null,await this.write(d.slice(u))):await l(d);else{const{value:h,done:A}=await e.next();if(A&&!h)throw new Error(y2i);r=h,r.size=0,r.maxSize&&(o.maxSize=r.maxSize),o.availableSize=o.maxSize,await C8(r),s=h.writable,n=s.getWriter(),await this.write(d)}},async close(){await n.ready,await c()}});Object.defineProperty(o,$ee,{get(){return a}});async function l(d){const u=d.length;u&&(await n.ready,await n.write(d),r.size+=u,o.size+=u,o.availableSize-=u)}async function c(){s.size=r.size,await n.close()}}}async function C8(t,e){if(t.init&&!t.initialized)await t.init(e);else return Promise.resolve()}function x2i(t){return Array.isArray(t)&&(t=new C2i(t)),t instanceof ReadableStream&&(t={readable:t}),t}function k2i(t){t.writable===Tr&&typeof t.next==tv&&(t=new ote(t)),t instanceof WritableStream&&(t={writable:t});const{writable:e}=t;return e.size===Tr&&(e.size=0),t instanceof ote||Object.assign(t,{diskNumber:0,diskOffset:0,availableSize:1/0,maxSize:1/0}),t}function fr(t,e,i,o){return t.readUint8Array(e,i,o)}const rte="\0\u263A\u263B\u2665\u2666\u2663\u2660\u2022\u25D8\u25CB\u25D9\u2642\u2640\u266A\u266B\u263C\u25BA\u25C4\u2195\u203C\xB6\xA7\u25AC\u21A8\u2191\u2193\u2192\u2190\u221F\u2194\u25B2\u25BC !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\u2302\xC7\xFC\xE9\xE2\xE4\xE0\xE5\xE7\xEA\xEB\xE8\xEF\xEE\xEC\xC4\xC5\xC9\xE6\xC6\xF4\xF6\xF2\xFB\xF9\xFF\xD6\xDC\xA2\xA3\xA5\u20A7\u0192\xE1\xED\xF3\xFA\xF1\xD1\xAA\xBA\xBF\u2310\xAC\xBD\xBC\xA1\xAB\xBB\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u03B1\xDF\u0393\u03C0\u03A3\u03C3\xB5\u03C4\u03A6\u0398\u03A9\u03B4\u221E\u03C6\u03B5\u2229\u2261\xB1\u2265\u2264\u2320\u2321\xF7\u2248\xB0\u2219\xB7\u221A\u207F\xB2\u25A0 ".split(""),I2i=rte.length==256;function E2i(t){if(I2i){let e="";for(let i=0;i<t.length;i++)e+=rte[t[i]];return e}else return new TextDecoder().decode(t)}function x8(t,e){return e&&e.trim().toLowerCase()=="cp437"?E2i(t):new TextDecoder(e).decode(t)}const nte="filename",ste="rawFilename",ate="comment",lte="rawComment",cte="uncompressedSize",dte="compressedSize",ute="offset",gI="diskNumberStart",mI="lastModDate",vI="rawLastModDate",hte="lastAccessDate",D2i="rawLastAccessDate",pte="creationDate",P2i="rawCreationDate",B2i="internalFileAttribute",S2i="externalFileAttribute",L2i="msDosCompatible",T2i="zip64",j2i=[nte,ste,dte,cte,mI,vI,ate,lte,hte,pte,ute,gI,gI,B2i,S2i,L2i,T2i,"directory","bitFlag","encrypted","signature","filenameUTF8","commentUTF8","compressionMethod","version","versionMadeBy","extraField","rawExtraField","extraFieldZip64","extraFieldUnicodePath","extraFieldUnicodeComment","extraFieldAES","extraFieldNTFS","extraFieldExtendedTimestamp"];class Ate{constructor(e){j2i.forEach(i=>this[i]=e[i])}}const yI="File format is not recognized",N2i="End of central directory not found",R2i="End of Zip64 central directory locator not found",O2i="Central directory header not found",z2i="Local file header not found",F2i="Zip64 extra field not found",U2i="File contains encrypted entry",V2i="Encryption method not supported",fte="Compression method not supported",gte="Split zip file",mte="utf-8",vte="cp437",H2i=[[cte,fu],[dte,fu],[ute,fu],[gI,Cc]],Q2i={[Cc]:{getValue:yo,bytes:4},[fu]:{getValue:k8,bytes:8}};class _2i{constructor(e,i={}){Object.assign(this,{reader:x2i(e),options:i,config:Svi()})}async*getEntriesGenerator(e={}){const i=this;let{reader:o}=i;const{config:r}=i;if(await C8(o),(o.size===Tr||!o.readUint8Array)&&(o=new tte(await new Response(o.readable).blob()),await C8(o)),o.size<S1)throw new Error(yI);o.chunkSize=Lvi(r);const s=await J2i(o,mvi,o.size,S1,Cc*16);if(!s){const N=await fr(o,0,4),L=Yo(N);throw yo(L)==gvi?new Error(gte):new Error(N2i)}const n=Yo(s);let a=yo(n,12),l=yo(n,16);const c=s.offset,d=Ko(n,20),u=c+S1+d;let h=Ko(n,4);const A=o.lastDiskNumber||0;let f=Ko(n,6),p=Ko(n,8),g=0,m=0;if(l==fu||a==fu||p==Cc||f==Cc){const N=await fr(o,s.offset-rI,rI),L=Yo(N);if(yo(L,0)==vvi){l=k8(L,8);let j=await fr(o,l,nI,-1),O=Yo(j);const V=s.offset-rI-nI;if(yo(O,0)!=hee&&l!=V){const Q=l;l=V,g=l-Q,j=await fr(o,l,nI,-1),O=Yo(j)}if(yo(O,0)!=hee)throw new Error(R2i);h==Cc&&(h=yo(O,16)),f==Cc&&(f=yo(O,20)),p==Cc&&(p=k8(O,32)),a==fu&&(a=k8(O,40)),l-=a}}if(l>=o.size&&(g=o.size-l-a-S1,l=o.size-a-S1),A!=h)throw new Error(gte);if(l<0)throw new Error(yI);let M=0,y=await fr(o,l,a,f),b=Yo(y);if(a){const N=s.offset-a;if(yo(b,M)!=uee&&l!=N){const L=l;l=N,g+=l-L,y=await fr(o,l,a,f),b=Yo(y)}}const C=s.offset-l-(o.lastDiskOffset||0);if(a!=C&&C>=0&&(a=C,y=await fr(o,l,a,f),b=Yo(y)),l<0||l>=o.size)throw new Error(yI);const x=rn(i,e,"filenameEncoding"),I=rn(i,e,"commentEncoding");for(let N=0;N<p;N++){const L=new q2i(o,r,i.options);if(yo(b,M)!=uee)throw new Error(O2i);yte(L,b,M+6);const j=!!L.bitFlag.languageEncodingFlag,O=M+46,V=O+L.filenameLength,Q=V+L.extraFieldLength,U=Ko(b,M+4),Y=(U&0)==0,J=y.subarray(O,V),ae=Ko(b,M+32),de=Q+ae,Ee=y.subarray(Q,de),ye=j,Se=j,Ge=Y&&(j1(b,M+38)&gee)==gee,ue=yo(b,M+42)+g;Object.assign(L,{versionMadeBy:U,msDosCompatible:Y,compressedSize:0,uncompressedSize:0,commentLength:ae,directory:Ge,offset:ue,diskNumberStart:Ko(b,M+34),internalFileAttribute:Ko(b,M+36),externalFileAttribute:yo(b,M+38),rawFilename:J,filenameUTF8:ye,commentUTF8:Se,rawExtraField:y.subarray(V,Q)});const ge=rn(i,e,"decodeText")||x8,ke=ye?mte:x||vte,je=Se?mte:I||vte;let Te=ge(J,ke);Te===Tr&&(Te=x8(J,ke));let He=ge(Ee,je);He===Tr&&(He=x8(Ee,je)),Object.assign(L,{rawComment:Ee,filename:Te,comment:He,directory:Ge||Te.endsWith(Dvi)}),m=Math.max(ue,m),await wte(L,L,b,M+6);const _e=new Ate(L);_e.getData=(Z,te)=>L.getData(Z,_e,te),M=de;const{onprogress:Ye}=e;if(Ye)try{await Ye(N+1,p,new Ate(L))}catch{}yield _e}const E=rn(i,e,"extractPrependedData"),P=rn(i,e,"extractAppendedData");return E&&(i.prependedData=m>0?await fr(o,0,m):new Uint8Array),i.comment=d?await fr(o,c+S1,d):new Uint8Array,P&&(i.appendedData=u<o.size?await fr(o,u,o.size-u):new Uint8Array),!0}async getEntries(e={}){const i=[];for await(const o of this.getEntriesGenerator(e))i.push(o);return i}async close(){}}class q2i{constructor(e,i,o){Object.assign(this,{reader:e,config:i,options:o})}async getData(e,i,o={}){const r=this,{reader:s,offset:n,diskNumberStart:a,extraFieldAES:l,compressionMethod:c,config:d,bitFlag:u,signature:h,rawLastModDate:A,uncompressedSize:f,compressedSize:p}=r,g=i.localDirectory={},m=await fr(s,n,30,a),M=Yo(m);let y=rn(r,o,"password"),b=rn(r,o,"rawPassword");if(y=y&&y.length&&y,b=b&&b.length&&b,l&&l.originalCompressionMethod!=Avi)throw new Error(fte);if(c!=pvi&&c!=hvi)throw new Error(fte);if(yo(M,0)!=fvi)throw new Error(z2i);yte(g,M,4),g.rawExtraField=g.extraFieldLength?await fr(s,n+30+g.filenameLength,g.extraFieldLength,a):new Uint8Array,await wte(r,g,M,4,!0),Object.assign(i,{lastAccessDate:g.lastAccessDate,creationDate:g.creationDate});const C=r.encrypted&&g.encrypted,x=C&&!l;if(C){if(!x&&l.strength===Tr)throw new Error(V2i);if(!y&&!b)throw new Error(U2i)}const I=n+30+g.filenameLength+g.extraFieldLength,E=p,P=s.readable;Object.assign(P,{diskNumberStart:a,offset:I,size:E});const N=rn(r,o,"signal"),L=rn(r,o,"checkPasswordOnly");L&&(e=new WritableStream),e=k2i(e),await C8(e,f);const{writable:j}=e,{onstart:O,onprogress:V,onend:Q}=o,U={options:{codecType:Gee,password:y,rawPassword:b,zipCrypto:x,encryptionStrength:l&&l.strength,signed:rn(r,o,"checkSignature"),passwordVerification:x&&(u.dataDescriptor?A>>>8&255:h>>>24&255),signature:h,compressed:c!=0,encrypted:C,useWebWorkers:rn(r,o,"useWebWorkers"),useCompressionStream:rn(r,o,"useCompressionStream"),transferStreams:rn(r,o,"transferStreams"),checkPasswordOnly:L},config:d,streamOptions:{signal:N,size:E,onstart:O,onprogress:V,onend:Q}};let Y=0;try{({outputSize:Y}=await g2i({readable:P,writable:j},U))}catch(J){if(!L||J.message!=lI)throw J}finally{const J=rn(r,o,"preventClose");j.size+=Y,!J&&!j.locked&&await j.getWriter().close()}return L?Tr:e.getData?e.getData():j}}function yte(t,e,i){const o=t.rawBitFlag=Ko(e,i+2),r=(o&pee)==pee,s=yo(e,i+6);Object.assign(t,{encrypted:r,version:Ko(e,i),bitFlag:{level:(o&Evi)>>1,dataDescriptor:(o&Aee)==Aee,languageEncodingFlag:(o&fee)==fee},rawLastModDate:s,lastModDate:W2i(s),filenameLength:Ko(e,i+22),extraFieldLength:Ko(e,i+24)})}async function wte(t,e,i,o,r){const{rawExtraField:s}=e,n=e.extraField=new Map,a=Yo(new Uint8Array(s));let l=0;try{for(;l<s.length;){const m=Ko(a,l),M=Ko(a,l+2);n.set(m,{type:m,data:s.slice(l+4,l+4+M)}),l+=4+M}}catch{}const c=Ko(i,o+4);Object.assign(e,{signature:yo(i,o+10),uncompressedSize:yo(i,o+18),compressedSize:yo(i,o+14)});const d=n.get(yvi);d&&(G2i(d,e),e.extraFieldZip64=d);const u=n.get(xvi);u&&(await bte(u,nte,ste,e,t),e.extraFieldUnicodePath=u);const h=n.get(kvi);h&&(await bte(h,ate,lte,e,t),e.extraFieldUnicodeComment=h);const A=n.get(wvi);A?(K2i(A,e,c),e.extraFieldAES=A):e.compressionMethod=c;const f=n.get(bvi);f&&(Y2i(f,e),e.extraFieldNTFS=f);const p=n.get(Cvi);p&&(Z2i(p,e,r),e.extraFieldExtendedTimestamp=p);const g=n.get(Ivi);g&&(e.extraFieldUSDZ=g)}function G2i(t,e){e.zip64=!0;const i=Yo(t.data),o=H2i.filter(([r,s])=>e[r]==s);for(let r=0,s=0;r<o.length;r++){const[n,a]=o[r];if(e[n]==a){const l=Q2i[a];e[n]=t[n]=l.getValue(i,s),s+=l.bytes}else if(t[n])throw new Error(F2i)}}async function bte(t,e,i,o,r){const s=Yo(t.data),n=new y8;n.append(r[i]);const a=Yo(new Uint8Array(4));a.setUint32(0,n.get(),!0);const l=yo(s,1);Object.assign(t,{version:j1(s,0),[e]:x8(t.data.subarray(5)),valid:!r.bitFlag.languageEncodingFlag&&l==yo(a,0)}),t.valid&&(o[e]=t[e],o[e+"UTF8"]=!0)}function K2i(t,e,i){const o=Yo(t.data),r=j1(o,4);Object.assign(t,{vendorVersion:j1(o,0),vendorId:j1(o,2),strength:r,originalCompressionMethod:i,compressionMethod:Ko(o,5)}),e.compressionMethod=t.compressionMethod}function Y2i(t,e){const i=Yo(t.data);let o=4,r;try{for(;o<t.data.length&&!r;){const s=Ko(i,o),n=Ko(i,o+2);s==Mvi&&(r=t.data.slice(o+4,o+4+n)),o+=4+n}}catch{}try{if(r&&r.length==24){const s=Yo(r),n=s.getBigUint64(0,!0),a=s.getBigUint64(8,!0),l=s.getBigUint64(16,!0);Object.assign(t,{rawLastModDate:n,rawLastAccessDate:a,rawCreationDate:l});const c=wI(n),d=wI(a),u=wI(l),h={lastModDate:c,lastAccessDate:d,creationDate:u};Object.assign(t,h),Object.assign(e,h)}}catch{}}function Z2i(t,e,i){const o=Yo(t.data),r=j1(o,0),s=[],n=[];i?((r&1)==1&&(s.push(mI),n.push(vI)),(r&2)==2&&(s.push(hte),n.push(D2i)),(r&4)==4&&(s.push(pte),n.push(P2i))):t.data.length>=5&&(s.push(mI),n.push(vI));let a=1;s.forEach((l,c)=>{if(t.data.length>=a+4){const d=yo(o,a);e[l]=t[l]=new Date(d*1e3);const u=n[c];t[u]=d}a+=4})}async function J2i(t,e,i,o,r){const s=new Uint8Array(4),n=Yo(s);X2i(n,0,e);const a=o+r;return await l(o)||await l(Math.min(a,i));async function l(c){const d=i-c,u=await fr(t,d,c);for(let h=u.length-o;h>=0;h--)if(u[h]==s[0]&&u[h+1]==s[1]&&u[h+2]==s[2]&&u[h+3]==s[3])return{offset:d+h,buffer:u.slice(h,h+o).buffer}}}function rn(t,e,i){return e[i]===Tr?t.options[i]:e[i]}function W2i(t){const e=(t&4294901760)>>16,i=t&65535;try{return new Date(1980+((e&65024)>>9),((e&480)>>5)-1,e&31,(i&63488)>>11,(i&2016)>>5,(i&31)*2,0)}catch{}}function wI(t){return new Date(Number(t/BigInt(1e4)-BigInt(116444736e5)))}function j1(t,e){return t.getUint8(e)}function Ko(t,e){return t.getUint16(e,!0)}function yo(t,e){return t.getUint32(e,!0)}function k8(t,e){return Number(t.getBigUint64(e,!0))}function X2i(t,e,i){t.setUint32(e,i,!0)}function Yo(t){return new DataView(t.buffer)}let Mte;try{Mte=import.meta.url}catch{}sI({baseURL:Mte}),v2i(sI),sI({Deflate:_mi,Inflate:uvi});function $2i(t){return{getDetailedExtensions(e){return[]},getExtensions(e){return[]},getFullTopics(e,i,o,r,s){return[]},getTopics(e,i,o,r){return[]}}}function e4i(t){return{checkProjectAccess(e,i){return{has_read_permission:!0,has_write_permission:!1,has_admin_permission:!1,token_scopes:["bcf:read","document:read","model:read"],usable_scopes:["bcf:read","document:read","model:read"],user_role:50,user:null}},getProjectDMSTree(e,i){return{}},getDocumentHistories(e,i,o){return[]},getProjectUsers(e,i){return[]}}}function t4i(t){const e=t,i=e.units.reduce((d,u)=>(u.conversion_baseunit=e.units[u.conversion_baseunit_index],delete u.conversion_baseunit_index,d[u.id]=u,d),{}),o=e.definitions.reduce((d,u)=>(u.unit=e.units[u.unit_id],delete u.unit_id,d[u.id]=u,d),{}),r=e.property_sets.reduce((d,u)=>(u.properties.forEach(h=>{h.definition=e.definitions[h.def_id],delete h.def_id}),d[u.id]=u,d),{}),s=e.classifications.reduce((d,u)=>(u.name=u.type,u.title=u.description,d[u.id]=u,d),{}),n=e.layers.reduce((d,u)=>(u.elements=[],d[u.id]=u,d),{}),a=e.systems.reduce((d,u)=>(u.elements=[],d[u.uuid]=u,d),{}),l={};l.materials_data=e.materials.materials_data.reduce((d,u)=>(u.property_sets=u.psets.map(h=>e.property_sets[h]),delete u.psets,delete u.step_id,d[u.id]=u,d),{}),l.list_components=e.materials.list_components.reduce((d,u)=>(u.material=e.materials.materials_data[u.material],u.option=e.materials.options[u.material_option],d[u.id]=u,delete u.id,d),{}),l.options=e.materials.options.reduce((d,u)=>(u.list_components=u.material_list.map(h=>e.materials.list_components[h]),d[u.id]=u,d),{});const c={};return e.elements.forEach(d=>{d.attributes=e.property_sets[d.attributes],d.property_sets=d.psets.map(u=>e.property_sets[u]),delete d.psets,d.classifications=d.classifications.map(u=>e.classifications[u]),d.systems=d.systems.map(u=>{const h=e.systems[u];return h.elements.push(d.uuid),h}),d.layers=d.layers.map(u=>{const h=e.layers[u];return h.elements.push(d.uuid),h}),d.material_list=d.material_list.map(u=>e.materials.list_components[u]),c[d.uuid]=d}),{units:i,definitions:o,property_sets:r,classifications:s,layers:n,systems:a,materials:l,elements:c}}function i4i(t){const e={};return Object.values(t).forEach(i=>{e[i.uuid]={},e[i.uuid].attributes={},i.attributes.properties.forEach(o=>{e[i.uuid].attributes[o.definition.name]=o.value}),i.property_sets.forEach(o=>{e[i.uuid][o.name]={},o.properties.forEach(r=>{e[i.uuid][o.name][r.definition.name]=r.value})})}),e}function o4i(t){return Object.values(t).forEach(e=>{e.formattedRawElements=t4i(e.rawElements)}),{getModels(e,i,o,r,s){let n=Object.values(t).map(a=>a.model);return n=n.filter(a=>!(a.type==="PDF"&&a.parent_id)),o?.length>0&&(n=n.filter(a=>o.includes(a.source))),r?.length>0&&(n=n.filter(a=>r.includes(a.status))),s?.length>0&&(n=n.filter(a=>s.includes(a.type))),n},getModel(e,i,o){return t[i].model},getTileset(e,i,o,r){console.warn("[BIMData Viewer] Offline Warning: `getTileset` is not available in offline mode.")},getBuildings(e,i,o){return t[i].buildings},getBuildingPlanPositioning(e,i,o,r,s){const n=this.getBuilding(i,r,s,e).plans.find(a=>a.plan.id===o);return{translation_x:n.translation_x,translation_y:n.translation_y,rotate_z:n.rotate_z,scale:n.scale,opacity:n.opacity}},getBuilding(e,i,o,r){return t[i].buildings.find(s=>s.uuid===r)},getModelClassifications(e,i,o){return Object.values(t[i].formattedRawElements.classifications)},listClassificationElementRelations(e,i,o){return Object.values(t[i].formattedRawElements.elements).flatMap(r=>r.classifications.map(s=>({element_uuid:r.uuid,classification_id:s.id})))},getElementsFromClassification(e,i,o,r){return t[o].formattedRawElements.classifications[i].elements},getDrawings(e,i,o){return t[i].drawings},getDrawing(e,i,o,r){return this.getDrawings(e,o,r).find(s=>s.id===i)},getElements(e,i,o,r,s,n){return Object.values(t[i].formattedRawElements.elements).filter(a=>n?a.type===n:r?a.classifications.some(l=>l.name===r):s?a.classifications.some(l=>l.notation===s):!0)},getElementLinkedDocuments(e,i,o){return console.warn("[BIMData Viewer] Offline Warning: `getElementLinkedDocuments` is not available in offline mode."),[]},async getRawElements(e,i,o,r,s,n){return t[i].rawElements},getSimpleElements(e,i,o,r,s,n){const a=this.getElements(e,i,o,r,s,n);return i4i(a)},getClassificationsOfElement(e,i,o,r){return this.getElement(e,o,r,i).classifications},getDocumentsOfElement(e,i,o,r){return console.warn("[BIMData Viewer] Offline Warning: `getDocumentsOfElement` is not available in offline mode."),[]},getMaterials(e,i,o,r){return this.getElement(e,o,r,i).material_list.map(s=>s.material)},getMaterial(e,i,o,r,s){return this.getMaterials(e,i,r,s).find(n=>n.id===o)},getElementPropertySets(e,i,o,r){return this.getElement(e,o,r,i).property_sets},getElementPropertySet(e,i,o,r,s){return this.getElementPropertySets(e,i,r,s).find(n=>n.id===o)},getElementPropertySetProperties(e,i,o,r,s){return this.getElementPropertySet(e,i,s,o,r).properties},getElementPropertySetProperty(e,i,o,r,s,n){return this.getElementPropertySetProperties(e,i,r,s,n).find(a=>a.id===o)},getElementPropertySetPropertyDefinitions(e,i,o,r,s,n){return[this.getElementPropertySetProperty(e,i,s,o,r,n).definition]},getElementPropertySetPropertyDefinition(e,i,o,r,s,n,a){const l=this.getElementPropertySetProperty(e,i,n,r,s,a).definition;return l.id===o?l:void 0},getElementPropertySetPropertyDefinitionUnits(e,i,o,r,s,n,a){return[this.getElementPropertySetPropertyDefinition(e,i,n,o,r,s,a).unit]},getElementPropertySetPropertyDefinitionUnit(e,i,o,r,s,n,a,l){const c=this.getElementPropertySetPropertyDefinition(e,i,a,r,s,n,l).unit;return c.id===o?c:void 0},getElement(e,i,o,r){return t[i].formattedRawElements.elements[r]},getSimpleElement(e,i,o,r){return this.getSimpleElements(e,i,o)[r]},getLayers(e,i,o){return Object.values(t[i].formattedRawElements.layers)},getLayer(e,i,o,r){return this.getLayers(e,o,r).find(s=>s.id===i)},getModelMaterials(e,i,o){return Object.values(t[i].formattedRawElements.materials.materials_data)},getModelMaterial(e,i,o,r){return this.getModelMaterials(e,o,r).find(s=>s.id===i)},getProcessorHandlers(e,i,o){return console.warn("[BIMData Viewer] Offline Warning: `getProcessorHandlers` is not available in offline mode."),[]},getProcessorHandler(e,i,o,r){console.warn("[BIMData Viewer] Offline Warning: `getProcessorHandler` is not available in offline mode.")},getModelProperties(e,i,o){return t[i].properties},getModelProperty(e,i,o,r){return t[o].properties.find(s=>s.id===i)},getModelPropertyDefinitions(e,i,o){return Object.values(t[i].formattedRawElements.definitions)},getModelPropertyDefinition(e,i,o,r){return this.getModelPropertyDefinitions(e,o,r).find(s=>s.id===i)},getPropertySets(e,i,o){return Object.values(t[i].formattedRawElements.property_sets)},getPropertySet(e,i,o,r){return this.getPropertySets(e,o,r).find(s=>s.id===i)},getSpaces(e,i,o){return t[i].spaces},getSpace(e,i,o,r){return t[o].spaces.find(s=>s.id===i)},getStoreys(e,i,o){return t[i].storeys},getStoreyPlanPositioning(e,i,o,r,s){const n=this.getStorey(e,o,r,s).plans.find(a=>a.plan.id===i);return{translation_x:n.translation_x,translation_y:n.translation_y,rotate_z:n.rotate_z,scale:n.scale,opacity:n.opacity}},getStorey(e,i,o,r){return t[i].storeys.find(s=>s.uuid===r)},getSystems(e,i,o){return Object.values(t[i].formattedRawElements.systems)},getSystem(e,i,o,r){return this.getSystems(e,i,o).find(s=>s.uuid===r)},getModelUnits(e,i,o){return Object.values(t[i].formattedRawElements.units)},getModelUnit(e,i,o,r){return this.getModelUnits(e,o,r).find(s=>s.id===i)},getZones(e,i,o,r){return t[i].zones.filter(s=>r?s.color===r:!0)},getZone(e,i,o,r){return t[o].zones.find(s=>s.id===i)},getZoneSpaces(e,i,o,r){return this.getZone(e,r,i,o).spaces},getZoneSpace(e,i,o,r,s){return this.getZoneSpaces(e,o,r,s).find(n=>n.id===i)}}}async function r4i(t){const e=t.find(o=>o.filename==="data.json"),i=await e?.getData(new M2i);return i?JSON.parse(i):null}async function av(t,e,i){const o=t.find(s=>s.filename===`${e.id}/${i}`),r=await o?.getData(new ite);return r?URL.createObjectURL(r):null}async function n4i(t,e){await Promise.all([av(t,e,"document_file").then(i=>e.document&&(e.document.file=i)),av(t,e,"structure_file").then(i=>e.structure_file=i),av(t,e,"map_file").then(i=>e.map_file=i),av(t,e,"binary_2d_file").then(i=>e.binary_2d_file=i),...e.xkt_files.map((i,o)=>av(t,e,`xkt_file_v${i.version}`).then(r=>e.xkt_files[o]={version:i.version,file:r}))])}async function s4i(t){const e=await new _2i(new tte(t)).getEntries(),i=await r4i(e);return await Promise.all(Object.values(i).flatMap(({model:o,buildings:r,storeys:s})=>[o].concat(o.children).concat(r.flatMap(n=>n.plans).map(n=>n.plan)).concat(s.flatMap(n=>n.plans).map(n=>n.plan))).map(o=>n4i(e,o))),i}function bI(t,e,i){return new Proxy(t[i],{get:function(o,r){if(e[r])return e[r];throw new Error(`[BIMData Viewer] Offline Error: method \`${i}.${r}\` is not mocked.`)}})}async function a4i(t,e,i){var o,r,s;typeof t=="string"&&(t=await fetch(t).then(d=>d.blob()));const n=await s4i(t),a=$2i(),l=e4i(),c=o4i(n);return Object.assign(a,(o=i.methods)==null?void 0:o.bcfApi),Object.assign(l,(r=i.methods)==null?void 0:r.collaborationApi),Object.assign(c,(s=i.methods)==null?void 0:s.modelApi),Object.assign({},e,{bcfApi:bI(e,a,"bcfApi"),collaborationApi:bI(e,l,"collaborationApi"),modelApi:bI(e,c,"modelApi")})}class l4i{constructor(e={}){const{apiUrl:i,archiveUrl:o,pdfBackendUrl:r,cloudId:s,projectId:n,accessToken:a,offline:l}=e;this.apiUrl=i,this.archiveUrl=o,this.pdfBackendUrl=r,this.cloudId=s,this.projectId=n,this._accessToken=a,this.offline=l??{enabled:!1};const c=ky.makeBIMDataApiClient({apiUrl:i,accessToken:a});this.apiClient=c,this.ready=Promise.resolve(),this.getModelsPromise=null,Object.assign(c,{BcfApi:function(){return console.warn("[BIMData Viewer] DEPRECATED - API - please use `apiClient.bcfApi` instead of `new apiClient.BcfApi()`."),c.bcfApi},CollaborationApi:function(){return console.warn("[BIMData Viewer] DEPRECATED - API - please use `apiClient.collaborationApi` instead of `new apiClient.CollaborationApi()`."),c.collaborationApi},ModelApi:function(){return console.warn("[BIMData Viewer] DEPRECATED - API - please use `apiClient.modelApi` instead of `new apiClient.ModelApi()`."),c.modelApi},IfcApi:function(){return console.warn("[BIMData Viewer] DEPRECATED - API - please use `apiClient.modelApi` instead of `new apiClient.IfcApi()`."),new Proxy(c.modelApi,{get:function(d,u,h){const A=u.replace("Deprecated","").replace("Ifc","Model");return Reflect.get(d,A,h)}})}})}get accessToken(){return this._accessToken}set accessToken(e){this._accessToken=e,this.apiClient.accessToken=e}async getAvailableModels(e=null,i=!1){return i&&(this.getModelsPromise=null),this.getModelsPromise||(this.getModelsPromise=apiClient.modelApi.getModels(cloudId,projectId)),(await this.getModelsPromise).filter(o=>e?.includes(o.type)??!0)}getModel(e){const{cloudId:i,projectId:o,apiClient:r}=this;return r.modelApi.getModel(i,e,o)}getIfc(e){return console.warn("[BIMData Viewer] DEPRECATED - API - please use the `getModel` method instead of `getIfc`."),this.getModel(e)}async getModelStructure(e){const i=(await(await fetch(e.structure_file)).json())[0];return zl(i),i}getIfcStructure(e){return console.warn("[BIMData Viewer] DEPRECATED - API - please use the getModelStructure method instead of getIfcStructure."),this.getModelStructure(e)}async getRawElements(e){const{cloudId:i,projectId:o,apiClient:r}=this,s=await r.modelApi.getRawElements(i,e,o);s.units.forEach(a=>{a.conversion_baseunit=s.units[a.conversion_baseunit_index],delete a.conversion_baseunit_index}),s.definitions.forEach(a=>{a.unit=s.units[a.unit_id],delete a.unit_id}),s.property_sets.forEach(a=>{a.properties.forEach(l=>{l.definition=s.definitions[l.def_id],delete l.def_id})});const n={};return s.elements.forEach(a=>{a.attributes=s.property_sets[a.attributes],a.property_sets=a.psets.map(l=>s.property_sets[l]),Object.assign(a,{get propertySets(){return console.warn("propertySets is deprecated, please use property_sets instead."),a.property_sets}}),delete a.psets,a.classifications=a.classifications.map(l=>s.classifications[l]),a.systems=a.systems.map(l=>s.systems[l]),a.layers=a.layers.map(l=>s.layers[l]),n[a.uuid]=a}),n}getStoreys(e){const{cloudId:i,projectId:o,apiClient:r}=this;return r.modelApi.getStoreys(i,e,o)}createModel(e){const{cloudId:i,projectId:o,apiClient:r}=this;return r.modelApi.createModel(i,o,{document_id:e})}async waitForModelProcess(e){const i=["C","E","X"];return i.includes(e.status)?e:new Promise((o,r)=>{const s=setInterval(async()=>{try{let n=await this.getModel(e.id);i.includes(n.status)&&(clearInterval(s),o(n))}catch(n){clearInterval(s),r(n)}},1e3)})}async createStoreyPlan(e,i,o){const{cloudId:r,projectId:s,apiClient:n}=this,a=await this.createModel(o);return await n.modelApi.createStoreyPlan(r,e,s,i,{id:a.id}),a}deleteStoreyPlan(e,i,o){const{cloudId:r,projectId:s,apiClient:n}=this;return n.modelApi.deleteStoreyPlan(r,o,e,s,i)}updatePlanPositioning(e,i,o,r){const{cloudId:s,projectId:n,apiClient:a}=this;return a.modelApi.updateStoreyPlanPositioning(s,o,e,n,i,r)}async enableOfflineMode(e,i={}){let o;this.ready=new Promise(r=>o=r),this.apiClient=await a4i(e,this.apiClient,i),this.offline.enabled=!0,o()}disableOfflineMode(){this.offline.enabled&&(this.apiClient=ky.makeBIMDataApiClient({apiUrl:this.apiUrl,accessToken:this.accessToken}),this.offline.enabled=!1)}}function c4i(t){const e=[{methodName:"selectObjects",property:"selected",value:!0,eventName:"objects-selected",exlusiveIndex:1},{methodName:"deselectObjects",property:"selected",value:!1,eventName:"objects-deselected"},{methodName:"highlightObjects",property:"highlighted",value:!0,eventName:"objects-highlighted"},{methodName:"unhighlightObjects",property:"highlighted",value:!1,eventName:"objects-unhighlighted"},{methodName:"showObjects",property:"visible",value:!0,eventName:"objects-shown"},{methodName:"hideObjects",property:"visible",value:!1,eventName:"objects-hidden"},{methodName:"xrayObjects",property:"xrayed",value:!0,eventName:"objects-xrayed"},{methodName:"unxrayObjects",property:"xrayed",value:!1,eventName:"objects-unxrayed"},{methodName:"setObjectsPickable",property:"pickable",value:!0,eventName:"objects-pickable"},{methodName:"setObjectsUnpickable",property:"pickable",value:!1,eventName:"objects-unpickable"}],i=e.reduce((r,s)=>(r[s.methodName]=function(n,a){o(this,s,a);const{property:l,value:c}=s,d=[];for(const u of n){const h=t.get(u);try{h[l]=c,d.push(h)}catch{console.warn(`object with id ${u} does not exist`)}}this.hub.emit(s.eventName,{objects:d,options:{...a}})},r[`${s.methodName}ByUuids`]=function(n,a){o(this,s,a);const{property:l,value:c}=s,d=n.map(u=>this.uuidsMap.get(u)).filter(u=>u?.length>0).flatMap(u=>u.map(h=>(h[l]=c,h)));this.hub.emit(s.eventName,{objects:d,options:{...a}})},r),{}),o=(r,s,n)=>{if(s.exlusiveIndex!==void 0&&n!=null&&n.exclusive){const a=e[s.exlusiveIndex],{property:l,value:c}=s;r[a.methodName](r.objects.filter(d=>d[l]===c).map(d=>d.id),{options:{...n}})}};return{...i,colorizeObjects(r,s,n){const a=[];for(const l of r)try{const c=t.get(l);c.color=s,a.push(c)}catch{console.warn(`object with id ${l} does not exist`)}this.hub.emit("objects-colorized",{objects:a,color:s,options:{...n}})},colorizeObjectsByUuids(r,s,n){const a=r.flatMap(l=>this.uuidsMap.get(l));this.colorizeObjects(a.map(l=>l.id),s,n)},get objects(){return Array.from(t.values())},get objectsIds(){return this.objects.map(r=>r.id)},get objectsUuids(){return Array.from(new Set(this.objects.map(r=>r.uuid)))},get objectsMap(){return t}}}const d4i=Object.freeze({EXA:10**18,PETA:10**15,TERA:10**12,GIGA:10**9,MEGA:10**6,KILO:10**3,HECTO:10**2,DECA:10,DECI:10**-1,CENTI:10**-2,MILLI:10**-3,MICRO:10**-6,NANO:10**-9,PICO:10**-12,FEMTO:10**-15,ATTO:10**-18});async function u4i(t,e,i){async function o(d,u){try{const h=(await t.apiClient.modelApi.getElement(t.cloudId,i,t.projectId,d)).attributes.properties.find(A=>A.definition.name===u);if(h){const A=h.definition.unit;if(A){const{name:f,prefix:p}=A;f!=="METRE"&&console.warn(`[Viewer] Elevation unit other that "METRE" are not supported. Unit "${f}" fallback to "METRE".`);const g=d4i[p];return g===void 0&&console.warn(`[Viewer] Elevation unit prefix "${p}" is unknown and will be ignored.`),(h.value??0)*(g??1)}else return h.value??0}}catch(h){console.warn(`[Models] Cannot get elevation of object with uuid ${d}: ${h}`)}return 0}const r=new Map,s=new Map,n=new Map;function a(){const d=new Set(e.map(u=>{var h,A;return(A=(h=u.object)==null?void 0:h.site)==null?void 0:A.uuid}).filter(Boolean));return r4(d,10,(u,h)=>{o(u,"RefElevation").then(A=>{r.set(u,A),h()},h)})}function l(){const d=new Set(e.map(u=>{var h,A;return(A=(h=u.object)==null?void 0:h.building)==null?void 0:A.uuid}).filter(Boolean));return r4(d,10,(u,h)=>{o(u,"ElevationOfRefHeight").then(A=>{s.set(u,A),h()},h)})}function c(){return r4(e,10,(d,u)=>{o(d.uuid,"Elevation").then(h=>{n.set(d.uuid,h),u()},u)})}await Promise.all([a(),l(),c()]),e.forEach(d=>{var u,h,A,f;const p=n.get(d.uuid)??0;d.elevation=p;const g=s.get((h=(u=d.object)==null?void 0:u.building)==null?void 0:h.uuid);if(g==null){const m=r.get((f=(A=d.object)==null?void 0:A.site)==null?void 0:f.uuid)??0;d.absoluteElevation=p+m}else d.absoluteElevation=p+g}),e.forEach((d,u)=>{var h,A;d.topElevation=((h=e[u+1])==null?void 0:h.elevation)??1/0,d.absoluteTopElevation=((A=e[u+1])==null?void 0:A.absoluteElevation)??1/0})}class BI{constructor(e){const{archived:i,binary_2d_file:o,children:r,created_at:s,creator:n,document:a,document_id:l,errors:c,gltf_file:d,id:u,map_file:h,name:A,north_vector:f,page_number:p,parent_id:g,preview_file:m,project_id:M,recommanded_2d_angle:y,size_ratio:b,source:C,status:x,structure_file:I,systems_file:E,type:P,updated_at:N,version:L,viewer_360_file:j,warnings:O,world_position:V,xkt_file:Q,xkt_files:U}=e;this.id=u,this.name=A,this.type=P,this.archived=i,this.binary_2d_file=o,this.children=r?.map(Y=>new BI(Y))??[],this.created_at=s,this.creator=n,this.document=a,this.document_id=l,this.errors=c,this.gltf_file=d,this.map_file=h,this.north_vector=f,this.page_number=p,this.parent_id=g,this.preview_file=m,this.project_id=M,this.recommanded_2d_angle=y,this.size_ratio=b,this.source=C,this.status=x,this.structure_file=I,this.systems_file=E,this.updated_at=N,this.version=L,this.viewer_360_file=j,this.warnings=O,this.world_position=V,this.xkt_file=Q,this.xkt_files=U}}class Cte{constructor(e,i,o,r){this.model=i,this.storey=o,this.index=r,this.key=`${o.key}-${e.plan.id}-${r}`,this.translation_x=e.translation_x??0,this.translation_y=e.translation_y??0,this.rotate_z=e.rotate_z??0,this.scale=e.scale??1,this.opacity=e.opacity??1,this.plan=e.plan}}class h4i{constructor(e,i){this.model=i;const{name:o,uuid:r,plans:s,plans_unreachable_count:n}=e;this.name=o,this.uuid=r,this.key=`${i.id}-${this.uuid}`,this.plans_unreachable_count=n,this.plans=s.map((a,l)=>new Cte(a,i,this,l)),this.object=i.uuids.get(this.uuid),this.objects=null,this.elevation=null,this.absoluteElevation=null,this.topElevation=null,this.absoluteTopElevation=null}get uuids(){return new Map([...this.objects.values()].map(e=>[e.uuid,e]))}}class p4i extends y7{constructor(e,i){super(e,i,"zone");const{id:o,uuid:r,name:s,created_at:n,updated_at:a,parent_id:l,order:c,zones:d,spaces:u,color:h,storey_uuid:A}=e;this.id=o,this.uuid=r,this.name=s,this.created_at=n,this.updated_at=a,this.parent_id=l,this.order=c,this.zones=d,this.spaces=u,this.color=h,this.storey_uuid=A}}class A4i extends BI{constructor(e,i,{structure:o,zones:r,systems:s,storeys:n}={}){var a,l;if(super(i),this._stateObjectMap=e,this.uuids=new Map,o){const u=jR(o,this,e),h=K0t(u);this.structure=u,this.objects=h,h.forEach(A=>{A.uuid&&this.uuids.set(A.uuid,A)})}else this.structure=null,this.objects=[];this.zones=[],this.setZones(r??[]),s?.forEach(u=>{const h=new y7(u,this,"system");this.uuids.set(h.uuid,h),e.set(h.id,h),this.objects.unshift(h)}),this.storeys=n?.map(u=>new h4i(u,this)).sort(Rl("order",!1))??[];const c=new Map(this.storeys.map(u=>[u.uuid,new Set])),d=this.type==="DWG"?"layout":"storey";for(const u of this.objects)u.type!==d&&c.has((a=u[d])==null?void 0:a.uuid)&&c.get((l=u[d])==null?void 0:l.uuid).add(u);for(const u of this.storeys){const h=c.get(u.uuid);u.objects=h?[...h.values()]:[]}}setZones(e=[]){this.zones.forEach(i=>{this._stateObjectMap.delete(i.id),this.uuids.delete(i.uuid),this.objects.splice(this.objects.indexOf(i),1)}),this.zones=e.map(i=>{const o=new p4i(i,this);return this._stateObjectMap.set(o.id,o),this.uuids.set(o.uuid,o),this.objects.unshift(o),o})}}const f4i=(t,e,i)=>{const{api:o}=i;async function r(s){if(typeof s=="string"&&(console.warn(`[State] 'loadModel' called with id ${s} as string and parsed as integer.`),s=parseInt(s)),t.get(s))return console.warn(`[State] 'loadModel' called with id ${s}}, model already loaded.`),t.get(s);const n=[o.apiClient.modelApi.getZones(o.cloudId,s,o.projectId),o.apiClient.modelApi.getSystems(o.cloudId,s,o.projectId),o.getStoreys(s)],a=await o.getModel(s);a.structure_file&&n.push(o.getModelStructure(a));const[l,c,d,u]=await Promise.all(n),h=new A4i(e,a,{structure:u,zones:l,systems:c,storeys:d});return h.objects.forEach(A=>{var f,p;A.parent=h.uuids.get((f=A.parent)==null?void 0:f.uuid),A.children=(p=A.children)==null?void 0:p.map(g=>h.uuids.get(g.uuid)).filter(Boolean)}),await u4i(o,h.storeys,h.id),t.set(s,h),h}return{get models(){return Array.from(t.values())},get ifcs(){return console.warn("[BIMData Viewer] DEPRECATED - State model - please use the models instead of ifcs."),Array.from(t.values()).filter(s=>!s.type||s.type==="IFC")},get modelsMap(){return t},get ifcsMap(){return console.warn("[BIMData Viewer] DEPRECATED - State model - please use the modelsMap instead of ifcsMap."),new Map([...t].filter(([,s])=>!s.type||s.type==="IFC"))},async loadModels(s){const n=await Promise.allSettled(s.map(r));n.filter(l=>l.status==="rejected").forEach(l=>console.error(l.reason));const a=n.filter(l=>l.status==="fulfilled").map(l=>l.value);if(a.length>0){const l=a.filter(c=>!c.type||c.type==="IFC");l.length&&this.hub.emit("ifcs-loaded",{ifcs:l}),this.hub.emit("models-loaded",{models:a}),i.globalContext.hub.emit("models-loaded",{models:a}),this.hub.emit("objects-added",{objects:a.flatMap(c=>c.objects)})}return a},loadIfcs(s){return console.warn("[BIMData Viewer] DEPRECATED - State model - please use the loadModels method instead of loadIfcs."),this.loadModels(s)},unloadModels(s){const n=[],a=[];if(s.forEach(l=>{const c=t.get(l);c?(t.delete(l),c.objects.map(d=>(a.push(d),d.id)).forEach(d=>e.delete(d)),n.push(c)):console.warn(`[State] Cannot unload model with id ${l} because it is not loaded.`)}),a.length>0&&this.hub.emit("objects-removed",{objects:a}),n.length>0){const l=n.filter(c=>!c.type||c.type==="IFC");l.length&&this.hub.emit("ifcs-unloaded",{ifcs:l}),this.hub.emit("models-unloaded",{models:n})}return n},unloadIfcs(s){return console.warn("[BIMData Viewer] DEPRECATED - State model - please use the unloadModels method instead of unloadIfcs."),this.unloadModels(s)},getStoreyFromAbsoluteElevation(s,n){var a;if(!s.storeys)return null;for(let l=0;l<s.storeys.length;l++)if(n>=s.storeys[l].absoluteElevation&&n<(((a=s.storeys[l+1])==null?void 0:a.absoluteElevation)??1/0))return s.storeys[l];return s.storeys[0]}}};function g4i(t){return{async createPlan(e,i,o,r){const s=await t.api.createStoreyPlan(e.id,i.uuid,o.id);await t.api.updatePlanPositioning(e.id,i.uuid,s.id,r);const n=new Cte({...r,plan:s},e,i,e.storeys.length);return i.plans.push(n),this.hub.emit("plan-created",{plan:n}),n},async updatePlan(e){const i=await t.api.updatePlanPositioning(e.model.id,e.storey.uuid,e.plan.id,e);return Object.assign(e,i),this.hub.emit("plan-updated",{plan:e}),e},async deletePlan(e){await t.api.deleteStoreyPlan(e.model.id,e.storey.uuid,e.plan.id),e.storey.plans=e.storey.plans.filter(i=>i.key!==e.key),this.hub.emit("plan-deleted",{plan:e})}}}const m4i=(t,e)=>{const i={getObjectsByUuids(o){return o.flatMap(r=>this.uuidsMap.get(r))},getObject(o){return console.warn("[BIMData Viewer] DEPRECATED - State - `getObject` is deprecated, use `objectsMap.get` instead."),e.get(o)},getIfc(o){return console.warn("[BIMData Viewer] DEPRECATED - State - `getIfc` is deprecated, use `modelsMap.get` instead."),t.get(o)},get colorizedObjects(){return Array.from(e.values()).filter(o=>!!o.color)},get colorizedObjectsIds(){return this.colorizedObjects.map(o=>o.id)},get colorizedObjectsUuids(){return Array.from(new Set(this.colorizedObjects.map(o=>o.uuid)))},getObjectsOfType(o){return Array.from(e.values()).filter(r=>r.type===o)},getTypesOf(o){typeof o.map>"u"&&(o=[...o]);const r=new Set;return o.forEach(s=>{const n=e.get(s);n&&n.type&&r.add(n.type)}),Array.from(r).sort()},getObjectsWithTheSameTypeAs(o){const r=this.getTypesOf(o);return[...e.values()].filter(s=>r.includes(s.type))}};return v4i.forEach(o=>{Object.defineProperty(i,o.name,{get(){return Array.from(e.values()).filter(r=>r[o.property]===o.value).map(r=>Object.freeze(Object.defineProperties({},Object.getOwnPropertyDescriptors(r))))}}),Object.defineProperty(i,`${o.name}Ids`,{get(){return this[o.name].map(y4i)}}),Object.defineProperty(i,`${o.name}Uuids`,{get(){return Array.from(new Set(this[o.name].map(w4i)))}})}),i},v4i=[{name:"selectedObjects",property:"selected",value:!0},{name:"deselectedObjects",property:"selected",value:!1},{name:"highlightedObjects",property:"highlighted",value:!0},{name:"unhighlightedObjects",property:"highlighted",value:!1},{name:"visibleObjects",property:"visible",value:!0},{name:"unvisibleObjects",property:"visible",value:!1},{name:"xrayedObjects",property:"xrayed",value:!0},{name:"unxrayedObjects",property:"xrayed",value:!1},{name:"pickableObjects",property:"pickable",value:!0},{name:"unpickableObjects",property:"pickable",value:!1}];function y4i(t){return t.id}function w4i(t){return t.uuid}function MI(t,e,i){var o;return(o=t.mixins)!=null&&o.some(r=>r[i])||(t.mixins?t.mixins[t.mixins.length]=e:t.mixins=[e]),t}const xte=Symbol("annotation-mixin-id");function b4i(t){let e=0;const i=new Set;return{get annotations(){return Array.from(i)},addAnnotation({x:o=0,y:r=0,z:s=0,draggable:n=!0,grabberSelector:a,component:l={render(){}},props:c={}}={},d){const u=this,h=e++,A={get id(){return h},get x(){return o},set x(f){o=f,u.hub.emit("annotation-updated",{annotation:A})},get y(){return r},set y(f){r=f,u.hub.emit("annotation-updated",{annotation:A})},get z(){return s},set z(f){s=f,u.hub.emit("annotation-updated",{annotation:A})},draggable:n,grabberSelector:a,component:l,props:c};return MI(A.component,{[xte]:!0,beforeCreate(){this.$viewer=t}},xte),i.add(A),this.hub.emit("annotation-added",{annotation:A,options:d}),A},removeAnnotation(o,r){return i.has(o)?(i.delete(o),this.hub.emit("annotation-removed",{annotation:o,options:r}),!0):!1},clearAnnotations(){i.forEach(o=>this.removeAnnotation(o))}}}function M4i(t){const e=new Map,i=new Map,o={uuidsMap:{get(r){const s=[];return e.forEach(n=>{const a=n.uuids.get(r);a&&s.push(a)}),s}},hub:new kl};return[f4i(e,i,t),c4i(i),g4i(t),b4i(t),m4i(e,i)].forEach(r=>Object.defineProperties(o,Object.getOwnPropertyDescriptors(r))),o}function C4i(t){if(t?.type==="container")E4i(t);else if(t?.type==="zone")I4i(t);else throw new TypeError("AREAS CORE - Layout first child must be a zone or a container.");return x4i(t),t}function x4i(t){const e=new Set,i=new Set;for(let o of t)if(o.id!=null)if(o.type==="zone"){if(e.has(o.id))throw new Error("AREAS CORE - Cannot add the same zone id twice.");e.add(o.id)}else{if(i.has(o.id))throw new Error("AREAS CORE - Cannot add the same container id twice.");i.add(o.id)}}function k4i(t){kte(t.layout,"zone",t.zoneIdManager),kte(t.layout,"container",t.containerIdManager)}function kte(t,e,i){const o=[...t].filter(r=>r.type===e);o.map(r=>r.id).filter(r=>r!=null).forEach(r=>i.add(r)),o.filter(r=>r.id===void 0||r.id===null).forEach(r=>{r.id=i.nextId()})}function I4i(t){if(typeof t!="object")throw new TypeError("AREAS CORE - Invalid zone. Zone must be an object.");if(t?.type!=="zone")throw new TypeError('AREAS CORE - Invalid zone. A zone must be of type "zone".');return t}function E4i(t){var e,i;if(typeof t!="object")throw new TypeError("AREAS CORE - Invalid container. A container must be an object.");if(t?.type!=="container")throw new TypeError('AREAS CORE - Invalid container. Container must be of type "container".');if(t!=null&&t.direction&&!["row","column"].includes(t.direction))throw new TypeError('AREAS CORE - Invalid container. Container direction must be of type "row" or "column".');if(((e=t?.children)==null?void 0:e.length)<2)throw new TypeError("AREAS CORE - Invalid container. Container children must have at least 2 children.");if(((i=t?.children)==null?void 0:i.reduce((o,r)=>o+r?.ratio,0))!==100)throw new TypeError("AREAS CORE - Invalid container. The sum of container children ratios must be equal to 100.");return t}function Ite(t){var e;return(e=t.children)!=null&&e.length&&t.children.forEach(i=>{Object.defineProperty(i,Symbol.iterator,{value:Ite(i),configurable:!0})}),function*(){var i;if(yield t,(i=t.children)!=null&&i.length)for(let o of t.children)yield*o}}function N1(t){return Object.defineProperty(t,Symbol.iterator,{value:Ite(t),configurable:!0}),t}function Ete(){let t=1;const e=new Set;return{nextId(){for(;!this.isIdAvailable(t);)t++;return e.add(t),t},isIdAvailable(i){return!e.has(i)},add(i){return this.isIdAvailable(i)?(e.add(i),i):!1}}}function Dte(t){var e;if(!t)return;const i=Object.assign({},t);return((e=t.children)==null?void 0:e.length)>0&&(i.children=t.children.map(Dte)),i}function D4i(t){return e=>{const i=t.getZone(e);if(!i)return!1;const o=t.getParent(i);if(!o)throw new Error("AREAS CORE - Cannot delete root Zone");const r=o.children.indexOf(i);if(o.children.length>2){const s=o.children[r-1],n=o.children[r+1];r===0?n.ratio+=i.ratio:r===o.children.length-1?s.ratio+=i.ratio:(s.ratio+=Math.floor(i.ratio/2),n.ratio+=Math.ceil(i.ratio/2)),o.children=o.children.filter(a=>a.type!=="zone"||a.id!==e)}else{const s=o.children[r===1?0:1];s.ratio=o.ratio;const n=t.getParent(o);if(n){const a=n.children.indexOf(o);n.children.splice(a,1,s)}else t.layout=s}return!0}}var P4i=D4i;function B4i(t){return()=>Pte(t.layout,[t.layout])}function Pte(t,e=[]){var i;return(i=t.children)==null||i.forEach(o=>{e.push(o),o.type==="container"&&Pte(o,e)}),e}var S4i=B4i;function L4i(t){return e=>{if(!e)throw new TypeError("AREAS CORE - fail to get parent: container child is null or undefined");return t.layout.type==="zone"?null:Bte(t.layout,e)}}function Bte(t,e){for(let i of t.children){if(i===e)return t;if(i.type==="container"){const o=Bte(i,e);if(o)return o}}return null}var T4i=L4i;function j4i(t){return e=>t.layout.type==="zone"?t.layout.id===e?t.layout:null:Ste(t.layout,e)}function Ste(t,e){for(let i of t.children)if(i.type==="zone"){if(i.id===e)return i}else{const o=Ste(i,e);if(o)return o}return null}var N4i=j4i;function R4i(t){return(e,i)=>{if(typeof i!="number")throw new TypeError("AREAS CORE - resize value must be a number.");const o=t.getParent(e),r=o.children.findIndex(n=>n===e);if(r===-1)return!1;const s=o.children[r+1];if(s){const n=e.ratio+s.ratio;let a=e.ratio+i;return a=a<0?0:a,a=a>n?n:a,e.ratio=a,s.ratio=n-a,!0}else return!1}}var O4i=R4i;function z4i(t){return(e,i=50,o="row",r=!0,s=null)=>{const n=t.getZone(e);if(!n)throw new Error(`AREAS CORE - fail to split zone ${e}: zone does not exist.`);if(typeof i!="number"||i<0||i>100)throw new TypeError(`AREAS CORE - fail to split zone: invalid ratio ${i}, ratio should be a number between 0 and 100.`);if(o!=="row"&&o!=="column")throw new TypeError(`AREAS CORE - fail to split zone: invalid direction ${o}, direction should be 'row' or 'column'.`);const a=t.getParent(n),l=N1({id:t.zoneIdManager.nextId(),type:"zone",...s});if(a){const c=a.children.findIndex(d=>d===n);if(a.direction===o)r?(l.ratio=Math.floor(n.ratio*(100-i)/100),n.ratio=Math.ceil(n.ratio*i/100),a.children.splice(c,1,n,l)):(l.ratio=Math.floor(n.ratio*i/100),n.ratio=Math.ceil(n.ratio*(100-i)/100),a.children.splice(c,1,l,n));else{const d=N1({id:t.containerIdManager.nextId(),type:"container",direction:o,ratio:n.ratio});r?(l.ratio=Math.floor(100-i),n.ratio=Math.ceil(i),d.children=[n,l]):(l.ratio=Math.floor(i),n.ratio=Math.ceil(100-i),d.children=[l,n]),a.children.splice(c,1,d)}}else{const c=N1({id:t.containerIdManager.nextId(),type:"container",direction:o});r?(l.ratio=Math.floor(100-i),n.ratio=Math.ceil(i),c.children=[n,l]):(l.ratio=Math.floor(i),n.ratio=Math.ceil(100-i),c.children=[l,n]),t._layout=c}return l}}var F4i=z4i;function U4i(t){return(e=50,i="row",o=!0,r=null)=>{const s=t.layout;if(typeof e!="number"||e<0||e>100)throw new TypeError(`AREAS CORE - fail to split layout: invalid ratio ${e}, ratio should be a number between 0 and 100.`);if(i!=="row"&&i!=="column")throw new TypeError(`AREAS CORE - fail to split layout: invalid direction ${i}, direction should be 'row' or 'column'.`);const n=N1({id:t.zoneIdManager.nextId(),type:"zone",...r}),a=N1({id:t.containerIdManager.nextId(),type:"container",direction:i});return o?(n.ratio=Math.floor(100-e),s.ratio=Math.ceil(e),a.children=[s,n]):(n.ratio=Math.floor(e),s.ratio=Math.ceil(100-e),a.children=[n,s]),t._layout=a,n}}var V4i=U4i;function H4i(t){return(e,i)=>{const o=t.getZone(e),r=t.getZone(i);if(!o)throw new Error(`AREAS CORE - fail to swap zone ${e}: zone does not exist.`);if(!r)throw new Error(`AREAS CORE - fail to swap to zone ${i}: zone does not exist.`);const s=t.getParent(o),n=t.getParent(r),a=s.children.indexOf(o),l=n.children.indexOf(r),c=o.ratio,d=r.ratio;o.ratio=d,r.ratio=c,s.children[a]=r,n.children[l]=o}}var Q4i=H4i;function _4i(t){const e={_layout:null,get layout(){return this._layout},set layout(i){i||(i={type:"zone"}),N1(i),C4i(i),this._layout=i,k4i(e)},zoneIdManager:Ete(),containerIdManager:Ete()};return e.layout=t,e.deleteZone=P4i(e),e.getNodes=S4i(e),e.getParent=T4i(e),e.getZone=N4i(e),e.resize=O4i(e),e.splitZone=F4i(e),e.splitLayout=V4i(e),e.swapZones=Q4i(e),e}var q4i=_4i;function Lte(t=1,e=0,i=100){return Math.min(Math.max(e,t),i)}function Tte(t,e){const i=t.getParent(e);if(i){const{width:o,height:r}=Tte(t,i),s=i.children.length-1;return i.direction==="column"?{width:o,height:Math.max(0,(r-s*t.separatorSize)*(e.ratio/100))}:{width:Math.max(0,(o-s*t.separatorSize)*(e.ratio/100)),height:r}}else return{width:t.width,height:t.height}}function jte(t,e,i){const{width:o,height:r}=Tte(t,e),s=e.children.length-1;if(e.direction==="column"){const n=1-s*t.separatorSize/r;return{height:`${Lte(i.ratio*n,0,100)}%`,width:"100%"}}else{const n=1-s*t.separatorSize/o;return{height:"100%",width:`${Lte(i.ratio*n,0,100)}%`}}}function G4i(t,e){const i={ref:t.contentManager.getRef(e.id),id:`zone-${e.id}`,class:"areas-zone",style:{flexGrow:0,overflow:"hidden"},key:e.id},o=t.getParent(e);if(o){const{width:r,height:s}=jte(t,o,e);i.style={width:r,height:s}}else i.style={height:"100%"};return t.vue.h("div",i)}var CI=G4i;function K4i(t,e,i){const{separatorSize:o,separatorDetectionMargin:r,separatorDetectionZIndex:s}=t,n=e.direction==="column",a={ref:`separator-${e.id}-${i+1}`,class:"areas-separator",style:{[n?"height":"width"]:`${o}px`,backgroundColor:"var(--areas-separator-color, black)",flexShrink:0,position:"relative"}},l=n?"ns-resize":"ew-resize",c=t.vue.h("div",{style:{position:"absolute",[n?"height":"width"]:`${r*2}px`,[n?"width":"height"]:"100%",[n?"top":"left"]:`${-r+o/2}px`,zIndex:s,cursor:l},onMousedown:d=>Y4i(t,e,i,d,l)});return t.vue.h("div",a,t.resizable?[c]:null)}function Y4i(t,e,i,o,r){o.preventDefault(),o.stopPropagation(),document.body.style.cursor=r;const s=a=>Z4i(t,e,i,a),n=()=>J4i(s,n);document.addEventListener("mousemove",s),document.addEventListener("mouseup",n)}function Z4i(t,e,i,o){const r=e.children[i],s=e.direction==="column"?"height":"width",n=t.root.$refs[`separator-${e.id}-${i+1}`].getBoundingClientRect(),{separatorSize:a}=t,l=(e.direction==="column"?o.clientY-n.y:o.clientX-n.x)-a/2,c=t.root.$refs[`container-${e.id}`].getBoundingClientRect()[s],d=l/c*100;t.resize(r,d)}function J4i(t,e){document.removeEventListener("mousemove",t),document.removeEventListener("mouseup",e),document.body.style.cursor=""}var W4i=K4i;function xI(t,e){const i={ref:`container-${e.id}`,id:`container-${e.id}`,class:"areas-container",style:{height:"100%",display:"flex",flexDirection:e.direction}},o=t.getParent(e);if(o){const{width:n,height:a}=jte(t,o,e);i.style.width=n,i.style.height=a}const r=e.children.length-1,s=e.children.map((n,a)=>a<=r-1?[n.type==="zone"?CI(t,n):xI(t,n),W4i(t,e,a)]:n.type==="zone"?CI(t,n):xI(t,n));return t.vue.h("div",i,[s])}var X4i=xI;function $4i(t){const e=new Map,i=new Map,o=new Map;e.set("default",{component:{render(){return t.vue.h("div","Default component")}}});function r(s){return s&&!e.has(s)&&(console.warn(`[AREAS] Content with name ${s} is not registered, fallback to 'default'.`),s="default"),e.get(s)}return{registerContent(s,n){e.set(s,{name:s,component:n})},renderContent(s){return[...s].filter(n=>n.type==="zone").forEach(n=>{i.set(n.id,Object.assign({},r(n.content??"default"),{ref:t.vue.ref(null),options:{zoneId:n.id,...n.options,key:n.id},name:n.content??"default"}))}),t.vue.h("div",{style:{display:"none"}},[...i.values()].map(n=>t.vue.h(n.component,{...n.options,ref:n.ref})))},link(){[...o.entries()].forEach(([s,n])=>{const a=i.get(s);if(!a)return;const l=a.ref.value.$el,c=n.value;for(;c.lastChild;)c.removeChild(c.lastChild);c.appendChild(l)})},getElementZoneId(s){var n;for(const[a,l]of[...o.entries()])if((n=l.value)!=null&&n.contains(s))return a;return null},getRef(s){let n=o.get(s);return n||(n=t.vue.ref(null),o.set(s,n)),n},deleteZoneContent(s){i.delete(s),o.delete(s)},clean(){i.clear(),o.clear()}}}var e3i=$4i;function t3i(t,e,i){const o=e.ref(0),r=e.ref(0),{separatorSize:s=2,separatorDetectionMargin:n=10,separatorDetectionZIndex:a=2,resizable:l=!0}=i??{},c=e.ref(!!l),d={vue:e,core:t,zones:e.ref([]),get resizable(){return c.value},set resizable(h){c.value=h},get width(){return o.value},get height(){return r.value},get separatorSize(){return s},get separatorDetectionMargin(){return n},get separatorDetectionZIndex(){return a},getParent(h){return this.core.getParent(h)},async coreLayoutSync(h=!1){this.layout&&(h?this.layout.value=this.core.layout:e.triggerRef(this.layout),await e.nextTick(),this.contentManager.link())},resize(h,A){this.core.resize(h,A),e.triggerRef(this.layout)},async split(h,A,f,p,g){const m=this.core.splitZone(h,A,f,p,g);return await this.coreLayoutSync(this.zones.value.length===1),m},async splitLayout(h,A,f,p){const g=this.core.splitLayout(h,A,f,p);return await this.coreLayoutSync(!0),g},async delete(h){let A=!1;const f=this.core.getZone(h);if(f){const g=this.core.getParent(f);A=g?.children.length===2&&this.core.getParent(g)===null}this.contentManager.deleteZoneContent(h);const p=this.core.deleteZone(h);return await this.coreLayoutSync(A),p},async swap(h,A){const f=this.core.swapZones(h,A);return await this.coreLayoutSync(),f},destroy(){var h;(h=this.resizeObserver)==null||h.disconnect()},root:null,get component(){return this.layout=e.shallowRef(t.layout),e.watch(this.layout,h=>{this.zones.value=[...h].filter(A=>A.type==="zone")},{immediate:!0}),{created(){d.root=this},mounted(){const{width:h,height:A}=this.$el.getBoundingClientRect();o.value=h,r.value=A,d.resizeObserver=new ResizeObserver(f=>f.forEach(p=>{const{width:g,height:m}=p.target.getBoundingClientRect();o.value=g,r.value=m})),d.resizeObserver.observe(this.$el),d.contentManager.link()},render(){return e.h("div",{class:"areas-root"},[d.contentManager.renderContent(d.layout.value),u(d.layout.value)])}}}};d.contentManager=e3i(d);function u(h){return h.type==="zone"?CI(d,h):X4i(d,h)}return d}var i3i=t3i;function o3i(t,e=null,i=null){const o=q4i(e),r=i3i(o,t,i);return Object.freeze({core:o,renderer:r,destroy(){r.destroy()},swap(s,n){return this.renderer.swap(s,n)},split(s,n,a,l,c){return this.renderer.split(s,n,a,l,c)},splitLayout(s,n,a,l){return this.renderer.splitLayout(s,n,a,l)},delete(s){return this.renderer.delete(s)},registerContent(s,n){this.renderer.contentManager.registerContent(s,n)},getElementZoneId(s){return this.renderer.contentManager.getElementZoneId(s)},get layout(){return Dte(this.core.layout)},set layout(s){this.core.layout=s,this.renderer.contentManager.clean(),this.renderer.coreLayoutSync(!0)},get component(){return this.renderer.component},get resizable(){return this.renderer.resizable},set resizable(s){this.renderer.resizable=s}})}var r3i=o3i;function n3i(t){return Array.isArray(t?.children)?Rte(t):Nte(t)}function Nte(t,e=100){return{type:"zone",ratio:e,options:typeof t=="string"?{windowName:t}:t}}function Rte(t,e=100){return{type:"container",ratio:e,direction:t.direction,children:t.children.map((i,o)=>Array.isArray(i?.children)?Rte(i,t.ratios[o]):Nte(i,t.ratios[o]))}}function s3i(t,e,i=!0){return t.type==="zone"?Ote(t,e,i):zte(t,e,i)}function Ote(t,e,i=!0){var o,r;const s=e.get(t.id);if(!s)throw new Error(`[Layout parser] Local context with id ${t.id} not found`);return{windowName:((o=s.window)==null?void 0:o.name)??null,windowState:{modelIds:s.loadedModelIds,viewpoint:(i||void 0)&&s.viewer&&s.getViewpoint(),storey:(r=s.selectedStorey)==null?void 0:r.key}}}function zte(t,e,i=!0){return{direction:t.direction,ratios:t.children.map(o=>o.ratio),children:t.children.map(o=>o.type==="zone"?Ote(o,e,i):zte(o,e,i))}}const a3i={props:{text:{type:String,default:""}},emits:["close"]},l3i={class:"success-modal"},c3i={class:"success-modal__close"},d3i={class:"success-modal__title"},u3i={class:"success-modal__title--icon"},h3i={class:"success-modal__text"},p3i={class:"success-modal__button"};function A3i(t,e,i,o,r,s){const n=D("BIMDataIconClose"),a=D("BIMDataPieSpinner"),l=D("BIMDataIconSuccess"),c=D("BIMDataButton");return k(),R("div",l3i,[w("div",c3i,[S(a,{delay:5,onStop:e[1]||(e[1]=d=>t.$emit("close"))},{default:z(()=>[S(n,{class:"icon-close",size:"xxxs",onClick:e[0]||(e[0]=d=>t.$emit("close"))})]),_:1})]),w("div",d3i,[w("h2",null,H(t.$t("modal.success")),1),w("span",u3i,[S(l,{class:"fill-primary"})])]),w("div",h3i,H(i.text||t.$t("modal.success")),1),w("div",p3i,[S(c,{class:"bimdata-btn__fill bimdata-btn__fill--primary bimdata-btn__radius",onClick:e[2]||(e[2]=d=>t.$emit("close"))},{default:z(()=>[Oe(H(t.$t("modal.button")),1)]),_:1})])])}const f3i=F(a3i,[["render",A3i],["__scopeId","data-v-79d3a107"]]),Fte=Symbol("modal-mixin-id"),g3i={inject:["$viewer"],data(){return{modals:[]}},computed:{modal(){return this.modals.length?this.modals[0]:null},positionning(){var t;if(!((t=this.modal)!=null&&t.positions))return;const e=this.modal.positions;return{top:e.top?`${e.top}`:"0",right:e.right?`${e.right}`:"0",bottom:e.bottom?`${e.bottom} `:"0",left:e.left?`${e.left}`:"0"}}},props:{global:{type:Boolean,default:!1}},created(){this.global&&document.addEventListener("keydown",e=>{e.key==="Escape"&&this.clearModal()});const t=this;this.mixin={[Fte]:!0,beforeCreate(){!this._.setupState.$viewer&&(this.$plugin=t.$plugin,this.$viewer=t.$viewer)}}},methods:{pushModal(t,e={},{display:i="full",positions:o}={}){this.inject$viewerRecursively(t),this.modals.push({component:$n(t),props:e,display:i,positions:o})},clearModal(){this.modals.shift()},inject$viewerRecursively(t){MI(t,this.mixin,Fte),t.components&&Object.values(t.components).forEach(e=>this.inject$viewerRecursively(e))},getModal(t){const e={success:f3i};if(Object.keys(e).includes(t))return e[t];console.warn(`Modal name unknown : ${t}`)}}},m3i={class:"bimdata-modal-manager__content"};function v3i(t,e,i,o,r,s){const n=Jt("click-away");return s.modal?(k(),R("div",{key:0,class:$(["bimdata-modal-manager",{full:s.modal.display==="full",banner:s.modal.display==="banner"}]),style:X(s.positionning),onClick:e[0]||(e[0]=Xe((...a)=>s.clearModal&&s.clearModal(...a),["self"]))},[it((k(),R("div",m3i,[(k(),_(Yi(s.modal.component),Vr({onClose:s.clearModal},s.modal.props),null,16,["onClose"]))])),[[n,()=>i.global&&s.clearModal(),"mousedown"]])],6)):W("",!0)}const Ute=F(g3i,[["render",v3i]]),y3i={props:{plugin:{type:Object,required:!0}},setup(t){const e=nt("$viewer"),{plugin:i}=t;sr("$plugin",i),Vte(i.component,e.localContext,i)}},kI=Symbol("plugin-mixin-id");function Vte(t,e,i,o=!0){var r;if((r=t.mixins)!=null&&r.some(n=>n[kI]))return;const s={[kI]:!0,beforeCreate(){!this._.setupState.$viewer&&(this.$plugin=i,this.$viewer=e.$viewer),Object.defineProperties(this,{$isOpen:{get(){return i.isOpen}},$loading:{get(){return i.loading}},$shown:{get(){return i.shown}}}),o&&(i.componentInstance=this,i.isViewer&&(e.viewer=this))},methods:{$open(...n){i.open(...n)},$close(...n){i.close(...n)},$show(){i.show()},$hide(){i.hide()}}};o&&(s.props={plugin:{type:Object,required:!0}},s.provide={pluginInstance:i},s.created=function(){e.hub.emit("plugin-created",{name:i.name,plugin:this}),e.$viewer.globalContext.hub.emit("plugin-created",{name:i.name,plugin:this})},s.unmounted=function(){e.hub.emit("plugin-destroyed",{name:i.name,plugin:this}),e.$viewer.globalContext.hub.emit("plugin-destroyed",{name:i.name,plugin:this})}),MI(t,s,kI),t.components&&Object.values(t.components).forEach(n=>Vte(n,e,i,!1))}function w3i(t,e,i,o,r,s){return it((k(),_(Yi(i.plugin.component),{class:"plugin-component-instance-container",plugin:i.plugin},null,8,["plugin"])),[[Dt,i.plugin.shown]])}const lv=F(y3i,[["render",w3i]]),b3i={components:{PluginComponentInstanceContainer:lv},props:{plugin:{type:Object,required:!0,validator(t){return t.sidePanel.width?typeof t.sidePanel.width=="number":t.sidePanel}}}};function M3i(t,e,i,o,r,s){const n=D("PluginComponentInstanceContainer");return it((k(),R("div",{class:"side-panel",style:X(`
|
|
1619
|
+
`,o=()=>e.useDataURI?"data:text/javascript,"+encodeURIComponent(i):URL.createObjectURL(new Blob([i],{type:"text/javascript"}));t({workerScripts:{inflate:[o],deflate:[o]}})}const y2i="Writer iterator completed too soon",w2i="Content-Type",b2i=64*1024,$ee="writable";class fI{constructor(){this.size=0}init(){this.initialized=!0}}class ete extends fI{get readable(){const e=this,{chunkSize:i=b2i}=e,o=new ReadableStream({start(){this.chunkOffset=0},async pull(r){const{offset:s=0,size:n,diskNumberStart:a}=o,{chunkOffset:l}=this;r.enqueue(await fr(e,s+l,Math.min(i,n-l),a)),l+i>n?r.close():this.chunkOffset+=i}});return o}}class tte extends ete{constructor(e){super(),Object.assign(this,{blob:e,size:e.size})}async readUint8Array(e,i){const o=this,r=e+i;let s=await(e||r<o.size?o.blob.slice(e,r):o.blob).arrayBuffer();return s.byteLength>i&&(s=s.slice(e,r)),new Uint8Array(s)}}class ite extends fI{constructor(e){super();const i=this,o=new TransformStream,r=[];e&&r.push([w2i,e]),Object.defineProperty(i,$ee,{get(){return o.writable}}),i.blob=new Response(o.readable,{headers:r}).blob()}getData(){return this.blob}}class M2i extends ite{constructor(e){super(e),Object.assign(this,{encoding:e,utf8:!e||e.toLowerCase()=="utf-8"})}async getData(){const{encoding:e,utf8:i}=this,o=await super.getData();if(o.text&&i)return o.text();{const r=new FileReader;return new Promise((s,n)=>{Object.assign(r,{onload:({target:a})=>s(a.result),onerror:()=>n(r.error)}),r.readAsText(o,e)})}}}class C2i extends ete{constructor(e){super(),this.readers=e}async init(){const e=this,{readers:i}=e;e.lastDiskNumber=0,e.lastDiskOffset=0,await Promise.all(i.map(async(o,r)=>{await o.init(),r!=i.length-1&&(e.lastDiskOffset+=o.size),e.size+=o.size})),super.init()}async readUint8Array(e,i,o=0){const r=this,{readers:s}=this;let n,a=o;a==-1&&(a=s.length-1);let l=e;for(;l>=s[a].size;)l-=s[a].size,a++;const c=s[a],d=c.size;if(l+i<=d)n=await fr(c,l,i);else{const u=d-l;n=new Uint8Array(i),n.set(await fr(c,l,u)),n.set(await r.readUint8Array(e+u,i-u,o),u)}return r.lastDiskNumber=Math.max(a,r.lastDiskNumber),n}}class ote extends fI{constructor(e,i=4294967295){super();const o=this;Object.assign(o,{diskNumber:0,diskOffset:0,size:0,maxSize:i,availableSize:i});let r,s,n;const a=new WritableStream({async write(d){const{availableSize:u}=o;if(n)d.length>=u?(await l(d.slice(0,u)),await c(),o.diskOffset+=r.size,o.diskNumber++,n=null,await this.write(d.slice(u))):await l(d);else{const{value:h,done:A}=await e.next();if(A&&!h)throw new Error(y2i);r=h,r.size=0,r.maxSize&&(o.maxSize=r.maxSize),o.availableSize=o.maxSize,await C8(r),s=h.writable,n=s.getWriter(),await this.write(d)}},async close(){await n.ready,await c()}});Object.defineProperty(o,$ee,{get(){return a}});async function l(d){const u=d.length;u&&(await n.ready,await n.write(d),r.size+=u,o.size+=u,o.availableSize-=u)}async function c(){s.size=r.size,await n.close()}}}async function C8(t,e){if(t.init&&!t.initialized)await t.init(e);else return Promise.resolve()}function x2i(t){return Array.isArray(t)&&(t=new C2i(t)),t instanceof ReadableStream&&(t={readable:t}),t}function k2i(t){t.writable===Tr&&typeof t.next==tv&&(t=new ote(t)),t instanceof WritableStream&&(t={writable:t});const{writable:e}=t;return e.size===Tr&&(e.size=0),t instanceof ote||Object.assign(t,{diskNumber:0,diskOffset:0,availableSize:1/0,maxSize:1/0}),t}function fr(t,e,i,o){return t.readUint8Array(e,i,o)}const rte="\0\u263A\u263B\u2665\u2666\u2663\u2660\u2022\u25D8\u25CB\u25D9\u2642\u2640\u266A\u266B\u263C\u25BA\u25C4\u2195\u203C\xB6\xA7\u25AC\u21A8\u2191\u2193\u2192\u2190\u221F\u2194\u25B2\u25BC !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\u2302\xC7\xFC\xE9\xE2\xE4\xE0\xE5\xE7\xEA\xEB\xE8\xEF\xEE\xEC\xC4\xC5\xC9\xE6\xC6\xF4\xF6\xF2\xFB\xF9\xFF\xD6\xDC\xA2\xA3\xA5\u20A7\u0192\xE1\xED\xF3\xFA\xF1\xD1\xAA\xBA\xBF\u2310\xAC\xBD\xBC\xA1\xAB\xBB\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u03B1\xDF\u0393\u03C0\u03A3\u03C3\xB5\u03C4\u03A6\u0398\u03A9\u03B4\u221E\u03C6\u03B5\u2229\u2261\xB1\u2265\u2264\u2320\u2321\xF7\u2248\xB0\u2219\xB7\u221A\u207F\xB2\u25A0 ".split(""),I2i=rte.length==256;function E2i(t){if(I2i){let e="";for(let i=0;i<t.length;i++)e+=rte[t[i]];return e}else return new TextDecoder().decode(t)}function x8(t,e){return e&&e.trim().toLowerCase()=="cp437"?E2i(t):new TextDecoder(e).decode(t)}const nte="filename",ste="rawFilename",ate="comment",lte="rawComment",cte="uncompressedSize",dte="compressedSize",ute="offset",gI="diskNumberStart",mI="lastModDate",vI="rawLastModDate",hte="lastAccessDate",D2i="rawLastAccessDate",pte="creationDate",P2i="rawCreationDate",B2i="internalFileAttribute",S2i="externalFileAttribute",L2i="msDosCompatible",T2i="zip64",j2i=[nte,ste,dte,cte,mI,vI,ate,lte,hte,pte,ute,gI,gI,B2i,S2i,L2i,T2i,"directory","bitFlag","encrypted","signature","filenameUTF8","commentUTF8","compressionMethod","version","versionMadeBy","extraField","rawExtraField","extraFieldZip64","extraFieldUnicodePath","extraFieldUnicodeComment","extraFieldAES","extraFieldNTFS","extraFieldExtendedTimestamp"];class Ate{constructor(e){j2i.forEach(i=>this[i]=e[i])}}const yI="File format is not recognized",N2i="End of central directory not found",R2i="End of Zip64 central directory locator not found",O2i="Central directory header not found",z2i="Local file header not found",F2i="Zip64 extra field not found",U2i="File contains encrypted entry",V2i="Encryption method not supported",fte="Compression method not supported",gte="Split zip file",mte="utf-8",vte="cp437",H2i=[[cte,fu],[dte,fu],[ute,fu],[gI,Cc]],Q2i={[Cc]:{getValue:yo,bytes:4},[fu]:{getValue:k8,bytes:8}};class _2i{constructor(e,i={}){Object.assign(this,{reader:x2i(e),options:i,config:Svi()})}async*getEntriesGenerator(e={}){const i=this;let{reader:o}=i;const{config:r}=i;if(await C8(o),(o.size===Tr||!o.readUint8Array)&&(o=new tte(await new Response(o.readable).blob()),await C8(o)),o.size<S1)throw new Error(yI);o.chunkSize=Lvi(r);const s=await J2i(o,mvi,o.size,S1,Cc*16);if(!s){const N=await fr(o,0,4),L=Yo(N);throw yo(L)==gvi?new Error(gte):new Error(N2i)}const n=Yo(s);let a=yo(n,12),l=yo(n,16);const c=s.offset,d=Ko(n,20),u=c+S1+d;let h=Ko(n,4);const A=o.lastDiskNumber||0;let f=Ko(n,6),p=Ko(n,8),g=0,m=0;if(l==fu||a==fu||p==Cc||f==Cc){const N=await fr(o,s.offset-rI,rI),L=Yo(N);if(yo(L,0)==vvi){l=k8(L,8);let j=await fr(o,l,nI,-1),O=Yo(j);const V=s.offset-rI-nI;if(yo(O,0)!=hee&&l!=V){const Q=l;l=V,g=l-Q,j=await fr(o,l,nI,-1),O=Yo(j)}if(yo(O,0)!=hee)throw new Error(R2i);h==Cc&&(h=yo(O,16)),f==Cc&&(f=yo(O,20)),p==Cc&&(p=k8(O,32)),a==fu&&(a=k8(O,40)),l-=a}}if(l>=o.size&&(g=o.size-l-a-S1,l=o.size-a-S1),A!=h)throw new Error(gte);if(l<0)throw new Error(yI);let M=0,y=await fr(o,l,a,f),b=Yo(y);if(a){const N=s.offset-a;if(yo(b,M)!=uee&&l!=N){const L=l;l=N,g+=l-L,y=await fr(o,l,a,f),b=Yo(y)}}const C=s.offset-l-(o.lastDiskOffset||0);if(a!=C&&C>=0&&(a=C,y=await fr(o,l,a,f),b=Yo(y)),l<0||l>=o.size)throw new Error(yI);const x=rn(i,e,"filenameEncoding"),I=rn(i,e,"commentEncoding");for(let N=0;N<p;N++){const L=new q2i(o,r,i.options);if(yo(b,M)!=uee)throw new Error(O2i);yte(L,b,M+6);const j=!!L.bitFlag.languageEncodingFlag,O=M+46,V=O+L.filenameLength,Q=V+L.extraFieldLength,U=Ko(b,M+4),Y=(U&0)==0,J=y.subarray(O,V),ae=Ko(b,M+32),de=Q+ae,Ee=y.subarray(Q,de),ye=j,Se=j,Ge=Y&&(j1(b,M+38)&gee)==gee,ue=yo(b,M+42)+g;Object.assign(L,{versionMadeBy:U,msDosCompatible:Y,compressedSize:0,uncompressedSize:0,commentLength:ae,directory:Ge,offset:ue,diskNumberStart:Ko(b,M+34),internalFileAttribute:Ko(b,M+36),externalFileAttribute:yo(b,M+38),rawFilename:J,filenameUTF8:ye,commentUTF8:Se,rawExtraField:y.subarray(V,Q)});const ge=rn(i,e,"decodeText")||x8,ke=ye?mte:x||vte,je=Se?mte:I||vte;let Te=ge(J,ke);Te===Tr&&(Te=x8(J,ke));let He=ge(Ee,je);He===Tr&&(He=x8(Ee,je)),Object.assign(L,{rawComment:Ee,filename:Te,comment:He,directory:Ge||Te.endsWith(Dvi)}),m=Math.max(ue,m),await wte(L,L,b,M+6);const _e=new Ate(L);_e.getData=(Z,te)=>L.getData(Z,_e,te),M=de;const{onprogress:Ye}=e;if(Ye)try{await Ye(N+1,p,new Ate(L))}catch{}yield _e}const E=rn(i,e,"extractPrependedData"),P=rn(i,e,"extractAppendedData");return E&&(i.prependedData=m>0?await fr(o,0,m):new Uint8Array),i.comment=d?await fr(o,c+S1,d):new Uint8Array,P&&(i.appendedData=u<o.size?await fr(o,u,o.size-u):new Uint8Array),!0}async getEntries(e={}){const i=[];for await(const o of this.getEntriesGenerator(e))i.push(o);return i}async close(){}}class q2i{constructor(e,i,o){Object.assign(this,{reader:e,config:i,options:o})}async getData(e,i,o={}){const r=this,{reader:s,offset:n,diskNumberStart:a,extraFieldAES:l,compressionMethod:c,config:d,bitFlag:u,signature:h,rawLastModDate:A,uncompressedSize:f,compressedSize:p}=r,g=i.localDirectory={},m=await fr(s,n,30,a),M=Yo(m);let y=rn(r,o,"password"),b=rn(r,o,"rawPassword");if(y=y&&y.length&&y,b=b&&b.length&&b,l&&l.originalCompressionMethod!=Avi)throw new Error(fte);if(c!=pvi&&c!=hvi)throw new Error(fte);if(yo(M,0)!=fvi)throw new Error(z2i);yte(g,M,4),g.rawExtraField=g.extraFieldLength?await fr(s,n+30+g.filenameLength,g.extraFieldLength,a):new Uint8Array,await wte(r,g,M,4,!0),Object.assign(i,{lastAccessDate:g.lastAccessDate,creationDate:g.creationDate});const C=r.encrypted&&g.encrypted,x=C&&!l;if(C){if(!x&&l.strength===Tr)throw new Error(V2i);if(!y&&!b)throw new Error(U2i)}const I=n+30+g.filenameLength+g.extraFieldLength,E=p,P=s.readable;Object.assign(P,{diskNumberStart:a,offset:I,size:E});const N=rn(r,o,"signal"),L=rn(r,o,"checkPasswordOnly");L&&(e=new WritableStream),e=k2i(e),await C8(e,f);const{writable:j}=e,{onstart:O,onprogress:V,onend:Q}=o,U={options:{codecType:Gee,password:y,rawPassword:b,zipCrypto:x,encryptionStrength:l&&l.strength,signed:rn(r,o,"checkSignature"),passwordVerification:x&&(u.dataDescriptor?A>>>8&255:h>>>24&255),signature:h,compressed:c!=0,encrypted:C,useWebWorkers:rn(r,o,"useWebWorkers"),useCompressionStream:rn(r,o,"useCompressionStream"),transferStreams:rn(r,o,"transferStreams"),checkPasswordOnly:L},config:d,streamOptions:{signal:N,size:E,onstart:O,onprogress:V,onend:Q}};let Y=0;try{({outputSize:Y}=await g2i({readable:P,writable:j},U))}catch(J){if(!L||J.message!=lI)throw J}finally{const J=rn(r,o,"preventClose");j.size+=Y,!J&&!j.locked&&await j.getWriter().close()}return L?Tr:e.getData?e.getData():j}}function yte(t,e,i){const o=t.rawBitFlag=Ko(e,i+2),r=(o&pee)==pee,s=yo(e,i+6);Object.assign(t,{encrypted:r,version:Ko(e,i),bitFlag:{level:(o&Evi)>>1,dataDescriptor:(o&Aee)==Aee,languageEncodingFlag:(o&fee)==fee},rawLastModDate:s,lastModDate:W2i(s),filenameLength:Ko(e,i+22),extraFieldLength:Ko(e,i+24)})}async function wte(t,e,i,o,r){const{rawExtraField:s}=e,n=e.extraField=new Map,a=Yo(new Uint8Array(s));let l=0;try{for(;l<s.length;){const m=Ko(a,l),M=Ko(a,l+2);n.set(m,{type:m,data:s.slice(l+4,l+4+M)}),l+=4+M}}catch{}const c=Ko(i,o+4);Object.assign(e,{signature:yo(i,o+10),uncompressedSize:yo(i,o+18),compressedSize:yo(i,o+14)});const d=n.get(yvi);d&&(G2i(d,e),e.extraFieldZip64=d);const u=n.get(xvi);u&&(await bte(u,nte,ste,e,t),e.extraFieldUnicodePath=u);const h=n.get(kvi);h&&(await bte(h,ate,lte,e,t),e.extraFieldUnicodeComment=h);const A=n.get(wvi);A?(K2i(A,e,c),e.extraFieldAES=A):e.compressionMethod=c;const f=n.get(bvi);f&&(Y2i(f,e),e.extraFieldNTFS=f);const p=n.get(Cvi);p&&(Z2i(p,e,r),e.extraFieldExtendedTimestamp=p);const g=n.get(Ivi);g&&(e.extraFieldUSDZ=g)}function G2i(t,e){e.zip64=!0;const i=Yo(t.data),o=H2i.filter(([r,s])=>e[r]==s);for(let r=0,s=0;r<o.length;r++){const[n,a]=o[r];if(e[n]==a){const l=Q2i[a];e[n]=t[n]=l.getValue(i,s),s+=l.bytes}else if(t[n])throw new Error(F2i)}}async function bte(t,e,i,o,r){const s=Yo(t.data),n=new y8;n.append(r[i]);const a=Yo(new Uint8Array(4));a.setUint32(0,n.get(),!0);const l=yo(s,1);Object.assign(t,{version:j1(s,0),[e]:x8(t.data.subarray(5)),valid:!r.bitFlag.languageEncodingFlag&&l==yo(a,0)}),t.valid&&(o[e]=t[e],o[e+"UTF8"]=!0)}function K2i(t,e,i){const o=Yo(t.data),r=j1(o,4);Object.assign(t,{vendorVersion:j1(o,0),vendorId:j1(o,2),strength:r,originalCompressionMethod:i,compressionMethod:Ko(o,5)}),e.compressionMethod=t.compressionMethod}function Y2i(t,e){const i=Yo(t.data);let o=4,r;try{for(;o<t.data.length&&!r;){const s=Ko(i,o),n=Ko(i,o+2);s==Mvi&&(r=t.data.slice(o+4,o+4+n)),o+=4+n}}catch{}try{if(r&&r.length==24){const s=Yo(r),n=s.getBigUint64(0,!0),a=s.getBigUint64(8,!0),l=s.getBigUint64(16,!0);Object.assign(t,{rawLastModDate:n,rawLastAccessDate:a,rawCreationDate:l});const c=wI(n),d=wI(a),u=wI(l),h={lastModDate:c,lastAccessDate:d,creationDate:u};Object.assign(t,h),Object.assign(e,h)}}catch{}}function Z2i(t,e,i){const o=Yo(t.data),r=j1(o,0),s=[],n=[];i?((r&1)==1&&(s.push(mI),n.push(vI)),(r&2)==2&&(s.push(hte),n.push(D2i)),(r&4)==4&&(s.push(pte),n.push(P2i))):t.data.length>=5&&(s.push(mI),n.push(vI));let a=1;s.forEach((l,c)=>{if(t.data.length>=a+4){const d=yo(o,a);e[l]=t[l]=new Date(d*1e3);const u=n[c];t[u]=d}a+=4})}async function J2i(t,e,i,o,r){const s=new Uint8Array(4),n=Yo(s);X2i(n,0,e);const a=o+r;return await l(o)||await l(Math.min(a,i));async function l(c){const d=i-c,u=await fr(t,d,c);for(let h=u.length-o;h>=0;h--)if(u[h]==s[0]&&u[h+1]==s[1]&&u[h+2]==s[2]&&u[h+3]==s[3])return{offset:d+h,buffer:u.slice(h,h+o).buffer}}}function rn(t,e,i){return e[i]===Tr?t.options[i]:e[i]}function W2i(t){const e=(t&4294901760)>>16,i=t&65535;try{return new Date(1980+((e&65024)>>9),((e&480)>>5)-1,e&31,(i&63488)>>11,(i&2016)>>5,(i&31)*2,0)}catch{}}function wI(t){return new Date(Number(t/BigInt(1e4)-BigInt(116444736e5)))}function j1(t,e){return t.getUint8(e)}function Ko(t,e){return t.getUint16(e,!0)}function yo(t,e){return t.getUint32(e,!0)}function k8(t,e){return Number(t.getBigUint64(e,!0))}function X2i(t,e,i){t.setUint32(e,i,!0)}function Yo(t){return new DataView(t.buffer)}let Mte;try{Mte=import.meta.url}catch{}sI({baseURL:Mte}),v2i(sI),sI({Deflate:_mi,Inflate:uvi});function $2i(t){return{getDetailedExtensions(e){return[]},getExtensions(e){return[]},getFullTopics(e,i,o,r,s){return[]},getTopics(e,i,o,r){return[]}}}function e4i(t){return{checkProjectAccess(e,i){return{has_read_permission:!0,has_write_permission:!1,has_admin_permission:!1,token_scopes:["bcf:read","document:read","model:read"],usable_scopes:["bcf:read","document:read","model:read"],user_role:50,user:null}},getProjectDMSTree(e,i){return{}},getDocumentHistories(e,i,o){return[]},getProjectUsers(e,i){return[]}}}function t4i(t){const e=t,i=e.units.reduce((d,u)=>(u.conversion_baseunit=e.units[u.conversion_baseunit_index],delete u.conversion_baseunit_index,d[u.id]=u,d),{}),o=e.definitions.reduce((d,u)=>(u.unit=e.units[u.unit_id],delete u.unit_id,d[u.id]=u,d),{}),r=e.property_sets.reduce((d,u)=>(u.properties.forEach(h=>{h.definition=e.definitions[h.def_id],delete h.def_id}),d[u.id]=u,d),{}),s=e.classifications.reduce((d,u)=>(u.name=u.type,u.title=u.description,d[u.id]=u,d),{}),n=e.layers.reduce((d,u)=>(u.elements=[],d[u.id]=u,d),{}),a=e.systems.reduce((d,u)=>(u.elements=[],d[u.uuid]=u,d),{}),l={};l.materials_data=e.materials.materials_data.reduce((d,u)=>(u.property_sets=u.psets.map(h=>e.property_sets[h]),delete u.psets,delete u.step_id,d[u.id]=u,d),{}),l.list_components=e.materials.list_components.reduce((d,u)=>(u.material=e.materials.materials_data[u.material],u.option=e.materials.options[u.material_option],d[u.id]=u,delete u.id,d),{}),l.options=e.materials.options.reduce((d,u)=>(u.list_components=u.material_list.map(h=>e.materials.list_components[h]),d[u.id]=u,d),{});const c={};return e.elements.forEach(d=>{d.attributes=e.property_sets[d.attributes],d.property_sets=d.psets.map(u=>e.property_sets[u]),delete d.psets,d.classifications=d.classifications.map(u=>e.classifications[u]),d.systems=d.systems.map(u=>{const h=e.systems[u];return h.elements.push(d.uuid),h}),d.layers=d.layers.map(u=>{const h=e.layers[u];return h.elements.push(d.uuid),h}),d.material_list=d.material_list.map(u=>e.materials.list_components[u]),c[d.uuid]=d}),{units:i,definitions:o,property_sets:r,classifications:s,layers:n,systems:a,materials:l,elements:c}}function i4i(t){const e={};return Object.values(t).forEach(i=>{e[i.uuid]={},e[i.uuid].attributes={},i.attributes.properties.forEach(o=>{e[i.uuid].attributes[o.definition.name]=o.value}),i.property_sets.forEach(o=>{e[i.uuid][o.name]={},o.properties.forEach(r=>{e[i.uuid][o.name][r.definition.name]=r.value})})}),e}function o4i(t){return Object.values(t).forEach(e=>{e.formattedRawElements=t4i(e.rawElements)}),{getModels(e,i,o,r,s){let n=Object.values(t).map(a=>a.model);return n=n.filter(a=>!(a.type==="PDF"&&a.parent_id)),o?.length>0&&(n=n.filter(a=>o.includes(a.source))),r?.length>0&&(n=n.filter(a=>r.includes(a.status))),s?.length>0&&(n=n.filter(a=>s.includes(a.type))),n},getModel(e,i,o){return t[i].model},getTileset(e,i,o,r){console.warn("[BIMData Viewer] Offline Warning: `getTileset` is not available in offline mode.")},getBuildings(e,i,o){return t[i].buildings},getBuildingPlanPositioning(e,i,o,r,s){const n=this.getBuilding(i,r,s,e).plans.find(a=>a.plan.id===o);return{translation_x:n.translation_x,translation_y:n.translation_y,rotate_z:n.rotate_z,scale:n.scale,opacity:n.opacity}},getBuilding(e,i,o,r){return t[i].buildings.find(s=>s.uuid===r)},getModelClassifications(e,i,o){return Object.values(t[i].formattedRawElements.classifications)},listClassificationElementRelations(e,i,o){return Object.values(t[i].formattedRawElements.elements).flatMap(r=>r.classifications.map(s=>({element_uuid:r.uuid,classification_id:s.id})))},getElementsFromClassification(e,i,o,r){return t[o].formattedRawElements.classifications[i].elements},getDrawings(e,i,o){return t[i].drawings},getDrawing(e,i,o,r){return this.getDrawings(e,o,r).find(s=>s.id===i)},getElements(e,i,o,r,s,n){return Object.values(t[i].formattedRawElements.elements).filter(a=>n?a.type===n:r?a.classifications.some(l=>l.name===r):s?a.classifications.some(l=>l.notation===s):!0)},getElementLinkedDocuments(e,i,o){return console.warn("[BIMData Viewer] Offline Warning: `getElementLinkedDocuments` is not available in offline mode."),[]},async getRawElements(e,i,o,r,s,n){return t[i].rawElements},getSimpleElements(e,i,o,r,s,n){const a=this.getElements(e,i,o,r,s,n);return i4i(a)},getClassificationsOfElement(e,i,o,r){return this.getElement(e,o,r,i).classifications},getDocumentsOfElement(e,i,o,r){return console.warn("[BIMData Viewer] Offline Warning: `getDocumentsOfElement` is not available in offline mode."),[]},getMaterials(e,i,o,r){return this.getElement(e,o,r,i).material_list.map(s=>s.material)},getMaterial(e,i,o,r,s){return this.getMaterials(e,i,r,s).find(n=>n.id===o)},getElementPropertySets(e,i,o,r){return this.getElement(e,o,r,i).property_sets},getElementPropertySet(e,i,o,r,s){return this.getElementPropertySets(e,i,r,s).find(n=>n.id===o)},getElementPropertySetProperties(e,i,o,r,s){return this.getElementPropertySet(e,i,s,o,r).properties},getElementPropertySetProperty(e,i,o,r,s,n){return this.getElementPropertySetProperties(e,i,r,s,n).find(a=>a.id===o)},getElementPropertySetPropertyDefinitions(e,i,o,r,s,n){return[this.getElementPropertySetProperty(e,i,s,o,r,n).definition]},getElementPropertySetPropertyDefinition(e,i,o,r,s,n,a){const l=this.getElementPropertySetProperty(e,i,n,r,s,a).definition;return l.id===o?l:void 0},getElementPropertySetPropertyDefinitionUnits(e,i,o,r,s,n,a){return[this.getElementPropertySetPropertyDefinition(e,i,n,o,r,s,a).unit]},getElementPropertySetPropertyDefinitionUnit(e,i,o,r,s,n,a,l){const c=this.getElementPropertySetPropertyDefinition(e,i,a,r,s,n,l).unit;return c.id===o?c:void 0},getElement(e,i,o,r){return t[i].formattedRawElements.elements[r]},getSimpleElement(e,i,o,r){return this.getSimpleElements(e,i,o)[r]},getLayers(e,i,o){return Object.values(t[i].formattedRawElements.layers)},getLayer(e,i,o,r){return this.getLayers(e,o,r).find(s=>s.id===i)},getModelMaterials(e,i,o){return Object.values(t[i].formattedRawElements.materials.materials_data)},getModelMaterial(e,i,o,r){return this.getModelMaterials(e,o,r).find(s=>s.id===i)},getProcessorHandlers(e,i,o){return console.warn("[BIMData Viewer] Offline Warning: `getProcessorHandlers` is not available in offline mode."),[]},getProcessorHandler(e,i,o,r){console.warn("[BIMData Viewer] Offline Warning: `getProcessorHandler` is not available in offline mode.")},getModelProperties(e,i,o){return t[i].properties},getModelProperty(e,i,o,r){return t[o].properties.find(s=>s.id===i)},getModelPropertyDefinitions(e,i,o){return Object.values(t[i].formattedRawElements.definitions)},getModelPropertyDefinition(e,i,o,r){return this.getModelPropertyDefinitions(e,o,r).find(s=>s.id===i)},getPropertySets(e,i,o){return Object.values(t[i].formattedRawElements.property_sets)},getPropertySet(e,i,o,r){return this.getPropertySets(e,o,r).find(s=>s.id===i)},getSpaces(e,i,o){return t[i].spaces},getSpace(e,i,o,r){return t[o].spaces.find(s=>s.id===i)},getStoreys(e,i,o){return t[i].storeys},getStoreyPlanPositioning(e,i,o,r,s){const n=this.getStorey(e,o,r,s).plans.find(a=>a.plan.id===i);return{translation_x:n.translation_x,translation_y:n.translation_y,rotate_z:n.rotate_z,scale:n.scale,opacity:n.opacity}},getStorey(e,i,o,r){return t[i].storeys.find(s=>s.uuid===r)},getSystems(e,i,o){return Object.values(t[i].formattedRawElements.systems)},getSystem(e,i,o,r){return this.getSystems(e,i,o).find(s=>s.uuid===r)},getModelUnits(e,i,o){return Object.values(t[i].formattedRawElements.units)},getModelUnit(e,i,o,r){return this.getModelUnits(e,o,r).find(s=>s.id===i)},getZones(e,i,o,r){return t[i].zones.filter(s=>r?s.color===r:!0)},getZone(e,i,o,r){return t[o].zones.find(s=>s.id===i)},getZoneSpaces(e,i,o,r){return this.getZone(e,r,i,o).spaces},getZoneSpace(e,i,o,r,s){return this.getZoneSpaces(e,o,r,s).find(n=>n.id===i)}}}async function r4i(t){const e=t.find(o=>o.filename==="data.json"),i=await e?.getData(new M2i);return i?JSON.parse(i):null}async function av(t,e,i){const o=t.find(s=>s.filename===`${e.id}/${i}`),r=await o?.getData(new ite);return r?URL.createObjectURL(r):null}async function n4i(t,e){await Promise.all([av(t,e,"document_file").then(i=>e.document&&(e.document.file=i)),av(t,e,"structure_file").then(i=>e.structure_file=i),av(t,e,"map_file").then(i=>e.map_file=i),av(t,e,"binary_2d_file").then(i=>e.binary_2d_file=i),...e.xkt_files.map((i,o)=>av(t,e,`xkt_file_v${i.version}`).then(r=>e.xkt_files[o]={version:i.version,file:r}))])}async function s4i(t){const e=await new _2i(new tte(t)).getEntries(),i=await r4i(e);return await Promise.all(Object.values(i).flatMap(({model:o,buildings:r,storeys:s})=>[o].concat(o.children).concat(r.flatMap(n=>n.plans).map(n=>n.plan)).concat(s.flatMap(n=>n.plans).map(n=>n.plan))).map(o=>n4i(e,o))),i}function bI(t,e,i){return new Proxy(t[i],{get:function(o,r){if(e[r])return e[r];throw new Error(`[BIMData Viewer] Offline Error: method \`${i}.${r}\` is not mocked.`)}})}async function a4i(t,e,i){var o,r,s;typeof t=="string"&&(t=await fetch(t).then(d=>d.blob()));const n=await s4i(t),a=$2i(),l=e4i(),c=o4i(n);return Object.assign(a,(o=i.methods)==null?void 0:o.bcfApi),Object.assign(l,(r=i.methods)==null?void 0:r.collaborationApi),Object.assign(c,(s=i.methods)==null?void 0:s.modelApi),Object.assign({},e,{bcfApi:bI(e,a,"bcfApi"),collaborationApi:bI(e,l,"collaborationApi"),modelApi:bI(e,c,"modelApi")})}class l4i{constructor(e={}){const{apiUrl:i,archiveUrl:o,pdfBackendUrl:r,cloudId:s,projectId:n,accessToken:a,offline:l}=e;this.apiUrl=i,this.archiveUrl=o,this.pdfBackendUrl=r,this.cloudId=s,this.projectId=n,this._accessToken=a,this.offline=l??{enabled:!1};const c=ky.makeBIMDataApiClient({apiUrl:i,accessToken:a});this.apiClient=c,this.ready=Promise.resolve(),this.getModelsPromise=null,Object.assign(c,{BcfApi:function(){return console.warn("[BIMData Viewer] DEPRECATED - API - please use `apiClient.bcfApi` instead of `new apiClient.BcfApi()`."),c.bcfApi},CollaborationApi:function(){return console.warn("[BIMData Viewer] DEPRECATED - API - please use `apiClient.collaborationApi` instead of `new apiClient.CollaborationApi()`."),c.collaborationApi},ModelApi:function(){return console.warn("[BIMData Viewer] DEPRECATED - API - please use `apiClient.modelApi` instead of `new apiClient.ModelApi()`."),c.modelApi},IfcApi:function(){return console.warn("[BIMData Viewer] DEPRECATED - API - please use `apiClient.modelApi` instead of `new apiClient.IfcApi()`."),new Proxy(c.modelApi,{get:function(d,u,h){const A=u.replace("Deprecated","").replace("Ifc","Model");return Reflect.get(d,A,h)}})}})}get accessToken(){return this._accessToken}set accessToken(e){this._accessToken=e,this.apiClient.accessToken=e}async getAvailableModels(e=null,i=!1){return i&&(this.getModelsPromise=null),this.getModelsPromise||(this.getModelsPromise=apiClient.modelApi.getModels(cloudId,projectId)),(await this.getModelsPromise).filter(o=>e?.includes(o.type)??!0)}getModel(e){const{cloudId:i,projectId:o,apiClient:r}=this;return r.modelApi.getModel(i,e,o)}getIfc(e){return console.warn("[BIMData Viewer] DEPRECATED - API - please use the `getModel` method instead of `getIfc`."),this.getModel(e)}async getModelStructure(e){const i=(await(await fetch(e.structure_file)).json())[0];return zl(i),i}getIfcStructure(e){return console.warn("[BIMData Viewer] DEPRECATED - API - please use the getModelStructure method instead of getIfcStructure."),this.getModelStructure(e)}async getRawElements(e){const{cloudId:i,projectId:o,apiClient:r}=this,s=await r.modelApi.getRawElements(i,e,o);s.units.forEach(a=>{a.conversion_baseunit=s.units[a.conversion_baseunit_index],delete a.conversion_baseunit_index}),s.definitions.forEach(a=>{a.unit=s.units[a.unit_id],delete a.unit_id}),s.property_sets.forEach(a=>{a.properties.forEach(l=>{l.definition=s.definitions[l.def_id],delete l.def_id})});const n={};return s.elements.forEach(a=>{a.attributes=s.property_sets[a.attributes],a.property_sets=a.psets.map(l=>s.property_sets[l]),Object.assign(a,{get propertySets(){return console.warn("propertySets is deprecated, please use property_sets instead."),a.property_sets}}),delete a.psets,a.classifications=a.classifications.map(l=>s.classifications[l]),a.systems=a.systems.map(l=>s.systems[l]),a.layers=a.layers.map(l=>s.layers[l]),n[a.uuid]=a}),n}getStoreys(e){const{cloudId:i,projectId:o,apiClient:r}=this;return r.modelApi.getStoreys(i,e,o)}createModel(e){const{cloudId:i,projectId:o,apiClient:r}=this;return r.modelApi.createModel(i,o,{document_id:e})}async waitForModelProcess(e){const i=["C","E","X"];return i.includes(e.status)?e:new Promise((o,r)=>{const s=setInterval(async()=>{try{let n=await this.getModel(e.id);i.includes(n.status)&&(clearInterval(s),o(n))}catch(n){clearInterval(s),r(n)}},1e3)})}async createStoreyPlan(e,i,o){const{cloudId:r,projectId:s,apiClient:n}=this,a=await this.createModel(o);return await n.modelApi.createStoreyPlan(r,e,s,i,{id:a.id}),a}deleteStoreyPlan(e,i,o){const{cloudId:r,projectId:s,apiClient:n}=this;return n.modelApi.deleteStoreyPlan(r,o,e,s,i)}updatePlanPositioning(e,i,o,r){const{cloudId:s,projectId:n,apiClient:a}=this;return a.modelApi.updateStoreyPlanPositioning(s,o,e,n,i,r)}async enableOfflineMode(e,i={}){let o;this.ready=new Promise(r=>o=r),this.apiClient=await a4i(e,this.apiClient,i),this.offline.enabled=!0,o()}disableOfflineMode(){this.offline.enabled&&(this.apiClient=ky.makeBIMDataApiClient({apiUrl:this.apiUrl,accessToken:this.accessToken}),this.offline.enabled=!1)}}function c4i(t){const e=[{methodName:"selectObjects",property:"selected",value:!0,eventName:"objects-selected",exlusiveIndex:1},{methodName:"deselectObjects",property:"selected",value:!1,eventName:"objects-deselected"},{methodName:"highlightObjects",property:"highlighted",value:!0,eventName:"objects-highlighted"},{methodName:"unhighlightObjects",property:"highlighted",value:!1,eventName:"objects-unhighlighted"},{methodName:"showObjects",property:"visible",value:!0,eventName:"objects-shown"},{methodName:"hideObjects",property:"visible",value:!1,eventName:"objects-hidden"},{methodName:"xrayObjects",property:"xrayed",value:!0,eventName:"objects-xrayed"},{methodName:"unxrayObjects",property:"xrayed",value:!1,eventName:"objects-unxrayed"},{methodName:"setObjectsPickable",property:"pickable",value:!0,eventName:"objects-pickable"},{methodName:"setObjectsUnpickable",property:"pickable",value:!1,eventName:"objects-unpickable"}],i=e.reduce((r,s)=>(r[s.methodName]=function(n,a){o(this,s,a);const{property:l,value:c}=s,d=[];for(const u of n){const h=t.get(u);try{h[l]=c,d.push(h)}catch{console.warn(`object with id ${u} does not exist`)}}this.hub.emit(s.eventName,{objects:d,options:{...a}})},r[`${s.methodName}ByUuids`]=function(n,a){o(this,s,a);const{property:l,value:c}=s,d=n.map(u=>this.uuidsMap.get(u)).filter(u=>u?.length>0).flatMap(u=>u.map(h=>(h[l]=c,h)));this.hub.emit(s.eventName,{objects:d,options:{...a}})},r),{}),o=(r,s,n)=>{if(s.exlusiveIndex!==void 0&&n!=null&&n.exclusive){const a=e[s.exlusiveIndex],{property:l,value:c}=s;r[a.methodName](r.objects.filter(d=>d[l]===c).map(d=>d.id),{options:{...n}})}};return{...i,colorizeObjects(r,s,n){const a=[];for(const l of r)try{const c=t.get(l);c.color=s,a.push(c)}catch{console.warn(`object with id ${l} does not exist`)}this.hub.emit("objects-colorized",{objects:a,color:s,options:{...n}})},colorizeObjectsByUuids(r,s,n){const a=r.flatMap(l=>this.uuidsMap.get(l));this.colorizeObjects(a.map(l=>l.id),s,n)},get objects(){return Array.from(t.values())},get objectsIds(){return this.objects.map(r=>r.id)},get objectsUuids(){return Array.from(new Set(this.objects.map(r=>r.uuid)))},get objectsMap(){return t}}}const d4i=Object.freeze({EXA:10**18,PETA:10**15,TERA:10**12,GIGA:10**9,MEGA:10**6,KILO:10**3,HECTO:10**2,DECA:10,DECI:10**-1,CENTI:10**-2,MILLI:10**-3,MICRO:10**-6,NANO:10**-9,PICO:10**-12,FEMTO:10**-15,ATTO:10**-18});async function u4i(t,e,i){async function o(d,u){try{const h=(await t.apiClient.modelApi.getElement(t.cloudId,i,t.projectId,d)).attributes.properties.find(A=>A.definition.name===u);if(h){const A=h.definition.unit;if(A){const{name:f,prefix:p}=A;f!=="METRE"&&console.warn(`[Viewer] Elevation unit other that "METRE" are not supported. Unit "${f}" fallback to "METRE".`);const g=d4i[p];return g===void 0&&console.warn(`[Viewer] Elevation unit prefix "${p}" is unknown and will be ignored.`),(h.value??0)*(g??1)}else return h.value??0}}catch(h){console.warn(`[Models] Cannot get elevation of object with uuid ${d}: ${h}`)}return 0}const r=new Map,s=new Map,n=new Map;function a(){const d=new Set(e.map(u=>{var h,A;return(A=(h=u.object)==null?void 0:h.site)==null?void 0:A.uuid}).filter(Boolean));return r4(d,10,(u,h)=>{o(u,"RefElevation").then(A=>{r.set(u,A),h()},h)})}function l(){const d=new Set(e.map(u=>{var h,A;return(A=(h=u.object)==null?void 0:h.building)==null?void 0:A.uuid}).filter(Boolean));return r4(d,10,(u,h)=>{o(u,"ElevationOfRefHeight").then(A=>{s.set(u,A),h()},h)})}function c(){return r4(e,10,(d,u)=>{o(d.uuid,"Elevation").then(h=>{n.set(d.uuid,h),u()},u)})}await Promise.all([a(),l(),c()]),e.forEach(d=>{var u,h,A,f;const p=n.get(d.uuid)??0;d.elevation=p;const g=s.get((h=(u=d.object)==null?void 0:u.building)==null?void 0:h.uuid);if(g==null){const m=r.get((f=(A=d.object)==null?void 0:A.site)==null?void 0:f.uuid)??0;d.absoluteElevation=p+m}else d.absoluteElevation=p+g}),e.forEach((d,u)=>{var h,A;d.topElevation=((h=e[u+1])==null?void 0:h.elevation)??1/0,d.absoluteTopElevation=((A=e[u+1])==null?void 0:A.absoluteElevation)??1/0})}class BI{constructor(e){const{archived:i,binary_2d_file:o,children:r,created_at:s,creator:n,document:a,document_id:l,errors:c,gltf_file:d,id:u,map_file:h,name:A,north_vector:f,page_number:p,parent_id:g,preview_file:m,project_id:M,recommanded_2d_angle:y,size_ratio:b,source:C,status:x,structure_file:I,systems_file:E,type:P,updated_at:N,version:L,viewer_360_file:j,warnings:O,world_position:V,xkt_file:Q,xkt_files:U}=e;this.id=u,this.name=A,this.type=P,this.archived=i,this.binary_2d_file=o,this.children=r?.map(Y=>new BI(Y))??[],this.created_at=s,this.creator=n,this.document=a,this.document_id=l,this.errors=c,this.gltf_file=d,this.map_file=h,this.north_vector=f,this.page_number=p,this.parent_id=g,this.preview_file=m,this.project_id=M,this.recommanded_2d_angle=y,this.size_ratio=b,this.source=C,this.status=x,this.structure_file=I,this.systems_file=E,this.updated_at=N,this.version=L,this.viewer_360_file=j,this.warnings=O,this.world_position=V,this.xkt_file=Q,this.xkt_files=U}}class Cte{constructor(e,i,o,r){this.model=i,this.storey=o,this.index=r,this.key=`${o.key}-${e.plan.id}-${r}`,this.translation_x=e.translation_x??0,this.translation_y=e.translation_y??0,this.rotate_z=e.rotate_z??0,this.scale=e.scale??1,this.opacity=e.opacity??1,this.plan=e.plan}}class h4i{constructor(e,i){this.model=i;const{name:o,uuid:r,plans:s,plans_unreachable_count:n}=e;this.name=o,this.uuid=r,this.key=`${i.id}-${this.uuid}`,this.plans_unreachable_count=n,this.plans=s.map((a,l)=>new Cte(a,i,this,l)),this.object=i.uuids.get(this.uuid),this.objects=null,this.elevation=null,this.absoluteElevation=null,this.topElevation=null,this.absoluteTopElevation=null}get uuids(){return new Map([...this.objects.values()].map(e=>[e.uuid,e]))}}class p4i extends y7{constructor(e,i){super(e,i,"zone");const{id:o,uuid:r,name:s,created_at:n,updated_at:a,parent_id:l,order:c,zones:d,spaces:u,color:h,storey_uuid:A}=e;this.id=o,this.uuid=r,this.name=s,this.created_at=n,this.updated_at=a,this.parent_id=l,this.order=c,this.zones=d,this.spaces=u,this.color=h,this.storey_uuid=A}}class A4i extends BI{constructor(e,i,{structure:o,zones:r,systems:s,storeys:n}={}){var a,l;if(super(i),this._stateObjectMap=e,this.uuids=new Map,o){const u=jR(o,this,e),h=K0t(u);this.structure=u,this.objects=h,h.forEach(A=>{A.uuid&&this.uuids.set(A.uuid,A)})}else this.structure=null,this.objects=[];this.zones=[],this.setZones(r??[]),s?.forEach(u=>{const h=new y7(u,this,"system");this.uuids.set(h.uuid,h),e.set(h.id,h),this.objects.unshift(h)}),this.storeys=n?.map(u=>new h4i(u,this)).sort(Rl("order",!1))??[];const c=new Map(this.storeys.map(u=>[u.uuid,new Set])),d=this.type==="DWG"?"layout":"storey";for(const u of this.objects)u.type!==d&&c.has((a=u[d])==null?void 0:a.uuid)&&c.get((l=u[d])==null?void 0:l.uuid).add(u);for(const u of this.storeys){const h=c.get(u.uuid);u.objects=h?[...h.values()]:[]}}setZones(e=[]){this.zones.forEach(i=>{this._stateObjectMap.delete(i.id),this.uuids.delete(i.uuid),this.objects.splice(this.objects.indexOf(i),1)}),this.zones=e.map(i=>{const o=new p4i(i,this);return this._stateObjectMap.set(o.id,o),this.uuids.set(o.uuid,o),this.objects.unshift(o),o})}}const f4i=(t,e,i)=>{const{api:o}=i;async function r(s){if(typeof s=="string"&&(console.warn(`[State] 'loadModel' called with id ${s} as string and parsed as integer.`),s=parseInt(s)),t.get(s))return console.warn(`[State] 'loadModel' called with id ${s}}, model already loaded.`),t.get(s);const n=[o.apiClient.modelApi.getZones(o.cloudId,s,o.projectId),o.apiClient.modelApi.getSystems(o.cloudId,s,o.projectId),o.getStoreys(s)],a=await o.getModel(s);a.structure_file&&n.push(o.getModelStructure(a));const[l,c,d,u]=await Promise.all(n),h=new A4i(e,a,{structure:u,zones:l,systems:c,storeys:d});return h.objects.forEach(A=>{var f,p;A.parent=h.uuids.get((f=A.parent)==null?void 0:f.uuid),A.children=(p=A.children)==null?void 0:p.map(g=>h.uuids.get(g.uuid)).filter(Boolean)}),await u4i(o,h.storeys,h.id),t.set(s,h),h}return{get models(){return Array.from(t.values())},get ifcs(){return console.warn("[BIMData Viewer] DEPRECATED - State model - please use the models instead of ifcs."),Array.from(t.values()).filter(s=>!s.type||s.type==="IFC")},get modelsMap(){return t},get ifcsMap(){return console.warn("[BIMData Viewer] DEPRECATED - State model - please use the modelsMap instead of ifcsMap."),new Map([...t].filter(([,s])=>!s.type||s.type==="IFC"))},async loadModels(s){const n=await Promise.allSettled(s.map(r));n.filter(l=>l.status==="rejected").forEach(l=>console.error(l.reason));const a=n.filter(l=>l.status==="fulfilled").map(l=>l.value);if(a.length>0){const l=a.filter(c=>!c.type||c.type==="IFC");l.length&&this.hub.emit("ifcs-loaded",{ifcs:l}),this.hub.emit("models-loaded",{models:a}),i.globalContext.hub.emit("models-loaded",{models:a}),this.hub.emit("objects-added",{objects:a.flatMap(c=>c.objects)})}return a},loadIfcs(s){return console.warn("[BIMData Viewer] DEPRECATED - State model - please use the loadModels method instead of loadIfcs."),this.loadModels(s)},unloadModels(s){const n=[],a=[];if(s.forEach(l=>{const c=t.get(l);c?(t.delete(l),c.objects.map(d=>(a.push(d),d.id)).forEach(d=>e.delete(d)),n.push(c)):console.warn(`[State] Cannot unload model with id ${l} because it is not loaded.`)}),a.length>0&&this.hub.emit("objects-removed",{objects:a}),n.length>0){const l=n.filter(c=>!c.type||c.type==="IFC");l.length&&this.hub.emit("ifcs-unloaded",{ifcs:l}),this.hub.emit("models-unloaded",{models:n})}return n},unloadIfcs(s){return console.warn("[BIMData Viewer] DEPRECATED - State model - please use the unloadModels method instead of unloadIfcs."),this.unloadModels(s)},getStoreyFromAbsoluteElevation(s,n){var a;if(!s.storeys)return null;for(let l=0;l<s.storeys.length;l++)if(n>=s.storeys[l].absoluteElevation&&n<(((a=s.storeys[l+1])==null?void 0:a.absoluteElevation)??1/0))return s.storeys[l];return s.storeys[0]}}};function g4i(t){return{async createPlan(e,i,o,r){const s=await t.api.createStoreyPlan(e.id,i.uuid,o.id);await t.api.updatePlanPositioning(e.id,i.uuid,s.id,r);const n=new Cte({...r,plan:s},e,i,e.storeys.length);return i.plans.push(n),this.hub.emit("plan-created",{plan:n}),n},async updatePlan(e){const i=await t.api.updatePlanPositioning(e.model.id,e.storey.uuid,e.plan.id,e);return Object.assign(e,i),this.hub.emit("plan-updated",{plan:e}),e},async deletePlan(e){await t.api.deleteStoreyPlan(e.model.id,e.storey.uuid,e.plan.id),e.storey.plans=e.storey.plans.filter(i=>i.key!==e.key),this.hub.emit("plan-deleted",{plan:e})}}}const m4i=(t,e)=>{const i={getObjectsByUuids(o){return o.flatMap(r=>this.uuidsMap.get(r))},getObject(o){return console.warn("[BIMData Viewer] DEPRECATED - State - `getObject` is deprecated, use `objectsMap.get` instead."),e.get(o)},getIfc(o){return console.warn("[BIMData Viewer] DEPRECATED - State - `getIfc` is deprecated, use `modelsMap.get` instead."),t.get(o)},get colorizedObjects(){return Array.from(e.values()).filter(o=>!!o.color)},get colorizedObjectsIds(){return this.colorizedObjects.map(o=>o.id)},get colorizedObjectsUuids(){return Array.from(new Set(this.colorizedObjects.map(o=>o.uuid)))},getObjectsOfType(o){return Array.from(e.values()).filter(r=>r.type===o)},getTypesOf(o){typeof o.map>"u"&&(o=[...o]);const r=new Set;return o.forEach(s=>{const n=e.get(s);n&&n.type&&r.add(n.type)}),Array.from(r).sort()},getObjectsWithTheSameTypeAs(o){const r=this.getTypesOf(o);return[...e.values()].filter(s=>r.includes(s.type))}};return v4i.forEach(o=>{Object.defineProperty(i,o.name,{get(){return Array.from(e.values()).filter(r=>r[o.property]===o.value).map(r=>Object.freeze(Object.defineProperties({},Object.getOwnPropertyDescriptors(r))))}}),Object.defineProperty(i,`${o.name}Ids`,{get(){return this[o.name].map(y4i)}}),Object.defineProperty(i,`${o.name}Uuids`,{get(){return Array.from(new Set(this[o.name].map(w4i)))}})}),i},v4i=[{name:"selectedObjects",property:"selected",value:!0},{name:"deselectedObjects",property:"selected",value:!1},{name:"highlightedObjects",property:"highlighted",value:!0},{name:"unhighlightedObjects",property:"highlighted",value:!1},{name:"visibleObjects",property:"visible",value:!0},{name:"unvisibleObjects",property:"visible",value:!1},{name:"xrayedObjects",property:"xrayed",value:!0},{name:"unxrayedObjects",property:"xrayed",value:!1},{name:"pickableObjects",property:"pickable",value:!0},{name:"unpickableObjects",property:"pickable",value:!1}];function y4i(t){return t.id}function w4i(t){return t.uuid}function MI(t,e,i){var o;return(o=t.mixins)!=null&&o.some(r=>r[i])||(t.mixins?t.mixins[t.mixins.length]=e:t.mixins=[e]),t}const xte=Symbol("annotation-mixin-id");function b4i(t){let e=0;const i=new Set;return{get annotations(){return Array.from(i)},addAnnotation({x:o=0,y:r=0,z:s=0,draggable:n=!0,grabberSelector:a,component:l={render(){}},props:c={}}={},d){const u=this,h=e++,A={get id(){return h},get x(){return o},set x(f){o=f,u.hub.emit("annotation-updated",{annotation:A})},get y(){return r},set y(f){r=f,u.hub.emit("annotation-updated",{annotation:A})},get z(){return s},set z(f){s=f,u.hub.emit("annotation-updated",{annotation:A})},draggable:n,grabberSelector:a,component:l,props:c};return MI(A.component,{[xte]:!0,inject:["$viewer"]},xte),i.add(A),this.hub.emit("annotation-added",{annotation:A,options:d}),A},removeAnnotation(o,r){return i.has(o)?(i.delete(o),this.hub.emit("annotation-removed",{annotation:o,options:r}),!0):!1},clearAnnotations(){i.forEach(o=>this.removeAnnotation(o))}}}function M4i(t){const e=new Map,i=new Map,o={uuidsMap:{get(r){const s=[];return e.forEach(n=>{const a=n.uuids.get(r);a&&s.push(a)}),s}},hub:new kl};return[f4i(e,i,t),c4i(i),g4i(t),b4i(),m4i(e,i)].forEach(r=>Object.defineProperties(o,Object.getOwnPropertyDescriptors(r))),o}function C4i(t){if(t?.type==="container")E4i(t);else if(t?.type==="zone")I4i(t);else throw new TypeError("AREAS CORE - Layout first child must be a zone or a container.");return x4i(t),t}function x4i(t){const e=new Set,i=new Set;for(let o of t)if(o.id!=null)if(o.type==="zone"){if(e.has(o.id))throw new Error("AREAS CORE - Cannot add the same zone id twice.");e.add(o.id)}else{if(i.has(o.id))throw new Error("AREAS CORE - Cannot add the same container id twice.");i.add(o.id)}}function k4i(t){kte(t.layout,"zone",t.zoneIdManager),kte(t.layout,"container",t.containerIdManager)}function kte(t,e,i){const o=[...t].filter(r=>r.type===e);o.map(r=>r.id).filter(r=>r!=null).forEach(r=>i.add(r)),o.filter(r=>r.id===void 0||r.id===null).forEach(r=>{r.id=i.nextId()})}function I4i(t){if(typeof t!="object")throw new TypeError("AREAS CORE - Invalid zone. Zone must be an object.");if(t?.type!=="zone")throw new TypeError('AREAS CORE - Invalid zone. A zone must be of type "zone".');return t}function E4i(t){var e,i;if(typeof t!="object")throw new TypeError("AREAS CORE - Invalid container. A container must be an object.");if(t?.type!=="container")throw new TypeError('AREAS CORE - Invalid container. Container must be of type "container".');if(t!=null&&t.direction&&!["row","column"].includes(t.direction))throw new TypeError('AREAS CORE - Invalid container. Container direction must be of type "row" or "column".');if(((e=t?.children)==null?void 0:e.length)<2)throw new TypeError("AREAS CORE - Invalid container. Container children must have at least 2 children.");if(((i=t?.children)==null?void 0:i.reduce((o,r)=>o+r?.ratio,0))!==100)throw new TypeError("AREAS CORE - Invalid container. The sum of container children ratios must be equal to 100.");return t}function Ite(t){var e;return(e=t.children)!=null&&e.length&&t.children.forEach(i=>{Object.defineProperty(i,Symbol.iterator,{value:Ite(i),configurable:!0})}),function*(){var i;if(yield t,(i=t.children)!=null&&i.length)for(let o of t.children)yield*o}}function N1(t){return Object.defineProperty(t,Symbol.iterator,{value:Ite(t),configurable:!0}),t}function Ete(){let t=1;const e=new Set;return{nextId(){for(;!this.isIdAvailable(t);)t++;return e.add(t),t},isIdAvailable(i){return!e.has(i)},add(i){return this.isIdAvailable(i)?(e.add(i),i):!1}}}function Dte(t){var e;if(!t)return;const i=Object.assign({},t);return((e=t.children)==null?void 0:e.length)>0&&(i.children=t.children.map(Dte)),i}function D4i(t){return e=>{const i=t.getZone(e);if(!i)return!1;const o=t.getParent(i);if(!o)throw new Error("AREAS CORE - Cannot delete root Zone");const r=o.children.indexOf(i);if(o.children.length>2){const s=o.children[r-1],n=o.children[r+1];r===0?n.ratio+=i.ratio:r===o.children.length-1?s.ratio+=i.ratio:(s.ratio+=Math.floor(i.ratio/2),n.ratio+=Math.ceil(i.ratio/2)),o.children=o.children.filter(a=>a.type!=="zone"||a.id!==e)}else{const s=o.children[r===1?0:1];s.ratio=o.ratio;const n=t.getParent(o);if(n){const a=n.children.indexOf(o);n.children.splice(a,1,s)}else t.layout=s}return!0}}var P4i=D4i;function B4i(t){return()=>Pte(t.layout,[t.layout])}function Pte(t,e=[]){var i;return(i=t.children)==null||i.forEach(o=>{e.push(o),o.type==="container"&&Pte(o,e)}),e}var S4i=B4i;function L4i(t){return e=>{if(!e)throw new TypeError("AREAS CORE - fail to get parent: container child is null or undefined");return t.layout.type==="zone"?null:Bte(t.layout,e)}}function Bte(t,e){for(let i of t.children){if(i===e)return t;if(i.type==="container"){const o=Bte(i,e);if(o)return o}}return null}var T4i=L4i;function j4i(t){return e=>t.layout.type==="zone"?t.layout.id===e?t.layout:null:Ste(t.layout,e)}function Ste(t,e){for(let i of t.children)if(i.type==="zone"){if(i.id===e)return i}else{const o=Ste(i,e);if(o)return o}return null}var N4i=j4i;function R4i(t){return(e,i)=>{if(typeof i!="number")throw new TypeError("AREAS CORE - resize value must be a number.");const o=t.getParent(e),r=o.children.findIndex(n=>n===e);if(r===-1)return!1;const s=o.children[r+1];if(s){const n=e.ratio+s.ratio;let a=e.ratio+i;return a=a<0?0:a,a=a>n?n:a,e.ratio=a,s.ratio=n-a,!0}else return!1}}var O4i=R4i;function z4i(t){return(e,i=50,o="row",r=!0,s=null)=>{const n=t.getZone(e);if(!n)throw new Error(`AREAS CORE - fail to split zone ${e}: zone does not exist.`);if(typeof i!="number"||i<0||i>100)throw new TypeError(`AREAS CORE - fail to split zone: invalid ratio ${i}, ratio should be a number between 0 and 100.`);if(o!=="row"&&o!=="column")throw new TypeError(`AREAS CORE - fail to split zone: invalid direction ${o}, direction should be 'row' or 'column'.`);const a=t.getParent(n),l=N1({id:t.zoneIdManager.nextId(),type:"zone",...s});if(a){const c=a.children.findIndex(d=>d===n);if(a.direction===o)r?(l.ratio=Math.floor(n.ratio*(100-i)/100),n.ratio=Math.ceil(n.ratio*i/100),a.children.splice(c,1,n,l)):(l.ratio=Math.floor(n.ratio*i/100),n.ratio=Math.ceil(n.ratio*(100-i)/100),a.children.splice(c,1,l,n));else{const d=N1({id:t.containerIdManager.nextId(),type:"container",direction:o,ratio:n.ratio});r?(l.ratio=Math.floor(100-i),n.ratio=Math.ceil(i),d.children=[n,l]):(l.ratio=Math.floor(i),n.ratio=Math.ceil(100-i),d.children=[l,n]),a.children.splice(c,1,d)}}else{const c=N1({id:t.containerIdManager.nextId(),type:"container",direction:o});r?(l.ratio=Math.floor(100-i),n.ratio=Math.ceil(i),c.children=[n,l]):(l.ratio=Math.floor(i),n.ratio=Math.ceil(100-i),c.children=[l,n]),t._layout=c}return l}}var F4i=z4i;function U4i(t){return(e=50,i="row",o=!0,r=null)=>{const s=t.layout;if(typeof e!="number"||e<0||e>100)throw new TypeError(`AREAS CORE - fail to split layout: invalid ratio ${e}, ratio should be a number between 0 and 100.`);if(i!=="row"&&i!=="column")throw new TypeError(`AREAS CORE - fail to split layout: invalid direction ${i}, direction should be 'row' or 'column'.`);const n=N1({id:t.zoneIdManager.nextId(),type:"zone",...r}),a=N1({id:t.containerIdManager.nextId(),type:"container",direction:i});return o?(n.ratio=Math.floor(100-e),s.ratio=Math.ceil(e),a.children=[s,n]):(n.ratio=Math.floor(e),s.ratio=Math.ceil(100-e),a.children=[n,s]),t._layout=a,n}}var V4i=U4i;function H4i(t){return(e,i)=>{const o=t.getZone(e),r=t.getZone(i);if(!o)throw new Error(`AREAS CORE - fail to swap zone ${e}: zone does not exist.`);if(!r)throw new Error(`AREAS CORE - fail to swap to zone ${i}: zone does not exist.`);const s=t.getParent(o),n=t.getParent(r),a=s.children.indexOf(o),l=n.children.indexOf(r),c=o.ratio,d=r.ratio;o.ratio=d,r.ratio=c,s.children[a]=r,n.children[l]=o}}var Q4i=H4i;function _4i(t){const e={_layout:null,get layout(){return this._layout},set layout(i){i||(i={type:"zone"}),N1(i),C4i(i),this._layout=i,k4i(e)},zoneIdManager:Ete(),containerIdManager:Ete()};return e.layout=t,e.deleteZone=P4i(e),e.getNodes=S4i(e),e.getParent=T4i(e),e.getZone=N4i(e),e.resize=O4i(e),e.splitZone=F4i(e),e.splitLayout=V4i(e),e.swapZones=Q4i(e),e}var q4i=_4i;function Lte(t=1,e=0,i=100){return Math.min(Math.max(e,t),i)}function Tte(t,e){const i=t.getParent(e);if(i){const{width:o,height:r}=Tte(t,i),s=i.children.length-1;return i.direction==="column"?{width:o,height:Math.max(0,(r-s*t.separatorSize)*(e.ratio/100))}:{width:Math.max(0,(o-s*t.separatorSize)*(e.ratio/100)),height:r}}else return{width:t.width,height:t.height}}function jte(t,e,i){const{width:o,height:r}=Tte(t,e),s=e.children.length-1;if(e.direction==="column"){const n=1-s*t.separatorSize/r;return{height:`${Lte(i.ratio*n,0,100)}%`,width:"100%"}}else{const n=1-s*t.separatorSize/o;return{height:"100%",width:`${Lte(i.ratio*n,0,100)}%`}}}function G4i(t,e){const i={ref:t.contentManager.getRef(e.id),id:`zone-${e.id}`,class:"areas-zone",style:{flexGrow:0,overflow:"hidden"},key:e.id},o=t.getParent(e);if(o){const{width:r,height:s}=jte(t,o,e);i.style={width:r,height:s}}else i.style={height:"100%"};return t.vue.h("div",i)}var CI=G4i;function K4i(t,e,i){const{separatorSize:o,separatorDetectionMargin:r,separatorDetectionZIndex:s}=t,n=e.direction==="column",a={ref:`separator-${e.id}-${i+1}`,class:"areas-separator",style:{[n?"height":"width"]:`${o}px`,backgroundColor:"var(--areas-separator-color, black)",flexShrink:0,position:"relative"}},l=n?"ns-resize":"ew-resize",c=t.vue.h("div",{style:{position:"absolute",[n?"height":"width"]:`${r*2}px`,[n?"width":"height"]:"100%",[n?"top":"left"]:`${-r+o/2}px`,zIndex:s,cursor:l},onMousedown:d=>Y4i(t,e,i,d,l)});return t.vue.h("div",a,t.resizable?[c]:null)}function Y4i(t,e,i,o,r){o.preventDefault(),o.stopPropagation(),document.body.style.cursor=r;const s=a=>Z4i(t,e,i,a),n=()=>J4i(s,n);document.addEventListener("mousemove",s),document.addEventListener("mouseup",n)}function Z4i(t,e,i,o){const r=e.children[i],s=e.direction==="column"?"height":"width",n=t.root.$refs[`separator-${e.id}-${i+1}`].getBoundingClientRect(),{separatorSize:a}=t,l=(e.direction==="column"?o.clientY-n.y:o.clientX-n.x)-a/2,c=t.root.$refs[`container-${e.id}`].getBoundingClientRect()[s],d=l/c*100;t.resize(r,d)}function J4i(t,e){document.removeEventListener("mousemove",t),document.removeEventListener("mouseup",e),document.body.style.cursor=""}var W4i=K4i;function xI(t,e){const i={ref:`container-${e.id}`,id:`container-${e.id}`,class:"areas-container",style:{height:"100%",display:"flex",flexDirection:e.direction}},o=t.getParent(e);if(o){const{width:n,height:a}=jte(t,o,e);i.style.width=n,i.style.height=a}const r=e.children.length-1,s=e.children.map((n,a)=>a<=r-1?[n.type==="zone"?CI(t,n):xI(t,n),W4i(t,e,a)]:n.type==="zone"?CI(t,n):xI(t,n));return t.vue.h("div",i,[s])}var X4i=xI;function $4i(t){const e=new Map,i=new Map,o=new Map;e.set("default",{component:{render(){return t.vue.h("div","Default component")}}});function r(s){return s&&!e.has(s)&&(console.warn(`[AREAS] Content with name ${s} is not registered, fallback to 'default'.`),s="default"),e.get(s)}return{registerContent(s,n){e.set(s,{name:s,component:n})},renderContent(s){return[...s].filter(n=>n.type==="zone").forEach(n=>{i.set(n.id,Object.assign({},r(n.content??"default"),{ref:t.vue.ref(null),options:{zoneId:n.id,...n.options,key:n.id},name:n.content??"default"}))}),t.vue.h("div",{style:{display:"none"}},[...i.values()].map(n=>t.vue.h(n.component,{...n.options,ref:n.ref})))},link(){[...o.entries()].forEach(([s,n])=>{const a=i.get(s);if(!a)return;const l=a.ref.value.$el,c=n.value;for(;c.lastChild;)c.removeChild(c.lastChild);c.appendChild(l)})},getElementZoneId(s){var n;for(const[a,l]of[...o.entries()])if((n=l.value)!=null&&n.contains(s))return a;return null},getRef(s){let n=o.get(s);return n||(n=t.vue.ref(null),o.set(s,n)),n},deleteZoneContent(s){i.delete(s),o.delete(s)},clean(){i.clear(),o.clear()}}}var e3i=$4i;function t3i(t,e,i){const o=e.ref(0),r=e.ref(0),{separatorSize:s=2,separatorDetectionMargin:n=10,separatorDetectionZIndex:a=2,resizable:l=!0}=i??{},c=e.ref(!!l),d={vue:e,core:t,zones:e.ref([]),get resizable(){return c.value},set resizable(h){c.value=h},get width(){return o.value},get height(){return r.value},get separatorSize(){return s},get separatorDetectionMargin(){return n},get separatorDetectionZIndex(){return a},getParent(h){return this.core.getParent(h)},async coreLayoutSync(h=!1){this.layout&&(h?this.layout.value=this.core.layout:e.triggerRef(this.layout),await e.nextTick(),this.contentManager.link())},resize(h,A){this.core.resize(h,A),e.triggerRef(this.layout)},async split(h,A,f,p,g){const m=this.core.splitZone(h,A,f,p,g);return await this.coreLayoutSync(this.zones.value.length===1),m},async splitLayout(h,A,f,p){const g=this.core.splitLayout(h,A,f,p);return await this.coreLayoutSync(!0),g},async delete(h){let A=!1;const f=this.core.getZone(h);if(f){const g=this.core.getParent(f);A=g?.children.length===2&&this.core.getParent(g)===null}this.contentManager.deleteZoneContent(h);const p=this.core.deleteZone(h);return await this.coreLayoutSync(A),p},async swap(h,A){const f=this.core.swapZones(h,A);return await this.coreLayoutSync(),f},destroy(){var h;(h=this.resizeObserver)==null||h.disconnect()},root:null,get component(){return this.layout=e.shallowRef(t.layout),e.watch(this.layout,h=>{this.zones.value=[...h].filter(A=>A.type==="zone")},{immediate:!0}),{created(){d.root=this},mounted(){const{width:h,height:A}=this.$el.getBoundingClientRect();o.value=h,r.value=A,d.resizeObserver=new ResizeObserver(f=>f.forEach(p=>{const{width:g,height:m}=p.target.getBoundingClientRect();o.value=g,r.value=m})),d.resizeObserver.observe(this.$el),d.contentManager.link()},render(){return e.h("div",{class:"areas-root"},[d.contentManager.renderContent(d.layout.value),u(d.layout.value)])}}}};d.contentManager=e3i(d);function u(h){return h.type==="zone"?CI(d,h):X4i(d,h)}return d}var i3i=t3i;function o3i(t,e=null,i=null){const o=q4i(e),r=i3i(o,t,i);return Object.freeze({core:o,renderer:r,destroy(){r.destroy()},swap(s,n){return this.renderer.swap(s,n)},split(s,n,a,l,c){return this.renderer.split(s,n,a,l,c)},splitLayout(s,n,a,l){return this.renderer.splitLayout(s,n,a,l)},delete(s){return this.renderer.delete(s)},registerContent(s,n){this.renderer.contentManager.registerContent(s,n)},getElementZoneId(s){return this.renderer.contentManager.getElementZoneId(s)},get layout(){return Dte(this.core.layout)},set layout(s){this.core.layout=s,this.renderer.contentManager.clean(),this.renderer.coreLayoutSync(!0)},get component(){return this.renderer.component},get resizable(){return this.renderer.resizable},set resizable(s){this.renderer.resizable=s}})}var r3i=o3i;function n3i(t){return Array.isArray(t?.children)?Rte(t):Nte(t)}function Nte(t,e=100){return{type:"zone",ratio:e,options:typeof t=="string"?{windowName:t}:t}}function Rte(t,e=100){return{type:"container",ratio:e,direction:t.direction,children:t.children.map((i,o)=>Array.isArray(i?.children)?Rte(i,t.ratios[o]):Nte(i,t.ratios[o]))}}function s3i(t,e,i=!0){return t.type==="zone"?Ote(t,e,i):zte(t,e,i)}function Ote(t,e,i=!0){var o,r;const s=e.get(t.id);if(!s)throw new Error(`[Layout parser] Local context with id ${t.id} not found`);return{windowName:((o=s.window)==null?void 0:o.name)??null,windowState:{modelIds:s.loadedModelIds,viewpoint:(i||void 0)&&s.viewer&&s.getViewpoint(),storey:(r=s.selectedStorey)==null?void 0:r.key}}}function zte(t,e,i=!0){return{direction:t.direction,ratios:t.children.map(o=>o.ratio),children:t.children.map(o=>o.type==="zone"?Ote(o,e,i):zte(o,e,i))}}const a3i={props:{text:{type:String,default:""}},emits:["close"]},l3i={class:"success-modal"},c3i={class:"success-modal__close"},d3i={class:"success-modal__title"},u3i={class:"success-modal__title--icon"},h3i={class:"success-modal__text"},p3i={class:"success-modal__button"};function A3i(t,e,i,o,r,s){const n=D("BIMDataIconClose"),a=D("BIMDataPieSpinner"),l=D("BIMDataIconSuccess"),c=D("BIMDataButton");return k(),R("div",l3i,[w("div",c3i,[S(a,{delay:5,onStop:e[1]||(e[1]=d=>t.$emit("close"))},{default:z(()=>[S(n,{class:"icon-close",size:"xxxs",onClick:e[0]||(e[0]=d=>t.$emit("close"))})]),_:1})]),w("div",d3i,[w("h2",null,H(t.$t("modal.success")),1),w("span",u3i,[S(l,{class:"fill-primary"})])]),w("div",h3i,H(i.text||t.$t("modal.success")),1),w("div",p3i,[S(c,{class:"bimdata-btn__fill bimdata-btn__fill--primary bimdata-btn__radius",onClick:e[2]||(e[2]=d=>t.$emit("close"))},{default:z(()=>[Oe(H(t.$t("modal.button")),1)]),_:1})])])}const f3i=F(a3i,[["render",A3i],["__scopeId","data-v-79d3a107"]]),Fte=Symbol("modal-mixin-id"),g3i={inject:["$viewer"],data(){return{modals:[]}},computed:{modal(){return this.modals.length?this.modals[0]:null},positionning(){var t;if(!((t=this.modal)!=null&&t.positions))return;const e=this.modal.positions;return{top:e.top?`${e.top}`:"0",right:e.right?`${e.right}`:"0",bottom:e.bottom?`${e.bottom} `:"0",left:e.left?`${e.left}`:"0"}}},props:{global:{type:Boolean,default:!1}},created(){this.global&&document.addEventListener("keydown",e=>{e.key==="Escape"&&this.clearModal()});const t=this;this.mixin={[Fte]:!0,beforeCreate(){!this._.setupState.$viewer&&(this.$plugin=t.$plugin,this.$viewer=t.$viewer)}}},methods:{pushModal(t,e={},{display:i="full",positions:o}={}){this.inject$viewerRecursively(t),this.modals.push({component:$n(t),props:e,display:i,positions:o})},clearModal(){this.modals.shift()},inject$viewerRecursively(t){MI(t,this.mixin,Fte),t.components&&Object.values(t.components).forEach(e=>this.inject$viewerRecursively(e))},getModal(t){const e={success:f3i};if(Object.keys(e).includes(t))return e[t];console.warn(`Modal name unknown : ${t}`)}}},m3i={class:"bimdata-modal-manager__content"};function v3i(t,e,i,o,r,s){const n=Jt("click-away");return s.modal?(k(),R("div",{key:0,class:$(["bimdata-modal-manager",{full:s.modal.display==="full",banner:s.modal.display==="banner"}]),style:X(s.positionning),onClick:e[0]||(e[0]=Xe((...a)=>s.clearModal&&s.clearModal(...a),["self"]))},[it((k(),R("div",m3i,[(k(),_(Yi(s.modal.component),Vr({onClose:s.clearModal},s.modal.props),null,16,["onClose"]))])),[[n,()=>i.global&&s.clearModal(),"mousedown"]])],6)):W("",!0)}const Ute=F(g3i,[["render",v3i]]),y3i={props:{plugin:{type:Object,required:!0}},setup(t){const e=nt("$viewer"),{plugin:i}=t;sr("$plugin",i),Vte(i.component,e.localContext,i)}},kI=Symbol("plugin-mixin-id");function Vte(t,e,i,o=!0){var r;if((r=t.mixins)!=null&&r.some(n=>n[kI]))return;const s={[kI]:!0,beforeCreate(){!this._.setupState.$viewer&&(this.$plugin=i,this.$viewer=e.$viewer),Object.defineProperties(this,{$isOpen:{get(){return i.isOpen}},$loading:{get(){return i.loading}},$shown:{get(){return i.shown}}}),o&&(i.componentInstance=this,i.isViewer&&(e.viewer=this))},methods:{$open(...n){i.open(...n)},$close(...n){i.close(...n)},$show(){i.show()},$hide(){i.hide()}}};o&&(s.props={plugin:{type:Object,required:!0}},s.provide={pluginInstance:i},s.created=function(){e.hub.emit("plugin-created",{name:i.name,plugin:this}),e.$viewer.globalContext.hub.emit("plugin-created",{name:i.name,plugin:this})},s.unmounted=function(){e.hub.emit("plugin-destroyed",{name:i.name,plugin:this}),e.$viewer.globalContext.hub.emit("plugin-destroyed",{name:i.name,plugin:this})}),MI(t,s,kI),t.components&&Object.values(t.components).forEach(n=>Vte(n,e,i,!1))}function w3i(t,e,i,o,r,s){return it((k(),_(Yi(i.plugin.component),{class:"plugin-component-instance-container",plugin:i.plugin},null,8,["plugin"])),[[Dt,i.plugin.shown]])}const lv=F(y3i,[["render",w3i]]),b3i={components:{PluginComponentInstanceContainer:lv},props:{plugin:{type:Object,required:!0,validator(t){return t.sidePanel.width?typeof t.sidePanel.width=="number":t.sidePanel}}}};function M3i(t,e,i,o,r,s){const n=D("PluginComponentInstanceContainer");return it((k(),R("div",{class:"side-panel",style:X(`
|
|
1620
1620
|
--side-panel-width: ${i.plugin.sidePanel.width??300}px;
|
|
1621
1621
|
${i.plugin.sidePanel.position==="left"?"border-right":"border-left"}: 1px solid var(--color-silver);
|
|
1622
1622
|
`)},[S(n,{plugin:i.plugin,style:{height:"100%"}},null,8,["plugin"])],4)),[[Dt,i.plugin.shown]])}const C3i=F(b3i,[["render",M3i],["__scopeId","data-v-9f31cbd3"]]),x3i={props:{name:{type:String,default:"box"},content:{type:String,default:""},width:{type:[Number,String],default:20},height:{type:[Number,String],default:20},color:{type:String,default:"currentColor"},x:{type:[Number,String],default:20},y:{type:[Number,String],default:20}},computed:{viewBox(){return`0 0 ${this.x} ${this.y}`}}},k3i=["width","height","viewBox","aria-labelledby","fill"],I3i=["innerHTML"];function E3i(t,e,i,o,r,s){return k(),R("svg",{xmlns:"http://www.w3.org/2000/svg",width:i.width,height:i.height,viewBox:s.viewBox,"aria-labelledby":i.name,fill:i.color,role:"presentation"},[w("g",{innerHTML:i.content},null,8,I3i)],8,k3i)}const D3i=F(x3i,[["render",E3i]]),P3i=["src"],B3i={__name:"PluginIcon",props:{plugin:{type:Object,required:!0},isOpen:{type:Boolean,required:!0}},setup(t){const e=t,i=Ui(null);return Bs(()=>{e.isOpen&&e.plugin.button.iconOpen?i.value=e.plugin.button.iconOpen:e.plugin.button.icon?i.value=e.plugin.button.icon:i.value={component:"BIMDataIcon",options:{name:"default",size:"m"}}}),(o,r)=>i.value.imgUri?(k(),R("img",{key:0,src:i.value.imgUri,style:{"max-width":"40px","max-height":"40px"}},null,8,P3i)):i.value.svgPath?(k(),_(D3i,Vr({key:1},i.value.options,{content:i.value.svgPath}),null,16,["content"])):i.value.component?(k(),_(Yi(i.value.component),da(Vr({key:2},i.value.options)),null,16)):W("",!0)}},S3i={key:0,class:"tools-menu__info"},L3i={class:"window"},T3i={class:"plugins-as-button__content"},j3i={class:"plugins-as-button__panel__header"},N3i={class:"panel__content"},R3i={__name:"PluginAsButton",props:{plugin:{type:Object,required:!0},active:{type:Boolean,required:!0},position:{type:String,required:!0,validator(t){return["right","left"].includes(t)}}},emits:["focus"],setup(t,{emit:e}){const i=e;nt("$viewer");const o=t,{active:r}=i2(o),s=o.plugin,n=Ve(()=>s.isOpen),a=Ve(()=>s.buttonText),l=Ve(()=>o.active?2:1);function c(){n.value&&i("focus")}function d(){n.value?s.close():s.open()}function u(){bo(()=>{n.value&&!s.button.keepOpen&&!s.loading&&s.close()})}return(h,A)=>{const f=D("BIMDataSpinner"),p=D("BIMDataButton"),g=D("BIMDataTooltip"),m=Jt("click-away");return it((k(),R("div",{class:"plugins-as-button",style:X({zIndex:l.value,position:pt(s).button.content==="simple"?"relative":null})},[w("div",{class:"tools-menu m-b-12",onMouseenter:c},[S(g,{ref:"tooltip",class:$({open:n.value}),text:pt(s).button.tooltip?h.$t(pt(s).button.tooltip):pt(s).name,position:t.position==="left"?"right":"left",disabled:n.value},{default:z(()=>[S(p,{width:"45px",height:"45px",fill:"",icon:"",color:"default",class:$({focus:pt(r)}),"data-test":`plugin-${pt(s).name}`,onClick:A[0]||(A[0]=M=>d())},{default:z(()=>[a.value?(k(),R("span",S3i,H(pt(Cht)(a.value,pt(s).button.truncateSize||4)),1)):W("",!0),pt(s).loading?(k(),_(f,{key:1})):(k(),_(B3i,{key:2,plugin:pt(s),"is-open":n.value},null,8,["plugin","is-open"]))]),_:1},8,["class","data-test"])]),_:1},8,["class","text","position","disabled"])],32),w("div",L3i,[S(oi,{name:`slide-fade-${t.position}`},{default:z(()=>[it(w("span",T3i,[pt(s).button.content==="panel"?(k(),R("div",{key:0,class:$(["plugins-as-button__submenu",`plugins-as-button__submenu--${t.position==="right"?"left":"right"}__panel`])},[w("div",j3i,H(pt(s).button.tooltip?h.$t(pt(s).button.tooltip):pt(s).name),1),w("div",N3i,[S(lv,{plugin:pt(s)},null,8,["plugin"])])],2)):(k(),_(lv,{key:1,class:$(["plugins-as-button__submenu",`plugins-as-button__submenu--${t.position==="right"?"left":"right"}__${pt(s).button.content||"free"}`]),plugin:pt(s)},null,8,["class","plugin"]))],512),[[Dt,n.value]])]),_:1},8,["name"])])],4)),[[m,u]])}}},O3i={__name:"SideColumn",props:{plugins:{type:Array,default:()=>[]},position:{type:String,required:!0,validator(t){return["right","left"].includes(t)}}},setup(t){const e=t,i=Ui(null);return(o,r)=>(k(),R("div",{class:$(["side-column",`side-column--${e.position}`])},[(k(!0),R(Ke,null,At(e.plugins,s=>(k(),R(Ke,{key:s.name},[s.button.content==="none"?(k(),_(lv,{key:0,plugin:s,onMouseenter:n=>i.value=s},null,8,["plugin","onMouseenter"])):it((k(),_(R3i,{key:1,plugin:s,position:e.position,active:i.value===s,onFocus:n=>i.value=s},null,8,["plugin","position","active","onFocus"])),[[Dt,s.shown]])],64))),128))],2))}},z3i=F(O3i,[["__scopeId","data-v-f11ec0c8"]]),F3i={},U3i={width:"23",height:"22",viewBox:"0 0 23 22",fill:"none",xmlns:"http://www.w3.org/2000/svg"},V3i=w("path",{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M-1.39472e-07 10.1037L3.19075 13.2944L6.3815 10.1037L4.25434 10.1037L4.25434 5.31755C4.25434 5.17754 4.30509 4.94384 4.42614 4.77572C4.47895 4.70237 4.54133 4.64599 4.62063 4.60508C4.69908 4.56461 4.83161 4.51987 5.05202 4.51987L11.1676 4.51987L11.1676 2.3927L5.05202 2.3927C3.96087 2.3927 3.17625 2.87117 2.69987 3.5328C2.26254 4.14021 2.12717 4.83714 2.12717 5.31755L2.12717 10.1037L-1.39472e-07 10.1037Z",fill:"currentColor"},null,-1),H3i=w("path",{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M23 11.9657L19.8092 8.7749L16.6185 11.9657L18.7457 11.9657L18.7457 16.7518C18.7457 16.8918 18.6949 17.1255 18.5739 17.2936C18.521 17.367 18.4587 17.4233 18.3794 17.4643C18.3009 17.5047 18.1684 17.5495 17.948 17.5495L11.8324 17.5495L11.8324 19.6766L17.948 19.6766C19.0391 19.6766 19.8238 19.1982 20.3001 18.5365C20.7375 17.9291 20.8728 17.2322 20.8728 16.7518L20.8728 11.9657L23 11.9657Z",fill:"currentColor"},null,-1),Q3i=w("path",{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M0 15.6879C0 14.9536 0.595228 14.3584 1.32948 14.3584H8.24277C8.97703 14.3584 9.57225 14.9536 9.57225 15.6879V19.9422C9.57225 20.6765 8.97703 21.2717 8.24277 21.2717H1.32948C0.595228 21.2717 0 20.6765 0 19.9422V15.6879ZM1.59538 15.9538V19.6763H7.97688V15.9538H1.59538Z",fill:"currentColor"},null,-1),_3i=w("path",{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M13.2948 1.32948C13.2948 0.595229 13.89 0 14.6243 0H21.5376C22.2718 0 22.8671 0.595228 22.8671 1.32948V5.58382C22.8671 6.31807 22.2718 6.91329 21.5376 6.91329H14.6243C13.89 6.91329 13.2948 6.31807 13.2948 5.58382V1.32948ZM14.8902 1.59538V5.31792H21.2717V1.59538H14.8902Z",fill:"currentColor"},null,-1),q3i=[V3i,H3i,Q3i,_3i];function G3i(t,e){return k(),R("svg",U3i,q3i)}const K3i=F(F3i,[["render",G3i]]),Y3i={props:{color:{type:String,default:"currentColor"},size:{type:Number,default:1}}},Z3i=["width","height"],J3i=["fill"];function W3i(t,e,i,o,r,s){return k(),R("svg",{width:23*i.size,height:28*i.size,viewBox:"0 0 23 28",fill:"none",xmlns:"http://www.w3.org/2000/svg"},[w("path",{"fill-rule":"evenodd","clip-rule":"evenodd",d:"M7.81498 1.39408C7.83109 1.39042 7.84845 1.38833 7.86714 1.38833H8.34975C8.73313 1.38833 9.04391 1.07754 9.04391 0.694167C9.04391 0.310789 8.73313 0 8.34975 0H7.86714C7.74418 0 7.62361 0.0138267 7.5072 0.0402917C7.18421 0.113723 6.96548 0.401367 6.96677 0.719361C6.64878 0.718068 6.36114 0.936792 6.28771 1.25978C6.26124 1.37619 6.24741 1.49677 6.24741 1.61972V2.10233C6.24741 2.48571 6.5582 2.7965 6.94158 2.7965C7.32496 2.7965 7.63575 2.48571 7.63575 2.10233V1.61972C7.63575 1.60103 7.63783 1.58368 7.64149 1.56756C7.65339 1.51525 7.65903 1.46297 7.65892 1.4115C7.71038 1.41162 7.76266 1.40597 7.81498 1.39408ZM10.7628 0C10.3794 0 10.0686 0.310789 10.0686 0.694167C10.0686 1.07754 10.3794 1.38833 10.7628 1.38833H11.728C12.1114 1.38833 12.4222 1.07754 12.4222 0.694167C12.4222 0.310789 12.1114 0 11.728 0H10.7628ZM14.1411 0C13.7577 0 13.4469 0.310789 13.4469 0.694167C13.4469 1.07754 13.7577 1.38833 14.1411 1.38833H15.1063C15.4897 1.38833 15.8005 1.07754 15.8005 0.694167C15.8005 0.310789 15.4897 0 15.1063 0H14.1411ZM17.5194 0C17.136 0 16.8252 0.310789 16.8252 0.694167C16.8252 1.07754 17.136 1.38833 17.5194 1.38833H18.4846C18.868 1.38833 19.1788 1.07754 19.1788 0.694167C19.1788 0.310789 18.868 0 18.4846 0H17.5194ZM20.8976 0C20.5143 0 20.2035 0.310789 20.2035 0.694167C20.2035 1.07754 20.5143 1.38833 20.8976 1.38833H21.3803C21.3989 1.38833 21.4163 1.39042 21.4324 1.39408C21.4847 1.40597 21.537 1.41162 21.5885 1.4115C21.5884 1.46297 21.594 1.51525 21.6059 1.56756C21.6096 1.58368 21.6116 1.60103 21.6116 1.61972V2.10233C21.6116 2.48571 21.9224 2.7965 22.3058 2.7965C22.6892 2.7965 23 2.48571 23 2.10233V1.61972C23 1.49677 22.9861 1.37619 22.9597 1.25978C22.8863 0.936791 22.5986 0.718068 22.2806 0.719361C22.2819 0.401367 22.0632 0.113723 21.7402 0.0402916C21.6238 0.0138267 21.5032 0 21.3803 0H20.8976ZM23 4.51539C23 4.13201 22.6892 3.82122 22.3058 3.82122C21.9224 3.82122 21.6116 4.13201 21.6116 4.51539V5.48061C21.6116 5.86399 21.9224 6.17478 22.3058 6.17478C22.6892 6.17478 23 5.86399 23 5.48061V4.51539ZM23 7.89367C23 7.51029 22.6892 7.1995 22.3058 7.1995C21.9224 7.1995 21.6116 7.51029 21.6116 7.89367V8.85889C21.6116 9.24227 21.9224 9.55306 22.3058 9.55306C22.6892 9.55306 23 9.24227 23 8.85889V7.89367ZM23 11.2719C23 10.8886 22.6892 10.5778 22.3058 10.5778C21.9224 10.5778 21.6116 10.8886 21.6116 11.2719V12.2372C21.6116 12.6205 21.9224 12.9313 22.3058 12.9313C22.6892 12.9313 23 12.6205 23 12.2372V11.2719ZM23 14.6502C23 14.2669 22.6892 13.9561 22.3058 13.9561C21.9224 13.9561 21.6116 14.2669 21.6116 14.6502V15.1328C21.6116 15.1515 21.6096 15.1689 21.6059 15.185C21.594 15.2373 21.5884 15.2896 21.5885 15.3411C21.537 15.3409 21.4847 15.3466 21.4324 15.3585C21.4163 15.3621 21.3989 15.3642 21.3803 15.3642H20.8976C20.5143 15.3642 20.2035 15.675 20.2035 16.0584C20.2035 16.4418 20.5143 16.7526 20.8976 16.7526H21.3803C21.5032 16.7526 21.6238 16.7387 21.7402 16.7123C22.0632 16.6388 22.2819 16.3512 22.2806 16.0332C22.5986 16.0345 22.8863 15.8158 22.9597 15.4928C22.9861 15.3764 23 15.2558 23 15.1328V14.6502ZM14.6474 13.9116C14.2294 13.4884 13.7764 13.3132 13.2767 13.5451C13.1394 13.6088 13.0164 13.7642 12.965 13.9976C12.9404 14.1092 12.9387 14.2154 12.952 14.2991C12.9615 14.3593 12.9761 14.3926 12.9832 14.4062L13.3718 14.7996C13.6232 15.0542 13.6207 15.4644 13.3661 15.7158C13.1116 15.9673 12.7014 15.9648 12.4499 15.7102L11.1619 14.4063C11.0696 14.3373 10.7782 14.256 10.4038 14.5402C10.265 14.6456 10.1892 14.8021 10.164 15.0159C10.146 15.1695 10.1586 15.3254 10.1806 15.4503L11.5483 16.8349C11.7998 17.0894 11.7973 17.4997 11.5427 17.7511C11.2881 18.0026 10.8779 18.0001 10.6265 17.7455L8.84977 15.9469C8.73834 15.8341 8.59086 15.7372 8.44955 15.7103C8.34989 15.6913 8.17941 15.6888 7.92486 15.922C7.40908 16.3944 7.60249 16.7531 7.61982 16.7853C7.62079 16.7871 7.62121 16.7879 7.62092 16.7876L8.36876 17.5446L8.36898 17.5449L9.63136 18.8228C9.88282 19.0774 9.8803 19.4876 9.62574 19.7391C9.37117 19.9905 8.96096 19.988 8.7095 19.7335L7.50459 18.5137C7.39104 18.4504 7.3071 18.431 7.25026 18.426C7.18448 18.4203 7.12354 18.4313 7.05978 18.4573C6.91636 18.5159 6.79333 18.6313 6.65652 18.7691C6.4611 19.004 6.42638 19.1929 6.43343 19.3189C6.44127 19.4591 6.50463 19.5852 6.59048 19.673L9.52673 22.586C9.77984 22.8371 9.78249 23.2456 9.53265 23.4999C9.2828 23.7543 8.87438 23.759 8.61876 23.5104L8.22865 23.1311V23.623C8.24763 24.1981 8.60657 24.7179 9.15357 25.1243C9.71443 25.541 10.3301 25.7301 10.6198 25.7301H14.6969C15.587 25.6238 16.1129 25.3237 16.2057 25.252C17.6012 24.1569 18.629 22.8236 18.9789 22.282C19.965 20.0757 18.9393 18.2565 18.341 17.6508L14.6474 13.9116ZM6.93288 21.8379V23.6327L6.93312 23.6505C6.96401 24.7762 7.65626 25.6261 8.38077 26.1644C9.09398 26.6943 9.97451 27.0259 10.6198 27.0259H14.7343C14.7585 27.0259 14.7826 27.0245 14.8067 27.0218C15.9128 26.8974 16.6893 26.5178 17.0025 26.2739L17.0044 26.2724C18.5682 25.0455 19.7067 23.557 20.0979 22.9372C20.1134 22.9127 20.1272 22.8871 20.1393 22.8607C21.4417 20.0111 20.126 17.614 19.2629 16.7402L17.6781 15.1359V6.01643C17.6781 4.8663 16.7457 3.93393 15.5956 3.93393H2.0825C0.932367 3.93393 0 4.8663 0 6.01643V19.5295C0 20.6797 0.932368 21.612 2.0825 21.612H6.70519L6.93288 21.8379ZM5.13682 19.2982H2.31389V6.24782H15.3642V12.8096C14.7425 12.2755 13.8096 11.8694 12.7314 12.3697C12.2925 12.5733 12.0053 12.926 11.8384 13.2984C11.1789 12.8743 10.2855 13.0031 9.62023 13.5082C9.24833 13.7906 9.04821 14.1549 8.94823 14.5061C8.86696 14.4778 8.7815 14.4544 8.69206 14.4374C8.15818 14.3357 7.58059 14.4801 7.04965 14.9664C6.21364 15.7322 6.13093 16.6828 6.43561 17.319C6.09639 17.4901 5.85345 17.7375 5.73648 17.8566L5.71719 17.8762C5.70638 17.8871 5.69596 17.8985 5.68595 17.9101C5.31058 18.3486 5.1343 18.8291 5.13682 19.2982Z",fill:i.color},null,8,J3i)],8,Z3i)}const Hte=F(Y3i,[["render",W3i]]),X3i="data:image/png;base64,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",II=document.createElement("img");II.src=X3i,II.style.cursor="grabbing";function $3i({dataTransferType:t="areas_zone-id",getData:e=()=>null,onDropCB:i=()=>{}}={}){const o=pe(!1),r=pe(!1);function s(u){u.dataTransfer.types.includes(t)&&(u.preventDefault(),u.dataTransfer.dropEffect="move")}function n(){r.value=!1}function a(u){o.value=!0,u.dataTransfer.setData(t,e()),u.dataTransfer.effectAllowed="move",u.dataTransfer.setDragImage(II,45,45)}function l(){o.value=!1}function c(u){r.value=!1;const h=parseInt(u.dataTransfer.getData(t),10);i?.(h)}function d(u){u.dataTransfer.types.includes(t)&&(r.value=!0)}return{dragging:o,dragover:r,onDragOver:s,onDragLeave:n,onDragStart:a,onDragEnd:l,onDrop:c,onDragEnter:d}}const e5i=["draggable"],t5i={class:"layout-settings__header"},i5i={key:0,class:"layout-settings__swap"},o5i={key:1,class:"layout-settings__split"},r5i={class:"layout-settings__split__text"},n5i={class:"layout-settings__split__text"},s5i={key:2,class:"layout-settings__buttons"},a5i={__name:"LayoutSettings",setup(t){const e=nt("$viewer"),{localContext:i}=e,o=Ve(()=>i.window),r=Ve(()=>e.globalContext.localContexts.length>1),s=Ve(()=>e.layout.settings.swap),n=Ve(()=>e.layout.settings.full);function a(){e.layout.settings.swap=!e.layout.settings.swap}function l(){i.loadWindow(null),e.layout.settings.edit=!1}function c(){i.close()}function d(x="row"){e.globalContext.open({localContextId:i.id,ratio:50,direction:x})}function u(){d(),e.layout.settings.edit=!1}function h(){d("column"),e.layout.settings.edit=!1}st(()=>e.globalContext.localContexts.length,x=>{var I;x===1&&e.layout.settings.edit&&((I=e.globalContext.localContexts[0].window)==null?void 0:I.header)===!1&&(e.layout.settings.edit=!1)});const{dragging:A,dragover:f,onDragOver:p,onDragLeave:g,onDragStart:m,onDragEnd:M,onDrop:y,onDragEnter:b}=$3i({getData:()=>String(i.id),onDropCB:x=>{Number.isNaN(x)||e.globalContext.swap(x,i.id)}}),C=Ve(()=>e.layout.settings.swap);return(x,I)=>{const E=D("BIMDataIconWindowRight"),P=D("BIMDataButton"),N=D("BIMDataIconWindowBottom"),L=D("BIMDataIconDelete"),j=D("BIMDataTooltip");return k(),R("div",{class:$(["layout-settings",{"layout-settings--swap":s.value,"layout-settings--dragging":pt(A),"layout-settings--dragover":pt(f)}]),draggable:C.value,onDragover:I[0]||(I[0]=(...O)=>pt(p)&&pt(p)(...O)),onDragleave:I[1]||(I[1]=(...O)=>pt(g)&&pt(g)(...O)),onDragenter:I[2]||(I[2]=(...O)=>pt(b)&&pt(b)(...O)),onDragstart:I[3]||(I[3]=Xe((...O)=>pt(m)&&pt(m)(...O),["self"])),onDrop:I[4]||(I[4]=(...O)=>pt(y)&&pt(y)(...O)),onDragend:I[5]||(I[5]=(...O)=>pt(M)&&pt(M)(...O))},[w("div",t5i,H(x.$t(s.value?"window-manager.swap":"window-manager.description"))+". ",1),s.value?(k(),R("div",i5i,[S(Hte,{color:"#ffffff",size:2})])):(k(),R("div",o5i,[S(P,{color:"default",fill:"",square:"",icon:"",height:"50px",style:{padding:"var(--spacing-unit)"},onClick:u},{default:z(()=>[S(E),w("span",r5i,H(x.$t("window-manager.vertical")),1)]),_:1}),S(P,{color:"default",fill:"",square:"",icon:"",height:"50px",style:{padding:"var(--spacing-unit)"},onClick:h},{default:z(()=>[S(N),w("span",n5i,H(x.$t("window-manager.horizontal")),1)]),_:1})])),n.value?(k(),R("div",s5i,[r.value?(k(),_(j,{key:0,text:x.$t("window-manager.delete"),position:"left"},{default:z(()=>[S(P,{disabled:s.value,fill:"",square:"",icon:"",color:"default",width:"50px",height:"50px",onClick:c},{default:z(()=>[S(L,{fill:"",color:"high"})]),_:1},8,["disabled"])]),_:1},8,["text"])):W("",!0),r.value?(k(),_(j,{key:1,text:x.$t("window-manager.swap_tooltip"),position:"left"},{default:z(()=>[S(P,{fill:"",square:"",icon:"",color:s.value?"secondary":"default",width:"50px",height:"50px",onClick:a},{default:z(()=>[S(Hte)]),_:1},8,["color"])]),_:1},8,["text"])):W("",!0),o.value?(k(),_(j,{key:2,text:x.$t("window-manager.change"),position:"left"},{default:z(()=>[S(P,{disabled:s.value,fill:"",square:"",icon:"",color:"default",width:"50px",height:"50px",onClick:l},{default:z(()=>[S(K3i)]),_:1},8,["disabled"])]),_:1},8,["text"])):W("",!0)])):W("",!0)],42,e5i)}}};function l5i(t,e=()=>{}){const i=pe(0),o=pe(0),r=pe(0),s=pe(0),n=l=>{l.forEach(c=>{const{width:d,height:u,x:h,y:A}=c.target.getBoundingClientRect();i.value=d,o.value=u,r.value=h,s.value=A,e?.({width:i.value,height:o.value,x:r.value,y:s.value})})},a=new ResizeObserver(n);return yi(()=>{a.observe(t.value)}),Li(()=>a.disconnect()),{width:i,height:o,x:r,y:s}}class c5i extends xL{constructor(e){super(e);const{width:i,height:o,x:r,y:s}=l5i(this.templateRef,n=>this.hub.emit("context-resize",n));this._resolution=pe(1),this._width=i,this._height=o,this._x=r,this._y=s}get width(){return this._width.value}get height(){return this._height.value}get x(){return this._x.value}get y(){return this._y.value}get resolution(){return this._resolution.value}set resolution(e){this._resolution.value=e}}class d5i extends c5i{constructor(e){super(e),this.viewer=null,this._annotationMode=pe(!1)}get annotationMode(){return this._annotationMode.value}async getSnapshot(){if(!this.viewer)throw new Error("[localContext.getSnapshot] Error: no viewer registered in this localContext.");await this.hideUI();const e=await this.viewer.getSnapshot();return await this.showUI(),e}getViewpoint(e){if(!this.viewer)throw new Error("[localContext.getViewpoint] Error: no viewer registered in this localContext.");return this.viewer.getViewpoint(e)}setViewpoint(e,i){if(!this.viewer)throw new Error("[localContext.setViewpoint] Error: no viewer registered in this localContext.");this.viewer.setViewpoint(e,i)}startAnnotationMode(e){if(!this.viewer)throw new Error("[localContext.startAnnotationMode] Error: no viewer registered in this localContext.");if(!this.annotationMode)return this._annotationMode.value=!0,this.viewer.startAnnotationMode(e)}stopAnnotationMode(){if(!this.viewer)throw new Error("[localContext.stopAnnotationMode] Error: no viewer registered in this localContext.");this._annotationMode.value=!1,this.viewer.stopAnnotationMode()}fitView(e){if(!this.viewer)throw new Error("[localContext.fitView] Error: no viewer registered in this localContext.");this.viewer.fitView(e)}async showUI(){if(!this.viewer)throw new Error("[localContext.showUI] Error: no viewer registered in this localContext.");this.pluginComponentInstances.forEach(e=>e.$show()),this.viewer.showUI(),await bo()}async hideUI({exceptions:e=[]}={}){if(!this.viewer)throw new Error("[localContext.hideUI] Error: no viewer registered in this localContext.");e.push(this.viewer.$plugin.name),[...this.pluginComponentInstances.entries()].filter(([i])=>!e.includes(i)).forEach(([,i])=>i.$hide()),this.viewer.hideUI(),await bo()}}class u5i extends d5i{constructor(e){super(e),this.modelTypes=null,this.multiModel=!0,this._loadedModels=Ui([]),this._loadingModelIds=pe([]),this._selectedStorey=Ui(null),this._shownPlans=Ui([]),this._loadedModelIds=Ve(()=>this._loadedModels.value.map(i=>i.id)),this._automaticFirstModelsLoading=!1,this._globalContextSubscription=null,Li(()=>{e.globalContext.hub.off(this._globalContextSubscription)})}get loadedModels(){return this._loadedModels.value}get loadingModelIds(){return this._loadingModelIds.value}get loadedModelIds(){return this._loadedModelIds.value}get selectedStorey(){return this._selectedStorey.value}async loadModels(e,i={}){var o;const r=this._$viewer;if(!Array.isArray(e))throw new Error("[BIMDataViewer - Local State] loadModels requires an array of model ids.");this.multiModel||(e.length>1&&(e=[e[0]]),this.loadedModels.length>0&&this.unloadModels(this.loadedModelIds)),this.loadingModelIds.push(...e),this.hub.emit("models-loading",{ids:e});const s=[],n=[];for(const l of e)this.loadedModelIds.includes(l)||(r.state.modelsMap.has(l)?s.push(r.state.modelsMap.get(l)):n.push(l));s.push(...await r.state.loadModels(n)),this._loadingModelIds.value=this.loadingModelIds.filter(l=>!e.includes(l));const a=s.filter(l=>{var c;return l.status==="C"&&(((c=this.modelTypes)==null?void 0:c.includes(l.type))??!0)});if(a.length!==0&&(this._loadedModels.value=[...this.loadedModels,...a],await((o=this.viewer)==null?void 0:o.loadModels(a)),this.hub.emit("models-loaded",{models:a}),r.globalContext.hub.emit("models-loaded",{models:a,emitter:this})),i!=null&&i.viewpoint&&this.viewer&&this.setViewpoint(i.viewpoint),i!=null&&i.storey){const l=a.flatMap(c=>c.storeys).find(c=>c.key===i.storey);l&&this.selectStorey(l)}return a}unloadModels(e){var i;const{loadedModels:o,$viewer:r}=this;if(!Array.isArray(e))throw new Error("[BIMDataViewer - Local State] unloadModels requires an array of ids.");const s=e.map(n=>r.state.modelsMap.get(n)).filter(Boolean);return s.length===0?!1:(this._loadedModels.value=o.filter(n=>!s.includes(n)),(i=this.viewer)==null||i.unloadModels(s),this.selectedStorey&&s.some(n=>n.storeys.some(a=>a.key===this.selectedStorey.key))&&this.selectStorey(null),this.hub.emit("models-unloaded",{models:s}),r.globalContext.hub.emit("models-unloaded",{models:s,emitter:this}),s)}get automaticFirstModelsLoading(){return this._automaticFirstModelsLoading}set automaticFirstModelsLoading(e){this._automaticFirstModelsLoading=e,e?this._onAutomaticFirstModelsLoading():this._$viewer.globalContext.hub.off(this._globalContextSubscription)}async _onAutomaticFirstModelsLoading(){const{_loadedModels:e,_loadingModelIds:i,$viewer:o}=this,r=o.globalContext.loadedModels.filter(a=>{var l;return((l=this.modelTypes)==null?void 0:l.includes(a.type))??!0});r.length>0&&this.loadModels(r.map(a=>a.id)),o.globalContext.hub.off(this._globalContextSubscription);const s=a=>{a=a.filter(l=>{var c;return((c=this.modelTypes)==null?void 0:c.includes(l.type))??!0}),a.length>0&&e.value.length===0&&i.value.length===0&&this.loadModels(a.map(l=>l.id))};await bo();let n=!0;this._globalContextSubscription=o.globalContext.hub.on("models-loaded",({models:a,emitter:l})=>{!n&&l===this||s(a)},{getLastEvent:!0}),n=!1}selectStorey(e,i=!0){this._selectedStorey.value=e,this.shownPlans.length>0&&this.shownPlans.forEach(o=>this.hidePlan(o)),i&&e?.plans.length>0&&e.plans.forEach(o=>this.showPlan(o)),this.hub.emit("storey-selected",{storey:e})}get shownPlans(){return this._shownPlans.value}showPlan(e){return this._shownPlans.value.some(i=>i.key===e.key)?!1:(this._shownPlans.value=[...this._shownPlans.value,e],this.hub.emit("plan-shown",{plan:e}),!0)}hidePlan(e){return this._shownPlans.value.some(i=>i.key===e.key)?(this._shownPlans.value=this._shownPlans.value.filter(i=>i.key!==e.key),this.hub.emit("plan-hidden",{plan:e}),!0):!1}}class h5i extends u5i{constructor(e,i){super(e),this.id=i,this._window=Ui(null),this.pluginInstances=new Map,Li(()=>{this.unloadWindow()})}get $viewer(){const e=this;return new Proxy(this._$viewer,{get(i,o,r){return o==="localContext"?e:Reflect.get(i,o,r)}})}get pluginComponentInstances(){return new Map([...this.pluginInstances.values()].filter(e=>e.componentInstance).map(e=>[e.name,e.componentInstance]))}get plugins(){return this.pluginComponentInstances}get window(){return this._window.value}unloadWindow(){if(!this.window)return!1;const e=this.window,i=this.window.name;return this.pluginInstances.clear(),this._window.value=null,this.loadedModelIds.length>0&&this.unloadModels(this.loadedModelIds),this.automaticFirstModelsLoading=!1,this._$viewer.globalContext.hub.emit("window-close",{window:e,name:i,localContext:this}),!0}async loadWindow(e=null,i=null){const o=!!this.window;if(this.unloadWindow(),e===null)return null;if(o&&await bo(),!this.$viewer.windowManager.registeredWindows.has(e)){const l=`Cannot load window with name "${e}" because it is not registered.`;return console.warn(l),null}this._window.value=this.$viewer.windowManager.registeredWindows.get(e);const r=Array.from(this.window.plugins??[]);this.pluginInstances.clear(),r.map(l=>this.$viewer.pluginManager.getPluginInstance(l,this)).filter(Boolean).sort(({button:{stance:l=0}={}},{button:{stance:c=0}={}})=>l-c).forEach(l=>this.pluginInstances.set(l.name,l)),this.modelTypes=Array.isArray(this.window.modelTypes)?this.window.modelTypes:null,this.multiModel=this.window.multiModel??!0,this._loadedModels.value=[],this._loadingModelIds.value=[];const{modelIds:s,viewpoint:n,storey:a}=i??{};return this.window.noModel!==!0&&(s?.length>0?(this.automaticFirstModelsLoading=!1,this.loadModels(s,{viewpoint:n,storey:a})):this.automaticFirstModelsLoading=!0),this._$viewer.globalContext.hub.emit("window-open",{window:this.window,name:this.window.name,localContext:this}),this.window}close(){return this._$viewer.globalContext.close(this.id)}getPlugin(e){return console.warn("[BIMData Viewer] DEPRECATED - Ambigous name. Do not use localContext.getPlugin(name), use the localContext.pluginComponentInstances Map instead."),this.pluginComponentInstances.get(e)}}const p5i={name:"WindowContainer",components:{PluginComponentInstanceContainer:lv,LayoutSettings:a5i,SidePanel:C3i,SideColumn:z3i,ModalManager:Ute},inject:["$viewer"],props:{windowName:{type:String,default:null},windowState:{type:Object,default:null},zoneId:{type:Number,required:!0}},setup(t){const e=nt("$viewer"),{globalContext:i}=e,o=new h5i(e,t.zoneId);sr("$viewer",o.$viewer);const{templateRef:r}=o,s=()=>{r.value&&(r.value.scrollTop=0,r.value.scrollLeft=0)};yi(()=>{r.value.addEventListener("scroll",s,{passive:!0})});const n=()=>{i.activeLocalContext=o},a=()=>{i.activeLocalContext===o&&(i.activeLocalContext=null)},l=Ve(()=>{var d;const u=[];let h=null,A=null;const f=[],p=[],g=[];return o.window?g.push(...o.pluginInstances.values()):((d=e.windowManager.defaultWindow)==null?void 0:d.plugins.length)>0&&g.push(...e.windowManager.defaultWindow.plugins.map(m=>e.pluginManager.getPluginInstance(m,this)).filter(Boolean).sort(({button:{stance:m=0}={}},{button:{stance:M=0}={}})=>m-M)),g.forEach(m=>{!m.button&&!m.sidePanel?m.isViewer?u.unshift(m):u.push(m):m.sidePanel?m.sidePanel.position==="left"?(h&&console.warn(`[BIMDataViewer - WindowContainer] Window ${o.window.name}, Multiple left side panels are not supported. Only the last one will be displayed.`),h=m):m.sidePanel.position==="right"&&(A&&console.warn(`[BIMDataViewer - WindowContainer] Window ${o.window.name}, Multiple right side panels are not supported. Only the last one will be displayed.`),A=m):m.button.position==="left"?f.push(m):m.button.position==="right"&&p.push(m)}),u.reverse(),{free:u,leftSidePanel:h,rightSidePanel:A,leftButtonColumn:f,rightButtonColumn:p}});o.loadWindow(t.windowName,t.windowState);const c=Ve(()=>{const d=l.value.leftSidePanel,u=d!=null&&d.shown?d.sidePanel.width:0,h=l.value.rightSidePanel,A=h!=null&&h.shown?h.sidePanel.width:0;return o.width-u-A});return{onMouseEnter:n,onMouseLeave:a,templateRef:r,modalManagerTemplateRef:o.modalManagerTemplateRef,windowPlugins:l,layoutSettingsDisplayed:Ve(()=>e.layout.settings.edit),spinner:Ve(()=>o.spinner),loading:Ve(()=>o.loading),width:Ve(()=>o.width),height:Ve(()=>o.height),resolution:Ve(()=>o.resolution),localContext:o,centerWidth:c}},created(){this.$viewer.windowManager.windowContainers.push(this)},unmounted(){const t=this.$viewer.windowManager.windowContainers.indexOf(this);t!==-1&&this.$viewer.windowManager.windowContainers.splice(t,1)}},A5i={class:"window-container__content"},f5i={class:"window-container__content__center"},g5i={key:0,class:"global-spinner",style:{"z-index":"2"}},m5i={key:1,class:"window-container__layout-settings",style:{"z-index":"5"}};function v5i(t,e,i,o,r,s){const n=D("ModalManager"),a=D("SidePanel"),l=D("PluginComponentInstanceContainer"),c=D("SideColumn"),d=D("BIMDataSpinner"),u=D("LayoutSettings");return k(),R("div",{ref:"templateRef",class:"window-container",style:X(`
|
|
@@ -1624,5 +1624,5 @@ Fragment shader:
|
|
|
1624
1624
|
--bimdata-local-context-width: ${o.width}px;
|
|
1625
1625
|
--bimdata-local-context-center-width: ${o.centerWidth}px;
|
|
1626
1626
|
--bimdata-local-context-resolution: ${o.resolution};
|
|
1627
|
-
`),onMouseenter:e[0]||(e[0]=(...h)=>o.onMouseEnter&&o.onMouseEnter(...h)),onMouseleave:e[1]||(e[1]=(...h)=>o.onMouseLeave&&o.onMouseLeave(...h))},[S(n,{ref:"modalManagerTemplateRef"},null,512),w("div",A5i,[o.windowPlugins.leftSidePanel?(k(),_(a,{key:0,plugin:o.windowPlugins.leftSidePanel},null,8,["plugin"])):W("",!0),w("div",f5i,[(k(!0),R(Ke,null,At(o.windowPlugins.free,h=>(k(),_(l,{key:h.name,class:$({"window-container__content__center__viewer":h.isViewer}),plugin:h},null,8,["class","plugin"]))),128)),S(c,{position:"left",plugins:o.windowPlugins.leftButtonColumn},null,8,["plugins"]),S(c,{position:"right",plugins:o.windowPlugins.rightButtonColumn},null,8,["plugins"])]),o.windowPlugins.rightSidePanel?(k(),_(a,{key:1,plugin:o.windowPlugins.rightSidePanel},null,8,["plugin"])):W("",!0)]),o.loading?(k(),R("div",g5i,[o.spinner&&o.spinner.component?(k(),_(Yi(o.spinner.component),da(Vr({key:0},o.spinner.props)),null,16)):(k(),_(d,{key:1,size:"20px",border:"3px"}))])):W("",!0),o.layoutSettingsDisplayed?(k(),R("div",m5i,[S(u)])):W("",!0)],36)}const y5i=F(p5i,[["render",v5i]]);class w5i{constructor(e=!0){const i=r3i(sL,null,{resizable:e});i.registerContent("default",y5i),this.settings=zr({edit:!1,swap:!1,full:!1}),this.areas=i}get resizable(){return this.areas.resizable}set resizable(e){this.areas.resizable=e}apply(e=null){this.areas.layout=e?n3i(e):null}copy(e,i=!0){return s3i(this.areas.layout,e,i)}open({ratio:e,direction:i,insertAfter:o,windowName:r=null,windowState:s=null,localContextId:n=null}={}){const a=r?{options:{windowName:r,windowState:s}}:null;return n===null?this.areas.splitLayout(e,i,o,a):this.areas.split(n,e,i,o,a)}swap(e,i){return this.areas.swap(e,i)}close(e){return this.areas.delete(e)}compare(e,i){var o,r;if(!e&&!i)return!0;if(!e||!i)return!1;if(typeof e=="string"&&typeof i=="string")return e===i;if(typeof e=="string"||typeof i=="string")return!1;if(e.windowName&&i.windowName){if(e.windowName!==i.windowName)return!1;const s=new Set((o=e.windowState)==null?void 0:o.modelIds),n=new Set((r=i.windowState)==null?void 0:r.modelIds);return s.size===n.size&&[...s].every(a=>n.has(a))}return e.windowName||i.windowName||e.direction!==i.direction||e.children.length!==i.children.length?!1:e.children.every((s,n)=>this.compare(s,i.children[n]))}}const b5i="@bimdata/viewer",M5i="module",C5i="2.4.1",x5i="A customizable BIM viewer.",k5i=["bim","viewer","bimdata","ifc","bcf"],I5i="./index.d.ts",E5i="BIMData.io",D5i="https://developers.bimdata.io/viewer/index.html",P5i={email:"support@bimdata.io"},B5i=["last 2 chrome version","last 2 firefox version"],S5i="dist/bimdata-viewer.esm.min.js",L5i="dist/bimdata-viewer.esm.min.js",T5i={dev:"vite -c build/vite.config.dev.js",build:"vite build -c build/vite.config.prod.js && esbuild dist/bimdata-viewer.esm.min.js --minify --outfile=dist/bimdata-viewer.esm.min.js --allow-overwrite","build:runtime":"vite build -c build/vite.config.runtime.js && esbuild dist/bimdata-viewer.runtime.esm.min.js --minify --outfile=dist/bimdata-viewer.runtime.esm.min.js --allow-overwrite","build:split":"vite build -c build/vite.config.split.js && esbuild dist/bimdata-viewer.split.esm.min.js --minify --outfile=dist/bimdata-viewer.split.esm.min.js --allow-overwrite","build:umd":"vite build -c build/vite.config.umd.js && esbuild dist/bimdata-viewer.umd.cjs --minify --outfile=dist/bimdata-viewer.umd.min.cjs","cy:run":"cypress run","cy:open":"cypress open",prebuild:"rm -rf dist",prepublishOnly:"npm run build","semantic-release":"semantic-release",serve:"http-server -c-1 --silent",test:"npm run test:unit & npm run build & npm run test:e2e","test:unit":"jest","test:e2e":"start-server-and-test 'npm run serve -- -p 8080' http://localhost:8080 cy:run","test:e2e-dev":"start-server-and-test 'npm run serve -- -p 8080' http://localhost:8080 cy:open",version:"echo $npm_package_version",ts:"tsc"},j5i=["dist/*","types/*","CHANGELOG.md","README.md","package.json","package-lock.json","index.d.ts"],N5i={"@babel/preset-env":"^7.24.8","@bimdata/2d-engine":"2.5.1","@bimdata/areas-next":"0.1.15","@bimdata/bcf-components":"6.4.3","@bimdata/components":"1.6.2","@bimdata/design-system":"2.1.1-rc.4","@bimdata/typescript-fetch-api-client":"10.9.0","@eslint/eslintrc":"^3.1.0","@eslint/js":"^9.7.0","@rollup/plugin-alias":"5.1.0","@rollup/plugin-babel":"^6.0.4","@rollup/plugin-commonjs":"^26.0.1","@rollup/plugin-image":"^3.0.3","@rollup/plugin-replace":"^5.0.7","@semantic-release/changelog":"^6.0.3","@semantic-release/commit-analyzer":"^13.0.0","@semantic-release/git":"^10.0.1","@semantic-release/github":"^10.1.1","@semantic-release/npm":"^12.0.1","@semantic-release/release-notes-generator":"^14.0.1","@vitejs/plugin-vue":"4.6.2","@vue/vue3-jest":"^29.2.6","@xeokit/xeokit-sdk":"git+https://git@github.com/Amoki/xeokit-sdk.git#9dbcb807cb330a84f9d67b18f0e29b066713c2a6","@zip.js/zip.js":"^2.7.47",async:"^3.2.5",autoprefixer:"^10.4.19","babel-core":"^7.0.0-bridge.0","babel-jest":"^29.7.0","conventional-changelog-eslint":"^6.0.0",cypress:"^13.13.1",esbuild:"^0.23.0",eslint:"9.7.0","eslint-config-prettier":"9.1.0","eslint-plugin-cypress":"3.3.0","eslint-plugin-jest":"28.6.0","eslint-plugin-prettier":"5.2.1","eslint-plugin-vue":"9.27.0","form-data":"^4.0.0",globals:"^15.8.0",html2canvas:"1.4.1","http-server":"^14.1.1",jest:"^29.7.0","jest-environment-jsdom":"^29.7.0","jest-extended":"^4.0.2",jspdf:"^2.5.1",lodash:"^4.17.21","node-fetch":"^3.3.2",postcss:"^8.4.39",prettier:"^3.3.3",querystring:"^0.2.0",sass:"^1.77.8","semantic-release":"^24.0.0",sinon:"^18.0.0","start-server-and-test":"^2.0.4",vite:"4.5.3","vite-plugin-css-injected-by-js":"^3.5.1",vue:"3.4.33","vue-eslint-parser":"^9.4.3","vue-i18n":"^9.13.1"},R5i={name:b5i,type:M5i,version:C5i,description:x5i,keywords:k5i,types:I5i,author:E5i,homepage:D5i,bugs:P5i,browserslist:B5i,main:S5i,module:L5i,scripts:T5i,files:j5i,devDependencies:N5i};class O5i{constructor({plugins:e,api:i,ui:o,locale:r="fr"}){this.pluginManager=new kmi(e),this.windowManager=new Emi,this.windowManager.registerAndAddPluginsToWindows([...this.pluginManager.registeredPlugins.values()]),this.api=new l4i(i),this.globalContext=new Fce(this),this.state=M4i(this),this.shortcutManager=Hie(this.state),this.uiSettings=o||{},this.i18n=new Oce(r),this._contextMenu=null,this.layout=new w5i(this.uiSettings.resizable!==!1),this.localContext=null,window.$viewer=this}get version(){return R5i.version}get locale(){return this.i18n.locale}get contextMenu(){return this._contextMenu||Uie}set contextMenu(e){this._contextMenu=e}get registeredWindows(){return[...this.windowManager.registeredWindows.keys()]}get registeredPlugins(){return[...this.pluginManager.registeredPlugins.keys()]}get pluginsCfg(){return this.pluginManager.cfg}registerPlugin(e){this.pluginManager.registerPlugin(e),this.windowManager.registerAndAddPluginsToWindows([e])}}function z5i(t,e={}){e.backgroundColor&&(t.style.setProperty("--bimdata-viewer-background-color",e.backgroundColor),e.backgroundColor==="transparent"&&t.style.setProperty("--areas-separator-color","transparent")),e.colorPrimary&&t.style.setProperty("--color-primary",e.colorPrimary),e.colorPrimaryLighter&&t.style.setProperty("--color-primary-lighter",e.colorPrimaryLighter),e.colorPrimaryLight&&t.style.setProperty("--color-primary-light",e.colorPrimaryLight),e.colorPrimaryDark&&t.style.setProperty("--color-primary-dark",e.colorPrimaryDark),e.colorSecondary&&t.style.setProperty("--color-secondary",e.colorSecondary),e.colorSecondaryLighter&&t.style.setProperty("--color-secondary-lighter",e.colorSecondaryLighter),e.colorSecondaryLight&&t.style.setProperty("--color-secondary-light",e.colorSecondaryLight),e.colorSecondaryDark&&t.style.setProperty("--color-secondary-dark",e.colorSecondaryDark),e.colorSilverLight&&t.style.setProperty("--color-silver-light",e.colorSilverLight),e.colorSilver&&t.style.setProperty("--color-silver",e.colorSilver),e.colorSilverDark&&t.style.setProperty("--color-silver-dark",e.colorSilverDark),e.colorGraniteLight&&t.style.setProperty("--color-granite-light",e.colorGraniteLight),e.colorGranite&&t.style.setProperty("--color-granite",e.colorGranite),e.colorSuccess&&t.style.setProperty("--color-success",e.colorSuccess),e.colorSuccessLighter&&t.style.setProperty("--color-success-Lighter",e.colorSuccessLighter),e.colorSuccessLight&&t.style.setProperty("--color-success-Light",e.colorSuccessLight),e.colorSuccessDark&&t.style.setProperty("--color-success-Dark",e.colorSuccessDark),e.colorWarning&&t.style.setProperty("--color-warning",e.colorWarning),e.colorWarningLighter&&t.style.setProperty("--color-warning-Lighter",e.colorWarningLighter),e.colorWarningLight&&t.style.setProperty("--color-warning-Light",e.colorWarningLight),e.colorWarningDark&&t.style.setProperty("--color-warning-Dark",e.colorWarningDark),e.colorHigh&&t.style.setProperty("--color-high",e.colorHigh),e.colorHighLighter&&t.style.setProperty("--color-high-lighter",e.colorHighLighter),e.colorHighLight&&t.style.setProperty("--color-high-light",e.colorHighLight),e.colorHighDark&&t.style.setProperty("--color-high-dark",e.colorHighDark),e.colorText&&t.style.setProperty("--color-text",e.colorText),(!e.backgroundColor||e.backgroundColor!=="transparent")&&t.style.setProperty("--areas-separator-color","rgba(216, 216, 216, 1)"),e.headerHeight!=null&&t.style.setProperty("--bimdata-viewer-header-height",e.headerHeight),t.style.setProperty("--areas-background-color","transparent")}const F5i=Object.freeze({25:"GUEST",50:"USER",100:"ADMIN"}),R1=Object.freeze({READ:"read",WRITE:"write"});function Qte(t){const e={};return t.forEach(i=>{const[o,r]=i.split(":");e[o]?e[o].push(r):e[o]=[r]}),e}const U5i={token_scopes:[],usable_scopes:[],user_role:25};function _te(t=U5i){var e,i,o,r,s,n;const a=Qte(t.token_scopes),l=Qte(t.usable_scopes);return{...DR(t),tokenScopes:a,usableScopes:l,userRole:F5i[t.user_role],user:t.user?DR(t.user):null,hasBcfReadPermission:((e=l.bcf)==null?void 0:e.includes(R1.READ))??!1,hasBcfWritePermission:((i=l.bcf)==null?void 0:i.includes(R1.WRITE))??!1,hasModelReadPermission:((o=l.model)==null?void 0:o.includes(R1.READ))??!1,hasModelWritePermission:((r=l.model)==null?void 0:r.includes(R1.WRITE))??!1,hasDocReadPermission:((s=l.document)==null?void 0:s.includes(R1.READ))??!1,hasDocWritePermission:((n=l.document)==null?void 0:n.includes(R1.WRITE))??!1}}const V5i={BcfFilters:{filtersButton:"Filter",filtersTitle:"Filter",priorityLabel:"Priorit\xE4t",statusLabel:"Status",assignedToLabel:"Zugewiesen an",creatorsLabel:"Erstellt von",tagsLabel:"Tags",resetButton:"Zur\xFCcksetzen",searchButton:"Suchen",undefined:"Nicht definiert",datePlaceholder:"Erstellungsdatum"},BcfSettings:{goBackButton:"Zur\xFCck",title:"BCF-Parameter",text:"Erstellen, f\xFCllen und listen Sie die BCF-Einstellungen auf, die Sie f\xFCr dieses Projekt haben m\xF6chten.",validateButton:"Die BCF-Parameter anerkennen"},BcfStatistics:{emptyText:"F\xFCgen Sie Fragen hinzu, um zugeh\xF6rige Statistiken hier anzuzeigen.",issues:"Probleme",extension:{Priority:"Priorit\xE4t",PriorityNotDefined:"Keine Priorit\xE4t",PriorityTitle:"Priorit\xE4ten",Status:"Status",StatusNotDefined:"Kein Status",StatusTitle:"Status"}},BcfTopicCard:{priority:"Priorit\xE4t:",noPriority:"Keine",assignedTo:"Zugewiesen an :",elements:"Elemente",notSpecified:"Nicht definiert",see:"Anzeigen"},BcfTopicCreationCard:{text:"Ein neues BCF-Thema erstellen",createBcfSideTitle:"Ein Problem melden"},BcfTopicForm:{dragDropImageText:"Bitte w\xE4hlen Sie eine Datei aus.",addObjectButton:"Objekt",addAnnotationButton:"Annotation",annotationButtonTooltip:"Zu diesem Thema gibt es derzeit keine Ansichten.",addPictureButton:"F\xFCgen Sie ein Bild hinzu.",titlePlaceholder:"Titel *",titleErrorMessage:"Titel fehlt",typeLabel:"Typ",priorityLabel:"Priorit\xE4t",statusLabel:"Status",stageLabel:"Phase",assignedToLabel:"Zugewiesen an",dueDateLabel:"F\xE4lligkeitsdatum (TT.MM.JJJJ)",descriptionLabel:"Beschreibung",labelsLabel:"Tags",createButton:"Best\xE4tigen",updateButton:"\xC4nderungen \xFCbernehmen",modalText:"Sie sind dabei, die Bearbeitung der Ausgabe {Name} zu beenden, aber es gibt noch ungespeicherte \xC4nderungen.",cancelButton:"\xC4nderungen verwerfen",continueButton:"\xC4nderungen fortsetzen",createTitle:"Ein Problem melden",dragDropImageTextTablet:"Foto machen",takeSnapshot:"Mach einen Schnappschuss",importFile:"Eine Datei importieren",searchPlaceholder:"Suchen",emptySearch:"kein Ergebnis"},BcfTopicOverview:{openViewer:"Im Viewer \xF6ffnen",openViewerNoModels:"Es sind keine Vorlagen zur Ansicht bereit",elements:"{count} Elemente",noElements:"kein Element",type:"Typ",noTypeSpecified:"Kein Typ angegeben",description:"Beschreibung",noDescriptionProvided:"Keine Beschreibung angegeben",assignedTo:"Zugeteilt an",notAssigned:"Nicht zugewiesen",dueDate:"F\xE4lligkeitsdatum",noDueDate:"Kein F\xE4lligkeitsdatum",informations:"Informationen",status:"Status",noStatusSpecified:"Kein Status angegeben",stage:"Phase",noStageProvided:"Keine Phase angegeben",priority:"Priorit\xE4t",priorityNotDefined:"Nicht definiert",tags:"Tags",noTags:"Keine Tags",commentButton:"Ein Kommentar ver\xF6ffentlichen",deleteText:"Sie l\xF6schen jetzt {Name}",deleteBcfButton:"Dieses BCF l\xF6schen",keepBcfButton:"Dieses BCF beibehalten",author:"Autor"},BcfTopicsTable:{headers:{index:"#",priority:"Priorit\xE4t",status:"Status",title:"Titel",creator:"Autor",date:"Datum"}},BcfTopicActionsCell:{seeButton:"Anzeigen"},BcfTopicComments:{commentButton:"Ein Kommentar verfassen",commentLabel:"Ein Kommentar verfassen",commentText:"Kommentar",cancelButton:"Abbrechen",publishButton:"Ver\xF6ffentlichen",commentsText:"Kommentare",deleteCommentText:"Diesen Kommentar l\xF6schen?",deleteButton:"L\xF6schen",takeSnapshot:"Mach einen Schnappschuss"},BcfTopicPriorityCell:{noPriority:"Keine"},SettingCard:{addButton:"ein Element hinzuf\xFCgen",cancelButton:"Abbrechen",validateButton:"Best\xE4tigen",deleteExtensionText:"Diesen Parameter l\xF6schen",deleteButton:"L\xF6schen",title:{Priority:"Priorit\xE4ten",Label:"Tags",Status:"Status",Type:"Typen",Stage:"Phasen"},input:{Priority:"Eine neue Priorit\xE4t hinzuf\xFCgen",Label:"Ein neues Etikett hinzuf\xFCgen",Status:"Einen neuen Status hinzuf\xFCgen",Type:"Einen neuen Typ hinzuf\xFCgen",Stage:"Eine neue Phase hinzuf\xFCgen"},text:{Priority:"Liste der Priorit\xE4ten",Label:"Liste von Tags",Status:"Liste der Status",Type:"Liste der Typen",Stage:"Liste der Phasen"}}},H5i={BcfComponents:V5i},Q5i={BcfFilters:{filtersButton:"Filters",filtersTitle:"Filters",priorityLabel:"Priority",statusLabel:"Status",assignedToLabel:"Assigned to",creatorsLabel:"Created by",tagsLabel:"Tags",resetButton:"Reset",searchButton:"Search",undefined:"Not defined",datePlaceholder:"Creation date"},BcfSettings:{goBackButton:"Back",title:"BCF Settings",text:"Create, enter in, and list the BCF settings you would like to have for this project",validateButton:"Validate BCF settings"},BcfStatistics:{emptyText:"Add BCF Topics to start to have some stats here.",issues:"issues",extension:{Priority:"Priority",PriorityNotDefined:"No priority",PriorityTitle:"Priorities",Status:"Status",StatusNotDefined:"No status",StatusTitle:"Status"}},BcfTopicCard:{priority:"Priority: ",noPriority:"None",assignedTo:"Assigned to: ",elements:"Elements",notSpecified:"Not specified",see:"See"},BcfTopicCreationCard:{text:"Create a new BCF topic",createBcfSideTitle:"Report a problem"},BcfTopicForm:{dragDropImageText:"Please select a file",addObjectButton:"Object",addAnnotationButton:"Annotation",annotationButtonTooltip:"This topic has no viewpoint",addPictureButton:"Add a picture",titlePlaceholder:"Title *",titleErrorMessage:"Missing title",typeLabel:"Type",priorityLabel:"Priority",statusLabel:"Status",stageLabel:"Stage",assignedToLabel:"Assigned to",dueDateLabel:"Due date",descriptionLabel:"Description",labelsLabel:"Tags",createButton:"Validate",updateButton:"Modify this BCF",modalText:"You are about to quit editing issue {name} but there are unsaved changes.",cancelButton:"Discard changes",continueButton:"Continue editing",createTitle:"Report a problem",dragDropImageTextTablet:"Take a picture",takeSnapshot:"Take a snapshot",importFile:"Import a file",searchPlaceholder:"Search",emptySearch:"No result"},BcfTopicOverview:{openViewer:"Open in viewer",openViewerNoModels:"No model to open",elements:"{count} Elements",noElements:"No element",type:"Type",noTypeSpecified:"No type specified",description:"Description",noDescriptionProvided:"No description provided",assignedTo:"Assigned to",notAssigned:"Not assigned",dueDate:"Due date",noDueDate:"No due date",informations:"Informations",status:"Status",noStatusSpecified:"No status specified",stage:"Stage",noStageProvided:"No stage provided",priority:"Priority",priorityNotDefined:"Not defined",tags:"Tags",noTags:"No tags",commentButton:"Post a comment",deleteText:"You are about to delete {name}",deleteBcfButton:"Delete this BCF",keepBcfButton:"Keep this BCF",author:"Author"},BcfTopicsTable:{headers:{index:"#",priority:"Priority",status:"Status",title:"Title",creator:"Author",date:"Date"}},BcfTopicActionsCell:{seeButton:"See"},BcfTopicComments:{commentButton:"Post a comment",commentLabel:"Post a comment",commentText:"Comment",cancelButton:"Cancel",publishButton:"Publish",commentsText:"Comments",deleteCommentText:"Delete this comment ?",deleteButton:"Delete",takeSnapshot:"Take a snapshot"},BcfTopicPriorityCell:{noPriority:"None"},SettingCard:{addButton:"add an element",cancelButton:"Cancel",validateButton:"Validate",deleteExtensionText:"Remove this setting",deleteButton:"Delete",title:{Priority:"Priorities",Label:"Labels",Status:"Status",Type:"Types",Stage:"Stages"},input:{Priority:"Add a new priority",Label:"Add a new label",Status:"Add new status",Type:"Add a new type",Stage:"Add a new stage"},text:{Priority:"Priority list",Label:"Labels list",Status:"Status list",Type:"Type list",Stage:"Stage list"}}},_5i={BcfComponents:Q5i},q5i={BcfFilters:{filtersButton:"Filtros",filtersTitle:"Filtros",priorityLabel:"Prioridad",statusLabel:"Estado",assignedToLabel:"Asignado a",creatorsLabel:"Creado por",tagsLabel:"Etiquetas:",resetButton:"Restablecer",searchButton:"Buscar en",undefined:"No definido",datePlaceholder:"Fecha de creaci\xF3n"},BcfSettings:{goBackButton:"Volver",title:"Par\xE1metros del BCF",text:"Cree, rellene y enumere los par\xE1metros del BCF que desea tener en este proyecto",validateButton:"Validar los par\xE1metros del BCF"},BcfStatistics:{emptyText:"A\xF1ada preguntas para ver las estad\xEDsticas asociadas aqu\xED.",issues:"problemas",extension:{Priority:"Prioridad",PriorityNotDefined:"Sin prioridad",PriorityTitle:"Prioridades",Status:"Estado",StatusNotDefined:"Sin estado",StatusTitle:"Estatutos"}},BcfTopicCard:{priority:"Prioridad :",noPriority:"Sin",assignedTo:"Asignado a :",elements:"Elementos",notSpecified:"No definido",see:"Ver"},BcfTopicCreationCard:{text:"Crear un nuevo tema BCF",createBcfSideTitle:"Informar de un problema"},BcfTopicForm:{dragDropImageText:"Seleccione un archivo",addObjectButton:"Objeto",addAnnotationButton:"Anotaci\xF3n",annotationButtonTooltip:"Actualmente este tema no posee ning\xFAn punto de vista",addPictureButton:"A\xF1adir una imagen",titlePlaceholder:"T\xEDtulo *",titleErrorMessage:"Falta el t\xEDtulo",typeLabel:"Tipo",priorityLabel:"Prioridad",statusLabel:"Estado",stageLabel:"Fase",assignedToLabel:"Asignado a",dueDateLabel:"Fecha de vencimiento (DD/MM/AAAA)",descriptionLabel:"Descripci\xF3n",labelsLabel:"Etiquetas",createButton:"Validar",updateButton:"Modificar este BCF",modalText:"Est\xE1 a punto de salir de la edici\xF3n del problema de {name} pero hay cambios sin guardar.",cancelButton:"Cancelar los cambios",continueButton:"Continuar con los cambios",createTitle:"Informar de un problema",dragDropImageTextTablet:"Tomar una fotograf\xEDa",takeSnapshot:"Tomar un snapshot",importFile:"Importar un archivo",searchPlaceholder:"Buscar",emptySearch:"No hay resultados"},BcfTopicOverview:{openViewer:"Abrir en el visor",openViewerNoModels:"No hay ning\xFAn modelo listo para la visualizaci\xF3n",elements:"{count} Elementos",noElements:"Ning\xFAn elemento",type:"Tipo",noTypeSpecified:"No se especifica el tipo",description:"Descripci\xF3n",noDescriptionProvided:"No hay descripci\xF3n",assignedTo:"Asignado a",notAssigned:"No asignado",dueDate:"Plazo",noDueDate:"Sin fecha de vencimiento",informations:"Informaci\xF3n",status:"Estado",noStatusSpecified:"No se especifica el estado",stage:"Fase",noStageProvided:"No se indica ninguna fase",priority:"Prioridad",priorityNotDefined:"No definido",tags:"Etiquetas",noTags:"Sin etiquetas",commentButton:"Publicar un comentario",deleteText:"Est\xE1s a punto de borrar {name}",deleteBcfButton:"Borrar este BCF",keepBcfButton:"Mantenga este BCF",author:"Autor"},BcfTopicsTable:{headers:{index:"#",priority:"Prioridad",status:"Estado",title:"T\xEDtulo",creator:"Autor",date:"Fecha"}},BcfTopicActionsCell:{seeButton:"Ver"},BcfTopicComments:{commentButton:"Publicar un comentario",commentLabel:"Publicar un comentario",commentText:"Comentario",cancelButton:"Cancelar",publishButton:"Publicar",commentsText:"comentarios",deleteCommentText:"\xBFBorrar este comentario?",deleteButton:"Borrar",takeSnapshot:"Tomar un snapshot"},BcfTopicPriorityCell:{noPriority:"Sin"},SettingCard:{addButton:"a\xF1adir un elemento",cancelButton:"Cancelar",validateButton:"Validar",deleteExtensionText:"Borrar esta configuraci\xF3n",deleteButton:"Borrar",title:{Priority:"Prioridades",Label:"Etiquetas:",Status:"Estatutos",Type:"Tipos",Stage:"Fases"},input:{Priority:"A\xF1adir una nueva prioridad",Label:"A\xF1adir una nueva etiqueta",Status:"A\xF1adir un nuevo estado",Type:"A\xF1adir un nuevo tipo",Stage:"A\xF1adir una nueva fase"},text:{Priority:"Lista de prioridades",Label:"Lista de etiquetas",Status:"Lista de estatutos",Type:"Lista de tipos",Stage:"Lista de fases"}}},G5i={BcfComponents:q5i},K5i={BcfFilters:{filtersButton:"Filtres",filtersTitle:"Filtres",priorityLabel:"Priorit\xE9",statusLabel:"Statut",assignedToLabel:"Assign\xE9 \xE0",creatorsLabel:"Cr\xE9\xE9 par",tagsLabel:"Tags",resetButton:"R\xE9initialiser",searchButton:"Rechercher",undefined:"Non d\xE9fini",datePlaceholder:"Date de cr\xE9ation"},BcfSettings:{goBackButton:"Retour",title:"Param\xE8tres BCF",text:"Cr\xE9ez, renseignez et listez les param\xE8tres BCF que vous souhaitez avoir sur ce projet",validateButton:"Valider les param\xE8tres BCF"},BcfStatistics:{emptyText:"Ajoutez des questions pour voir les statistiques associ\xE9es ici.",issues:"probl\xE8mes",extension:{Priority:"Priorit\xE9",PriorityNotDefined:"Aucune priorit\xE9",PriorityTitle:"Priorit\xE9s",Status:"Statut",StatusNotDefined:"Aucun statut",StatusTitle:"Statuts"}},BcfTopicCard:{priority:"Priorit\xE9 : ",noPriority:"Aucune",assignedTo:"Assign\xE9 \xE0 : ",elements:"{n} \xC9lements",notSpecified:"Non d\xE9fini",see:"Voir"},BcfTopicCreationCard:{text:"Cr\xE9er un nouveau topic BCF",createBcfSideTitle:"Signaler un probl\xE8me"},BcfTopicForm:{dragDropImageText:"Veuillez s\xE9lectionner un fichier",addObjectButton:"Objet",addAnnotationButton:"Annotation",annotationButtonTooltip:"Ce topic ne poss\xE8de actuellement aucun point de vue",addPictureButton:"Ajouter une image",titlePlaceholder:"Titre *",titleErrorMessage:"Titre manquant",typeLabel:"Type",priorityLabel:"Priorit\xE9",statusLabel:"Statut",stageLabel:"Phase",assignedToLabel:"Assign\xE9 \xE0",dueDateLabel:"Date d'\xE9ch\xE9ance",descriptionLabel:"Description",labelsLabel:"Tags",createButton:"Valider",updateButton:"Modifier ce BCF",modalText:"Vous \xEAtes sur le point de quitter l'\xE9dition de l'issue {name} mais il y'a des modifications non enregistr\xE9es.",cancelButton:"Annuler les modifications",continueButton:"Continuer les modifications",createTitle:"Signaler un probl\xE8me",dragDropImageTextTablet:"Prendre une photo",takeSnapshot:"Prendre un snapshot",importFile:"Importer un fichier",searchPlaceholder:"Rechercher",emptySearch:"Pas de r\xE9sultat"},BcfTopicOverview:{openViewer:"Ouvrir dans le viewer",openViewerNoModels:"Il n'y a aucun mod\xE8le pr\xEAt pour une visualisation",elements:"{count} \xC9lements",noElements:"Aucun \xE9l\xE9ment concern\xE9",type:"Type",noTypeSpecified:"Pas de type sp\xE9cifi\xE9",description:"Description",noDescriptionProvided:"Pas de description renseign\xE9e",assignedTo:"Assign\xE9 \xE0",notAssigned:"Non assign\xE9",dueDate:"\xC9ch\xE9ance",noDueDate:"Pas de date d'\xE9ch\xE9ance",informations:"Informations",status:"Statut",noStatusSpecified:"Pas de statut sp\xE9cifi\xE9",stage:"Phase",noStageProvided:"Pas de phase renseign\xE9e",priority:"Priorit\xE9",priorityNotDefined:"Non d\xE9fini",tags:"Tags",noTags:"Pas de tags",commentButton:"Poster un commentaire",deleteText:"Vous \xEAtes sur le point de supprimer {name}",deleteBcfButton:"Supprimer ce BCF",keepBcfButton:"Conserver ce BCF",author:"Auteur"},BcfTopicsTable:{headers:{index:"#",priority:"Priorit\xE9",status:"Statut",title:"Titre",creator:"Auteur",date:"Date"}},BcfTopicActionsCell:{seeButton:"Voir"},BcfTopicComments:{commentButton:"Poster un commentaire",commentLabel:"Poster un commentaire",commentText:"Commentaire",cancelButton:"Annuler",publishButton:"Publier",commentsText:"commentaires",deleteCommentText:"Supprimer ce commentaire ?",deleteButton:"Supprimer",takeSnapshot:"Prendre un snapshot"},BcfTopicPriorityCell:{noPriority:"Aucune"},SettingCard:{addButton:"ajouter un \xE9l\xE9ment",cancelButton:"Annuler",validateButton:"Valider",deleteExtensionText:"Supprimmer ce param\xE8tre",deleteButton:"Supprimer",title:{Priority:"Priorit\xE9s",Label:"Tags",Status:"Statuts",Type:"Types",Stage:"Phases"},input:{Priority:"Ajouter une nouvelle priorit\xE9",Label:"Ajouter un nouveau label",Status:"Ajouter un nouveau statut",Type:"Ajouter un nouveau type",Stage:"Ajouter une nouvelle phase"},text:{Priority:"Liste des priorit\xE9s",Label:"Liste des tags",Status:"Liste des statuts",Type:"Liste des types",Stage:"Liste des phases"}}},Y5i={BcfComponents:K5i},Z5i={BcfFilters:{filtersButton:"Filtri",filtersTitle:"Filtri",priorityLabel:"Priorit\xE0",statusLabel:"Stato",datePlaceholder:"Data di creazione",assignedToLabel:"Assegnato a",creatorsLabel:"Creato da",tagsLabel:"Etichette",resetButton:"Ripristina",searchButton:"Cerca",undefined:"Non definito"},BcfSettings:{goBackButton:"Indietro",title:"Parametri BCF",text:"Creare, notificare e elencare i parametri BCF che si desidera avere su questo progetto",validateButton:"Conferma i parametri BCF"},BcfStatistics:{emptyText:"Aggiungi delle domande per vedere le statistiche associate qui.",issues:"problemi",extension:{Priority:"Priorit\xE0",PriorityNotDefined:"Nessuna priorit\xE0",PriorityTitle:"Priorit\xE0",Status:"Stato",StatusNotDefined:"Nessuno stato",StatusTitle:"Stati"}},BcfTopicCard:{priority:"Priorit\xE0:",noPriority:"Nessuno",assignedTo:"Assegnato a:",elements:"Elementi",noElements:"0 elementi",notSpecified:"Non definito",see:"Visualizza"},BcfTopicCreationCard:{text:"Crea un nuovo topic BCF",createBcfSideTitle:"Segnala un problema"},BcfTopicForm:{dragDropImageText:"Selezionare un file",addObjectButton:"Oggetto",addAnnotationButton:"Annotazione",annotationButtonTooltip:"Attualmente questo argomento non presenta alcun punto di vista",addPictureButton:"Aggiungere un'immagine",titlePlaceholder:"Titolo *",titleErrorMessage:"Titolo mancante",typeLabel:"Tipo",priorityLabel:"Priorit\xE0",statusLabel:"Stato",stageLabel:"Fase",assignedToLabel:"Assegnato a",dueDateLabel:"Data di scadenza",descriptionLabel:"Descrizione",labelsLabel:"Tag",createButton:"Conferma",updateButton:"Modificare questo BCF",modalText:"State per abbandonare la modifica di {name} ma ci sono modifiche non salvate.",cancelButton:"Annullare le modifiche",continueButton:"Continuare le modifiche",createTitle:"Segnala un problema"},BcfTopicOverview:{openViewer:"Apri nel visualizzatore",openViewerNoModels:"Non esistono modelli pronti per la visualizzazione",elements:"{count} Elementi",noElements:"Nessun elemento",type:"Tipo",noTypeSpecified:"Nessun tipo specificato",description:"Descrizione",noDescriptionProvided:"Nessuna descrizione inserita",assignedTo:"Assegnato a",notAssigned:"Non assegnato",dueDate:"Scadenza",noDueDate:"Nessuna data di scadenza",informations:"Informazioni",status:"Stato",noStatusSpecified:"Nessuno stato specificato",stage:"Fase",noStageProvided:"Nessuna fase inserita",priority:"Priorit\xE0",priorityNotDefined:"Non definita",tags:"Etichette",noTags:"Nessuna etichetta",commentButton:"Pubblica un commento",deleteText:"Stai per eliminare {name}",deleteBcfButton:"Elimina questo BCF",keepBcfButton:"Conserva questo BCF",author:"Autore"},BcfTopicsTable:{headers:{index:"#",priority:"Priorit\xE0",status:"Stato",title:"Titolo",creator:"Autore",date:"Data"}},BcfTopicActionsCell:{seeButton:"Visualizza"},BcfTopicComments:{commentButton:"Pubblica un commento",commentLabel:"Pubblica un commento",commentText:"Commento",cancelButton:"Annulla",publishButton:"Pubblica",commentsText:"commenti",deleteCommentText:"Eliminare questo commento?",deleteButton:"Elimina"},BcfTopicPriorityCell:{noPriority:"Nessuno"},SettingCard:{addButton:"aggiungi un elemento",cancelButton:"Annulla",validateButton:"Conferma",deleteExtensionText:"Elimina questo parametro",deleteButton:"Elimina",title:{Priority:"Priorit\xE0",Label:"Etichette",Status:"Stati",Type:"Tipi",Stage:"Fasi"},input:{Priority:"Aggiungi una nuova priorit\xE0",Label:"Aggiungi una nuova etichetta",Status:"Aggiungi un nuovo stato",Type:"Aggiungi un nuovo tipo",Stage:"Aggiungi una nuova fase"},text:{Priority:"Elenco delle priorit\xE0",Label:"Elenco delle etichette",Status:"Elenco degli stati",Type:"Elenco dei tipi",Stage:"Elenco delle fasi"}}},J5i={BcfComponents:Z5i},W5i={de:H5i,en:_5i,es:G5i,fr:Y5i,it:J5i},X5i=({apiClient:t,fetchUsers:e,i18nPlugin:i}={})=>({install(o){t?Ni.setup({apiClient:t,fetchUsers:e}):console.error("[BCF Components Plugin] No api client provided. You must provide an api client for the components to work properly."),i?Object.entries(W5i).forEach(([r,s])=>{i.global.mergeLocaleMessage(r,s)}):console.warn("[BCF Components Plugin] No i18n instance provided. You should either provide an i18n instance or define your own translations in order have text displayed properly."),Object.entries(pAe).forEach(([r,s])=>{o.component(r,s)})}}),$5i={title:"Building Maker",back:"Zur\xFCck",list:{text:"Erstellen und bearbeiten Sie die Etagen und laden Sie anschlie\xDFend Ihre PDFs herunter.",createButton:"Neues Projekt",updateButton:"Umbenennen",deleteButton:"L\xF6schen"},form:{text:"Erstellen und bearbeiten Sie die Etagen und laden Sie anschlie\xDFend Ihre PDFs herunter.",input:"Name des Geb\xE4udes",error:"Ung\xFCltiger Name",createButton:"Erstellen",updateButton:"Best\xE4tigen"},storeys:{addStoreyButton:"Etage",addFileButton:"Grundriss",closeButton:"Fertigstellen",submitFilesButton:"Best\xE4tigen"},storeyForm:{title:"Neue Etage",input:"Name",error:"Ung\xFCltiger Name",cancelButton:"Abbrechen",submitButton:"Best\xE4tigen"}},eyi={creationFormTitle:"Ordner erstellen",renameFormPlaceholder:"Datei- / Ordnernam",nameInputPlaceholder:"Ordnername",emptyFolder:"Dieser Ordner ist leer",newFolderSuccess:"Neuer Ordner erstellt",renameFolderSuccess:"Umbenannter Ordner",deleteFolderSuccess:"Ordner gel\xF6scht",newFileSuccess:"Datei hinzugef\xFCgt",renameFileSuccess:"Umbenannte Datei",deleteFileSuccess:"Datei gel\xF6scht",nameInputErrorMessage:"Ung\xFCltiger name",cancel:"Abbrechen",submit:"Best\xE4tigen",buttonText:"Neuer Ordner",addFileButtonText:"Datei laden",rename:"Umbenennen",view:"Sehen",download:"Herunterladen",delete:"L\xF6schen",deleteTitle:"Dateien l\xF6schen",deleteDetail:"Sie sind im Begriff, die folgenden Dateien / Ordner endg\xFCltig zu l\xF6schen"},tyi={BuildingMaker:$5i,FileManager:eyi},iyi={title:"Building",back:"Back",list:{text:"Create and edit the layers, then download your PDFs.",createButton:"New project",updateButton:"Rename",deleteButton:"Delete"},form:{text:"Create and edit the layers, then download your PDFs.",input:"Building name",error:"Invalid",createButton:"Create",updateButton:"Confirm"},storeys:{addStoreyButton:"Storey",addFileButton:"Plan",closeButton:"Finish",submitFilesButton:"Validate"},storeyForm:{title:"New storey",input:"Name",error:"Invalid name",cancelButton:"Cancel",submitButton:"Validate"}},oyi={creationFormTitle:"Create folder",renameFormPlaceholder:"Folder/File name",nameInputPlaceholder:"Folder name",emptyFolder:"This folder is empty",newFolderSuccess:"New folder created",renameFolderSuccess:"Folder renamed",deleteFolderSuccess:"Folder deleted",newFileSuccess:"File added",renameFileSuccess:"File renamed",deleteFileSuccess:"File deleted",nameInputErrorMessage:"Invalid name",cancel:"Cancel",submit:"Submit",buttonText:"New folder",addFileButtonText:"Upload a file",rename:"Rename",view:"View",download:"Download",delete:"Delete",deleteTitle:"Deleting Files",deleteDetail:"You are about to permanently delete the following files / folders",dmsRoot:"Root of the project's DMS",validate:"Validate",back:"Back",pdfPageSelectorTitle:"Select a page"},ryi={title:"Meta-Building Structure",tab:{structure:"Structure",zones:"Zones",equipments:"Equipments"},StoreySelector:{placeholder:"Select a storey"},StructureView:{search:"Search"}},nyi={title:"Photosphere Building"},syi={BuildingMaker:iyi,FileManager:oyi,MetaBuildingStructure:ryi,PhotosphereBuilding:nyi},ayi={title:"Building Maker",back:"Vuelta",list:{text:"Cree y edite los pisos despu\xE9s cargue los PDF.",createButton:"Nuevo proyecto",updateButton:"Renombrar",deleteButton:"Suprimir"},form:{text:"Cree y edite los pisos despu\xE9s cargue los PDF.",input:"Nombre del edificio",error:"Nombre no v\xE1lido",createButton:"Crear",updateButton:"Validar"},storeys:{addStoreyButton:"Piso",addFileButton:"Plano",closeButton:"Terminar",submitFilesButton:"Validar"},storeyForm:{title:"Nuevo piso",input:"Nombre",error:"Nombre no v\xE1lido",cancelButton:"Anular",submitButton:"Validar"}},lyi={creationFormTitle:"Crear un archivo",renameFormPlaceholder:"Nombre de archivo / carpeta",nameInputPlaceholder:"Nombre de la carpeta",emptyFolder:"Esta carpeta est\xE1 vac\xEDa",newFolderSuccess:"Nueva carpeta creada",renameFolderSuccess:"Carpeta renombrada",deleteFolderSuccess:"Carpeta eliminada",newFileSuccess:"Archivo agregado",renameFileSuccess:"Archivo renombrado",deleteFileSuccess:"Archivo eliminado",nameInputErrorMessage:"Nombre inv\xE1lida",cancel:"Cancelar",submit:"Validar",buttonText:"Carpeta nueva",addFileButtonText:"Cargar un archivo",rename:"Renombrar",view:"Ver",download:"Descargar",delete:"Borrar",deleteTitle:"Eliminar archivos",deleteDetail:"Est\xE1 a punto de eliminar permanentemente los siguientes archivos / carpetas"},cyi={BuildingMaker:ayi,FileManager:lyi},dyi={title:"Building Maker",back:"Retour",list:{text:"Cr\xE9ez et \xE9ditez les \xE9tages puis t\xE9l\xE9chagez vos PDF.",createButton:"Nouveau projet",updateButton:"Renommer",deleteButton:"Supprimer"},form:{text:"Cr\xE9ez et \xE9ditez les \xE9tages puis t\xE9l\xE9chagez vos PDF.",input:"Nom du b\xE2timent",error:"Nom invalide",createButton:"Cr\xE9er",updateButton:"Valider"},storeys:{addStoreyButton:"\xC9tage",addFileButton:"Plan",closeButton:"Terminer",submitFilesButton:"Valider"},storeyForm:{title:"Nouvel \xE9tage",input:"Nom",error:"Nom invalide",cancelButton:"Annuler",submitButton:"Valider"}},uyi={creationFormTitle:"Cr\xE9er un dossier",renameFormPlaceholder:"Nom du fichier/dosier",nameInputPlaceholder:"Nom du dossier",emptyFolder:"Ce dossier est vide",newFolderSuccess:"Nouveau dossier cr\xE9\xE9",renameFolderSuccess:"Dossier renomm\xE9",deleteFolderSuccess:"Dossier supprim\xE9",newFileSuccess:"Fichier ajout\xE9",renameFileSuccess:"Fichier renomm\xE9",deleteFileSuccess:"Fichier supprim\xE9",nameInputErrorMessage:"Nom invalide",cancel:"Annuler",submit:"Valider",buttonText:"Nouveau dossier",addFileButtonText:"Charger un fichier",rename:"Renommer",view:"Voir",download:"T\xE9l\xE9charger",delete:"Supprimer",deleteTitle:"Supression de fichiers",deleteDetail:"Vous \xEAtes sur le point de supprimer d\xE9finitivement les fichiers/dossiers suivants",dmsRoot:"Racine de la GED du projet",validate:"Valider",back:"Retour",pdfPageSelectorTitle:"S\xE9lectionner une page"},hyi={title:"Structure M\xE9ta-Building",tab:{structure:"Structure",zones:"Zones",equipments:"Equipements"},StoreySelector:{placeholder:"S\xE9lectionner un \xE9tage"},StructureView:{search:"Rechercher"}},pyi={title:"Photosph\xE8re Building"},Ayi={BuildingMaker:dyi,FileManager:uyi,MetaBuildingStructure:hyi,PhotosphereBuilding:pyi},fyi={title:"Building Maker",back:"Reso",list:{text:"Crea e modifica i piani e poi scarica i tuoi PDF.",createButton:"Nuovo progetto",updateButton:"Rinominare",deleteButton:"Eliminare"},form:{text:"Crea e modifica i piani e poi scarica i tuoi PDF.",input:"Nome della costruzione",error:"Nome non corretto",createButton:"Creare",updateButton:"Convalidare"},storeys:{addStoreyButton:"Piano",addFileButton:"Progetto",closeButton:"Finire",submitFilesButton:"Convalidare"},storeyForm:{title:"Nuovo piano",input:"Nome",error:"Nome non corretto",cancelButton:"Annullare",submitButton:"Convalidare"}},gyi={creationFormTitle:"Crea una cartella",renameFormPlaceholder:"Nome file/cartella",nameInputPlaceholder:"Nome della cartella",emptyFolder:"Questa cartella \xE8 vuota",newFolderSuccess:"Nuova cartella creata",renameFolderSuccess:"Cartella rinominata",deleteFolderSuccess:"Cartella eliminata",newFileSuccess:"File aggiunto",renameFileSuccess:"File rinominato",deleteFileSuccess:"File cancellato",nameInputErrorMessage:"Nome non valido",cancel:"Annulla",submit:"Invia",buttonText:"Nuova cartella",addFileButtonText:"Carica un file",rename:"Rinominare",view:"Vedere",download:"Scaricare",delete:"Cancellare",deleteTitle:"Eliminazione di file",deleteDetail:"Stai per eliminare definitivamente i seguenti file/cartelle"},myi={BuildingMaker:fyi,FileManager:gyi},vyi={de:tyi,en:syi,es:cyi,fr:Ayi,it:myi},yyi=({i18nPlugin:t}={})=>({install(e){t?Object.entries(vyi).forEach(([i,o])=>{t.global.mergeLocaleMessage(i,o)}):console.warn("[BIMData Components Plugin] No i18n instance provided. You should either provide an i18n instance or define your own translations in order have text displayed properly."),Object.entries(Uii).forEach(([i,o])=>{e.component(i,o)})}}),wyi={beforeMount(t,e){if(typeof e.value!="function")throw Error(`click away directive needs function, got ${typeof e.value}`);t.clickAwayHandler=i=>{(i.path||i.composedPath&&i.composedPath()).find(o=>o===t)||e.value()},window.addEventListener("mousedown",t.clickAwayHandler,!0)},unmounted(t){window.removeEventListener("mousedown",t.clickAwayHandler,!0),delete t.clickAwayHandler}},byi=Object.freeze(Object.defineProperty({__proto__:null,BIMDataClickAway:Ts,BIMDataClickInputAway:wyi},Symbol.toStringTag,{value:"Module"})),Myi=t=>({install(e){Object.entries(N$e).forEach(([i,o])=>{t&&t.excludedComponents&&t.excludedComponents.length>0&&t.excludedComponents.includes(i)||(!t||!t.includedComponents||t.includedComponents.includes(i))&&e.component(i,o)}),(!t||t.directives!==!1)&&Object.entries(byi).forEach(([i,o])=>e.directive(i.split("BIMData")[1],o))}}),Cyi={name:"LiWrapper",render(){return po("li",this.$slots.default())}};function xyi(t,e){var i=new Set([]);return t.forEach(o=>{e.has(o)||i.add(o)}),i}const ta=Oo("id"),kyi=({contextMenu:t,objects:e=[],state:i=t.$viewer.state,pictos:o})=>[{name:"selectAll",get group(){return t.groupPositions.select},position:1,get label(){return t.$t("context_menu.select_all")},get picto(){return o.get(this.name)},execute:()=>i.selectObjects(e.filter(xs(ei("visible"),aa("selected"))).map(ta)),predicate:()=>e.some(xs(ei("visible"),aa("selected")))},{name:"deselectAll",get group(){return t.groupPositions.select},position:2,get label(){return t.$t("context_menu.deselect_all")},get picto(){return o.get(this.name)},execute:()=>i.deselectObjects(e.filter(ei("selected")).map(ta)),predicate:()=>e.some(ei("selected"))},{name:"selectSimilar",get group(){return t.groupPositions.select},position:3,get label(){return t.$t("context_menu.select_similar")},get picto(){return o.get(this.name)},execute(){const r=e.filter(s=>s.visible&&s.type===this.selectedObject.type&&s.id!==this.selectedObject.id).map(ta);i.selectObjects(r)},selectedObject:null,predicate(){const r=e.filter(xs(ei("visible"),ei("selected")));return r.length===1&&r[0].type!==void 0?(this.selectedObject=r[0],!0):(this.selectedObject=null,!1)}},{name:"reverseSelection",get label(){return t.$t("context_menu.reverse_selection")},get group(){return t.groupPositions.select},position:4,execute:()=>{const r=new Set(e.filter(ei("selected")).map(ta)),s=new Set(e.filter(ei("visible")).map(ta));i.selectObjects(Array.from(xyi(s,r)),{exclusive:!0})},predicate:()=>e.some(xs(aa("selected"),ei("visible")))&&e.some(xs(ei("selected"),ei("visible")))},{name:"showAll",get group(){return t.groupPositions.visibility},position:1,get label(){return t.$t("context_menu.show_all")},get picto(){return o.get(this.name)},execute:()=>i.showObjects(e.filter(aa("visible")).map(ta)),predicate:()=>e.some(aa("visible"))},{name:"hide",get group(){return t.groupPositions.visibility},position:2,get label(){return t.$t("context_menu.hide")},get picto(){return o.get(this.name)},objectsToHide:null,execute(){const r=this.objectsToHide.filter(ei("selected"));r.length>0&&i.deselectObjects(r.map(ta)),i.hideObjects(this.objectsToHide.map(ta))},predicate(){return this.objectsToHide=e.filter(xs(ei("selected"),ei("visible"))),this.objectsToHide.length>0}},{name:"hideAll",get group(){return t.groupPositions.visibility},position:3,get label(){return t.$t("context_menu.hide_all")},execute:()=>{const r=e.filter(ei("visible"));r.some(ei("selected"))&&i.deselectObjects(r.filter(ei("selected")).map(ta)),i.hideObjects(r.map(ta))},predicate:()=>e.some(ei("visible"))}].filter(r=>r.predicate()),Iyi={components:{LiWrapper:Cyi},inject:["$viewer"],data(){return{defaultPrevented:!1,displayed:!1,top:null,bottom:null,left:null,width:200,nextCommandId:1,currentCommands:[],contextCommands:[],registeredCommands:[],groupPositions:{select:10,visibility:20},asyncPredicateRunning:!1}},computed:{position(){return{top:this.top?this.top+"px":"unset",bottom:this.bottom?this.bottom+"px":"unset",left:this.left+"px",width:this.width+"px"}}},watch:{displayed(t){t?document.addEventListener("keydown",this.onKeyDown):document.removeEventListener("keydown",this.onKeyDown)}},created(){this.$viewer.contextMenu=this,this.asyncPredicates=new Set},methods:{onKeyDown(t){t.key==="Escape"&&this.away()},setPosition(t){const e=(document.fullscreenElement?document.fullscreenElement:this.$parent.$el).getBoundingClientRect();this.left=t.clientX-e.left,this.top=t.clientY-e.top,this.left+this.width>e.width&&(this.left=this.left-this.width),t.clientY>e.top+e.height/2?(this.bottom=e.height-this.top,this.top=null):this.bottom=null},typeCheckCommand(t={}){let e=null;if((!t.execute||typeof t.execute!="function")&!t.component&&(e="Cannot register context menu command. A command must have an execute function or a component property."),t.label||(e="Cannot register context menu command. A command must have a label."),e)throw console.error(e),new Error(e);return t.id=this.nextCommandId++,t},open(t){this.currentCommands=[],this.setPosition(t),this.originEvent=t,t.preventDefault(),this.setCurrentCommands(),this.groupCurrentCommands(),this.defaultPrevented=!1,this.displayed=!0,document.fullscreenElement?(this.$el.parentElement.removeChild(this.$el),this.adoptiveParent=document.fullscreenElement,this.adoptiveParent.appendChild(this.$el)):this.adoptiveParent&&this.adoptiveParent!==this.$viewer.globalContext.el&&(this.adoptiveParent.removeChild(this.$el),this.$viewer.globalContext.el.appendChild(this.$el),this.adoptiveParent=null)},setCurrentCommands(){this.asyncPredicates.clear(),this.asyncPredicateRunning=!1,this.defaultPrevented||this.registeredCommands.forEach(async t=>{if(typeof t.predicate=="function"){const e=t.predicate(this.$viewer.globalContext.activeLocalContext);if(e===!0)this.currentCommands.push(t);else if(typeof e?.then=="function"){this.asyncPredicates.add(e),this.asyncPredicateRunning=!0;const i=await e;this.asyncPredicates.has(e)&&(this.asyncPredicates.delete(e),this.asyncPredicateRunning=this.asyncPredicates.size>0,i===!0&&this.currentCommands.push(t))}}else this.currentCommands.push(t)}),this.currentCommands.push(...this.contextCommands),this.contextCommands=[]},getDefaultCommands({objects:t=[],state:e=this.$viewer.state,context:i=null}){const o=new Map;return i&&this.$viewer.shortcutManager.getShortcuts(i).forEach(r=>o.set(r.name,r.key)),kyi({contextMenu:this,objects:t,state:e,pictos:o})},executeCommand(t){if(t.execute&&(t.execute(this.originEvent),this.displayed=!1),t.component&&!t.menu)throw new Error("Command with component property must have a `menu` property")},away(){this.displayed=!1},groupCurrentCommands(){const t=new Map;this.currentCommands.forEach(i=>{(i.group===null||i.group===void 0)&&(i.group=0),t.has(i.group)?t.get(i.group).push(i):t.set(i.group,[i])}),t.forEach(i=>i.sort((o,r)=>(o.position=o.position||0,r.position=r.position||0,o.position-r.position)));const e=[...t.keys()].sort((i,o)=>i-o).map(i=>t.get(i)).flat();this.currentCommands=e},isGroupIntersection(t){if(t===0)return!1;const e=this.currentCommands[t-1],i=this.currentCommands[t];return e.group<i.group},registerContextCommand(t){const e=this.typeCheckCommand(t);return this.contextCommands.push(e),t.id},registerCommand(t){const e=this.typeCheckCommand(t);return this.registeredCommands.push(e),t.id},unregisterCommand(t){return this.registeredCommands.find(e=>e.id===t)?(this.registeredCommands=this.registeredCommands.filter(e=>e.id!==t),!0):!1},preventDefault(){this.defaultPrevented=!0}}},Eyi={key:0,class:"separator"},Dyi={class:"menu-text"},Pyi={key:1,class:"menu-picto"},Byi={key:0,class:"context-menu__spinner"};function Syi(t,e,i,o,r,s){const n=D("BIMDataIconChevron"),a=D("LiWrapper"),l=D("BIMDataSpinner"),c=Jt("click-away");return r.displayed&&(r.currentCommands.length||r.asyncPredicateRunning)?it((k(),R("ul",{key:0,class:"bimdata-list context-menu",style:X(s.position)},[(k(!0),R(Ke,null,At(r.currentCommands,(d,u)=>(k(),_(a,{key:d.label,class:"context-menu__element",onClick:h=>s.executeCommand(d)},{default:z(()=>[s.isGroupIntersection(u)?(k(),R("div",Eyi)):W("",!0),w("div",Dyi,H(d.label),1),!d.component&&d.picto?(k(),R("span",Pyi,H(d.picto),1)):d.component?(k(),_(n,{key:2,size:"xxs",class:"fill-primary"})):W("",!0)]),_:2},1032,["onClick"]))),128)),r.asyncPredicateRunning?(k(),R("li",Byi,[S(l)])):W("",!0)],4)),[[c,s.away]]):W("",!0)}const Lyi=F(Iyi,[["render",Syi],["__scopeId","data-v-5b87d4a3"]]),Tyi={name:"ViewerHeader",inject:["$viewer"],props:{visible:{type:Boolean,default:!0}},setup(){const t=nt("$viewer"),e=zr(new Map),i=r=>{if(!r.name)throw new TypeError("[Viewer Header] Content must have a name");if(e.has(r.name))throw new Error(`[Viewer Header] Content with name ${r.name} already exists`);e.set(r.name,r)},o=r=>e.has(r)?(e.delete(r),!0):!1;return{logo:t.uiSettings.bimdataLogo!==!1,version:t.uiSettings.version!==!1?t.version:null,headerContent:e,headerRightContentComponents:Ve(()=>Array.from(e.values()).filter(r=>r.position==="right").sort((r,s)=>r.order-s.order).map(r=>r.component)),headerLeftContentComponents:Ve(()=>Array.from(e.values()).filter(r=>r.position==="left").sort((r,s)=>r.order-s.order).map(r=>r.component)),addContent:i,removeContent:o}}},jyi={class:"viewer-header"},Nyi={class:"viewer-header__content"},Ryi={class:"viewer-header__content__left"},Oyi={class:"viewer-header__content__right"},zyi={key:0,class:"m-l-6 flex items-center"},Fyi={key:1,class:"viewer-header__version"};function Uyi(t,e,i,o,r,s){const n=D("BIMDataIllustration");return it((k(),R("div",jyi,[w("div",Nyi,[w("div",Ryi,[(k(!0),R(Ke,null,At(o.headerLeftContentComponents,a=>(k(),_(Yi(a),{key:a.name}))),128))]),w("div",Oyi,[(k(!0),R(Ke,null,At(o.headerRightContentComponents,a=>(k(),_(Yi(a),{key:a.name}))),128))])]),o.logo||o.version?(k(),R("div",zyi,[o.logo?(k(),_(n,{key:0,name:"logo",width:"30px",height:"30px"})):W("",!0),o.version?(k(),R("div",Fyi,H(o.version),1)):W("",!0)])):W("",!0)],512)),[[Dt,i.visible]])}const Vyi=F(Tyi,[["render",Uyi],["__scopeId","data-v-5c9ea6b6"]]),Hyi={emits:["resize"],setup(t,{emit:e}){return{onResizerMousedown:i=>{i.preventDefault();let o=i.clientX;const r=n=>{n.preventDefault();const a=n.clientX-o;o=n.clientX,e("resize",a)},s=n=>{n.preventDefault(),window.removeEventListener("mousemove",r),window.removeEventListener("mouseup",s)};window.addEventListener("mousemove",r),window.addEventListener("mouseup",s)}}}},Qyi=t=>(Ti("data-v-79a3b3af"),t=t(),ji(),t),_yi={class:"bimdata-separator"},qyi=Qyi(()=>w("div",{class:"bimdata-separator__line"},null,-1));function Gyi(t,e,i,o,r,s){return k(),R("div",_yi,[qyi,w("div",{class:"bimdata-separator__resizer",onMousedown:e[0]||(e[0]=(...n)=>o.onResizerMousedown&&o.onResizerMousedown(...n))},null,32)])}const Kyi=F(Hyi,[["render",Gyi],["__scopeId","data-v-79a3b3af"]]),Yyi={components:{Separator:Kyi},props:{position:{type:String,required:!0,validator(t){return["left","right"].includes(t)}},sidePanel:{type:Object,required:!0,validator(t){if(t.width&&(typeof t.width!="number"||t.width<0))return console.error(`[GlobalSidePanel] sidePanel.width must be a strictly positive number, received ${typeof t.width}`),!1;const e=typeof t?.component=="object";return e||console.error("[GlobalSidePanel] sidePanel must have a component property"),e}}},setup(t){const e=pe(null),i=pe(t.sidePanel.width??400),o=(r,s=1)=>{const n=i.value+r*s;i.value=Math.max(0,n)};return st(()=>t.sidePanel,()=>{Object.defineProperty(t.sidePanel,"width",{get(){return i.value},set(r){if(typeof r!="number"||r<=0){console.error(`[GlobalSidePanel] sidePanel.width must be a strictly positive number, received ${typeof r}`);return}i.value=r}}),Object.defineProperty(t.sidePanel,"componentInstance",{get(){return e.value},enumerable:!0})},{immediate:!0}),{componentInstance:e,width:i,onResize:o}}},Zyi={class:"bimdata-global-side-panel__component"};function Jyi(t,e,i,o,r,s){const n=D("Separator");return k(),R("div",{class:"bimdata-global-side-panel",style:X(`width: ${o.width}px`)},[i.sidePanel.resizable&&i.position==="right"?(k(),_(n,{key:0,onResize:e[0]||(e[0]=a=>o.onResize(a,-1))})):W("",!0),w("div",Zyi,[(k(),_(Yi(i.sidePanel.component),{ref:"componentInstance"},null,512))]),i.sidePanel.resizable&&i.position==="left"?(k(),_(n,{key:1,onResize:e[1]||(e[1]=a=>o.onResize(a))})):W("",!0)],4)}const Wyi=F(Yyi,[["render",Jyi],["__scopeId","data-v-82d0d4cb"]]),Xyi={name:"BimdataViewer",components:{ContextMenu:Lyi,ViewerHeader:Vyi,ModalManager:Ute,GlobalSidePanel:Wyi},setup(){const t=nt("$viewer"),{globalContext:e,shortcutManager:i}=t;Li(()=>{i&&i.destroy(),e.hub.clear()}),yi(()=>{t.pluginManager.runPluginsScripts(t)});const o=Ve(()=>{var A;return t.uiSettings.bimdataLogo!==!1&&(e.localContexts.length!==1||((A=e.localContexts[0].window)==null?void 0:A.logoAndVersion))}),r=Ve(()=>{var A;return t.uiSettings.version!==!1&&(e.localContexts.length!==1||(A=e.localContexts[0].window)!=null&&A.logoAndVersion)?t.version:null}),s=Ve(()=>e.leftSidePanel),n=Ve(()=>e.rightSidePanel),a=Ve(()=>{var A;const f=t.uiSettings.header!==!1,p=e.localContexts.length===1&&((A=e.localContexts[0].window)==null?void 0:A.header)===!1,g=!!(s.value||n.value);return f&&(!p||g)}),l=t.uiSettings.contextMenu!==!1,c=pe(null);function d(A){l&&c.value.open(A)}function u(){t.shortcutManager.active=!0}function h(){t.shortcutManager.active=!1}return{Layout:t.layout.areas.component,onContextMenu:d,onMouseenter:u,onMouseleave:h,isHeaderVisible:a,viewerTemplateRef:e.templateRef,modalManagerTemplateRef:e.modalManagerTemplateRef,headerTemplateRef:e.headerTemplateRef,contextMenuTemplateRef:c,contextMenuEnabled:l,bimdataLogoOnSingleWindow:o,viewerVersionOnSingleWindow:r,version:t.version,loading:Ve(()=>e.loading),spinner:Ve(()=>e.spinner),leftSidePanel:s,rightSidePanel:n}}},$yi={key:1,class:"global-spinner",style:{"z-index":"3"}},e8i={key:2,class:"viewer__logo"},t8i={key:1,class:"version m-t-6"};function i8i(t,e,i,o,r,s){const n=D("ModalManager"),a=D("ContextMenu"),l=D("ViewerHeader"),c=D("GlobalSidePanel"),d=D("BIMDataSpinner"),u=D("BIMDataIllustration");return k(),R("div",{id:"bimdata-viewer",ref:"viewerTemplateRef",class:"bimdata-viewer bimdata-scrollbar",onContextmenu:e[0]||(e[0]=(...h)=>o.onContextMenu&&o.onContextMenu(...h)),onMouseenter:e[1]||(e[1]=(...h)=>o.onMouseenter&&o.onMouseenter(...h)),onMouseleave:e[2]||(e[2]=(...h)=>o.onMouseleave&&o.onMouseleave(...h))},[S(n,{ref:"modalManagerTemplateRef",global:""},null,512),o.contextMenuEnabled?(k(),_(a,{key:0,ref:"contextMenuTemplateRef"},null,512)):W("",!0),S(l,{ref:"headerTemplateRef",visible:o.isHeaderVisible},null,8,["visible"]),w("div",{class:"bimdata-viewer__content",style:X(o.isHeaderVisible?"height: calc(100% - var(--bimdata-viewer-header-height, 40px))":"height: 100%")},[o.leftSidePanel?(k(),_(c,{key:0,"side-panel":o.leftSidePanel,position:"left"},null,8,["side-panel"])):W("",!0),(k(),_(Yi(o.Layout),{style:"height: 100%; flex-grow: 1;"})),o.rightSidePanel?(k(),_(c,{key:1,"side-panel":o.rightSidePanel,position:"right"},null,8,["side-panel"])):W("",!0)],4),o.loading?(k(),R("div",$yi,[o.spinner&&o.spinner.component?(k(),_(Yi(o.spinner.component),da(Vr({key:0},o.spinner.props)),null,16)):(k(),_(d,{key:1,size:"40px",border:"5px"}))])):W("",!0),!o.isHeaderVisible&&(o.bimdataLogoOnSingleWindow||o.viewerVersionOnSingleWindow)?(k(),R("div",e8i,[o.bimdataLogoOnSingleWindow?(k(),_(u,{key:0,name:"logo"})):W("",!0),o.viewerVersionOnSingleWindow?(k(),R("div",t8i,H(o.version),1)):W("",!0)])):W("",!0)],544)}const o8i=F(Xyi,[["render",i8i]]),r8i=["src"],n8i={class:"bimdata-models__header"},s8i={key:0,class:"bimdata-models__header__loader"},a8i={class:"bimdata-models__header__picto"},l8i={class:"bimdata-models__header__name"},c8i={key:0,class:"bimdata-models__header__name--empty"},d8i={key:1,class:"bimdata-models__header__name--empty"},u8i={key:3},h8i=["onMousemove","onClick"],qte={__name:"Models",props:{preview:{type:Boolean,default:!1},windowPositioning:{type:Boolean,default:!0},customFilter:{type:Function,default:null},width:{type:String,default:"350px"}},setup(t){const e=t,i=nt("$viewer"),o=pe(),r=pe(0),s=pe(0),n=pe(),a=Ui([]),l=pe(!1),c=Ve(()=>i.localContext.loadedModels),d=Ve(()=>i.localContext.loadedModelIds),u=Ve(()=>i.localContext.loadingModelIds),h=Ve(()=>i.localContext.multiModel),A=Ve(()=>(e.customFilter?a.value.filter(e.customFilter):a.value).map(x=>c.value.find(I=>{var E;return((E=I.document)==null?void 0:E.head_id)!=null&&I.document.head_id===x.document.id})??x)),f=x=>d.value.includes(x),p=x=>u.value.includes(x),g=Ve(()=>{var x;const{x:I,y:E}=((x=n.value)==null?void 0:x.getBoundingClientRect())??{x:0,y:0};return`top:${s.value-E}px; left:${r.value-I}px;`}),m=x=>{!h.value&&f(x.id)||u.value.length>0||(i.localContext.loadedModelIds.includes(x.id)?i.localContext.unloadModels([x.id]):i.localContext.loadModels([x.id]))},M=x=>{switch(x){case"C":return"success";case"E":return"failed";case"P":case"I":return"sandglass"}},y=(x,I)=>{x!=null&&x.viewer_360_file&&(r.value=I.clientX,s.value=I.clientY),o.value=x?.viewer_360_file},b=async x=>{l.value=!0;try{return(await i.api.apiClient.modelApi.getModels(i.api.cloudId,i.api.projectId,void 0,void 0,x)).filter(I=>i.state.models.some(E=>E.archived)||!I.archived).sort(Rl("updated_at",!1))}catch(I){console.error("[Models] Cannot get project models. Error: ",I)}finally{l.value=!1}return[]},C=x=>{var I;return((I=x.children)==null?void 0:I.some(E=>f(E.id)))??!1};return b(i.localContext.modelTypes).then(x=>{a.value=x}),(x,I)=>{const E=D("BIMDataSpinner"),P=D("BIMDataIconModel3D"),N=D("BIMDataTextbox"),L=D("BIMDataCheckbox"),j=D("BIMDataRadio"),O=D("BIMDataIcon"),V=D("BIMDataDropdownList");return k(),R("div",{ref_key:"templateRef",ref:n,class:$(["bimdata-models",{"bimdata-models--window-positioning":t.windowPositioning}])},[o.value?(k(),R("div",{key:0,class:"bimdata-models__preview",style:X(g.value)},[w("img",{src:o.value},null,8,r8i)],4)):W("",!0),S(V,{style:X(`--bimdata-models-width: ${t.width};`),width:t.width,list:A.value,"element-key":"id","per-page":40,loading:l.value,class:"bimdata-models__list",disabled:A.value.length===0,onElementClick:m},{header:z(({isOpen:Q})=>[w("div",n8i,[l.value||u.value.length>0?(k(),R("div",s8i,[S(E)])):(k(),R(Ke,{key:1},[w("div",a8i,[S(P)]),w("div",{class:$(["bimdata-models__header__number bimdata-info-length",{"bimdata-models__header__number--empty":d.value.length===0}])},[w("span",null,H(d.value.length),1)],2),w("div",l8i,[A.value.length===0?(k(),R("span",c8i,H(x.$t("model.no_model")),1)):d.value.length===0?(k(),R("span",d8i,H(x.$t("model.no_loaded_model")),1)):d.value.length===1?(k(),_(N,{key:2,text:c.value[0].name,tooltip:!Q},null,8,["text","tooltip"])):d.value.length>1?(k(),R("span",u8i,H(x.$t("model.selected_models")),1)):W("",!0)])],64))])]),element:z(({element:Q,close:U})=>[w("div",{class:"bimdata-models__model",onMousemove:Y=>t.preview&&y(Q,Y),onMouseout:I[0]||(I[0]=Y=>t.preview&&y()),onClick:()=>{!h.value&&!f(Q.id)&&U()}},[h.value?(k(),_(L,{key:0,"model-value":f(Q.id)||C(Q),disabled:Q.status!=="C"||u.value.length>0},null,8,["model-value","disabled"])):(k(),_(j,{key:1,"model-value":f(Q.id)||C(Q),disabled:Q.status!=="C"||u.value.length>0},null,8,["model-value","disabled"])),S(O,{margin:"0 calc(var(--spacing-unit) / 2)",name:M(Q.status),size:"xs",class:$({"fill-success":Q.status==="C","fill-high":Q.status==="E"})},null,8,["name","class"]),S(N,{class:$({"bimdata-models__model__name":!0,"bimdata-models__model__name--disabled":Q.status!=="C"||u.value.length>0}),text:Q.name,width:`calc(100% -
|
|
1627
|
+
`),onMouseenter:e[0]||(e[0]=(...h)=>o.onMouseEnter&&o.onMouseEnter(...h)),onMouseleave:e[1]||(e[1]=(...h)=>o.onMouseLeave&&o.onMouseLeave(...h))},[S(n,{ref:"modalManagerTemplateRef"},null,512),w("div",A5i,[o.windowPlugins.leftSidePanel?(k(),_(a,{key:0,plugin:o.windowPlugins.leftSidePanel},null,8,["plugin"])):W("",!0),w("div",f5i,[(k(!0),R(Ke,null,At(o.windowPlugins.free,h=>(k(),_(l,{key:h.name,class:$({"window-container__content__center__viewer":h.isViewer}),plugin:h},null,8,["class","plugin"]))),128)),S(c,{position:"left",plugins:o.windowPlugins.leftButtonColumn},null,8,["plugins"]),S(c,{position:"right",plugins:o.windowPlugins.rightButtonColumn},null,8,["plugins"])]),o.windowPlugins.rightSidePanel?(k(),_(a,{key:1,plugin:o.windowPlugins.rightSidePanel},null,8,["plugin"])):W("",!0)]),o.loading?(k(),R("div",g5i,[o.spinner&&o.spinner.component?(k(),_(Yi(o.spinner.component),da(Vr({key:0},o.spinner.props)),null,16)):(k(),_(d,{key:1,size:"20px",border:"3px"}))])):W("",!0),o.layoutSettingsDisplayed?(k(),R("div",m5i,[S(u)])):W("",!0)],36)}const y5i=F(p5i,[["render",v5i]]);class w5i{constructor(e=!0){const i=r3i(sL,null,{resizable:e});i.registerContent("default",y5i),this.settings=zr({edit:!1,swap:!1,full:!1}),this.areas=i}get resizable(){return this.areas.resizable}set resizable(e){this.areas.resizable=e}apply(e=null){this.areas.layout=e?n3i(e):null}copy(e,i=!0){return s3i(this.areas.layout,e,i)}open({ratio:e,direction:i,insertAfter:o,windowName:r=null,windowState:s=null,localContextId:n=null}={}){const a=r?{options:{windowName:r,windowState:s}}:null;return n===null?this.areas.splitLayout(e,i,o,a):this.areas.split(n,e,i,o,a)}swap(e,i){return this.areas.swap(e,i)}close(e){return this.areas.delete(e)}compare(e,i){var o,r;if(!e&&!i)return!0;if(!e||!i)return!1;if(typeof e=="string"&&typeof i=="string")return e===i;if(typeof e=="string"||typeof i=="string")return!1;if(e.windowName&&i.windowName){if(e.windowName!==i.windowName)return!1;const s=new Set((o=e.windowState)==null?void 0:o.modelIds),n=new Set((r=i.windowState)==null?void 0:r.modelIds);return s.size===n.size&&[...s].every(a=>n.has(a))}return e.windowName||i.windowName||e.direction!==i.direction||e.children.length!==i.children.length?!1:e.children.every((s,n)=>this.compare(s,i.children[n]))}}const b5i="@bimdata/viewer",M5i="module",C5i="2.4.2-beta.1",x5i="A customizable BIM viewer.",k5i=["bim","viewer","bimdata","ifc","bcf"],I5i="./index.d.ts",E5i="BIMData.io",D5i="https://developers.bimdata.io/viewer/index.html",P5i={email:"support@bimdata.io"},B5i=["last 2 chrome version","last 2 firefox version"],S5i="dist/bimdata-viewer.esm.min.js",L5i="dist/bimdata-viewer.esm.min.js",T5i={dev:"vite -c build/vite.config.dev.js",build:"vite build -c build/vite.config.prod.js && esbuild dist/bimdata-viewer.esm.min.js --minify --outfile=dist/bimdata-viewer.esm.min.js --allow-overwrite","build:runtime":"vite build -c build/vite.config.runtime.js && esbuild dist/bimdata-viewer.runtime.esm.min.js --minify --outfile=dist/bimdata-viewer.runtime.esm.min.js --allow-overwrite","build:split":"vite build -c build/vite.config.split.js && esbuild dist/bimdata-viewer.split.esm.min.js --minify --outfile=dist/bimdata-viewer.split.esm.min.js --allow-overwrite","build:umd":"vite build -c build/vite.config.umd.js && esbuild dist/bimdata-viewer.umd.cjs --minify --outfile=dist/bimdata-viewer.umd.min.cjs","cy:run":"cypress run","cy:open":"cypress open",prebuild:"rm -rf dist",prepublishOnly:"npm run build","semantic-release":"semantic-release",serve:"http-server -c-1 --silent",test:"npm run test:unit & npm run build & npm run test:e2e","test:unit":"jest","test:e2e":"start-server-and-test 'npm run serve -- -p 8080' http://localhost:8080 cy:run","test:e2e-dev":"start-server-and-test 'npm run serve -- -p 8080' http://localhost:8080 cy:open",version:"echo $npm_package_version",ts:"tsc"},j5i=["dist/*","types/*","CHANGELOG.md","README.md","package.json","package-lock.json","index.d.ts"],N5i={"@babel/preset-env":"^7.24.8","@bimdata/2d-engine":"2.5.1","@bimdata/areas-next":"0.1.15","@bimdata/bcf-components":"6.4.3","@bimdata/components":"1.6.2","@bimdata/design-system":"2.1.1-rc.4","@bimdata/typescript-fetch-api-client":"10.9.0","@eslint/eslintrc":"^3.1.0","@eslint/js":"^9.7.0","@rollup/plugin-alias":"5.1.0","@rollup/plugin-babel":"^6.0.4","@rollup/plugin-commonjs":"^26.0.1","@rollup/plugin-image":"^3.0.3","@rollup/plugin-replace":"^5.0.7","@semantic-release/changelog":"^6.0.3","@semantic-release/commit-analyzer":"^13.0.0","@semantic-release/git":"^10.0.1","@semantic-release/github":"^10.1.1","@semantic-release/npm":"^12.0.1","@semantic-release/release-notes-generator":"^14.0.1","@vitejs/plugin-vue":"4.6.2","@vue/vue3-jest":"^29.2.6","@xeokit/xeokit-sdk":"git+https://git@github.com/Amoki/xeokit-sdk.git#9dbcb807cb330a84f9d67b18f0e29b066713c2a6","@zip.js/zip.js":"^2.7.47",async:"^3.2.5",autoprefixer:"^10.4.19","babel-core":"^7.0.0-bridge.0","babel-jest":"^29.7.0","conventional-changelog-eslint":"^6.0.0",cypress:"^13.13.1",esbuild:"^0.23.0",eslint:"9.7.0","eslint-config-prettier":"9.1.0","eslint-plugin-cypress":"3.3.0","eslint-plugin-jest":"28.6.0","eslint-plugin-prettier":"5.2.1","eslint-plugin-vue":"9.27.0","form-data":"^4.0.0",globals:"^15.8.0",html2canvas:"1.4.1","http-server":"^14.1.1",jest:"^29.7.0","jest-environment-jsdom":"^29.7.0","jest-extended":"^4.0.2",jspdf:"^2.5.1",lodash:"^4.17.21","node-fetch":"^3.3.2",postcss:"^8.4.39",prettier:"^3.3.3",querystring:"^0.2.0",sass:"^1.77.8","semantic-release":"^24.0.0",sinon:"^18.0.0","start-server-and-test":"^2.0.4",vite:"4.5.3","vite-plugin-css-injected-by-js":"^3.5.1",vue:"3.4.33","vue-eslint-parser":"^9.4.3","vue-i18n":"^9.13.1"},R5i={name:b5i,type:M5i,version:C5i,description:x5i,keywords:k5i,types:I5i,author:E5i,homepage:D5i,bugs:P5i,browserslist:B5i,main:S5i,module:L5i,scripts:T5i,files:j5i,devDependencies:N5i};class O5i{constructor({plugins:e,api:i,ui:o,locale:r="fr"}){this.pluginManager=new kmi(e),this.windowManager=new Emi,this.windowManager.registerAndAddPluginsToWindows([...this.pluginManager.registeredPlugins.values()]),this.api=new l4i(i),this.globalContext=new Fce(this),this.state=M4i(this),this.shortcutManager=Hie(this.state),this.uiSettings=o||{},this.i18n=new Oce(r),this._contextMenu=null,this.layout=new w5i(this.uiSettings.resizable!==!1),this.localContext=null,window.$viewer=this}get version(){return R5i.version}get locale(){return this.i18n.locale}get contextMenu(){return this._contextMenu||Uie}set contextMenu(e){this._contextMenu=e}get registeredWindows(){return[...this.windowManager.registeredWindows.keys()]}get registeredPlugins(){return[...this.pluginManager.registeredPlugins.keys()]}get pluginsCfg(){return this.pluginManager.cfg}registerPlugin(e){this.pluginManager.registerPlugin(e),this.windowManager.registerAndAddPluginsToWindows([e])}}function z5i(t,e={}){e.backgroundColor&&(t.style.setProperty("--bimdata-viewer-background-color",e.backgroundColor),e.backgroundColor==="transparent"&&t.style.setProperty("--areas-separator-color","transparent")),e.colorPrimary&&t.style.setProperty("--color-primary",e.colorPrimary),e.colorPrimaryLighter&&t.style.setProperty("--color-primary-lighter",e.colorPrimaryLighter),e.colorPrimaryLight&&t.style.setProperty("--color-primary-light",e.colorPrimaryLight),e.colorPrimaryDark&&t.style.setProperty("--color-primary-dark",e.colorPrimaryDark),e.colorSecondary&&t.style.setProperty("--color-secondary",e.colorSecondary),e.colorSecondaryLighter&&t.style.setProperty("--color-secondary-lighter",e.colorSecondaryLighter),e.colorSecondaryLight&&t.style.setProperty("--color-secondary-light",e.colorSecondaryLight),e.colorSecondaryDark&&t.style.setProperty("--color-secondary-dark",e.colorSecondaryDark),e.colorSilverLight&&t.style.setProperty("--color-silver-light",e.colorSilverLight),e.colorSilver&&t.style.setProperty("--color-silver",e.colorSilver),e.colorSilverDark&&t.style.setProperty("--color-silver-dark",e.colorSilverDark),e.colorGraniteLight&&t.style.setProperty("--color-granite-light",e.colorGraniteLight),e.colorGranite&&t.style.setProperty("--color-granite",e.colorGranite),e.colorSuccess&&t.style.setProperty("--color-success",e.colorSuccess),e.colorSuccessLighter&&t.style.setProperty("--color-success-Lighter",e.colorSuccessLighter),e.colorSuccessLight&&t.style.setProperty("--color-success-Light",e.colorSuccessLight),e.colorSuccessDark&&t.style.setProperty("--color-success-Dark",e.colorSuccessDark),e.colorWarning&&t.style.setProperty("--color-warning",e.colorWarning),e.colorWarningLighter&&t.style.setProperty("--color-warning-Lighter",e.colorWarningLighter),e.colorWarningLight&&t.style.setProperty("--color-warning-Light",e.colorWarningLight),e.colorWarningDark&&t.style.setProperty("--color-warning-Dark",e.colorWarningDark),e.colorHigh&&t.style.setProperty("--color-high",e.colorHigh),e.colorHighLighter&&t.style.setProperty("--color-high-lighter",e.colorHighLighter),e.colorHighLight&&t.style.setProperty("--color-high-light",e.colorHighLight),e.colorHighDark&&t.style.setProperty("--color-high-dark",e.colorHighDark),e.colorText&&t.style.setProperty("--color-text",e.colorText),(!e.backgroundColor||e.backgroundColor!=="transparent")&&t.style.setProperty("--areas-separator-color","rgba(216, 216, 216, 1)"),e.headerHeight!=null&&t.style.setProperty("--bimdata-viewer-header-height",e.headerHeight),t.style.setProperty("--areas-background-color","transparent")}const F5i=Object.freeze({25:"GUEST",50:"USER",100:"ADMIN"}),R1=Object.freeze({READ:"read",WRITE:"write"});function Qte(t){const e={};return t.forEach(i=>{const[o,r]=i.split(":");e[o]?e[o].push(r):e[o]=[r]}),e}const U5i={token_scopes:[],usable_scopes:[],user_role:25};function _te(t=U5i){var e,i,o,r,s,n;const a=Qte(t.token_scopes),l=Qte(t.usable_scopes);return{...DR(t),tokenScopes:a,usableScopes:l,userRole:F5i[t.user_role],user:t.user?DR(t.user):null,hasBcfReadPermission:((e=l.bcf)==null?void 0:e.includes(R1.READ))??!1,hasBcfWritePermission:((i=l.bcf)==null?void 0:i.includes(R1.WRITE))??!1,hasModelReadPermission:((o=l.model)==null?void 0:o.includes(R1.READ))??!1,hasModelWritePermission:((r=l.model)==null?void 0:r.includes(R1.WRITE))??!1,hasDocReadPermission:((s=l.document)==null?void 0:s.includes(R1.READ))??!1,hasDocWritePermission:((n=l.document)==null?void 0:n.includes(R1.WRITE))??!1}}const V5i={BcfFilters:{filtersButton:"Filter",filtersTitle:"Filter",priorityLabel:"Priorit\xE4t",statusLabel:"Status",assignedToLabel:"Zugewiesen an",creatorsLabel:"Erstellt von",tagsLabel:"Tags",resetButton:"Zur\xFCcksetzen",searchButton:"Suchen",undefined:"Nicht definiert",datePlaceholder:"Erstellungsdatum"},BcfSettings:{goBackButton:"Zur\xFCck",title:"BCF-Parameter",text:"Erstellen, f\xFCllen und listen Sie die BCF-Einstellungen auf, die Sie f\xFCr dieses Projekt haben m\xF6chten.",validateButton:"Die BCF-Parameter anerkennen"},BcfStatistics:{emptyText:"F\xFCgen Sie Fragen hinzu, um zugeh\xF6rige Statistiken hier anzuzeigen.",issues:"Probleme",extension:{Priority:"Priorit\xE4t",PriorityNotDefined:"Keine Priorit\xE4t",PriorityTitle:"Priorit\xE4ten",Status:"Status",StatusNotDefined:"Kein Status",StatusTitle:"Status"}},BcfTopicCard:{priority:"Priorit\xE4t:",noPriority:"Keine",assignedTo:"Zugewiesen an :",elements:"Elemente",notSpecified:"Nicht definiert",see:"Anzeigen"},BcfTopicCreationCard:{text:"Ein neues BCF-Thema erstellen",createBcfSideTitle:"Ein Problem melden"},BcfTopicForm:{dragDropImageText:"Bitte w\xE4hlen Sie eine Datei aus.",addObjectButton:"Objekt",addAnnotationButton:"Annotation",annotationButtonTooltip:"Zu diesem Thema gibt es derzeit keine Ansichten.",addPictureButton:"F\xFCgen Sie ein Bild hinzu.",titlePlaceholder:"Titel *",titleErrorMessage:"Titel fehlt",typeLabel:"Typ",priorityLabel:"Priorit\xE4t",statusLabel:"Status",stageLabel:"Phase",assignedToLabel:"Zugewiesen an",dueDateLabel:"F\xE4lligkeitsdatum (TT.MM.JJJJ)",descriptionLabel:"Beschreibung",labelsLabel:"Tags",createButton:"Best\xE4tigen",updateButton:"\xC4nderungen \xFCbernehmen",modalText:"Sie sind dabei, die Bearbeitung der Ausgabe {Name} zu beenden, aber es gibt noch ungespeicherte \xC4nderungen.",cancelButton:"\xC4nderungen verwerfen",continueButton:"\xC4nderungen fortsetzen",createTitle:"Ein Problem melden",dragDropImageTextTablet:"Foto machen",takeSnapshot:"Mach einen Schnappschuss",importFile:"Eine Datei importieren",searchPlaceholder:"Suchen",emptySearch:"kein Ergebnis"},BcfTopicOverview:{openViewer:"Im Viewer \xF6ffnen",openViewerNoModels:"Es sind keine Vorlagen zur Ansicht bereit",elements:"{count} Elemente",noElements:"kein Element",type:"Typ",noTypeSpecified:"Kein Typ angegeben",description:"Beschreibung",noDescriptionProvided:"Keine Beschreibung angegeben",assignedTo:"Zugeteilt an",notAssigned:"Nicht zugewiesen",dueDate:"F\xE4lligkeitsdatum",noDueDate:"Kein F\xE4lligkeitsdatum",informations:"Informationen",status:"Status",noStatusSpecified:"Kein Status angegeben",stage:"Phase",noStageProvided:"Keine Phase angegeben",priority:"Priorit\xE4t",priorityNotDefined:"Nicht definiert",tags:"Tags",noTags:"Keine Tags",commentButton:"Ein Kommentar ver\xF6ffentlichen",deleteText:"Sie l\xF6schen jetzt {Name}",deleteBcfButton:"Dieses BCF l\xF6schen",keepBcfButton:"Dieses BCF beibehalten",author:"Autor"},BcfTopicsTable:{headers:{index:"#",priority:"Priorit\xE4t",status:"Status",title:"Titel",creator:"Autor",date:"Datum"}},BcfTopicActionsCell:{seeButton:"Anzeigen"},BcfTopicComments:{commentButton:"Ein Kommentar verfassen",commentLabel:"Ein Kommentar verfassen",commentText:"Kommentar",cancelButton:"Abbrechen",publishButton:"Ver\xF6ffentlichen",commentsText:"Kommentare",deleteCommentText:"Diesen Kommentar l\xF6schen?",deleteButton:"L\xF6schen",takeSnapshot:"Mach einen Schnappschuss"},BcfTopicPriorityCell:{noPriority:"Keine"},SettingCard:{addButton:"ein Element hinzuf\xFCgen",cancelButton:"Abbrechen",validateButton:"Best\xE4tigen",deleteExtensionText:"Diesen Parameter l\xF6schen",deleteButton:"L\xF6schen",title:{Priority:"Priorit\xE4ten",Label:"Tags",Status:"Status",Type:"Typen",Stage:"Phasen"},input:{Priority:"Eine neue Priorit\xE4t hinzuf\xFCgen",Label:"Ein neues Etikett hinzuf\xFCgen",Status:"Einen neuen Status hinzuf\xFCgen",Type:"Einen neuen Typ hinzuf\xFCgen",Stage:"Eine neue Phase hinzuf\xFCgen"},text:{Priority:"Liste der Priorit\xE4ten",Label:"Liste von Tags",Status:"Liste der Status",Type:"Liste der Typen",Stage:"Liste der Phasen"}}},H5i={BcfComponents:V5i},Q5i={BcfFilters:{filtersButton:"Filters",filtersTitle:"Filters",priorityLabel:"Priority",statusLabel:"Status",assignedToLabel:"Assigned to",creatorsLabel:"Created by",tagsLabel:"Tags",resetButton:"Reset",searchButton:"Search",undefined:"Not defined",datePlaceholder:"Creation date"},BcfSettings:{goBackButton:"Back",title:"BCF Settings",text:"Create, enter in, and list the BCF settings you would like to have for this project",validateButton:"Validate BCF settings"},BcfStatistics:{emptyText:"Add BCF Topics to start to have some stats here.",issues:"issues",extension:{Priority:"Priority",PriorityNotDefined:"No priority",PriorityTitle:"Priorities",Status:"Status",StatusNotDefined:"No status",StatusTitle:"Status"}},BcfTopicCard:{priority:"Priority: ",noPriority:"None",assignedTo:"Assigned to: ",elements:"Elements",notSpecified:"Not specified",see:"See"},BcfTopicCreationCard:{text:"Create a new BCF topic",createBcfSideTitle:"Report a problem"},BcfTopicForm:{dragDropImageText:"Please select a file",addObjectButton:"Object",addAnnotationButton:"Annotation",annotationButtonTooltip:"This topic has no viewpoint",addPictureButton:"Add a picture",titlePlaceholder:"Title *",titleErrorMessage:"Missing title",typeLabel:"Type",priorityLabel:"Priority",statusLabel:"Status",stageLabel:"Stage",assignedToLabel:"Assigned to",dueDateLabel:"Due date",descriptionLabel:"Description",labelsLabel:"Tags",createButton:"Validate",updateButton:"Modify this BCF",modalText:"You are about to quit editing issue {name} but there are unsaved changes.",cancelButton:"Discard changes",continueButton:"Continue editing",createTitle:"Report a problem",dragDropImageTextTablet:"Take a picture",takeSnapshot:"Take a snapshot",importFile:"Import a file",searchPlaceholder:"Search",emptySearch:"No result"},BcfTopicOverview:{openViewer:"Open in viewer",openViewerNoModels:"No model to open",elements:"{count} Elements",noElements:"No element",type:"Type",noTypeSpecified:"No type specified",description:"Description",noDescriptionProvided:"No description provided",assignedTo:"Assigned to",notAssigned:"Not assigned",dueDate:"Due date",noDueDate:"No due date",informations:"Informations",status:"Status",noStatusSpecified:"No status specified",stage:"Stage",noStageProvided:"No stage provided",priority:"Priority",priorityNotDefined:"Not defined",tags:"Tags",noTags:"No tags",commentButton:"Post a comment",deleteText:"You are about to delete {name}",deleteBcfButton:"Delete this BCF",keepBcfButton:"Keep this BCF",author:"Author"},BcfTopicsTable:{headers:{index:"#",priority:"Priority",status:"Status",title:"Title",creator:"Author",date:"Date"}},BcfTopicActionsCell:{seeButton:"See"},BcfTopicComments:{commentButton:"Post a comment",commentLabel:"Post a comment",commentText:"Comment",cancelButton:"Cancel",publishButton:"Publish",commentsText:"Comments",deleteCommentText:"Delete this comment ?",deleteButton:"Delete",takeSnapshot:"Take a snapshot"},BcfTopicPriorityCell:{noPriority:"None"},SettingCard:{addButton:"add an element",cancelButton:"Cancel",validateButton:"Validate",deleteExtensionText:"Remove this setting",deleteButton:"Delete",title:{Priority:"Priorities",Label:"Labels",Status:"Status",Type:"Types",Stage:"Stages"},input:{Priority:"Add a new priority",Label:"Add a new label",Status:"Add new status",Type:"Add a new type",Stage:"Add a new stage"},text:{Priority:"Priority list",Label:"Labels list",Status:"Status list",Type:"Type list",Stage:"Stage list"}}},_5i={BcfComponents:Q5i},q5i={BcfFilters:{filtersButton:"Filtros",filtersTitle:"Filtros",priorityLabel:"Prioridad",statusLabel:"Estado",assignedToLabel:"Asignado a",creatorsLabel:"Creado por",tagsLabel:"Etiquetas:",resetButton:"Restablecer",searchButton:"Buscar en",undefined:"No definido",datePlaceholder:"Fecha de creaci\xF3n"},BcfSettings:{goBackButton:"Volver",title:"Par\xE1metros del BCF",text:"Cree, rellene y enumere los par\xE1metros del BCF que desea tener en este proyecto",validateButton:"Validar los par\xE1metros del BCF"},BcfStatistics:{emptyText:"A\xF1ada preguntas para ver las estad\xEDsticas asociadas aqu\xED.",issues:"problemas",extension:{Priority:"Prioridad",PriorityNotDefined:"Sin prioridad",PriorityTitle:"Prioridades",Status:"Estado",StatusNotDefined:"Sin estado",StatusTitle:"Estatutos"}},BcfTopicCard:{priority:"Prioridad :",noPriority:"Sin",assignedTo:"Asignado a :",elements:"Elementos",notSpecified:"No definido",see:"Ver"},BcfTopicCreationCard:{text:"Crear un nuevo tema BCF",createBcfSideTitle:"Informar de un problema"},BcfTopicForm:{dragDropImageText:"Seleccione un archivo",addObjectButton:"Objeto",addAnnotationButton:"Anotaci\xF3n",annotationButtonTooltip:"Actualmente este tema no posee ning\xFAn punto de vista",addPictureButton:"A\xF1adir una imagen",titlePlaceholder:"T\xEDtulo *",titleErrorMessage:"Falta el t\xEDtulo",typeLabel:"Tipo",priorityLabel:"Prioridad",statusLabel:"Estado",stageLabel:"Fase",assignedToLabel:"Asignado a",dueDateLabel:"Fecha de vencimiento (DD/MM/AAAA)",descriptionLabel:"Descripci\xF3n",labelsLabel:"Etiquetas",createButton:"Validar",updateButton:"Modificar este BCF",modalText:"Est\xE1 a punto de salir de la edici\xF3n del problema de {name} pero hay cambios sin guardar.",cancelButton:"Cancelar los cambios",continueButton:"Continuar con los cambios",createTitle:"Informar de un problema",dragDropImageTextTablet:"Tomar una fotograf\xEDa",takeSnapshot:"Tomar un snapshot",importFile:"Importar un archivo",searchPlaceholder:"Buscar",emptySearch:"No hay resultados"},BcfTopicOverview:{openViewer:"Abrir en el visor",openViewerNoModels:"No hay ning\xFAn modelo listo para la visualizaci\xF3n",elements:"{count} Elementos",noElements:"Ning\xFAn elemento",type:"Tipo",noTypeSpecified:"No se especifica el tipo",description:"Descripci\xF3n",noDescriptionProvided:"No hay descripci\xF3n",assignedTo:"Asignado a",notAssigned:"No asignado",dueDate:"Plazo",noDueDate:"Sin fecha de vencimiento",informations:"Informaci\xF3n",status:"Estado",noStatusSpecified:"No se especifica el estado",stage:"Fase",noStageProvided:"No se indica ninguna fase",priority:"Prioridad",priorityNotDefined:"No definido",tags:"Etiquetas",noTags:"Sin etiquetas",commentButton:"Publicar un comentario",deleteText:"Est\xE1s a punto de borrar {name}",deleteBcfButton:"Borrar este BCF",keepBcfButton:"Mantenga este BCF",author:"Autor"},BcfTopicsTable:{headers:{index:"#",priority:"Prioridad",status:"Estado",title:"T\xEDtulo",creator:"Autor",date:"Fecha"}},BcfTopicActionsCell:{seeButton:"Ver"},BcfTopicComments:{commentButton:"Publicar un comentario",commentLabel:"Publicar un comentario",commentText:"Comentario",cancelButton:"Cancelar",publishButton:"Publicar",commentsText:"comentarios",deleteCommentText:"\xBFBorrar este comentario?",deleteButton:"Borrar",takeSnapshot:"Tomar un snapshot"},BcfTopicPriorityCell:{noPriority:"Sin"},SettingCard:{addButton:"a\xF1adir un elemento",cancelButton:"Cancelar",validateButton:"Validar",deleteExtensionText:"Borrar esta configuraci\xF3n",deleteButton:"Borrar",title:{Priority:"Prioridades",Label:"Etiquetas:",Status:"Estatutos",Type:"Tipos",Stage:"Fases"},input:{Priority:"A\xF1adir una nueva prioridad",Label:"A\xF1adir una nueva etiqueta",Status:"A\xF1adir un nuevo estado",Type:"A\xF1adir un nuevo tipo",Stage:"A\xF1adir una nueva fase"},text:{Priority:"Lista de prioridades",Label:"Lista de etiquetas",Status:"Lista de estatutos",Type:"Lista de tipos",Stage:"Lista de fases"}}},G5i={BcfComponents:q5i},K5i={BcfFilters:{filtersButton:"Filtres",filtersTitle:"Filtres",priorityLabel:"Priorit\xE9",statusLabel:"Statut",assignedToLabel:"Assign\xE9 \xE0",creatorsLabel:"Cr\xE9\xE9 par",tagsLabel:"Tags",resetButton:"R\xE9initialiser",searchButton:"Rechercher",undefined:"Non d\xE9fini",datePlaceholder:"Date de cr\xE9ation"},BcfSettings:{goBackButton:"Retour",title:"Param\xE8tres BCF",text:"Cr\xE9ez, renseignez et listez les param\xE8tres BCF que vous souhaitez avoir sur ce projet",validateButton:"Valider les param\xE8tres BCF"},BcfStatistics:{emptyText:"Ajoutez des questions pour voir les statistiques associ\xE9es ici.",issues:"probl\xE8mes",extension:{Priority:"Priorit\xE9",PriorityNotDefined:"Aucune priorit\xE9",PriorityTitle:"Priorit\xE9s",Status:"Statut",StatusNotDefined:"Aucun statut",StatusTitle:"Statuts"}},BcfTopicCard:{priority:"Priorit\xE9 : ",noPriority:"Aucune",assignedTo:"Assign\xE9 \xE0 : ",elements:"{n} \xC9lements",notSpecified:"Non d\xE9fini",see:"Voir"},BcfTopicCreationCard:{text:"Cr\xE9er un nouveau topic BCF",createBcfSideTitle:"Signaler un probl\xE8me"},BcfTopicForm:{dragDropImageText:"Veuillez s\xE9lectionner un fichier",addObjectButton:"Objet",addAnnotationButton:"Annotation",annotationButtonTooltip:"Ce topic ne poss\xE8de actuellement aucun point de vue",addPictureButton:"Ajouter une image",titlePlaceholder:"Titre *",titleErrorMessage:"Titre manquant",typeLabel:"Type",priorityLabel:"Priorit\xE9",statusLabel:"Statut",stageLabel:"Phase",assignedToLabel:"Assign\xE9 \xE0",dueDateLabel:"Date d'\xE9ch\xE9ance",descriptionLabel:"Description",labelsLabel:"Tags",createButton:"Valider",updateButton:"Modifier ce BCF",modalText:"Vous \xEAtes sur le point de quitter l'\xE9dition de l'issue {name} mais il y'a des modifications non enregistr\xE9es.",cancelButton:"Annuler les modifications",continueButton:"Continuer les modifications",createTitle:"Signaler un probl\xE8me",dragDropImageTextTablet:"Prendre une photo",takeSnapshot:"Prendre un snapshot",importFile:"Importer un fichier",searchPlaceholder:"Rechercher",emptySearch:"Pas de r\xE9sultat"},BcfTopicOverview:{openViewer:"Ouvrir dans le viewer",openViewerNoModels:"Il n'y a aucun mod\xE8le pr\xEAt pour une visualisation",elements:"{count} \xC9lements",noElements:"Aucun \xE9l\xE9ment concern\xE9",type:"Type",noTypeSpecified:"Pas de type sp\xE9cifi\xE9",description:"Description",noDescriptionProvided:"Pas de description renseign\xE9e",assignedTo:"Assign\xE9 \xE0",notAssigned:"Non assign\xE9",dueDate:"\xC9ch\xE9ance",noDueDate:"Pas de date d'\xE9ch\xE9ance",informations:"Informations",status:"Statut",noStatusSpecified:"Pas de statut sp\xE9cifi\xE9",stage:"Phase",noStageProvided:"Pas de phase renseign\xE9e",priority:"Priorit\xE9",priorityNotDefined:"Non d\xE9fini",tags:"Tags",noTags:"Pas de tags",commentButton:"Poster un commentaire",deleteText:"Vous \xEAtes sur le point de supprimer {name}",deleteBcfButton:"Supprimer ce BCF",keepBcfButton:"Conserver ce BCF",author:"Auteur"},BcfTopicsTable:{headers:{index:"#",priority:"Priorit\xE9",status:"Statut",title:"Titre",creator:"Auteur",date:"Date"}},BcfTopicActionsCell:{seeButton:"Voir"},BcfTopicComments:{commentButton:"Poster un commentaire",commentLabel:"Poster un commentaire",commentText:"Commentaire",cancelButton:"Annuler",publishButton:"Publier",commentsText:"commentaires",deleteCommentText:"Supprimer ce commentaire ?",deleteButton:"Supprimer",takeSnapshot:"Prendre un snapshot"},BcfTopicPriorityCell:{noPriority:"Aucune"},SettingCard:{addButton:"ajouter un \xE9l\xE9ment",cancelButton:"Annuler",validateButton:"Valider",deleteExtensionText:"Supprimmer ce param\xE8tre",deleteButton:"Supprimer",title:{Priority:"Priorit\xE9s",Label:"Tags",Status:"Statuts",Type:"Types",Stage:"Phases"},input:{Priority:"Ajouter une nouvelle priorit\xE9",Label:"Ajouter un nouveau label",Status:"Ajouter un nouveau statut",Type:"Ajouter un nouveau type",Stage:"Ajouter une nouvelle phase"},text:{Priority:"Liste des priorit\xE9s",Label:"Liste des tags",Status:"Liste des statuts",Type:"Liste des types",Stage:"Liste des phases"}}},Y5i={BcfComponents:K5i},Z5i={BcfFilters:{filtersButton:"Filtri",filtersTitle:"Filtri",priorityLabel:"Priorit\xE0",statusLabel:"Stato",datePlaceholder:"Data di creazione",assignedToLabel:"Assegnato a",creatorsLabel:"Creato da",tagsLabel:"Etichette",resetButton:"Ripristina",searchButton:"Cerca",undefined:"Non definito"},BcfSettings:{goBackButton:"Indietro",title:"Parametri BCF",text:"Creare, notificare e elencare i parametri BCF che si desidera avere su questo progetto",validateButton:"Conferma i parametri BCF"},BcfStatistics:{emptyText:"Aggiungi delle domande per vedere le statistiche associate qui.",issues:"problemi",extension:{Priority:"Priorit\xE0",PriorityNotDefined:"Nessuna priorit\xE0",PriorityTitle:"Priorit\xE0",Status:"Stato",StatusNotDefined:"Nessuno stato",StatusTitle:"Stati"}},BcfTopicCard:{priority:"Priorit\xE0:",noPriority:"Nessuno",assignedTo:"Assegnato a:",elements:"Elementi",noElements:"0 elementi",notSpecified:"Non definito",see:"Visualizza"},BcfTopicCreationCard:{text:"Crea un nuovo topic BCF",createBcfSideTitle:"Segnala un problema"},BcfTopicForm:{dragDropImageText:"Selezionare un file",addObjectButton:"Oggetto",addAnnotationButton:"Annotazione",annotationButtonTooltip:"Attualmente questo argomento non presenta alcun punto di vista",addPictureButton:"Aggiungere un'immagine",titlePlaceholder:"Titolo *",titleErrorMessage:"Titolo mancante",typeLabel:"Tipo",priorityLabel:"Priorit\xE0",statusLabel:"Stato",stageLabel:"Fase",assignedToLabel:"Assegnato a",dueDateLabel:"Data di scadenza",descriptionLabel:"Descrizione",labelsLabel:"Tag",createButton:"Conferma",updateButton:"Modificare questo BCF",modalText:"State per abbandonare la modifica di {name} ma ci sono modifiche non salvate.",cancelButton:"Annullare le modifiche",continueButton:"Continuare le modifiche",createTitle:"Segnala un problema"},BcfTopicOverview:{openViewer:"Apri nel visualizzatore",openViewerNoModels:"Non esistono modelli pronti per la visualizzazione",elements:"{count} Elementi",noElements:"Nessun elemento",type:"Tipo",noTypeSpecified:"Nessun tipo specificato",description:"Descrizione",noDescriptionProvided:"Nessuna descrizione inserita",assignedTo:"Assegnato a",notAssigned:"Non assegnato",dueDate:"Scadenza",noDueDate:"Nessuna data di scadenza",informations:"Informazioni",status:"Stato",noStatusSpecified:"Nessuno stato specificato",stage:"Fase",noStageProvided:"Nessuna fase inserita",priority:"Priorit\xE0",priorityNotDefined:"Non definita",tags:"Etichette",noTags:"Nessuna etichetta",commentButton:"Pubblica un commento",deleteText:"Stai per eliminare {name}",deleteBcfButton:"Elimina questo BCF",keepBcfButton:"Conserva questo BCF",author:"Autore"},BcfTopicsTable:{headers:{index:"#",priority:"Priorit\xE0",status:"Stato",title:"Titolo",creator:"Autore",date:"Data"}},BcfTopicActionsCell:{seeButton:"Visualizza"},BcfTopicComments:{commentButton:"Pubblica un commento",commentLabel:"Pubblica un commento",commentText:"Commento",cancelButton:"Annulla",publishButton:"Pubblica",commentsText:"commenti",deleteCommentText:"Eliminare questo commento?",deleteButton:"Elimina"},BcfTopicPriorityCell:{noPriority:"Nessuno"},SettingCard:{addButton:"aggiungi un elemento",cancelButton:"Annulla",validateButton:"Conferma",deleteExtensionText:"Elimina questo parametro",deleteButton:"Elimina",title:{Priority:"Priorit\xE0",Label:"Etichette",Status:"Stati",Type:"Tipi",Stage:"Fasi"},input:{Priority:"Aggiungi una nuova priorit\xE0",Label:"Aggiungi una nuova etichetta",Status:"Aggiungi un nuovo stato",Type:"Aggiungi un nuovo tipo",Stage:"Aggiungi una nuova fase"},text:{Priority:"Elenco delle priorit\xE0",Label:"Elenco delle etichette",Status:"Elenco degli stati",Type:"Elenco dei tipi",Stage:"Elenco delle fasi"}}},J5i={BcfComponents:Z5i},W5i={de:H5i,en:_5i,es:G5i,fr:Y5i,it:J5i},X5i=({apiClient:t,fetchUsers:e,i18nPlugin:i}={})=>({install(o){t?Ni.setup({apiClient:t,fetchUsers:e}):console.error("[BCF Components Plugin] No api client provided. You must provide an api client for the components to work properly."),i?Object.entries(W5i).forEach(([r,s])=>{i.global.mergeLocaleMessage(r,s)}):console.warn("[BCF Components Plugin] No i18n instance provided. You should either provide an i18n instance or define your own translations in order have text displayed properly."),Object.entries(pAe).forEach(([r,s])=>{o.component(r,s)})}}),$5i={title:"Building Maker",back:"Zur\xFCck",list:{text:"Erstellen und bearbeiten Sie die Etagen und laden Sie anschlie\xDFend Ihre PDFs herunter.",createButton:"Neues Projekt",updateButton:"Umbenennen",deleteButton:"L\xF6schen"},form:{text:"Erstellen und bearbeiten Sie die Etagen und laden Sie anschlie\xDFend Ihre PDFs herunter.",input:"Name des Geb\xE4udes",error:"Ung\xFCltiger Name",createButton:"Erstellen",updateButton:"Best\xE4tigen"},storeys:{addStoreyButton:"Etage",addFileButton:"Grundriss",closeButton:"Fertigstellen",submitFilesButton:"Best\xE4tigen"},storeyForm:{title:"Neue Etage",input:"Name",error:"Ung\xFCltiger Name",cancelButton:"Abbrechen",submitButton:"Best\xE4tigen"}},eyi={creationFormTitle:"Ordner erstellen",renameFormPlaceholder:"Datei- / Ordnernam",nameInputPlaceholder:"Ordnername",emptyFolder:"Dieser Ordner ist leer",newFolderSuccess:"Neuer Ordner erstellt",renameFolderSuccess:"Umbenannter Ordner",deleteFolderSuccess:"Ordner gel\xF6scht",newFileSuccess:"Datei hinzugef\xFCgt",renameFileSuccess:"Umbenannte Datei",deleteFileSuccess:"Datei gel\xF6scht",nameInputErrorMessage:"Ung\xFCltiger name",cancel:"Abbrechen",submit:"Best\xE4tigen",buttonText:"Neuer Ordner",addFileButtonText:"Datei laden",rename:"Umbenennen",view:"Sehen",download:"Herunterladen",delete:"L\xF6schen",deleteTitle:"Dateien l\xF6schen",deleteDetail:"Sie sind im Begriff, die folgenden Dateien / Ordner endg\xFCltig zu l\xF6schen"},tyi={BuildingMaker:$5i,FileManager:eyi},iyi={title:"Building",back:"Back",list:{text:"Create and edit the layers, then download your PDFs.",createButton:"New project",updateButton:"Rename",deleteButton:"Delete"},form:{text:"Create and edit the layers, then download your PDFs.",input:"Building name",error:"Invalid",createButton:"Create",updateButton:"Confirm"},storeys:{addStoreyButton:"Storey",addFileButton:"Plan",closeButton:"Finish",submitFilesButton:"Validate"},storeyForm:{title:"New storey",input:"Name",error:"Invalid name",cancelButton:"Cancel",submitButton:"Validate"}},oyi={creationFormTitle:"Create folder",renameFormPlaceholder:"Folder/File name",nameInputPlaceholder:"Folder name",emptyFolder:"This folder is empty",newFolderSuccess:"New folder created",renameFolderSuccess:"Folder renamed",deleteFolderSuccess:"Folder deleted",newFileSuccess:"File added",renameFileSuccess:"File renamed",deleteFileSuccess:"File deleted",nameInputErrorMessage:"Invalid name",cancel:"Cancel",submit:"Submit",buttonText:"New folder",addFileButtonText:"Upload a file",rename:"Rename",view:"View",download:"Download",delete:"Delete",deleteTitle:"Deleting Files",deleteDetail:"You are about to permanently delete the following files / folders",dmsRoot:"Root of the project's DMS",validate:"Validate",back:"Back",pdfPageSelectorTitle:"Select a page"},ryi={title:"Meta-Building Structure",tab:{structure:"Structure",zones:"Zones",equipments:"Equipments"},StoreySelector:{placeholder:"Select a storey"},StructureView:{search:"Search"}},nyi={title:"Photosphere Building"},syi={BuildingMaker:iyi,FileManager:oyi,MetaBuildingStructure:ryi,PhotosphereBuilding:nyi},ayi={title:"Building Maker",back:"Vuelta",list:{text:"Cree y edite los pisos despu\xE9s cargue los PDF.",createButton:"Nuevo proyecto",updateButton:"Renombrar",deleteButton:"Suprimir"},form:{text:"Cree y edite los pisos despu\xE9s cargue los PDF.",input:"Nombre del edificio",error:"Nombre no v\xE1lido",createButton:"Crear",updateButton:"Validar"},storeys:{addStoreyButton:"Piso",addFileButton:"Plano",closeButton:"Terminar",submitFilesButton:"Validar"},storeyForm:{title:"Nuevo piso",input:"Nombre",error:"Nombre no v\xE1lido",cancelButton:"Anular",submitButton:"Validar"}},lyi={creationFormTitle:"Crear un archivo",renameFormPlaceholder:"Nombre de archivo / carpeta",nameInputPlaceholder:"Nombre de la carpeta",emptyFolder:"Esta carpeta est\xE1 vac\xEDa",newFolderSuccess:"Nueva carpeta creada",renameFolderSuccess:"Carpeta renombrada",deleteFolderSuccess:"Carpeta eliminada",newFileSuccess:"Archivo agregado",renameFileSuccess:"Archivo renombrado",deleteFileSuccess:"Archivo eliminado",nameInputErrorMessage:"Nombre inv\xE1lida",cancel:"Cancelar",submit:"Validar",buttonText:"Carpeta nueva",addFileButtonText:"Cargar un archivo",rename:"Renombrar",view:"Ver",download:"Descargar",delete:"Borrar",deleteTitle:"Eliminar archivos",deleteDetail:"Est\xE1 a punto de eliminar permanentemente los siguientes archivos / carpetas"},cyi={BuildingMaker:ayi,FileManager:lyi},dyi={title:"Building Maker",back:"Retour",list:{text:"Cr\xE9ez et \xE9ditez les \xE9tages puis t\xE9l\xE9chagez vos PDF.",createButton:"Nouveau projet",updateButton:"Renommer",deleteButton:"Supprimer"},form:{text:"Cr\xE9ez et \xE9ditez les \xE9tages puis t\xE9l\xE9chagez vos PDF.",input:"Nom du b\xE2timent",error:"Nom invalide",createButton:"Cr\xE9er",updateButton:"Valider"},storeys:{addStoreyButton:"\xC9tage",addFileButton:"Plan",closeButton:"Terminer",submitFilesButton:"Valider"},storeyForm:{title:"Nouvel \xE9tage",input:"Nom",error:"Nom invalide",cancelButton:"Annuler",submitButton:"Valider"}},uyi={creationFormTitle:"Cr\xE9er un dossier",renameFormPlaceholder:"Nom du fichier/dosier",nameInputPlaceholder:"Nom du dossier",emptyFolder:"Ce dossier est vide",newFolderSuccess:"Nouveau dossier cr\xE9\xE9",renameFolderSuccess:"Dossier renomm\xE9",deleteFolderSuccess:"Dossier supprim\xE9",newFileSuccess:"Fichier ajout\xE9",renameFileSuccess:"Fichier renomm\xE9",deleteFileSuccess:"Fichier supprim\xE9",nameInputErrorMessage:"Nom invalide",cancel:"Annuler",submit:"Valider",buttonText:"Nouveau dossier",addFileButtonText:"Charger un fichier",rename:"Renommer",view:"Voir",download:"T\xE9l\xE9charger",delete:"Supprimer",deleteTitle:"Supression de fichiers",deleteDetail:"Vous \xEAtes sur le point de supprimer d\xE9finitivement les fichiers/dossiers suivants",dmsRoot:"Racine de la GED du projet",validate:"Valider",back:"Retour",pdfPageSelectorTitle:"S\xE9lectionner une page"},hyi={title:"Structure M\xE9ta-Building",tab:{structure:"Structure",zones:"Zones",equipments:"Equipements"},StoreySelector:{placeholder:"S\xE9lectionner un \xE9tage"},StructureView:{search:"Rechercher"}},pyi={title:"Photosph\xE8re Building"},Ayi={BuildingMaker:dyi,FileManager:uyi,MetaBuildingStructure:hyi,PhotosphereBuilding:pyi},fyi={title:"Building Maker",back:"Reso",list:{text:"Crea e modifica i piani e poi scarica i tuoi PDF.",createButton:"Nuovo progetto",updateButton:"Rinominare",deleteButton:"Eliminare"},form:{text:"Crea e modifica i piani e poi scarica i tuoi PDF.",input:"Nome della costruzione",error:"Nome non corretto",createButton:"Creare",updateButton:"Convalidare"},storeys:{addStoreyButton:"Piano",addFileButton:"Progetto",closeButton:"Finire",submitFilesButton:"Convalidare"},storeyForm:{title:"Nuovo piano",input:"Nome",error:"Nome non corretto",cancelButton:"Annullare",submitButton:"Convalidare"}},gyi={creationFormTitle:"Crea una cartella",renameFormPlaceholder:"Nome file/cartella",nameInputPlaceholder:"Nome della cartella",emptyFolder:"Questa cartella \xE8 vuota",newFolderSuccess:"Nuova cartella creata",renameFolderSuccess:"Cartella rinominata",deleteFolderSuccess:"Cartella eliminata",newFileSuccess:"File aggiunto",renameFileSuccess:"File rinominato",deleteFileSuccess:"File cancellato",nameInputErrorMessage:"Nome non valido",cancel:"Annulla",submit:"Invia",buttonText:"Nuova cartella",addFileButtonText:"Carica un file",rename:"Rinominare",view:"Vedere",download:"Scaricare",delete:"Cancellare",deleteTitle:"Eliminazione di file",deleteDetail:"Stai per eliminare definitivamente i seguenti file/cartelle"},myi={BuildingMaker:fyi,FileManager:gyi},vyi={de:tyi,en:syi,es:cyi,fr:Ayi,it:myi},yyi=({i18nPlugin:t}={})=>({install(e){t?Object.entries(vyi).forEach(([i,o])=>{t.global.mergeLocaleMessage(i,o)}):console.warn("[BIMData Components Plugin] No i18n instance provided. You should either provide an i18n instance or define your own translations in order have text displayed properly."),Object.entries(Uii).forEach(([i,o])=>{e.component(i,o)})}}),wyi={beforeMount(t,e){if(typeof e.value!="function")throw Error(`click away directive needs function, got ${typeof e.value}`);t.clickAwayHandler=i=>{(i.path||i.composedPath&&i.composedPath()).find(o=>o===t)||e.value()},window.addEventListener("mousedown",t.clickAwayHandler,!0)},unmounted(t){window.removeEventListener("mousedown",t.clickAwayHandler,!0),delete t.clickAwayHandler}},byi=Object.freeze(Object.defineProperty({__proto__:null,BIMDataClickAway:Ts,BIMDataClickInputAway:wyi},Symbol.toStringTag,{value:"Module"})),Myi=t=>({install(e){Object.entries(N$e).forEach(([i,o])=>{t&&t.excludedComponents&&t.excludedComponents.length>0&&t.excludedComponents.includes(i)||(!t||!t.includedComponents||t.includedComponents.includes(i))&&e.component(i,o)}),(!t||t.directives!==!1)&&Object.entries(byi).forEach(([i,o])=>e.directive(i.split("BIMData")[1],o))}}),Cyi={name:"LiWrapper",render(){return po("li",this.$slots.default())}};function xyi(t,e){var i=new Set([]);return t.forEach(o=>{e.has(o)||i.add(o)}),i}const ta=Oo("id"),kyi=({contextMenu:t,objects:e=[],state:i=t.$viewer.state,pictos:o})=>[{name:"selectAll",get group(){return t.groupPositions.select},position:1,get label(){return t.$t("context_menu.select_all")},get picto(){return o.get(this.name)},execute:()=>i.selectObjects(e.filter(xs(ei("visible"),aa("selected"))).map(ta)),predicate:()=>e.some(xs(ei("visible"),aa("selected")))},{name:"deselectAll",get group(){return t.groupPositions.select},position:2,get label(){return t.$t("context_menu.deselect_all")},get picto(){return o.get(this.name)},execute:()=>i.deselectObjects(e.filter(ei("selected")).map(ta)),predicate:()=>e.some(ei("selected"))},{name:"selectSimilar",get group(){return t.groupPositions.select},position:3,get label(){return t.$t("context_menu.select_similar")},get picto(){return o.get(this.name)},execute(){const r=e.filter(s=>s.visible&&s.type===this.selectedObject.type&&s.id!==this.selectedObject.id).map(ta);i.selectObjects(r)},selectedObject:null,predicate(){const r=e.filter(xs(ei("visible"),ei("selected")));return r.length===1&&r[0].type!==void 0?(this.selectedObject=r[0],!0):(this.selectedObject=null,!1)}},{name:"reverseSelection",get label(){return t.$t("context_menu.reverse_selection")},get group(){return t.groupPositions.select},position:4,execute:()=>{const r=new Set(e.filter(ei("selected")).map(ta)),s=new Set(e.filter(ei("visible")).map(ta));i.selectObjects(Array.from(xyi(s,r)),{exclusive:!0})},predicate:()=>e.some(xs(aa("selected"),ei("visible")))&&e.some(xs(ei("selected"),ei("visible")))},{name:"showAll",get group(){return t.groupPositions.visibility},position:1,get label(){return t.$t("context_menu.show_all")},get picto(){return o.get(this.name)},execute:()=>i.showObjects(e.filter(aa("visible")).map(ta)),predicate:()=>e.some(aa("visible"))},{name:"hide",get group(){return t.groupPositions.visibility},position:2,get label(){return t.$t("context_menu.hide")},get picto(){return o.get(this.name)},objectsToHide:null,execute(){const r=this.objectsToHide.filter(ei("selected"));r.length>0&&i.deselectObjects(r.map(ta)),i.hideObjects(this.objectsToHide.map(ta))},predicate(){return this.objectsToHide=e.filter(xs(ei("selected"),ei("visible"))),this.objectsToHide.length>0}},{name:"hideAll",get group(){return t.groupPositions.visibility},position:3,get label(){return t.$t("context_menu.hide_all")},execute:()=>{const r=e.filter(ei("visible"));r.some(ei("selected"))&&i.deselectObjects(r.filter(ei("selected")).map(ta)),i.hideObjects(r.map(ta))},predicate:()=>e.some(ei("visible"))}].filter(r=>r.predicate()),Iyi={components:{LiWrapper:Cyi},inject:["$viewer"],data(){return{defaultPrevented:!1,displayed:!1,top:null,bottom:null,left:null,width:200,nextCommandId:1,currentCommands:[],contextCommands:[],registeredCommands:[],groupPositions:{select:10,visibility:20},asyncPredicateRunning:!1}},computed:{position(){return{top:this.top?this.top+"px":"unset",bottom:this.bottom?this.bottom+"px":"unset",left:this.left+"px",width:this.width+"px"}}},watch:{displayed(t){t?document.addEventListener("keydown",this.onKeyDown):document.removeEventListener("keydown",this.onKeyDown)}},created(){this.$viewer.contextMenu=this,this.asyncPredicates=new Set},methods:{onKeyDown(t){t.key==="Escape"&&this.away()},setPosition(t){const e=(document.fullscreenElement?document.fullscreenElement:this.$parent.$el).getBoundingClientRect();this.left=t.clientX-e.left,this.top=t.clientY-e.top,this.left+this.width>e.width&&(this.left=this.left-this.width),t.clientY>e.top+e.height/2?(this.bottom=e.height-this.top,this.top=null):this.bottom=null},typeCheckCommand(t={}){let e=null;if((!t.execute||typeof t.execute!="function")&!t.component&&(e="Cannot register context menu command. A command must have an execute function or a component property."),t.label||(e="Cannot register context menu command. A command must have a label."),e)throw console.error(e),new Error(e);return t.id=this.nextCommandId++,t},open(t){this.currentCommands=[],this.setPosition(t),this.originEvent=t,t.preventDefault(),this.setCurrentCommands(),this.groupCurrentCommands(),this.defaultPrevented=!1,this.displayed=!0,document.fullscreenElement?(this.$el.parentElement.removeChild(this.$el),this.adoptiveParent=document.fullscreenElement,this.adoptiveParent.appendChild(this.$el)):this.adoptiveParent&&this.adoptiveParent!==this.$viewer.globalContext.el&&(this.adoptiveParent.removeChild(this.$el),this.$viewer.globalContext.el.appendChild(this.$el),this.adoptiveParent=null)},setCurrentCommands(){this.asyncPredicates.clear(),this.asyncPredicateRunning=!1,this.defaultPrevented||this.registeredCommands.forEach(async t=>{if(typeof t.predicate=="function"){const e=t.predicate(this.$viewer.globalContext.activeLocalContext);if(e===!0)this.currentCommands.push(t);else if(typeof e?.then=="function"){this.asyncPredicates.add(e),this.asyncPredicateRunning=!0;const i=await e;this.asyncPredicates.has(e)&&(this.asyncPredicates.delete(e),this.asyncPredicateRunning=this.asyncPredicates.size>0,i===!0&&this.currentCommands.push(t))}}else this.currentCommands.push(t)}),this.currentCommands.push(...this.contextCommands),this.contextCommands=[]},getDefaultCommands({objects:t=[],state:e=this.$viewer.state,context:i=null}){const o=new Map;return i&&this.$viewer.shortcutManager.getShortcuts(i).forEach(r=>o.set(r.name,r.key)),kyi({contextMenu:this,objects:t,state:e,pictos:o})},executeCommand(t){if(t.execute&&(t.execute(this.originEvent),this.displayed=!1),t.component&&!t.menu)throw new Error("Command with component property must have a `menu` property")},away(){this.displayed=!1},groupCurrentCommands(){const t=new Map;this.currentCommands.forEach(i=>{(i.group===null||i.group===void 0)&&(i.group=0),t.has(i.group)?t.get(i.group).push(i):t.set(i.group,[i])}),t.forEach(i=>i.sort((o,r)=>(o.position=o.position||0,r.position=r.position||0,o.position-r.position)));const e=[...t.keys()].sort((i,o)=>i-o).map(i=>t.get(i)).flat();this.currentCommands=e},isGroupIntersection(t){if(t===0)return!1;const e=this.currentCommands[t-1],i=this.currentCommands[t];return e.group<i.group},registerContextCommand(t){const e=this.typeCheckCommand(t);return this.contextCommands.push(e),t.id},registerCommand(t){const e=this.typeCheckCommand(t);return this.registeredCommands.push(e),t.id},unregisterCommand(t){return this.registeredCommands.find(e=>e.id===t)?(this.registeredCommands=this.registeredCommands.filter(e=>e.id!==t),!0):!1},preventDefault(){this.defaultPrevented=!0}}},Eyi={key:0,class:"separator"},Dyi={class:"menu-text"},Pyi={key:1,class:"menu-picto"},Byi={key:0,class:"context-menu__spinner"};function Syi(t,e,i,o,r,s){const n=D("BIMDataIconChevron"),a=D("LiWrapper"),l=D("BIMDataSpinner"),c=Jt("click-away");return r.displayed&&(r.currentCommands.length||r.asyncPredicateRunning)?it((k(),R("ul",{key:0,class:"bimdata-list context-menu",style:X(s.position)},[(k(!0),R(Ke,null,At(r.currentCommands,(d,u)=>(k(),_(a,{key:d.label,class:"context-menu__element",onClick:h=>s.executeCommand(d)},{default:z(()=>[s.isGroupIntersection(u)?(k(),R("div",Eyi)):W("",!0),w("div",Dyi,H(d.label),1),!d.component&&d.picto?(k(),R("span",Pyi,H(d.picto),1)):d.component?(k(),_(n,{key:2,size:"xxs",class:"fill-primary"})):W("",!0)]),_:2},1032,["onClick"]))),128)),r.asyncPredicateRunning?(k(),R("li",Byi,[S(l)])):W("",!0)],4)),[[c,s.away]]):W("",!0)}const Lyi=F(Iyi,[["render",Syi],["__scopeId","data-v-5b87d4a3"]]),Tyi={name:"ViewerHeader",inject:["$viewer"],props:{visible:{type:Boolean,default:!0}},setup(){const t=nt("$viewer"),e=zr(new Map),i=r=>{if(!r.name)throw new TypeError("[Viewer Header] Content must have a name");if(e.has(r.name))throw new Error(`[Viewer Header] Content with name ${r.name} already exists`);e.set(r.name,r)},o=r=>e.has(r)?(e.delete(r),!0):!1;return{logo:t.uiSettings.bimdataLogo!==!1,version:t.uiSettings.version!==!1?t.version:null,headerContent:e,headerRightContentComponents:Ve(()=>Array.from(e.values()).filter(r=>r.position==="right").sort((r,s)=>r.order-s.order).map(r=>r.component)),headerLeftContentComponents:Ve(()=>Array.from(e.values()).filter(r=>r.position==="left").sort((r,s)=>r.order-s.order).map(r=>r.component)),addContent:i,removeContent:o}}},jyi={class:"viewer-header"},Nyi={class:"viewer-header__content"},Ryi={class:"viewer-header__content__left"},Oyi={class:"viewer-header__content__right"},zyi={key:0,class:"m-l-6 flex items-center"},Fyi={key:1,class:"viewer-header__version"};function Uyi(t,e,i,o,r,s){const n=D("BIMDataIllustration");return it((k(),R("div",jyi,[w("div",Nyi,[w("div",Ryi,[(k(!0),R(Ke,null,At(o.headerLeftContentComponents,a=>(k(),_(Yi(a),{key:a.name}))),128))]),w("div",Oyi,[(k(!0),R(Ke,null,At(o.headerRightContentComponents,a=>(k(),_(Yi(a),{key:a.name}))),128))])]),o.logo||o.version?(k(),R("div",zyi,[o.logo?(k(),_(n,{key:0,name:"logo",width:"30px",height:"30px"})):W("",!0),o.version?(k(),R("div",Fyi,H(o.version),1)):W("",!0)])):W("",!0)],512)),[[Dt,i.visible]])}const Vyi=F(Tyi,[["render",Uyi],["__scopeId","data-v-5c9ea6b6"]]),Hyi={emits:["resize"],setup(t,{emit:e}){return{onResizerMousedown:i=>{i.preventDefault();let o=i.clientX;const r=n=>{n.preventDefault();const a=n.clientX-o;o=n.clientX,e("resize",a)},s=n=>{n.preventDefault(),window.removeEventListener("mousemove",r),window.removeEventListener("mouseup",s)};window.addEventListener("mousemove",r),window.addEventListener("mouseup",s)}}}},Qyi=t=>(Ti("data-v-79a3b3af"),t=t(),ji(),t),_yi={class:"bimdata-separator"},qyi=Qyi(()=>w("div",{class:"bimdata-separator__line"},null,-1));function Gyi(t,e,i,o,r,s){return k(),R("div",_yi,[qyi,w("div",{class:"bimdata-separator__resizer",onMousedown:e[0]||(e[0]=(...n)=>o.onResizerMousedown&&o.onResizerMousedown(...n))},null,32)])}const Kyi=F(Hyi,[["render",Gyi],["__scopeId","data-v-79a3b3af"]]),Yyi={components:{Separator:Kyi},props:{position:{type:String,required:!0,validator(t){return["left","right"].includes(t)}},sidePanel:{type:Object,required:!0,validator(t){if(t.width&&(typeof t.width!="number"||t.width<0))return console.error(`[GlobalSidePanel] sidePanel.width must be a strictly positive number, received ${typeof t.width}`),!1;const e=typeof t?.component=="object";return e||console.error("[GlobalSidePanel] sidePanel must have a component property"),e}}},setup(t){const e=pe(null),i=pe(t.sidePanel.width??400),o=(r,s=1)=>{const n=i.value+r*s;i.value=Math.max(0,n)};return st(()=>t.sidePanel,()=>{Object.defineProperty(t.sidePanel,"width",{get(){return i.value},set(r){if(typeof r!="number"||r<=0){console.error(`[GlobalSidePanel] sidePanel.width must be a strictly positive number, received ${typeof r}`);return}i.value=r}}),Object.defineProperty(t.sidePanel,"componentInstance",{get(){return e.value},enumerable:!0})},{immediate:!0}),{componentInstance:e,width:i,onResize:o}}},Zyi={class:"bimdata-global-side-panel__component"};function Jyi(t,e,i,o,r,s){const n=D("Separator");return k(),R("div",{class:"bimdata-global-side-panel",style:X(`width: ${o.width}px`)},[i.sidePanel.resizable&&i.position==="right"?(k(),_(n,{key:0,onResize:e[0]||(e[0]=a=>o.onResize(a,-1))})):W("",!0),w("div",Zyi,[(k(),_(Yi(i.sidePanel.component),{ref:"componentInstance"},null,512))]),i.sidePanel.resizable&&i.position==="left"?(k(),_(n,{key:1,onResize:e[1]||(e[1]=a=>o.onResize(a))})):W("",!0)],4)}const Wyi=F(Yyi,[["render",Jyi],["__scopeId","data-v-82d0d4cb"]]),Xyi={name:"BimdataViewer",components:{ContextMenu:Lyi,ViewerHeader:Vyi,ModalManager:Ute,GlobalSidePanel:Wyi},setup(){const t=nt("$viewer"),{globalContext:e,shortcutManager:i}=t;Li(()=>{i&&i.destroy(),e.hub.clear()}),yi(()=>{t.pluginManager.runPluginsScripts(t)});const o=Ve(()=>{var A;return t.uiSettings.bimdataLogo!==!1&&(e.localContexts.length!==1||((A=e.localContexts[0].window)==null?void 0:A.logoAndVersion))}),r=Ve(()=>{var A;return t.uiSettings.version!==!1&&(e.localContexts.length!==1||(A=e.localContexts[0].window)!=null&&A.logoAndVersion)?t.version:null}),s=Ve(()=>e.leftSidePanel),n=Ve(()=>e.rightSidePanel),a=Ve(()=>{var A;const f=t.uiSettings.header!==!1,p=e.localContexts.length===1&&((A=e.localContexts[0].window)==null?void 0:A.header)===!1,g=!!(s.value||n.value);return f&&(!p||g)}),l=t.uiSettings.contextMenu!==!1,c=pe(null);function d(A){l&&c.value.open(A)}function u(){t.shortcutManager.active=!0}function h(){t.shortcutManager.active=!1}return{Layout:t.layout.areas.component,onContextMenu:d,onMouseenter:u,onMouseleave:h,isHeaderVisible:a,viewerTemplateRef:e.templateRef,modalManagerTemplateRef:e.modalManagerTemplateRef,headerTemplateRef:e.headerTemplateRef,contextMenuTemplateRef:c,contextMenuEnabled:l,bimdataLogoOnSingleWindow:o,viewerVersionOnSingleWindow:r,version:t.version,loading:Ve(()=>e.loading),spinner:Ve(()=>e.spinner),leftSidePanel:s,rightSidePanel:n}}},$yi={key:1,class:"global-spinner",style:{"z-index":"3"}},e8i={key:2,class:"viewer__logo"},t8i={key:1,class:"version m-t-6"};function i8i(t,e,i,o,r,s){const n=D("ModalManager"),a=D("ContextMenu"),l=D("ViewerHeader"),c=D("GlobalSidePanel"),d=D("BIMDataSpinner"),u=D("BIMDataIllustration");return k(),R("div",{id:"bimdata-viewer",ref:"viewerTemplateRef",class:"bimdata-viewer bimdata-scrollbar",onContextmenu:e[0]||(e[0]=(...h)=>o.onContextMenu&&o.onContextMenu(...h)),onMouseenter:e[1]||(e[1]=(...h)=>o.onMouseenter&&o.onMouseenter(...h)),onMouseleave:e[2]||(e[2]=(...h)=>o.onMouseleave&&o.onMouseleave(...h))},[S(n,{ref:"modalManagerTemplateRef",global:""},null,512),o.contextMenuEnabled?(k(),_(a,{key:0,ref:"contextMenuTemplateRef"},null,512)):W("",!0),S(l,{ref:"headerTemplateRef",visible:o.isHeaderVisible},null,8,["visible"]),w("div",{class:"bimdata-viewer__content",style:X(o.isHeaderVisible?"height: calc(100% - var(--bimdata-viewer-header-height, 40px))":"height: 100%")},[o.leftSidePanel?(k(),_(c,{key:0,"side-panel":o.leftSidePanel,position:"left"},null,8,["side-panel"])):W("",!0),(k(),_(Yi(o.Layout),{style:"height: 100%; flex-grow: 1;"})),o.rightSidePanel?(k(),_(c,{key:1,"side-panel":o.rightSidePanel,position:"right"},null,8,["side-panel"])):W("",!0)],4),o.loading?(k(),R("div",$yi,[o.spinner&&o.spinner.component?(k(),_(Yi(o.spinner.component),da(Vr({key:0},o.spinner.props)),null,16)):(k(),_(d,{key:1,size:"40px",border:"5px"}))])):W("",!0),!o.isHeaderVisible&&(o.bimdataLogoOnSingleWindow||o.viewerVersionOnSingleWindow)?(k(),R("div",e8i,[o.bimdataLogoOnSingleWindow?(k(),_(u,{key:0,name:"logo"})):W("",!0),o.viewerVersionOnSingleWindow?(k(),R("div",t8i,H(o.version),1)):W("",!0)])):W("",!0)],544)}const o8i=F(Xyi,[["render",i8i]]),r8i=["src"],n8i={class:"bimdata-models__header"},s8i={key:0,class:"bimdata-models__header__loader"},a8i={class:"bimdata-models__header__picto"},l8i={class:"bimdata-models__header__name"},c8i={key:0,class:"bimdata-models__header__name--empty"},d8i={key:1,class:"bimdata-models__header__name--empty"},u8i={key:3},h8i=["onMousemove","onClick"],qte={__name:"Models",props:{preview:{type:Boolean,default:!1},windowPositioning:{type:Boolean,default:!0},customFilter:{type:Function,default:null},width:{type:String,default:"350px"}},setup(t){const e=t,i=nt("$viewer"),o=pe(),r=pe(0),s=pe(0),n=pe(),a=Ui([]),l=pe(!1),c=Ve(()=>i.localContext.loadedModels),d=Ve(()=>i.localContext.loadedModelIds),u=Ve(()=>i.localContext.loadingModelIds),h=Ve(()=>i.localContext.multiModel),A=Ve(()=>(e.customFilter?a.value.filter(e.customFilter):a.value).map(x=>c.value.find(I=>{var E;return((E=I.document)==null?void 0:E.head_id)!=null&&I.document.head_id===x.document.id})??x)),f=x=>d.value.includes(x),p=x=>u.value.includes(x),g=Ve(()=>{var x;const{x:I,y:E}=((x=n.value)==null?void 0:x.getBoundingClientRect())??{x:0,y:0};return`top:${s.value-E}px; left:${r.value-I}px;`}),m=x=>{!h.value&&f(x.id)||u.value.length>0||(i.localContext.loadedModelIds.includes(x.id)?i.localContext.unloadModels([x.id]):i.localContext.loadModels([x.id]))},M=x=>{switch(x){case"C":return"success";case"E":return"failed";case"P":case"I":return"sandglass"}},y=(x,I)=>{x!=null&&x.viewer_360_file&&(r.value=I.clientX,s.value=I.clientY),o.value=x?.viewer_360_file},b=async x=>{l.value=!0;try{return(await i.api.apiClient.modelApi.getModels(i.api.cloudId,i.api.projectId,void 0,void 0,x)).filter(I=>i.state.models.some(E=>E.archived)||!I.archived).sort(Rl("updated_at",!1))}catch(I){console.error("[Models] Cannot get project models. Error: ",I)}finally{l.value=!1}return[]},C=x=>{var I;return((I=x.children)==null?void 0:I.some(E=>f(E.id)))??!1};return b(i.localContext.modelTypes).then(x=>{a.value=x}),(x,I)=>{const E=D("BIMDataSpinner"),P=D("BIMDataIconModel3D"),N=D("BIMDataTextbox"),L=D("BIMDataCheckbox"),j=D("BIMDataRadio"),O=D("BIMDataIcon"),V=D("BIMDataDropdownList");return k(),R("div",{ref_key:"templateRef",ref:n,class:$(["bimdata-models",{"bimdata-models--window-positioning":t.windowPositioning}])},[o.value?(k(),R("div",{key:0,class:"bimdata-models__preview",style:X(g.value)},[w("img",{src:o.value},null,8,r8i)],4)):W("",!0),S(V,{style:X(`--bimdata-models-width: ${t.width};`),width:t.width,list:A.value,"element-key":"id","per-page":40,loading:l.value,class:"bimdata-models__list",disabled:A.value.length===0,onElementClick:m},{header:z(({isOpen:Q})=>[w("div",n8i,[l.value||u.value.length>0?(k(),R("div",s8i,[S(E)])):(k(),R(Ke,{key:1},[w("div",a8i,[S(P)]),w("div",{class:$(["bimdata-models__header__number bimdata-info-length",{"bimdata-models__header__number--empty":d.value.length===0}])},[w("span",null,H(d.value.length),1)],2),w("div",l8i,[A.value.length===0?(k(),R("span",c8i,H(x.$t("model.no_model")),1)):d.value.length===0?(k(),R("span",d8i,H(x.$t("model.no_loaded_model")),1)):d.value.length===1?(k(),_(N,{key:2,text:c.value[0].name,tooltip:!Q},null,8,["text","tooltip"])):d.value.length>1?(k(),R("span",u8i,H(x.$t("model.selected_models")),1)):W("",!0)])],64))])]),element:z(({element:Q,close:U})=>[w("div",{class:"bimdata-models__model",onMousemove:Y=>t.preview&&y(Q,Y),onMouseout:I[0]||(I[0]=Y=>t.preview&&y()),onClick:()=>{!h.value&&!f(Q.id)&&U()}},[h.value?(k(),_(L,{key:0,"model-value":f(Q.id)||C(Q),disabled:Q.status!=="C"||u.value.length>0},null,8,["model-value","disabled"])):(k(),_(j,{key:1,"model-value":f(Q.id)||C(Q),disabled:Q.status!=="C"||u.value.length>0},null,8,["model-value","disabled"])),S(O,{margin:"0 calc(var(--spacing-unit) / 2)",name:M(Q.status),size:"xs",class:$({"fill-success":Q.status==="C","fill-high":Q.status==="E"})},null,8,["name","class"]),S(N,{class:$({"bimdata-models__model__name":!0,"bimdata-models__model__name--disabled":Q.status!=="C"||u.value.length>0}),text:Q.name,width:`calc(100% -
|
|
1628
1628
|
${h.value?13:23}px - 2 * 6px - 16px)`},null,8,["class","text","width"]),Q.document&&!Q.document.is_head_version?(k(),_(O,{key:2,name:"versioning",fill:"",color:"default",size:"xs",margin:"0 0 0 6px"})):W("",!0)],40,h8i),p(Q.id)?(k(),_(E,{key:0,class:"bimdata-models__model__spinner"})):W("",!0)]),_:1},8,["style","width","list","loading","disabled"])],2)}}},p8i={data(){return{shown:!1}},mounted(){setTimeout(()=>{this.shown=!0},500)}};function A8i(t,e,i,o,r,s){const n=D("BIMDataIllustration");return k(),R("div",{class:"bimdata__no-model",style:X({"--no-model--opacity":r.shown?1:0})},[S(n,{name:"emptyViewer",x:"90",y:"90"}),w("span",null,H(t.$t("model.select_model")),1)],4)}const Gte=F(p8i,[["render",A8i],["__scopeId","data-v-5ffd9bc0"]]);window.BIMDataViewerVue=sL;class f8i{constructor(e={}){var i,o;const{api:r={},ui:s}=e;this.uiCfg=s,r.apiUrl||(console.info("[BIMData Viewer] INFO - Viewer config - `apiUrl` not set, use 'https://api.bimdata.io' by default."),r.apiUrl="https://api.bimdata.io"),r.archiveUrl||(console.info("[BIMData Viewer] INFO - Viewer config - `archiveUrl` not set, use 'https://archive.bimdata.io' by default."),r.archiveUrl="https://archive.bimdata.io"),r.pdfBackendUrl||(console.info("[BIMData Viewer] INFO - Viewer config - `pdfBackendUrl` not set, use 'https://pdf-backend.bimdata.io' by default."),r.pdfBackendUrl="https://pdf-backend.bimdata.io"),r.ifcIds&&(console.warn("[BIMData Viewer] DEPRECATED - Viewer config - please use the `modelIds` property instead of `ifcIds`."),r.modelIds===void 0&&(r.modelIds=r.ifcIds)),r.modelIds||(r.modelIds=[]),(i=r.offline)!=null&&i.dataFile&&(r.offline.data=r.offline.dataFile),this.$viewer=new O5i(e),(o=r.offline)!=null&&o.enabled?this.$viewer.api.enableOfflineMode(r.offline.data,r.offline.options).then(()=>this.state.loadModels(r.modelIds)):(this.$viewer.globalContext.loadingProcessStart(),this.state.loadModels(r.modelIds).finally(()=>this.$viewer.globalContext.loadingProcessEnd())),this.vueApp=null}get state(){return this.$viewer.state}get api(){return this.$viewer.api}async mount(e,i="3d"){var o;const{$viewer:r}=this;await r.api.ready;try{const u=await r.api.apiClient.collaborationApi.checkProjectAccess(r.api.cloudId,r.api.projectId);r.api.permissions=_te(u)}catch{r.api.permissions=_te()}const s=this.api.accessToken,{i18n:n}=r;n.registerTranslations(r.pluginManager.pluginTranslations),r.layout.apply(i);const a={i18n:n.i18nVuePlugin,data(){return{accessToken:s}},render(){return po(o8i,{style:"height: 100%"})}},l=gw(a).use(n.i18nVuePlugin).use(Myi()).use(yyi({i18nPlugin:n.i18nVuePlugin})).use(X5i({apiClient:r.api.apiClient,i18nPlugin:n.i18nVuePlugin}));l.provide("$viewer",r),l.component("BIMDataModelLoader",qte),l.component("BIMDataNoModelWindowPlaceHolder",Gte),l.component("BIMDataStoreySelector",mM),l.component("ModelsLoader",qte),l.component("NoModelWindowPlaceHolder",Gte);const c=e instanceof HTMLElement?e:document.querySelector(e);c&&(c.style.height="100%");const d=l.mount(e);return d.$viewer=r,z5i(d.$el,(o=this.uiCfg)==null?void 0:o.style),typeof window<"u"&&(window.bimdataViewer=d),this.vueApp=l,d}destroy(){var e;(e=this.vueApp)==null||e.unmount()}setLocale(e){if(!CL.includes(e))throw new Error(`Viewer available locales are ${CL.join(", ")}.`);this.$viewer.i18n.locale=e}registerPlugin(e){this.$viewer.registerPlugin(e)}registerWindow(e){return this.$viewer.windowManager.registerWindow(e)}unregisterWindow(e){return this.$viewer.windowManager.unregisterWindow(e)}setAccessToken(e){this.api.accessToken=e}async loadModels(e){this.$viewer.globalContext.loadingProcessStart();const i=await this.state.loadModels(e);return this.$viewer.globalContext.loadingProcessEnd(),i}loadIfcs(e){return console.warn("[BIMData Viewer] DEPRECATED - Viewer - please use the loadModels method instead of loadIfcs."),this.loadModels(e)}}const Kte=(t={})=>new f8i(t);window.makeBIMDataViewer=Kte;export{Kte as default};
|