@bimdata/viewer 2.17.0-beta.1 → 2.17.0-beta.2
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.
|
@@ -41,7 +41,7 @@
|
|
|
41
41
|
--dashoffset-to: ${t.dashOffsetTo};`),onAnimationiteration:e[0]||(e[0]=s=>i.$emit("lap",(t.delay*t.laps-s.elapsedTime)/t.delay)),onAnimationend:e[1]||(e[1]=s=>i.$emit("stop"))},null,44,Lqe)],8,Dqe)),C("div",{class:"bimdata-pie-spinner__inside",style:le({width:t.width+"px",height:t.width+"px"})},[pt(i.$slots,"default",{},void 0,!0)],4)])}const Oqe=V(Rqe,[["render",Fqe],["__scopeId","data-v-70da4628"]]),Nqe={model:{prop:"modelValue",event:"update:modelValue"},props:{big:{type:Boolean,default:!1},text:{type:String,default:null},value:{default:!0},modelValue:{},disabled:{type:Boolean,default:!1}},emits:["update:modelValue"],computed:{checked(){return this.modelValue===this.value}},methods:{onClick(){this.$emit("update:modelValue",this.value)}}},Uqe=["disabled"],Vqe={class:"bimdata-radio__text"};function Hqe(i,e,t,n,o,r){return E(),L("button",{type:"button",class:ce(["bimdata-radio",{disabled:t.disabled,"bimdata-radio--checked":r.checked,"bimdata-radio--big":t.big}]),disabled:t.disabled,onClick:e[0]||(e[0]=(...s)=>r.onClick&&r.onClick(...s))},[e[1]||(e[1]=C("div",{class:"bimdata-radio__btn"},[C("div",{class:"bimdata-radio__background"}),C("div",{class:"bimdata-radio__circle"}),C("div",{class:"bimdata-radio__dot"})],-1)),C("div",Vqe,[pt(i.$slots,"default",{},()=>[Ke(G(t.text),1)],!0)])],10,Uqe)}const zqe=V(Nqe,[["render",Hqe],["__scopeId","data-v-91eb0639"]]),jqe={props:{itemWidth:{type:String,default:"100px"},rowGap:{type:String,default:"12px"},columnGap:{type:String,default:"12px"},isRepeatFit:{type:Boolean,default:!1}}};function Gqe(i,e,t,n,o,r){return E(),L("div",{class:"bimdata-responsive-grid",style:le({gridTemplateColumns:t.isRepeatFit?`repeat(auto-fit, minmax(${t.itemWidth}, 1fr))`:`repeat(auto-fill, minmax(${t.itemWidth}, 1fr))`,rowGap:t.rowGap,columnGap:t.columnGap})},[pt(i.$slots,"default",{},void 0,!0)],4)}const Qqe=V(jqe,[["render",Gqe],["__scopeId","data-v-b626b0fb"]]),qqe={components:{BIMDataIconClose:b6,BIMDataButton:oo},props:{reverse:{type:Boolean,default:!1}},emits:["confirm-delete","cancel-delete"]},Kqe={class:"safe-zone-inline"};function Jqe(i,e,t,n,o,r){const s=P("BIMDataButton"),a=P("BIMDataIconClose");return E(),L("div",Kqe,[k(s,{class:"safe-zone-inline__btn-delete",color:"high",fill:"",radius:"",onClick:e[0]||(e[0]=l=>i.$emit("confirm-delete"))},{default:U(()=>[pt(i.$slots,"content",{},()=>[e[2]||(e[2]=Ke("Delete",-1))],!0)]),_:3}),k(s,{class:"safe-zone-inline__btn-close",style:le({width:"15px",order:t.reverse?-1:0}),width:"0px",radius:"",onClick:e[1]||(e[1]=l=>i.$emit("cancel-delete"))},{default:U(()=>[k(a,{size:"xxs",color:"granite"})]),_:1},8,["style"])])}const Wqe=V(qqe,[["render",Jqe],["__scopeId","data-v-b2effc6d"]]),Zqe={components:{BIMDataIconClose:b6,BIMDataIconSearch:GM,BIMDataButton:oo},directives:{focus:{inserted:function(i,{value:e}){e&&i.focus()}},clickaway:tl},model:{prop:"modelValue",event:"update:modelValue"},props:{modelValue:{type:String},placeholder:{type:String,default:""},width:{type:[Number,String],default:"150px"},height:{type:[Number,String],default:"32px"},autofocus:{type:Boolean,default:!1},clear:{type:Boolean,default:!1},radius:{type:Boolean,default:!1},square:{type:Boolean,default:!1},color:{type:String,default:"default",validator:i=>NM.includes(i)},autocomplete:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1}},emits:["update:modelValue","enter","clear"],data(){return{inputVisible:!1,focused:!1}},computed:{classes(){return{"bimdata-search-bar__radius":this.radius,"bimdata-search-bar__square":this.square,[`bimdata-search-bar__${this.color}`]:this.color}}},methods:{away(){this.inputVisible=!1},focus(){this.$refs.input&&this.$refs.input.focus()},blur(){this.$refs.input&&this.$refs.input.blur()},clickClear(){this.$emit("update:modelValue",""),this.$emit("clear")}}},Yqe={class:"bimdata-search-icon"},Xqe=["value","placeholder","autocomplete","disabled"];function $qe(i,e,t,n,o,r){const s=P("BIMDataIconSearch"),a=P("BIMDataIconClose"),l=P("BIMDataButton"),c=li("focus"),u=li("clickaway");return yt((E(),L("div",{class:ce(["bimdata-search-bar",{focus:o.focused,disabled:t.disabled,...r.classes}]),style:le({width:t.width,height:t.height})},[C("span",Yqe,[k(s,{size:"xxs"})]),yt(C("input",{ref:"input",value:t.modelValue,onFocus:e[0]||(e[0]=d=>o.focused=!0),onBlur:e[1]||(e[1]=d=>o.focused=!1),onInput:e[2]||(e[2]=d=>i.$emit("update:modelValue",d.target.value)),placeholder:t.placeholder,onKeyup:e[3]||(e[3]=Ut(d=>i.$emit("enter",d.target.value),["enter"])),autocomplete:t.autocomplete?"on":"off",disabled:t.disabled},null,40,Xqe),[[c,t.autofocus]]),t.clear&&t.modelValue!==""?(E(),K(l,{key:0,width:"25px",onClick:e[4]||(e[4]=d=>r.clickClear())},{default:U(()=>[k(a,{size:"xxs"})]),_:1})):te("",!0)],6)),[[u,r.away]])}const eKe=V(Zqe,[["render",$qe],["__scopeId","data-v-c3818791"]]),tKe={components:{BIMDataIconDefault:dG,BIMDataIconSearch:GM,BIMDataTextbox:x6},directives:{clickaway:tl},props:{items:{type:Array,required:!0,default:()=>[]},isAllResultatsBtnActive:{type:Boolean,required:!1,default:!0},perPage:{type:Number,default:10,validator:i=>i>0},loading:{type:Boolean,default:!1},placeholder:{type:String,default:""},autoclear:{type:Boolean,default:!0}},data(){return{isOpen:!1,search:"",current:0}},computed:{results(){const i=["title","text","logo"];let e;return typeof this.search=="object"?e=this.search.title.toLowerCase()||this.search.text.toLowerCase():e=this.search.toLowerCase(),this.items.filter(t=>i.some(n=>typeof t[n]=="string"?t[n].toLowerCase().includes(e):!1)).slice(0,this.perPage)},openResults(){return this.search!==""&&this.results.length!==0&&this.isOpen===!0}},methods:{onChange(){this.$emit("input",this.search),this.isOpen===!1&&(this.isOpen=!0,this.current=-1)},onElementClick(i){this.$emit("item-click",i),this.isOpen=!1,this.autoclear&&(this.search="")},onAllResultatsBtnClick(){this.$emit("all-results-click",{results:this.results,search:this.search}),this.isOpen=!1,this.autoclear&&(this.search="")},onEnter(){this.$emit("enter",this.results[this.current].id),this.isOpen=!1,this.current=-1,this.autoclear&&(this.search="")},onArrowUp(){this.current>=1?this.current=this.current-1:this.current=this.results.length-1},onArrowDown(){this.current<this.results.length-1?this.current=this.current+1:this.current=0},focus(){this.isOpen=!0},away(){this.isOpen=!1}}},iKe={class:"bimdata-search-autocomplete"},nKe={class:"bimdata-search-autocomplete__input flex items-center"},oKe={class:"bimdata-search-icon flex"},sKe=["placeholder"],rKe={class:"bimdata-list p-y-6"},aKe={key:0,class:"loading"},lKe=["onClick"],cKe={class:"bimdata-search-autocomplete__dropdown__left m-r-12"},uKe=["src"],dKe={class:"bimdata-search-autocomplete__dropdown__right flex flex-col"},hKe={key:0,class:"title"},pKe={key:1,class:"text"};function fKe(i,e,t,n,o,r){const s=P("BIMDataIconSearch"),a=P("BIMDataIconDefault"),l=P("BIMDataTextbox"),c=li("clickaway");return yt((E(),L("div",iKe,[C("div",nKe,[C("span",oKe,[k(s,{fill:"",color:"default",size:"xxs"})]),yt(C("input",{class:"form-control p-l-36 p-r-12",type:"text","onUpdate:modelValue":e[0]||(e[0]=u=>o.search=u),placeholder:t.placeholder,onKeydown:[e[1]||(e[1]=Ut((...u)=>r.onEnter&&r.onEnter(...u),["enter"])),e[2]||(e[2]=Ut((...u)=>r.onArrowDown&&r.onArrowDown(...u),["down"])),e[3]||(e[3]=Ut((...u)=>r.onArrowUp&&r.onArrowUp(...u),["up"]))],onInput:e[4]||(e[4]=(...u)=>r.onChange&&r.onChange(...u)),onFocus:e[5]||(e[5]=(...u)=>r.focus&&r.focus(...u))},null,40,sKe),[[Fd,o.search]])]),C("div",{class:ce(["bimdata-search-autocomplete__dropdown",{open:r.openResults}])},[C("ul",rKe,[t.loading?(E(),L("li",aKe,[pt(i.$slots,"loading",{},()=>[e[7]||(e[7]=C("p",{class:"text-center"},"loading results...",-1))],!0)])):(E(!0),L($e,{key:1},Mt(r.results,(u,d)=>(E(),L("li",{key:d,class:ce([{active:d===o.current},"p-y-6 p-x-12 flex items-center"]),onClick:h=>r.onElementClick(u)},[pt(i.$slots,"left",{result:u},()=>[C("div",cKe,[u&&u.logo?(E(),L("img",{key:0,class:"logo",src:u.logo},null,8,uKe)):pt(i.$slots,"logoPlaceholder",{key:1},()=>[k(a,{fill:"",color:"default"})],!0)])],!0),C("div",dKe,[u&&u.title?(E(),L("span",hKe,G(u.title),1)):te("",!0),u&&u.text?(E(),L("span",pKe,[k(l,{text:u.text,width:"260px",cutPosition:"end",tooltip:!1},null,8,["text"])])):te("",!0)])],10,lKe))),128))]),t.isAllResultatsBtnActive?(E(),L("div",{key:0,class:"bimdata-search-autocomplete__dropdown__button flex items-center justify-center",onClick:e[6]||(e[6]=(...u)=>r.onAllResultatsBtnClick&&r.onAllResultatsBtnClick(...u))},' See all results for "'+G(o.search)+'" ',1)):te("",!0)],2)])),[[c,r.away]])}const AKe=V(tKe,[["render",fKe],["__scopeId","data-v-b485ea22"]]),mKe={components:{BIMDataCheckbox:v6,BIMDataIconChevron:pa},directives:{clickaway:tl},model:{prop:"modelValue",event:"update:modelValue"},props:{width:{type:[String,Number]},label:{type:String,default:null},options:{type:Array,default:()=>[]},optionKey:{type:String},optionLabelKey:{type:String},modelValue:{type:Array},nullLabel:{type:String},disabled:{type:Boolean,default:!1},search:{type:Boolean,default:!1},searchPlaceholder:{type:String,default:"Search"},resetOnLeave:{type:Boolean,default:!1}},emits:["update:modelValue"],data(){return{isOpen:!1,searchText:""}},computed:{displayedValue(){return this.modelValue.map(this.optionLabel).join(", ")},filteredOptions(){if(this.searchText==="")return this.options;{const i=this.searchText.toLowerCase();return this.optionLabelKey?this.options.filter(e=>e[this.optionLabelKey].toLowerCase().includes(i)):this.optionKey?this.options.filter(e=>e.optionGroup||e[this.optionKey].toLowerCase().includes(i)):this.options.filter(e=>e.toLowerCase().includes(i))}}},methods:{toggle(){this.disabled||(this.isOpen=!this.isOpen)},optionValue(i){return this.optionKey&&i?i[this.optionKey]:i},optionLabel(i){return this.nullLabel&&i==null?this.nullLabel:this.optionLabelKey&&i?i[this.optionLabelKey]:this.optionKey&&i?i[this.optionKey]:i},isSelected(i){const e=this.optionValue(i);return this.modelValue.map(this.optionValue).includes(e)},isDisabled(i){return this.optionKey&&i&&i.disabled},isOptionGroup(i){return this.optionKey&&i&&i.optionGroup},onOptionClick(i){if(this.optionKey&&(i.disabled||i.optionGroup))return;let e;if(this.isSelected(i)){const t=this.optionValue(i);e=this.modelValue.filter(n=>this.optionValue(n)!==t)}else e=this.modelValue.concat(i);this.$emit("update:modelValue",e)},resetSearch(){this.clearSearchOnLeave&&(this.searchText="")},away(){this.isOpen=!1,this.resetSearch()}}},gKe={class:"bimdata-select__content"},yKe={class:"bimdata-select__content__label"},vKe={class:"bimdata-select__option-list"},wKe={key:1},CKe={class:"bimdata-list m-y-6"},bKe=["onClick"];function xKe(i,e,t,n,o,r){const s=P("BIMDataIconChevron"),a=P("BIMDataSearch"),l=P("BIMDataCheckbox"),c=li("clickaway");return yt((E(),L("div",{class:ce(["bimdata-select",{disabled:t.disabled,active:o.isOpen,"not-empty":t.modelValue.length>0}]),style:le({width:t.width})},[C("div",gKe,[C("div",{class:"bimdata-select__content__value",onClick:e[0]||(e[0]=(...u)=>r.toggle&&r.toggle(...u))},[C("span",null,G(r.displayedValue),1),k(s,{size:"xxs",rotate:o.isOpen?90:0},null,8,["rotate"])]),C("label",yKe,G(t.label),1),e[2]||(e[2]=C("span",{class:"bimdata-select__content__underline"},null,-1))]),k(mi,{name:"slide-fade-down"},{default:U(()=>[yt(C("div",vKe,[t.search?(E(),K(a,{key:0,width:"calc(100% - 12px)",color:"primary",radius:"",placeholder:t.searchPlaceholder,modelValue:o.searchText,"onUpdate:modelValue":e[1]||(e[1]=u=>o.searchText=u),class:"m-6"},null,8,["placeholder","modelValue"])):te("",!0),r.filteredOptions.length===0?(E(),L("div",wKe,[pt(i.$slots,"empty",{},void 0,!0)])):te("",!0),C("ul",CKe,[(E(!0),L($e,null,Mt(r.filteredOptions,(u,d)=>(E(),L("li",{class:ce(["bimdata-select__option-list__entry",{selected:r.isSelected(u),disabled:r.isDisabled(u),"option-group":r.isOptionGroup(u)}]),key:d,onClick:h=>r.onOptionClick(u)},[r.isOptionGroup(u)?(E(),L($e,{key:0},[Ke(G(r.optionLabel(u)),1)],64)):(E(),K(l,{key:1,modelValue:r.isSelected(u),disabled:r.isDisabled(u),text:r.optionLabel(u)},null,8,["modelValue","disabled","text"]))],10,bKe))),128))])],512),[[jt,!t.disabled&&o.isOpen]])]),_:3})],6)),[[c,r.away]])}const IG=V(mKe,[["render",xKe],["__scopeId","data-v-cfb01881"]]),MKe={components:{BIMDataIconChevron:pa},directives:{clickaway:tl},model:{prop:"modelValue",event:"update:modelValue"},props:{width:{type:[String,Number]},label:{type:String,default:null},options:{type:Array,default:()=>[]},optionKey:{type:String},optionLabelKey:{type:String},modelValue:{type:[String,Object]},nullValue:{type:Boolean,default:!1},nullLabel:{type:String},disabled:{type:Boolean,default:!1},search:{type:Boolean,default:!1},searchPlaceholder:{type:String,default:"Search"},clearSearchOnLeave:{type:Boolean,default:!1}},emits:["update:modelValue"],data(){return{isOpen:!1,searchText:""}},computed:{displayedValue(){return this.optionLabel(this.modelValue)},filteredOptions(){if(this.searchText==="")return this.options;{const i=this.searchText.toLowerCase();return this.optionLabelKey?this.options.filter(e=>e[this.optionLabelKey].toLowerCase().includes(i)):this.optionKey?this.options.filter(e=>e.optionGroup||e[this.optionKey].toLowerCase().includes(i)):this.options.filter(e=>e.toLowerCase().includes(i))}}},methods:{toggle(){this.disabled||(this.isOpen=!this.isOpen)},optionValue(i){return this.optionKey&&i?i[this.optionKey]:i},optionLabel(i){return this.nullLabel&&i==null?this.nullLabel:this.optionLabelKey&&i?i[this.optionLabelKey]:this.optionKey&&i?i[this.optionKey]:i},isSelected(i){const e=this.optionValue(i);return this.optionValue(this.modelValue)===e},isDisabled(i){return this.optionKey&&i&&i.disabled},isOptionGroup(i){return this.optionKey&&i&&i.optionGroup},resetSearch(){this.clearSearchOnLeave&&(this.searchText="")},onOptionClick(i){this.optionKey&&(i.disabled||i.optionGroup)||(this.$emit("update:modelValue",i),this.resetSearch(),this.isOpen=!1)},onNullValueClick(){this.$emit("update:modelValue",null),this.resetSearch(),this.isOpen=!1},away(){this.isOpen=!1,this.resetSearch()}}},EKe={class:"bimdata-select__content"},BKe={class:"bimdata-select__content__label"},IKe={class:"bimdata-select__option-list"},SKe={key:1},PKe={class:"bimdata-list m-y-6"},TKe=["onClick"];function kKe(i,e,t,n,o,r){const s=P("BIMDataIconChevron"),a=P("BIMDataSearch"),l=li("clickaway");return yt((E(),L("div",{class:ce(["bimdata-select",{disabled:t.disabled,active:o.isOpen,"not-empty":t.modelValue!==void 0&&t.modelValue!==null}]),style:le({width:t.width})},[C("div",EKe,[C("div",{class:"bimdata-select__content__value",onClick:e[0]||(e[0]=(...c)=>r.toggle&&r.toggle(...c))},[C("span",null,G(r.displayedValue),1),k(s,{size:"xxs",rotate:o.isOpen?90:0},null,8,["rotate"])]),C("label",BKe,G(t.label),1),e[3]||(e[3]=C("span",{class:"bimdata-select__content__underline"},null,-1))]),k(mi,{name:"slide-fade-down"},{default:U(()=>[yt(C("div",IKe,[t.search?(E(),K(a,{key:0,width:"calc(100% - 12px)",color:"primary",radius:"",placeholder:t.searchPlaceholder,modelValue:o.searchText,"onUpdate:modelValue":e[1]||(e[1]=c=>o.searchText=c),class:"m-6"},null,8,["placeholder","modelValue"])):te("",!0),r.filteredOptions.length===0?(E(),L("div",SKe,[pt(i.$slots,"empty",{},void 0,!0)])):te("",!0),C("ul",PKe,[t.nullValue?(E(),L("li",{key:0,class:"bimdata-select__option-list__entry",onClick:e[2]||(e[2]=c=>r.onNullValueClick())},G(t.nullLabel||"None"),1)):te("",!0),(E(!0),L($e,null,Mt(r.filteredOptions,(c,u)=>(E(),L("li",{class:ce(["bimdata-select__option-list__entry",{selected:r.isSelected(c),disabled:r.isDisabled(c),"option-group":r.isOptionGroup(c)}]),key:u,onClick:d=>r.onOptionClick(c)},G(r.optionLabel(c)),11,TKe))),128))])],512),[[jt,!t.disabled&&o.isOpen]])]),_:3})],6)),[[l,r.away]])}const SG=V(MKe,[["render",kKe],["__scopeId","data-v-53825b9f"]]),RKe={components:{BIMDataSelectMulti:IG,BIMDataSelectSingle:SG},model:{prop:"modelValue",event:"update:modelValue"},props:{width:{type:[String,Number],default:"100%"},label:{type:String,default:null},options:{type:Array,default:()=>[]},optionKey:{type:String},optionLabelKey:{type:String},modelValue:{type:[String,Object,Array]},multi:{type:Boolean,default:!1},nullValue:{type:Boolean,default:!1},nullLabel:{type:String},disabled:{type:Boolean,default:!1}},emits:["update:modelValue"],setup(i,{emit:e,slots:t}){return()=>vn(i.multi?IG:SG,{...i,"onUpdate:modelValue":n=>e("update:modelValue",n)},{empty:()=>t.empty?.()})}},_Ke={props:{barsData:{type:Array,default:()=>[]},barDistanceFromCenter:{type:Number,default:50},barStrokeWidth:{type:Number,default:10},placeholder:{type:Boolean,default:!1},placeholderStrokeWidth:{type:Number,default:4},placeholderColor:{type:String,default:"#EBEBEB"},graphDrawTime:{type:Number,default:4}},computed:{roundCapPercentageOffset(){const i=this.barStrokeWidth/2-4,e=this.barDistanceFromCenter*2*Math.PI;return i/e*100},center(){return this.viewBoxSize/2},displayedBarsData(){let i=0;return this.barsData.map(e=>{const t={...e,previousPercentageSum:i};return i+=+e.percentage,t})},viewBoxSize(){return this.barDistanceFromCenter*2+this.barStrokeWidth},viewBox(){return`0 0 ${this.viewBoxSize} ${this.viewBoxSize}`}},methods:{getPath(i){let e=i.percentage-2*this.roundCapPercentageOffset,t=i.previousPercentageSum+this.roundCapPercentageOffset;+i.percentage==100&&(e=99.999,t=0);const n=this.getPercentagePosition(t),o=this.barDistanceFromCenter;return`M${n.x},${n.y} A${o} ${o} 0 ${this.getTarget(e,t)}`},getPercentagePosition(i){const e=this.barDistanceFromCenter,t=i/100*Math.PI*2-Math.PI/2,n=e*Math.cos(t)+this.center,o=e*Math.sin(t)+this.center;return{x:n,y:o}},getTarget(i,e){const t=i>50?1:0,{x:n,y:o}=this.getPercentagePosition(i+e);return`${t} 1 ${n},${o}`}}},DKe={class:"bimdata-simple-pie-chart",ref:"container"},LKe=["viewBox"],FKe=["cx","cy","r","stroke-width","stroke"],OKe=["d","stroke-width","stroke"];function NKe(i,e,t,n,o,r){return E(),L("div",DKe,[(E(),L("svg",{viewBox:r.viewBox,style:le(`--graph-draw-time: ${t.graphDrawTime}s;`)},[t.placeholder?(E(),L("circle",{key:0,cx:r.center,cy:r.center,r:t.barDistanceFromCenter,"stroke-width":t.placeholderStrokeWidth,stroke:t.placeholderColor,fill:"none"},null,8,FKe)):te("",!0),(E(!0),L($e,null,Mt(r.displayedBarsData,(s,a)=>(E(),L("g",{key:a},[s.percentage>0?(E(),L("path",{key:0,class:"path",d:r.getPath(s),"stroke-width":t.barStrokeWidth,stroke:s.color,fill:"none"},null,8,OKe)):te("",!0)]))),128))],12,LKe))],512)}const UKe=V(_Ke,[["render",NKe],["__scopeId","data-v-4572e7e7"]]),VKe={props:{min:{type:[Number,String],default:null},max:{type:[Number,String],default:null},step:{type:[Number,String],default:null},modelValue:{type:Number,default:0},disabled:{type:Boolean,default:!1},tooltip:{type:Boolean,default:!1}},emits:["update:modelValue"],data(){return{backgroundSize:0,tooltipPosition:`calc(${this.modelValue}% + (${8-this.modelValue*.18}px))`}},watch:{modelValue(){this.$nextTick(()=>{this.backgroundSize=this.getBackgroundSize(),this.tooltip&&this.getTooltipPosition()})}},mounted(){this.backgroundSize=this.getBackgroundSize()},methods:{getBackgroundSize(){const i=this.$refs.input;if(!i)return null;const e=+i.min||0,t=+i.max||100;return(+i.value-e)/(t-e)*100},onInput(i){this.$emit("update:modelValue",+i.target.value)},getTooltipPosition(){const i=this.min?this.min:0,e=this.max?this.max:100,t=Number((this.modelValue-i)*100/(e-i));this.tooltipPosition=`calc(${t}% + (${8-t*.18}px))`}}},HKe={class:"bimdata-slider"},zKe=["min","max","step","value","disabled"];function jKe(i,e,t,n,o,r){return E(),L("div",HKe,[C("input",{ref:"input",class:"bimdata-slider-input",type:"range",style:le(`--background-size: ${o.backgroundSize}%`),min:t.min,max:t.max,step:t.step,value:t.modelValue,disabled:t.disabled,onInput:e[0]||(e[0]=(...s)=>r.onInput&&r.onInput(...s))},null,44,zKe),t.tooltip?(E(),L("output",{key:0,class:"bimdata-slider-tooltip",style:le({left:o.tooltipPosition})},G(t.modelValue),5)):te("",!0)])}const GKe=V(VKe,[["render",jKe],["__scopeId","data-v-de9cce2c"]]);function QKe(i,e,{rowSelectionUpdateEffect:t=()=>{},rowSelectionToggleEffect:n=()=>{},fullSelectionToggleEffect:o=()=>{}}={}){const r=se(new Map);return lt(i,()=>{r.value=new Map(i.value.filter(({key:l})=>e.value.has(l)).map(({key:l,data:c})=>[l,c]))},{immediate:!0}),lt(e,()=>{r.value=e.value},{immediate:!0}),lt(r,()=>{t(r.value)}),{rowSelection:r,toggleRowSelection:({key:l,data:c})=>{const u=()=>r.value.has(l);u()?r.value.delete(l):r.value.set(l,c),r.value=new Map([...r.value.entries()]),n(u(),{key:l,data:c})},toggleFullSelection:()=>{const l=()=>r.value.size>0;l()?r.value=new Map:r.value=new Map(i.value.map(({key:c,data:u})=>[c,u])),o(l())}}}const qKe={components:{BIMDataButton:oo,BIMDataIconCaret:zM},props:{sortOrder:{type:String,required:!0,validator:i=>["asc","desc"].includes(i)},index:{type:Number,required:!0},active:{type:Boolean,required:!0}},setup(i,{emit:e}){return{toggleActive:()=>{e("set-active",i.index)}}}};function KKe(i,e,t,n,o,r){const s=P("BIMDataIconCaret"),a=P("BIMDataButton");return E(),L("span",{class:ce([t.sortOrder==="asc"?"asc":"desc","m-l-6"]),onMousedown:e[0]||(e[0]=gt(()=>{},["prevent"]))},[k(a,{color:"primary",ghost:"",rounded:"",icon:"",class:ce({active:t.active}),onClick:n.toggleActive},{default:U(()=>[k(s,{rotate:t.sortOrder==="desc"?180:0,size:"xxxs",fill:"",color:"default"},null,8,["rotate"])]),_:1},8,["class","onClick"])],34)}const JKe=V(qKe,[["render",KKe],["__scopeId","data-v-cddfddda"]]),WKe={components:{BIMDataCheckbox:v6},props:{column:{type:Object,required:!0},columnData:{type:Array,required:!0},filters:{type:Array,required:!0}},emits:["filter"],setup(i,{emit:e}){const t=i.column,n=Re(()=>{const a=i.columnData.filter(l=>l!==null);return[...new Set(a.flatMap(l=>typeof t.filterFunction=="function"?t.filterFunction(l):(Array.isArray(l)||(l=[l]),t?.filterKey?l.map(c=>c[t?.filterKey]):l)))]});return{columnElements:Re(()=>n.value.map(s=>({data:s,checked:i.filters.includes(s)}))),toggle:(s,a)=>{const l=new Set(i.filters);a?l.add(s):l.delete(s),e("filter",[...l])}}}},ZKe={class:"column-filters p-12"},YKe={key:0,class:"column-filters__element flex align-center"};function XKe(i,e,t,n,o,r){const s=P("BIMDataCheckbox");return E(),L("div",ZKe,[n.columnElements.length===0?(E(),L("div",YKe,[pt(i.$slots,"column-filter-empty",{},void 0,!0)])):te("",!0),(E(!0),L($e,null,Mt(n.columnElements,a=>(E(),L("div",{key:a.data,class:"column-filters__element flex align-center"},[k(s,{text:a.data,modelValue:a.checked,"onUpdate:modelValue":l=>n.toggle(a.data,l)},null,8,["text","modelValue","onUpdate:modelValue"])]))),128))])}const $Ke={components:{BIMDataButton:oo,BIMDataCheckbox:v6,BIMDataIconCaret:zM,BIMDataIconChevron:pa,ColumnSorting:JKe,ColumnFilters:V(WKe,[["render",XKe],["__scopeId","data-v-6192724c"]])},directives:{clickaway:tl},props:{columns:{type:Array,required:!0},rows:{type:Array,required:!0},rowKey:{type:String},rowHeight:{type:Number,default:50},selectable:{type:Boolean,default:!1},selection:{type:Map,default:()=>new Map},paginated:{type:Boolean,default:!1},perPage:{type:Number,default:10},placeholder:{type:String,default:""},tableWidth:{type:String,default:"100%"},tableLayout:{type:String,default:"auto"},canDragOverRow:{type:Function,default:()=>!1}},emits:["update:selection","selection-changed","row-selected","row-deselected","all-selected","all-deselected","row-drop"],setup(i,{emit:e}){const t=Re(()=>i.rows.map((T,D)=>({key:T[i.rowKey]??D,data:T}))),{rowSelection:n,toggleRowSelection:o,toggleFullSelection:r}=QKe(t,Re(()=>i.selection),{rowSelectionUpdateEffect:T=>{e("update:selection",T),e("selection-changed",Array.from(T.values()))},rowSelectionToggleEffect:(T,{data:D})=>{e(T?"row-selected":"row-deselected",D)},fullSelectionToggleEffect:T=>{e(T?"all-selected":"all-deselected")}}),s=Re(()=>n.value.size<i.rows.length?n.value.size>0?null:!1:n.value.size>0),a=T=>{i.selectable&&o(T)},l=()=>{i.selectable&&r()},c=(T,D)=>{i.canDragOverRow(T)&&(e("row-drop",{data:T,event:D}),u.value=null)},u=se(null),d=(T,D,F)=>{i.canDragOverRow(D)&&(F.preventDefault(),u.value=T)},h=()=>{u.value=null},p=se(null),A=T=>{p.value===T.id?p.value=null:p.value=T.id},f=T=>{T.id===p.value&&(p.value=null)},g=Ao({column:null,order:null}),m=se([]),v=Re(()=>{if(g.column){const T=g.order!=="desc"?1:-1;if(g.column.sortFunction){const D=(F,N)=>g.column.sortFunction(F.data,N.data)*T;return Array.from(t.value).sort(D)}else return Array.from(t.value).sort((D,F)=>D.data[g.column.id]<F.data[g.column.id]?T:D.data[g.column.id]>F.data[g.column.id]?-T:0)}return m.value.length>0?Array.from(t.value).filter(T=>T.data[m.value[0].id]===m.value[0].text):t.value}),y=T=>{g.column===T?g.order=g.order==="asc"?"desc":"asc":(g.column=T,g.order=T.defaultSortOrder??"asc")},w=se([]),x=Re(()=>v.value.filter(T=>w.value.every(D=>{const F=i.columns.find(z=>z.id===D.columnKey),N=T.data[D.columnKey];if(N!==null)return Array.isArray(N)?N.some(z=>D.columnFilters.includes(typeof F.filterFunction=="function"?F.filterFunction(z):F.filterKey?z[F.filterKey]:z)):D.columnFilters.includes(typeof F.filterFunction=="function"?F.filterFunction(N):F.filterKey?N[F.filterKey]:N)}))),M=(T,D)=>{w.value=w.value.filter(F=>F.columnKey!==T.id),D.length>0&&w.value.push({columnKey:T.id,columnFilters:D})},B=se([]),S=se(0),I=se(1),R=se(i.perPage);return lt([x,()=>i.perPage],()=>{S.value=0},{immediate:!0}),lt([x,()=>i.paginated,()=>i.perPage,S],([T,D,F,N])=>{const z=T.map(j=>j.key);if(D){const j=F*N,W=j+F;B.value=z.slice(j,W),I.value=j+1,R.value=Math.min(W,T.length)}else B.value=z},{immediate:!0}),{activeHeadercolumnKey:null,computedRows:t,paginatedRows:B,pageIndex:S,pageIndexEnd:R,pageIndexStart:I,rowSelection:n,dragOveredRowKey:u,displayedColumnFilterId:p,filteringColumns:m,filters:w,selectionState:s,sortObject:g,awayFromFilter:f,onDrop:c,onDragover:d,onDragleave:h,toggleAll:l,toggleRow:a,toggleSorting:y,updateFilters:M,toggleFiltersMenu:A,displayedRows:x}}},eJe={class:"bimdata-table"},tJe={key:0,class:"cell-checkbox"},iJe={style:{display:"inline-flex","align-items":"center"}},nJe={key:1},oJe={key:"head-row-1"},sJe=["colspan"],rJe=["onDrop","onDragover"],aJe={key:0,class:"cell-checkbox"},lJe={class:"bimdata-table__page-nav__text"};function cJe(i,e,t,n,o,r){const s=P("BIMDataCheckbox"),a=P("ColumnSorting"),l=P("BIMDataIconCaret"),c=P("BIMDataButton"),u=P("ColumnFilters"),d=P("BIMDataIconChevron"),h=li("clickaway");return E(),L("div",eJe,[C("div",{class:"bimdata-table__container",style:le({height:t.paginated?`${(t.perPage+1)*t.rowHeight}px`:void 0})},[C("table",{style:le({width:t.tableWidth,tableLayout:t.tableLayout})},[C("thead",null,[C("tr",{key:"head-row-0",style:le({height:`${t.rowHeight}px`})},[t.selectable?(E(),L("th",tJe,[k(s,{disabled:t.rows.length===0,modelValue:n.selectionState,"onUpdate:modelValue":n.toggleAll},null,8,["disabled","modelValue","onUpdate:modelValue"])])):te("",!0),(E(!0),L($e,null,Mt(t.columns,(p,A)=>(E(),L("th",{key:`head-row-0-col-${A}`,style:le({width:p.width||"auto",textAlign:p.align||"left"})},[C("div",iJe,[Ke(G(p.id?p.label||p.id:p)+" ",1),pt(i.$slots,"column-header-right",{},void 0,!0),p.sortable?(E(),K(a,{key:0,sortOrder:!n.sortObject.order||n.sortObject.column!==p?"asc":n.sortObject.order,index:A,active:A===n.activeHeadercolumnKey,onClick:f=>n.toggleSorting(p),onSetActive:e[0]||(e[0]=f=>n.activeHeadercolumnKey=f)},null,8,["sortOrder","index","active","onClick"])):te("",!0),p.filter?yt((E(),L("div",nJe,[k(c,{color:"primary",ghost:"",rounded:"",icon:"",class:ce(["m-l-6",{active:n.filters.some(f=>f.columnKey===p.id)}]),onClick:f=>n.toggleFiltersMenu(p)},{default:U(()=>[k(l,{size:"xxxs",fill:"",color:"default"})]),_:1},8,["class","onClick"]),n.displayedColumnFilterId===p.id?(E(),K(u,{key:0,column:p,columnData:n.computedRows.map(f=>f.data[p.id]),filters:n.filters.find(f=>f.columnKey===p.id)?.columnFilters??[],onFilter:f=>n.updateFilters(p,f)},{"column-filter-empty":U(()=>[pt(i.$slots,"column-filter-empty",{},void 0,!0)]),_:3},8,["column","columnData","filters","onFilter"])):te("",!0)])),[[h,()=>n.awayFromFilter(p)]]):te("",!0)])],4))),128))],4),C("tr",oJe,[C("th",{class:"cell-sub-header",colspan:t.columns.length+t.selectable},[pt(i.$slots,"sub-header",{},void 0,!0)],8,sJe)])]),C("tbody",{onDragleave:e[1]||(e[1]=(...p)=>n.onDragleave&&n.onDragleave(...p))},[(E(!0),L($e,null,Mt(n.displayedRows,({key:p,data:A})=>yt((E(),L("tr",{key:`body-row-${p}`,style:le({height:`${t.rowHeight}px`}),onDrop:f=>n.onDrop(A,f),onDragover:f=>n.onDragover(p,A,f),class:ce({"bimdata-table__row--drag-overed":n.dragOveredRowKey===p})},[t.selectable?(E(),L("td",aJe,[k(s,{modelValue:n.rowSelection.has(p),"onUpdate:modelValue":f=>n.toggleRow({key:p,data:A})},null,8,["modelValue","onUpdate:modelValue"])])):te("",!0),(E(!0),L($e,null,Mt(t.columns,(f,g)=>(E(),L("td",{key:`body-row-${p}-col-${g}`,style:le({width:f.width||"auto",textAlign:f.align||"left"})},[pt(i.$slots,`cell-${f.id}`,{row:A},()=>[Ke(G(A[f.id]||A[g]),1)],!0)],4))),128))],46,rJe)),[[jt,n.paginatedRows.includes(p)]])),128))],32)],4),t.rows.length===0?(E(),L("div",{key:0,class:"bimdata-table__container__placeholder",style:le({height:`calc(100% - ${t.rowHeight}px)`})},[pt(i.$slots,"placeholder",{},()=>[Ke(G(t.placeholder),1)],!0)],4)):te("",!0)],4),t.paginated?(E(),L("div",{key:0,class:"bimdata-table__page-nav",style:le({visibility:n.displayedRows.length>t.perPage?"visible":"hidden"})},[k(c,{ghost:"",rounded:"",icon:"",disabled:n.pageIndexStart===1,onClick:e[2]||(e[2]=p=>n.pageIndex--)},{default:U(()=>[k(d,{size:"s",rotate:180})]),_:1},8,["disabled"]),C("span",lJe,G(`${n.pageIndexStart} - ${n.pageIndexEnd} / ${n.displayedRows.length}`),1),k(c,{ghost:"",rounded:"",icon:"",disabled:n.pageIndexEnd===n.displayedRows.length,onClick:e[3]||(e[3]=p=>n.pageIndex++)},{default:U(()=>[k(d,{size:"s"})]),_:1},8,["disabled"])],4)):te("",!0)])}const uJe=V($Ke,[["render",cJe],["__scopeId","data-v-e91e8e65"]]),dJe={components:{BIMDataButton:oo,BIMDataIconChevron:pa},props:{width:{type:[String,Number],default:"100%"},height:{type:[String,Number],default:"32px"},tabs:{type:Array,required:!0},tabSize:{type:[String,Number],default:"120px"},selected:{type:[String,Number]}},emits:["tab-click","tab-selected"],data(){return{scrollValues:[],displayIndex:0,activeTab:{}}},computed:{containerWidth(){return Number.isNaN(+this.width)?this.width:`${this.width}px`},containerHeight(){return Number.isNaN(+this.height)?this.height:`${this.height}px`},tabWidth(){return Number.isNaN(+this.tabSize)?this.tabSize:`${this.tabSize}px`}},watch:{tabs(){this.$nextTick(()=>this._setScrollValues())},tabSize(){this.$nextTick(()=>this._setScrollValues())},selected(i){this._setSelected(i)}},mounted(){this.resizeObserver=new ResizeObserver(()=>this._setScrollValues()),this.resizeObserver.observe(this.$refs.container),this._setScrollValues(),this._setSelected(this.selected)},beforeUnmount(){this.resizeObserver.disconnect()},beforeDestroy(){this.resizeObserver.disconnect()},methods:{prev(){this.displayIndex--,this.$refs.container.scrollTo(this.scrollValues[this.displayIndex],0)},next(){this.displayIndex++,this.$refs.container.scrollTo(this.scrollValues[this.displayIndex],0)},onTabClick(i){this.activeTab=i,this.$emit("tab-click",i),this.$emit("tab-selected",i)},_setSelected(i){if(typeof i=="number"&&i>=0&&i<this.tabs.length)this.activeTab=this.tabs[i],this.$emit("tab-selected",this.activeTab);else{const e=this.tabs.find(t=>t.id===i);e&&(this.activeTab=e,this.$emit("tab-selected",this.activeTab))}},_setScrollValues(){if(this.displayIndex=0,this.tabs.length>0){let i=this.$refs.container.offsetWidth,e=this.$refs.container.querySelector(".bimdata-tabs__container__tab").offsetWidth;Math.floor((this.tabs.length*e-i)*10/e)>0?this.scrollValues=[0].concat(this.tabs.map((n,o)=>(o+1)*e-i).filter(n=>n>0)):this.scrollValues=[]}}}},hJe=["onClick"];function pJe(i,e,t,n,o,r){const s=P("BIMDataIconChevron"),a=P("BIMDataButton");return E(),L("div",{class:"bimdata-tabs",style:le({width:t.width})},[yt(k(a,{disabled:o.displayIndex===0,onClick:r.prev},{default:U(()=>[k(s,{class:"fill-primary",size:"xxs",rotate:180})]),_:1},8,["disabled","onClick"]),[[jt,o.scrollValues.length>1]]),C("ul",{ref:"container",class:"bimdata-tabs__container",style:le({width:r.containerWidth,minHeight:r.containerHeight})},[(E(!0),L($e,null,Mt(t.tabs,l=>(E(),L("li",{key:l.id,class:ce(["bimdata-tabs__container__tab",{active:l.id===o.activeTab.id}]),style:le({minWidth:r.tabWidth}),onClick:c=>r.onTabClick(l)},[pt(i.$slots,"tab",{tab:l,active:l.id===o.activeTab.id},()=>[Ke(G(l.label),1)],!0)],14,hJe))),128))],4),yt(k(a,{disabled:o.displayIndex===o.scrollValues.length-1,onClick:r.next},{default:U(()=>[k(s,{class:"fill-primary",size:"xxs"})]),_:1},8,["disabled","onClick"]),[[jt,o.scrollValues.length>1]])],4)}const fJe=V(dJe,[["render",pJe],["__scopeId","data-v-7da61e21"]]),AJe={model:{prop:"modelValue",event:"update:modelValue"},props:{name:{type:[String,Number],default:""},resizable:{type:Boolean,default:!0},modelValue:{type:[String,Number],default:null},placeholder:{type:String,default:null},label:{type:String,default:""},width:{type:[Number,String],default:"150px"},height:{type:[Number,String],default:"32px"},error:{type:Boolean,default:!1},success:{type:Boolean,default:!1},errorMessage:{type:String,default:""},successMessage:{type:String,default:""},fitContent:{type:Boolean,default:!1}},emits:["update:modelValue"],created(){this.$watch(()=>this.success&&this.error,i=>{if(i)throw new Error("Textarea state cannot be both success and error.")})},mounted(){this.fitContent&&this.handleFitContent()},methods:{focus(){this.$refs.textarea&&this.$refs.textarea.focus()},blur(){this.$refs.textarea&&this.$refs.textarea.blur()},handleFitContent(){this.$refs.textarea.style.height="auto",this.$refs.textarea.style.height=this.$refs.textarea.scrollHeight+"px"},onInput(i){this.$emit("update:modelValue",i.currentTarget.value),this.fitContent&&this.handleFitContent()}}},mJe=["name","id","value","placeholder"],gJe=["for"],yJe={key:0,class:"error"},vJe={key:1,class:"success"};function wJe(i,e,t,n,o,r){return E(),L("div",{class:ce(["bimdata-textarea",{"not-empty":t.modelValue!==null&&t.modelValue!==""||t.placeholder!==null,error:t.error,success:t.success}]),style:le({"min-width":t.width,"min-height":t.height})},[C("textarea",Es({ref:"textarea",name:t.name,id:t.name,value:t.modelValue,placeholder:t.placeholder,style:`${t.resizable?"":"resize: none;"}`,onInput:e[0]||(e[0]=(...s)=>r.onInput&&r.onInput(...s))},i.$attrs),null,16,mJe),C("label",{for:t.name},G(t.label),9,gJe),e[1]||(e[1]=C("span",{class:"bar"},null,-1)),t.error?(E(),L("span",yJe,G(t.errorMessage),1)):te("",!0),t.success?(E(),L("span",vJe,G(t.successMessage),1)):te("",!0)],6)}const CJe=V(AJe,[["render",wJe],["__scopeId","data-v-77c71958"]]),bJe={model:{prop:"modelValue",event:"update:modelValue"},props:{disabled:{type:Boolean,default:!1},modelValue:{type:Boolean,default:!1}},emits:["update:modelValue"],data(){return{uniqueId:null}},computed:{checkedValue:{get(){return this.modelValue},set(i){this.$emit("update:modelValue",i)}}},created(){this.uniqueId=Math.random().toString()}},xJe=["for"],MJe=["disabled","id"];function EJe(i,e,t,n,o,r){return E(),L("label",{for:`bimdata-toggle-${o.uniqueId}`,class:ce([{active:t.modelValue,disabled:t.disabled},"toggle__button"])},[pt(i.$slots,"default",{},void 0,!0),yt(C("input",{type:"checkbox",disabled:t.disabled,id:`bimdata-toggle-${o.uniqueId}`,"onUpdate:modelValue":e[0]||(e[0]=s=>r.checkedValue=s)},null,8,MJe),[[jg,r.checkedValue]]),e[1]||(e[1]=C("span",{class:"toggle__switch"},null,-1)),pt(i.$slots,"right",{},void 0,!0)],10,xJe)}const BJe=V(bJe,[["render",EJe],["__scopeId","data-v-ab3de434"]]),IJe={props:{text:{type:String,default:""},maxWidth:{type:String,default:"240px"},position:{type:String,default:"bottom",validator:i=>["top","right","bottom","left"].includes(i)},color:{type:String,default:"primary",validator:i=>["white","primary","secondary","granite-light","silver-light","success","warning","high"].includes(i)},disabled:{type:Boolean,default:!1},message:{type:String},className:{type:[String,Array]}},data(){return{width:null,height:null,parentHeight:null,hover:!1}},computed:{isDisplayed(){return!this.disabled&&this._text&&this.hover},_text(){return this.text||this.message},_className(){return[this.className].flat()}}},SJe={class:"bimdata-tooltip"};function PJe(i,e,t,n,o,r){return E(),L("div",SJe,[C("div",{class:"bimdata-tooltip__content",onMouseover:e[0]||(e[0]=s=>o.hover=!0),onMouseleave:e[1]||(e[1]=s=>o.hover=!1)},[pt(i.$slots,"content",{},void 0,!0),pt(i.$slots,"default",{},void 0,!0)],32),k(mi,{name:"fade"},{default:U(()=>[yt(C("div",{ref:"tooltipText",class:ce(["bimdata-tooltip__tooltip",[`bimdata-tooltip__tooltip--${t.position}`,`bimdata-tooltip__tooltip--${t.color}`,...r._className]]),style:le({maxWidth:t.maxWidth})},G(r._text),7),[[jt,r.isDisplayed]])]),_:1})])}const TJe=V(IJe,[["render",PJe],["__scopeId","data-v-36856a43"]]);let JM,PG;PG={inject:["root"],props:{node:{type:Object,required:!0,validator:i=>Number.isFinite(i?.id)||typeof i?.id=="string"},depth:{type:Number,default:0},dragAndDrop:{type:Boolean,default:!1}},render(){const{node:i,depth:e,dragAndDrop:t,root:n}=this,o=n.state;return i.children.map(r=>vn(JM,{node:r,depth:e,dragAndDrop:t,key:r.id},()=>n.$slots.node?.({node:r,depth:e,selected:r.id===o.selectedId,hovered:r.id===o.hoveredNode?.id,ancestorSelected:o.hasAncestorSelected(r),dragAndDrop:t})))}},JM={name:"Node",components:{NodeChildren:PG},inject:["root"],props:{node:{type:Object,required:!0},depth:{type:Number,default:0},dragAndDrop:{type:Boolean,default:!1}},setup(i){const e=st("state");let t=null;an(i.node.visibleRef)?t=i.node.visibleRef:t=se(!0);let n=null;an(i.node.expandedRef)?n=i.node.expandedRef:n=se(!1);const o=se(null);let r=null;const s=()=>{if(!i.node.children?.length||!e.dragPosition||e.hoveredNode?.id!==i.node.id||n.value){clearTimeout(r),r=null;return}const h=e.getNodeDropPosition(i.node,o.value);if(h!=="center"&&h!=="bottom"){clearTimeout(r),r=null;return}r===null&&(r=setTimeout(()=>{n.value=!0,r=null},500))};lt(()=>e.dragPosition&&e.hoveredNode,s);const a=()=>e.onNodeMouseEnter(i.node),l=h=>e.onNodeMouseDown(i.node,h),c=h=>{e.onNodeMouseMove(h),s()},u=Re(()=>!i.dragAndDrop||!e.dragPosition||e.hoveredNode?.id!==i.node.id?null:e.getNodeDropPosition(i.node,o.value)),d=()=>e.onNodeMouseUp(i.node,o.value,n.value);return{state:e,nodeRef:o,expanded:n,visible:t,dropHelperPosition:u,hasAncestorSelected:e.hasAncestorSelected,onMouseEnter:a,onMouseDown:l,onMouseMove:c,onMouseUp:d}}};const kJe=JM,RJe={class:"bimdata-tree__node__content__element"};function _Je(i,e,t,n,o,r){const s=P("BIMDataIcon"),a=P("NodeChildren");return E(),L($e,null,[yt(C("div",{ref:"nodeRef",class:ce(["bimdata-tree__node",{"bimdata-tree__node--selected":i.node.id===i.state.selectedId,"bimdata-tree__node--ancestor-selected":i.hasAncestorSelected(i.node),"bimdata-tree__node--highlighted":i.node.id===i.state.highlightedId}]),onMouseenter:e[2]||(e[2]=(...l)=>i.onMouseEnter&&i.onMouseEnter(...l)),onMousedown:e[3]||(e[3]=(...l)=>i.onMouseDown&&i.onMouseDown(...l)),onMousemove:e[4]||(e[4]=(...l)=>i.onMouseMove&&i.onMouseMove(...l)),onMouseup:e[5]||(e[5]=(...l)=>i.onMouseUp&&i.onMouseUp(...l))},[i.dropHelperPosition==="top"||i.dropHelperPosition==="bottom"?(E(),L("div",{key:0,class:"bimdata-tree__node__drop-helper",style:le(`--drop-helper-top: ${i.dropHelperPosition==="top"?"0px":"30px"};`)},null,4)):te("",!0),C("div",{class:"bimdata-tree__node__content",style:le(`padding-left: calc(var(--spacing-unit) * 2 * ${i.depth});`)},[C("div",{class:"bimdata-tree__node__content__arrow",onMousedown:e[1]||(e[1]=gt(()=>{},["stop"]))},[i.node.children?.length>0?(E(),L("div",{key:0,class:"bimdata-tree__node__content__arrow__content",onClick:e[0]||(e[0]=l=>i.expanded=!i.expanded)},[k(s,{name:"chevron",size:"xxxs",rotate:i.expanded?90:0},null,8,["rotate"])])):te("",!0)],32),C("div",RJe,[pt(i.$slots,"default",{},()=>[Ke(G(i.node.label),1)],!0)])],4)],34),[[jt,i.visible]]),i.node.children?.length>0&&i.expanded?(E(),K(a,{key:0,node:i.node,depth:i.depth+1,"drag-and-drop":i.dragAndDrop},null,8,["node","depth","drag-and-drop"])):te("",!0)],64)}const DJe=V(kJe,[["render",_Je],["__scopeId","data-v-72a6c509"]]);function LJe(i,e){const t=Ao({selectedId:null,highlightedId:null,hoveredNode:null,trees:i.data,dragPosition:null});lt(()=>i.selectedId,()=>{t.selectedId=i.selectedId??null}),lt(()=>i.highlightedId,()=>{t.highlightedId=i.highlightedId??null}),lt(()=>t.hoveredNode,()=>e("hover",t.hoveredNode));const n=hi(null);lt(()=>i.data,v=>{t.trees=v});const o=()=>{n.value=null,t.dragPosition=null},r=v=>{t.hoveredNode=v},s=(v,y)=>{y.stopPropagation(),e("click",v),n.value=v,window.addEventListener("mouseup",o,{once:!0})},a=v=>{if(!n.value)return;const{clientX:y,clientY:w}=v;t.dragPosition={x:y,y:w}},l=(v,y,w)=>{if(!i.dragAndDrop||!t.dragPosition||t.hoveredNode?.id===n.value?.id||t.isDescendant(v,n.value))return;const x=h(v,y);let M=null,B=null;const S=p(n.value);switch(x){case"top":M=p(v),B=(M?.children??t.trees).findIndex(T=>T.id===v.id);break;case"bottom":v.children&&w?(M=v,B=0):(M=p(v),B=(M?.children??t.trees).findIndex(T=>T.id===v.id)+1);break;case"center":M=v,B=0;break}const I=M?.id===S?.id,R=(S?.children??t.trees).findIndex(T=>T.id===n.value.id);I&&(x==="top"||x==="bottom")&&R<B&&B--,!(I&&B===R)&&e("drop",{node:n.value,previousParent:S,parent:M,index:B,position:x})},c=()=>{t.hoveredNode=null},u=()=>{e("click",null)},d=()=>{if(!i.dragAndDrop||!t.dragPosition||t.trees.indexOf(n.value)===t.trees.length-1)return;const v=t.trees.includes(n.value);e("drop",{node:n.value,parent:null,index:v?t.trees.length-1:t.trees.length,previousParent:p(n.value)})};t.onNodeMouseEnter=r,t.onNodeMouseDown=s,t.onNodeMouseMove=a,t.onNodeMouseUp=l,t.onNodesMouseLeave=c,t.onTreeMouseDown=u,t.onTreeMouseUp=d;const h=(v,y)=>{const{y:w}=t.dragPosition,{top:x,height:M}=y.getBoundingClientRect();return v.children?w<x+M/3?"top":w>x+M*2/3?"bottom":"center":w<x+M/2?"top":"bottom"},p=(v,y=t.trees)=>{for(const w of y)if(w.children?.length){if(w.children.some(M=>M.id===v.id))return w;const x=p(v,w.children);if(x)return x}},A=(v,y=t.trees)=>{for(const w of y)if(w.id===v.id||w.children?.length&&A(v,w.children))return!0;return!1},f=(v,y=t.trees)=>{const w=[];for(const x of y)x.id!==v.id&&x.children?.length&&A(v,x.children)&&w.push(x,...f(v,x.children));return w},g=v=>t.selectedId===null?!1:f(v).some(y=>y.id===t.selectedId),m=(v,y)=>y?.children?.some(w=>w.id===v.id||m(v,w))??!1;return t.getNodeDropPosition=h,t.getParent=p,t.getAncestors=f,t.hasAncestorSelected=g,t.isDescendant=m,t}const FJe={components:{Node:DJe},provide(){return{root:this}},props:{data:{type:Array,required:!0,validator:i=>{if(!Array.isArray(i))return!1;const e=new Set;for(const t of i){if(!Number.isFinite(t?.id)&&typeof t?.id!="string"||t.children&&!Array.isArray(t.children))return!1;e.add(t.id)}return e.size===i.length}},selectedId:{type:Number,default:null},highlightedId:{type:Number,default:null},dragAndDrop:{type:Boolean,default:!1}},emits:["drop","click","hover"],setup(i,{emit:e}){const t=LJe(i,e);Li("state",t);const n=()=>t.onNodesMouseLeave(),o=()=>t.onTreeMouseDown(),r=se(!1),s=()=>{r.value=!0},a=()=>{r.value=!1},l=()=>t.onTreeMouseUp(),c=Re(()=>i.dragAndDrop&&r.value&&t.dragPosition!==null&&t.hoveredNode===null);return{state:t,dropHelperDisplayed:c,onMouseEnter:s,onMouseLeave:a,onNodesMouseLeave:n,onTreeMouseDown:o,onMouseUp:l}}},OJe={key:0,class:"bimdata-tree__drop-helper"};function NJe(i,e,t,n,o,r){const s=P("Node");return E(),L("div",{class:"bimdata-tree",onMousedown:e[1]||(e[1]=(...a)=>n.onTreeMouseDown&&n.onTreeMouseDown(...a)),onMouseenter:e[2]||(e[2]=(...a)=>n.onMouseEnter&&n.onMouseEnter(...a)),onMouseleave:e[3]||(e[3]=(...a)=>n.onMouseLeave&&n.onMouseLeave(...a)),onMouseup:e[4]||(e[4]=gt((...a)=>n.onMouseUp&&n.onMouseUp(...a),["self"]))},[C("div",{class:"bimdata-tree__nodes",onMouseleave:e[0]||(e[0]=(...a)=>n.onNodesMouseLeave&&n.onNodesMouseLeave(...a))},[(E(!0),L($e,null,Mt(t.data,a=>(E(),K(s,{key:a.id,node:a,"drag-and-drop":t.dragAndDrop},{default:U(()=>[pt(i.$slots,"node",{node:a,depth:0,selected:a.id===n.state.selectedId,hovered:a.id===n.state.hoveredNode?.id,ancestorSelected:n.state.hasAncestorSelected(a)},void 0,!0)]),_:2},1032,["node","drag-and-drop"]))),128))],32),n.dropHelperDisplayed?(E(),L("div",OJe)):te("",!0)],32)}const UJe=Object.freeze(Object.defineProperty({__proto__:null,BIMDataBigSpinner:mxe,BIMDataButton:oo,BIMDataCard:y6,BIMDataCarousel:jxe,BIMDataCheckbox:v6,BIMDataColorSelector:Yxe,BIMDataDatePicker:jze,BIMDataDropdownList:Aje,BIMDataDropdownMenu:Eje,BIMDataFileIcon:Gje,BIMDataIcon:Kje,BIMDataIconAddFile:_Me,BIMDataIconAddFolder:UMe,BIMDataIconAddGavel:GMe,BIMDataIconAddList:WMe,BIMDataIconAddUser:tEe,BIMDataIconAlphabeticalAscending:rEe,BIMDataIconAlphabeticalDescending:dEe,BIMDataIconAlphabeticalSort:mEe,BIMDataIconAlt:CEe,BIMDataIconAngle:BEe,BIMDataIconApi:REe,BIMDataIconApp:OEe,BIMDataIconArchive:jEe,BIMDataIconArrow:WEe,BIMDataIconAttach:tBe,BIMDataIconBack:rBe,BIMDataIconBcf:hBe,BIMDataIconBcfPolychrome:kVe,BIMDataIconBuilding:yBe,BIMDataIconBurgerMenu:xBe,BIMDataIconCalendar:PBe,BIMDataIconCaliper:LBe,BIMDataIconCamera:HBe,BIMDataIconCancelCamera:qBe,BIMDataIconCaret:zM,BIMDataIconCheck:nIe,BIMDataIconChevron:pa,BIMDataIconClassificationCategory:lIe,BIMDataIconClassificationElement:pIe,BIMDataIconClick:vIe,BIMDataIconClose:b6,BIMDataIconCloud:TIe,BIMDataIconColor:FIe,BIMDataIconComment:XIe,BIMDataIconCreateSpace:HIe,BIMDataIconCreateWindowPolychrome:FVe,BIMDataIconCreateZone:qIe,BIMDataIconDateAscending:nSe,BIMDataIconDateDescending:lSe,BIMDataIconDefault:dG,BIMDataIconDelete:w6,BIMDataIconDeniedFile:ySe,BIMDataIconDetach:MSe,BIMDataIconDistance:PSe,BIMDataIconDocInfoPolychrome:HVe,BIMDataIconDoubleChevron:jM,BIMDataIconDown:VSe,BIMDataIconDownload:qSe,BIMDataIconDrag:YSe,BIMDataIconEdit:nPe,BIMDataIconEllipsis:hG,BIMDataIconExpanded:hPe,BIMDataIconExplosion:yPe,BIMDataIconExport:xPe,BIMDataIconExportIfc:SPe,BIMDataIconExportXlsx:_Pe,BIMDataIconFailed:UPe,BIMDataIconFileDwgPolychrome:qVe,BIMDataIconFileDxfPolychrome:YVe,BIMDataIconFileIfcPolychrome:iHe,BIMDataIconFileImagePolychrome:aHe,BIMDataIconFileJpegPolychrome:hHe,BIMDataIconFilePdfPolychrome:gHe,BIMDataIconFilePhotospherePolychrome:bHe,BIMDataIconFilePlanPolychrome:IHe,BIMDataIconFilePngPolychrome:RHe,BIMDataIconFilePointCloudPolychrome:OHe,BIMDataIconFilterList:QPe,BIMDataIconFitView:ZPe,BIMDataIconFolder:iTe,BIMDataIconFolderLocation:lTe,BIMDataIconFolderMove:pTe,BIMDataIconFolderOpen:vTe,BIMDataIconFolderPolychrome:zHe,BIMDataIconFullscreen:ETe,BIMDataIconGavel:kTe,BIMDataIconGrid:FTe,BIMDataIconGroup:HTe,BIMDataIconHide:KTe,BIMDataIconHome:XTe,BIMDataIconIfc:oke,BIMDataIconIfcFile:uke,BIMDataIconImport:mke,BIMDataIconInProgressFile:Oke,BIMDataIconIndexAscending:Cke,BIMDataIconIndexDescending:Bke,BIMDataIconInformation:Rke,BIMDataIconInvitation:jke,BIMDataIconIsolate:Wke,BIMDataIconKey:tRe,BIMDataIconLeft:aRe,BIMDataIconLinkedDocument:pRe,BIMDataIconList:yRe,BIMDataIconListManage:MRe,BIMDataIconLocation:TRe,BIMDataIconLock:FRe,BIMDataIconLogout:zRe,BIMDataIconMeasure:JRe,BIMDataIconMinus:e_e,BIMDataIconModel3D:r_e,BIMDataIconNamingConvention:d_e,BIMDataIconNavigation:g_e,BIMDataIconOrganization:x_e,BIMDataIconParameters:P_e,BIMDataIconPathway:L_e,BIMDataIconPieGraph:V_e,BIMDataIconPipette:q_e,BIMDataIconPlan:X_e,BIMDataIconPlus:oDe,BIMDataIconPreview:uDe,BIMDataIconProject:mDe,BIMDataIconQuickSelect:CDe,BIMDataIconReadonlyFolder:IDe,BIMDataIconRedo:_De,BIMDataIconReduced:NDe,BIMDataIconRefresh:GDe,BIMDataIconRemoveModel:WDe,BIMDataIconRename:eLe,BIMDataIconReprocessIfc:sLe,BIMDataIconReset:dLe,BIMDataIconRestore:gLe,BIMDataIconRight:xLe,BIMDataIconRotate:SLe,BIMDataIconRules:DLe,BIMDataIconSandglass:VLe,BIMDataIconSave:qLe,BIMDataIconScreenConfig:YLe,BIMDataIconScreenshot:iFe,BIMDataIconSearch:GM,BIMDataIconSection:pFe,BIMDataIconSetAsModel:yFe,BIMDataIconSettings:MFe,BIMDataIconShare:TFe,BIMDataIconShow:FFe,BIMDataIconShowSelected:HFe,BIMDataIconSmartview:qFe,BIMDataIconSocotec:XFe,BIMDataIconSpace:nOe,BIMDataIconSpace2:lOe,BIMDataIconSpacing:pOe,BIMDataIconSplit:yOe,BIMDataIconStorey:MOe,BIMDataIconStructure:TOe,BIMDataIconStructurePolychrome:KHe,BIMDataIconSuccess:FOe,BIMDataIconSurface:HOe,BIMDataIconSwap:qOe,BIMDataIconSynchro2D:YOe,BIMDataIconSystem:nNe,BIMDataIconTag:cNe,BIMDataIconTranslate:fNe,BIMDataIconTree:wNe,BIMDataIconUnarchive:BNe,BIMDataIconUndo:RNe,BIMDataIconUnion:NNe,BIMDataIconUnknownFile:jNe,BIMDataIconUp:WNe,BIMDataIconUpload:eUe,BIMDataIconUser:rUe,BIMDataIconValidate:hUe,BIMDataIconValidatedFile:gUe,BIMDataIconVersioning:xUe,BIMDataIconVideocam:PUe,BIMDataIconViewer2DPolychrome:XHe,BIMDataIconViewer3DPolychrome:nze,BIMDataIconVisa:DUe,BIMDataIconWarning:VUe,BIMDataIconWindowBottom:qUe,BIMDataIconWindowLeft:oVe,BIMDataIconWindowRight:uVe,BIMDataIconWindowTop:mVe,BIMDataIconWindowed:XUe,BIMDataIconZone:CVe,BIMDataIconZone2:BVe,BIMDataIllustration:_Qe,BIMDataInfobox:OQe,BIMDataInput:QQe,BIMDataInputOutlined:nqe,BIMDataList:rqe,BIMDataLoading:hqe,BIMDataMenu:wqe,BIMDataMenuInline:Mqe,BIMDataMultiplePieChart:kqe,BIMDataPaginatedList:AG,BIMDataPieSpinner:Oqe,BIMDataRadio:zqe,BIMDataResponsiveGrid:Qqe,BIMDataSafeZoneInline:Wqe,BIMDataSearch:eKe,BIMDataSearchAutocomplete:AKe,BIMDataSelect:RKe,BIMDataSimplePieChart:UKe,BIMDataSlider:GKe,BIMDataSpinner:fG,BIMDataTable:uJe,BIMDataTabs:fJe,BIMDataText:BG,BIMDataTextarea:CJe,BIMDataTextbox:x6,BIMDataToggle:BJe,BIMDataTooltip:TJe,BIMDataTree:V(FJe,[["render",NJe],["__scopeId","data-v-54b04432"]])},Symbol.toStringTag,{value:"Module"})),TG=Object.freeze({bisque:16770244,orange:16753920,coral:16744272,red:16711680,maroon:8388608,khaki:15787660,tan:13808780,peru:13468991,sienna:10506797,brown:10824234,greenyellow:11403055,yellowgreen:10145074,olive:8421376,green:32768,darkgreen:25600,lightcyan:14745599,skyblue:8900331,steelblue:4620980,blue:255,darkblue:139,plum:14524637,hotpink:16738740,magenta:16711935,purple:8388736,indigo:4915330,ghostwhite:16316671,silver:12632256,darkgray:11119017,grey:8421504,black:0}),VJe=["bisque","khaki","greenyellow","lightcyan","plum","ghostwhite"];function il(){const i=Object.entries(TG).filter(([t])=>!VJe.includes(t)),e=Math.floor(Math.random()*i.length);return i[e][1]}const HJe={props:{message:{type:String,required:!0},active:{type:Boolean,default:!0}}},zJe={key:0,class:"bimdata-empty"},jJe={class:"m-t-6"};function GJe(i,e,t,n,o,r){return t.active?(E(),L("div",zJe,[pt(i.$slots,"default",{},void 0,!0),C("p",jJe,G(t.message),1),pt(i.$slots,"footer",{},void 0,!0)])):te("",!0)}const uu=V(HJe,[["render",GJe],["__scopeId","data-v-5eb55030"]]),QJe=Object.entries(TG).reduce((i,e,t)=>(t%5===0?i.push([e]):i[i.length-1].push(e),i),[]),qJe={props:{selectedColor:{type:Number,default:null}},emits:["color-select"],data(){return{colorLines:QJe}},methods:{toColorString(i){return`#${i.toString(16).padStart(6,0)}`}}},KJe=["title","onClick"];function JJe(i,e,t,n,o,r){const s=P("BIMDataCard");return E(),K(s,{class:"color-selector"},{content:U(()=>[(E(!0),L($e,null,Mt(o.colorLines,(a,l)=>(E(),L("div",{key:`colorLine${l}`,class:"color-selector__line"},[(E(!0),L($e,null,Mt(a,([c,u],d)=>(E(),L("div",{key:`colorElement${d}ofColorLine${l}`,class:ce(["color-selector__line__element",{selected:u===t.selectedColor}]),style:le(`background-color: ${r.toColorString(u)}`),title:c,onClick:h=>i.$emit("color-select",{name:c,value:u})},null,14,KJe))),128))]))),128))]),_:1})}const M6=V(qJe,[["render",JJe],["__scopeId","data-v-502a89ad"]]),WJe="data:image/gif;base64,R0lGODlhxAF6AfcAAAEBAQAAAAMDAxwdHwAAAiotPg8PEAUFBdbW1vHy9/39/P38/vv7+gEAAERFSp6gqSEkMiwuOiotOPr7/01RXc7W2oeIizw8PNXY2D5BTf////T09KzAwqu+v//+//Pz8/Xz9LLFxef3+a+/wvXx9u7x+Y+RlPTz9v///PHy8/3+/vL086nAwa/Cw+X29i0tLUFBQi8vL+rr7i4uM3JycicqNS0uN3Jzc21tbd3d3aurq62trUVIVX19fnBwcHx8fBgWGtPT04yRnPPy9yUlJeXt9ikpKU1PV+Tk6tXa3AwMDCIiIoKCgszN1Hp6egoKChcXF0JGThIUHFZVWSotQPf5/O7v8ggICVhZX4uLjKCgoLCwsebn552dniguQR8fIIqMlRITEzI0PiYsPenp6gMLC6mqtPX19fX19uzs7Li4ubu7u7S0tMjIyZeZoCkvOff7/1JSUlNZXiYuPDMzM87Pz+Tk5JeXl97g3ywsLMDAwE9PT0tLSzc3N66trX19faenp+3t7bS0tb29vWRkZPDy7/Hx8UZHSSctQMPExN7h4SguQiEtRHV1dYSEhJGRkRgYGFhYWDo6OiguP9LS0mZmZvz+/15fX/Pz8f3/+6WlpaKnsjc9S36Ci+Xl5eTi4oGGlSoxQ/L29+Tm5j9GVVNcZmVlZHh6g9bc4sHGy+Lm6vD09ygvPnN1ft7h6hcWFauxt3Bzfd7h5Oz2+PLy9mVka2lqcsPL0lpdaHx6gmtwfl9nbW9vbwgICLS4xWxvdPTy8bCyu8DAxF9ibL7AzDQ4SJCaoF1lY2hoae719I6XohoaGlVVVS40QlVWVYmSn8rU1RMYFwgJBm5zf+n298DNzrfGx7fLzMvf32Rse7zMzsTS08DU1eHu8KStq7C/v9vv79To6M/j5KK4uExcXVBgZsbW2jxFSKLCx6CwtMjc3Y+ps5CfpUlhZ7S1sS83Sr/R3bTN6qnQ+zI6TjU8UzlBXTtEWzpCWTlCWzpDXDtCXDZCWra0sgAAAAAAAAAAACH/C05FVFNDQVBFMi4wAwEAAAAh/ilPcHRpbWl6ZWQgd2l0aCBodHRwczovL2V6Z2lmLmNvbS9vcHRpbWl6ZQAh+QQECgD/ACwAAAAAxAF6AQAI/wA3CBxIsKDBgwgTKlzIsKHDhwzzQCoEAqLFixgzatzIsaPHjxdpBBhJsqTJkyZ3gFzJsqXLjxYCAPrwsqbNmzhz6iQoEqXPnzJ3Ch1KNCEeJZGKKl3KtKnHnkCjklTptKrVjpKWXN3KtatQqFKjUvVKtqxAJgH0mF3Ltu1CsGF/jnVLV6meAI3O1N3LlyvcuCjn9h1s0wAdwogT7/wLOKXixyv7fIFMuXJHxo2nWt4cUgnnz6ATYs4cNLTpg3cEJDrNmvPozIJbh75bSbbtx68bx77NucEy3sD75ga8OzjlGE+4GF/Odnjc4swT3xCQQ2/061udh4WOva+mAEG6i/93ql0q9/F01wBQg7490fJi3SNuAyALTfn4bcIHej4/WQwNEOLfgC3tJxeBewEgyX0INqiRgT7156BVSkw04YUWQRgYhmvRAUAgHIb4FmkR3qbciSimqOKKLLbo4oswtngJeNaJaCNPJG7YmiQ59ujjjyTVceOQA2l4koRt3bHHkkwmRdASAdAhyZRUVmnllVhmqeWWXHaJ5RMBpEEkkUY69hiURzKYB3WsfREmGmPeWGZJSLK1hBEpWPfdFjWueWKNnLlJUZw2zqnZmXjqWZqYBgDgKJCQRhoViISKaOhIda71RaICpYbSpneGKuqopJZq6qmopqqqqYcAWumFly7/mtimhgxEXx644holg6/2ClmsmZpFq1ENHObrsbhFGmxZjUrp7LNSAgAJIaZQa2212F6r7bbcduvtt+CGK+645JZr7rnopqvuuuy26+61Hj7q47JkHSDpvfjmq+++/Pbr778AA0mvV43KG/DBCCes8MIMN3zwwF0V7PDEFFds8cUY6wsxVxJn7PHHIIcsMsIbb9XxyCinrPLKLB+q2MktxyzzzDT/W/JVMNes884898wfZDn7LPTQRK98M4UGF6300kxXfHRVYTQt9dRUB/y0U1EnXfXWXHdNHNBehy322Gk+pgTZaKe99dVNHRLD23DHLffcdNdt991456333nz3/+3334AHLvjghBdueOGQKIvs4ow/pXjjkEf+0HSQsi355ZY+jvnmmwPL+eeXew766IyLTvrpvZqO+upjqs7665lXDvvssQtM++2wak2i5bj3HprrvgePHvDCF38d8cYnHxzyyjcvG/POR/+77qTxLv31ZUGP/fbJys7995tpD/74dYlP/vlrmY/++l2pz/77VbkP//xKyU///Ytpjv/+5OnP//9FsR8A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itIuK4Fw6ModMEegmQG/8O5dzNihSr9Ci9ptTLmywsdML1q0zLkzYIlIMXsebVk0UNOkSVtNy3Zoyr41UaeerbY13deyX+amTXk179/AgwsfTry48ePIkytfzry58+fQo0ufTr269etDsWvXu3u796aav4v/v9p9vPme4c+rX8++vfv3VevCny9TK/37LrVakoq//0jf/gVYlYAEFmjggQgmqOCCDDbo4IMQRijhhBRWaOGFGGao4YYW4lYeh955CBqI7IlIYnsmnrjeY7CpqJ6HLq7owYwebBajeTus4dqN5oUyUDFC8HgeFZuVskCNQn7XFVtBtpWkkhY16eSTId5G5XlHXjleBmdp+d2MXoYp5phklmnmmWimqeaabLbp5ptwxinnnHTWaeedeOap55589unnn4AGKuighBZq6KGIJqrooow26uifKtj32aNiRUrQBRFI8IamnG7qaaegfipqqKSOamqplzaKCKV5seLFIml5/0HpJLSyihattdqq66689urrr8AGK+ywxBbr0CTGTtUVRpsmS9MYVSREzVvOhsRpKRzN4WO1O9HxF2GwcmutCYoBNplBnJwrbkeWwFGFL8syJB9h64bE5Y+chHuQqzwg4mq9Jb0Krrr0QgbwwQgnrLBxsi7s8MPedbIqxLpRbPHFGGes8cYcd+zxxyCHTFMAInNEMsklm5zyQwCsnFEABAzAzgDo5EXLzSfgTAuhBBBQDjvj1DyABePQDFbOSONs6C7klHEMOuuE5bJAAACwhxgCCLDLNNIYtEEyNoUQbAMDVF32AWgDggkmZQcVyABcwM1q1QJ4EAfdalO1gq1VH/8JQ89qf7AFdzorvWfLMHswwwR/B+5HyxuwVnjOfPbcswcELH6BFikIHoAjZ3gNgorWQFXNANssZzkBC5QdAwNbkBHI46CTCQ3qqWtjtHBkN9AA5nZpYAcXtEfe9hnIh85h5F8371XzySM/XO+/mw0AHQoQ//nXx4Pg/YnRh/8B9NzzfrYGdLvugSBDUy6k9/DHL//3vPsOgALp94w9DD10eeP8AISfcRB3Nsth7w5vSxL5Fki+6VENf4TJ3JEmaIcnMfCCxiPO/QizgxgEoAt64EUAcDA8U7RsamVTwOsa8YPracARiOGCIUyIws9A7gUf1MP2PlDDEy7lBq7DgAA4mMDDHhKQLnTY4B+KWMOD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UapcybKly5cwWe7YQDOmzZs4c+rcybOnz59AgwodSrSo0aNIkypdyrSp06dQo0qdSrWq1atYs2rdyrWr169gw4odS7as2bNo06pdy7at27dw48qdS7eu3bt48+rdy7ev37+AAwseTLiw4cOIEytezLix48eQI0ueTLmy5ZhpEOBAkPmy562bO38eTVU06dNRFahWgLq169ewY8ueTbu27du4c+vezbu379/AgwsfTry48ePIkytfzry58+fQo0ufTr269evYs2vfzr279+/gw4v/H0++vPnz6NOrX8++vfv38OPLn0+/vv37+PPr38+/v///AAYo4IAEFmjggQgmqOCCDDbo4IMQRijhhBRWaOGFGGao4YYcdujhhyCGKOKIJJZo4okopqjiiiy26OKLMMYo44w01mjjjTjmqOOOPPbo449ABinkkERyuMiRSHqh5CQQLelFkS4l6eQkVD7ZkJNQtlTAllUuKRCTV06ZpUpcdjklkgudOSZJiLSJyAAEQBABK3QqKZAlD0lp5ZoguTlGGVVIIeccSm6igkAP4KmQn17yKVKSCxjzRZm+VBHBlQQVMYEqjoaU5BdVNDFom3xYUgICoTwERxOniNKpRmXG/0rJBge8EsYyXxzgQBsewAFGAQgcMVAwVPj66kixcvlKFgoA0AUZALRRBwG3VqCCLZwgMQFBqRx70pxl1BqHAnncoYEAhjDQAAZGQEBQMwQN461JEhhQgi9PhLHavrPSIS8C3RoEx7x9fgqNJYOgq8G+ZPQaRzAFdTOQBAQXvOQAEqiiARcLN6IBL+ROgAIdo84pwRsVP0rFpxSosLAGMMAc8iqC+pkymyt/KsjLMV+gQh+RLsPozd8myesEN1xrSR+JQIAx0St9KkAqvS4sQw4X1Awm1PR2KYXCyVBLc8lnNso1rGOkDQEBMERBcjTUkl32nmdvpLagNWtNZd2ezv/NKCNy842Snn4TbqfgaP9dp5iI41T14x40zhLkVUu+EuW9Wq4S5pFrfhLnnn+OeegmgU46SaafrvrqrLfu+uuwxy4btQHU3oDtgNDkRwCO0FRJAGnQJPwJxBdv/PHIJ6/88Mw37/zz0Ec//EDSV2/99R2p+jIDZ2DvvfSX0W477rrz7jvw3y+vfvrst18TZx+4L3/zEG3f/fzsfzb+7QTkfsLuvTvB72SwPvwZEBMITKAC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SZKkPHgcS6pcybKlS4IePDy09LKmzZs4D8bMybOnz5w7fwodSvRj0KJIkypdyrSp06dQo0qdSrWq1atYs2rdyrWr169gw4odS9ZnhQIR0EpQy7ZthSYVBEALUrauyJht81LZy3eCX0t+7QoOGbOj4cKICw9efPew48QLFDCebBGy5cuKKWtWiLlz4s2gCX8OTbry6NKoU6tezbq169ewY8ueTbu27du4c+vezbu379/AgwsfTry48ePIkytfzry58+fQo0ufTr269evYs2vfzr279+/gw4v/H0++vPnz6NOrX8++vfv38OPLn0+/vv37+PPr38+/v///AAYo4IAEFmggRCckqOCCDDbo4IMbRCjhhBRWaOGFGGI4UIYcdughhRI99uGIJEJo4oklpqjihAIZ8sGKMF4YomMx1mjjjZjkqOOOPPbo4486VgKAAEAWaeSRP87IQCFINunkkzhCKeWTdBE55ZVFKonlllyiGOWXE8ZgJZgqaknmmV6miSaJPwQw5poemgmnhiOJg42deN5pZ07h9Onnn3/WcJCfAwEKzqGIJqroooW6AM5djkYqqQskScrNpZhmqumm2nBKUKecgirqqNeQWuqppQ5kTapyCYRqCLDGdhrrp7OSxEELuHbAwje75rrrRL0GK6yuxA5rLK4gzXnGssw26+yzXwokDQYrQGvttTciGMi23DLpbbfgpiHuuOSWOy5BaRAJlFNuvinVi/Aqa+F68nJIb710pgfCvvz26++/AAcsML/3DmzwwQgXjG+FCi88YUAAIfkEBQoAAgAsQADAANAAaAAACP8ANwgcSLCgwYMHVShcuFCAw4cQI0qcSLGixYsYM2rcyLGjx48SGYpU+FCew3jxRIBcybKly5cwY44cGVEePJUxc+rcybOnxZkia6a0ZMmn0aNIk14EqqGpBqVQo0pVytTpRBFPp2rdyhVj1aZdw4odG/KrvLNob2Yly7YtV6dW3cqdS7eu3bt48+rdy7ev37+AAwseTLiw4cOIE8tE4cFDgceQJ0meTLmyl8uYM2vezLmz58+gQ3eeoNgj48aRLateLbq169ewUz+GU7pjY7i4c+vezbu379/Ag/uuzfG28K/HkytfPpy4aePQmUufTr23c5DRq2vfrv267ezIw4P/H0++vPnz6L1rRC+evfv38N2rn0+/vv37+PPr38+/v///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stZcey32QWCHPfbZt5U9Itpst+3223DHLffcdNdt991456333lxZax0yCIAHLvjghBdueOB8j5Vzzt0d7vjjjifeN2YbVG755ZhnrvnmnEu+FeWchy766JZ7/nnakBOeXOqqm54VCH+zXvjqrLuuuMoi4L6ySbnnbrtUHHQg3wgdED+CfMgfb/zyzC/fUAjInxYQACH5BAUKAAAALNcA6AB6ADgAAAj/APMJHEiwoMGDCBMqXMiwoUN9ECNK1AegoiUVFTNq3Mixo8ePIEOKHEmy4sSTEAFoKMmypcuXME2iPDkBY8ybOHOWnElTgYaHQIMKHUqU50QVNnUqXarUqESkTKNKfek0ItSpWLN+rArxqtavYDsa9OAhrNmzY8ueXas1Ldu3U93Cndu0IFm6eHHKzcu35d6+gEX+DUxYrF21FMp0LFG4b1oNylRW9EWqMWG5UdSahGPZ8eHOoAE8rmcxdODBpgGjTs13NWuzXO15fc029mzaaO3p3s3balLcuXsLl/0beFjbxY1/Ra48uFGVyZtjdWrxovTr2LNr3869u/fv4MOLcx9Pvrz58+jTq1/Pvv1UDfCrb5hPv779+/jz198Of2Vp/QAGCCB/GK1g4IEIJqjgggw2yB90DUYo4YQGcreBfALap1GG+FkIIYf5bQgieC6UKJkLJ0aFIoraseDiizB2IOOMHNRo44045tjCjjz22AJwAQEAIfkEBQoAAwAseAC4ANkAaAAACP8ABwgEILCgwYMIEypcyLChw4cQI0qcSLGiRYMKNGggeLGjx48gQ4ocWVEAyZMoU6pcGVIBR5YwY8qcORLNS5o4c+rcOSBAT55Agwod6dPn0KNIkz68qbSp06FdmD6dSlUmgEFGq2rdmhIAHqlcw4qtGGfj2LNoKYJNy7btQLdw466NS5dqRrN18+rdy7ev37+AAwseTLiw4cOIEytezLix48eQI0ueTLmy5cuYM2vezLmz58+gQ4seTbq06dOoU6tezbq169ewY8ueTbu27du4c+suna+379/1CsKxtLsq8OP17g0gXpwqcuQam099PiD5PXv2LGl/zr279+/gw4v/H0++vPnz6L1rl/40/Hr2Td0zh59UPv2t139Hv288//X9/E3n3z0ABujUgARqYKCA+im44IEDFvggUghKOOFQFTp4IYURarghhh1+yGGDIh6VYYkg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Sc1qRjOZQaSkNbfJzW1ic0wxCac4x0nOcpqznN88pzrXyU5xKrOb8PyAPOMpzXfOk5747OYyRyRJgn76858ADahABwrQZHKgAwgdQUIVytCFNvShEG1ICGi3z8kk4aIYxahfzsDRjnr0o7j0DTWSMdKSknQWKE0pSiuaEZB61CYBAQAh+QQFCgAAACywAHUA8ACuAAAI/wABCBxIsKDBgwgTKlzIsKHDhxAjSpxIseLBDRYzatzIsaPHjyALYgxJsqTJkyhP7tjAMqXLlzBjypxJs6bNmzhz6tzJs6fPn0CDCh1KtKjRo0iTKl3KtKnTp1CjSp1KtarVq1izat3KtavXr2DDih1LtqzZs2jTql3Ltq3bt3Djyp1Lt67du3jz6pWYBgAOAH33Cjb4N/DgwYYPI1aQRoHix5AjS55MubLly5gza97MubPnz6BDix5NurTp06hTq17NurXr17Bjy55Nu7bt27hz697Nu7fv38CDCx9OvLjx48iTK1/OvLnz59CjS59Ovbr169iza9/Ovbv37+DDi94fT768+fPo06tfz769+/fw48ufT7++/fv48+vfz7+///8ABijggAQWaOCBCCao4IIMNujggxBGKOGEFFZo4YUYZqjhhhx26OGHIIYo4ogklmjiiSimqOKKLLYYlAYwCsTSjDTWaOONON54HYwaDIRRjkAGCeSOKgC2wpFIJqnkkkw22eSORjop5ZRUHondSELiSFCWOkLJZZBbfsmdC2QCZqYLZnqEJprWseDmm3B2IOecHNRp55145tnCnnz22YKLOlWAATaDCkqoTV+O9FsyjFLT6CyPRkqfomHaFBAAOw==",ZJe={distance:"m",path:"m",angle:"°",surface:"m²"},YJe="measure2d_measurements",XJe={name:"BIMDataMeasure2D",components:{ColorSelector:M6,BIMDataEmpty:uu},data(){return{guide:WJe,carrier:null,ruler2dPluginAvailable:!1,surface2dPluginAvailable:!1,angle2dPluginAvailable:!1,path2dPluginAvailable:!1,selectedMeasurementPlugin:null,currentColor:null,currentPlugin:null,currentGroup:null,measurements:[],isUpdated:!1,hasBeenOpened:!1,pluginViewer:{},calibrating:!1}},computed:{storageKey(){return`${YJe}-${this.carrier}`},model(){return this.pluginViewer.model?di(this.carrier==="dwg"?this.pluginViewer.model.stateModel:this.pluginViewer.model):null},isCalibrated(){return this.carrier!=="plan"||this.model&&this.model.sizeRatio!=null},standard(){return this.model.sizeRatio||1}},watch:{model(i){this.measurements.forEach(e=>e.destroy()),this.measurements=[],i&&(this.restoreSavedMeasurements(),this.setStandard(i.sizeRatio))},currentGroup(i){this.measurements.forEach(e=>{e.visible=this.hasBeenOpened&&e.group===i})},measurements(i){i.forEach(e=>{e.visible=this.hasBeenOpened&&e.group===this.currentGroup})},selectedMeasurementPlugin(i){const e=this.measurementPlugins.get(i);if(this.currentPlugin&&this.currentPlugin!==e&&(this.currentPlugin.disable(),this.pathValidationModal&&this.closePathValidationModal()),e&&(e.enable(),i==="path")){const t=this;this.$viewer.localContext.modals.pushModal({created(){t.pathValidationModal=this},render(){return vn(y6,{width:"100%",class:"bimdata-measure2d__path-validation"},{content:()=>vn("div",{style:"display: flex; justify-content: space-between; align-items: center;"},[vn("div",this.$t("measure2d.validate_path")),vn(oo,{fill:!0,radius:!0,color:"high",width:"121px",onClick:t.onPathCancel},{default:()=>this.$t("global.cancel")}),vn(oo,{fill:!0,radius:!0,color:"primary",width:"121px",onClick:t.onPathValidate},{default:()=>this.$t("global.validate")})])})}},null,{display:"banner"})}this.currentPlugin=e},currentColor(i){this.measurementPlugins.forEach(e=>{e.color=i})}},mounted(){const i=this.$viewer.localContext.viewer;if(!i||!i.viewer){const r="Measure2d plugin cannot work without a viewer2d, dwg or plan plugin and viewer.";throw console.error(r),new Error(r)}this.carrier=i.plugin.name,this.pluginViewer=i;const e=i.plugins?.ruler,t=i.plugins?.surface,n=i.plugins?.angle,o=i.plugins?.path;this.measurementPlugins=new Map,e&&(this.measurementPlugins.set("distance",e),this.ruler2dPluginAvailable=!0,e.on("add",r=>{this.isUpdated=!0,this.makeMeasurement({type:"distance",get value(){return r.length},color:this.currentColor,object:r}),this.selectedMeasurementPlugin=null,this.currentColor=il()})),t&&(this.measurementPlugins.set("surface",t),this.surface2dPluginAvailable=!0,t.on("add",r=>{this.isUpdated=!0,this.makeMeasurement({type:"surface",get value(){return r.surface},color:this.currentColor,object:r}),this.selectedMeasurementPlugin=null,this.currentColor=il()})),n&&(this.measurementPlugins.set("angle",n),this.angle2dPluginAvailable=!0,n.on("add",r=>{this.isUpdated=!0,this.makeMeasurement({type:"angle",get value(){return r.angle},color:this.currentColor,object:r}),this.selectedMeasurementPlugin=null,this.currentColor=il()})),o&&(this.measurementPlugins.set("path",o),this.path2dPluginAvailable=!0,o.on("add",r=>{this.isUpdated=!0,this.makeMeasurement({type:"path",get value(){return r.length},color:this.currentColor,object:r}),this.selectedMeasurementPlugin=null,this.currentColor=il()})),this.currentColor=il(),this.carrier==="viewer2d"||this.carrier==="plan"?this.$watch(()=>this.pluginViewer.selectedStorey,r=>{this.currentGroup=r?.name}):this.$watch(()=>this.pluginViewer.model,r=>{this.currentGroup=r?.id})},onOpen(){document.addEventListener("keydown",this.onKeyDown),this.pluginViewer.viewer.ui.mode=null,this.hasBeenOpened=!0,this.measurements.forEach(i=>{i.visible=i.group===this.currentGroup})},onClose(){document.removeEventListener("keydown",this.onKeyDown),this.pluginViewer.viewer.ui.mode="pick",this.selectedMeasurementPlugin=null,this.pluginViewer.plugins.caliper?.disable(),this.calibrating=!1},methods:{setStandard(i){[this.pluginViewer.plugins?.ruler,this.pluginViewer.plugins?.surface,this.pluginViewer.plugins?.path].filter(Boolean).forEach(e=>{e.standard=i||1})},toggleCalibrate(){this.calibrating?(this.pluginViewer.plugins.caliper?.disable(),this.calibrating=!1):this.onCalibrateClick()},onCalibrateClick(){this.pluginViewer.plugins.caliper.enable(this.onCalibrationValidated,this.onCalibrationCancel),this.calibrating=!0},async onCalibrationValidated(i){this.pluginViewer.plugins.caliper.disable();const e=this.$viewer.api.cloudId,t=this.$viewer.api.projectId;try{this.model.sizeRatio=i,this.setStandard(i),this.$viewer.api.permissions.hasModelWritePermission&&await this.$viewer.api.apiClient.modelApi.updateModel(e,this.model.id,t,{size_ratio:i}),this.$viewer.localContext.hub.emit("alert",{type:"success",message:this.$t("measure2d.calibration_success")})}catch(n){console.error(n.message),this.$viewer.localContext.hub.emit("alert",{type:"error",message:n.message})}finally{this.calibrating=!1}},onCalibrationCancel(){this.calibrating=!1,this.pluginViewer.plugins.caliper.disable()},isHideElementDisabled(i){return i.group!==this.currentGroup},closePathValidationModal(){this.pathValidationModal.$emit("close"),this.pathValidationModal=null},onPathCancel(){this.selectedMeasurementPlugin=null,this.pathValidationModal&&this.closePathValidationModal()},onPathValidate(){const e=this.measurementPlugins.get(this.selectedMeasurementPlugin).validate();this.closePathValidationModal(),e||(this.selectedMeasurementPlugin=null)},makeMeasurement(i){const{type:e,group:t,name:n,color:o,object:r}=i;let s=o,a=!0,l;switch(e){case"distance":l=[r.startPoint,r.endPoint];break;case"angle":l=[r.startPoint,r.anglePoint,r.endPoint];break;case"surface":l=r.points;break;case"path":l=r.points;break}const c=this,u={id:r.id,group:t||this.currentGroup,unit:ZJe[e],get value(){return c.standard,i.value.toFixed(2)},name:n||e,type:e,get color(){return s},get colorString(){return`#${s.toString(16).padStart(6,0)}`},set color(d){s=d,r.colorize(d)},get visible(){return a},set visible(d){a=d,r.visible=d},get points(){return l},destroy(){r.destroy()},nameEditing:!1,colorEditing:!1};return this.measurements.push(u),u},onTagClick(i){this.measurements.filter(e=>e!==i).forEach(e=>e.colorEditing=!1),i.colorEditing=!0,this.isUpdated=!0},onElementNameClick(i){i.nameEditing=!0,this.isUpdated=!0,this.$nextTick(()=>{this.$refs.elementInput&&this.$refs.elementInput.focus()})},onInputBlur(i){i.nameEditing=!1},onAddMeasurementClick(i){this.selectedMeasurementPlugin===i?this.selectedMeasurementPlugin=null:this.selectedMeasurementPlugin=i},onKeyDown(i){i.key==="Escape"&&this.onEscapeDown()},onEscapeDown(){this.selectedMeasurementPlugin=null,this.measurements.forEach(i=>{i.nameEditing=!1,i.colorEditing=!1})},onHideMeasurementClick(i){i.visible=!i.visible},onDeleteMeasurementClick(i){i.destroy(),this.measurements.splice(this.measurements.indexOf(i),1),this.isUpdated=!0},getSavedMeasurements(){let i={};try{const e=localStorage.getItem(this.storageKey)??"{}";i=JSON.parse(e)}catch(e){console.error(e),localStorage.removeItem(this.storageKey)}return i},restoreSavedMeasurements(){const i=String(this.pluginViewer.model.id),e=this.getSavedMeasurements(),t=e[i]||[];try{this.ruler2dPluginAvailable&&this.restoreMeasurements(t.filter(n=>n.type==="distance")),this.surface2dPluginAvailable&&this.restoreMeasurements(t.filter(n=>n.type==="surface")),this.angle2dPluginAvailable&&this.restoreMeasurements(t.filter(n=>n.type==="angle")),this.path2dPluginAvailable&&this.restoreMeasurements(t.filter(n=>n.type==="path"))}catch{e[i]=[],localStorage.setItem(this.storageKey,e)}},restoreMeasurements(i){i.forEach(e=>{const t=this.measurementPlugins.get(e.type),o=(this.model.storeys??[]).find(s=>s.name===e.group)?.plans[0]??{plan:this.model},r=t.create(e.points,o);r.colorize(e.color),this.makeMeasurement({type:e.type,group:e.group,name:e.name,color:e.color,object:r,get value(){return e.type==="surface"?r.surface:e.type==="angle"?r.angle:r.length}})})},onSaveMeasurementsClick(){const i=String(this.pluginViewer.model.id),e=this.getSavedMeasurements();e[i]=this.measurements.map(t=>({type:t.type,group:t.group,name:t.name,color:t.color,points:t.points})),localStorage.setItem(this.storageKey,JSON.stringify(e)),this.isUpdated=!1}}},$Je={class:"bimdata-measure2d"},eWe={key:0,class:"bimdata-measure2d__actions-0"},tWe={class:"bimdata-measure2d__actions-1"},iWe={class:"bimdata-measure2d__actions-2"},nWe={class:"bimdata-measure2d__list"},oWe={class:"bimdata-measure2d__list__element"},sWe={class:"bimdata-measure2d__list__element__label"},rWe=["onClick"],aWe={class:"bimdata-measure2d__list__element__tag"},lWe=["onClick"],cWe={class:"bimdata-measure2d__list__element__buttons"},uWe={key:2,class:"bimdata-measure2d--not-calibrated"},dWe={key:0,class:"bimdata-measure2d--not-calibrated__guide"},hWe=["src"];function pWe(i,e,t,n,o,r){const s=P("BIMDataIconSave"),a=P("BIMDataButton"),l=P("BIMDataIconCaliper"),c=P("BIMDataTooltip"),u=P("BIMDataIconDistance"),d=P("BIMDataIconAngle"),h=P("BIMDataIconSurface"),p=P("BIMDataIconPathway"),A=P("BIMDataIcon"),f=P("BIMDataInput"),g=P("ColorSelector"),m=P("BIMDataIconHide"),v=P("BIMDataIconShow"),y=P("BIMDataIconDelete"),w=P("BIMDataPaginatedList"),x=P("BIMDataIllustration"),M=P("BIMDataEmpty"),B=li("click-away");return E(),L("div",$Je,[r.model?r.isCalibrated?(E(),L($e,{key:1},[C("div",tWe,[k(a,{class:"bimdata-measure2d__actions-1__btn-save",color:"primary",fill:"",radius:"",icon:"",disabled:!o.isUpdated,onClick:r.onSaveMeasurementsClick},{default:U(()=>[k(s,{size:"xs",margin:"0 6px 0 0"}),C("span",null,G(i.$t("measure2d.save_measurements")),1)]),_:1},8,["disabled","onClick"]),k(c,{text:i.$t("measure2d.calibrate")},{default:U(()=>[i.$viewer.api.permissions.hasModelWritePermission&&(o.carrier==="plan"||o.carrier==="dwg")?(E(),K(a,{key:0,color:o.calibrating?"primary":"default",fill:"",radius:"",icon:"",class:"bimdata-measure2d__actions-1__caliper",onClick:r.toggleCalibrate},{default:U(()=>[k(l,{size:"xs"})]),_:1},8,["color","onClick"])):te("",!0)]),_:1},8,["text"])]),C("div",iWe,[o.ruler2dPluginAvailable?(E(),K(a,{key:0,color:o.selectedMeasurementPlugin==="distance"?"primary":"default",fill:"",radius:"",onClick:e[0]||(e[0]=S=>r.onAddMeasurementClick("distance"))},{default:U(()=>[k(u,{size:"s",margin:"0 6px 0 0"}),C("span",null," + "+G(i.$t("measure2d.distance_measurement")),1)]),_:1},8,["color"])):te("",!0),o.angle2dPluginAvailable?(E(),K(a,{key:1,color:o.selectedMeasurementPlugin==="angle"?"primary":"default",fill:"",radius:"",onClick:e[1]||(e[1]=S=>r.onAddMeasurementClick("angle"))},{default:U(()=>[k(d,{size:"s",margin:"0 6px 0 0"}),C("span",null," + "+G(i.$t("measure2d.angle_measurement")),1)]),_:1},8,["color"])):te("",!0),o.surface2dPluginAvailable?(E(),K(a,{key:2,color:o.selectedMeasurementPlugin==="surface"?"primary":"default",fill:"",radius:"",onClick:e[2]||(e[2]=S=>r.onAddMeasurementClick("surface"))},{default:U(()=>[k(h,{size:"s",margin:"0 6px 0 0"}),C("span",null," + "+G(i.$t("measure2d.surface_measurement")),1)]),_:1},8,["color"])):te("",!0),o.path2dPluginAvailable?(E(),K(a,{key:3,color:o.selectedMeasurementPlugin==="path"?"primary":"default",fill:"",radius:"",onClick:e[3]||(e[3]=S=>r.onAddMeasurementClick("path"))},{default:U(()=>[k(p,{size:"s",margin:"0 6px 0 0"}),C("span",null," + "+G(i.$t("measure2d.path_measurement")),1)]),_:1},8,["color"])):te("",!0)]),C("div",nWe,[o.measurements.length>0?(E(),K(w,{key:0,list:o.measurements,"element-key":"id",style:{overflow:"unset"}},{element:U(({element:S})=>[C("div",oWe,[C("div",sWe,[k(A,{name:S.type==="path"?"pathway":S.type,size:"m",margin:"0 12px 0 0"},null,8,["name"]),S.nameEditing?(E(),K(f,{key:0,ref:"elementInput",modelValue:S.name,"onUpdate:modelValue":I=>S.name=I,onBlur:I=>S.nameEditing=!1,onKeypress:Ut(I=>S.nameEditing=!1,["enter"])},null,8,["modelValue","onUpdate:modelValue","onBlur","onKeypress"])):(E(),L("span",{key:1,onClick:I=>r.onElementNameClick(S)},G(S.name),9,rWe))]),C("div",aWe,[C("span",{class:"bimdata-measure2d__list__element__tag__content",style:le(`color: ${S.colorString}; background-color: ${S.colorString}20;`),onClick:I=>r.onTagClick(S)},G(S.value)+" "+G(S.unit),13,lWe),S.colorEditing?yt((E(),K(g,{key:0,class:"bimdata-measure2d__list__element__tag__color-selector","selected-color":S.color,onColorSelect:I=>{S.color=I.value,S.colorEditing=!1}},null,8,["selected-color","onColorSelect"])),[[B,()=>{S.colorEditing=!1}]]):te("",!0)]),C("div",cWe,[k(a,{icon:"",class:"m-r-6",color:"granite",ghost:"",radius:"",disabled:r.isHideElementDisabled(S),onClick:I=>r.onHideMeasurementClick(S)},{default:U(()=>[S.visible?(E(),K(m,{key:0,size:"s"})):(E(),K(v,{key:1,size:"s"}))]),_:2},1032,["disabled","onClick"]),k(a,{icon:"",ghost:"",radius:"",color:"granite",onClick:I=>r.onDeleteMeasurementClick(S)},{default:U(()=>[k(y,{size:"m"})]),_:1},8,["onClick"])])])]),_:1},8,["list"])):(E(),K(M,{key:1,message:i.$t("measure2d.empty")},{default:U(()=>[k(x,{name:"emptyBucket"})]),_:1},8,["message"]))])],64)):(E(),L("div",uWe,[o.calibrating?(E(),L("div",dWe,[C("img",{src:o.guide},null,8,hWe)])):(E(),K(x,{key:1,name:"emptyMeasure"})),C("div",null,G(o.calibrating?i.$t("measure2d.calibrating"):i.$t("measure2d.not_calibrated")),1),k(a,{color:"primary",fill:"",radius:"",icon:"",width:"150px",disabled:o.calibrating,onClick:e[4]||(e[4]=S=>r.onCalibrateClick())},{default:U(()=>[k(l,{size:"s",margin:"0 var(--spacing-unit) 0 0"}),Ke(" "+G(i.$t("measure2d.calibrate")),1)]),_:1},8,["disabled"])])):(E(),L("div",eWe,G(i.$t("measure2d.no_model"))+". ",1))])}const fWe={name:"measure2d",i18n:{de:{save_measurements:"Speichern",distance_measurement:"Entfernung",angle_measurement:"Winkel",surface_measurement:"Oberfläche",path_measurement:"Weg",empty:"Sie haben derzeit keine gespeicherten Messungen.",tooltip:"Messen",validate_path:"Klicken Sie auf „Bestätigen“, um die Zeichnung zu beenden.",calibrate:"Kalibrierung",calibrating:"Bitte skizzieren und bestätigen Sie Ihren Standard",not_calibrated:"Um das Messwerkzeug verwenden zu können, stellen Sie sicher, dass Sie Ihren Plan kalibriert haben.",no_model:"Wählen Sie ein Modell aus, um Messungen durchführen zu können.",modal_error:"Es muss sich um eine strikte positive Zahl handeln",calibration_success:"Plan erfolgreich kalibriert"},en:{save_measurements:"Save",distance_measurement:"Distance",angle_measurement:"Angle",surface_measurement:"Surface",path_measurement:"Path",empty:"There is currently no saved measurement.",tooltip:"Measurement tool",validate_path:"Click on “validate” to end the path.",calibrate:"Calibration",calibrating:"Please trace and validate your stallion",not_calibrated:"To use the measurement tool, make sure you have calibrated your plan.",no_model:"Select a model to be able to perform measurements",modal_error:"Must be a strictly positive number",calibration_success:"Successfully calibrated plan"},es:{save_measurements:"Guardar",distance_measurement:"Distancia",angle_measurement:"Ángulo",surface_measurement:"Superficie",path_measurement:"Camino",empty:"Actualmente no hay ninguna medición guardada.",tooltip:"Herramienta de medición",validate_path:"Haga clic en “validar†para finalizar el camino.",calibrate:"Calibración",calibrating:"Rastree y valide su patrón",not_calibrated:"Para poder utilizar la herramienta de medición, asegúrese de haber calibrado su plano.",no_model:"Seleccionar un modelo para poder realizar mediciones",modal_error:"El número debe ser necesariamente positivo",calibration_success:"Plano calibrado de forma correcta"},fr:{save_measurements:"Sauvegarder",distance_measurement:"Distance",angle_measurement:"Angle",surface_measurement:"Surface",path_measurement:"Chemin",empty:"Vous n’avez actuellement aucune mesure enregistrée.",tooltip:"Outil de mesure",validate_path:"Cliquer sur “valider” pour terminer le tracé.",calibrate:"Etalonnage",calibrating:"Veuillez traçer et valider votre étalon",not_calibrated:"Pour pouvoir utiliser l’outil de mesure, assurez-vous d’avoir calibré votre plan.",no_model:"Selectionner un model pour pouvoir réaliser des mesures",modal_error:"Doit être un nombre strictement positif",calibration_success:"Plan calibré avec succès"},it:{save_measurements:"Salva",distance_measurement:"Distanza",angle_measurement:"Angolo",surface_measurement:"Superficie",path_measurement:"Percorso",empty:"Attualmente non hai misure salvate.",tooltip:"Strumento di misura",validate_path:'Clicca su "OK" per completare il percorso.',calibrate:"Calibrazione",calibrating:"Indica e conferma il tuo campione",not_calibrated:"Per poter utilizzare lo strumento di misurazione, assicurati di aver calibrato il tuo progetto.",no_model:"Seleziona un modello per eseguire delle misurazioni",modal_error:"Deve essere un numero positivo",calibration_success:"Progetto calibrato correttamente"}},component:V(XJe,[["render",pWe],["__scopeId","data-v-be54f8aa"]]),addToWindows:["2d","plan"],button:{tooltip:"measure2d.tooltip",position:"right",content:"panel",keepOpen:!0,icon:{component:"BIMDataIconMeasure",options:{size:"m"}}}};function AWe(i){return{created(){i.pathValidationModal=this},render(){return vn(y6,{width:"100%",class:"bimdata-measure-dwg__path-validation"},{content:()=>vn("div",{style:"display: flex; justify-content: space-between; align-items: center;"},[vn("div",this.$t("measureDwg.validate_path")),vn(oo,{fill:!0,radius:!0,color:"high",width:"121px",onClick:i.onPathCancel},{default:()=>this.$t("global.cancel")}),vn(oo,{fill:!0,radius:!0,color:"primary",width:"121px",onClick:i.onPathValidate},{default:()=>this.$t("global.validate")})])})}}}const kG="BIMDataViewer-DWG_measurements",mWe={name:"BIMDataMeasureDWG",components:{ColorSelector:M6,BIMDataEmpty:uu},data(){return{distanceMeasurementPluginAvailable:!1,surfaceMeasurementPluginAvailable:!1,angleMeasurementPluginAvailable:!1,pathMeasurementPluginAvailable:!1,selectedMeasurementPlugin:null,currentColor:null,currentPlugin:null,measurements:[],isUpdated:!1,hasBeenOpened:!1,pluginViewer:{},calibrating:!1}},computed:{model(){return di(this.pluginViewer.model)},modelId(){return this.model?.id??null},standard(){return this.model?.stateModel?.sizeRatio??1}},watch:{model(i){this.measurements.forEach(e=>e.destroy()),this.measurements=[],i&&this.restoreSavedMeasurements(i)},modelId(i){this.measurements.forEach(e=>{e.visible=this.hasBeenOpened&&e.modelId===i})},measurements(i){i.forEach(e=>{e.visible=this.hasBeenOpened&&e.modelId===this.modelId})},selectedMeasurementPlugin(i){const e=this.measurementPlugins.get(i);this.currentPlugin&&this.currentPlugin!==e&&(this.currentPlugin.disable(),this.pathValidationModal&&this.closePathValidationModal()),e&&(e.enable(t=>{this.isUpdated=!0,this.measurements.push(t),this.selectedMeasurementPlugin=null,this.currentColor=il()}),i==="path"&&this.$viewer.localContext.modals.pushModal(AWe(this),null,{display:"banner"})),this.currentPlugin=e},currentColor(i){this.measurementPlugins.forEach(e=>{e.color=i})}},unmounted(){this.pluginViewer.plugins.caliper.disable(),this.pluginViewer.viewer.inputs.pickSnapMargin=0},mounted(){const i=this.$viewer.localContext.viewer;if(!i||!i.viewer){const r="Measure2d plugin cannot work without a viewer dwg plugin and viewer (engine2d).";throw console.error(r),new Error(r)}this.pluginViewer=i;const e=i.plugins?.distanceMeasurementPlugin,t=i.plugins?.surfaceMeasurementPlugin,n=i.plugins?.angleMeasurementPlugin,o=i.plugins?.pathMeasurementPlugin;this.measurementPlugins=new Map,e&&(this.measurementPlugins.set("distance",e),this.distanceMeasurementPluginAvailable=!0),t&&(this.measurementPlugins.set("surface",t),this.surfaceMeasurementPluginAvailable=!0),n&&(this.measurementPlugins.set("angle",n),this.angleMeasurementPluginAvailable=!0),o&&(this.measurementPlugins.set("path",o),this.pathMeasurementPluginAvailable=!0),this.currentColor=il()},onOpen(){document.addEventListener("keydown",this.onKeyDown),this.pluginViewer.ui.disableAll(),this.hasBeenOpened=!0,this.measurements.forEach(i=>{i.visible=i.modelId===this.modelId})},onClose(){document.removeEventListener("keydown",this.onKeyDown),this.pluginViewer.ui.enableAll(),this.selectedMeasurementPlugin=null,this.pluginViewer.plugins.caliper.disable(),this.calibrating=!1,this.pluginViewer.viewer.inputs.pickSnapMargin=0},methods:{onSaveMeasurementsClick(){if(!this.model||!this.isUpdated)return;const i=kG+"_"+this.model.id,e=this.measurements.map(t=>t.serialize());localStorage.setItem(i,JSON.stringify(e)),this.isUpdated=!1},restoreSavedMeasurements(i){const e=kG+"_"+i.id;(JSON.parse(localStorage.getItem(e))||[]).forEach(n=>{const o=this.measurementPlugins.get(n.type);if(o){const r=o.deserialize(n);this.measurements.push(r)}}),this.isUpdated=!1},toggleCalibrate(){this.calibrating?(this.pluginViewer.plugins.caliper.disable(),this.calibrating=!1):this.onCalibrateClick()},onCalibrateClick(){this.pluginViewer.plugins.caliper.enable(this.onCalibrationValidated,this.onCalibrationCancel),this.calibrating=!0},async onCalibrationValidated(i){this.pluginViewer.plugins.caliper.disable();const e=this.$viewer.api.cloudId,t=this.$viewer.api.projectId;try{this.model.stateModel.sizeRatio=i,this.$viewer.api.permissions.hasModelWritePermission&&await this.$viewer.api.apiClient.modelApi.updateModel(e,this.model.stateModel.id,t,{size_ratio:i}),this.measurements.forEach(n=>n.updateText()),this.$viewer.localContext.hub.emit("alert",{type:"success",message:this.$t("measureDwg.calibration_success")})}catch(n){console.error(n.message),this.$viewer.localContext.hub.emit("alert",{type:"error",message:n.message})}finally{this.calibrating=!1}},onCalibrationCancel(){this.calibrating=!1,this.pluginViewer.plugins.caliper.disable()},closePathValidationModal(){this.pathValidationModal.$emit("close"),this.pathValidationModal=null},onPathCancel(){this.selectedMeasurementPlugin=null,this.pathValidationModal&&this.closePathValidationModal()},onPathValidate(){const e=this.measurementPlugins.get(this.selectedMeasurementPlugin).validate();this.closePathValidationModal(),e||(this.selectedMeasurementPlugin=null)},onTagClick(i){this.measurements.filter(e=>e!==i).forEach(e=>e.colorEditing=!1),i.colorEditing=!0,this.isUpdated=!0},onElementNameClick(i){i.nameEditing=!0,this.isUpdated=!0,this.$nextTick(()=>{this.$refs.elementInput&&this.$refs.elementInput.focus()})},onAddMeasurementClick(i){this.selectedMeasurementPlugin===i?this.selectedMeasurementPlugin=null:this.selectedMeasurementPlugin=i},onKeyDown(i){i.key==="Escape"?(this.selectedMeasurementPlugin=null,this.measurements.forEach(e=>{e.nameEditing=!1,e.colorEditing=!1})):i.key==="Enter"&&this.pathValidationModal&&this.onPathValidate()},onDeleteMeasurementClick(i){i.destroy(),this.measurements.splice(this.measurements.indexOf(i),1),this.isUpdated=!0}}},gWe={class:"bimdata-measure-dwg"},yWe={key:0,class:"bimdata-measure-dwg__actions-0"},vWe={class:"bimdata-measure-dwg__actions-1"},wWe={class:"bimdata-measure-dwg__actions-2"},CWe={class:"bimdata-measure-dwg__list"},bWe={class:"bimdata-measure-dwg__list__element"},xWe={class:"bimdata-measure-dwg__list__element__label"},MWe=["onClick"],EWe={class:"bimdata-measure-dwg__list__element__tag"},BWe=["onClick"],IWe={class:"bimdata-measure-dwg__list__element__buttons"};function SWe(i,e,t,n,o,r){const s=P("BIMDataIconSave"),a=P("BIMDataButton"),l=P("BIMDataIconCaliper"),c=P("BIMDataIconDistance"),u=P("BIMDataIconAngle"),d=P("BIMDataIconSurface"),h=P("BIMDataIconPathway"),p=P("BIMDataIcon"),A=P("BIMDataInput"),f=P("ColorSelector"),g=P("BIMDataIconHide"),m=P("BIMDataIconShow"),v=P("BIMDataIconDelete"),y=P("BIMDataPaginatedList"),w=P("BIMDataIllustration"),x=P("BIMDataEmpty"),M=li("click-away");return E(),L("div",gWe,[r.model?(E(),L($e,{key:1},[C("div",vWe,[k(a,{class:"bimdata-measure-dwg__actions-1__btn-save",color:"primary",fill:"",radius:"",icon:"",disabled:!o.isUpdated,onClick:r.onSaveMeasurementsClick},{default:U(()=>[k(s,{size:"xs",margin:"0 6px 0 0"}),C("span",null,G(i.$t("measureDwg.save_measurements")),1)]),_:1},8,["disabled","onClick"]),i.$viewer.api.permissions.hasModelWritePermission?(E(),K(a,{key:0,color:o.calibrating?"primary":"default",fill:"",radius:"",icon:"",class:"bimdata-measure-dwg__actions-1__caliper",onClick:r.toggleCalibrate},{default:U(()=>[k(l,{size:"xs"})]),_:1},8,["color","onClick"])):te("",!0)]),C("div",wWe,[o.distanceMeasurementPluginAvailable?(E(),K(a,{key:0,color:o.selectedMeasurementPlugin==="distance"?"primary":"default",fill:"",radius:"",onClick:e[0]||(e[0]=B=>r.onAddMeasurementClick("distance"))},{default:U(()=>[k(c,{size:"s",margin:"0 6px 0 0"}),C("span",null," + "+G(i.$t("measureDwg.distance_measurement")),1)]),_:1},8,["color"])):te("",!0),o.angleMeasurementPluginAvailable?(E(),K(a,{key:1,color:o.selectedMeasurementPlugin==="angle"?"primary":"default",fill:"",radius:"",onClick:e[1]||(e[1]=B=>r.onAddMeasurementClick("angle"))},{default:U(()=>[k(u,{size:"s",margin:"0 6px 0 0"}),C("span",null," + "+G(i.$t("measureDwg.angle_measurement")),1)]),_:1},8,["color"])):te("",!0),o.surfaceMeasurementPluginAvailable?(E(),K(a,{key:2,color:o.selectedMeasurementPlugin==="surface"?"primary":"default",fill:"",radius:"",onClick:e[2]||(e[2]=B=>r.onAddMeasurementClick("surface"))},{default:U(()=>[k(d,{size:"s",margin:"0 6px 0 0"}),C("span",null," + "+G(i.$t("measureDwg.surface_measurement")),1)]),_:1},8,["color"])):te("",!0),o.pathMeasurementPluginAvailable?(E(),K(a,{key:3,color:o.selectedMeasurementPlugin==="path"?"primary":"default",fill:"",radius:"",onClick:e[3]||(e[3]=B=>r.onAddMeasurementClick("path"))},{default:U(()=>[k(h,{size:"s",margin:"0 6px 0 0"}),C("span",null," + "+G(i.$t("measureDwg.path_measurement")),1)]),_:1},8,["color"])):te("",!0)]),C("div",CWe,[o.measurements.length>0?(E(),K(y,{key:0,list:o.measurements,"element-key":"id",style:{overflow:"unset"}},{element:U(({element:B})=>[C("div",bWe,[C("div",xWe,[k(p,{name:B.type==="path"?"pathway":B.type,size:"m",margin:"0 12px 0 0"},null,8,["name"]),B.nameEditing?(E(),K(A,{key:0,ref:"elementInput",modelValue:B.name,"onUpdate:modelValue":S=>B.name=S,onBlur:S=>B.nameEditing=!1,onKeypress:Ut(S=>B.nameEditing=!1,["enter"])},null,8,["modelValue","onUpdate:modelValue","onBlur","onKeypress"])):(E(),L("span",{key:1,onClick:S=>r.onElementNameClick(B)},G(B.name),9,MWe))]),C("div",EWe,[C("span",{class:"bimdata-measure-dwg__list__element__tag__content",style:le(`color: ${B.colorString}; background-color: ${B.colorString}20;`),onClick:S=>r.onTagClick(B)},G(B.getFormattedValue()),13,BWe),B.colorEditing?yt((E(),K(f,{key:0,class:"bimdata-measure-dwg__list__element__tag__color-selector","selected-color":B.color,onColorSelect:S=>{B.color=S.value,B.colorEditing=!1}},null,8,["selected-color","onColorSelect"])),[[M,()=>{B.colorEditing=!1}]]):te("",!0)]),C("div",IWe,[k(a,{icon:"",class:"m-r-6",color:"granite",ghost:"",radius:"",disabled:B.modelId!==r.modelId,onClick:S=>B.visible=!B.visible},{default:U(()=>[B.visible?(E(),K(g,{key:0,size:"s"})):(E(),K(m,{key:1,size:"s"}))]),_:2},1032,["disabled","onClick"]),k(a,{icon:"",ghost:"",radius:"",color:"granite",onClick:S=>r.onDeleteMeasurementClick(B)},{default:U(()=>[k(v,{size:"m"})]),_:1},8,["onClick"])])])]),_:1},8,["list"])):(E(),K(x,{key:1,message:i.$t("measureDwg.empty")},{default:U(()=>[k(w,{name:"emptyBucket"})]),_:1},8,["message"]))])],64)):(E(),L("div",yWe,G(i.$t("measureDwg.no_model"))+". ",1))])}const PWe={name:"measureDwg",i18n:{de:{save_measurements:"Speichern",distance_measurement:"Entfernung",angle_measurement:"Winkel",surface_measurement:"Oberfläche",path_measurement:"Weg",empty:"Sie haben derzeit keine gespeicherten Messungen.",tooltip:"Messgerät",validate_path:"Klicken Sie auf „Bestätigen“, um die Zeichnung zu beenden.",calibrate:"Kalibrierung",calibrating:"Bitte skizzieren und bestätigen Sie Ihren Standard",not_calibrated:"Um das Messwerkzeug verwenden zu können, stellen Sie sicher, dass Sie Ihren Plan kalibriert haben.",no_model:"Wählen Sie ein Modell aus, um Messungen durchführen zu können.",modal_error:"Es muss sich um eine strikte positive Zahl handeln",calibration_success:"Plan erfolgreich kalibriert"},en:{save_measurements:"Save",distance_measurement:"Distance",angle_measurement:"Angle",surface_measurement:"Surface",path_measurement:"Path",empty:"There is currently no saved measurement.",tooltip:"Measurement tool",validate_path:"Click on “validate” to end the path.",calibrate:"Calibration",calibrating:"Please trace and validate your stallion",not_calibrated:"To use the measurement tool, make sure you have calibrated your plan.",no_model:"Select a model to be able to perform measurements",modal_error:"Must be a strictly positive number",calibration_success:"Successfully calibrated plan"},es:{save_measurements:"Guardar",distance_measurement:"Distancia",angle_measurement:"Ángulo",surface_measurement:"Superficie",path_measurement:"Camino",empty:"Actualmente no hay ninguna medición guardada.",tooltip:"Herramienta de medición",validate_path:"Haga clic en “validar†para finalizar el camino.",calibrate:"Calibración",calibrating:"Rastree y valide su patrón",not_calibrated:"Para poder utilizar la herramienta de medición, asegúrese de haber calibrado su plano.",no_model:"Seleccionar un modelo para poder realizar mediciones",modal_error:"El número debe ser necesariamente positivo",calibration_success:"Plano calibrado de forma correcta"},fr:{save_measurements:"Sauvegarder",distance_measurement:"Distance",angle_measurement:"Angle",surface_measurement:"Surface",path_measurement:"Chemin",empty:"Vous n’avez actuellement aucune mesure enregistrée.",tooltip:"Outil de mesure",validate_path:"Cliquer sur “valider” pour terminer le tracé.",calibrate:"Etalonnage",calibrating:"Veuillez traçer et valider votre étalon",not_calibrated:"Pour pouvoir utiliser l’outil de mesure, assurez-vous d’avoir calibré votre plan.",no_model:"Selectionner un model pour pouvoir réaliser des mesures",modal_error:"Doit être un nombre strictement positif",calibration_success:"Plan calibré avec succès"},it:{save_measurements:"Salva",distance_measurement:"Distanza",angle_measurement:"Angolo",surface_measurement:"Superficie",path_measurement:"Percorso",empty:"Attualmente non hai misure salvate.",tooltip:"Strumento di misura",validate_path:'Clicca su "OK" per completare il percorso.',calibrate:"Calibrazione",calibrating:"Indica e conferma il tuo campione",not_calibrated:"Per poter utilizzare lo strumento di misurazione, assicurati di aver calibrato il tuo progetto.",no_model:"Seleziona un modello per eseguire delle misurazioni",modal_error:"Deve essere un numero positivo",calibration_success:"Progetto calibrato correttamente"}},component:V(mWe,[["render",SWe],["__scopeId","data-v-2d1329e7"]]),addToWindows:["dwg","dxf"],button:{tooltip:"measureDwg.tooltip",position:"right",content:"panel",keepOpen:!0,icon:{component:"BIMDataIconMeasure",options:{size:"m"}}}},TWe={name:"BIMDataMeasure3D",components:{BIMDataEmpty:uu,ColorSelector:M6},data(){return{selectedMeasurementPlugin:null,currentPlugin:null,isUpdated:!1,measurements:[],distanceMeasurementId:1,angleMeasurementId:1,spacingMeasurementId:1,spacingMeasurementEnabled:!1}},computed:{displayedMeasurements(){const i=this.$viewer.localContext.loadedModelIds;return this.measurements.filter(e=>e.modelIds.some(t=>i.includes(t)))}},watch:{selectedMeasurementPlugin(i,e){e&&this.plugins.get(e).control.deactivate(),i&&this.plugins.get(i).control.activate()},displayedMeasurements(i){this.measurements.forEach(e=>{e.visible=i.includes(e)})}},mounted(){const i=this.$viewer.localContext.pluginComponentInstances.get("viewer3d")||this.$viewer.localContext.pluginComponentInstances.get("pointCloud");if(!i){const n="Measure3D plugin cannot work without viewer3d or tileset plugin.";throw console.error(n),new Error(n)}this.viewer3d=i,this.spacingMeasurementEnabled=i.spacingMeasurementsPlugin,this.plugins=new Map,this.plugins.set("distance",i.distanceMeasurementsPlugin),this.plugins.set("angle",i.angleMeasurementsPlugin),this.spacingMeasurementEnabled&&this.plugins.set("spacing",i.spacingMeasurementsPlugin),this.updateCurrentColor();const e=Object.values(this.viewer3d.distanceMeasurementsPlugin.measurements).map(this.makeDistanceMeasurement),t=Object.values(this.viewer3d.angleMeasurementsPlugin.measurements).map(this.makeAngleMeasurement);if(this.measurements=[...e,...t],this.spacingMeasurementEnabled){const n=Object.values(this.viewer3d.spacingMeasurementsPlugin.measurements).map(this.makeSpacingMeasurement);this.measurements.push(...n)}this.distanceMeasurementSubscription=this.viewer3d.distanceMeasurementsPlugin.on("measurementEnd",n=>{this.measurements.push(this.makeDistanceMeasurement(n)),this.selectedMeasurementPlugin=null,this.updateCurrentColor()}),this.angleMeasurementSubscription=this.viewer3d.angleMeasurementsPlugin.on("measurementEnd",n=>{this.measurements.push(this.makeAngleMeasurement(n)),this.selectedMeasurementPlugin=null,this.updateCurrentColor()}),this.spacingMeasurementEnabled&&(this.spacingMeasurementSubscription=this.viewer3d.spacingMeasurementsPlugin.on("measurementEnd",n=>{this.measurements.push(this.makeSpacingMeasurement(n)),this.selectedMeasurementPlugin=null,this.updateCurrentColor()}))},onOpen(){this.viewer3d.highlightOnHover=!1,this.viewer3d.selectOnClick=!1,document.addEventListener("keydown",this.onKeyDown)},onClose(){this.viewer3d.highlightOnHover=!0,this.viewer3d.selectOnClick=!0,this.selectedMeasurementPlugin&&this.plugins.get(this.selectedMeasurementPlugin)?.control.deactivate(),document.removeEventListener("keydown",this.onKeyDown),this.selectedMeasurementPlugin=null},unmounted(){this.viewer3d.distanceMeasurementsPlugin.off(this.distanceMeasurementSubscription),this.viewer3d.angleMeasurementsPlugin.off(this.angleMeasurementSubscription),this.viewer3d.spacingMeasurementsPlugin?.off(this.spacingMeasurementSubscription)},methods:{onTagClick(i){this.measurements.filter(e=>e!==i).forEach(e=>e.colorEditing=!1),i.colorEditing=!0,this.isUpdated=!0},updateCurrentColor(){this.currentColor=il(),this.plugins.forEach(i=>i.defaultColor=`#${this.currentColor.toString(16).padStart(6,0)}`)},onElementNameClick(i){i.nameEditing=!0,this.isUpdated=!0,this.$nextTick(()=>{this.$refs.elementInput&&this.$refs.elementInput.focus()})},onInputBlur(i){i.nameEditing=!1},onAddMeasurementClick(i){this.selectedMeasurementPlugin===i?this.selectedMeasurementPlugin=null:this.selectedMeasurementPlugin=i},onKeyDown(i){i.key==="Escape"&&this.onEscapeDown()},onEscapeDown(){this.selectedMeasurementPlugin=null,this.measurements.forEach(i=>{i.nameEditing=!1,i.colorEditing=!1})},onHideMeasurementClick(i){i.visible=!i.visible},onDeleteMeasurementClick(i){i.destroy(),this.measurements.splice(this.measurements.indexOf(i),1),this.isUpdated=!0},makeAngleMeasurement(i){return this.makeMeasurement(i,`angle-${this.angleMeasurementId++}`,i.angle.toFixed(2),"°","angle",i.color)},makeDistanceMeasurement(i){return this.makeMeasurement(i,`distance-${this.distanceMeasurementId++}`,i.length.toFixed(2),"m","distance",i.color)},makeSpacingMeasurement(i){return this.makeMeasurement(i,`spacing-${this.spacingMeasurementId++}`,i.length.toFixed(2),"m","spacing",i.color)},makeMeasurement(i,e,t,n,o,r){let s=!0,a=!1,l=r;return{nameEditing:!1,get visible(){return s},set visible(c){s=c,i.visible=c},colorEditing:!1,get color(){return l},set color(c){l=c,i.color=c},name:e,value:t,unit:n,type:o,modelIds:this.$viewer.localContext.loadedModelIds,destroy(){a||(i.destroy(),a=!0)},get destroyed(){return a}}}}},kWe={class:"bimdata-measure3d"},RWe={class:"bimdata-measure3d__actions"},_We={class:"bimdata-measure3d__content"},DWe={class:"bimdata-measure3d__list__element"},LWe={class:"bimdata-measure3d__list__element__label"},FWe=["onClick"],OWe={class:"bimdata-measure3d__list__element__tag"},NWe=["onClick"],UWe={class:"bimdata-measure3d__list__element__buttons"};function VWe(i,e,t,n,o,r){const s=P("BIMDataIconDistance"),a=P("BIMDataButton"),l=P("BIMDataIconAngle"),c=P("BIMDataIcon"),u=P("BIMDataIllustration"),d=P("BIMDataEmpty"),h=P("BIMDataInput"),p=P("ColorSelector"),A=P("BIMDataIconHide"),f=P("BIMDataIconShow"),g=P("BIMDataIconDelete"),m=P("BIMDataPaginatedList"),v=li("click-away");return E(),L("div",kWe,[C("div",RWe,[k(a,{color:o.selectedMeasurementPlugin==="distance"?"primary":"default",fill:"",radius:"",onClick:e[0]||(e[0]=y=>r.onAddMeasurementClick("distance"))},{default:U(()=>[k(s,{size:"s",margin:"0 6px 0 0"}),C("span",null," + "+G(i.$t("measure3d.distance_measurement")),1)]),_:1},8,["color"]),k(a,{color:o.selectedMeasurementPlugin==="angle"?"primary":"default",fill:"",radius:"",onClick:e[1]||(e[1]=y=>r.onAddMeasurementClick("angle"))},{default:U(()=>[k(l,{size:"s",margin:"0 6px 0 0"}),C("span",null," + "+G(i.$t("measure3d.angle_measurement")),1)]),_:1},8,["color"]),o.spacingMeasurementEnabled?(E(),K(a,{key:0,color:o.selectedMeasurementPlugin==="spacing"?"primary":"default",fill:"",radius:"",onClick:e[2]||(e[2]=y=>r.onAddMeasurementClick("spacing"))},{default:U(()=>[k(c,{name:"spacing",size:"xs",margin:"0 6px 0 0"}),C("span",null," + "+G(i.$t("measure3d.spacing_measurement")),1)]),_:1},8,["color"])):te("",!0)]),C("div",_We,[k(m,{list:r.displayedMeasurements,"element-key":"id",style:{overflow:"unset"}},{empty:U(()=>[k(d,{message:i.$t("measure3d.empty")},{default:U(()=>[k(u,{name:"emptyBucket"})]),_:1},8,["message"])]),element:U(({element:y})=>[C("div",DWe,[C("div",LWe,[k(c,{name:y.type,size:"m",margin:"0 12px 0 0"},null,8,["name"]),y.nameEditing?(E(),K(h,{key:0,ref:"elementInput",modelValue:y.name,"onUpdate:modelValue":w=>y.name=w,onBlur:w=>y.nameEditing=!1,onKeypress:Ut(w=>y.nameEditing=!1,["enter"])},null,8,["modelValue","onUpdate:modelValue","onBlur","onKeypress"])):(E(),L("span",{key:1,onClick:w=>r.onElementNameClick(y)},G(y.name),9,FWe))]),C("div",OWe,[C("span",{class:"bimdata-measure3d__list__element__tag__content",style:le(`color: ${y.color}; background-color: ${y.color}20;`),onClick:w=>r.onTagClick(y)},G(y.value)+" "+G(y.unit),13,NWe),y.colorEditing?yt((E(),K(p,{key:0,class:"bimdata-measure3d__list__element__tag__color-selector","selected-color":parseInt(y.color.slice(1),16),onColorSelect:w=>{y.color=`#${w.value.toString(16).padStart(6,0)}`,y.colorEditing=!1}},null,8,["selected-color","onColorSelect"])),[[v,()=>{y.colorEditing=!1}]]):te("",!0)]),C("div",UWe,[k(a,{icon:"",class:"m-r-6",color:"granite",ghost:"",radius:"",onClick:w=>r.onHideMeasurementClick(y)},{default:U(()=>[y.visible?(E(),K(A,{key:0,size:"s"})):(E(),K(f,{key:1,size:"s"}))]),_:2},1032,["onClick"]),k(a,{icon:"",ghost:"",radius:"",color:"granite",onClick:w=>r.onDeleteMeasurementClick(y)},{default:U(()=>[k(g,{size:"m"})]),_:1},8,["onClick"])])])]),_:1},8,["list"])])])}const HWe={name:"measure3d",i18n:{de:{distance_measurement:"Entfernungsmessung",angle_measurement:"Winkelmessung",tooltip:"Messung",empty:"Keine Messung",spacing_measurement:"Abstand"},en:{distance_measurement:"Distance",angle_measurement:"Angle",tooltip:"Measurement",empty:"No measure",spacing_measurement:"Spacing"},es:{distance_measurement:"Medir distancia",angle_measurement:"Medición angular",tooltip:"Medición",empty:"Sin mediciones",spacing_measurement:"Espaciado"},fr:{distance_measurement:"Distance",angle_measurement:"Angle",tooltip:"Mesure",empty:"Pas de mesure",spacing_measurement:"Espacement"},it:{distance_measurement:"Misura distanza",angle_measurement:"Misura angolo",tooltip:"Misura",empty:"Nessuna misurazione"}},component:V(TWe,[["render",VWe],["__scopeId","data-v-b6e2d727"]]),addToWindows:["3d"],button:{tooltip:"measure3d.tooltip",position:"right",content:"panel",keepOpen:!0,icon:{component:"BIMDataIconMeasure",options:{size:"m"}}}},zWe={name:"pdfExport",component:{render(){return null},async onOpen(i){const e=this.$viewer.localContext.viewer,t=await e.exportAsPDF(i);if(t){let n=this.$viewer.localContext.loadedModels[0];n.parent_id&&(n=e.pdfPages[0]);const o=document.createElement("a");o.href=URL.createObjectURL(t),o.download=n.document.file_name,o.click(),o.remove()}setTimeout(()=>this.$close())}},addToWindows:["plan"],button:{position:"right",tooltip:"pdfExport.title",icon:{imgUri:"data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20preserveAspectRatio='xMidYMid%20meet'%20viewBox='-5%20-5%2034%2034'%20%3e%3cpath%20d='M18.5438%209.77808C17.8921%206.47183%2014.9883%203.98975%2011.5%203.98975C8.73042%203.98975%206.325%205.56141%205.12708%207.86141C2.2425%208.16808%200%2010.6118%200%2013.5731C0%2016.7452%202.57792%2019.3231%205.75%2019.3231H18.2083C20.8533%2019.3231%2023%2017.1764%2023%2014.5314C23%2012.0014%2021.0354%209.95058%2018.5438%209.77808ZM16.2917%2012.6147L11.5%2017.4064L6.70833%2012.6147H9.58333V8.78141H13.4167V12.6147H16.2917Z'%20/%3e%3c/svg%3e"}},i18n:{en:{title:"PDF Export"},fr:{title:"Export PDF"}}},jWe={props:{width:{type:String,default:"32px"},height:{type:String,default:"32px"},accept:{type:String,default:""}},emits:["change"],methods:{onClick(){this.$refs.input.click()},onFileChange(i){const e=i.target.files&&i.target.files[0]?i.target.files[0]:null;this.$emit("change",e)}}},GWe=["accept"];function QWe(i,e,t,n,o,r){const s=P("BIMDataIconAddFile"),a=P("BIMDataButton");return E(),K(a,{style:{padding:"5px"},width:t.width,height:t.height,color:"primary",outline:"",radius:"",icon:"",onClick:r.onClick},{default:U(()=>[k(s,{size:"xs"}),pt(i.$slots,"default"),C("input",{ref:"input",type:"file",hidden:"",accept:t.accept,onChange:e[0]||(e[0]=(...l)=>r.onFileChange&&r.onFileChange(...l))},null,40,GWe)]),_:3},8,["width","height","onClick"])}const RG=V(jWe,[["render",QWe]]),qWe={inject:["$viewer"],props:{singleSelectMode:{type:Boolean,default:!1},multiSelectMode:{type:Boolean,default:!1},headerButtons:{type:Boolean,default:!0},headerSearch:{type:Boolean,default:!0},alreadySelectedIds:{type:Array,default:()=>[]},selectableFileTypes:{type:Array,default:()=>[]}},emits:["selection-change"],data(){return{apiUrl:null,archiveUrl:null,spaceId:null,projectId:null,accessToken:null}},computed:{selectMode(){return this.singleSelectMode||this.multiSelectMode}},created(){this.apiUrl=this.$viewer.api.apiUrl,this.archiveUrl=this.$viewer.api.archiveUrl,this.projectId=this.$viewer.api.projectId,this.spaceId=this.$viewer.api.cloudId,this.accessToken=this.$viewer.api.accessToken},methods:{onError(i){this.$viewer.localContext.hub.emit("alert",{type:"error",message:i&&i.message})},onSuccess(i){this.$viewer.localContext.hub.emit("alert",{type:"success",message:i&&i.message})},onSelectionChange(i){const e=i.map(({document:t})=>t);this.$emit("selection-change",e)}}};function KWe(i,e,t,n,o,r){const s=P("BIMDataFileManager");return E(),K(s,{ref:"fileManager",class:"bimdata_ged","space-id":o.spaceId,"project-id":o.projectId,"api-url":o.apiUrl,"archive-url":o.archiveUrl,"access-token":o.accessToken,select:r.selectMode,multi:t.multiSelectMode,"header-buttons":t.headerButtons,"header-search":t.headerSearch,locale:i.$i18n.locale,"already-selected-ids":t.alreadySelectedIds,"selectable-file-types":t.selectableFileTypes,"view-pdf":"",onSelectionChange:r.onSelectionChange,onError:r.onError,onSuccess:r.onSuccess},null,8,["space-id","project-id","api-url","archive-url","access-token","select","multi","header-buttons","header-search","locale","already-selected-ids","selectable-file-types","onSelectionChange","onError","onSuccess"])}const E6=V(qWe,[["render",KWe],["__scopeId","data-v-dd663a74"]]),JWe={components:{FileInput:RG,BIMDataGED:E6},data(){return{file:null,isGedOpen:!1,pdfToView:null}},computed:{pdfUrl(){return this.file?window.URL.createObjectURL(this.file):null}},methods:{onOpenGedClick(){this.isGedOpen=!this.isGedOpen},onCloseClick(){this.file=null,this.pdfToView=null},back(){this.isGedOpen=!1},async loadFile(i){i.name?this.pdfToView=i:this.pdfToView=this.file,this.back()}}},WWe={class:"pdf-viewer"},ZWe={class:"pdf-viewer__content"},YWe={key:1},XWe={key:0,class:"pdf-viewer__content--empty"},$We={class:"flex items-center justify-center m-t-18"},eZe={class:"m-l-6"},tZe={class:"m-l-6"},iZe={key:1,class:"pdf-viewer__content--ged"},nZe={class:"p-x-12"},oZe={class:"pdf-viewer__content--ged__buttons flex items-center justify-between"};function sZe(i,e,t,n,o,r){const s=P("BIMDataIconArrow"),a=P("BIMDataButton"),l=P("BIMDataPDFViewer",!0),c=P("BIMDataIllustration"),u=P("FileInput"),d=P("BIMDataIconFolder"),h=P("BIMDataGED");return E(),L("div",WWe,[C("div",ZWe,[o.pdfToView?(E(),K(l,{key:0,pdf:o.pdfToView,header:""},{"header-left":U(()=>[k(a,{class:"m-l-12",width:"32px",height:"32px",color:"primary",ghost:"",radius:"",icon:"",onClick:r.onCloseClick},{default:U(()=>[k(s,{size:"xxs"})]),_:1},8,["onClick"])]),_:1},8,["pdf"])):(E(),L("div",YWe,[o.isGedOpen?te("",!0):(E(),L("div",XWe,[k(c,{name:"emptyPdf",x:"90",y:"90"}),C("h3",null,G(i.$t("pdf.title")),1),C("div",$We,[k(u,{accept:"application/pdf",onChange:r.loadFile},{default:U(()=>[C("div",eZe,G(i.$t("pdf.empty")),1)]),_:1},8,["onChange"]),k(a,{class:"m-l-12",color:"primary",outline:"",radius:"",onClick:r.onOpenGedClick},{default:U(()=>[k(d,{fill:"",color:"default",size:"xxs"}),C("span",tZe,G(i.$t("pdf.openGed")),1)]),_:1},8,["onClick"])])])),o.isGedOpen?(E(),L("div",iZe,[C("div",null,[C("h3",nZe,G(i.$t("pdf.title")),1)]),k(h,{"header-buttons":!0,"single-select-mode":"","selectable-file-types":["pdf"],onSelectionChange:e[0]||(e[0]=p=>o.file=p[0])}),C("div",oZe,[k(a,{class:"pdf-viewer__content--ged__validate",outline:"",color:"primary",radius:"",width:"48%",onClick:r.back},{default:U(()=>[C("span",null,G(i.$t("global.cancel")),1)]),_:1},8,["onClick"]),k(a,{class:"pdf-viewer__content--ged__validate",fill:"",color:"primary",radius:"",width:"48%",onClick:r.loadFile},{default:U(()=>[C("span",null,G(i.$t("global.validate")),1)]),_:1},8,["onClick"])])])):te("",!0)]))])])}const rZe={name:"pdf",i18n:{de:{window_label:"PDF-Viewer",empty:"Bitte wählen Sie eine Datei aus oder legen Sie sie in diesem Fenster ab.",title:"PDF-Viewer",openGed:"Dateisystem öffnen"},en:{window_label:"PDF Viewer",empty:"No file selected. Please select a file or drag it on the window.",title:"PDF Viewer",openGed:"Files"},es:{window_label:"Visor de PDF",empty:"No hay ningún archivo seleccionado. Seleccione un archivo o arrástrelo a la ventana.",title:"Visor de PDF",openGed:"Abrir la GED"},fr:{window_label:"Visionneuse PDF",empty:"Selectionner un fichier",title:"Visionneuse PDF",openGed:"Ouvrir la GED"},it:{window_label:"Visualizzatore PDF",empty:"Seleziona un file."}},component:V(JWe,[["render",sZe],["__scopeId","data-v-30af43b3"]]),window:{name:"pdf",noModel:!0,label:"pdf.window_label",icon:{imgUri:"data:image/svg+xml,%3csvg%20width='22'%20height='23'%20viewBox='0%200%2022%2023'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M4.01244%207.90625L10.1218%201.79688V5.97245V7.90625H4.01244ZM20.3885%202.3C20.3885%201.035%2019.365%200%2018.1%200H8.9L2%206.9V20.7C2%2021.965%203.03464%2023%204.3%2023H18.1115C19.3765%2023%2020.4%2021.965%2020.4%2020.7L20.3885%202.3Z'%20fill='%232F374A'/%3e%3crect%20y='12'%20width='22'%20height='9'%20rx='1'%20fill='%23FF0000'/%3e%3cpath%20d='M3.88086%2017.4951V20H2.41602V12.8906H5.18945C5.72331%2012.8906%206.19206%2012.9883%206.5957%2013.1836C7.0026%2013.3789%207.3151%2013.6572%207.5332%2014.0186C7.7513%2014.3766%207.86035%2014.7852%207.86035%2015.2441C7.86035%2015.9408%207.62109%2016.4909%207.14258%2016.8945C6.66732%2017.2949%206.00814%2017.4951%205.16504%2017.4951H3.88086ZM3.88086%2016.3086H5.18945C5.57682%2016.3086%205.87142%2016.2174%206.07324%2016.0352C6.27832%2015.8529%206.38086%2015.5924%206.38086%2015.2539C6.38086%2014.9056%206.27832%2014.624%206.07324%2014.4092C5.86816%2014.1943%205.58496%2014.0837%205.22363%2014.0771H3.88086V16.3086ZM8.87109%2020V12.8906H11.0586C11.6836%2012.8906%2012.2419%2013.0322%2012.7334%2013.3154C13.2282%2013.5954%2013.6139%2013.9958%2013.8906%2014.5166C14.1673%2015.0342%2014.3057%2015.6234%2014.3057%2016.2842V16.6113C14.3057%2017.2721%2014.1689%2017.8597%2013.8955%2018.374C13.6253%2018.8883%2013.2428%2019.2871%2012.748%2019.5703C12.2533%2019.8535%2011.695%2019.9967%2011.0732%2020H8.87109ZM10.3359%2014.0771V18.8232H11.0439C11.6169%2018.8232%2012.0547%2018.6361%2012.3574%2018.2617C12.6602%2017.8874%2012.8148%2017.3519%2012.8213%2016.6553V16.2793C12.8213%2015.5566%2012.6715%2015.0098%2012.3721%2014.6387C12.0726%2014.2643%2011.6348%2014.0771%2011.0586%2014.0771H10.3359ZM19.6523%2017.0947H16.8398V20H15.375V12.8906H20.0039V14.0771H16.8398V15.9131H19.6523V17.0947Z'%20fill='white'/%3e%3c/svg%3e"}}};var WM,_G;function aZe(){if(_G)return WM;_G=1;function i(e){return function(t){return e?.[t]}}return WM=i,WM}var ZM,DG;function lZe(){if(DG)return ZM;DG=1;var i=aZe(),e={À:"A",Á:"A",Â:"A",Ã:"A",Ä:"A",Å:"A",à:"a",á:"a",â:"a",ã:"a",ä:"a",å:"a",Ç:"C",ç:"c",Ð:"D",ð:"d",È:"E",É:"E",Ê:"E",Ë:"E",è:"e",é:"e",ê:"e",ë:"e",Ì:"I",Í:"I",Î:"I",Ï:"I",ì:"i",í:"i",î:"i",ï:"i",Ñ:"N",ñ:"n",Ò:"O",Ó:"O",Ô:"O",Õ:"O",Ö:"O",Ø:"O",ò:"o",ó:"o",ô:"o",õ:"o",ö:"o",ø:"o",Ù:"U",Ú:"U",Û:"U",Ü:"U",ù:"u",ú:"u",û:"u",ü:"u",Ý:"Y",ý:"y",ÿ:"y",Æ:"Ae",æ:"ae",Þ:"Th",þ:"th",ß:"ss",Ā:"A",Ă:"A",Ą:"A",ā:"a",ă:"a",ą:"a",Ć:"C",Ĉ:"C",Ċ:"C",Č:"C",ć:"c",ĉ:"c",ċ:"c",č:"c",Ď:"D",Đ:"D",ď:"d",đ:"d",Ē:"E",Ĕ:"E",Ė:"E",Ę:"E",Ě:"E",ē:"e",ĕ:"e",ė:"e",ę:"e",ě:"e",Ĝ:"G",Ğ:"G",Ġ:"G",Ģ:"G",ĝ:"g",ğ:"g",ġ:"g",ģ:"g",Ĥ:"H",Ħ:"H",ĥ:"h",ħ:"h",Ĩ:"I",Ī:"I",Ĭ:"I",Į:"I",İ:"I",ĩ:"i",ī:"i",ĭ:"i",į:"i",ı:"i",Ĵ:"J",ĵ:"j",Ķ:"K",ķ:"k",ĸ:"k",Ĺ:"L",Ļ:"L",Ľ:"L",Ŀ:"L",Ł:"L",ĺ:"l",ļ:"l",ľ:"l",ŀ:"l",ł:"l",Ń:"N",Ņ:"N",Ň:"N",Ŋ:"N",ń:"n",ņ:"n",ň:"n",ŋ:"n",Ō:"O",Ŏ:"O",Ő:"O",ō:"o",ŏ:"o",ő:"o",Ŕ:"R",Ŗ:"R",Ř:"R",ŕ:"r",ŗ:"r",ř:"r",Ś:"S",Ŝ:"S",Ş:"S",Š:"S",ś:"s",ŝ:"s",ş:"s",š:"s",Ţ:"T",Ť:"T",Ŧ:"T",ţ:"t",ť:"t",ŧ:"t",Ũ:"U",Ū:"U",Ŭ:"U",Ů:"U",Ű:"U",Ų:"U",ũ:"u",ū:"u",ŭ:"u",ů:"u",ű:"u",ų:"u",Ŵ:"W",ŵ:"w",Ŷ:"Y",ŷ:"y",Ÿ:"Y",Ź:"Z",Ż:"Z",Ž:"Z",ź:"z",ż:"z",ž:"z",IJ:"IJ",ij:"ij",Œ:"Oe",œ:"oe",ʼn:"'n",ſ:"s"},t=i(e);return ZM=t,ZM}var YM,LG;function FG(){if(LG)return YM;LG=1;var i=typeof Yv=="object"&&Yv&&Yv.Object===Object&&Yv;return YM=i,YM}var XM,OG;function nl(){if(OG)return XM;OG=1;var i=FG(),e=typeof self=="object"&&self&&self.Object===Object&&self,t=i||e||Function("return this")();return XM=t,XM}var $M,NG;function B6(){if(NG)return $M;NG=1;var i=nl(),e=i.Symbol;return $M=e,$M}var eE,UG;function cZe(){if(UG)return eE;UG=1;function i(e,t){for(var n=-1,o=e==null?0:e.length,r=Array(o);++n<o;)r[n]=t(e[n],n,e);return r}return eE=i,eE}var tE,VG;function I6(){if(VG)return tE;VG=1;var i=Array.isArray;return tE=i,tE}var iE,HG;function uZe(){if(HG)return iE;HG=1;var i=B6(),e=Object.prototype,t=e.hasOwnProperty,n=e.toString,o=i?i.toStringTag:void 0;function r(s){var a=t.call(s,o),l=s[o];try{s[o]=void 0;var c=!0}catch{}var u=n.call(s);return c&&(a?s[o]=l:delete s[o]),u}return iE=r,iE}var nE,zG;function dZe(){if(zG)return nE;zG=1;var i=Object.prototype,e=i.toString;function t(n){return e.call(n)}return nE=t,nE}var oE,jG;function c3(){if(jG)return oE;jG=1;var i=B6(),e=uZe(),t=dZe(),n="[object Null]",o="[object Undefined]",r=i?i.toStringTag:void 0;function s(a){return a==null?a===void 0?o:n:r&&r in Object(a)?e(a):t(a)}return oE=s,oE}var sE,GG;function Hp(){if(GG)return sE;GG=1;function i(e){return e!=null&&typeof e=="object"}return sE=i,sE}var rE,QG;function hZe(){if(QG)return rE;QG=1;var i=c3(),e=Hp(),t="[object Symbol]";function n(o){return typeof o=="symbol"||e(o)&&i(o)==t}return rE=n,rE}var aE,qG;function pZe(){if(qG)return aE;qG=1;var i=B6(),e=cZe(),t=I6(),n=hZe(),o=i?i.prototype:void 0,r=o?o.toString:void 0;function s(a){if(typeof a=="string")return a;if(t(a))return e(a,s)+"";if(n(a))return r?r.call(a):"";var l=a+"";return l=="0"&&1/a==-1/0?"-0":l}return aE=s,aE}var lE,KG;function fZe(){if(KG)return lE;KG=1;var i=pZe();function e(t){return t==null?"":i(t)}return lE=e,lE}var cE,JG;function AZe(){if(JG)return cE;JG=1;var i=lZe(),e=fZe(),t=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,n="\\u0300-\\u036f",o="\\ufe20-\\ufe2f",r="\\u20d0-\\u20ff",s=n+o+r,a="["+s+"]",l=RegExp(a,"g");function c(u){return u=e(u),u&&u.replace(t,i).replace(l,"")}return cE=c,cE}var mZe=AZe();const WG=s3(mZe),gZe=Object.freeze({IfcAbsorbedDoseMeasure:"decimal_number",IfcAccelerationMeasure:"decimal_number",IfcAmountOfSubstanceMeasure:"decimal_number",IfcAngularVelocityMeasure:"decimal_number",IfcAreaDensityMeasure:"decimal_number",IfcAreaMeasure:"decimal_number",IfcBinary:"string",IfcBoolean:"boolean",IfcComplexNumber:"string",IfcCompoundPlaneAngleMeasure:"string",IfcContextDependentMeasure:"decimal_number",IfcCountMeasure:"integer",IfcCurvatureMeasure:"decimal_number",IfcDescriptiveMeasure:"string",IfcDoseEquivalentMeasure:"decimal_number",IfcDynamicViscosityMeasure:"decimal_number",IfcElectricCapacitanceMeasure:"decimal_number",IfcElectricChargeMeasure:"decimal_number",IfcElectricConductanceMeasure:"decimal_number",IfcElectricCurrentMeasure:"decimal_number",IfcElectricResistanceMeasure:"decimal_number",IfcElectricVoltageMeasure:"decimal_number",IfcEnergyMeasure:"decimal_number",IfcForceMeasure:"decimal_number",IfcFrequencyMeasure:"decimal_number",IfcHeatFluxDensityMeasure:"decimal_number",IfcHeatingValueMeasure:"decimal_number",IfcIdentifier:"string_max255",IfcIlluminanceMeasure:"decimal_number",IfcInductanceMeasure:"decimal_number",IfcInteger:"integer",IfcIntegerCountRateMeasure:"integer",IfcIonConcentrationMeasure:"decimal_number",IfcIsothermalMoistureCapacityMeasure:"decimal_number",IfcKinematicViscosityMeasure:"decimal_number",IfcLabel:"string_max255",IfcLengthMeasure:"decimal_number",IfcLinearForceMeasure:"decimal_number",IfcLinearMomentMeasure:"decimal_number",IfcLinearStiffnessMeasure:"decimal_number",IfcLinearVelocityMeasure:"decimal_number",IfcLogical:"logical",IfcLuminousFluxMeasure:"decimal_number",IfcLuminousIntensityDistributionMeasure:"decimal_number",IfcLuminousIntensityMeasure:"decimal_number",IfcMagneticFluxDensityMeasure:"decimal_number",IfcMagneticFluxMeasure:"decimal_number",IfcMassDensityMeasure:"decimal_number",IfcMassFlowRateMeasure:"decimal_number",IfcMassMeasure:"decimal_number",IfcMassPerLengthMeasure:"decimal_number",IfcMeasureValue:"decimal_number",IfcModulusOfElasticityMeasure:"decimal_number",IfcModulusOfLinearSubgradeReactionMeasure:"decimal_number",IfcModulusOfRotationalSubgradeReactionMeasure:"decimal_number",IfcModulusOfSubgradeReactionMeasure:"decimal_number",IfcMoistureDiffusivityMeasure:"decimal_number",IfcMolecularWeightMeasure:"decimal_number",IfcMomentOfInertiaMeasure:"decimal_number",IfcMonetaryMeasure:"decimal_number",IfcMonetaryUnit:"string_max255",IfcNonNegativeLengthMeasure:"positive_decimal_number",IfcNormalisedRatioMeasure:"decimal_range_0_1",IfcNumericMeasure:"integer",IfcParameterValue:"decimal_number",IfcPHMeasure:"decimal_range_0_14",IfcPlanarForceMeasure:"decimal_number",IfcPlaneAngleMeasure:"decimal_number",IfcPositiveInteger:"positive_integer",IfcPositiveLengthMeasure:"positive_decimal_number",IfcPositivePlaneAngleMeasure:"positive_decimal_number",IfcPositiveRatioMeasure:"positive_decimal_number",IfcPowerMeasure:"decimal_number",IfcPressureMeasure:"decimal_number",IfcRadioActivityMeasure:"decimal_number",IfcRatioMeasure:"decimal_number",IfcReal:"decimal_number",IfcRotationalFrequencyMeasure:"decimal_number",IfcRotationalMassMeasure:"decimal_number",IfcRotationalStiffnessMeasure:"decimal_number",IfcSectionalAreaIntegralMeasure:"decimal_number",IfcSectionModulusMeasure:"decimal_number",IfcShearModulusMeasure:"decimal_number",IfcSolidAngleMeasure:"decimal_number",IfcSoundPowerLevelMeasure:"decimal_number",IfcText:"string"}),yZe={name:"EditableLabel",props:{disabled:{type:Boolean,default:!1},cancelOnClickAway:{type:Boolean,default:!0},editOnClick:{type:Boolean,default:!0},editOnRightClick:{type:Boolean,default:!0},text:{type:[String,Number,Boolean],default:""},valueType:{type:String,default:"IfcText"},units:{type:[String,Number,Boolean],default:""},validateCallback:{type:Function,default:()=>!0},validateCallbackArgs:{type:Array,default:()=>[]}},emits:["editing-start","editing-end"],data(){return{loading:!1,editedText:this.text,edit:!1,success:null,error:null,types:gZe}},watch:{edit(i){i?(this.editedText=this.text,this.$nextTick(()=>this.$refs.input.focus()),document.addEventListener("keydown",this.onKeyDown),this.$emit("editing-start")):(document.removeEventListener("keydown",this.onKeyDown),this.$emit("editing-end"))}},methods:{onKeyDown(i){i.keyCode===27?this.onCancel():i.keyCode===13&&!i.altKey&&!i.metaKey&&!i.ctrlKey&&!i.shiftKey&&this.onValidate()},onClick(){!this.disabled&&this.editOnClick&&!this.edit&&(this.edit=!0)},onRightClick(){const i=this.$viewer.contextMenu;i&&!this.disabled&&!this.loading&&this.editOnRightClick&&i.registerContextCommand({label:this.$t("global.edit"),execute:()=>this.edit=!0})},isIfcTypeFormatValid(i){switch(this.types[this.valueType]){case"decimal_number":{const e=+i;return!isNaN(e)&&typeof e=="number"}case"positive_decimal_number":{const e=+i;return!isNaN(e)&&typeof e=="number"&&e>=0}case"decimal_range_0_1":{const e=+i;return!isNaN(e)&&typeof e=="number"&&0>=e&&e<=1}case"decimal_range_0_14":{const e=+i;return!isNaN(e)&&typeof e=="number"&&0>=e&&e<=14}case"integer":{const e=+i;return!isNaN(e)&&typeof e=="number"&&Number.isInteger(e)}case"positive_integer":{const e=+i;return!isNaN(e)&&typeof e=="number"&&Number.isInteger(e)&&e>=0}case"string":return typeof i=="string";case"string_max255":return typeof i=="string"&&i.length<255;case"boolean":return typeof i=="boolean"||i==="true"||i==="false";case"logical":return typeof i=="boolean"||i==="true"||i==="false"||i==="null"||i===null}},async onValidate(){const i=typeof this.validateCallbackArgs=="object"&&typeof this.validateCallbackArgs[Symbol.iterator]=="function"?this.validateCallbackArgs:[this.validateCallbackArgs],e=this.validateCallback(this.editedText,this.isIfcTypeFormatValid(this.editedText),...i);let t=null;typeof e.then=="function"?(this.loading=!0,t=await e,this.loading=!1):t=e,this.edit=!1,t?(this.success=!0,setTimeout(()=>this.success=null,500)):(this.error=!0,setTimeout(()=>this.error=null,500))},onCancel(){this.edit=!1},isValidUrl(i){return typeof i=="string"&&i.match("://")},ifcTypeFormat(i){return this.types[i]??"string"}}},vZe={key:0,class:"editable-label__input"},wZe={class:"flex justify-between items-center"},CZe={key:0,class:"editable-label__input--buttons flex m-l-6"},bZe={class:"editable-label__text flex items-center"},xZe=["href"];function MZe(i,e,t,n,o,r){const s=P("BIMDataInput"),a=P("BIMDataIconValidate"),l=P("BIMDataButton"),c=P("BIMDataIconClose"),u=P("BIMDataIconEdit"),d=li("click-away");return yt((E(),L("div",{class:ce(["editable-label",{disabled:t.disabled}]),onClick:e[1]||(e[1]=(...h)=>r.onClick&&r.onClick(...h)),onContextmenu:e[2]||(e[2]=gt((...h)=>r.onRightClick&&r.onRightClick(...h),["right"]))},[o.edit?(E(),L("div",vZe,[C("div",wZe,[k(s,{ref:"input",modelValue:o.editedText,"onUpdate:modelValue":e[0]||(e[0]=h=>o.editedText=h),loading:o.loading,disabled:o.loading||t.disabled,margin:"0px"},null,8,["modelValue","loading","disabled"]),o.loading?te("",!0):(E(),L("div",CZe,[k(l,{color:"primary",ghost:"",rounded:"",icon:"",onClick:gt(r.onValidate,["stop"])},{default:U(()=>[k(a,{size:"xxs",class:"fill-primary"})]),_:1},8,["onClick"]),k(l,{color:"primary",ghost:"",rounded:"",icon:"",onClick:gt(r.onCancel,["stop"])},{default:U(()=>[k(c,{size:"xxxs",class:"fill-primary"})]),_:1},8,["onClick"])]))]),C("span",{class:ce({error:!r.isIfcTypeFormatValid(o.editedText)})},G(i.$t("properties.requested_format"))+" "+G(i.$t(`properties.${r.ifcTypeFormat(t.valueType)}`)),3)])):te("",!0),C("div",bZe,[!o.edit&&t.editOnClick?(E(),K(u,{key:0,size:"xxs",color:"granite",margin:"0 8px 0 0"})):te("",!0),!o.edit&&r.isValidUrl(t.text)?(E(),L("a",{key:1,target:"_blank",href:t.text},G(t.text),9,xZe)):te("",!0),!o.edit&&!r.isValidUrl(t.text)?(E(),L("span",{key:2,class:ce({error:o.error,success:o.success})},G(`${t.text!=null?t.text:""} ${t.units}`),3)):te("",!0)])],34)),[[d,()=>t.cancelOnClickAway&&!o.loading&&(o.edit=!1)]])}const EZe={name:"BimdataProperties",components:{BIMDataEditableLabel:V(yZe,[["render",MZe],["__scopeId","data-v-97f502a6"]])},inject:["$viewer"],props:{editAllowed:{type:Boolean,default:!1},selectedObject:{type:Object,default:null}},data(){return{loading:!1,editLoading:!1,filter:"",highlightedProperties:[],displayedElement:null}},computed:{slugFilter(){return WG(this.filter).toLowerCase()}},watch:{highlightedProperties(){this.highlightedProperties.length===0&&Object.values(this.$refs)[0]?.[0]?.scrollIntoView()},selectedObject:{async handler(i){i?this.displayedElement=await this.getDisplayedElement(i):this.displayedElement=null},immediate:!0},filter(i){i?this.highlightedProperties=BZe(this.displayedElement.properties):this.highlightedProperties=[]}},created(){this.globalContextSubscription=this.$viewer.globalContext.hub.on("properties-update",this.onPropertiesEdited)},mounted(){document.addEventListener("keyup",this.onKeyUp)},unmounted(){document.removeEventListener("keyup",this.onKeyUp),this.$viewer.globalContext.hub.off(this.globalContextSubscription)},methods:{async onKeyUp(i){if(i.key==="Enter"&&this.highlightedProperties.length>0){let e=this.$refs[this.highlightedProperties[0].ref]?.[0];e||(this.highlightedProperties[0].parent.displayed=!0,await this.$nextTick(),e=this.$refs[this.highlightedProperties[0].ref]?.[0]),e&&e.scrollIntoView(),this.highlightedProperties.push(this.highlightedProperties.shift())}},async onValidate(i,e,t,n){const o={...t,value:i};delete o.parent,this.editLoading=!0;try{const r=this.$viewer.api.cloudId,s=this.$viewer.api.projectId,a=this.displayedElement.stateObject.model.id;e?(await this.$viewer.api.apiClient.modelApi.updateElementPropertySetProperty(r,this.displayedElement.uuid,t.id,a,s,n,o),this.$viewer.localContext.hub.emit("alert",{type:"success",message:this.$t("properties.edit-success")}),this.refreshDisplayedElement(),this.$viewer.globalContext.hub.emit("properties-update",{object:this.displayedElement.stateObject,author:this})):this.$viewer.localContext.hub.emit("alert",{type:"error",message:this.$t("properties.invalid-format")})}catch{this.$viewer.localContext.hub.emit("alert",{type:"error",message:this.$t("properties.edit-error")})}finally{this.editLoading=!1}},async refreshDisplayedElement(){this.displayedElement=await this.getDisplayedElement(this.selectedObject)},async getDisplayedElement(i){let e=null;if(!i.uuid)console.warn("Impossible to show properties of the selected state object because it has no uuid.");else{this.loading=!0;try{const t=await this.$viewer.api.apiClient.modelApi.getElement(this.$viewer.api.cloudId,i.model.id,this.$viewer.api.projectId,i.uuid);e={properties:SZe(t,this),stateObject:i,uuid:i.uuid}}catch(t){console.error(t)}finally{this.loading=!1}}return e},onPropertiesEdited({object:i,author:e}){e!==this&&this.displayedElement?.uuid===i.uuid&&this.refreshDisplayedElement()}}};function BZe(i){const e=[];return i.forEach(t=>{t.highlighted&&e.push(t),e.push(...t.children.filter(n=>n.highlighted))}),e}const ZG={GRAY:"Gy",BECQUEREL:"Bq",MOLE:"mole",SQUARE_METRE:"m²",FARAD:"F",DEGREE_CELSIUS:"ºC",DEGREE:"°",SIEVERT:"Sv",COULOMB:"C",SIEMENS:"S",AMPERE:"A",VOLT:"V",OHM:"W",JOULE:"J",NEWTON:"N",HERTZ:"Hz",LUX:"lx",HENRY:"H",METRE:"m",LUMEN:"lm",CANDELA:"ld",WEBER:"Wb",TESLA:"T",GRAM:"g",RADIAN:"rad",WATT:"W",PASCAL:"Pa",STERADIAN:"sr",KELVIN:"K",SECOND:"s",CUBIC_METRE:"m³"},YG={KILO:"k",DECA:"da",CENTI:"c",MILLI:"m",MEGA:"M",GIGA:"M",HECTO:"h",DEKA:"da",DECI:"d",MICRO:"μ"};function XG({id:i,property_set_id:e,definition:t,value:n,nonEditable:o},r,s,a){let l=t.unit?.name||"",c=t.unit?.prefix||"";c&&YG[c]&&(c=YG[c]),l&&ZG[l]&&(l=ZG[l]);let u=c+l,d;const h=`properties.attributes_name.${t.name}`,p=t.value_type;return a.name==="Attributs"&&s.$viewer.i18n.$te(h)?d=s.$viewer.i18n.$t(h):d=t.name,{id:i,ref:r,property_set_id:e,name:d,value:n,valueType:p,unit:u,nonEditable:o,searchContent:WG(`${d||""}${n||""} ${u}`).toLowerCase(),get highlighted(){return s.filter!==""&&this.searchContent.includes(s.slugFilter)},parent:a}}function IZe(i){const e=i.attributes.properties;e.id=i.attributes.id;const t=e.findIndex(n=>n.definition.name==="type");return t!==-1&&e.splice(t,1),e.push({definition:{name:"type"},value:i.type,nonEditable:!0}),e.push({definition:{name:"UUID"},value:i.uuid,nonEditable:!0}),e}function SZe(i,e){let t=1;const n=[],o=IZe(i),{classifications:r,property_sets:s}=i;if(o){const a={id:o.id,ref:`element${t++}`,get name(){return e.$viewer.i18n.$t("properties.attributes")},editable:!0,displayed:!0,get searchContent(){return e.$viewer.i18n.$t("properties.attributes").toLowerCase()},get highlighted(){return e.filter!==""&&this.searchContent.includes(e.slugFilter)}};a.children=o.map(l=>XG(l,`element${t++}`,e,a)),n.push(a)}if(r?.length>0){const a={ref:`element${t++}`,get name(){return e.$viewer.i18n.$t("properties.classification")},editable:!1,displayed:!0,get searchContent(){return e.$viewer.i18n.$t("properties.classification").toLowerCase()},get highlighted(){return e.filter!==""&&this.searchContent.includes(e.slugFilter)}};a.children=r.map(l=>({...l,searchContent:`${l.name||""} ${l.notation||""} - ${l.title||""}
|
|
42
42
|
`.toLowerCase(),ref:`element${t++}`,get highlighted(){return e.filter!==""&&this.searchContent.includes(e.slugFilter)},parent:a})),n.push(a)}return s&&s.forEach(({id:a,name:l,properties:c,type:u})=>{const d={id:a,ref:`element${t++}`,name:l,editable:!0,displayed:!0,isType:u?.endsWith("_type"),searchContent:l.toLowerCase(),get highlighted(){return e.filter!==""&&this.searchContent.includes(e.slugFilter)}};d.children=c.map(h=>XG(h,`element${t++}`,e,d)),n.push(d)}),n}const PZe={class:"bimdata-properties__properties"},TZe={key:0,class:"bimdata-properties__properties__content"},kZe={class:"bimdata-properties__properties__content__searchbar"},RZe={class:"bimdata-properties__properties__content__list"},_Ze=["onClick"],DZe={key:0,class:"bimdata-properties__properties__content__list__element__detail"},LZe={class:"bimdata-properties__properties__content__list__element__detail__property__name"},FZe={class:"bimdata-properties__properties__content__list__element__detail__property__value"},OZe={key:0,class:"bimdata-properties__properties__content__list__element__detail"},NZe={class:"bimdata-properties__properties__content__list__element__detail__property__name"},UZe={class:"bimdata-properties__properties__content__list__element__detail__property__value"};function VZe(i,e,t,n,o,r){const s=P("BIMDataSearch"),a=P("BIMDataIconChevron"),l=P("BIMDataEditableLabel"),c=P("BIMDataLoading");return E(),L("div",PZe,[o.displayedElement?(E(),L("div",TZe,[C("div",kZe,[k(s,{modelValue:o.filter,"onUpdate:modelValue":e[0]||(e[0]=u=>o.filter=u),placeholder:i.$t("global.search"),height:"36px",radius:"",width:"100%",color:"primary"},null,8,["modelValue","placeholder"])]),C("div",RZe,[(E(!0),L($e,null,Mt(o.displayedElement.properties,u=>(E(),L("div",{key:u.id,class:"bimdata-properties__properties__content__list__element"},[C("div",{ref_for:!0,ref:u.ref,class:ce(["bimdata-properties__properties__content__list__element__title",{"bimdata-properties__properties__content__list__element__title--highlighted":u.highlighted}]),onClick:d=>u.displayed=!u.displayed},[C("span",null,G(u.name+(u.isType?` (${i.$t("properties.property_set_type")})`:"")),1),k(a,{class:"fill-primary",size:"xxxs",rotate:u.displayed?-90:90},null,8,["rotate"])],10,_Ze),u.name!==i.$t("properties.classification")?(E(),L($e,{key:0},[u.displayed?(E(),L("div",DZe,[(E(!0),L($e,null,Mt(u.children,d=>(E(),L("div",{key:d.id,ref_for:!0,ref:d.ref,class:ce(["bimdata-properties__properties__content__list__element__detail__property",{"bimdata-properties__properties__content__list__element__detail__property--highlighted":d.highlighted}])},[C("div",LZe,[C("span",null,G(d.name),1)]),C("span",FZe,[k(l,{disabled:o.editLoading,"validate-callback":r.onValidate,"validate-callback-args":[d,u.id,"attributes"],"edit-on-click":t.editAllowed&&!d.nonEditable,"edit-on-right-click":t.editAllowed&&!d.nonEditable,text:d.value,units:d.unit,"value-type":d.valueType},null,8,["disabled","validate-callback","validate-callback-args","edit-on-click","edit-on-right-click","text","units","value-type"])])],2))),128))])):te("",!0)],64)):(E(),L($e,{key:1},[u.displayed?(E(),L("div",OZe,[(E(!0),L($e,null,Mt(u.children,d=>(E(),L("div",{key:d.id,class:ce(["bimdata-properties__properties__content__list__element__detail__property",{"bimdata-properties__properties__content__list__element__detail__property--highlighted":d.highlighted}])},[C("span",NZe,G(d.name),1),C("span",UZe,G(d.notation)+" - "+G(d.title),1)],2))),128))])):te("",!0)],64))]))),128))])])):te("",!0),o.loading?(E(),K(c,{key:1})):te("",!0)])}const HZe=V(EZe,[["render",VZe],["__scopeId","data-v-edab0325"]]);var S6={exports:{}},P6={exports:{}},$G;function zZe(){return $G||($G=1,(function(i,e){Object.defineProperty(e,"__esModule",{value:!0});var t=Rj(),n=l(t),o=a6(),r=l(o),s=Kj(),a=l(s);function l(c){return c&&c.__esModule?c:{default:c}}e.default=(0,a.default)((c,u,d)=>{var h=(0,n.default)(u)?[]:{};c(u,(p,A,f)=>{(0,r.default)(p)((g,...m)=>{m.length<2&&([m]=m),h[A]=m,f(g)})},p=>d(p,h))},3),i.exports=e.default})(P6,P6.exports)),P6.exports}var eQ;function jZe(){return eQ||(eQ=1,(function(i,e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=a;var t=Gj(),n=s(t),o=zZe(),r=s(o);function s(l){return l&&l.__esModule?l:{default:l}}function a(l,c,u){return(0,r.default)((0,n.default)(c),l,u)}i.exports=e.default})(S6,S6.exports)),S6.exports}var GZe=jZe();const QZe=s3(GZe),tQ="Folder";function iQ(i){return new Promise(e=>setTimeout(e,i))}async function qZe({name:i,url:e}){const t=document.createElement("a");t.style.display="none",t.download=i,t.href=e,document.body.append(t),t.click(),await iQ(100),t.remove(),await iQ(500)}function KZe(i){const e=[],t=[];for(const n of i)n.type===tQ?e.push(n):t.push(n);return{folders:e,documents:t}}function JZe(i,e){const{projectId:t,spaceId:n,accessToken:o,apiUrl:r="https://api.bimdata.io"}=e,s=WZe(r),{folders:a,documents:l}=KZe(i);let c="";return(a.length>0||l.length>0)&&(c+=`${s}/cloud/${n}/project/${t}?`,c+=`accessToken=${o}&`,c+=a.map(u=>`folderId[]=${u.id}`).join("&"),c+=a.length>0&&l.length>0?"&":"",c+=l.map(u=>`documentId[]=${u.id}`).join("&")),c}function WZe(i){const e=new URL(i),t=e.hostname;let n="";const[o,...r]=t.split("."),s=r.join(".");return o.includes("-staging")?n="-staging":o.includes("-next")&&(n="-next"),e.protocol+"//archive"+n+"."+s}async function ZZe(i,e={}){try{if(i.length===0)return;let t=null;const n=i[0].name;return i.length===1&&i[0].type!==tQ?t=i[0].file:t=JZe(i,e),await qZe({name:n,url:t})}catch(t){throw new Error(t)}}const YZe={props:{documents:{type:Array,default:()=>[]}},emits:["close","validate"],created(){document.addEventListener("keydown",this.onKeyDown)},unmounted(){document.removeEventListener("keydown",this.onKeyDown)},methods:{onKeyDown(i){i.key==="Escape"&&this.$emit("close")},onCancelClick(){this.$emit("close")},onDeleteClick(){this.$emit("validate")},onCloseClick(){this.$emit("close")}}},XZe={class:"bimdata-properties__delete-modal"},$Ze={class:"bimdata-properties__delete-modal__content"},eYe={class:"bimdata-properties__delete-modal__content__close"},tYe={class:"bimdata-properties__delete-modal__content__title"},iYe={class:"bimdata-properties__delete-modal__content__description"},nYe={class:"bimdata-properties__delete-modal__content__list"},oYe={class:"bimdata-properties__delete-modal__content__footer"};function sYe(i,e,t,n,o,r){const s=P("BIMDataIconClose"),a=P("BIMDataButton"),l=P("BIMDataTextbox");return E(),L("div",XZe,[C("div",$Ze,[C("div",eYe,[k(a,{color:"primary",ghost:"",rounded:"",icon:"",onClick:r.onCloseClick},{default:U(()=>[k(s,{size:"s"})]),_:1},8,["onClick"])]),C("h2",tYe,G(i.$t("properties.delete_modal_title")),1),C("div",iYe,G(i.$t("properties.delete_modal_description"))+" : ",1),C("ul",nYe,[(E(!0),L($e,null,Mt(t.documents,c=>(E(),L("li",{key:c.id},[k(l,{text:c.name,width:"calc(100% - 40px)"},null,8,["text"])]))),128))]),C("div",oYe,[k(a,{color:"granite",outline:"",radius:"",width:"120px",onClick:r.onCancelClick},{default:U(()=>[Ke(G(i.$t("global.cancel")),1)]),_:1},8,["onClick"]),k(a,{color:"high",fill:"",radius:"",width:"120px",onClick:r.onDeleteClick},{default:U(()=>[Ke(G(i.$t("global.delete")),1)]),_:1},8,["onClick"])])])])}const rYe=V(YZe,[["render",sYe],["__scopeId","data-v-7f2b9947"]]),aYe={components:{BIMDataEmpty:uu},inject:["$viewer"],emits:["back","selected"],data(){return{loading:!1,filter:"",elements:[]}},computed:{filteredElements(){const i=new RegExp(this.filter,"i");return this.elements.filter(e=>i.test(e.name))},emptySearch(){return this.elements.length>0&&this.filteredElements.length===0}},async created(){this.loading=!0;try{const i=this.$viewer.api.cloudId,e=this.$viewer.api.projectId,t=this.$viewer.state.models.map(r=>r.id),n=await Promise.all(t.map(r=>this.$viewer.api.apiClient.modelApi.getElementLinkedDocuments(i,r,e))),o=Array.from(new Set(n.flat().flatMap(r=>r.element_uuids)));this.elements=this.$viewer.state.getObjectsByUuids(o)}catch{console.error(this.$t("properties.linked_documents_error")),this.$viewer.localContext.hub.emit("alert",{type:"error",message:this.$t("properties.linked_documents_error")})}finally{this.loading=!1}},methods:{onElementClick(i){this.$viewer.state.selectObjects([i.id],{exclusive:!0}),this.$emit("selected")}}},lYe={class:"bimdata-properties-linked-element"},cYe={class:"bimdata-properties-linked-element__header"},uYe={class:"bimdata-properties-linked-element__header__text"},dYe={key:0,class:"bimdata-properties-linked-element__list--empty"},hYe={key:1,class:"bimdata-properties-linked-element__list"},pYe=["onClick"],fYe={class:"bimdata-properties-linked-element__list__element__icon"};function AYe(i,e,t,n,o,r){const s=P("BIMDataIconArrow"),a=P("BIMDataButton"),l=P("BIMDataSearch"),c=P("BIMDataIllustration"),u=P("BIMDataEmpty"),d=P("BIMDataIconModel3D"),h=P("BIMDataTextbox"),p=P("BIMDataLoading");return E(),L("div",lYe,[C("div",cYe,[k(a,{color:"primary",ghost:"",radius:"",icon:"",height:"36px",width:"36px",onClick:e[0]||(e[0]=A=>i.$emit("back"))},{default:U(()=>[k(s,{size:"xs"})]),_:1}),C("h4",uYe,G(i.$t("properties.linked_element_list")),1)]),k(l,{modelValue:o.filter,"onUpdate:modelValue":e[1]||(e[1]=A=>o.filter=A),placeholder:i.$t("global.search"),height:"36px",width:"100%",radius:"",color:"primary",class:"bimdata-properties-linked-element__searchbar"},null,8,["modelValue","placeholder"]),r.emptySearch?(E(),L("div",dYe,[k(u,{message:i.$t("properties.empty_search")},{default:U(()=>[k(c,{name:"emptyProperties"})]),_:1},8,["message"])])):(E(),L("ul",hYe,[(E(!0),L($e,null,Mt(r.filteredElements,A=>(E(),L("li",{key:A.id,class:"bimdata-properties-linked-element__list__element",onClick:f=>r.onElementClick(A)},[C("div",fYe,[k(d,{size:"xs"})]),k(h,{text:A.name,width:"calc(100% - 18px)"},null,8,["text"])],8,pYe))),128))])),o.loading?(E(),K(p,{key:2})):te("",!0)])}const mYe={name:"BimdataDocument",components:{BIMDataEmpty:uu,BIMDataGED:E6,DeleteModal:rYe,LinkedElement:V(aYe,[["render",AYe],["__scopeId","data-v-ca5185fc"]])},inject:["$viewer"],props:{selectedObject:{type:Object,default:null},linkedElementsShown:{type:Boolean}},emits:["link-close"],data(){return{selectedGEDDocuments:[],selectedLineDocuments:[],view:"list",documents:[],loading:!1,filter:"",gedFilter:"",deleteModalDisplayed:!1}},computed:{headerCheckboxValue(){return this.selectedLineDocuments.length===0?!1:this.selectedLineDocuments.length===this.documents.length?!0:null},alreadySelectedIds(){return this.documents.map(i=>i.id)},filteredDocuments(){if(this.filter==="")return this.documents;{const i=new RegExp(this.filter,"i");return this.documents.filter(e=>i.test(e.name))}},emptySearch(){return this.documents.length>0&&this.filteredDocuments.length===0}},watch:{selectedObject:{async handler(i){this.view="list",this.selectedLineDocuments=[],i?this.getDocuments():this.documents=[]},immediate:!0},view(){this.selectedGEDDocuments=[]}},created(){document.addEventListener("keyup",this.onKeyUp)},unmounted(){document.removeEventListener("keyup",this.onKeyUp)},methods:{onLineDocumentClick(i){if(i?.name?.match?.(/\.pdf$/)&&this.$viewer.registeredWindows.includes("pdf")){this.showPdf(i);return}this.toggleLineDocumentSelection(i)},async showPdf(i){this.$viewer.globalContext.pluginComponentInstances.has("pdf")||await this.$viewer.globalContext.open({ratio:60,direction:"row",insertAfter:!0,windowName:"pdf"}),this.$viewer.globalContext.pluginComponentInstances.get("pdf")[0].loadFile(i)},onLinkedElementBack(){this.linkedElementsShown?this.$emit("link-close"):this.view="list"},onLinkedElementSelected(){this.view="list",this.$emit("link-close")},onLinkedElementClick(){this.view="linked"},onCancelClick(){this.view="list"},async onDeleteModalValidate(){this.deleteModalDisplayed=!1,this.loading=!0;try{const i=this.$viewer.api.cloudId,e=this.$viewer.api.projectId,t=this.selectedObject.model.id;await this.$viewer.api.apiClient.modelApi.bulkRemoveDocumentsOfElement(i,this.selectedObject.uuid,t,e,this.selectedLineDocuments.map(n=>n.id)),this.documents=this.documents.filter(n=>!this.selectedLineDocuments.includes(n)),this.selectedLineDocuments=[],this.$viewer.localContext.hub.emit("alert",{type:"success",message:this.$t("properties.unlink_documents_success")})}catch{this.$viewer.localContext.hub.emit("alert",{type:"error",message:this.$t("properties.unlink_documents_error")})}finally{this.loading=!1}},onDeleteClick(){this.deleteModalDisplayed=!0},onDownloadClick(){const i={projectId:this.$viewer.api.projectId,spaceId:this.$viewer.api.cloudId,accessToken:this.$viewer.api.accessToken,apiUrl:this.$viewer.api.apiUrl};ZZe(this.selectedLineDocuments,i)},onHeaderCheckboxClick(){this.headerCheckboxValue===!0||this.headerCheckboxValue===null?this.selectedLineDocuments=[]:this.selectedLineDocuments=Array.from(this.documents)},toggleLineDocumentSelection(i){this.selectedLineDocuments.includes(i)?this.selectedLineDocuments=this.selectedLineDocuments.filter(e=>e!==i):this.selectedLineDocuments.push(i)},isSelected(i){return this.selectedLineDocuments.includes(i)},onAddDocumentClick(){this.view="dms"},async onValidateSelectionClick(){const i=this.selectedGEDDocuments.map(e=>e.id);this.loading=!0;try{const e=this.$viewer.api.cloudId,t=this.$viewer.api.projectId;await QZe(this.$viewer.state.selectedObjects.map(n=>async()=>this.$viewer.api.apiClient.modelApi.linkDocumentsOfElement(e,n.uuid,n.model.id,t,i)),20),console.info(this.$t("properties.link_documents_success")),this.$viewer.localContext.hub.emit("alert",{type:"success",message:this.$t("properties.link_documents_success")}),this.documents.push(...this.selectedGEDDocuments.filter(n=>!this.documents.find(o=>o.id===n.id))),this.selectedGEDDocuments=[],this.view="list"}catch{this.$viewer.localContext.hub.emit("alert",{type:"error",message:this.$t("properties.link_documents_error")})}finally{this.loading=!1}},onKeyUp(i){i.key==="Escape"&&(this.view="list")},onDocumentSelectionChange(i){this.selectedGEDDocuments=i},onFromDMSClick(){this.view="dms"},async getDocuments(){this.documents=[],this.loading=!0;try{const i=await this.$viewer.api.apiClient.modelApi.getDocumentsOfElement(this.$viewer.api.cloudId,this.selectedObject.uuid,this.selectedObject.model.id,this.$viewer.api.projectId);this.documents=i}catch(i){this.$viewer.localContext.hub.emit("alert",{type:"error",message:i.message})}finally{this.loading=!1}}}},gYe={class:"bimdata-properties__documents"},yYe={class:"bimdata-properties__documents__searchbar"},vYe={key:0,class:"bimdata-properties__documents__list"},wYe={class:"bimdata-properties__documents__list__header"},CYe={class:"bimdata-properties__documents__list__header__start"},bYe={key:1,class:"bimdata-properties__documents__list__header__buttons"},xYe={class:"bimdata-properties__documents__list__spacer"},MYe={key:1,class:"bimdata-properties__documents__empty"},EYe={class:"bimdata-properties__documents__selection__buttons"},BYe={key:0,class:"bimdata-properties__documents__selection__buttons__length"};function IYe(i,e,t,n,o,r){const s=P("LinkedElement"),a=P("BIMDataIconLinkedDocument"),l=P("BIMDataButton"),c=P("BIMDataSearch"),u=P("BIMDataCheckbox"),d=P("BIMDataIconDelete"),h=P("BIMDataIconDownload"),p=P("BIMDataFileIcon"),A=P("BIMDataTextbox"),f=P("BIMDataIconPlus"),g=P("BIMDataIllustration"),m=P("BIMDataEmpty"),v=P("DeleteModal"),y=P("BIMDataGED"),w=P("BIMDataLoading");return E(),L("div",gYe,[t.linkedElementsShown||o.view==="linked"?(E(),K(s,{key:0,onBack:r.onLinkedElementBack,onSelected:r.onLinkedElementSelected},null,8,["onBack","onSelected"])):o.view==="list"?(E(),L($e,{key:1},[o.documents.length>0?(E(),L($e,{key:0},[C("div",yYe,[k(l,{icon:"",fill:"",radius:"",height:"36px",width:"36px",onClick:r.onLinkedElementClick},{default:U(()=>[k(a,{class:"fill-primary",size:"m"})]),_:1},8,["onClick"]),k(c,{modelValue:o.filter,"onUpdate:modelValue":e[0]||(e[0]=x=>o.filter=x),placeholder:i.$t("global.search"),height:"36px",radius:"",width:"calc(100% - 42px)",color:"primary"},null,8,["modelValue","placeholder"])]),r.emptySearch?te("",!0):(E(),L("ul",vYe,[C("li",wYe,[C("div",CYe,[k(u,{"model-value":r.headerCheckboxValue,"onUpdate:modelValue":r.onHeaderCheckboxClick},null,8,["model-value","onUpdate:modelValue"]),o.selectedLineDocuments.length===0?(E(),L($e,{key:0},[e[2]||(e[2]=C("div",{class:"bimdata-properties__documents__list__spacer"},null,-1)),C("span",null,G(i.$t("properties.name")),1)],64)):(E(),L("div",bYe,[k(l,{color:"high",ghost:"",radius:"",class:"bimdata-properties__documents__list__header__buttons__delete",onClick:r.onDeleteClick},{default:U(()=>[k(d,{size:"xs",margin:"0 12px 0 0"}),C("span",null,G(i.$t("global.delete")),1)]),_:1},8,["onClick"]),k(l,{color:"primary",ghost:"",radius:"",class:"bimdata-properties__documents__list__header__buttons__download",onClick:r.onDownloadClick},{default:U(()=>[k(h,{size:"xs",margin:"0 12px 0 0"}),C("span",null,G(i.$t("global.download")),1)]),_:1},8,["onClick"])]))])]),(E(!0),L($e,null,Mt(r.filteredDocuments,x=>(E(),L("li",{key:x.id,class:"bimdata-properties__documents__list__element"},[k(u,{"model-value":r.isSelected(x),"onUpdate:modelValue":M=>r.toggleLineDocumentSelection(x)},null,8,["model-value","onUpdate:modelValue"]),C("div",xYe,[k(p,{"file-name":x.name,size:20,onClick:M=>r.toggleLineDocumentSelection(x)},null,8,["file-name","onClick"])]),k(A,{width:"calc(100% - 100px)",text:x.name,onClick:M=>r.onLineDocumentClick(x)},null,8,["text","onClick"])]))),128))])),k(l,{class:"bimdata-properties__documents__list__header__add-button",color:"primary",fill:"",radius:"",icon:"",onClick:r.onAddDocumentClick},{default:U(()=>[k(f,{size:"xxxs"})]),_:1},8,["onClick"]),r.emptySearch?(E(),K(m,{key:1,message:i.$t("properties.empty_search")},{default:U(()=>[k(g,{name:"emptyProperties"})]),_:1},8,["message"])):te("",!0),o.deleteModalDisplayed?(E(),K(v,{key:2,class:"bimdata-properties__documents__delete-modal",documents:o.selectedLineDocuments,onClose:e[1]||(e[1]=x=>o.deleteModalDisplayed=!1),onValidate:r.onDeleteModalValidate},null,8,["documents","onValidate"])):te("",!0)],64)):(E(),L("div",MYe,[k(m,{message:i.$t("properties.no_document")},{default:U(()=>[k(g,{name:"emptyProperties"})]),_:1},8,["message"]),k(l,{color:"primary",fill:"",radius:"",width:"296px",class:"bimdata-properties__documents__empty__button",disabled:!t.selectedObject,onClick:r.onFromDMSClick},{default:U(()=>[Ke(G(i.$t("properties.from_dms")),1)]),_:1},8,["disabled","onClick"]),k(l,{color:"primary",fill:"",radius:"",width:"296px",class:"bimdata-properties__documents__empty__button--linked-element",onClick:r.onLinkedElementClick},{default:U(()=>[Ke(G(i.$t("properties.linked_element_list")),1)]),_:1},8,["onClick"])]))],64)):(E(),L($e,{key:2},[k(y,{ref:"ged",class:"bimdata-properties__documents__ged","header-buttons":!0,"multi-select-mode":!0,"already-selected-ids":r.alreadySelectedIds,onSelectionChange:r.onDocumentSelectionChange},null,8,["already-selected-ids","onSelectionChange"]),C("div",EYe,[k(l,{key:"cancelButton",width:"45%",color:"granite",outline:"",radius:"",onClick:r.onCancelClick},{default:U(()=>[Ke(G(i.$t("global.cancel")),1)]),_:1},8,["onClick"]),k(l,{key:"validateButton",width:"45%",color:"primary",fill:"",radius:"",disabled:o.selectedGEDDocuments.length===0,onClick:r.onValidateSelectionClick},{default:U(()=>[Ke(G(i.$t("properties.validate_selection"))+" ",1),o.selectedGEDDocuments.length>0?(E(),L("div",BYe,G(o.selectedGEDDocuments.length),1)):te("",!0)]),_:1},8,["disabled","onClick"])])],64)),o.loading?(E(),K(w,{key:3})):te("",!0)])}const SYe=V(mYe,[["render",IYe],["__scopeId","data-v-32f0c66a"]]),PYe={key:0,class:"bimdata-properties__bucket"},TYe={key:0,class:"bimdata-properties__bucket__edit-switch"},kYe={class:"bimdata-properties__bucket__selection-list__header"},RYe={class:"bimdata-info-length"},_Ye=["onClick"],DYe={class:"bimdata-properties__content"},uE=V({__name:"BIMDataProperties",props:{fromWrapper:{type:Boolean,default:!1}},setup(i){const e=st("$viewer"),t=st("$plugin"),n=i,o=se("properties"),r=hi(null),s=hi([]),a=se(!1),l=se(!1),c=se(0),u=Re(()=>[{id:1,get label(){return e.i18n.$t("properties.title")}},{id:2,get label(){return e.i18n.$t("properties.technical_documents")}}]),d=Re(()=>r.value?.model.document.user_permission===100),h=Re(()=>e.pluginsCfg[t.name]?.editProperties),p=Re(()=>h.value&&o.value==="properties"&&e.api.permissions.hasModelWritePermission),A=Re(()=>`${l.value?"--content-height: calc(100% - 44px)":"--content-height: calc(100% - 92px)"};
|
|
43
43
|
${p.value?"--bucket-width: calc(100% - 38px)":"--bucket-width: 100%"};
|
|
44
|
-
`),f=Re(()=>s.value.length>0?`${r.value?.name??e.i18n.$t("properties.no_name")}`:e.i18n.$t("properties.no_element"));lt(c,()=>l.value=!1);const g=()=>{if(n.fromWrapper){const S=e.localContext.pluginComponentInstances.get("viewer3d"),I=[];for(const R of S.loadedIfcIds)for(const T of e.state.modelsMap.get(R).objects)T.selected&&I.push(T);return I}else return e.state.selectedObjects},m=S=>{S.id===1?o.value="properties":o.value="documents"},v=S=>{r.value=S},y=S=>S?.uuid===r.value?.uuid,w=()=>{l.value=!0};let x=Array.from(g());const M=()=>{const S=g();s.value=[],r.value=null,S.length>0&&(s.value=Array.from(S),r.value=s.value.find(I=>I.model!=null&&I.uuid&&!x.some(R=>R.id===I.id))??null,r.value||(r.value=s.value.find(I=>I.model!=null&&I.uuid)??null)),x=Array.from(g())},B=[e.state.hub.on("objects-deselected",M),e.state.hub.on("objects-selected",M)];if(n.fromWrapper)lt(()=>e.localContext.pluginComponentInstances.get("viewer3d").loadedIfcIds,S=>{c.value=S.length});else{const S=()=>{c.value=e.state.models.length};B.push(e.state.hub.on("ifcs-loaded",S,{getLastEvent:!0}),e.state.hub.on("ifcs-unloaded",S))}return M(),Ci(()=>{B.forEach(S=>e.state.hub.off(S))}),(S,I)=>{const R=P("BIMDataTabs"),T=P("BIMDataIconEdit"),D=P("BIMDataButton"),F=P("BIMDataTooltip"),N=P("BIMDataTextbox"),z=P("BIMDataDropdownList"),j=P("BIMDataIllustration");return E(),L("div",{class:"bimdata-properties",style:le(A.value)},[k(R,{tabs:u.value,"tab-size":"50%",selected:0,class:"bimdata-properties__tabs",onTabSelected:m},null,8,["tabs"]),l.value?te("",!0):(E(),L("div",PYe,[p.value?(E(),L("div",TYe,[k(F,{text:S.$t("properties.tooltip"),color:"granite-light"},{default:U(()=>[k(D,{class:ce(["bimdata-properties__bucket__edit-switch__button",{active:a.value}]),icon:"",fill:"",radius:"",height:"35px",disabled:!d.value,onClick:I[0]||(I[0]=W=>a.value=!a.value)},{default:U(()=>[k(T,{class:"fill-primary",size:"xs"})]),_:1},8,["class","disabled"])]),_:1},8,["text"])])):te("",!0),l.value?te("",!0):(E(),K(z,{key:1,ref:"propertiesHeaderList",class:"bimdata-properties__bucket__selection-list",list:s.value,disabled:s.value.length===0,"per-page":30,"element-key":"id"},{header:U(()=>[C("div",kYe,[C("div",RYe,G(s.value.length),1),k(N,{text:f.value,tooltip:!1,width:"calc(100% - 42px)"},null,8,["text"])])]),element:U(({element:W,close:J})=>[C("span",{class:ce({"bimdata-properties__bucket__selection-list--selected":y(W)}),onClick:$=>{J(),v(W)}},[k(N,{text:W.name||S.$t("properties.no_name"),tooltip:!1},null,8,["text"])],10,_Ye)]),_:1},8,["list","disabled"]))])),C("div",DYe,[r.value||o.value==="documents"&&l.value?(E(),L($e,{key:0},[yt(k(HZe,{"edit-allowed":a.value,"selected-object":r.value},null,8,["edit-allowed","selected-object"]),[[jt,o.value==="properties"]]),yt(k(SYe,{"selected-object":r.value,"linked-elements-shown":l.value,onLinkClose:I[1]||(I[1]=W=>l.value=!1)},null,8,["selected-object","linked-elements-shown"]),[[jt,o.value==="documents"]])],64)):(E(),K(uu,{key:1,message:o.value==="properties"?S.$t("properties.new_properties"):S.$t("properties.new_documents")},{footer:U(()=>[o.value==="documents"?(E(),K(D,{key:0,color:"primary",fill:"",radius:"",width:"296px",disabled:c.value===0,onClick:w},{default:U(()=>[Ke(G(S.$t("properties.linked_element_list")),1)]),_:1},8,["disabled"])):te("",!0)]),default:U(()=>[C("h2",null,G(o.value==="properties"?S.$t("properties.title"):S.$t("properties.title_secondary")),1),k(j,{name:"emptyProperties"})]),_:1},8,["message"]))])],4)}}},[["__scopeId","data-v-6c18d011"]]),dE={title:"Eigenschaften",tooltip:"Ausgabe",new_properties:"Bitte wählen Sie im Modell ein Element aus, um seine Eigenschaften anzuzeigen",object:"Gegenstand",objects:"Gegenstände",no_element:"Kein Element ausgewählt",no_name:"Nicht spezifiziert",classification:"Klassifizierung",attributes:"Attribute","edit-success":"Eigenschaft aktualisiert","edit-error":"Die Eigenschaft kann nicht aktualisiert werden","get-error":"Die Daten können nicht wiederhergestellt werden, bitte aktualisieren Sie die Seite",title_secondary:"Dokumente",new_documents:"Bitte wählen Sie einen Artikel im Modell aus, damit seine Dokumente angezeigt werden.",empty_search:"Die Suche liefert keine Erkenntnisse",technical_documents:"Technische Dokumente",no_document:"Kein Dokument",from_dms:"Datei aus Projekt auswählen",validate_selection:"Die Auswahl bestätigen",link_documents_success:"Dokumente erfolgreich verknüpft",link_documents_error:"Beim Verknüpfen der Dokumente ist ein Fehler aufgetreten.",unlink_documents_error:"Beim Aufheben der Verknüpfung der Dokumente ist ein Fehler aufgetreten.",unlink_documents_success:"Verknüpfung der Dokumente erfolgreich aufgehoben.",name:"Name",delete_modal_title:"Verknüpfung von Dokumenten aufheben",delete_modal_description:"Durch diese Aktion wird die Verknüpfung der folgenden Dokumente aufgehoben.",linked_element_list:"Liste verknüpfter Elemente",linked_documents_error:"Verknüpfte Elemente können nicht abgerufen werden.",attributes_name:{CompositionType:"Art der Zusammensetzung",Description:"Beschreibung",Elevation:"Erhebung",LongName:"Vollständiger Name",ObjectType:"Art des Objekts",Representation:"Vertretung",type:"Art",Name:"Name"},"invalid-format":"Ungültiges Format",requested_format:"Erwartetes Format:",property_set_type:"Typ"},hE={title:"Properties",tooltip:"Editing",new_properties:"Please select an element in the model to display its properties",object:"Object",objects:"Objects",no_element:"No element",no_name:"Not specified",classification:"Classification",attributes:"Attributes","edit-success":"Propertie updated","edit-error":"Impossible to update propertie","get-error":"Error fetching data, you should refresh the page",title_secondary:"Documents",new_documents:"Please select an item in the template to view its documents",empty_search:"The search did not give any results",technical_documents:"Technical documents",no_document:"No document",from_dms:"From the project's DMS",validate_selection:"Validate the selection",link_documents_success:"Successfully linked documents",link_documents_error:"An error occurred in linking the documents",unlink_documents_error:"An error occurred while untying the documents",unlink_documents_success:"Documents successfully untied",name:"Name",delete_modal_title:"Untie the documents",delete_modal_description:"This action will untie the following documents",linked_element_list:"List of related items",linked_documents_error:"Unable to retrieve linked items",attributes_name:{CompositionType:"Type of composition",Description:"Description",Elevation:"Elevation",LongName:"Full name",ObjectType:"Type of object",Representation:"Representation",type:"Type",Name:"Name"},"invalid-format":"Invalid format",requested_format:"Expected format:",property_set_type:"Type"},nQ={title:"Propiedades",tooltip:"Corrección",new_properties:"Seleccione un elemento del modelo para mostrar sus propiedades",object:"Objeto",objects:"Objetos",no_element:"Sin elemento",no_name:"No especificado",classification:"Clasificación",attributes:"Atributos","edit-success":"Propiedad actualizada","edit-error":"Imposible actualizar la propiedad","get-error":"Error al obtener datos, debe actualizar la página",title_secondary:"Documentos",new_documents:"Seleccione un elemento de la plantilla para ver sus documentos",empty_search:"La búsqueda no ha arrojado ningún resultado",technical_documents:"Documentos técnicos",no_document:"Sin documentos",from_dms:"De la GED del proyecto",validate_selection:"Confirmar la selección",link_documents_success:"Se han vinculado correctamente los documentos",link_documents_error:"Se ha producido un error al vincular los documentos",unlink_documents_error:"Se ha producido un error al desvincular los documentos",unlink_documents_success:"Se han desvinculado correctamente los documentos",name:"Nombre",delete_modal_title:"Desvincular los documentos",delete_modal_description:"Esta acción desvinculará los siguientes documentos",linked_element_list:"Lista de elementos vinculados",linked_documents_error:"No se pueden recuperar los elementos vinculados",attributes_name:{CompositionType:"Tipo de composición",Description:"Descripción",Elevation:"Elevación",LongName:"Nombre completo",ObjectType:"Tipo de objeto",Representation:"Representación",type:"Tipo",Name:"Nombre"},"invalid-format":"Formato no válido",requested_format:"Formato esperado :",property_set_type:"Tipo"},pE={title:"Propriétés",tooltip:"Édition",new_properties:"Veuillez sélectionner un élément dans le modèle pour afficher ses propriétés",object:"Objet",objects:"Objets",no_element:"Pas d'élément selectionné",no_name:"Non spécifié",classification:"Classification",attributes:"Attributs","edit-success":"Propriété mise à jour","edit-error":"Impossible de mettre à jour la propriété","get-error":"Impossible de résupérer la donnée, veuillez rafraichir la page",title_secondary:"Documents",new_documents:"Veuillez sélectionner un élément dans le modèle pour afficher ses documents",empty_search:"La recherche ne donne aucun résultat",technical_documents:"Documents techniques",no_document:"Aucun document",from_dms:"Depuis la GED du projet",validate_selection:"Valider la selection",link_documents_success:"Documents liés avec succès",link_documents_error:"Une erreur est survenue en liant les documents",unlink_documents_error:"Une erreur est survenue en déliant les documents",unlink_documents_success:"Documents déliés avec succès",name:"Nom",delete_modal_title:"Délier les documents",delete_modal_description:"Cette action va délier les documents suivants",linked_element_list:"Liste des éléments liés",linked_documents_error:"Impossible de récupérer les éléments liés",attributes_name:{CompositionType:"Type de composition",Description:"Description",Elevation:"Élévation",LongName:"Nom complet",ObjectType:"Type d'objet",Representation:"Représentation",type:"Type",Name:"Nom"},"invalid-format":"Format invalide",requested_format:"Format attendu :",property_set_type:"Type"},oQ={title:"Proprietà",tooltip:"Modifica",new_properties:"Seleziona un elemento nel modello per visualizzare le sue proprietà",object:"Oggetto",objects:"Oggetti",no_element:"Nessun elemento selezionato",no_name:"Non specificato",classification:"Classificazione",attributes:"Attributi","edit-success":"Proprietà aggiornata","edit-error":"Impossibile aggiornare la proprietà","get-error":"Impossibile recuperare i dati, aggiorna la pagina",title_secondary:"Documenti",new_documents:"Seleziona un elemento nel modello per visualizzare i relativi documenti",empty_search:"La ricerca non ha fornito risultati",technical_documents:"Documenti tecnici",no_document:"Nessun documento",from_dms:"Dalla GED del progetto",validate_selection:"Conferma la selezione",link_documents_success:"Documenti collegati correttamente",link_documents_error:"Si è verificato un errore durante il collegamento dei documenti",unlink_documents_error:"Si è verificato un errore durante lo scollegamento dei documenti",unlink_documents_success:"Documenti scollegati correttamente",name:"Nome",delete_modal_title:"Scollega i documenti",delete_modal_description:"Questa azione scollegherà i documenti seguenti",linked_element_list:"Elenco degli elementi collegati",linked_documents_error:"Impossibile recuperare gli elementi collegati",attributes_name:{CompositionType:"Tipo di composizione",Description:"Descrizione",Elevation:"Elevazione",LongName:"Nome completo",ObjectType:"Tipo di oggetto",Representation:"Rappresentazione",type:"Tipo",Name:"Nome"}},LYe={name:"properties",i18n:{de:dE,en:hE,es:nQ,fr:pE,it:oQ},component:uE,window:{name:"properties",label:"properties.title",icon:{imgUri:"data:image/svg+xml,%3csvg%20width='24'%20height='23'%20viewBox='0%200%2024%2023'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3crect%20x='8.67139'%20y='4.14001'%20width='6.44'%20height='1.84'%20fill='%23F8C62C'/%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M6.0613%200.459961H18.7914V8.97184C18.2033%208.82047%2017.5867%208.73996%2016.9514%208.73996L16.9514%202.29996H6.83137V6.90002H2.23139V19.78H10.576C10.9767%2020.4725%2011.4869%2021.0938%2012.0831%2021.62H0.391388V6.12987L6.0613%200.459961Z'%20fill='%232F374A'/%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M9.5914%2016.0999H4.07138V17.9399H9.82324C9.67189%2017.3518%209.5914%2016.7353%209.5914%2016.1C9.5914%2016.0999%209.5914%2016.0999%209.5914%2016.0999Z'%20fill='%23F8C62C'/%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M10.5761%2012.42H4.07138V14.26H9.82328C9.9913%2013.6073%2010.2466%2012.9895%2010.5761%2012.42Z'%20fill='%23F8C62C'/%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M15.1114%208.97184V8.73999H4.07138V10.58H12.083C12.9389%209.82462%2013.9717%209.26517%2015.1114%208.97184Z'%20fill='%23F8C62C'/%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M16.9514%2022.54C20.5081%2022.54%2023.3914%2019.6567%2023.3914%2016.1C23.3914%2012.5433%2020.5081%209.66003%2016.9514%209.66003C13.3947%209.66003%2010.5114%2012.5433%2010.5114%2016.1C10.5114%2019.6567%2013.3947%2022.54%2016.9514%2022.54ZM16.234%2017.406H17.4199L17.5879%2012.4201H16.066L16.234%2017.406ZM17.4051%2018.3992C17.2601%2018.2576%2017.0674%2018.1868%2016.8269%2018.1868C16.5898%2018.1868%2016.397%2018.2592%2016.2488%2018.4042C16.1039%2018.5458%2016.0314%2018.7254%2016.0314%2018.9428C16.0314%2019.1602%2016.1039%2019.3398%2016.2488%2019.4814C16.397%2019.6231%2016.5898%2019.6939%2016.8269%2019.6939C17.0674%2019.6939%2017.2601%2019.6231%2017.4051%2019.4814C17.5533%2019.3398%2017.6275%2019.1602%2017.6275%2018.9428C17.6275%2018.7221%2017.5533%2018.5409%2017.4051%2018.3992Z'%20fill='%232F374A'/%3e%3c/svg%3e"}}},FYe={name:"button-properties",addToWindows:["3d"],i18nTokenPrefix:"properties",i18n:{de:dE,en:hE,es:nQ,fr:pE,it:oQ},component:uE,button:{position:"left",stance:-1,content:"panel",tooltip:"properties.title",keepOpen:!0,icon:{component:"BIMDataIconList",options:{size:"m"}}}},OYe={render(){return null},name:"BIMDataFirstPersonView",mounted(){const i=this.$viewer.localContext.pluginComponentInstances.get("viewer3d");if(!i){const e="Plugin Projection cannot work without viewer3D plugin.";throw console.error(e),new Error(e)}this.viewer3d=i},onOpen(){const i=this.viewer3d.xeokit,e=this.$viewer.localContext.loadedModels[0];if(!e){setTimeout(()=>this.$close());return}const t=this.$viewer.state.getStoreyFromAbsoluteElevation(e,i.camera.eye[1]);if(t&&t.key!==this.$viewer.localContext.selectedStorey?.key&&this.$viewer.localContext.selectStorey(t),!t)return;const{math:n}=this.viewer3d.xeokitSdk,o=Object.values(i.scene.models).find(f=>f.ifc.id===t.model.id);if(!o)return;const r=new Map(Array.from(Object.values(o.objects)).map(f=>[f.originalSystemId,f])),a=t.objects.map(f=>f.uuid).map(f=>r.get(f)).filter(Boolean),{eye:l}=i.scene.camera;let c=1/0,u=null;for(const f of a){const[g,,m,v,,y]=f.aabb,w={x:(g+v)/2,y:(m+y)/2},x={x:w.x+(v-g)/2,y:w.y+(y-m)/2},M=Math.sqrt((x.x-l[0])**2+(x.y-l[2])**2);M<c&&(c=M,u=x)}if(!u)return;const d=[u.x,u.y],h=n.mulVec2Scalar(n.normalizeVec2(n.subVec2([l[0],l[2]],d,n.vec2())),3),p=[d[0]+h[0],d[1]+h[1]],A=[p[0],t.absoluteElevation+this.viewer3d.STOREY_HEIGHT_CAMERA_OFFSET,p[1]];return i.cameraFlight.flyTo({eye:A,duration:.5}),new Promise(f=>setTimeout(()=>{this.viewer3d.firstPersonView=!0,f()},500))},onClose(){this.viewer3d.firstPersonView=!1}},NYe={},UYe={width:"14",height:"23",viewBox:"0 0 14 23",fill:"none",xmlns:"http://www.w3.org/2000/svg"};function VYe(i,e){return E(),L("svg",UYe,[...e[0]||(e[0]=[C("path",{d:"M7.96154 4.27907C9.12923 4.27907 10.0846 3.31628 10.0846 2.13953C10.0846 0.962791 9.12923 0 7.96154 0C6.79385 0 5.83846 0.962791 5.83846 2.13953C5.83846 3.31628 6.79385 4.27907 7.96154 4.27907ZM4.03385 7.91628L1.06154 23H3.29077L5.20154 14.4419L7.43077 16.5814V23H9.55385V14.9767L7.32461 12.8372L7.96154 9.62791C9.34154 11.2326 11.4646 12.3023 13.8 12.3023V10.1628C11.7831 10.1628 10.0846 9.09302 9.23538 7.59535L8.17385 5.88372C7.74923 5.24186 7.11231 4.81395 6.36923 4.81395C6.05077 4.81395 5.83846 4.92093 5.52 4.92093L0 7.27442V12.3023H2.12308V8.66512L4.03385 7.91628Z",fill:"black"},null,-1)])])}const HYe=V(NYe,[["render",VYe]]),zYe={},jYe={width:"21",height:"23",viewBox:"0 0 21 23",fill:"none",xmlns:"http://www.w3.org/2000/svg"};function GYe(i,e){return E(),L("svg",jYe,[...e[0]||(e[0]=[C("path",{d:"M10.35 0C11.615 0 12.65 1.035 12.65 2.3C12.65 3.565 11.615 4.6 10.35 4.6C9.085 4.6 8.05 3.565 8.05 2.3C8.05 1.035 9.085 0 10.35 0ZM20.7 8.05H13.8V23H11.5V16.1H9.2V23H6.9V8.05H0V5.75H20.7V8.05Z",fill:"black"},null,-1)])])}const QYe={name:"firstPersonView",i18n:{en:{tooltip:"First-person view"},fr:{tooltip:"Vue première personne"}},addToWindows:["3d"],component:OYe,button:{tooltip:"firstPersonView.tooltip",position:"right",content:"free",keepOpen:!0,icon:{component:V(zYe,[["render",GYe]])},iconOpen:{component:HYe}}};var ic=(i=>(i[i.WEBGL_LEGACY=0]="WEBGL_LEGACY",i[i.WEBGL=1]="WEBGL",i[i.WEBGL2=2]="WEBGL2",i))(ic||{}),sQ=(i=>(i[i.UNKNOWN=0]="UNKNOWN",i[i.WEBGL=1]="WEBGL",i[i.CANVAS=2]="CANVAS",i))(sQ||{}),T6=(i=>(i[i.COLOR=16384]="COLOR",i[i.DEPTH=256]="DEPTH",i[i.STENCIL=1024]="STENCIL",i))(T6||{}),Zt=(i=>(i[i.NORMAL=0]="NORMAL",i[i.ADD=1]="ADD",i[i.MULTIPLY=2]="MULTIPLY",i[i.SCREEN=3]="SCREEN",i[i.OVERLAY=4]="OVERLAY",i[i.DARKEN=5]="DARKEN",i[i.LIGHTEN=6]="LIGHTEN",i[i.COLOR_DODGE=7]="COLOR_DODGE",i[i.COLOR_BURN=8]="COLOR_BURN",i[i.HARD_LIGHT=9]="HARD_LIGHT",i[i.SOFT_LIGHT=10]="SOFT_LIGHT",i[i.DIFFERENCE=11]="DIFFERENCE",i[i.EXCLUSION=12]="EXCLUSION",i[i.HUE=13]="HUE",i[i.SATURATION=14]="SATURATION",i[i.COLOR=15]="COLOR",i[i.LUMINOSITY=16]="LUMINOSITY",i[i.NORMAL_NPM=17]="NORMAL_NPM",i[i.ADD_NPM=18]="ADD_NPM",i[i.SCREEN_NPM=19]="SCREEN_NPM",i[i.NONE=20]="NONE",i[i.SRC_OVER=0]="SRC_OVER",i[i.SRC_IN=21]="SRC_IN",i[i.SRC_OUT=22]="SRC_OUT",i[i.SRC_ATOP=23]="SRC_ATOP",i[i.DST_OVER=24]="DST_OVER",i[i.DST_IN=25]="DST_IN",i[i.DST_OUT=26]="DST_OUT",i[i.DST_ATOP=27]="DST_ATOP",i[i.ERASE=26]="ERASE",i[i.SUBTRACT=28]="SUBTRACT",i[i.XOR=29]="XOR",i))(Zt||{}),pr=(i=>(i[i.POINTS=0]="POINTS",i[i.LINES=1]="LINES",i[i.LINE_LOOP=2]="LINE_LOOP",i[i.LINE_STRIP=3]="LINE_STRIP",i[i.TRIANGLES=4]="TRIANGLES",i[i.TRIANGLE_STRIP=5]="TRIANGLE_STRIP",i[i.TRIANGLE_FAN=6]="TRIANGLE_FAN",i))(pr||{}),Ot=(i=>(i[i.RGBA=6408]="RGBA",i[i.RGB=6407]="RGB",i[i.RG=33319]="RG",i[i.RED=6403]="RED",i[i.RGBA_INTEGER=36249]="RGBA_INTEGER",i[i.RGB_INTEGER=36248]="RGB_INTEGER",i[i.RG_INTEGER=33320]="RG_INTEGER",i[i.RED_INTEGER=36244]="RED_INTEGER",i[i.ALPHA=6406]="ALPHA",i[i.LUMINANCE=6409]="LUMINANCE",i[i.LUMINANCE_ALPHA=6410]="LUMINANCE_ALPHA",i[i.DEPTH_COMPONENT=6402]="DEPTH_COMPONENT",i[i.DEPTH_STENCIL=34041]="DEPTH_STENCIL",i))(Ot||{}),qd=(i=>(i[i.TEXTURE_2D=3553]="TEXTURE_2D",i[i.TEXTURE_CUBE_MAP=34067]="TEXTURE_CUBE_MAP",i[i.TEXTURE_2D_ARRAY=35866]="TEXTURE_2D_ARRAY",i[i.TEXTURE_CUBE_MAP_POSITIVE_X=34069]="TEXTURE_CUBE_MAP_POSITIVE_X",i[i.TEXTURE_CUBE_MAP_NEGATIVE_X=34070]="TEXTURE_CUBE_MAP_NEGATIVE_X",i[i.TEXTURE_CUBE_MAP_POSITIVE_Y=34071]="TEXTURE_CUBE_MAP_POSITIVE_Y",i[i.TEXTURE_CUBE_MAP_NEGATIVE_Y=34072]="TEXTURE_CUBE_MAP_NEGATIVE_Y",i[i.TEXTURE_CUBE_MAP_POSITIVE_Z=34073]="TEXTURE_CUBE_MAP_POSITIVE_Z",i[i.TEXTURE_CUBE_MAP_NEGATIVE_Z=34074]="TEXTURE_CUBE_MAP_NEGATIVE_Z",i))(qd||{}),pi=(i=>(i[i.UNSIGNED_BYTE=5121]="UNSIGNED_BYTE",i[i.UNSIGNED_SHORT=5123]="UNSIGNED_SHORT",i[i.UNSIGNED_SHORT_5_6_5=33635]="UNSIGNED_SHORT_5_6_5",i[i.UNSIGNED_SHORT_4_4_4_4=32819]="UNSIGNED_SHORT_4_4_4_4",i[i.UNSIGNED_SHORT_5_5_5_1=32820]="UNSIGNED_SHORT_5_5_5_1",i[i.UNSIGNED_INT=5125]="UNSIGNED_INT",i[i.UNSIGNED_INT_10F_11F_11F_REV=35899]="UNSIGNED_INT_10F_11F_11F_REV",i[i.UNSIGNED_INT_2_10_10_10_REV=33640]="UNSIGNED_INT_2_10_10_10_REV",i[i.UNSIGNED_INT_24_8=34042]="UNSIGNED_INT_24_8",i[i.UNSIGNED_INT_5_9_9_9_REV=35902]="UNSIGNED_INT_5_9_9_9_REV",i[i.BYTE=5120]="BYTE",i[i.SHORT=5122]="SHORT",i[i.INT=5124]="INT",i[i.FLOAT=5126]="FLOAT",i[i.FLOAT_32_UNSIGNED_INT_24_8_REV=36269]="FLOAT_32_UNSIGNED_INT_24_8_REV",i[i.HALF_FLOAT=36193]="HALF_FLOAT",i))(pi||{}),k6=(i=>(i[i.FLOAT=0]="FLOAT",i[i.INT=1]="INT",i[i.UINT=2]="UINT",i))(k6||{}),fa=(i=>(i[i.NEAREST=0]="NEAREST",i[i.LINEAR=1]="LINEAR",i))(fa||{}),du=(i=>(i[i.CLAMP=33071]="CLAMP",i[i.REPEAT=10497]="REPEAT",i[i.MIRRORED_REPEAT=33648]="MIRRORED_REPEAT",i))(du||{}),nc=(i=>(i[i.OFF=0]="OFF",i[i.POW2=1]="POW2",i[i.ON=2]="ON",i[i.ON_MANUAL=3]="ON_MANUAL",i))(nc||{}),ol=(i=>(i[i.NPM=0]="NPM",i[i.UNPACK=1]="UNPACK",i[i.PMA=2]="PMA",i[i.NO_PREMULTIPLIED_ALPHA=0]="NO_PREMULTIPLIED_ALPHA",i[i.PREMULTIPLY_ON_UPLOAD=1]="PREMULTIPLY_ON_UPLOAD",i[i.PREMULTIPLIED_ALPHA=2]="PREMULTIPLIED_ALPHA",i))(ol||{}),hu=(i=>(i[i.NO=0]="NO",i[i.YES=1]="YES",i[i.AUTO=2]="AUTO",i[i.BLEND=0]="BLEND",i[i.CLEAR=1]="CLEAR",i[i.BLIT=2]="BLIT",i))(hu||{}),R6=(i=>(i[i.AUTO=0]="AUTO",i[i.MANUAL=1]="MANUAL",i))(R6||{}),fr=(i=>(i.LOW="lowp",i.MEDIUM="mediump",i.HIGH="highp",i))(fr||{}),go=(i=>(i[i.NONE=0]="NONE",i[i.SCISSOR=1]="SCISSOR",i[i.STENCIL=2]="STENCIL",i[i.SPRITE=3]="SPRITE",i[i.COLOR=4]="COLOR",i))(go||{}),rQ=(i=>(i[i.RED=1]="RED",i[i.GREEN=2]="GREEN",i[i.BLUE=4]="BLUE",i[i.ALPHA=8]="ALPHA",i))(rQ||{}),Zn=(i=>(i[i.NONE=0]="NONE",i[i.LOW=2]="LOW",i[i.MEDIUM=4]="MEDIUM",i[i.HIGH=8]="HIGH",i))(Zn||{}),Aa=(i=>(i[i.ELEMENT_ARRAY_BUFFER=34963]="ELEMENT_ARRAY_BUFFER",i[i.ARRAY_BUFFER=34962]="ARRAY_BUFFER",i[i.UNIFORM_BUFFER=35345]="UNIFORM_BUFFER",i))(Aa||{});const Kd=2*Math.PI,aQ=180/Math.PI,lQ=Math.PI/180;var Oi=(i=>(i[i.POLY=0]="POLY",i[i.RECT=1]="RECT",i[i.CIRC=2]="CIRC",i[i.ELIP=3]="ELIP",i[i.RREC=4]="RREC",i))(Oi||{});let zn=class ame{constructor(e=0,t=0){this.x=0,this.y=0,this.x=e,this.y=t}clone(){return new ame(this.x,this.y)}copyFrom(e){return this.set(e.x,e.y),this}copyTo(e){return e.set(this.x,this.y),e}equals(e){return e.x===this.x&&e.y===this.y}set(e=0,t=e){return this.x=e,this.y=t,this}toString(){return`[@pixi/math:Point x=${this.x} y=${this.y}]`}};const _6=[new zn,new zn,new zn,new zn];let ln=class UO{constructor(e=0,t=0,n=0,o=0){this.x=Number(e),this.y=Number(t),this.width=Number(n),this.height=Number(o),this.type=Oi.RECT}get left(){return this.x}get right(){return this.x+this.width}get top(){return this.y}get bottom(){return this.y+this.height}static get EMPTY(){return new UO(0,0,0,0)}clone(){return new UO(this.x,this.y,this.width,this.height)}copyFrom(e){return this.x=e.x,this.y=e.y,this.width=e.width,this.height=e.height,this}copyTo(e){return e.x=this.x,e.y=this.y,e.width=this.width,e.height=this.height,e}contains(e,t){return!(this.width<=0||this.height<=0)&&e>=this.x&&e<this.x+this.width&&t>=this.y&&t<this.y+this.height}intersects(e,t){if(!t){const S=this.x<e.x?e.x:this.x;if((this.right>e.right?e.right:this.right)<=S)return!1;const I=this.y<e.y?e.y:this.y;return(this.bottom>e.bottom?e.bottom:this.bottom)>I}const n=this.left,o=this.right,r=this.top,s=this.bottom;if(o<=n||s<=r)return!1;const a=_6[0].set(e.left,e.top),l=_6[1].set(e.left,e.bottom),c=_6[2].set(e.right,e.top),u=_6[3].set(e.right,e.bottom);if(c.x<=a.x||l.y<=a.y)return!1;const d=Math.sign(t.a*t.d-t.b*t.c);if(d===0||(t.apply(a,a),t.apply(l,l),t.apply(c,c),t.apply(u,u),Math.max(a.x,l.x,c.x,u.x)<=n||Math.min(a.x,l.x,c.x,u.x)>=o||Math.max(a.y,l.y,c.y,u.y)<=r||Math.min(a.y,l.y,c.y,u.y)>=s))return!1;const h=d*(l.y-a.y),p=d*(a.x-l.x),A=h*n+p*r,f=h*o+p*r,g=h*n+p*s,m=h*o+p*s;if(Math.max(A,f,g,m)<=h*a.x+p*a.y||Math.min(A,f,g,m)>=h*u.x+p*u.y)return!1;const v=d*(a.y-c.y),y=d*(c.x-a.x),w=v*n+y*r,x=v*o+y*r,M=v*n+y*s,B=v*o+y*s;return!(Math.max(w,x,M,B)<=v*a.x+y*a.y||Math.min(w,x,M,B)>=v*u.x+y*u.y)}pad(e=0,t=e){return this.x-=e,this.y-=t,this.width+=2*e,this.height+=2*t,this}fit(e){const t=Math.max(this.x,e.x),n=Math.min(this.x+this.width,e.x+e.width),o=Math.max(this.y,e.y),r=Math.min(this.y+this.height,e.y+e.height);return this.x=t,this.width=Math.max(n-t,0),this.y=o,this.height=Math.max(r-o,0),this}ceil(e=1,t=.001){const n=Math.ceil((this.x+this.width-t)*e)/e,o=Math.ceil((this.y+this.height-t)*e)/e;return this.x=Math.floor((this.x+t)*e)/e,this.y=Math.floor((this.y+t)*e)/e,this.width=n-this.x,this.height=o-this.y,this}enlarge(e){const t=Math.min(this.x,e.x),n=Math.max(this.x+this.width,e.x+e.width),o=Math.min(this.y,e.y),r=Math.max(this.y+this.height,e.y+e.height);return this.x=t,this.width=n-t,this.y=o,this.height=r-o,this}toString(){return`[@pixi/math:Rectangle x=${this.x} y=${this.y} width=${this.width} height=${this.height}]`}},fE=class lme{constructor(e=0,t=0,n=0){this.x=e,this.y=t,this.radius=n,this.type=Oi.CIRC}clone(){return new lme(this.x,this.y,this.radius)}contains(e,t){if(this.radius<=0)return!1;const n=this.radius*this.radius;let o=this.x-e,r=this.y-t;return o*=o,r*=r,o+r<=n}getBounds(){return new ln(this.x-this.radius,this.y-this.radius,2*this.radius,2*this.radius)}toString(){return`[@pixi/math:Circle x=${this.x} y=${this.y} radius=${this.radius}]`}},AE=class cme{constructor(e=0,t=0,n=0,o=0){this.x=e,this.y=t,this.width=n,this.height=o,this.type=Oi.ELIP}clone(){return new cme(this.x,this.y,this.width,this.height)}contains(e,t){if(this.width<=0||this.height<=0)return!1;let n=(e-this.x)/this.width,o=(t-this.y)/this.height;return n*=n,o*=o,n+o<=1}getBounds(){return new ln(this.x-this.width,this.y-this.height,this.width,this.height)}toString(){return`[@pixi/math:Ellipse x=${this.x} y=${this.y} width=${this.width} height=${this.height}]`}},pu=class ume{constructor(...e){let t=Array.isArray(e[0])?e[0]:e;if(typeof t[0]!="number"){const n=[];for(let o=0,r=t.length;o<r;o++)n.push(t[o].x,t[o].y);t=n}this.points=t,this.type=Oi.POLY,this.closeStroke=!0}clone(){const e=this.points.slice(),t=new ume(e);return t.closeStroke=this.closeStroke,t}contains(e,t){let n=!1;const o=this.points.length/2;for(let r=0,s=o-1;r<o;s=r++){const a=this.points[2*r],l=this.points[2*r+1],c=this.points[2*s],u=this.points[2*s+1];l>t!=u>t&&e<(t-l)/(u-l)*(c-a)+a&&(n=!n)}return n}toString(){return`[@pixi/math:PolygoncloseStroke=${this.closeStroke}points=${this.points.reduce(((e,t)=>`${e}, ${t}`),"")}]`}},mE=class dme{constructor(e=0,t=0,n=0,o=0,r=20){this.x=e,this.y=t,this.width=n,this.height=o,this.radius=r,this.type=Oi.RREC}clone(){return new dme(this.x,this.y,this.width,this.height,this.radius)}contains(e,t){if(this.width<=0||this.height<=0)return!1;if(e>=this.x&&e<=this.x+this.width&&t>=this.y&&t<=this.y+this.height){const n=Math.max(0,Math.min(this.radius,Math.min(this.width,this.height)/2));if(t>=this.y+n&&t<=this.y+this.height-n||e>=this.x+n&&e<=this.x+this.width-n)return!0;let o=e-(this.x+n),r=t-(this.y+n);const s=n*n;if(o*o+r*r<=s||(o=e-(this.x+this.width-n),o*o+r*r<=s)||(r=t-(this.y+this.height-n),o*o+r*r<=s)||(o=e-(this.x+n),o*o+r*r<=s))return!0}return!1}toString(){return`[@pixi/math:RoundedRectangle x=${this.x} y=${this.y}width=${this.width} height=${this.height} radius=${this.radius}]`}},zp=class hme{constructor(e,t,n=0,o=0){this._x=n,this._y=o,this.cb=e,this.scope=t}clone(e=this.cb,t=this.scope){return new hme(e,t,this._x,this._y)}set(e=0,t=e){return(this._x!==e||this._y!==t)&&(this._x=e,this._y=t,this.cb.call(this.scope)),this}copyFrom(e){return(this._x!==e.x||this._y!==e.y)&&(this._x=e.x,this._y=e.y,this.cb.call(this.scope)),this}copyTo(e){return e.set(this._x,this._y),e}equals(e){return e.x===this._x&&e.y===this._y}toString(){return`[@pixi/math:ObservablePoint x=0 y=0 scope=${this.scope}]`}get x(){return this._x}set x(e){this._x!==e&&(this._x=e,this.cb.call(this.scope))}get y(){return this._y}set y(e){this._y!==e&&(this._y=e,this.cb.call(this.scope))}},Mi=class db{constructor(e=1,t=0,n=0,o=1,r=0,s=0){this.array=null,this.a=e,this.b=t,this.c=n,this.d=o,this.tx=r,this.ty=s}fromArray(e){this.a=e[0],this.b=e[1],this.c=e[3],this.d=e[4],this.tx=e[2],this.ty=e[5]}set(e,t,n,o,r,s){return this.a=e,this.b=t,this.c=n,this.d=o,this.tx=r,this.ty=s,this}toArray(e,t){this.array||(this.array=new Float32Array(9));const n=t||this.array;return e?(n[0]=this.a,n[1]=this.b,n[2]=0,n[3]=this.c,n[4]=this.d,n[5]=0,n[6]=this.tx,n[7]=this.ty,n[8]=1):(n[0]=this.a,n[1]=this.c,n[2]=this.tx,n[3]=this.b,n[4]=this.d,n[5]=this.ty,n[6]=0,n[7]=0,n[8]=1),n}apply(e,t){t=t||new zn;const n=e.x,o=e.y;return t.x=this.a*n+this.c*o+this.tx,t.y=this.b*n+this.d*o+this.ty,t}applyInverse(e,t){t=t||new zn;const n=1/(this.a*this.d+this.c*-this.b),o=e.x,r=e.y;return t.x=this.d*n*o+-this.c*n*r+(this.ty*this.c-this.tx*this.d)*n,t.y=this.a*n*r+-this.b*n*o+(-this.ty*this.a+this.tx*this.b)*n,t}translate(e,t){return this.tx+=e,this.ty+=t,this}scale(e,t){return this.a*=e,this.d*=t,this.c*=e,this.b*=t,this.tx*=e,this.ty*=t,this}rotate(e){const t=Math.cos(e),n=Math.sin(e),o=this.a,r=this.c,s=this.tx;return this.a=o*t-this.b*n,this.b=o*n+this.b*t,this.c=r*t-this.d*n,this.d=r*n+this.d*t,this.tx=s*t-this.ty*n,this.ty=s*n+this.ty*t,this}append(e){const t=this.a,n=this.b,o=this.c,r=this.d;return this.a=e.a*t+e.b*o,this.b=e.a*n+e.b*r,this.c=e.c*t+e.d*o,this.d=e.c*n+e.d*r,this.tx=e.tx*t+e.ty*o+this.tx,this.ty=e.tx*n+e.ty*r+this.ty,this}setTransform(e,t,n,o,r,s,a,l,c){return this.a=Math.cos(a+c)*r,this.b=Math.sin(a+c)*r,this.c=-Math.sin(a-l)*s,this.d=Math.cos(a-l)*s,this.tx=e-(n*this.a+o*this.c),this.ty=t-(n*this.b+o*this.d),this}prepend(e){const t=this.tx;if(e.a!==1||e.b!==0||e.c!==0||e.d!==1){const n=this.a,o=this.c;this.a=n*e.a+this.b*e.c,this.b=n*e.b+this.b*e.d,this.c=o*e.a+this.d*e.c,this.d=o*e.b+this.d*e.d}return this.tx=t*e.a+this.ty*e.c+e.tx,this.ty=t*e.b+this.ty*e.d+e.ty,this}decompose(e){const t=this.a,n=this.b,o=this.c,r=this.d,s=e.pivot,a=-Math.atan2(-o,r),l=Math.atan2(n,t),c=Math.abs(a+l);return c<1e-5||Math.abs(Kd-c)<1e-5?(e.rotation=l,e.skew.x=e.skew.y=0):(e.rotation=0,e.skew.x=a,e.skew.y=l),e.scale.x=Math.sqrt(t*t+n*n),e.scale.y=Math.sqrt(o*o+r*r),e.position.x=this.tx+(s.x*t+s.y*o),e.position.y=this.ty+(s.x*n+s.y*r),e}invert(){const e=this.a,t=this.b,n=this.c,o=this.d,r=this.tx,s=e*o-t*n;return this.a=o/s,this.b=-t/s,this.c=-n/s,this.d=e/s,this.tx=(n*this.ty-o*r)/s,this.ty=-(e*this.ty-t*r)/s,this}identity(){return this.a=1,this.b=0,this.c=0,this.d=1,this.tx=0,this.ty=0,this}clone(){const e=new db;return e.a=this.a,e.b=this.b,e.c=this.c,e.d=this.d,e.tx=this.tx,e.ty=this.ty,e}copyTo(e){return e.a=this.a,e.b=this.b,e.c=this.c,e.d=this.d,e.tx=this.tx,e.ty=this.ty,e}copyFrom(e){return this.a=e.a,this.b=e.b,this.c=e.c,this.d=e.d,this.tx=e.tx,this.ty=e.ty,this}toString(){return`[@pixi/math:Matrix a=${this.a} b=${this.b} c=${this.c} d=${this.d} tx=${this.tx} ty=${this.ty}]`}static get IDENTITY(){return new db}static get TEMP_MATRIX(){return new db}};const Jd=[1,1,0,-1,-1,-1,0,1,1,1,0,-1,-1,-1,0,1],Wd=[0,1,1,1,0,-1,-1,-1,0,1,1,1,0,-1,-1,-1],Zd=[0,-1,-1,-1,0,1,1,1,0,1,1,1,0,-1,-1,-1],Yd=[1,1,0,-1,-1,-1,0,1,-1,-1,0,1,1,1,0,-1],gE=[],cQ=[],D6=Math.sign;(function(){for(let i=0;i<16;i++){const e=[];gE.push(e);for(let t=0;t<16;t++){const n=D6(Jd[i]*Jd[t]+Zd[i]*Wd[t]),o=D6(Wd[i]*Jd[t]+Yd[i]*Wd[t]),r=D6(Jd[i]*Zd[t]+Zd[i]*Yd[t]),s=D6(Wd[i]*Zd[t]+Yd[i]*Yd[t]);for(let a=0;a<16;a++)if(Jd[a]===n&&Wd[a]===o&&Zd[a]===r&&Yd[a]===s){e.push(a);break}}}for(let i=0;i<16;i++){const e=new Mi;e.set(Jd[i],Wd[i],Zd[i],Yd[i],0,0),cQ.push(e)}})();const Fn={E:0,SE:1,S:2,SW:3,W:4,NW:5,N:6,NE:7,MIRROR_VERTICAL:8,MAIN_DIAGONAL:10,MIRROR_HORIZONTAL:12,REVERSE_DIAGONAL:14,uX:i=>Jd[i],uY:i=>Wd[i],vX:i=>Zd[i],vY:i=>Yd[i],inv:i=>8&i?15&i:7&-i,add:(i,e)=>gE[i][e],sub:(i,e)=>gE[i][Fn.inv(e)],rotate180:i=>4^i,isVertical:i=>(3&i)==2,byDirection:(i,e)=>2*Math.abs(i)<=Math.abs(e)?e>=0?Fn.S:Fn.N:2*Math.abs(e)<=Math.abs(i)?i>0?Fn.E:Fn.W:e>0?i>0?Fn.SE:Fn.SW:i>0?Fn.NE:Fn.NW,matrixAppendRotationInv:(i,e,t=0,n=0)=>{const o=cQ[Fn.inv(e)];o.tx=t,o.ty=n,i.append(o)}},uQ=class{constructor(){this.worldTransform=new Mi,this.localTransform=new Mi,this.position=new zp(this.onChange,this,0,0),this.scale=new zp(this.onChange,this,1,1),this.pivot=new zp(this.onChange,this,0,0),this.skew=new zp(this.updateSkew,this,0,0),this._rotation=0,this._cx=1,this._sx=0,this._cy=0,this._sy=1,this._localID=0,this._currentLocalID=0,this._worldID=0,this._parentID=0}onChange(){this._localID++}updateSkew(){this._cx=Math.cos(this._rotation+this.skew.y),this._sx=Math.sin(this._rotation+this.skew.y),this._cy=-Math.sin(this._rotation-this.skew.x),this._sy=Math.cos(this._rotation-this.skew.x),this._localID++}toString(){return`[@pixi/math:Transform position=(${this.position.x}, ${this.position.y}) rotation=${this.rotation} scale=(${this.scale.x}, ${this.scale.y}) skew=(${this.skew.x}, ${this.skew.y}) ]`}updateLocalTransform(){const i=this.localTransform;this._localID!==this._currentLocalID&&(i.a=this._cx*this.scale.x,i.b=this._sx*this.scale.x,i.c=this._cy*this.scale.y,i.d=this._sy*this.scale.y,i.tx=this.position.x-(this.pivot.x*i.a+this.pivot.y*i.c),i.ty=this.position.y-(this.pivot.x*i.b+this.pivot.y*i.d),this._currentLocalID=this._localID,this._parentID=-1)}updateTransform(i){const e=this.localTransform;if(this._localID!==this._currentLocalID&&(e.a=this._cx*this.scale.x,e.b=this._sx*this.scale.x,e.c=this._cy*this.scale.y,e.d=this._sy*this.scale.y,e.tx=this.position.x-(this.pivot.x*e.a+this.pivot.y*e.c),e.ty=this.position.y-(this.pivot.x*e.b+this.pivot.y*e.d),this._currentLocalID=this._localID,this._parentID=-1),this._parentID!==i._worldID){const t=i.worldTransform,n=this.worldTransform;n.a=e.a*t.a+e.b*t.c,n.b=e.a*t.b+e.b*t.d,n.c=e.c*t.a+e.d*t.c,n.d=e.c*t.b+e.d*t.d,n.tx=e.tx*t.a+e.ty*t.c+t.tx,n.ty=e.tx*t.b+e.ty*t.d+t.ty,this._parentID=i._worldID,this._worldID++}}setFromMatrix(i){i.decompose(this),this._localID++}get rotation(){return this._rotation}set rotation(i){this._rotation!==i&&(this._rotation=i,this.updateSkew())}};let jp=uQ;jp.IDENTITY=new uQ;let Ar=class{constructor(e){this.items=[],this._name=e,this._aliasCount=0}emit(e,t,n,o,r,s,a,l){if(arguments.length>8)throw new Error("max arguments reached");const{name:c,items:u}=this;this._aliasCount++;for(let d=0,h=u.length;d<h;d++)u[d][c](e,t,n,o,r,s,a,l);return u===this.items&&this._aliasCount--,this}ensureNonAliasedItems(){this._aliasCount>0&&this.items.length>1&&(this._aliasCount=0,this.items=this.items.slice(0))}add(e){return e[this._name]&&(this.ensureNonAliasedItems(),this.remove(e),this.items.push(e)),this}remove(e){const t=this.items.indexOf(e);return t!==-1&&(this.ensureNonAliasedItems(),this.items.splice(t,1)),this}contains(e){return this.items.includes(e)}removeAll(){return this.ensureNonAliasedItems(),this.items.length=0,this}destroy(){this.removeAll(),this.items=null,this._name=null}get empty(){return this.items.length===0}get name(){return this._name}};Object.defineProperties(Ar.prototype,{dispatch:{value:Ar.prototype.emit},run:{value:Ar.prototype.emit}});const dQ={createCanvas:(i,e)=>{const t=document.createElement("canvas");return t.width=i,t.height=e,t},getWebGLRenderingContext:()=>WebGLRenderingContext,getNavigator:()=>navigator,getBaseUrl:()=>document.baseURI??window.location.href,getFontFaceSet:()=>document.fonts,fetch:(i,e)=>fetch(i,e),parseXML:i=>new DOMParser().parseFromString(i,"text/xml")};var yE=/iPhone/i,hQ=/iPod/i,pQ=/iPad/i,fQ=/\biOS-universal(?:.+)Mac\b/i,vE=/\bAndroid(?:.+)Mobile\b/i,AQ=/Android/i,Gp=/(?:SD4930UR|\bSilk(?:.+)Mobile\b)/i,L6=/Silk/i,oc=/Windows Phone/i,mQ=/\bWindows(?:.+)ARM\b/i,gQ=/BlackBerry/i,yQ=/BB10/i,vQ=/Opera Mini/i,wQ=/\b(CriOS|Chrome)(?:.+)Mobile/i,CQ=/Mobile(?:.+)Firefox\b/i,bQ=function(i){return typeof i<"u"&&i.platform==="MacIntel"&&typeof i.maxTouchPoints=="number"&&i.maxTouchPoints>1&&typeof MSStream>"u"};const fu=(function(i){var e={userAgent:"",platform:"",maxTouchPoints:0};!i&&typeof navigator<"u"?e={userAgent:navigator.userAgent,platform:navigator.platform,maxTouchPoints:navigator.maxTouchPoints||0}:typeof i=="string"?e.userAgent=i:i&&i.userAgent&&(e={userAgent:i.userAgent,platform:i.platform,maxTouchPoints:i.maxTouchPoints||0});var t=e.userAgent,n=t.split("[FBAN");typeof n[1]<"u"&&(t=n[0]),typeof(n=t.split("Twitter"))[1]<"u"&&(t=n[0]);var o=(function(s){return function(a){return a.test(s)}})(t),r={apple:{phone:o(yE)&&!o(oc),ipod:o(hQ),tablet:!o(yE)&&(o(pQ)||bQ(e))&&!o(oc),universal:o(fQ),device:(o(yE)||o(hQ)||o(pQ)||o(fQ)||bQ(e))&&!o(oc)},amazon:{phone:o(Gp),tablet:!o(Gp)&&o(L6),device:o(Gp)||o(L6)},android:{phone:!o(oc)&&o(Gp)||!o(oc)&&o(vE),tablet:!o(oc)&&!o(Gp)&&!o(vE)&&(o(L6)||o(AQ)),device:!o(oc)&&(o(Gp)||o(L6)||o(vE)||o(AQ))||o(/\bokhttp\b/i)},windows:{phone:o(oc),tablet:o(mQ),device:o(oc)||o(mQ)},other:{blackberry:o(gQ),blackberry10:o(yQ),opera:o(vQ),firefox:o(CQ),chrome:o(wQ),device:o(gQ)||o(yQ)||o(vQ)||o(CQ)||o(wQ)},any:!1,phone:!1,tablet:!1};return r.any=r.apple.device||r.android.device||r.windows.device||r.other.device,r.phone=r.apple.phone||r.android.phone||r.windows.phone,r.tablet=r.apple.tablet||r.android.tablet||r.windows.tablet,r})(globalThis.navigator),Ht={ADAPTER:dQ,MIPMAP_TEXTURES:nc.POW2,ANISOTROPIC_LEVEL:0,RESOLUTION:1,FILTER_RESOLUTION:1,FILTER_MULTISAMPLE:Zn.NONE,SPRITE_MAX_TEXTURES:(function(i){let e=!0;if(fu.tablet||fu.phone){if(fu.apple.device){const t=navigator.userAgent.match(/OS (\d+)_(\d+)?/);t&&parseInt(t[1],10)<11&&(e=!1)}if(fu.android.device){const t=navigator.userAgent.match(/Android\s([0-9.]*)/);t&&parseInt(t[1],10)<7&&(e=!1)}}return e?i:4})(32),SPRITE_BATCH_SIZE:4096,RENDER_OPTIONS:{view:null,antialias:!1,autoDensity:!1,backgroundColor:0,backgroundAlpha:1,premultipliedAlpha:!0,clearBeforeRender:!0,preserveDrawingBuffer:!1,width:800,height:600,legacy:!1,hello:!1},GC_MODE:R6.AUTO,GC_MAX_IDLE:3600,GC_MAX_CHECK_COUNT:600,WRAP_MODE:du.CLAMP,SCALE_MODE:fa.LINEAR,PRECISION_VERTEX:fr.HIGH,PRECISION_FRAGMENT:fu.apple.device?fr.HIGH:fr.MEDIUM,CAN_UPLOAD_SAME_BUFFER:!fu.apple.device,CREATE_IMAGE_BITMAP:!1,ROUND_PIXELS:!1,TARGET_FPMS:.06};var u3=(i=>(i[i.HIGH=25]="HIGH",i[i.NORMAL=0]="NORMAL",i[i.LOW=-25]="LOW",i[i.UTILITY=-50]="UTILITY",i))(u3||{});let wE=class{constructor(e,t=null,n=0,o=!1){this.next=null,this.previous=null,this._destroyed=!1,this.fn=e,this.context=t,this.priority=n,this.once=o}match(e,t=null){return this.fn===e&&this.context===t}emit(e){this.fn&&(this.context?this.fn.call(this.context,e):this.fn(e));const t=this.next;return this.once&&this.destroy(!0),this._destroyed&&(this.next=null),t}connect(e){this.previous=e,e.next&&(e.next.previous=this),this.next=e.next,e.next=this}destroy(e=!1){this._destroyed=!0,this.fn=null,this.context=null,this.previous&&(this.previous.next=this.next),this.next&&(this.next.previous=this.previous);const t=this.next;return this.next=e?null:t,this.previous=null,t}},sc=class qc{constructor(){this.autoStart=!1,this.deltaTime=1,this.lastTime=-1,this.speed=1,this.started=!1,this._requestId=null,this._maxElapsedMS=100,this._minElapsedMS=0,this._protected=!1,this._lastFrame=-1,this._head=new wE(null,null,1/0),this.deltaMS=1/Ht.TARGET_FPMS,this.elapsedMS=1/Ht.TARGET_FPMS,this._tick=e=>{this._requestId=null,this.started&&(this.update(e),this.started&&this._requestId===null&&this._head.next&&(this._requestId=requestAnimationFrame(this._tick)))}}_requestIfNeeded(){this._requestId===null&&this._head.next&&(this.lastTime=performance.now(),this._lastFrame=this.lastTime,this._requestId=requestAnimationFrame(this._tick))}_cancelIfNeeded(){this._requestId!==null&&(cancelAnimationFrame(this._requestId),this._requestId=null)}_startIfPossible(){this.started?this._requestIfNeeded():this.autoStart&&this.start()}add(e,t,n=u3.NORMAL){return this._addListener(new wE(e,t,n))}addOnce(e,t,n=u3.NORMAL){return this._addListener(new wE(e,t,n,!0))}_addListener(e){let t=this._head.next,n=this._head;if(t){for(;t;){if(e.priority>t.priority){e.connect(n);break}n=t,t=t.next}e.previous||e.connect(n)}else e.connect(n);return this._startIfPossible(),this}remove(e,t){let n=this._head.next;for(;n;)n=n.match(e,t)?n.destroy():n.next;return this._head.next||this._cancelIfNeeded(),this}get count(){if(!this._head)return 0;let e=0,t=this._head;for(;t=t.next;)e++;return e}start(){this.started||(this.started=!0,this._requestIfNeeded())}stop(){this.started&&(this.started=!1,this._cancelIfNeeded())}destroy(){if(!this._protected){this.stop();let e=this._head.next;for(;e;)e=e.destroy(!0);this._head.destroy(),this._head=null}}update(e=performance.now()){let t;if(e>this.lastTime){if(t=this.elapsedMS=e-this.lastTime,t>this._maxElapsedMS&&(t=this._maxElapsedMS),t*=this.speed,this._minElapsedMS){const r=e-this._lastFrame|0;if(r<this._minElapsedMS)return;this._lastFrame=e-r%this._minElapsedMS}this.deltaMS=t,this.deltaTime=this.deltaMS*Ht.TARGET_FPMS;const n=this._head;let o=n.next;for(;o;)o=o.emit(this.deltaTime);n.next||this._cancelIfNeeded()}else this.deltaTime=this.deltaMS=this.elapsedMS=0;this.lastTime=e}get FPS(){return 1e3/this.elapsedMS}get minFPS(){return 1e3/this._maxElapsedMS}set minFPS(e){const t=Math.min(this.maxFPS,e),n=Math.min(Math.max(0,t)/1e3,Ht.TARGET_FPMS);this._maxElapsedMS=1/n}get maxFPS(){return this._minElapsedMS?Math.round(1e3/this._minElapsedMS):0}set maxFPS(e){if(e===0)this._minElapsedMS=0;else{const t=Math.max(this.minFPS,e);this._minElapsedMS=1/(t/1e3)}}static get shared(){if(!qc._shared){const e=qc._shared=new qc;e.autoStart=!0,e._protected=!0}return qc._shared}static get system(){if(!qc._system){const e=qc._system=new qc;e.autoStart=!0,e._protected=!0}return qc._system}};var Ei=(i=>(i.Renderer="renderer",i.Application="application",i.RendererSystem="renderer-webgl-system",i.RendererPlugin="renderer-webgl-plugin",i.CanvasRendererSystem="renderer-canvas-system",i.CanvasRendererPlugin="renderer-canvas-plugin",i.Asset="asset",i.LoadParser="load-parser",i.ResolveParser="resolve-parser",i.CacheParser="cache-parser",i.DetectionParser="detection-parser",i))(Ei||{});const CE=i=>{if(typeof i=="function"||typeof i=="object"&&i.extension){if(!i.extension)throw new Error("Extension class must have an extension object");i={...typeof i.extension!="object"?{type:i.extension}:i.extension,ref:i}}if(typeof i!="object")throw new Error("Invalid extension type");return typeof(i={...i}).type=="string"&&(i.type=[i.type]),i},xQ=(i,e)=>CE(i).priority??e,$i={_addHandlers:{},_removeHandlers:{},_queue:{},remove(...i){return i.map(CE).forEach((e=>{e.type.forEach((t=>{var n,o;return(o=(n=this._removeHandlers)[t])==null?void 0:o.call(n,e)}))})),this},add(...i){return i.map(CE).forEach((e=>{e.type.forEach((t=>{const n=this._addHandlers,o=this._queue;n[t]?n[t](e):(o[t]=o[t]||[],o[t].push(e))}))})),this},handle(i,e,t){const n=this._addHandlers,o=this._removeHandlers;if(n[i]||o[i])throw new Error(`Extension type ${i} already has a handler`);n[i]=e,o[i]=t;const r=this._queue;return r[i]&&(r[i].forEach((s=>e(s))),delete r[i]),this},handleByMap(i,e){return this.handle(i,(t=>{e[t.name]=t.ref}),(t=>{delete e[t.name]}))},handleByList(i,e,t=-1){return this.handle(i,(n=>{e.includes(n.ref)||(e.push(n.ref),e.sort(((o,r)=>xQ(r,t)-xQ(o,t))))}),(n=>{const o=e.indexOf(n.ref);o!==-1&&e.splice(o,1)}))}};class bE{static init(e){e=Object.assign({autoStart:!0,sharedTicker:!1},e),Object.defineProperty(this,"ticker",{set(t){this._ticker&&this._ticker.remove(this.render,this),this._ticker=t,t&&t.add(this.render,this,u3.LOW)},get(){return this._ticker}}),this.stop=()=>{this._ticker.stop()},this.start=()=>{this._ticker.start()},this._ticker=null,this.ticker=e.sharedTicker?sc.shared:new sc,e.autoStart&&this.start()}static destroy(){if(this._ticker){const e=this._ticker;this.ticker=null,e.destroy()}}}bE.extension=Ei.Application,$i.add(bE);var xE=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function MQ(i){return i&&i.__esModule&&Object.prototype.hasOwnProperty.call(i,"default")?i.default:i}var EQ={exports:{}};(function(i){var e=Object.prototype.hasOwnProperty,t="~";function n(){}function o(l,c,u){this.fn=l,this.context=c,this.once=u||!1}function r(l,c,u,d,h){if(typeof u!="function")throw new TypeError("The listener must be a function");var p=new o(u,d||l,h),A=t?t+c:c;return l._events[A]?l._events[A].fn?l._events[A]=[l._events[A],p]:l._events[A].push(p):(l._events[A]=p,l._eventsCount++),l}function s(l,c){--l._eventsCount==0?l._events=new n:delete l._events[c]}function a(){this._events=new n,this._eventsCount=0}Object.create&&(n.prototype=Object.create(null),new n().__proto__||(t=!1)),a.prototype.eventNames=function(){var l,c,u=[];if(this._eventsCount===0)return u;for(c in l=this._events)e.call(l,c)&&u.push(t?c.slice(1):c);return Object.getOwnPropertySymbols?u.concat(Object.getOwnPropertySymbols(l)):u},a.prototype.listeners=function(l){var c=t?t+l:l,u=this._events[c];if(!u)return[];if(u.fn)return[u.fn];for(var d=0,h=u.length,p=new Array(h);d<h;d++)p[d]=u[d].fn;return p},a.prototype.listenerCount=function(l){var c=t?t+l:l,u=this._events[c];return u?u.fn?1:u.length:0},a.prototype.emit=function(l,c,u,d,h,p){var A=t?t+l:l;if(!this._events[A])return!1;var f,g,m=this._events[A],v=arguments.length;if(m.fn){switch(m.once&&this.removeListener(l,m.fn,void 0,!0),v){case 1:return m.fn.call(m.context),!0;case 2:return m.fn.call(m.context,c),!0;case 3:return m.fn.call(m.context,c,u),!0;case 4:return m.fn.call(m.context,c,u,d),!0;case 5:return m.fn.call(m.context,c,u,d,h),!0;case 6:return m.fn.call(m.context,c,u,d,h,p),!0}for(g=1,f=new Array(v-1);g<v;g++)f[g-1]=arguments[g];m.fn.apply(m.context,f)}else{var y,w=m.length;for(g=0;g<w;g++)switch(m[g].once&&this.removeListener(l,m[g].fn,void 0,!0),v){case 1:m[g].fn.call(m[g].context);break;case 2:m[g].fn.call(m[g].context,c);break;case 3:m[g].fn.call(m[g].context,c,u);break;case 4:m[g].fn.call(m[g].context,c,u,d);break;default:if(!f)for(y=1,f=new Array(v-1);y<v;y++)f[y-1]=arguments[y];m[g].fn.apply(m[g].context,f)}}return!0},a.prototype.on=function(l,c,u){return r(this,l,c,u,!1)},a.prototype.once=function(l,c,u){return r(this,l,c,u,!0)},a.prototype.removeListener=function(l,c,u,d){var h=t?t+l:l;if(!this._events[h])return this;if(!c)return s(this,h),this;var p=this._events[h];if(p.fn)p.fn===c&&(!d||p.once)&&(!u||p.context===u)&&s(this,h);else{for(var A=0,f=[],g=p.length;A<g;A++)(p[A].fn!==c||d&&!p[A].once||u&&p[A].context!==u)&&f.push(p[A]);f.length?this._events[h]=f.length===1?f[0]:f:s(this,h)}return this},a.prototype.removeAllListeners=function(l){var c;return l?(c=t?t+l:l,this._events[c]&&s(this,c)):(this._events=new n,this._eventsCount=0),this},a.prototype.off=a.prototype.removeListener,a.prototype.addListener=a.prototype.on,a.prefixed=t,a.EventEmitter=a,i.exports=a})(EQ);const d3=MQ(EQ.exports);var ME={exports:{}};function F6(i,e,t){t=t||2;var n,o,r,s,a,l,c,u=e&&e.length,d=u?e[0]*t:i.length,h=BQ(i,0,d,t,!0),p=[];if(!h||h.next===h.prev)return p;if(u&&(h=(function(f,g,m,v){var y,w,x,M,B,S=[];for(y=0,w=g.length;y<w;y++)x=g[y]*v,M=y<w-1?g[y+1]*v:f.length,(B=BQ(f,x,M,v,!1))===B.next&&(B.steiner=!0),S.push($Ye(B));for(S.sort(ZYe),y=0;y<S.length;y++)m=YYe(S[y],m);return m})(i,e,h,t)),i.length>80*t){n=r=i[0],o=s=i[1];for(var A=t;A<d;A+=t)(a=i[A])<n&&(n=a),(l=i[A+1])<o&&(o=l),a>r&&(r=a),l>s&&(s=l);c=(c=Math.max(r-n,s-o))!==0?32767/c:0}return h3(h,p,t,n,o,c,0),p}function BQ(i,e,t,n,o){var r,s;if(o===IE(i,e,t,n)>0)for(r=e;r<t;r+=n)s=PQ(r,i[r],i[r+1],s);else for(r=t-n;r>=e;r-=n)s=PQ(r,i[r],i[r+1],s);return s&&O6(s,s.next)&&(f3(s),s=s.next),s}function Xd(i,e){if(!i)return i;e||(e=i);var t,n=i;do if(t=!1,n.steiner||!O6(n,n.next)&&jn(n.prev,n,n.next)!==0)n=n.next;else{if(f3(n),(n=e=n.prev)===n.next)break;t=!0}while(t||n!==e);return e}function h3(i,e,t,n,o,r,s){if(i){!s&&r&&(function(u,d,h,p){var A=u;do A.z===0&&(A.z=EE(A.x,A.y,d,h,p)),A.prevZ=A.prev,A.nextZ=A.next,A=A.next;while(A!==u);A.prevZ.nextZ=null,A.prevZ=null,(function(f){var g,m,v,y,w,x,M,B,S=1;do{for(m=f,f=null,w=null,x=0;m;){for(x++,v=m,M=0,g=0;g<S&&(M++,v=v.nextZ);g++);for(B=S;M>0||B>0&&v;)M!==0&&(B===0||!v||m.z<=v.z)?(y=m,m=m.nextZ,M--):(y=v,v=v.nextZ,B--),w?w.nextZ=y:f=y,y.prevZ=w,w=y;m=v}w.nextZ=null,S*=2}while(x>1)})(A)})(i,n,o,r);for(var a,l,c=i;i.prev!==i.next;)if(a=i.prev,l=i.next,r?KYe(i,n,o,r):qYe(i))e.push(a.i/t|0),e.push(i.i/t|0),e.push(l.i/t|0),f3(i),i=l.next,c=l.next;else if((i=l)===c){s?s===1?h3(i=JYe(Xd(i),e,t),e,t,n,o,r,2):s===2&&WYe(i,e,t,n,o,r):h3(Xd(i),e,t,n,o,r,1);break}}}function qYe(i){var e=i.prev,t=i,n=i.next;if(jn(e,t,n)>=0)return!1;for(var o=e.x,r=t.x,s=n.x,a=e.y,l=t.y,c=n.y,u=o<r?o<s?o:s:r<s?r:s,d=a<l?a<c?a:c:l<c?l:c,h=o>r?o>s?o:s:r>s?r:s,p=a>l?a>c?a:c:l>c?l:c,A=n.next;A!==e;){if(A.x>=u&&A.x<=h&&A.y>=d&&A.y<=p&&Qp(o,a,r,l,s,c,A.x,A.y)&&jn(A.prev,A,A.next)>=0)return!1;A=A.next}return!0}function KYe(i,e,t,n){var o=i.prev,r=i,s=i.next;if(jn(o,r,s)>=0)return!1;for(var a=o.x,l=r.x,c=s.x,u=o.y,d=r.y,h=s.y,p=a<l?a<c?a:c:l<c?l:c,A=u<d?u<h?u:h:d<h?d:h,f=a>l?a>c?a:c:l>c?l:c,g=u>d?u>h?u:h:d>h?d:h,m=EE(p,A,e,t,n),v=EE(f,g,e,t,n),y=i.prevZ,w=i.nextZ;y&&y.z>=m&&w&&w.z<=v;){if(y.x>=p&&y.x<=f&&y.y>=A&&y.y<=g&&y!==o&&y!==s&&Qp(a,u,l,d,c,h,y.x,y.y)&&jn(y.prev,y,y.next)>=0||(y=y.prevZ,w.x>=p&&w.x<=f&&w.y>=A&&w.y<=g&&w!==o&&w!==s&&Qp(a,u,l,d,c,h,w.x,w.y)&&jn(w.prev,w,w.next)>=0))return!1;w=w.nextZ}for(;y&&y.z>=m;){if(y.x>=p&&y.x<=f&&y.y>=A&&y.y<=g&&y!==o&&y!==s&&Qp(a,u,l,d,c,h,y.x,y.y)&&jn(y.prev,y,y.next)>=0)return!1;y=y.prevZ}for(;w&&w.z<=v;){if(w.x>=p&&w.x<=f&&w.y>=A&&w.y<=g&&w!==o&&w!==s&&Qp(a,u,l,d,c,h,w.x,w.y)&&jn(w.prev,w,w.next)>=0)return!1;w=w.nextZ}return!0}function JYe(i,e,t){var n=i;do{var o=n.prev,r=n.next.next;!O6(o,r)&&IQ(o,n,n.next,r)&&p3(o,r)&&p3(r,o)&&(e.push(o.i/t|0),e.push(n.i/t|0),e.push(r.i/t|0),f3(n),f3(n.next),n=i=r),n=n.next}while(n!==i);return Xd(n)}function WYe(i,e,t,n,o,r){var s=i;do{for(var a=s.next.next;a!==s.prev;){if(s.i!==a.i&&eXe(s,a)){var l=SQ(s,a);return s=Xd(s,s.next),l=Xd(l,l.next),h3(s,e,t,n,o,r,0),void h3(l,e,t,n,o,r,0)}a=a.next}s=s.next}while(s!==i)}function ZYe(i,e){return i.x-e.x}function YYe(i,e){var t=(function(o,r){var s,a=r,l=o.x,c=o.y,u=-1/0;do{if(c<=a.y&&c>=a.next.y&&a.next.y!==a.y){var d=a.x+(c-a.y)*(a.next.x-a.x)/(a.next.y-a.y);if(d<=l&&d>u&&(u=d,s=a.x<a.next.x?a:a.next,d===l))return s}a=a.next}while(a!==r);if(!s)return null;var h,p=s,A=s.x,f=s.y,g=1/0;a=s;do l>=a.x&&a.x>=A&&l!==a.x&&Qp(c<f?l:u,c,A,f,c<f?u:l,c,a.x,a.y)&&(h=Math.abs(c-a.y)/(l-a.x),p3(a,o)&&(h<g||h===g&&(a.x>s.x||a.x===s.x&&XYe(s,a)))&&(s=a,g=h)),a=a.next;while(a!==p);return s})(i,e);if(!t)return e;var n=SQ(t,i);return Xd(n,n.next),Xd(t,t.next)}function XYe(i,e){return jn(i.prev,i,e.prev)<0&&jn(e.next,i,i.next)<0}function EE(i,e,t,n,o){return(i=1431655765&((i=858993459&((i=252645135&((i=16711935&((i=(i-t)*o|0)|i<<8))|i<<4))|i<<2))|i<<1))|(e=1431655765&((e=858993459&((e=252645135&((e=16711935&((e=(e-n)*o|0)|e<<8))|e<<4))|e<<2))|e<<1))<<1}function $Ye(i){var e=i,t=i;do(e.x<t.x||e.x===t.x&&e.y<t.y)&&(t=e),e=e.next;while(e!==i);return t}function Qp(i,e,t,n,o,r,s,a){return(o-s)*(e-a)>=(i-s)*(r-a)&&(i-s)*(n-a)>=(t-s)*(e-a)&&(t-s)*(r-a)>=(o-s)*(n-a)}function eXe(i,e){return i.next.i!==e.i&&i.prev.i!==e.i&&!(function(t,n){var o=t;do{if(o.i!==t.i&&o.next.i!==t.i&&o.i!==n.i&&o.next.i!==n.i&&IQ(o,o.next,t,n))return!0;o=o.next}while(o!==t);return!1})(i,e)&&(p3(i,e)&&p3(e,i)&&(function(t,n){var o=t,r=!1,s=(t.x+n.x)/2,a=(t.y+n.y)/2;do o.y>a!=o.next.y>a&&o.next.y!==o.y&&s<(o.next.x-o.x)*(a-o.y)/(o.next.y-o.y)+o.x&&(r=!r),o=o.next;while(o!==t);return r})(i,e)&&(jn(i.prev,i,e.prev)||jn(i,e.prev,e))||O6(i,e)&&jn(i.prev,i,i.next)>0&&jn(e.prev,e,e.next)>0)}function jn(i,e,t){return(e.y-i.y)*(t.x-e.x)-(e.x-i.x)*(t.y-e.y)}function O6(i,e){return i.x===e.x&&i.y===e.y}function IQ(i,e,t,n){var o=U6(jn(i,e,t)),r=U6(jn(i,e,n)),s=U6(jn(t,n,i)),a=U6(jn(t,n,e));return!!(o!==r&&s!==a||o===0&&N6(i,t,e)||r===0&&N6(i,n,e)||s===0&&N6(t,i,n)||a===0&&N6(t,e,n))}function N6(i,e,t){return e.x<=Math.max(i.x,t.x)&&e.x>=Math.min(i.x,t.x)&&e.y<=Math.max(i.y,t.y)&&e.y>=Math.min(i.y,t.y)}function U6(i){return i>0?1:i<0?-1:0}function p3(i,e){return jn(i.prev,i,i.next)<0?jn(i,e,i.next)>=0&&jn(i,i.prev,e)>=0:jn(i,e,i.prev)<0||jn(i,i.next,e)<0}function SQ(i,e){var t=new BE(i.i,i.x,i.y),n=new BE(e.i,e.x,e.y),o=i.next,r=e.prev;return i.next=e,e.prev=i,t.next=o,o.prev=t,n.next=t,t.prev=n,r.next=n,n.prev=r,n}function PQ(i,e,t,n){var o=new BE(i,e,t);return n?(o.next=n.next,o.prev=n,n.next.prev=o,n.next=o):(o.prev=o,o.next=o),o}function f3(i){i.next.prev=i.prev,i.prev.next=i.next,i.prevZ&&(i.prevZ.nextZ=i.nextZ),i.nextZ&&(i.nextZ.prevZ=i.prevZ)}function BE(i,e,t){this.i=i,this.x=e,this.y=t,this.prev=null,this.next=null,this.z=0,this.prevZ=null,this.nextZ=null,this.steiner=!1}function IE(i,e,t,n){for(var o=0,r=e,s=t-n;r<t;r+=n)o+=(i[s]-i[r])*(i[r+1]+i[s+1]),s=r;return o}ME.exports=F6,ME.exports.default=F6,F6.deviation=function(i,e,t,n){var o=e&&e.length,r=o?e[0]*t:i.length,s=Math.abs(IE(i,0,r,t));if(o)for(var a=0,l=e.length;a<l;a++){var c=e[a]*t,u=a<l-1?e[a+1]*t:i.length;s-=Math.abs(IE(i,c,u,t))}var d=0;for(a=0;a<n.length;a+=3){var h=n[a]*t,p=n[a+1]*t,A=n[a+2]*t;d+=Math.abs((i[h]-i[A])*(i[p+1]-i[h+1])-(i[h]-i[p])*(i[A+1]-i[h+1]))}return s===0&&d===0?0:Math.abs((d-s)/s)},F6.flatten=function(i){for(var e=i[0][0].length,t={vertices:[],holes:[],dimensions:e},n=0,o=0;o<i.length;o++){for(var r=0;r<i[o].length;r++)for(var s=0;s<e;s++)t.vertices.push(i[o][r][s]);o>0&&(n+=i[o-1].length,t.holes.push(n))}return t};const SE=MQ(ME.exports);var A3,V6,PE={exports:{}};A3=PE,V6=PE.exports,(function(i){var e=V6&&!V6.nodeType&&V6,t=A3&&!A3.nodeType&&A3,n=typeof xE=="object"&&xE;(n.global===n||n.window===n||n.self===n)&&(i=n);var o,r,s=2147483647,a=36,l=1,c=26,u=38,d=700,h=72,p=128,A="-",f=/^xn--/,g=/[^\x20-\x7E]/,m=/[\x2E\u3002\uFF0E\uFF61]/g,v={overflow:"Overflow: input needs wider integers to process","not-basic":"Illegal input >= 0x80 (not a basic code point)","invalid-input":"Invalid input"},y=a-l,w=Math.floor,x=String.fromCharCode;function M(j){throw RangeError(v[j])}function B(j,W){for(var J=j.length,$=[];J--;)$[J]=W(j[J]);return $}function S(j,W){var J=j.split("@"),$="";return J.length>1&&($=J[0]+"@",j=J[1]),$+B((j=j.replace(m,".")).split("."),W).join(".")}function I(j){for(var W,J,$=[],ue=0,Ee=j.length;ue<Ee;)(W=j.charCodeAt(ue++))>=55296&&W<=56319&&ue<Ee?(64512&(J=j.charCodeAt(ue++)))==56320?$.push(((1023&W)<<10)+(1023&J)+65536):($.push(W),ue--):$.push(W);return $}function R(j){return B(j,(function(W){var J="";return W>65535&&(J+=x((W-=65536)>>>10&1023|55296),W=56320|1023&W),J+=x(W)})).join("")}function T(j){return j-48<10?j-22:j-65<26?j-65:j-97<26?j-97:a}function D(j,W){return j+22+75*(j<26)-((W!=0)<<5)}function F(j,W,J){var $=0;for(j=J?w(j/d):j>>1,j+=w(j/W);j>y*c>>1;$+=a)j=w(j/y);return w($+(y+1)*j/(j+u))}function N(j){var W,J,$,ue,Ee,Be,ze,Qe,me,_e,De=[],ve=j.length,ge=0,Ie=p,Ne=h;for((J=j.lastIndexOf(A))<0&&(J=0),$=0;$<J;++$)j.charCodeAt($)>=128&&M("not-basic"),De.push(j.charCodeAt($));for(ue=J>0?J+1:0;ue<ve;){for(Ee=ge,Be=1,ze=a;ue>=ve&&M("invalid-input"),((Qe=T(j.charCodeAt(ue++)))>=a||Qe>w((s-ge)/Be))&&M("overflow"),ge+=Qe*Be,!(Qe<(me=ze<=Ne?l:ze>=Ne+c?c:ze-Ne));ze+=a)Be>w(s/(_e=a-me))&&M("overflow"),Be*=_e;Ne=F(ge-Ee,W=De.length+1,Ee==0),w(ge/W)>s-Ie&&M("overflow"),Ie+=w(ge/W),ge%=W,De.splice(ge++,0,Ie)}return R(De)}function z(j){var W,J,$,ue,Ee,Be,ze,Qe,me,_e,De,ve,ge,Ie,Ne,qe=[];for(ve=(j=I(j)).length,W=p,J=0,Ee=h,Be=0;Be<ve;++Be)(De=j[Be])<128&&qe.push(x(De));for($=ue=qe.length,ue&&qe.push(A);$<ve;){for(ze=s,Be=0;Be<ve;++Be)(De=j[Be])>=W&&De<ze&&(ze=De);for(ze-W>w((s-J)/(ge=$+1))&&M("overflow"),J+=(ze-W)*ge,W=ze,Be=0;Be<ve;++Be)if((De=j[Be])<W&&++J>s&&M("overflow"),De==W){for(Qe=J,me=a;!(Qe<(_e=me<=Ee?l:me>=Ee+c?c:me-Ee));me+=a)Ne=Qe-_e,Ie=a-_e,qe.push(x(D(_e+Ne%Ie,0))),Qe=w(Ne/Ie);qe.push(x(D(Qe,0))),Ee=F(J,ge,$==ue),J=0,++$}++J,++W}return qe.join("")}if(o={version:"1.3.2",ucs2:{decode:I,encode:R},decode:N,encode:z,toASCII:function(j){return S(j,(function(W){return g.test(W)?"xn--"+z(W):W}))},toUnicode:function(j){return S(j,(function(W){return f.test(W)?N(W.slice(4).toLowerCase()):W}))}},e&&t)if(A3.exports==e)t.exports=o;else for(r in o)o.hasOwnProperty(r)&&(e[r]=o[r]);else i.punycode=o})(xE);var tXe=PE.exports,m3={};function iXe(i,e){return Object.prototype.hasOwnProperty.call(i,e)}var g3=function(i){switch(typeof i){case"string":return i;case"boolean":return i?"true":"false";case"number":return isFinite(i)?i:"";default:return""}};m3.decode=m3.parse=function(i,e,t,n){e=e||"&",t=t||"=";var o={};if(typeof i!="string"||i.length===0)return o;var r=/\+/g;i=i.split(e);var s=1e3;n&&typeof n.maxKeys=="number"&&(s=n.maxKeys);var a=i.length;s>0&&a>s&&(a=s);for(var l=0;l<a;++l){var c,u,d,h,p=i[l].replace(r,"%20"),A=p.indexOf(t);A>=0?(c=p.substr(0,A),u=p.substr(A+1)):(c=p,u=""),d=decodeURIComponent(c),h=decodeURIComponent(u),iXe(o,d)?Array.isArray(o[d])?o[d].push(h):o[d]=[o[d],h]:o[d]=h}return o},m3.encode=m3.stringify=function(i,e,t,n){return e=e||"&",t=t||"=",i===null&&(i=void 0),typeof i=="object"?Object.keys(i).map((function(o){var r=encodeURIComponent(g3(o))+t;return Array.isArray(i[o])?i[o].map((function(s){return r+encodeURIComponent(g3(s))})).join(e):r+encodeURIComponent(g3(i[o]))})).join(e):n?encodeURIComponent(g3(n))+t+encodeURIComponent(g3(i)):""};var nXe=tXe,sl={isString:function(i){return typeof i=="string"},isObject:function(i){return typeof i=="object"&&i!==null},isNull:function(i){return i===null},isNullOrUndefined:function(i){return i==null}},oXe=H6,sXe=function(i,e){return H6(i,!1,!0).resolve(e)},rXe=function(i){return sl.isString(i)&&(i=H6(i)),i instanceof ma?i.format():ma.prototype.format.call(i)};function ma(){this.protocol=null,this.slashes=null,this.auth=null,this.host=null,this.port=null,this.hostname=null,this.hash=null,this.search=null,this.query=null,this.pathname=null,this.path=null,this.href=null}var aXe=/^([a-z0-9.+-]+:)/i,lXe=/:[0-9]*$/,cXe=/^(\/\/?(?!\/)[^\?\s]*)(\?[^\s]*)?$/,uXe=["{","}","|","\\","^","`"].concat(["<",">",'"',"`"," ","\r",`
|
|
44
|
+
`),f=Re(()=>s.value.length>0?`${r.value?.name??e.i18n.$t("properties.no_name")}`:e.i18n.$t("properties.no_element"));lt(c,()=>l.value=!1);const g=()=>{if(n.fromWrapper){const S=e.localContext.pluginComponentInstances.get("viewer3d"),I=[];for(const R of S.loadedIfcIds)for(const T of e.state.modelsMap.get(R).objects)T.selected&&I.push(T);return I}else return e.state.selectedObjects},m=S=>{S.id===1?o.value="properties":o.value="documents"},v=S=>{r.value=S},y=S=>S?.uuid===r.value?.uuid,w=()=>{l.value=!0};let x=Array.from(g());const M=()=>{const S=g();s.value=[],r.value=null,S.length>0&&(s.value=Array.from(S),r.value=s.value.find(I=>I.model!=null&&I.uuid&&!x.some(R=>R.id===I.id))??null,r.value||(r.value=s.value.find(I=>I.model!=null&&I.uuid)??null)),x=Array.from(g())},B=[e.state.hub.on("objects-deselected",M),e.state.hub.on("objects-selected",M)];if(n.fromWrapper)lt(()=>e.localContext.pluginComponentInstances.get("viewer3d").loadedIfcIds,S=>{c.value=S.length});else{const S=()=>{c.value=e.state.models.length};B.push(e.state.hub.on("ifcs-loaded",S,{getLastEvent:!0}),e.state.hub.on("ifcs-unloaded",S))}return M(),Ci(()=>{B.forEach(S=>e.state.hub.off(S))}),(S,I)=>{const R=P("BIMDataTabs"),T=P("BIMDataIconEdit"),D=P("BIMDataButton"),F=P("BIMDataTooltip"),N=P("BIMDataTextbox"),z=P("BIMDataDropdownList"),j=P("BIMDataIllustration");return E(),L("div",{class:"bimdata-properties",style:le(A.value)},[k(R,{tabs:u.value,"tab-size":"50%",selected:0,class:"bimdata-properties__tabs",onTabSelected:m},null,8,["tabs"]),l.value?te("",!0):(E(),L("div",PYe,[p.value?(E(),L("div",TYe,[k(F,{text:S.$t("properties.tooltip"),color:"granite-light"},{default:U(()=>[k(D,{class:ce(["bimdata-properties__bucket__edit-switch__button",{active:a.value}]),icon:"",fill:"",radius:"",height:"35px",disabled:!d.value,onClick:I[0]||(I[0]=W=>a.value=!a.value)},{default:U(()=>[k(T,{class:"fill-primary",size:"xs"})]),_:1},8,["class","disabled"])]),_:1},8,["text"])])):te("",!0),l.value?te("",!0):(E(),K(z,{key:1,ref:"propertiesHeaderList",class:"bimdata-properties__bucket__selection-list",list:s.value,disabled:s.value.length===0,"per-page":30,"element-key":"id"},{header:U(()=>[C("div",kYe,[C("div",RYe,G(s.value.length),1),k(N,{text:f.value,tooltip:!1,width:"calc(100% - 42px)"},null,8,["text"])])]),element:U(({element:W,close:J})=>[C("span",{class:ce({"bimdata-properties__bucket__selection-list--selected":y(W)}),onClick:$=>{J(),v(W)}},[k(N,{text:W.name||S.$t("properties.no_name"),tooltip:!1},null,8,["text"])],10,_Ye)]),_:1},8,["list","disabled"]))])),C("div",DYe,[r.value||o.value==="documents"&&l.value?(E(),L($e,{key:0},[yt(k(HZe,{"edit-allowed":a.value,"selected-object":r.value},null,8,["edit-allowed","selected-object"]),[[jt,o.value==="properties"]]),yt(k(SYe,{"selected-object":r.value,"linked-elements-shown":l.value,onLinkClose:I[1]||(I[1]=W=>l.value=!1)},null,8,["selected-object","linked-elements-shown"]),[[jt,o.value==="documents"]])],64)):(E(),K(uu,{key:1,message:o.value==="properties"?S.$t("properties.new_properties"):S.$t("properties.new_documents")},{footer:U(()=>[o.value==="documents"?(E(),K(D,{key:0,color:"primary",fill:"",radius:"",width:"296px",disabled:c.value===0,onClick:w},{default:U(()=>[Ke(G(S.$t("properties.linked_element_list")),1)]),_:1},8,["disabled"])):te("",!0)]),default:U(()=>[C("h2",null,G(o.value==="properties"?S.$t("properties.title"):S.$t("properties.title_secondary")),1),k(j,{name:"emptyProperties"})]),_:1},8,["message"]))])],4)}}},[["__scopeId","data-v-6c18d011"]]),dE={title:"Eigenschaften",tooltip:"Ausgabe",new_properties:"Bitte wählen Sie im Modell ein Element aus, um seine Eigenschaften anzuzeigen",object:"Gegenstand",objects:"Gegenstände",no_element:"Kein Element ausgewählt",no_name:"Nicht spezifiziert",classification:"Klassifizierung",attributes:"Attribute","edit-success":"Eigenschaft aktualisiert","edit-error":"Die Eigenschaft kann nicht aktualisiert werden","get-error":"Die Daten können nicht wiederhergestellt werden, bitte aktualisieren Sie die Seite",title_secondary:"Dokumente",new_documents:"Bitte wählen Sie einen Artikel im Modell aus, damit seine Dokumente angezeigt werden.",empty_search:"Die Suche liefert keine Erkenntnisse",technical_documents:"Technische Dokumente",no_document:"Kein Dokument",from_dms:"Datei aus Projekt auswählen",validate_selection:"Die Auswahl bestätigen",link_documents_success:"Dokumente erfolgreich verknüpft",link_documents_error:"Beim Verknüpfen der Dokumente ist ein Fehler aufgetreten.",unlink_documents_error:"Beim Aufheben der Verknüpfung der Dokumente ist ein Fehler aufgetreten.",unlink_documents_success:"Verknüpfung der Dokumente erfolgreich aufgehoben.",name:"Name",delete_modal_title:"Verknüpfung von Dokumenten aufheben",delete_modal_description:"Durch diese Aktion wird die Verknüpfung der folgenden Dokumente aufgehoben.",linked_element_list:"Liste verknüpfter Elemente",linked_documents_error:"Verknüpfte Elemente können nicht abgerufen werden.",attributes_name:{CompositionType:"Art der Zusammensetzung",Description:"Beschreibung",Elevation:"Erhebung",LongName:"Vollständiger Name",ObjectType:"Art des Objekts",Representation:"Vertretung",type:"Art",Name:"Name"},"invalid-format":"Ungültiges Format",requested_format:"Erwartetes Format:",property_set_type:"Typ"},hE={title:"Properties",tooltip:"Editing",new_properties:"Please select an element in the model to display its properties",object:"Object",objects:"Objects",no_element:"No element",no_name:"Not specified",classification:"Classification",attributes:"Attributes","edit-success":"Propertie updated","edit-error":"Impossible to update propertie","get-error":"Error fetching data, you should refresh the page",title_secondary:"Documents",new_documents:"Please select an item in the template to view its documents",empty_search:"The search did not give any results",technical_documents:"Technical documents",no_document:"No document",from_dms:"From the project's DMS",validate_selection:"Validate the selection",link_documents_success:"Successfully linked documents",link_documents_error:"An error occurred in linking the documents",unlink_documents_error:"An error occurred while untying the documents",unlink_documents_success:"Documents successfully untied",name:"Name",delete_modal_title:"Untie the documents",delete_modal_description:"This action will untie the following documents",linked_element_list:"List of related items",linked_documents_error:"Unable to retrieve linked items",attributes_name:{CompositionType:"Type of composition",Description:"Description",Elevation:"Elevation",LongName:"Full name",ObjectType:"Type of object",Representation:"Representation",type:"Type",Name:"Name"},"invalid-format":"Invalid format",requested_format:"Expected format:",property_set_type:"Type"},nQ={title:"Propiedades",tooltip:"Corrección",new_properties:"Seleccione un elemento del modelo para mostrar sus propiedades",object:"Objeto",objects:"Objetos",no_element:"Sin elemento",no_name:"No especificado",classification:"Clasificación",attributes:"Atributos","edit-success":"Propiedad actualizada","edit-error":"Imposible actualizar la propiedad","get-error":"Error al obtener datos, debe actualizar la página",title_secondary:"Documentos",new_documents:"Seleccione un elemento de la plantilla para ver sus documentos",empty_search:"La búsqueda no ha arrojado ningún resultado",technical_documents:"Documentos técnicos",no_document:"Sin documentos",from_dms:"De la GED del proyecto",validate_selection:"Confirmar la selección",link_documents_success:"Se han vinculado correctamente los documentos",link_documents_error:"Se ha producido un error al vincular los documentos",unlink_documents_error:"Se ha producido un error al desvincular los documentos",unlink_documents_success:"Se han desvinculado correctamente los documentos",name:"Nombre",delete_modal_title:"Desvincular los documentos",delete_modal_description:"Esta acción desvinculará los siguientes documentos",linked_element_list:"Lista de elementos vinculados",linked_documents_error:"No se pueden recuperar los elementos vinculados",attributes_name:{CompositionType:"Tipo de composición",Description:"Descripción",Elevation:"Elevación",LongName:"Nombre completo",ObjectType:"Tipo de objeto",Representation:"Representación",type:"Tipo",Name:"Nombre"},"invalid-format":"Formato no válido",requested_format:"Formato esperado :",property_set_type:"Tipo"},pE={title:"Propriétés",tooltip:"Édition",new_properties:"Veuillez sélectionner un élément dans le modèle pour afficher ses propriétés",object:"Objet",objects:"Objets",no_element:"Pas d'élément selectionné",no_name:"Non spécifié",classification:"Classification",attributes:"Attributs","edit-success":"Propriété mise à jour","edit-error":"Impossible de mettre à jour la propriété","get-error":"Impossible de résupérer la donnée, veuillez rafraichir la page",title_secondary:"Documents",new_documents:"Veuillez sélectionner un élément dans le modèle pour afficher ses documents",empty_search:"La recherche ne donne aucun résultat",technical_documents:"Documents techniques",no_document:"Aucun document",from_dms:"Depuis la GED du projet",validate_selection:"Valider la selection",link_documents_success:"Documents liés avec succès",link_documents_error:"Une erreur est survenue en liant les documents",unlink_documents_error:"Une erreur est survenue en déliant les documents",unlink_documents_success:"Documents déliés avec succès",name:"Nom",delete_modal_title:"Délier les documents",delete_modal_description:"Cette action va délier les documents suivants",linked_element_list:"Liste des éléments liés",linked_documents_error:"Impossible de récupérer les éléments liés",attributes_name:{CompositionType:"Type de composition",Description:"Description",Elevation:"Élévation",LongName:"Nom complet",ObjectType:"Type d'objet",Representation:"Représentation",type:"Type",Name:"Nom"},"invalid-format":"Format invalide",requested_format:"Format attendu :",property_set_type:"Type"},oQ={title:"Proprietà",tooltip:"Modifica",new_properties:"Seleziona un elemento nel modello per visualizzare le sue proprietà",object:"Oggetto",objects:"Oggetti",no_element:"Nessun elemento selezionato",no_name:"Non specificato",classification:"Classificazione",attributes:"Attributi","edit-success":"Proprietà aggiornata","edit-error":"Impossibile aggiornare la proprietà","get-error":"Impossibile recuperare i dati, aggiorna la pagina",title_secondary:"Documenti",new_documents:"Seleziona un elemento nel modello per visualizzare i relativi documenti",empty_search:"La ricerca non ha fornito risultati",technical_documents:"Documenti tecnici",no_document:"Nessun documento",from_dms:"Dalla GED del progetto",validate_selection:"Conferma la selezione",link_documents_success:"Documenti collegati correttamente",link_documents_error:"Si è verificato un errore durante il collegamento dei documenti",unlink_documents_error:"Si è verificato un errore durante lo scollegamento dei documenti",unlink_documents_success:"Documenti scollegati correttamente",name:"Nome",delete_modal_title:"Scollega i documenti",delete_modal_description:"Questa azione scollegherà i documenti seguenti",linked_element_list:"Elenco degli elementi collegati",linked_documents_error:"Impossibile recuperare gli elementi collegati",attributes_name:{CompositionType:"Tipo di composizione",Description:"Descrizione",Elevation:"Elevazione",LongName:"Nome completo",ObjectType:"Tipo di oggetto",Representation:"Rappresentazione",type:"Tipo",Name:"Nome"}},LYe={name:"properties",i18n:{de:dE,en:hE,es:nQ,fr:pE,it:oQ},component:uE,window:{name:"properties",label:"properties.title",icon:{imgUri:"data:image/svg+xml,%3csvg%20width='24'%20height='23'%20viewBox='0%200%2024%2023'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3crect%20x='8.67139'%20y='4.14001'%20width='6.44'%20height='1.84'%20fill='%23F8C62C'/%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M6.0613%200.459961H18.7914V8.97184C18.2033%208.82047%2017.5867%208.73996%2016.9514%208.73996L16.9514%202.29996H6.83137V6.90002H2.23139V19.78H10.576C10.9767%2020.4725%2011.4869%2021.0938%2012.0831%2021.62H0.391388V6.12987L6.0613%200.459961Z'%20fill='%232F374A'/%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M9.5914%2016.0999H4.07138V17.9399H9.82324C9.67189%2017.3518%209.5914%2016.7353%209.5914%2016.1C9.5914%2016.0999%209.5914%2016.0999%209.5914%2016.0999Z'%20fill='%23F8C62C'/%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M10.5761%2012.42H4.07138V14.26H9.82328C9.9913%2013.6073%2010.2466%2012.9895%2010.5761%2012.42Z'%20fill='%23F8C62C'/%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M15.1114%208.97184V8.73999H4.07138V10.58H12.083C12.9389%209.82462%2013.9717%209.26517%2015.1114%208.97184Z'%20fill='%23F8C62C'/%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M16.9514%2022.54C20.5081%2022.54%2023.3914%2019.6567%2023.3914%2016.1C23.3914%2012.5433%2020.5081%209.66003%2016.9514%209.66003C13.3947%209.66003%2010.5114%2012.5433%2010.5114%2016.1C10.5114%2019.6567%2013.3947%2022.54%2016.9514%2022.54ZM16.234%2017.406H17.4199L17.5879%2012.4201H16.066L16.234%2017.406ZM17.4051%2018.3992C17.2601%2018.2576%2017.0674%2018.1868%2016.8269%2018.1868C16.5898%2018.1868%2016.397%2018.2592%2016.2488%2018.4042C16.1039%2018.5458%2016.0314%2018.7254%2016.0314%2018.9428C16.0314%2019.1602%2016.1039%2019.3398%2016.2488%2019.4814C16.397%2019.6231%2016.5898%2019.6939%2016.8269%2019.6939C17.0674%2019.6939%2017.2601%2019.6231%2017.4051%2019.4814C17.5533%2019.3398%2017.6275%2019.1602%2017.6275%2018.9428C17.6275%2018.7221%2017.5533%2018.5409%2017.4051%2018.3992Z'%20fill='%232F374A'/%3e%3c/svg%3e"}}},FYe={name:"button-properties",addToWindows:["3d"],i18nTokenPrefix:"properties",i18n:{de:dE,en:hE,es:nQ,fr:pE,it:oQ},component:uE,button:{position:"left",stance:-1,content:"panel",tooltip:"properties.title",keepOpen:!0,icon:{component:"BIMDataIconList",options:{size:"m"}}}},OYe={render(){return null},name:"BIMDataFirstPersonView",mounted(){const i=this.$viewer.localContext.pluginComponentInstances.get("viewer3d");if(!i){const e="Plugin Projection cannot work without viewer3D plugin.";throw console.error(e),new Error(e)}this.viewer3d=i},onOpen(){const i=this.viewer3d.xeokit,e=this.$viewer.localContext.loadedModels[0];if(!e){setTimeout(()=>this.$close());return}const t=()=>{this.viewer3d.firstPersonView=!0},n=this.$viewer.state.getStoreyFromAbsoluteElevation(e,i.camera.eye[1]);if(n&&n.key!==this.$viewer.localContext.selectedStorey?.key&&this.$viewer.localContext.selectStorey(n),!n){t();return}const{math:o}=this.viewer3d.xeokitSdk,r=Object.values(i.scene.models).find(g=>g.ifc.id===n.model.id);if(!r){t();return}const s=new Map(Array.from(Object.values(r.objects)).map(g=>[g.originalSystemId,g])),l=n.objects.map(g=>g.uuid).map(g=>s.get(g)).filter(Boolean),{eye:c}=i.scene.camera;let u=1/0,d=null;for(const g of l){const[m,,v,y,,w]=g.aabb,x={x:(m+y)/2,y:(v+w)/2},M={x:x.x+(y-m)/2,y:x.y+(w-v)/2},B=Math.sqrt((M.x-c[0])**2+(M.y-c[2])**2);B<u&&(u=B,d=M)}if(!d){t();return}const h=[d.x,d.y],p=o.mulVec2Scalar(o.normalizeVec2(o.subVec2([c[0],c[2]],h,o.vec2())),3),A=[h[0]+p[0],h[1]+p[1]],f=[A[0],n.absoluteElevation+this.viewer3d.STOREY_HEIGHT_CAMERA_OFFSET,A[1]];return i.cameraFlight.flyTo({eye:f,duration:.5}),new Promise(g=>setTimeout(()=>{t(),g()},500))},onClose(){this.viewer3d.firstPersonView=!1}},NYe={},UYe={width:"14",height:"23",viewBox:"0 0 14 23",fill:"none",xmlns:"http://www.w3.org/2000/svg"};function VYe(i,e){return E(),L("svg",UYe,[...e[0]||(e[0]=[C("path",{d:"M7.96154 4.27907C9.12923 4.27907 10.0846 3.31628 10.0846 2.13953C10.0846 0.962791 9.12923 0 7.96154 0C6.79385 0 5.83846 0.962791 5.83846 2.13953C5.83846 3.31628 6.79385 4.27907 7.96154 4.27907ZM4.03385 7.91628L1.06154 23H3.29077L5.20154 14.4419L7.43077 16.5814V23H9.55385V14.9767L7.32461 12.8372L7.96154 9.62791C9.34154 11.2326 11.4646 12.3023 13.8 12.3023V10.1628C11.7831 10.1628 10.0846 9.09302 9.23538 7.59535L8.17385 5.88372C7.74923 5.24186 7.11231 4.81395 6.36923 4.81395C6.05077 4.81395 5.83846 4.92093 5.52 4.92093L0 7.27442V12.3023H2.12308V8.66512L4.03385 7.91628Z",fill:"black"},null,-1)])])}const HYe=V(NYe,[["render",VYe]]),zYe={},jYe={width:"21",height:"23",viewBox:"0 0 21 23",fill:"none",xmlns:"http://www.w3.org/2000/svg"};function GYe(i,e){return E(),L("svg",jYe,[...e[0]||(e[0]=[C("path",{d:"M10.35 0C11.615 0 12.65 1.035 12.65 2.3C12.65 3.565 11.615 4.6 10.35 4.6C9.085 4.6 8.05 3.565 8.05 2.3C8.05 1.035 9.085 0 10.35 0ZM20.7 8.05H13.8V23H11.5V16.1H9.2V23H6.9V8.05H0V5.75H20.7V8.05Z",fill:"black"},null,-1)])])}const QYe={name:"firstPersonView",i18n:{en:{tooltip:"First-person view"},fr:{tooltip:"Vue première personne"}},addToWindows:["3d"],component:OYe,button:{tooltip:"firstPersonView.tooltip",position:"right",content:"free",keepOpen:!0,icon:{component:V(zYe,[["render",GYe]])},iconOpen:{component:HYe}}};var ic=(i=>(i[i.WEBGL_LEGACY=0]="WEBGL_LEGACY",i[i.WEBGL=1]="WEBGL",i[i.WEBGL2=2]="WEBGL2",i))(ic||{}),sQ=(i=>(i[i.UNKNOWN=0]="UNKNOWN",i[i.WEBGL=1]="WEBGL",i[i.CANVAS=2]="CANVAS",i))(sQ||{}),T6=(i=>(i[i.COLOR=16384]="COLOR",i[i.DEPTH=256]="DEPTH",i[i.STENCIL=1024]="STENCIL",i))(T6||{}),Zt=(i=>(i[i.NORMAL=0]="NORMAL",i[i.ADD=1]="ADD",i[i.MULTIPLY=2]="MULTIPLY",i[i.SCREEN=3]="SCREEN",i[i.OVERLAY=4]="OVERLAY",i[i.DARKEN=5]="DARKEN",i[i.LIGHTEN=6]="LIGHTEN",i[i.COLOR_DODGE=7]="COLOR_DODGE",i[i.COLOR_BURN=8]="COLOR_BURN",i[i.HARD_LIGHT=9]="HARD_LIGHT",i[i.SOFT_LIGHT=10]="SOFT_LIGHT",i[i.DIFFERENCE=11]="DIFFERENCE",i[i.EXCLUSION=12]="EXCLUSION",i[i.HUE=13]="HUE",i[i.SATURATION=14]="SATURATION",i[i.COLOR=15]="COLOR",i[i.LUMINOSITY=16]="LUMINOSITY",i[i.NORMAL_NPM=17]="NORMAL_NPM",i[i.ADD_NPM=18]="ADD_NPM",i[i.SCREEN_NPM=19]="SCREEN_NPM",i[i.NONE=20]="NONE",i[i.SRC_OVER=0]="SRC_OVER",i[i.SRC_IN=21]="SRC_IN",i[i.SRC_OUT=22]="SRC_OUT",i[i.SRC_ATOP=23]="SRC_ATOP",i[i.DST_OVER=24]="DST_OVER",i[i.DST_IN=25]="DST_IN",i[i.DST_OUT=26]="DST_OUT",i[i.DST_ATOP=27]="DST_ATOP",i[i.ERASE=26]="ERASE",i[i.SUBTRACT=28]="SUBTRACT",i[i.XOR=29]="XOR",i))(Zt||{}),pr=(i=>(i[i.POINTS=0]="POINTS",i[i.LINES=1]="LINES",i[i.LINE_LOOP=2]="LINE_LOOP",i[i.LINE_STRIP=3]="LINE_STRIP",i[i.TRIANGLES=4]="TRIANGLES",i[i.TRIANGLE_STRIP=5]="TRIANGLE_STRIP",i[i.TRIANGLE_FAN=6]="TRIANGLE_FAN",i))(pr||{}),Ot=(i=>(i[i.RGBA=6408]="RGBA",i[i.RGB=6407]="RGB",i[i.RG=33319]="RG",i[i.RED=6403]="RED",i[i.RGBA_INTEGER=36249]="RGBA_INTEGER",i[i.RGB_INTEGER=36248]="RGB_INTEGER",i[i.RG_INTEGER=33320]="RG_INTEGER",i[i.RED_INTEGER=36244]="RED_INTEGER",i[i.ALPHA=6406]="ALPHA",i[i.LUMINANCE=6409]="LUMINANCE",i[i.LUMINANCE_ALPHA=6410]="LUMINANCE_ALPHA",i[i.DEPTH_COMPONENT=6402]="DEPTH_COMPONENT",i[i.DEPTH_STENCIL=34041]="DEPTH_STENCIL",i))(Ot||{}),qd=(i=>(i[i.TEXTURE_2D=3553]="TEXTURE_2D",i[i.TEXTURE_CUBE_MAP=34067]="TEXTURE_CUBE_MAP",i[i.TEXTURE_2D_ARRAY=35866]="TEXTURE_2D_ARRAY",i[i.TEXTURE_CUBE_MAP_POSITIVE_X=34069]="TEXTURE_CUBE_MAP_POSITIVE_X",i[i.TEXTURE_CUBE_MAP_NEGATIVE_X=34070]="TEXTURE_CUBE_MAP_NEGATIVE_X",i[i.TEXTURE_CUBE_MAP_POSITIVE_Y=34071]="TEXTURE_CUBE_MAP_POSITIVE_Y",i[i.TEXTURE_CUBE_MAP_NEGATIVE_Y=34072]="TEXTURE_CUBE_MAP_NEGATIVE_Y",i[i.TEXTURE_CUBE_MAP_POSITIVE_Z=34073]="TEXTURE_CUBE_MAP_POSITIVE_Z",i[i.TEXTURE_CUBE_MAP_NEGATIVE_Z=34074]="TEXTURE_CUBE_MAP_NEGATIVE_Z",i))(qd||{}),pi=(i=>(i[i.UNSIGNED_BYTE=5121]="UNSIGNED_BYTE",i[i.UNSIGNED_SHORT=5123]="UNSIGNED_SHORT",i[i.UNSIGNED_SHORT_5_6_5=33635]="UNSIGNED_SHORT_5_6_5",i[i.UNSIGNED_SHORT_4_4_4_4=32819]="UNSIGNED_SHORT_4_4_4_4",i[i.UNSIGNED_SHORT_5_5_5_1=32820]="UNSIGNED_SHORT_5_5_5_1",i[i.UNSIGNED_INT=5125]="UNSIGNED_INT",i[i.UNSIGNED_INT_10F_11F_11F_REV=35899]="UNSIGNED_INT_10F_11F_11F_REV",i[i.UNSIGNED_INT_2_10_10_10_REV=33640]="UNSIGNED_INT_2_10_10_10_REV",i[i.UNSIGNED_INT_24_8=34042]="UNSIGNED_INT_24_8",i[i.UNSIGNED_INT_5_9_9_9_REV=35902]="UNSIGNED_INT_5_9_9_9_REV",i[i.BYTE=5120]="BYTE",i[i.SHORT=5122]="SHORT",i[i.INT=5124]="INT",i[i.FLOAT=5126]="FLOAT",i[i.FLOAT_32_UNSIGNED_INT_24_8_REV=36269]="FLOAT_32_UNSIGNED_INT_24_8_REV",i[i.HALF_FLOAT=36193]="HALF_FLOAT",i))(pi||{}),k6=(i=>(i[i.FLOAT=0]="FLOAT",i[i.INT=1]="INT",i[i.UINT=2]="UINT",i))(k6||{}),fa=(i=>(i[i.NEAREST=0]="NEAREST",i[i.LINEAR=1]="LINEAR",i))(fa||{}),du=(i=>(i[i.CLAMP=33071]="CLAMP",i[i.REPEAT=10497]="REPEAT",i[i.MIRRORED_REPEAT=33648]="MIRRORED_REPEAT",i))(du||{}),nc=(i=>(i[i.OFF=0]="OFF",i[i.POW2=1]="POW2",i[i.ON=2]="ON",i[i.ON_MANUAL=3]="ON_MANUAL",i))(nc||{}),ol=(i=>(i[i.NPM=0]="NPM",i[i.UNPACK=1]="UNPACK",i[i.PMA=2]="PMA",i[i.NO_PREMULTIPLIED_ALPHA=0]="NO_PREMULTIPLIED_ALPHA",i[i.PREMULTIPLY_ON_UPLOAD=1]="PREMULTIPLY_ON_UPLOAD",i[i.PREMULTIPLIED_ALPHA=2]="PREMULTIPLIED_ALPHA",i))(ol||{}),hu=(i=>(i[i.NO=0]="NO",i[i.YES=1]="YES",i[i.AUTO=2]="AUTO",i[i.BLEND=0]="BLEND",i[i.CLEAR=1]="CLEAR",i[i.BLIT=2]="BLIT",i))(hu||{}),R6=(i=>(i[i.AUTO=0]="AUTO",i[i.MANUAL=1]="MANUAL",i))(R6||{}),fr=(i=>(i.LOW="lowp",i.MEDIUM="mediump",i.HIGH="highp",i))(fr||{}),go=(i=>(i[i.NONE=0]="NONE",i[i.SCISSOR=1]="SCISSOR",i[i.STENCIL=2]="STENCIL",i[i.SPRITE=3]="SPRITE",i[i.COLOR=4]="COLOR",i))(go||{}),rQ=(i=>(i[i.RED=1]="RED",i[i.GREEN=2]="GREEN",i[i.BLUE=4]="BLUE",i[i.ALPHA=8]="ALPHA",i))(rQ||{}),Zn=(i=>(i[i.NONE=0]="NONE",i[i.LOW=2]="LOW",i[i.MEDIUM=4]="MEDIUM",i[i.HIGH=8]="HIGH",i))(Zn||{}),Aa=(i=>(i[i.ELEMENT_ARRAY_BUFFER=34963]="ELEMENT_ARRAY_BUFFER",i[i.ARRAY_BUFFER=34962]="ARRAY_BUFFER",i[i.UNIFORM_BUFFER=35345]="UNIFORM_BUFFER",i))(Aa||{});const Kd=2*Math.PI,aQ=180/Math.PI,lQ=Math.PI/180;var Oi=(i=>(i[i.POLY=0]="POLY",i[i.RECT=1]="RECT",i[i.CIRC=2]="CIRC",i[i.ELIP=3]="ELIP",i[i.RREC=4]="RREC",i))(Oi||{});let zn=class ame{constructor(e=0,t=0){this.x=0,this.y=0,this.x=e,this.y=t}clone(){return new ame(this.x,this.y)}copyFrom(e){return this.set(e.x,e.y),this}copyTo(e){return e.set(this.x,this.y),e}equals(e){return e.x===this.x&&e.y===this.y}set(e=0,t=e){return this.x=e,this.y=t,this}toString(){return`[@pixi/math:Point x=${this.x} y=${this.y}]`}};const _6=[new zn,new zn,new zn,new zn];let ln=class UO{constructor(e=0,t=0,n=0,o=0){this.x=Number(e),this.y=Number(t),this.width=Number(n),this.height=Number(o),this.type=Oi.RECT}get left(){return this.x}get right(){return this.x+this.width}get top(){return this.y}get bottom(){return this.y+this.height}static get EMPTY(){return new UO(0,0,0,0)}clone(){return new UO(this.x,this.y,this.width,this.height)}copyFrom(e){return this.x=e.x,this.y=e.y,this.width=e.width,this.height=e.height,this}copyTo(e){return e.x=this.x,e.y=this.y,e.width=this.width,e.height=this.height,e}contains(e,t){return!(this.width<=0||this.height<=0)&&e>=this.x&&e<this.x+this.width&&t>=this.y&&t<this.y+this.height}intersects(e,t){if(!t){const S=this.x<e.x?e.x:this.x;if((this.right>e.right?e.right:this.right)<=S)return!1;const I=this.y<e.y?e.y:this.y;return(this.bottom>e.bottom?e.bottom:this.bottom)>I}const n=this.left,o=this.right,r=this.top,s=this.bottom;if(o<=n||s<=r)return!1;const a=_6[0].set(e.left,e.top),l=_6[1].set(e.left,e.bottom),c=_6[2].set(e.right,e.top),u=_6[3].set(e.right,e.bottom);if(c.x<=a.x||l.y<=a.y)return!1;const d=Math.sign(t.a*t.d-t.b*t.c);if(d===0||(t.apply(a,a),t.apply(l,l),t.apply(c,c),t.apply(u,u),Math.max(a.x,l.x,c.x,u.x)<=n||Math.min(a.x,l.x,c.x,u.x)>=o||Math.max(a.y,l.y,c.y,u.y)<=r||Math.min(a.y,l.y,c.y,u.y)>=s))return!1;const h=d*(l.y-a.y),p=d*(a.x-l.x),A=h*n+p*r,f=h*o+p*r,g=h*n+p*s,m=h*o+p*s;if(Math.max(A,f,g,m)<=h*a.x+p*a.y||Math.min(A,f,g,m)>=h*u.x+p*u.y)return!1;const v=d*(a.y-c.y),y=d*(c.x-a.x),w=v*n+y*r,x=v*o+y*r,M=v*n+y*s,B=v*o+y*s;return!(Math.max(w,x,M,B)<=v*a.x+y*a.y||Math.min(w,x,M,B)>=v*u.x+y*u.y)}pad(e=0,t=e){return this.x-=e,this.y-=t,this.width+=2*e,this.height+=2*t,this}fit(e){const t=Math.max(this.x,e.x),n=Math.min(this.x+this.width,e.x+e.width),o=Math.max(this.y,e.y),r=Math.min(this.y+this.height,e.y+e.height);return this.x=t,this.width=Math.max(n-t,0),this.y=o,this.height=Math.max(r-o,0),this}ceil(e=1,t=.001){const n=Math.ceil((this.x+this.width-t)*e)/e,o=Math.ceil((this.y+this.height-t)*e)/e;return this.x=Math.floor((this.x+t)*e)/e,this.y=Math.floor((this.y+t)*e)/e,this.width=n-this.x,this.height=o-this.y,this}enlarge(e){const t=Math.min(this.x,e.x),n=Math.max(this.x+this.width,e.x+e.width),o=Math.min(this.y,e.y),r=Math.max(this.y+this.height,e.y+e.height);return this.x=t,this.width=n-t,this.y=o,this.height=r-o,this}toString(){return`[@pixi/math:Rectangle x=${this.x} y=${this.y} width=${this.width} height=${this.height}]`}},fE=class lme{constructor(e=0,t=0,n=0){this.x=e,this.y=t,this.radius=n,this.type=Oi.CIRC}clone(){return new lme(this.x,this.y,this.radius)}contains(e,t){if(this.radius<=0)return!1;const n=this.radius*this.radius;let o=this.x-e,r=this.y-t;return o*=o,r*=r,o+r<=n}getBounds(){return new ln(this.x-this.radius,this.y-this.radius,2*this.radius,2*this.radius)}toString(){return`[@pixi/math:Circle x=${this.x} y=${this.y} radius=${this.radius}]`}},AE=class cme{constructor(e=0,t=0,n=0,o=0){this.x=e,this.y=t,this.width=n,this.height=o,this.type=Oi.ELIP}clone(){return new cme(this.x,this.y,this.width,this.height)}contains(e,t){if(this.width<=0||this.height<=0)return!1;let n=(e-this.x)/this.width,o=(t-this.y)/this.height;return n*=n,o*=o,n+o<=1}getBounds(){return new ln(this.x-this.width,this.y-this.height,this.width,this.height)}toString(){return`[@pixi/math:Ellipse x=${this.x} y=${this.y} width=${this.width} height=${this.height}]`}},pu=class ume{constructor(...e){let t=Array.isArray(e[0])?e[0]:e;if(typeof t[0]!="number"){const n=[];for(let o=0,r=t.length;o<r;o++)n.push(t[o].x,t[o].y);t=n}this.points=t,this.type=Oi.POLY,this.closeStroke=!0}clone(){const e=this.points.slice(),t=new ume(e);return t.closeStroke=this.closeStroke,t}contains(e,t){let n=!1;const o=this.points.length/2;for(let r=0,s=o-1;r<o;s=r++){const a=this.points[2*r],l=this.points[2*r+1],c=this.points[2*s],u=this.points[2*s+1];l>t!=u>t&&e<(t-l)/(u-l)*(c-a)+a&&(n=!n)}return n}toString(){return`[@pixi/math:PolygoncloseStroke=${this.closeStroke}points=${this.points.reduce(((e,t)=>`${e}, ${t}`),"")}]`}},mE=class dme{constructor(e=0,t=0,n=0,o=0,r=20){this.x=e,this.y=t,this.width=n,this.height=o,this.radius=r,this.type=Oi.RREC}clone(){return new dme(this.x,this.y,this.width,this.height,this.radius)}contains(e,t){if(this.width<=0||this.height<=0)return!1;if(e>=this.x&&e<=this.x+this.width&&t>=this.y&&t<=this.y+this.height){const n=Math.max(0,Math.min(this.radius,Math.min(this.width,this.height)/2));if(t>=this.y+n&&t<=this.y+this.height-n||e>=this.x+n&&e<=this.x+this.width-n)return!0;let o=e-(this.x+n),r=t-(this.y+n);const s=n*n;if(o*o+r*r<=s||(o=e-(this.x+this.width-n),o*o+r*r<=s)||(r=t-(this.y+this.height-n),o*o+r*r<=s)||(o=e-(this.x+n),o*o+r*r<=s))return!0}return!1}toString(){return`[@pixi/math:RoundedRectangle x=${this.x} y=${this.y}width=${this.width} height=${this.height} radius=${this.radius}]`}},zp=class hme{constructor(e,t,n=0,o=0){this._x=n,this._y=o,this.cb=e,this.scope=t}clone(e=this.cb,t=this.scope){return new hme(e,t,this._x,this._y)}set(e=0,t=e){return(this._x!==e||this._y!==t)&&(this._x=e,this._y=t,this.cb.call(this.scope)),this}copyFrom(e){return(this._x!==e.x||this._y!==e.y)&&(this._x=e.x,this._y=e.y,this.cb.call(this.scope)),this}copyTo(e){return e.set(this._x,this._y),e}equals(e){return e.x===this._x&&e.y===this._y}toString(){return`[@pixi/math:ObservablePoint x=0 y=0 scope=${this.scope}]`}get x(){return this._x}set x(e){this._x!==e&&(this._x=e,this.cb.call(this.scope))}get y(){return this._y}set y(e){this._y!==e&&(this._y=e,this.cb.call(this.scope))}},Mi=class db{constructor(e=1,t=0,n=0,o=1,r=0,s=0){this.array=null,this.a=e,this.b=t,this.c=n,this.d=o,this.tx=r,this.ty=s}fromArray(e){this.a=e[0],this.b=e[1],this.c=e[3],this.d=e[4],this.tx=e[2],this.ty=e[5]}set(e,t,n,o,r,s){return this.a=e,this.b=t,this.c=n,this.d=o,this.tx=r,this.ty=s,this}toArray(e,t){this.array||(this.array=new Float32Array(9));const n=t||this.array;return e?(n[0]=this.a,n[1]=this.b,n[2]=0,n[3]=this.c,n[4]=this.d,n[5]=0,n[6]=this.tx,n[7]=this.ty,n[8]=1):(n[0]=this.a,n[1]=this.c,n[2]=this.tx,n[3]=this.b,n[4]=this.d,n[5]=this.ty,n[6]=0,n[7]=0,n[8]=1),n}apply(e,t){t=t||new zn;const n=e.x,o=e.y;return t.x=this.a*n+this.c*o+this.tx,t.y=this.b*n+this.d*o+this.ty,t}applyInverse(e,t){t=t||new zn;const n=1/(this.a*this.d+this.c*-this.b),o=e.x,r=e.y;return t.x=this.d*n*o+-this.c*n*r+(this.ty*this.c-this.tx*this.d)*n,t.y=this.a*n*r+-this.b*n*o+(-this.ty*this.a+this.tx*this.b)*n,t}translate(e,t){return this.tx+=e,this.ty+=t,this}scale(e,t){return this.a*=e,this.d*=t,this.c*=e,this.b*=t,this.tx*=e,this.ty*=t,this}rotate(e){const t=Math.cos(e),n=Math.sin(e),o=this.a,r=this.c,s=this.tx;return this.a=o*t-this.b*n,this.b=o*n+this.b*t,this.c=r*t-this.d*n,this.d=r*n+this.d*t,this.tx=s*t-this.ty*n,this.ty=s*n+this.ty*t,this}append(e){const t=this.a,n=this.b,o=this.c,r=this.d;return this.a=e.a*t+e.b*o,this.b=e.a*n+e.b*r,this.c=e.c*t+e.d*o,this.d=e.c*n+e.d*r,this.tx=e.tx*t+e.ty*o+this.tx,this.ty=e.tx*n+e.ty*r+this.ty,this}setTransform(e,t,n,o,r,s,a,l,c){return this.a=Math.cos(a+c)*r,this.b=Math.sin(a+c)*r,this.c=-Math.sin(a-l)*s,this.d=Math.cos(a-l)*s,this.tx=e-(n*this.a+o*this.c),this.ty=t-(n*this.b+o*this.d),this}prepend(e){const t=this.tx;if(e.a!==1||e.b!==0||e.c!==0||e.d!==1){const n=this.a,o=this.c;this.a=n*e.a+this.b*e.c,this.b=n*e.b+this.b*e.d,this.c=o*e.a+this.d*e.c,this.d=o*e.b+this.d*e.d}return this.tx=t*e.a+this.ty*e.c+e.tx,this.ty=t*e.b+this.ty*e.d+e.ty,this}decompose(e){const t=this.a,n=this.b,o=this.c,r=this.d,s=e.pivot,a=-Math.atan2(-o,r),l=Math.atan2(n,t),c=Math.abs(a+l);return c<1e-5||Math.abs(Kd-c)<1e-5?(e.rotation=l,e.skew.x=e.skew.y=0):(e.rotation=0,e.skew.x=a,e.skew.y=l),e.scale.x=Math.sqrt(t*t+n*n),e.scale.y=Math.sqrt(o*o+r*r),e.position.x=this.tx+(s.x*t+s.y*o),e.position.y=this.ty+(s.x*n+s.y*r),e}invert(){const e=this.a,t=this.b,n=this.c,o=this.d,r=this.tx,s=e*o-t*n;return this.a=o/s,this.b=-t/s,this.c=-n/s,this.d=e/s,this.tx=(n*this.ty-o*r)/s,this.ty=-(e*this.ty-t*r)/s,this}identity(){return this.a=1,this.b=0,this.c=0,this.d=1,this.tx=0,this.ty=0,this}clone(){const e=new db;return e.a=this.a,e.b=this.b,e.c=this.c,e.d=this.d,e.tx=this.tx,e.ty=this.ty,e}copyTo(e){return e.a=this.a,e.b=this.b,e.c=this.c,e.d=this.d,e.tx=this.tx,e.ty=this.ty,e}copyFrom(e){return this.a=e.a,this.b=e.b,this.c=e.c,this.d=e.d,this.tx=e.tx,this.ty=e.ty,this}toString(){return`[@pixi/math:Matrix a=${this.a} b=${this.b} c=${this.c} d=${this.d} tx=${this.tx} ty=${this.ty}]`}static get IDENTITY(){return new db}static get TEMP_MATRIX(){return new db}};const Jd=[1,1,0,-1,-1,-1,0,1,1,1,0,-1,-1,-1,0,1],Wd=[0,1,1,1,0,-1,-1,-1,0,1,1,1,0,-1,-1,-1],Zd=[0,-1,-1,-1,0,1,1,1,0,1,1,1,0,-1,-1,-1],Yd=[1,1,0,-1,-1,-1,0,1,-1,-1,0,1,1,1,0,-1],gE=[],cQ=[],D6=Math.sign;(function(){for(let i=0;i<16;i++){const e=[];gE.push(e);for(let t=0;t<16;t++){const n=D6(Jd[i]*Jd[t]+Zd[i]*Wd[t]),o=D6(Wd[i]*Jd[t]+Yd[i]*Wd[t]),r=D6(Jd[i]*Zd[t]+Zd[i]*Yd[t]),s=D6(Wd[i]*Zd[t]+Yd[i]*Yd[t]);for(let a=0;a<16;a++)if(Jd[a]===n&&Wd[a]===o&&Zd[a]===r&&Yd[a]===s){e.push(a);break}}}for(let i=0;i<16;i++){const e=new Mi;e.set(Jd[i],Wd[i],Zd[i],Yd[i],0,0),cQ.push(e)}})();const Fn={E:0,SE:1,S:2,SW:3,W:4,NW:5,N:6,NE:7,MIRROR_VERTICAL:8,MAIN_DIAGONAL:10,MIRROR_HORIZONTAL:12,REVERSE_DIAGONAL:14,uX:i=>Jd[i],uY:i=>Wd[i],vX:i=>Zd[i],vY:i=>Yd[i],inv:i=>8&i?15&i:7&-i,add:(i,e)=>gE[i][e],sub:(i,e)=>gE[i][Fn.inv(e)],rotate180:i=>4^i,isVertical:i=>(3&i)==2,byDirection:(i,e)=>2*Math.abs(i)<=Math.abs(e)?e>=0?Fn.S:Fn.N:2*Math.abs(e)<=Math.abs(i)?i>0?Fn.E:Fn.W:e>0?i>0?Fn.SE:Fn.SW:i>0?Fn.NE:Fn.NW,matrixAppendRotationInv:(i,e,t=0,n=0)=>{const o=cQ[Fn.inv(e)];o.tx=t,o.ty=n,i.append(o)}},uQ=class{constructor(){this.worldTransform=new Mi,this.localTransform=new Mi,this.position=new zp(this.onChange,this,0,0),this.scale=new zp(this.onChange,this,1,1),this.pivot=new zp(this.onChange,this,0,0),this.skew=new zp(this.updateSkew,this,0,0),this._rotation=0,this._cx=1,this._sx=0,this._cy=0,this._sy=1,this._localID=0,this._currentLocalID=0,this._worldID=0,this._parentID=0}onChange(){this._localID++}updateSkew(){this._cx=Math.cos(this._rotation+this.skew.y),this._sx=Math.sin(this._rotation+this.skew.y),this._cy=-Math.sin(this._rotation-this.skew.x),this._sy=Math.cos(this._rotation-this.skew.x),this._localID++}toString(){return`[@pixi/math:Transform position=(${this.position.x}, ${this.position.y}) rotation=${this.rotation} scale=(${this.scale.x}, ${this.scale.y}) skew=(${this.skew.x}, ${this.skew.y}) ]`}updateLocalTransform(){const i=this.localTransform;this._localID!==this._currentLocalID&&(i.a=this._cx*this.scale.x,i.b=this._sx*this.scale.x,i.c=this._cy*this.scale.y,i.d=this._sy*this.scale.y,i.tx=this.position.x-(this.pivot.x*i.a+this.pivot.y*i.c),i.ty=this.position.y-(this.pivot.x*i.b+this.pivot.y*i.d),this._currentLocalID=this._localID,this._parentID=-1)}updateTransform(i){const e=this.localTransform;if(this._localID!==this._currentLocalID&&(e.a=this._cx*this.scale.x,e.b=this._sx*this.scale.x,e.c=this._cy*this.scale.y,e.d=this._sy*this.scale.y,e.tx=this.position.x-(this.pivot.x*e.a+this.pivot.y*e.c),e.ty=this.position.y-(this.pivot.x*e.b+this.pivot.y*e.d),this._currentLocalID=this._localID,this._parentID=-1),this._parentID!==i._worldID){const t=i.worldTransform,n=this.worldTransform;n.a=e.a*t.a+e.b*t.c,n.b=e.a*t.b+e.b*t.d,n.c=e.c*t.a+e.d*t.c,n.d=e.c*t.b+e.d*t.d,n.tx=e.tx*t.a+e.ty*t.c+t.tx,n.ty=e.tx*t.b+e.ty*t.d+t.ty,this._parentID=i._worldID,this._worldID++}}setFromMatrix(i){i.decompose(this),this._localID++}get rotation(){return this._rotation}set rotation(i){this._rotation!==i&&(this._rotation=i,this.updateSkew())}};let jp=uQ;jp.IDENTITY=new uQ;let Ar=class{constructor(e){this.items=[],this._name=e,this._aliasCount=0}emit(e,t,n,o,r,s,a,l){if(arguments.length>8)throw new Error("max arguments reached");const{name:c,items:u}=this;this._aliasCount++;for(let d=0,h=u.length;d<h;d++)u[d][c](e,t,n,o,r,s,a,l);return u===this.items&&this._aliasCount--,this}ensureNonAliasedItems(){this._aliasCount>0&&this.items.length>1&&(this._aliasCount=0,this.items=this.items.slice(0))}add(e){return e[this._name]&&(this.ensureNonAliasedItems(),this.remove(e),this.items.push(e)),this}remove(e){const t=this.items.indexOf(e);return t!==-1&&(this.ensureNonAliasedItems(),this.items.splice(t,1)),this}contains(e){return this.items.includes(e)}removeAll(){return this.ensureNonAliasedItems(),this.items.length=0,this}destroy(){this.removeAll(),this.items=null,this._name=null}get empty(){return this.items.length===0}get name(){return this._name}};Object.defineProperties(Ar.prototype,{dispatch:{value:Ar.prototype.emit},run:{value:Ar.prototype.emit}});const dQ={createCanvas:(i,e)=>{const t=document.createElement("canvas");return t.width=i,t.height=e,t},getWebGLRenderingContext:()=>WebGLRenderingContext,getNavigator:()=>navigator,getBaseUrl:()=>document.baseURI??window.location.href,getFontFaceSet:()=>document.fonts,fetch:(i,e)=>fetch(i,e),parseXML:i=>new DOMParser().parseFromString(i,"text/xml")};var yE=/iPhone/i,hQ=/iPod/i,pQ=/iPad/i,fQ=/\biOS-universal(?:.+)Mac\b/i,vE=/\bAndroid(?:.+)Mobile\b/i,AQ=/Android/i,Gp=/(?:SD4930UR|\bSilk(?:.+)Mobile\b)/i,L6=/Silk/i,oc=/Windows Phone/i,mQ=/\bWindows(?:.+)ARM\b/i,gQ=/BlackBerry/i,yQ=/BB10/i,vQ=/Opera Mini/i,wQ=/\b(CriOS|Chrome)(?:.+)Mobile/i,CQ=/Mobile(?:.+)Firefox\b/i,bQ=function(i){return typeof i<"u"&&i.platform==="MacIntel"&&typeof i.maxTouchPoints=="number"&&i.maxTouchPoints>1&&typeof MSStream>"u"};const fu=(function(i){var e={userAgent:"",platform:"",maxTouchPoints:0};!i&&typeof navigator<"u"?e={userAgent:navigator.userAgent,platform:navigator.platform,maxTouchPoints:navigator.maxTouchPoints||0}:typeof i=="string"?e.userAgent=i:i&&i.userAgent&&(e={userAgent:i.userAgent,platform:i.platform,maxTouchPoints:i.maxTouchPoints||0});var t=e.userAgent,n=t.split("[FBAN");typeof n[1]<"u"&&(t=n[0]),typeof(n=t.split("Twitter"))[1]<"u"&&(t=n[0]);var o=(function(s){return function(a){return a.test(s)}})(t),r={apple:{phone:o(yE)&&!o(oc),ipod:o(hQ),tablet:!o(yE)&&(o(pQ)||bQ(e))&&!o(oc),universal:o(fQ),device:(o(yE)||o(hQ)||o(pQ)||o(fQ)||bQ(e))&&!o(oc)},amazon:{phone:o(Gp),tablet:!o(Gp)&&o(L6),device:o(Gp)||o(L6)},android:{phone:!o(oc)&&o(Gp)||!o(oc)&&o(vE),tablet:!o(oc)&&!o(Gp)&&!o(vE)&&(o(L6)||o(AQ)),device:!o(oc)&&(o(Gp)||o(L6)||o(vE)||o(AQ))||o(/\bokhttp\b/i)},windows:{phone:o(oc),tablet:o(mQ),device:o(oc)||o(mQ)},other:{blackberry:o(gQ),blackberry10:o(yQ),opera:o(vQ),firefox:o(CQ),chrome:o(wQ),device:o(gQ)||o(yQ)||o(vQ)||o(CQ)||o(wQ)},any:!1,phone:!1,tablet:!1};return r.any=r.apple.device||r.android.device||r.windows.device||r.other.device,r.phone=r.apple.phone||r.android.phone||r.windows.phone,r.tablet=r.apple.tablet||r.android.tablet||r.windows.tablet,r})(globalThis.navigator),Ht={ADAPTER:dQ,MIPMAP_TEXTURES:nc.POW2,ANISOTROPIC_LEVEL:0,RESOLUTION:1,FILTER_RESOLUTION:1,FILTER_MULTISAMPLE:Zn.NONE,SPRITE_MAX_TEXTURES:(function(i){let e=!0;if(fu.tablet||fu.phone){if(fu.apple.device){const t=navigator.userAgent.match(/OS (\d+)_(\d+)?/);t&&parseInt(t[1],10)<11&&(e=!1)}if(fu.android.device){const t=navigator.userAgent.match(/Android\s([0-9.]*)/);t&&parseInt(t[1],10)<7&&(e=!1)}}return e?i:4})(32),SPRITE_BATCH_SIZE:4096,RENDER_OPTIONS:{view:null,antialias:!1,autoDensity:!1,backgroundColor:0,backgroundAlpha:1,premultipliedAlpha:!0,clearBeforeRender:!0,preserveDrawingBuffer:!1,width:800,height:600,legacy:!1,hello:!1},GC_MODE:R6.AUTO,GC_MAX_IDLE:3600,GC_MAX_CHECK_COUNT:600,WRAP_MODE:du.CLAMP,SCALE_MODE:fa.LINEAR,PRECISION_VERTEX:fr.HIGH,PRECISION_FRAGMENT:fu.apple.device?fr.HIGH:fr.MEDIUM,CAN_UPLOAD_SAME_BUFFER:!fu.apple.device,CREATE_IMAGE_BITMAP:!1,ROUND_PIXELS:!1,TARGET_FPMS:.06};var u3=(i=>(i[i.HIGH=25]="HIGH",i[i.NORMAL=0]="NORMAL",i[i.LOW=-25]="LOW",i[i.UTILITY=-50]="UTILITY",i))(u3||{});let wE=class{constructor(e,t=null,n=0,o=!1){this.next=null,this.previous=null,this._destroyed=!1,this.fn=e,this.context=t,this.priority=n,this.once=o}match(e,t=null){return this.fn===e&&this.context===t}emit(e){this.fn&&(this.context?this.fn.call(this.context,e):this.fn(e));const t=this.next;return this.once&&this.destroy(!0),this._destroyed&&(this.next=null),t}connect(e){this.previous=e,e.next&&(e.next.previous=this),this.next=e.next,e.next=this}destroy(e=!1){this._destroyed=!0,this.fn=null,this.context=null,this.previous&&(this.previous.next=this.next),this.next&&(this.next.previous=this.previous);const t=this.next;return this.next=e?null:t,this.previous=null,t}},sc=class qc{constructor(){this.autoStart=!1,this.deltaTime=1,this.lastTime=-1,this.speed=1,this.started=!1,this._requestId=null,this._maxElapsedMS=100,this._minElapsedMS=0,this._protected=!1,this._lastFrame=-1,this._head=new wE(null,null,1/0),this.deltaMS=1/Ht.TARGET_FPMS,this.elapsedMS=1/Ht.TARGET_FPMS,this._tick=e=>{this._requestId=null,this.started&&(this.update(e),this.started&&this._requestId===null&&this._head.next&&(this._requestId=requestAnimationFrame(this._tick)))}}_requestIfNeeded(){this._requestId===null&&this._head.next&&(this.lastTime=performance.now(),this._lastFrame=this.lastTime,this._requestId=requestAnimationFrame(this._tick))}_cancelIfNeeded(){this._requestId!==null&&(cancelAnimationFrame(this._requestId),this._requestId=null)}_startIfPossible(){this.started?this._requestIfNeeded():this.autoStart&&this.start()}add(e,t,n=u3.NORMAL){return this._addListener(new wE(e,t,n))}addOnce(e,t,n=u3.NORMAL){return this._addListener(new wE(e,t,n,!0))}_addListener(e){let t=this._head.next,n=this._head;if(t){for(;t;){if(e.priority>t.priority){e.connect(n);break}n=t,t=t.next}e.previous||e.connect(n)}else e.connect(n);return this._startIfPossible(),this}remove(e,t){let n=this._head.next;for(;n;)n=n.match(e,t)?n.destroy():n.next;return this._head.next||this._cancelIfNeeded(),this}get count(){if(!this._head)return 0;let e=0,t=this._head;for(;t=t.next;)e++;return e}start(){this.started||(this.started=!0,this._requestIfNeeded())}stop(){this.started&&(this.started=!1,this._cancelIfNeeded())}destroy(){if(!this._protected){this.stop();let e=this._head.next;for(;e;)e=e.destroy(!0);this._head.destroy(),this._head=null}}update(e=performance.now()){let t;if(e>this.lastTime){if(t=this.elapsedMS=e-this.lastTime,t>this._maxElapsedMS&&(t=this._maxElapsedMS),t*=this.speed,this._minElapsedMS){const r=e-this._lastFrame|0;if(r<this._minElapsedMS)return;this._lastFrame=e-r%this._minElapsedMS}this.deltaMS=t,this.deltaTime=this.deltaMS*Ht.TARGET_FPMS;const n=this._head;let o=n.next;for(;o;)o=o.emit(this.deltaTime);n.next||this._cancelIfNeeded()}else this.deltaTime=this.deltaMS=this.elapsedMS=0;this.lastTime=e}get FPS(){return 1e3/this.elapsedMS}get minFPS(){return 1e3/this._maxElapsedMS}set minFPS(e){const t=Math.min(this.maxFPS,e),n=Math.min(Math.max(0,t)/1e3,Ht.TARGET_FPMS);this._maxElapsedMS=1/n}get maxFPS(){return this._minElapsedMS?Math.round(1e3/this._minElapsedMS):0}set maxFPS(e){if(e===0)this._minElapsedMS=0;else{const t=Math.max(this.minFPS,e);this._minElapsedMS=1/(t/1e3)}}static get shared(){if(!qc._shared){const e=qc._shared=new qc;e.autoStart=!0,e._protected=!0}return qc._shared}static get system(){if(!qc._system){const e=qc._system=new qc;e.autoStart=!0,e._protected=!0}return qc._system}};var Ei=(i=>(i.Renderer="renderer",i.Application="application",i.RendererSystem="renderer-webgl-system",i.RendererPlugin="renderer-webgl-plugin",i.CanvasRendererSystem="renderer-canvas-system",i.CanvasRendererPlugin="renderer-canvas-plugin",i.Asset="asset",i.LoadParser="load-parser",i.ResolveParser="resolve-parser",i.CacheParser="cache-parser",i.DetectionParser="detection-parser",i))(Ei||{});const CE=i=>{if(typeof i=="function"||typeof i=="object"&&i.extension){if(!i.extension)throw new Error("Extension class must have an extension object");i={...typeof i.extension!="object"?{type:i.extension}:i.extension,ref:i}}if(typeof i!="object")throw new Error("Invalid extension type");return typeof(i={...i}).type=="string"&&(i.type=[i.type]),i},xQ=(i,e)=>CE(i).priority??e,$i={_addHandlers:{},_removeHandlers:{},_queue:{},remove(...i){return i.map(CE).forEach((e=>{e.type.forEach((t=>{var n,o;return(o=(n=this._removeHandlers)[t])==null?void 0:o.call(n,e)}))})),this},add(...i){return i.map(CE).forEach((e=>{e.type.forEach((t=>{const n=this._addHandlers,o=this._queue;n[t]?n[t](e):(o[t]=o[t]||[],o[t].push(e))}))})),this},handle(i,e,t){const n=this._addHandlers,o=this._removeHandlers;if(n[i]||o[i])throw new Error(`Extension type ${i} already has a handler`);n[i]=e,o[i]=t;const r=this._queue;return r[i]&&(r[i].forEach((s=>e(s))),delete r[i]),this},handleByMap(i,e){return this.handle(i,(t=>{e[t.name]=t.ref}),(t=>{delete e[t.name]}))},handleByList(i,e,t=-1){return this.handle(i,(n=>{e.includes(n.ref)||(e.push(n.ref),e.sort(((o,r)=>xQ(r,t)-xQ(o,t))))}),(n=>{const o=e.indexOf(n.ref);o!==-1&&e.splice(o,1)}))}};class bE{static init(e){e=Object.assign({autoStart:!0,sharedTicker:!1},e),Object.defineProperty(this,"ticker",{set(t){this._ticker&&this._ticker.remove(this.render,this),this._ticker=t,t&&t.add(this.render,this,u3.LOW)},get(){return this._ticker}}),this.stop=()=>{this._ticker.stop()},this.start=()=>{this._ticker.start()},this._ticker=null,this.ticker=e.sharedTicker?sc.shared:new sc,e.autoStart&&this.start()}static destroy(){if(this._ticker){const e=this._ticker;this.ticker=null,e.destroy()}}}bE.extension=Ei.Application,$i.add(bE);var xE=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function MQ(i){return i&&i.__esModule&&Object.prototype.hasOwnProperty.call(i,"default")?i.default:i}var EQ={exports:{}};(function(i){var e=Object.prototype.hasOwnProperty,t="~";function n(){}function o(l,c,u){this.fn=l,this.context=c,this.once=u||!1}function r(l,c,u,d,h){if(typeof u!="function")throw new TypeError("The listener must be a function");var p=new o(u,d||l,h),A=t?t+c:c;return l._events[A]?l._events[A].fn?l._events[A]=[l._events[A],p]:l._events[A].push(p):(l._events[A]=p,l._eventsCount++),l}function s(l,c){--l._eventsCount==0?l._events=new n:delete l._events[c]}function a(){this._events=new n,this._eventsCount=0}Object.create&&(n.prototype=Object.create(null),new n().__proto__||(t=!1)),a.prototype.eventNames=function(){var l,c,u=[];if(this._eventsCount===0)return u;for(c in l=this._events)e.call(l,c)&&u.push(t?c.slice(1):c);return Object.getOwnPropertySymbols?u.concat(Object.getOwnPropertySymbols(l)):u},a.prototype.listeners=function(l){var c=t?t+l:l,u=this._events[c];if(!u)return[];if(u.fn)return[u.fn];for(var d=0,h=u.length,p=new Array(h);d<h;d++)p[d]=u[d].fn;return p},a.prototype.listenerCount=function(l){var c=t?t+l:l,u=this._events[c];return u?u.fn?1:u.length:0},a.prototype.emit=function(l,c,u,d,h,p){var A=t?t+l:l;if(!this._events[A])return!1;var f,g,m=this._events[A],v=arguments.length;if(m.fn){switch(m.once&&this.removeListener(l,m.fn,void 0,!0),v){case 1:return m.fn.call(m.context),!0;case 2:return m.fn.call(m.context,c),!0;case 3:return m.fn.call(m.context,c,u),!0;case 4:return m.fn.call(m.context,c,u,d),!0;case 5:return m.fn.call(m.context,c,u,d,h),!0;case 6:return m.fn.call(m.context,c,u,d,h,p),!0}for(g=1,f=new Array(v-1);g<v;g++)f[g-1]=arguments[g];m.fn.apply(m.context,f)}else{var y,w=m.length;for(g=0;g<w;g++)switch(m[g].once&&this.removeListener(l,m[g].fn,void 0,!0),v){case 1:m[g].fn.call(m[g].context);break;case 2:m[g].fn.call(m[g].context,c);break;case 3:m[g].fn.call(m[g].context,c,u);break;case 4:m[g].fn.call(m[g].context,c,u,d);break;default:if(!f)for(y=1,f=new Array(v-1);y<v;y++)f[y-1]=arguments[y];m[g].fn.apply(m[g].context,f)}}return!0},a.prototype.on=function(l,c,u){return r(this,l,c,u,!1)},a.prototype.once=function(l,c,u){return r(this,l,c,u,!0)},a.prototype.removeListener=function(l,c,u,d){var h=t?t+l:l;if(!this._events[h])return this;if(!c)return s(this,h),this;var p=this._events[h];if(p.fn)p.fn===c&&(!d||p.once)&&(!u||p.context===u)&&s(this,h);else{for(var A=0,f=[],g=p.length;A<g;A++)(p[A].fn!==c||d&&!p[A].once||u&&p[A].context!==u)&&f.push(p[A]);f.length?this._events[h]=f.length===1?f[0]:f:s(this,h)}return this},a.prototype.removeAllListeners=function(l){var c;return l?(c=t?t+l:l,this._events[c]&&s(this,c)):(this._events=new n,this._eventsCount=0),this},a.prototype.off=a.prototype.removeListener,a.prototype.addListener=a.prototype.on,a.prefixed=t,a.EventEmitter=a,i.exports=a})(EQ);const d3=MQ(EQ.exports);var ME={exports:{}};function F6(i,e,t){t=t||2;var n,o,r,s,a,l,c,u=e&&e.length,d=u?e[0]*t:i.length,h=BQ(i,0,d,t,!0),p=[];if(!h||h.next===h.prev)return p;if(u&&(h=(function(f,g,m,v){var y,w,x,M,B,S=[];for(y=0,w=g.length;y<w;y++)x=g[y]*v,M=y<w-1?g[y+1]*v:f.length,(B=BQ(f,x,M,v,!1))===B.next&&(B.steiner=!0),S.push($Ye(B));for(S.sort(ZYe),y=0;y<S.length;y++)m=YYe(S[y],m);return m})(i,e,h,t)),i.length>80*t){n=r=i[0],o=s=i[1];for(var A=t;A<d;A+=t)(a=i[A])<n&&(n=a),(l=i[A+1])<o&&(o=l),a>r&&(r=a),l>s&&(s=l);c=(c=Math.max(r-n,s-o))!==0?32767/c:0}return h3(h,p,t,n,o,c,0),p}function BQ(i,e,t,n,o){var r,s;if(o===IE(i,e,t,n)>0)for(r=e;r<t;r+=n)s=PQ(r,i[r],i[r+1],s);else for(r=t-n;r>=e;r-=n)s=PQ(r,i[r],i[r+1],s);return s&&O6(s,s.next)&&(f3(s),s=s.next),s}function Xd(i,e){if(!i)return i;e||(e=i);var t,n=i;do if(t=!1,n.steiner||!O6(n,n.next)&&jn(n.prev,n,n.next)!==0)n=n.next;else{if(f3(n),(n=e=n.prev)===n.next)break;t=!0}while(t||n!==e);return e}function h3(i,e,t,n,o,r,s){if(i){!s&&r&&(function(u,d,h,p){var A=u;do A.z===0&&(A.z=EE(A.x,A.y,d,h,p)),A.prevZ=A.prev,A.nextZ=A.next,A=A.next;while(A!==u);A.prevZ.nextZ=null,A.prevZ=null,(function(f){var g,m,v,y,w,x,M,B,S=1;do{for(m=f,f=null,w=null,x=0;m;){for(x++,v=m,M=0,g=0;g<S&&(M++,v=v.nextZ);g++);for(B=S;M>0||B>0&&v;)M!==0&&(B===0||!v||m.z<=v.z)?(y=m,m=m.nextZ,M--):(y=v,v=v.nextZ,B--),w?w.nextZ=y:f=y,y.prevZ=w,w=y;m=v}w.nextZ=null,S*=2}while(x>1)})(A)})(i,n,o,r);for(var a,l,c=i;i.prev!==i.next;)if(a=i.prev,l=i.next,r?KYe(i,n,o,r):qYe(i))e.push(a.i/t|0),e.push(i.i/t|0),e.push(l.i/t|0),f3(i),i=l.next,c=l.next;else if((i=l)===c){s?s===1?h3(i=JYe(Xd(i),e,t),e,t,n,o,r,2):s===2&&WYe(i,e,t,n,o,r):h3(Xd(i),e,t,n,o,r,1);break}}}function qYe(i){var e=i.prev,t=i,n=i.next;if(jn(e,t,n)>=0)return!1;for(var o=e.x,r=t.x,s=n.x,a=e.y,l=t.y,c=n.y,u=o<r?o<s?o:s:r<s?r:s,d=a<l?a<c?a:c:l<c?l:c,h=o>r?o>s?o:s:r>s?r:s,p=a>l?a>c?a:c:l>c?l:c,A=n.next;A!==e;){if(A.x>=u&&A.x<=h&&A.y>=d&&A.y<=p&&Qp(o,a,r,l,s,c,A.x,A.y)&&jn(A.prev,A,A.next)>=0)return!1;A=A.next}return!0}function KYe(i,e,t,n){var o=i.prev,r=i,s=i.next;if(jn(o,r,s)>=0)return!1;for(var a=o.x,l=r.x,c=s.x,u=o.y,d=r.y,h=s.y,p=a<l?a<c?a:c:l<c?l:c,A=u<d?u<h?u:h:d<h?d:h,f=a>l?a>c?a:c:l>c?l:c,g=u>d?u>h?u:h:d>h?d:h,m=EE(p,A,e,t,n),v=EE(f,g,e,t,n),y=i.prevZ,w=i.nextZ;y&&y.z>=m&&w&&w.z<=v;){if(y.x>=p&&y.x<=f&&y.y>=A&&y.y<=g&&y!==o&&y!==s&&Qp(a,u,l,d,c,h,y.x,y.y)&&jn(y.prev,y,y.next)>=0||(y=y.prevZ,w.x>=p&&w.x<=f&&w.y>=A&&w.y<=g&&w!==o&&w!==s&&Qp(a,u,l,d,c,h,w.x,w.y)&&jn(w.prev,w,w.next)>=0))return!1;w=w.nextZ}for(;y&&y.z>=m;){if(y.x>=p&&y.x<=f&&y.y>=A&&y.y<=g&&y!==o&&y!==s&&Qp(a,u,l,d,c,h,y.x,y.y)&&jn(y.prev,y,y.next)>=0)return!1;y=y.prevZ}for(;w&&w.z<=v;){if(w.x>=p&&w.x<=f&&w.y>=A&&w.y<=g&&w!==o&&w!==s&&Qp(a,u,l,d,c,h,w.x,w.y)&&jn(w.prev,w,w.next)>=0)return!1;w=w.nextZ}return!0}function JYe(i,e,t){var n=i;do{var o=n.prev,r=n.next.next;!O6(o,r)&&IQ(o,n,n.next,r)&&p3(o,r)&&p3(r,o)&&(e.push(o.i/t|0),e.push(n.i/t|0),e.push(r.i/t|0),f3(n),f3(n.next),n=i=r),n=n.next}while(n!==i);return Xd(n)}function WYe(i,e,t,n,o,r){var s=i;do{for(var a=s.next.next;a!==s.prev;){if(s.i!==a.i&&eXe(s,a)){var l=SQ(s,a);return s=Xd(s,s.next),l=Xd(l,l.next),h3(s,e,t,n,o,r,0),void h3(l,e,t,n,o,r,0)}a=a.next}s=s.next}while(s!==i)}function ZYe(i,e){return i.x-e.x}function YYe(i,e){var t=(function(o,r){var s,a=r,l=o.x,c=o.y,u=-1/0;do{if(c<=a.y&&c>=a.next.y&&a.next.y!==a.y){var d=a.x+(c-a.y)*(a.next.x-a.x)/(a.next.y-a.y);if(d<=l&&d>u&&(u=d,s=a.x<a.next.x?a:a.next,d===l))return s}a=a.next}while(a!==r);if(!s)return null;var h,p=s,A=s.x,f=s.y,g=1/0;a=s;do l>=a.x&&a.x>=A&&l!==a.x&&Qp(c<f?l:u,c,A,f,c<f?u:l,c,a.x,a.y)&&(h=Math.abs(c-a.y)/(l-a.x),p3(a,o)&&(h<g||h===g&&(a.x>s.x||a.x===s.x&&XYe(s,a)))&&(s=a,g=h)),a=a.next;while(a!==p);return s})(i,e);if(!t)return e;var n=SQ(t,i);return Xd(n,n.next),Xd(t,t.next)}function XYe(i,e){return jn(i.prev,i,e.prev)<0&&jn(e.next,i,i.next)<0}function EE(i,e,t,n,o){return(i=1431655765&((i=858993459&((i=252645135&((i=16711935&((i=(i-t)*o|0)|i<<8))|i<<4))|i<<2))|i<<1))|(e=1431655765&((e=858993459&((e=252645135&((e=16711935&((e=(e-n)*o|0)|e<<8))|e<<4))|e<<2))|e<<1))<<1}function $Ye(i){var e=i,t=i;do(e.x<t.x||e.x===t.x&&e.y<t.y)&&(t=e),e=e.next;while(e!==i);return t}function Qp(i,e,t,n,o,r,s,a){return(o-s)*(e-a)>=(i-s)*(r-a)&&(i-s)*(n-a)>=(t-s)*(e-a)&&(t-s)*(r-a)>=(o-s)*(n-a)}function eXe(i,e){return i.next.i!==e.i&&i.prev.i!==e.i&&!(function(t,n){var o=t;do{if(o.i!==t.i&&o.next.i!==t.i&&o.i!==n.i&&o.next.i!==n.i&&IQ(o,o.next,t,n))return!0;o=o.next}while(o!==t);return!1})(i,e)&&(p3(i,e)&&p3(e,i)&&(function(t,n){var o=t,r=!1,s=(t.x+n.x)/2,a=(t.y+n.y)/2;do o.y>a!=o.next.y>a&&o.next.y!==o.y&&s<(o.next.x-o.x)*(a-o.y)/(o.next.y-o.y)+o.x&&(r=!r),o=o.next;while(o!==t);return r})(i,e)&&(jn(i.prev,i,e.prev)||jn(i,e.prev,e))||O6(i,e)&&jn(i.prev,i,i.next)>0&&jn(e.prev,e,e.next)>0)}function jn(i,e,t){return(e.y-i.y)*(t.x-e.x)-(e.x-i.x)*(t.y-e.y)}function O6(i,e){return i.x===e.x&&i.y===e.y}function IQ(i,e,t,n){var o=U6(jn(i,e,t)),r=U6(jn(i,e,n)),s=U6(jn(t,n,i)),a=U6(jn(t,n,e));return!!(o!==r&&s!==a||o===0&&N6(i,t,e)||r===0&&N6(i,n,e)||s===0&&N6(t,i,n)||a===0&&N6(t,e,n))}function N6(i,e,t){return e.x<=Math.max(i.x,t.x)&&e.x>=Math.min(i.x,t.x)&&e.y<=Math.max(i.y,t.y)&&e.y>=Math.min(i.y,t.y)}function U6(i){return i>0?1:i<0?-1:0}function p3(i,e){return jn(i.prev,i,i.next)<0?jn(i,e,i.next)>=0&&jn(i,i.prev,e)>=0:jn(i,e,i.prev)<0||jn(i,i.next,e)<0}function SQ(i,e){var t=new BE(i.i,i.x,i.y),n=new BE(e.i,e.x,e.y),o=i.next,r=e.prev;return i.next=e,e.prev=i,t.next=o,o.prev=t,n.next=t,t.prev=n,r.next=n,n.prev=r,n}function PQ(i,e,t,n){var o=new BE(i,e,t);return n?(o.next=n.next,o.prev=n,n.next.prev=o,n.next=o):(o.prev=o,o.next=o),o}function f3(i){i.next.prev=i.prev,i.prev.next=i.next,i.prevZ&&(i.prevZ.nextZ=i.nextZ),i.nextZ&&(i.nextZ.prevZ=i.prevZ)}function BE(i,e,t){this.i=i,this.x=e,this.y=t,this.prev=null,this.next=null,this.z=0,this.prevZ=null,this.nextZ=null,this.steiner=!1}function IE(i,e,t,n){for(var o=0,r=e,s=t-n;r<t;r+=n)o+=(i[s]-i[r])*(i[r+1]+i[s+1]),s=r;return o}ME.exports=F6,ME.exports.default=F6,F6.deviation=function(i,e,t,n){var o=e&&e.length,r=o?e[0]*t:i.length,s=Math.abs(IE(i,0,r,t));if(o)for(var a=0,l=e.length;a<l;a++){var c=e[a]*t,u=a<l-1?e[a+1]*t:i.length;s-=Math.abs(IE(i,c,u,t))}var d=0;for(a=0;a<n.length;a+=3){var h=n[a]*t,p=n[a+1]*t,A=n[a+2]*t;d+=Math.abs((i[h]-i[A])*(i[p+1]-i[h+1])-(i[h]-i[p])*(i[A+1]-i[h+1]))}return s===0&&d===0?0:Math.abs((d-s)/s)},F6.flatten=function(i){for(var e=i[0][0].length,t={vertices:[],holes:[],dimensions:e},n=0,o=0;o<i.length;o++){for(var r=0;r<i[o].length;r++)for(var s=0;s<e;s++)t.vertices.push(i[o][r][s]);o>0&&(n+=i[o-1].length,t.holes.push(n))}return t};const SE=MQ(ME.exports);var A3,V6,PE={exports:{}};A3=PE,V6=PE.exports,(function(i){var e=V6&&!V6.nodeType&&V6,t=A3&&!A3.nodeType&&A3,n=typeof xE=="object"&&xE;(n.global===n||n.window===n||n.self===n)&&(i=n);var o,r,s=2147483647,a=36,l=1,c=26,u=38,d=700,h=72,p=128,A="-",f=/^xn--/,g=/[^\x20-\x7E]/,m=/[\x2E\u3002\uFF0E\uFF61]/g,v={overflow:"Overflow: input needs wider integers to process","not-basic":"Illegal input >= 0x80 (not a basic code point)","invalid-input":"Invalid input"},y=a-l,w=Math.floor,x=String.fromCharCode;function M(j){throw RangeError(v[j])}function B(j,W){for(var J=j.length,$=[];J--;)$[J]=W(j[J]);return $}function S(j,W){var J=j.split("@"),$="";return J.length>1&&($=J[0]+"@",j=J[1]),$+B((j=j.replace(m,".")).split("."),W).join(".")}function I(j){for(var W,J,$=[],ue=0,Ee=j.length;ue<Ee;)(W=j.charCodeAt(ue++))>=55296&&W<=56319&&ue<Ee?(64512&(J=j.charCodeAt(ue++)))==56320?$.push(((1023&W)<<10)+(1023&J)+65536):($.push(W),ue--):$.push(W);return $}function R(j){return B(j,(function(W){var J="";return W>65535&&(J+=x((W-=65536)>>>10&1023|55296),W=56320|1023&W),J+=x(W)})).join("")}function T(j){return j-48<10?j-22:j-65<26?j-65:j-97<26?j-97:a}function D(j,W){return j+22+75*(j<26)-((W!=0)<<5)}function F(j,W,J){var $=0;for(j=J?w(j/d):j>>1,j+=w(j/W);j>y*c>>1;$+=a)j=w(j/y);return w($+(y+1)*j/(j+u))}function N(j){var W,J,$,ue,Ee,Be,ze,Qe,me,_e,De=[],ve=j.length,ge=0,Ie=p,Ne=h;for((J=j.lastIndexOf(A))<0&&(J=0),$=0;$<J;++$)j.charCodeAt($)>=128&&M("not-basic"),De.push(j.charCodeAt($));for(ue=J>0?J+1:0;ue<ve;){for(Ee=ge,Be=1,ze=a;ue>=ve&&M("invalid-input"),((Qe=T(j.charCodeAt(ue++)))>=a||Qe>w((s-ge)/Be))&&M("overflow"),ge+=Qe*Be,!(Qe<(me=ze<=Ne?l:ze>=Ne+c?c:ze-Ne));ze+=a)Be>w(s/(_e=a-me))&&M("overflow"),Be*=_e;Ne=F(ge-Ee,W=De.length+1,Ee==0),w(ge/W)>s-Ie&&M("overflow"),Ie+=w(ge/W),ge%=W,De.splice(ge++,0,Ie)}return R(De)}function z(j){var W,J,$,ue,Ee,Be,ze,Qe,me,_e,De,ve,ge,Ie,Ne,qe=[];for(ve=(j=I(j)).length,W=p,J=0,Ee=h,Be=0;Be<ve;++Be)(De=j[Be])<128&&qe.push(x(De));for($=ue=qe.length,ue&&qe.push(A);$<ve;){for(ze=s,Be=0;Be<ve;++Be)(De=j[Be])>=W&&De<ze&&(ze=De);for(ze-W>w((s-J)/(ge=$+1))&&M("overflow"),J+=(ze-W)*ge,W=ze,Be=0;Be<ve;++Be)if((De=j[Be])<W&&++J>s&&M("overflow"),De==W){for(Qe=J,me=a;!(Qe<(_e=me<=Ee?l:me>=Ee+c?c:me-Ee));me+=a)Ne=Qe-_e,Ie=a-_e,qe.push(x(D(_e+Ne%Ie,0))),Qe=w(Ne/Ie);qe.push(x(D(Qe,0))),Ee=F(J,ge,$==ue),J=0,++$}++J,++W}return qe.join("")}if(o={version:"1.3.2",ucs2:{decode:I,encode:R},decode:N,encode:z,toASCII:function(j){return S(j,(function(W){return g.test(W)?"xn--"+z(W):W}))},toUnicode:function(j){return S(j,(function(W){return f.test(W)?N(W.slice(4).toLowerCase()):W}))}},e&&t)if(A3.exports==e)t.exports=o;else for(r in o)o.hasOwnProperty(r)&&(e[r]=o[r]);else i.punycode=o})(xE);var tXe=PE.exports,m3={};function iXe(i,e){return Object.prototype.hasOwnProperty.call(i,e)}var g3=function(i){switch(typeof i){case"string":return i;case"boolean":return i?"true":"false";case"number":return isFinite(i)?i:"";default:return""}};m3.decode=m3.parse=function(i,e,t,n){e=e||"&",t=t||"=";var o={};if(typeof i!="string"||i.length===0)return o;var r=/\+/g;i=i.split(e);var s=1e3;n&&typeof n.maxKeys=="number"&&(s=n.maxKeys);var a=i.length;s>0&&a>s&&(a=s);for(var l=0;l<a;++l){var c,u,d,h,p=i[l].replace(r,"%20"),A=p.indexOf(t);A>=0?(c=p.substr(0,A),u=p.substr(A+1)):(c=p,u=""),d=decodeURIComponent(c),h=decodeURIComponent(u),iXe(o,d)?Array.isArray(o[d])?o[d].push(h):o[d]=[o[d],h]:o[d]=h}return o},m3.encode=m3.stringify=function(i,e,t,n){return e=e||"&",t=t||"=",i===null&&(i=void 0),typeof i=="object"?Object.keys(i).map((function(o){var r=encodeURIComponent(g3(o))+t;return Array.isArray(i[o])?i[o].map((function(s){return r+encodeURIComponent(g3(s))})).join(e):r+encodeURIComponent(g3(i[o]))})).join(e):n?encodeURIComponent(g3(n))+t+encodeURIComponent(g3(i)):""};var nXe=tXe,sl={isString:function(i){return typeof i=="string"},isObject:function(i){return typeof i=="object"&&i!==null},isNull:function(i){return i===null},isNullOrUndefined:function(i){return i==null}},oXe=H6,sXe=function(i,e){return H6(i,!1,!0).resolve(e)},rXe=function(i){return sl.isString(i)&&(i=H6(i)),i instanceof ma?i.format():ma.prototype.format.call(i)};function ma(){this.protocol=null,this.slashes=null,this.auth=null,this.host=null,this.port=null,this.hostname=null,this.hash=null,this.search=null,this.query=null,this.pathname=null,this.path=null,this.href=null}var aXe=/^([a-z0-9.+-]+:)/i,lXe=/:[0-9]*$/,cXe=/^(\/\/?(?!\/)[^\?\s]*)(\?[^\s]*)?$/,uXe=["{","}","|","\\","^","`"].concat(["<",">",'"',"`"," ","\r",`
|
|
45
45
|
`," "]),TE=["'"].concat(uXe),TQ=["%","/","?",";","#"].concat(TE),kQ=["/","?","#"],RQ=/^[+a-z0-9A-Z_-]{0,63}$/,dXe=/^([+a-z0-9A-Z_-]{0,63})(.*)$/,hXe={javascript:!0,"javascript:":!0},kE={javascript:!0,"javascript:":!0},qp={http:!0,https:!0,ftp:!0,gopher:!0,file:!0,"http:":!0,"https:":!0,"ftp:":!0,"gopher:":!0,"file:":!0},RE=m3;function H6(i,e,t){if(i&&sl.isObject(i)&&i instanceof ma)return i;var n=new ma;return n.parse(i,e,t),n}ma.prototype.parse=function(i,e,t){if(!sl.isString(i))throw new TypeError("Parameter 'url' must be a string, not "+typeof i);var n=i.indexOf("?"),o=n!==-1&&n<i.indexOf("#")?"?":"#",r=i.split(o);r[0]=r[0].replace(/\\/g,"/");var s=i=r.join(o);if(s=s.trim(),!t&&i.split("#").length===1){var a=cXe.exec(s);if(a)return this.path=s,this.href=s,this.pathname=a[1],a[2]?(this.search=a[2],this.query=e?RE.parse(this.search.substr(1)):this.search.substr(1)):e&&(this.search="",this.query={}),this}var l=aXe.exec(s);if(l){var c=(l=l[0]).toLowerCase();this.protocol=c,s=s.substr(l.length)}if(t||l||s.match(/^\/\/[^@\/]+@[^@\/]+/)){var u=s.substr(0,2)==="//";u&&(!l||!kE[l])&&(s=s.substr(2),this.slashes=!0)}if(!kE[l]&&(u||l&&!qp[l])){for(var d=-1,h=0;h<kQ.length;h++)(f=s.indexOf(kQ[h]))!==-1&&(d===-1||f<d)&&(d=f);var p,A;for((A=d===-1?s.lastIndexOf("@"):s.lastIndexOf("@",d))!==-1&&(p=s.slice(0,A),s=s.slice(A+1),this.auth=decodeURIComponent(p)),d=-1,h=0;h<TQ.length;h++){var f;(f=s.indexOf(TQ[h]))!==-1&&(d===-1||f<d)&&(d=f)}d===-1&&(d=s.length),this.host=s.slice(0,d),s=s.slice(d),this.parseHost(),this.hostname=this.hostname||"";var g=this.hostname[0]==="["&&this.hostname[this.hostname.length-1]==="]";if(!g)for(var m=this.hostname.split(/\./),v=(h=0,m.length);h<v;h++){var y=m[h];if(y&&!y.match(RQ)){for(var w="",x=0,M=y.length;x<M;x++)y.charCodeAt(x)>127?w+="x":w+=y[x];if(!w.match(RQ)){var B=m.slice(0,h),S=m.slice(h+1),I=y.match(dXe);I&&(B.push(I[1]),S.unshift(I[2])),S.length&&(s="/"+S.join(".")+s),this.hostname=B.join(".");break}}}this.hostname.length>255?this.hostname="":this.hostname=this.hostname.toLowerCase(),g||(this.hostname=nXe.toASCII(this.hostname));var R=this.port?":"+this.port:"",T=this.hostname||"";this.host=T+R,this.href+=this.host,g&&(this.hostname=this.hostname.substr(1,this.hostname.length-2),s[0]!=="/"&&(s="/"+s))}if(!hXe[c])for(h=0,v=TE.length;h<v;h++){var D=TE[h];if(s.indexOf(D)!==-1){var F=encodeURIComponent(D);F===D&&(F=escape(D)),s=s.split(D).join(F)}}var N=s.indexOf("#");N!==-1&&(this.hash=s.substr(N),s=s.slice(0,N));var z=s.indexOf("?");if(z!==-1?(this.search=s.substr(z),this.query=s.substr(z+1),e&&(this.query=RE.parse(this.query)),s=s.slice(0,z)):e&&(this.search="",this.query={}),s&&(this.pathname=s),qp[c]&&this.hostname&&!this.pathname&&(this.pathname="/"),this.pathname||this.search){R=this.pathname||"";var j=this.search||"";this.path=R+j}return this.href=this.format(),this},ma.prototype.format=function(){var i=this.auth||"";i&&(i=(i=encodeURIComponent(i)).replace(/%3A/i,":"),i+="@");var e=this.protocol||"",t=this.pathname||"",n=this.hash||"",o=!1,r="";this.host?o=i+this.host:this.hostname&&(o=i+(this.hostname.indexOf(":")===-1?this.hostname:"["+this.hostname+"]"),this.port&&(o+=":"+this.port)),this.query&&sl.isObject(this.query)&&Object.keys(this.query).length&&(r=RE.stringify(this.query));var s=this.search||r&&"?"+r||"";return e&&e.substr(-1)!==":"&&(e+=":"),this.slashes||(!e||qp[e])&&o!==!1?(o="//"+(o||""),t&&t.charAt(0)!=="/"&&(t="/"+t)):o||(o=""),n&&n.charAt(0)!=="#"&&(n="#"+n),s&&s.charAt(0)!=="?"&&(s="?"+s),e+o+(t=t.replace(/[?#]/g,(function(a){return encodeURIComponent(a)})))+(s=s.replace("#","%23"))+n},ma.prototype.resolve=function(i){return this.resolveObject(H6(i,!1,!0)).format()},ma.prototype.resolveObject=function(i){if(sl.isString(i)){var e=new ma;e.parse(i,!1,!0),i=e}for(var t=new ma,n=Object.keys(this),o=0;o<n.length;o++){var r=n[o];t[r]=this[r]}if(t.hash=i.hash,i.href==="")return t.href=t.format(),t;if(i.slashes&&!i.protocol){for(var s=Object.keys(i),a=0;a<s.length;a++){var l=s[a];l!=="protocol"&&(t[l]=i[l])}return qp[t.protocol]&&t.hostname&&!t.pathname&&(t.path=t.pathname="/"),t.href=t.format(),t}if(i.protocol&&i.protocol!==t.protocol){if(!qp[i.protocol]){for(var c=Object.keys(i),u=0;u<c.length;u++){var d=c[u];t[d]=i[d]}return t.href=t.format(),t}if(t.protocol=i.protocol,i.host||kE[i.protocol])t.pathname=i.pathname;else{for(var h=(i.pathname||"").split("/");h.length&&!(i.host=h.shift()););i.host||(i.host=""),i.hostname||(i.hostname=""),h[0]!==""&&h.unshift(""),h.length<2&&h.unshift(""),t.pathname=h.join("/")}if(t.search=i.search,t.query=i.query,t.host=i.host||"",t.auth=i.auth,t.hostname=i.hostname||i.host,t.port=i.port,t.pathname||t.search){var p=t.pathname||"",A=t.search||"";t.path=p+A}return t.slashes=t.slashes||i.slashes,t.href=t.format(),t}var f=t.pathname&&t.pathname.charAt(0)==="/",g=i.host||i.pathname&&i.pathname.charAt(0)==="/",m=g||f||t.host&&i.pathname,v=m,y=t.pathname&&t.pathname.split("/")||[],w=(h=i.pathname&&i.pathname.split("/")||[],t.protocol&&!qp[t.protocol]);if(w&&(t.hostname="",t.port=null,t.host&&(y[0]===""?y[0]=t.host:y.unshift(t.host)),t.host="",i.protocol&&(i.hostname=null,i.port=null,i.host&&(h[0]===""?h[0]=i.host:h.unshift(i.host)),i.host=null),m=m&&(h[0]===""||y[0]==="")),g)t.host=i.host||i.host===""?i.host:t.host,t.hostname=i.hostname||i.hostname===""?i.hostname:t.hostname,t.search=i.search,t.query=i.query,y=h;else if(h.length)y||(y=[]),y.pop(),y=y.concat(h),t.search=i.search,t.query=i.query;else if(!sl.isNullOrUndefined(i.search))return w&&(t.hostname=t.host=y.shift(),(I=!!(t.host&&t.host.indexOf("@")>0)&&t.host.split("@"))&&(t.auth=I.shift(),t.host=t.hostname=I.shift())),t.search=i.search,t.query=i.query,(!sl.isNull(t.pathname)||!sl.isNull(t.search))&&(t.path=(t.pathname?t.pathname:"")+(t.search?t.search:"")),t.href=t.format(),t;if(!y.length)return t.pathname=null,t.search?t.path="/"+t.search:t.path=null,t.href=t.format(),t;for(var x=y.slice(-1)[0],M=(t.host||i.host||y.length>1)&&(x==="."||x==="..")||x==="",B=0,S=y.length;S>=0;S--)(x=y[S])==="."?y.splice(S,1):x===".."?(y.splice(S,1),B++):B&&(y.splice(S,1),B--);if(!m&&!v)for(;B--;B)y.unshift("..");m&&y[0]!==""&&(!y[0]||y[0].charAt(0)!=="/")&&y.unshift(""),M&&y.join("/").substr(-1)!=="/"&&y.push("");var I,R=y[0]===""||y[0]&&y[0].charAt(0)==="/";return w&&(t.hostname=t.host=R?"":y.length?y.shift():"",(I=!!(t.host&&t.host.indexOf("@")>0)&&t.host.split("@"))&&(t.auth=I.shift(),t.host=t.hostname=I.shift())),(m=m||t.host&&y.length)&&!R&&y.unshift(""),y.length?t.pathname=y.join("/"):(t.pathname=null,t.path=null),(!sl.isNull(t.pathname)||!sl.isNull(t.search))&&(t.path=(t.pathname?t.pathname:"")+(t.search?t.search:"")),t.auth=i.auth||t.auth,t.slashes=t.slashes||i.slashes,t.href=t.format(),t},ma.prototype.parseHost=function(){var i=this.host,e=lXe.exec(i);e&&((e=e[0])!==":"&&(this.port=e.substr(1)),i=i.substr(0,i.length-e.length)),i&&(this.hostname=i)};const _Q={parse:oXe,format:rXe,resolve:sXe};function ga(i){if(typeof i!="string")throw new TypeError(`Path must be a string. Received ${JSON.stringify(i)}`)}function DQ(i){return i.split("?")[0].split("#")[0]}const LQ={toPosix:i=>(function(e,t,n){return e.replace(new RegExp((function(o){return o.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")})(t),"g"),n)})(i,"\\","/"),isUrl(i){return/^https?:/.test(this.toPosix(i))},isDataUrl:i=>/^data:([a-z]+\/[a-z0-9-+.]+(;[a-z0-9-.!#$%*+.{}|~`]+=[a-z0-9-.!#$%*+.{}()_|~`]+)*)?(;base64)?,([a-z0-9!$&',()*+;=\-._~:@\/?%\s<>]*?)$/i.test(i),hasProtocol(i){return/^[^/:]+:\//.test(this.toPosix(i))},getProtocol(i){ga(i),i=this.toPosix(i);let e="";const t=/^file:\/\/\//.exec(i),n=/^[^/:]+:\/\//.exec(i),o=/^[^/:]+:\//.exec(i);if(t||n||o){const r=t?.[0]||n?.[0]||o?.[0];e=r,i=i.slice(r.length)}return e},toAbsolute(i,e,t){if(this.isDataUrl(i))return i;const n=DQ(this.toPosix(e??Ht.ADAPTER.getBaseUrl())),o=DQ(this.toPosix(t??this.rootname(n)));return ga(i),(i=this.toPosix(i)).startsWith("/")?LQ.join(o,i.slice(1)):this.isAbsolute(i)?i:this.join(n,i)},normalize(i){if(ga(i=this.toPosix(i)),i.length===0)return".";let e="";const t=i.startsWith("/");this.hasProtocol(i)&&(e=this.rootname(i),i=i.slice(e.length));const n=i.endsWith("/");return i=(function(o,r){let s,a="",l=0,c=-1,u=0;for(let d=0;d<=o.length;++d){if(d<o.length)s=o.charCodeAt(d);else{if(s===47)break;s=47}if(s===47){if(c!==d-1&&u!==1)if(c!==d-1&&u===2){if(a.length<2||l!==2||a.charCodeAt(a.length-1)!==46||a.charCodeAt(a.length-2)!==46){if(a.length>2){const h=a.lastIndexOf("/");if(h!==a.length-1){h===-1?(a="",l=0):(a=a.slice(0,h),l=a.length-1-a.lastIndexOf("/")),c=d,u=0;continue}}else if(a.length===2||a.length===1){a="",l=0,c=d,u=0;continue}}}else a.length>0?a+=`/${o.slice(c+1,d)}`:a=o.slice(c+1,d),l=d-c-1;c=d,u=0}else s===46&&u!==-1?++u:u=-1}return a})(i),i.length>0&&n&&(i+="/"),t?`/${i}`:e+i},isAbsolute(i){return ga(i),i=this.toPosix(i),!!this.hasProtocol(i)||i.startsWith("/")},join(...i){if(i.length===0)return".";let e;for(let t=0;t<i.length;++t){const n=i[t];if(ga(n),n.length>0)if(e===void 0)e=n;else{const o=i[t-1]??"";this.extname(o)?e+=`/../${n}`:e+=`/${n}`}}return e===void 0?".":this.normalize(e)},dirname(i){if(ga(i),i.length===0)return".";let e=(i=this.toPosix(i)).charCodeAt(0);const t=e===47;let n=-1,o=!0;const r=this.getProtocol(i),s=i;for(let a=(i=i.slice(r.length)).length-1;a>=1;--a)if(e=i.charCodeAt(a),e===47){if(!o){n=a;break}}else o=!1;return n===-1?t?"/":this.isUrl(s)?r+i:r:t&&n===1?"//":r+i.slice(0,n)},rootname(i){ga(i);let e="";if(e=(i=this.toPosix(i)).startsWith("/")?"/":this.getProtocol(i),this.isUrl(i)){const t=i.indexOf("/",e.length);e=t!==-1?i.slice(0,t):i,e.endsWith("/")||(e+="/")}return e},basename(i,e){ga(i),e&&ga(e),i=this.toPosix(i);let t,n=0,o=-1,r=!0;if(e!==void 0&&e.length>0&&e.length<=i.length){if(e.length===i.length&&e===i)return"";let s=e.length-1,a=-1;for(t=i.length-1;t>=0;--t){const l=i.charCodeAt(t);if(l===47){if(!r){n=t+1;break}}else a===-1&&(r=!1,a=t+1),s>=0&&(l===e.charCodeAt(s)?--s==-1&&(o=t):(s=-1,o=a))}return n===o?o=a:o===-1&&(o=i.length),i.slice(n,o)}for(t=i.length-1;t>=0;--t)if(i.charCodeAt(t)===47){if(!r){n=t+1;break}}else o===-1&&(r=!1,o=t+1);return o===-1?"":i.slice(n,o)},extname(i){ga(i);let e=-1,t=0,n=-1,o=!0,r=0;for(let s=(i=this.toPosix(i)).length-1;s>=0;--s){const a=i.charCodeAt(s);if(a!==47)n===-1&&(o=!1,n=s+1),a===46?e===-1?e=s:r!==1&&(r=1):e!==-1&&(r=-1);else if(!o){t=s+1;break}}return e===-1||n===-1||r===0||r===1&&e===n-1&&e===t+1?"":i.slice(e,n)},parse(i){ga(i);const e={root:"",dir:"",base:"",ext:"",name:""};if(i.length===0)return e;let t=(i=this.toPosix(i)).charCodeAt(0);const n=this.isAbsolute(i);let o;e.root=this.rootname(i),o=n||this.hasProtocol(i)?1:0;let r=-1,s=0,a=-1,l=!0,c=i.length-1,u=0;for(;c>=o;--c)if(t=i.charCodeAt(c),t!==47)a===-1&&(l=!1,a=c+1),t===46?r===-1?r=c:u!==1&&(u=1):r!==-1&&(u=-1);else if(!l){s=c+1;break}return r===-1||a===-1||u===0||u===1&&r===a-1&&r===s+1?a!==-1&&(e.base=e.name=s===0&&n?i.slice(1,a):i.slice(s,a)):(s===0&&n?(e.name=i.slice(1,r),e.base=i.slice(1,a)):(e.name=i.slice(s,r),e.base=i.slice(s,a)),e.ext=i.slice(r,a)),e.dir=this.dirname(i),e},sep:"/",delimiter:":"};Ht.RETINA_PREFIX=/@([0-9\.]+)x/,Ht.FAIL_IF_MAJOR_PERFORMANCE_CAVEAT=!1;const FQ={};function Bs(i,e,t=3){if(FQ[e])return;let n=new Error().stack;typeof n>"u"?console.warn("PixiJS Deprecation Warning: ",`${e}
|
|
46
46
|
Deprecated since v${i}`):(n=n.split(`
|
|
47
47
|
`).splice(t).join(`
|
|
@@ -6437,5 +6437,5 @@ void main() {
|
|
|
6437
6437
|
--bimdata-local-context-width: ${n.width}px;
|
|
6438
6438
|
--bimdata-local-context-center-width: ${n.centerWidth}px;
|
|
6439
6439
|
--bimdata-local-context-resolution: ${n.resolution};
|
|
6440
|
-
`),onMouseenter:e[0]||(e[0]=(...h)=>n.onMouseEnter&&n.onMouseEnter(...h)),onMouseleave:e[1]||(e[1]=(...h)=>n.onMouseLeave&&n.onMouseLeave(...h))},[k(s,{ref:"modalManagerTemplateRef"},null,512),C("div",Rii,[n.windowPlugins.leftSidePanel?(E(),K(a,{key:0,plugin:n.windowPlugins.leftSidePanel},null,8,["plugin"])):te("",!0),C("div",_ii,[(E(!0),L($e,null,Mt(n.windowPlugins.free,h=>(E(),K(l,{key:h.name,class:ce({"window-container__content__center__viewer":h.isViewer}),plugin:h},null,8,["class","plugin"]))),128)),k(c,{position:"left",plugins:n.windowPlugins.leftButtonColumn},null,8,["plugins"]),k(c,{position:"right",plugins:n.windowPlugins.rightButtonColumn},null,8,["plugins"])]),n.windowPlugins.rightSidePanel?(E(),K(a,{key:1,plugin:n.windowPlugins.rightSidePanel},null,8,["plugin"])):te("",!0)]),n.loading?(E(),L("div",Dii,[n.spinner&&n.spinner.component?(E(),K(yn(n.spinner.component),Rr(Es({key:0},n.spinner.props)),null,16)):(E(),K(u,{key:1,size:"20px",border:"3px"}))])):te("",!0),n.layoutSettingsDisplayed?(E(),L("div",Lii,[k(d)])):te("",!0)],36)}const Oii=V(kii,[["render",Fii],["__scopeId","data-v-485f288e"]]);class Nii{constructor(e=!0){const t=Sti(lj,null,{resizable:e});t.registerContent("default",Oii),this.settings=Ao({edit:!1,swap:!1,full:!1}),this.areas=t}get resizable(){return this.areas.resizable}set resizable(e){this.areas.resizable=e}apply(e=null){this.areas.layout=e?Pti(e):null}copy(e,t=!0){return Tti(this.areas.layout,e,t)}open({ratio:e,direction:t,insertAfter:n,windowName:o=null,windowState:r=null,localContextId:s=null}={}){const a=o?{options:{windowName:o,windowState:r}}:null;return s===null?this.areas.splitLayout(e,t,n,a):this.areas.split(s,e,t,n,a)}swap(e,t){return this.areas.swap(e,t)}close(e){return this.areas.delete(e)}compare(e,t){if(!e&&!t)return!0;if(!e||!t)return!1;if(typeof e=="string"&&typeof t=="string")return e===t;if(typeof e=="string"||typeof t=="string")return!1;if(e.windowName&&t.windowName){if(e.windowName!==t.windowName)return!1;const n=new Set(e.windowState?.modelIds),o=new Set(t.windowState?.modelIds);return n.size===o.size&&[...n].every(s=>o.has(s))}return e.windowName||t.windowName||e.direction!==t.direction||e.children.length!==t.children.length?!1:e.children.every((n,o)=>this.compare(n,t.children[o]))}}const Uii={version:"2.17.0-beta.1"};let Vii=1;class Hii{math=Let;constructor({plugins:e,api:t,ui:n,locale:o="fr"}){this.instanceId=Vii++,this.pluginManager=new ZYt(e),this.windowManager=new XYt,this.windowManager.registerAndAddPluginsToWindows([...this.pluginManager.registeredPlugins.values()]),this.api=new Dei(t),this.globalContext=new R6e(this),this.state=Kei(this),this.shortcutManager=gge(this.state),this.uiSettings=n||{},this.i18n=new T6e(o),this._contextMenu=null,this.layout=new Nii(this.uiSettings.resizable!==!1),this._darkTheme=se(n?.darkTheme??!1),this.localContext=null,window.$viewer=this}get darkTheme(){return this._darkTheme.value}set darkTheme(e){this._darkTheme.value=e}get version(){return Uii.version}get locale(){return this.i18n.locale}get contextMenu(){return this._contextMenu||Age}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 zii(i,e={}){e.backgroundColor&&(i.style.setProperty("--bimdata-viewer-background-color",e.backgroundColor),e.backgroundColor==="transparent"&&i.style.setProperty("--areas-separator-color","transparent")),e.colorPrimary&&i.style.setProperty("--color-primary",e.colorPrimary),e.colorPrimaryLighter&&i.style.setProperty("--color-primary-lighter",e.colorPrimaryLighter),e.colorPrimaryLight&&i.style.setProperty("--color-primary-light",e.colorPrimaryLight),e.colorPrimaryDark&&i.style.setProperty("--color-primary-dark",e.colorPrimaryDark),e.colorSecondary&&i.style.setProperty("--color-secondary",e.colorSecondary),e.colorSecondaryLighter&&i.style.setProperty("--color-secondary-lighter",e.colorSecondaryLighter),e.colorSecondaryLight&&i.style.setProperty("--color-secondary-light",e.colorSecondaryLight),e.colorSecondaryDark&&i.style.setProperty("--color-secondary-dark",e.colorSecondaryDark),e.colorSilverLight&&i.style.setProperty("--color-silver-light",e.colorSilverLight),e.colorSilver&&i.style.setProperty("--color-silver",e.colorSilver),e.colorSilverDark&&i.style.setProperty("--color-silver-dark",e.colorSilverDark),e.colorGraniteLight&&i.style.setProperty("--color-granite-light",e.colorGraniteLight),e.colorGranite&&i.style.setProperty("--color-granite",e.colorGranite),e.colorSuccess&&i.style.setProperty("--color-success",e.colorSuccess),e.colorSuccessLighter&&i.style.setProperty("--color-success-Lighter",e.colorSuccessLighter),e.colorSuccessLight&&i.style.setProperty("--color-success-Light",e.colorSuccessLight),e.colorSuccessDark&&i.style.setProperty("--color-success-Dark",e.colorSuccessDark),e.colorWarning&&i.style.setProperty("--color-warning",e.colorWarning),e.colorWarningLighter&&i.style.setProperty("--color-warning-Lighter",e.colorWarningLighter),e.colorWarningLight&&i.style.setProperty("--color-warning-Light",e.colorWarningLight),e.colorWarningDark&&i.style.setProperty("--color-warning-Dark",e.colorWarningDark),e.colorHigh&&i.style.setProperty("--color-high",e.colorHigh),e.colorHighLighter&&i.style.setProperty("--color-high-lighter",e.colorHighLighter),e.colorHighLight&&i.style.setProperty("--color-high-light",e.colorHighLight),e.colorHighDark&&i.style.setProperty("--color-high-dark",e.colorHighDark),e.colorText&&i.style.setProperty("--color-text",e.colorText),(!e.backgroundColor||e.backgroundColor!=="transparent")&&i.style.setProperty("--areas-separator-color","rgba(216, 216, 216, 1)"),e.headerHeight!=null&&i.style.setProperty("--bimdata-viewer-header-height",e.headerHeight),i.style.setProperty("--areas-background-color","transparent")}const jii=Object.freeze({25:"GUEST",50:"USER",100:"ADMIN"}),fg=Object.freeze({READ:"read",WRITE:"write"});function L2e(i){const e={};return i.forEach(t=>{const[n,o]=t.split(":");e[n]?e[n].push(o):e[n]=[o]}),e}const Gii={token_scopes:[],usable_scopes:[],user_role:25};function F2e(i=Gii){const e=L2e(i.token_scopes),t=L2e(i.usable_scopes);return{...dJ(i),tokenScopes:e,usableScopes:t,userRole:jii[i.user_role],user:i.user?dJ(i.user):null,hasBcfReadPermission:t.bcf?.includes(fg.READ)??!1,hasBcfWritePermission:t.bcf?.includes(fg.WRITE)??!1,hasModelReadPermission:t.model?.includes(fg.READ)??!1,hasModelWritePermission:t.model?.includes(fg.WRITE)??!1,hasDocReadPermission:t.document?.includes(fg.READ)??!1,hasDocWritePermission:t.document?.includes(fg.WRITE)??!1}}const Qii={de:{BcfComponents:{back:"Zurück",BcfFilters:{filtersButton:"Filter",filtersTitle:"Filter",priorityLabel:"Priorität",statusLabel:"Status",stageLabel:"Phase",assignedToLabel:"Zugewiesen an",creatorsLabel:"Erstellt von",tagsLabel:"Tags",resetButton:"Zurücksetzen",searchButton:"Suchen",undefined:"Nicht definiert",datePlaceholder:"Erstellungsdatum"},BcfSettings:{title:"BCF-Parameter",text:"Erstellen, füllen und listen Sie die BCF-Einstellungen auf, die Sie für dieses Projekt haben möchten.",validateButton:"Die BCF-Parameter anerkennen"},BcfStatistics:{emptyText:"Fügen Sie Fragen hinzu, um zugehörige Statistiken hier anzuzeigen.",issues:"Probleme",extension:{Priority:"Priorität",PriorityNotDefined:"Keine Priorität",PriorityTitle:"Prioritäten",Status:"Status",StatusNotDefined:"Kein Status",StatusTitle:"Status"}},BcfTopicCard:{priority:"Priorität",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ählen Sie eine Datei aus.",addObjectButton:"Objekt",addAnnotationButton:"Annotation",annotationButtonTooltip:"Zu diesem Thema gibt es derzeit keine Ansichten.",addPictureButton:"Fügen Sie ein Bild hinzu.",titlePlaceholder:"Titel *",titleErrorMessage:"Titel fehlt",typeLabel:"Typ",priorityLabel:"Priorität",statusLabel:"Status",stageLabel:"Phase",assignedToLabel:"Zugewiesen an",dueDateLabel:"Fälligkeitsdatum (TT.MM.JJJJ)",descriptionLabel:"Beschreibung",labelsLabel:"Tags",createButton:"Bestätigen",updateButton:"Änderungen übernehmen",modalText:"Sie sind dabei, die Bearbeitung der Ausgabe {Name} zu beenden, aber es gibt noch ungespeicherte Änderungen.",cancelButton:"Änderungen verwerfen",continueButton:"Änderungen fortsetzen",createTitle:"Ein Problem melden",dragDropImageTextTablet:"Foto machen",takeSnapshot:"Mach einen Schnappschuss",importFile:"Eine Datei importieren",searchPlaceholder:"Suchen",emptySearch:"kein Ergebnis",documentsLabel:"Dokumente",documentsCount:"Dokumente – {count} ausgewählte Dokumente",groupsLabel:"Berechtigungen",groupsCount:"Berechtigungen – {count} ausgewählte Gruppen",groupsText:"Wählen Sie die Benutzergruppen aus, die dieses Thema sehen und damit interagieren dürfen.",validate:"Bestätigen"},BcfTopicOverview:{openViewer:"Im Viewer öffnen",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älligkeitsdatum",noDueDate:"Kein Fälligkeitsdatum",informations:"Informationen",status:"Status",noStatusSpecified:"Kein Status angegeben",stage:"Phase",noStageProvided:"Keine Phase angegeben",priority:"Priorität",priorityNotDefined:"Nicht definiert",tags:"Tags",noTags:"Keine Tags",commentButton:"Ein Kommentar veröffentlichen",deleteText:"Sie löschen jetzt {Name}",deleteBcfButton:"Dieses BCF löschen",keepBcfButton:"Dieses BCF beibehalten",author:"Autor"},BcfTopicsTable:{headers:{index:"#",priority:"Priorität",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öffentlichen",commentsText:"Kommentare",deleteCommentText:"Diesen Kommentar löschen?",deleteButton:"Löschen",takeSnapshot:"Mach einen Schnappschuss",edited:"bearbeitet"},BcfTopicPriorityCell:{noPriority:"Keine"},SettingCard:{addButton:"ein Element hinzufügen",cancelButton:"Abbrechen",validateButton:"Bestätigen",deleteExtensionText:"Diesen Parameter löschen",deleteButton:"Löschen",title:{Priority:"Prioritäten",Label:"Tags",Status:"Status",Type:"Typen",Stage:"Phasen"},input:{Priority:"Eine neue Priorität hinzufügen",Label:"Ein neues Etikett hinzufügen",Status:"Einen neuen Status hinzufügen",Type:"Einen neuen Typ hinzufügen",Stage:"Eine neue Phase hinzufügen"},text:{Priority:"Liste der Prioritäten",Label:"Liste von Tags",Status:"Liste der Status",Type:"Liste der Typen",Stage:"Liste der Phasen"}}}},en:{BcfComponents:{back:"Back",BcfFilters:{filtersButton:"Filters",filtersTitle:"Filters",priorityLabel:"Priority",statusLabel:"Status",stageLabel:"Stage",assignedToLabel:"Assigned to",creatorsLabel:"Created by",tagsLabel:"Tags",resetButton:"Reset",searchButton:"Search",undefined:"Not defined",datePlaceholder:"Creation date"},BcfSettings:{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",documentsLabel:"Add a file",documentsCount:"Files - {count} selected files",groupsLabel:"Permissions",groupsCount:"Permissions - {count} selected groups",groupsText:"You are now setting the access rights: choose the user group(s) that will be exclusively authorized to see and interact with this topic.",validate:"Validate"},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",edited:"edited"},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"}}}},es:{BcfComponents:{back:"Volver",BcfFilters:{filtersButton:"Filtros",filtersTitle:"Filtros",priorityLabel:"Prioridad",statusLabel:"Estado",stageLabel:"Fase",assignedToLabel:"Asignado a",creatorsLabel:"Creado por",tagsLabel:"Etiquetas:",resetButton:"Restablecer",searchButton:"Buscar en",undefined:"No definido",datePlaceholder:"Fecha de creación"},BcfSettings:{title:"Parámetros del BCF",text:"Cree, rellene y enumere los parámetros del BCF que desea tener en este proyecto",validateButton:"Validar los parámetros del BCF"},BcfStatistics:{emptyText:"Añada preguntas para ver las estadísticas asociadas aquí.",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ón",annotationButtonTooltip:"Actualmente este tema no posee ningún punto de vista",addPictureButton:"Añadir una imagen",titlePlaceholder:"Título *",titleErrorMessage:"Falta el título",typeLabel:"Tipo",priorityLabel:"Prioridad",statusLabel:"Estado",stageLabel:"Fase",assignedToLabel:"Asignado a",dueDateLabel:"Fecha de vencimiento (DD/MM/AAAA)",descriptionLabel:"Descripción",labelsLabel:"Etiquetas",createButton:"Validar",updateButton:"Modificar este BCF",modalText:"Está a punto de salir de la edición 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ía",takeSnapshot:"Tomar un snapshot",importFile:"Importar un archivo",searchPlaceholder:"Buscar",emptySearch:"No hay resultados"},BcfTopicOverview:{openViewer:"Abrir en el visor",openViewerNoModels:"No hay ningún modelo listo para la visualización",elements:"{count} Elementos",noElements:"Ningún elemento",type:"Tipo",noTypeSpecified:"No se especifica el tipo",description:"Descripción",noDescriptionProvided:"No hay descripción",assignedTo:"Asignado a",notAssigned:"No asignado",dueDate:"Plazo",noDueDate:"Sin fecha de vencimiento",informations:"Información",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ás a punto de borrar {name}",deleteBcfButton:"Borrar este BCF",keepBcfButton:"Mantenga este BCF",author:"Autor"},BcfTopicsTable:{headers:{index:"#",priority:"Prioridad",status:"Estado",title:"Título",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:"¿Borrar este comentario?",deleteButton:"Borrar",takeSnapshot:"Tomar un snapshot"},BcfTopicPriorityCell:{noPriority:"Sin"},SettingCard:{addButton:"añadir un elemento",cancelButton:"Cancelar",validateButton:"Validar",deleteExtensionText:"Borrar esta configuración",deleteButton:"Borrar",title:{Priority:"Prioridades",Label:"Etiquetas:",Status:"Estatutos",Type:"Tipos",Stage:"Fases"},input:{Priority:"Añadir una nueva prioridad",Label:"Añadir una nueva etiqueta",Status:"Añadir un nuevo estado",Type:"Añadir un nuevo tipo",Stage:"Añadir una nueva fase"},text:{Priority:"Lista de prioridades",Label:"Lista de etiquetas",Status:"Lista de estatutos",Type:"Lista de tipos",Stage:"Lista de fases"}}}},fr:{BcfComponents:{back:"Retour",BcfFilters:{filtersButton:"Filtres",filtersTitle:"Filtres",priorityLabel:"Priorité",statusLabel:"Statut",stageLabel:"Phase",assignedToLabel:"Assigné à",creatorsLabel:"Créé par",tagsLabel:"Tags",resetButton:"Réinitialiser",searchButton:"Rechercher",undefined:"Non défini",datePlaceholder:"Date de création"},BcfSettings:{title:"Paramètres BCF",text:"Créez, renseignez et listez les paramètres BCF que vous souhaitez avoir sur ce projet",validateButton:"Valider les paramètres BCF"},BcfStatistics:{emptyText:"Ajoutez des questions pour voir les statistiques associées ici.",issues:"problèmes",extension:{Priority:"Priorité",PriorityNotDefined:"Aucune priorité",PriorityTitle:"Priorités",Status:"Statut",StatusNotDefined:"Aucun statut",StatusTitle:"Statuts"}},BcfTopicCard:{priority:"Priorité",noPriority:"Aucune",assignedTo:"Assigné à",elements:"{n} Élements",notSpecified:"Non défini",see:"Voir"},BcfTopicCreationCard:{text:"Créer un nouveau topic BCF",createBcfSideTitle:"Signaler un problème"},BcfTopicForm:{dragDropImageText:"Veuillez sélectionner un fichier",addObjectButton:"Objet",addAnnotationButton:"Annotation",annotationButtonTooltip:"Ce topic ne possède actuellement aucun point de vue",addPictureButton:"Ajouter une image",titlePlaceholder:"Titre *",titleErrorMessage:"Titre manquant",typeLabel:"Type",priorityLabel:"Priorité",statusLabel:"Statut",stageLabel:"Phase",assignedToLabel:"Assigné à",dueDateLabel:"Date d'échéance",descriptionLabel:"Description",labelsLabel:"Tags",createButton:"Valider",updateButton:"Modifier ce BCF",modalText:"Vous êtes sur le point de quitter l'édition de l'issue {name} mais il y'a des modifications non enregistrées.",cancelButton:"Annuler les modifications",continueButton:"Continuer les modifications",createTitle:"Signaler un problème",dragDropImageTextTablet:"Prendre une photo",takeSnapshot:"Prendre un snapshot",importFile:"Importer un fichier",searchPlaceholder:"Rechercher",emptySearch:"Pas de résultat",documentsLabel:"Documents",documentsCount:"Documents - {count} documents sélectionnés",groupsLabel:"Permissions",groupsCount:"Permissions - {count} groupes sélectionnés",groupsText:"Sélectionner les groupes utilisateur qui peuvent voir ce topic et intéragir avec.",validate:"Valider"},BcfTopicOverview:{openViewer:"Ouvrir dans le viewer",openViewerNoModels:"Il n'y a aucun modèle prêt pour une visualisation",elements:"{count} Élements",noElements:"Aucun élément concerné",type:"Type",noTypeSpecified:"Pas de type spécifié",description:"Description",noDescriptionProvided:"Pas de description renseignée",assignedTo:"Assigné à",notAssigned:"Non assigné",dueDate:"Échéance",noDueDate:"Pas de date d'échéance",informations:"Informations",status:"Statut",noStatusSpecified:"Pas de statut spécifié",stage:"Phase",noStageProvided:"Pas de phase renseignée",priority:"Priorité",priorityNotDefined:"Non défini",tags:"Tags",noTags:"Pas de tags",commentButton:"Poster un commentaire",deleteText:"Vous êtes sur le point de supprimer {name}",deleteBcfButton:"Supprimer ce BCF",keepBcfButton:"Conserver ce BCF",author:"Auteur"},BcfTopicsTable:{headers:{index:"#",priority:"Priorité",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",edited:"edité"},BcfTopicPriorityCell:{noPriority:"Aucune"},SettingCard:{addButton:"ajouter un élément",cancelButton:"Annuler",validateButton:"Valider",deleteExtensionText:"Supprimmer ce paramètre",deleteButton:"Supprimer",title:{Priority:"Priorités",Label:"Tags",Status:"Statuts",Type:"Types",Stage:"Phases"},input:{Priority:"Ajouter une nouvelle priorité",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és",Label:"Liste des tags",Status:"Liste des statuts",Type:"Liste des types",Stage:"Liste des phases"}}}},it:{BcfComponents:{back:"Indietro",BcfFilters:{filtersButton:"Filtri",filtersTitle:"Filtri",priorityLabel:"Priorità",statusLabel:"Stato",stageLabel:"Fase",datePlaceholder:"Data di creazione",assignedToLabel:"Assegnato a",creatorsLabel:"Creato da",tagsLabel:"Etichette",resetButton:"Ripristina",searchButton:"Cerca",undefined:"Non definito"},BcfSettings:{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à",PriorityNotDefined:"Nessuna priorità",PriorityTitle:"Priorità",Status:"Stato",StatusNotDefined:"Nessuno stato",StatusTitle:"Stati"}},BcfTopicCard:{priority:"Priorità",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à",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à",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à",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à",Label:"Etichette",Status:"Stati",Type:"Tipi",Stage:"Fasi"},input:{Priority:"Aggiungi una nuova priorità",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à",Label:"Elenco delle etichette",Status:"Elenco degli stati",Type:"Elenco dei tipi",Stage:"Elenco delle fasi"}}}}},qii=({apiClient:i,fetchUsers:e,i18nPlugin:t}={})=>({install(n){i?Fi.setup({apiClient:i,fetchUsers:e}):console.error("[BCF Components Plugin] No api client provided. You must provide an api client for the components to work properly."),t?Object.entries(Qii).forEach(([o,r])=>{t.global.mergeLocaleMessage(o,r)}):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(TCe).forEach(([o,r])=>{n.component(o,r)})}}),Kii={de:{BuildingMaker:{title:"Building Maker",back:"Zurück",list:{text:"Erstellen und bearbeiten Sie die Etagen und laden Sie anschließend Ihre PDFs herunter.",createButton:"Neues Projekt",updateButton:"Umbenennen",deleteButton:"Löschen"},form:{text:"Erstellen und bearbeiten Sie die Etagen und laden Sie anschließend Ihre PDFs herunter.",input:"Name des Gebäudes",error:"Ungültiger Name",createButton:"Erstellen",updateButton:"Bestätigen"},view:{addStoreyButton:"Etage",addPlanButton:"Grundriss",closeButton:"Fertigstellen",submitFilesButton:"Bestätigen"},storeyForm:{title:"Neue Etage",input:"Name",error:"Ungültiger Name",cancelButton:"Abbrechen",submitButton:"Bestätigen"}},FileManager:{creationFormTitle:"Ordner erstellen",renameFormPlaceholder:"Datei- / Ordnernam",nameInputPlaceholder:"Ordnername",emptyFolder:"Dieser Ordner ist leer",newFolderSuccess:"Neuer Ordner erstellt",renameFolderSuccess:"Umbenannter Ordner",deleteFolderSuccess:"Ordner gelöscht",newFileSuccess:"Datei hinzugefügt",renameFileSuccess:"Umbenannte Datei",deleteFileSuccess:"Datei gelöscht",nameInputErrorMessage:"Ungültiger name",cancel:"Abbrechen",submit:"Bestätigen",buttonText:"Neuer Ordner",addFileButtonText:"Datei laden",rename:"Umbenennen",view:"Sehen",download:"Herunterladen",delete:"Löschen",deleteTitle:"Dateien löschen",deleteDetail:"Sie sind im Begriff, die folgenden Dateien / Ordner endgültig zu löschen"}},en:{BIMDataComponents:{t:{back:"Back",cancel:"Cancel",create:"Create",delete:"Delete",download:"Download",finish:"Finish",rename:"Rename",search:"Search",see:"View",storey:"Storey",validate:"Validate"}},BuildingMaker:{title:"Building Maker",list:{text:"Create and edit storeys, then download your PDFs.",new:"New project"},form:{input:"Building name",error:"Invalid"},view:{addStorey:"Add Storey",addFile:"Add File",addPlan:"Add Plan"},storeyForm:{title:"New storey",input:"Name",error:"Invalid name"}},FileManager:{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",buttonText:"New folder",addFileButtonText:"Upload a file",deleteTitle:"Deleting Files",deleteDetail:"You are about to permanently delete the following files / folders",dmsRoot:"Root of the project's DMS",pdfPageSelectorTitle:"Select a page"},MetaBuildingStructure:{title:"Meta-Building Structure",tab:{structure:"Structure",zones:"Zones",equipments:"Equipments"},StoreySelector:{placeholder:"Select a storey"}},PhotosphereBuilding:{title:"Photosphere Building"}},es:{BuildingMaker:{title:"Building Maker",back:"Vuelta",list:{text:"Cree y edite los pisos después cargue los PDF.",createButton:"Nuevo proyecto",updateButton:"Renombrar",deleteButton:"Suprimir"},form:{text:"Cree y edite los pisos después cargue los PDF.",input:"Nombre del edificio",error:"Nombre no válido",createButton:"Crear",updateButton:"Validar"},view:{addStoreyButton:"Piso",addPlanButton:"Plano",closeButton:"Terminar",submitFilesButton:"Validar"},storeyForm:{title:"Nuevo piso",input:"Nombre",error:"Nombre no válido",cancelButton:"Anular",submitButton:"Validar"}},FileManager:{creationFormTitle:"Crear un archivo",renameFormPlaceholder:"Nombre de archivo / carpeta",nameInputPlaceholder:"Nombre de la carpeta",emptyFolder:"Esta carpeta está vacía",newFolderSuccess:"Nueva carpeta creada",renameFolderSuccess:"Carpeta renombrada",deleteFolderSuccess:"Carpeta eliminada",newFileSuccess:"Archivo agregado",renameFileSuccess:"Archivo renombrado",deleteFileSuccess:"Archivo eliminado",nameInputErrorMessage:"Nombre inválida",cancel:"Cancelar",submit:"Validar",buttonText:"Carpeta nueva",addFileButtonText:"Cargar un archivo",rename:"Renombrar",view:"Ver",download:"Descargar",delete:"Borrar",deleteTitle:"Eliminar archivos",deleteDetail:"Está a punto de eliminar permanentemente los siguientes archivos / carpetas"}},fr:{BIMDataComponents:{t:{back:"Retour",cancel:"Annuler",create:"Créer",delete:"Supprimer",download:"Télécharger",finish:"Terminer",rename:"Renommer",search:"Rechercher",see:"Voir",storey:"Étage",validate:"Valider"}},BuildingMaker:{title:"Building Maker",list:{text:"Créez et éditez les étages puis téléchagez vos PDF.",new:"Nouveau projet"},form:{input:"Nom du bâtiment",error:"Nom invalide"},view:{addStorey:"Ajouter un Étage",addFile:"Ajouter un fichier",addPlan:"Ajouter un plan"},storeyForm:{title:"Nouvel étage",input:"Nom",error:"Nom invalide"}},FileManager:{creationFormTitle:"Créer un dossier",renameFormPlaceholder:"Nom du fichier/dosier",nameInputPlaceholder:"Nom du dossier",emptyFolder:"Ce dossier est vide",newFolderSuccess:"Nouveau dossier créé",renameFolderSuccess:"Dossier renommé",deleteFolderSuccess:"Dossier supprimé",newFileSuccess:"Fichier ajouté",renameFileSuccess:"Fichier renommé",deleteFileSuccess:"Fichier supprimé",nameInputErrorMessage:"Nom invalide",buttonText:"Nouveau dossier",addFileButtonText:"Charger un fichier",deleteTitle:"Supression de fichiers",deleteDetail:"Vous êtes sur le point de supprimer définitivement les fichiers/dossiers suivants",dmsRoot:"Racine de la GED du projet",pdfPageSelectorTitle:"Sélectionner une page"},MetaBuildingStructure:{title:"Structure Méta-Building",tab:{structure:"Structure",zones:"Zones",equipments:"Équipements"},StoreySelector:{placeholder:"Sélectionner un étage"}},PhotosphereBuilding:{title:"Photosphère Building"}},it:{BuildingMaker:{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"},view:{addStoreyButton:"Piano",addPlanButton:"Mappa",closeButton:"Finire",submitFilesButton:"Convalidare"},storeyForm:{title:"Nuovo piano",input:"Nome",error:"Nome non corretto",cancelButton:"Annullare",submitButton:"Convalidare"}},FileManager:{creationFormTitle:"Crea una cartella",renameFormPlaceholder:"Nome file/cartella",nameInputPlaceholder:"Nome della cartella",emptyFolder:"Questa cartella è 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"}}},Jii=({i18nPlugin:i}={})=>({install(e){i?Object.entries(Kii).forEach(([t,n])=>{i.global.mergeLocaleMessage(t,n)}):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(_Lt).forEach(([t,n])=>{e.component(t,n)})}}),Wii=Object.freeze(Object.defineProperty({__proto__:null,BIMDataClickAway:tl,BIMDataClickInputAway:{beforeMount(i,e){if(typeof e.value!="function")throw Error(`click away directive needs function, got ${typeof e.value}`);i.clickAwayHandler=t=>{(t.path||t.composedPath&&t.composedPath()).find(o=>o===i)||e.value()},window.addEventListener("mousedown",i.clickAwayHandler,!0)},unmounted(i){window.removeEventListener("mousedown",i.clickAwayHandler,!0),delete i.clickAwayHandler}}},Symbol.toStringTag,{value:"Module"})),Zii=i=>({install(e){Object.entries(UJe).forEach(([t,n])=>{e.component(t,n)}),Object.entries(Wii).forEach(([t,n])=>e.directive(t.split("BIMData")[1],n))}}),Yii={name:"LiWrapper",render(){return vn("li",this.$slots.default())}};function Xii(i,e){var t=new Set([]);return i.forEach(n=>{e.has(n)||t.add(n)}),t}const Ll=is("id"),$ii=({contextMenu:i,objects:e=[],state:t=i.$viewer.state,pictos:n})=>[{name:"selectAll",get group(){return i.groupPositions.select},position:1,get label(){return i.$t("context_menu.select_all")},get picto(){return n.get(this.name)},execute:()=>t.selectObjects(e.filter(Ua(Si("visible"),Cd("selected"))).map(Ll)),predicate:()=>e.some(Ua(Si("visible"),Cd("selected")))},{name:"deselectAll",get group(){return i.groupPositions.select},position:2,get label(){return i.$t("context_menu.deselect_all")},get picto(){return n.get(this.name)},execute:()=>t.deselectObjects(e.filter(Si("selected")).map(Ll)),predicate:()=>e.some(Si("selected"))},{name:"selectSimilar",get group(){return i.groupPositions.select},position:3,get label(){return i.$t("context_menu.select_similar")},get picto(){return n.get(this.name)},execute(){const o=e.filter(r=>r.visible&&r.type===this.selectedObject.type&&r.id!==this.selectedObject.id).map(Ll);t.selectObjects(o)},selectedObject:null,predicate(){const o=e.filter(Ua(Si("visible"),Si("selected")));return o.length===1&&o[0].type!==void 0?(this.selectedObject=o[0],!0):(this.selectedObject=null,!1)}},{name:"reverseSelection",get label(){return i.$t("context_menu.reverse_selection")},get group(){return i.groupPositions.select},position:4,execute:()=>{const o=new Set(e.filter(Si("selected")).map(Ll)),r=new Set(e.filter(Si("visible")).map(Ll));t.selectObjects(Array.from(Xii(r,o)),{exclusive:!0})},predicate:()=>e.some(Ua(Cd("selected"),Si("visible")))&&e.some(Ua(Si("selected"),Si("visible")))},{name:"showAll",get group(){return i.groupPositions.visibility},position:1,get label(){return i.$t("context_menu.show_all")},get picto(){return n.get(this.name)},execute:()=>t.showObjects(e.filter(Cd("visible")).map(Ll)),predicate:()=>e.some(Cd("visible"))},{name:"hide",get group(){return i.groupPositions.visibility},position:2,get label(){return i.$t("context_menu.hide")},get picto(){return n.get(this.name)},objectsToHide:null,execute(){const o=this.objectsToHide.filter(Si("selected"));o.length>0&&t.deselectObjects(o.map(Ll)),t.hideObjects(this.objectsToHide.map(Ll))},predicate(){return this.objectsToHide=e.filter(Ua(Si("selected"),Si("visible"))),this.objectsToHide.length>0}},{name:"hideAll",get group(){return i.groupPositions.visibility},position:3,get label(){return i.$t("context_menu.hide_all")},execute:()=>{const o=e.filter(Si("visible"));o.some(Si("selected"))&&t.deselectObjects(o.filter(Si("selected")).map(Ll)),t.hideObjects(o.map(Ll))},predicate:()=>e.some(Si("visible"))}].filter(o=>o.predicate()),eni={components:{LiWrapper:Yii},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(i){i?document.addEventListener("keydown",this.onKeyDown):document.removeEventListener("keydown",this.onKeyDown)}},created(){this.$viewer.contextMenu=this,this.asyncPredicates=new Set},methods:{onKeyDown(i){i.key==="Escape"&&this.away()},setPosition(i){const t=(document.fullscreenElement?document.fullscreenElement:this.$parent.$el).getBoundingClientRect();this.left=i.clientX-t.left,this.top=i.clientY-t.top,this.left+this.width>t.width&&(this.left=this.left-this.width),i.clientY>t.top+t.height/2?(this.bottom=t.height-this.top,this.top=null):this.bottom=null},typeCheckCommand(i={}){let e=null;if((!i.execute||typeof i.execute!="function")&!i.component&&(e="Cannot register context menu command. A command must have an execute function or a component property."),i.label||(e="Cannot register context menu command. A command must have a label."),e)throw console.error(e),new Error(e);return i.id=this.nextCommandId++,i},open(i){this.currentCommands=[],this.setPosition(i),this.originEvent=i,i.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 i=>{if(typeof i.predicate=="function"){const e=i.predicate(this.$viewer.globalContext.activeLocalContext);if(e===!0)this.currentCommands.push(i);else if(typeof e?.then=="function"){this.asyncPredicates.add(e),this.asyncPredicateRunning=!0;const t=await e;this.asyncPredicates.has(e)&&(this.asyncPredicates.delete(e),this.asyncPredicateRunning=this.asyncPredicates.size>0,t===!0&&this.currentCommands.push(i))}}else this.currentCommands.push(i)}),this.currentCommands.push(...this.contextCommands),this.contextCommands=[]},getDefaultCommands({objects:i=[],state:e=this.$viewer.state,context:t=null}){const n=new Map;return t&&this.$viewer.shortcutManager.getShortcuts(t).forEach(o=>n.set(o.name,o.key)),$ii({contextMenu:this,objects:i,state:e,pictos:n})},executeCommand(i){if(i.execute&&(i.execute(this.originEvent),this.displayed=!1),i.component&&!i.menu)throw new Error("Command with component property must have a `menu` property")},away(){this.displayed=!1},groupCurrentCommands(){const i=new Map;this.currentCommands.forEach(n=>{(n.group===null||n.group===void 0)&&(n.group=0),i.has(n.group)?i.get(n.group).push(n):i.set(n.group,[n])}),i.forEach(n=>n.sort((o,r)=>(o.position=o.position||0,r.position=r.position||0,o.position-r.position)));const t=[...i.keys()].sort((n,o)=>n-o).map(n=>i.get(n)).flat();this.currentCommands=t},isGroupIntersection(i){if(i===0)return!1;const e=this.currentCommands[i-1],t=this.currentCommands[i];return e.group<t.group},registerContextCommand(i){const e=this.typeCheckCommand(i);return this.contextCommands.push(e),i.id},registerCommand(i){const e=this.typeCheckCommand(i);return this.registeredCommands.push(e),i.id},unregisterCommand(i){return this.registeredCommands.find(e=>e.id===i)?(this.registeredCommands=this.registeredCommands.filter(e=>e.id!==i),!0):!1},preventDefault(){this.defaultPrevented=!0}}},tni={key:0,class:"separator"},ini={class:"menu-text"},nni={key:1,class:"menu-picto"},oni={key:0,class:"context-menu__spinner"};function sni(i,e,t,n,o,r){const s=P("BIMDataIconChevron"),a=P("LiWrapper"),l=P("BIMDataSpinner"),c=li("click-away");return o.displayed&&(o.currentCommands.length||o.asyncPredicateRunning)?yt((E(),L("ul",{key:0,class:"bimdata-list context-menu",style:le(r.position)},[(E(!0),L($e,null,Mt(o.currentCommands,(u,d)=>(E(),K(a,{key:u.label,class:"context-menu__element",onClick:h=>r.executeCommand(u)},{default:U(()=>[r.isGroupIntersection(d)?(E(),L("div",tni)):te("",!0),C("div",ini,G(u.label),1),!u.component&&u.picto?(E(),L("span",nni,G(u.picto),1)):u.component?(E(),K(s,{key:2,size:"xxs",class:"fill-primary"})):te("",!0)]),_:2},1032,["onClick"]))),128)),o.asyncPredicateRunning?(E(),L("li",oni,[k(l)])):te("",!0)],4)),[[c,r.away]]):te("",!0)}const rni=V(eni,[["render",sni],["__scopeId","data-v-5b87d4a3"]]),ani={name:"ViewerHeader",inject:["$viewer"],props:{visible:{type:Boolean,default:!0}},setup(){const i=st("$viewer"),e=Ao(new Map),t=o=>{if(!o.name)throw new TypeError("[Viewer Header] Content must have a name");if(e.has(o.name))throw new Error(`[Viewer Header] Content with name ${o.name} already exists`);e.set(o.name,o)},n=o=>e.has(o)?(e.delete(o),!0):!1;return{logo:i.uiSettings.bimdataLogo!==!1,version:i.uiSettings.version!==!1?i.version:null,headerContent:e,headerRightContentComponents:Re(()=>Array.from(e.values()).filter(o=>o.position==="right").sort((o,r)=>o.order-r.order).map(o=>o.component)),headerLeftContentComponents:Re(()=>Array.from(e.values()).filter(o=>o.position==="left").sort((o,r)=>o.order-r.order).map(o=>o.component)),addContent:t,removeContent:n}}},lni={class:"viewer-header"},cni={class:"viewer-header__content"},uni={class:"viewer-header__content__left"},dni={class:"viewer-header__content__right"},hni={key:0,class:"m-l-6 flex items-center"},pni={key:1,class:"viewer-header__version"};function fni(i,e,t,n,o,r){const s=P("BIMDataIllustration");return yt((E(),L("div",lni,[C("div",cni,[C("div",uni,[(E(!0),L($e,null,Mt(n.headerLeftContentComponents,a=>(E(),K(yn(a),{key:a.name}))),128))]),C("div",dni,[(E(!0),L($e,null,Mt(n.headerRightContentComponents,a=>(E(),K(yn(a),{key:a.name}))),128))])]),n.logo||n.version?(E(),L("div",hni,[n.logo?(E(),K(s,{key:0,name:"logo",width:"30px",height:"30px"})):te("",!0),n.version?(E(),L("div",pni,G(n.version),1)):te("",!0)])):te("",!0)],512)),[[jt,t.visible]])}const Ani=V(ani,[["render",fni],["__scopeId","data-v-5c9ea6b6"]]),mni={emits:["resize"],setup(i,{emit:e}){return{onResizerMousedown:n=>{n.preventDefault();let o=n.clientX;const r=a=>{a.preventDefault();const l=a.clientX-o;o=a.clientX,e("resize",l)},s=a=>{a.preventDefault(),window.removeEventListener("mousemove",r),window.removeEventListener("mouseup",s)};window.addEventListener("mousemove",r),window.addEventListener("mouseup",s)}}}},gni={class:"bimdata-separator"};function yni(i,e,t,n,o,r){return E(),L("div",gni,[e[1]||(e[1]=C("div",{class:"bimdata-separator__line"},null,-1)),C("div",{class:"bimdata-separator__resizer",onMousedown:e[0]||(e[0]=(...s)=>n.onResizerMousedown&&n.onResizerMousedown(...s))},null,32)])}const vni={components:{Separator:V(mni,[["render",yni],["__scopeId","data-v-79a3b3af"]])},props:{position:{type:String,required:!0,validator(i){return["left","right"].includes(i)}},sidePanel:{type:Object,required:!0,validator(i){if(i.width&&(typeof i.width!="number"||i.width<0))return console.error(`[GlobalSidePanel] sidePanel.width must be a strictly positive number, received ${typeof i.width}`),!1;const e=typeof i?.component=="object";return e||console.error("[GlobalSidePanel] sidePanel must have a component property"),e}}},setup(i){const e=se(null),t=se(i.sidePanel.width??400),n=(o,r=1)=>{const s=t.value+o*r;t.value=Math.max(0,s)};return lt(()=>i.sidePanel,()=>{Object.defineProperty(i.sidePanel,"width",{get(){return t.value},set(o){if(typeof o!="number"||o<=0){console.error(`[GlobalSidePanel] sidePanel.width must be a strictly positive number, received ${typeof o}`);return}t.value=o}}),Object.defineProperty(i.sidePanel,"componentInstance",{get(){return e.value},enumerable:!0})},{immediate:!0}),{componentInstance:e,width:t,onResize:n}}},wni={class:"bimdata-global-side-panel__component"};function Cni(i,e,t,n,o,r){const s=P("Separator");return E(),L("div",{class:"bimdata-global-side-panel",style:le(`width: ${n.width}px`)},[t.sidePanel.resizable&&t.position==="right"?(E(),K(s,{key:0,onResize:e[0]||(e[0]=a=>n.onResize(a,-1))})):te("",!0),C("div",wni,[(E(),K(yn(t.sidePanel.component),{ref:"componentInstance"},null,512))]),t.sidePanel.resizable&&t.position==="left"?(E(),K(s,{key:1,onResize:e[1]||(e[1]=a=>n.onResize(a))})):te("",!0)],4)}const bni={name:"BimdataViewer",components:{ContextMenu:rni,ViewerHeader:Ani,ModalManager:R2e,GlobalSidePanel:V(vni,[["render",Cni],["__scopeId","data-v-82d0d4cb"]])},setup(){const i=st("$viewer"),{globalContext:e,shortcutManager:t}=i;Ci(()=>{t&&t.destroy(),e.hub.clear()}),oi(()=>{i.pluginManager.runPluginsScripts(i)});const n=Re(()=>i.uiSettings.bimdataLogo!==!1&&(e.localContexts.length!==1||e.localContexts[0].window?.logoAndVersion)),o=Re(()=>i.uiSettings.version!==!1&&(e.localContexts.length!==1||e.localContexts[0].window?.logoAndVersion)?i.version:null),r=Re(()=>e.leftSidePanel),s=Re(()=>e.rightSidePanel),a=Re(()=>{const p=i.uiSettings.header!==!1,A=e.localContexts.length===1&&e.localContexts[0].window?.header===!1,f=!!(r.value||s.value);return p&&(!A||f)}),l=i.uiSettings.contextMenu!==!1,c=se(null);function u(p){l&&c.value.open(p)}function d(){i.shortcutManager.active=!0}function h(){i.shortcutManager.active=!1}return{Layout:i.layout.areas.component,onContextMenu:u,onMouseenter:d,onMouseleave:h,isHeaderVisible:a,viewerTemplateRef:e.templateRef,modalManagerTemplateRef:e.modalManagerTemplateRef,headerTemplateRef:e.headerTemplateRef,contextMenuTemplateRef:c,contextMenuEnabled:l,bimdataLogoOnSingleWindow:n,viewerVersionOnSingleWindow:o,version:i.version,loading:Re(()=>e.loading),spinner:Re(()=>e.spinner),leftSidePanel:r,rightSidePanel:s}}},xni={key:1,class:"bimdata-context-loading-overlay",style:{"z-index":"3"}},Mni={key:2,class:"viewer__logo"},Eni={key:1,class:"version m-t-6"};function Bni(i,e,t,n,o,r){const s=P("ModalManager"),a=P("ContextMenu"),l=P("ViewerHeader"),c=P("GlobalSidePanel"),u=P("BIMDataSpinner"),d=P("BIMDataIllustration");return E(),L("div",{id:"bimdata-viewer",ref:"viewerTemplateRef",class:"bimdata-viewer bimdata-design-system bimdata-scrollbar",onContextmenu:e[0]||(e[0]=(...h)=>n.onContextMenu&&n.onContextMenu(...h)),onMouseenter:e[1]||(e[1]=(...h)=>n.onMouseenter&&n.onMouseenter(...h)),onMouseleave:e[2]||(e[2]=(...h)=>n.onMouseleave&&n.onMouseleave(...h))},[k(s,{ref:"modalManagerTemplateRef"},null,512),n.contextMenuEnabled?(E(),K(a,{key:0,ref:"contextMenuTemplateRef"},null,512)):te("",!0),k(l,{ref:"headerTemplateRef",visible:n.isHeaderVisible},null,8,["visible"]),C("div",{class:"bimdata-viewer__content",style:le(n.isHeaderVisible?"height: calc(100% - var(--bimdata-viewer-header-height, 40px))":"height: 100%")},[n.leftSidePanel?(E(),K(c,{key:0,"side-panel":n.leftSidePanel,position:"left"},null,8,["side-panel"])):te("",!0),(E(),K(yn(n.Layout),{style:"height: 100%; flex-grow: 1;"})),n.rightSidePanel?(E(),K(c,{key:1,"side-panel":n.rightSidePanel,position:"right"},null,8,["side-panel"])):te("",!0)],4),n.loading?(E(),L("div",xni,[n.spinner&&n.spinner.component?(E(),K(yn(n.spinner.component),Rr(Es({key:0},n.spinner.props)),null,16)):(E(),K(u,{key:1,size:"40px",border:"5px"}))])):te("",!0),!n.isHeaderVisible&&(n.bimdataLogoOnSingleWindow||n.viewerVersionOnSingleWindow)?(E(),L("div",Mni,[n.bimdataLogoOnSingleWindow?(E(),K(d,{key:0,name:"logo"})):te("",!0),n.viewerVersionOnSingleWindow?(E(),L("div",Eni,G(n.version),1)):te("",!0)])):te("",!0)],544)}const Ini=V(bni,[["render",Bni],["__scopeId","data-v-0c1c941a"]]),Sni=["src"],Pni={class:"bimdata-models__header"},Tni={key:0,class:"bimdata-models__header__loader"},kni={class:"bimdata-models__header__picto"},Rni={class:"bimdata-models__header__name"},_ni={key:0,class:"bimdata-models__header__name--empty"},Dni={key:1,class:"bimdata-models__header__name--empty"},Lni={key:3},Fni=["onMousemove","onClick"],O2e=V({__name:"Models",props:{preview:{type:Boolean,default:!1},windowPositioning:{type:Boolean,default:!0},customFilter:{type:Function,default:null},width:{type:String,default:"350px"}},setup(i){const e=i,t=st("$viewer"),n=se(),o=se(0),r=se(0),s=se(),a=hi([]),l=se(!1),c=Re(()=>t.localContext.loadedModels),u=Re(()=>t.localContext.loadedModelIds),d=Re(()=>t.localContext.loadingModelIds),h=Re(()=>t.localContext.multiModel),p=Re(()=>(e.customFilter?a.value.filter(e.customFilter):a.value).map(B=>c.value.find(S=>S.document?.head_id!=null&&S.document.head_id===B.document.id)??B)),A=M=>u.value.includes(M),f=M=>d.value.includes(M),g=Re(()=>{const{x:M,y:B}=s.value?.getBoundingClientRect()??{x:0,y:0};return`top:${r.value-B}px; left:${o.value-M}px;`}),m=M=>{!h.value&&A(M.id)||d.value.length>0||(t.localContext.loadedModelIds.includes(M.id)?t.localContext.unloadModels([M.id]):t.localContext.loadModels([M.id]))},v=M=>{switch(M){case"C":return"success";case"E":return"failed";case"P":case"I":return"sandglass"}},y=(M,B)=>{M?.viewer_360_file&&(o.value=B.clientX,r.value=B.clientY),n.value=M?.viewer_360_file},w=async M=>{l.value=!0;try{return(await t.api.apiClient.modelApi.getModels(t.api.cloudId,t.api.projectId,void 0,void 0,M)).filter(S=>t.state.models.some(I=>I.archived)||!S.archived).sort(rl("updated_at",!1))}catch(B){console.error("[Models] Cannot get project models. Error: ",B)}finally{l.value=!1}return[]},x=M=>M.children?.some(B=>A(B.id))??!1;return w(t.localContext.modelTypes).then(M=>{a.value=M}),(M,B)=>{const S=P("BIMDataSpinner"),I=P("BIMDataIconModel3D"),R=P("BIMDataTextbox"),T=P("BIMDataCheckbox"),D=P("BIMDataRadio"),F=P("BIMDataIcon"),N=P("BIMDataDropdownList");return E(),L("div",{ref_key:"templateRef",ref:s,class:ce(["bimdata-models",{"bimdata-models--window-positioning":i.windowPositioning}])},[n.value?(E(),L("div",{key:0,class:"bimdata-models__preview",style:le(g.value)},[C("img",{src:n.value},null,8,Sni)],4)):te("",!0),k(N,{style:le(`--bimdata-models-width: ${i.width};`),width:i.width,list:p.value,"element-key":"id","per-page":40,loading:l.value,class:"bimdata-models__list",disabled:p.value.length===0,onElementClick:m},{header:U(({isOpen:z})=>[C("div",Pni,[l.value||d.value.length>0?(E(),L("div",Tni,[k(S)])):(E(),L($e,{key:1},[C("div",kni,[k(I)]),C("div",{class:ce(["bimdata-models__header__number bimdata-info-length",{"bimdata-models__header__number--empty":u.value.length===0}])},[C("span",null,G(u.value.length),1)],2),C("div",Rni,[p.value.length===0?(E(),L("span",_ni,G(M.$t("model.no_model")),1)):u.value.length===0?(E(),L("span",Dni,G(M.$t("model.no_loaded_model")),1)):u.value.length===1?(E(),K(R,{key:2,text:c.value[0].name,tooltip:!z},null,8,["text","tooltip"])):u.value.length>1?(E(),L("span",Lni,G(M.$t("model.selected_models")),1)):te("",!0)])],64))])]),element:U(({element:z,close:j})=>[C("div",{class:"bimdata-models__model",onMousemove:W=>i.preview&&y(z,W),onMouseout:B[0]||(B[0]=W=>i.preview&&y()),onClick:()=>{!h.value&&!A(z.id)&&j()}},[h.value?(E(),K(T,{key:0,"model-value":A(z.id)||x(z),disabled:z.status!=="C"||d.value.length>0},null,8,["model-value","disabled"])):(E(),K(D,{key:1,"model-value":A(z.id)||x(z),disabled:z.status!=="C"||d.value.length>0},null,8,["model-value","disabled"])),k(F,{margin:"0 calc(var(--spacing-unit) / 2)",name:v(z.status),size:"xs",class:ce({"fill-success":z.status==="C","fill-high":z.status==="E"})},null,8,["name","class"]),k(R,{class:ce({"bimdata-models__model__name":!0,"bimdata-models__model__name--disabled":z.status!=="C"||d.value.length>0}),text:z.name,width:`calc(100% -
|
|
6440
|
+
`),onMouseenter:e[0]||(e[0]=(...h)=>n.onMouseEnter&&n.onMouseEnter(...h)),onMouseleave:e[1]||(e[1]=(...h)=>n.onMouseLeave&&n.onMouseLeave(...h))},[k(s,{ref:"modalManagerTemplateRef"},null,512),C("div",Rii,[n.windowPlugins.leftSidePanel?(E(),K(a,{key:0,plugin:n.windowPlugins.leftSidePanel},null,8,["plugin"])):te("",!0),C("div",_ii,[(E(!0),L($e,null,Mt(n.windowPlugins.free,h=>(E(),K(l,{key:h.name,class:ce({"window-container__content__center__viewer":h.isViewer}),plugin:h},null,8,["class","plugin"]))),128)),k(c,{position:"left",plugins:n.windowPlugins.leftButtonColumn},null,8,["plugins"]),k(c,{position:"right",plugins:n.windowPlugins.rightButtonColumn},null,8,["plugins"])]),n.windowPlugins.rightSidePanel?(E(),K(a,{key:1,plugin:n.windowPlugins.rightSidePanel},null,8,["plugin"])):te("",!0)]),n.loading?(E(),L("div",Dii,[n.spinner&&n.spinner.component?(E(),K(yn(n.spinner.component),Rr(Es({key:0},n.spinner.props)),null,16)):(E(),K(u,{key:1,size:"20px",border:"3px"}))])):te("",!0),n.layoutSettingsDisplayed?(E(),L("div",Lii,[k(d)])):te("",!0)],36)}const Oii=V(kii,[["render",Fii],["__scopeId","data-v-485f288e"]]);class Nii{constructor(e=!0){const t=Sti(lj,null,{resizable:e});t.registerContent("default",Oii),this.settings=Ao({edit:!1,swap:!1,full:!1}),this.areas=t}get resizable(){return this.areas.resizable}set resizable(e){this.areas.resizable=e}apply(e=null){this.areas.layout=e?Pti(e):null}copy(e,t=!0){return Tti(this.areas.layout,e,t)}open({ratio:e,direction:t,insertAfter:n,windowName:o=null,windowState:r=null,localContextId:s=null}={}){const a=o?{options:{windowName:o,windowState:r}}:null;return s===null?this.areas.splitLayout(e,t,n,a):this.areas.split(s,e,t,n,a)}swap(e,t){return this.areas.swap(e,t)}close(e){return this.areas.delete(e)}compare(e,t){if(!e&&!t)return!0;if(!e||!t)return!1;if(typeof e=="string"&&typeof t=="string")return e===t;if(typeof e=="string"||typeof t=="string")return!1;if(e.windowName&&t.windowName){if(e.windowName!==t.windowName)return!1;const n=new Set(e.windowState?.modelIds),o=new Set(t.windowState?.modelIds);return n.size===o.size&&[...n].every(s=>o.has(s))}return e.windowName||t.windowName||e.direction!==t.direction||e.children.length!==t.children.length?!1:e.children.every((n,o)=>this.compare(n,t.children[o]))}}const Uii={version:"2.17.0-beta.2"};let Vii=1;class Hii{math=Let;constructor({plugins:e,api:t,ui:n,locale:o="fr"}){this.instanceId=Vii++,this.pluginManager=new ZYt(e),this.windowManager=new XYt,this.windowManager.registerAndAddPluginsToWindows([...this.pluginManager.registeredPlugins.values()]),this.api=new Dei(t),this.globalContext=new R6e(this),this.state=Kei(this),this.shortcutManager=gge(this.state),this.uiSettings=n||{},this.i18n=new T6e(o),this._contextMenu=null,this.layout=new Nii(this.uiSettings.resizable!==!1),this._darkTheme=se(n?.darkTheme??!1),this.localContext=null,window.$viewer=this}get darkTheme(){return this._darkTheme.value}set darkTheme(e){this._darkTheme.value=e}get version(){return Uii.version}get locale(){return this.i18n.locale}get contextMenu(){return this._contextMenu||Age}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 zii(i,e={}){e.backgroundColor&&(i.style.setProperty("--bimdata-viewer-background-color",e.backgroundColor),e.backgroundColor==="transparent"&&i.style.setProperty("--areas-separator-color","transparent")),e.colorPrimary&&i.style.setProperty("--color-primary",e.colorPrimary),e.colorPrimaryLighter&&i.style.setProperty("--color-primary-lighter",e.colorPrimaryLighter),e.colorPrimaryLight&&i.style.setProperty("--color-primary-light",e.colorPrimaryLight),e.colorPrimaryDark&&i.style.setProperty("--color-primary-dark",e.colorPrimaryDark),e.colorSecondary&&i.style.setProperty("--color-secondary",e.colorSecondary),e.colorSecondaryLighter&&i.style.setProperty("--color-secondary-lighter",e.colorSecondaryLighter),e.colorSecondaryLight&&i.style.setProperty("--color-secondary-light",e.colorSecondaryLight),e.colorSecondaryDark&&i.style.setProperty("--color-secondary-dark",e.colorSecondaryDark),e.colorSilverLight&&i.style.setProperty("--color-silver-light",e.colorSilverLight),e.colorSilver&&i.style.setProperty("--color-silver",e.colorSilver),e.colorSilverDark&&i.style.setProperty("--color-silver-dark",e.colorSilverDark),e.colorGraniteLight&&i.style.setProperty("--color-granite-light",e.colorGraniteLight),e.colorGranite&&i.style.setProperty("--color-granite",e.colorGranite),e.colorSuccess&&i.style.setProperty("--color-success",e.colorSuccess),e.colorSuccessLighter&&i.style.setProperty("--color-success-Lighter",e.colorSuccessLighter),e.colorSuccessLight&&i.style.setProperty("--color-success-Light",e.colorSuccessLight),e.colorSuccessDark&&i.style.setProperty("--color-success-Dark",e.colorSuccessDark),e.colorWarning&&i.style.setProperty("--color-warning",e.colorWarning),e.colorWarningLighter&&i.style.setProperty("--color-warning-Lighter",e.colorWarningLighter),e.colorWarningLight&&i.style.setProperty("--color-warning-Light",e.colorWarningLight),e.colorWarningDark&&i.style.setProperty("--color-warning-Dark",e.colorWarningDark),e.colorHigh&&i.style.setProperty("--color-high",e.colorHigh),e.colorHighLighter&&i.style.setProperty("--color-high-lighter",e.colorHighLighter),e.colorHighLight&&i.style.setProperty("--color-high-light",e.colorHighLight),e.colorHighDark&&i.style.setProperty("--color-high-dark",e.colorHighDark),e.colorText&&i.style.setProperty("--color-text",e.colorText),(!e.backgroundColor||e.backgroundColor!=="transparent")&&i.style.setProperty("--areas-separator-color","rgba(216, 216, 216, 1)"),e.headerHeight!=null&&i.style.setProperty("--bimdata-viewer-header-height",e.headerHeight),i.style.setProperty("--areas-background-color","transparent")}const jii=Object.freeze({25:"GUEST",50:"USER",100:"ADMIN"}),fg=Object.freeze({READ:"read",WRITE:"write"});function L2e(i){const e={};return i.forEach(t=>{const[n,o]=t.split(":");e[n]?e[n].push(o):e[n]=[o]}),e}const Gii={token_scopes:[],usable_scopes:[],user_role:25};function F2e(i=Gii){const e=L2e(i.token_scopes),t=L2e(i.usable_scopes);return{...dJ(i),tokenScopes:e,usableScopes:t,userRole:jii[i.user_role],user:i.user?dJ(i.user):null,hasBcfReadPermission:t.bcf?.includes(fg.READ)??!1,hasBcfWritePermission:t.bcf?.includes(fg.WRITE)??!1,hasModelReadPermission:t.model?.includes(fg.READ)??!1,hasModelWritePermission:t.model?.includes(fg.WRITE)??!1,hasDocReadPermission:t.document?.includes(fg.READ)??!1,hasDocWritePermission:t.document?.includes(fg.WRITE)??!1}}const Qii={de:{BcfComponents:{back:"Zurück",BcfFilters:{filtersButton:"Filter",filtersTitle:"Filter",priorityLabel:"Priorität",statusLabel:"Status",stageLabel:"Phase",assignedToLabel:"Zugewiesen an",creatorsLabel:"Erstellt von",tagsLabel:"Tags",resetButton:"Zurücksetzen",searchButton:"Suchen",undefined:"Nicht definiert",datePlaceholder:"Erstellungsdatum"},BcfSettings:{title:"BCF-Parameter",text:"Erstellen, füllen und listen Sie die BCF-Einstellungen auf, die Sie für dieses Projekt haben möchten.",validateButton:"Die BCF-Parameter anerkennen"},BcfStatistics:{emptyText:"Fügen Sie Fragen hinzu, um zugehörige Statistiken hier anzuzeigen.",issues:"Probleme",extension:{Priority:"Priorität",PriorityNotDefined:"Keine Priorität",PriorityTitle:"Prioritäten",Status:"Status",StatusNotDefined:"Kein Status",StatusTitle:"Status"}},BcfTopicCard:{priority:"Priorität",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ählen Sie eine Datei aus.",addObjectButton:"Objekt",addAnnotationButton:"Annotation",annotationButtonTooltip:"Zu diesem Thema gibt es derzeit keine Ansichten.",addPictureButton:"Fügen Sie ein Bild hinzu.",titlePlaceholder:"Titel *",titleErrorMessage:"Titel fehlt",typeLabel:"Typ",priorityLabel:"Priorität",statusLabel:"Status",stageLabel:"Phase",assignedToLabel:"Zugewiesen an",dueDateLabel:"Fälligkeitsdatum (TT.MM.JJJJ)",descriptionLabel:"Beschreibung",labelsLabel:"Tags",createButton:"Bestätigen",updateButton:"Änderungen übernehmen",modalText:"Sie sind dabei, die Bearbeitung der Ausgabe {Name} zu beenden, aber es gibt noch ungespeicherte Änderungen.",cancelButton:"Änderungen verwerfen",continueButton:"Änderungen fortsetzen",createTitle:"Ein Problem melden",dragDropImageTextTablet:"Foto machen",takeSnapshot:"Mach einen Schnappschuss",importFile:"Eine Datei importieren",searchPlaceholder:"Suchen",emptySearch:"kein Ergebnis",documentsLabel:"Dokumente",documentsCount:"Dokumente – {count} ausgewählte Dokumente",groupsLabel:"Berechtigungen",groupsCount:"Berechtigungen – {count} ausgewählte Gruppen",groupsText:"Wählen Sie die Benutzergruppen aus, die dieses Thema sehen und damit interagieren dürfen.",validate:"Bestätigen"},BcfTopicOverview:{openViewer:"Im Viewer öffnen",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älligkeitsdatum",noDueDate:"Kein Fälligkeitsdatum",informations:"Informationen",status:"Status",noStatusSpecified:"Kein Status angegeben",stage:"Phase",noStageProvided:"Keine Phase angegeben",priority:"Priorität",priorityNotDefined:"Nicht definiert",tags:"Tags",noTags:"Keine Tags",commentButton:"Ein Kommentar veröffentlichen",deleteText:"Sie löschen jetzt {Name}",deleteBcfButton:"Dieses BCF löschen",keepBcfButton:"Dieses BCF beibehalten",author:"Autor"},BcfTopicsTable:{headers:{index:"#",priority:"Priorität",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öffentlichen",commentsText:"Kommentare",deleteCommentText:"Diesen Kommentar löschen?",deleteButton:"Löschen",takeSnapshot:"Mach einen Schnappschuss",edited:"bearbeitet"},BcfTopicPriorityCell:{noPriority:"Keine"},SettingCard:{addButton:"ein Element hinzufügen",cancelButton:"Abbrechen",validateButton:"Bestätigen",deleteExtensionText:"Diesen Parameter löschen",deleteButton:"Löschen",title:{Priority:"Prioritäten",Label:"Tags",Status:"Status",Type:"Typen",Stage:"Phasen"},input:{Priority:"Eine neue Priorität hinzufügen",Label:"Ein neues Etikett hinzufügen",Status:"Einen neuen Status hinzufügen",Type:"Einen neuen Typ hinzufügen",Stage:"Eine neue Phase hinzufügen"},text:{Priority:"Liste der Prioritäten",Label:"Liste von Tags",Status:"Liste der Status",Type:"Liste der Typen",Stage:"Liste der Phasen"}}}},en:{BcfComponents:{back:"Back",BcfFilters:{filtersButton:"Filters",filtersTitle:"Filters",priorityLabel:"Priority",statusLabel:"Status",stageLabel:"Stage",assignedToLabel:"Assigned to",creatorsLabel:"Created by",tagsLabel:"Tags",resetButton:"Reset",searchButton:"Search",undefined:"Not defined",datePlaceholder:"Creation date"},BcfSettings:{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",documentsLabel:"Add a file",documentsCount:"Files - {count} selected files",groupsLabel:"Permissions",groupsCount:"Permissions - {count} selected groups",groupsText:"You are now setting the access rights: choose the user group(s) that will be exclusively authorized to see and interact with this topic.",validate:"Validate"},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",edited:"edited"},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"}}}},es:{BcfComponents:{back:"Volver",BcfFilters:{filtersButton:"Filtros",filtersTitle:"Filtros",priorityLabel:"Prioridad",statusLabel:"Estado",stageLabel:"Fase",assignedToLabel:"Asignado a",creatorsLabel:"Creado por",tagsLabel:"Etiquetas:",resetButton:"Restablecer",searchButton:"Buscar en",undefined:"No definido",datePlaceholder:"Fecha de creación"},BcfSettings:{title:"Parámetros del BCF",text:"Cree, rellene y enumere los parámetros del BCF que desea tener en este proyecto",validateButton:"Validar los parámetros del BCF"},BcfStatistics:{emptyText:"Añada preguntas para ver las estadísticas asociadas aquí.",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ón",annotationButtonTooltip:"Actualmente este tema no posee ningún punto de vista",addPictureButton:"Añadir una imagen",titlePlaceholder:"Título *",titleErrorMessage:"Falta el título",typeLabel:"Tipo",priorityLabel:"Prioridad",statusLabel:"Estado",stageLabel:"Fase",assignedToLabel:"Asignado a",dueDateLabel:"Fecha de vencimiento (DD/MM/AAAA)",descriptionLabel:"Descripción",labelsLabel:"Etiquetas",createButton:"Validar",updateButton:"Modificar este BCF",modalText:"Está a punto de salir de la edición 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ía",takeSnapshot:"Tomar un snapshot",importFile:"Importar un archivo",searchPlaceholder:"Buscar",emptySearch:"No hay resultados"},BcfTopicOverview:{openViewer:"Abrir en el visor",openViewerNoModels:"No hay ningún modelo listo para la visualización",elements:"{count} Elementos",noElements:"Ningún elemento",type:"Tipo",noTypeSpecified:"No se especifica el tipo",description:"Descripción",noDescriptionProvided:"No hay descripción",assignedTo:"Asignado a",notAssigned:"No asignado",dueDate:"Plazo",noDueDate:"Sin fecha de vencimiento",informations:"Información",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ás a punto de borrar {name}",deleteBcfButton:"Borrar este BCF",keepBcfButton:"Mantenga este BCF",author:"Autor"},BcfTopicsTable:{headers:{index:"#",priority:"Prioridad",status:"Estado",title:"Título",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:"¿Borrar este comentario?",deleteButton:"Borrar",takeSnapshot:"Tomar un snapshot"},BcfTopicPriorityCell:{noPriority:"Sin"},SettingCard:{addButton:"añadir un elemento",cancelButton:"Cancelar",validateButton:"Validar",deleteExtensionText:"Borrar esta configuración",deleteButton:"Borrar",title:{Priority:"Prioridades",Label:"Etiquetas:",Status:"Estatutos",Type:"Tipos",Stage:"Fases"},input:{Priority:"Añadir una nueva prioridad",Label:"Añadir una nueva etiqueta",Status:"Añadir un nuevo estado",Type:"Añadir un nuevo tipo",Stage:"Añadir una nueva fase"},text:{Priority:"Lista de prioridades",Label:"Lista de etiquetas",Status:"Lista de estatutos",Type:"Lista de tipos",Stage:"Lista de fases"}}}},fr:{BcfComponents:{back:"Retour",BcfFilters:{filtersButton:"Filtres",filtersTitle:"Filtres",priorityLabel:"Priorité",statusLabel:"Statut",stageLabel:"Phase",assignedToLabel:"Assigné à",creatorsLabel:"Créé par",tagsLabel:"Tags",resetButton:"Réinitialiser",searchButton:"Rechercher",undefined:"Non défini",datePlaceholder:"Date de création"},BcfSettings:{title:"Paramètres BCF",text:"Créez, renseignez et listez les paramètres BCF que vous souhaitez avoir sur ce projet",validateButton:"Valider les paramètres BCF"},BcfStatistics:{emptyText:"Ajoutez des questions pour voir les statistiques associées ici.",issues:"problèmes",extension:{Priority:"Priorité",PriorityNotDefined:"Aucune priorité",PriorityTitle:"Priorités",Status:"Statut",StatusNotDefined:"Aucun statut",StatusTitle:"Statuts"}},BcfTopicCard:{priority:"Priorité",noPriority:"Aucune",assignedTo:"Assigné à",elements:"{n} Élements",notSpecified:"Non défini",see:"Voir"},BcfTopicCreationCard:{text:"Créer un nouveau topic BCF",createBcfSideTitle:"Signaler un problème"},BcfTopicForm:{dragDropImageText:"Veuillez sélectionner un fichier",addObjectButton:"Objet",addAnnotationButton:"Annotation",annotationButtonTooltip:"Ce topic ne possède actuellement aucun point de vue",addPictureButton:"Ajouter une image",titlePlaceholder:"Titre *",titleErrorMessage:"Titre manquant",typeLabel:"Type",priorityLabel:"Priorité",statusLabel:"Statut",stageLabel:"Phase",assignedToLabel:"Assigné à",dueDateLabel:"Date d'échéance",descriptionLabel:"Description",labelsLabel:"Tags",createButton:"Valider",updateButton:"Modifier ce BCF",modalText:"Vous êtes sur le point de quitter l'édition de l'issue {name} mais il y'a des modifications non enregistrées.",cancelButton:"Annuler les modifications",continueButton:"Continuer les modifications",createTitle:"Signaler un problème",dragDropImageTextTablet:"Prendre une photo",takeSnapshot:"Prendre un snapshot",importFile:"Importer un fichier",searchPlaceholder:"Rechercher",emptySearch:"Pas de résultat",documentsLabel:"Documents",documentsCount:"Documents - {count} documents sélectionnés",groupsLabel:"Permissions",groupsCount:"Permissions - {count} groupes sélectionnés",groupsText:"Sélectionner les groupes utilisateur qui peuvent voir ce topic et intéragir avec.",validate:"Valider"},BcfTopicOverview:{openViewer:"Ouvrir dans le viewer",openViewerNoModels:"Il n'y a aucun modèle prêt pour une visualisation",elements:"{count} Élements",noElements:"Aucun élément concerné",type:"Type",noTypeSpecified:"Pas de type spécifié",description:"Description",noDescriptionProvided:"Pas de description renseignée",assignedTo:"Assigné à",notAssigned:"Non assigné",dueDate:"Échéance",noDueDate:"Pas de date d'échéance",informations:"Informations",status:"Statut",noStatusSpecified:"Pas de statut spécifié",stage:"Phase",noStageProvided:"Pas de phase renseignée",priority:"Priorité",priorityNotDefined:"Non défini",tags:"Tags",noTags:"Pas de tags",commentButton:"Poster un commentaire",deleteText:"Vous êtes sur le point de supprimer {name}",deleteBcfButton:"Supprimer ce BCF",keepBcfButton:"Conserver ce BCF",author:"Auteur"},BcfTopicsTable:{headers:{index:"#",priority:"Priorité",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",edited:"edité"},BcfTopicPriorityCell:{noPriority:"Aucune"},SettingCard:{addButton:"ajouter un élément",cancelButton:"Annuler",validateButton:"Valider",deleteExtensionText:"Supprimmer ce paramètre",deleteButton:"Supprimer",title:{Priority:"Priorités",Label:"Tags",Status:"Statuts",Type:"Types",Stage:"Phases"},input:{Priority:"Ajouter une nouvelle priorité",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és",Label:"Liste des tags",Status:"Liste des statuts",Type:"Liste des types",Stage:"Liste des phases"}}}},it:{BcfComponents:{back:"Indietro",BcfFilters:{filtersButton:"Filtri",filtersTitle:"Filtri",priorityLabel:"Priorità",statusLabel:"Stato",stageLabel:"Fase",datePlaceholder:"Data di creazione",assignedToLabel:"Assegnato a",creatorsLabel:"Creato da",tagsLabel:"Etichette",resetButton:"Ripristina",searchButton:"Cerca",undefined:"Non definito"},BcfSettings:{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à",PriorityNotDefined:"Nessuna priorità",PriorityTitle:"Priorità",Status:"Stato",StatusNotDefined:"Nessuno stato",StatusTitle:"Stati"}},BcfTopicCard:{priority:"Priorità",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à",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à",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à",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à",Label:"Etichette",Status:"Stati",Type:"Tipi",Stage:"Fasi"},input:{Priority:"Aggiungi una nuova priorità",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à",Label:"Elenco delle etichette",Status:"Elenco degli stati",Type:"Elenco dei tipi",Stage:"Elenco delle fasi"}}}}},qii=({apiClient:i,fetchUsers:e,i18nPlugin:t}={})=>({install(n){i?Fi.setup({apiClient:i,fetchUsers:e}):console.error("[BCF Components Plugin] No api client provided. You must provide an api client for the components to work properly."),t?Object.entries(Qii).forEach(([o,r])=>{t.global.mergeLocaleMessage(o,r)}):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(TCe).forEach(([o,r])=>{n.component(o,r)})}}),Kii={de:{BuildingMaker:{title:"Building Maker",back:"Zurück",list:{text:"Erstellen und bearbeiten Sie die Etagen und laden Sie anschließend Ihre PDFs herunter.",createButton:"Neues Projekt",updateButton:"Umbenennen",deleteButton:"Löschen"},form:{text:"Erstellen und bearbeiten Sie die Etagen und laden Sie anschließend Ihre PDFs herunter.",input:"Name des Gebäudes",error:"Ungültiger Name",createButton:"Erstellen",updateButton:"Bestätigen"},view:{addStoreyButton:"Etage",addPlanButton:"Grundriss",closeButton:"Fertigstellen",submitFilesButton:"Bestätigen"},storeyForm:{title:"Neue Etage",input:"Name",error:"Ungültiger Name",cancelButton:"Abbrechen",submitButton:"Bestätigen"}},FileManager:{creationFormTitle:"Ordner erstellen",renameFormPlaceholder:"Datei- / Ordnernam",nameInputPlaceholder:"Ordnername",emptyFolder:"Dieser Ordner ist leer",newFolderSuccess:"Neuer Ordner erstellt",renameFolderSuccess:"Umbenannter Ordner",deleteFolderSuccess:"Ordner gelöscht",newFileSuccess:"Datei hinzugefügt",renameFileSuccess:"Umbenannte Datei",deleteFileSuccess:"Datei gelöscht",nameInputErrorMessage:"Ungültiger name",cancel:"Abbrechen",submit:"Bestätigen",buttonText:"Neuer Ordner",addFileButtonText:"Datei laden",rename:"Umbenennen",view:"Sehen",download:"Herunterladen",delete:"Löschen",deleteTitle:"Dateien löschen",deleteDetail:"Sie sind im Begriff, die folgenden Dateien / Ordner endgültig zu löschen"}},en:{BIMDataComponents:{t:{back:"Back",cancel:"Cancel",create:"Create",delete:"Delete",download:"Download",finish:"Finish",rename:"Rename",search:"Search",see:"View",storey:"Storey",validate:"Validate"}},BuildingMaker:{title:"Building Maker",list:{text:"Create and edit storeys, then download your PDFs.",new:"New project"},form:{input:"Building name",error:"Invalid"},view:{addStorey:"Add Storey",addFile:"Add File",addPlan:"Add Plan"},storeyForm:{title:"New storey",input:"Name",error:"Invalid name"}},FileManager:{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",buttonText:"New folder",addFileButtonText:"Upload a file",deleteTitle:"Deleting Files",deleteDetail:"You are about to permanently delete the following files / folders",dmsRoot:"Root of the project's DMS",pdfPageSelectorTitle:"Select a page"},MetaBuildingStructure:{title:"Meta-Building Structure",tab:{structure:"Structure",zones:"Zones",equipments:"Equipments"},StoreySelector:{placeholder:"Select a storey"}},PhotosphereBuilding:{title:"Photosphere Building"}},es:{BuildingMaker:{title:"Building Maker",back:"Vuelta",list:{text:"Cree y edite los pisos después cargue los PDF.",createButton:"Nuevo proyecto",updateButton:"Renombrar",deleteButton:"Suprimir"},form:{text:"Cree y edite los pisos después cargue los PDF.",input:"Nombre del edificio",error:"Nombre no válido",createButton:"Crear",updateButton:"Validar"},view:{addStoreyButton:"Piso",addPlanButton:"Plano",closeButton:"Terminar",submitFilesButton:"Validar"},storeyForm:{title:"Nuevo piso",input:"Nombre",error:"Nombre no válido",cancelButton:"Anular",submitButton:"Validar"}},FileManager:{creationFormTitle:"Crear un archivo",renameFormPlaceholder:"Nombre de archivo / carpeta",nameInputPlaceholder:"Nombre de la carpeta",emptyFolder:"Esta carpeta está vacía",newFolderSuccess:"Nueva carpeta creada",renameFolderSuccess:"Carpeta renombrada",deleteFolderSuccess:"Carpeta eliminada",newFileSuccess:"Archivo agregado",renameFileSuccess:"Archivo renombrado",deleteFileSuccess:"Archivo eliminado",nameInputErrorMessage:"Nombre inválida",cancel:"Cancelar",submit:"Validar",buttonText:"Carpeta nueva",addFileButtonText:"Cargar un archivo",rename:"Renombrar",view:"Ver",download:"Descargar",delete:"Borrar",deleteTitle:"Eliminar archivos",deleteDetail:"Está a punto de eliminar permanentemente los siguientes archivos / carpetas"}},fr:{BIMDataComponents:{t:{back:"Retour",cancel:"Annuler",create:"Créer",delete:"Supprimer",download:"Télécharger",finish:"Terminer",rename:"Renommer",search:"Rechercher",see:"Voir",storey:"Étage",validate:"Valider"}},BuildingMaker:{title:"Building Maker",list:{text:"Créez et éditez les étages puis téléchagez vos PDF.",new:"Nouveau projet"},form:{input:"Nom du bâtiment",error:"Nom invalide"},view:{addStorey:"Ajouter un Étage",addFile:"Ajouter un fichier",addPlan:"Ajouter un plan"},storeyForm:{title:"Nouvel étage",input:"Nom",error:"Nom invalide"}},FileManager:{creationFormTitle:"Créer un dossier",renameFormPlaceholder:"Nom du fichier/dosier",nameInputPlaceholder:"Nom du dossier",emptyFolder:"Ce dossier est vide",newFolderSuccess:"Nouveau dossier créé",renameFolderSuccess:"Dossier renommé",deleteFolderSuccess:"Dossier supprimé",newFileSuccess:"Fichier ajouté",renameFileSuccess:"Fichier renommé",deleteFileSuccess:"Fichier supprimé",nameInputErrorMessage:"Nom invalide",buttonText:"Nouveau dossier",addFileButtonText:"Charger un fichier",deleteTitle:"Supression de fichiers",deleteDetail:"Vous êtes sur le point de supprimer définitivement les fichiers/dossiers suivants",dmsRoot:"Racine de la GED du projet",pdfPageSelectorTitle:"Sélectionner une page"},MetaBuildingStructure:{title:"Structure Méta-Building",tab:{structure:"Structure",zones:"Zones",equipments:"Équipements"},StoreySelector:{placeholder:"Sélectionner un étage"}},PhotosphereBuilding:{title:"Photosphère Building"}},it:{BuildingMaker:{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"},view:{addStoreyButton:"Piano",addPlanButton:"Mappa",closeButton:"Finire",submitFilesButton:"Convalidare"},storeyForm:{title:"Nuovo piano",input:"Nome",error:"Nome non corretto",cancelButton:"Annullare",submitButton:"Convalidare"}},FileManager:{creationFormTitle:"Crea una cartella",renameFormPlaceholder:"Nome file/cartella",nameInputPlaceholder:"Nome della cartella",emptyFolder:"Questa cartella è 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"}}},Jii=({i18nPlugin:i}={})=>({install(e){i?Object.entries(Kii).forEach(([t,n])=>{i.global.mergeLocaleMessage(t,n)}):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(_Lt).forEach(([t,n])=>{e.component(t,n)})}}),Wii=Object.freeze(Object.defineProperty({__proto__:null,BIMDataClickAway:tl,BIMDataClickInputAway:{beforeMount(i,e){if(typeof e.value!="function")throw Error(`click away directive needs function, got ${typeof e.value}`);i.clickAwayHandler=t=>{(t.path||t.composedPath&&t.composedPath()).find(o=>o===i)||e.value()},window.addEventListener("mousedown",i.clickAwayHandler,!0)},unmounted(i){window.removeEventListener("mousedown",i.clickAwayHandler,!0),delete i.clickAwayHandler}}},Symbol.toStringTag,{value:"Module"})),Zii=i=>({install(e){Object.entries(UJe).forEach(([t,n])=>{e.component(t,n)}),Object.entries(Wii).forEach(([t,n])=>e.directive(t.split("BIMData")[1],n))}}),Yii={name:"LiWrapper",render(){return vn("li",this.$slots.default())}};function Xii(i,e){var t=new Set([]);return i.forEach(n=>{e.has(n)||t.add(n)}),t}const Ll=is("id"),$ii=({contextMenu:i,objects:e=[],state:t=i.$viewer.state,pictos:n})=>[{name:"selectAll",get group(){return i.groupPositions.select},position:1,get label(){return i.$t("context_menu.select_all")},get picto(){return n.get(this.name)},execute:()=>t.selectObjects(e.filter(Ua(Si("visible"),Cd("selected"))).map(Ll)),predicate:()=>e.some(Ua(Si("visible"),Cd("selected")))},{name:"deselectAll",get group(){return i.groupPositions.select},position:2,get label(){return i.$t("context_menu.deselect_all")},get picto(){return n.get(this.name)},execute:()=>t.deselectObjects(e.filter(Si("selected")).map(Ll)),predicate:()=>e.some(Si("selected"))},{name:"selectSimilar",get group(){return i.groupPositions.select},position:3,get label(){return i.$t("context_menu.select_similar")},get picto(){return n.get(this.name)},execute(){const o=e.filter(r=>r.visible&&r.type===this.selectedObject.type&&r.id!==this.selectedObject.id).map(Ll);t.selectObjects(o)},selectedObject:null,predicate(){const o=e.filter(Ua(Si("visible"),Si("selected")));return o.length===1&&o[0].type!==void 0?(this.selectedObject=o[0],!0):(this.selectedObject=null,!1)}},{name:"reverseSelection",get label(){return i.$t("context_menu.reverse_selection")},get group(){return i.groupPositions.select},position:4,execute:()=>{const o=new Set(e.filter(Si("selected")).map(Ll)),r=new Set(e.filter(Si("visible")).map(Ll));t.selectObjects(Array.from(Xii(r,o)),{exclusive:!0})},predicate:()=>e.some(Ua(Cd("selected"),Si("visible")))&&e.some(Ua(Si("selected"),Si("visible")))},{name:"showAll",get group(){return i.groupPositions.visibility},position:1,get label(){return i.$t("context_menu.show_all")},get picto(){return n.get(this.name)},execute:()=>t.showObjects(e.filter(Cd("visible")).map(Ll)),predicate:()=>e.some(Cd("visible"))},{name:"hide",get group(){return i.groupPositions.visibility},position:2,get label(){return i.$t("context_menu.hide")},get picto(){return n.get(this.name)},objectsToHide:null,execute(){const o=this.objectsToHide.filter(Si("selected"));o.length>0&&t.deselectObjects(o.map(Ll)),t.hideObjects(this.objectsToHide.map(Ll))},predicate(){return this.objectsToHide=e.filter(Ua(Si("selected"),Si("visible"))),this.objectsToHide.length>0}},{name:"hideAll",get group(){return i.groupPositions.visibility},position:3,get label(){return i.$t("context_menu.hide_all")},execute:()=>{const o=e.filter(Si("visible"));o.some(Si("selected"))&&t.deselectObjects(o.filter(Si("selected")).map(Ll)),t.hideObjects(o.map(Ll))},predicate:()=>e.some(Si("visible"))}].filter(o=>o.predicate()),eni={components:{LiWrapper:Yii},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(i){i?document.addEventListener("keydown",this.onKeyDown):document.removeEventListener("keydown",this.onKeyDown)}},created(){this.$viewer.contextMenu=this,this.asyncPredicates=new Set},methods:{onKeyDown(i){i.key==="Escape"&&this.away()},setPosition(i){const t=(document.fullscreenElement?document.fullscreenElement:this.$parent.$el).getBoundingClientRect();this.left=i.clientX-t.left,this.top=i.clientY-t.top,this.left+this.width>t.width&&(this.left=this.left-this.width),i.clientY>t.top+t.height/2?(this.bottom=t.height-this.top,this.top=null):this.bottom=null},typeCheckCommand(i={}){let e=null;if((!i.execute||typeof i.execute!="function")&!i.component&&(e="Cannot register context menu command. A command must have an execute function or a component property."),i.label||(e="Cannot register context menu command. A command must have a label."),e)throw console.error(e),new Error(e);return i.id=this.nextCommandId++,i},open(i){this.currentCommands=[],this.setPosition(i),this.originEvent=i,i.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 i=>{if(typeof i.predicate=="function"){const e=i.predicate(this.$viewer.globalContext.activeLocalContext);if(e===!0)this.currentCommands.push(i);else if(typeof e?.then=="function"){this.asyncPredicates.add(e),this.asyncPredicateRunning=!0;const t=await e;this.asyncPredicates.has(e)&&(this.asyncPredicates.delete(e),this.asyncPredicateRunning=this.asyncPredicates.size>0,t===!0&&this.currentCommands.push(i))}}else this.currentCommands.push(i)}),this.currentCommands.push(...this.contextCommands),this.contextCommands=[]},getDefaultCommands({objects:i=[],state:e=this.$viewer.state,context:t=null}){const n=new Map;return t&&this.$viewer.shortcutManager.getShortcuts(t).forEach(o=>n.set(o.name,o.key)),$ii({contextMenu:this,objects:i,state:e,pictos:n})},executeCommand(i){if(i.execute&&(i.execute(this.originEvent),this.displayed=!1),i.component&&!i.menu)throw new Error("Command with component property must have a `menu` property")},away(){this.displayed=!1},groupCurrentCommands(){const i=new Map;this.currentCommands.forEach(n=>{(n.group===null||n.group===void 0)&&(n.group=0),i.has(n.group)?i.get(n.group).push(n):i.set(n.group,[n])}),i.forEach(n=>n.sort((o,r)=>(o.position=o.position||0,r.position=r.position||0,o.position-r.position)));const t=[...i.keys()].sort((n,o)=>n-o).map(n=>i.get(n)).flat();this.currentCommands=t},isGroupIntersection(i){if(i===0)return!1;const e=this.currentCommands[i-1],t=this.currentCommands[i];return e.group<t.group},registerContextCommand(i){const e=this.typeCheckCommand(i);return this.contextCommands.push(e),i.id},registerCommand(i){const e=this.typeCheckCommand(i);return this.registeredCommands.push(e),i.id},unregisterCommand(i){return this.registeredCommands.find(e=>e.id===i)?(this.registeredCommands=this.registeredCommands.filter(e=>e.id!==i),!0):!1},preventDefault(){this.defaultPrevented=!0}}},tni={key:0,class:"separator"},ini={class:"menu-text"},nni={key:1,class:"menu-picto"},oni={key:0,class:"context-menu__spinner"};function sni(i,e,t,n,o,r){const s=P("BIMDataIconChevron"),a=P("LiWrapper"),l=P("BIMDataSpinner"),c=li("click-away");return o.displayed&&(o.currentCommands.length||o.asyncPredicateRunning)?yt((E(),L("ul",{key:0,class:"bimdata-list context-menu",style:le(r.position)},[(E(!0),L($e,null,Mt(o.currentCommands,(u,d)=>(E(),K(a,{key:u.label,class:"context-menu__element",onClick:h=>r.executeCommand(u)},{default:U(()=>[r.isGroupIntersection(d)?(E(),L("div",tni)):te("",!0),C("div",ini,G(u.label),1),!u.component&&u.picto?(E(),L("span",nni,G(u.picto),1)):u.component?(E(),K(s,{key:2,size:"xxs",class:"fill-primary"})):te("",!0)]),_:2},1032,["onClick"]))),128)),o.asyncPredicateRunning?(E(),L("li",oni,[k(l)])):te("",!0)],4)),[[c,r.away]]):te("",!0)}const rni=V(eni,[["render",sni],["__scopeId","data-v-5b87d4a3"]]),ani={name:"ViewerHeader",inject:["$viewer"],props:{visible:{type:Boolean,default:!0}},setup(){const i=st("$viewer"),e=Ao(new Map),t=o=>{if(!o.name)throw new TypeError("[Viewer Header] Content must have a name");if(e.has(o.name))throw new Error(`[Viewer Header] Content with name ${o.name} already exists`);e.set(o.name,o)},n=o=>e.has(o)?(e.delete(o),!0):!1;return{logo:i.uiSettings.bimdataLogo!==!1,version:i.uiSettings.version!==!1?i.version:null,headerContent:e,headerRightContentComponents:Re(()=>Array.from(e.values()).filter(o=>o.position==="right").sort((o,r)=>o.order-r.order).map(o=>o.component)),headerLeftContentComponents:Re(()=>Array.from(e.values()).filter(o=>o.position==="left").sort((o,r)=>o.order-r.order).map(o=>o.component)),addContent:t,removeContent:n}}},lni={class:"viewer-header"},cni={class:"viewer-header__content"},uni={class:"viewer-header__content__left"},dni={class:"viewer-header__content__right"},hni={key:0,class:"m-l-6 flex items-center"},pni={key:1,class:"viewer-header__version"};function fni(i,e,t,n,o,r){const s=P("BIMDataIllustration");return yt((E(),L("div",lni,[C("div",cni,[C("div",uni,[(E(!0),L($e,null,Mt(n.headerLeftContentComponents,a=>(E(),K(yn(a),{key:a.name}))),128))]),C("div",dni,[(E(!0),L($e,null,Mt(n.headerRightContentComponents,a=>(E(),K(yn(a),{key:a.name}))),128))])]),n.logo||n.version?(E(),L("div",hni,[n.logo?(E(),K(s,{key:0,name:"logo",width:"30px",height:"30px"})):te("",!0),n.version?(E(),L("div",pni,G(n.version),1)):te("",!0)])):te("",!0)],512)),[[jt,t.visible]])}const Ani=V(ani,[["render",fni],["__scopeId","data-v-5c9ea6b6"]]),mni={emits:["resize"],setup(i,{emit:e}){return{onResizerMousedown:n=>{n.preventDefault();let o=n.clientX;const r=a=>{a.preventDefault();const l=a.clientX-o;o=a.clientX,e("resize",l)},s=a=>{a.preventDefault(),window.removeEventListener("mousemove",r),window.removeEventListener("mouseup",s)};window.addEventListener("mousemove",r),window.addEventListener("mouseup",s)}}}},gni={class:"bimdata-separator"};function yni(i,e,t,n,o,r){return E(),L("div",gni,[e[1]||(e[1]=C("div",{class:"bimdata-separator__line"},null,-1)),C("div",{class:"bimdata-separator__resizer",onMousedown:e[0]||(e[0]=(...s)=>n.onResizerMousedown&&n.onResizerMousedown(...s))},null,32)])}const vni={components:{Separator:V(mni,[["render",yni],["__scopeId","data-v-79a3b3af"]])},props:{position:{type:String,required:!0,validator(i){return["left","right"].includes(i)}},sidePanel:{type:Object,required:!0,validator(i){if(i.width&&(typeof i.width!="number"||i.width<0))return console.error(`[GlobalSidePanel] sidePanel.width must be a strictly positive number, received ${typeof i.width}`),!1;const e=typeof i?.component=="object";return e||console.error("[GlobalSidePanel] sidePanel must have a component property"),e}}},setup(i){const e=se(null),t=se(i.sidePanel.width??400),n=(o,r=1)=>{const s=t.value+o*r;t.value=Math.max(0,s)};return lt(()=>i.sidePanel,()=>{Object.defineProperty(i.sidePanel,"width",{get(){return t.value},set(o){if(typeof o!="number"||o<=0){console.error(`[GlobalSidePanel] sidePanel.width must be a strictly positive number, received ${typeof o}`);return}t.value=o}}),Object.defineProperty(i.sidePanel,"componentInstance",{get(){return e.value},enumerable:!0})},{immediate:!0}),{componentInstance:e,width:t,onResize:n}}},wni={class:"bimdata-global-side-panel__component"};function Cni(i,e,t,n,o,r){const s=P("Separator");return E(),L("div",{class:"bimdata-global-side-panel",style:le(`width: ${n.width}px`)},[t.sidePanel.resizable&&t.position==="right"?(E(),K(s,{key:0,onResize:e[0]||(e[0]=a=>n.onResize(a,-1))})):te("",!0),C("div",wni,[(E(),K(yn(t.sidePanel.component),{ref:"componentInstance"},null,512))]),t.sidePanel.resizable&&t.position==="left"?(E(),K(s,{key:1,onResize:e[1]||(e[1]=a=>n.onResize(a))})):te("",!0)],4)}const bni={name:"BimdataViewer",components:{ContextMenu:rni,ViewerHeader:Ani,ModalManager:R2e,GlobalSidePanel:V(vni,[["render",Cni],["__scopeId","data-v-82d0d4cb"]])},setup(){const i=st("$viewer"),{globalContext:e,shortcutManager:t}=i;Ci(()=>{t&&t.destroy(),e.hub.clear()}),oi(()=>{i.pluginManager.runPluginsScripts(i)});const n=Re(()=>i.uiSettings.bimdataLogo!==!1&&(e.localContexts.length!==1||e.localContexts[0].window?.logoAndVersion)),o=Re(()=>i.uiSettings.version!==!1&&(e.localContexts.length!==1||e.localContexts[0].window?.logoAndVersion)?i.version:null),r=Re(()=>e.leftSidePanel),s=Re(()=>e.rightSidePanel),a=Re(()=>{const p=i.uiSettings.header!==!1,A=e.localContexts.length===1&&e.localContexts[0].window?.header===!1,f=!!(r.value||s.value);return p&&(!A||f)}),l=i.uiSettings.contextMenu!==!1,c=se(null);function u(p){l&&c.value.open(p)}function d(){i.shortcutManager.active=!0}function h(){i.shortcutManager.active=!1}return{Layout:i.layout.areas.component,onContextMenu:u,onMouseenter:d,onMouseleave:h,isHeaderVisible:a,viewerTemplateRef:e.templateRef,modalManagerTemplateRef:e.modalManagerTemplateRef,headerTemplateRef:e.headerTemplateRef,contextMenuTemplateRef:c,contextMenuEnabled:l,bimdataLogoOnSingleWindow:n,viewerVersionOnSingleWindow:o,version:i.version,loading:Re(()=>e.loading),spinner:Re(()=>e.spinner),leftSidePanel:r,rightSidePanel:s}}},xni={key:1,class:"bimdata-context-loading-overlay",style:{"z-index":"3"}},Mni={key:2,class:"viewer__logo"},Eni={key:1,class:"version m-t-6"};function Bni(i,e,t,n,o,r){const s=P("ModalManager"),a=P("ContextMenu"),l=P("ViewerHeader"),c=P("GlobalSidePanel"),u=P("BIMDataSpinner"),d=P("BIMDataIllustration");return E(),L("div",{id:"bimdata-viewer",ref:"viewerTemplateRef",class:"bimdata-viewer bimdata-design-system bimdata-scrollbar",onContextmenu:e[0]||(e[0]=(...h)=>n.onContextMenu&&n.onContextMenu(...h)),onMouseenter:e[1]||(e[1]=(...h)=>n.onMouseenter&&n.onMouseenter(...h)),onMouseleave:e[2]||(e[2]=(...h)=>n.onMouseleave&&n.onMouseleave(...h))},[k(s,{ref:"modalManagerTemplateRef"},null,512),n.contextMenuEnabled?(E(),K(a,{key:0,ref:"contextMenuTemplateRef"},null,512)):te("",!0),k(l,{ref:"headerTemplateRef",visible:n.isHeaderVisible},null,8,["visible"]),C("div",{class:"bimdata-viewer__content",style:le(n.isHeaderVisible?"height: calc(100% - var(--bimdata-viewer-header-height, 40px))":"height: 100%")},[n.leftSidePanel?(E(),K(c,{key:0,"side-panel":n.leftSidePanel,position:"left"},null,8,["side-panel"])):te("",!0),(E(),K(yn(n.Layout),{style:"height: 100%; flex-grow: 1;"})),n.rightSidePanel?(E(),K(c,{key:1,"side-panel":n.rightSidePanel,position:"right"},null,8,["side-panel"])):te("",!0)],4),n.loading?(E(),L("div",xni,[n.spinner&&n.spinner.component?(E(),K(yn(n.spinner.component),Rr(Es({key:0},n.spinner.props)),null,16)):(E(),K(u,{key:1,size:"40px",border:"5px"}))])):te("",!0),!n.isHeaderVisible&&(n.bimdataLogoOnSingleWindow||n.viewerVersionOnSingleWindow)?(E(),L("div",Mni,[n.bimdataLogoOnSingleWindow?(E(),K(d,{key:0,name:"logo"})):te("",!0),n.viewerVersionOnSingleWindow?(E(),L("div",Eni,G(n.version),1)):te("",!0)])):te("",!0)],544)}const Ini=V(bni,[["render",Bni],["__scopeId","data-v-0c1c941a"]]),Sni=["src"],Pni={class:"bimdata-models__header"},Tni={key:0,class:"bimdata-models__header__loader"},kni={class:"bimdata-models__header__picto"},Rni={class:"bimdata-models__header__name"},_ni={key:0,class:"bimdata-models__header__name--empty"},Dni={key:1,class:"bimdata-models__header__name--empty"},Lni={key:3},Fni=["onMousemove","onClick"],O2e=V({__name:"Models",props:{preview:{type:Boolean,default:!1},windowPositioning:{type:Boolean,default:!0},customFilter:{type:Function,default:null},width:{type:String,default:"350px"}},setup(i){const e=i,t=st("$viewer"),n=se(),o=se(0),r=se(0),s=se(),a=hi([]),l=se(!1),c=Re(()=>t.localContext.loadedModels),u=Re(()=>t.localContext.loadedModelIds),d=Re(()=>t.localContext.loadingModelIds),h=Re(()=>t.localContext.multiModel),p=Re(()=>(e.customFilter?a.value.filter(e.customFilter):a.value).map(B=>c.value.find(S=>S.document?.head_id!=null&&S.document.head_id===B.document.id)??B)),A=M=>u.value.includes(M),f=M=>d.value.includes(M),g=Re(()=>{const{x:M,y:B}=s.value?.getBoundingClientRect()??{x:0,y:0};return`top:${r.value-B}px; left:${o.value-M}px;`}),m=M=>{!h.value&&A(M.id)||d.value.length>0||(t.localContext.loadedModelIds.includes(M.id)?t.localContext.unloadModels([M.id]):t.localContext.loadModels([M.id]))},v=M=>{switch(M){case"C":return"success";case"E":return"failed";case"P":case"I":return"sandglass"}},y=(M,B)=>{M?.viewer_360_file&&(o.value=B.clientX,r.value=B.clientY),n.value=M?.viewer_360_file},w=async M=>{l.value=!0;try{return(await t.api.apiClient.modelApi.getModels(t.api.cloudId,t.api.projectId,void 0,void 0,M)).filter(S=>t.state.models.some(I=>I.archived)||!S.archived).sort(rl("updated_at",!1))}catch(B){console.error("[Models] Cannot get project models. Error: ",B)}finally{l.value=!1}return[]},x=M=>M.children?.some(B=>A(B.id))??!1;return w(t.localContext.modelTypes).then(M=>{a.value=M}),(M,B)=>{const S=P("BIMDataSpinner"),I=P("BIMDataIconModel3D"),R=P("BIMDataTextbox"),T=P("BIMDataCheckbox"),D=P("BIMDataRadio"),F=P("BIMDataIcon"),N=P("BIMDataDropdownList");return E(),L("div",{ref_key:"templateRef",ref:s,class:ce(["bimdata-models",{"bimdata-models--window-positioning":i.windowPositioning}])},[n.value?(E(),L("div",{key:0,class:"bimdata-models__preview",style:le(g.value)},[C("img",{src:n.value},null,8,Sni)],4)):te("",!0),k(N,{style:le(`--bimdata-models-width: ${i.width};`),width:i.width,list:p.value,"element-key":"id","per-page":40,loading:l.value,class:"bimdata-models__list",disabled:p.value.length===0,onElementClick:m},{header:U(({isOpen:z})=>[C("div",Pni,[l.value||d.value.length>0?(E(),L("div",Tni,[k(S)])):(E(),L($e,{key:1},[C("div",kni,[k(I)]),C("div",{class:ce(["bimdata-models__header__number bimdata-info-length",{"bimdata-models__header__number--empty":u.value.length===0}])},[C("span",null,G(u.value.length),1)],2),C("div",Rni,[p.value.length===0?(E(),L("span",_ni,G(M.$t("model.no_model")),1)):u.value.length===0?(E(),L("span",Dni,G(M.$t("model.no_loaded_model")),1)):u.value.length===1?(E(),K(R,{key:2,text:c.value[0].name,tooltip:!z},null,8,["text","tooltip"])):u.value.length>1?(E(),L("span",Lni,G(M.$t("model.selected_models")),1)):te("",!0)])],64))])]),element:U(({element:z,close:j})=>[C("div",{class:"bimdata-models__model",onMousemove:W=>i.preview&&y(z,W),onMouseout:B[0]||(B[0]=W=>i.preview&&y()),onClick:()=>{!h.value&&!A(z.id)&&j()}},[h.value?(E(),K(T,{key:0,"model-value":A(z.id)||x(z),disabled:z.status!=="C"||d.value.length>0},null,8,["model-value","disabled"])):(E(),K(D,{key:1,"model-value":A(z.id)||x(z),disabled:z.status!=="C"||d.value.length>0},null,8,["model-value","disabled"])),k(F,{margin:"0 calc(var(--spacing-unit) / 2)",name:v(z.status),size:"xs",class:ce({"fill-success":z.status==="C","fill-high":z.status==="E"})},null,8,["name","class"]),k(R,{class:ce({"bimdata-models__model__name":!0,"bimdata-models__model__name--disabled":z.status!=="C"||d.value.length>0}),text:z.name,width:`calc(100% -
|
|
6441
6441
|
${h.value?13:23}px - 2 * 6px - 16px)`},null,8,["class","text","width"]),z.document&&!z.document.is_head_version?(E(),K(F,{key:2,name:"versioning",fill:"",color:"default",size:"xs",margin:"0 0 0 6px"})):te("",!0)],40,Fni),f(z.id)?(E(),K(S,{key:0,class:"bimdata-models__model__spinner"})):te("",!0)]),_:1},8,["style","width","list","loading","disabled"])],2)}}},[["__scopeId","data-v-34c2cf79"]]),Oni="data:image/svg+xml,%3csvg%20width='16'%20height='21'%20viewBox='0%200%2016%2021'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M7.47193%202.76644C7.65699%202.84439%207.77716%203.02565%207.777%203.22661L7.77339%207.94624C7.77318%208.22238%207.54916%208.44655%207.27301%208.44693L2.4192%208.45366C2.21569%208.45394%202.03258%208.33085%201.95617%208.1424C1.87975%207.95394%201.92528%207.73773%202.07129%207.59566L6.92872%202.86931C7.0729%202.72902%207.28688%202.6885%207.47193%202.76644ZM3.65141%207.45195L6.77378%207.44762L6.7761%204.41157L3.65141%207.45195ZM5.81657%200.893911L6.02338%200.893274L13.3879%200.870595C14.679%200.866619%2015.7208%201.91642%2015.722%203.20083L15.2221%203.20237L15.722%203.20052L15.722%203.20083L15.745%2017.8999L15.745%2017.9002C15.7462%2019.1846%2014.7063%2020.2408%2013.4153%2020.2448L2.35929%2020.2788C1.07114%2020.2828%200.0171799%2019.2362%200.0159721%2017.9486L0.00563138%206.92409L0.00543684%206.71668L0.152103%206.56972L5.67032%201.04045L5.81657%200.893911ZM6.23113%201.89264L1.00582%207.12841L1.01597%2017.9455C1.01666%2018.6791%201.62068%2019.2811%202.35835%2019.2788L13.4143%2019.2448C14.1484%2019.2425%2014.7456%2018.6402%2014.745%2017.9035C14.745%2017.9034%2014.745%2017.9033%2014.745%2017.9033L14.722%203.20423L14.722%203.20391C14.7213%202.46716%2014.123%201.86833%2013.3888%201.87059L6.23113%201.89264Z'%20fill='%232F374A'/%3e%3c/svg%3e",Nni=["src"],Uni={key:0,class:"bimdata-multi-model-loader__header-container"},Vni={key:0,class:"bimdata-multi-model-loader__header__loader"},Hni={class:"bimdata-multi-model-loader__header__picto"},zni=["src"],jni={class:"bimdata-multi-model-loader__header__name"},Gni={key:0,class:"bimdata-multi-model-loader__header__name--empty"},Qni={key:1,class:"bimdata-multi-model-loader__header__name--empty"},qni={key:3},Kni={key:1,class:"bimdata-multi-model-loader__main"},Jni=["onMousemove","onClick"],Wni=V({__name:"BIMDataMultiModelLoader",props:{preview:{type:Boolean,default:!1},windowPositioning:{type:Boolean,default:!0},customFilter:{type:Function,default:null},width:{type:String,default:"350px"}},setup(i){const e=i,t=st("$viewer"),n=se(),o=se(0),r=se(0),s=se(),a=hi([]),l=se(!1),c=se(!0),u=F=>{F.key==="Escape"?c.value=!0:F.key==="Enter"&&S()};lt(c,F=>{F?(window.removeEventListener("keydown",u),y.clear(),v.clear(),n.value=null):window.addEventListener("keydown",u)});const d=Re(()=>t.localContext.loadedModels),h=Re(()=>t.localContext.loadedModelIds),p=Re(()=>t.localContext.loadingModelIds),A=Re(()=>t.localContext.multiModel),f=Re(()=>(e.customFilter?a.value.filter(e.customFilter):a.value).map(N=>d.value.find(z=>z.document?.head_id!=null&&z.document.head_id===N.document.id)??N)),g=F=>h.value.includes(F),m=F=>p.value.includes(F),v=Ao(new Set),y=Ao(new Set),w=F=>F.children?.some(N=>g(N.id))??!1,x=F=>(g(F.id)||w(F)||v.has(F))&&!y.has(F),M=Re(()=>{const{x:F,y:N}=s.value.getBoundingClientRect();return`top:${r.value-N}px; left:${o.value-F}px;`}),B=F=>{F.status==="C"&&(!A.value&&g(F.id)||(g(F.id)?y.has(F)?y.delete(F):y.add(F):v.has(F)?v.delete(F):v.add(F)))},S=()=>{v.size>0&&t.localContext.loadModels(Array.from(v).map(F=>F.id)),y.size>0&&t.localContext.unloadModels(Array.from(y).map(F=>F.id)),c.value=!0},I=F=>{switch(F){case"C":return"success";case"E":return"failed";case"P":case"I":return"sandglass"}},R=F=>F.document&&!F.document.is_head_version,T=(F,N)=>{!e.preview||c.value||(F?.viewer_360_file&&(o.value=N.clientX,r.value=N.clientY),n.value=F?.viewer_360_file)};return(async F=>{l.value=!0;try{return(await t.api.apiClient.modelApi.getModels(t.api.cloudId,t.api.projectId,void 0,void 0,F)).filter(z=>t.state.models.some(j=>j.archived)||!z.archived).sort(rl("updated_at",!1))}catch(N){console.error("[Models] Cannot get project models. Error: ",N)}finally{l.value=!1}return[]})(t.localContext.modelTypes).then(F=>{a.value=F}),(F,N)=>{const z=P("BIMDataSpinner"),j=P("BIMDataTextbox"),W=P("BIMDataIconChevron"),J=P("BIMDataButton"),$=P("BIMDataIconFileIfcPolychrome"),ue=P("BIMDataCheckbox"),Ee=P("BIMDataRadio"),Be=P("BIMDataIcon"),ze=P("BIMDataPaginatedList"),Qe=li("click-away");return E(),L("div",{ref_key:"templateRef",ref:s,class:ce(["bimdata-multi-model-loader",{"bimdata-multi-model-loader--window-positioning":i.windowPositioning}])},[n.value?(E(),L("div",{key:0,class:"bimdata-multi-model-loader__preview",style:le(M.value)},[C("img",{src:n.value},null,8,Nni)],4)):te("",!0),k(mi,{name:"fade",mode:"out-in"},{default:U(()=>[c.value?(E(),L("div",Uni,[pt(F.$slots,"left",{},void 0,!0),C("div",{class:"bimdata-multi-model-loader__header",onClick:N[0]||(N[0]=me=>c.value=!1)},[l.value||p.value.length>0?(E(),L("div",Vni,[k(z)])):(E(),L($e,{key:1},[C("div",Hni,[C("img",{src:nt(Oni),alt:"file icon"},null,8,zni)]),C("div",{class:ce(["bimdata-multi-model-loader__header__number bimdata-info-length",{"bimdata-multi-model-loader__header__number--empty":h.value.length===0}])},[C("span",null,G(h.value.length),1)],2),C("div",jni,[f.value.length===0?(E(),L("span",Gni,G(F.$t("model.no_model")),1)):h.value.length===0?(E(),L("span",Qni,G(F.$t("model.no_loaded_model")),1)):h.value.length===1?(E(),K(j,{key:2,text:d.value[0].name,tooltip:c.value,width:"233px"},null,8,["text","tooltip"])):h.value.length>1?(E(),L("span",qni,G(F.$t("model.selected_models")),1)):te("",!0)]),k(J,{color:"default",icon:"",radius:"",fill:"",width:"21px",height:"21px"},{default:U(()=>[k(W,{size:"xxxs"})]),_:1})],64))]),pt(F.$slots,"right",{},void 0,!0)])):yt((E(),L("div",Kni,[k(ze,{list:f.value,"per-page":10},{element:U(({element:me})=>[C("div",{class:ce(["bimdata-multi-model-loader__main__model",{"bimdata-multi-model-loader__main__model--disabled":me.status!=="C"}]),onMousemove:_e=>T(me,_e),onMouseout:N[1]||(N[1]=_e=>T()),onClick:_e=>B(me)},[k($,{fill:"",color:"default",size:"xs"}),A.value?(E(),K(ue,{key:0,"model-value":x(me),disabled:me.status!=="C"},null,8,["model-value","disabled"])):(E(),K(Ee,{key:1,"model-value":x(me),disabled:me.status!=="C"},null,8,["model-value","disabled"])),k(j,{class:ce({"bimdata-multi-model-loader__main__model__name":!0,"bimdata-multi-model-loader__main__model__name--disabled":me.status!=="C"}),text:me.name,width:R(me)?"333px":"363px"},null,8,["class","text","width"]),R(me)?(E(),K(Be,{key:2,name:"versioning",fill:"",color:"default",size:"xs",margin:"0 0 0 6px"})):te("",!0),m(me.id)?(E(),K(z,{key:3,class:"bimdata-multi-model-loader__main__model__spinner"})):(E(),K(Be,{key:4,name:I(me.status),size:"xs",class:ce({"fill-success":me.status==="C","fill-high":me.status==="E"})},null,8,["name","class"]))],42,Jni)]),_:1},8,["list"]),k(J,{class:"bimdata-multi-model-loader__main__validate",width:"93px",color:"primary",fill:"",radius:"",disabled:nt(v).size===0&&nt(y).size===0,onClick:S},{default:U(()=>[Ke(G(F.$t("global.validate")),1)]),_:1},8,["disabled"])])),[[Qe,()=>c.value=!0]])]),_:3})],2)}}},[["__scopeId","data-v-44e6af66"]]),Zni={data(){return{shown:!1}},mounted(){setTimeout(()=>{this.shown=!0},500)}};function Yni(i,e,t,n,o,r){const s=P("BIMDataIllustration");return E(),L("div",{class:"bimdata__no-model",style:le({"--no-model--opacity":o.shown?1:0})},[k(s,{name:"emptyViewer",x:"90",y:"90"}),C("span",null,G(i.$t("model.select_model")),1)],4)}const N2e=V(Zni,[["render",Yni],["__scopeId","data-v-5ffd9bc0"]]);window.BIMDataViewerVue=lj;class Xni{constructor(e={}){const{api:t={},ui:n}=e;this.uiCfg=n,t.apiUrl||(console.info("[BIMData Viewer] INFO - Viewer config - `apiUrl` not set, use 'https://api.bimdata.io' by default."),t.apiUrl="https://api.bimdata.io"),t.archiveUrl||(console.info("[BIMData Viewer] INFO - Viewer config - `archiveUrl` not set, use 'https://archive.bimdata.io' by default."),t.archiveUrl="https://archive.bimdata.io"),t.pdfBackendUrl||(console.info("[BIMData Viewer] INFO - Viewer config - `pdfBackendUrl` not set, use 'https://pdf-backend.bimdata.io' by default."),t.pdfBackendUrl="https://pdf-backend.bimdata.io"),t.ifcIds&&(console.warn("[BIMData Viewer] DEPRECATED - Viewer config - please use the `modelIds` property instead of `ifcIds`."),t.modelIds===void 0&&(t.modelIds=t.ifcIds)),t.modelIds||(t.modelIds=[]),t.offline?.dataFile&&(t.offline.data=t.offline.dataFile),this.$viewer=new Hii(e),t.offline?.enabled?this.$viewer.api.enableOfflineMode(t.offline.data,t.offline.options).then(()=>this.state.loadModels(t.modelIds)):(this.$viewer.globalContext.loadingProcessStart(),this.state.loadModels(t.modelIds).finally(()=>this.$viewer.globalContext.loadingProcessEnd())),this.vueApp=null}get state(){return this.$viewer.state}get api(){return this.$viewer.api}async mount(e,t="3d"){const{$viewer:n}=this;await n.api.ready;try{const u=await n.api.apiClient.collaborationApi.checkProjectAccess(n.api.cloudId,n.api.projectId);n.api.permissions=F2e(u)}catch{n.api.permissions=F2e()}const o=this.api.accessToken,{i18n:r}=n;r.registerTranslations(n.pluginManager.pluginTranslations),n.layout.apply(t);const s={i18n:r.i18nVuePlugin,data(){return{accessToken:o}},render(){return vn(Ini,{style:"height: 100%"})}},a=Qg(s).use(r.i18nVuePlugin).use(Zii()).use(Jii({i18nPlugin:r.i18nVuePlugin})).use(qii({apiClient:n.api.apiClient,i18nPlugin:r.i18nVuePlugin}));a.provide("$viewer",n),a.provide("BIMDATA_DESIGN_SYSTEM_DARK_THEME",Re(()=>n.darkTheme)),a.component("BIMDataModelLoader",O2e),a.component("BIMDataMultiModelLoader",Wni),a.component("BIMDataNoModelWindowPlaceHolder",N2e),a.component("BIMDataStoreySelector",gS),a.component("ModelsLoader",O2e),a.component("NoModelWindowPlaceHolder",N2e);const l=e instanceof HTMLElement?e:document.querySelector(e);l&&(l.style.height="100%");const c=a.mount(e);return c.$viewer=n,zii(c.$el,this.uiCfg?.style),typeof window<"u"&&(window.bimdataViewer=c),this.vueApp=a,c}destroy(){this.vueApp?.unmount()}setLocale(e){if(!Bj.includes(e))throw new Error(`Viewer available locales are ${Bj.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 t=await this.state.loadModels(e);return this.$viewer.globalContext.loadingProcessEnd(),t}loadIfcs(e){return console.warn("[BIMData Viewer] DEPRECATED - Viewer - please use the loadModels method instead of loadIfcs."),this.loadModels(e)}}const U2e=(i={})=>new Xni(i);return window.makeBIMDataViewer=U2e,U2e}));
|